File: compact.t2

For general comments see here
LineAddressObject Code LabelF1N1BF2N2CommentsCheck
1 0  ; tape1.d/compact.t2
2 0  ;-------------------
3 0  ;
4 0  =209 
5 209  MvCons::; 
6 209  .ent:; 
7 209 0600051 lod TConLim   ; @209
8 209+0120046 sub OcdRdP   ;
9 210 1140317 jz L207P   ;-> @210
10 210+0040046 o02 OcdRdP   ;
11 211  ; from 253
12 211  .0:; 
13 211 0160037 bus conlim   ;
14 211+1120324 jn .1   ;skip
15 212 1100330 jmp .3   ;-> @212
16 212+ ;
17 212+ ; from 211+
18 212+ .1:; 
19 212+0600046 lod OcdRdP   ;get ocode read pointer @212+
20 213 0100060 add K3b   ;add 3 for elbow room
21 213+0120051 sub TConLim   ;present constant lowlim
22 214 1120327 jn .2   ;->
23 214+0600046 lod OcdRdP   ;
24 215 1000331 jmp .4   ;->
25 215+ ;
26 215+ ; from 214
27 215+ .2:; 
28 215+0040046 o02 OcdRdP   ; @215+
29 216 1000331 jmp .4   ;->
30 216+ ;
31 216+ .3:; 
32 216+0600037 lod conlim   ; @216+
33 217  .4:; 
34 217 0400043 sto LodWk3   ;destination @217
35 217+0200051 exa TConLim   ;
36 218 0400044 sto LodWk1   ;source
37 218+1000335 jmp .6   ;jump into loop at end test
38 219  ; loop copying constant area
39 219  .5:; 
40 219 0000222600000 o00 LodWk1/lod 0; @219
41 220 2200216400000 inc LodWk3/sto 0;
42 221  ;
43 221  .6:; 
44 221 0640044 lis LodWk1   ;fetch and nump source ptr @221
45 221+0120050 sub TConTop   ;all area copied?
46 222 1020333 jn .5   ;loop until it is
47 222+0600043 lod LodWk3   ;new top ptr
48 223 0400050 sto TConTop   ;save it
49 223+1000355 jmp .11   ;and return
50 224  ;
51 224  ; from 201
52 224  L224:; 
53 224  .7:; 
54 224 0600034 lod CodePtr   ; @224
55 224+0060074 and K8191a   ;=8191
56 225 0120050 sub TConTop   ;
57 225+1040317 jz L207   ;->^
58 226 0120076 sub K11a   ;=11 @226
59 226+1120344 jn .8   ;
60 227 0040000 o02 0   ;=1
61 227+0100057 add K1a   ;=1+1=>2
62 228 1000345 jmp .9   ; @228
63 228+ ;
64 228+ ; from 226+
65 228+ .8:; 
66 228+0040000 o02 0   ;=1 @228+
67 229  ; from 228
68 229  .9:; 
69 229 0100050 add TConTop   ; @229
70 229+0400043 sto LodWk3   ;
71 230 0200050 exa TConTop   ;
72 230+0400044 sto LodWk1   ;
73 231  .10:; 
74 231  ; loop from 235
75 231 0000222600000 o00 LodWk1/lod 0; @231
76 232 0000216400000 o00 LodWk3/sto 0;
77 233 0040000 o02 0   ; @233
78 233+0560043 o27 LodWk3   ;
79 234 0760044 o37 LodWk1   ; @234
80 234+0160051 bus TConLim   ;
81 235 1020347 jn .10   ;loop back to 231 @235
82 235+0040043 o02 LodWk3   ;
83 236 0400051 sto TConLim   ; @236
84 236+1100311 jmp L201P   ;
85 237  ;
86 237  ; from 223+
87 237  .11:; 
88 237   ret     ; @237
88+1237 0000203000001 o00 MvCons.lnk/jmp 1 
89 238  ;--------------------------------------------------------
90 238  ;
91 238  ; mark compiler as corrupt, forcing reload if operator tries to re-enter
92 238  ;
93 238  =241 
94 241  L241:; 
95 241  .241:; 
96 241 0600107 lod EP8SK   ;=skel for ep8+9 to issue 'reload tape 1+2' msg
97 241+0100012 add T2VEC   ;add tape2 base address
98 242 0400010 sto EP8   ;store in 8 @242
99 242+0400011 sto EP9   ;and 9
100 243 0600110 lod W72   ;=<47 207 : 40 12> jump to Space Oflo msg
101 243+0100012 add T2VEC   ;relocate to tape 2
102 244 0400317 sto L207   ;store in L207 @244
103 244+0042237 o02 K19b   ;=19+1=>20
104 245 0400072 sto LoMeM   ;set LoMeM=20
105 245+0040000 o02 0   ;=1
106 246 0160104 bus FBuffP   ; @246
107 246+0400044 sto LodWk1   ;
108 247 0607532 lod FreeMemPtr   ;=4630?
109 247+0400043 sto LodWk3   ;
110 248  ; loop from 251
111 248  .248:; 
112 248 0000216600000 o00 LodWk3/lod 0;move from high locn @248
113 249 2200222400000 inc LodWk1/sto 0;to lower locn
114 250 0640043 lis LodWk3   ;fetch and increment pointer @250
115 250+0120046 sub OcdRdP   ;check for overlpa with ocode area
116 251 1020370 jn .248   ;loop back if OK
117 251+0600044 lod LodWk1   ;load new end point
118 252 0400046 sto OcdRdP   ;store as read pointer @252
119 252+0100060 add K3b   ;add 3
120 253 1000323 jmp .0   ;->back to try again
121 253+ ;---
122 253+0000000 o00 0   ; @253+
123 254  ;-----------------------------------------------------------