ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:09 2020
Source File: \u3ebprt.asm
EBCDIC TO PRINTER CODE CONVERSION
2 | *************************************************** U3A00020
3 | * * U3A00030
4 | * SUBROUTINE NAME- * U3A00040
5 | * FULL NAME- EBCDIC TO PRINTER CODE CON- * U3A00050
6 | * VERSION SUBROUTINE. * U3A00060
7 | * CODE NAME- EBPRT * U3A00070
8 | * PURPOSE- THIS SUBROUTINE CONVERTS EBCDIC, * U3A00080
9 | * PACKED TWO CHARACTERS PER WORD, TO EITHER * U3A00090
10 | * 1053 OR 1443 PRINTER CODE, ALSO PACKED * U3A00100
11 | * TWO CHARACTERS PER WORD. * U3A00110
12 | * METHOD- * U3A00120
13 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL. * U3A00130
14 | * CAPABILITIES AND LIMITATIONS- * U3A00140
15 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL * U3A00150
16 | * SPECIAL FEATURES. N/A * U3A00160
17 | * ADDITIONAL INFORMATION- * U3A00170
18 | * ESTIMATED EXECUTION TIME- * U3A00180
19 | * SEE IBM 1130 SUBROUTINE LIBRARY MANUAL. * U3A00190
20 | *************************************************** U3A00200
EBCDIC TO PRINTER CODE CONVERSION
22 | LIBR U3A00220
23 | ENT EBPRT U3A00230
0000 692E 24 | EBPRT STX 1 SAV1+1 CALL ENTRY POINT U3A00240
0001 6580 0000 25 | LINK LDX I1 *-* LOADER STORES TV ADDR (+2) U3A00250
0003 6A2D 26 | STX 2 SAV2+1 SAVE XR2 U3A00260
0004 2828 27 | STS CHECK SAVE STATUS U3A00270
0005 D832 28 | STD SAVAQ SAVE ACC AND EXT U3A00280
0006 C101 29 | LD 1 1 U3A00290
0007 D00F 30 | STO INPUT+1 SAVE INPUT ADDRESS U3A00300
0008 C102 31 | LD 1 2 U3A00310
0009 D00F 32 | STO OUTPT+1 SAVE OUTPUT ADDRESS U3A00320
000A C103 33 | LD 1 3 U3A00330
000B D02F 34 | STO COUNT SET OUTPUT CODE INDR U3A00340
000C C028 35 | LD CALL1 U3A00350
000D 404A 36 | BSI SBRTA SET UP EBPA TABLE ADDR U3A00360
000E D036 37 | STO TLU14+1 U3A00370
000F C026 38 | LD CALL2 U3A00380
0010 4047 39 | BSI SBRTA SET UP PRTY TABLE ADDR U3A00390
0011 D03D 40 | STO TLU18+1 U3A00400
0012 C100 41 | LD 1 0 SET OUTPUT CODE INDR U3A00410
0013 D026 42 | STO CODE (0 IF 1053, 1 IF 1443) U3A00420
0014 7104 43 | MDX 1 +4 SET EXIT TO SKIP 4 PARAMS U3A00430
0015 691E 44 | STX 1 EXIT+1 U3A00440
0016 6500 0000 45 | INPUT LDX L1 *-* XR1= INPUT ADDR U3A00450
0018 6600 0000 46 | OUTPT LDX L2 *-* XR2= OUTPUT ADDR U3A00460
47 | * U3A00470
48 | *LOOP TO CALL CONVERSION AND PACK TWO CHARS PER U3A00480
49 | * WORD AND STORE IN OUTPUT AREA. U3A00490
50 | * U3A00500
001A C100 51 | LEFT LD 1 0 GET EBCDIC CHARACTER U3A00510
001B 4024 52 | BSI TLU CONVERT EBCDIC CHAR AND PUT U3A00520
001C 1898 53 | SRT 24 IN BITS 8-15 OF EXTENSION U3A00530
001D 74FF 003BR 54 | MDX L COUNT,-1 ANY MORE TO CONVERT U3A00540
001F 7003 55 | MDX RIGHT YES U3A00550
0020 C200 56 | LD 2 0 NO,DONT ALTER THE LAST 8 U3A00560
0021 1008 57 | SLA 8 BITS OF LAST STG WD U3A00570
0022 7003 58 | MDX STORE GO TO STORE LAST WD U3A00580
0023 C100 59 | RIGHT LD 1 0 GET SECOND HALF OF THE WD U3A00590
0024 1008 60 | SLA 8 U3A00600
0025 401A 61 | BSI TLU CONVERT SECOND HALF OF WD U3A00610
0026 18C8 62 | STORE RTE 8 PUT BOTH CHARS IN ACC U3A00620
0027 D200 63 | STO 2 0 STORE BOTH CONVERTED CHARS U3A00630
0028 7101 64 | MDX 1 +1 SET FOR NEXT INPUT WORD U3A00640
0029 7201 65 | MDX 2 +1 SET FOR NEXT OUTPUT WORD U3A00650
002A 74FF 003BR 66 | MDX L COUNT,-1 ANY MORE TO CONVERT U3A00660
002C 70ED 67 | MDX LEFT YES,REPEAT LOOP U3A00670
002D 2000 68 | CHECK LDS 0 NO,RESTORE STATUS U3A00680
002E 6500 0000 69 | SAV1 LDX L1 *-* RESTORE XR1 U3A00690
0030 6600 0000 70 | SAV2 LDX L2 *-* RESTORE XR2 U3A00700
0032 C805 71 | LDD SAVAQ RESTORE ACC AND EXT U3A00710
0033 4C00 0000 72 | EXIT BSC L *-* EXIT U3A00720
73 | * U3A00730
74 | *CONSTANTS AND BUFFER AREA U3A00740
75 | * U3A00750
0035 0509*7040 76 | CALL1 LIBF EBPA USED TO GET EBPA LD ADDR U3A00760
0036 1766*3A00 77 | CALL2 LIBF PRTY USED TO GET PRTY ENTRY ADDR U3A00770
0038 78 | SAVAQ BSS E 2 SAVE ACC AND EXTENSION U3A00780
003A 0000 79 | CODE DC 0 OUTPUT CODE INDR(0=1443) U3A00790
003B 0000 80 | COUNT DC 0 NO. OF CHARS TO CONVERT U3A00800
003C 0001 81 | D0001 DC +1 ADDR MODIFICATION CONSTANT U3A00810
003D FF00 82 | HFF00 DC /FF00 8-15 BIT MASK U3A00820
003E 2001 83 | H2001 DC /2001 OVRFLO CON U3A00830
003F 0000 84 | TEMP DC 0 TEMPORARY STORAGE U3A00840
85 | * U3A00850
86 | *CONVERT THE EBCDIC CHAR TO 1053 OR 1443 CODE U3A00860
87 | * U3A00870
0040 0000 88 | TLU DC 0 RETURN ADDR U3A00880
0041 D0FD 89 | STO TEMP SAVE EBCDIC CHAR U3A00890
0042 6A12 90 | STX 2 TLU26+1 SAVE XR2 U3A00900
0043 624B 91 | LDX 2 +75 XR2= NO. OF CHARS IN TABLE U3A00910
0044 F600 0000 92 | TLU14 EOR L2 0 EBPA TABLE ENTRY U3A00920
0046 1808 93 | SRA 8 RIGHT JUSTIFY RSLT TO TEST U3A00930
0047 4C18 004ER 94 | BSC L TLU18,+- IS EBCDIC CHAR = TABLE CHAR U3A00940
0049 C0F5 95 | LD TEMP NO,RESTORE EBCDIC CHAR TO U3A00950
004A 72FF 96 | MDX 2 -1 ACC AND TRY NEXT CHAR. U3A00960
004B 70F8 97 | MDX TLU14 GO TO COMPARE U3A00970
004C C0F1 98 | LD H2001 IF NO MORE IN TABLE,SET U3A00980
004D D0DF 99 | STO CHECK OVERFLOW ON, CARRY OFF U3A00990
004E C600 0000 100 | TLU18 LD L2 0 PRTY TABLE ENTRY U3A01000
0050 7400 003AR 101 | MDX L CODE,0 IF 1443 CODE,GET LAST 8 U3A01010
0052 1008 102 | SLA 8 BITS OF TABLE ENTRY U3A01020
0053 E0E9 103 | AND HFF00 RET ONLY 8 BITS- ONE CHAR U3A01030
0054 6600 0000 104 | TLU26 LDX L2 *-* RESTORE XR2 U3A01040
0056 4C80 0040R 105 | BSC I TLU RETURN U3A01050
106 | * U3A01060
107 | *OBTAIN TABLE ADDRESS U3A01070
108 | * U3A01080
0058 0000 109 | SBRTA DC 0 RET ADDR U3A01090
0059 1008 110 | SLA 8 OBTAIN DISPLACEMENT OF TV U3A01100
005A 1888 111 | SRT 8 U3A01110
005B 6B04 112 | STX 3 SBA12+1 CONTENTS OF XR3 U3A01120
005C 8007 113 | A D0002 PT TO THIRD WD OF TV U3A01130
005D 8002 114 | A SBA12+1 THEN GET LOC OF SUBRT ADDR U3A01140
005E D001 115 | STO SBA12+1 U3A01150
005F C400 0000 116 | SBA12 LD L 0 SUBROUTINE ADDR IN ACC U3A01160
0061 8003 117 | A D0003 AVOID STORED LINK WD U3A01170
0062 4C80 0058R 118 | BSC I SBRTA RETURN W/ TBL ADDR IN ACC U3A01180
0064 0002 119 | D0002 DC +2 DECIMAL 2 U3A01190
0065 0003 120 | D0003 DC +3 DECIMAL 3 U3A01200
0066 121 | END U3A01210
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
CALL1 0035R 76 35
CALL2 0036R 77 38
CHECK 002DR 68 27 99
CODE 003AR 79 42 101
COUNT 003BR 80 34 54 66
D0001 003CR 81
D0002 0064R 119 113
D0003 0065R 120 117
EBPRT 0000R 24
EXIT 0033R 72 44
H2001 003ER 83 98
HFF00 003DR 82 103
INPUT 0016R 45 30
LEFT 001AR 51 67
LINK 0001R 25
OUTPT 0018R 46 32
RIGHT 0023R 59 55
SAV1 002ER 69 24
SAV2 0030R 70 26
SAVAQ 0038R 78 28 71
SBA12 005FR 116 112 114 115
SBRTA 0058R 109 36 39 118
STORE 0026R 62 58
TEMP 003FR 84 89 95
TLU 0040R 88 52 61 105
TLU14 0044R 92 37 97
TLU18 004ER 100 40 94
TLU26 0054R 104 90