ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:05 2020
Source File: \dciloadr.asm
CORE IMAGE LOADER FOR 2501 OR 1442
2 | *************************************************** DCL00020
3 | * * DCL00030
4 | *FUNCTION- * DCL00040
5 | * *THIS CARD CORE IMAGE LOADER READS CARDS FROM * DCL00050
6 | * ETHER THE 2501 OR 1442 AND LOADES THEM INTO * DCL00060
7 | * CORE. THE DECK TO BE LOADED MUST BE CORE * DCL00070
8 | * IMAGE CONVERTED ON THE PRESENT CORE IMAGE * DCL00080
9 | * CONVERTER. * DCL00090
10 | * * DCL00100
11 | *ENTRY POINTS- * DCL00110
12 | * *CL320-THE BOOTSTRAP LOADER WILL BRANCH THERE * DCL00120
13 | * AFTER IT HAS LOADED THE CORE IMAGE LOADER * DCL00130
14 | * INTO CORE. * DCL00140
15 | * * DCL00150
16 | *INPUT- * DCL00160
17 | * *THE CORE IMAGE DECK TO BE LOADED IS PLACED * DCL00170
18 | * BEHIND THE CORE IMAGE LOADER AND IS LOADED * DCL00180
19 | * FROM THE SAME DEVICE THAT INITIAL PROGRAM * DCL00190
20 | * LOAD (IPL) IS DONE FROM. * DCL00200
21 | * * DCL00210
22 | *OUTPUT- * DCL00220
23 | * *N/A * DCL00230
24 | * * DCL00240
25 | *EXTERNAL REFERANCES- * DCL00250
26 | * *CORE LOCATION /29 IN THE BOOTSTRAP (LINK WORD* DCL00260
27 | * FOR COLUMN INTERUPT) IS LOOKED AT TO SEE IF * DCL00270
28 | * THE READING IS FROM THE 1442 OR 2501. THIS * DCL00280
29 | * WORD DIRECTS THE INITIALIZATION OF THE CARD * DCL00290
30 | * ROUTINE IN THE CORE IMAGE LOADER. * DCL00300
31 | * * DCL00310
32 | *EXITS- * DCL00320
33 | * *NORMAL- * DCL00330
34 | * *THE NORMAL EXIT IS TO THE WORD SPECIFIED * DCL00340
35 | * IN THE 54TH WORD IN THE END CARD. * DCL00350
36 | * * DCL00360
37 | * *ERROR- * DCL00370
38 | * *N/A * DCL00380
39 | * * DCL00390
40 | *TABLES/WORK AREAS- * DCL00400
41 | * *CL050-THIS WORD INDICATES WHEN A CARD * DCL00410
42 | * READER IS BEING USED. * DCL00420
43 | * 0 = NOT IN USE * DCL00430
44 | * NOT 0 = IN USE * DCL00440
45 | * * DCL00450
46 | * *CL060-THIS WORD CONTAINS THE COUNT USED IN * DCL00460
47 | * THE NEXT NON-ZERO CHECK SUM. * DCL00470
48 | * * DCL00480
49 | * *CL110-THIS WORD IS USED TO HOLD THE A * DCL00490
50 | * REGISTER WHEN INTERUPTS ARE BEING HANDLED. * DCL00500
51 | * * DCL00510
52 | * *CL270-THIS IS AN 81 WORD BUFFER USED TO READ * DCL00520
53 | * THE CARDS INTO WHILE LOADING THE PROGRAM. * DCL00530
54 | * * DCL00540
55 | *NOTES- * DCL00550
56 | * *ON ANY KIND OF AN ERROR (CARD READER OR CHECK* DCL00560
57 | * SUM) THE MACHINE WILL COME TO A WAIT WITH THE* DCL00570
58 | * CARD NUMBER (BINARY) TO BE LOADED DISPLAYED * DCL00580
59 | * IN THE A REGISTER. IF ANY NON-CHECK SUMED * DCL00590
60 | * CARDS PRECEDE THE CARD NUMBER INDICATED THEY * DCL00600
61 | * SHOULD BE LOADED ALSO. * DCL00610
62 | * * DCL00620
63 | * *THE CORE IMAGE LOADER IS LOADED ABOVE /74 * DCL00630
64 | * AND IS MOVED TO THE ASSEMBLED LOCATIONS * DCL00640
65 | * BEFORE EXECUTION. * DCL00650
66 | * * DCL00660
67 | * *THE LOADER (LABEL CL275) CAN NOT BE LONGER * DCL00670
68 | * THAN /D6 SO AS TO CONFORM TO THE OLD * DCL00680
69 | * SPECIFICATIONS OF LENGTH. * DCL00690
70 | * * DCL00700
71 | *************************************************** DCL00710
72 | * DCL00720
73 | * IOCCS DCL00730
74 | * DCL00740
75 | ABS DCL00750
0004 76 | ORG 4 DCL00760
0004 77 | CL010 EQU * DCL00770
0004 0085 78 | DC CL270 BUFFER ADDRESS OF IOCC DCL00780
0005 4E00 79 | CL020 DC /4E00 START FUNCTION OF IOCC DCL00790
0006 0000 80 | DC *-* BUFFER ADDRESS OF IOCC DCL00800
0007 1204 81 | CL030 DC /1204 READ 1442 FUNCTION OF IOCC DCL00810
0008 000D 82 | DC CL070 COLUMN INTERUPT ADDRESS DCL00820
0009 4F01 83 | CL040 DC /4F01 TEST FUNCTION OF IOCC DCL00830
000A 0000 84 | CL050 DC *-* CARD BUSY INDICATOP DCL00840
000B 0001 85 | CL060 DC 1 CARD COUNT DCL00850
000C 0018 86 | DC CL090 OP COMPLETE INTERUPT ADR DCL00860
87 | * DCL00870
88 | * HANDLE THE COLUMN INTERUPT DCL00880
89 | * DCL00890
000D 0000 90 | CL070 DC *-* LINK WORD DCL00900
000E D0F1 91 | STO CL110 SAVE A REGISTER DCL00910
000F 7401 0006 92 | MDX L CL030-1,1 INCREMENT READ DCL00920
0011 08F4 93 | XIO CL030-1 READ COLUMN DCL00930
0012 08F5 94 | XIO CL040-1 SENSE 1442 DSW DCL00940
0013 C0EC 95 | LD CL110 RESTORE A REGISTER DCL00950
0014 4CC0 000D 96 | BOSC I CL070 RETURN DCL00960
97 | * DCL00970
98 | * HANDLE THE OPERATION COMPLETE INTERUPT DCL00980
99 | * DCL00990
0016 C0E9 100 | CL080 LD CL110 RESTORE A REGISTER DCL01000
0017 4C40 0000 101 | BOSC L *-* RETURN DCL01010
0018 102 | ORG *-1 DCL01020
0018 0000 103 | CL090 DC *-* LINK WORD DCL01030
0019 D0E6 104 | STO CL110 SAVE A REGISTER DCL01040
001A 08ED 105 | XIO CL040-1 SENSE DSW DCL01050
001B E007 106 | AND CL120 CHECK FOR ERROR DCL01060
001C D0ED 107 | STO CL050 CLEAR IBUSY DCL01070
001D 4C18 0016 108 | BSC L CL080,+- BRANCH ON NO ERROR DCL01080
001F C0EB 109 | CL100 LD CL060 PUT CARD COUNT IN A REGISTR DCL01090
0020 3000 110 | WAIT WAIT TILL ERROR IS FIXED DCL01100
0021 4C40 0025 111 | BOSC L CL140 BRANCH TO READ NEXT CARD DCL01110
112 | * DCL01120
113 | * CONSTANTS AND WORKING STORAGE DCL01130
114 | * DCL01140
0000 115 | CL110 EQU 0 SAVE AREA 1 DCL01150
0023 2000 116 | CL120 DC /2000 CONSTANT DCL01160
0024 0001 117 | CL130 DC 1 CONSTANT DCL01170
118 | * DCL01180
119 | * CLEAR CARD READ AREA DCL01190
120 | * DCL01200
0025 6148 121 | CL140 LDX 1 72 LOAD WORD COUNT DCL01210
0026 C0FD 122 | LD CL130 LOAD INDICATOR BIT DCL01220
0027 D500 0085 123 | STO L1 CL270 STORE IN A WORD OF BUFFER DCL01230
0029 71FF 124 | MDX 1 -1 DECREMENT WORD COUNT DCL01240
002A 70FC 125 | MDX *-4 BRANCH IF NOT ZERO DCL01250
126 | * DCL01260
127 | * START THE CARD READER DCL01270
128 | * DCL01280
002B 08DC 129 | CL150 XIO CL040-1 TEST 2501 DSW DCL01290
002C 4C04 002B 130 | BSC L CL150,E BRANCH IF NOT READY DCL01300
002E 08D5 131 | XIO CL020-1 START 2501 DCL01310
002F 68DA 132 | STX 0 CL050 SET CL050 ON DCL01320
133 | * DCL01330
134 | * INITIALIZE TO PACK UP THE INPUT AREA DCL01340
135 | * DCL01350
0030 C0D3 136 | LD CL020-1 DCL01360
0031 D0D4 137 | STO CL030-1 INITIALIZE IOCC ADDRESS DCL01370
0032 6500 0086 138 | LDX L1 CL270+1 LOAD BUFFER ADDRESS DCL01380
0034 6600 0086 139 | LDX L2 CL270+1 LOAD BUFFER ADDRESS DCL01390
0036 6348 140 | LDX 3 72 LOAD COLUMN COUNT DCL01400
141 | * DCL01410
142 | * PACK THE INPUT AREA DCL01420
143 | * DCL01430
0037 C200 144 | CL160 LD 2 0 TEST IF COLUMN IN CORE DCL01440
0038 4C04 0037 145 | BSC L *-3,E BRANCH IF NOT DCL01450
003A C1FF 146 | LD 1 -1 LOAD LAST WORD DCL01460
003B 18D0 147 | CL170 RTE 16 PLACE IN Q REGISTER DCL01470
003C C200 148 | LD 2 0 LOAD NEW WORD DCL01480
003D 18D0 149 | CL180 RTE 16 PLACE ON WORD BOUNDARY DCL01490
003E D1FF 150 | STO 1 -1 STORE A REGISTER DCL01500
003F 18D0 151 | RTEX3 RTE 16 DCL01510
0040 D100 152 | STO 1 0 STORE Q REGISTER DCL01520
0041 74FC 003D 153 | MDX L CL180,-4 ALTER ROTATE INSTRUCTION DCL01530
0043 C0F9 154 | LD CL180 TEST FOR END OF FOUR DCL01540
0044 100C 155 | SLA 12 ISOLATE SHIFT COUNT DCL01550
0045 4C20 004B 156 | BSC L CL200,Z BRANCH IF NOT NEW SET DCL01560
0047 C0F7 157 | LD RTEX3 INITIALIZE ROTATE DCL01570
0048 D0F4 158 | STO CL180 INSTRUCTIONS DCL01580
0049 D0F1 159 | STO CL170 DCL01590
004A 7003 160 | MDX CL210 BRANCH DCL01600
004B 7101 161 | CL200 MDX 1 1 INCREMENT TO NEXT WORD DCL01610
004C 7404 003B 162 | MDX L CL170,4 ALTER ROTATE INSTRUCTION DCL01620
004E 7201 163 | CL210 MDX 2 1 INCREMENT TO NEXT COLUMN DCL01630
004F 73FF 164 | MDX 3 -1 DECREMENT COLUMN COUNT DCL01640
0050 70E6 165 | MDX CL160 BRANCH IF NOT ZERO DCL01650
166 | * DCL01660
167 | * CHECK SUM THE CARD FOR POSSIBLE ERRORS DCL01670
168 | * DCL01680
0051 C035 169 | LD CL270+2 LOAD CHECK SUM DCL01690
0052 4C18 0063 170 | BSC L CL230,+- BRANCH IF ZERO DCL01700
0054 6236 171 | LDX 2 54 LOAD WORD COUNT DCL01710
0055 C0B5 172 | LD CL060 LOAD CARD NUMBER DCL01720
0056 8600 0085 173 | CL220 A L2 CL270 ADD A WORD DCL01730
0058 4802 174 | BSC C BRANCH NO CARRY DCL01740
0059 80CA 175 | A CL130 ADD 1 FOR CARRY DCL01750
005A 72FF 176 | MDX 2 -1 DECREMENT WORD COUNT DCL01760
005B 70FA 177 | MDX CL220 BRANCH IF NOT ZERO DCL01770
005C 1801 178 | SRA 1 IS CHECK SUM 1 DCL01780
005D 4C18 0066 179 | BSC L CL240,+- BRANCH IF YES DCL01790
005F C0AA 180 | LD CL050 LOAD BUSY INDICATOR DCL01800
0060 4C20 005F 181 | BSC L *-3,Z BRANCH IF CARD BUSY DCL01810
0062 70BC 182 | MDX CL100 BRANCH DCL01820
183 | * DCL01830
184 | * CHECK TO SEE IF CARD IS DONE DCL01840
185 | * DCL01850
0063 74FF 000B 186 | CL230 MDX L CL060,-1 DECREMENT CARD COUNT BY 1 DCL01860
0065 1000 187 | NOP SKIPS ON CARD NUMBER 1 DCL01870
0066 C021 188 | CL240 LD CL270+3 LOAD CARD TYPE DCL01880
0067 4C10 006C 189 | BSC L CL250,- BRANCH IF NOT LAST CARD DCL01890
0069 C0A0 190 | LD CL050 LOAD BUSY INDICATOR DCL01900
006A 4C20 0069 191 | BSC L *-3,Z BRANCH IF CARD BUSY DCL01910
192 | * DCL01920
193 | * MOVE THE CARD TO THE CORRECT AREA DCL01930
194 | * DCL01940
006C 6500 0089 195 | CL250 LDX L1 CL270+4 POINT AT FIRST WORD DCL01950
006E C1FF 196 | LD 1 -1 SEPARATE WORD COUNT DCL01960
006F 1001 197 | SLA 1 (0000000XXXXXXXX0) DCL01970
0070 1801 198 | SRA 1 (00000000XXXXXXXX) DCL01980
0071 D001 199 | STO *+1 DCL01990
0072 6600 0000 200 | LDX L2 *-* LOAD WORD COUNT DCL02000
0074 6780 0086 201 | LDX I3 CL270+1 POINT WERE DATA IS PLACED DCL02010
0076 C100 202 | CL260 LD 1 0 DCL02020
0077 D300 203 | STO 3 0 MOVE ONE WORD DCL02030
0078 7101 204 | MDX 1 1 INCREMENT POINTER DCL02040
0079 7301 205 | MDX 3 1 INCREMENT POINTER DCL02050
007A 72FF 206 | MDX 2 -1 DECREMENT WORD COUNT DCL02060
007B 70FA 207 | MDX CL260 BRANCH IF NOT ZERO DCL02070
007C 7401 000B 208 | MDX L CL060,1 INCREMENT CARD NUMBER DCL02080
209 | * DCL02090
210 | * CHECK LAST CARD OF DECK DCL02100
211 | * DCL02110
007E C009 212 | LD CL270+3 LOAD CARD TYPE DCL02120
007F 4C10 0025 213 | BSC L CL140,- BRANCH IF NOT LAST CARD DCL02130
214 | * DCL02140
215 | * READY EXECUTION DCL02150
216 | * DCL02160
0081 6780 00BA 217 | LDX I3 CL270+53 LOAD INDEX REGISTER 3 DCL02170
0083 4C80 00BB 218 | BSC I CL270+54 BRANCH TO ROUTINE DCL02180
219 | * DCL02190
220 | * I/O BUFFER DCL02200
221 | * DCL02210
0085 0050 222 | CL270 DC 80 WORD COUNT DCL02220
00D6 223 | CL275 EQU *+80 START OR CORE LOAD OF USER DCL02230
INITIALIZE AND MOVE CIL
225 | * DCL02250
226 | * THIS ROUTINE ADJUSTS THE CARD ROUTINE DCL02260
227 | * DCL02270
0073 228 | CL280 EQU /73 LOADED ADDRESS DCL02280
0003 229 | CL290 EQU /3 EXECUTED ADDRESS DCL02290
0070 230 | CL300 EQU CL280-CL290 OFFSET PROGRAM IS MOVE DCL02300
0082 231 | CL310 EQU CL270+1-CL010 SIZE OF AREA TO MOVE DCL02310
00F6 232 | CL320 EQU *+CL300 ENTRY POINT DCL02320
0086 C400 0029 233 | LD L /29 DCL02330
0088 1808 234 | SRA 8 DCL02340
0089 4C20 0104 235 | BSC L CL350+CL300,Z BRANCH IF 2501 DCL02350
236 | * DCL02360
237 | * READY FOR 1442 DCL02370
238 | * DCL02380
008B C006 239 | LD CL330 DCL02390
008C D400 0075 240 | STO L CL020+CL300 INITIALIZE IOCC DCL02400
008E C004 241 | LD CL340 DCL02410
008F D400 0079 242 | STO L CL040+CL300 INITIALIZE IOCC DCL02420
0091 7002 243 | MDX CL350 DCL02430
0092 1404 244 | CL330 DC /1404 START 1442 IOCC FUNCT. DCL02440
0093 1703 245 | CL340 DC /1703 TEST 1442 IOCC FUNCT. DCL02450
246 | * DCL02460
247 | * THIS ROUTINE MOVES THE CORE IMAGE LOADER DCL02470
248 | * FROM THE PLACE THAT IT IS LOADED TO LOW CORE DCL02480
249 | * DCL02490
0094 6500 FF7E 250 | CL350 LDX L1 -CL310 LOAD WORD COUNT DCL02500
0096 C500 00F6 251 | LD L1 CL280+CL310+1 MOVE A WORD DCL02510
0098 D500 0086 252 | STO L1 CL290+CL310+1 DCL02520
009A 7101 253 | MDX 1 1 DECREMENT WORD COUNT DCL02530
009B 70FA 254 | MDX *-6 BRANCH IF NOT ZERO DCL02540
009C 4C00 0025 255 | BSC L CL140 ENTER CORE IMAGE LOADER DCL02550
009E 256 | END CL320 DCL02560
There were no errors in this assembly
Program transfer address = 00F6
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
CL010 0004 77 231
CL020 0005 79 131 136 240
CL030 0007 81 92 93 137
CL040 0009 83 94 105 129 242
CL050 000A 84 107 132 180 190
CL060 000B 85 109 172 186 208
CL070 000D 90 82 96
CL080 0016 100 108
CL090 0018 103 86
CL100 001F 109 182
CL110 0000 115 91 95 100 104
CL120 0023 116 106
CL130 0024 117 122 175
CL140 0025 121 111 213 255
CL150 002B 129 130
CL160 0037 144 165
CL170 003B 147 159 162
CL180 003D 149 153 154 158
CL200 004B 161 156
CL210 004E 163 160
CL220 0056 173 177
CL230 0063 186 170
CL240 0066 188 179
CL250 006C 195 189
CL260 0076 202 207
CL270 0085 222 78 123 138 139 169 173 188 195 201 212 217 218
231
CL275 00D6 223
CL280 0073 228 230 251
CL290 0003 229 230 252
CL300 0070 230 232 235 240 242
CL310 0082 231 250 251 252
CL320 00F6 232 256
CL330 0092 244 239
CL340 0093 245 241
CL350 0094 250 235 243
RTEX3 003F 151 157