ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:09 2020
Source File: \u2read0.asm
1 | * HDNG READ0,2501 CARD READ ROUTINE * U2L00010
2 | *************************************************** U2L00020
3 | *TITLE- READ0 * U2L00030
4 | *STATUS- CHANGE LEVEL 000 * U2L00040
5 | *FUNCTION/OPERATION- * U2L00050
6 | * THIS 1130 SUBROUTINE OPERATES THE PRIMARY * U2L00060
7 | * 2501 CARD READER. IT INITIATES REQSTD * U2L00070
8 | * OPERATIONS, PROCESSES OPERATION COMPLETE * U2L00080
9 | * INTERRUPTS, AND AUTOMATICALLY INITIATES * U2L00090
10 | * ERROR RECOVERY PROCEDURES. * U2L00100
11 | * * U2L00110
12 | * IDENTIFYING FEATURES * U2L00120
13 | * 1) NO ERROR PARAMETER * U2L00130
14 | * 2) PRIMARY 2501 ONLY * U2L00140
15 | *ENTRY POINTS- * U2L00150
16 | * 1. READ0 CALL ENTRANCE FOR TEST OR READ * U2L00160
17 | * OPERATIONS. E.G. LIBF READ0 * U2L00170
18 | * DC /1000 * U2L00180
19 | * DC IOBUF * U2L00190
20 | * 2. RE048 OPERATION COMPLETE INTERRUPT ENTRY* U2L00200
21 | * POINT. * U2L00210
22 | *INPUT- NONE OTHER THAN FROM THE PARAMETERS IN * U2L00220
23 | * LIBF CALLING SEQUENCE. * U2L00230
24 | *OUTPUT- ROUTINE WILL TRANSFER 0 TO 80 COLS FROM * U2L00240
25 | * CARD TO I/O BUFFER AS SPECIFIED BY CALLING * U2L00250
26 | * SEQUENCE. FORMAT IS 12 BITS PER BUFFER WORD* U2L00260
27 | * LEFT JUSTIFIED. * U2L00270
28 | *EXTERNAL SUBROUTINES- NONE. * U2L00280
29 | *EXITS- * U2L00290
30 | * NORMAL- * U2L00300
31 | * 1. RE180 IF NO PRE-OP ERROR HAS BEEN DE- * U2L00310
32 | * TECTED, THE EXIT FROM RE180 IS * U2L00320
33 | * TO THE CALLER AFTER THE REQUESTED * U2L00330
34 | * 2501 OPERATION HAS BEEN INITIATED * U2L00340
35 | * 2. RE348 THE EXIT FROM RE348 IS BACK TO THE* U2L00350
36 | * CALLER VIA ILS04 AFTER OP COMPLETE* U2L00360
37 | * PROCESSING HAS BEEN FINISHED. * U2L00370
38 | * ERROR- * U2L00380
39 | * 1. RE180 IF A PRE-OP ERROR OR NOT READY * U2L00390
40 | * CONDITION IS DETECTED, SUBROUTINE * U2L00400
41 | * WILL BRANCH TO HEX 0029 VIA RE180 * U2L00410
42 | * AND DISPLAY ONE OF TWO CODES IN * U2L00420
43 | * ACCUMULATOR. * U2L00430
44 | * 4000 IS DISPLAYED IF 2501 IS NOT * U2L00440
45 | * READY. 4001 IS DISPLAYED IF AN * U2L00450
46 | * ERROR IS DISCOVERED IN CALLING * U2L00460
47 | * PARAMETERS OR AREAS REFERENCED BY * U2L00470
48 | * THEM. * U2L00480
49 | *TABLES/WORK AREAS- NONE. * U2L00490
50 | *ATTRIBUTES- REUSABLE, CAN READ UP TO 80 COLUMNS * U2L00500
51 | * OF BINARY DATA. IF A WORD COUNT * U2L00510
52 | * OF ZERO IS SPECIFIED, THE READ * U2L00520
53 | * OPERATION ACTS AS A FEED. * U2L00530
54 | *NOTES- THIS SUBR CONTAINS NO WAIT INSTRUCTIONS. * U2L00540
55 | * THE 'SPEED' SUBR SHOULD NOT BE USED WITH * U2L00550
56 | * READ0, AS I/O BUFFER IS NOT FILLED WITH * U2L00560
57 | * INDICATOR BITS AS READING BEGINS. * U2L00570
58 | *************************************************** U2L00580
59 | LIBR U2L00590
0000 60 | 1130 ISS 04 READ0 4 U2L00600
61 | *************************************************** U2L00610
62 | * LOADER DEFINED LOCATIONS * U2L00620
63 | *************************************************** U2L00630
0000 692F 64 | READ0 STX 1 RE144+1 LIBF ENTRANCE U2L00640
0001 6580 0000 65 | RE036 LDX I1 0 LOADER STORES TV ADDR (+2) U2L00650
0003 7003 66 | MDX RE060 BR TO PROCESS CALL U2L00660
0004 0000 67 | RE048 DC 0 OP CMPLTE INTERRUPT (+4) U2L00670
0005 4C00 004BR 68 | BSC L RE336 BR TO PROCESS INT U2L00680
69 | *************************************************** U2L00690
70 | * LIBF PROCESSING * U2L00700
71 | *************************************************** U2L00710
72 | * THIS PORTION STORES CALLING SEQUENCE INFO * U2L00720
73 | * AND CHECKS THE DEVICE STATUS BEFORE ANY I/O * U2L00730
74 | * OPERATION IS INITIATED. A CALLING ERROR OR * U2L00740
75 | * NOT READY 2501 CAUSES AN ERROR EXIT TO * U2L00750
76 | * LOCATION 41. IF THE OPERATION WILL CAUSE * U2L00760
77 | * INTERRUPT , THE ROUTINE IS SET BUSY AND THE * U2L00770
78 | * IOCS COUNTER IS INCREMENTED TO INDICATE * U2L00780
79 | * INTERRUPT PENDING. * U2L00790
80 | *************************************************** U2L00800
0007 D042 81 | RE060 STO RE324 SAVE ACC U2L00810
0008 282A 82 | STS RE168 SAVE STATUS U2L00820
0009 6A28 83 | STX 2 RE156+1 SAVE XR2 U2L00830
000A C100 84 | LD 1 0 X1= ADDR OF CALL+1 U2L00840
000B 180C 85 | SRA 12 IS FUNCTION TEST U2L00850
000C 4C20 0012R 86 | BSC L RE072,Z BR IF NOT U2L00860
000E C032 87 | LD RE228 IS SUBR BUSY U2L00870
000F 4818 88 | BSC +- SKIP IF YES U2L00880
0010 7101 89 | MDX 1 +1 NO, EXIT TO CALL+3 U2L00890
0011 701A 90 | MDX RE120 EXIT TO CALL +2 U2L00900
0012 902F 91 | RE072 S RE240 IS FUNCTION LEGAL U2L00910
0013 4C20 0036R 92 | BSC L RE192,Z BR IF NOT U2L00920
0015 C02B 93 | RE084 LD RE228 IS SUBR BUSY U2L00930
0016 4C20 0015R 94 | BSC L RE084,Z YES, LOOP U2L00940
0018 082D 95 | RE096 XIO RE288-1 IS DEVICE READY U2L00950
0019 4C04 0038R 96 | BSC L RE204,E BR IF NOT U2L00960
001B C580 0001 97 | LD I1 1 OBTAIN WORD COUNT U2L00970
001D 4818 98 | BSC +- U2L00980
001E 7005 99 | MDX RE108 BR ON Z WD CNT U2L00990
001F 4C28 0036R 100 | BSC L RE192,Z+ BR IF WD CNT NEG U2L01000
0021 9024 101 | S RE276 0 THRU 80 IS LEGAL U2L01010
0022 4C30 0036R 102 | BSC L RE192,Z- BR IF OVER 80 U2L01020
0024 7101 103 | RE108 MDX 1 +1 SET XR1 TO SKIP 2ND PARAM U2L01030
0025 C100 104 | LD 1 0 SAVE DATA ADDR U2L01040
0026 D01D 105 | STO RE264 U2L01050
0027 7401 0032 106 | MDX L 50,+1 INCREMENT IOCS COUNTER U2L01060
0029 1000 107 | NOP U2L01070
002A 6816 108 | STX 0 RE228 SET SUBR BUSY INDR U2L01080
002B 0818 109 | XIO RE264 READ U2L01090
002C 7101 110 | RE120 MDX 1 +1 U2L01100
002D C01C 111 | LD RE324 RESTORE ACC U2L01110
002E 6906 112 | RE132 STX 1 RE180+1 SET EXIT TO SKIP 1ST PARAM U2L01120
002F 6500 0000 113 | RE144 LDX L1 *-* RESTORE STATUS U2L01130
0031 6600 0000 114 | RE156 LDX L2 *-* AND INDEX REGISTERS U2L01140
0033 2000 115 | RE168 LDS *-* U2L01150
0034 4C00 0000 116 | RE180 BSC L *-* EXIT U2L01160
0036 C012 117 | RE192 LD RE312 ERROR CODE - ILLEGAL CALL U2L01170
0037 7004 118 | MDX RE216 BR TO SET RETURN ADRS U2L01180
0038 1801 119 | RE204 SRA 1 IS DEVICE BUSY U2L01190
0039 4C04 0018R 120 | BSC L RE096,E BR IF YES U2L01200
003B C00C 121 | LD RE300 ERROR CODE - DVCE NOT RDY U2L01210
003C 71FF 122 | RE216 MDX 1 -1 U2L01220
003D 6D00 0028 123 | STX L1 40 STORE CALL ADDR IN 40 U2L01230
003F 6129 124 | LDX 1 41 SET EXIT U2L01240
0040 70ED 125 | MDX RE132 BR TO EXIT U2L01250
126 | *************************************************** U2L01260
127 | * CONSTANTS U2L01270
128 | *************************************************** U2L01280
0041 0000 129 | RE228 DC 0 SUBR BUSY INDR U2L01290
0042 130 | BSS E 0 U2L01300
0042 0001 131 | RE240 DC +1 CONSTANT U2L01310
0043 4F01 132 | RE252 DC /4F01 SENSE WITH RESET U2L01320
0044 0000 133 | RE264 DC *-* I/O BUFFER ADDRESS E U2L01330
0045 4E00 134 | DC /4E00 IOCC TO INITIATE READ O U2L01340
0046 0050 135 | RE276 DC +80 CONSTANT U2L01350
0047 4F00 136 | RE288 DC /4F00 SENSE DSW WITHOUT RESET O U2L01360
0048 4000 137 | RE300 DC /4000 CONSTANT FOR DVC NR U2L01370
0049 4001 138 | RE312 DC /4001 CST FOR BAD CALL U2L01380
004A 0000 139 | RE324 DC *-* SAVED ACC U2L01390
008D 140 | $PST4 EQU /8D POST-OPERATIVE ERROR TRAP U2L01400
141 | *************************************************** U2L01410
142 | * OP COMPLETE INTERRUPT PROCESSING M U2L01420
143 | *************************************************** U2L01430
144 | * THIS PORTION IS ENTERED FROM AN INTERRUPT * U2L01440
145 | * LEVEL SUBRT. IF NO ERROR HAS BEEN DETECTED * U2L01450
146 | * THE ROUTINE IS SET NOT BUSY AND THE IOCS * U2L01460
147 | * COUNTER IS DECREMENTED TO INDICATE * U2L01470
148 | * INTERRUPT PROCESSING COMPLETED. OTHERWISE * U2L01480
149 | * THE SUBR.GOES TO THE POST-OPERATIVE ERROR- * U2L01490
150 | * TRAP AND WAITS UNTIL THE OPERATOR HAS * U2L01500
151 | * INTERVENED AND THE 2501 BECOMES READY, AT * U2L01510
152 | * WHICH TIME THE CARDS ARE POSITIONED AND THE * U2L01520
153 | * I/O OPERATION IS RE-INITIATED. * U2L01530
154 | *************************************************** U2L01540
004B 08F6 155 | RE336 XIO RE252-1 SENSE DSW WITH RESET U2L01550
004C 1003 156 | SLA 3 IS OPERATION OK U2L01560
004D 4C02 0056R 157 | BSC L RE360,C BR IF ERROR U2L01570
004F 74FF 0032 158 | MDX L 50,-1 ELSE TERMINATE U2L01580
0051 1000 159 | NOP DECREMENT IOCS COUNT U2L01590
0052 1810 160 | SRA 16 U2L01600
0053 D0ED 161 | STO RE228 CLEAR ROUT BUSY INDIC U2L01610
0054 4C80 0004R 162 | RE348 BSC I RE048 EXIT U2L01620
0056 08EB 163 | RE360 XIO RE252-1 SENSE DSW FOR READY U2L01630
0057 4C04 005BR 164 | BSC L RE365,E TO ERROR EXIT IF NOT READY U2L01640
0059 08EA 165 | XIO RE264 RE-INITIATE FUNCTION U2L01650
005A 70F9 166 | MDX RE348 BR TO EXIT U2L01660
005B C0EC 167 | RE365 LD RE300 LD NOT READY ERROR CODE U2L01670
005C 4400 008D 168 | BSI L $PST4 POST-OPERATIVE ERROR TRAP U2L01680
005E 70F7 169 | MDX RE360 TRY AGAIN U2L01690
005F 170 | END U2L01700
There were no errors in this assembly
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
$PST4 008D 140 168
RE036 0001R 65
RE048 0004R 67 162
RE060 0007R 81 66
RE072 0012R 91 86
RE084 0015R 93 94
RE096 0018R 95 120
RE108 0024R 103 99
RE120 002CR 110 90
RE132 002ER 112 125
RE144 002FR 113 64
RE156 0031R 114 83
RE168 0033R 115 82
RE180 0034R 116 112
RE192 0036R 117 92 100 102
RE204 0038R 119 96
RE216 003CR 122 118
RE228 0041R 129 87 93 108 161
RE240 0042R 131 91
RE252 0043R 132 155 163
RE264 0044R 133 105 109 165
RE276 0046R 135 101
RE288 0047R 136 95
RE300 0048R 137 121 167
RE312 0049R 138 117
RE324 004AR 139 81 111
RE336 004BR 155 68
RE348 0054R 162 166
RE360 0056R 163 157 169
RE365 005BR 167 164
READ0 0000R 64