Infocom ERLOGIC interpreter disassembly, 5/27)84 WACRO8O 3. 18—Sep—81 PAGE 1
1 TITLE Infocom INTERLOGIC interpreter disassembly, 5/27/84
2
3
4
*
5 * Infocom INTERLOGIC interpreter disassembly *
6 ; * Apple 11/6502 versIon, release 3 *
7 * As used in interactive fiction games *
8 ;* *
9 * The INTERLOGIC interpreter is copyrighted by Infocom, Inc. *
10 ;* *
Il * This disassembly and the comments therof are copyright (C) 1984 by *
12 * Eric L. Smith *
13 ; * 230 South 500 West Suite 133 *
14 ; * Salt Lake City, Utah 64101 *
15 ; * (801) 582—3371 *
16 ;* *
17 * This disassembly represents well over 300 hours of intense study. It *
18 * is intended for private, noncommercial use only. Any comments or *
19 ; * questions about it should be addressed to the above address. There is *
20 * no warranty, express or implied, as to the accuracy of this disassembly *
21 * or its fitness for any particular purpose. I assume no liability for *
22 * any damages, actual or alleged, direct or indirect, resulting from the *
23 ; * use of, or inability to use this disassembly. *
24 ;* *
25
26
27 PAGE

Infocoin •.6RLOGIC interpreter disassembly, 5127/84 MACRO—BO 18—Sep—81 PAGE 1—1
28
29
30 .6602
31 SALL
32 .SFCOND
33
34 0000 VERSN EQU 0
; 0 is old version, 1 is new
35 0000 RNGOBG EQU 0
; RNG debug
36 0001 LC4O EQIJ 1 40 column lower case
37
38
; define memory usage
39
40 0100 LDORG
EQIJ $0100 where to load
41
42 007F ZPORG EQU $7F
; origin of zero page usage
43 0200 BUFFER EQU $0200
I/O buffer
44 OOEO $TCKMX EQU $E0 ; maximum size of stack in words
45 03E8 STCKLC EQU $03E8 ; base address of stack (works down)
46 0228 STKLIM EQU STCKLC—2*STCKMX ; lower limit of stack
47
48 0779 PRTWDT EQU $0779 ; printer carriage width
49
60 1FF VERSN
51 0800 MAINOR EQU $0800 origin of main program
52 2200 VMTORG EQU MAINOR+$1A00 origin of virtual memory tables
53 2400 RWTSOR EQU VMTORG+$0200 ; origin of RWTS routines
54 2C00 FIRFLC EQU RWTSOR+$0800 ; first location available
55 BFFF LSTFLC EQU $C000l last potential location available
56 ENDIF
57
58 2200 VMTILC EQU VMTORG+$0000 virtual memory page tables
59 2280 VMT2LC EQU VMTORG÷$0080
60 2300 VMT3LC EQU vMTORGi-$0 100
61 2380 VMT4LC EQU VMTORG+$0180
62
63 2900 RWTS EQU RWTSOR+$0500 ; entry point of RWTS routines
64
65
66 Control characters
67
68 0000 CRCHAR EQLJ $00 carriage return
69 000A LFCHAR EQU $OA ; line feed
70 0009 TBCHAR EQU $09 ; horizontal tab
71 000C FFCHAR EQU $OC ; form feed
72
73
74 Apple monitor ROWs zero page locations
75
76 0020 WNDLFT EQU $20 ; screen window parameters
77 0021 WNDWDT EQU $21
78 0022 WNDTOP EQU $22
79 0023 WNDBOT EQU $23
80
81 0024 CURSRH EQU $24 ; cursor position
82 0025 CURSRV EQU $25

Infocom RL0GIC interpreter disassembly. 5/27/84 MACRO80 3. 18—Sep—81 PAGE 1—2
83
84 0032 INVFLG EQU $32 inverse video output flag
85
86 0033 PROMPT EQU $33
; line input prompt
87
88 0036 CSWL EQLJ $36
; character output vector 89
90 004E RNOLOC EQU $4E
; location randomized by keyboard input
91
92
93
; Apple monitor routines
94
95 FC22 VTAB EQU $FC22
; adjust video pointer after cursor move
96 FC5B HOME EQU $FC58
; clear screen window
97 FC9C CLREOL EQU $FC9C
; clear to end of line
98 FOOC RDKEY EQU $FDOC
; get a key from keyboard
99 FD6F GETLN1 EQU $FD6F get a line from keyboard
100 FDED COUT EQU $FDED output a char to current device
101 FOFO COUTI EQU $FDFO
; output a char to screen
102
103 IFT RNGDBG
104 ENDIF
105
106 PAGE

Infoconi L.ERLOGIC interpreter disassembly, 5/27/84 MACRO—80 3.-.... 18—Sep—81 PAGE 1—3
107
108
; define our own zero page usage
109
110 0O00 D DSECT
111 0 ORG ZPORG
112 D
113 007F D SECPTI( OS 1 number of sectors per track on disk
114 0
115 0080 0 OPCODE OS 1
; opcode of current instruction
116 0081 0 ARGCNT OS 1 instruction arguments
117 0
118 0082 0 ARG1 OS 2
119 0084 D ARG2 OS 2
120 0086 0 ARG3 OS 2
121 0088 0 ARG4 OS 2
122 0
123 008A 0 PRGIOX OS 1
; PC low byte, index into page
124 0086 0 PRGLPG OS 2 ; PC logical page number
125 0080 0 PRGMPT OS 2
; PC mern bc of logical page
126 008F 0 PROUPO OS 1 PC new page flag
127 0090 0 PRGPPG OS 1
; PC physical page number
128 0
129 0091 0 AUXLPG Os 2
; AUX logical page number
130 0093 0 AUXIOX OS 1 AUX low byte, index into page
131 0094 0 AUXMPT OS 2 AUX mem bc of logical page
132 0096 0 AUXUP0 OS 1
; AUX new page flag
133 0097 0 AUXPPG OS 1 ALJX physical page number
134 0
135 0098 0 GLBVAR OS 2
; pointer to global variables
136 009A 0 LOCVAR OS 30
; storage of local variables
137 0
138 0068 0 SWPMEM 05 2
; address of first swappable page
139 OOBA 0 FRZMEM OS 2
; address of first frozen page
140 OOBC 0 FRZPGS OS 1 ; number of frozen pages
141 OOBD D SWPPGS OS 1 number of swappable phys. pages
142 D
143 OOBE 0 MRUPAG OS 1 phys. pg. # of most recently used page
144 006F 0 LRUPAG OS 1
; phys. pg. # of least recently used page
145 D
146 OOCO 0 VMTAB1 Os 2 virtual memory table pointers
147 00C2 0 VMTAB2 DS 2
148 00C4 0 vMTAB3 OS 2
149 00C6 0 VMTAB4 OS 2
150 0
151 OOCO 0 STKCNT OS 1
; 0 items on stack
152 OOC9 0 STKPNT OS 2
; stack pointer
153 OOCB 0 STKPSV OS 2
; stack ptr save during call
154 OOCO D STKCSV OS 1
; stack cnt save during call
155 0
156 OOCE 0 TMPMOIJ OS 1
; string output temporary char, mode
157 OOCF 0 PRMMOO OS 1 ; string Output perm. char, mode
158 0000 0 PNVBCN DS 1 string output nybble counter
159 OODl 0 PNVBBF 05 2 ; string output nybble buffer
160 0
161 0003 0 INWORO OS 6 word to be packed

Infocorn I(. RL0GIC interpreter disassembly. 5/27/84 MACRO—80 3.( 18—Sep—81 PAGE 1—4 (
162 0
163 0009 D LD9 OS 1
164 0
165 000A 0 PKWORD OS 4
; packed ward
166 0
167 000E 0 LDE OS
168 000F 0 LOF OS 1
169 OOEO 0 LEO OS 1
170 00E1 0 LE1 OS 1
171 0
172 00E2 0 SBWOPT OS 2
173 0
174 00E4 0 ACB OS 2
175 00E6 0 ACC OS 2
176 OOEB 0 ACD OS 2
177 0
178 OQEA 0 MOFLAG OS I ; negative arg count for mult/div
179 0
180 00E8 0 CHRPTR OS 1 char out buffer pointer
181 OOEC 0 CHRPT2 OS 1 char out buffer pointer 2
182 OOED 0 LINCNT OS I
; output line counter
183 OOEE 0 PRCSWL OS 2 CSWL vector contents for printer
184 0
185 OOFO 0 OS 3
186 0
187 00F3 0 STLTYP OS 1
; status line type (time vs. score)
188 0
189 00F4 DENO
190
191 PAGE

Infocom .,ERLQGIC interpreter disassembly, 5/27/84 MACRO—SO 3. 18-Sep—81 PAGE 1—5
192
193
; define offsets into game header
194
195 000O 0 DSECT
196 0 ORG 0
197 0
198 0000 0 HORIRL OS 1
; required interpreter release (should be 3)
199 0001 0 HDRTYP DS 1
; game type flags (score/time, etc.)
200 0002 0 HORREL DS 2
; game release
201 0004 D HORFRZ DS 2
; log. addr. of end of frozen memory
202 0006 0 HDRSTR OS 2 log. addr. of start of code
203 0008 0 HDRVCB OS 2 log. addr. of vocab. table
204 000A 0 HDRTHG OS 2
; log. addr. of thing table
205 000C 0 HORG8V OS 2
; log. addr. of global variables
206 000E 0 HORIMP 05 2 log. addr. of end of impure storage
207 0010 0 HDRFLG OS 2
; flags (script, etc.)
208 0012 0 HORSER OS 6
; game serial no. (release date)
209 0018 0 HDRSSW 05 2 log. addr. of subeord table
210 OOlA 0 HORCKA OS 2
; half of last log. addr. to checksum
211 OO1C 0 HDRCKV OS 2
; expected checksum value
212 0
213 0
214 0 define thing table offsets
215 0
216 0 ORG 0
217 0
218 0000 0 THGATT OS 4
; attribute bits
219 0004 0 THGPAR OS 1 1’arent thing number
220 0005 0 THGSL8 OS 1
; sibling thing number
221 0006 0 THGCHD OS 1 child thing number
222 0007 0 THGPRP OS 2 property list pointer
223 0
224 0009 DENO
225
226 C INCLUDE ZIPMAC
227 C PAGE

Infocom _RLOGIC interpreter disassembly, 5127184 MACRO—80 3.( 18—Sep—81 PAGE 1—6 (
228 C
229 C
230 C
; Some useful macros
231 C
232 C+DSTZ MACRO ADDR
233 C+ LDA #$OO
234 C-’- STA ADOR
235 C+ STA ADDR+l
236 C ENDM
237 C
238 C+DASL MACRO ADR1,ADR2
239 C-’- IFN6 <ADR2>
240 C-’- LDA ADR1
241 C-’- ASL A
242 C-i- STA ADR2
243 C-’- LDA ADR1I-1
244 Ci- ROL A
245 C+ STA ADR2+1
2’6 Ci- ELSE
247 C+ ASL ADR1
248 Ci- ROL AOR1+1
249 C-’- ENDIF
250 C ENOM
251 C
252 CDLSR MACRO ADR1,ADR2
253
- Ci- IENB <ADR2>
254 Ci- LDA ADRIi-1
255 C+ LSR A
256 Ci- STA ADR2i-1
251 Ci- LDA ADR1
258 C-i- ROR A
259 Ci- STA ADR2
260 Ci- ELSE
261 Ci- LSR ADR1+l
262 Ci- ROR A0R1
263
- C-i- ENDIF
264 C ENDM
265 C
266 Ci-DROR MACRO ADR1,ADR2
267 Ci- IFNB <ADR2>
268 Ci- LDA ADR1i-1
269 Ci- ROR A
270 C-f STA ADR2i-1
271 Ci- LDA ADR1
272 C-’- ROR A
273 Ci- STA ADR2
274 Ci- ELSE
275 Ci- ROR ADR1+1
276 Ci- ROR ADR1
277 Ci- ENDIF
278 C ENDM
279
280 Ci-DROL MACRO ADR1.ADR2
281 Ci- IFN8 <ADR2>
282 C-’- LDA ADR1

Infocom ..RLOGIC interpreter disassembly, 5/27/84 MACRO—80 3. 18—Sep—81 PAGE 1—7
283 Ci- ROL 4
284 Ci- STA ADR2
285 Ct LDA ADR1tI
286 Ct ROL A
287 C+ STA ADR2+1
288 Ci- ELSE
289 Ci- ROL ADRI
290 Ct ROL ADR1+1
291 Ct ENDIF
292 C ENOM
293 C
294 Ci-DOR MACRO ADR1.ADR2,ADR3
295 Ci- LDA ADR1+1
296 Ci- ORA ADR2+1
297 Ci- STA ADR3+1
298 Ci- LDA ADR1
299 C+ ORA ADR2
300 Ci- STA ADR3
301 C ENDM
302 C
303 C÷DAND MACRO ADR1,ADR2,40R3
304 Ci- LDA ADR1+1
305 C+ AND ADR2+1
306 Ci- STA ADR3t1
307 C-i- LDA ADRI
308 Ci- AND ADR2
309 Ci- STA ADR3
310 C ENDM
311 C
312 C-i-D1COMP MACRO A0R1.ADR2
313 Ci- LDA ADR1
314 Ci- EOR
315 Ci- STA ADR2
316 C+ LDA ADR1+1
317 Ct EOR #$FF
318 Ci- STA ADR2+1
319 C ENDM
320 C
321 CtDADC MACRO ADR1,ADR2,AOR3
322 Ct LDA ADR1
323 C-i- ADC ADR2
324 Ci- IRP ADR,<ADR3>
325 Ci- STA ADR
326 Ct ENDM
327 Ct LDA ADR1t1
328 Ct ADC ADR2t1
329 Ci- IRP ADR,<ADR3>
330 Ct STA ADR+1
331 C-i- ENDM
332 C ENDM
333 C
334 CtDSSC MACRO A081,ADR2,ADR3
335 Ct LDA ADR1
336 Ci- SBC ADR2
337 Ci- IRP ADR,<ADR3>
338 Ct STA ADR

Infocom $NiERLOGIC interpreter disassembly, 5/27/84 MACRO8Q 18—Sep—SI PAGE 1—8
339 C-i- ENDM
340 C-f LDA ADRI+1
341 C+ SBC ADR2+1
342 C-i- IRP ADR,<ADR3>
343 Cl- STA ADR+1
344 Cl- ENDM
345 C ENDM
346 C
347 C+DAOD MACRO ADR1,ADR2,ADR3
348 C+ CLC
349 Cl- DADC <ADR1>,<AOR2>,<ADR3>
350 C ENOM
351 C
352
CI-OSUB MACRO ADR1,ADR2,ADR3
353 C-’- SEC
354 C-i- DSBC <ADR1>,<ADR2><ADR3>
355 C ENOM
356 C
357 Cl-ADD MACRO ADR1,ADR2,ADR3
358 Cl- IFNB <ADRI>
359 Cl- LDA ADR1
360 C+ ENDIF
361 Cl- CLC
362 C+ ADC ADR2
363 C+ IFNB <ADR3>
364 C+ IRP ADR,<ADR3>
365 C-’- STA ADR
366 C+ ENDM
367 C-’- ENDIF
368 C ENOM
369 C
370 Cl-SUB MACRO ADRI,ADR2,ADR3
371 Cl- IFNB <ADR1>
372 Cl- LDA ADR1
373 Cl- ENDIF
374 C+ SEC
375 C-i- SBC ADR2
376 C+ lENS <ADR3>
377 C+ IRP ADR,<ADR3>
378 C+ STA ADR
379 C+ ENOM
380 C+ ENDIF
381 C ENDM
382 C
383 C+DADDBI MACRO ADDR,GVTE
384 C+ LOCAL LABEL
385 C+ CLC
386 Cl- LDA ADOR
387 C-’- ADC BYTE
388 C+ STA ADDR
389 C-’- BCC LABEL
390 C-’- INC ADDRI-1
391 Cl-LABEL:
392 C ENDM
393 C
394 C+DSUBB1 MACRO ADDR.BYTE

Infocom( .ERLOGIC interpreter dsassemb1y, 5/27/84 MACRO—BO 3(. 18—Sep—81 PAGE 1—9
395 C+ LOCAL LABEL
396 C-’- SEC
397 Cl- LDA ADDR
398 Cl- SBC BYTE
399 Cl- STA ADOR
400 Cl- BCS LABEL
401 Cl- DEC ADDR-*-I
402 Cl-LABEL:
403 C ENDM
404 C
405 C-’-DADDB2 MACRO ADDRBYTE
406 C+ LOCAL LABEL
407 C IFNB <BYTE>
408 C+ ADD ADDR,BYTEADDR
409 C+ ELSE
410 C+ ADD •ADDR,ADDR
411 C+ ENDIF
412 C÷ BCC LABEL
413 C÷ INC ADDR+1
414 Cl-LABEL:
415 C ENDM
416 C
417 C-’-DSUBB2 MACRO ADDR,BYTE
418 Cl- LOCAL LABEL
419 C+ INB <BYTE>
420 C+ SUB ADOR.BYTE,ADOR
421 C÷ ELSE
422 C+ SUB ,ADDR,ADDR
423 C+ ENDIF
424 C+ BCS LABEL
425 C+ DEC ADDR±1
426 Cl-LABEL:
427 C ENDM
428 C
429 C+DINC MACRO ADDR
430 Cl- LOCAL LABEL
431 Cl- INC ADDR
432 C÷ BNE LABEL
433 C-’- INC ADDR-t-1
434 Cl-LABEL:
435 C ENDM
436 C
437 C+DDEC MACRO ADOR
438 C-’- DSUBB2 ADDR,<#$01>,ADDR
439 C
EF-4DM
440 C
441 Cl-DDEC2 MACRO ADDR
442 Cl- DSUBB2 ADDR,<#$02>,ADDR
443 C ENDM
444 C
445 C-’-DMOV MACRO ADR1.ADR2
446 C+ LDA ADR1
447
Cl- IRP ADR,<ADR2>
448 Cl- STA ADR
449 C+ ENDM
450 Cl- LDA ADRIl-l

Infocom(. .ERLOGIC interpreter disassembly, 5127/84 MACRO—80 3(. 18—Sep—Si PAGE 1—10
451 Ci- IRP ADR,<ADR2>
452
C-i- STA ADR-I-1
453 Ci- ENOM
454 C ENOM
455 C
456 Ci-OMOVI MACRO DATA,ADR2
457 Ci- LOA #<(DATA)
458 Ci- IRP ADR,<ADR2>
459 C-i- STA AOR
460 C+ ENDM
461 C+ LDA #>(DATA)
462 C-i- IRP ADR,<ADR2>
463 Ci- STA ADRi-I
464 Ci- ENDM
465 C ENOM
466 C
467 C+DMOVI2 MACRO DATA,ADR2
468 C+ LDA #>(DATA)
469 Ci- IRP ADR,<ADR2>
470 Ci- STA ADR+1
471 Ci- ENDM
472 Ci- LDA #<(DATA)
473 Ci- IRP ADR,<AOR2>
474 C-i- STA ADR
475 C-i- ENO14
476 C ENOM
477 C
478 Ci-PUL MACRO ADR1
479 Ci- IRP ADR,<AOR1>
480 Ci- PLA
481 Ci- STA ADR
482 Ci- ENOM
483 C ENOM
484 C
485 Ci-PSH MACRO ADR1
486 Ci- IRP ADR,<ADRI>
487 Ci- LDA ADR
488 Ci- PHA
489 Ci- ENDM
490 C ENDM
491 C
492 C+DPUL MACRO ADR
493 Ci- PUL ADR+1
494 Ci- PUL ADR
495 C ENDM
496 C
497 C-l-DPUL2 MACRO ADR
498 C-’- PUL ADR
499 Ci- PUL AORi-1
500 C ENOM
501 C
502 C-*-DPSH MACRO ADR
503 Ci- PSH ADR
504 Ci- PSH ADRi-1
505 C NDM
506 C

Infocom ( .RLOGIC interpreter disassembly. 5/27/84 MACRO—80 3( 18—Sep—Si PAGE 1—11
507 Ci-MOV MACRO ADR1,ADR2
508 C+ LDA ADR1
509 C+ IRP ADR,<AOR2>
510 Ci- STA ADR
511 C+ ENDM
512 C ENDM
513 C
514 C+INCA MACRO
515 C+ ADD
516 C ENDM
517 C
518 C+UECA MACRO
519 Ci- SUB
520 C ENDM
521 C
522 C+TSTA MACRO
523 Ci- ORA #$OQ
524 C ENDM
525 C
526 C+STR MACRO TEXT
527 Ci- 08 TEXT
528 C ENOM
529 C
530 C-’-JEQ MACRO AUR
531 Ci- LOCAL LABEL
532
- Ci- BNE LABEL
533 Ci- JMP ADR
534 C+LASEL:
535 C ENOM
536 C
537 C*-JNE MACRO ADR
538 Ci- LOCAL LABEL
539 Ci- BEQ LABEL
540 Ci- JMP ADR
541 C+LABEL:
542 C ENOM
543 C
544 C+JCC MACRO ADR
545 Ci- LOCAL LABEL
546 C+ BCS LABEL
547 Ci- JMP ADR
548 Ci-LABEL:
549 C ENDM
550 C
551 C+JCS MACRO ADR
552 Ci- LOCAL LABEL
553 Ci- BCC LABEL
554 Ci- JMP ADR
555 Ci-LABEL:
556 C ENDM
557 C
558 -Ct.JLT MACRO ADR
559 Ci- LOCAL LABEL
560 C+ BGE LABEL
561 C+ JMP ADR
562 Ci-LA8EL:

Infocom ( RLOGIC interpreter disassembly. 5127)84 MACROBO 3( 18—Sep—81 PAGE 1—12 (
563 C ENDM
564 C
565 C+JGE MACRO ADR
566 Ci- LOCAL LABEL
567 Ci- BLT LABEL
568 Ci- JMP ADR
569 C+LABEL:
570 C ENDM
571 C
572 C+JGT MACRO ADR
573 Ci- LOCAL LABEL
574 C+ BLT LABEL
575 Ci- BCC LABEL
576 Ci- JMP ADR
577 Ci-LABEL:
578 C ENOM
579 C
580 C-’-JPL MACRO ADR
581 Ci- LOCAL LABEL
582 C+ BMI LABEL
583 Ci- JMP ADR
584 Ci-LABEL:
585 C ENOM
586 C
587 C+JMI MACRO ADR
588 C+ LOCAL LABEL
589 Ci- BPL LABEL
590 Ci- JMP AOR
591 C+LABEL:
592 C ENOM
593 C
594 C-*-JSREQ MACRO ADR,ADR2
595 Ci- LOCAL LABEL
596 Ci- BNE LABEL
597
Ci- JSR ADR
598 Ci- IFNB <ADR2>
599 C+ JMP AOR2
600 Ci- ENDIF
601 C-*LABEL:
602 C ENDM
603 C
604 C1-JSRNE MACRO ADR.ADR2
605 Ci- LOCAL LABEL
606 C-f BEQ LABEL
607 Ci- JSR ADR
608 C-f IFNB <ADR2>
609 Ci- JMP ADR2
610 Ci- ENDIF
611 C+LABEL:
612 C ENDM
613 C
614 Ci-JSRCC MACRO ADR.ADR2
615 Ci- LOCAL LABEL
616 Ci- BCS LABEL
617 Ci- JSR ADR
618 C+ IFNB <ADR2>

Infocom ( RL0GIC interpreter disassembly, 5127/84 MACRO—80 3( 18—cep—81 PAGE 1—13 (
619 Cl- JMP ADR2
620 C÷ ENDIF
621 Cl-LABEL:
622 C ENDM
623 C
624 C+JSRCS MACRO ADR,ADR2
625 C+ LOCAL LABEL
626 C+ BCC LABEL
627 C+ JSR ADR
628 C+ IFNB <ADR2>
629 C+ JMP ADR2
630 C-’- ENDIF
631 Cl-LABEL:
632 C ENDM
633 C
634 C+JSRLT MACRO ADR,ADR2
635 C+ LOCAL LABEL
636 Cl- BGE LABEL
637 C- JSR ADR
638 C+ IFNB <ADR2>
639 C-’- JMP ADR2
640 Cl- ENDIF
641 Cl-LABEL:
642 C ENDM
643 C
644 C+JSRGE MACRO AOR,ADR2
645 Cl- LOCAL LABEL
646 C+ BLT LABEL
647
Cl- JSR ADR
648 C+ IFNB <ADR2>
649 C-’- JMP ADR2
650 C+ ENDIF
651 Cl-LABEL:
652 C ENDM
653 C
654 C+JSRGT MACRO ADR,ADR2
655 C+ LOCAL LABEL
656 Cl- BLT LABEL
657 C-’- BEQ LABEL
658 Cl- JSR ADR
659 Cl- IFNB <ADR2>
660 C÷ JMP ADR2
661 Cl- ENDIF
662 C+LABEL:
663 C ENOM
664 C
665 Cl-JSRPL MACRO ADR,ADR2
666 Cl- LOCAL LABEL
667 C+ BMI LABEL
668 Cl- JSR ADR
669 C÷ IFNB <ADR2
670 C+ JMP ADR2
671 C+ ENDIF
672 Cl-LABEL:
673 C ENDM
674 C

Infocom I. éRLOGIC interpreter disasseb1y. 5/27/84 MACRO—SO 3( 18—Sep81 PAGE 1—14 (
675 C+JSRMI MACRO ADR,ADR2
676 Ci- LOCAL LABEL
677 C+ BPL LABEL
678 Ci- .JSR ADR
679 Ci- IFNB <ADR2>
680 C+ JMP ADR2
681 C-t- ENDIF
682 Ci-LABEL:
683 C ENDM
684 C
685 C+RTSEQ MACRO ADR
686 Ci- LOCAL LABEL
687 Ci- BNE LABEL
688 Ct- RTS
689 C+LABEL:
690 C ENOM
691 C
692 C+RTSNE MACRO AOR
693 Ci- LOCAL LABEL
694 Ci- BEQ LABEL
695 Ci- RTS
696 C+LABEL:
697 C ENDM
698 C
699 C+RTSCC MACRO AOR
700 Ci- LOCAL LABEL
701 C+ BCS LABEL
702 C-f RTS
703 C+LABEL:
704 C ENDM
705 C
706 C+RTSCS MACRO ADR
707 Ci- LOCAL LABEL
708 Ci- 6CC LABEL
709 C-f RTS
710 C+LABEL:
711 C ENDM
712 C
713 C+RTSLT MACRO ADR
714 Ci- LOCAL LABEL
715 Ci- BGE LABEL
716 Ci- RTS
717 C+LABEL:
718 C ENDM
719 C
720 C÷RTSGE MACRO ADR
721 Ci- LOCAL LABEL
722 Ci- BLT LABEL
723 C+ RTS
724 C+LABEL:
725 C ENOM
726 C
727 C-fRTSGT MACRO ADR
728 C+ LOCAL LABEL
729 C+ BLT LABEL
730 C+ SEQ LABEL

Infocoin ( RLOGIC interpreter disasseriibly, 5/27184 MACRO—BO 3( 18—Sep—81 PAGE 1—15 (
731 C+ RTS
732 C+LABEL:
733 C ENDM
734 C
735 C+RTSPL MACRO ADR
736 C. LOCAL LABEL
737 Cl- BMI LABEL
738 C+ RTS
739 C+LABEL:
740 C ENDM
741 C
742 C+RTSMI MACRO ADR
743 C+ LOCAL LABEL
744 C+ 8PL LABEL
745 C+ RTS
746 C+LABEL:
747 C ENOM
748 C
749 C+DTST MACRO ADDR
750 C+ LDA ADDR+1
751 C+ ORA ADDR
752 C ENDM
753 C
754 C-I-DTSTBE MACRO ADR1,ADR2
755 C+ OTST ADRI
756 C+ BEQ ADR2
757 C ENOM
758 C
759 C-t-DTSTBN MACRO ADR1,ADRZ
760 C+ DTST ADRI
761
Cl- BNE ADR2
762 C ENDM
763 C
764 C+DTSTJE MACRO ADR1,ADR2
765 C÷ DTST ADR1
766 C+ JEQ ADR2
767 C ENDM
768 C
769 C+DTSTJN MACRO ADR1,ADR2
770 C÷ 01ST ADR1
771 C+ JNE ADR2
772 C ENDM
773 C
774 C-’-OTSTRE MACRO ADR1
775 C+ DTST ADR1
776 C+ RTSEQ
777 C ENDM
778 C
779 C-i-DTSTRN MACRO ADRJ
780
Cl- DTST ADR1
781 C+ RTSNE
782 C ENDM
783 C
784 C+DtST2 MACRO ADOR
785 C+ LDA ADDR
786 C. ORA ADDR-’-l

Infocoin1,ERLOGIC interpreter disassembly, 5/27/84 MACROBO 3( 18—Sep—81 PAGE 1—16 (
787 C ENDM
788 C
789 C+OTS28E MACRO ADR1,ADR2
790 C+ DTST2 ADR1
791 C+ BEQ ADR2
792 C ENDM
793 C
794 C+DTS28N MACRO ADR1,AOR2
795 C+ DTST2 ADR1
796 C+ BNE ADR2
797 C ENDM
798 C
799 C-’-DTS2JE MACRO ADR1.ADR2
800 C+ DTST2 ADR1
801 C-’- JEQ ADR2
802 C ENDM
803 C
804 C-’-DTS2JN MACRO ADR1,ADR2
805 C-’- DTST2 ADR1
806 C+ JNE ADR2
807 C ENDM
808 C
809 C+DTS2RE MACRO ADRI
810 C+ DTST2 ADR1
811 C+ RTSQ
812
- C ENOM
813 C
814 C-’-DTS2RN MACRO ADR1
815 C+ DTST2 ADR1
816 C+ RTSNE
817 C ENOM
818 C
819 C+DX6NE MACRO ADR
820 C-’- DEX
821 C-’- BNE ADR
822 C ENOM
823 C
824 C+OVSNE MACRO ADR
825 C+ 0EV
826 C-’- SNE ADR
827 C ENDM
828 C
829 C÷DX8EQ MACRO ADR
830 Ci- DEX
831 C-’- SEQ ADR
832 C ENDM
833 C
834 C+OV8EQ MACRO ADR
835 Ci- 0EV
836 Ci- SEQ ADR
837 C ENOM
838
839 C+DXBPL MACRO ADR
840 C’- DEX
841 C-’- 8PL ADR
842 C ENDM

Infocorn K RLOGIC interpreter isassemb1y, 5J27/84 MACRO—80 3.( 18—Sep—81 PAGE 1—17 (
843 C
844 C+DY8PL MACRO ADR
845 C+ DEV
846 C+ BPL ADR
847 C ENOM
848 C
849 C+DX8MI MACRO ADR
850 C+ DEX
851 C+ BMI ADR
852 C ENOM
853 C
854 C+DVBMI MACRO ADR
855 C+ DEY
856 C+ BMI MW
857 C ENDM
858 C
859 C+IX6NE MACRO ADR
860 C+ INX
861 C+ BNE ADR
862 C ENDM
863 C
864 C+IY8NE MACRO ADR
865 C-*- IN’r’
866 C+ 8NE ADR
867 C ENDM
868 C
869 C+DECBE MACRO ADR1,ADR2
870 C+ DEC ADR1
871 C+ BEQ ADR2
872 C ENDM
873 C
874 C+DEC8N MACRO ADR1,ADR2
875 C+ DEC AOR1
876 C+ BNE ADR2
877 C ENDM
878 C
879 C1-DECJE MACRO ADR1,ADR2
880 Cl- DEC ADR1
881 Cl- JEQ ADR2
882 C ENDM
883 C
884 C+DECJN MACRO ADR1,ADR2
885 C DEC ADR1
886 C÷ JNE ADR2
887 C ENDM
888 C
889 C+DECADE MACRO ADR1
890 Ci- DECA
891 C+ 8EQ ADR1
892 C ENDM
893 C
894 C+DECABN MACRO ADR1
895 C+ DECA
896 C-’- 8NE ADR1
897 C ENDM
898 C

Infocoin I(RLOGIC interpreter disassembly, 5/27/84 MACRO—80 34 18-Sep—81 PAGE 1—18
699 C1-DECABP MACRO ADR1
900 Ct DECA
901 Ct BPL ADR1
902 C ENOM
903 C
904 C±DECABM MACRO ADR1
905 Ct DECA
906 Ct 8M1 ADR1
907 C ENDM
908 C
909 C+TSTASE MACRO ADR1
910 C+ TSTA
911 Ct BEQ ADR1
912 C ENDM
913 C
914 C+TSTASN MACRO ADRI
915 Ct TSTA
916 Ct BNE ADR1
917 C ENDM
918 C
919 C1-TSTABP MACRO ADR1
920 Ct TSTA
921 Ct BPL ADR1
922 C ENDM
923 C
924 C-*-TSTABM MACRO ADRI
925 Ct TSTA
926 C+ SMI ADRI
927 C ENDM
928 C
929 C-I-TSTAJE MACRO ADR1
930 C+ TSTA
931 Ct JEQ ADR1
932 C ENDM
933 C
934 Ci-TSTARP MACRO
935 C TSTA
936 Ct RTSPL
937 C ENDM
938 C
939 C+CMPBE MACRO ADR1,ADR2
940 C-- CMP ADR1
941 C+ SEQ ADR2
942 C ENOM
943 C
944 C+CMPBN MACRO ADR1.ADR2
945 Ct CMP ADR1
946 Ci- BNE ADR2
947 C ENDM
948 C
949 Ci-CMPSL MACRO ADR1,ADR2
950 C+ CMP AOR1
951 Ct BLT ADR2
952 C ENDM
953 C
954 C+CMPBG MACRO ADR1,ADR2

Infocorn _RLOGIC interpreter disassembly. 5J27/84 MACRO—80 3.( 18—Sep—81 PAGE 1—19 (
955 C+ CMP ADR1
956 Ci- 8GE ADR2
957 C ENDM
958 C
959 C±CMP8M MACRO ADR1,ADR2
960 Ci- CMP ADRI
961 Ci- BMI ADR2
962 C ENDM
963 C
964 C+CMPSP MACRO ADRI,ADR2
965 Ci- CMP ADR1
966 Ci- BPL ADR2
967 C ENDM
968 C
969 C+CMPJE MACRO ADR1,ADR2
970 Ci- CMP ADR1
971
Cl- JEQ AOR2
972 C ENDM
973 C
974 C+CMPJL MACRO ADR1,ADR2
975 C+ CMP ADR1
976 Ci- JLT ADR2
977 C ENDM
978 C
979 C+CMPJSE MACRO AORI,AOR2
980 Ci- CMP ADR1
981 Ci- JSREQ ADR2
982 C ENDM
983 C
984 C-t-CMPJSN MACRO ADR1,ADR2
985 Ci- CMP ADR1
986 Ci- JSRNE ADR2
987 C ENDM
988 C
989 C+CMPJSG MACRO ADR1,ADR2
990 C+ CMP ADR1
991 Ci- JSRGE ADR2
992 C ENOM
993 C
994
V C+CMPRE MACRO ADR1
995 Ci- CMP ADR1
996 Ci- RTSEQ
997 C ENDM
998 C
999 C+CPXBE MACRO ADR1,ADR2
1000 Ci- CPX ADR1
1001 Ci- SEQ ADR2
1002 C ENOM
1003 C
1004 C-’-CPXBG MACRO ADR1,ADR2
1005 C+ CPX ADR1
1006 Ci- BGE ADR2
1007 C ENDM
1008 C
1009 Ci-CPXRGT MACRO ADR1
1010 Ci- CPX ADR1

Ir1tocon (iERLOGIC interpreter disassembly, 5/27/84 MACRO8O 3(•._ 18—Sep—81 PAGE 1—20
1011
Ct RTSGT
1012 C ENOM
1013 C
1014 CtCPVSN MACRO ADR1,AOR2
1015 Ct CPV AUR1
1016 Ct SNE ADR2
1017 C ENOM
1018
1019 PAGE

Infocom .ERL0QIC interpreter disassembly, 5/27/84 MACRO—80 3.. 18—Sep—81 PAGE 1-21
1020
1021 start of interpreter
1022
1023 0000’ ASEG
1024 ORG LDORG ; load at one address
1025 .PHASE MAINOR but assemble for another
1026
1027 0800 08 START; CLD very important
1028
1029 0801 A9 00 LDA #$00 ; clear our section of zero page
1030 0803 A2 80 LDX #$80
1031 0805 95 00 L0805: STA SO0,X
1032
+ IXBNE L0805
1033
1034 080A A2 FE LOX #$FF ;
mit hardware stack
1035 080C 9A TXS
1036
1037 0800 20 1AF7 JSR INITSC
mit and clear screen window
1038
1039
+ MOV <#$O0>,<PRGUPDAUXUPD> indicate no pages loaded
1040
1041
+ MDV <#$01>,STKCNT mit software stack
1042
+ DMOVI STCKLC,STKPNT
1043
1044
+ MOV <#$FF,LD9
1045
1046
+ DMOVT VMT1LC,VMTAB1 mit virtual memory table pointers
1047
+ DMOVI VMT2LC,VMTA82
1048
+ DMOVI VMT3LC,VMTAB3
1049 ÷ DMOVI VMT4LC.VMTAB4
1050
1051 0846 AD 00 LDV #$O0
mit virtual memory tables
1052 0848 A2 80 LOX #$80
1053 084A LO84A: MOV <#$FF>,<<(VMTAB1),V>,<(VMTA2),Y>>
1054 0850 98 TVA
1055
+ ADO ,<#$01>,<<(VMTAB3).V>>
1056 0856 98 TVA
1057 SUB ,<#$O1>,<<(VMTAB4),V>>
1058 085C C8 INY
1059
+ DXBNE L084A
1060 0860 88 0EV
1061
+ MOV <#$FF>,<(VMTAB3),V>>
1062
1063
÷ MDV <#$00>,MRUPAG
1064
+ MOV <#$7F>,LRUPAG
1065
1066
+ DMOVI FIRELC,FRZMEM mit memory pointers
1067
1068
+ DMOV FRZMEM.ACC ; read log page 0 to first frozen page
1069
+ DMOVI $0000,ACB
1070 0885 20 1EOD JSR DRDBKF
1071
-.
1072 0888 A0 05 LDY #HORFRZ1 ; ‘etup frozen storage page count
1073
÷ MOV <#$FF>,<<(FRZMEM),V>> ; bump up to page boundary—)
1074 088E 88 0EV

Infocoin .RL0GIC interpreter disassembly, 5/27184 MACRO—80 3. 18—Sep—81 PAGE 1—22
1075
+ MDV <(FRZMEM),Y>,FRZPGS
1076 0893 E6 BC INC FRZPGS
1077
1078 0895 A9 00 LDA #$00 read in rest of frozen memory
1079 0897 +L0897: ADD
1080 089A Ak TAX
1081 0898 65 88 ADC FRZMEM+1
1082 0890 85 E7 STA ACC+1
1083
+ MOV FRZMEM,ACC
1084 08A3 BA TXA
1085
+ CMPBE FRZPGS,L0886
1086 08A8 48 PHA
1087 08A9 85 E4 STA AC8
1088
1- MOV <#$00>,ACB+1
1089 O8AF 20 IEQD JSR DRDBKF
1090 08B2 68 PLA
1091 0883 4C 0897 JMP L0897
1092
1093 0886 AD 01 L0866: LOY #HDRTVP setup for proper type of status line
1094 0888 61 BA LDA (FRZMEM),V
1095 08BA 29 02 AND #$02
1096 O8BC 85 F3 STA STLTYP
1097
1098 088E A0 07 LDV #HDRSTR+1
; mit PC
1099 MOV <(FRZMEM),Y>,PRGIDX
1100 08C4 88 0EV
1101 ÷ MOV <(FRZMEM) ,Y>,PRGLPG
1102 MOV <#$0D>,PRGLPG+1
1103
1104 O8CD AD OD LDY #HDRGBV+1
mit global variable pointer
1105
+ MOV <(FRZMEM),Y>,GLHVAR
1106 0803 88 0EV
1107
+ ADD <(FRZMEM),Y>,FRZMEM+1 ,GLBVAR+1
1108
1109 0808 AG 19 LDY HDRS6W+1
; mit sub—word table pointer
1110
+ MOV <(FRZMEM),V>,SBWDPT
1111 08E1 88 DEY
1112
+ ADD <(FRZMEM),Y>,FRZMEM+1 ,SBWDPT+1
1113
1114
+ MOV <#$00>,SWPMEM ; swpmem frzmem + 256 * frzpgs
1115
+ ADD FRZPGS.FRZMEM+1 ,SWPMEM+1
1116
1117 08F4 20 ISlE JSR FNDMEM determine number of pages of memory
1118
+ SUB ,SWPMEM+1 swppgs (Inaxalem swpmem) / 256
1119 O8FA 90 QE 6CC LO9OA if swppgs
< 0 then fatal error
1120 OBFC AS TAY
1121 O8FD CS INV
1122 OBFE 84 60 STY SWPPGS
1123 0900 AS TAY
1124 0901 84 SF STY LRUPAG
1125
1- MOV <#$FF>,<<(VMTAS3),Y>>
1126
1127 0907 4C 098F JMP MNLOOP
; start the gaine
1128
1129 090A 20 2101 LO9OA: JSR FATAL
1130

IIIfQCGInI,IERLOGIC interpreter disassembly, 5/27/84 MACRQ—80 18Sep81 PAGE 1—23
1131 PAGE

Infocom . RL0GIC interpreter dsassemb1y, 5/27/84 MACRO—80 3.’.. 18—Sep—81 PAGE 1—24
1132
1133 class C instructions (implicit or no operand)
1134
1135 0900 0dB OPTAS1: DW OPRTNT
; return with TRUE
1136 090F 0C23 DW OPRTNF
; return with FALSE
1137 0911 0C28 DW OPPSI
; print string immediate
1138 0913 0C54 OW OPPSIC
; print string immediate, CRLF, return true
1139 0915 0C53 DW OPNULL
; no—op
1140 0917 2048 DW OPSVGM ; save game status to disk
1141 0919 2OEB OW OPRSGM ; restore game status from disk
1142 091B 0800 OW START restart game
1143 0910 0C64 OW OPRTNV
; return with value
1144 091F 1720 OW PULLWO
; drop a word from the stack
1145 0921 2IEA OW OPENDS end the game
1146 0923 0C72 OW OPCRLF
; print CRLF
1147 0925 1C8A OW OPPRST
; print status line
1148 0927 OC7C OW OPCKSM checksum the program
1149 000E OPMAX1 EQU (*-OPTAS1)/2
1150
1151
1152 class B instructions (single operand)
1153
1154 0929 OCOD OPTAB2: OW GPTSTZ
; compare ARG1O (ARG1<>0)
1155 0928 OCE9 OW OPGTSB
; get thing’s sibling
1156 0920 0CF3 OW OPGTCH get thing’s child
1157 092F 000E OW OPGTPR ; get thing’s parent
1158 0931 0020 OW OPGTPL
; get length of property (given addr)
1159 0933 0043 DW OPINC
; increment variable
1160 0935 0060 OW OPDEC
; decrement variable
1161 0937 0073 OW OPPSB
; print string at byte address
1162 0939 2101 OW FATAL
1163 0935 0081 OW OP0STT
; destroy thing
1164 0930 OOE2 OW OPPRTN
; print thing name
1165 093F 0E06 OW OPRTN
; return
1166 0941 OE7C OW OPJUMP
; unconditional jump
1167 0943 0E92 OW OPPSW
; print string at word address
1168 0945 OEAO OW OPMOVE move var ARG1 to var
1169 0947 OEA8 DW OPNOT
; l’s complement
1170 0010 OPMAX2 EQU (*—OPTAB2)/2
1171
1172 PAGE

Infocom ..ERLOGIC interpreter disassembly, 5/27/84 MACRO—80 3. 18—Sep—81 PACE 1—25
1173
1174
; class A instructions (variable number of operands, may use short form
1175
; opcode)
1176
1177 0949 2101 OPTAB3: OW FATAL
1178 0945 1168 OW OPMTCH
; match ARG1 against ARG2, ARG3, or ARG4
1179 0940 0E87 DW LOEB7
; 7?? compare ARG1<ARG2 (ARG1>ARG2)
1180 094F OECF OW LOECF ; ??? compare ARG1>=ARG2 (ARG1<ARG2)
1181 0951 DEE] OW OPDECS decrement variable and branch
1182 0953 OEF5 OW OPINCB
; increment variable and branch
1183 0955 0F13 OW OPTINT
; is thing ARG1 in thing ARG2
1184 0957 0F23 OW L0F23
1185 0959 0F38 OW OPOR logical OR
1186 0958 OF4A OW OPAND logical AND
1187 0950 0F59 OW OPTSTA test thing attribute
1188 095F OF6D OW OPSETA set thing attribute
1189 0961 0F80 OW OPCLRA clear thing attribute
1190 0963 0F97 OW L0F97 move ARG2 into var ARG1
1191 0965 OFA4 OW OPMOVT move thing ARG1 into thing ARG2
1192 0967 0F02 OW OPGTWD get a word
1193 0969 OFEC OW OPQTSV store a word
1194 0965 1008 OW OPGTP get
thing property
1195 096D 1069 OW OPGTPA get address of property
1196 096F 109E OW OPGTNP get next property
1197 0971 10C3 OW OPA0D add
1198 0973 1003 OW OPSUS subtract
1199 0975 10E3 OW OPMUL multiply
1200 0977 1118 OW OPDIV divide
1201 0979 114A OW OPRMD remainder
1202 0019 OPMAX3 EQIJ (*—OPTAB3)/2
1203
1204
1205
; class 0 instructions (variable number of operands)
1206
1207 0976 11A3 OPTAS4: OW OPCALL
; call procedure
1208 0970 125F OW OPPTWD store a word
1209 097F 1288 OW OPPTBY
; store a byte
1210 0981 12A9 OW OPPTP
; store into thing property
1211 0983 120C OW OPGTLN ; get a line of input
1212 0985 14E5 OW OPPRCH ; print a character
1213 0987 14EA OW OPPRNM
; print number
1214 0989 1536 OW OPRNOM generate random number
1215 0985 1555 OW OPPUSH
; push ARG1 to stack
1216 0980 1560 OW OPPULL
; pull var from stack
1217 CODA OPMAX4 EQU (*-OPTAB4)/2
1218
1219 PAGE

Irifocom ..RL0GIC interpreter disassembly, 5/27184 MACRO—80 3. 18—Sep—81 PAGE 1—26
1220
1221
1222 098F +MNLOOP: MOV <#$00>,ARGCNT
; default no arguments
1223
1224 0993 20 1736 JSR FTPRBA
; get opcode
1225 0996 85 80 STA OPCODE
1226
1227
+ CMPJL #$80,OPCGPA ; is it class A ($00—$7F)?
1228
+ CMPJL #S8O,OPCGPB ; how about class B ($80-$AF)?
1229
+ CMPBL #$C0,OPCGPC ; perhaps class C ($80—$BF)?
1230 JMP OPCGPD
; nope, it’s class 0 ($C0-$FF).
1231
1232
1233 process opcode group 0 ($C0—$FF)
1234
1235 O9AA 20 1736 OPCGPD: JSR FTPR8A
; get operand specification byte
1236
1237 O9AD A2 00 LOX #$00
; mit operand count
1238
1239 O9AF 48 LQ9AF: PHA save the operand specification byte
1240 09B0 A8 TA’!
ii, V and on stack
1 241
1242 0981 8A TXA
; save operand count on stack
1243 0982 48 PHA
1244
1245 0983 98 TVA
; get back operand specification byte
1246 09B4 29 CO AND #$CO
; loOk at top two bits
1247
1248 ÷ JSREQ FTPRWD,L09D7
; if they’re 00. operand is word immed.
1249
+ CMPJSE #$80,<GT1ARP,L09D7’ 10? variable
1250
+ CMPJSE #$40,<FTPRBV,L0907> 01? byte immediate
1251
1252 0902 68 PLA must be 11, no more operands
1253 0903 68 PLA
; pull operand spec byte and count
1254 09D4 4C 0960 JMP LO9EO
; and finish up
1255
1256 0907 68 L09D7: PLA get operand Count back
1257 0308 AA TAX
; to use as index
1258
1259
+ MOV ACC,<<ARG1,X>> store operand in proper ARG location
1260
+ MOV ACC+1,<<ARGI+1,X>>
1261
1262 0961 68 INX increment ARG pointer
1263 0962 ES INX
1264 0963 E6 81 INC ARGCNT
; and Count
1265
1266 0965 68 PLA
; pull arg spec byte
1267 0966 38 SEC
; shift top two bits off left, while
1268 09E7 2A ROL A shifting 11 in from right (to
1269 0968 38 SEC indicate no more operands)
1270 0969 2A ROL A
1271
1272 O9EA 4C O9AF JMP LOYAF try for another
1273
1274 O9ED +LO9E0 OMOVI OPTA84,ACC assume class 0

Infocom (

MACRO—80 3.

C

.RLOGIC interpreter disassembly, 5/27/84

18—Sep—81 PAGE 1—27

 

1275

09F5

A5

80

LDA OPCODE

;

but if it’s $C0$DF then it’s class A

1276

 

 

 

+ CMPJL *$E0,L0A98

 

 

1277

 

 

 

 

 

 

1278

O9FE

E9

ED

SBC #$E0

;

adjust to $00. .$1F

1279

 

 

 

+ CMPBG #OPMAX4,LOA2B

;

make sure it’s not illegal

1280

 

 

 

 

 

 

1281

0A04

OA

 

G000IT: ASL A

;

get address from table (base in ACC)

1282

0A05

A8

 

TAY

;

word indexed by A and execute

1283

 

 

 

+ MOV <(ACC),V>,DSPTCH÷1

 

 

1284

0A06

C8

 

INY

 

 

1285

 

 

 

+ MOV <(ACC),Y>,DSPTCH+2

 

 

1286

OAll

20

GAll

DSPTCH: JSR DSPTCH

 

 

1287

0A14

4C

098F

JMP MNLOOP

 

 

1288

 

 

 

 

 

 

1289

 

 

 

 

 

 

1290

 

 

 

; process opcode group C ($BQ—$BF)

 

 

1 291

 

 

 

 

 

 

1292

0A17

 

 

+OPCGPC: SUB ,<#$BO>

;

adjust to $00. .$OF

1293

 

 

 

+ CMPBG #OPMAX1,LOA2B

;

make sure it’s not illegal

1294

DAlE

48

 

PHA

;

save it temp.

1295

 

 

 

+ DMOVI OPTAB1,ACC

 

get base address of proper table

1296

0A27

68

 

PLA

 

 

1297

0A28

4C

0A04

JMP GODOIT

 

 

1298

 

 

 

 

 

 

1299

0A28

20

2101

LOA2B: JSR FATAL

;

oops! illegal opcode

1300

 

 

 

 

 

 

1301

 

 

 

 

 

 

1302

 

 

 

; process opcode group B ($80—$AF)

 

 

1303

 

 

 

 

 

 

1304

OA2E

29

30

OPCGP8: AND #$30

;

mask off operand type bits

1305

 

 

 

 

 

 

1306

 

 

 

+ JSREQ FTPRWO,L0A45

;

00? then it’s word immediate

1307

 

 

 

+ CMPJSE #$10,<FTPR8Y,L0A45>

;

01? byte immediate

1308

0A42

20

OAE8

JSR GTVARP

;

must be 10, variable

1309

 

 

 

 

 

 

1310

0A45

 

 

+L0A45; MDV <#$01>.ARGCNT

;

one argument

1311

 

 

 

+ DMOV ACC,ARG1

 

 

1312

 

 

 

 

 

 

1313

0A51

A5

80

LDA OPCODE

;

adjust opcode to $00. .$OF

1314

0A53

29

OF

AND #$OF

 

 

1315

 

 

 

+ CMPBG #OPMAX2,LOA2B

 

make sure it’s not illegal

1316

0A59

48

 

PHA

;

save temp.

1317

 

 

 

+ OMOVI OPTAB2,ACC

;

get appropriate table base addr

1318

0A62

68

 

PLA

 

 

1319

0A63

4C

0A04

JMP G000IT

;

and go do it!

1320

 

 

 

 

 

 

1321

 

 

 

 

 

 

1322

 

 

 

process opcode group A ($O0—$7F)

 

 

1323

 

 

 

 

 

 

1324

0A66

29

40

OPCGPA: AND #$40

;

get type bit for ARG1

1325

 

 

 

+ JSRLQ FTPR8V,L0A73

;

0: byte immediate

1326

0A70

20

OAEB

JSR GTVARP

;

1: variable/stack

1327

0A73

 

 

+LOA73: DMOV ACC,ARG1

;

save it

1328

 

 

 

 

 

 

1329

OA7B

AS

80

LDA DPCODE

;

get type bit for ARG2

1330

OA7D

29

20

AND #$20

 

 

 

Infocoin cRLOGIC interpreter disassembly, 5/27184 MACRO—SO 3. 18—Sep—81 PAGE 1—28
1331 ÷ .JSREQ FTPRBY,LOA8A 0: byte immediate
1332 0A87 20 OAE8 JSR GTVARP 1: variable/stack
1333 OA8A -‘-LOASA- DMOV ACC,ARG2
; save it
1334
1335
+ MDV <#$02>,ARGCNT indicate two operands
1336
1337 0A96 AS 80 LDA OPCODE
; get opcode back
1338 0A98 29 iF L0A98: AND #$1F
; adjust to $00. .$1F
1339
+ CMPBG #OPMAX3,LOA2S make sure it’s not illegal
1340 OA9E 48 PHA
; save temp.
1341
+ OMOVI OPTAS3,ACC ; get base addr of appropriate table
1342 OAA7 68 PLA
1343 OAA8 4C 0A04 JMP G000IT and go do it!
1344
1345 PAGE
-

Infocom RLOGIC interpreter disassembly. 5/27/84 MACRO-SO 3. 18-Sep—81 PAGE 1—29
1346
1347
; fetch byte immediate into ACC
1348
1349 OAAB 20 173E FTPRBV: JSR FTPRSA
; get a byte from program into A
1350 OAAE 85 E6 STA ACC
; zero-fill to 16 bits in ACC
1351
+ MOV <#$00>,ACC+1
1352 OAB4 60 RTS return
1353
1354
1355 fetch word immediate into ACC
1356
1357 0A55 20 173E FTPRWO; JSR FTPRBA
; get high byte from program into A
1358 OABB 48 PHA save it temp.
1359 0A89 20 173E JSR FTPR8A
; get low byte from program into A
1360 OA8C 85 E6 STA ACC ; store low byte
1361
+ PUL ACC+1 ; store high byte
1362 OAC1 60 RTS
; return
1363
1364
1365 OAC2 +GTVRA1: TSTABE LOADO
; fetch ACC from var in A, keep if stack
1366 OAC6 4C OAEF JMP GTVARA
1367
1368
1369 OAC9 +PTVRA1: TSTABE LOAD6 store ACC into var in A, replace if stack
1370 OACD 4C 0646 JMP PTVARA
1371
1372 OADO 20 1720 LOADO: JSR PULLWD read stack non—destructive
1373 OAD3 4C 16F4 JMP PUSHWO
1374
1375 OAD6 +LOAD6: DPSH ACC replace TOS wJ ACC
1376 QAOC 20 1720 JSR PULLWD
1377
+ DPUL ACC
1378 OAE5 4C 16F4 JMP PUSHWD
1379
1380 PAGE

Infocom iERL0GIC interpreter disassembly. 5/27/84 MACRO8O 3.( 18—Sep—81 PAGE 1—30 (
1381
1382 OAE8 20 173E GTVARP: JSR FTPRSA fetch ACC from var md. by program
1383
+ TSTA8E L0826
1384 OAEF +GTVARA: CMPBG <#$10>,L0802 fetch ACC from var in A
1385
+ SUB
1386 OAF6 OA ASL A
1387 OAF7 AA TAX
1388
+ MOV <LOCVAR,X>,ACC-’-l
1389 OAFC EB INX
1390
+ MOV <LOCVAR,X>,ACC
1391 0801 60 RTS
1392
1393 0002 +L0802: SUB
1394 0005 OA ASL A
1395 0806 85 E4 STA ACO
1396 0808 A9 00 LDA *$00
1397 080A 2A ROL A
1398 0808 85 E5 STA ACB+1
1399
+ DADU GLBVAR.ACB.ACB
1400 081A A0 00 LDY #$00
1401
+ MOV c(ACB),V>,ACC+1
1402 0B20 CS INY
1403
+ MOV <(ACB)V>ACC
1404 0025 60 RTS
1405
1406 0026 20 1720 LQ826 JSR PULLWD
1407 0629 60 RTS
1408
1409 PAGE

Infocom eERL0GIC interpreter disassembly. 5/27/84 MACRO—80 3. 18—Sep—81 PAGE 1—31
1410
1411 OB2A A9 00 PTVRPZ: LDA #$O0
; store 0 in var. md. by program
1412 062C 85 E6 PTVRPA: STA ACC store byte in A in var. md. by prog.
1413
+ MDV <#$00>,ACC-t-l
1414 0832 4C 0B35 PTVRP1: JMP PTVARP
; unnecessaryH!
1415
1416 0835 +PTVARP: DPSH ACC store ACC in var. md. by program
1417 OB3B 20 173E JSR FTPRBA
1418 083E AA TAX
1413
+ DPUL ACC
1420 0645 BA TXA
1421 0646 +PTVARA: TSTAJE PUSHWD
; store ACC in var. in A
1422
+ CMPBG <#$10>,LOB6O
1423
+ DECA
1424 0854 OA ASL A
1425 0655 AA TAX
1426
+ MOV ACC+1.<<L0CVARX>>
1427 OB5A E8 INX
1428
+ MDV ACC,<<LOCVAR,X>>
1429 OB5F 60 RTS
1430
1431 0860 +L0660: SUB
1432 0B63 OA ASL A
1433 0864 85 64 STA ACS
1434 0866 A9 00 LDA #$00
1435 0868 2A ROL
1436 0869 85 E5 STA ACB+1
1437
1- DADD GLBVAR,ACB,ACB
1438 0678 AD 00 LOY #$D0
1439
1- MDV ACC+1,<<(AC8),V>>
1440 0876 C8 INY
1441
+ MDV ACC,<<(ACB),V>>
1442 0683 60 RTS
1443
1444 PAGE

Infocoin I.RL0GIC interpreter disassembly, 5/27/84 MACRO—80 3. 18—Sep—81 PAGE 1—32
1445
1446 0584 20 173E PREDTR: JSR FTPRBA
; fetch first displacement byte
1447
+ TSTASM LOB9C complement condition if necessary
1448 0B86 10 07 SPL L0B94
1449
1450 0580 20 173E PREDFL JSR FTPRBA fetch first displacement byte
1451
+ TSTASP LOB9C complement condition if necessary
1452
; BMI L0B94
1453
1454 0894 29 40 L0594 AND #$40
; branch not taken
1455
+ JSREQ FTPRSA ; fetch second displacement byte if
1456 0898 60 RTS necessary and discard it
1457
1458 069C AA LOB9C: TAX branch take, save first disp. byte
1459 089D 29 40 AND #$40 do we need a second byte?
1460 089F FO OC SEQ LOBAD yes
1461 08A1 8A TXA no, extend what we have wI zeros
1462 08A2 29 3F AND #$3F
1463 OBA4 85 E6 STA ACC
1464
MOV <#$0O>,ACC-’-l
1465 O8AA 4C 08C3 JMP LOBC3
; and go do it!
1466
1467 08A0 BA LOBAD; TXA
; get rest of displacement
1468 OBAE 29 3F AND #$3F
1469 0860 48 PHA
1470 0881 20 173E JSR FTPRBA
1471 08B4 85 E6 STA ACC
1472
+ PUL ACC+1
1473 0889 29 20 AND #$20
1474 OBBB FO 06 BEQ LOBC3
1475 0550 A5 E7 LDA ACC+1
1476 OSBF 09 CD ORA #$C0
1477 OBC1 85 E7 STA ACC+1
1478
1479 05C3 +LOSC3; DTSTBE ACC,OPRTNF
; if displacement 0, return false
1480
+ DDEC ACC -
1481 ÷ DTST8E ACC,OPRTNT ; if displacement I, return true
1482 USDA +LO8DA DDEC ACC
1483
1484
+ MOV ACC+1,ACS ; copy high byte of displacement to AC8
1485 08E9 QA ASL A
; and sign extend to 17 bits
1486 OSEA A9 00 LDA #$00
1487 OBEC 2A ROL A
1488 USED 85 E5 STA ACB+l
1489
1490
+ ADD PRGIDX,ACC ; add low byte of displacement to PC
1491 OBF4 90 06 8CC LOBFC increment high 9 bits of displacement
1492
+ DINC AC8 if overflow
1493 OBFC 85 BA LOSFC: STA PRGIDX
1494
1495
+ DTSTBE ACB,L0C17 ; if high 9 bits of disp. 0, all done
1496
1497 0C04 18 CLC add high 9 bits of diap. to PC log page
1498 OCOS A5 E4 LDA ACS
1499 0C07 65 88 ADC PRGLPG

Infocorn INRL0GIC interpreter disassembly, 5127/84 MACRO—80 3.’.... 18—Sep—81 PAGE 1—33
1500 0C09 85 85 STA PRGLPG
1501 0C08 A5 ES LDA ACS+1
1502 OCOD 65 8C ADC PRGLPG+l
1503 OCOF 29 01 AND $01
; mod 2A17
1504 OC11 85 BC STA PRGLPG+1
I 505
1506
+ MOV <#$00>.PRGUPD indicate page chan9e
1507
1508 0C17 60 LOC17: RTS
; all done
1509
1510 PAGE

Infocom INTERLOGIC interpreter

disassembly, 5/27/84

MACRO-80 3.

18—Sep—81

PAGE 1-34

(

+
+
+
+

MOV
I3MOV
MOV
DMOV

AUXIOX PRGIOX
AUXLPG, PRGLPG
AUXUPD, PRGUPD
AUXMPT
, PRGMPT
oPP SI

print string immediate

PAGE

 

A9

01

OPRTNT:

LDA

#$01

;

return

true

(501)

85

82

L0C1A
+

STA MOV

ARG1
<#$00>,ARG1+1

; ;

return byte make high

in A
byte of return value $00

4C

0E06

 

JMP

OPRTN

;

and do

the

return!

 

1511

 

 

1512

0Cl8

1513

OC1A

1514

 

1515

0C20

1516

 

1517

0C23

A9

00

OPRTNF

LDA

#500

;

return false ($00)

 

1518

0C25

4C

OC1A

 

JMP

LOC1A

 

 

1519

 

 

 

 

 

 

 

 

1520

 

 

 

 

 

 

 

 

1521

0C28

 

 

+QPPSI;

MOV

PRGIDX,AUXIDX

 

copy PC to ALIX

1522

 

 

 

+

DMOV

PRGLPG,AUXLPG

 

 

1523

 

 

 

+

MOV

<#$00>,AUXUPD

 

indicate new log. page

1524

 

 

 

 

 

 

 

 

1525

0C38

20

18B4

 

JSR

PRNTST

;

print the string

1526

 

 

 

 

 

 

 

 

1527

 

 

 

 

 

;

copy AUX back to PC

1528

 

 

 

 

 

 

1529

 

 

 

 

.

 

1530

 

 

 

 

 

 

1531

 

 

 

 

 

 

 

 

1532

0C53

60

 

OPNULL:

RTS

;

done

1533

 

 

 

 

 

 

 

1534

 

 

 

 

 

 

 

1535

0C54

20

0C28

0PPSIC

JSR

 

;

1536

 

 

 

 

 

 

 

 

1537

0C57

A9

00

 

LDA

#CRCHAR

;

print CRLF (could use

JSR

OPCRLF)

1538

0C59

20

1B3F

 

JSR

BFCHAR

 

 

 

 

1539

OC5C

A9

OA

 

LDA

#LFCHAR

 

 

 

 

1540

OC5E

20

163F

 

JSR

BFCHAR

 

 

 

 

1541

 

 

 

 

 

 

 

 

 

 

1542

0C61

4C

OCIB

 

JMP

OPRTNT

;

return true

 

 

1543

 

 

 

 

 

 

 

 

 

 

1544

 

 

 

 

 

 

 

 

 

 

1545

0C64

20

1720

OPRTNV:

JSR

PULLWD

; pull value off stack

 

 

1546

 

 

 

+

DMOV

ACC,ARG1

; save it for posterity

 

 

1547

OC6F

4C

0E06

 

JMP

OPRTN

return with it

 

1548

 

 

 

 

 

 

 

 

1549

 

 

 

 

 

 

 

1550

0C72

A9

OD

OPCRLF:

LDA

#CRCHAR

print CRLF

1551

0C74

20

183F

 

JSR

BFCHAR

 

 

1552

0C77

A9

OA

 

LDA

#LFCI-IAR

 

1553

0C79

4C

1B3F

 

JMP

BFCHAR

implicit RTS

1554

 

1555

 

Infocom INIERLOGIC interpreter

disassembly, 5/27/84

MACRO—80 3. . 18—Sep-81

PAGE 1-35

I

1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594

0C98 06 84
OC9A 26 85
OC9C 26 86

OPCKSM:
+
+
÷
+

LDV
MOV
0EV
MOV
MOV
MO V
ASL
ROL
ROL
MOV
JSR
LOCA5: JSR 0AD082
LDA
CMPBN
LDA
CMPBN
LOA
CMPBN
MOV
LOY
LDA
CMPBN
0EV
LDA
CMPJE
LOCDA; JMP PAGE

OC7C AU 18
0C82 88

OCA2 20 1788
OCA5 20 17E8

+
+
+
+
+
+
+

OCS 1
OCB7
OCBO
OCC8 OCCA
O C DO
OCD 1

A5 93
A5 91
AS 92
AU 10 81 SA
88
61 SA

#HDRCKA+1 ; get checksum end log, address (word
<(FRZMEM),V>,ARG2 ; indec-)
<(FRZMEM) ,Y>,ARG2+1
<#$00>,<ARG3,ARG1,ARGI+1,ACC÷1,ARG4> initialize everything
<#ARG4>,L1807t1
; patch VM routine to swap in all pages
ARG2
; convert end address to byte index
ARG2-i- 1
- ARG3
<#$40>,ACC start at log, address $00040
SETAXB
FTAXBA ; get a byte
ARG1 ; and add it to checksum
AUXIDX compare AUX to end address
ARG2,LOCA5 ; if not done, loop
AUXLPG
ARG2+1 ,LOCA5
AUXLPG+ I
ARG3, LOCA5
<#FRZPGS>,L1807+l ; unpatch VM routine
#HDRCKV+l
; compare computed vs. expected checksum
(FRZMEM) ,v
ARG1 ,LOCDA
(FRZMEM) ,V
ARG1+1 ,PREDTR
PREDFL

OCDA 4C 0880

+

Infocom INERLOGIC interpreter disassembly, 5/27/84 MACRO8O 3. 18—Sep—81 PAGE 1—36
1595
1596 OCOD +OPTSTZ DTSTJN ARGI,PREDFL
1597 OCE6 4C 0884 LOCE6: JMP PREDTR
1598
1599 OCE9 A5 82 OPGTS8: LDA ARG1
; get sibling of thing, predicate
1600 OCEB 20 16A7 JSR SETUPT
1601 OCEE AU 05 LDV #THGSI8
1602 OCFO 4C OCFA JMP L0CFA
1603
1604 OCF3 A5 82 OPGTCH: LDA ARG1 get child of thing, predicate
1605 OCF5 20 16A7 JSR SETUPT
1606 OCEE AU 06 LOY THGCH0
1607 OCFA +LOCFA: PSH
1608 OCFD 85 E6 STA ACC
1609
+ MDV <#$00>,ACC+1
1610 0003 20 0B35 JSR PTVARP
1611 0006 68 PLA
1612
+ TSTABN LOCE6
1613 0008 4C 088D JMP PREDFL
1614
1615 000E A5 82 OPGTPR: LDA ARG1
; get parent of thing
1616 OD1O 20 16A7 JSR SETUPT
1617 0D13 AC 04 LDV #THGPAR
1618
+ MOV <(ACC),V>,ACC
1619
+ MDV <#$00>,ACC-’-l
1620 0010 4C 0832 JMP PTVRP1
1621
1622 0020 +OPGTPL: bAUD ARG1,FRZMEM,ACC
1623
+ DDEC ACC
1624 0038 AG 00 LDY 00
1625 003A 20 1693 JSR GTPLEN
1626
+ ADD
1627 0040 4C OB2C JMP PTVRPA
1628
1629
1630
; increment variable ARG1
1631 0043 A5 82 OPINC: LDA ARGI
1632 0045 20 OAC2 JSR GTVRA1
1633 ÷ DINC ACC
1634 OD4E +LOD4E: DPSH ACC
1635 0054 A5 82 LOA ARG1
1636 0D56 20 OAC9 JSR PTVRA1
1637
+ DPUL ACC
1638 005F 60 RTS
1639
1640
1641 decrement variable ARGI
1642
1643 0060 A5 82 OPUEC: LDA ARG1
1644 0062 20 OAC2 JSR GTVRA1
1645
+ ODEC ACC
1646 0070 4C OD4E JMP LOD4E
1647
1648
1649 print string at byte address in ARG1

Infocom _RLOGIC interpreter disassembly, 5/27/84 MACROSO 3. lBSepSl PAGE 1—37
1650
1651 0073 tQPPSB; 0M0V ARG1,ACC set AUX to point to string at
1652 0078 20 1768 JSR SETAXB
; byte address
1653 OD7E 4C OE9D JMP LOE9D
; snd print it!
1654
1655 PAGE

Infocom ERL0GIC interpreter disassembly, 5/27/84 MACRO—80 3i 18—Sep—SI PAGE 1—38 (
1656
1657 destroy thing ARG1 (move to location 0)
1658
1659 0081 A5 82 QPOSTT: LOA ARG1
1660 0083 20 16A7 JSR SETUPT
1661 0086 A0 04 LDV #THGPAR
1662 0088 61 E6 LDA (ACC),V
1663
+ RTSEQ
1664 0080 AA TAX
1665
+ DPSI-i ACC
1666 0094 BA TXA
1667 0D95 20 16A7 JSR SETUPT
1668 0098 A0 06 LDY #THGCHD
1669 009A 81 E6 LOA (ACC),V
1670
+ CMPBN ARG1,L0087
1671
+ DPUL ACB
1672
+ DPSH ACB
1673 ODAC AD 05 LDV #THGSI8
1674 ODAE 81 E4 LDA (AC8),V
1675 0080 AD 06 LDV #THGCHD
1676 0082 91 E6 STA (ACC),V
1677 ODB4 4C 0002 JMP L0002
1678 0087 20 16AJ LODB7: JSR SETUPT
1679 ODBA A0 05 LDV #THGSIB
1680 ODBC 81 E6 LDA (ACC),V
1681
+ CMPBN ARG1,LODB7
1682
- DPUL AC8
1683 ÷ DPSH ACB
1684
+ MDV
1685 0D02 +L0002: OPUL ACC
1686 ODD8 A0 04 LDY #THGPAR
1687
+ MOV
1688 ODDE C8 INY to THGSIB
1689 ODDF 91 E6 STA (ACC),V
1690 ODE1 60 RTS
169 1
1692 PAGE

Infocom Ik,cRLOGIC interpreter disassembly. 5/27/84 MACRO—80 3. 18—Sep—81 PAGE 1—39
1693
1694 00E2 AS 82 OPPRIN: LDA ARGI print thing name
1695 ODE4 20 16A7 LODE4: JSR SETUPT
; set up pointer to thing
1696
1697 ODE] A0 07 LDV #THGPRP get address of thing’s property list
1698
+ MOV <(ACC),V>,ACB÷1
1699 ODED C8 INV
1700
+ MO’) <(ACC),V>,ACD
1701
+ DM0’) ACB,ACC
1702
1703
+ DINC ACC skip name length byte
1704
1705 OEOO 20 1758 JSR SETAXB set AUX to point to it
1706 0E03 4C 1854 JMP PRNTST and print it and return
1707
1708 PAGE

Infocue INtERL0GIC interpreter disassembly, 5/27/84 MACRO—80 3. 18—Sep—81 PAGE 1—40
1709
1710
1711 0E06 +QPRTN: DMOV STKPSV.STKPNT restore pre—cal.l stack pointer, count
1712 ÷ MOV STKCSV,STKCNT
1713
1714 0E12 20 1720 JSR PULLWD
; are there any local variables to restore?
1715 0E15 A5
E6 LDA ACC
1716 0E17 FO
33 BEQ LOE4C ; no, skip it
1717
1718
+ DMOVI LOCVAR2.ACB ; yes, calc. addr. of last var to restore
1719
+ MOV ACC,ACD
1720 0E25 CA ASL
A
1721 + DA0002 ACB
1722
1723 OE2F 20 1720 L0E2F: JSR PULLWD
; pull the value of the var
1724 0E32 AC 01 LDV #$01 store
it in the var
1725 + MOV ACC,<<(ACB),V>>
1726 0E38 88 0EV
1727
+ MGI) ACC-’-l,<<(ACB),V>>
1728
+ DDEC2 ACB decrement the var pointer
1729
+ DECBN ACD,LOE2F ; and the Count and loop if more to do
1730
1731 OE4C 20 1720 LOE4C: JSR PULLWD
pull the PC log. page
1732
+ DMOV ACC,PRGLPG
1733
1734 0E57 20 1720 JSR PULLWD
; pull the stack pointer save
1735
+ DMOV ACC,STKPSV
1736
1737 0E62 20 1720 JSR PULLWD
; pull the stack count save and PC
1738
+ MOV ACC+1,PRGIDX ; low byte
1739
+ MOV ACC,STKCSV
1740
1741 + MOV <$00>,PRGUP0 ; indicate need to locate new page
1742
1743 DMOV ARG1,ACC store the return value and return.
1744 0E79 4C 0532 JMP PTVRP1
1745
1746 PAGE

Infocom I RLQGIC interpreter disassembly, 5/27/84 MACRO80 3. 18—Sep—81 PAGE 1—41
1747
1748 ; jump to address ARG1
1749
1750 OE7C +OPJUMP: DMOV ARG1,ACC setup to jump into middle of
1751
+ DDEC ACC ; predicate routine
1752 OE8F 4C OBDA JMP LO6DA ; and do it!
1753
1754
1755 0E92 +OPPSW; DMOV ARG1,ACC ; set AUX to point to string at
1756 OE9A 20 17C9 JSR SETAXW ; word address
1757 OE9D 4C 18B4 LOE9D; JMP PRNTST and print it!
1758
1759
1760 QEAO A5 82 OPMOVE: LDA ARG1 get number of first variable
1761 OEA2 20 OAC2 JSR GTVRA1 ; get its contents
1762 OEA5 4C 0632 JMP PTVRP1 ; store into another variable
1763
1764
1765 OEA8 +OPNOT: DICOMP ARG1,ACC
1766 UEB4 4C 0832 JMP PTVRP1
1767
1768 DEB7 +LOEB7: DMOV ARG1,ACC
1769
+ DMOV ARG2,ACB
1770 OEC7 20 160E JSR L16DE
1771 OECA 90 44
8CC LOF1O
1772 OECC 4C 0880 JMP PREDFL
1773
1774 OECF +LOECF: DMOV ARG1,ACB
1775
+ OMOV ARG2,ACC
1776 0EDF 20 16DE JSR L16DE
1777 OEE2 90 2C BCC LOF1O
1778 OEE4 4C 0880 JMP PREDFL
1779
1780 OEE7 20 0060 OPOEC8; JSR OPDEC
1781 ÷ DMOV ARG2,ACB
1782 0EF2 4C 01=08 JMP LOFO8
1783
1784 OEF5 20 0043 OPINCB JSR OPINC
1785
+ DMOV ACC,ACB
1786
+ 0MOV ARG2,ACC
1787 0F08 20 16DE LOFOS: JSR L16DE
1788
+ JCS PREDFL
1789 01=10 4C 0884 LOFIO: JMP PREDTR
1790
1791 01=13 A5 82 OPT1NT: LDA ARGI
1792 01=15 20 16A7 JSR SETUPT
1793 01=18 AU 04 LDY #$04
1794 OF1A AS 84 LDA ARG2
1795
+ CMPBE <(ACC),V>,LOF1O
1796 01=20 4C 0880 JMP PREDFL
1797
1798 0F23 .+0F23: MOV ARG2+1,ACC+1
1799 0F27 25 83 AND ARG1±1
1800 01=29 85 E5 STA ACB+1
180! MOV ARG2,ACC

Infocom .RLOGIC interpreter disassembly, 5/27184 MACRO—BC 3. 18—Sep—81 PAGE 1—42
1802 QF2F 25 82 AND ARG1
1803 0F31 85 E4 STA ACS
1804 0F33 20 16E9 JSR L16E9
1805 0F36 FO 08 SEQ LOFlO
1806 0F38 4C 068D JMP PREDFL
1807
1808 0F38 +0POR: DOR ARG2ARG1,ACC
1809 0F47 4C 0832 JMP PTVRP1
1810
1811 OF4A +OPAND DAND ARG2,ARG1,ACC
1812 0F56 4C 0832 JMP PTVRP1
1813
1814 PAGE

Irifocom IrRL0GIC interpreter disassembly, 5/27/84 MACRO—80 3. 18—Sep—Si PAGE 1—43
1815
1816 test attribute bit ARG2 of thing ARG1
1817
1818 0F59 20 1629 OPTSTA JSR SETUPA
1819 OF5C A5 ES LDA AC+1
1820 OF5E 25 E9 AND ACD+1
1821 0F60 85 E5 STA ACB+1
1822 0F62 A5 E4 LDA ACS
1823 0F64 25 ES AND ACO
1824 0F66 05 E5 ORA ACB+1
1825 0F68 DO A6 BNE LOF1O
1826 OF6A 4C OB8D JMP PREDFL
1827
1828
1829
; set attribute bit ARG2 of thing ARGI
1830
1831 0F60 20 1629 OPSETA: JSR SETUPA
1832 0F70 AD 01 LDV #$01
1833 0F72 A5 E4 LDA ACB
1834 0F74 05 E8 ORA ACD
1835 0F76 91 E6 STA (ACCLV
1836 0F78 88 DEV
1837 0F79 A5 ES LDA ACS+1
1838 OFJS 05 E9 ORA ACD+1
1839 0&7D 91 E6 STA (ACC).Y
1840 OF7F 60 RTS
1841
1842
1843
; clear attribute bit ARG2 of thing ARG1
1844
1845 0F80 20 1629 OPCLRA: JSR SETUPA
1846 0F83 AD 01 LDV #$O1
1847 0F85 A5 E8 LDA ACD
1848 0F87 49 FF EOR #$FF
1849 0F89 25 E4 AND ACS
1850 QF8B 91 E6 STA (ACC),Y
1851 OF8D 88 0EV
1852 OFSE A5 E9 LDA ACD-f-1
1853 0F90 49 FF LOR #$FF
1854 0F92 25 E5 AND ACS+1
1855 0F94 91 E6 STA (ACC),V
1856 0F96 60 RTS
1857
1858 PAGE

Infocorn INIERLOGIC interpreter disassembly, 5/27/84 MACRO—SO 18—Sep—81 PAGE 1—44
1859
1860 0F97 +L0F97: DMOV ARG2,ACC
1861 OF9F AS 82 LOA ARG1
1862 OFA1 4C OAC9 LOFA1: JMP PTVRA1
1863
1864 OFA4 20 0081 OPMOVT: JSR OPDSTT
1865 OFA7 A5 82 LOA ARG1
1866 OFA9 20 iSA? JSR SETUPT
1867
+ DPSH ACC
1868 OFB2 A0 04 LDV #THGPAR
1869
+ MOV ARG2<<(ACC),V>>
1870 0F88 20 16A7 JSR SETUPT
1871 OFBB AD 06 LDY #THGCHO
1872 OFSD 81 E6 LOA (ACC),Y
1873 OFBF AA TAX
1874
+ MOV ARG1,<<(ACC),V>
1875
1- OPUL ACC
1876 OFCA 8A TXA
1877 OFCB FO 04 SEQ LOFD1
1878 DECO AO 05 LDV #THGSIB
1879 OFCF 91 E6 STA (ACC),V
1880 OFD1 60 LOFD1: RTS
1881
1882 0F02 +OPGTWD: DASL ARG2
1883
+ OADD ARG2,ARGI,ACC
1884
0FE3 20 1788 JSR SETAXB
1885 OFE6 20 17DB JSR FTAXWD
1886 OFE9 4C 0832 JMP PTVRP1
1887
1888 OFEC +OPGTBV: DADO ARG2,ARG1,ACC
1889 OFF9 20 1788 JSR SETAXS
1890 OFFC 20 17E8 JSR FTAXBA
1891 OFFF 85 E6 STA ACC
1892
÷ MOV <#$0O>,ACCI-1
1893 1005 4C 0832 JMP PTVRP1
1894
1895 PAGE

( (
Infocom iNIERLOGIC interpreter disas5embly, 5127/84 MACRO—80 3. 18—Sep—81 PAGE 1—45
1896
1897
; get property ARG2 of thing ARG1
1898
1899 1008 20 1669 OPGTP: JSR SETUPP
1900 1008 20 168E L1006: JSR GTPNIJM
1901
+ CMPBE ARG2,L1O3B
1902
+ JSRCS ADVPPT,L1006
1903 lOlA AU 08 LDV #HDRTHG+1
1904 IO1C 18 CLC
1905 1010 Bi BA LOA (FRZMEM),V
1906 1O1F 65 BA ADC FRZMEM
1907 1021 85 E4 STA ACB
1908 1023 88 0EV
1909 1024 81 BA LOA (FRZMEM),V
1910 1026 65 BB AOC FRZMEM+1
1911 1028 85 E5 STA ACB+1
1912 102A A5 84 LOA ARG2
1913 102C OA ASL A
1914 1020 A8 TAV
1915 102E 88 0EV
1916
+ MOV <(ACB),V>,ACC
1917 1033 88 0EV
1g18
+ MOV <(AC8),V,ACC-i-1
1919 1038 4C 0632 JMP PTVRP1
1920 1038 20 1693 L1038: JSR GTPLEN
1921 103E C8 INY
1922
+ CMPBE <#$00>,L1O5E
1923
+ CMPJSN <#$01>FATAL
1924
+ MDV <(ACC),Y>,ACB+1
1925 104E C8 INY
1926
+ MOV <(ACC),Y>,ACB
1927
+ DMOV ACB,ACC
1928 1058 4C 0832 JMP PTVRP1
1929 105E +L105E MDV <(ACC)V>,ACC
1930
+ MDV <#$00>,ACC+1
1931 1066 4C 0832 JMP PTVRP1
1932
1933 PAGE

Infocom ,RL0G1C interpreter disassembly, 5/27/84 MACRO—BO 3.L 18—Sep—81 PAGE 1—46
1934
1935 get address of property ARG2 of thing ARG1
1936
1937 1069 20 1669 OPGTPA: JSR SETUPP
1938 106C 20 168E L1O6C: JSR GTPN1JM
1939
+ CMPBE ARG2,L1O7E
1940
+ JCC PTVRPZ
1941 1Q78 20 1690 JSR ADVPPT
1942 1078 4C 106C JMP L1O6C
1943 107E +LIO7E: DINC ACC
1944 1084 18 CLC
1945 1085 98 TVA
1946 1086 65 E6 ADC ACC
1947 1088 85 E6 STA ACC
1948 1OBA 90 02 8CC L1O8E
1949 108C E6 E7 INC ACC+1
1950 1Q8E +L1O8E: DSU8 ACC,FRZMEM,ACC
1951 1098 4C 0832 JMP PTVRP1
1952
1953 PAGE

Infocom riERL0GIC interpreter disassemb1y, 5/27)84 MACRO—80 3. 18—Sep—81 PAGE 1—4]
1954
1955 get number of next property of thing ARG1 after property ARG2
1956
1957 109E 20 1669 OPGTNP: JSR SETUPP
1958 1OA1 A5 84 LLIA ARG2
1959 10A3 FO 12 SEQ L1057
1960 10A5 20 168E L1OA5: JSR GTPNUM
1961
+ CMPBE ARG2,L1OBD
1962
+ JCC PTVRPZ
1963 1OB1 20 169D JSR ADVPPT
1964 10B4 4C 10A5 JMP L1OA5
1965 10B7 20 168E L1067: JSR GTPNUM
1966 105A 4C 062C JMP PTVRPA
1967 108D 20 169D LIOBO: JSR ADVPPT
1960 10C0 4C 10B7 JMP L1057
1969
1970 PAGE

Infocom(

ERLOGIC interpreter disassembly, 5/27/84

MACRO-80 3.-,i 18—Sep—81

PAGE 1-48

(

1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001

1 0C3
1000 4C 0832
1003
1OEO 4C 0B32
1 0E3
1 0F3
1 0F6
1 0F8
1 OFA
1104
I IU!
11 OA
1100
1111
1115

0PAD0: DADD
JMP
+OPSUB: DSU8
iMP
+OPMUL: DMOV
÷ DMOV
JSR
LDA
BNE
LDA
+ CMPBE
+ CMPBE
J SR
J SR
JMP
DASL
DASL
JMP

ARG1 ,ARG2,ACC PTVRP 1
ARG1 ,ARG2,ACC PTVRP 1
ARG1 ,ACC
ARG2
, AC8
Li 5F8
ACB+ 1
Li 104
ACB
<#$02> ,Li iii
<#$04>
,Lii 00
Li 568
Li 60A
PTVRP1
ACC
ACC
Li 107

add ARG1 and ARG2

subtract ARG2 from ARGI

multiply ARG1 by ARG2

20 15FB
AS E5
DO OA
A5 E4
20 1568
20 i6OA
4C 0B32
4C 1107

Li 1 04:
Li 107:
+Li 100:
+Li iii:

PAGE

Infocorn(,IERLOGIC interpreter disassembly, 5/27/84 MACROBO 18—Sep—81 PAGE 1—49
2002
2003
; divide ARG1 by ARG2
2004
2005 1118 OPDIV: DMOV ARGI,ACC
2006
+ DMOV ARG2,ACB
2007 1128 20 15F8 JSR L15FB
2008 1128 A5 E5 LDA ACB+1
2009 1120 DO CA BNE L1139
2010 112F A5 E4 LDA AC8
2011
+ CMPBE <#$02>,L1143
2012
+ CMPBE <#$04>,L113F
2013 1139 20 15A0 L1139: JSR DIVIDE
2014 113C 4C 1107 JMP LuG?
2015 113F +L1j3j DLSR ACC
2016 1143 +L1143: DLSR ACC
2017 1147 4C 1107 JMP LuG?
2018
2019
2020 get remainder of ARG1 divided by ARG2
2021
2022 114A +QPRMD: DMOV ARG1,ACC
2023
+ DMO’J ARG2,ACB
2024 115A 20 15F8 JSR LI5FB
2025 1150 20 15AD JSR DIVIDE
2026
- DMOV ACB,ACC
2027 1168 4C 0832 JMP PTVRP1
2028
2029 PAGE

Infocom ERLOGIC interpreter disassembly, 5/27/84 MACRO—80 3. 18—Sep—Si PAGE 1-50
2030
2031
; test whether ARG1 is equal to any of the other args
2032
2033 1168 A6 81 OPMTCH; LOX ARGCNT
2034
+ DX8NE L1173
2035 1170 20 2101 JSR FATAL
2036 1173 A5 82 L1173: LDA ARG1
2037
+ CMP8N ARG2,L117F
2038 1179 A5 83 LDA ARG1+1
2039
+ CMPBE ARG2+1,Li1AO
2040 117F +L117F DXBEQ L1190
2041 1182 AS 82 LDA ARG1
2042 -s- CMPSN ARG3,LI1SE
2043 1188 A5 83 LOA ARG1-*-1
2044
+ CMPBE ARG3+1,L11AO
2045 1186 +L1186: DXSEQ L1190
2046 1191 A5 82 LDA ARG1
2047
+ CMPBN ARG4,L1173
2048 1197 A5 83 LOA ARG1+1
2049
+ CMPBE ARG4I-1,LI1AQ
2050 119D 4C 0880 L119D: JMP PREDFL
2051 11AO 4C 0B84 LuAU: JMP PREDTR
2052
2053 PAGE

Infocom .IERLOGIC interpreter disassembly. 5/21184 MACRO8O 3. 18—Sep—81 PAGE 1—51
2054
2055
; call procedure at addr. ARG1 and optionally pass ARG2. ARG3, and ARG4
2056 as arguments
2057
2058 1lA3 OPCALL OTS2BN ARG1,L1184 if argument I (call address/2) is
2059
+ OMOVI $0000,ACC ; zero, just put zero in var
2060 1151 4C 0532 JMP PTVRP1
; these three lines could be replaced
2061
; with “DTS2BE PTVRPZ’
2062
2063 1154 +L11B4: MOV STKCSV,ACC ; push the stack count save and low byte
2064
+ MOV PRGIIJX,ACC+1 ; of the PC
2065 llSC 20 l6F4 JSR PUSHWD
2066
2067 + DMOV STKPSV,ACC ; push the stack pointer save
2068 1IC] 20 16F4 JSR PUSHWD
2069
2070
+ OMOV PRGLPG,ACC ; push the PC logical page
2071 1lD2 20 16F4 JSR PUSHWD
2072
2073
+ MOV <#$OO>,PRG(JPD indicate need to search for new page
2074
2075
+ DASL ARG1,PRGIDX make new PC ARG1 * 2
2076 1 1E3 A9 00 LDA #$00
2077 llE5 2A ROL A
2018
iiE6 85 8C STA PRGLPG+1
2079
2080 lIES 20 113E JSR FTPRSA ; get first byte of routine
2081 lIES 48 PHA and save it
2082
2083 + TSTABE L1220 if it’s zero, no local variables
2084
2085
; push the local variables the routine will use
2086
2087 1IFO A2 00 LOX #$00
2088 11F2 48 L11F2: PHA
2089
+ MOV <LOCVAR,X>,ACCI-1
2090 hF] ES INX
2091 ÷ MOV <LOCVAR,X>,ACC
2092 11EC CA DEX
2093 1IFO BA TXA
2094 liFE 48 PHA
2095 11FF 20 16F4 JSR PUSHWO
2096 1202 20 l73E JSR FTPRBA
2097 1205 48 PHA
2098 1206 20 173E JSR FTPRBA
2099 1209 85 E6 STA ACC
2100
+ PUL ACC+l
2101 120E 68 PLA
2102 120F AA TAX
2103
+ MOV ACC+1,<<LOCVAR,X>>
2104 1214 E8 INX
2105
+ MOV ACC.<<LOCVAR,X>>
2106 1219 ES INX
2107 l2lA 68 PLA
2108 ÷ SUB ,<#$01>

Infocom ERLOGIC interpreter disassembly, 5/27/84 MACRO—80 3. 18—Sep—81 PAGE 1—52
2109 121E DO 02 BNE L11F2
2110
2111 1220 +L1220; MO’? ARGCNT,ACD
; do we pass any parameters?
2112 DECBE ACD,L124C
; no
2113
2114
+ MOV <#$OO>,ACB ; yes, copy them in
2115 ÷ MOV <#$0O>,ACC
2116 1230 A6 E4 L1230: LDX ACB
2117 1232 B5 85 LDA ARG2+1,X
2118 1234 A6 E6 LOX ACC
2119 1236 95 9A STA LOCVAR,X
2120 1238 E6 E6 INC ACC
2121 123A A6 E4 LOX ACB
2122 123C 85 84 LDA ARG2.X
2123 123E A6 E6 LOX ACC
2124 1240 95 9A STA LOCVAR,X
2125 1242 E6 E6 INC ACC
2126 1244 E6 E4 INC ACB
2127 1246 E6 E4 INC ACB
2128
2129 OECDN ACD,L1230
; loop if more paramaters to pass
2130
2131 124C -t-L124C: PUL ACC
; get the first program byte again
2132 124F 20 16F4 JSR PUSHWD and push it so return can restore
2133 the local variables
2134
2135
+ MOV STKCNT,STKCSV ; save the stack pointer and count
2136
+ DMOV STKPNT,STKPSV
2137
2138 125E 60 RTS
; all done!
2139
2140 PAGE

Infocom 1,RL0GIC interpreter disassembly, 5/27/84 MACRO—80 18—Sep—81 PAGE 1—53
2141
2142 store word ARG3 at log. addr. ARG2 (offset)
* 2 + ARGI (base)
2143 should have test to insure no overrun of end of frozen storage!
2 144
2145 125F A5 84 OPPTWD: LOA ARG2
; calculate logical address
2146 1261 GA ASL A
2147 1262 26 85 ROL ARG2+l
2148 1264 18 CLC
2149 1265 65 82 ADC ARGI
2150 1267 85 E6 STA ACC
2151 1269 A5 85 LDA ARG2+1
2152 1268 65 83 ADC ARG1+1
2153 1260 85 El STA ACC+1
2154
2155
+ DADD ACC,FRZMEM,ACC ; add base of frozen mern. to get phys. addr.
2156
2157 l27C AG 00 LDY #$00
; store the word
2158 ÷ MOV ARG3+l,<<(ACC),V>>
2159 1282 C8 INY
2160
÷ M0’J ARG3,<<(ACC),Y>>
2161
2162 1287 60 RTS and return
2163
2 164
2165 store byte ARG3 at log. addr. ARG2 (offset)
± ARGI (base)
2166 should have test to insure no overrun of end of frozen storage!
2167
2168 1288 AS 84 OPPTBV: LDA ARG2 calculate logical address
2169 128A 18 CLC
2170 1286 65 82 ADC ARG1
2171 1280 85 E6 STA ACC
2172 128F AS 85 LDA ARG2+1
2173 1291 65 83 ADC ARG1+1
2174 1293 85 E7 STA ACC+1
2175
2176
+ DADO ACC,FRZMEM,ACC add base of frozen Inem. to get phys. addr.
2177
2178 12A2 AG 00 LDY #$00 store the byte
2179
+ MOV ARG3,<<(ACC),V>>
2180
2181 12A8 60 PTS
; and return
2182
2183 PAGE

InfocomNIERLOGIC interpreter

disasemb1y, 5/27/84

MACRO—Ba 3.... 18-Sep—81

PAGE 1-54

(

1288 20 1690
1288 4C 12AC
126E 20 1693
12C1 C8

-I- MDV ARG3,<<(ACC),Y>>
-*-L12D7; MOV ARG3,<<(ACC),V>> RT S

store low byte and return

12A9 20 1669
12AC 20 168E

2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213

store ARG3 as property ARG2 of thing ARG1
OPPTP: ,JSR SETUPP
; setup for thing property operations
L12AC: JSR GTPNUM
; get the property number
+ CMPBE ARG2,LI2BE ; if it is the one, go do it!
+ JSRCC FATAL oops! past it!
JSR AD’JPPT
; advance pointer
JMP L12AC
; and try again
got the property we wand
L12BE: JSR GTPLEN get property length
INY
÷ CMP8E #$00,L12D7 ; if it is byte sized, 90 store it
+ CMPJSN #$01,FATAL if it isn’t word sized, fatal error
+ MOV ARG3+1,<<(ACC),V>> es, store high byte
INY
these two lines are unnecessary

2Dl C8
1206 60
1207
1208 60

PAGE

Infocorn 1nIERLOGIC interpreter disassembly, 5/21/84 MACRO—80 3-d 18—Sep—SI PAGE 1—55
2214
2215 120C 20 1C8A OPGTLN: JSR OPPRST
2216 DADD ARG1,FRZMEM,ARG1
2217
+ OADD ARG2,FRZMEM,ARG2
2218 12F9 20 1D65 JSR GETLIN
2219 12FC 85 E9 STA ACD+1
2220
+ MOV <#$00>,ACD
2221 1302 A0 01 LOY #$01
2222
1- MO’J
2223
+ MOV <#$02>,LEO
2224
+ MDV <#$O1>,LE1
2225 1310 A0 00 L1310: LOY #00
2226
1312 81 84 LDA (ARG2),V
2227 1314 CS INY
2228
+ CMPRE <(ARG2),V>
2229
+ DTSTRE ACD
2230 1321 A5 ES LDA ACD
2231
+ CMPJSE <#$06>,L13SA
2232 132A A5 E8 LDA ACD
2233 132C DO 2E SNE L135C
2234 132E AO 06 LDV #$06
2235 1330 A2 00 LDX #$0O
2236 1332 +L1332: MOV
2237 1336 ES INX
2238
+ DVBNE L1332
2239 133A AS El LDA LEI
2240 133C A4 E0 LDV LEO
2241 133E CS INY
2242 133F CS INY
2243 1340 CS INY
2244 1341 91 84 STA (ARG2),Y
2245 1343 A4 El LOY LE1
2246 1346 51 82 LDA (ARG1),Y
2247 1347 20 13F1 JSR L13F1
2248 134A 80 2E OCS L137A
2249 134C A4 El LDV LE1
2250 l34E 81 82 LDA (ARG1),Y
2251 1350 20 13EO JSR LI3EO
2252 1353 90 07 8CC L135C
2253 1355 E6 El INC LE1
2254 1357 C6 E9 DEC ACD+1
2265 1359 4C 1310 JMP L131O
2256 l35C A5 E9 L135C: LDA ACO+1
2257 135E FO 22 SEQ L1382
2258 1360 A4 El LU’.’ LE1
2259 1362 81 82 LDA (ARG1),Y
2260 1364 20 13DA JSR LI3DA
2261 1367 50 19 BCS L1382
2262 1369 A4 El LU’.’ LE1
2263 1368 81 82 L0A (ARG1),Y
2264 136D A6 ES LOX ACD
2265 136F 95 D3 STA INWORD,X
2266 1371 C6 E9 DEC ACD+1
2267 1373 E6 ES INC ACD
2268 1375 E6 El INC LE1

Infocam ITERL0G1C interpreter disassembly, 5127/84 MACRO—80 3.3 18—Sep—81 PAGE 1—56
2269 1377 4C 1310 JMP L1310
2270 1374 85 03 L137A: STA INWORD
2271 13/C E6 E8 INC ACD
2272 137E C6 E9 DEC ACD+1
2273 1380 E6 El INC LEI
2274 1382 A5 E8 L1382: LDA ACO
2275 1384 FO 8A BEQ L1310
2276
+ PSH ACD+1
2277 1389 A4 ED LDV LEO
2278 1388 C8 INY
2279 138C C8 INY
2280
+ MOV ACD,<<(ARG2),V>>
2281 1391 20 1405 JSR CRNWRO
2282 1394 20 141F JSR L141F
2283 1397 A4 ED LOY LEO
2284
+ MO\I ACB+1,<<(ARG2),Y>>
2285 139D C8 INY
2286
+ MOV AC8,<<(ARG2),Y>>
2287 1342 C8 INY
2288 1343 C8 INY
2289 1344 C8 INY
2290 13A5 84 EQ STY LEO
2291 13A7 40 01 LDY #$O1
2292 ADD <(ARG2),Y>,<$O1>,<<(ARG2),Y>>
2293
+ PIJL ACD+1
2294
+ MOV <#$00>,ACD
2295 1387 4C 1310 JMP L131O
2296
2297 138A A5 E9 L138A: LDA ACD+1
2298 ÷ RTSEQ
2299 138f 44 El LDY LE1
2300 13C1 Bi 82 LDA (ARG1),Y
2301 13C3 20 13DA JSR L13DA
2302
+ RTSCS
2303 13C9 E6 El INC LE1
2304 13C8 C6 E9 DEC ACD+l
2305 13CD E6 E8 INC ACD
2306 13CF 4C 1384 JMP L13BA
2307
2308 1302 20 2E 2C SEPTA8: 06
,?‘ ,CRCHAR,LFCHAR,TBCHAR,FFCHAR
2309 13D5 3F 00 OA
2310 1308 09 QC
2311
2312 13DA 20 l3Fl LI3DA; JSR L13FI
2313
+ RTSCS
2314 13E0 40 00 L13EO: LOY #$OO
2315 13L2 A2 08 LOX #$08
2316 13E4 i-L13E4: CMPBE <SEPTAB,Y>,L13EF
2317 13E9 C8 INV
2318
+ OXBNE L13E4
2319 13ED 18 LI3ED: CLC
2320 13FF 60 RTS
2321 13FF 38 L13EF: SEC
2322 13F0 60 L13FO: RTS
2323
2324
13F1 48 L13FI: PHA

Infocom EPLOGIC interpreter disassembly, 5/27/84 MACRO—BC 3 .i lSSepSl PAGE 1—57
2325 13F2 20 1406 JSR GTVCBA
2326 13E5 A0 CO LW? #$OO
2327 13F7 51 E6 LDA (ACC),V
2328 13F9 AA TAX
2329 I3FA 68 PLA
2330 13F5 FO F0 L13FB: SEQ LI3ED
2331 13ED C8 INV
2332
+ CMPBE <(ACC),V>,L13EF
2333 1402 CA DEX
2334 1403 4C 13E6 JMP L13FS
2335
2336 1406 AC 08 GTVC8A: LDV #HDRVCS
2337
+ MOV <(ERZMEM),V>,ACC+1
2338 14CC C8 INY
2339
+ MOV <(FRZMEM),V>,ACC
2340
+ DAD0 ACC,ERZMEM,ACC
2341 141E 60 RTS
2342
2343 141F 20 1406 LJ41F JSR GTVCSA
2344 1422 AC 00 LDV USD0
2345 1424 51 E6 LDA (ACC),V
2346 1426 AS TA’?
2347 1427 CS IN’?
2348 1428 81 E6 LDA (ACC),V
2349 142A CA ASL A
2350 1428 CA ASL A
2351 142C CA ASL A
2352 1420 CA ASL A
2353 142E 85 ES STA ACD
2354 1430 CS IN’?
2355
+ MOV <(ACC),V>,ACB+1
2356 1435 CS IN’?
2357
-+ MOV <(ACC),fl,ACB
2358 143A CS IN’?
2359 1438 98 T’?A
2360
+ ADD ,ACC,ACC
2361 1441 90 02 5CC L1445
2362 1443 E6 E7 INC ACC+1
2363 1445 AD 00 L1445: LD’? #$00
2364 1447 4C 1450 JMP L1450
2365
2366 144A 81 E6 L144A: LDA (ACC),’?
2367
+ CMPSG PKWORD+1,L1470
2368 1450 +L1450; QADDS1 ACC,ACD,ACC
2369
+ DSUSS1 ACB,<#$10>,AC8
2370 1466 AS ES LDA ACS+1
2371 1468 30 06 8M1 L147C
2372 146A DO DE SNE L144A
2373 146C AS E4 LDA ACS
2374 146E DO DA SNE L144A
2375 1470 tL1470; DSUS8I ACC,ACD,ACC
2376
+ DADDB1 ACS,<#$10>,ACB
2377 1486 AS ES LDA ACD
2378 1488 4A LSR A
2379 1489 4A LSR A
2380 148A 4A LSR A

InfoCoin ERLOGIC interpreter disassemblY, 5/27/84 MACRO-SO 3.-. 18—Sep—81 PAGE 1—58
2381 1488 4A LSR A
2382 148C 85 ES STA ACD
2383 148E A0 00 L148E: LDV #$OO
2384 1490 A5 DB LDA PKWORD+1
2385 ÷ CMPBL <(ACC),Y>,L14D0
2386 1496 DO 1C ONE L14B4
2387 1498 CS INY
2388 1499 A5 DA LDA PKWORD
2389
+ CMPOL <(ACC),Y>.LI4DO
2390 149F DO 13 ONE L1454
2391 14A1 AD 02 LDY #$O2
2392 14A3 AS DO LDA PKWORD+3
2393 ÷ CMPSL <(ACC),V>,L1400
2394 14A9 DO 09 ONE L14B4
2395 14A8 CS INY
2396 14AC A5 DC LDA PKWORD+2
2397 + CMPOL <(ACC),V,L14OO
2398 1482 FO 23 BEQ L14D7
2399 1484 +L14B4 DA0081 ACC,ACD,ACC
2400 + ODEC ACO
2401 + DTS2ON ACB,L14SE
2402 1400 +L1400: MOV <#$00>,<ACB÷1,ACB>
2403 14D6 60 RTS
2404 1407 +L14D7: DSUB ACC,FRZMEM,ACO
2405 14E4 60 RTS
2406
2407 PAGE

Infocom .RL0GIC interpreter

disassembly, 5/27/84

MACRO-80 3.

18—Sep—al

PAGE 1-59

PAGE

 

2408

 

 

 

 

 

 

2409

 

 

 

 

 

2410

 

 

 

print

ASCII

character ARG1

 

2411

 

 

 

 

 

 

2412

14E5

AS

82

OPPRCH;

LDA

ARG1

2413

l4E7

4C

163F

 

JMP

8FCF-IAR

2414

 

 

 

 

 

 

2415

 

 

 

 

 

2416

 

 

 

; print

decimal

number ARGI

2417

 

 

 

 

 

 

2418

14EA

 

 

+OPPRNM:

DMOV

ARG1,ACC

2419

14F2

4C

14F5

 

JMP

PRNTNM

;

unnecessary

 

2420

 

 

 

 

 

 

 

 

2421

 

 

 

 

 

 

 

2422

 

 

 

print

decimal

number in ACC

 

2423

 

 

 

 

 

 

 

.

2424

14F5

A5

El

PRNTNM:

LDA

ACC+1

 

negative?

 

2425

 

 

 

+

JSRMI

L152E

 

yes, print ‘-‘ and negate

 

2426

 

 

 

+

MDV

<#$00>,ACD

 

initialize digit count to 0

 

2427

1500

 

 

+L1500:

DTST8E

ACC,L1519

 

if the remainder is zero, print it

now

2428

 

 

 

+

DMOVI

$000A,ACB

 

set up divisor of 10

 

2429

1SOE

20

15AID

 

JSR

DIVIDE

 

divide

 

2430

 

 

 

+

PSH

AC8

 

push remainder onto stack

 

2431

1514

E6

ES

 

INC

ACO

 

increment digit count

2432

1516

4C

1500

 

JMP

L1500

 

do it again

2433

 

 

 

 

 

 

 

 

2434

1519

A5

E8

L1519:

LDA

ACD

;

is digit count zero?

2435

1518

FO

DC

 

SEQ

L1529

;

yes, just print a ‘0 and return

2436

l5lD

68

 

L151D:

PLA

 

;

pull a digit off stack

2437

 

 

 

+

ADD

,<#‘O’>

;

convert to ASCII

2438

1521

20

183F

 

JSR

BFCHAR

;

print it

2439

 

 

 

+

DECSN

ACD,L151D

;

decrement digit count, loop if more

2440

1528

60

 

 

RTS

 

;

return to caller

2441

 

 

 

 

 

 

 

 

2442

1529

A9

30

L1529:

LDA

#‘O’

;

get code for 0’

2443

1528

4C

163F

 

JMP

BFCHAR

;

print it and return to caller

2444

 

 

 

 

 

 

 

 

2445

l52E

A9

2D

L152E

LDA

#‘‘

;

get code for

2446

1530

20

183F

 

JSR

BFCHAR

;

print it

2447

1533

4C

1611

 

JMP

L1611

;

negate the number, return

2448

 

2449

 

Infocom RL0GIC interpreter disassembly, 5/27/84 MACRO—SO 3(. 18—Sep—81 PAGE 1—60 1.
2450
2451 get a random number from 1 to ARG1
2452
2453 1FF RNGDBG
2454
2455 1536 +OPRNDM: DMOV ARG1,ACS save range
2456 153E 20 21A0 JSR L21AO get the “random number
2457 1541 20 15AD .JSR DIVIDE
; divide by range
2458
+ DMOV ACB,ACC ; get the remainder
2459 ÷ DINC ACC increment it (base of result is 1)
2460 1552 4C 0B32 JMP PTVRP1
; and store it
2461
2462 ENDIF
2463
2464 push ARG1 on stack
2465
2466 1555 +OPPUSH: DMOV ARG1,ACC
2467 1550 4C 16F4 JMP PUSHWD
2468
2469
2470
; pull stack into variable ARGI
2471
2472 1560 20 1720 OPPULL: JSR PULLWD
2473 1563 A5 82 LDA ARG1
2474 1565 4C OFA1 JMP LUFA1
2475
2476
2477 1568 +L1568: DPSH ACD
2478
+ DMOVI $0000,ACD
2479 1576 A2 10 LOX #$10
2480 1578 A5 E4 L1578: LDA ACS
2481 157A 18 CLC
2482 1578 29 01 AND $O1
2483 l57D FO DC 8EQ L1585
2484
+ DADC ACC,ACD,ACD
2485 158B +L1588: DROR ACD
2486
+ DROR AC6
2487
+ DXSNE L1578
2488
+ DMOV ACB,ACC
2489
+ DMOV ACD,ACB
2490
+ DPUL ACD
2491 15AC 60 RTS
2492
2493 PAGE

Infocoiii( ERLOGIC interpreter isassernbIy, 5127/84 MACRO—SO 18—Sep—81 PAGE 1—61
2494
2495 divide ACC by ACS, quotient to ACC, reriainder to ACB
2496
2497 15AD +DIVIDE; DPSH ACD
2498
+ DMOV ACC,ACD
2499
+ OMOVI $0000,ACC
2500 15C3 A2 11 LOX *$11
2501 15C5 38 L15CS: SEC
2502 15C6 A5 E6 LDA ACC
2503 15C8 ES E4 SBC ACB
2504 15CA A8 TAY
2505 15C8 A5 E7 LDA ACC+1
2506 15CD E5 ES SBC ACB+1
2507 15CF 90 05 6CC L15D6
2508 1501 85 E7 STA ACC+1
2509 1503 98 VIA
2510 1504 85 E6 STA ACC
2511 1506 +L1506: DROL ACD
2512
÷ DROL ACC
2513
+ DXBNE L15C5
2514 1561 18 CLC
2515
+ DROR ACC,ACB
2516
+ DMOV ACD,ACC
2517
+ OPUL ACO
2518 15FA 60 RTS
2519
2520 15F6 +L15F8 MOV <#$00>,MDFLAG
2521 15FF A5 E7 LDA ACC+I
2522 1601 20 16W JSR L161F
2523 1604 A5 65 LDA ACB+1
2524 1606 20 161F JSR L16IF
2525 1609 60 RTS
2526
2527 160A A5 EA L160A: L0A MOFLAG
2528 160C 29 01 AND #$01
2529 +
RTSEQ
2530 1611 38 L1611: SEC
2531 1612 A9 00 LDA #$00
2532 1614 E5 66 SBC ACC
2533 1616 85 E6 STA ACC
2534 1618 A9 00 LDA #$00
2535 161A 65 E7 SSC ACC-t-1
2536 161C 85 E7 STA ACC+1
2537 161E 60 RTS
2538
2539 16W +L161F: TSTARP if positive, return
2540 1624 E6 EA INC MDFLAG
2541 1626 4C 1611 JMP L1611
2542
2543 PAGE

Infocom ERLOGIC interpreter disassembly, 5/27/84 MACRO—BO 3. i 18—Sep--SI PAGE 1-62
2544
2545 setup stuff for thing attribute bit operations
2546
2547 1629 A5 82 SETUPA: LDA ARGI
2548 162B 20 16A7 JSR SETUPT
2549 162E A5
54 LDA ARG2
2550
+ CMPSL <#$10>,L1643
2551
+ SUB
2552
+ DINC ACC
2553
+ DINC ACC
2554 1643 85 E4 L1643: STA ACS
2555
+ DMOVI $0001,ACD
2556 + SUB <#$QF>,ACB
2557 1652 AA TAX
2558 1653 FO 08 L1653: SEQ L165D
2559 + DASL ACD
2560 1659 CA DEX
2561 165A 4C 1653 JMP L1653
2562 1650 AU 00 L165D: LDY $QO
2563
1- MOV <(ACC),Y>,ACB+1
2564 1663 C8 INY
2565 + MOV <(ACC),V>,ACB
2566 1668 60 RTS
2567
2568
2569 ; setup stuff for thing property operations
2570
2571 1669 A5 82 SETUPP: LDA ARG1
2572 1665 20 16A7 JSR SETtJPT
2573 166E AD 07 LDV #THGPRP
2574 + MOV <(ACC),V>,ACS+1
2575
1674 C8 INY
2576 + MOV <(ACC),V>,ACB
2577 1- DADD ACB,FRZMEM,ACC
2578 1686 AU 00 LDY #$G0
2579 1688 51 E6 LDA (ACC),V
2580 168A GA ASL A
2581 168B A8 TAY
2582 168C C8 INV
2583 168D 60 RTS
2584
2585
2586 get number of property pointed to by ACC
2587
2588 1686 81 66 GTPNUM: LDA (ACCLY
2589 1690 29 IF
AND %$1F
2590 1692 60 RTS
2591
2592
2593
get lenght of property pointed to by ACC
2594
2595 1693 81 66 GTPLEN: LDA (ACC),V
2596 REPT 5
2597 + ROR A
2598 + ENDM

Infocom(.ERLOGIC interpreter disassembly. 5/27/84 MACRO—80 3( 18-Sep—81 PAGE 1—63
2599 169A 29 07 AND
2600 169C 60 RTS
2601
2602
2603
; advance ACC to point to next property
2604
2605 1690 20 1693 A0\IPPT: JSR GTPLEN
2606 16A0 AA TAX
2601 16A1 C8 L16A1: INV
2608
+ DXBPL L16A1
2609 16A5 CS INV
2610 16A6 60 RTS
2611
2612
2613
; setup stuff for thin9 operations
2614
2615 16A1 85 E6 SETUPT: STA ACC
2616
+ MOV <#$00>ACC+1
2617 16A0 A5 E6 LDA ACC
2618
+ REPT 3
2619
+ DASL ACC
2620
+ ENDM
2621
+ ADD ,ACC
2622 1686 90 03 8CC L16C3
2623 16C0 E6 67 INC ACC+1
2624 16C2 18 CLC
2625 16C3 69 35 L16C3: ADC $35
2626 16C5 85 E6 STA ACC
2627 16C7 90 02 8CC L16CB
2628 16C9 66 E7 INC ACC+1
2629 16C6 A0 08 L16CB: LDV #HDRTHG+1
2630
+ ADD <(FRZMEM),V>,ACC,ACC
2631 1604 88 0EV
2632 1605 81
BA LDA (FRZMEM),V
2633 1607 65 E7 ADC ACC+1
2634 16D9 65 B8 ADC FRZMEM+1
2635 16DB 85 67 STA ACC+1
2636 16DD 60 RTS
2637
2638 PAGE

Infocoili ERLOQIC interpreter disassembly, 5/27/84 MACRO—80 3-.J 18—Sep—81 PAGE 1-64
2639
2640 160E A5 E5 L16DE: LDA AC8+1
2641 16E0 45 E7 EOR ACC+1
2642 16E2 10 05 BPL L16E9
2643 16E4 A5 E5 LDA AC8-’-l
2644 16E6 C5 E7 CMP ACC+1
2645 16E8 60 RTS
2646 16E9 A5 E7 L16E9: LDA ACC+1
2647
+ CMPBN ACB+1,L16F3
2648 16EF A5 E6 LDA ACC
2649 16F1 C5 E4 CMP ACS
2650 16F3 60 L16F3: RTS
2651
2652 16F4 +PLJSHWD; DDEC STKPNT
2653 16FF A0 00 LDV #$00
2654
+ MOV ACC,<<(STKPNT),V>>
2655
+ DDEC STKPNT
2656
+ MOV ACC+1,<<(STKPNT),V>>
2657 1714 E6 C8 INC STKCNT
2658 1716 A5 CS LDA STKCNT
2659
+ CMPJSG <#STCKMX>,FATAL
2660 171F 60 RTS
2661
2662 1720 AU 00 PULLWD: LOY #$00
2663 ÷ MDV s(STlPNT),V>,ACC+i
2664
+ DINC STKPNT
2665
+ MDV <(STKPNT),V>,ACC
2666 ÷ DINC STKPNT
2667 1736 C6 CS DEC STKCNT
2668 ÷ JSREQ FATAL
2669 1730 60 RTS
2670
2671 PAGE

Infocomt ERLOG1C interpreter disassembly, 5/27/84 MACRO—80 3( 18—Sep—81 PAGE 1—65
2672
2673 fetch next
2674
2675 173E FTPR8A: LDA
2676 1740 SEQ
2677
2678 1742 LOY
2679 1744 LDA
2680
2681 1746 INY
2682 1747 STY PRGIDX
2683
+ RTSNE
2684
2685 174C LDY #$00
2686 174E STY PRGUPD
2687
+ DINC PRGLPG
2688 1756 RTS
2689
2690 1757 L1757: LDA
2691 1759 BNE
2692 1758 LDA
2693
+ CMP8L
2694
2695 1761 +L1761: DMOV
2696 1769 JSR
2697
, 176C STA
2698 176E BCS
2699
2700
; we have the
2701
2702 L1770: JSR
2703
2704 CLC
2705 LDA
2706 ADC
2707
2708
; fix the memory
2709
2710 +L1778: ADD
2711
+ MOV
2712
2713
+ MOV
2714 JMP
2715
2716
2717
2718
2719
2720
2721
2722 SWPMEM,ACC
2723 PRGPPG,ACC-t-1 ,ACC+1
2724 PRGLPG,ACB
2725
2726 DRDSKF

byte from PC into A
PRGUPD
Li 757
PRGIDX
(PRGMPT) ,Y

A5 8F
FO 15
A4 BA
81 80
C8
84 8A
AD 00
84 8F
60
A5 BC
DO 06
A5 86
20 1897
85 90
60 18
20 1862
18
A5 90
65 SC

need to find a new page? yes, go do it!
get the byte
increment the low byte of the PC
return unless we’ve entered a new page
unnecessary!
indicate new page
increment page number return
is the page were looking for frozen?

1770
1773
1774
1776
1778

PRGLPG+1
L1761
PRGLPG
FRZPGS,L1 778
PRGLPG.ACC no, see if it is swapped in
FNOPAG
PRGPPG save phys page no.
L1788
; not found
swappable page. fix up the pointers. etc.
MRKPAG
; indicate that we’re using this page
add phys. page number to number
PRGPPG
; of frozen pages
FRZPGS
pointers
FRZMEM+ 1
, PRGMPT+ 1
PR GM PT
PR GO PD
FTPRSA

1785 4C 173E
1788
1790
hAl 20 1EUD

we need to load the page from disk
+L1788: CMPBN AUXPPG,L1790
+ MOV <#$0O>,AUXUPD

+L179O: DMOV
+ ADD
-1 DMOV
JSR

add base of frozen memory
indicate that we have the page and go get the byte
if we are about to load a new logical page into the physical page AUX points to, mark it as new page
setup to read the page
read the page (die if error)

Infocom
2727
2728
2729
2730
2731
2732
2733
2734
2735

(

ERLOGIC interpreter disassembly,
17AA A4 90 LDY
+ MOV
+ MOV
17B4 98 TVA
175 4C 1770 JMP
PAGE

5/27184 MACRO-SO 3.... 18-Sep-Si PAGE 1-66
PRGPPG ; copy the new log. page number into
PRGLPG,<<CVMTASI),V>> the VM table
PRGLPG+1 ,<<(VMTAB2) ,Y>>
L1770 90 fix up the pointers and fetch the byte

(

Infocoin ( 3RLOGIC interpreter disassembly. 5/27/84 MACRO8O 3( 18—Sep—81 PAGE 1—67 4
2736
2737
; set AUX to byte address in ACC
2738
2739 1788 tSETAX8: MOV ACC.AUXIDX
2740
÷ MOV ACC+1.AUXLPG
2741
+ MOV <#$OO>,AUXLPGt1
2742 17C4 tL17C4: MOV <#$00>.AUXUPO
2743 17C8 60 RTS
2744
2745
2746
; set AUX to word address in ACC
2747
2748 17C9 AS E6 SETAXW: LDA ACC
2749 17C8 OA ASL A
2750 17CC 85 93 STA AUXI0X
2751 17CE AS E7 LDA ACC+1
2752
1100 2A ROL A
2753 1701 85 91 STA AUXLPG
2754 17D3 A9 00 LDA
2755 17D5 2A ROL A
2756 1706 85 92 STA AUXLPG+1
2757 1708 4C 17C4 JMP L17C4
2758
2759
2760 fetcn next word from AUX into ACC
2761
2762 1708 20 17E8 FTAXWD: JSR FTAXBA
2763 170E 48 PHA
2764 170F 20 17E8 JSR FTAXSA
2765 17E2 85 E6 STA ACC
2766
t PUL ACC+1
2767 17E7 60 RTS
2768
2769 PAGE

Infocom RL0GIC interpreter

disassembly, 5/27/84

MACRO—80 3. 18—Sep—81

PAGE 1-68

(

2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824

fetch next
FTAXBA LDA BEQ
LDY LDA
INY
STY
RTSNE
LDY
STY
DINC
RT S
L1801 LDA
BNE
LDA
+L1807; CMPBL
+L1a0b: DMOV
J SR
STA
BC S
we have the
L181A: JSR

L183A: DMOV
+ ADD
÷ DM0/
JSR

AUXIDX
$00
A U XU PD
A UX L PG
AUXLPG+ 1
L1806
AUXLPG
FRZPGS
, L1822
AUXLPG, ACC
FP#OPAG
AUXPPG
L1832
swappable page, fix up
MRKPAG

SWPMEM ACC
AUXPPG,ACC+1 ,ACC+1
AUXLPG
. ACB
DRDBKF

need to find a new page? yes, go do it!
get the byte

byte from AUX into A
AUXUPD
L1801
AUXIDX
(AUXMPT) ,Y

+

17E8 A5 96
17EA FO 15
1JEC A4 93
17EL B1 94
17F0 C8
17F1 84 93
17F6 A0 00
17F8 84 96
1800 60
1801 A5 92
1803 DO 06
1805 A5 91
1807
1806
1813 20 1897
1816 85 97
1818 80 18
181A 20 1862
181D 18
18th A5 97
1820 65 BC
1822
182F 4C 1]E8
1832
183A
1851 20 1EOD

increment the low byte of AUX return unless we’ve entered a new page
unnecessary!
indicate new page
increment page number
return
is the page we’re looking for frozen?
no, see if it is swapped in
save phys. page no.
not fount
the pointers. etc.
indicate that we’re using this page add phys. page number to number of frozen pages
add base of memory
indicate that we have the page and go get the byte
if we are about to load a new logical page into the physical page the PC points to, mark it as a new page
setup to read the page
read the page (die if error)

CLC
LDA AUXPPG
ADC FRZPGS
fix the memory pointers
+L1822: ADD ,FRZMEM÷1,AUXMPT+1
+ M0\I <#$00>,AUXMPT
+ MOV <#$FF>,AUXUPD
.JMP FTAXBA
we need to load the page from disk
+L1832; CMPBN PRGPPG,L183A
+ MOV <#$00>,PRGUPD

r1ERL0GIC interpreter disassemb’y, 5/27/84
1054 A4 97 LOY
+ MOV
+ MOV
185E 98 TVA
185F 4C 181A JMP

MACRO-80 3(i

A U XP PG
AUXLPG,<<(VMTAB1),V>>
AUXLPG+1 ,<<(VMTAB2)
,v>>
L18IA

I n fo corn
2825
2826
2827
2828
2829
2830
2831
2832
2833

PAGE

(

18—Sep—81 PAGE 1—69
copy the new log. page number into the VM table
go fix up the pointers and fetch the byte

Infocom(,,IERLOGIC interpreter disassembly, 5/27/84 MACRO—80 3(.j 18—Sep—81 PAGE 1—70 (
2834
2835 we’ve just started using a new logical page, move it to front of our list
2836 ; this make least recently used pages first candidates to be removed
2837
2838 1862 +MRKPAG: CMPBE MRUPAG,L1891
2839 1866 A6 BE LOX MRUPAG
2840 1868 85 BE STA MRUPAG
2841 186A A8 TAY
2842
+ MOV <(VMTAB3),Y>,ACC
2843 186F BA TXA
2844 1870 91 C4 STA (vMTAB3),v
2845
+ MOV <(VMTAB4),Y>,ACC+l
2846
+ MOV <#$FF>,<<(VMTAB4),Y>>
2847 187A A4 E7 LDV ACC+l
2848
+ MOV ACC,<<(VMTAB3),V>>
2849 1880 BA TXA
2850 1881 A8 TAY
2851
+ MOV MRIJPAG,<<(VMTAB4),V>>
2852 1886 A5 E6 LOA ACC
2853
÷ CMPBE <#$FF>,L1892
2854 188C AB TAY
2855
+ MOV ACC+1,<<(VMTAB4),V>>
2656 1891 60 L1891; RTS
2857 1892 iL1892: MOV ACC+1,LRUPAG
2858 i896 60 RTS
2859
2860
2861 search virtual memory table for logical page
# in ACC
2862
2863 1897 A6 BD FNDPAG LOX SWPPGS
2864 1899 A0 00 LDY #$00
2865 1898 A5 E6 LDA ACC
2866 1890 +L189D CMPBN <(VMTAB1),Y>,L18A9
2867 18A1 A5 E7 LDA ACC-’-l
2868
+ CMPBE <(vMTAB2),v>,LlBBl
2869 18A7 A5 E6 LDA ACC
2870 18A9 C8 L18A9: INY
2671
+ DXBNE L1890
2872 1BAO AS BE LDA LRUPAG
2873 18AF 38 SEC
2874 18B0 60 RTS
2875 1881 98 L1851: TYA
2876 1882 18 CLC
2877 1883 60 RTS
2878
2879 PAGE

( 4
Infocom INTERLOGIC interpreter disassembly. 5/27/84 MACRO—80 3.43 18—Sep—81 PAGE 1-71
2880
2881
; print string at AUX
2882
2883 18B4 +PRNTST: MOV <#$00>.<PRMMOD,PNYBCN>
2884
+ MOV <#$FF>,TMPMOD
2885 188E 20 1989 DONEXT: JSR GETNYB
2886 ÷ RTSCS
2887 18C4 85 ES STA ACO
2888 18C6 FO 48 SEQ DOSPAC
2889
+ CMPBL <#$04>,DOSBWO
2890
+ CMPBL <#$06>,NEWMOO
2891 1800 20 19A0 JSR TSTMOD
2892
+ TSTASN L18E2
2893 1807 A9 55 LDA #$5B
2894 1809 +LISD9: ADD ,ACD
2895 180C 20 1B3F L18DC: JSR BFCHAR
2896 18DF 4C 188E JMP DONEXT
2897 18E2 +L18E2: CMPBN <#$01>,DOSPCL
2898 18E6 A9 3B LDA #$36
2899 18E5 4C 18D9 JMP L1809
2900
2901 1BES +DOSPCL; SUB ACD,<#$07>
2902 18F0 90 OA 8CC DOASCI
2903 18F2 FO 21 SEQ DOCRLF
2904 18F4 AS TAY
2905 18F5 88 DEY
2906 18F6 89 1995 LDA SPCLCH,V
2907 18F9 4C I8DC JMP L180C
2908
2909 18FC 20 1989 DOASCI; JSR GETNYB
2910 REPT 5
2911
+ ASL A
2912
+ ENDM
2913 1904 48 PHA
2914 1905 20 1989 JSR GETNVB
2915 1908 85 ES STA ACD
2916 190A 68 PLA
2917 1908 05 ES ORA ACD
2918 1900 4C ISDC JMP L18DC
2919
2920 PAGE

Infocom 1,ERL0GIC interpreter disassembly. 5/27/84 MACRO—80 3._ 18—Sep—81 PAGE 1-72
2921
2922 1910 A9 20 DOSPAC: LDA
2923 1912 4C 18DC JMP L18DC
2924
2925 1915 A9 00 DOCRLF: LDA #CRCHAR
2926 1917 20 183F JSR BFCHAR
2927 191A A9 GA LDA #LFCHAR
2928 191C 4C I8DC JMP L18DC
2929
2930 191F +NEWMOD: SUB
2931 1922 AB TAY
2932 1923 20 19A0 JSR TSTMOD
2933 1926 00 05 BNE L192D
2934 1928 84 CE STY TMPMOD
2935 192A 4C 186E JMP DONEXT
2936 1920 84 CF L192D: STY PRMMOD
2937
+ CMPBE PRMMOO,L1937
2938 1933 AD 00 LDY #$00
2939 1935 84 CF STY PRMMOD
2940 1937 4C 188E L1937; JMP DONEXT
2941
2942 PAGE

Infocom I(IERLOGIC interpreter isassemb1y, 5/27184 MACRO-SO 3. 18—Sep—81 PAGE 1—73 (
2943
2944 193A 00 L193A: DO $00
2945
2946 1935 +DQSSWD DECA
2947
+ REPT 6
2946
+ ASL A
2949
+ ENOM
2950 1944 80 193A STA L193A
2951 1947 20 1909 JSR GETNYB
2952 194A OA ASL A
2953 194B 69 01 ADC #$O1
2954 1940 6D 193A ADC L193A
2955 1950 AS TAY
2956 ÷ MOV <(SGWDPT),Y>,ACC
2957 1955 88 0EV
2958
+ MOV <(SSWDPT),Y>,ACC-4-1
2959
+ PSI-I <PRMMOD,PNVBCN>
2960 ÷ DPSH PNYBBF
2961
+ PSH AUXIDX
2962
+ DPSH AUXLPG
2963 196F 20 17C9 JSR SETAXW
2964 1972 20 1854 JSR PRNTST
2965
1- DPLJL AUXLPG
2966
+ PUL AUXIDX
2967
+ MOV <#$OO>,AUXUPO
2968
+ DPUL PNVBBF
2969
+ PUL <PNYBCN,PRMMOD>
2970
+ MOV <#$FF>,TMPMOD
2971 1992 4C 18BE JMP DONEXT
2972
2973 1995 30 31 32 SPCLCH: DO ‘O123456789,’? #‘‘“I\:O’
2974 1998 33 34 35

2975 1995 36 37 38
2976 199E 39 2E 2C
2977 19A1 21 3F 5F
2978 19A4 23 27 22
2979
19A7 2F SC 2D
2980 I9AA 3A 28 29
2961
2982 19AD A5 CE TSTMOD: LDA TMPMOD
2983 19AF 10 03 BPL L1954
2984 19B1 A5 CF LDA PRMMOD
2985 1953 60 RTS
2986 1954 AO EF L1954: LDV #$FF
2987 1906 84 CE STY TMPMOD
2988 19B8 60 RTS
2989
2990 PAGE

Infocom (ERLOGIC interpreter disassembly. 5/27/84 MACRO—BO 31 18—Sep—81 PAGE 1—74 (
2991
2992 1989 A5 DO GETNYB; LDA PNYBCN
2993 19B8 10 02 BPL L19BF
2994 1980 38 SEC
2995 198E 60 RTS
2996 198F DO 16 LI9BF: BNE L19D6
2997 19C1 E6 DO INC PNVBCN
2998 19C3 20 17DB JSR FTAXWD
2999
+ OMOV ACC,PNY8BF
3000 19CE AS D2 LDA PNYBBF+1
3001 1900 4A LSR A
3002 1901 4A LSR A
3003 1902 29 IF AND *$1F
3004 1904 18 CLC
3005 19D5 60 RTS
3006 1906 +L19D6: DECABN L19F3
3007
+ MOV <#$02>,YNVBCN
3008 190F A5 02 LDA PNYBBF+1
3009 19E1 4A LSR A
3010 19E2 A5 Dl LDA PNVB8F
3011 19E4 6A ROR A
3012 19E5 A8 TAY
3013 19E6 A5 02 LDA PNVBBF+1
3014 19E8 4A LSR A
3015 i9E9 4A LSR A
3016 19EA 98 TVA
3017 19EB 6A ROR A
3018 19EC 4A LSR A
3019 19E0 4A LSR A
3020 19EE 4A LSR A
3021 19EF 29 iF AND #$1F
3022 19F1 18 CLC
3023 19F2 60 RTS
3024 19F3 +L19F3: MOV <#$0O>,PNVBCN
3025 19F7 A5 02 LDA PNYB8F+1
3026 19F9 10 04 BPL L19FF
3027
+ MOd <#$FF,PNVBCN
3028 19FF A5 01 L19FF; LDA PNVBBF
3029 lAOl 29 iF AND #$1F
3030 1AO3 lB CLC
3031 1A04 60 RTS
3032
3033 PAGE

( ( (
Infocorn INTERLOGIC interpreter disassembly. 5/27/84 MACRO—80 343 18—Sep—81 PAGE 1—75
3034
3035
; crunch word to compare with vocab table entries
3036
3037 1A05 A2 00 CRNWRD: LOX #$00
3038 lAO] AO 06 LOY #$06
3039 1A09 +L1A09; MOV <#$05><<PKW0RDX>>
3040 1400 E8 INX
3041
+ DVBNE LIAO9
3042
+ MOV <#$06>,ACD+1
3043
+ MOV <4$00>,<ACB,ACC>
3044 1A1B A6 E6 L1A1B LOX ACC
3045 lAiD E6 E6 INC ACC
3046
+ MOV <INWORDX>,ACD
3047 1423 DO 05 SNE L1A2A
3048 1A25 A9 05 LDA #$05
3049 1A27 4C 1A52 JMP L1A52
3050 142A A5 ES L1A2A: LDA ACD
3051 1A2C 20 1448 JSR TSTCHR
3052
1- TSTABE L1A43
3053
+ ADD
3054 1A36 A6 E4 LDX ACB
3055 1A38 95 DA STA PkWORD,X
3056 1A3A E6 E4 INC ACB
3057 ÷ DECJE ACD+1,L1ACA
3058 1A43 AS ES L1A43: LOA ACO
3059 1445 20 1AAB JSR TSTCHR
3060
+ DECABP L1A62
3061
+ SUB ACD,<#$56>
3062 1A52 A6 E4 L1A52: LOX ACB
3063 1454 95 DA STA PKWORD,X
3064 1456 E6 E4 INC ACB
3065
+ DECJN ACD+1,L1A1B
3066 1A5F 4C 1ACA JMP L1ACA
3067 1A62 DO OS L1A62: BNE L1A6C
3068
+ SUB ACD,<#$3B>
3069 1A69 4C 1452 JMP L1A52
3070 1A6C 45 ES L1A6C LDA ACO
3071 1A6E 20 1499 JSR L1A99
3072 1A71 DO DF BNE L1A52
3073 1A73 A9 06 LDA #$O6
3074 1475 A6 E4 LOX ACB
3075 1A]] 95 DA STA PKWORD,X
3076 1479 E6 E4 INC ACS
3077
1- DECBE ACD+i,L1ACA
3078 1A7F A5 E8 LDA ACD
3079
+ REPT 5
3080
+ LSR A
3081
+ ENDM
3082 1486 29 03 AND #$03
3083 1488 A6 E4 LOX ACS
3084 1A8A 95 DA STA PKWORD,X
3085 1A8C E6 E4 INC ACS
3086
0 DECSE ACD+1,L1ACA
3087 1492 AS ES LDA ACO
3088 1A94 29 iF AND #$1F

Infocom NIERLOGIC interpreter disassembly. 5/27/84 MACRO—SO 3qj 18—Sep—81 PAGE 1—76
3089 1A96 4C 1A52 JMP L1A52
3090
3091 1A99 A2 24 L1A99: LOX *$24
3092 1A98 +L1A9B: CMPBE <SPCLCH,X>,L1AA6
3093
+ DXBPL L1A9B
3094 1AA3 A0 00 LOY #$00
3095 1AA5 60 RTS
3096 1AA6 8A L1AA6; TXA
3097
+ ADD
3098 1AAA 60 RTS
3099
3100 1AA6 +TSTCHR; CMPBL <#a’>,L1A66
3101
+ CMPBG <#z’+1>,L1AB6
3102 1A83 A9 00 LDA #$0O
3103 1A55 60 RTS
3104 1A66 +L1AB6; CMPBL <#‘A’>,LlACl
3105
+ CMPBG <#Z’+1>,L1AC1
3106 1ABE A9 01 LDA #$01
3107 1ACO 60 RTS
3108 1AC1 +L1AC1: TSTABE L14C9
3109 1AC5 30 02 BMI L1AC9
3110 1AC7 A9 02 LDA #$02
3111 1AC9 60 LIAC9: RTS
3112
3113 IACA A5 06 LIACA: LDA PKWORD+1
3114
+ REPT 4
3115
÷ ASL A
3116
+ ENDM
3117 1ADO 26 DA ROL PKWORD
3118 1A02 OA ASL A
3119 1AD3 26 DA ROL PKWORO
3120 1AD5 A6 DA LOX PKWORD
3121 IAD7 86 DB STX PKWORD+1
3122 1AD9 05 DC ORA PKWORDI-2
3123 1ADB 85 IDA STA PKWORD
3124 1ADD AS DE LDA LDE
3125 ÷ REPT 4
3126
1- ASL A
3127
+ ENDM
3128 1AE3 26 00 ROL PKWORD+3
3129 1AE5 OA ASL A
3130 1AE6 26
DID ROL PKWORD+3
3131 1AEB A6 DO LOX PKWORD+3
3132 1AEA 86 00 STX PKWORD+3
3133 1AEC 05 OF ORA LOF
3134 1AEE 85 DC STA PKWORD+2
3135 1AFO A5 DO LOA PKWORD+3
3136 IAF2 09 80 ORA #$80
3137 1AF4 85 DO STA PKWORO+3
3138 1AF6 60 RTS
3 139
3140 PAGE

Infocom ERLOGIC interpreter disassembly, 5/27/84 MACRO—80 3. ...‘ 18—Sep—Si PAGE 1—77
3141
3142 ; mit output routine and screen window
3 143
3144 1AF7 +INITSC; MOV <#$C1>,PRCSWL+1
3145
3146 1FF RNGD8G if RNG debug, save 2 lines at top
3147
+ MOV <#$O1>,WNDTOP
3148 ENDIF
3 149
3150
+ MOV <#$00>,<WNDLFT,L18AO>
3151
+ MOV <#$28>,WNDWDT
3152
+ MOV <#$18>,WNDSOT
3153 + MOV <#$8E>,PROMPT
3154 + MOV <#$FF>,INVFLG
3155
3156 ; clear the screen
3157
3158 1816 20 FC58 CLRSCR: JSR HOME
3159 + MOV WNDTOP,LINCNT
3160
iBID 60 RTS
3161
3162
3163 find the highest usable page of memory
3164
3i5 IB1E
+FNONiEM: OMOVI2 LSTFLC+$O100,ACC
3166 1826 A0 00 LDY #$OO
3167 1828 C6 E7 L1B28 DEC ACC+1
3168 1B2A 51 E6 LDA (ACC),V
3169 + CMPBN <(ACC),Y>,L1B28
3110 1830 49 FF EOR #$FF
3171 1832 91 E6 STA (ACC),V
3172 + CMPBN <(ACC),v>,L1828
3173 1838 49 FF EOR #$FF
3174 1B3A 91 E6 STA (ACC),Y
3175 183C A5 E7 LDA ACC+1
3176 183E 60 RTS
3171
3178 PAGE

Infocom (,ERLOGIC interpreter disassembly, 5/27/84 MACRO—SO 3( 18—Sep—81 PAGE 1—78 (.
get buffer pointer
if char is a CR, flush buffer
if it is a control character, discard it if it is in 64 char subset, buffer it as is
if inverse, convert LC to UC
yes, convert to upper case
set high bit for Apple
store it in buffer
if buffer is full, print some of it
increment pointer
save pointer
return
load a space for comparison
if this is one, we’ve got it
no, loop if more characters in buffer
no space. use last character
save pointer
print line up to this point
get pointer to next char
if it is past the last char, return
get the character
get the pointer to the new bc
store the character there
and increment the pointer
unnecessary!
try for another one

buffer a character for output
BFCHAR: LOX CHRPTR
CMPJE <#CRCHAR>
, PRNTBF
CMPSL
<#‘ ‘>,L1661
CMPBL <#$60>,L1B57
IFT LC4O
BIT IN\IFLG
SMI L1B57
ENDIF

+
+
+
÷
+

153F A6 EB
1850 24 32
1552 30 03
1557 09 80
1559 90 0200
1560 E8
1661 86 ES
1663 60
1664 A9 AU
1866

Li 557:

SUB ORA
STA
CPXSG

#$80
BUFFER, X
WNDWDT ,Li 664

31 79
3180
3181
3182
3183
3184
3185
3186
3187
3188
3 189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3201
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232

1 B6L
1570
1572
1874

I NX
L186l: STX CHRPTR
RTS
find last space in buffer, if any
L1564: LDA
+L1866: CMPBE <BUFFER,X>,L1670
+ DXBNE L1B66
LDX WNDWDT
L1570: STX CHRPT2
STX CHRPTR
JSR PRNTBF

A6 21
86 EC
86 EB
20 1C1O

1677 E6 EC
1679 A6 EC

1882
1685
1687
1 58A
1 SSC
1 B8E

move rest of
LiST?: INC LOX
CPXRGT
L DA
LOX
STA
INC
LOX
JMP

BO 0200
A6 ES
90 0200
E6 EB
A6 EC 4C 1077

line back to beginning of buffer
CHRPT2
CHRPT2
WNDWDT
BUFF ER,X
CI-IRPTR
BUFFER,X
CHRPTR
CHRPT2
L1577

PAGE

Infocorn ERLOGIC interpreter disassembly, 5/27/84 MACRO—SO 3. 18—Sep—81 PAGE 1—79
3233
3234 output the buffer to the screen, and to the printer if enabled
3235
3236 1691 AO 11 OUT8UF: LDY #HDRFLG+1
3237 1093 81 BA LDA (FRZMEM),v
3238 1895 29 01 AND #$O1
3239
± JSRNE PRTSUF
3240 189C 20 iDES JSR DSPBUF
3241 109F 60 RTS
3242
3243
3244
; output the buffer to the printer
3245
3246 WAG 00 L1BAO: DO $00
; printer initialization flag
3247
3248 IBAI +PRTBUF: DPSH CSWL save our output vector
3249
+ PSH CURSRH and cursor column
3250
3251
+ DMOV PRCSWL,CSWL ; 9et vector for printer
3252
3253 1682 A2 00 LOX #$O0 start with position 0 in buffer
3254
3255 1654 AD 18A0 LDA L1BAO is printer initialized?
3256 150? DO 1C ONE L1605 yes, go print it
325? 1869 EE WAG INC L1BAO no, but now it
will be
3258
3259 188C A9 89 LDA #$89 output AI8ON
3260 lOBE 20 EDED JSR COOT
; (this sets printer width to 80
3261 18C1 A9 91 LDA #$91
; characters, thereby disabling
3262 18C3 80 0779 STA PRTWDT
; screen echo (we hope))
3263 lBC6 A9 68 LDA #$68
3264 16C8 20 FOED JSR COOT
3265 16C6 A9 80 LDA floG
3266 18CD 20 FDED JSR COOT
3267 1ODO A9 CE LDA #$CE
3268 1502 20 FDED JSR COOT
3269
3270 1805 ±L1805: CPXBE CHRPTR,L18E3 are we done yet?
3271
3272 1809 80 0200 LDA B(JFFER,X
; no, get character
3273 180C 20 FOED JSR COOT and output it
3274
3275 lODE ES INX increment pointer
3276 1OEG 4C 1805 JMP L1605 and go for another one
32??
3278 16E3 +L1BE3: DMOV CSWL,PRCSWL save print vector again (may have changed)
3279
3280
+ PUL CURSRH restore cursor column
3281
+ DPUL CSWL and display vector
3282 18F4 60 RTS and return
3283
3284
3285
; output the buffer to the display
3286
328? i8ES A2 00 DSP8UF: LOX flOG start with position 0 in buffer

Infocom cERLQGIC interpreter disassembly, 5/27184 MACRO80 3. 18—Sep—Si PAGE 1—80
3288
3289
WE] +L18F7: CPXSE CHRPTR.L1C05 are we done yet?
3290
3291 1SFB SD 0200 LDA SUFEER,X get the character
3292 WEE 20 FDEO JSR COUT1 and output it
3293
3294 1CO1 ES INX increment pointer
3295 1C02 4C 1SF? JMP L1SF?
; and go for another one
3296
3297 1COS A2 00 L1C05: LOX #$00 reset pointer to beginning
3298 lCD? 86 ES STX CHRPTR
3299 1C09 60 RTS and return
3300
3301 PAGE

Infocom ,,ERLOGIC interpreter disassembly, 5/27/84 MACRO8Q 18—Sep—81 PAGE 1—81
3302
3303 1COA 58 40 4F MOREMS: DB ‘[MORE]’
3304 1COD 52 45 5D
3305 0006 MRMSLN EQU *—MOREMS
3306
3307 1C1O E6 ED PRNTBF INC LINCNT
3308 1C12 A5 ED LDA LINCNT
3309
+ CMPBL wNDBOT,L1C4O
3310
+ DMOVI MOREMS,ACC
3311 1C20 A2 06 LOX #MRMSLN
3312
+ MOV <#$3F>.INVFLG
3313 1C26 20 1057 JSR SHWMSG
3314
+ MOV <#$FF>,IN’JFLG
3315 1C2D 20 FDOC JSR RDKEY
3316
+ SUB CURSRH,<#$06>,CURSRH
3317 1C37 20 FC9C JSR CLREOL
3318
+ MOV WNDTOP,LINCNT
3319 1C3E E6 ED INC LINCNT
3320 1C40 +L1C49: PSH CIIRPTR
3321 1C43 20 1891 JSR OUTBUF
3322 1C46 68 PLA
3323
+ CMPSE WNDWDT,L1C50
3324 1C48 A9 80 LDA #$80
3325 1C40 20 FDFO JSR COUT1
3326 1C50 AO ii LIC5O: LDV H0RFLG1
3327
- 1C52 61 BA LDA (FRZMEM),V
3328 1C54 29 01 AND #$01
3329 1C56 FO
21 SEQ L1C79
3330 DPSH CSWL
3331
+ DMOV PRCSWL,CSWL
3332 1C66 A9 80 LDA #$8D
3333 1C68 20 FDED JSR COUT
3334 DMOV CSWL,PRCSWL
3335
-I- DPUL CSWL
3336 1C79 A2 00 L1C79: LOX #$OO
3337 1C78 4C 1661 JMP L1661
3338
3339 PAGE

Infocom ERLOGIC interpreter disassembly, 5/27/84 MACRO—80 i 18—Sep—81 PAGE 1-82
3340
3341 1C7E 53 43 4F SCORMS: 08 ‘SCORE:’
3342 lC8l 52 46 3A
3343 0006 SCMSLN EQU *—SCORMS
3344
3345 1C84 54 49 4D TIMEMS: 06 ‘TIME:’
3346 1C87 45 3A
3347 0005 TMMSLN EQU *—TIMEMS
3348
3349 1C89 00 L1C89: DB $00
3350
3351 1C8A 20 1691 OPPRST: JSR OUTBUF
; print what’s in the buffer
3352
+ PSH <CURSRH,CURSRV> save the cursor position
3353
+ MOV <#$0D>.<CURSRH,CURSRV> ; home the cursor
3354 1C99 20 FC22 JSR VTAB
3355 MDV <#$3F>,INVFLG set inverse mode
3356
3357 1CAO A9 10 LDA #$10 get gloval var 0
3358 1CA2 20 OAC2 JSR GTVRA1
3359 1CA5 A5 E6 LIJA ACC is it save as last time?
3360
+ CMPBE L1C89,L1CB8 yes, don’t print it
3361 1CAC 8D 1C89 STA L1C89 no, save for next time’s compare
3362 1CAF 20 ODE4 JSR LODE4 output thing name
3363 1C82 20 18F5 JSR DSPBUF send it to display
3364 1C65 20 FC9C JSR CLREOL c1ear rest of line
3365
3366 1C68 +L1CB8: MDV <#$19>,CURSRH tab over
3367 1CBC A5 F3 LOA STLTYP score or time?
3368 1CBE DC lB BNE L1CDB
; time
3369
+ DMOVI SCORMS.ACC score, print SCORE:”
3370 ICC8 A2 06 LOX #SCMSLN
3371 1CCA 20 1057 JSR SHWMSG
3372 ICCD E6 24 INC CURSRH one space
3373 1CCF A9 11 LDA $1l get global var 1 (score)
3374 ICDI 20 OAC2 JSR GTVRA1
3375 1CD4 20 14F5 JSR PRNTNM output it as decimal number
3376 1C07 A9 2F LDA
#‘/‘ separator
3377 1CD9 DO 2A SNE L1005 always taken
3378
3379 1COB +L1CDB: DMOVI TIMEMS.ACC print “TIME:’
3380 1CE3 A2 05 LOX #TMMSLN
3381 1CE5 20 1057 JSR SHWMSG
3382 ICE8 E6 24 INC CURSRH
; one space
3383 1CEA A9 11 LDA #$11 get global var 1 (time)
3384 1CEC 20 OAC2 JSR GTVRA1
3385 1CEF AS E6 LDA ACC is it zero?
3386 ICF1 DO 02 BNE L1CF5
3387 1CF3 A9 18 LDA #$18
; yes, make it 24:00
3388 1CF5 +L1CF5: CMPBM <#$OC>,Ll000
; is it A.M. or P.M.?
3389 1CF9 FO 05 BEQ L1DOO
3390 1CFB 38 SEC
; P.M., convert to 1—12 range
3391 1CFC E9 CC SBC #$OC by
subtracting 12
3392 1CFE 85 E6 STA ACC
3393 1000 20 14F5 L1000: JSR PRNTNM
; print out hours
3394 1003 A9 3A LDA

Infocwn ERLOGIC interpreter disassemblY, 5/27/84 MACRO—80 3. 18—Sep—81 PAGE 1—83
3395 1D05 20 163F L1DO5: JSR BFCHAR ; print the seperator
3396 1008 A9 12 LDA
#$12 ; get global var 2 (turns/minutes)
3397 100A 20 OAC2 JSR GTVRA1
3398 IDOD A5 F3 LOA STLTVP
; time?
3399 lOGE FO 2F SEQ L1D4O ; no. go print turns
3400 1011 A5
E6 LDA ACC ; yes, are minutes < 10?
3401
+ CMPBG <#$OA>,L1D1C ; no
3402 1017 A9
50 LOA #$60 yes, print a space (?)
3403 1019 20 IB3F JSR BFCHAR
3404 101C 20 14F5 LID1C: JSR PRNTNM
; print the minutes
3405 1DIF A9 A0 L0A #$A0 print a space
3406 1021 20 163F JSR BFCHAR
3407 1024 A9 11 LDA #$11
; get global var I (hours)
3408 1026 20 OAC2 JSR GTVRA1
3409 1D29 A5 E6 LDA ACC is
it A.M. or P.M.?
3410
+ CMPSP <#$QC>,L1033 P.M.
3411
1D2F A9 Cl LDA #‘A’ ; A.M.
3412 1031 00 02 SNE L1D35
3413
1033 A9 DO L1D33: LOA
3414 1035 20 183F L1035: JSR BFCHAR print the A’ or P”
3415 1038 A9 CD LDA I’M”
3416 1D3A 20 1B3F JSR BFCHAR
; print the ‘M’
3417 1D3D 4C 1043 JMP L1043
3418
3419 1040 20 14F5 L1D4O: JSR PRNTNM ; print the score
3420 1043 20 1BF5 L1D43: JSR 0SP8UF display the buffer
3421 1046 20 FC9C JSR CLREOL clear out the line
3422
+ MOV <#$FF>,INVFLG ; back to normal video mode
3423
+ PUL <CURSRV,CURSRH> ; and the old cursor bc
3424 1053 20 FC22 JSR VTAS
3425 1056 60 RTS return to caller
3426
3427 1057
AD 00 SHWMSG: LDV #$00
3428 1059
81 E6 L1D59: LDA (ACC),V
3429
1056 09 80 ORA #$80
3430 1050 20 FDFO JSR COUT1
3431 1060 C8 INY
3432 + DXBNE L1D59
3433 1064 60 RTS
3434
3435 PAGE

Infocom(NIERLOGIC interpreter disassembly, 5/27/84 MACRO—80 3d 18—Sep—81 PAGE 1—84
3436
3437 1065 20 1891 GETLIN: JSR OUTBUF
3438
+ MOV WNDTOP,LINCNT
3439 106C 20 FD6F JSR GETLN1
3440 1D6F E6 ED INC LINCNT
3441
+ MDV <#$8D>,<<BUFFER,X>>
3442 1076 EB INX
3443 1077, 8A TXA
3444 1078 48 PHA
3445 1D79 AD 11 LDV #HDRFLG+1
3446 1D7B Bi BA LDA (FRZMEM).V
3447 107D 29 01 AND #$01
3448 1D7F FO DA BEQ LID8B
3449 1081 BA TXA
3450 1082 85 EB STA CHRPTR
3451 1084 20 1BA1 JSR PRTBUF
3452
+ MDV <#$00>,CHRPTR
3453 1088 68 L1D8B: PLA
3454 1DSC AD 00 LDV #$0Q
3455
+ CMPBL <(ARG1),V>,L1D94
3456 1092 81 82 LDA (ARG1),V
3457 1094 48 L1D94: PHA
3458 1D95 FO IA BEQ L1D6I
3459 1097 AA TAX
3460 1098 89 0200 L1D98: LDA BUFFER,Y
3461 1D9B 29 7F AND #$7F
3462
+ CMPBL <#‘A’>,L1DA7
3463
+ CMPBG <#‘Z’+1>,L1DA7
3464 1DA5 09 20 ORA #$20
3465 1047 C8 L1DA7: INY
3466 1DAB 91 82 STA (ARG1LV
3467
+ CMPBE <#CRCHAR>,L1DB1
3468
+ DXBNE L1D98
3469 1061 68 L1DB1: PLA
3470 1DB2 60 RTS
3471
3472 PAGE

Infoconi ,iERL0GIC interpreter disassembly, 5/21184 MACRO—SO 3J 18—Sep—81 PAGE 1—85
3473
3474
3415 1D83 01 lOS; OS $01 105 type
3476 1D54 60 IOBSLT; DB $60
; Slot * 16
3477 1085 01 IOBDRV; 08 $01 Drive
3478 1DB6 00 D8 $00 Volume
3479 1DB7 00 IOBTRK; D8 $00 Track
3480 1D58 00 IOBSCT: 08 $00
; Sector
3481 1D89 10C4 OW DCT
; Device Characteristics Table
3482 1088 0000 IOBSUF: OW $0000
; I/O buffer
3483 1080 0000 DW $0000
; unused
3484 10SF 00 IOSCMD: DB $00 Command
3485 1DCO 00 08 $00 Status
3486 1DC1 00 08 $00
; Actual volume
3487 10C2 60 05 $60
; Previous slot 16
3488 10C3 01 08 $01
; Previous drive
3489
3490 1DC4 00 01 SF DCT: OB $O0,$01,$EF,$D8
3491 1DC7 08
3492
3493 1DC8 80 1DSF DISKIO: STA IOSCMD
3494
+ DMOV ACC,IOBBUF
3495
1- MOV #$03,IOBTRK
3496 100A A5 54 LDA ACB
3491 1DDC A6 E5 LOX ACS+1
3498 lODE 38 SEC
3499 100F E5 7F L100F: SBC SECPTK
3500 1DE1 60 04 BCS LiDS?
3501
+ OXSMI L1DED
3502 1056 38 SEC
3503 1057 EE 1087 LIDE7: INC IOBTRK
3504 iDEA 4C 1DDF .JMP L100F
3505 1OED +L1DED; ADD ,SECPTK,IOSSCT
3506 10F3 A9 ID LDA #>IOB
3507 IDF5 AD B3 LDV #<I0B
3508 iDE? 4C 2900 JMP RWTS
3509
3510 10FA +DRDBUF: DMOVI BUFFER,ACC
3511 1502 1-DRDNXT: DINC ACB
3512 lEO8 A9 01 DROBLK: LDA #$0l
3513 1EOA 4C 10C8 JMP DISKIO
3514
3515 1EOD 20 1508 DRDSKF: JSR DRDSLK
3516 ÷ JSRCS FATAL
3517 1515 60 RTS
3518
3519 1E16 +0WRBUF; OMOVI BUFFER,ACC
3520 1EIE +DWRNXT: DINC ACS
3521 1E24 A9 02 LDA #$02
3522 1E26 4C 1OCS JMP DISKIO
3523
3524 PAGE

Infocom(,,,ERLOGIC interpreter disassembly, 5/27/84 MACRO—80 18—Sep—81 PAOE 1—86
3525
3526
3527 1E29 86 E8 OUTMSG: STX ACD
3528 1E2B A0 00 LOY #$00
3529 1E20 84 E9 STY ACD+1
3530 IE2F A4 E9 L1E2F: LDY ACD+1
3531 1E31 51 E6 LDA (ACc),Y
3532 1E33 20 183F JSR BFCHAR
3533 1E36 E6 E9 INC ACD+1
3534
+ DECBN ACD,L1E2F
3535 1E3C 60 RTS
3536
3537 1E3D 50 4C 45 L1E3D: 06 ‘PLEASE INSERT SAVE DISKETTE,’
3538 1E40 41 53 45
3539 1E43 20 49 4E
3540 1E46 53 45 52
3541 1E49 54 20 53
3542 1E4C 41 56 45
3543 1E4F 20 44 49
3544 1E52 53 46 45
3545 1E55 54 54 45
3546 1E58 2C
3547
3548 1E59 00 L1E59: D8 $00
3549
3550 1E5A 53 4C 4F L1E5A: DB ‘SLOT (17):’
3551 IE5D 54 20 20
3552 1E60 20 20 20
3553 1E63 28 31 20
3554 1E66 37 29 3A
3555 1E69 36 31 38 L1E69: 08 ‘618’
3556
3557 1E6C 44 52 49 L1E6C: UB ‘DRIVE (1-2)’
3558 1E6F 56 45 20
3559 1E72 20 20 20
3560 1E75 28 31 20
3561 1E78 32 29 3A
3562 1E78 32 31 33 L1E7B: 08 ‘213’
3563
3564 1E7E 50 4F 53 L1E7Ez 06 ‘POSITION (0-7):’
3565 1E81 49 54 49
3566 1E84 4F 4E 20
3567 1E87 28 30 2D
3568 1E8A 37 29 3A
3569 1E8D 30 30 38 L1E8D: 08 ‘008’
3570
3571 1E90 44 45 46 L1E9O: 08 ‘DEFAULT
3572 1E93 41 55 4C
3573 1E96 54 20 3D
3574 1E99 20
3575
3516 1E9A 2D 2D 20
- ,L1E9A: 08 PRESS ‘‘RETURN’’ KEY TO BEGIN
3577 IE9D 20 50 52
3578 lEAD 45 53 53
3579 1EA3 20 27 52

Infocom (..RL0GIC interpreter disassembly, 5/21)84 MACRO—80 3(. 18—Sep—SI PAGE 1—81 4
3580 1EA6 45 54 55
3581 1EA9 52 4E 27
3582 IEAC 20 45 45
3583 lEAF 59 20 54
3584 1E62 4F 20 42
3585 lESS 45 47 49
3586 lESS 4E 20 20
3587 lESS 2D 20
3588
3589 PAGE

Infocom RL0GIC interpreter disassembly, 5/27/84 MACRO8O 3.’ 18—Sep—81 PAGE 1—88
3590
3591 1EBD 20 1816 L1E6D: JSR CLRSCR
3592 1ECO 20 1C1O JSR PRNTSF
3593 IEC3 20 1C1O JSR PRNTBF
3594
-I- DMOVI L1E3D,ACC
3595 1ECE A2 1C LDX #$IC
3596 1EDO 20 1E29 JSR OUTMSG
3597 1ED3 20 1C1O JSR PRNTBF
3598
+ M0V <#$24>,L1E59
3599 1EDB 20 1F4C JSR L1F4C
3600 1EDE 80 1E8D STA L1E8D
3601 1EE1 20 1B3F JSR BFCHAR
3602
+ MOV <#$0O>,L1E59
3603 1EE9 20 1F4C JSR L1F4C
3604 1EEC AA TAX
3605 1.EED 29 07 AND
3606
+ REPT 4
3607
+ ASL A
3608
+ ENDM
3609 1EF3 SD 1D84 STA IOBSLT
3610 1EF6 8A TXA
3611 1EF7 8D 1E69 STA L1E69
3612 1EFA 20 IB3F JSR BFCHAR
3613
+ MOV #$12>,L1E59
3614 1F02 20 1F4C JSR L1F4C
3615 1F05 AA TAX
3616 1F06 29 03 AND #$03
361] 1F08 SD 1D85 STA IOBDRV
3618 1F08 BA TXA
3619 1FOC 80 1E7B STA L1E7S
3620 1FOF 20 163F JSR BFCHAR
3621 1F12 20 IC1O L1F12: JSR PRNTSF
3622
+ DMOVI L1E9A,ACC
3623 1F1D A2 23 LDX #$23
3624 1F1F 20 1E29 JSR OUTMSG
3625 1F22 20 1891 JSR OUTBUF
3626 1F25 20 FDOC JSR RDKEV
3627
+ CMPSN <$8D>,L1F12
3628
1- MO’) <#$FF>,<ACB,ACS+1>
3629 1F32 AD 1ESD LDA L1E8D
3630 1F35 29 07 AND
3631 1F37 FO OF SEQ L1F4B
3632 1F39 A8 TAV
3633 1F3A ÷LIF3A: DADDB2 ACB,<#$40>
3634
+ DYSNE L1F3A
3635 1F48 20 1C1O L1F48: JSR PRNTBF
3636 1F48 60 RTS
3637
3638 PAGE

Infocom ERLOGIC interpreter

3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669

1F94 A2
1F96 20
IF9D 20
1FAO 48
1FA5 20
1FA8 68
1FA9 AC
IFBO 69
1F63 29
1FBF 60

01
1057
F OOC

disassembly, 5/27/84

MACRO—80 3. 18—Sep—81

PAGE 1-89

(

1F4C 20 IC1O
1F63 A2 OF
1F65 20 1E29
1F68 20 1891
1F78 A2 OA
1F70 20 1057

+
+
+
+
+
+
+
+

L1F4C: JSR
OMOVI
0A0062
LOX
J SR
JSR
MOV
MOV
OMOVI
LOX
J SR
OMOVI
0A0082
LOX
J SR
MOV
JSR
PHA
MOV
J SR
PLA
LOY
CMPBN
LOA
L1F63 ANO
CMPBL
CMPBG
RT S

PRNT8F
L1ESA.ACC ACC, L1E59 #$OF
OUTMSG OUT8UF <#$19>
, CURSRH <#$3F>, INVFLG Li E90 , ACC #$OA
SHWMSG L1E69,ACC ACC ,Li E59 flO 1
SHWMSG <#$FF>, INVFLG ROKEV
<#$19> ,CURSRH CLREOL
Li E59
,Li F63 Li E69
, V #$7F
<L1E69+1 ,V>,L1F4C <LI E69+2,V>
Li F4C

+

FC9C
1 E59
iE69 iF

+
+

PAGE

Infocom(:,IERLOGIC interpreter disassembly, 5/21/84 MACRO—SQ 3(d 18—Sep—81 PAGE 1—90
3670
3671 1FCO 50 4C 45 L1FCO: DO ‘PLEASE RE—INSERT GAME DISKETTE,’
3672 1FC3 41 53 45
3673 1FC6 20 52 45
3674 1FC9 20 49 4E
3675 1FCC 53 45 52
3676 1FCF 54 20 47
3677 1F02 41 40 45
3678 IFD5 20 44 49
3679 1F08 53 48 45
3680 1F08 54 54 45
3681 IFDE 2C
3682
3683 1FOF 2D 20 20 LIFOF: 08
‘—-— PRESS ‘RETURN’’ KEY TO CONTINUE
3684 IFE2 20 50 52
3685 1FE5 45 53 53
3686 1FE8 20 27 52
3687 1FEB 45 54 55
3688 1FEE 52 4E 27
3689 1FF1 20 48 45
3690 1FF4 59 20 54
3691 1FF] 4F 20 43
3692 IFFA 4F 4E 54
3693 IFFO 49 4E 55
3694 2000 45 20 20
3695 2003 20 20
3696
3697 2005 AD 1084 L2005: LDA IOBSLT
3698
+ CMP8N <#$6O>,L2O4O
3699 200C AD 1085 LOA I080RV
3700
+ CMP8N <#$O1>,L2040
3101 2013 20 1C1O JSR PRNTSF
3702
+ OMOVI L1FCO,ACC
3703 2O1E A2 IF LOX #$1F
3704 2020 20 1E29 JSR OUTMSG
3705 2023 20 1C1O L2023: JSR PRNT8F
3706
+ OMOVI L1FOF,ACC
3707 2O2E A2 26 LOX #$26
3708 2030 20 1E29 JSR OUTMSG
3709 2033 20 1891 JSR OUT8UF
3710 2036 20 FOOC JSR ROKEY
3711
+ CMP8N <#$80>,L2O23
3712 2030 20 ICIO JSR PRNTSF
3713 2040 +L204O: MOV <#$60>,IOBSLT
3714
+ MOV <#$01>,I080RV
3715 2O4A 60 RTS
3716
371] PAGE

Infocom .iERL0GIC interpreter disassembly, 5/27/84 MACRO—80 3.-3 18—Sep—81 PAGE 1—91
3718
3719
3720 2045 20 1ESD OPSVGM: JSR L1EBO ; setup for disk I/O
3721
3722 204E A2 00 LOX #$OO ; copy game release * to buffer
3723 2050 A0 02 LDV #HDRREL
3724
+ MOV <(FRZMEM),y>,<<BUFFER,x>>
3725 2057 EB INX
3726 2058 C8 INY
3727 + MOV <(FRZMEM),Y>,<<BUFFER,X>>
3728 205E E8 INX
3729
3730
+ DMOVI PRGIDX,ACC ; copy PC to buffer
3731 2067 AU 03 LDY *$03
3732 2069 20 2OIJF JSR SVGMMV
3733
3734
+ DMOVI LOCVAR,ACC ; copy local variables to buffer
3735 2074 AU 1E LDY #$1E
3736 2076 20 2ODF JSR SVGMMV
3737
3738 DMOVI STKCNT,ACC copy SP and SP save to buffer
3739 2081 AU 06 LDY #$06
3740 2083 20 200F JSR SVGMMV
3741
3742 2086 20 1E16 JSR DWRSUF write it out
3743 2089 80 4E BCS SVGMFL ; fail if error
3744
3745 2088 A2 00 LDX #$O0 copy lowest 256 bytes of stack
3746
+ DMOVI STKLIM,ACC ; to buffer
3747 2095 AU 00 LDY #$U0
3748 2097 20 20D JSR SVGMMV
3749
3750 2U9A 20 1E16 JSR DWRBUI ; write it out
3751 2090 80 3A BCS SVGMFL fail if error
3752
3753 209F A2 00 LDX #$00 ; copy high 192 bytes of stack
3754
+ DMOVI STKLIM-’-$OIOU,ACC ; to buffer
3755 20A9 AU CO LDV #$CU
3756 20A8 20 200E JSR SVGMMV 3757
3758 2OAE 20 lEl6 JSR OWRSUF ; write it out
3759 2081 80 26 BCS SVGMFL ; fail if error
3760
3761
+ DMOV FRZMEM,ACC figure Out how many pages of
3762 2065 AU GE LDV #HDRIMP impure storage there are to be
3763
+ MOV <(FRZMEM),Y>,ACD written out, and set up for first
3764 2UC1 E6 E8 INC ACO ; one
3765
3766 20C3 20 1EJE L20C3: JSR DWRNXT write one page of impure storage
3767 20C6
so 11 BCS SVGMFL ; fail if error
3768 20C8 E6 E7 INC ACC+l increment buffer address
3769 DECBN ACD,L20C3 ; decrement page Count, loop if more
3770
3771 2OCE 20 lElE JSR DWRNXT write final page
3772 2001 50 06 BCS SVGMFL ; fail if error

(. ( (
Infocorn
ERLOGIC interpreter disassembly, 5/27/84 MACRO8O 3.-ri 18—Sep—81 PAGE 1—92
3773
3774 20D3 20 2005 JSR L2005
; make sure we have game disk
3775 2006 4C 0B84 JMP PREDTR
; return true (no error)
3776
3777 2Q09 20 2005 SVGMFL: JSR L2005 make sure we have game disk
3778 200C 4C 088D JMP PREDFL return false (error)
3779
3780
3781 200F 88 SVGMMV: 0EV copy memory into buffer to write
3782
+ MOV <(ACC),Y>,<<8UFFER,X>>
3783 20E5 ES INX
3784
1- CPVBN <#00>,SVGMMV ; if more, loop
3785 20EA 60 RTS no, return
3786
3787 PAGE

Infocom ERLOGIC interpreter disassembly, 5/27/84 MACRO—80 3. .. 18—Sep—81 PAGE 1—93
3788
3789
3790 2OEB 20 1EBO OPRSGM: JSR L1EBO setup for disk I/O
3791
3792 2OEE 20 1DFA JSR DROBUF ; read in a bufferful
3793 + JCS RSGMFL ; fail if error
3794
3795 20F6 A2 00 LOX #$00 check release of game, fail if wrong
3796 20F8 AG 02 LOY #HDRREL
3797 2OFA B1 BA LDA (FRZMEM),V
3798
+ CMPBN <SUFFER,X>,L2IOA
3799 2101 ES INX
3800 2102 CS INY
3801 2103 51 BA LDA (FRZMEM),Y
3802
+ CMPBE <BUFFER,X>,L2l00
3803 210A 4C 218E L2IDA: JMP RSGMFL
3804
3805 2100 AD 11 L2100: LDV #HDRFLG+1 preserve SCRIPT flag
3806
+ MOV <(FRZMEM),V>,MDFLAG
3807
3808 2113 ES INX ; restore PC
3809
+ DMOVI PRGIDX,ACC
3810 211C AD 03 LDV #$03
3811 211E 20 2194 JSR RSGMMV
3812
+ M0V <#$00>,PRGUPD
3813
3814
+ OMOVI LOCVAR,ACC ; restore local variables
3815 2120 AG 1E LOY #$1E
3816 212F 20 2194 JSR RSGMMV
3817
3818 ÷ DMOVI STKCNT,ACC ; restore SP and SP save
3819 2l3A AG 06 LDY #$06
3820 213C 20 2194 JSR RSGMMV
3821
3822 213F 20 IDFA JSR DRDBUF read a bufferful
3823 2142 80 4A BCS RSGMFL ; fail if error
3824
3825 2144 A2 00 LOX #$00 ; restore first 256 bytes of stack
3826 DMOVI STKLIM,ACC
3827 214E AG 00 LOY #$00
3828 2150 20 2194 JSR RSGMMV
3829
3830 2153 20 1DFA JSR DRDBUF ; read a bufferful
3831 2156 80 36 BCS RSGMFL ; fail if error
3832
3833 2158 A2 00 LOX #$00 restore last 192 bytes of stack
3834
+ OMOVI STKLIM+$0100,ACC
3835 2162 AG CO LOY #$C0
3836 2164 20 2194 JSR RSGMMV
3837
3838
+ DMOV FRZMEM,ACC figure Out how many pages of
3839 2l6F AG GE LDV #HORIMP impure storage there are to be
3840
+ MOV <(FRZMEM),V>,ACD ; read in, and Set up to read first
3841 2175 E6 ES INC ACD ; one
3842

Infocom ..ERLOGIC interpreter disassembly, 5/27/84 MACRO8Q 3. 18—Sep—81 PAGE 1—94
3843 2177 20 1E02 L2177: JSR DRDNXT
; read in next page of impure storage
3844 217A 80 12 BCS RSGMFL
; fail if error
3845 217C E6 E7 INC ACC+l increment buffer pointer
3846
+ DECBN ACD,L2177 ; decrement page count, loop if more
3847
3848 2182 A5 EA LDA MDFLAG restore SCRIPT flag
3849 2184 AD 11 LDV #HDRFLG+1
3850 2186 91 BA STA (FRZMEM),Y
3851
3852 2188 20 2005 JSR L2005
; make sure we have game disk
3853 218B 4C 0684 JMP PREDTR ; return true (no error)
3854
3855 218E 20 2005 RSGMFL: JSR L2005
; rake sure we have game disk
3856 2191 4C 0880 JMP PREDFL
; return false (error)
3857
3858
3859 2194 88 RSGMMV: 0EV
; copy buffer to memory (read)
3860
+ MOV <BUFFER.X>,<<(ACC),V>>
3861 219A E8 INX
3862
+ CPVBN <#$00>,RSGrvIMV
3863 219F 60 RTS
3864
3865 PAGE

Infoconi ,,ERLOGIC interpreter

disassembly. 5/27/84

MACRO—8O 3. 18—Sep—81

PAGE 1—95

3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911

E6 4E E6 4F
60

20 20 20
45 4E 44
20 4F 46
20 53 45
53 53 49
4F 4E 20
20 20

49 4E 54
45 52 4E
41 4C 20
45 52 52
4F 52 20
23

20 ICIO

210C A2 10
21DE 20 1E29

L2IAO: INC
INC
DMOV
RTS

ENOMSG: 08

RNDLOC
RNDLOC+ I
RNDLOC ACC

,DEPHASE
END

START

 

21A0
21A2
21 AC

 

÷

 

 

 

 

;

get a

‘random number

2JAD
21 BC
2163
2166
2189
21 BC
218F
0014

 

ENMSLN

EQU

‘—— END OF
*-ENDMSG

SESSION

--‘

 

 

 

21C1
21 C4
21 C7
21 CA
21 CO
2 100
0010

 

FTLMSG:
FTMSLN

DB
EQU

‘INTERNAL
*—FTLMSG

ERROR #‘

 

 

 

2101

 

 

 

FATAL

JSR

PRNTBF

 

 

;

flush

anything left in buffer

 

+

 

OMOVI
LOX
JSR

FTLMSG,ACC #FTMSLN OUTMSG

 

 

;

output

fatal message

21E7

20

14F5

1-

 

DPUL2 JSR

ACC
PRNTNM

 

 

;

output

address where error detected

2IEA

20

1C1O

 

OPENOS:

JSR

PRNTBF

 

 

;

flush

anything left in buffer

21F5
21F7

A2 20

14
lEZ9

+

 

DMOVI
LOX
JSR

ENDMSG,ACC #ENMSLN OUTMSG

 

 

;

Output

end of session message

21FA

20

1C1O

 

 

JSR

PRNTBF

 

 

;

flush

the buffer

2IFD

4C

21F0

 

HALT:

JMP

HALT

 

 

;

die horribly

 

Infocom (

(

 

 

RLOGIC interpreter

disassembly,

5/27/84

MACRO—SO

3. 18—Sep—81 PAGE S

Macros:

 

 

 

 

 

 

 

 

ADD

 

CMP6E

 

CMPBG

 

CMPBL

 

CMPBM

CMPBN

 

CMPBP

 

CMPJE

 

CMPJL

 

CMPJSE

CMPJSG

 

CMPJSN

 

CMPRE

 

CPXBE

 

CPXBG

CPXRGT

 

CPVDN

 

O1COMP

 

DADC

 

DADO

DADDB1

 

DADDB2

 

DAND

 

DASL

 

DDEC

DDEC2

 

DECA

 

DECABE

.

DECABM

 

DECABN

DECABP

 

DEC8E

 

DECBN

 

DECJE

 

DECJN

DINC

 

DLSR

 

DMOV

 

DMOVI

 

DMOVI2

DOR

 

DPSN

 

DPUL

 

DPUL2

 

DROL

OROR

 

DSBC

 

DSTZ

 

DSUB

 

DSU8B1

0SU882

 

DTS2BE

 

DTS28N

 

DTS2JE

 

DTS2JN

DTS2RE

 

DTS2RN

 

DTST

 

DTST2

 

DTSTBE

DTSTBN

 

DTSTJE

 

DTSTJN

 

DTSTRE

 

DTSTRN

DXBEQ

 

DXBMI

 

DXBNE

 

DXBPL

 

DVBEQ

OVBMI

 

DYBNE

 

DY6PL

 

INCA

 

IX8NE

IYBNE

 

JCC

 

JCS

 

.JEQ

 

JGE

JGT

 

JLT

 

JMI

 

JNE

 

JPL

JSRCC

 

JSRCS

 

JSREQ

 

JSRGE

 

JSRGT

JSRLT

 

JSRMI

 

JSRNE

 

JSRPL

 

MDV

PSH

 

PUL

 

RTSCC

 

RTSCS

 

RTSEQ

RTSGE

 

RTSGT

 

RTSLT

 

RTSMI

 

RTSNE

RTSPL

 

STR

 

SUB

 

TSTA

 

TSTABE

TSTABM

 

TSTABN

 

TSTABP

 

TSTAJE

 

TSTARP

Symbo Is:

 

 

 

 

 

 

 

 

099F

. .0000

 

09A6

. .0001

 

096E

. .0002

09C8

. .0003

 

0902

. .0004

 

O9FE

. .0005

0A38

. .0006

 

0A42

- 0007

 

0A70

. .0008

0A87

. .0009

 

0640

. . 000A

 

0698

. .0006

08D4

000C

 

OBE5

. .0000

 

OBFC

. . 000E

OCB1

. .000F

 

OCDA

. 0010

 

OCE6

.0011

0038

. .0012

 

OD4E

- .0013

 

0D70

.0014

ODSD

. .0015

 

OEOO

. .0016

 

OE2F

. .0017

0E48

. .0018

 

QE8F

. .0019

 

GElD

. .OO1A

lOlA

. .0018

 

104A

. .OO1C

 

1078

. .OO1D

1084

. .001E

 

1081

- .OO1F

 

1268

. .0020

I2CD

- .0021

 

131A

. .0022

 

1321

. .0023

132A

. .0024

 

136F

. .0025

 

13C9

. .0026

13E0

. .0027

 

1458

. .0028

 

1466

. .0029

1478

. . 002A

 

1486

. .0028

 

148F

. .002C

14CA

. .0020

 

14FC

. . 002E

 

1552

- . 002F

1611

. .0030

 

1624

. .0031

 

1630

. .0032

1643

. .0033

 

16FF

. .0034

 

1710

..0035

17W

. .0036

 

172C

. .0037

 

1736

. .0038

1730

. .0039

 

174C

. .003A

 

1756

. .0036

17F6

. .003C

 

1800

. .0030

 

18C4

- .003E

1A43

. . 003F

 

1A5F

- .0040

 

1648

. .0041

1682

. 0042

 

189C

..0043

 

1E08

. .0044

1E15

..0045

 

1E24

- .0046

 

1F45

.0047

1F63

..0048

 

1F94

- .0049

 

20F6

. .004A

00E4

AC8

 

00E6

ACC

 

OOEB

ACD

169D

ADVPPT

 

0082

ARcil

 

0084

ARG2

0086

ARci3

 

0088 :

ARG4

 

0081

ARGCNT

0093

AUXI[JX

 

0091

AUXLPG

 

0094

AUXMPT

 

Infocom RL0GIC interpreter disassembly, 5/27184 MACRO8O 3. 18—Sep—81 PAGE S—1
0097 AUXPPG 0096 AUXUPD 183F SFCHAR
0200 SUFFER OOEC CHRPT2 00E8 CHRPTR
FC9C CLREOL 1B16 CLRSCR FOED COUT
FDFO COUT1 DODD CRCHAR 1A05 CRNWRD
0036 CSWL 0024 CURSRH 0025 CURSRV
1DC4 OCT 10C8 DISKIO
15AD DIVIDE
18FC DOASCI 1915 DOCRLF 188E DONEXT
1938 DOSBWD 1910 DOSPAC IBEB DOSPCL
1EOD DRDSKF 1E08 DRDBLK 1DFA DROSUF
1E02 DRDNXT 18F5 DSPSUF DAli DSPTCH
1E16 DWRBUF 1E1E DWRNXT 21AD ENDMSG
0014 ENMSLN 2101 FATAL 000C FFCHAR
2C00 FIRFLC 1SIE FNDMEM 1897 FNDPAG
OOBA FRZMEM OOSC FRZPGS 17E8 FTAXBA
1708 FTAXWD 21C1 FTLMSG 0010 FTMSLN
173E FTPRBA OAAB FTPRBV 0A85 FTPRWD
1065 GETLIN FD6F GETLN1 19B9 GETNYS
0098 GLSVAR 0A04 G000IT 1693 GTPLEN
168E GTPNUM OAEF GTVARA OAE8 GTVARP
1406 GTVCBA OAC2 GTVRA1 21FD HALT
OO1A HDRCKA OO1C HDRCKV 0010 HDRFLG
0004 HDRFRZ 000C HDRGBV 000E HDRIMP
0000 HORIRL 0002 HDRREL 0018 HDRSBW
0012 HDRSER 0006 HDRSTR 000A HDRThG
0001 HDRTVP 0008 HDRVCS FC5B
HOME
1AF7 INITSC 0032 INVFLG 00D3 INWORD
1083
108 1DBB TOBSUF 10SF IOBCMD
1DB5 IOBDRV 1068 IOBSCT 1D84 IO6SLT
1087 IOBTRK 0805 L0805 084A L084A
0897 L0897 08B6 L0886 090A LO9OA
O9AF LO9AF 0907 L09D7 O9ED LO9ED
0A26 L0A26 0A45 LOA4S 0A73 L0A73
OA8A LOA8A 0A98 LOA9B OADO LOADO
OAD6 LOAD6 0802 L0802 0B26 L0626
0860 L0860 0B94 L0694 OB9C LOB9C
OSAD LOBAD 08C3 LOBC3 OSDA LOBDA
OBFC LOBFC 0C17 LOC17 OCIA L0CIA
OCA5 LOCA5 OCDA LOCDA OCE6 LOCE6
OCFA LOCFA OD4E LOD4E ODB7 LODB7
0002 LODD2 00E4 LODE4 OE2F LOE2F
UE4C LOE4C GE9D LOE9D OEB7 LOEB7
OECF LOECF 0F08 LOFOS OF1O LOF1O
0F23 L0F23 0F97 L0F97 OFA1 LOFA1
UFD1 LOFDI 1008 L1006 1038 L1038
105E LI05E 106C L1O6C 107E L1O7E
108E L1OBE 10A5 LJOA5 1087 L1087
108D L1OBD 1104 L1104 1107 L1107
1100 LIlOD 1111 Lull 1139 L1139
113F L113F 1143 L1143 1173 L1173
111F L117F 118E LuBE 119D L1190
hAD L11AO
1184 L1164 11F2 L11F2
1220 L1220 1230 L1230 124C L124C
12AC L12AC 128E L12SE
1207 L12D7
1310 L1310 1332 L1332 135C L135C
137A L137A 1382 L1382 13BA L13BA
13DA L13DA 13E0 L13ED 13E4 L13E4

Infocorn ERLOGIC interpreter disassembly, 5/27/84 MACRO—BO 3. ..i 18—Sep—81

PAGE 5—2

(

13ED LI3ED
13F1 LI3F1
1445 L1445
1470 [1470
1400 [1400
1519 L1519
152E L152E
1588 L1588
15F6 LI5FB
161F L161F
1650 [1650
16C8 LI6CB
16F3 L16F3
1770 L1770
1790 L1790
1807 L1807
1822 [1822
1891 L1891
18A9 L18A9
180C L18DC
1937 L1937
19SF L19BF
19FF L19FF
1A2A [1A2A
1A62 L1A62
1A9B [1A98
lAd L1AC1
1828 L1B28
1864 L1564
1877 L1B77
18E3 L1SE3
1C40 L1C4O
1C89 L1C89
1CF5 L1CF5
1D1C L1D1C
1D40 L1040
1088 [1088
10A7 L1DA7
10E7 LIDE7
1E30 L1E3D
1E69 L1E69
1E7E L1E7E
1E9A L1E9A
1F3A L1F3A
1F53 L1F83
2005 [2005
20C3 L20C3
2177 L2177
0009 LD9
0100 LDORG
000A LFCHAR
00SF LRUPAG
OOEA MDFLAG
1862 MRKPAG
19W NLWMOD
11A3 O[CALL

13EF L13EF
13F8 L13FB
144A L144A
148E L148E
1407 L1407
151D [1510
1568 L1568
15C5 L15C5
160A L16OA
1643 L1643
l6Al L16A1
160E L1GDE
1757 L1757
1778 L1778
17C4 L17C4
1808 L1808
1832 L1832
1892 L1892
18B1 [1851
18E2 [18E2
193A L193A
19D6 L1906
1A09 LIAO9
1A43 [1A43
1A6C LTASC
1AA6 L1AA6
1AC9 L1AC9
1657 L1857
1866 L1866
1BAO [1BAO
1BF7 [1BF7
1C50 L1C5O
1CB8 [1CB8
1000 L1000
1033 L1033
1043 L1043
1094 [1094
1051 [1081
1OED L1DED
1E59 [1E59
1E6C [1E6C
1E8D L1E8D
1EBD L1EBD
1F48 L1F48
1FCO LIFCO
2023 L2023
210A L21OA
21A0 L21AO
000E LDE
OOEO LEO
OOED LINCNT
8FFF LSTFLC
0913 F MNLOOP
0006 MRMSLN
10C3 OPADD
0A66 OPCGPA

13F0 LJ3FO
141F L141F
1450 L1450
14B4 [1484
1500 L1500
1529 L1529
1578 L1578
1506 L151J6
1611 [1611
1653 L1653
16C3 L16C3
16E9 [16E9
1761 L1761
1788 L1788
1801 [1801
181A L181A
183A L183A
1890 [1890
1809 L18D9
1920 L192D
19B4 L1964
19F3 L19F3
1A1B L1A1B
1A52 [1A52
1A9 L1A99
1A86 L1AB6
1ACA LIACA
1B61 L1661
1870 LIB7O
1805 LIBD5
1C05 L1CO5
1C79 L1C79
1C05 L1CDB
1005 L1005
1035 L1035
1059 [1059
1098 [1098
1DDF L100F
1E2F [1E2F
1E5A L1ESA
1E75 L1E7B
1E90 L1E9O
1F12 L1F12
1F4C L1F4C
1FOF L1FDF
2040 L2040
2100 [2100
0001 LC4O
OODF LDF
OOE1 [El
009A LOCVAR
0800 MAINOR
1COA MOREMS
DOSE MRUPAG
OF4A OPAND
OA2E OPCGPB

Infocorti I(.RL0GIC interpreter disassembly, 5/27/84 MACRO8O 3.t 18—Sep—81 PAGE S—3 (
0A17 OPCGPC O9AA OPCGPD OC7C OPCKSM
0F80 OPCLRA 0080 OPCODE 0C72 OPCRLF
0D60 OPDEC OEE7 OPDECB 1118 OPDIV
0081 DPDSTT 21EA OPENDS OFEC OPGTBV
OCF3 OPGTCH 12DC OPGTLN 109E OPGTNP
1008 OPGTP 1069 OPGTPA 0020 OPGTPL
CODE OPGTPR OCE9 OPGTSB 0F02 OPGTwD
0D43 OPINC OEF5 OPINCB OE7C OPJUMP
000E OPMAX1 0010 OPMAX2 0019 OPMAX3
000A OPMAX4 OEAO QPMOVE OFA4 OPMQ\/T
1168 OPMTCH 10E3 OPMUL OEA8 OPNOT
0C53 OPNULL OF3B OPOR 14E5 OPPRCH
14EA OPPRNM 1C8A OPPRST 00E2 OPPRTN
0073 OPPS8 0C28 OPPSI 0C54 OPPSIC
0E92 OPPSW 1288 OPPT8V 12A9 OPPTP
125F OPPTW0 1560 OPPULL 1555 OPPUSH
114A OPRMD 1536 OPRNDM 20E8 OPRSGM
0E06 OPRTN 0C23 OPRTNF 0C18 OPRTNT
0C64 OPRTNV OF6D OPSETA 1003 OPSU8
2048 OPSvGM DODD OPTABI 0929 OPTA82
0949 OPTAB3 097B OPTA84 0F13 OPTINT
0F59 OPTSTA OCDO OPTSTZ 1891 OUTBUF
1E29 OUTMSG QODA PKwORD 0001 PNV8BF
DODD PNYBCN 0OEE PRCSWL 088D PREDFL
0684 PREDTP 008A PP.GIDX 0086 PRGLPG
008D PROMPT 0090 PRGPPG 008F PRGUPD
OOCF PRMMOD 1CIO PRNTBF 14F5 PRNTNM
18B4 PRNTST 0033 PROMPT 1BAI PRTBUF
0779 PRTWDT 0846 PTVARA 0B35 PTVARP
OAC9 PTVRA1 0832 PTVRP1 O82C PTVRPA
082A PTVRPZ 1720 PULLWD 16F4 PUSHWD
FDOC RDKEV 004E RNDLOC 0000 RNGDBG
218E RSGMFL 2194 RSGMMV 2900 RWTS
2400 RWTSOR 00E2 SBWDPT 0006 SCMSLN
1C7E SCORMS OO7F SECPTK 13D2 SEPTAB
1788 SETAXB 17C9 SETAXW 1629 SETUPA
1669 SETUPP 16A7 SETUPT 1057 SHWMSG
1995 SPCLCH 0800 START 03E8 STCKLC
OOEO STCKMX 00C8 STKCNT OOCD STKCSV
0228 STKLIM 00C9 STKPNT OOCB STKPSv
00F3 STLTVP 2009 SVGMFL 200F SVGMMV
0088 SWPMEM 0080 SWPPGS 0009 TBCHAR
0000 THGATT 0006 THGCHD 0004 THGPAR
0007 THGPRP 0005 THOSIB 1C84 TIMEMS
0005 TMMSLN OOCE TMPMOD IAA8 TSTCHR
lOAD TSTMOD 0000 \JERSN 2200 VMT1LC
2280 VMT2LC 2300 VMT3LC 2380 VMT4LC
OOCO VMTAB1 00C2 VMTAB2 00C4 VMTAB3
00C6 VMTAB4 2200 VMTORG FC22 VTAB
0023 WNDBOT 0020 WNDLFT 0022 WNDTOP
0021 WNDwDT 007F ZPORG
NO Fatal error(s)
C

( 4 (
- 0000 1228 1228*
..0001 1229 1229*
..0002 1249 1249*
- .0003 1250 12504
• .0004 1251 12514
- .0005 1277 1277*
• .0006 1307 1307*
• .0007 1308 13084
• .0008 1326 1326*
- .0009 1332 1332*
• .000A 1422 1422*
- .0008 1456 1456*
.00CC 1481 1481*
.0000 1483 1483*
0005 1493 1493*
.000F 1515 1575*
.0010 1591 1591*
.0011 1597 1597*
.0012 1624 1624*
.0013 1634 1634*
.0014 1646 1646*
- .0015 1664 1664*
.0016 1704 1704*
• .0017 1722 1722*
.0018 1729 1729*
.0019 1752 1752*
001A 1789 1789*
.0018 1903 1903*
.OOJC 1924 1924*
.0010 1941 19414
.OO1E 1944 1944*
OO1F 1963 1963*
.0020 2193 2193*
.0021 2203 2203*
.0022 2229 2229*
.0023 2230 2230*
.0024 2232 2232*
.0025 2299 2299*
.0026 2303 2303*
.0027 2314 2314*
.0028 2369 2369*
.0029 2370 2370*
• . 002A 2376 2376*
.0028 2377 2377*
002C 2400 2400*
.0020 2401 2401*
0025 2426 2426*
0025 2460 2460*

(

 

(

 

 

 

 

 

 

(

 

• .0030

2530

2530*

 

 

 

 

 

 

• .0031

2540

2540*

 

 

 

 

 

.0032

2553

2553*

 

 

 

 

 

• .0033

2554

2554*

 

 

 

 

 

- .0034

2653

2653*

 

 

 

 

 

- .0035

2656

2656*

 

 

 

 

 

.0036

2660

2660*

 

 

 

 

 

• .0037

2665

2665*

 

 

 

 

 

• .0038

2667

2667*

 

 

 

 

 

- M039

2669

2669*

 

 

 

 

 

• . 003A

2684

2684*

 

 

 

 

 

• .0038

2688

2688*

 

 

 

 

 

- . 003C

2782

2782*

 

 

 

 

 

• . 0030

2786

2786*

 

 

 

 

 

003E

2887

2887*

 

 

 

 

 

• . 003F

3058

3058*

 

 

 

 

 

- .0040

3066

3066*

 

 

 

 

 

• .0041

3185

3185*

 

 

 

 

 

.0042

3223

3223

3223*

 

 

 

 

.0043

3240

3240*

 

 

 

 

 

.0044

3512

3512*

 

 

 

 

 

.0045

3517

3517*

 

 

 

 

 

.0046

3521

3521*

 

 

 

 

 

.0047

3634

3634*

 

 

 

 

 

.0048

3643

3643*

 

 

 

 

 

.0049

3653

3653*

 

 

 

 

 

004A

3794

3794*

 

 

 

 

 

AC8 .

174*

1070

1070

1087

1089

1395

1398

1400

1400

1400

1400

 

 

1404

1433

1436

1438

1438

1438

1438

1440

1442

1485

1488

1493

 

1493

1496

1496

1498

1501

1672

1672

1673

1673

1674

1683

1683

 

1684

1684

1685

1699

1701

1702

1702

1719

1719

1722

1722

1722

 

1726

1728

1729

1729

1729

1770

1770

1775

1775

1782

1782

1786

 

1786

1800

1803

1819

1821

1822

1824

1833

1837

1849

1854

1907

 

1911

1917

1919

1925

1927

1928

1928

1988

1988

1989

1991

2007

 

2007

2008

2010

2024

2024

2027

2027

2115

2116

2121

2126

2127

 

2285

2287

2356

2358

2370

2370

2370

2370

2373

2377

2377

2377

 

2401

2401

2401

2402

2402

2403

2403

2405

2405

2429

2429

2431

 

2456

2456

2459

2459

2480

2487

2487

2489

2489

2490

2490

2503

 

2506

2516

2516

2523

2554

2557

2564

2566

2575

2577

2578

2578

 

2640

2643

2648

2649

2725

2725

2823

2823

3044

3054

3056

3062

 

3064

3074

3076

3083

3085

3496

3497

3512

3512

3521

3521

3629

 

3629

3634

3634

3634

 

 

 

 

 

 

 

 

ACC

175*

1069

1069

1082

1084

1260

1261

1275

1275

1284

1286

1296

 

1296

1312

1312

1318

1318

1328

1328

1334

1334

1342

1342

1350

 

1352

1360

1362

1376

1376

1378

1378

1389

1391

1402

1404

1412

 

1414

1417

1417

1420

1420

1427

1429

1440

1442

1463

1465

1471

 

1473

1475

1477

1480

1480

1481

1481

1481

1482

1482

1483

1483

 

1483
1620

1485
1623

1491
1623

1547
1624

1547
1624

1563
1624

1571
1634

1608
1634

1608
1635

1610
1635

1619
1638

1619
1638

 

( (
1646 1646 1646 1652 1652 1662 1666 1666 1669 1676 1680 1685
1686 1686 1688 1689 1699 1701 1702 1702 1704 1704 1715 1720
1726 1728 1733 1733 1736 1736 1739 1740 1744 1744 1751 1751
1752 1752 1752 1756 1756 1766 1766 1769 1769 1776 1776 1786
1786 1787 1787 1796 1799 1802 1809 1809 1812 1812 1835 1839
1850 1855 1861 1861 1868 1868 1870 1872 1875 1876 1876 1879
1884 1884 1889 1889 1891 1893 1917 1919 1925 1927 1928 1928
1930 1930 1931 1944 1944 1946 1947 1949 1951 1951 1951 1951
1975 1975 1981 1981 1987 1987 1998 1998 1999 1999 2006 2006
2016 2016 2017 2017 2023 2023 2027 2027 2060 2060 2064 2065
2068 2068 2071 2071 2090 2092 2099 2101 2104 2106 2116 2118
2120 2123 2125 2132 2150 2153 2156 2156 2156 2156 2159 2161
2171 2174 2177 2177 2177 2177 2180 2205 2208 2211 2327 2333
2338 2340 2341 2341 2341 2341 2345 2348 2356 2358 2361 2361
2362 2366 2369 2369 2369 2376 2376 2376 2386 2390 2394 2398
2400 2400 2400 2405 2405 2419 2419 2424 2428 2428 2459 2459
2460 2460 2467 2467 2485 2485 2489 2489 2499 2499 2500 2500
2502 2505 2508 2510 2513 2513 2516 2516 2517 2517 2521 2532
2533 2535 2536 2553 2553 2554 2554 2564 2566 2575 2577 2578
2578 2579 2588 2595 2615 2617 2617 2621 2621 2621 2621 2621
2621 2622 2623 2626 2628 2631 2631 2633 2635 2641 2644 2646
2648 2655 2657 2664 2666 2696 2696 2723 2723 2724 2724 2740
2741 2748 2751 2765 2767 2794 2794 2821 2821 2822 2822 2843
2846 2847 2849 2852 2856 2858 2865 2867 2869 2957 2959 3000
3000 3044 3044 3045 3166 3166 3167 3168 3170 3171 3173 3174
3175 3311 3311 3359 3370 3370 3380 3380 3385 3392 3400 3409
3428 3495 3495 3511 3511 3520 3520 3531 3595 3595 3623 3623
3642 3642 3643 3643 3643 3649 3649 3652 3652 3653 3653 3653
3703 3703 3707 3707 3731 3731 3735 3735 3739 3739 3747 3747
3755 3755 3762 3762 3768 3783 3810 3810 3815 3815 3819 3819
3827 3827 3835 3835 3839 3839 3845 3861 3871 3871 3893 3893
3897 3897 3902 3902
ACD 176# 1720 1730 1820 1823 1834 1838 1847 1852 2112 2113 2130
2219 2221 2230 2230 2230 2232 2254 2256 2264 2266 2267 2271
2272 2274 2277 2281 2294 2295 2297 2304 2305 2353 2369 2376
2377 2382 2400 2427 2431 2434 2440 2478 2478 2479 2479 2485
2485 2485 2485 2486 2486 2490 2490 2491 2491 2498 2498 2499
2499 2512 2512 2517 2517 2518 2518 2556 2556 2560 2560 2887
2895 2902 2915 2917 3043 3047 3050 3058 3058 3062 3066 3069
3070 3078 3078 3087 3087 3527 3529 3530 3533 3535 3764 3764
3770 3841 3841 3847
ADD 357# 1055 1079 1107 1112 1115 1490 1575 1626 1722 2292 2360
2437 2621 2630 2710 2723 2808 2821 2894 3053 3097 3505 3634
3643 3653
ADVPPT 1903 1941 1963 1967 2194 2605#
ARGI 118# 1260 1261 1312 1312 1328 1328 1513 1515 1547 1547 1563
1563 1575 1575 1575 1588 1591 1597 1597 1599 1604 1615 1623
1623 1631 1635 1643 1652 1652 1659 1671 1682 1694 1744 1744
1751 1751 1756 1756 1760 1766 1766 1769 1769 1775 1775 1791

( I (
1799 1802 1809 1809 1812 1812 1861 1865 1875 1884 1884 1889
1889 1975 1975 1981 1981 1987 1987 2006 2006 2023 2023 2036
2038 2041 2043 2046 2048 2059 2059 2076 2076 2149 2152 2170
2173 2217 2217 2217 2217 2246 2250 2259 2263 2300 2412 2419
2419 2456 2456 2467 2467 2473 2547 2571 3456 3456 3466
ARG2 119* 1334 1334 1559 1561 1566 1567 1578 1580 1770 1770 1776
1776 1782 1782 1787 1787 1794 1799 1802 1809 1809 1812 1812
1861 1861 1870 1883 1883 1884 1884 1889 1889 1902 1912 1940
1958 1962 1975 1975 1981 1981 1988 1988 2007 2007 2024 2024
2038 2040 2117 2122 2145 2147 2151 2168 2172 2191 2218 2218
2218 2218 2223 2226 2229 2244 2281 2285 2287 2293 2293 2549
ARG3 1204 1563 1568 1582 2043 2045 2159 2161 2180 2205 2208 2211
4R64 1211 1563 1565 2048 2050
ARGCNT 1161 1223 1264 1311 1336 2033 2112
AUXIDX 130% 1522 1528 1576 2740 2750 2776 2780 2962 2967
AUXLPG 129% 1523 1523 1529 1529 1578 1580 2741 2742 2753 2756 2786
2786 2788 2790 2794 2794 2823 2823 2828 2829 2963 2963 2966
2966
AUXMPT 131% 1531 1531 2777 2809 2810
AUXPPG 133% 2719 2795 2803 2822 2826
AUXUPD 132% 1040 1524 1530 2720 2743 2773 2784 2812 2968
BFCi-IAR 1538 1540 1551 1553 2413 2438 2443 2446 2895 2926 31824 3395
3403 3406 3414 3416 3532 3601 3612 3620
8UFFER 43* 3197 3209 3224 3226 3272 3291 3442 3460 3511 3511 3520
3520 3725 3728 3783 3799 3803 3861
CHRPT2 181* 3213 3220 3221 3229
CHRPTR 1804 3182 3201 3214 3225 3227 3271 3290 3298 3321 3450 3453
CLREOL 97* 3317 3364 3421 3659
CLRSCR 31584 3591
CMPBE 939* 1085 1795 1901 1922 1939 1961 1992 1993 2011 2012 2039
2044 2049 2190 2201 2316 2332 2838 2853 2868 2937 3092 3208
3323 3360 3467 3802
CMPDG 954* 1279 1293 1315 1339 1384 1422 2367 3101 3105 3401 3463
3666
CMPSL 949* 1229 2385 2389 2393 2397 2550 2693 2791 2889 2890 3100
3104 3185 3186 3309 3455 3462 3665
CMP8M 959* 3388
CMPBN 944* 1577 1579 1581 1587 1670 1681 2037 2042 2047 2647 2718
2816 2866 2897 3169 3172 3627 3662 3698 3700 3711 3798
CMP6P 964* 3410
CMPJE 969* 1590 3184
CMPJL 974* 1227 1228 1276
CMPJSE 979* 1249 1250 1307 2231
CMPJSG 989* 2659
CMPJSN 984* 1923 2202
CMPRE 994* 2228
COOT 100* 3260 3264 3266 3268 3273 3333
COIJT1 101* 3292 3325 3430
CPXSE 999* 3270 3289

( ( (
CPXBG 1004* 3198
CPXRGT 1009* 3222
CPVBN 1014* 3784 3862
CRCHAR 68* 1537 1550 2309 2925 3185 3468
CRNWRD 2281 30370
CSWL 88* 3249 3249 3252 3252 3279 3279 3282 3282 3331 3331 3332
3332 3335 3335 3336 3336
CURSRH 81* 3250 3281 3317 3311 3353 3354 3361 3372 3382 3424 3647
3659
CURSRV 82* 3353 3354 3424
D1COMP 312* 1765
DADC 321* 1400 1438 1623 1884 1889 1975 2156 2177 2217 2218 2341
2484 2578
DADD 347* 1399 1437 1622 1883 1888 1974 2155 2176 2216 2217 2340
2577
DADD81 383* 2368 2376 2399
DADOB2 405* 1574 1721 3633 3642 3652
DAND 303* 1811
DASL 238* 1882 1997 1998 2075 2559 2621 2621 2621
OCT 3481 3490*
DDEC 437* 1480 1482 1623 1645 1751 2400 2652 2655
DDEC2 441* 1728
DECA 518* 1423 2946 3007 3061
DECABE 889*
DECABM 904*
DECABN 894* 3006
DECABP 899* 3060
DEC8E 869* 2112 3077 3086
DECBN 874* 1729 2129 2439 3534 3769 3846
DECJE 879* 3057
DECJN 884* 3065
DINC 429* 1492 1633 1703 1943 2459 2552 2553 2664 2666 2687 2785
3511 3520
DISKIO 3493* 3513 3522
DIVIDE 2013 2025 2429 2457 2497*
DLSR 252* 2015 2016
DMOV 445* 1068 1311 1327 1333 1522 1528 1530 1546 1651 1701 1711
1732 1735 1743 1750 1755 1768 1769 1774 1775 1781 1785 1786
1860 1927 1986 1987 2005 2006 2022 2023 2026 2067 2070 2136
2418 2455 2458 2466 2488 2489 2498 2516 2695 2722 2724 2793
2820 2822 2999 3251 3278 3331 3334 3494 3761 3838 3870
DMOVI 456* 1042 1046 1047 1048 1049 1066 1069 1274 1295 1317 1341
1718 2059 2428 2478 2499 2555 3310 3369 3379 3510 3519 3594
3622 3641 3648 3651 3702 3706 3730 3734 3738 3746 3754 3809
3814 3818 3826 3834 3892 3901
DMOVI2 467* 3165
DOASCI 2902 2909*
DOCRLF 2903 2925*
DONEXT 2885* 2896 2935 2940 2971

( ( (
009 294* 1808
00S8W0 2890 29464
DOSPAC 2888 29224
DOSPCL 2898 29014
DPSH 5024 1375 1416 1634 1665 1672 1683 1867 2477 2497 2960 2962
3248 3330
DPUL 4924 1377 1419 1637 1671 1682 1685 1875 2490 2517 2965 2968
3281 3335
DPUL2 497* 3896
DRD8KF 1070 1089 2726 2824 35154
DRD8LK 35124 3515
DRD8UF 35104 3792 3822 3830
ORDNXT 35114 3843
DROL 2804 2511 2512
0909 2664 2485 2486 2515
DSBC 334* 1951 1981 2405
DSP8UF 3240 32874 3363 3420
OSPTCH 1284 1286 12864 1286
OSTZ 2324
DSUB 352* 1950 1980 2404
DSU881 394* 2369 2375
050882 4174 1481 1483 1624 1646 1729 1752 2401 2653 2656
DTS28E 7894
DTS2BN 794* 2058 2401
OTS2JE 799*
OTS2JN 8044
DTS2RE 8094
DTS2RN 8144
DTST 749* 1480 1482 1496 1597 2230 2428
DTST2 784* 2059 2402
DTST8h 754* 1479 1481 1495 2427
DTSTSN 759*
DTSTJE 7644
DTSTJN 7694 1596
OTSTRL 774* 2229
0TSTRN 779*
DWRBUF 3519* 3742 3750 3758
DWRNXT 35204 3766 3771
OxesO 829* 2040 2045
DXBMI 849* 3501
OXBNE 819* 1059 2034 2318 2487 2513 2871 3209 3432 3468
OXBPL 8394 2608 3093
DYBEQ 8344
DV8MI 854*
DV8NE 824* 2238 3041 3634
OVBPL 8444
ENDMSQ 3873* 3880 3902 3902
ENMSLF4 3880* 3902
FATAL 1129 1162 1177 1299 1924 2035 2193 2203 2660 2669 3517 3890*

FFCHAF1 71* 2310
FIRFLC 54* 1067 1067
FNDMEM 1117 3165*
FNDPAG 2696 2794 286311
FRZMEM 13911 1067 1067
1106 1108 1108
1623 1905 1906
2217 2218 2218
2632 2634 2711
3797 3801 3807
FRZPGS 140* 1076 1076
FTAXBA 1573 1890 2762
FTAXW0 1885 2762* 2998
FTLMSG 3882* 3888 3893
FTMSLN 3888* 3893
FTPRBA 1224 1235 1349
2096 2098 2675*
FTPR8Y 1251 1308 1326
FTPRWO 1249 1307 1357*
QETLIN 2218 3437*
GETLN1 99* 3439
GETNYB 2885 2909 2914
GLSVAR 135* 1106 1108
0000IT 1281* 1297 1319
GTPLEN 1625 1920 2199
GTPNUM 1900 1938 1960
GTVARA 1366 1384*
GTVARP
- 1250 1308 1326
GTVCBA 2325 2336* 2343
GTVRA1 1365* 1632 1644
HALT 3907* 3907
HLIRCKA 210* 1557
HDRCKV 211* 1585
HDRFLG 207* 3236 3326
HDRFRZ 201* 1072
HDRG8V 205* 1104
HDRIMP 206* 3762 3839
HORIRL 198*
HORREL 200* 3723 3796
HORSSW 209* 1109
HDRSER 208*
HDRSTR 202* 1098
HDRTHG 204* 1903 2629
HORTYP 199* 1093
HDRVC8 203* 2336
HOME 96* 3158
INCA 514*
INITSC 1037 3144*
INvFLG 84* 3155 3189

1069 1074 1076 1081 1084 1094 1100 1102
1113 1113 1116 1559 1561 1586 1589 1623
1910 1951 1951 2156 2156 2177 2177 2217
2340 2341 2341 2405 2405 2578 2578 2631
3237 3327 3446 3725 3728 3762 3762 3764
3839 3841 3850
1116 1584 2694 2706 2792 2804
2773* 2812
1359 1382 1417 1446 1450 1456 1470 2080

299 2*
1400 1438 1438

2605
2189 2588*
1382*

3358 3374 3384 3397 3408

( (

1069
1111
1909
2338
2809
3839
-+086
2764
3893
1357
2714

1332 1349*

2951
1400
1343
2595*
1965
1332
1761

3445 3805 3849

3313 3315 3356 3423 3648 3656

( (
INWORD 1611 2265 2270 3047
108 3475* 3506 3507
10881JF 348211 3495 3495
ID8CMD 34841 3493
10801W 3477* 3617 3699 3115
IO8SCT 3480* 3506
IO8SLT 34761 3609 3697 3714
IO6TRK 3479* 3496 3503
IX8NE 859* 1032
IV8NE 864*
JCC 544* 1940 1962
JCS 551* 1788 3793
JEQ 530* 1422 1591 3058 3185
JGE 565*
JGT 572*
JLT 558* 1228 1229 1277
JMI 587*
JNE 537* 1597 3066
JPL 580*
JSRCC 614* 2192
JSRCS 624* 1902 3516
JSREQ 594* 1248 1250 1251 1306 1308 1325 1331 1455 2232 2668
JSRGE 644* 2660
JSRGT 654*
JSRLT 634*
JSRMI 675* 2425
JSRNE 604* 1924 2203 3239
JSRPL 665*
L0805 1031* 1033
L084A 1053* 1060
L0897 1079* 1091
L0886 1086 1093*
LO9OA 1119 1129*
LO9AF 1239* 1272
L0907 1249 1250 1251 1256*
LO9ED 1254 1274*
L0A28 1280 1294 1299* 1316 1340
L0A45 1307 1308 1310*
L0A73 1326 1327*
LOA8A 1332 1333*
L0A98 1277 1338*
LOADO 1366 1372*
LOAD6 1370 1375*
LOBO2 1385 1393*
L0826 1384 1406*
L0860 1423 1431*
L0894 1448 1454*
L089C 1448 1452 1458*
LO8AD 1460 1467*

( ( (
L08C3 1465 1474 1479*
L06DA 14822 1752
L0BFC 1491 1493#
LOC17 1496 1508*
LUCiA 1513* 1518
LUCAS 1573* 1518 1580 1582
LOCOA 1588 1592*
LOCE6 1597* 1613
LOCFA 1602 1607*
LOO4E 1634* 1646
L0087 1671 1678* 1682
LODD2 1677 1685*
LODE4 1695* 3362
LOE2F 1723* 1730
LOE4C 1716 1731*
LOE9D 1653 1757*
L0E87 1179 1768*
LOECF 1180 1774*
LOFO8 1782 1787*
LOF1O 1771 1777 1789* 1796 1805 1825
L0F23 1184 1798*
L0F97 1190 1860*
LOFA1 1862* 2474
LOFD1 1877 1880*
L1008 1900* 1903
L1036 1902 1920*
L1OSE 1923 1929*
L1O6C 1938* 1942
L1O7E 1940 1943*
L1O8E 1948 1950*
L1OAS 1960* 1964
L1087 1959 1965* 1968
L108D 1962 1967*
L1104 1990 1994*
L1107 1995* 1999 2014 2017
L1100 1994 1997*
Lull 1993 1998*
L1139 2009 2013*
L1I3F 2013 2015*
L1143 2012 2016*
L1173 2035 2036* 2048
L117F 2038 2040*
LuBE 2043 2045*
L119D 2041 2046 2050*
L1IAO 2040 2045 2050 2051*
L11B4 2059 2063*
L11F2 2088* 2109
L1220 2084 2111*
L1230 2116* 2130

( ( (
L124C 2113 2131W
L12AC 2189W 2195
L12SE 2191 21991
L12D7 2202 2210W
L1310 2225W 2255 2269 2275 2295
L1332 22361 2239
L135C 2233 2252 2256W
L137A 2248 22701
L1382 2257 2261 2274W
L13BA 2232 2297W 2306
LI3DA 2260 2301 2312W
L13E0 2251 23141
L13E4 23161 2319
L13E0 23191 2330
LI3EF 2317 2321W 2333
L13FO 2322W
LI3F1 2247 2312 2324W
L13FB 2330W 2334
L141F 2282 23431
L1445 2361 2363W
L144A 2366W 2372 2374
L1450 2364 2368*
L1470 2368 2371 2375W
L148E 23831 2402
L1484 2386 2390 2394 23991
L1400 2386 2390 2394 2398 2402*
L14D7 2398 2404*
L1500 2427W 2432
L1519 2428 2434W
L151D 2436W 2440
L1529 2435 2442W
L152E 2426 2445W
L1568 1994 2477W
L1578 2480W 2488
L1588 2483 2485W
L15C5 2501W 2514
L15D6 2507 2511W
L15F6 1988 2007 2024 25201
LI6QA 1995 2527W
L1611 2447 2530W 2541
L161F 2522 2524 2539W
L1643 2551 2554W
L1653 2558W 2561
L165D 2558 2562*
L16AI 2607* 2609
L16C3 2622 2625W
L16CB 2627 2629W
L16OE 1770 1776 1787 2640W
L16E9 1804 2642 2646W

( ( (
L16F3 2648 2650*
L1757 2676 26904
L1761 2691 26954
L1770 2702* 2733
L1778 2694 27104
L1788 2698 27184
L1790 2719 2722*
L17C4 2742* 2757
L1801 2774 27884
L1807 1565 1584 27914
L18OB 2789 27934
L18IA 28004 2831
11822 2792 28084
L1832 2796 28164
L183A 2817 2820*
L1891 2839 2856*
L1892 2854 28574
L189D 28664 2872
L18A9 2867 2870*
L18B1 2869 28754
L1809 28944 2899
L180C 28954 2907 2918 2923 2928
L18E2 2893 28974
L1920 2933 29364
L1937 2938 29404
L193A 29444 2950 2954
t1984 2983 2986*
L19BF 2993 2996*
L1906 2996 30064
L19F3 3007 30244
L19FF 3026 3028*
L1AQ9 30394 3042
L1A1S 30444 3066
L1A2A 3047 30504
L1A43 3053 3058*
L1A52 3049 3062* 3069 3072 3089
L1462 3061 30674
L1A6C 3067 3070*
L1A99 3071 30914
L1A9S 30924 3094
L1AA6 3093 30964
L1A86 3101 3102 3104#
L1ACI 3105 3106 31084
L1AC9 3109 3109 31114
L1ACA 3058 3066 3078 3087 31134
L1B28 31674 3170 3173
L1857 3187 3190 31954
L1661 3186 32014 3337
L1664 3199 32064

( ( (
L1866 3208* 3210
L1870 3209 32134
LW?] 3220* 3230
L1BAO 3151 3246* 3255 3257
L1BD5 3256 32704 3276
L1BE3 3271 32784
L18F7 3289# 3295
L1CO5 3290 3297*
L1C4O 3310 33204
LIC5O 3324 33264
L1C79 3329 33364
L1C89 3349* 3361 3361
L1C88 3361 33664
L1CIJ6 3368 33794
L1CF5 3386 33884
L1DOO 3389 3389 3393*
L1005 3377 3395*
LID1C 3402 34044
L1D33 3411 34134
L1D35 3412 3414*
LJD4O 3399 3419*
L1D43 3417 3420*
L1059 3428* 3433
LJDB8 3448 3453*
L1D94 3456 3457*
L1D98 34604 3469
L1DA7 3463 3464 3465*
L1D1
- 3458 3468 34694
L1DDF 3499* 3504
LJDE7 3500 35034
L1DED 3502 3505*
L1E2F 35304 3535
L1E3D 3537* 3595 3595
L1E59 35484 3599 3603 3614 3643 3653 3661
L1E5A 35504 3642 3642
L1E69 3555* 3611 3652 3652 3663 3666 3667
L1E6C 3557*
LIE7e 3562* 3619
L17E 3564*
LIE8D 3569# 3600 3629
L1E9O 3571* 3649 3649
L1E9A 3576* 3623 3623
L1EBD 3591* 3720 3790
L1FI2 3621* 3628
L1F3A 3633* 3635
L1F48 3631 3635*
L1F4C 3599 3603 3614 36404 3666 366]
L1FB3 3663 36644
L1FCO 36714 3703 3703

( ( (

 

L1FDF

3683*

3707

3707

 

L2005

3697*

3774

3777 3852 3855

L2023

3705*

3712

 

 

L2040

3699

3701

3713*

 

L20C3

3766*

3770

 

 

L21OA

3799

3803*

 

 

L2IOD

3803

3805*

 

 

L2177

3843*

3847

 

 

L21AO

2456

3868*

 

 

LC4O

36*

3188

 

 

L09

163*

1045

 

 

LDE

167*

3124

 

 

LOF

168*

3133

 

 

LOORG

40*

1024

 

 

LEO

169*

2224

2240

2283

LE1

170*

2225

2239

2249

LFCF-IAR

69*

1539

1552

2927

LINCNT

182*

3160

3307

3319

LOCVAR

136*
2124

1389
3735

1391
3735

1429
3815

LRtJPAG

144*

1065

1124

2872

LSTFLC

55*

3166

3166

 

MAINOR

51*

52

1025

MDFLAG

178*

2521

2527

MNLOOP

1127

1222*

1287

MOREMS

3303*

3305

3311

M0V

507*
1099
1310
1464
1570
1727
1926
2115
2236
2563
2729
2845
3007
3153
3452
3724

1039
1101
1335
1484
1583
1738
1929
2135
2280
2565
2730
2846
3024
3154
3495
3727

1041
1102
1351
1506
1609
1739
1930
2158
2284
2574
2739
2848
3027
3159
3598
3763

MRKPAG

2702

2800

2838*

MRMSLN

3305*

3311

 

MRUPAG

143*

1064

2839

NEWMO0

2891

2930*

 

OPADD

1197

1974*

OPAN0

1186

1811*

OPCALL

1207

2058*

 

2277

 

2290

 

 

 

 

 

 

2245

2253

2258

2262

2268

2273

2299

2303

2309

 

 

 

 

 

 

 

3308

3319

3439

3440

 

 

 

 

1427

1719

1719

2090

2092

2104

2106

2119

3815

 

 

 

 

 

 

 

2858

 

 

 

 

 

 

 

2540

3807

3848

 

 

 

 

 

 

331 1

 

 

 

 

 

 

 

 

1044

1053

1061

1063

1064

1073

1075

1083

1088

1105

1110

1114

1125

1222

1259

1260

1283

1285

1388

1390

1401

1403

1413

1426

1428

1439

1441

1514

1521

1523

1527

1529

1558

1560

1562

1564

1618

1619

1684

1687

1698

1700

1712

1719

1725

1741

1798

1801

1869

1874

1892

1916

1918

1924

2063

2064

2073

2089

2091

2103

2105

2111

2114

2160

2179

2204

2207

2210

2220

2222

2223

2224

2286

2294

2337

2339

2355

2357

2402

2426

2520

2576

2616

2654

2656

2663

2665

2711

2713

2719

2740

2741

2742

2809

2811

2817

2827

2828

2842

2851

2855

2857

2883

2884

2956

2958

2967

2970

3039

3042

3043

3046

3144

3147

3150

3151

3152

3312

3314

3318

3353

3355

3366

3422

3438

3441

3602

3613

3628

3646

3647

3655

3658

3713

3714

3782

3806

3812

3840

3860

 

 

 

 

 

C ( (
0PCGPA 1228 13241
0PCGP8 1229 1304*
0PCGPC 1230 12921
OPCGPD 12351
OPCKSM 1148 1557*
OPCLRA 1189 1845W
OPCODE 1151 1225 1275 1313 1329 1337
0PCRLF 1146 1550*
OPOEC 1160 1643* 1780
OPDEC8 1181 1780*
OPOIV 1200 2005*
OPDSTT 1163 1659* 1864
OPENDS 1145 3899*
OPGT8V 1193 1888*
OPGTCH 1156 1604*
0PGTLN 1211 22151
OPGTNP 1196 1957*
OPGTP 1194 1899*
OPGTPA 1195 1937*
OPGTPL 1158 1622*
OPGTPR 1157 1615*
OPGTSS 1155 1599*
OPGTWD 1192 1882W
OPINC 1159 16311 1784
OPINCB 1182 1784*
OPJUMP 1166 1750*
OPMAXI 11491 1294
OPMAX2 1170* 1316
OPMAX3 12021 1340
OPMAX4 1217* 1280
OPMOVE 1168 1760*
OPMOVT 1191 1864*
OPMTCH 1178 2033*
OPMUL 1199 19861
OPNOT 1169 1765*
OPNULL 1139 1532*
OPOR 1185 18081
OPPRCH 1212 2412*
OPPRNM 1213 2418*
OPPRST 1147 2215 3351*
OPPRTN 1164 1694*
OPPS8 1161 1651*
OPPSJ 1137 1521* 1535
OPPSIC 1138 1535*
OPPSW 1167 1755*
OPPT8V 1209 2168*
OPPTP 1210 21871
OPPTWD 1208 2145*
OPPULL 1216 24721

OPPUSH 1215 2466*
OPRMD 1201 2022W
OPRNOM 1214 2455*
OPRSGM 1141 3790*
OPRTN 1165 1515 1547 1711W
OPRTNF 1136 1480 1517*
OPRTNT 1135 1482 1512* 1542
OPRTNV 1143 15454
OPSETA 1188 18314
OPSU8 1198 1980*
OPSVGM 1140 3720*
0PTAB1 11354 1149 1296 1296
OPTAB2 11544 1170 1318 1318
OPTAB3 1177* 1202 1342 1342
OPTAB4 1207* 1217 1275 1275
OPTINT 1183 1791*
OPTSTA 1187 1818*
OPTSTZ 1154 1596*
OUT8UF 32364 3321 3351 3437
OUTMSG 3527* 3596 3624 3644
PKWORD 1654 2368 2384 2388
3117 3119 3120 3121
3137
PNV8BF 159* 2961 2961 2969
3028
PNVBCN 158* 2884 2960 2970
PRCSWL 1834 3145 3252 3252
PREDEL 1450* 1592 1597 1613
3856
PREDTR 1446* 1591 1597 1789
PRGIDX 123* 1100 1491 1493
3731 3731 3810 3810
PROLPO 124* 1102 1103 1499
1733 2071 2071 2078
2730 2731
PROMPT 125* 1531 1531 2679
PROPPO 127* 2697 2705 2724
PRGUPD 126* 1040 1507 1530
PRMMOD 157* 2884 2936 2938
PRNTBF 3185 3216 3307* 3592
3890 3899 3905
PRNTNM 2419 2424* 3375 3393
PRNTST 1525 1706 1757 2883*
PROMPT 86* 3154
PRT8UF 3240 3248* 3451
PRTWDT 48* 3262
PSH 485* 1376 1376 1417
1684 1684 1868 1868
2961 2961 2963 2963

( (
3709
3894 3903
3040 3055 3063 3075 3084 3113
3128 3130 3131 3132 3134 3135
3000 3000 3008 3010 3013 3025
3008 3025 3028
3332 3332 3335 3335
1789 1796 1806 1826 2050 3778
3853
1739 2065 2076 2076 2678 2682
1504 1523 1523 1529 1529 1733
2690 2692 2696 2696 2725 2725
2675 2686 2714 2818 3813
2970 2984
3621 3635 3640 3701 3705 3712
3897
1635 1635 1666 1666 1673 1673
2478 2478 2498 2498 2959 2961
3249 3320 3331 3331 3352

3625 3645
3704 3708
2392 2396
3122 3123
2969 3000
2992 2997
3279 3279
1772 1778
2051 3775
1522 1528
1500 1502
2688 2688
2711 2712
2728 2817
1742 2074
2939 2960
3593 3597
3404 3419
2964
1417 1607
2276 2430
3249 3249

(

1

(

 

PTVARA

1370

1421*

 

 

 

 

 

 

 

 

 

 

PTVARP

1414

1416*

1610

 

 

 

 

 

 

 

 

 

PTVRA1

1369*

1636

1862

 

 

 

 

 

 

 

 

 

PTVRP1

1414*

1620

1744

1762

1766

1809

1812

1886

1893

1919

1928

1931

 

1951

1975

1981

1996

2027

2060

2460

 

 

 

 

 

PTVRPA

1412*

1627

1966

 

 

 

 

 

 

 

 

 

PTVRPZ

14111

1941

1963

 

 

 

 

 

 

 

 

 

PUL

478*

1361

1378

1378

1420

1420

1472

1638

1638

1672

1672

1683

 

1683

1686

1686

1876

1876

2100

2131

2293

2491

2491

2518

2518

 

2766

2966

2966

2966

2969

2969

2969

3280

3282

3282

3336

3336

 

3423

3897

3897

 

 

 

 

 

 

 

 

 

PULLWD

1144

1372

1376

1406

1545

1714

1723

1731

1734

1737

2472

2662*

RUSe-iWO

1373

1378

1422

2065

2068

2071

2095

2132

2467

2652*

 

 

RDKEV

98*

3315

3626

3656

3710

 

 

 

 

 

 

 

RNDLOC

90*

3868

3869

3871

3871

 

 

 

 

 

 

 

RNGD8G

35*

103

2453

3146

 

 

 

 

 

 

 

 

RSGMFL

3794

3803

3823

3831

3844

3855*

 

 

 

 

 

 

RSGMMV

3811

3816

3820

3828

3836

3859*

3863

 

 

 

 

 

RTSCC

6994

 

 

 

 

 

 

 

 

 

 

 

RTSCS

706*

2302

2313

2886

 

 

 

 

 

 

 

 

PTSE0

685*

1663

2229

2230

2298

2529

 

 

 

 

 

 

RTSGE

720*

 

 

 

 

 

 

 

 

 

 

 

RTSGT

727*

3223

 

 

 

 

 

 

 

 

 

 

RTSLT

713*

 

 

 

 

 

 

 

 

 

 

 

RTSMI

742*

 

 

 

 

 

 

 

 

 

 

 

RTSNE

692*

2683

2781

 

 

 

 

 

 

 

 

 

RTSPL

735*

2540

 

 

 

 

 

 

 

 

 

 

RWTS

63*

3508

 

 

 

 

 

 

 

 

 

 

RWTSOR

53*

54

63

 

 

 

 

 

 

 

 

 

SBW0PT

172*

1111

1113

2957

2959

 

 

 

 

 

 

 

SCMSLN

3343*

3370

 

 

 

 

 

 

 

 

 

 

SCORMS

3341*

3343

3370

3370

 

 

 

 

 

 

 

 

SECPTK

113*

3499

3506

 

 

 

 

 

 

 

 

 

SEPTAS

2308*

2317

 

 

 

 

 

 

 

 

 

 

SETAXB

1571

1652

1705

1884

1889

2739*

 

 

 

 

 

 

SETAXW

1756

2748*

2963

 

 

 

 

 

 

 

 

 

SETUPA

1818

1831

1845

2547*

 

 

 

 

 

 

 

 

SETUPP

1899

1937

1957

2187

2571*

 

 

.

 

 

 

 

SETUPT

1600

1605

1616

1660

1667

1678

1695

1792

1866

1870

2548

2572

 

2615*

 

 

 

 

 

 

 

 

 

 

 

SHWMSG

3313

3371

3381

3427*

3650

3654

 

 

 

 

 

 

SPCLCH

2906

2973*

3093

 

 

 

 

 

 

 

 

 

START

1027*

1142

3911

 

 

 

 

 

 

 

 

 

STCKLC

45*

46

1043

1043

 

 

 

 

 

 

 

 

STCKMX

44*

46

2660

 

 

 

 

 

 

 

 

 

STKCNT

151*

1042

1713

2136

2657

2658

2667

3739

3739

3819

3819

 

-STKCSV

154*

1713

1740

2064

2136

 

 

 

 

 

 

 

STKLIM

46*

3747

3747

3755

3755

3827

3827

3835

3835

 

 

 

STKPNT

152*

1043

1043

1712

1712

2137

2137

2653

2653

2653

2655

2656

 

(
2656 2656
STKPSV 1531 1712
SILTYP 1871 1096
STR 526*
SUB 370* 1057
1729 1752
3061 3061
SVGMFL 3743 3751
SVGMMV 3732 3736
SWPMEM 138* 1115
SWPPGS 141* 1122
TBCHAR 70* 2309
THGATT 218*
THGCHD 221* 1606
THGPAR 219* 1617
THGPRP 222* 1697
THOSIB 220* 1601
TIMEMS 3345* 3347
TMMSLN 3347* 3380
TMPMOO 156* 2885
TSTA 522* 1366
3109
TSTABE 909* 1365
TSTABM 924* 1447
TSTABN 914* 1612
TSTABP 919* 1451
TSTAJE 929* 1421
TSTARP 934* 2539
TSTCHR 3051 3059
TSTMOD 2891 2932
VERSN 34* 50
VMT1LC 58* 1047
VMT2LC 59* 1048
VMT3LC 60* 1049
VMT4LC 61* 1050
VMTAB1 146* 1047
VMTAB2 147* 1048
VMTAB3 148* 1049
VMTAB4 149* 1050
VMIORG 52* 53
VTAB 95* 3354
WNOBOT 79* 3153
WNOLFT 76* 3151
WNDTOP 78* 3148
WNDWOT 77* 3152
ZPORG 42* 111

2657 2664
1712 1736
3367 3398
1118 1292
2108 2401
3068 3193
3759 3767
3740 3748
1116 1119
2863
1668 1675
1661 1686
2573
1673 1679
3380 3380
2934 2971
1370 1384
1369
2892

(

(
2665 2665 2666 2667 2667
1736 2068 2068 2137 2137
1385 1393 1424 1431 1481 1483 1624 1646
2551 2556 2653 2656 2901 2930 2947 3007
3316
3772 3777*
3756 3781* 3785
2723 2723 2821 2821
1871
1868
1878
2982 2987
1422 1448 1452 1613 2084 2540 2893 3053
1383 2083 3052 3108

31 00*
298 2*
1047
1048
1049
1050
1047 1054 2730 2828 2867
1048 1054 2731 2829 2869
1049 1056 1062 1126 2843 2844 2849
1050 1058 2846 2847 2852 2856
58 59 60 61
3424
3310
3160 3319 3439
3199 3211 3223 3324