-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdump.s
More file actions
578 lines (578 loc) · 21.3 KB
/
dump.s
File metadata and controls
578 lines (578 loc) · 21.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
JOB Card 1 of core dump routine
* SET WORD MARKS FOR THE SECOND CARD
ORG 1
SW A1,A2
A1 SW A3,A4
A2 NOP 0,0,0
A3 SW A5,A6
A4 NOP 0,0,0
A5 SW A7
A6 SW A8,A9
A7 SW A10
A8 SW A11
A9 N0
A10 SW A12
A11 SW A13
A12 R BLOOP READ THE NEXT CARD
A13 DCW #1
JOB Card 2 of core dump routine
* Replace group marks in 81-399 by ).
ORG 1
BLOOP MCW BADDR,BTESTG&6 SET TEST ADDRESS
MCW BADDR,BREPLG&6 SET REPLACEMENT ADDR
BTESTG BCE BREPLG,5777&X1,} GROUP MARK? (B REPLACED)
BBUMP A BINCR,BADDR UPDATE TEST ADDRESS
BCE BDONE,BADDR-2,4 DONE WITH SCAN?
B BLOOP AROUND AGAIN
BREPLG MCW BLOZ,5777&X1 REPLACE GROUP MARK (B REPLACED)
B BBUMP UPDATE TEST ADDRESS
BADDR DCW @081@
DC @ @
BDONE CC K SKIP TWO LINES
CS *-3 NEED NEW WORD MARKS
SW CSTART READY FOR A NEW CARD
BINCR R CSTART READ A NEW CARD
BLOZ DCW @)@ LOZENGE ON THE A CHAIN
JOB Card 3 of core dump routine
* Set word marks for the next card, print the print
* area, then print the word marks.
ORG 1
CSTART SW C1,C2
C1 SW C3
C2 SW C4
C3 SW C5,C6
C4 SW C7,C8
C5 SW C9
C6 SW C10,C11
C7 SW DLOAD,C14
C8 SW
C9 SW C15,C16
C10 SW C17,C12
C11 CW C4
C12 SW DLOAD2
C13 W
C14 2)
C15 N0
C16 R DSTART
C17 NOP
JOB Card 4 of core dump routine
* Clear 300-332 to make sure 330 isn't a zero. Fill
* in the dots and numbers 210-330, print them.
ORG 1
DCW @.......@
DNUM DCW @210@
DC #1
DSTART CS 332 ENSURE 330 IS NOT @0@
N00
NOP
DLOAD LCA DNUM,210 LOAD NUM TO PRINT
DLOAD2 LCA LOAD DOTS
CW C8
A DREAD&1,DNUM ADD 10 T0 NUM
BCE DDONE,330,0 DONE?
A DREAD&1,DLOAD&6 ADD 10 TO LOAD PLACE
LCA 2,332 LAST TWO DOTS TO PRINT
B DLOAD AROUND AGAIN
DDONE CW DLOAD2
W
N0
CC J SKIP ONE LINE
DREAD R ESTART READ THE NEXT CARD
DCW #1
JOB Card 5 of core dump routine
* Clear 300-332. Remember whether 101 had a word mark.
* Set one so we can load from 101 upward. Load 101-200
* and its word marks to 201-300. Clear (or don't
* clear) the word mark in 201. Print. Print word marks.
ORG 1
EHAVWM MCW ENOP,ECW CHANGE CW TO NOP
B ELOOP
ESTART SW E1
NOP
E1 CS 332
NOP
BW EHAVWM,101 WM IN 101?
SW 101 NO, SET ONE
ELOOP LCA 101,201 LOAD TO PRINT AREA
BCE ECW,ELOOP&4,3 STORING AT 300 YET?
A EREAD,ELOOP&3 UPDATE FROM ADDRESS
A EREAD,ELOOP&6 UPDATE TO ADDRESS
B ELOOP NO
ECW CW 201 OR MAYBE NOT
W
2) PRINT THE WORD MARKS
N0
EREAD R FSTART READ THE NEXT CARD
ENOP NOP
JOB Card 6 of core dump routine
* Clear 300 to make sure it isn't zero. Fill in the
* dots and numbers 110-200. Print them.
ORG 1
DCW @.......@
FNUM DCW @110@
DC #1
FSTART CS 300 ENSURE 300 ISN'T 0
NOP
SW FLOAD2
NOP
FLOAD LCA FNUM,210 LOAD NUM TO PRINT
FLOAD2 LCA LOAD THE DOTS
NOP 0
A FREAD&1,FNUM ADD 10 T0 NUM
BCE FDONE,300,0 DONE?
A FREAD&1,FLOAD&6 ADD 10 TO LOAD PLACE
NOP 0,0
B FLOAD AROUND AGAIN
FDONE CW FLOAD2
W
N0
CC J SKIP ONE LINE
FREAD R GSTART READ THE NEXT CARD
NOP
JOB Card 7 of core dump routine
* Clear 300. Remember whether 81 had a word mark. Set
* one. Load 81-99 and its word marks to 281-299.
* Clear (or don't clear) the word mark in 281. Print.
* Print word marks.
ORG 1
GHAVWM MCW GNOP,GCW CHANGE CW TO NOP
B GLOOP
DCW #4
DCW #1
GSTART CS 300
CS
BW GHAVWM,81 WM IN 81?
SW 81 NO, SET ONE
GLOOP LCA 81,201 LOAD TO PRINT AREA
BCE GCW,GLOOP&4,3 STORING AT 300 YET?
A GREAD,GLOOP&3 UPDATE FROM ADDRESS
A GREAD,GLOOP&6 UPDATE TO ADDRESS
B GLOOP NO
GCW CW 281 OR MAYBE NOT
W
2) PRINT THE WORD MARKS
N0
GREAD R HSTART READ THE NEXT CARD
GNOP NOP
JOB Card 8 of core dump routine
* Load index register identification to 281-300.
ORG 1
HDOTS DCW @......*@
HINDX1 DCW @1*..@
DCW @*2*.@
H1 DCW @.@
HINDX DCW @*3*.@
DC #1
H2 DCW #1
H3 DC #7
HSTART SW H4
CW HDOTS&1,HINDX&1
CW H2,H1&1
H4 CW
LCA HINDX,300 MOVE XR ID TO 300
SW H1,H2&1
R ISTART READ THE NEXT CARD
DCW #4
DCW #1
DCW #2
DCW #2
DCW #4
DCW #1
JOB Card 9 of core dump routine
* Load sense switch identifiers to 201-234.
ORG 1
ISSTXT DCW @SENSE SWS ON@
DC #1
DCW #7
DCW #7
IOFF DCW @OFF@
DC #1
DCW #7
DCW #7
DCW #1
ISTART LCA ISSTXT,214 LOAD SS ON TEXT TO 214
LCA IOFF,234 LOAD SS OFF
CW C15
CW C12
NOP
SW JSTART
R JSTART READ THE NEXT CARD
DCW #1
JOB Card 10 of core dump routine
* Put list of on and off sense switches in 236... (on)
* or 216... (off).
ORG 1
JTWO DCW 2
DC #9
JSTART BSS JON,B SWITCH ON?
JOFF M JB,236 NO, MOVE SS ID TO OFF
A JTWO,JOFF&6 INCR OFF ID SPOT
B JBOTH
JON M JB,216 YES, MOVE SS ID TO ON
A JTWO,JON&6
NOP
JBOTH A JREAD,JSTART&4 INCR SWITCH TEST
A JREAD,JB INCR SS ID
BCE JREAD,JB,H DONE?
NOP
B JSTART AROUND AGAIN
JREAD R KSTART READ THE NEXT CARD
JB DCW @B@ SS ID TO PRINT
JOB Card 11 of core dump routine
* Save comparison indicators in 100..125.
ORG 1
KUNEQ DCW @ UNEQUAL@
KEQUAL DCW @EQUAL@
KHIGH DCW @ HIGH@
DC #2
KLOW DCW @LOW@
DC #4
DCW #4
KSTART LCA KUNEQ,110 SAVE UNEQUAL
LCA KEQUAL,115 SAVE EQUAL
NOP
LCA KHIGH,120 SAVE HIGH
LCA KLOW,125 SAVE LOW
NOP 0,0,0
NOP
NOP 0
R LSTART
DCW #1
JOB Card 12 of core dump routine
* Move appropriate comparison indicators to 247..265.
ORG 1
LINC DCW 5003 INC FOR TWO ADDRS
DC #6
LSTART BU LINDON INDICATOR ON?
NOP 0,0
NOP 0,0
B LINDOF NO
DCW #7
LINDON MCW 110,256 MOVE INDICATOR TO PR
NOP
LINDOF A LREAD,LSTART&4 INCR INDICATOR TEST
A LINC,LINDON&6 INCR BOTH ADDRS
BCE LREAD,LSTART&4,V DONE?
NOP
B LSTART AROUND AGAIN
LREAD R MSTART READ THE NEXT CARD
DCW #1
JOB Card 13 of core dump routine
* Construct overflow off (or on) indicator.
* Move it to 268..277.
ORG 1
MOVFF DCW @OVFLO OFF@
DC #1
MSTART BAV MOVFL OVERFLOW?
MOVON DCW @N @ NOP, AND N FOR MSG
DC @00000@ REST OF THE NOP INSTR
NOP 0,0
B MOVFON
DCW #7
MOVFL MCW MOVON,MOVFF CHANGE OFF TO ON
NOP
MOVFON MCW MOVFF,277 MOVE MSG TO PRINT AREA
NOP 0,0
NOP 0,0,0
NOP
NOP 0
R NSTART
DCW #1
JOB Card 14 of core dump routine
* Move clear routines for 200-299 and 0-80 to
* 101-116. Print indicators. Clear 200-299 and 0-80.
* Set word mark in 1, read a card and branch to 1.
ORG 1
DCW @/299/080,0@ CLEAR STORAGE ROUTINE
DCW @01100@ SEE SOURCE CODE BELOW
NCLEAR DCW @1@
DC #6
DCW #7
DCW #4
NSTART SW N1,N2
CW JSTART,NCLEAR
CW
LCA NCLEAR,NCLEND-1
SW NCLEND,NCL3
SW NCL2
N1 SW NCL1
W
CC L SKIP THREE LINES
N2 CC K SKIP TWO LINES
B NCLBEG
DCW #1
* Routine to clear 200-299 and 0-80, then set a word
* mark at 1, read a card and branch to 1. The text of
* this routine is punched in cc 1-16 of card N.
ORG 101
NCLBEG CS 299
NCL1 CS 80
NCL2 SW 1
NCL3 R OSTART
NCLEND DCW #1
JOB Move data and word marks to print area
* Routine to move data and word marks to print area.
* Convert group marks to ).
* Read a card when done.
ORG 78
DWSTRT BU WSTART
DW1 B SWITCH
X1 DCW @X00@
DFF DCW @FF@
X2 DCW 333
DW3 DCW 01
X3 DC 033
DWPRNT W
DW5 CS 332
CS
DWLOOP SW 212&X3 ASSUME DATA HAS WM
DW7 MCW 0&X2,212&X3 MOVE THE DATA
DW8 BW GOTWM,0&X2 DID IT HAVE WM?
LOZ CW 212&X3 NO, CLEAR ASSUMED WM
GOTWM BCE GOTGM,0&X3,} GROUP MARK?
DW9 B NOGM NO
GOTGM MCW LOZ,212&X3 REPL GROUP MARK WITH )
NOGM A DWREAD,X3 BUMP X3
A BUMP X2 -- MA FOR BIG CORE
DW12 BCE DWLOOP,X3-2,0 AROUND AGAIN
CW DWSTRT CHANGED LATER TO W 060
SWITCH NOP 080 CHANGED TO N OR /
DW14 SW PSTART
DWREAD R PSTART READ THE NEXT CARD
DWDOTS DCW @........@
DWLOW DCW 49 LOW ORDER TWO DIGITS
DWBEGN DCW 00333 BEGIN OF LINE
DWAREA DC @-AREA @
JOB Card 15 of core dump routine
* Set word marks, move some code to 164-200.
ORG 1
OSTART SW O1,O2
O1 SW O3,O4
O2 SW O5,O6
O3 NOP
O4 SW O7
O5 SW O8
O6 LCA O9,DWAREA
O7 R PSTART
O8 DCW @)@ CW JUST BEFORE SWITCH
O9 DC @078N080,0011001........4900333-AREA @
JOB Card 16 of core dump routine
* Move some code to 125-163, set some word marks.
ORG 1
PSTART LCA P1,DW12&7
SW DWBEGN-4,DWLOW-1
SW DW12,DW12
SW
SW DWDOTS-7
SW DWREAD
SW DW14,SWITCH
R QSTART
DCW @)2A2B1410!0}B148M1252A2A176099A@
P1 DC @B1060970@
JOB Card 17 of core dump routine
* Move some code to 87-124, set some word marks.
ORG 1
QSTART LCA Q1,DW8&7
SW NOGM,GOTGM
SW DW5,DWLOOP
SW
SW DW9
SW GOTWM
SW DW8,DW7
R RSTART
DCW @X00FF333010332/332/,2A2M0!02A2@
Q1 DC @V1290!01@
JOB Card 18 of core dump routine
* Set some word marks, move some code to 78-86
* (actually part of an instruction)
ORG 1
RSTART SW R1,SDONE
SW S1,SLOW-6
LCA R5,DW1&3
NOP
CW O8
CW O5
SW X2&1,X2-2
SW X1&1,DW1
R1 R SSTART
DCW #11
R5 DCW @ 1/B168@
JOB Card 19 of core dump routine
* Move "00333-AREA " with zero suppression to
* 201-211. Update "xxxxx-AREA " to 00400. Put
* .....39 - ........99 in print area. Go to print it
* and to set up to print 333-399 area.
ORG 1
SSTART MCS DWAREA,211
MCW SADDR,DWBEGN REPLACE 333 WITH 400
SLOOP LCA DWLOW,261 FIRST DOTS OFFSET 49
LCA MOVE THE DOTS
BCE SDONE,DWLOW-1,9 DONE FILLING DOTS?
A DWREAD,DWLOW-1 BUMP DOTS ADDR BY 10
A DWREAD,SLOOP&5 BUMP DOTS POINT BY 10
B SLOOP AROUND AGAIN
SDONE LCA SLOW,251 PUT ......39 IN PRINT
S1 B DWPRNT GO PRINT IT
SLOW DCW @.....39@
SADDR DC 00400
JOB Test for a blank x00-x99 area
* Reset ........xx to ........09. Set starting
* position for dots to 221. Check for a blank line
* without word marks.
ORG 333
TBSTRT MN DW14&1,DWLOW-1 ZERO TO ........x9
TB1 MN WLOOP-1,WLOOP&4 322 BACK TO 222
TB2 MCW X2,X1
TB3 SW 323
TBLOOP C 9&X1,332 BLANK AREA?
BU DWPRNT NO, PRINT
TB4 BW DWPRNT,0&X1 WORDMARK? NO, PRINT
TB5 BCE WRET,X1-1,9 DONE?
TB6 A X3-2,X1 BUMP X1 BY 10 -- MA FOR BIG CORE
TB7 B TBLOOP AROUND AGAIN
MSIZ DCW @014@ MEMORY SIZE / 100
JOB Card 20 of core dump routine
* Move some code to 333-364. Set some word marks.
ORG 1
TSTART CW S1,SLOW-6
LCA T2,TBLOOP&6
SW TB1,TB2
NOP
NOP 0,0,0
T1 SW TB3,TBLOOP
CW T1,T1
R USTART
T2 DCW @D173188D014019M094089,323C0'9332@
JOB Card 21 of core dump routine
* Move some code to 365-396. Set some word marks.
ORG 1
USTART LCA U2,TB7&3
SW U1,V1
SW TB4,TB5
NOP
SW TB6,TB7
U1 NOP 0,0,0
SW DWSTRT,DWSTRT
R VSTART
DCW @B@ B OF BU DWPRNT
U2 DC @100/V1000'01B0490889A097089B358@
JOB Card 22 of core dump routine
* Set some word marks. Change SWITCH to 2060N
* Change first ........x9 to ........09.
* Move the core size to 396-399.
ORG 1
VSTART SW XRET,W4
SW W5,WTEST
M VSWICH,SWITCH&3 CHANGE SWITCH TO 2060
M
V1 MN DWREAD&1,DWLOW-1 X9 TO ........09
NOP 0,0,0
LCA VCORE,MSIZ SAVE CORE SIZE
R WSTART READ THE NEXT CARD
W XRET NEW FOR SWITCH
VSWICH NOP
DC @ @
VCORE DCW 014 CORE SIZE / 100
DC 00 TENS DIGIT OF CORE
DCW @ CORE SIZE@ JUST A COMMENT
JOB Card 23 of core dump routine
* Move "xxxxx-AREA " with zero supression to 201-211.
* Update xxxxx by 100.
* Put ........09 - ........99 to 212-311.
* Go put data and word marks in the print area and
* print the data. Print the word marks on return.
ORG 1
WSTART MCS DWAREA,211
A DWREAD,DWBEGN-2 BUMP ADDR BY 100
WLOOP LCA DWLOW,221 ........X9 TO PRINT
LCA
A DWREAD,WLOOP&5 BUMP ........X9 POSN
BCE TBSTRT,DWLOW-1,9 DONE WITH ........X9?
A DWREAD,DWLOW-1 BUMP X IN ........X9
B WLOOP AROUND AGAIN
WRET A DWREAD&2,X2 BUMP CORE START BY 100 - MA IF BIG
B WTEST
XRET 2) PRINT THE WORD MARKS
W4 CC J SKIP ONE LINE
W5 MN DW14&1,X3-2 ZERO TO HIGH DIGIT
WTEST C MSIZ,DWBEGN-2 DONE?
BU WSTART DOESN'T FIT, BUT OK
* (rest is on card R)
JOB Card 24 of core dump routine
* Print whether Sense switch A is on.
ORG 1
YSTART SW Y1,Y3
CW XRET,WTEST
SW Y2,YHALT
SW
CW W4,DWSTRT
NOP
Y1 CS 332
CS
Y2 N0
LCA YSWA,213
SW YHALT&4
BSS YPRINT,A SS A ON?
Y3 N0
MCW DFF,214 CHANGE MSG TO OFF
YPRINT W
YHALT H YHALT ALL DONE
YSWA DCW @SENSE SW A ON@
JOB Alternative card 12 of core dump routine
* Clear routine that gets moved to 81-92
ORG 81
CS 80
SETWM2 SW 1
READX2 R 1
*
* First card of two-card alternative sequence for cards 12-14
* Move appropriate comparison indicators to 247..265. Move
* R 001 to 92.
ORG 1
SFX L
INC DCW 5003 INC FOR TWO ADDRS
DC #6
START BU INDON INDICATOR ON?
LCA MREAD&3,READX2&3 SOME INDICATOR WILL BE OFF
B INDOF
DC #3 B WITH BLANK D NEEDS NO WM
MREAD R 001 GETS MOVED TO 89-92
DCW #7
INDON MCW 110,256 MOVE INDICATOR TO PR
NOP
INDOF A READ,START&4 INCR INDICATOR TEST
A INC,INDON&6 INCR BOTH ADDRS
BCE READ,START&4,V DONE?
NOP
B START AROUND AGAIN
READ R STARTM READ THE NEXT CARD
DCW #1
JOB Alternative card 13 of core dump routine
* Second card of two-card alternative sequence for cards 12-14
* Construct overflow off (or on) indicator. Move it to 268..277.
* Move CS 80, SW 1 to 81-88. Set word marks for it.
* Print indicators. Clear 200-299 and 0-80. Set word mark in 1,
* read a card and branch to 1.
SFX M
ORG 1
OVMSG DCW @OVFLO ON @
DC #1
START BAV OVON OVERFLOW ON?
MCW OVFF,OVMSG NO, CHANGE ON TO OFF
OVON MCW OVMSG,277 MOVE MESSAGE TO PRINT AREA
SW OVCC NEED A WM
LCA OVCLR,SETWM2&3 MOVE PART OF CLEAR ROUTINE
SW SETWM2,READX2&4 IT NEEDS A WM
NOP
B OVFIN
DCW #3 BRANCH WITH BLANK D NEEDS NO WM
OVFF DCW @FF@
DC #5
CS 80 GETS MOVED TO 81-84
OVCLR DC @,001@ GETS MOVED TO 85-88
OVFIN W
CC L SKIP 3 LINES
OVCC CC K SKIP 2 LINES
CS 299
NOP
END