ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:09 2020
Source File: \u2read1.asm
READ1,2501 CARD READ ROUTINE
2 | *************************************************** U2M00020
3 | *TITLE- READ1 * U2M00030
4 | *STATUS- CHANGE LEVEL 000 * U2M00040
5 | *FUNCTION/OPERATION- * U2M00050
6 | * THIS 1130 SUBROUTINE OPERATES THE PRIMARY * U2M00060
7 | * 2501 CARD READER. IT INITIATES REQSTD * U2M00070
8 | * OPERATIONS, PROCESSES OPERATION COMPLETE * U2M00080
9 | * INTERRUPTS,INITIATES EXITS TO USERS ERR.RTN.* U2M00090
10 | * WHEN AN ERROR OR LAST CARD IS ENCOUNTERED * U2M00100
11 | * * U2M00110
12 | * IDENTIFYING FEATURES * U2M00120
13 | * 1) ERROR PARAMETER * U2M00130
14 | * 2) PRIMARY 2501 ONLY * U2M00140
15 | *ENTRY POINTS- * U2M00150
16 | * 1. READ1 CALL ENTRANCE FOR TEST OR READ * U2M00160
17 | * OPERATIONS. E.G. LIBF READ1 * U2M00170
18 | * DC /1000 * U2M00180
19 | * DC IOBUF * U2M00190
20 | * DC ERROR U2M00200
21 | * 2. RE048 OPERATION COMPLETE INTERRUPT ENTRY* U2M00210
22 | * POINT. * U2M00220
23 | *INPUT- NONE OTHER THAN FROM THE PARAMETERS IN * U2M00230
24 | * LIBF CALLING SEQUENCE. * U2M00240
25 | *OUTPUT- ROUTINE WILL TRANSFER 0 TO 80 COLS FROM * U2M00250
26 | * CARD TO I/O BUFFER AS SPECIFIED BY CALLING * U2M00260
27 | * SEQUENCE. FORMAT IS 12 BITS PER BUFFER WORD* U2M00270
28 | * LEFT JUSTIFIED. * U2M00280
29 | *EXTERNAL SUBROUTINES- NONE. * U2M00290
30 | *EXITS- * U2M00300
31 | * NORMAL- * U2M00310
32 | * 1. RE180 IF NO PRE-OP ERROR HAS BEEN DE- * U2M00320
33 | * TECTED, THE EXIT FROM RE180 IS * U2M00330
34 | * TO THE CALLER AFTER THE REQUESTED * U2M00340
35 | * 2501 OPERATION HAS BEEN INITIATED * U2M00350
36 | * 2. RE348 THE EXIT FROM RE348 IS BACK TO THE* U2M00360
37 | * CALLER VIA ILS04 AFTER OP COMPLETE* U2M00370
38 | * PROCESSING HAS BEEN FINISHED. * U2M00380
39 | * ERROR- * U2M00390
40 | * 1. RE180 IF A PRE-OP ERROR OR NOT READY * U2M00400
41 | * CONDITION IS DETECTED, SUBROUTINE * U2M00410
42 | * WILL BRANCH TO HEX 0029 VIA RE180 * U2M00420
43 | * AND DISPLAY ONE OF TWO CODES IN * U2M00430
44 | * ACCUMULATOR. * U2M00440
45 | * 4000 IS DISPLAYED IF 2501 IS NOT * U2M00450
46 | * READY. 4001 IS DISPLAYED IF AN * U2M00460
47 | * ERROR IS DISCOVERED IN CALLING * U2M00470
48 | * PARAMETERS OR AREAS REFERENCED BY * U2M00480
49 | * THEM. * U2M00490
50 | * IF A POST-OPERATIVE ERROR OR LAST * U2M00500
51 | * CARD INDR IS DETECTED, THIS SUBR * U2M00510
52 | * EXITS TO THE USERS ERROR SUBR. * U2M00520
53 | * VIA RE360+1 AND RE370+1 RESPEC- * U2M00530
54 | * TIVELY * U2M00540
55 | *TABLES/WORK AREAS- NONE. * U2M00550
56 | *ATTRIBUTES- REUSABLE, CAN READ UP TO 80 COLUMNS * U2M00560
57 | * OF BINARY DATA. IF A WORD COUNT * U2M00570
58 | * OF ZERO IS SPECIFIED, THE READ * U2M00580
59 | * OPERATION ACTS AS A FEED. * U2M00590
60 | *NOTES- THIS SUBR CONTAINS NO WAIT INSTRUCTIONS. * U2M00600
61 | * THE 'SPEED' SUBR SHOULD NOT BE USED WITH * U2M00610
62 | * READ1, AS I/O BUFFER IS NOT FILLED WITH * U2M00620
63 | * INDICATOR BITS AS READING BEGINS. * U2M00630
64 | *************************************************** U2M00640
65 | LIBR U2M00650
0000 66 | 1130 ISS 04 READ1 4 U2M00660
67 | *************************************************** U2M00670
68 | * LOADER DEFINED LOCATIONS * U2M00680
69 | *************************************************** U2M00690
0000 6932 70 | READ1 STX 1 RE144+1 LIBF ENTRANCE U2M00700
0001 6580 0000 71 | RE036 LDX I1 0 LOADER STORES TV ADDR (+2) U2M00710
0003 7003 72 | MDX RE060 BR TO PROCESS CALL U2M00720
0004 0000 73 | RE048 DC 0 OP CMPLTE INTERRUPT (+4) U2M00730
0005 4C00 004FR 74 | BSC L RE336 BR TO PROCESS INT U2M00740
75 | *************************************************** U2M00750
76 | * LIBF PROCESSING * U2M00760
77 | *************************************************** U2M00770
78 | * THIS PORTION STORES CALLING SEQUENCE INFO * U2M00780
79 | * AND CHECKS THE DEVICE STATUS BEFORE ANY I/O * U2M00790
80 | * OPERATION IS INITIATED. A CALLING ERROR OR * U2M00800
81 | * NOT READY 2501 CAUSES AN ERROR EXIT TO * U2M00810
82 | * LOCATION 41. IF THE OPERATION WILL CAUSE * U2M00820
83 | * INTERRUPT , THE ROUTINE IS SET BUSY AND THE * U2M00830
84 | * IOCS COUNTER IS INCREMENTED TO INDICATE * U2M00840
85 | * INTERRUPT PENDING. * U2M00850
86 | *************************************************** U2M00860
0007 D046 87 | RE060 STO RE324 SAVE ACC U2M00870
0008 282D 88 | STS RE168 SAVE STATUS U2M00880
0009 6A2B 89 | STX 2 RE156+1 SAVE XR2 U2M00890
000A C100 90 | LD 1 0 XR1 HAS ADDR OF CALL+1 U2M00900
000B 180C 91 | SRA 12 IS FUNCTION TEST U2M00910
000C 4C20 0012R 92 | BSC L RE072,Z BR IF NOT U2M00920
000E C035 93 | LD RE228 TEST SUBR BUSY U2M00930
000F 4818 94 | BSC +- SKIP IF BUSY U2M00940
0010 7101 95 | MDX 1 +1 *ELSE EXIT TO CALL+3 U2M00950
0011 701D 96 | MDX RE120 EXIT TO CALL+2 U2M00960
0012 9033 97 | RE072 S RE240 IS FUNCTION LEGAL U2M00970
0013 4C20 0039R 98 | BSC L RE192,Z BR IF NOT U2M00980
0015 C02E 99 | RE084 LD RE228 IS SUBR BUSY U2M00990
0016 4C20 0015R 100 | BSC L RE084,Z YES, LOOP U2M01000
0018 0831 101 | RE096 XIO RE288-1 IS DEVICE READY U2M01010
0019 4C04 003BR 102 | BSC L RE204,E BR IF NOT U2M01020
001B C580 0001 103 | LD I1 1 OBTAIN WORD COUNT U2M01030
001D 4818 104 | BSC +- U2M01040
001E 7005 105 | MDX RE108 BR ON Z WD CNT U2M01050
001F 4C28 0039R 106 | BSC L RE192,Z+ BR IF WD CNT NEG U2M01060
0021 9028 107 | S RE276 0 THRU 80 IS LEGAL U2M01070
0022 4C30 0039R 108 | BSC L RE192,Z- BR IF OVER 80 U2M01080
0024 7102 109 | RE108 MDX 1 +2 SET XR1 TO SKIP PARAMS U2M01090
0025 C1FF 110 | LD 1 -1 SAVE DATA ADDRESS U2M01100
0026 D021 111 | STO RE264 U2M01110
0027 C100 112 | LD 1 0 LOAD ERROR PARAMETER U2M01120
0028 D035 113 | STO RE360+2 STORE IN INTERRUPT ROUTINE U2M01130
0029 D03E 114 | STO RE370+2 ERROR AND LAST CARD EXITS U2M01140
002A 7401 0032 115 | MDX L 50,+1 INCREMENT IOCS COUNTER U2M01150
002C 1000 116 | NOP U2M01160
002D 6816 117 | STX 0 RE228 SET BUSY INDR ON U2M01170
002E 0819 118 | XIO RE264 READ U2M01180
002F 7101 119 | RE120 MDX 1 +1 U2M01190
0030 C01D 120 | LD RE324 RESTORE ACC U2M01200
0031 6906 121 | RE132 STX 1 RE180+1 SET TO SKIP 1ST PARAMETER U2M01210
0032 6500 0000 122 | RE144 LDX L1 *-* RESTORE STATUS U2M01220
0034 6600 0000 123 | RE156 LDX L2 *-* AND INDEX REGISTERS U2M01230
0036 2000 124 | RE168 LDS *-* U2M01240
0037 4C00 0000 125 | RE180 BSC L *-* EXIT U2M01250
0039 C013 126 | RE192 LD RE312 ERROR CODE - ILLEGAL CALL U2M01260
003A 7004 127 | MDX RE216 BR TO SET RETURN ADDR U2M01270
003B 1801 128 | RE204 SRA 1 IS DEVICE BUSY U2M01280
003C 4C04 0018R 129 | BSC L RE096,E BR IF YES U2M01290
003E C00D 130 | LD RE300 ERROR CODE - DVCE NOT RDY U2M01300
003F 71FF 131 | RE216 MDX 1 -1 U2M01310
0040 6D00 0028 132 | STX L1 40 STORE CALL ADDR IN 40 U2M01320
0042 6129 133 | LDX 1 41 SET EXIT U2M01330
0043 70ED 134 | MDX RE132 BR TO EXIT U2M01340
135 | *************************************************** U2M01350
136 | * CONSTANTS U2M01360
137 | *************************************************** U2M01370
0044 0000 138 | RE228 DC 0 ROUTINE BUSY INDICATOR U2M01380
0046 139 | BSS E 0 U2M01390
0046 0001 140 | RE240 DC +1 CONSTANT U2M01400
0047 4F01 141 | RE252 DC /4F01 SENSE WITH RESET U2M01410
0048 0000 142 | RE264 DC *-* I/O BUFFER ADDRESS E U2M01420
0049 4E00 143 | DC /4E00 IOCC TO INITIATE READ O U2M01430
004A 0050 144 | RE276 DC +80 CONSTANT U2M01440
004B 4F00 145 | RE288 DC /4F00 SENSE DSW WITHOUT RESET O U2M01450
004C 4000 146 | RE300 DC /4000 CONSTANT FOR DVC NOT RDY U2M01460
004D 4001 147 | RE312 DC /4001 CST FOR BAD CALL U2M01470
004E 0000 148 | RE324 DC *-* SAVED ACC U2M01480
008D 149 | $PST4 EQU /8D POST-OP ERROR TRAP U2M01490
150 | *************************************************** U2M01500
151 | * OP COMPLETE INTERRUPT PROCESSING * U2M01510
152 | *************************************************** U2M01520
153 | * THIS PORTION IS ENTERED FROM AN INTERRUPT * U2M01530
154 | * LVL.SUBRT.IF NO ERROR OR LAST CARD IS FOUND,* U2M01540
155 | * THE ROUTINE IS SET NOT BUSY AND THE IOCS * U2M01550
156 | * COUNTER IS DECREMENTED TO INDICATE * U2M01560
157 | * INTERRUPT PROCESSING COMPLETED. OTHERWISE * U2M01570
158 | * THE ROUTINE EXITS TO THE USER VIA RE360+1 * U2M01580
159 | * WITH THE READ ERROR CODE--0001,ON RETURN IF * U2M01590
160 | * ACC.=0,THE FUNCTION IS TERMINATED,IF NON-ZERO U2M01600
161 | * WAIT AT THE POST-OPERATIVE ERROR TRAP TILL * U2M01610
162 | * THE READER IS READY AND THEN RE-INITIATE * U2M01620
163 | * THE FUNCTION.IF THE DSW INDICATED LAST CARD * U2M01630
164 | * EXIT TO USER WITH ZERO CODE IN ACC.,UPON * U2M01640
165 | * RETURN,TERMINATE FUNCTION. * U2M01650
166 | *************************************************** U2M01660
004F 08F6 167 | RE336 XIO RE252-1 SENSE WITH RESET U2M01670
0050 1003 168 | SLA 3 CHECK FOR READ ERROR U2M01680
0051 4C02 005CR 169 | BSC L RE360,C YES,GOTO ERROR EXIT U2M01690
0053 4828 170 | BSC +Z CHECK FOR LAST CARD INDIC U2M01700
0054 7011 171 | MDX RE370 YES,GO TELL USER U2M01710
172 | *TERMINATE OPERATION AND EXIT TO ILS U2M01720
0055 74FF 0032 173 | RE340 MDX L 50,-1 DECREMENT IOCS COUNTER U2M01730
0057 1000 174 | NOP U2M01740
0058 1810 175 | SRA 16 CLEAR ROUTINE U2M01750
0059 D0EA 176 | STO RE228 BUSY INDICATOR U2M01760
005A 4C80 0004R 177 | RE348 BSC I RE048 RETURN TO ILS U2M01770
178 | * U2M01780
179 | *EXIT TO USERS ERROR ROUTINE WITH READ ERROR CODE U2M01790
180 | * U2M01800
005C C0E9 181 | RE360 LD RE240 LOAD READ ERROR CODE--0001 U2M01810
005D 4400 0000 182 | BSI L *-* EXIT TO USERS ERROR RTN. U2M01820
005F 4818 183 | BSC +- UPON RETURN,TEST ACCUM. U2M01830
0060 70F4 184 | MDX RE340 ZERO,TERMINATE OPERATION U2M01840
185 | * IF ACCUM.NON-ZERO,CHECK READER FOR READY AND U2M01850
186 | * RE-INITIATE OPERATION U2M01860
0061 08E8 187 | RE362 XIO RE288-1 SENSE WITHOUT RESET, U2M01870
0062 4C04 006AR 188 | BSC L RE375,E TO ERROR EXIT IF NOT READY U2M01880
0064 08E3 189 | XIO RE264 RE-INITIATE OPERATION U2M01890
0065 70F4 190 | MDX RE348 EXIT,BUT DONT CLEAR BUSY U2M01900
191 | * U2M01910
192 | *EXIT TO USER WITH LAST CARD INDICATION U2M01920
193 | * U2M01930
0066 1810 194 | RE370 SRA 16 LAST CARD ERROR CODE,A=0 U2M01940
0067 4400 0000 195 | BSI L *-* EXIT TO USERS ERROR RTN U2M01950
0069 70EB 196 | MDX RE340 UPON RETURN,GO TERMINATE U2M01960
006A C0E1 197 | RE375 LD RE300 NOT READY ERROR CODE U2M01970
006B 4400 008D 198 | BSI L $PST4 POST-OP ERROR TRAP U2M01980
006D 70F3 199 | MDX RE362 TRY AGAIN U2M01990
006E 200 | END U2M02000
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
$PST4 008D 149 198
RE036 0001R 71
RE048 0004R 73 177
RE060 0007R 87 72
RE072 0012R 97 92
RE084 0015R 99 100
RE096 0018R 101 129
RE108 0024R 109 105
RE120 002FR 119 96
RE132 0031R 121 134
RE144 0032R 122 70
RE156 0034R 123 89
RE168 0036R 124 88
RE180 0037R 125 121
RE192 0039R 126 98 106 108
RE204 003BR 128 102
RE216 003FR 131 127
RE228 0044R 138 93 99 117 176
RE240 0046R 140 97 181
RE252 0047R 141 167
RE264 0048R 142 111 118 189
RE276 004AR 144 107
RE288 004BR 145 101 187
RE300 004CR 146 130 197
RE312 004DR 147 126
RE324 004ER 148 87 120
RE336 004FR 167 74
RE340 0055R 173 184 196
RE348 005AR 177 190
RE360 005CR 181 113 169
RE362 0061R 187 199
RE370 0066R 194 114 171
RE375 006AR 197 188
READ1 0000R 70