ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:08 2020
Source File: \t5cardz.asm
CARDZ
2 | LIBR T5A00030
3 | ISS 01 CARDZ 0 4 T5A00040
4 | *************************************************** T5A00050
5 | * * T5A00060
6 | *STATUS-VERSION 2, MODIFICATION 9 * T5A00070
7 | * * T5A00080
8 | *FUNCTION/OPERATION- * T5A00090
9 | * SINGLE DEVICE (1442) CARD READ/PUNCH * T5A00100
10 | * SUBROUTINE FOR FORTRAN, CALLED BY SFIO * T5A00110
11 | * * T5A00120
12 | *ENTRY POINTS- * T5A00130
13 | * * CARDZ-CALL PORTION ENTERED BY SFIO * T5A00140
14 | * * CZ100-INTERRUPT LEVEL 1 ENTRY FOR COLUMN * T5A00150
15 | * INTERRUPTS * T5A00160
16 | * CZ110-INTERRUPT LEVEL 4 ENTRY FOR OPERATION* T5A00170
17 | * COMPLETE INTERRUPT * T5A00180
18 | *INPUT- * T5A00190
19 | * * ACC=0 FOR READ, 2 FOR WRITE * T5A00200
20 | * * XR1 CONTAINS BUFFER ADDRESS * T5A00210
21 | * * XR2 CONTAINS WORD COUNT * T5A00220
22 | * * T5A00230
23 | *OUTPUT * T5A00240
24 | * * A PUNCHED CARD OR BUFFER OF DATA * T5A00250
25 | * * T5A00260
26 | *EXTERNAL REFERENCES- * T5A00270
27 | * * $PRET * T5A00280
28 | * * $PST4 * T5A00290
29 | * * $EXIT * T5A00300
30 | * * $RCWZ * T5A00310
31 | * * HOLEZ * T5A00330
32 | *EXITS- * T5A00340
33 | * NORMAL- * T5A00350
34 | * * CALL PORTION-CARDZ+1, BACK TO SFIO * T5A00360
35 | * * INTERRUPT PORTION CZ100 FOR LEVEL 1 AND * T5A00370
36 | * CZ110 FOR LEVEL 4 TO RETURN TO ILS * T5A00380
37 | * * $EXIT WHEN // RECORD ENCOUNTERED * T5A00390
38 | * * T5A00400
39 | * ERROR- * T5A00410
40 | * * $PRET-MONITOR PRE-OPERATIVE ERROR TRAP * T5A00420
41 | * WHEN NOT IN READY STATUS. * T5A00430
42 | * * $PST4-MONITOR POST-OPERATIVE ERROR TRAP * T5A00440
43 | * WHEN ERROR CONDITION * T5A00450
44 | * * T5A00460
45 | *TABLES/WORK AREAS-N/A * T5A00470
46 | * * T5A00480
47 | *NOTES-REGISTERS NOT SAVED. * T5A00490
48 | * * T5A00500
49 | *************************************************** T5A00510
CARDZ
51 | * T5A00530
52 | * SYSTEM COMMUNICATION WORDS T5A00540
53 | * T5A00550
008D 54 | $PST4 EQU /8D POST OP ERR TRAP LEVEL 4 T5A00560
0038 55 | $EXIT EQU /38 MONITOR EXIT T5A00570
00F1 56 | $RWCZ EQU /F1 PREV 1442 RD/WRT SWITCH T5A00580
0028 57 | $PRET EQU /28 PRE-OP ERR TRAP T5A00590
58 | * T5A00610
59 | * PROGRAM ENTRY POINT T5A00620
60 | * T5A00630
0000 700F 61 | CARDZ MDX CZ200 BR TO START PROCESSING T5A00640
0001 4C80 0000 62 | BSC I *-* RETURN TO CALLING PROGRAM T5A00650
0003 0004R 63 | CZ010 DC * INTERRUPT SWITCH T5A00660
64 | * +=NO INTERRUPT, 0=COLUMN T5A00670
65 | * *INTERRUPT, -= OP COMPLETE T5A00680
66 | * T5A00690
67 | * T5A00700
68 | * COLUMN INTERRUPT ENTRY T5A00710
69 | * T5A00720
0004 0000 70 | CZ100 DC *-* COL. INTERRUPT ENTRY POINT T5A00730
0005 707B 71 | MDX CZ400 BR TO SERVICE INTERRUPT T5A00740
0006 8000 72 | DC /8000 NEG SIGN FOR OP COMPLETE T5A00750
73 | * T5A00760
74 | * PROCESS OP COMPLETE T5A00770
75 | * T5A00780
0007 0000 76 | CZ110 DC *-* OP COMPLETE INTERRUPT T5A00790
0008 0805 77 | XIO CZ900 SENSE WITH RESET T5A00800
0009 D004 78 | STO CZ920 SAVE DSW WORD TEMP STO T5A00810
000A C0FB 79 | LD CZ921 LOAD NEGATIVE WD T5A00820
000B D0F7 80 | STO CZ010 SAVE IN INTERRUPT SWITCH T5A00830
000C 4C80 0007R 81 | BSC I CZ110 RETURN TO ILS T5A00840
82 | * T5A00841
000E 83 | BSS E 0 T5A00842
000E 0000 84 | CZ900 DC 0 TEMP STO DSW WORD AND T5A00843
000F 1702 85 | DC /1702 *SENSE IOCC WITH RESET T5A00844
86 | * T5A00850
87 | * MAINLINE PROCESSING T5A00860
88 | * T5A00870
0010 691B 89 | CZ200 STX 1 CZ260+1 SAVE I/O BUFFER POINTER T5A00880
0011 D07A 90 | STO CZ912 SAVE READ/WRITE INDICATOR T5A00890
0012 4C18 001DR 91 | BSC L CZ230,+- BRANCH IF INDR=READ T5A00900
0014 0859*3169 92 | LIBF HOLEZ CONVERT WRITE BUFFER T5A00910
0015 C400 00F1 93 | LD L $RWCZ TEST PREVIOUS CARD OP T5A00920
0017 4C20 001BR 94 | BSC L CZ220,Z BRANCH IF PREVIOUS WRITE T5A00930
95 | * T5A00940
96 | * SET UP TO READ OR WRITE USING IOCCS T5A00950
97 | * T5A00960
0019 C87C 98 | CZ210 LDD CZ908 LOAD WRITE IOCC T5A00970
001A 7007 99 | MDX CZ240 BR TO PROCESS T5A00980
100 | * T5A00990
001B 7404 008DR 101 | CZ220 MDX L CZ913,4 SET FLAG TO TEST FOR // T5A01000
102 | * *CARD BEFORE WRITING ON IT T5A01010
103 | * T5A01020
001D 08F0 104 | CZ230 XIO CZ900 SENSE DSW T5A01030
001E 1003 105 | SLA 3 T5A01040
001F 4828 106 | BSC +Z SKIP IF NOT LAST CARD T5A01050
107 | * T5A01060
0020 0877 108 | XIO CZ910 FEED LAST CD (NO INTRP) T5A01070
109 | * T5A01080
0021 C872 110 | LDD CZ906 LOAD READ IOCC T5A01090
111 | * T5A01100
0022 D86F 112 | CZ240 STD CZ904 SET UP START RD/PUNCH IOCC T5A01110
0023 D06D 113 | STO CZ902+1 SET UP RD/PUNCH IOCC T5A01120
0024 1010 114 | SLA 16 T5A01130
0025 1000 115 | NOP 2-3 T5A01140
0026 1000 116 | NOP 2-3 T5A01141
0027 7003 117 | MDX CZ260 BR TO START I/O OPERATIONS T5A01150
118 | * T5A01160
119 | * 1442 NOT IN READY STATUS, LOAD T5A01170
120 | * INDICATOR AND BRANCH TO PRE-OP ERROR T5A01180
121 | * T5A01190
0028 C067 122 | CZ250 LD CZ922 LOAD ERROR INDICATOR T5A01200
0029 4400 0028 123 | BSI L $PRET BRANCH TO PRE-OP ERR TRAP T5A01210
124 | * T5A01220
002B 6500 0000 125 | CZ260 LDX L1 *-* SET BUFFER POINTER T5A01230
002D 71FF 126 | MDX 1 -1 DECR BY 1 T5A01240
002E 6971 127 | STX 1 CZ923 SAVE BUFFER ADDR-1 T5A01250
002F 6972 128 | STX 1 CZ925 T5A01260
0030 7101 129 | MDX 1 1 RESTORE TO BUFFER ADDR T5A01265
0031 08DC 130 | XIO CZ900 CHK IF READER/PUNCH READY T5A01270
0032 1002 131 | SLA 2 SHIFT ERROR BIT IN POS 2-9 T5A01280
0033 4C28 0039R 132 | BSC L CZ262,+Z BRANCH IF ERROR 2-9 T5A01290
0035 100D 133 | SLA 13 SHIFT NOT READY BIT 2-9 T5A01300
0036 4C28 0028R 134 | BSC L CZ250,+Z BRANCH IF NOT READY 2-9 T5A01310
0038 701A 135 | MDX CZ270 BRANCH TO PROCESS RCD 2-9 T5A01312
136 | * 2-9 T5A01314
0039 100E 137 | CZ262 SLA 14 CLEAR ACC 2-9 T5A01316
003A D066 138 | STO CZ924 SET NO START SW IN ERROR T5A01320
139 | * T5A01330
140 | * ERROR ROUTINE, ERROR T5A01340
141 | * T5A01350
003B C054 142 | CZ265 LD CZ922 LOAD ERROR INDICATOR T5A01360
003C 4400 008D 143 | BSI L $PST4 BR TO POST-OP ERR TRAP T5A01370
003E 08CF 144 | XIO CZ900 TEST IF STILL ERROR COND2-9 T5A01372
003F E064 145 | AND CZ928 2-9 T5A01374
0040 4C20 003BR 146 | BSC L CZ265,Z IF ERROR BRANCH 2-9 T5A01376
0042 7400 00F1 147 | MDX L $RWCZ,0 TEST IF PREV OP A READ T5A01380
0044 70E6 148 | MDX CZ260 BR TO RESTART IF NOT T5A01390
0045 C05B 149 | LD CZ924 LOAD PREVIOUS START WORD T5A01400
0046 4C18 004CR 150 | BSC L CZ266,+- BR TO FEED IF NO I/O START T5A01410
0048 C057 151 | LD CZ923 LOAD CURRENT BUFR ADDR T5A01420
0049 9058 152 | S CZ925 COMPARE WITH START ADDR T5A01430
004A 4C20 002BR 153 | BSC L CZ260,Z BR TO RESTART IF COL READ T5A01440
154 | * FEED ROUTINE T5A01450
004C 084B 155 | CZ266 XIO CZ910 FEED A CARD T5A01460
004D C04A 156 | LD CZ910 LOAD CONSTANT ADDR T5A01470
004E D031 157 | STO CZ390+1 SET UP ADDR T5A01480
004F 7007 158 | MDX CZ300 BR TO WAIT FOR INTERRUPT T5A01490
159 | * T5A01500
160 | * WHEN EXIT FROM CARDZ SUBROUTINE T5A01510
161 | * SHOULD OCCUR, A BRANCH WILL COME T5A01520
162 | * HERE AND RESTART PROCEDURES WILL T5A01530
163 | * FOLLOW T5A01540
164 | * T5A01550
0050 C049 165 | CZ267 LD CZ926 T5A01560
0051 D02E 166 | STO CZ390+1 SAVE IN EXIT BRANCH T5A01570
0052 70D8 167 | MDX CZ260 BR TO REPROCESS T5A01580
168 | * T5A01590
169 | * NO ERROR FOUND, START PROCESSING T5A01600
170 | * T5A01610
0053 C038 171 | CZ270 LD CZ912 GET READ/WRITE INDICATOR T5A01620
0054 D400 00F1 172 | STO L $RWCZ SET PREVIOUS,CURRENT OP T5A01630
0056 0839 173 | XIO CZ902 START READER OR PUNCH T5A01640
174 | * T5A01650
175 | * WAIT FOR AN INTERRUPT AND PROCESS T5A01660
176 | * AFTER INTERRUPT FINISHED T5A01670
177 | * T5A01680
0057 C0AB 178 | CZ300 LD CZ010 LOAD INTERRUPT TYPE SWITCH T5A01690
0058 4C10 0057R 179 | BSC L CZ300,- BR IF COLUMN INTERRUPT T5A01720
005A 68A8 180 | STX CZ010 RESET INTR SWITCH 2-9 T5A01725
181 | * T5A01730
182 | * OPERATION COMPLETE INTERRUPT, POST T5A01740
183 | * PROCESSING T5A01750
184 | * T5A01760
005B C0B2 185 | LD CZ920 LOAD DSW WORD T5A01770
005C 1003 186 | SLA 3 ERROR-C, LAST CD-SIGN T5A01780
005D 4802 187 | BSC C SKIP IF NO ERROR T5A01790
005E 6842 188 | STX CZ924 SET ERROR INDICATOR T5A01800
005F 4C02 003BR 189 | BSC L CZ265,C BRANCH IF ERROR T5A01810
0061 4C10 0065R 190 | BSC L *+2,- BRANCH IF NOT LAST CARD T5A01820
0063 1000 191 | NOP 2-3 T5A01830
0064 1000 192 | NOP 2-3 T5A01831
0065 C027 193 | LD CZ913 LOAD RD BEFORE WRITE INDR T5A01840
0066 4C20 006FR 194 | BSC L CZ330,Z BR IF OFF T5A01850
0068 C023 195 | LD CZ912 LOAD READ/WRITE FALG T5A01860
0069 4C20 0001R 196 | BSC L CARDZ+1,Z EXIT ON WRITE AFTER PREVRD T5A01870
197 | * T5A01880
198 | * CHECK READ O/P BUFFER FOR // BLANK T5A01890
199 | * T5A01900
006B C102 200 | CZ310 LD 1 2 GET 3RD WORD O/P BUFR T5A01910
006C D030 201 | STO CZ918-2 SAVE IN O/P BUFFER T5A01920
006D C900 202 | LDD 1 0 LOAD 1ST 2WDS TO CHK T5A01930
006E 7003 203 | MDX CZ340 T5A01940
006F 1010 204 | CZ330 SLA 16 CLEAR RD BEFORE WRITE INDR T5A01950
0070 D01C 205 | STO CZ913 T5A01960
0071 C82C 206 | LDD CZ918-1 LOAD TEMP BUFR T5A01970
0072 9830 207 | CZ340 SD CZ919 TEST BLANK ACC & ENTENSION T5A01980
0073 4818 208 | BSC +- SKIP IF NOT BLANK ACC T5A01990
0074 18D0 209 | RTE 16 SHIFT EXTENSION TO ACC T5A02000
0075 4C20 007AR 210 | BSC L CZ350,Z BR OUT IF NO // T5A02010
0077 C025 211 | LD CZ918-2 CHECK FOR BLANK T5A02020
0078 4818 212 | BSC +- SKIP IF NOT BLANK T5A02030
0079 6038 213 | LDX $EXIT SYSTEM EXIT IF FOUND T5A02040
214 | * T5A02050
215 | * DATA NOT MONITOR CTL CD (// BLANK) T5A02060
216 | * T5A02070
007A C011 217 | CZ350 LD CZ912 TEST FOR RD OR WRITE T5A02080
007B 4C20 0019R 218 | BSC L CZ210,Z GO COMPLETE WRITE T5A02090
219 | * CONVERT READIN DATA T5A02100
007D 6250 220 | LDX 2 80 SET UP WD CNT FOR HOLEZ T5A02110
007E 0859*3169 221 | LIBF HOLEZ CONVERT READ BUFFER T5A02120
007F 4C00 0001R 222 | CZ390 BSC L CARDZ+1 NORMAL EXIT FR SUBROUTINE T5A02130
223 | * T5A02140
224 | * COLUMN INTERRUPT T5A02150
225 | * T5A02160
0081 1010 226 | CZ400 SLA 16 CLEAR ACC T5A02170
0082 D400 0003R 227 | STO L CZ010 SET COLUMN INTERRUPT INDR T5A02180
0084 C008 228 | LD CZ913 LOAD RD-THEN WRITE FLAG T5A02190
0085 4C20 00A5R 229 | BSC L CZ410,Z BR WRITE W/O PREVIOUS RD T5A02200
0087 7401 00A0R 230 | MDX L CZ923,1 INCR PREVIOUS BUFFER ADDR T5A02210
0089 C016 231 | LD CZ923 GET NEW ADDR T5A02220
008A D007 232 | STO CZ904 STORE IN RD/WRT IOCC T5A02230
008B 7020 233 | MDX CZ420 BR TO READ OR WRITE T5A02240
234 | * T5A02250
235 | * CONSTANTS AND DATA AREAS T5A02260
236 | * T5A02270
008C 237 | BSS E 0 T5A02280
008C 0000 238 | CZ912 DC 0 CURRENT RD/WRITE FLAG T5A02310
008D 0000 239 | CZ913 DC 0 COUNT ON CHARS TO BE SAVED T5A02320
008E 0000 240 | CZ901 DC 0 T5A02330
008F 1701 241 | DC /1701 *SENSE IOCC WITHOUT RESET T5A02340
0090 1000 242 | CZ902 DC /1000 ERROR DISPLAY WD AND STO T5A02350
0091 0000 243 | DC 0 *FOR START RD/WRITE IOCC T5A02360
0092 0000 244 | CZ904 DC 0 READ OR PUNCH LOC AND T5A02370
0093 0000 245 | DC 0 *IOCC SET BY PROGRAM T5A02380
0094 1404 246 | CZ906 DC /1404 START READ IOCC AND T5A02390
0095 1200 247 | DC /1200 *READ IOCC T5A02400
0096 1401 248 | CZ908 DC /1401 START WRITE IOCC AND T5A02410
0097 1100 249 | DC /1100 *WRITE IOCC T5A02420
0098 0050R 250 | CZ910 DC CZ267 LOC OF FEED ERR PROCESSING T5A02430
0099 1402 251 | DC /1402 *AND FEED IOCC T5A02440
252 | * *NOW-ZERO INDICATES READ T5A02450
253 | * *AND TEST BEFORE PUNCHING T5A02460
009A 0001R 254 | CZ926 DC CARDZ+1 2-3 T5A02461
009B 009BR 255 | CZ914 DC CZ918-4 TEMP BUFR ADDR-4 T5A02470
009C 0000 256 | DC 0 TEMP 4 WD BUFR TO STORE T5A02480
009D 0000 257 | DC 0 *FIRST 3 COLS OF DATA ON T5A02490
009E 0000 258 | DC 0 *CD +ALL OTHER COLS IN 4TH T5A02500
009F 0000 259 | CZ918 DC 0 *WD TO TEST FOR //BLANK T5A02510
000ER 260 | CZ920 EQU CZ900 SAVE DSW WORD T5A02530
0006R 261 | CZ921 EQU CZ100+2 BEGATIVE SIGN CONSTANT T5A02540
0090R 262 | CZ922 EQU CZ902 ERROR INDICATOR T5A02550
00A0 0000 263 | CZ923 DC 0 TEMP STO BUFR ADDR-1 T5A02560
00A1 0000 264 | CZ924 DC 0 ERR TYPE SW T5A02570
00A2 0000 265 | CZ925 DC 0 BUFFER ADDR FOR ERR CMP T5A02580
00A3 3000 266 | CZ919 DC /3000 EBC SLASH(ODD ADDR TO SD2-3 T5A02590
00A4 2001 267 | CZ928 DC /2001 MASK 2-9 T5A02592
268 | * T5A02600
269 | * SET UP TO READ BEFORE WRITE. PREVIOUS T5A02610
270 | * CARD WAS WRITTEN T5A02620
271 | * T5A02630
00A5 80F5 272 | CZ410 A CZ914 GET ADDR OF TEMPORARY T5A02640
273 | * BUFFER WHERE 3 COLS OF T5A02650
274 | * DATA & ALL OTHER COLS TO T5A02660
275 | * BE STORED T5A02670
276 | * T5A02680
00A6 D0EB 277 | STO CZ904 SET UP WRITE IOCC T5A02690
00A7 74FF 008DR 278 | MDX L CZ913,-1 DECR 4 SAVE CHAR CNT T5A02700
00A9 7002 279 | MDX CZ420 BR TO PROCESS COLS 1-3 T5A02710
00AA 7401 008DR 280 | MDX L CZ913,1 RESET CNT SO WDS 4-80 T5A02720
281 | * *STORED IN 1 WD TEMP BUFR T5A02730
282 | * T5A02740
00AC 08E5 283 | CZ420 XIO CZ904 READ OR WRITE COLUMN T5A02750
00AD 08E0 284 | XIO CZ901 RESET INTERRUPT INDRS T5A02760
00AE 4C80 0004R 285 | BSC I CZ100 BR OUT OF COL. INTERRUPT T5A02770
00B0 286 | END T5A02780
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
$EXIT 0038 55 213
$PRET 0028 57 123
$PST4 008D 54 143
$RWCZ 00F1 56 93 147 172
CARDZ 0000R 61 196 222 254
CZ010 0003R 63 80 178 180 227
CZ100 0004R 70 261 285
CZ110 0007R 76 81
CZ200 0010R 89 61
CZ210 0019R 98 218
CZ220 001BR 101 94
CZ230 001DR 104 91
CZ240 0022R 112 99
CZ250 0028R 122 134
CZ260 002BR 125 89 117 148 153 167
CZ262 0039R 137 132
CZ265 003BR 142 146 189
CZ266 004CR 155 150
CZ267 0050R 165 250
CZ270 0053R 171 135
CZ300 0057R 178 158 179
CZ310 006BR 200
CZ330 006FR 204 194
CZ340 0072R 207 203
CZ350 007AR 217 210
CZ390 007FR 222 157 166
CZ400 0081R 226 71
CZ410 00A5R 272 229
CZ420 00ACR 283 233 279
CZ900 000ER 84 77 104 130 144 260
CZ901 008ER 240 284
CZ902 0090R 242 113 173 262
CZ904 0092R 244 112 232 277 283
CZ906 0094R 246 110
CZ908 0096R 248 98
CZ910 0098R 250 108 155 156
CZ912 008CR 238 90 171 195 217
CZ913 008DR 239 101 193 205 228 278 280
CZ914 009BR 255 272
CZ918 009FR 259 201 206 211 255
CZ919 00A3R 266 207
CZ920 000ER 260 78 185
CZ921 0006R 261 79
CZ922 0090R 262 122 142
CZ923 00A0R 263 127 151 230 231
CZ924 00A1R 264 138 149 188
CZ925 00A2R 265 128 152
CZ926 009AR 254 165
CZ928 00A4R 267 145