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