ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:09 2020
Source File: \u2pnch0.asm
1 | * HDNG 1442-5 CARD PUNCH IOCS ROUTINE U2H00010
2 | *************************************************** U2H00020
3 | *STATUS- CHANGE LEVEL 000 * U2H00030
4 | *FUNCTION/OPERATION- * U2H00040
5 | * THIS 1130 SUBROUTINE OPERATES THE 1442-5 * U2H00050
6 | * CARD PUNCH. IT INITIATES REQUESTED OPERA- * U2H00060
7 | * TIONS, PROCESSES ANY COLUMN OR OPERATION * U2H00070
8 | * COMPLETE INTERRUPTS, AND AUTOMATICALLY * U2H00080
9 | * INITIATES ERROR RECOVERY PROCEDURES. * U2H00090
10 | * * U2H00100
11 | * IDENTIFYING FEATURE - NO ERROR PARAMETER * U2H00110
12 | *ENTRY POINTS- * U2H00120
13 | * 1. PNCH0 CALL ENTRANCE FOR TEST, PUNCH * U2H00130
14 | * OR FEED OPERATIONS. * U2H00140
15 | * E.G. LIBF PNCH0 * U2H00150
16 | * DC /2000 * U2H00160
17 | * DC IOBUF * U2H00170
18 | * 2. INT1 COLUMN INTERRUPT ENTRY POINT. * U2H00180
19 | * 3. INT2 OPERATION COMPLETE INTERRUPT ENTRY* U2H00190
20 | * POINT. * U2H00200
21 | *INPUT- NONE OTHER THAN FROM THE PARAMETERS IN * U2H00210
22 | * LIBF CALLING SEQUENCE. * U2H00220
23 | * VALID PARAMETERS ARE- * U2H00230
24 | * /0000 TEST * U2H00240
25 | * /2000 PUNCH * U2H00250
26 | * /3000 FEED * U2H00260
27 | *OUTPUT- SUBR WILL PUNCH UP TO 80 COLUMNS FROM * U2H00270
28 | * I/O BUFFER TO CARD AS SPECIFIED BY CALL. * U2H00280
29 | * THE LEFT 12 BITS FROM EACH I/O BUFFER WORD * U2H00290
30 | * ARE PUNCHED INTO THE CARD COLUMNS. * U2H00300
31 | *EXTERNAL SUBROUTINES- NONE. * U2H00310
32 | *EXITS- * U2H00320
33 | * NORMAL- * U2H00330
34 | * 1. CA34 IF NO PRE-OP ERROR HAS BEEN DE- * U2H00340
35 | * TECTED, THE EXIT FROM CA34 IS BACK* U2H00350
36 | * TO THE CALLER AFTER THE REQUESTED * U2H00360
37 | * 1442 OPERATION HAS BEEN INITIATED * U2H00370
38 | * 2. NT22 THE EXIT FROM NT22 IS BACK TO THE* U2H00380
39 | * CALLER VIA ILS00 AFTER THE COLUMN * U2H00390
40 | * INTERRUPT IS SERVICED. * U2H00400
41 | * 3. NT10X-1 CONTROL RETURNS TO CALLERS PRO- * U2H00410
42 | * GRAM VIA ILS04 AFTER OP COMPLETE * U2H00420
43 | * PROCESSING HAS BEEN FINISHED. * U2H00430
44 | * ERROR- * U2H00440
45 | * 1. CA34 IF A PRE-OP ERROR OR NOT READY * U2H00450
46 | * CONDITION IS DETECTED, THE SUBR * U2H00460
47 | * WILL BRANCH TO HEX 0029 VIA CA34 * U2H00470
48 | * AND DISPLAY ONE OF TWO CODES IN * U2H00480
49 | * ACCUMULATOR. * U2H00490
50 | * 1000 IS DISPLAYED IF 1442 IS NOT * U2H00500
51 | * READY. 1001 IS DISPLAYED IF AN * U2H00510
52 | * ERROR IS DISCOVERED IN CALLING * U2H00520
53 | * PARAMETERS OR AREAS REFERENCED BY * U2H00530
54 | * THEM. * U2H00540
55 | *TABLES/WORK AREAS- NONE. * U2H00550
56 | *ATTRIBUTES- REUSABLE. * U2H00560
57 | *NOTES- THIS SUBR CONTAINS NO WAIT INSTRUCTIONS. * U2H00570
58 | *************************************************** U2H00580
59 | LIBR U2H00590
0000 60 | 1130 ISS 01 PNCH0 0 4 U2H00600
61 | *************************************************** U2H00610
62 | * LOADER DEFINED LOCATIONS * U2H00620
63 | *************************************************** U2H00630
0000 6945 64 | PNCH0 STX 1 CA30+1 LIBF ENTRANCE (+0) U2H00640
0001 6580 0000 65 | LINK LDX I1 0 LOADER STORES TV ADDR (+2) U2H00650
0003 7006 66 | MDX CA10 TO PROCESS CALL U2H00660
0004 0000 67 | INT1 DC 0 COLUMN INTERRUPT (+4) U2H00670
0005 4C00 00BCR 68 | BSC L NT14 U2H00680
0007 0000 69 | INT2 DC 0 OP CMPLTE INTERRUPT (+7) U2H00690
0008 4C00 0086R 70 | BSC L NT10 U2H00700
71 | *************************************************** U2H00710
72 | * LIBF PROCESSING * U2H00720
73 | *************************************************** U2H00730
74 | * THIS PORTION STORES CALLING SEQUENCE INFO * U2H00740
75 | * AND CHECKS THE DEVICE STATUS BEFORE ANY I/O * U2H00750
76 | * OPERATION IS INITIATED. A CALLING ERROR OR * U2H00760
77 | * NOT READY 1442 CAUSES AN ERROR EXIT TO * U2H00770
78 | * LOCATION 41. IF THE OPERATION WILL CAUSE * U2H00780
79 | * INTERRUPTS, THE ROUTINE IS SET BUSY AND THE * U2H00790
80 | * IOCS COUNTER IS INCREMENTED TO INDICATE * U2H00800
81 | * INTERRUPT(S) PENDING. * U2H00810
82 | *************************************************** U2H00820
000A D065 83 | CA10 STO TEMP SAVE STATUS U2H00830
000B 283D 84 | STS CA32 U2H00840
000C 6A3B 85 | STX 2 CA31+1 U2H00850
000D C100 86 | LD 1 0 X1= ADDR OF CALL+1 U2H00860
000E 180C 87 | SRA 12 IS FUNCTION TEST U2H00870
000F 4C20 0015R 88 | BSC L CA14,Z NO U2H00880
0011 C062 89 | LD BUSY YES, IS ROUTINE BUSY U2H00890
0012 4818 90 | BSC +- SKIP IF YES U2H00900
0013 7101 91 | MDX 1 +1 NO, EXIT TO CALL+3 U2H00910
0014 702D 92 | MDX CA28 YES, EXIT TO CALL+2 U2H00920
0015 9061 93 | CA14 S D0004 IS FUNCTION LEGAL U2H00930
0016 4C30 0057R 94 | BSC L CA40,Z- NO, ERROR U2H00940
0018 8061 95 | A H7003 RESULT WILL BE 7003, 7002 U2H00950
0019 D00B 96 | STO CA20 *7001, OR 7000 U2H00960
001A 8057 97 | A CONST MODIFY THE COMMAND U2H00970
001B D007 98 | STO CA18 *AT CA18 U2H00980
001C C057 99 | CA15 LD BUSY IS ROUTINE BUSY U2H00990
001D 4C20 001CR 100 | BSC L CA15,Z YES, WAIT TIL NOT U2H01000
001F 0852 101 | CA17 XIO SENSE-1 IS DEVICE READY U2H01010
0020 4C04 0059R 102 | BSC L CA42,E NO, ERROR U2H01020
0022 C050 103 | LD SENSE SETUP CONTROL IOCC U2H01030
0023 905B 104 | CA18 S SETUP MODIFIED INSTRUC U2H01040
0024 D04C 105 | STO INIT U2H01050
0025 7000 106 | CA20 MDX CA20+1 WHAT IS FUNCTION U2H01060
0026 7030 107 | MDX CA40 READ IS ILLEGAL U2H01070
0027 7024 108 | MDX CA36 = PUT --PUNCH-- U2H01080
0028 7005 109 | MDX CA25 = FEED U2H01090
0029 702D 110 | MDX CA40 STK IS ILLEGAL U2H01100
002A C101 111 | CA24 LD 1 1 SAVE DATA ADDRESS U2H01110
002B D042 112 | STO COLM U2H01120
002C D051 113 | STO RSTRT+1 U2H01130
002D 7101 114 | MDX 1 +1 SET X1 TO SKIP 2ND PARAM U2H01140
002E 0843 115 | CA25 XIO SENSE-1 U2H01150
002F 1003 116 | SLA 3 IS LAST CARD IND ON U2H01160
0030 4C10 0037R 117 | BSC L CA25B,- NO U2H01170
0032 C0F2 118 | LD CA20 IS FUNCTION A FEED U2H01180
0033 4C04 0037R 119 | BSC L CA25B,E NO, PUNCH U2H01190
0035 083E 120 | XIO FEED-1 EJECT CARD U2H01200
0036 702C 121 | MDX CA43 TO DISPLAY NR CODE U2H01210
0037 7401 0032 122 | CA25B MDX L 50,+1 INCREMENT IOCS COUNTER U2H01220
0039 1000 123 | NOP U2H01230
003A C03B 124 | LD D0001 U2H01240
003B D038 125 | STO BUSY SET ROUTINE BUSY U2H01250
003C C03F 126 | CA26 LD ERROR U2H01260
003D 4C20 0041R 127 | BSC L CA27,Z U2H01270
003F 0830 128 | XIO INIT-1 INITIATE I/O U2H01280
0040 7001 129 | MDX CA28 SKIP FEED OPERATION U2H01290
0041 0832 130 | CA27 XIO FEED-1 U2H01300
0042 7101 131 | CA28 MDX 1 +1 U2H01310
0043 C02C 132 | LD TEMP U2H01320
0044 6906 133 | CA29 STX 1 CA34+1 SET EXIT TO SKIP 1ST PARAM U2H01330
0045 6500 0000 134 | CA30 LDX L1 0 RESTORE STATUS U2H01340
0047 6600 0000 135 | CA31 LDX L2 0 *AND INDEX REGISTERS U2H01350
0049 2000 136 | CA32 LDS 0 U2H01360
004A 4C00 0000 137 | CA34 BSC L 0 EXIT U2H01370
004C 9037 138 | CA36 S SETUP+5 U2H01380
004D D021 139 | STO COLM+1 SETUP PUNCH I/O U2H01390
004E C580 0001 140 | LD I1 1 U2H01400
0050 4C08 0057R 141 | BSC L CA40,+ = ERROR IF ZERO OR NEG U2H01410
0052 D028 142 | STO COUNT U2H01420
0053 D029 143 | STO RSTRT SAVE WORD COUNT U2H01430
0054 9024 144 | S D0080 DO NOT PUNCH OVER 80 COL U2H01440
0055 4808 145 | BSC + SKIP ON ERROR U2H01450
0056 70D3 146 | MDX CA24 GO GET DATA U2H01460
0057 C02B 147 | CA40 LD H1001 ERROR CODE - ILLEGAL CALL U2H01470
0058 700B 148 | MDX CA44 TO ERROR EXIT --LOC 41 U2H01480
0059 1801 149 | CA42 SRA 1 IS DEVICE BUSY U2H01490
005A 4C04 001FR 150 | BSC L CA17,E YES, WAIT TIL NOT U2H01500
005C 1003 151 | SLA 3 IS DSW ERROR INDIC ON U2H01510
005D 4C10 0063R 152 | BSC L CA43,- NO U2H01520
005F C0C5 153 | LD CA20 YES, IS FUNCT FEED U2H01530
0060 4C04 0063R 154 | BSC L CA43,E NO U2H01540
0062 D019 155 | STO ERROR YES, INDIC SKIP 1ST CD U2H01550
0063 C01E 156 | CA43 LD H1000 ERROR CODE - DVCE NOT RDY U2H01560
0064 71FF 157 | CA44 MDX 1 -1 U2H01570
0065 6D00 0028 158 | STX L1 40 STORE CALL ADDR IN 40 U2H01580
0067 6129 159 | LDX 1 41 SET EXIT FOR 41 U2H01590
0068 70DB 160 | MDX CA29 TO SOFT ERROR TRAP U2H01600
161 | *************************************************** U2H01610
162 | * CONSTANTS * U2H01620
163 | *************************************************** U2H01630
006A 164 | BSS E 0 U2H01640
006A 0000 165 | SENSR DC 0 O U2H01650
006B 1702 166 | DC /1702 SENSE-RESET OP.COMPL.INT.E U2H01660
006C 0084R 167 | ADDR DC PLC-1 ADDR TO REPLACE O/P AREA E U2H01670
006D 1701 168 | CHAR DC /1701 SENSE-RESET COL.INTRP. O U2H01680
006E 0000 169 | COLM DC 0 IOCC FOR COLUMN I/O E U2H01690
006F 0000 170 | DC 0 IOCC FOR PUNCH O U2H01700
0070 0000 171 | TEMP DC 0 TEMPORARY STORAGE U2H01710
0071 0400 172 | INIT DC /0400 IOCC TO INITIATE I/O O U2H01720
0072 205B 173 | CONST DC SETUP-CA18-1+/2000 U2H01730
0073 1700 174 | SENSE DC /1700 SENSE DSW WITHOUT RESET O U2H01740
0074 0000 175 | BUSY DC 0 ROUTINE BUSY INDICATOR U2H01750
0075 1402 176 | FEED DC /1402 IOCC TO FEED 1 CARD O U2H01760
0076 0001 177 | D0001 DC +1 CONSTANT U2H01770
0077 0004 178 | D0004 DC +4 CONSTANT U2H01780
0078 0008 179 | D0008 DC +8 CONSTANT U2H01790
0079 0050 180 | D0080 DC +80 CONSTANT U2H01800
007A 7003 181 | H7003 DC /7003 INSTRUCTIONS = MDX X +3 U2H01810
007B 0000 182 | COUNT DC 0 NO. WORDS TO XFER U2H01820
007C 0000 183 | ERROR DC 0 SKIP ONE CARD INDIC U2H01830
007D 0000 184 | RSTRT DC 0 RESTART INFO - WORD COUNT U2H01840
007E 0000 185 | DC 0 DATA ADDR U2H01850
007F 02FC 186 | SETUP DC /02FC INITIATE IOCC SETUP - GET U2H01860
0080 02FF 187 | DC /02FF - PUT U2H01870
0081 02FE 188 | DC /02FE - FEED U2H01880
0082 1000 189 | H1000 DC /1000 CONSTANT U2H01890
0083 1001 190 | H1001 DC /1001 CONSTANT U2H01900
0084 0301 191 | DC /0301 - PUT U2H01910
0085 0000 192 | PLC DC *-* WD FOR LAST CHAR PUNCHED U2H01920
008D 193 | $PST4 EQU /8D POST-OPERATIVE ERROR TRAP U2H01930
194 | *************************************************** U2H01940
195 | * OP COMPLETE INTERRUPT PROCESSING * U2H01950
196 | *************************************************** U2H01960
197 | * THIS PORTION IS ENTERED FROM INTERR LEVEL * U2H01970
198 | * SROUTINE 04. IF NO ERROR HAS BEEN DETECTED, * U2H01980
199 | * THE ROUTINE IS SET NOT BUSY AND THE IOCS * U2H01990
200 | * COUNTER IS DECREMENTED TO INDICATE * U2H02000
201 | * INTERRUPT PROCESSING COMPLETED. OTHERWISE * U2H02010
202 | * THE SUBR.WAITS AT THE POST-OPERATIVE ERROR- * U2H02020
203 | * TRAP UNTIL THE OPERATOR HAS * U2H02030
204 | * INTERVENED AND THE 1442 BECOMES READY, AT * U2H02040
205 | * WHICH TIME THE CARDS ARE POSITIONED AND THE * U2H02050
206 | * I/O OPERATION IS RE-INITIATED. * U2H02060
207 | *************************************************** U2H02070
0086 08E3 208 | NT10 XIO SENSR SENSE DSW WITH RESET U2H02080
0087 1003 209 | SLA 3 IS OPERATION OK U2H02090
0088 4C02 009FR 210 | BSC L NT11,C NO, ERROR U2H02100
008A 4C28 0099R 211 | NT10B BSC L NT10X,Z+ NO, LAST CARD U2H02110
008C C0EF 212 | LD ERROR TEST THE SKIP CARD INDIC U2H02120
008D 1002 213 | SLA 2 SET CARRY ON IF BITS 0 U2H02130
008E 1810 214 | SRA 16 *OR 1 ARE ON U2H02140
008F D0EC 215 | STO ERROR U2H02150
0090 4C02 00A3R 216 | BSC L NT12,C YES, INITIATE FUNCT U2H02160
0092 74FF 0032 217 | NT10E MDX L 50,-1 NO, TERMINATE FUNCT U2H02170
0094 1000 218 | NOP DECREMENT IOCS COUNT U2H02180
0095 1810 219 | SRA 16 U2H02190
0096 D0DD 220 | STO BUSY CLEAR ROUTINE BUSY U2H02200
0097 4C80 0007R 221 | BSC I INT2 EXIT U2H02210
0099 C0D2 222 | NT10X LD ADDR ENTERED WHEN LAST CARD U2H02220
009A 80DB 223 | A D0001 *INDICATOR IS ON U2H02230
009B F0D2 224 | EOR COLM IS FUNCTION PUT U2H02240
009C 4818 225 | BSC +- NO U2H02250
009D 08D6 226 | XIO FEED-1 YES, EJECT LAST CD U2H02260
009E 70F3 227 | MDX NT10E TO TERMINATE U2H02270
009F C0D1 228 | NT11 LD INIT IS FUNCT PUNCH U2H02280
00A0 4C04 00A3R 229 | BSC L NT12,E YES, DONT SKIP U2H02290
00A2 7010 230 | MDX NT13B FUNCT IS FEED U2H02300
00A3 08C8 231 | NT12 XIO CHAR-1 U2H02310
00A4 4C04 00B8R 232 | BSC L NT13C,E TO ERROR TRAP IF NOT READY U2H02320
00A6 C0D5 233 | LD ERROR IS CARD SKIP NECESSARY U2H02330
00A7 4C18 00ACR 234 | BSC L NT13,+- NO U2H02340
00A9 08CA 235 | XIO FEED-1 SKIP 1ST CARD U2H02350
00AA 4C80 0007R 236 | BSC I INT2 EXIT THROUGH ILS04 U2H02360
00AC C0D0 237 | NT13 LD RSTRT GET I/O WD CNT U2H02370
00AD D0CD 238 | STO COUNT SETUP FOR RETRY U2H02380
00AE C0CF 239 | LD RSTRT+1 SET UP BUFFER ADDR U2H02390
00AF D0BE 240 | STO COLM U2H02400
00B0 08BF 241 | XIO INIT-1 INITIATE I/O OPERATION U2H02410
00B1 4C80 0007R 242 | BSC I INT2 EXIT U2H02420
00B3 4C02 00A3R 243 | NT13B BSC L NT12,C MO SKIP IF FD CHK (RD) U2H02430
00B5 C0C4 244 | LD H7003 U2H02440
00B6 D0C5 245 | STO ERROR U2H02450
00B7 70EB 246 | MDX NT12 U2H02460
247 | * U2H02470
00B8 C0C9 248 | NT13C LD H1000 NOT READY ERROR CODE U2H02480
00B9 4400 008D 249 | BSI L $PST4 POST-OPERATIVE ERROR TRAP U2H02490
00BB 70E7 250 | MDX NT12 TRY AGAIN U2H02500
251 | *************************************************** U2H02510
252 | * COLUMN INTERRUPT PROCESSING * U2H02520
253 | *************************************************** U2H02530
254 | * THIS PORTION IS ENTERED FROM INTERR LEVEL * U2H02540
255 | * SUBROUTINE 00. * U2H02550
256 | * WHEN THE LAST COLUMN REQUESTED IS * U2H02560
257 | * PUNCHED, AN INDICATION IS GIVEN TO THE 1442 * U2H02570
258 | * TO INITIATE AN OP COMPLETE INTERRUPT. * U2H02580
259 | *************************************************** U2H02590
00BC 08AF 260 | NT14 XIO CHAR-1 SENSE WITH RESET U2H02600
00BD 74FF 007BR 261 | MDX L COUNT,-1 ANY MORE COLS TO PROCESS U2H02610
00BF 7008 262 | MDX NT18 YES U2H02620
00C0 7401 006ER 263 | NT16 MDX L COLM,+1 NO, STORE STOP PUNCH U2H02630
00C2 C480 006ER 264 | LD I COLM *BIT (BIT 12) IN COL U2H02640
00C4 E8B3 265 | OR D0008 DATA U2H02650
00C5 D0BF 266 | STO PLC U2H02660
00C6 C0A5 267 | LD ADDR PUNCH FROM TEMPORARY U2H02670
00C7 D0A6 268 | STO COLM *LOCATION U2H02680
00C8 7401 006ER 269 | NT18 MDX L COLM,+1 SET ADDR FOR NEXT COLUMN U2H02690
00CA 08A3 270 | NT20 XIO COLM EXECUTE COLUMN I/O U2H02700
00CB 4C80 0004R 271 | NT22 BSC I INT1 EXIT U2H02710
00CD 272 | END U2H02720
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
$PST4 008D 193 249
ADDR 006CR 167 222 267
BUSY 0074R 175 89 99 125 220
CA10 000AR 83 66
CA14 0015R 93 88
CA15 001CR 99 100
CA17 001FR 101 150
CA18 0023R 104 98 173
CA20 0025R 106 96 118 153
CA24 002AR 111 146
CA25 002ER 115 109
CA25B 0037R 122 117 119
CA26 003CR 126
CA27 0041R 130 127
CA28 0042R 131 92 129
CA29 0044R 133 160
CA30 0045R 134 64
CA31 0047R 135 85
CA32 0049R 136 84
CA34 004AR 137 133
CA36 004CR 138 108
CA40 0057R 147 94 107 110 141
CA42 0059R 149 102
CA43 0063R 156 121 152 154
CA44 0064R 157 148
CHAR 006DR 168 231 260
COLM 006ER 169 112 139 224 240 263 264 268 269 270
CONST 0072R 173 97
COUNT 007BR 182 142 238 261
D0001 0076R 177 124 223
D0004 0077R 178 93
D0008 0078R 179 265
D0080 0079R 180 144
ERROR 007CR 183 126 155 212 215 233 245
FEED 0075R 176 120 130 226 235
H1000 0082R 189 156 248
H1001 0083R 190 147
H7003 007AR 181 95 244
INIT 0071R 172 105 128 228 241
INT1 0004R 67 271
INT2 0007R 69 221 236 242
LINK 0001R 65
NT10 0086R 208 70
NT10B 008AR 211
NT10E 0092R 217 227
NT10X 0099R 222 211
NT11 009FR 228 210
NT12 00A3R 231 216 229 243 246 250
NT13 00ACR 237 234
NT13B 00B3R 243 230
NT13C 00B8R 248 232
NT14 00BCR 260 68
NT16 00C0R 263
NT18 00C8R 269 262
NT20 00CAR 270
NT22 00CBR 271
PLC 0085R 192 167 266
PNCH0 0000R 64
RSTRT 007DR 184 113 143 237 239
SENSE 0073R 174 101 103 115
SENSR 006AR 165 208
SETUP 007FR 186 104 138 173
TEMP 0070R 171 83 132