                          1 ; ******** HALGOL/48 V1.02 ********
                          2 ;
                          3 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          4 ;
                          5 ; THIS VERSION OF HALGOL IS TO BE USED WITH THE
                          6 ; 62 BIT (48 BIT MANT) FLOATING POINT PACKAGE.
                          7 ;
                          8          FWRD    W
                          9          BRANCH  S
                         10          SHORT   F
                         11 ;
                         12 ; FOLLOWING ARE I/O ASSIGNMENTS:
                         13 ;
00000FFA:                14 STATUS   EQU     $0FFA
00000FF8:                15 DATIN    EQU     $0FF8
00000FFA:                16 DATOUT   EQU     $0FFA
                         17 ;
                         18 ; FOLLOWING ARE MEMORY ASSIGNMENTS
                         19 ; USED BY THE BOOTSTRAP ROM (MONITOR):
                         20 ;
00000122:                21 IDLE     EQU     $0122
                         22 ;
00001900:                23 MODE     EQU     $1900
00001902:                24 S1       EQU     $1902
00001904:                25 M1       EQU     S1+2
0000190A:                26 S2       EQU     S1+8
0000190C:                27 M2       EQU     S2+2
00001912:                28 FPT      EQU     S2+8
0000191A:                29 FPU      EQU     FPT+8
00001922:                30 LOGX     EQU     FPU+8
00001922:                31 BCDX     EQU     LOGX
00001922:                32 SINSGN   EQU     LOGX
00001923:                33 SERCNT   EQU     LOGX+1
00001924:                34 EXPADD   EQU     LOGX+2         ;EXP ADDER
00001600:                35 BUFFER   EQU     $1600
00001600:                36 STR      EQU     BUFFER         ;USED AT RUN TIME
00001700:                37 TEMPB    EQU     $1700
00001800:                38 WRKBUF   EQU     $1800
00001600:                39 LINBUF   EQU     BUFFER
                         40 ;
000014FE:                41 FORSTK   EQU     $14FE          ;$1400 - $14FF
00001500:                42 INDEX    EQU     $1500
00001504:                43 INSADR   EQU     $1504
00001508:                44 SFLAG    EQU     $1508
0000150C:                45 MADR     EQU     $150C
00001510:                46 PMTPOS   EQU     $1510
00001514:                47 WRKADR   EQU     $1514
00001516:                48 NUMWDS   EQU     $1516
00001518:                49 KBTEST   EQU     $1518
0000151A:                50 LBLTEMP  EQU     $151A          ;LONG WORD
0000151A:                51 COND     EQU     LBLTEMP        ;SHARE WORD REG
0000151C:                52 TBUFF    EQU     $151C          ;BYTE
0000151D:                53 TLINE    EQU     $151D          ;BYTE
0000151E:                54 BUFR1    EQU     $151E          ;BYTE
0000152C:                55 ERRPTR   EQU     $152C          ;LONG WORD
00001530:                56 CTLCFLG  EQU     $1530
00001532:                57 TXTLEN   EQU     $1532
                         58 ;
                         60 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         61 ;
00001534:                62 PARM1    EQU     $1534
00001536:                63 PARM2    EQU     $1536
00001538:                64 TEMP     EQU     $1538
00001540:                65 LINE     EQU     $1540
00001542:                66 COLUMN   EQU     $1542
00001546:                67 SSFFLGS  EQU     $1546          ;LONG WORD PARM
                         68 ;
0000154A:                69 EDTLN    EQU     $154A
0000154C:                70 NLINES   EQU     $154C
0000154E:                71 STMTCNT  EQU     $154E          ;STATEMENTS/LINE
00001552:                72 SOBLCK   EQU     $1552          ;START OF MEM BLK
00001556:                73 EOBLCK   EQU     $1556          ;END OF MEM BLK
0000155A:                74 CDESIZE  EQU     $155A          ;HALOL CODE SIZE
                         75 ;
00001580:                76 SOH      EQU     $1580          ;HALGOL OBJ CODE
00001584:                77 EOH      EQU     SOH+4
                         78 ;
00001588:                79 SOLN     EQU     SOH+8          ;LINE # TBL
0000158C:                80 EOLN     EQU     SOLN+4
                         81 ;
00001590:                82 SOLA     EQU     SOLN+8         ;LINE ADDRESS TBL
00001594:                83 EOLA     EQU     SOLA+4
                         84 ;
00001598:                85 SOLBN    EQU     SOLA+8         ;LABEL NAME TBL
0000159C:                86 EOLBN    EQU     SOLBN+4
                         87 ;
000015A0:                88 SOLBA    EQU     SOLBN+8        ;LABEL ADDRESS TBL
000015A4:                89 EOLBA    EQU     SOLBA+4
                         90 ;
000015A8:                91 SOIN     EQU     SOLBA+8        ;INTEGER NAME TBL
000015AC:                92 EOIN     EQU     SOIN+4
                         93 ;
000015B0:                94 SOCN     EQU     SOIN+8         ;CONST NAME TBL
000015B4:                95 EOCN     EQU     SOCN+4
                         96 ;
000015B8:                97 SOC      EQU     SOCN+8         ;CONST VALUE TBL
000015BC:                98 EOC      EQU     SOC+4
                         99 ;
000015C0:               100 SOVN     EQU     SOC+8          ;VAR NAME TBL
000015C4:               101 EOVN     EQU     SOVN+4
                        102 ;
000015C8:               103 SOAN     EQU     SOVN+8         ;ARRAY NAME TBL
000015CC:               104 EOAN     EQU     SOAN+4
                        105 ;
000015D0:               106 SADT     EQU     SOAN+8         ;ARY DESCRIPTR TBL
000015D4:               107 EADT     EQU     SADT+4
                        108 ;
000015D8:               109 SOI      EQU     SADT+8         ;INT VALUE TBL
000015DC:               110 EOI      EQU     SOI+4
                        111 ;
000015E0:               112 SOV      EQU     SOI+8          ;VAR VALUE TBL
000015E4:               113 EOV      EQU     SOV+4
                        114 ;
000015E8:               115 SOA      EQU     SOV+8          ;ARRAY VALUE TBL
000015EC:               116 EOA      EQU     SOA+4
                        117 ;

                        119 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        120 ;
00001F80:               121 CHRMSK   EQU     $1F80          ;REAL ADR $2000
00002080:               122 TBLA     EQU     $2080
000020B0:               123 LISTER   EQU     $20B0
000020B4:               124 PRINTER  EQU     LISTER+4
000020B8:               125 SYSOUT   EQU     LISTER+8
000020BC:               126 ACTIVE   EQU     LISTER+12
                        127 ;
000020C0:               128 JV1      EQU     LISTER+16      ;JUMP VECTOR TABLE
000020C0:               129 FPADD    EQU     JV1
000020C4:               130 CPFP1M   EQU     FPADD+4
000020C8:               131 CPFPOS   EQU     CPFP1M+4
000020CC:               132 PRNTFP   EQU     CPFPOS+4
000020D0:               133 PRSTRM   EQU     PRNTFP+4
000020D4:               134 NUMEVAL  EQU     PRSTRM+4
000020D8:               135 HPTBL    EQU     NUMEVAL+4
                        136 ;
00004C00:               137 JV3      EQU     $4C00
00004C00:               138 GETVR    EQU     JV3
                        139 ;
00006000:               140 JV4      EQU     $6000
00006000:               141 COLDSTRT EQU     JV4
00006004:               142 WARMSTRT EQU     COLDSTRT+4
00006008:               143 ERROR    EQU     WARMSTRT+4
                        144 ;
00007300:               145 JV5      EQU     $7300
00007300:               146 ELET     EQU     JV5
00007304:               147 LLET1    EQU     ELET+4
00007308:               148 ELET1    EQU     LLET1+4
0000730C:               149 MUNG     EQU     ELET1+4
                        150 ;
--OBJECT: HALGOL.OBJ0
  003600:               151          ORG     $3600
                                     CHAIN   S48

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
                          4 ;--------------------------
                          5 ;-- KEYWORD ACTION TABLE --
                          6 ;--------------------------
                          7 ;
  003600: 3C98            8 ACTTBL   DC.W    LET
  003602: 3B0A            9          DC.W    GOSUB
  003604: 3ADE           10          DC.W    GOTO
  003606: 3AB0           11          DC.W    ASSIGN
  003608: 3B72           12          DC.W    OEGOTO
  00360A: 3B1C           13          DC.W    RETURN
  00360C: 3BAC           14          DC.W    INPUT
  00360E: 3BC0           15          DC.W    INPUTS
  003610: 3BEC           16          DC.W    PRINT
  003612: 3C20           17          DC.W    PRINTCR
  003614: 3C32           18          DC.W    PRINTS
  003616: 3C40           19          DC.W    PRINTSV
  003618: 3B9C           20          DC.W    STOP
  00361A: 3CD2           21          DC.W    HOME
  00361C: 3CF2           22          DC.W    VTAB
  00361E: 3D18           23          DC.W    HTAB
  003620: 3D42           24          DC.W    VTABC
  003622: 3D50           25          DC.W    HTABC
  003624: 3C68           26          DC.W    HPRINT
  003626: 3B86           27          DC.W    END
  003628: 3F00           28          DC.W    REM
  00362A: 3B48           29          DC.W    LOCAL
  00362C: 3D64           30          DC.W    IF1
  00362E: 3F0C           31          DC.W    FOR0           ;DUMMY 'FOR'
  003630: 3FEC           32          DC.W    NEXT
  003632: 40A4           33          DC.W    MAV1C          ;DUMMY MAV 
  003634: 4224           34          DC.W    MVA1C          ;DUMMY MVA
  003636: 404E           35          DC.W    TEXT
  003638: 4058           36          DC.W    HGR1
  00363A: 4062           37          DC.W    HGR2
  00363C: 406C           38          DC.W    HCLR1
  00363E: 4076           39          DC.W    HCLR2
  003640: 4080           40          DC.W    PPLOT
  003642: 4094           41          DC.W    LPLOT
  003644: 408A           42          DC.W    PCLR
  003646: 409E           43          DC.W    LCLR
  003648: 0000           44          DC.W    0
  00364A: 0000           45          DC.W    0
  00364C: 0000           46          DC.W    0
  00364E: 0000           47          DC.W    0
  003650: 0000           48          DC.W    0
  003652: 0000           49          DC.W    0
  003654: 0000           50          DC.W    0
  003656: 0000           51          DC.W    0
  003658: 0000           52          DC.W    0
  00365A: 0000           53          DC.W    0
  00365C: 0000           54          DC.W    0
  00365E: 0000           55          DC.W    0
  003660: 0000           56          DC.W    0
  003662: 0000           57          DC.W    0
  003664: 0000           58          DC.W    0
  003666: 0000           59          DC.W    0
  003668: 0000           60          DC.W    0
                         61 ;

  00366A: 0000           63          DC.W    0
  00366C: 0000           64          DC.W    0
  00366E: 0000           65          DC.W    0
  003670: 0000           66          DC.W    0
  003672: 0000           67          DC.W    0
  003674: 0000           68          DC.W    0
  003676: 0000           69          DC.W    0
  003678: 0000           70          DC.W    0
  00367A: 0000           71          DC.W    0
  00367C: 0000           72          DC.W    0
  00367E: 0000           73          DC.W    0
  003680: 0000           74          DC.W    0
  003682: 0000           75          DC.W    0
  003684: 0000           76          DC.W    0
  003686: 0000           77          DC.W    0
  003688: 0000           78          DC.W    0
  00368A: 0000           79          DC.W    0
  00368C: 0000           80          DC.W    0
  00368E: 0000           81          DC.W    0
  003690: 0000           82          DC.W    0
  003692: 0000           83          DC.W    0
  003694: 0000           84          DC.W    0
  003696: 0000           85          DC.W    0
  003698: 0000           86          DC.W    0
  00369A: 0000           87          DC.W    0
  00369C: 0000           88          DC.W    0
  00369E: 0000           89          DC.W    0
  0036A0: 0000           90          DC.W    0
  0036A2: 0000           91          DC.W    0
  0036A4: 0000           92          DC.W    0
  0036A6: 0000           93          DC.W    0
  0036A8: 0000           94          DC.W    0
  0036AA: 0000           95          DC.W    0
  0036AC: 0000           96          DC.W    0
  0036AE: 0000           97          DC.W    0
  0036B0: 0000           98          DC.W    0
  0036B2: 0000           99          DC.W    0
  0036B4: 0000          100          DC.W    0
  0036B6: 0000          101          DC.W    0
  0036B8: 0000          102          DC.W    0
  0036BA: 0000          103          DC.W    0
  0036BC: 0000          104          DC.W    0
  0036BE: 0000          105          DC.W    0
  0036C0: 0000          106          DC.W    0
  0036C2: 0000          107          DC.W    0
  0036C4: 0000          108          DC.W    0
  0036C6: 0000          109          DC.W    0
  0036C8: 0000          110          DC.W    0
  0036CA: 0000          111          DC.W    0
  0036CC: 0000          112          DC.W    0
  0036CE: 0000          113          DC.W    0
  0036D0: 0000          114          DC.W    0
  0036D2: 0000          115          DC.W    0
  0036D4: 0000          116          DC.W    0
  0036D6: 0000          117          DC.W    0
  0036D8: 0000          118          DC.W    0
  0036DA: 0000          119          DC.W    0
  0036DC: 0000          120          DC.W    0
  0036DE: 0000          121          DC.W    0
                        122 ;

                        124 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC.
                        125 ;
                        126 ;-------------------------
                        127 ;-- SECOND ACTION TABLE --
                        128 ;-------------------------
                        129 ;
  0036E0: 3DA2          130 ACTTBL2  DC.W    REL1           ;+ 0
  0036E2: 3DC0          131          DC.W    REL2           ;+ 2
  0036E4: 3DE2          132          DC.W    REL3           ;+ 4
  0036E6: 3E18          133          DC.W    REL4           ;+ 6
  0036E8: 3E4E          134          DC.W    REL5           ;+ 8
  0036EA: 3E84          135          DC.W    REL6           ;+10
  0036EC: 3EBC          136          DC.W    REL7           ;+12
  0036EE: 3EC4          137          DC.W    REL8           ;+14
  0036F0: 3ECC          138          DC.W    REL9           ;+16
  0036F2: 3ED8          139          DC.W    REL10          ;+18
  0036F4: 3EE4          140          DC.W    REL11          ;+20
  0036F6: 3EF0          141          DC.W    REL12          ;+22
  0036F8: 3AC4          142          DC.W    GOTOT          ;+24
  0036FA: 3ACE          143          DC.W    GOTOF          ;+26
  0036FC: 3AEA          144          DC.W    GOSUBT         ;+28
  0036FE: 3AFA          145          DC.W    GOSUBF         ;+30
  003700: 3C7C          146          DC.W    THEN           ;+32
  003702: 3C84          147          DC.W    ELSE           ;+34
  003704: 3ABC          148          DC.W    POPCOND        ;+36
  003706: 3D76          149          DC.W    IF2            ;+38
  003708: 3D8C          150          DC.W    IF3            ;+40
  00370A: 0000          151          DC.W    0              ;+42
  00370C: 3F0C          152          DC.W    FOR0           ;+44
  00370E: 3F1C          153          DC.W    FOR1           ;+46
  003710: 3F2E          154          DC.W    FOR2           ;+48
  003712: 3F40          155          DC.W    FOR3           ;+50
  003714: 3F52          156          DC.W    FOR4           ;+52
  003716: 3F64          157          DC.W    FOR5           ;+54
  003718: 3F76          158          DC.W    FOR6           ;+56 
  00371A: 3F88          159          DC.W    FOR7           ;+58 
  00371C: 0000          160          DC.W    0              ;+60
  00371E: 0000          161          DC.W    0              ;+62
  003720: 0000          162          DC.W    0              ;+64
  003722: 0000          163          DC.W    0              ;+66
  003724: 40A4          164          DC.W    MAV1C          ;+68
  003726: 40AA          165          DC.W    MAV1V          ;+70
  003728: 40CE          166          DC.W    MAV2CC         ;+72
  00372A: 40D6          167          DC.W    MAV2VC         ;+74
  00372C: 40E4          168          DC.W    MAV2CV         ;+76
  00372E: 40F0          169          DC.W    MAV2VV         ;+78
  003730: 4124          170          DC.W    MAV3CCC        ;+80
  003732: 412E          171          DC.W    MAV3VCC        ;+82
  003734: 413E          172          DC.W    MAV3CVC        ;+84
  003736: 414E          173          DC.W    MAV3VVC        ;+86
  003738: 4164          174          DC.W    MAV3CCV        ;+88
  00373A: 4172          175          DC.W    MAV3VCV        ;+90
  00373C: 4182          176          DC.W    MAV3CVV        ;+92
  00373E: 418C          177          DC.W    MAV3VVV        ;+94
  003740: 4224          178          DC.W    MVA1C          ;+96
  003742: 422A          179          DC.W    MVA1V          ;+98
  003744: 424E          180          DC.W    MVA2CC         ;+100
  003746: 4256          181          DC.W    MVA2VC         ;+102
  003748: 4264          182          DC.W    MVA2CV         ;+104
                        183 ;

  00374A: 4270          185          DC.W    MVA2VV         ;+106
  00374C: 42A4          186          DC.W    MVA3CCC        ;+108
  00374E: 42AE          187          DC.W    MVA3VCC        ;+110
  003750: 42BE          188          DC.W    MVA3CVC        ;+112
  003752: 42CE          189          DC.W    MVA3VVC        ;+114
  003754: 42E4          190          DC.W    MVA3CCV        ;+116
  003756: 42F2          191          DC.W    MVA3VCV        ;+118
  003758: 4302          192          DC.W    MVA3CVV        ;+120
  00375A: 430C          193          DC.W    MVA3VVV        ;+122
  00375C: 0000          194          DC.W    0
  00375E: 0000          195          DC.W    0
  003760: 0000          196          DC.W    0
  003762: 0000          197          DC.W    0
  003764: 0000          198          DC.W    0
  003766: 0000          199          DC.W    0
  003768: 0000          200          DC.W    0
  00376A: 0000          201          DC.W    0
  00376C: 0000          202          DC.W    0
  00376E: 0000          203          DC.W    0
  003770: 0000          204          DC.W    0
  003772: 0000          205          DC.W    0
  003774: 0000          206          DC.W    0
  003776: 0000          207          DC.W    0
  003778: 0000          208          DC.W    0
  00377A: 0000          209          DC.W    0
  00377C: 0000          210          DC.W    0
  00377E: 0000          211          DC.W    0
  003780: 0000          212          DC.W    0
  003782: 0000          213          DC.W    0
  003784: 0000          214          DC.W    0
  003786: 0000          215          DC.W    0
  003788: 0000          216          DC.W    0
  00378A: 0000          217          DC.W    0
  00378C: 0000          218          DC.W    0
  00378E: 0000          219          DC.W    0
  003790: 0000          220          DC.W    0
  003792: 0000          221          DC.W    0
  003794: 0000          222          DC.W    0
  003796: 0000          223          DC.W    0
  003798: 0000          224          DC.W    0
  00379A: 0000          225          DC.W    0
  00379C: 0000          226          DC.W    0
  00379E: 0000          227          DC.W    0
  0037A0: 0000          228          DC.W    0
  0037A2: 0000          229          DC.W    0
  0037A4: 0000          230          DC.W    0
  0037A6: 0000          231          DC.W    0
  0037A8: 0000          232          DC.W    0
  0037AA: 0000          233          DC.W    0
  0037AC: 0000          234          DC.W    0
  0037AE: 0000          235          DC.W    0
  0037B0: 0000          236          DC.W    0
  0037B2: 0000          237          DC.W    0
  0037B4: 0000          238          DC.W    0
  0037B6: 0000          239          DC.W    0
  0037B8: 0000          240          DC.W    0
  0037BA: 0000          241          DC.W    0
  0037BC: 0000          242          DC.W    0
  0037BE: 0000          243          DC.W    0
                        244 ;

                        246 ; COPYRIGHT 1984 DIGITAL ACOUSTICS, INC.
                        247 ;
                        248 ;         *****  HALGOL  *****
                        249 ;
                        250 ; HALGOL IS A THREADED PROGRAMMING LANGUAGE WITH
                        251 ; VERY LITTLE RUN-TIME OVERHEAD.  THE FLOATING
                        252 ; POINT PACKAGE FOR THIS VERSION IS THE FOURTEEN
                        253 ; DECIMAL DIGIT DOUBLE PRECISION 62 BIT PACKAGE.
                        254 ;
                        255 ; HERE IS THE ADDRESS REGISTER USAGE:
                        256 ;
                        257 ; A7 IS THE MACHINE STACK POINTER
                        258 ; A6 IS THE PROGRAM POINTER
                        259 ; A5 IS A SCRATCH REGISTER
                        260 ; A4 IS DEDICATED TO POINT TO HALGOL
                        261 ; A3 IS THE PROGRAM SUBROUTINE STACK POINTER
                        262 ; A2 IS THE DATA STACK POINTER
                        263 ; A1 IS UNDEFINED AS YET
                        264 ; A0 IS A SCRATCH REGISTER PRIMARILY USED
                        265 ;    TO POINT AT FLOATING POINT VARIABLES.
                        266 ;
                        267 ; ALL OF THE DATA REGISTERS ARE SCRATCH REGISTERS.
                        268 ;
  0037C0: 2C781580      269 BEGIN    MOVE.L  SOH,A6         ;PROG ADDR TO A6
  0037C4: 49F837CE      270          LEA     HALGOL,A4      ;TRACE OFF
                        271 ;
                        272 ; EXECUTE TRACE CODE ON EVERY INSTRUCTION
                        273 ;
  0037C8: 4E71          274 TRACE    NOP                    ;RESERVE SPACE
  0037CA: 4E71          275          NOP                    ;FOR LONG GOSUB
  0037CC: 4E71          276          NOP
                        277 ;
                        278 ; TEST FOR A CTL-C BEFORE EVERY HALGOL INSTRUCTION
                        279 ;
  0037CE: 4A380FFA      280 HALGOL   TST.B   STATUS         ;BYTE AVAIL ?
  0037D2: 6A10          281          BPL     HALGOL1        ;SKIP IF NOT
                        282 ;
  0037D4: 1E380FF8      283          MOVE.B  DATIN,D7       ;READ KEY CODE
  0037D8: 0C070083      284          CMPI.B  #$83,D7        ;CTL-C?
  0037DC: 6606          285          BNE     HALGOL1        ;CONTINUE EXEC
                        286 ;
                        287 ; ELSE TERMINATE PROGRAM EXECUTION ON CTL-C
                        288 ;
  0037DE: 4BF83B86      289          LEA     END,A5         ;END PROG ADR
  0037E2: 4ED5          290          JMP     (A5)           ;JUMP TO RETURN
                        291 ;
  0037E4: 3A5E          292 HALGOL1  MOVE.W  (A6)+,A5       ;FETCH ACTION ADR
  0037E6: 4ED5          293          JMP     (A5)           ;JUMP TO ACTION ADR
                        294 ;
                                     CHAIN   KWD

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
                          4 ;-------------------
                          5 ;-- KEYWORD TABLE --
                          6 ;-------------------
                          7 ;
                          8 ; THIS TABLE CONTAINS THE HALGOL KEYWORDS USED IN
                          9 ; BOTH LISTING AND VALIDATING HALGOL KEYWORDS
                         10 ;
  0037E8: 03             11 KEY1     DC.B    $03
  0037E9: CCC5D4         12          ASC     "LET"
  0037EC: 05             13          DC.B    $05
  0037ED: C7CFD3D5C2     14          ASC     "GOSUB"
  0037F2: 04             15          DC.B    $04
  0037F3: C7CFD4CF       16          ASC     "GOTO"
  0037F7: 06             17          DC.B    6
  0037F8: C1D3D3C9C7CE   18          ASC     "ASSIGN"
  0037FE: 06             19          DC.B    $06
  0037FF: CFC5C7CFD4CF   20          ASC     "OEGOTO"
  003805: 06             21          DC.B    $06
  003806: D2C5D4D5D2CE   22          ASC     "RETURN"
  00380C: 05             23          DC.B    $05
  00380D: C9CED0D5D4     24          ASC     "INPUT"
  003812: 05             25          DC.B    5
  003813: C9CED0D5D4     26          ASC     "INPUT"
  003818: 05             27          DC.B    $05
  003819: D0D2C9CED4     28          ASC     "PRINT"
  00381E: 05             29          DC.B    5
  00381F: D0D2C9CED4     30          ASC     "PRINT"
  003824: 05             31          DC.B    5
  003825: D0D2C9CED4     32          ASC     "PRINT"
  00382A: 05             33          DC.B    5
  00382B: D0D2C9CED4     34          ASC     "PRINT"
  003830: 04             35          DC.B    $04
  003831: D3D4CFD0       36          ASC     "STOP"
  003835: 04             37          DC.B    $04
  003836: C8CFCDC5       38          ASC     "HOME"
  00383A: 04             39          DC.B    $04
  00383B: D6D4C1C2       40          ASC     "VTAB"
  00383F: 04             41          DC.B    $04
  003840: C8D4C1C2       42          ASC     "HTAB"
  003844: 04             43          DC.B    $04
  003845: D6D4C1C2       44          ASC     "VTAB"         ;VTABC
  003849: 04             45          DC.B    $04
  00384A: C8D4C1C2       46          ASC     "HTAB"         ;HTABC
  00384E: 03             47          DC.B    3
  00384F: C8D0D2         48          ASC     "HPR"
  003852: 03             49          DC.B    3
  003853: C5CEC4         50          ASC     "END"
  003856: 03             51          DC.B    3
  003857: D2C5CD         52          ASC     "REM"
  00385A: 05             53          DC.B    5
  00385B: CCCFC3C1CC     54          ASC     "LOCAL"
  003860: 02             55          DC.B    2
  003861: C9C6           56          ASC     "IF"
  003863: 03             57          DC.B    3
  003864: C6CFD2         58          ASC     "FOR"
  003867: 04             59          DC.B    4
  003868: CEC5D8D4       60          ASC     "NEXT"
                         61 ;

                         63 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         64 ;
  00386C: 03             65          DC.B    3
  00386D: CDC1D6         66          ASC     "MAV"
  003870: 03             67          DC.B    3
  003871: CDD6C1         68          ASC     "MVA"
  003874: 00             69          DC.B    0              ;TEMPORARY END
  003875: 04             70          DC.B    4
  003876: D4C5D8D4       71          ASC     "TEXT"
  00387A: 04             72          DC.B    4
  00387B: C8C7D2B1       73          ASC     "HGR1"
  00387F: 04             74          DC.B    4
  003880: C8C7D2B2       75          ASC     "HGR2"
  003884: 05             76          DC.B    5
  003885: C8C3CCD2B1     77          ASC     "HCLR1"
  00388A: 05             78          DC.B    5
  00388B: C8C3CCD2B2     79          ASC     "HCLR2"
  003890: 05             80          DC.B    5
  003891: D0D0CCCFD4     81          ASC     "PPLOT"
  003896: 05             82          DC.B    5
  003897: CCD0CCCFD4     83          ASC     "LPLOT"
  00389C: 04             84          DC.B    4
  00389D: D0C3CCD2       85          ASC     "PCLR"
  0038A1: 04             86          DC.B    4
  0038A2: CCC3CCD2       87          ASC     "LCLR"
  0038A6: 00             88          DC.B    $00
                         89 ;

                         91 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         92 ;
--OBJECT: HALGOL.OBJ1
  003A00:                93          ORG     $3A00          ;FOR JUMP VECTORS
                         94 ;
                         95 ; JUMP VECTOR LINKS TO ROUTINES
                         96 ;
  003A00: 4EF83AA6       97 JV2      JMP     LBLADR
  003A04: 4EF83AB0       98          JMP     ASSIGN
  003A08: 4EF83B86       99          JMP     END
  003A0C: 4EF83BC0      100          JMP     INPUTS
  003A10: 4EF83C20      101          JMP     PRINTCR
  003A14: 4EF83C32      102          JMP     PRINTS
  003A18: 4EF83C40      103          JMP     PRINTSV
  003A1C: 4EF83D5C      104          JMP     FLIN1
  003A20: 4EF83D42      105          JMP     VTABC
  003A24: 4EF83D50      106          JMP     HTABC
  003A28: 4EF84378      107          JMP     CMD0
  003A2C: 4EF8437A      108          JMP     CMD1
  003A30: 4EF84380      109          JMP     READKB
  003A34: 4EF84392      110          JMP     BELL
  003A38: 4EF84396      111          JMP     CMD4
  003A3C: 4EF843A0      112          JMP     CMD5
  003A40: 4EF843B2      113          JMP     CMD6
  003A44: 4EF843C4      114          JMP     CMD7
  003A48: 4EF84428      115          JMP     CMD8
  003A4C: 4EF84444      116          JMP     CMD9
  003A50: 4EF84456      117          JMP     SETCSR
  003A54: 4EF8445A      118          JMP     CLRCSR
  003A58: 4EF84460      119          JMP     GETKEY
  003A5C: 4EF8446C      120          JMP     CLRKB
  003A60: 4EF843DE      121          JMP     ECHO
  003A64: 4EF84470      122          JMP     CLRCRT
  003A68: 4EF84546      123          JMP     PRNTVAR
  003A6C: 4EF8454E      124          JMP     PASCSTR
  003A70: 4EF84574      125          JMP     GETINDX
  003A74: 4EF845AA      126          JMP     LISTKEY
  003A78: 4EF8455E      127          JMP     PRNTSTR
  003A7C: 4EF84752      128          JMP     LASSIGN
  003A80: 4EF8483C      129          JMP     PRHEX4
  003A84: 4EF84844      130          JMP     PRHEX2
  003A88: 4EF845D0      131          JMP     LINFEED
  003A8C: 4EF845E2      132          JMP     OUTCHR
  003A90: 4EF84866      133          JMP     SHPRINT
  003A94: 4EF84876      134          JMP     SHPR1
  003A98: 4EF848A6      135          JMP     FIX16
  003A9C: 4EF848CE      136          JMP     SNDCHR
                        137 ;
                                     CHAIN   G48

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS, INC
                          3 ;
                          4 ; SKIP PAST THE LABEL'S ACTION ADDRESS
                          5 ;
  003AA0: 3CCA            6          DC.W    ENULL          ;EDIT LINK
  003AA2: 44F2            7          DC.W    LLBL           ;LIST LINK
  003AA4: 3CC8            8          DC.W    ADD2           ;LINE LINK
  003AA6: 548E            9 LBLADR   ADDQ.L  #2,A6          ;NOP ACT ADR
  003AA8: 4ED4           10          JMP     (A4)           ;GET NXT ACT ADR
                         11 ;
                         12 ; LOAD AN IMMEDIATE 8 BYTE FLOATING POINT #
                         13 ; ( THE ACTUAL FUNCTION NAME IS ASSIGN)
                         14 ;
  003AAA: 3CCA           15          DC.W    EIMM           ;EDIT LINK
  003AAC: 4752           16          DC.W    LASSIGN        ;LIST LINK
  003AAE: 3CC0           17          DC.W    ADD10          ;LINE LINK
  003AB0: 3A5E           18 ASSIGN   MOVE.W  (A6)+,A5       ;FETCH VAR OFFSET
  003AB2: DBF815E0       19          ADDA.L  SOV,A5         ;ADD BASE ADR
  003AB6: 2ADE           20          MOVE.L  (A6)+,(A5)+    ;-- NEXT 8 BYTES
  003AB8: 2ADE           21          MOVE.L  (A6)+,(A5)+    ;   IS FP # --
  003ABA: 4ED4           22          JMP     (A4)           ;RETURN TO HALGOL
                         23 ;
                         24 ; 'POP' THE CONDITION FROM THE HALGOL STACK
                         25 ;
  003ABC: 31DB151A       26 POPCOND  MOVE.W  (A3)+,COND     ;RESTORE COND
  003AC0: 4ED4           27          JMP     (A4)
                         28 ;
                         29 ; PERFORM GOTO IF THE CONDITION IS TRUE
                         30 ;
  003AC2: 4628           31          DC.W    LGOTOT
  003AC4: 4A78151A       32 GOTOT    TST.W   COND           ;CONDITION TRUE ?
  003AC8: 6614           33          BNE     GOTO           ;SKIP IF TRUE
                         34 ;
  003ACA: 548E           35          ADDQ.L  #2,A6          ;SKIP LABEL OFFSET
  003ACC: 4ED4           36          JMP     (A4)               
                         37 ;
                         38 ; PERFORM GOTO IF THE CONDITION IS FALSE
                         39 ;
  003ACE: 4A78151A       40 GOTOF    TST.W   COND           ;FALSE ?
  003AD2: 670A           41          BEQ     GOTO           ;SKIP IF FALSE
                         42 ;
  003AD4: 548E           43          ADDQ.L  #2,A6          ;SKIP LABEL OFFSET
  003AD6: 4ED4           44          JMP     (A4)
                         45 ;
                         46 ; GOTO THE ADDRESS OF A LABELLED HALGOL LINE
                         47 ;
  003AD8: 3CCA           48          DC.W    EGOTO          ;EDIT LINK
  003ADA: 44EC           49          DC.W    LLABEL         ;LIST LINK
  003ADC: 3CC8           50          DC.W    ADD2           ;LINE LINK
  003ADE: 3C56           51 GOTO     MOVEA.W (A6),A6        ;ADDR INDEX
  003AE0: DDF815A0       52          ADDA.L  SOLBA,A6       ;ADD BASE ADR
  003AE4: 2C56           53          MOVEA.L (A6),A6        ;FETCH LBL ADR
  003AE6: 4ED4           54          JMP     (A4)           ;RETURN TO HALGOL
                         55 ;

                         57 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         58 ;
                         59 ; PERFORM GOSUB IF THE CONDITION IS TRUE
                         60 ;
  003AE8: 462E           61          DC.W    LGOSUBT
  003AEA: 4A78151A       62 GOSUBT   TST.W   COND           ;TRUE ?
  003AEE: 6604           63          BNE     GOSUBT1        ;SKIP IF TRUE
                         64 ;
  003AF0: 588E           65          ADDQ.L  #4,A6          ;SKIP LBL, 'POP'
  003AF2: 4ED4           66          JMP     (A4)
                         67 ;
  003AF4: 3738151A       68 GOSUBT1  MOVE.W  COND,-(A3)     ;SAVE CONDITION
  003AF8: 6010           69          BRA     GOSUB
                         70 ;
                         71 ; PERFORM GOSUB IF THE CONDITION IS FALSE
                         72 ;
  003AFA: 4A78151A       73 GOSUBF   TST.W   COND           ;FALSE ?
  003AFE: 670A           74          BEQ     GOSUB          ;SKIP IF FALSE
                         75 ;
  003B00: 548E           76          ADDQ.L  #2,A6          ;SKIP LBL
  003B02: 4ED4           77          JMP     (A4)
                         78 ;
                         79 ; GOSUB TO THE ADDRESS OF A LABELLED HALGOL LINE
                         80 ;
  003B04: 3CCA           81          DC.W    EGOTO          ;EDIT LINK
  003B06: 44EC           82          DC.W    LLABEL         ;LIST LINK
  003B08: 3CC8           83          DC.W    ADD2           ;LINE LINK
  003B0A: 270E           84 GOSUB    MOVE.L  A6,-(A3)       ;PUSH OLD PROG PTR
  003B0C: 3C56           85          MOVEA.W (A6),A6        ;FETCH OFFSET ADR
  003B0E: DDF815A0       86          ADDA.L  SOLBA,A6       ;ADD BASE ADR
  003B12: 2C56           87          MOVE.L  (A6),A6
  003B14: 4ED4           88          JMP     (A4)           ;RETURN TO HALGOL
                         89 ;
                         90 ; RETURN FROM A HALGOL SUBROUTINE
                         91 ;
  003B16: 3CCA           92          DC.W    ENULL          ;EDIT LINK
  003B18: 44E6           93          DC.W    LKEY           ;LIST LINK
  003B1A: 3CCA           94          DC.W    ADD0           ;LINE LINK
  003B1C: 2E1B           95 RETURN   MOVE.L  (A3)+,D7       ;GET RETURN ADR
  003B1E: 6706           96          BEQ     RETZERO        ;SKIP IF ZERO
                         97 ;
  003B20: 5487           98          ADDQ.L  #2,D7          ;ADJ TO NEXT INST
  003B22: 2C47           99          MOVE.L  D7,A6          ;NEXT HALGOL ADR
  003B24: 4ED4          100          JMP     (A4)           ;RETURN TO HALGOL 
                        101 ;
  003B26: 3E1B          102 RETZERO  MOVE.W  (A3)+,D7       ;ANOTHER ZERO ?
  003B28: 6712          103          BEQ     REWOGS         ;ERROR, NO GOSUB
                        104 ;
                        105 ; D7 CONTAINS THE NUMBER OF STORED VARIABLES.
                        106 ; NOW RESTORE THEIR ORIGINAL VALUE
                        107 ;
  003B2A: 2A3815E0      108          MOVE.L  SOV,D5         ;VAR BASE ADR
  003B2E: 3A5B          109 RETLOOP  MOVE.W  (A3)+,A5       ;VAR BASE OFFSET
  003B30: DBC5          110          ADD.L   D5,A5          ;ADD BASE ADR
  003B32: 2ADB          111          MOVE.L  (A3)+,(A5)+    ;RESTORE VAR
  003B34: 2ADB          112          MOVE.L  (A3)+,(A5)+
  003B36: 5547          113          SUBQ.W  #2,D7          ;DECR VAR COUNT
  003B38: 66F4          114          BNE     RETLOOP        ;RESTORE ALL VARS
  003B3A: 60E0          115          BRA     RETURN         ;NOW RETURN
                        116 ;

                        118 ; REPORT RETURN WITHOUT GOSUB ERROR
                        119 ;
  003B3C: 7E2A          120 REWOGS   MOVEQ   #42,D7         ;ERROR #10
  003B3E: 4EF86008      121          JMP     ERROR          ;REPORT THE ERROR
                        122 ;
                        123 ; CREATE LOCAL VARIABLES
                        124 ;
  003B42: 3CCA          125          DC.W    ENULL
  003B44: 450E          126          DC.W    LLOCAL         ;LIST LINK
  003B46: 3CB0          127          DC.W    ADDN           ;LINE LINK
  003B48: 3E1E          128 LOCAL    MOVE.W  (A6)+,D7       ;# OF LOCALS
  003B4A: 3007          129          MOVE.W  D7,D0          ;TO D7 AND TO D0
  003B4C: 2A3815E0      130          MOVE.L  SOV,D5         ;VAR BASE ADR
  003B50: 3C1E          131 LOCLOOP  MOVE.W  (A6)+,D6       ;BASE OFFSET ADR
  003B52: 3A46          132          MOVE.W  D6,A5          ;TO D6 AND A5
  003B54: DBC5          133          ADD.L   D5,A5          ;ADD BASE ADR
  003B56: 508D          134          ADDQ.L  #8,A5          ;PREDECR ADR FIX
  003B58: 2725          135          MOVE.L  -(A5),-(A3)    ;STORE VAR
  003B5A: 4295          136          CLR.L   (A5)           ;INIT LOCAL VAR
  003B5C: 2725          137          MOVE.L  -(A5),-(A3)
  003B5E: 4295          138          CLR.L   (A5)
  003B60: 3706          139          MOVE.W  D6,-(A3)       ;STORE BASE OFFSET
  003B62: 5547          140          SUBQ.W  #2,D7          ;DECR LOC VAR COUNT
  003B64: 66EA          141          BNE     LOCLOOP        ;STORE ALL VARS
                        142 ;
  003B66: 3700          143          MOVE.W  D0,-(A3)       ;STORE VAR COUNT
  003B68: 42A3          144          CLR.L   -(A3)          ;0 = LOC VAR I.D.
  003B6A: 4ED4          145          JMP     (A4)           ;RETURN TO HALGOL
                        146 ;
                        147 ; CHANGE THE HALGOL ERROR ROUTINE ENTRY POINT
                        148 ;
  003B6C: 3CCA          149          DC.W    EGOTO          ;EDIT LINK
  003B6E: 44EC          150          DC.W    LLABEL         ;LIST LINK
                        151 ;
                        152 ;! START OF BIT ROT [003B70-003BA5]
                        153 ;! CODE RECOVERED BY DISASSEMBLY
                        154 ;
  003B70: 3CC8          155          DC.W    ADD2           ;LINE LINK
  003B72: 3A5E          156 OEGOTO   MOVEA.W (A6)+,A5
  003B74: DBF815A0      157          ADDA.L  SOLBA,A5
  003B78: 21D5152C      158          MOVE.L  (A5),ERRPTR
  003B7C: 4ED4          159          JMP     (A4)
                        160 ;
  003B7E: 6006          161          BRA     END
                        162 ;
  003B80: 3CCA          163          DC.W    ENULL          ;EDIT LINK
  003B82: 44E6          164          DC.W    LKEY           ;LIST LINK
  003B84: 3CCA          165          DC.W    ADD0           ;LINE LINK
  003B86: 4EB8445A      166 END      JSR     CLRCSR
  003B8A: 08F800041508  167          BSET    #$04,SFLAG
  003B90: 7E15          168          MOVEQ   #$15,D7
  003B92: 4EF86008      169          JMP     ERROR
                        170 ;
  003B96: 3CCA          171          DC.W    ENULL          ;EDIT LINK
  003B98: 44E6          172          DC.W    LKEY           ;LIST LINK
  003B9A: 3CCA          173          DC.W    ADD0           ;LINE LINK
  003B9C: 4EB8445A      174 STOP     JSR     CLRCSR
  003BA0: 7E14          175          MOVEQ   #$14,D7
  003BA2: 4EF86008      176          JMP     ERROR
                        177 ;
                        178 ;! END OF BIT ROT
                                     CHAIN   H48

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
                          4 ; SYNTAX:  INPUT VARN
                          5 ;
  003BA6: 3CCA            6          DC.W    EINPUT         ;EDIT LINK
  003BA8: 453A            7          DC.W    LKEYVAR        ;LIST LINK
  003BAA: 3CC8            8          DC.W    ADD2           ;LINE LINK
  003BAC: 21F820B820BC    9 INPUT    MOVE.L  SYSOUT,ACTIVE
  003BB2: 7EBF           10          MOVEQ   #"?",D7        ;INPUT PROMPT
  003BB4: 4EB845E2       11          JSR     OUTCHR         ;PR TO CONSOLE
  003BB8: 600A           12          BRA     INPX           ;FETCH VALUE
                         13 ;
                         14 ; SYNTAX:  INPUT "PROMPT STRING",VARN
                         15 ;
  003BBA: 3CCA           16          DC.W    EINPUT         ;EDIT LINK
  003BBC: 44B2           17          DC.W    LINPUTS        ;LIST LINK
  003BBE: 3CB8           18          DC.W    ADDIS          ;LINE LINK
  003BC0: 4EB83C44       19 INPUTS   JSR     SPRINTS        ;PRINT THE STRING
                         20 ;
  003BC4: 7EA0           21 INPX     MOVEQ   #" ",D7        ;SPACE
  003BC6: 4EB845E2       22          JSR     OUTCHR
  003BCA: 4EB84C00       23          JSR     GETVR          ;GET INPUT VALUE
                         24 ;
  003BCE: 4A381530       25          TST.B   CTLCFLG        ;CTL-C ENTERED?
  003BD2: 6700FFC8       26          BEQ.L   STOP           ;THEN STOP PROG
                         27 ;
  003BD6: 3A5E           28          MOVE.W  (A6)+,A5       ;FETCH OFFSET
  003BD8: DBF815E0       29          ADDA.L  SOV,A5         ;ADD BASE ADR
  003BDC: 2AF81902       30          MOVE.L  S1,(A5)+       ;STORE FPACC1
  003BE0: 2AF81906       31          MOVE.L  S1+4,(A5)+
  003BE4: 4ED4           32          JMP     (A4)           ;RETURN TO HALGOL
                         33 ;
                         34 ; SYNTAX:  PRINT VARN
                         35 ;
  003BE6: 3CCA           36          DC.W    ENULL          ;EDIT LINK
  003BE8: 453A           37          DC.W    LKEYVAR        ;LIST LINK
  003BEA: 3CC8           38          DC.W    ADD2           ;LINE LINK
  003BEC: 21F820B420BC   39 PRINT    MOVE.L  PRINTER,ACTIVE
  003BF2: 2F381902       40          MOVE.L  S1,-(A7)
  003BF6: 2F381906       41          MOVE.L  S1+4,-(A7)
  003BFA: 305E           42          MOVE.W  (A6)+,A0       ;FETCH OFFSET
  003BFC: D1F815E0       43          ADDA.L  SOV,A0         ;ADD BASE ADR
  003C00: 21D81902       44          MOVE.L  (A0)+,S1       ;FETCH VALUE
  003C04: 21D81906       45          MOVE.L  (A0)+,S1+4
  003C08: 4EB820CC       46          JSR     PRNTFP         ;FP TO ASCII STR
  003C0C: 4EB820D0       47          JSR     PRSTRM         ;PRINT THE STRING
  003C10: 21DF1906       48          MOVE.L  (A7)+,S1+4
  003C14: 21DF1902       49          MOVE.L  (A7)+,S1
  003C18: 4ED4           50          JMP     (A4)           ;RETURN TO HALGOL
                         51 ;
                         52 ; SYNTAX:  PRINT
                         53 ;
  003C1A: 3CCA           54          DC.W    ENULL          ;EDIT LINK
  003C1C: 44E6           55          DC.W    LKEY           ;LIST LINK
  003C1E: 3CCA           56          DC.W    ADD0           ;LINE LINK
  003C20: 21F820B420BC   57 PRINTCR  MOVE.L  PRINTER,ACTIVE
  003C26: 4EB845D0       58          JSR     LINFEED        ;<CR>
  003C2A: 4ED4           59          JMP     (A4)           ;RETURN TO HALGOL
                         60 ;

                         62 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         63 ;
                         64 ; SYNTAX: PRINT  (I.E. <CR>), OR
                         65 ; SYNTAX:  PRINT "LITERAL STRING"
                         66 ;
  003C2C: 3CCA           67          DC.W    EINPUT         ;EDIT LINK
  003C2E: 44C0           68          DC.W    LKEYSTR        ;LIST LINK
  003C30: 3CBC           69          DC.W    ADDPS          ;LINE LINK
  003C32: 6110           70 PRINTS   BSR     SPRINTS        ;PRINT THE STRING
  003C34: 4EB845D0       71          JSR     LINFEED        ;<CR>
  003C38: 4ED4           72          JMP     (A4)           ;RETURN TO HALGOL
                         73 ;
                         74 ; SYNTAX:  PRINT "LITERAL STRING",VARN
                         75 ;
  003C3A: 3CCA           76          DC.W    ENULL          ;EDIT LINK
  003C3C: 44B2           77          DC.W    LINPUTS
  003C3E: 3CB8           78          DC.W    ADDIS          ;LINE LINK
  003C40: 6102           79 PRINTSV  BSR     SPRINTS        ;PRINT THE STRING
  003C42: 60A8           80          BRA     PRINT          ;PRINT THE VARIABLE
                         81 ;
                         82 ; SUBROUTINE;  PRINT A STRING FROM HALGOL CODE.
                         83 ;
  003C44: 21F820B420BC   84 SPRINTS  MOVE.L  PRINTER,ACTIVE  ;SEL PRINT DEVICE
  003C4A: 1E1E           85 PRINTS1  MOVE.B  (A6)+,D7       ;FETCH CHAR
  003C4C: 6706           86          BEQ     PRINTS2        ;DONE IF $00
                         87 ;
  003C4E: 4EB845E2       88          JSR     OUTCHR         ;PRINT IT
  003C52: 60F6           89          BRA     PRINTS1        ;NEXT CHAR
                         90 ;
  003C54: 2E0E           91 PRINTS2  MOVE.L  A6,D7          ;PTR TO D7
  003C56: 5287           92          ADDQ.L  #1,D7          ;ADD #1 TO PTR
  003C58: E28F           93          LSR.L   #1,D7          ;DISCARD B0; EVEN
  003C5A: DE87           94          ADD.L   D7,D7          ;SHIFT LEFT
  003C5C: 2C47           95          MOVE.L  D7,A6          ;PTR EVEN
  003C5E: 4E75           96          RTS                    ;RETURN
                         97 ;
                         98 ; PRINT MEMORY AS HEX WORDS
                         99 ;
  003C60: 00003CCA      100          DC.L    ENULL          ;EDIT LINK
  003C64: 45BE          101          DC.W    LHPR           ;LIST LINK
  003C66: 3CC4          102          DC.W    ADD6           ;LINE LINK
  003C68: 201E          103 HPRINT   MOVE.L  (A6)+,D0       ;ADR TO D0
  003C6A: 321E          104          MOVE.W  (A6)+,D1       ;COUNT TO D1
  003C6C: 21CB1922      105          MOVE.L  A3,LOGX        ;SAVE A3
  003C70: 4EB84866      106          JSR     SHPRINT        ;HEXPR D1 LINES
  003C74: 26781922      107          MOVE.L  LOGX,A3        ;RESTORE A3
  003C78: 4ED4          108          JMP     (A4)           ;RETURN TO HALGOL
                        109 ;
                                     CHAIN   I48
                          1 ;! START OF BIT ROT [003C7A-003D5D]
                          2 ;! CODE RECOVERED BY DISASSEMBLY
                          3 ;
  003C7A: 4636            4          DC.W    $4636
                          5 ;
  003C7C: 4A78151A        6 THEN     TST.W   COND
  003C80: 6616            7          BNE     LET
  003C82: 6006            8          BRA     H3C8A
                          9 ;
  003C84: 4A78151A       10 ELSE     TST.W   COND
  003C88: 670E           11          BEQ     LET
  003C8A: 548E           12 H3C8A    ADDQ.L  #$02,A6
  003C8C: 3A5E           13          MOVEA.W (A6)+,A5
  003C8E: DDCD           14          ADDA.L  A5,A6
  003C90: 4ED4           15          JMP     (A4)
                         16 ;
  003C92: 3CCA           17          DC.W    ENULL          ;EDIT LINK
  003C94: 4738           18          DC.W    LLET           ;LIST LINK
  003C96: 3CAE           19          DC.W    H3CAE          ;LINE LINK
  003C98: 3A5E           20 LET      MOVEA.W (A6)+,A5
  003C9A: DDCD           21          ADDA.L  A5,A6
  003C9C: 4ED4           22          JMP     (A4)
                         23 ;
  003C9E: 101E           24 H3C9E    MOVE.B  (A6)+,D0
  003CA0: 66FC           25          BNE     H3C9E
  003CA2: 200E           26          MOVE.L  A6,D0
  003CA4: 5280           27          ADDQ.L  #$01,D0
  003CA6: E288           28          LSR.L   #$01,D0
  003CA8: D080           29          ADD.L   D0,D0
  003CAA: 2C40           30          MOVEA.L D0,A6
  003CAC: 4E75           31          RTS
                         32 ;
  003CAE: 548E           33 H3CAE    ADDQ.L  #$02,A6
                         34 ;
  003CB0: 4280           35 ADDN     CLR.L   D0
  003CB2: 301E           36          MOVE.W  (A6)+,D0
  003CB4: DDC0           37          ADDA.L  D0,A6
  003CB6: 4ED4           38          JMP     (A4)
                         39 ;
  003CB8: 61E4           40 ADDIS    BSR     H3C9E
  003CBA: 600C           41          BRA     ADD2
                         42 ;
  003CBC: 61E0           43 ADDPS    BSR     H3C9E
  003CBE: 4ED4           44          JMP     (A4)
                         45 ;
  003CC0: 548E           46 ADD10    ADDQ.L  #$02,A6
  003CC2: 548E           47 ADD8     ADDQ.L  #$02,A6
  003CC4: 548E           48 ADD6     ADDQ.L  #$02,A6
  003CC6: 548E           49 ADD4     ADDQ.L  #$02,A6
  003CC8: 548E           50 ADD2     ADDQ.L  #$02,A6
  003CCA: 4ED4           51 ADD0     JMP     (A4)
                         52 ;
00003CCA:                53 EGOTO    EQU     ADD0
00003CCA:                54 EIMM     EQU     ADD0
00003CCA:                55 EINPUT   EQU     ADD0
00003CCA:                56 ENULL    EQU     ADD0
                         57 ;
  003CCC: 3CCA           58          DC.W    ENULL          ;EDIT LIST
  003CCE: 44E6           59          DC.W    LKEY           ;LIST LINK
  003CD0: 3CCA           60          DC.W    ADD0           ;LINE LINK
  003CD2: 48E7FFFE       61 HOME     MOVEM.L A0-A6/D0-D7,-(SP)
  003CD6: 4EB8445A       62          JSR     CLRCSR
  003CDA: 4EB84470       63          JSR     CLRCRT
  003CDE: 42381540       64          CLR.B   LINE
  003CE2: 42381542       65          CLR.B   COLUMN
  003CE6: 4CDF7FFF       66          MOVEM.L (SP)+,A0-A6/D0-D7
  003CEA: 4ED4           67          JMP     (A4)
                         68 ;
  003CEC: 3CCA           69          DC.W    ENULL          ;EDIT LINK
  003CEE: 453A           70          DC.W    LKEYVAR        ;LIST LINK
  003CF0: 3CC8           71          DC.W    ADD2           ;LINE LINK
  003CF2: 305E           72 VTAB     MOVEA.W (A6)+,A0
  003CF4: D1F815E0       73          ADDA.L  SOV,A0
  003CF8: 2018           74 H3CF8    MOVE.L  (A0)+,D0
  003CFA: 2218           75          MOVE.L  (A0)+,D1
  003CFC: 4EB848A6       76          JSR     FIX16
  003D00: 4A07           77          TST.B   D7
  003D02: 6632           78          BNE     H3D36
  003D04: 0C460017       79          CMPI.W  #$17,D6
  003D08: 6200002C       80          BHI.L   H3D36
  003D0C: 11C61540       81          MOVE.B  D6,LINE
  003D10: 4ED4           82          JMP     (A4)
                         83 ;
  003D12: 3CCA           84          DC.W    ENULL          ;EDIT LINK
  003D14: 453A           85          DC.W    LKEYVAR        ;LIST LINK
  003D16: 3CC8           86          DC.W    ADD2           ;LINE LINK
  003D18: 305E           87 HTAB     MOVEA.W (A6)+,A0
  003D1A: D1F815E0       88          ADDA.L  SOV,A0
  003D1E: 2018           89 H3D1E    MOVE.L  (A0)+,D0
  003D20: 2218           90          MOVE.L  (A0)+,D1
  003D22: 4EB848A6       91          JSR     FIX16
  003D26: 4A07           92          TST.B   D7
  003D28: 660C           93          BNE     H3D36
  003D2A: 0C460027       94          CMPI.W  #$27,D6
  003D2E: 6206           95          BHI     H3D36
  003D30: 11C61542       96          MOVE.B  D6,COLUMN
  003D34: 4ED4           97          JMP     (A4)
                         98 ;
  003D36: 7E19           99 H3D36    MOVEQ   #$19,D7
  003D38: 4EF86008      100          JMP     ERROR
                        101 ;
  003D3C: 3CCA          102          DC.W    ENULL          ;EDIT LINK
  003D3E: 44A8          103          DC.W    LLOADC         ;LIST LINK
  003D40: 3CC8          104          DC.W    ADD2           ;LINE LINK
  003D42: 305E          105 VTABC    MOVEA.W (A6)+,A0
  003D44: D1F815B8      106          ADDA.L  SOC,A0
  003D48: 60AE          107          BRA     H3CF8
                        108 ;
  003D4A: 3CCA          109          DC.W    ENULL          ;EDIT LINK
  003D4C: 44A8          110          DC.W    LLOADC         ;LIST LINK
  003D4E: 3CC8          111          DC.W    ADD2           ;LINE LINK
  003D50: 305E          112 HTABC    MOVEA.W (A6)+,A0
  003D52: D1F815B8      113          ADDA.L  SOC,A0
  003D56: 60C6          114          BRA     H3D1E
                        115 ;
  003D58: 0001          116          DC.W    $0001
  003D5A: 4E75          117          DC.W    $4E75
                        118 ;
  003D5C: 4E75          119 FLIN1    RTS
                        120 ;
                        121 ;! END OF BIT ROT
                                     CHAIN   J48

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
                          4 ; IF VARN1 (REL) VARN2  (E.G. "IF A > B")
                          5 ;
  003D5E: 3CCA            6          DC.W    ENULL
  003D60: 45E8            7          DC.W    LIF1
  003D62: 3CB0            8          DC.W    ADDN
  003D64: 548E            9 IF1      ADDQ.L  #2,A6          ;SKIP LINK
  003D66: 305E           10          MOVE.W  (A6)+,A0       ;VAR1 OFFSET
  003D68: 3A5E           11          MOVE.W  (A6)+,A5       ;VAR2 OFFSET
  003D6A: DBF815E0       12          ADD.L   SOV,A5         ;VAR2 ADDRESS
  003D6E: 6010           13          BRA     IF2A
                         14 ;
                         15 ; IF VARN1 (REL) CONST  (E.G. "IF A > 3")
                         16 ;
  003D70: 3CCA           17          DC.W    ENULL
  003D72: 45F4           18          DC.W    LIF2
  003D74: 3CB0           19          DC.W    ADDN
  003D76: 548E           20 IF2      ADDQ.L  #2,A6          ;SKIP LINK
  003D78: 305E           21          MOVE.W  (A6)+,A0       ;VAR1 OFFSET
  003D7A: 3A5E           22          MOVE.W  (A6)+,A5       ;CONST OFFSET
  003D7C: DBF815B8       23          ADDA.L  SOC,A5         ;CONST ADDRESS
                         24 ;
  003D80: 381D           25 IF2A     MOVE.W  (A5)+,D4       ;VARN2 SIGN, EXP
  003D82: 3A1D           26          MOVE.W  (A5)+,D5       ;VARN2 MANT MSW
  003D84: 600A           27          BRA     IF3A           ;CONTINUE
                         28 ;
                         29 ; IF VARN1 (REL) (IMPLIED 0)  (E.G. "IF A > 0")
                         30 ;
  003D86: 3CCA           31          DC.W    ENULL
  003D88: 45FE           32          DC.W    LIF3
  003D8A: 3CB0           33          DC.W    ADDN
  003D8C: 548E           34 IF3      ADDQ.L  #2,A6          ;SKIP LINK
  003D8E: 305E           35          MOVE.W  (A6)+,A0       ;VARN1 OFFSET
                         36 ;
  003D90: D1F815E0       37 IF3A     ADDA.L  SOV,A0         ;VARN1 ADDRESS
  003D94: 3018           38          MOVE.W  (A0)+,D0       ;VARN1 SIGN, EXP
  003D96: 3218           39          MOVE.W  (A0)+,D1       ;VARN1 MANT MSW
  003D98: 4278151A       40          CLR.W   COND           ;SET COND FALSE
  003D9C: 2E0D           41          MOVE.L  A5,D7          ;SAVE PTR A5
  003D9E: 4ED4           42          JMP     (A4)           ;EXECUTE RELATION
                         43 ;
                         44 ; VARN1 = VARN2 ?
                         45 ;
  003DA0: 0000           46          DC.W    0
  003DA2: BA41           47 REL1     CMP.W   D1,D5          ;MANTS EQUAL ?
  003DA4: 6638           48          BNE     FALS1          ;FALSE IF NOT
                         49 ;
  003DA6: 4A41           50          TST.W   D1             ;VARN1 = 0 ?
  003DA8: 6A30           51          BPL     TRUE1          ;TRUE IF SO
                         52 ;
  003DAA: B840           53          CMP.W   D0,D4          ;S,X EQUAL ?
  003DAC: 6630           54          BNE     FALS1          ;FALSE IF NOT
                         55 ;
  003DAE: 2A47           56          MOVE.L  D7,A5          ;RESTORE A5
  003DB0: 301D           57          MOVE.W  (A5)+,D0       ;M31-M16
  003DB2: B058           58          CMP.W   (A0)+,D0       ;SAME ?
  003DB4: 6628           59          BNE     FALS1          ;FALSE IF NOT
                         60 ;

                         62 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         63 ;
  003DB6: 3015           64          MOVE.W  (A5),D0        ;M15-M0
  003DB8: B050           65          CMP.W   (A0),D0        ;SAME ?
  003DBA: 671E           66          BEQ     TRUE1          ;TRUE IF SO
  003DBC: 4ED4           67          JMP     (A4)           ;EXECUTE 'THEN'
                         68 ;
                         69 ; VARN1 <> VARN2 ?
                         70 ;
  003DBE: 0001           71          DC.W    1
  003DC0: BA41           72 REL2     CMP.W   D1,D5          ;MANTS EQUAL ?
  003DC2: 6616           73          BNE     TRUE1          ;TRUE IF NOT
                         74 ;
  003DC4: 4A41           75          TST.W   D1             ;VARN1 = 0 ?
  003DC6: 6A16           76          BPL     FALS1          ;FALSE IF SO
                         77 ;
  003DC8: B840           78          CMP.W   D0,D4          ;S,X EQUAL ?
  003DCA: 660E           79          BNE     TRUE1          ;TRUE IF NOT
                         80 ;
  003DCC: 2A47           81          MOVE.L  D7,A5          ;RESTORE A5
  003DCE: 301D           82          MOVE.W  (A5)+,D0       ;M31-M16
  003DD0: B058           83          CMP.W   (A0)+,D0       ;SAME ?
  003DD2: 6606           84          BNE     TRUE1          ;TRUE IF NOT
                         85 ;
  003DD4: 3015           86          MOVE.W  (A5),D0        ;M15-M0
  003DD6: B050           87          CMP.W   (A0),D0        ;SAME ?
  003DD8: 6704           88          BEQ     FALS1          ;FALSE IF SO
  003DDA: 5278151A       89 TRUE1    ADD.W   #1,COND        ;COND TRUE
  003DDE: 4ED4           90 FALS1    JMP     (A4)           ;EXECUTE 'THEN'
                         91 ;
                         92 ; VARN1 > VARN2 ?
                         93 ;
  003DE0: 0002           94          DC.W    2
  003DE2: 4A45           95 REL3     TST.W   D5             ;VARN2 = 0 ?
  003DE4: 6A0000E6       96          BPL.L   REL9           ;REL9 IF SO
                         97 ;
  003DE8: 3C04           98          MOVE.W  D4,D6
  003DEA: B146           99          EOR     D0,D6          ;SIGNS DIFFERENT ?
  003DEC: 6A06          100          BPL     REL3A          ;NO, SAME
                        101 ;
  003DEE: 4A40          102          TST.W   D0             ;SIGNS DIFFERENT
  003DF0: 6AE8          103          BPL     TRUE1          ;TRUE IF A IS POS
  003DF2: 6BEA          104          BMI     FALS1          ;FALSE IF A IS NEG
                        105 ;
  003DF4: 4A40          106 REL3A    TST.W   D0             ;SIGNS NEGATIVE ?
  003DF6: 6B6C          107          BMI     REL5B          ;REV CMPR IF NEG
                        108 ;
  003DF8: B840          109 REL3B    CMP.W   D0,D4          ;S1,X1 > S2,X2?
  003DFA: 65DE          110          BCS     TRUE1          ;TRUE IF A > B
  003DFC: 62E0          111          BHI     FALS1          ;FALSE IF A < B
                        112 ;
  003DFE: BA41          113          CMP.W   D1,D5          ;M1 > M2 (B47-32)
  003E00: 65D8          114          BCS     TRUE1          ;TRUE IF A > B
  003E02: 62DA          115          BHI     FALS1          ;FALSE IF A < B
                        116 ;
  003E04: 2A47          117          MOVE.L  D7,A5          ;RESTORE A5
  003E06: 301D          118          MOVE.W  (A5)+,D0       ;M31-M16
  003E08: B058          119          CMP.W   (A0)+,D0       ;SAME ?
  003E0A: 65CE          120          BCS     TRUE1          ;A > B
  003E0C: 62D0          121          BHI     FALS1          ;A < B
                        122 ;

                        124 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        125 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        126 ;
  003E0E: 3015          127          MOVE.W  (A5),D0        ;M15-M0
  003E10: B050          128          CMP.W   (A0),D0        ;SAME ?
  003E12: 65C6          129          BCS     TRUE1          ;A > B
  003E14: 4ED4          130          JMP     (A4)           ;EXECUTE 'THEN'
                        131 ;
                        132 ; VARN1 >= VARN2 ?
                        133 ;
  003E16: 0003          134          DC.W    3
  003E18: 4A45          135 REL4     TST.W   D5             ;VARN2 = 0 ?
  003E1A: 6A0000BC      136          BPL.L   REL10          ;REL10 IF SO
                        137 ;
  003E1E: 3C04          138          MOVE.W  D4,D6
  003E20: B146          139          EOR     D0,D6          ;SIGNS DIFFERENT ?
  003E22: 6A06          140          BPL     REL4A          ;NO, SAME
                        141 ;
  003E24: 4A40          142          TST.W   D0             ;SIGNS DIFFERENT
  003E26: 6AB2          143          BPL     TRUE1          ;TRUE IF A IS POS
  003E28: 6BB4          144          BMI     FALS1          ;FALSE IF A IS NEG
                        145 ;
  003E2A: 4A40          146 REL4A    TST.W   D0             ;SIGNS NEGATIVE?
  003E2C: 6B6A          147          BMI     REL6B          ;REV CMPR IF NEG
                        148 ;
  003E2E: B840          149 REL4B    CMP.W   D0,D4          ;S1,X1 > S2,X2?
  003E30: 65A8          150          BCS     TRUE1          ;TRUE IF A > B
  003E32: 62AA          151          BHI     FALS1          ;FALSE IF A < B
                        152 ;
  003E34: BA41          153          CMP.W   D1,D5          ;M1 > M2 ?
  003E36: 65A2          154          BCS     TRUE1          ;TRUE IF A > B
  003E38: 62A4          155          BHI     FALS1          ;FALSE IF A < B
                        156 ;
  003E3A: 2A47          157          MOVE.L  D7,A5          ;RESTORE A5
  003E3C: 301D          158          MOVE.W  (A5)+,D0       ;M31-M16
  003E3E: B058          159          CMP.W   (A0)+,D0       ;SAME ?
  003E40: 6598          160          BCS     TRUE1          ;A > B
  003E42: 629A          161          BHI     FALS1          ;A < B
                        162 ;
  003E44: 3015          163          MOVE.W  (A5),D0        ;M15-M0
  003E46: B050          164          CMP.W   (A0),D0        ;SAME ?
  003E48: 6390          165          BLS     TRUE1          ;A >= B
  003E4A: 4ED4          166          JMP     (A4)           ;EXECUTE 'THEN'
                        167 ;
                        168 ; VARN1 < VARN2 ?
                        169 ;
  003E4C: 0004          170          DC.W    4
  003E4E: 4A45          171 REL5     TST.W   D5             ;VARN2 = 0 ?
  003E50: 6A000092      172          BPL.L   REL11          ;REL11 IF SO
                        173 ;
  003E54: 3C04          174          MOVE.W  D4,D6
  003E56: B146          175          EOR     D0,D6          ;SIGNS DIFFERENT ?
  003E58: 6A06          176          BPL     REL5A          ;NO, SAME
                        177 ;
  003E5A: 4A40          178          TST.W   D0             ;SIGNS DIFFERENT
  003E5C: 6B56          179          BMI     TRUE           ;TRUE IF A IS NEG
  003E5E: 6A58          180          BPL     FALSE          ;FALSE IF A IS POS
                        181 ;

                        183 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        184 ;
  003E60: 4A40          185 REL5A    TST.W   D0             ;SIGNS NEGATIVE?
  003E62: 6B94          186          BMI     REL3B          ;REV CMPR IF NEG
                        187 ;
  003E64: B840          188 REL5B    CMP.W   D0,D4          ;S1,X1 < S2,X2?
  003E66: 624C          189          BHI     TRUE           ;TRUE IF A < B
  003E68: 654E          190          BCS     FALSE          ;FALSE IF A > B
                        191 ;
  003E6A: BA41          192          CMP.W   D1,D5          ;M1 > M2 ?
  003E6C: 6246          193          BHI     TRUE           ;TRUE IF A < B
  003E6E: 6548          194          BCS     FALSE          ;FALSE IF A > B
                        195 ;
  003E70: 2A47          196          MOVE.L  D7,A5          ;RESTORE A5
  003E72: 301D          197          MOVE.W  (A5)+,D0       ;M31-M16
  003E74: B058          198          CMP.W   (A0)+,D0       ;SAME ?
  003E76: 623C          199          BHI     TRUE           ;A < B
  003E78: 653E          200          BCS     FALSE          ;A > B
                        201 ;
  003E7A: 3015          202          MOVE.W  (A5),D0        ;M15-M0
  003E7C: B050          203          CMP.W   (A0),D0        ;SAME ?
  003E7E: 6234          204          BHI     TRUE           ;A < B
  003E80: 4ED4          205          JMP     (A4)           ;EXECUTE 'THEN'
                        206 ;
                        207 ; VARN1 =< VARN2 ?
                        208 ;
  003E82: 0005          209          DC.W    5
  003E84: 4A45          210 REL6     TST.W   D5             ;VARN2 = 0 ?
  003E86: 6A68          211          BPL     REL12          ;REL10 IF SO
                        212 ;
  003E88: 3C04          213          MOVE.W  D4,D6
  003E8A: B146          214          EOR     D0,D6          ;SIGNS DIFFERENT ?
  003E8C: 6A06          215          BPL     REL6A          ;NO, SAME
                        216 ;
  003E8E: 4A40          217          TST.W   D0             ;SIGNS DIFFERENT
  003E90: 6B22          218          BMI     TRUE           ;TRUE IF A IS NEG
  003E92: 6A24          219          BPL     FALSE          ;FALSE IF A IS POS
                        220 ;
  003E94: 4A40          221 REL6A    TST.W   D0             ;SIGNS NEGATIVE?
  003E96: 6296          222          BHI     REL4B          ;REV CMPR IF NEG
                        223 ;
  003E98: B840          224 REL6B    CMP.W   D0,D4          ;S1,X1 > S2,X2?
  003E9A: 6218          225          BHI     TRUE           ;TRUE IF A < B
  003E9C: 651A          226          BCS     FALSE          ;FALSE IF A > B
                        227 ;
  003E9E: BA41          228          CMP.W   D1,D5          ;M1 > M2 ?
  003EA0: 6212          229          BHI     TRUE           ;TRUE IF A < B
  003EA2: 6514          230          BCS     FALSE          ;FALSE IF A > B
                        231 ;
  003EA4: 2A47          232          MOVE.L  D7,A5          ;RESTORE A5
  003EA6: 301D          233          MOVE.W  (A5)+,D0       ;M31-M16
  003EA8: B058          234          CMP.W   (A0)+,D0       ;SAME ?
  003EAA: 6208          235          BHI     TRUE           ;A < B
  003EAC: 650A          236          BCS     FALSE          ;A > B
                        237 ;
  003EAE: 3015          238          MOVE.W  (A5),D0        ;M15-M0
  003EB0: B050          239          CMP.W   (A0),D0        ;SAME ?
  003EB2: 6504          240          BCS     FALSE          ;A > B
  003EB4: 5278151A      241 TRUE     ADD.W   #1,COND        ;COND TRUE
  003EB8: 4ED4          242 FALSE    JMP     (A4)           ;EXECUTE 'THEN'
                        243 ;

                        245 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        246 ;
                        247 ; IS VARN1 = 0 ?
                        248 ;
  003EBA: 0000          249          DC.W    0
  003EBC: 4A41          250 REL7     TST.W   D1             ;TEST MANT MSB
  003EBE: 6AF4          251          BPL     TRUE           ;TRUE IF = 0
  003EC0: 4ED4          252          JMP     (A4)           ;EXECUTE 'THEN'
                        253 ;
                        254 ; IS VARN1 <> 0 ?
                        255 ;
  003EC2: 0001          256          DC.W    1
  003EC4: 4A41          257 REL8     TST.W   D1             ;TEST MANT MSB
  003EC6: 6BEC          258          BMI     TRUE           ;TRUE IF <> 0
  003EC8: 4ED4          259          JMP     (A4)           ;EXECUTE 'THEN'
                        260 ;
                        261 ; IS VARN1 > 0 ?
                        262 ;
  003ECA: 0002          263          DC.W    2
  003ECC: 4A41          264 REL9     TST.W   D1             ;TEST MANT MSB
  003ECE: 6AE8          265          BPL     FALSE          ;FALSE IF ZERO
  003ED0: 4A40          266          TST.W   D0             ;TEST SIGN
  003ED2: 6AE0          267          BPL     TRUE           ;TRUE IF POS
  003ED4: 4ED4          268          JMP     (A4)           ;EXECUTE 'THEN'
                        269 ;
                        270 ; IS VARN1 >= 0 ?
                        271 ;
  003ED6: 0003          272          DC.W    3
  003ED8: 4A41          273 REL10    TST.W   D1             ;TEST MANT MSB
  003EDA: 6AD8          274          BPL     TRUE           ;TRUE IF ZERO
  003EDC: 4A40          275          TST.W   D0             ;TEST SIGN
  003EDE: 6AD4          276          BPL     TRUE           ;TRUE IF POS
  003EE0: 4ED4          277          JMP     (A4)           ;EXECUTE 'THEN'
                        278 ;
                        279 ; IS VARNI < 0 ?
                        280 ;
  003EE2: 0004          281          DC.W    4
  003EE4: 4A41          282 REL11    TST.W   D1             ;TEST MANT MSB
  003EE6: 6AD0          283          BPL     FALSE          ;FALSE IF ZERO
  003EE8: 4A40          284          TST.W   D0             ;TEST SIGN
  003EEA: 6BC8          285          BMI     TRUE           ;TRUE IF NEG
  003EEC: 4ED4          286          JMP     (A4)           ;EXECUTE 'THEN'
                        287 ;
                        288 ; IS VARN1 =< 0 ?
                        289 ;
  003EEE: 0005          290          DC.W    5
  003EF0: 4A41          291 REL12    TST.W   D1             ;TEST MANT MSB
  003EF2: 6AC0          292          BPL     TRUE           ;TRUE IF ZERO
  003EF4: 4A40          293          TST.W   D0             ;TEST SIGN
  003EF6: 6BBC          294          BMI     TRUE           ;TRUE IF NEG
  003EF8: 4ED4          295          JMP     (A4)           ;EXECUTE 'THEN'
                        296 ;
  003EFA: 3CCA          297          DC.W    ENULL
  003EFC: 4744          298          DC.W    LREM           ;LIST LINK
  003EFE: 3CB0          299          DC.W    ADDN           ;LINE LINK
  003F00: 3A5E          300 REM      MOVE.W  (A6)+,A5       ;FETCH LINK
  003F02: DDCD          301          ADDA.L  A5,A6          ;NEXT ACTION ADDR
  003F04: 4ED4          302          JMP     (A4)           ;RETURN TO HALGOL
                        303 ;
                                     CHAIN   K48

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
  003F06: 3CCA            4          DC.W    ENULL
  003F08: 46DA            5          DC.W    LFOR0
  003F0A: 3CC2            6          DC.W    ADD8
  003F0C: 2A3815E0        7 FOR0     MOVE.L  SOV,D5         ;LIMIT = VARN
  003F10: 2C05            8          MOVE.L  D5,D6          ;STEP = VARN
  003F12: 2E05            9          MOVE.L  D5,D7          ;INITVAL = VARN
  003F14: 607A           10          BRA     FOR            ;PERFORM 'FOR'
                         11 ;
  003F16: 3CCA           12          DC.W    ENULL
  003F18: 46DE           13          DC.W    LFOR1
  003F1A: 3CC2           14          DC.W    ADD8
  003F1C: 2A3815B8       15 FOR1     MOVE.L  SOC,D5         ;LIMIT = CONST
  003F20: 2C3815E0       16          MOVE.L  SOV,D6         ;STEP = VARN
  003F24: 2E06           17          MOVE.L  D6,D7          ;INITVAL = VARN
  003F26: 6068           18          BRA     FOR            ;PERFORM 'FOR'
                         19 ;
  003F28: 3CCA           20          DC.W    ENULL
  003F2A: 46E2           21          DC.W    LFOR2
  003F2C: 3CC2           22          DC.W    ADD8
  003F2E: 2A3815E0       23 FOR2     MOVE.L  SOV,D5         ;LIMIT = VARN
  003F32: 2C3815B8       24          MOVE.L  SOC,D6         ;STEP = CONST
  003F36: 2E05           25          MOVE.L  D5,D7          ;INITVAL = VARN
  003F38: 6056           26          BRA     FOR            ;PERFORM 'FOR'
                         27 ;
  003F3A: 3CCA           28          DC.W    ENULL
  003F3C: 46E6           29          DC.W    LFOR3
  003F3E: 3CC2           30          DC.W    ADD8
  003F40: 2A3815B8       31 FOR3     MOVE.L  SOC,D5         ;LIMIT = CONST
  003F44: 2C05           32          MOVE.L  D5,D6          ;STEP = CONST
  003F46: 2E3815E0       33          MOVE.L  SOV,D7         ;INITVAL = VARN
  003F4A: 6044           34          BRA     FOR            ;PERFORM 'FOR'
                         35 ;
  003F4C: 3CCA           36          DC.W    ENULL
  003F4E: 46EA           37          DC.W    LFOR4
  003F50: 3CC2           38          DC.W    ADD8
  003F52: 2A3815E0       39 FOR4     MOVE.L  SOV,D5         ;LIMIT = VARN
  003F56: 2C05           40          MOVE.L  D5,D6          ;STEP = VARN
  003F58: 2E3815B8       41          MOVE.L  SOC,D7         ;INITVAL = CONST
  003F5C: 6032           42          BRA     FOR            ;PERFORM 'FOR'
                         43 ;
  003F5E: 3CCA           44          DC.W    ENULL
  003F60: 46EE           45          DC.W    LFOR5
  003F62: 3CC2           46          DC.W    ADD8
  003F64: 2A3815B8       47 FOR5     MOVE.L  SOC,D5         ;LIMIT = CONST
  003F68: 2C3815E0       48          MOVE.L  SOV,D6         ;STEP = VARN
  003F6C: 2E05           49          MOVE.L  D5,D7          ;INITVAL = CONST
  003F6E: 6020           50          BRA     FOR            ;PERFORM 'FOR'
                         51 ;
  003F70: 3CCA           52          DC.W    ENULL
  003F72: 46F2           53          DC.W    LFOR6
  003F74: 3CC2           54          DC.W    ADD8
  003F76: 2A3815E0       55 FOR6     MOVE.L  SOV,D5         ;LIMIT = VARN
  003F7A: 2C3815B8       56          MOVE.L  SOC,D6         ;STEP = CONST
  003F7E: 2E06           57          MOVE.L  D6,D7          ;INITVAL = CONST
  003F80: 600E           58          BRA     FOR            ;PERFORM 'FOR'
                         59 ;

                         61 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         62 ;
  003F82: 3CCA           63          DC.W    ENULL
  003F84: 46F6           64          DC.W    LFOR7
  003F86: 3CC2           65          DC.W    ADD8
  003F88: 2A3815B8       66 FOR7     MOVE.L  SOC,D5         ;LIMIT = CONST
  003F8C: 2C05           67          MOVE.L  D5,D6          ;STEP = CONST
  003F8E: 2E05           68          MOVE.L  D5,D7          ;INITVAL = CONST
                         69 ;
                         70 ; PERFORM 'FOR I = 1 TO N STEP S'
                         71 ;
                         72 ; PUSH LIMIT VALUE ON STACK, 4 WORDS
                         73 ; THEN THE STEP SIGN, 1 WORD
                         74 ; THEN THE HALGOL LOOP ADDRESS, 2 WORDS
                         75 ; THEN THE STEP VALUE, 4 WORDS
                         76 ; THEN THE LOOP VARN OFFSET, 1 WORD
                         77 ; THEN STORE THE INITIAL VALUE IN THE LOOP VARN
                         78 ; FINALLY, STORE THE NEW STACK POINTER
                         79 ;
  003F90: 3A5E           80 FOR      MOVE.W  (A6)+,A5       ;LIMIT OFFSET
  003F92: DBC5           81          ADD.L   D5,A5          ;ADD BASE ADR
  003F94: 307814FE       82          MOVE.W  FORSTK,A0      ;'FOR' STK PTR
  003F98: B0FC1414       83          CMPA.W  #FORSTK-234,A0  ;TOO DEEP ?
  003F9C: 6204           84          BHI     DEPTHOK        ;IF NOT
                         85 ;
  003F9E: 7E26           86          MOVEQ   #38,D7         ;TOO MANY FOR-NEXT
  003FA0: 6014           87          BRA     FERR           ;REPORT ERROR
                         88 ;
  003FA2: 5148           89 DEPTHOK  SUBQ.W  #8,A0          ;PTR TO LIMIT
  003FA4: 20DD           90          MOVE.L  (A5)+,(A0)+    ;STORE LIMIT
  003FA6: 2095           91          MOVE.L  (A5),(A0)
  003FA8: 5D48           92          SUBQ.W  #6,A0          ;PTR TO SIGN
  003FAA: 3A5E           93          MOVE.W  (A6)+,A5       ;STEP OFFSET
  003FAC: DBC6           94          ADD.L   D6,A5          ;ADD BASE ADR
  003FAE: 2C15           95          MOVE.L  (A5),D6        ;1/2 STEP
  003FB0: 4A46           96          TST.W   D6             ;STEP ZERO ?
  003FB2: 6B06           97          BMI     STEPOK         ;IF NOT
                         98 ;
  003FB4: 7E25           99          MOVEQ   #37,D7         ;STEP IS ZERO
  003FB6: 4EF86008      100 FERR     JMP     ERROR          ;REPORT ERROR
                        101 ;
  003FBA: 4846          102 STEPOK   SWAP    D6             ;GET SIGN
  003FBC: 3086          103          MOVE.W  D6,(A0)        ;STORE SIGN
  003FBE: 5948          104          SUBQ.W  #4,A0          ;PTR TO LOOP ADDR
  003FC0: 208E          105          MOVE.L  A6,(A0)        ;LOOP ADDR -4
  003FC2: 5890          106          ADDQ.L  #4,(A0)        ;LOOP ADDRESS
  003FC4: 5148          107          SUBQ.W  #8,A0          ;PTR TO STEP VAL
  003FC6: 20DD          108          MOVE.L  (A5)+,(A0)+    ;STORE STEP
  003FC8: 209D          109          MOVE.L  (A5)+,(A0)
  003FCA: 5D48          110          SUBQ.W  #6,A0          ;PTR TO LOOP VARN
  003FCC: 3A5E          111          MOVE.W  (A6)+,A5       ;INITVAL OFFSET
  003FCE: DBC7          112          ADD.L   D7,A5          ;ADD BASE ADR
  003FD0: 201D          113          MOVE.L  (A5)+,D0       ;FETCH INITVAL
  003FD2: 221D          114          MOVE.L  (A5)+,D1
  003FD4: 3A5E          115          MOVE.W  (A6)+,A5       ;LOOP VARN OFFSET
  003FD6: 308D          116          MOVE.W  A5,(A0)        ;STORE OFFSET
  003FD8: DBF815E0      117          ADDA.L  SOV,A5         ;ADD BASE ADR
  003FDC: 2AC0          118          MOVE.L  D0,(A5)+       ;INITIALIZE VARN
  003FDE: 2AC1          119          MOVE.L  D1,(A5)+
  003FE0: 31C814FE      120          MOVE.W  A0,FORSTK      ;NEW STACK PTR
  003FE4: 4ED4          121          JMP     (A4)           ;RETURN TO HALGOL

                        123 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        124 ;
                        125 ; NEXT WITH SPECIFIED LOOP VARIABLE
                        126 ;
  003FE6: 3CCA          127          DC.W    ENULL
  003FE8: 453A          128          DC.W    LKEYVAR
  003FEA: 3CC8          129          DC.W    ADD2
  003FEC: 305E          130 NEXT     MOVE.W  (A6)+,A0       ;FETCH VARN OFFSET
  003FEE: 3A7814FE      131          MOVE.W  FORSTK,A5      ;FOR-NEXT STK PTR
  003FF2: BAFC14FE      132          CMPA.W  #FORSTK,A5     ;ACTIVITY PRESENT ?
  003FF6: 6604          133          BNE     FOROK          ;IF SO
                        134 ;
  003FF8: 7E27          135          MOVEQ   #39,D7         ;NEXT WITHOUT FOR
  003FFA: 60BA          136          BRA     FERR           ;REPORT ERROR
                        137 ;
  003FFC: B0DD          138 FOROK    CMPA.W  (A5)+,A0       ;VARNS MATCHED ?
  003FFE: 6704          139          BEQ     NEXTOK         ;IF MATCHED
                        140 ;
  004000: 7E29          141          MOVEQ   #41,D7         ;VARN MISMATCH
  004002: 60B2          142          BRA     FERR           ;REPORT ERROR
                        143 ;
  004004: D1F815E0      144 NEXTOK   ADDA.L  SOV,A0         ;ADD BASE ADR
  004008: 21DD1902      145          MOVE.L  (A5)+,S1       ;FETCH STEP VALUE
  00400C: 21DD1906      146          MOVE.L  (A5)+,S1+4
  004010: 4EB820C0      147          JSR     FPADD          ;ADD TO LOOP VARN
  004014: 5188          148          SUBQ.L  #8,A0          ;PTR TO LOOP VARN
  004016: 20F81902      149          MOVE.L  S1,(A0)+       ;NEW LOOP VARN VAL
  00401A: 20F81906      150          MOVE.L  S1+4,(A0)+
  00401E: 21DD151A      151          MOVE.L  (A5)+,LBLTEMP  ;LOOP ADR
  004022: 4A5D          152          TST.W   (A5)+          ;WHICH COMPARISON ?
  004024: 6B10          153          BMI     NEGCMP         ;IF NEGATIVE
                        154 ;
                        155 ; FPACC1 HAS THE LOOP VARN VALUE
                        156 ; A0 POINTS TO THE LIMIT VALUE
                        157 ;
  004026: 304D          158          MOVE.W  A5,A0
  004028: 4EB820C4      159          JSR     CPFP1M         ;COMPARE VARNS
  00402C: 6702          160          BEQ     NEXTX          ;IF SAME
  00402E: 6A10          161          BPL     POPFOR         ;FPACC1 > LIMIT
                        162 ;
  004030: 2C78151A      163 NEXTX    MOVE.L  LBLTEMP,A6     ;LOOP ADR
  004034: 4ED4          164          JMP     (A4)           ;RETURN TO HALGOL
                        165 ;
  004036: 304D          166 NEGCMP   MOVE.W  A5,A0
  004038: 4EB820C4      167          JSR     CPFP1M         ;COMPARE VARNS
  00403C: 67F2          168          BEQ     NEXTX          ;IF SAME
  00403E: 6AF0          169          BPL     NEXTX          ;FPACC1 > LIMIT
                        170 ;
  004040: 0678001814FE  171 POPFOR   ADDI.W  #24,FORSTK     ;POP 'FOR' STACK
  004046: 4ED4          172          JMP     (A4)           ;RETURN TO HALGOL
                        173 ;

                        175 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        176 ;
  004048: 3CCA          177          DC.W    ENULL
  00404A: 44E6          178          DC.W    LKEY
  00404C: 3CCA          179          DC.W    ADD0
  00404E: 4E71          180 TEXT     NOP
  004050: 4ED4          181          JMP     (A4)           ;RETURN TO HALGOL
                        182 ;
  004052: 3CCA          183          DC.W    ENULL
  004054: 44E6          184          DC.W    LKEY
  004056: 3CCA          185          DC.W    ADD0
  004058: 4E71          186 HGR1     NOP
  00405A: 4ED4          187          JMP     (A4)           ;RETURN TO HALGOL
                        188 ;
  00405C: 3CCA          189          DC.W    ENULL
  00405E: 44E6          190          DC.W    LKEY
  004060: 3CCA          191          DC.W    ADD0
  004062: 4E71          192 HGR2     NOP
  004064: 4ED4          193          JMP     (A4)           ;RETURN TO HALGOL
                        194 ;
  004066: 3CCA          195          DC.W    ENULL
  004068: 44E6          196          DC.W    LKEY
  00406A: 3CCA          197          DC.W    ADD0
  00406C: 4E71          198 HCLR1    NOP
  00406E: 4ED4          199          JMP     (A4)           ;RETURN TO HALGOL
                        200 ;
  004070: 3CCA          201          DC.W    ENULL
  004072: 44E6          202          DC.W    LKEY
  004074: 3CCA          203          DC.W    ADD0
  004076: 4E71          204 HCLR2    NOP
  004078: 4ED4          205          JMP     (A4)           ;RETURN TO HALGOL
                        206 ;
  00407A: 3CCA          207          DC.W    ENULL
  00407C: 452C          208          DC.W    LKEYV2
  00407E: 3CC6          209          DC.W    ADD4
  004080: 4E71          210 PPLOT    NOP
  004082: 4ED4          211          JMP     (A4)           ;RETURN TO HALGOL
                        212 ;
  004084: 3CCA          213          DC.W    ENULL
  004086: 452C          214          DC.W    LKEYV2
  004088: 3CC6          215          DC.W    ADD4
  00408A: 4E71          216 PCLR     NOP
  00408C: 4ED4          217          JMP     (A4)           ;RETURN TO HALGOL
                        218 ;
  00408E: 3CCA          219          DC.W    ENULL
  004090: 4522          220          DC.W    LKEYV4
  004092: 3CC2          221          DC.W    ADD8
  004094: 4E71          222 LPLOT    NOP
  004096: 4ED4          223          JMP     (A4)           ;RETURN TO HALGOL
                        224 ;
  004098: 3CCA          225          DC.W    ENULL
  00409A: 4522          226          DC.W    LKEYV4
  00409C: 3CC2          227          DC.W    ADD8
  00409E: 4E71          228 LCLR     NOP
  0040A0: 4ED4          229          JMP     (A4)           ;RETURN TO HALGOL
                        230 ;
                                     CHAIN   ARRAY

                          2 ; LOAD THE INDEX OF A 1-DIMENSION ARRAY INTO D7
                          3 ;
  0040A2: 47A4            4          DC.W    LAV1C          ;LIST LINK
  0040A4: 3E1E            5 MAV1C    MOVE.W  (A6)+,D7       ;INDEX 1
  0040A6: 600A            6          BRA     LARY1
                          7 ;
  0040A8: 47A8            8          DC.W    LAV1V          ;LIST LINK
  0040AA: 3A5E            9 MAV1V    MOVE.W  (A6)+,A5       ;INT OFFSET
  0040AC: DBF815D8       10          ADD.L   SOI,A5         ;ADD BASE ADR
  0040B0: 3E15           11          MOVE.W  (A5),D7        ;INDEX 1
  0040B2: 4280           12 LARY1    CLR.L   D0             ;CLEAR D0
  0040B4: 305E           13          MOVE.W  (A6)+,A0       ;DESCR OFFSET
  0040B6: D1F815D0       14          ADDA.L  SADT,A0        ;DESCRIPTOR START
  0040BA: 3618           15          MOVE.W  (A0)+,D3       ;DIMENSION
  0040BC: 66000116       16          BNE.L   LARY1A         ;IF O.K.
                         17 ;
                         18 ; UNDIMENSIONED ARRAY DEFAULTS TO DIM #10
                         19 ;
  0040C0: 7850           20          MOVEQ   #80,D4         ;10 REG'S
  0040C2: 4EB841F8       21          JSR     DEFDIM         ;DEFAULT DIM
  0040C6: 2080           22          MOVE.L  D0,(A0)        ;ADR OF ARRAY
  0040C8: 6000010A       23          BRA.L   LARY1A
                         24 ;
                         25 ; LOAD THE INDICES OF A 2-DIM ARRAY INTO D6, D7
                         26 ;
  0040CC: 478C           27          DC.W    LAV2CC         ;LIST LINK
  0040CE: 3C1E           28 MAV2CC   MOVE.W  (A6)+,D6       ;INDEX 1
  0040D0: 3E1E           29          MOVE.W  (A6)+,D7       ;INDEX 2
  0040D2: 602C           30          BRA     LARY2
                         31 ;
  0040D4: 4790           32          DC.W    LAV2VC         ;LIST LINK
  0040D6: 3A5E           33 MAV2VC   MOVE.W  (A6)+,A5       ;INT OFFSET
  0040D8: DBF815D8       34          ADDA.L  SOI,A5         ;ADD BASE ADR
  0040DC: 3C15           35          MOVE.W  (A5),D6        ;INDEX 1
  0040DE: 3E1E           36          MOVE.W  (A6)+,D7       ;INDEX 2
  0040E0: 601E           37          BRA     LARY2
                         38 ;
  0040E2: 4794           39          DC.W    LAV2CV         ;LIST LINK
  0040E4: 3C1E           40 MAV2CV   MOVE.W  (A6)+,D6       ;INDEX 1
  0040E6: 3A5E           41          MOVE.W  (A6)+,A5       ;INT OFFSET
  0040E8: DBF815D8       42          ADDA.L  SOI,A5         ;ADD BASE ADR
  0040EC: 6010           43          BRA     AV2IV
                         44 ;
  0040EE: 4798           45          DC.W    LAV2VV         ;LIST LINK
  0040F0: 283815D8       46 MAV2VV   MOVE.L  SOI,D4         ;INT BASE ADR
  0040F4: 3A5E           47          MOVE.W  (A6)+,A5       ;INT OFFSET
  0040F6: DBC4           48          ADD.L   D4,A5          ;ADD BASE ADR
  0040F8: 3C15           49          MOVE.W  (A5),D6        ;INDEX 1
  0040FA: 3A5E           50          MOVE.W  (A6)+,A5       ;INT OFFSET
  0040FC: DBC4           51          ADD.L   D4,A5          ;ADD BASE OFFSET
  0040FE: 3E15           52 AV2IV    MOVE.W  (A5),D7        ;INDEX 2
  004100: 4280           53 LARY2    CLR.L   D0             ;CLEAR D0
  004102: 305E           54          MOVE.W  (A6)+,A0       ;DESCR OFFSET
  004104: D1F815D0       55          ADDA.L  SADT,A0        ;DESCRIPTOR START
  004108: 3418           56          MOVE.W  (A0)+,D2       ;DIMENSION 1
  00410A: 6610           57          BNE     ARY2OK         ;IF O.K.
                         58 ;

                         60 ; UNDIMENSIONED ARRAY DEFAULTS TO DIM #10,#10
                         61 ;
  00410C: 283C00000320   62          MOVE.L  #800,D4        ;100 REGISTERS
  004112: 4EB841F8       63          JSR     DEFDIM         ;DIMENSION ARRAY
  004116: 30C1           64          MOVE.W  D1,(A0)+       ;2ND DIM
  004118: 2080           65          MOVE.L  D0,(A0)        ;ADR OF ARRAY
  00411A: 5588           66          SUBQ.L  #2,A0          ;PTR TO 2ND DIM
                         67 ;
  00411C: 3610           68 ARY2OK   MOVE.W  (A0),D3        ;2ND DIM
  00411E: 600000AC       69          BRA.L   LARY2A
                         70 ;
                         71 ; LOAD INDICES OF A 3-DIM ARRAY INTO D5, D6, D7
                         72 ;
  004122: 4764           73          DC.W    LAV3CCC        ;LIST LINK
  004124: 3A1E           74 MAV3CCC  MOVE.W  (A6)+,D5       ;INDEX 1
  004126: 3C1E           75          MOVE.W  (A6)+,D6       ;INDEX 2
  004128: 3E1E           76          MOVE.W  (A6)+,D7       ;INDEX 3
  00412A: 6076           77          BRA     LARY3
                         78 ;
  00412C: 4768           79          DC.W    LAV3VCC        ;LIST LINK
  00412E: 3A5E           80 MAV3VCC  MOVE.W  (A6)+,A5       ;INT OFFSET
  004130: DBF815D8       81          ADD.L   SOI,A5         ;ADD BASE ADR
  004134: 3A15           82          MOVE.W  (A5),D5        ;INDEX 1
  004136: 3C1E           83          MOVE.W  (A6)+,D6       ;INDEX 2
  004138: 3E1E           84          MOVE.W  (A6)+,D7       ;INDEX 3
  00413A: 6066           85          BRA     LARY3
                         86 ;
  00413C: 476C           87          DC.W    LAV3CVC        ;LIST LINK
  00413E: 3A1E           88 MAV3CVC  MOVE.W  (A6)+,D5       ;INDEX 1
  004140: 3A5E           89          MOVE.W  (A6)+,A5       ;INT OFFSET
  004142: DBF815D8       90          ADDA.L  SOI,A5         ;ADD BASE ADR
  004146: 3C15           91          MOVE.W  (A5),D6        ;INDEX 2
  004148: 3E1E           92          MOVE.W  (A6)+,D7       ;INDEX 3
  00414A: 6056           93          BRA     LARY3
                         94 ;
  00414C: 4770           95          DC.W    LAV3VVC        ;LIST LINK
  00414E: 283815D8       96 MAV3VVC  MOVE.L  SOI,D4         ;INT BASE ADR
  004152: 3A5E           97          MOVE.W  (A6)+,A5       ;INT OFFSET
  004154: DBC4           98          ADD.L   D4,A5          ;ADD BASE ADR
  004156: 3A15           99          MOVE.W  (A5),D5        ;INDEX 1
  004158: 3A5E          100          MOVE.W  (A6)+,A5       ;INT OFFSET
  00415A: DBC4          101          ADD.L   D4,A5          ;ADD BASE ADR
  00415C: 3C15          102          MOVE.W  (A5),D6        ;INDEX 2
  00415E: 3E1E          103          MOVE.W  (A6)+,D7       ;INDEX 3
  004160: 6040          104          BRA     LARY3
                        105 ;
  004162: 4774          106          DC.W    LAV3CCV        ;LIST LINK
  004164: 3A1E          107 MAV3CCV  MOVE.W  (A6)+,D5       ;INDEX 1
  004166: 3C1E          108          MOVE.W  (A6)+,D6       ;INDEX 2
  004168: 3A5E          109          MOVE.W  (A6)+,A5       ;INT OFFSET
  00416A: DBF815D8      110          ADD.L   SOI,A5         ;ADD BASE ADR
  00416E: 6030          111          BRA     AV3CCV
                        112 ;
  004170: 4778          113          DC.W    LAV3VCV        ;LIST LINK
  004172: 283815D8      114 MAV3VCV  MOVE.L  SOI,D4         ;INT BASE ADR
  004176: 3A5E          115          MOVE.W  (A6)+,A5       ;INT OFFSET
  004178: DBC4          116          ADD.L   D4,A5          ;ADD BASE ADR
  00417A: 3A15          117          MOVE.W  (A5),D5        ;INDEX 1
  00417C: 3C1E          118          MOVE.W  (A6)+,D6       ;INDEX 2
  00417E: 601C          119          BRA     AV3VCV
                        120 ;

  004180: 477C          122          DC.W    LAV3CVV        ;LIST LINK
  004182: 3A1E          123 MAV3CVV  MOVE.W  (A6)+,D5       ;INDEX 1
  004184: 283815D8      124          MOVE.L  SOI,D4         ;INT BASE OFFSET
  004188: 600C          125          BRA     AV3CVV
                        126 ;
  00418A: 4780          127          DC.W    LAV3VVV        ;LIST LINK
  00418C: 283815D8      128 MAV3VVV  MOVE.L  SOI,D4         ;INT BASE ADR
  004190: 3A5E          129          MOVE.W  (A6)+,A5       ;INT OFFSET
  004192: DBC4          130          ADD.L   D4,A5          ;ADD BASE ADR
  004194: 3A15          131          MOVE.W  (A5),D5        ;INDEX 1
  004196: 3A5E          132 AV3CVV   MOVE.W  (A6)+,A5       ;INT OFFSET
  004198: DBC4          133          ADD.L   D4,A5          ;ADD BASE ADR
  00419A: 3C15          134          MOVE.W  (A5),D6        ;INDEX 2
  00419C: 3A5E          135 AV3VCV   MOVE.W  (A6)+,A5       ;INT OFFSET
  00419E: DBC4          136          ADD.L   D4,A5          ;ADD BASE ADR
  0041A0: 3E15          137 AV3CCV   MOVE.W  (A5),D7        ;INDEX 3
                        138 ;
  0041A2: 305E          139 LARY3    MOVE.W  (A6)+,A0       ;DESCR OFFSET
  0041A4: D1F815D0      140          ADDA.L  SADT,A0        ;DESCRIPTOR START
  0041A8: 3218          141          MOVE.W  (A0)+,D1       ;DIMENSION 1
  0041AA: 6612          142          BNE     ARY3OK         ;IF O.K.
                        143 ;
                        144 ; UNDIMENSIONED ARRAY DEFAULTS TO DIM #10,#10,#10
                        145 ;
  0041AC: 283C00001F40  146          MOVE.L  #8000,D4       ;1000 REGISTERS
  0041B2: 4EB841F8      147          JSR     DEFDIM         ;DIMENSION ARRAY
  0041B6: 30C1          148          MOVE.W  D1,(A0)+       ;2ND DIM
  0041B8: 30C1          149          MOVE.W  D1,(A0)+       ;3RD DIM
  0041BA: 2080          150          MOVE.L  D0,(A0)        ;ADDR OF ARRAY
  0041BC: 5988          151          SUBQ.L  #4,A0          ;PTR TO 2ND DIM
                        152 ;
  0041BE: 3418          153 ARY3OK   MOVE.W  (A0)+,D2       ;2ND DIM
  0041C0: 3618          154          MOVE.W  (A0)+,D3       ;3RD DIM
  0041C2: B245          155          CMP.W   D5,D1          ;INDEX 1 O.K. ?
  0041C4: 652C          156          BCS     ERR45          ;IF NOT O.K.
                        157 ;
  0041C6: CAC2          158          MULU    D2,D5          ;MULT BY DIM 2
  0041C8: CAC3          159          MULU    D3,D5          ;MULT BY DIM 3
  0041CA: 2005          160          MOVE.L  D5,D0          ;INDEX TO D0
                        161 ;
                        162 ; ENTER HERE FROM 2-DIM MAV CODE
                        163 ;
  0041CC: B446          164 LARY2A   CMP.W   D6,D2          ;INDEX 2 O.K. ?
  0041CE: 6522          165          BCS     ERR45          ;IF NOT O.K.
                        166 ;
  0041D0: CCC3          167          MULU    D3,D6          ;MULT BY DIM3
  0041D2: D086          168          ADD.L   D6,D0          ;ACCUMULATE INDX
                        169 ;
                        170 ; ENTER HERE FROM 1-DIM MAV CODE
                        171 ;
  0041D4: B647          172 LARY1A   CMP.W   D7,D3          ;INDEX 3 O.K. ?
  0041D6: 651A          173          BCS     ERR45          ;IF NOT O.K.
                        174 ;
  0041D8: 02870000FFFF  175          ANDI.L  #$0000FFFF,D7  ;CLR UPPER WORD
  0041DE: D087          176          ADD.L   D7,D0          ;ADD INDEX 3
  0041E0: E788          177          LSL.L   #3,D0          ;INDX - ADR OFFSET
  0041E2: D090          178          ADD.L   (A0),D0        ;ADR OF ELEMENT
  0041E4: 2040          179          MOVE.L  D0,A0          ;SET PTR A0
                        180 ;

                        182 ; THE ARRAY ADDRESS IS IN A0, NOW GET THE VARN ADR
                        183 ;
  0041E6: 3A5E          184          MOVE.W  (A6)+,A5       ;VARN OFFSET
  0041E8: DBF815E0      185          ADDA.L  SOV,A5         ;ADD BASE ADR
                        186 ;
                        187 ; THE SOURCE AND DESTINATION ADDRESSES ARE SET UP,
                        188 ; NOW MOVE THE F.P. OPERAND.
                        189 ;
  0041EC: 2AD8          190          MOVE.L  (A0)+,(A5)+    ;MOVE THE F.P. #
  0041EE: 2AD8          191          MOVE.L  (A0)+,(A5)+
  0041F0: 4ED4          192          JMP     (A4)           ;RETURN TO HALGOL
                        193 ;
                        194 ; REPORT ARRAY BOUNDARY OVERFLOW
                        195 ;
  0041F2: 7E2D          196 ERR45    MOVEQ   #45,D7         ;INDEX TOO BIG
  0041F4: 4EF86008      197          JMP     ERROR          ;REPORT ERROR
                        198 ;
                        199 ; UNDIMENSIONED ARRAY DEFAULTS TO DIM #10
                        200 ;
  0041F8: 203815EC      201 DEFDIM   MOVE.L  EOA,D0         ;END OF ARRAYS
  0041FC: 9084          202          SUB.L   D4,D0          ;NEW ARRAY END
  0041FE: B8B815E4      203          CMP.L   EOV,D4         ;MEMORY OVFL ?
  004202: 6406          204          BCC     MEMOK          ;IF NOT
                        205 ;
  004204: 7E2E          206          MOVEQ   #46,D7         ;MEMORY OVERFLOW
  004206: 4EF86008      207          JMP     ERROR          ;REPORT ERROR
                        208 ;
  00420A: 21C015EC      209 MEMOK    MOVE.L  D0,EOA         ;STORE END
  00420E: E68C          210          LSR.L   #3,D4          ;DIV BY 8
  004210: 2A40          211          MOVE.L  D0,A5          ;PTR
  004212: 429D          212 CLRMEM   CLR.L   (A5)+          ;CLR FP REG
  004214: 429D          213          CLR.L   (A5)+
  004216: 5384          214          SUBQ.L  #1,D4          ;DECR COUNTER
  004218: 66F8          215          BNE     CLRMEM         ;LOOP TIL DONE
                        216 ;
  00421A: 720A          217          MOVEQ   #10,D1         ;DEFAULT DIM #10
  00421C: 5590          218          SUBQ.L  #2,(A0)        ;PTR TO INDEX 1
  00421E: 30C1          219          MOVE.W  D1,(A0)+       ;STORE IT
  004220: 4E75          220          RTS                    ;RETURN
                        221 ;
                        222 ; LOAD THE INDEX OF A 1-DIMENSION ARRAY INTO D7
                        223 ;
  004222: 4802          224          DC.W    LVA1C          ;LIST LINK
  004224: 3E1E          225 MVA1C    MOVE.W  (A6)+,D7       ;INDEX 1
  004226: 600A          226          BRA     MARY1
                        227 ;
  004228: 4806          228          DC.W    LVA1V          ;LIST LINK
  00422A: 3A5E          229 MVA1V    MOVE.W  (A6)+,A5       ;INT OFFSET
  00422C: DBF815D8      230          ADD.L   SOI,A5         ;ADD BASE ADR
  004230: 3E15          231          MOVE.W  (A5),D7        ;INDEX 1
  004232: 4280          232 MARY1    CLR.L   D0             ;CLEAR D0
  004234: 305E          233          MOVE.W  (A6)+,A0       ;DESCR OFFSET
  004236: D1F815D0      234          ADDA.L  SADT,A0        ;DESCRIPTOR START
  00423A: 3618          235          MOVE.W  (A0)+,D3       ;DIMENSION
  00423C: 6600011A      236          BNE.L   MARY1A         ;IF O.K.
                        237 ;

                        240 ; UNDIMENSIONED ARRAY DEFAULTS TO DIM #10
                        241 ;
  004240: 7850          242          MOVEQ   #80,D4         ;10 REG'S
  004242: 4EB841F8      243          JSR     DEFDIM         ;DEFAULT DIM
  004246: 2080          244          MOVE.L  D0,(A0)        ;ADR OF ARRAY
  004248: 6000010E      245          BRA.L   MARY1A
                        246 ;
                        247 ; LOAD THE INDICES OF A 2-DIM ARRAY INTO D6, D7
                        248 ;
  00424C: 47EC          249          DC.W    LVA2CC         ;LIST LINK
  00424E: 3C1E          250 MVA2CC   MOVE.W  (A6)+,D6       ;INDEX 1
  004250: 3E1E          251          MOVE.W  (A6)+,D7       ;INDEX 2
  004252: 602C          252          BRA     MARY2
                        253 ;
  004254: 47F0          254          DC.W    LVA2VC         ;LIST LINK
  004256: 3A5E          255 MVA2VC   MOVE.W  (A6)+,A5       ;INT OFFSET
  004258: DBF815D8      256          ADDA.L  SOI,A5         ;ADD BASE ADR
  00425C: 3C15          257          MOVE.W  (A5),D6        ;INDEX 1
  00425E: 3E1E          258          MOVE.W  (A6)+,D7       ;INDEX 2
  004260: 601E          259          BRA     MARY2
                        260 ;
  004262: 47F4          261          DC.W    LVA2CV         ;LIST LINK
  004264: 3C1E          262 MVA2CV   MOVE.W  (A6)+,D6       ;INDEX 1
  004266: 3A5E          263          MOVE.W  (A6)+,A5       ;INT OFFSET
  004268: DBF815D8      264          ADDA.L  SOI,A5         ;ADD BASE ADR
  00426C: 6010          265          BRA     VA2IV
                        266 ;
  00426E: 47F8          267          DC.W    LVA2VV         ;LIST LINK
  004270: 283815D8      268 MVA2VV   MOVE.L  SOI,D4         ;INT BASE ADR
  004274: 3A5E          269          MOVE.W  (A6)+,A5       ;INT OFFSET
  004276: DBC4          270          ADD.L   D4,A5          ;ADD BASE ADR
  004278: 3C15          271          MOVE.W  (A5),D6        ;INDEX 1
  00427A: 3A5E          272          MOVE.W  (A6)+,A5       ;INT OFFSET
  00427C: DBC4          273          ADD.L   D4,A5          ;ADD BASE OFFSET
  00427E: 3E15          274 VA2IV    MOVE.W  (A5),D7        ;INDEX 2
  004280: 4280          275 MARY2    CLR.L   D0             ;CLEAR D0
  004282: 305E          276          MOVE.W  (A6)+,A0       ;DESCR OFFSET
  004284: D1F815D0      277          ADDA.L  SADT,A0        ;DESCRIPTOR START
  004288: 3418          278          MOVE.W  (A0)+,D2       ;DIMENSION 1
  00428A: 6610          279          BNE     BRY2OK         ;IF O.K.
                        280 ;
                        281 ; UNDIMENSIONED ARRAY DEFAULTS TO DIM #10,#10
                        282 ;
  00428C: 283C00000320  283          MOVE.L  #800,D4        ;100 REGISTERS
  004292: 4EB841F8      284          JSR     DEFDIM         ;DIMENSION ARRAY
  004296: 30C1          285          MOVE.W  D1,(A0)+       ;2ND DIM
  004298: 2080          286          MOVE.L  D0,(A0)        ;ADR OF ARRAY
  00429A: 5588          287          SUBQ.L  #2,A0          ;PTR TO 2ND DIM
                        288 ;
  00429C: 3610          289 BRY2OK   MOVE.W  (A0),D3        ;2ND DIM
  00429E: 600000AE      290          BRA.L   MARY2A
                        291 ;
                        292 ; LOAD INDICES OF A 3-DIM ARRAY INTO D5, D6, D7 
                        293 ;
  0042A2: 47C6          294          DC.W    LVA3CCC        ;LIST LINK
  0042A4: 3A1E          295 MVA3CCC  MOVE.W  (A6)+,D5       ;INDEX 1
  0042A6: 3C1E          296          MOVE.W  (A6)+,D6       ;INDEX 2
  0042A8: 3E1E          297          MOVE.W  (A6)+,D7       ;INDEX 3
  0042AA: 6076          298          BRA     MARY3
                        299 ;

  0042AC: 47CA          301          DC.W    LVA3VCC        ;LIST LINK
  0042AE: 3A5E          302 MVA3VCC  MOVE.W  (A6)+,A5       ;INT OFFSET
  0042B0: DBF815D8      303          ADD.L   SOI,A5         ;ADD BASE ADR
  0042B4: 3A15          304          MOVE.W  (A5),D5        ;INDEX 1
  0042B6: 3C1E          305          MOVE.W  (A6)+,D6       ;INDEX 2
  0042B8: 3E1E          306          MOVE.W  (A6)+,D7       ;INDEX 3
  0042BA: 6066          307          BRA     MARY3
                        308 ;
  0042BC: 47CE          309          DC.W    LVA3CVC        ;LIST LINK
  0042BE: 3A1E          310 MVA3CVC  MOVE.W  (A6)+,D5       ;INDEX 1
  0042C0: 3A5E          311          MOVE.W  (A6)+,A5       ;INT OFFSET
  0042C2: DBF815D8      312          ADDA.L  SOI,A5         ;ADD BASE ADR
  0042C6: 3C15          313          MOVE.W  (A5),D6        ;INDEX 2
  0042C8: 3E1E          314          MOVE.W  (A6)+,D7       ;INDEX 3
  0042CA: 6056          315          BRA     MARY3
                        316 ;
  0042CC: 47D2          317          DC.W    LVA3VVC        ;LIST LINK
  0042CE: 283815D8      318 MVA3VVC  MOVE.L  SOI,D4         ;INT BASE ADR
  0042D2: 3A5E          319          MOVE.W  (A6)+,A5       ;INT OFFSET
  0042D4: DBC4          320          ADD.L   D4,A5          ;ADD BASE ADR
  0042D6: 3A15          321          MOVE.W  (A5),D5        ;INDEX 1
  0042D8: 3A5E          322          MOVE.W  (A6)+,A5       ;INT OFFSET
  0042DA: DBC4          323          ADD.L   D4,A5          ;ADD BASE ADR
  0042DC: 3C15          324          MOVE.W  (A5),D6        ;INDEX 2
  0042DE: 3E1E          325          MOVE.W  (A6)+,D7       ;INDEX 3
  0042E0: 6040          326          BRA     MARY3
                        327 ;
  0042E2: 47D6          328          DC.W    LVA3CCV        ;LIST LINK
  0042E4: 3A1E          329 MVA3CCV  MOVE.W  (A6)+,D5       ;INDEX 1
  0042E6: 3C1E          330          MOVE.W  (A6)+,D6       ;INDEX 2
  0042E8: 3A5E          331          MOVE.W  (A6)+,A5       ;INT OFFSET
  0042EA: DBF815D8      332          ADD.L   SOI,A5         ;ADD BASE ADR
  0042EE: 6030          333          BRA     VA3CCV
                        334 ;
  0042F0: 47DA          335          DC.W    LVA3VCV        ;LIST LINK
  0042F2: 283815D8      336 MVA3VCV  MOVE.L  SOI,D4         ;INT BASE ADR
  0042F6: 3A5E          337          MOVE.W  (A6)+,A5       ;INT OFFSET
  0042F8: DBC4          338          ADD.L   D4,A5          ;ADD BASE ADR
  0042FA: 3A15          339          MOVE.W  (A5),D5        ;INDEX 1
  0042FC: 3C1E          340          MOVE.W  (A6)+,D6       ;INDEX 2
  0042FE: 601C          341          BRA     VA3VCV
                        342 ;
  004300: 47DE          343          DC.W    LVA3CVV        ;LIST LINK
  004302: 3A1E          344 MVA3CVV  MOVE.W  (A6)+,D5       ;INDEX 1
  004304: 283815D8      345          MOVE.L  SOI,D4         ;INT BASE OFFSET
  004308: 600C          346          BRA     VA3CVV
                        347 ;
  00430A: 47E2          348          DC.W    LVA3VVV        ;LIST LINK
  00430C: 283815D8      349 MVA3VVV  MOVE.L  SOI,D4         ;INT BASE ADR
  004310: 3A5E          350          MOVE.W  (A6)+,A5       ;INT OFFSET
  004312: DBC4          351          ADD.L   D4,A5          ;ADD BASE ADR
  004314: 3A15          352          MOVE.W  (A5),D5        ;INDEX 1
  004316: 3A5E          353 VA3CVV   MOVE.W  (A6)+,A5       ;INT OFFSET
  004318: DBC4          354          ADD.L   D4,A5          ;ADD BASE ADR
  00431A: 3C15          355          MOVE.W  (A5),D6        ;INDEX 2
  00431C: 3A5E          356 VA3VCV   MOVE.W  (A6)+,A5       ;INT OFFSET
  00431E: DBC4          357          ADD.L   D4,A5          ;ADD BASE ADR
  004320: 3E15          358 VA3CCV   MOVE.W  (A5),D7        ;INDEX 3
                        359 ;

  004322: 305E          361 MARY3    MOVE.W  (A6)+,A0       ;DESCR OFFSET
  004324: D1F815D0      362          ADDA.L  SADT,A0        ;DESCRIPTOR START
  004328: 3218          363          MOVE.W  (A0)+,D1       ;DIMENSION 1
  00432A: 6612          364          BNE     BRY3OK         ;IF O.K.
                        365 ;
                        366 ; UNDIMENSIONED ARRAY DEFAULTS TO DIM #10,#10,#10
                        367 ;
  00432C: 283C00001F40  368          MOVE.L  #8000,D4       ;1000 REGISTERS
  004332: 4EB841F8      369          JSR     DEFDIM         ;DIMENSION ARRAY
  004336: 30C1          370          MOVE.W  D1,(A0)+       ;2ND DIM
  004338: 30C1          371          MOVE.W  D1,(A0)+       ;3RD DIM
  00433A: 2080          372          MOVE.L  D0,(A0)        ;ADDR OF ARRAY
  00433C: 5988          373          SUBQ.L  #4,A0          ;PTR TO 2ND DIM
                        374 ;
  00433E: 3418          375 BRY3OK   MOVE.W  (A0)+,D2       ;2ND DIM
  004340: 3618          376          MOVE.W  (A0)+,D3       ;3RD DIM
  004342: B245          377          CMP.W   D5,D1          ;INDEX 1 O.K. ?
  004344: 6500FEAC      378          BCS     ERR45          ;IF NOT O.K.
                        379 ;
  004348: CAC2          380          MULU    D2,D5          ;MULT BY DIM 2
  00434A: CAC3          381          MULU    D3,D5          ;MULT BY DIM 3
  00434C: 2005          382          MOVE.L  D5,D0          ;INDEX TO D0
                        383 ;
                        384 ; ENTER HERE FROM 2-DIM MVA CODE
                        385 ;
  00434E: B446          386 MARY2A   CMP.W   D6,D2          ;INDEX 2 O.K. ?
  004350: 6500FEA0      387          BCS     ERR45          ;IF NOT O.K.
                        388 ;
  004354: CCC3          389          MULU    D3,D6          ;MULT BY DIM3
  004356: D086          390          ADD.L   D6,D0          ;ACCUMULATE INDX
                        391 ;
                        392 ; ENTER HERE FROM 1-DIM MVA CODE
                        393 ;
  004358: B647          394 MARY1A   CMP.W   D7,D3          ;INDEX 3 O.K. ?
  00435A: 6500FE96      395          BCS     ERR45          ;IF NOT O.K.
                        396 ;
  00435E: 02870000FFFF  397          ANDI.L  #$0000FFFF,D7  ;CLR UPPER WORD
  004364: D087          398          ADD.L   D7,D0          ;ADD INDEX 3
  004366: E788          399          LSL.L   #3,D0          ;INDX - ADR OFFSET
  004368: D090          400          ADD.L   (A0),D0        ;ADR OF ELEMENT
  00436A: 2040          401          MOVE.L  D0,A0          ;SET PTR A0
                        402 ;
                        403 ; THE ARRAY ADDRESS IS IN A0, NOW GET THE VARN ADR
                        404 ;
  00436C: 3A5E          405          MOVE.W  (A6)+,A5       ;VARN OFFSET
  00436E: DBF815E0      406          ADDA.L  SOV,A5         ;ADD BASE ADR
                        407 ;
                        408 ; THE SOURCE AND DESTINATION ADDRESSES ARE SET UP,
                        409 ; NOW MOVE THE F.P. OPERAND.
                        410 ;
  004372: 20DD          411          MOVE.L  (A5)+,(A0)+    ;MOVE THE F.P. #
  004374: 20DD          412          MOVE.L  (A5)+,(A0)+
  004376: 4ED4          413          JMP     (A4)           ;RETURN TO HALGOL
                        414 ;
                                     CHAIN   BIOS

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
                          4 ;        ****************
                          5 ;        *              *
                          6 ;        * ROUTINE:BIOS *
                          7 ;        *              *
                          8 ;        ****************
                          9 ;
                         10 ;
                         11 ; THESE ROUTINES HANDLE ALL OF THE I/O BETWEEN
                         12 ; THE HOST AND THE DTACK BOARD.
                         13 ;
                         14 ;---------------------------
                         15 ;-- COMMAND:00 - RESERVED --
                         16 ;---------------------------
                         17 ;
  004378: 4E75           18 CMD0     RTS
                         19 ;
                         20 ;----------------------------------
                         21 ;-- COMMAND:01 - RETURN TO BASIC --
                         22 ;----------------------------------
                         23 ;
  00437A: 7A01           24 CMD1     MOVEQ   #1,D5          ;SET FOR CMD #1
  00437C: 4EF8440E       25 CMD1A    JMP     SNDCMD         ;SEND CMD, DONE
                         26 ;
                         27 ;--------------------------------
                         28 ;-- COMMAND:02 - READ KEYBOARD --
                         29 ;--------------------------------
                         30 ;
  004380: 7A02           31 READKB   MOVEQ   #2,D5          ;SET FOR CMD #2
  004382: 4EB8440E       32          JSR     SNDCMD         ;SEND CMD
  004386: 1E380FFA       33 CMD2A    MOVE.B  STATUS,D7      ;BYTE AVAILABLE?
  00438A: 6AFA           34          BPL     CMD2A          ;WAIT IF NOT
                         35 ;
                         36 ;
  00438C: 1E380FF8       37          MOVE.B  DATIN,D7       ;READ KEY CODE
  004390: 4E75           38          RTS                    ;DONE
                         39 ;
                         40 ;--------------------------------
                         41 ;-- COMMAND:03 - SOUND SPEAKER --
                         42 ;--------------------------------
                         43 ;
  004392: 7A03           44 BELL     MOVEQ   #3,D5          ;SET FOR CMD #3
  004394: 60E6           45          BRA     CMD1A          ;SEND CMD, DONE
                         46 ;
                         47 ;--------------------------------------------------
                         48 ;- COMMAND:04 - STORE A BYTE IN THE HOST'S MEMORY -
                         49 ;--------------------------------------------------
                         50 ;
                         51 ; D7 CONTAINS BYTE TO BE SENT
                         52 ; D6 CONTAINS HOST ADDRESS
                         53 ;
  004396: 7A04           54 CMD4     MOVEQ   #4,D5          ;SET FOR CMD #4
  004398: 4EB843FE       55          JSR     SCMDWD         ;SND CMD, ADR
  00439C: 4EF84416       56          JMP     SNDBYT         ;SEND BYTE, DONE
                         57 ;

                         59 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         60 ;
                         61 ;-------------------------------------
                         62 ;-- COMMAND:05 - GET BYTE FROM HOST --
                         63 ;-------------------------------------
                         64 ;
                         65 ; D6 CONTAINS HOST ADDRESS
                         66 ;
  0043A0: 7A05           67 CMD5     MOVEQ   #5,D5          ;SET FOR CMD #5
  0043A2: 4EB843FE       68          JSR     SCMDWD         ;SEND CMD, ADR
  0043A6: 1E380FFA       69 CMD5A    MOVE.B  STATUS,D7      ;BYTE AVAILABLE?
  0043AA: 6AFA           70          BPL     CMD5A          ;TRY AGAIN IF NOT
                         71 ;
  0043AC: 1E380FF8       72          MOVE.B  DATIN,D7       ;GET BYTE
  0043B0: 4E75           73          RTS
                         74 ;
                         75 ;-----------------------------------------
                         76 ;-- COMMAND:06 - SEND A BYTE TO PRINTER --
                         77 ;-----------------------------------------
                         78 ;
                         79 ;SEND CONTENTS IN REGISTER D7 TO THE PRINTER
                         80 ;
  0043B2: 7A06           81 CMD6     MOVEQ   #6,D5          ;SET FOR CMD #6
  0043B4: 0C07000D       82          CMPI.B  #$0D,D7        ;<CR>?
  0043B8: 6602           83          BNE     CMD6A          ;SKIP LINE FEED
                         84 ;
                         85 ;   <ELSE SEND LINE FEED CHARACTER TO PRINTER>
                         86 ;
  0043BA: 7E0A           87          MOVEQ   #$0A,D7        ;LINE FEED CHR$
                         88 ;
  0043BC: 4EB8440E       89 CMD6A    JSR     SNDCMD         ;SEND CMD BYTE
  0043C0: 4EF84416       90          JMP     SNDBYT         ;SEND DATA BYTE
                         91 ;
                         92 ;--------------------------------------------
                         93 ;-- COMMAND:07 - GET N BYTES FROM THE HOST --
                         94 ;--------------------------------------------
                         95 ;
                         96 ; D6 CONTAINS HOST ADDRESS START
                         97 ; D4 CONTAINS BYTE COUNT
                         98 ; A5 CONTAINS 68000 ADDRESS START
                         99 ;
  0043C4: 7A07          100 CMD7     MOVEQ   #7,D5          ;SET FOR CMD #7
  0043C6: 6136          101          BSR     SCMDWD         ;SEND CMD, ADR
  0043C8: 3C04          102          MOVE.W  D4,D6          ;COUNT TO D6
  0043CA: 6134          103          BSR     SNDWD          ;SEND COUNT
  0043CC: 5346          104          SUBQ.W  #1,D6          ;CORRECT THE COUNT
                        105 ;
                        106 ;--THE NEXT SECTION GETS N BYTES FROM THE HOST--
                        107 ;
  0043CE: 1A380FFA      108 CMD7B    MOVE.B  STATUS,D5      ;BYTE AVAILABLE?
  0043D2: 6AFA          109          BPL     CMD7B          ;IF NOT TRY AGAIN
                        110 ;
  0043D4: 1AF80FF8      111          MOVE.B  DATIN,(A5)+    ;STORE BYTE
  0043D8: 51CEFFF4      112          DBF     D6,CMD7B       ;CONTINUE XFER
                        113 ;
  0043DC: 4E75          114          RTS                    ;DONE
                        115 ;

                        117 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        118 ;
                        119 ;----------------------------------------
                        120 ;-- SUBROUTINE - ECHO KEY PRESS TO CRT --
                        121 ;----------------------------------------
                        122 ;
                        123 ; D7 CONTAINS THE CHAR TO BE ECHOED
                        124 ;
  0043DE: 6104          125 ECHO     BSR     C65ADR         ;SCREEN ADR TO D6
  0043E0: 4EF84396      126          JMP     CMD4           ;BYT, ADR, DONE 
                        127 ;
                        128 ; CALCULATE THE SCREEN ADDRESS AND LEAVE IT IN D6.
                        129 ;
  0043E4: 4246          130 C65ADR   CLR.W   D6             ;CLEAR D6
  0043E6: 1C381540      131          MOVE.B  LINE,D6        ;FETCH LINE #
  0043EA: 2F0D          132          MOVE.L  A5,-(A7)       ;SAVE A5
  0043EC: 3A7C2080      133          MOVE.W  #TBLA,A5       ;LINE ADR TBL
  0043F0: DC46          134          ADD.W   D6,D6          ;DOUBLE D6
  0043F2: 3C356000      135          MOVE.W  (A5,D6),D6     ;GET LINE ADR
  0043F6: 2A5F          136          MOVE.L  (A7)+,A5       ;RESTORE A5
  0043F8: DC381542      137          ADD.B   COLUMN,D6      ;ADD COLUMN POS
  0043FC: 4E75          138          RTS                    ;DONE
                        139 ;
                        140 ; SEND CMD BYTE IN D5, THEN TWO BYTE PARM IN D6
                        141 ;
  0043FE: 610E          142 SCMDWD   BSR     SNDCMD         ;SEND D5 BYTE
                        143 ;
                        144 ; SEND WORD IN D6;  HI PARM THEN LOW PARM
                        145 ;
  004400: 611C          146 SNDWD    BSR     WAIT           ;WAIT TILL HOST RDY
  004402: 31C60FFA      147          MOVE.W  D6,DATOUT      ;HIGH ORDER PARM
                        148 ;
  004406: 6116          149          BSR     WAIT           ;WAIT TILL HOST RDY
  004408: 11C60FFA      150          MOVE.B  D6,DATOUT      ;LOW ORDER PARM
  00440C: 4E75          151          RTS                    ;DONE
                        152 ;
                        153 ; SEND THE BYTE IN D5 TO THE HOST
                        154 ;
  00440E: 610E          155 SNDCMD   BSR     WAIT           ;WAIT TIL HOST RDY
  004410: 11C50FFA      156          MOVE.B  D5,DATOUT      ;SEND THE BYTE
  004414: 4E75          157          RTS                    ;DONE
                        158 ;
                        159 ; SEND THE BYTE IN D7 TO THE HOST
                        160 ;
  004416: 6106          161 SNDBYT   BSR     WAIT           ;WAIT TILL HOST RDY
  004418: 11C70FFA      162          MOVE.B  D7,DATOUT      ;SEND THE BYTE
  00441C: 4E75          163          RTS                    ;DONE
                        164 ;
                        165 ; WAIT UNTIL THE HOST IS READY TO RECEIVE A BYTE
                        166 ;
  00441E: 083800060FFA  167 WAIT     BTST    #6,STATUS      ;HOST READY?
  004424: 66F8          168          BNE     WAIT           ;WAIT UNTIL RDY
  004426: 4E75          169          RTS                    ;DONE
                        170 ;

                        172 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        173 ;
                        174 ;-------------------------------------------
                        175 ;-- COMMAND:08 - SEND N BYTES TO THE HOST --
                        176 ;-------------------------------------------
                        177 ;
                        178 ; D6 CONTAINS HOST ADDRESS START
                        179 ; D4 CONTAINS BYTE COUNT
                        180 ; A5 CONTAINS 68000 ADDRESS START
                        181 ;
  004428: 7A08          182 CMD8     MOVEQ   #8,D5          ;SET FOR CMD #8
  00442A: 61D2          183          BSR     SCMDWD         ;SEND CMD, D6 WD
  00442C: 3C04          184          MOVE.W  D4,D6          ;MOVE COUNT TO D6
  00442E: 61D0          185          BSR     SNDWD          ;SEND COUNT
  004430: 5346          186          SUBQ.W  #1,D6          ;CORRECT THE COUNT
                        187 ;
                        188 ;--THE NEXT SECTION SENDS N BYTES TO THE HOST--
                        189 ;
  004432: 083800060FFA  190 CMD8B    BTST    #6,STATUS      ;HOST READY?
  004438: 66F8          191          BNE     CMD8B          ;IF NOT KEEP TRYING
                        192 ;
  00443A: 11DD0FFA      193          MOVE.B  (A5)+,DATOUT   ;XFER BYTE
  00443E: 51CEFFF2      194          DBF     D6,CMD8B       ;CONTINUE XFER
                        195 ;
  004442: 4E75          196          RTS                    ;DONE
                        197 ;
                        198 ;-----------------------------
                        199 ;-- COMMAND:09 - SCROLL CRT --
                        200 ;-----------------------------
                        201 ;
  004444: 24381546      202 CMD9     MOVE.L  SSFFLGS,D2     ;FETCH LINE FLAGS
  004448: E28A          203          LSR.L   #1,D2          ;SHIFT LINE FLAGS
  00444A: 08C20017      204          BSET    #$17,D2        ;SET LAST LN FLG
  00444E: 21C21546      205          MOVE.L  D2,SSFFLGS     ;STORE FLAGS
                        206 ;
  004452: 7A09          207 CMD9A    MOVEQ   #9,D5          ;SET FOR CMD #9
  004454: 60B8          208          BRA     SNDCMD         ;SEND CMD,DONE
                        209 ;
                        210 ;------------------------------
                        211 ;-- COMMAND #16 - SET CURSOR --
                        212 ;------------------------------
                        213 ;
  004456: 7A16          214 SETCSR   MOVEQ   #$16,D5        ;SET FOR CMD #$16
  004458: 6002          215          BRA     CLRCSR1        ;EXIT VIA CLRCSR1
                        216 ;
                        217 ;--------------------------------
                        218 ;-- COMMAND #17 - CLEAR CURSOR --
                        219 ;--------------------------------
                        220 ;
  00445A: 7A17          221 CLRCSR   MOVEQ   #$17,D5        ;SET FOR CMD #17
  00445C: 6186          222 CLRCSR1  BSR     C65ADR         ;SCREEN ADR TO D6
  00445E: 609E          223          BRA     SCMDWD         ;SEND CMD, WORD
                        224 ;
                        225 ; WAIT UNTIL A KEY HAS BEEN PRESSED.
                        226 ; THEN READ IT AND RESET THE STROBE.
                        227 ;
  004460: 4247          228 GETKEY   CLR.W   D7             ;INIT WRK REG
  004462: 4EB84380      229          JSR     READKB         ;READK KEYBOARD
  004466: 08070007      230          BTST    #7,D7          ;KEY PRESSED?
  00446A: 67F4          231          BEQ     GETKEY         ;AGAIN IF $00
                        232 ;

                        234 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        235 ;
                        236 ;-----------------------------------------
                        237 ;-- COMMAND #18 - CLEAR KEYBOARD STROBE --
                        238 ;-----------------------------------------
                        239 ;
  00446C: 7A18          240 CLRKB    MOVEQ   #$18,D5        ;COMMAND #18
  00446E: 609E          241          BRA     SNDCMD         ;SEND CMD BYTE
                        242 ;
                        243 ;----------------------------
                        244 ;-- SUBROUTINE - CLEAR CRT --
                        245 ;----------------------------
                        246 ;
  004470: 7618          247 CLRCRT   MOVEQ   #24,D3         ;CLR 24 LINES
  004472: 3A7C2080      248          MOVEA.W #TBLA,A5       ;ADR LINE TBL
  004476: 4240          249          CLR.W   D0             ;INIT CRT LINE #
  004478: 7A08          250 CLRCR0   MOVEQ   #8,D5          ;CMD 8
  00447A: 3C350000      251          MOVE.W  (A5,D0),D6     ;CRT ADDRESS 
  00447E: 6100FF7E      252          BSR     SCMDWD         ;SEND COMMAND
  004482: 7C28          253          MOVEQ   #40,D6         ;40 COLUMNS
  004484: 6100FF7A      254          BSR     SNDWD          ;SEND WORD
  004488: 7EA0          255          MOVEQ   #$A0,D7        ;BLANK CHARACTER
                        256 ;
  00448A: 083800060FFA  257 CLRCRA   BTST    #6,STATUS      ;HOST READY?
  004490: 66F8          258          BNE     CLRCRA         ;WAIT UNTIL READY
                        259 ;
                        260 ;  <ELSE SEND BYTE TO HOST>
                        261 ;
  004492: 11C70FFA      262          MOVE.B  D7,DATOUT      ;SEND THE BYTE
  004496: 5306          263          SUBQ.B  #1,D6          ;DECR COLUMN CTR
  004498: 66F0          264          BNE     CLRCRA         ;LOOP 40 TIMES
                        265 ;
                        266 ; NOW DO THE NEXT LINE DOWN
                        267 ;
  00449A: 5440          268          ADDQ    #2,D0          ;NEXT LINE INDEX
  00449C: 5303          269          SUBQ.B  #1,D3          ;DECR LINE CTR
  00449E: 66D8          270          BNE     CLRCR0         ;LOOP 24 TIMES
                        271 ;
  0044A0: 74FF          272          MOVEQ   #$FF,D2        ;SET CRT FLAGS
  0044A2: 21C21546      273          MOVE.L  D2,SSFFLGS     ;STORE FLAGS
  0044A6: 4E75          274          RTS                    ;DONE
                        275 ;
                                     CHAIN   LIST

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
                          4 ; THIS ROUTINE IS USED BY THE UTILITY ROUTINE
                          5 ; 'LISTER' - WHICH LISTS HALGOL SOURCE CODE.
                          6 ;
                          7 ; EACH OF THESE ROUTINES ARE REFERRED BY THE HALGOL
                          8 ; KEYWORD'S 'LIST LINK'
                          9 ;
                         10 ; REGISTER ASSIGNMENTS:
                         11 ;
                         12 ; A0: POINTER TO THE LINE NUMBER TABLE
                         13 ;
                         14 ; A1: POINTER THE FLOATING POINT NAME TABLE
                         15 ;
                         16 ; A3: POINTER TO HALGOL OBJECT CODE
                         17 ;
                         18 ; A5: INDIRECT ADDRESS TO THE I/O DEVICE SELECTED
                         19 ;     FOR THE 'SELECT LIST' FUNCTION
                         20 ;
                         21 ; ALL OTHER REGISTERS ARE USED AS SCRATCH REGISTERS
                         22 ;
                         23 ;----------------------
                         24 ;-- LIST LINK LLOADC --
                         25 ;----------------------
                         26 ;
                         27 ; LIST "LOAD <CONSTANT>", FOR INSTANCE.
                         28 ; (LIST A KEYWORD, THEN A NUMERIC CONSTANT.)
                         29 ;
                         30 ; A3: POINTER TO THE HALGOL OBJECT CODE
                         31 ;
  0044A8: 4EB845AA       32 LLOADC   JSR     LISTKEY        ;LIST THE KEYWORD
  0044AC: 4EB845B8       33          JSR     PRNTCON        ;PRINT CONSTANT
  0044B0: 6038           34          BRA     LISTXX         ;LIST DONE
                         35 ;
                         36 ;------------------------
                         37 ;-- LIST LINK: LINPUTS --
                         38 ;------------------------
                         39 ;
                         40 ; LIST THE HALGOL KEYWORD "INPUT" FOLLOWED BY A
                         41 ; PROMPT STRING AND THEN A VARN.
                         42 ;
                         43 ; A3: POINTER TO HALGOL OBJECT CODE
                         44 ;
  0044B2: 4EB844C4       45 LINPUTS  JSR     SKEYSTR        ;LIST KWD, STRING
  0044B6: 4EB845D8       46          JSR     PRCOMMA        ;COMMA
  0044BA: 4EB84546       47          JSR     PRNTVAR        ;PRINT VAR NAME
  0044BE: 602A           48          BRA     LISTXX         ;LIST DONE
                         49 ;
                         50 ;------------------------
                         51 ;-- LIST LINK: LKEYSTR --
                         52 ;------------------------
                         53 ;
  0044C0: 6102           54 LKEYSTR  BSR     SKEYSTR        ;KWD & STRING
  0044C2: 6026           55          BRA     LISTXX         ;LIST DONE
                         56 ;

                         58 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         59 ;
                         60 ;-------------------------
                         61 ;-- SUBROUTINE: SKEYSTR --
                         62 ;-------------------------
                         63 ;
                         64 ; LIST A KEYWORD AND A PROMPT STRING.
                         65 ;
                         66 ; A3: POINTER TO HALGOL OBJECT CODE
                         67 ;
  0044C4: 4EB845AA       68 SKEYSTR  JSR     LISTKEY        ;LIST THE KEYWORD
  0044C8: 4EB845DC       69          JSR     PRQUOTE        ;(")
  0044CC: 6104           70          BSR     LSTRING        ;LIST THE STR
  0044CE: 4EF845DC       71          JMP     PRQUOTE        ;("), EXIT
                         72 ;
  0044D2: 1E1B           73 LSTRING  MOVE.B  (A3)+,D7       ;FETCH BYTE
  0044D4: 6704           74          BEQ     EVENADR        ;END IF $00
                         75 ;
  0044D6: 4E95           76          JSR     (A5)           ;PRINT IT
  0044D8: 60F8           77          BRA     LSTRING        ;NEXT CHAR
                         78 ;
                         79 ; ADJUST A3 TO NEXT EVEN ADDR IF ODD
                         80 ;
  0044DA: 2E0B           81 EVENADR  MOVE.L  A3,D7          ;PTR TO D7
  0044DC: 5287           82          ADDQ.L  #1,D7          ;ADD #1
  0044DE: E28F           83          LSR.L   #1,D7          ;DISCARD B0
  0044E0: DE87           84          ADD.L   D7,D7          ;SHIFT LEFT
  0044E2: 2647           85          MOVE.L  D7,A3          ;EVEN ADR
  0044E4: 4E75           86          RTS                    ;DONE
                         87 ;
                         88 ;---------------------
                         89 ;-- LIST LINK: LKEY --
                         90 ;---------------------
                         91 ;
                         92 ; THIS ROUTINE LISTS A HALGOL KEYWORD ONLY
                         93 ;
  0044E6: 4EB845AA       94 LKEY     JSR     LISTKEY        ;LIST THE KEYWORD
  0044EA: 6046           95 LISTXX   BRA     LISTX          ;LIST DONE
                         96 ;
                         97 ;-----------------------
                         98 ;-- LIST LINK: LLABEL --
                         99 ;-----------------------
                        100 ;
                        101 ; THIS ROUTINE PRINTS THE STATEMENT LABELS 
                        102 ;
                        103 ; A3: POINTER TO HALGOL OBJECT CODE
                        104 ;
  0044EC: 4EB845AA      105 LLABEL   JSR     LISTKEY        ;LIST THE KEYWORD
  0044F0: 6004          106          BRA     LLBL1          ;SKIP SPACE
                        107 ;
  0044F2: 4EB845E0      108 LLBL     JSR     PRSPACE        ;SPACE
  0044F6: 6102          109 LLBL1    BSR     LLBL2          ;PRINT LABEL
  0044F8: 6038          110          BRA     LISTX          ;LINEFEED & EXIT
                        111 ;
  0044FA: 4EB845DC      112 LLBL2    JSR     PRQUOTE        ;OPENING (")
  0044FE: 2C781598      113          MOVEA.L SOLBN,A6       ;STRT OF LABEL
  004502: 321B          114          MOVE.W  (A3)+,D1       ;LBL'S OFFSET ADR
  004504: E449          115          LSR.W   #2,D1          ;GET LBL'S INDEX
  004506: 4EB8454E      116          JSR     PASCSTR        ;LABEL, RETURN
  00450A: 4EF845DC      117          JMP     PRQUOTE        ;CLOSING (")
                        118 ;

                        120 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        121 ;
                        122 ;-----------------------
                        123 ;-- LIST LINK: LLOCAL --
                        124 ;-----------------------
                        125 ;
  00450E: 4EB845AA      126 LLOCAL   JSR     LISTKEY        ;LIST THE KEYWORD
  004512: 31DB1922      127          MOVE.W  (A3)+,LOGX     ;STORE COUNT
  004516: 612E          128          BSR     PRNTVAR        ;LIST 1ST LOC VARN
                        129 ;
  004518: 55781922      130 LLOC1    SUBQ.W  #2,LOGX        ;DECR VAR COUNT
  00451C: 6714          131          BEQ     LISTX          ;LIST DONE IF ZERO
                        132 ;
  00451E: 6122          133          BSR     PR1V           ;COMMA, THEN VARN
  004520: 60F6          134          BRA     LLOC1          ;NEXT VARN
                        135 ;
                        136 ;-----------------------
                        137 ;-- LIST LINK: LKEYV4 --
                        138 ;-----------------------
                        139 ;
  004522: 4EB845AA      140 LKEYV4   JSR     LISTKEY        ;LIST THE KEYWORD
  004526: 6118          141          BSR     PR2V           ;PRINT TWO VARNS
  004528: 610A          142          BSR     PRTO           ;"-TO-"
  00452A: 6004          143          BRA     PR2VX          ;TWO VARNS & EXIT
                        144 ;
                        145 ;-----------------------
                        146 ;-- LIST LINK: LKEYV2 --
                        147 ;-----------------------
                        148 ;
                        149 ; THIS ROUTINE IS USED TO LIST A HALGOL KEYWORD
                        150 ; FOLLOWED BY TWO PARAMETERS.
                        151 ;
                        152 ; A4: POINTER TO I/O ROUTINE
                        153 ;
  00452C: 4EB845AA      154 LKEYV2   JSR     LISTKEY        ;LIST THE KEYWORD
  004530: 610E          155 PR2VX    BSR     PR2V           ;PRINT 2 VARNS
  004532: 4E75          156 LISTX    RTS                    ;LIST DONE
                        157 ;
  004534: 720F          158 PRTO     MOVEQ   #15,D1         ;PTR TO " TO "
  004536: 4EB846D4      159          JSR     LNSP           ;PRINT " TO "
                        160 ;
                        161 ;------------------------
                        162 ;-- LIST LINK: LKEYVAR --
                        163 ;------------------------
                        164 ;
                        165 ; THIS ROUTINE IS USED TO LIST A HALGOL KEYWORD
                        166 ; FOLLOWED BY A VARIABLE NAME.
                        167 ;
  00453A: 616E          168 LKEYVAR  BSR     LISTKEY        ;LIST THE KEYWORD
  00453C: 6108          169          BSR     PRNTVAR        ;PRINT VARN
  00453E: 60F2          170          BRA     LISTX          ;LIST DONE
                        171 ;
                        172 ; PRINT TWO VARIABLES SEPARATED BY A COMMA.
                        173 ;
  004540: 6104          174 PR2V     BSR     PRNTVAR        ;PRINT 1ST VAR
  004542: 4EB845D8      175 PR1V     JSR     PRCOMMA        ;COMMA
                        176 ;
                        177 ; EXIT, PRINTING THE SECOND VARIABLE
                        178 ;
                                     CHAIN   LIST1

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
                          4 ;---------------------
                          5 ;--ROUTINE: PRNTVAR --
                          6 ;---------------------
                          7 ;
                          8 ; SUBROUTINE;  PRINTS A VARIABLE NAME
                          9 ;
                         10 ; A3: POINTER TO HALGOL OBJECT CODE
                         11 ;
  004546: 2C7815C0       12 PRNTVAR  MOVE.L  SOVN,A6        ;VAR NAME PTR
  00454A: 321B           13 PRNTVA1  MOVE.W  (A3)+,D1       ;FETCH OFFSET
  00454C: E649           14          LSR.W   #3,D1          ;GET INDEX
                         15 ;
                         16 ; EXIT THRU SUBROUTINE "PASCSTR"
                         17 ;
                         18 ; SUBROUTINE;  PRINT AN ASCII STRING FROM A LINKED
                         19 ; ASCII TABLE.  A6 POINTS TO THE START OF THE
                         20 ; TABLE AND D1 CONTAINS THE # OF THE TABLE ENTRY.
                         21 ;
  00454E: 4280           22 PASCSTR  CLR.L   D0             ;CLEAR B31 - B8
  004550: 4A41           23          TST.W   D1             ;STRING # 0 ?
  004552: 670A           24          BEQ     PRNTSTR        ;SKIP IF #0
                         25 ;
  004554: 101E           26 PASCST1  MOVE.B  (A6)+,D0       ;LENGTH OF STRING
  004556: 6716           27          BEQ     PASERR         ;ERROR IF ZERO
                         28 ;
  004558: DDC0           29          ADD.L   D0,A6          ;PTR TO NX STRING
  00455A: 5341           30          SUBQ    #1,D1          ;DECREMENT CTR
  00455C: 66F6           31          BNE     PASCST1        ;LOOP IF NOT ZERO
                         32 ;
                         33 ; THE D1ST STRING HAS BEEN FOUND;  NOW PRINT IT
                         34 ;
                         35 ;-------------------------
                         36 ;-- SUBROUTINE: PRNTSTR --
                         37 ;-------------------------
                         38 ;
                         39 ; THIS ROUTINE IS USED TO PRINT A STRING OF A
                         40 ; LINKED ASCII STRING TABLE.  THE FIRST BYTE OF
                         41 ; THE STRING CONTAINS THE NUMBER OF CHARACTERS.
                         42 ;
                         43 ; A6: POINTER TO THE START OF THE STRING.
                         44 ;
  00455E: 101E           45 PRNTSTR  MOVE.B  (A6)+,D0       ;STRING LENGTH
  004560: 670A           46          BEQ     PRNTSTX        ;DONE IF ZERO
                         47 ;
  004562: 1E1E           48 PRNTST1  MOVE.B  (A6)+,D7       ;CHR TO D7 
  004564: 4EB845E2       49          JSR     OUTCHR         ;PRINT CHR
  004568: 5300           50          SUBQ.B  #1,D0          ;DECR CHR COUNT
  00456A: 66F6           51          BNE     PRNTST1        ;LOOP TIL DONE
                         52 ;
  00456C: 4E75           53 PRNTSTX  RTS                    ;PRINT DONE
                         54 ;
                         55 ; END OF ASCII STRING TABLE ENCOUNTERED BEFORE
                         56 ; D1ST ENTRY FOUND; REPORT ERROR
                         57 ;
  00456E: 7E1A           58 PASERR   MOVEQ   #26,D7         ;STR NOT FOUND
  004570: 4EF86008       59          JMP     ERROR          ;REPORT ERROR
                         60 ;

                         62 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         63 ;
                         64 ;------------------------
                         65 ;-- SUBROUTINE: GETINDX--
                         66 ;------------------------
                         67 ;
                         68 ; THIS ROUTINE FETCHES THE INDEX FOR A GIVEN
                         69 ; VARIABLE NAME.
                         70 ;
                         71 ; A3: IS A POINTER TO THE HALGOL OBJECT CODE
                         72 ;
                         73 ;          <RESULT>
                         74 ;
                         75 ; A6: WILL POINT THE START OF HALGOL KEYWORD
                         76 ;
                         77 ; D3: WILL CONTAIN THE INDEX OF THE ACTION WORD
                         78 ;
  004574: 322BFFFE       79 GETINDX  MOVE.W  -$2(A3),D1     ;SRCH KEY TO D1
  004578: 3A7C3600       80          MOVEA.W #ACTTBL,A5     ;ACT ADR TBL
                         81 ;
                         82 ; NOW LOOK FOR THE INDEX OF THE ACTION WORD
                         83 ;
  00457C: 4243           84          CLR.W   D3             ;INIT INDX COUNT
  00457E: 341D           85 GETINDA  MOVE.W  (A5)+,D2       ;FETCH ACT WRD
  004580: 6722           86          BEQ     ERR6           ;UNKNOWN KEYWORD
                         87 ;
                         88 ; NOW SEE IF ACTION ADR MATCHES SEARCH KEY
                         89 ;
  004582: B441           90          CMP.W   D1,D2          ;ACT ADR MATCH?
  004584: 6704           91          BEQ     GETINDB        ;SRCH DONE
                         92 ;
                         93 ;   <ELSE CONTINUE SEARCH FOR MATCHING ACT ADR>
                         94 ;
  004586: 5243           95          ADDQ    #1,D3          ;UPDATE INDX CNT
  004588: 60F4           96          BRA     GETINDA        ;CONT SRCH
                         97 ;
                         98 ; KEYWORD ACTION ADDRESS HAS BEEN FOUND.  NOW USE
                         99 ; THE INDEX IN 'D3' TO FIND THE START OF THE HALGOL
                        100 ; KEYWORD SO THAT IT CAN BE LISTED.
                        101 ;
  00458A: 4241          102 GETINDB  CLR.W   D1             ;READY WRK AREA
  00458C: 4242          103          CLR.W   D2             ; "    "    "
                        104 ;
                        105 ; NOW SET 'A6' TO THE START OF THE 'LINKED ASCII'
                        106 ; TABLE OF HALGOL KEYWORDS.
                        107 ;
  00458E: 3C7C37E8      108          MOVEA.W #KEY1,A6       ;KEYWORD TABLE
                        109 ;
                        110 ; NOW START COMPARING THE ACTION WORD INDEX TO THE
                        111 ; KEYWORD INDEX.
                        112 ;
  004592: B203          113 GETINDC  CMP.B   D3,D1          ;INDEX FOUND?
  004594: 670C          114          BEQ     GETINDD        ;THEN SRCH DONE
                        115 ;
                        116 ;   <ELSE CONTINUE LOOKING FOR START OF KEYWORD>
                        117 ;
  004596: 1416          118          MOVE.B  (A6),D2        ;LEN OF KEYWORD
  004598: 670A          119          BEQ     ERR6           ;EXCEPTION ERR
                        120 ;

                        122 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        123 ;
  00459A: 4DF62001      124          LEA     $1(A6,D2),A6   ;NEXT KEYWRD ADR
  00459E: 5241          125          ADDQ    #1,D1          ;UPDATE INDX CNT
  0045A0: 60F0          126          BRA     GETINDC        ;CONT SEARCH
                        127 ;
  0045A2: 4E75          128 GETINDD  RTS                    ;SRCH DONE
                        129 ;
  0045A4: 7E06          130 ERR6     MOVEQ   #6,D7          ;UNKNOWN KEYWORD
  0045A6: 4EF86008      131          JMP     ERROR          ;REPORT ERROR
                        132 ;
                        133 ;-------------------------
                        134 ;-- SUBROUTINE: LISTKEY --
                        135 ;-------------------------
                        136 ;
  0045AA: 61C8          137 LISTKEY  BSR     GETINDX        ;GET KEYWORD INDEX
  0045AC: 61B0          138          BSR     PRNTSTR        ;PRINT THE KEYWORD
  0045AE: 6030          139          BRA     PRSPACE        ;SPACE & EXIT
                        140 ;
                        141 ; LIST "IF VARN1 "
                        142 ;
  0045B0: 720C          143 SLIF     MOVEQ   #12,D1         ;LIST "IF "
  0045B2: 6166          144          BSR     LASC1
  0045B4: 548B          145          ADDQ.L  #2,A3          ;SKIP LINK
  0045B6: 608E          146          BRA     PRNTVAR        ;PR VARN & RETN
                        147 ;
                        148 ; PRINT A CONSTANT'S NAME
                        149 ;
  0045B8: 2C7815B0      150 PRNTCON  MOVE.L  SOCN,A6        ;CONST NAME TBL
  0045BC: 608C          151          BRA     PRNTVA1        ;PRINT & RETN
                        152 ;
                        153 ;---------------------
                        154 ;-- LIST LINK: LHPR --
                        155 ;---------------------
                        156 ;
  0045BE: 61EA          157 LHPR     BSR     LISTKEY        ;LIST THE KEYWORD
  0045C0: 201B          158          MOVE.L  (A3)+,D0       ;FETCH ADDRESS
  0045C2: 4EB84890      159          JSR     HADDRES        ;HEXPR THE ADR
  0045C6: 6110          160          BSR     PRCOMMA        ;COMMA
  0045C8: 610A          161          BSR     PRDOL          ;DOLLAR SIGN
  0045CA: 3E1B          162          MOVE.W  (A3)+,D7       ;FETCH COUNT
  0045CC: 4EB84846      163          JSR     PRHEX2A        ;HEXPRINT BYTE
                        164 ;
  0045D0: 7E0D          165 LINFEED  MOVEQ   #$0D,D7        ;<CR>
  0045D2: 600E          166          BRA     OUTCHR
  0045D4: 7EA4          167 PRDOL    MOVEQ   #"$",D7        ;DOLLAR SIGN
  0045D6: 600A          168          BRA     OUTCHR
  0045D8: 7EAC          169 PRCOMMA  MOVEQ   #",",D7        ;COMMA
  0045DA: 6006          170          BRA     OUTCHR
  0045DC: 7EA2          171 PRQUOTE  MOVEQ   #$A2,D7        ;QUOTE (")
  0045DE: 6002          172          BRA     OUTCHR
  0045E0: 7EA0          173 PRSPACE  MOVEQ   #$A0,D7        ;SPACE
                        174 ;
                        175 ;------------------------
                        176 ;-- SUBROUTINE: OUTCHR --
                        177 ;------------------------
                        178 ;
  0045E2: 2A7820BC      179 OUTCHR   MOVE.L  ACTIVE,A5      ;PRINT ADR
  0045E6: 4ED5          180          JMP     (A5)           ;PRINT & RETURN
                        181 ;
                                     CHAIN   LIST2

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
                          4 ;---------------------
                          5 ;-- LIST LINK: LIF1 --
                          6 ;---------------------
  0045E8: 61C6            7 LIF1     BSR     SLIF           ;"IF VARN "
  0045EA: 6126            8          BSR     LREL           ;LIST REL 1-6
  0045EC: 558B            9          SUBQ.L  #2,A3          ;PTR TO VARN2
  0045EE: 4EB84546       10          JSR     PRNTVAR        ;VARN2
  0045F2: 6012           11          BRA     LIF3A          ;CONTINUE
                         12 ;
                         13 ;---------------------
                         14 ;-- LIST LINK: LIF2 --
                         15 ;---------------------
  0045F4: 61BA           16 LIF2     BSR     SLIF           ;"IF VARN1 "
  0045F6: 611A           17          BSR     LREL           ;LIST REL 1-6
  0045F8: 558B           18          SUBQ.L  #2,A3          ;PTR TO CONST
  0045FA: 61BC           19          BSR     PRNTCON        ;LIST CONSTANT
  0045FC: 6008           20          BRA     LIF3A          ;CONTINUE
                         21 ;
                         22 ;---------------------
                         23 ;-- LIST LINK: LIF3 --
                         24 ;---------------------
  0045FE: 61B0           25 LIF3     BSR     SLIF           ;"IF VARN1 "
  004600: 6112           26          BSR     LREL1          ;LIST REL 7-12
  004602: 7EB0           27          MOVEQ   #"0",D7
  004604: 4E95           28          JSR     (A5)           ;PRINT A ZERO
                         29 ;
  004606: 61D8           30 LIF3A    BSR     PRSPACE        ;PRINT A SPACE
  004608: 548B           31          ADDQ.L  #2,A3          ;SKIP <REL>
  00460A: 3C5B           32          MOVEA.W (A3)+,A6       ;NEXT ACTION ADR
  00460C: 558E           33          SUBQ.L  #2,A6          ;LIST LINK
  00460E: 3C56           34          MOVEA.W (A6),A6        ;FETCH LIST ADR
  004610: 4ED6           35          JMP     (A6)           ;CONTINUE LIST
                         36 ;
  004612: 548B           37 LREL     ADDQ.L  #2,A3          ;PTR TO <REL>
  004614: 3C53           38 LREL1    MOVE.W  (A3),A6        ;REL ACTION ADR
  004616: 554E           39          SUBQ.W  #2,A6          ;PRT TO LIST LINK
  004618: 3216           40          MOVE.W  (A6),D1        ;FETCH #1 - #6
  00461A: 4DF8466E       41 LASC1    LEA     RELTBL,A6      ;RELATION TBL ADR
  00461E: 4EF8454E       42          JMP     PASCSTR        ;PR REL & EXIT
                         43 ;
  004622: 61F6           44 LASC     BSR     LASC1          ;LIST KEYSTRING
  004624: 4EF844FA       45          JMP     LLBL2          ;PRINT LABEL
                         46 ;

                         48 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         49 ;
  004628: 7206           50 LGOTOT   MOVEQ   #6,D1          ;"GOTO"
  00462A: 61F6           51          BSR     LASC           ;KEY, LABEL
  00462C: 6010           52          BRA     LGO  
                         53 ;
  00462E: 7208           54 LGOSUBT  MOVEQ   #8,D1          ;"GOSUB"
  004630: 61F0           55          BSR     LASC           ;KEY, LABEL
  004632: 548B           56          ADDQ.L  #2,A3          ;SKIP 'POP COND'
  004634: 6008           57          BRA     LGO
                         58 ;
  004636: 720A           59 LTHEN    MOVEQ   #10,D1         ;"THEN"
  004638: 61E0           60          BSR     LASC1
  00463A: 4EB87304       61          JSR     LLET1          ;LIST ASSIGNMENT
                         62 ;
  00463E: 61A0           63 LGO      BSR     PRSPACE        ;SPACE
  004640: 3C5B           64          MOVE.W  (A3)+,A6       ;NEXT ACTION ADR
                         65 ;
                         66 ; ARE WE FINISHED LISTING THE 'IF' STATEMENT OR
                         67 ; IS THERE AN 'ELSE' TO BE LISTED?
                         68 ;
  004642: BCFC3ACE       69          CMPA.W  #GOTOF,A6      ;GOTOF ?
  004646: 6712           70          BEQ     LGOTOF         ;IF SO
                         71 ;
  004648: BCFC3AFA       72          CMPA.W  #GOSUBF,A6     ;GOSUBF ?
  00464C: 6710           73          BEQ     LGOSUBF        ;IF SO
                         74 ;
  00464E: BCFC3C84       75          CMPA.W  #ELSE,A6       ;ELSE ?
  004652: 6710           76          BEQ     LELSE          ;IF SO
                         77 ;
                         78 ; WE HAVE REACHED THE END OF THE 'IF' LISTING
                         79 ;
  004654: 558B           80          SUBQ.L  #2,A3          ;RESTORE PTR
  004656: 4EF84532       81 LIFEND   JMP     LISTX          ;LIST DONE
                         82 ;
  00465A: 7207           83 LGOTOF   MOVEQ   #7,D1          ;"ELSE GOTO"
  00465C: 6002           84          BRA     LGOSF1
                         85 ;
  00465E: 7209           86 LGOSUBF  MOVEQ   #9,D1          ;"ELSE GOSUB"
  004660: 61C0           87 LGOSF1   BSR     LASC           ;KEY, LABEL
  004662: 60F2           88          BRA     LIFEND
                         89 ;
  004664: 720B           90 LELSE    MOVEQ   #11,D1         ;"ELSE"
  004666: 61B2           91          BSR     LASC1
  004668: 4EB87304       92          JSR     LLET1          ;LIST CRUNCHED CODE
  00466C: 60E8           93          BRA     LIFEND         ;LIST DONE
                         94 ;

                         96 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         97 ;
  00466E: 01             98 RELTBL   DC.B    1
  00466F: BD             99          ASC     "="            ;+ 0
  004670: 02            100          DC.B    2
  004671: BCBE          101          ASC     "<>"           ;+ 1
  004673: 01            102          DC.B    1
  004674: BE            103          ASC     ">"            ;+ 2
  004675: 02            104          DC.B    2
  004676: BEBD          105          ASC     ">="           ;+ 3
  004678: 01            106          DC.B    1
  004679: BC            107          ASC     "<"            ;+ 4
  00467A: 02            108          DC.B    2
  00467B: BDBC          109          ASC     "=<"           ;+ 5
  00467D: 05            110          DC.B    5
  00467E: C7CFD4CFA0    111          ASC     "GOTO "        ;+ 6
  004683: 0A            112          DC.B    10
  004684: C5CCD3C5A0C7  113          ASC     "ELSE GOTO "   ;+ 7
  00468E: 06            114          DC.B    6
  00468F: C7CFD3D5C2A0  115          ASC     "GOSUB "       ;+ 8 
  004695: 0B            116          DC.B    11 
  004696: C5CCD3C5A0C7  117          ASC     "ELSE GOSUB "  ;+ 9
  0046A1: 05            118          DC.B    5
  0046A2: D4C8C5CEA0    119          ASC     "THEN "        ;+10
  0046A7: 05            120          DC.B    5
  0046A8: C5CCD3C5A0    121          ASC     "ELSE "        ;+11
  0046AD: 03            122          DC.B    3
  0046AE: C9C6A0        123          ASC     "IF "          ;+12
  0046B1: 06            124          DC.B    6
  0046B2: D0D2C9CED4A0  125          ASC     "PRINT "       ;+13
  0046B8: 04            126          DC.B    4
  0046B9: C6CFD2A0      127          ASC     "FOR "         ;+14
  0046BD: 04            128          DC.B    4
  0046BE: A0D4CFA0      129          ASC     " TO "         ;+15
  0046C2: 06            130          DC.B    6
  0046C3: A0D3D4C5D0A0  131          ASC     " STEP "       ;+16
  0046C9: 05            132          DC.B    5
  0046CA: A9A0D4CFA0    133          ASC     ") TO "        ;+17
  0046CF: 01            134          DC.B    1
  0046D0: A9            135          ASC     ")"            ;+18
  0046D1: 01            136          DC.B    1
  0046D2: A8            137          ASC     "("            ;+19
  0046D3: 00            138          DC.B    0
                        139 ;

                        141 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        142 ;
                        143 ; LIST AN ASCII STRING WITHOUT A FOLLOWING SPACE
                        144 ;
  0046D4: 4DF8466E      145 LNSP     LEA     RELTBL,A6      ;PTR TO TBL
  0046D8: 605A          146          BRA     PRVC1          ;INDEX IN D1
                        147 ;
  0046DA: 7400          148 LFOR0    MOVEQ   #0,D2
  0046DC: 601A          149          BRA     LFOR
  0046DE: 7402          150 LFOR1    MOVEQ   #2,D2
  0046E0: 6016          151          BRA     LFOR
  0046E2: 7404          152 LFOR2    MOVEQ   #4,D2
  0046E4: 6012          153          BRA     LFOR
  0046E6: 7406          154 LFOR3    MOVEQ   #6,D2
  0046E8: 600E          155          BRA     LFOR
  0046EA: 7401          156 LFOR4    MOVEQ   #1,D2
  0046EC: 600A          157          BRA     LFOR
  0046EE: 7403          158 LFOR5    MOVEQ   #3,D2
  0046F0: 6006          159          BRA     LFOR
  0046F2: 7405          160 LFOR6    MOVEQ   #5,D2
  0046F4: 6002          161          BRA     LFOR
  0046F6: 7407          162 LFOR7    MOVEQ   #7,D2
                        163 ;
                        164 ;--------------------
                        165 ;-- LIST LINK: FOR --
                        166 ;--------------------
                        167 ;
  0046F8: 720E          168 LFOR     MOVEQ   #14,D1         ;LIST "FOR "
  0046FA: 4EB8461A      169          JSR     LASC1
  0046FE: 361B          170          MOVE.W  (A3)+,D3       ;LIMIT OFFSET
  004700: 3F1B          171          MOVE.W  (A3)+,-(A7)    ;STEP OFFSET
  004702: 3F03          172          MOVE.W  D3,-(A7)       ;LIMIT OFFSET
  004704: 3F1B          173          MOVE.W  (A3)+,-(A7)    ;INITVAL OFFSET
  004706: 4EB84546      174          JSR     PRNTVAR        ;LOOP VARN
  00470A: 7200          175          MOVEQ   #0,D1          ;LIST "="
  00470C: 61C6          176          BSR     LNSP           ;NO TRLING SPACE
  00470E: 6112          177          BSR     PRVC           ;INITIAL VALUE
  004710: 720F          178          MOVEQ   #15,D1         ;LIST " TO "
  004712: 4EB8461A      179          JSR     LASC1
  004716: 610A          180          BSR     PRVC           ;LIMIT
  004718: 7210          181          MOVEQ   #16,D1         ;LIST " STEP "
  00471A: 4EB8461A      182          JSR     LASC1
  00471E: 6102          183          BSR     PRVC           ;LIMIT
  004720: 601E          184          BRA     LLETX          ;LIST DONE
                        185 ;
  004722: 2C5F          186 PRVC     MOVE.L  (A7)+,A6       ;RETURN ADR
  004724: 321F          187          MOVE.W  (A7)+,D1       ;OFFSET
  004726: 2F0E          188          MOVE.L  A6,-(A7)       ;RESTORE RTN ADR
  004728: E649          189          LSR.W   #3,D1          ;INDEX
  00472A: 3C49          190          MOVE.W  A1,A6          ;SOVN TO A6
  00472C: E24A          191          LSR.W   #1,D2          ;TEST TYPE
  00472E: 6404          192          BCC     PRVC1          ;IF VARN
                        193 ;
  004730: 2C7815B0      194          MOVE.L  SOCN,A6        ;SOCN TO A6
  004734: 4EF8454E      195 PRVC1    JMP     PASCSTR        ;PRT VALUE & RET
                        196 ;
                                     CHAIN   LIST3

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
                          4 ;---------------------
                          5 ;-- LIST LINK: LLET --
                          6 ;---------------------
                          7 ;
  004738: 4EB845AA        8 LLET     JSR     LISTKEY        ;LIST KEYWORD
  00473C: 4EB87304        9          JSR     LLET1          ;(CODE ON DISK 4)
  004740: 4EF84532       10 LLETX    JMP     LISTX          ;LIST DONE
                         11 ;
                         12 ;---------------------
                         13 ;-- LIST LINK: LREM --
                         14 ;---------------------
                         15 ;
  004744: 4EB845AA       16 LREM     JSR     LISTKEY        ;LIST THE KEYWORD
  004748: 544B           17          ADDQ.W  #2,A3          ;SKIP THE LINK
  00474A: 4EB844D2       18          JSR     LSTRING        ;LIST THE STRING
  00474E: 4EF84532       19          JMP     LISTX          ;LIST DONE
                         20 ;
                         21 ;------------------------
                         22 ;-- LIST LINK: LASSIGN --
                         23 ;------------------------
                         24 ;
  004752: 4EB845AA       25 LASSIGN  JSR     LISTKEY        ;LIST KEYWORD
  004756: 4EB84546       26          JSR     PRNTVAR        ;VARIABLE NAME
  00475A: 7200           27          MOVEQ   #0,D1          ;- GET READY TO
  00475C: 4EB8461A       28          JSR     LASC1          ;PRINT "=" SIGN -
  004760: 4EF8482E       29          JMP     PRNTHEX        ;PRINT HEX #
                         30 ;

                         32 ;--------------------
                         33 ;-- LIST LINK: MAV --
                         34 ;--------------------
                         35 ;
  004764: 7400           36 LAV3CCC  MOVEQ   #0,D2
  004766: 601A           37          BRA     LAV3
  004768: 7401           38 LAV3VCC  MOVEQ   #1,D2
  00476A: 6016           39          BRA     LAV3
  00476C: 7402           40 LAV3CVC  MOVEQ   #2,D2
  00476E: 6012           41          BRA     LAV3
  004770: 7403           42 LAV3VVC  MOVEQ   #3,D2
  004772: 600E           43          BRA     LAV3
  004774: 7404           44 LAV3CCV  MOVEQ   #4,D2
  004776: 600A           45          BRA     LAV3
  004778: 7405           46 LAV3VCV  MOVEQ   #5,D2
  00477A: 6006           47          BRA     LAV3
  00477C: 7406           48 LAV3CVV  MOVEQ   #6,D2
  00477E: 6002           49          BRA     LAV3
  004780: 7407           50 LAV3VVV  MOVEQ   #7,D2
  004782: 5C8B           51 LAV3     ADDQ.L  #6,A3          ;PTR TO ARY OFFST
  004784: 6138           52          BSR     PRARRNM        ;PR ARRAY NAME
  004786: 518B           53          SUBQ.L  #8,A3          ;PTR TO 1ST INDX
  004788: 6136           54          BSR     PRICVC         ;INT C OR V & ,
  00478A: 6014           55          BRA     LAV2A          ;CONTINUE
                         56 ;
  00478C: 7400           57 LAV2CC   MOVEQ   #0,D2
  00478E: 600A           58          BRA     LAV2
  004790: 7401           59 LAV2VC   MOVEQ   #1,D2
  004792: 6006           60          BRA     LAV2
  004794: 7402           61 LAV2CV   MOVEQ   #2,D2
  004796: 6002           62          BRA     LAV2
  004798: 7403           63 LAV2VV   MOVEQ   #3,D2
  00479A: 588B           64 LAV2     ADDQ.L  #4,A3          ;PTR TO ARY OFFS
  00479C: 6120           65          BSR     PRARRNM        ;PR ARRAY NAME
  00479E: 5D8B           66          SUBQ.L  #6,A3          ;PTR TO 1ST INDX
  0047A0: 611E           67 LAV2A    BSR     PRICVC         ;INT C OR V & ,
  0047A2: 600C           68          BRA     LAV1A          ;CONTINUE
                         69 ;
  0047A4: 7400           70 LAV1C    MOVEQ   #0,D2
  0047A6: 6002           71          BRA     LAV1
  0047A8: 7401           72 LAV1V    MOVEQ   #1,D2
  0047AA: 548B           73 LAV1     ADDQ.L  #2,A3          ;PTR TO ARY OFFS
  0047AC: 6110           74          BSR     PRARRNM        ;PR ARRAY NAME
  0047AE: 598B           75          SUBQ.L  #4,A3          ;PTR TO 1ST INDX
  0047B0: 617A           76 LAV1A    BSR     PRICV          ;INT C OR V
  0047B2: 7211           77          MOVEQ   #17,D1         ;PTR TO ") TO "
  0047B4: 4EB8461A       78          JSR     LASC1          ;PRINT THE STRING
  0047B8: 548B           79          ADDQ.L  #2,A3          ;SKIP ARRAY OFFSET
  0047BA: 4EF8453C       80          JMP     LKEYVAR+2      ;VARN & DONE
                         81 ;
  0047BE: 4E71           82 PRARRNM  NOP
                         83 ;
  0047C0: 616A           84 PRICVC   BSR     PRICV          ;PRINT C OR V
  0047C2: 4EF845D8       85          JMP     PRCOMMA        ;PR COMMA, RETN
                         86 ;

                         88 ;--------------------
                         89 ;-- LIST LINK: MVA --
                         90 ;--------------------
                         91 ;
  0047C6: 7400           92 LVA3CCC  MOVEQ   #0,D2
  0047C8: 601A           93          BRA     LVA3
  0047CA: 7401           94 LVA3VCC  MOVEQ   #1,D2
  0047CC: 6016           95          BRA     LVA3
  0047CE: 7402           96 LVA3CVC  MOVEQ   #2,D2
  0047D0: 6012           97          BRA     LVA3
  0047D2: 7403           98 LVA3VVC  MOVEQ   #3,D2
  0047D4: 600E           99          BRA     LVA3
  0047D6: 7404          100 LVA3CCV  MOVEQ   #4,D2
  0047D8: 600A          101          BRA     LVA3
  0047DA: 7405          102 LVA3VCV  MOVEQ   #5,D2
  0047DC: 6006          103          BRA     LVA3
  0047DE: 7406          104 LVA3CVV  MOVEQ   #6,D2
  0047E0: 6002          105          BRA     LVA3
  0047E2: 7407          106 LVA3VVV  MOVEQ   #7,D2
  0047E4: 7608          107 LVA3     MOVEQ   #8,D3          ;PTR TO VARN OFFST
  0047E6: 6130          108          BSR     LVAN           ;LIST VAR, ARY NAME
  0047E8: 61D6          109          BSR     PRICVC         ;PRINT C OR V & ,
  0047EA: 6012          110          BRA     LVA2A          ;CONTINUE
                        111 ;
  0047EC: 7400          112 LVA2CC   MOVEQ   #0,D2
  0047EE: 600A          113          BRA     LVA2
  0047F0: 7401          114 LVA2VC   MOVEQ   #1,D2
  0047F2: 6006          115          BRA     LVA2
  0047F4: 7402          116 LVA2CV   MOVEQ   #2,D2
  0047F6: 6002          117          BRA     LVA2
  0047F8: 7403          118 LVA2VV   MOVEQ   #3,D2
  0047FA: 7606          119 LVA2     MOVEQ   #6,D3          ;PTR TO VARN OFFST
  0047FC: 611A          120          BSR     LVAN           ;LIST VAR, ARY NAME
  0047FE: 61C0          121 LVA2A    BSR     PRICVC         ;PRINT C OR V & ,
  004800: 600A          122          BRA     LVA1A          ;CONTINUE
                        123 ;
  004802: 7400          124 LVA1C    MOVEQ   #0,D2
  004804: 6002          125          BRA     LVA1
  004806: 7401          126 LVA1V    MOVEQ   #1,D2
  004808: 7604          127 LVA1     MOVEQ   #4,D3          ;PTR TO VARN OFFST
  00480A: 610C          128          BSR     LVAN           ;LIST VAR, ARY NAME
  00480C: 611E          129 LVA1A    BSR     PRICV          ;PRINT C OR V
  00480E: 7212          130          MOVEQ   #18,D1         ;PTR TO ")"
  004810: 4EB8461A      131          JSR     LASC1          ;PRINT THE STRING
  004814: 4EF84532      132          JMP     LISTX          ;LIST DONE
                        133 ;
                        134 ; LIST "VARN TO ARRAY("
                        135 ;
  004818: D7C3          136 LVAN     ADD.L   D3,A3          ;PTR TO VARN OFFST
  00481A: 4EB84546      137          JSR     PRNTVAR        ;PRINT VARN
  00481E: 720F          138          MOVEQ   #15,D1
  004820: 4EB8461A      139          JSR     LASC1          ;PRINT " TO "
  004824: 598B          140          SUBQ.L  #4,A3          ;PTR TO ARRAY VARN
  004826: 6196          141          BSR     PRARRNM        ;PR ARRAY NAME
  004828: 97C3          142          SUB.L   D3,A3          ;PTR TO 1ST INDX
  00482A: 4E75          143          RTS                    ;DONE
                        144 ;
  00482C: 4E75          145 PRICV    RTS                    ;PRINT C OR V
                        146 ;
                                     CHAIN   UTIL

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
                          4 ;-------------------------
                          5 ;-- SUBROUTINE: PRNTHEX --
                          6 ;-------------------------
                          7 ;
                          8 ; PRINT AN 8 BYTE FLOATING POINT NUMBER
                          9 ; IN HEXADECIMAL FORMAT.
                         10 ;
                         11 ; A3 POINTS TO THE FLOATING POINT NUMBER
                         12 ;
  00482E: 7403           13 PRNTHEX  MOVEQ   #3,D2          ;4 WORDS
  004830: 6100FDA2       14          BSR     PRDOL          ;DOLLAR SIGN
                         15 ;
  004834: 6106           16 PRNTWD   BSR     PRHEX4         ;HEXPR WORD, SPC
  004836: 51CAFFFC       17          DBF     D2,PRNTWD      ;LOOP 4 TIMES
                         18 ;
  00483A: 4E75           19          RTS                    ;DONE
                         20 ;
                         21 ;------------------------
                         22 ;-- SUBROUTINE: PRHEX4 --
                         23 ;------------------------
                         24 ;
  00483C: 6106           25 PRHEX4   BSR     PRHEX2         ;2 HEX CHARS
  00483E: 6104           26          BSR     PRHEX2         ;2 HEX CHARS
  004840: 6000FD9E       27          BRA     PRSPACE        ;SPACE & EXIT
                         28 ;

                         30 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         31 ;
                         32 ;------------------------
                         33 ;-- SUBROUTINE: PRHEX2 --
                         34 ;------------------------
                         35 ;
  004844: 1E1B           36 PRHEX2   MOVE.B  (A3)+,D7       ;FETCH A BYTE
  004846: 3F07           37 PRHEX2A  MOVE.W  D7,-(A7)       ;SAVE LOW NIBBLE
  004848: E84F           38          LSR.W   #4,D7          ;UPPER NIBBLE
  00484A: 6102           39          BSR     PRHEX          ;PRINT AS HEX
  00484C: 3E1F           40          MOVE.W  (A7)+,D7       ;LOW NIBBLE
                         41 ;
  00484E: 6104           42 PRHEX    BSR     HEXIT          ;CONV D7 TO HEX
  004850: 6000FD90       43          BRA     OUTCHR         ;PRINT IT
                         44 ;
                         45 ; CONVERT A NIBBLE IN D7 TO HEXADECIMAL
                         46 ;
  004854: 0207000F       47 HEXIT    ANDI.B  #$0F,D7        ;MASK D4 - D7
  004858: 060700B0       48          ADDI.B  #$B0,D7
  00485C: 0C0700BA       49          CMPI.B  #$BA,D7        ;NUMERIC ?
  004860: 6502           50          BCS     HEXITX         ;SKIP IF SO
                         51 ;
  004862: 5E07           52          ADDQ.B  #7,D7          ;A - F
  004864: 4E75           53 HEXITX   RTS                    ;CONVERSION DONE
                         54 ;
                         55 ; HEXPRINT THE ADR, THEN D1 LINES OF 8 WORDS
                         56 ;
  004866: 21F820B420BC   57 SHPRINT  MOVE.L  PRINTER,ACTIVE
  00486C: 4EB845D0       58          JSR     LINFEED        ;<CR>
  004870: 611E           59          BSR     HADDRES        ;HEXPRINT THE ADR
  004872: 4EB845D0       60          JSR     LINFEED        ;<CR>
                         61 ;
                         62 ; SUBROUTINE;  HEXPRINT D1 LINES OF 16 BYTES EACH
                         63 ; (8 WORDS) AT THE ADDRESS IN D0.
                         64 ;
  004876: 21F820B420BC   65 SHPR1    MOVE.L  PRINTER,ACTIVE
  00487C: 2640           66          MOVE.L  D0,A3          ;ADR TO A3
  00487E: 7408           67 HPRINT1  MOVEQ   #8,D2          ;8 WORDS
  004880: 4EB8483C       68 HPRINT2  JSR     PRHEX4         ;PR WORD, SPC
  004884: 5302           69          SUBQ.B  #1,D2          ;DECR COUNT
  004886: 66F8           70          BNE     HPRINT2        ;LOOP TIL ZERO
                         71 ;
  004888: 5301           72          SUBQ.B  #1,D1          ;DECR COUNT
  00488A: 66F2           73          BNE     HPRINT1        ;LOOP TIL ZERO
                         74 ;
  00488C: 4EF845D0       75          JMP     LINFEED        ;<CR>, EXIT
                         76 ;
                         77 ; PRINT THREE BYTES AS HEX
                         78 ; D0 CONTAINS THE ADDRESS TO BE HEXPRINTED
                         79 ;
  004890: 7EA4           80 HADDRES  MOVEQ   #"$",D7
  004892: 4EB845E2       81          JSR     OUTCHR         ;PRINT IT
  004896: 2E00           82          MOVE.L  D0,D7          ;ADR TO D7
  004898: 4847           83          SWAP    D7             ;B23-16 TO B7-0
  00489A: 61AA           84          BSR     PRHEX2A        ;HEXPRINT THEM
  00489C: 3E00           85          MOVE.W  D0,D7          ;ADR TO D7
  00489E: E04F           86          LSR.W   #8,D7          ;B15-8 TO B7-0
  0048A0: 61A4           87          BSR     PRHEX2A        ;HEXPRINT THEM
  0048A2: 3E00           88          MOVE.W  D0,D7          ;ADR TO D7
  0048A4: 60A0           89          BRA     PRHEX2A        ;HEXPRINT B7-0
                         90 ;

                         92 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         93 ;
                         94 ;--------------------
                         95 ;-- ROUTINE: FIX16 --
                         96 ;--------------------
                         97 ;
                         98 ; PASS A 62-BIT FP # IN D0.L, D1.L AND RETURN A
                         99 ; 16 BIT UNSIGNED INTEGER IN D6.W AND A ZERO
                        100 ; ERROR MESSAGE IN D7.B,  ELSE RETURN AN
                        101 ; ERROR MESSAGE OF #11 IN D7.B.
                        102 ;
  0048A6: 4246          103 FIX16    CLR     D6             ;CLR INTEGER
  0048A8: 4247          104          CLR     D7             ;CLR ERROR MESSAGE
  0048AA: 2400          105          MOVE.L  D0,D2          ;TEST SIGN
  0048AC: 6B1C          106          BMI     FERR11         ;ERROR 11 IF NEG
                        107 ;
  0048AE: 4842          108          SWAP    D2             ;EXP TO LOWER WD
  0048B0: 02421FFF      109          ANDI.W  #$1FFF,D2      ;MASK ALL BUT EXP
  0048B4: 04421000      110          SUB.W   #$1000,D2      ;D2 = # BITS
  0048B8: 6B0E          111          BMI     FIX16X         ;DONE IF NEG
  0048BA: 670C          112          BEQ     FIX16X         ;DONE IF ZERO
                        113 ;
  0048BC: 7A10          114          MOVEQ   #16,D5
  0048BE: B445          115          CMP.W   D5,D2          ;D2 OVER 16 ?
  0048C0: 6208          116          BHI     FERR11         ;ERROR IF SO
                        117 ;
  0048C2: 3C00          118          MOVE.W  D0,D6          ;16 MS BITS TO D6
  0048C4: 9A42          119          SUB.W   D2,D5          ;# OF SHIFTS
  0048C6: EA6E          120          LSR.W   D5,D6          ;SHIFT D5 BITS
  0048C8: 4E75          121 FIX16X   RTS                    ;DONE, NO ERROR
                        122 ;
  0048CA: 7E0B          123 FERR11   MOVEQ   #11,D7         ;REPORT ERROR 11
  0048CC: 4E75          124          RTS                    ;DONE, REPT ERROR
                        125 ;
                        126 ;------------------------
                        127 ;-- SUBROUTINE: SNDCHR --
                        128 ;------------------------
                        129 ;
                        130 ; THIS ROUTINE IS USED TO SEND A SINGLE CHARACTER
                        131 ; TO THE CRT AT THE CURRENT CURSOR POSITION.
                        132 ;
                        133 ; REGISTER ASSIGNMENTS:
                        134 ;
                        135 ; D6: CONTAINS THE CRT'S SCREEN ADDRESS WHERE THE
                        136 ;     CHARACTER IS BEING SENT.
                        137 ;
                        138 ; D7: CONTAINS THE ACTUAL CHARACTER BEING SENT.
                        139 ;
  0048CE: 48E7FF04      140 SNDCHR   MOVEM.L D0-D7/A5,-(A7)  ;SAVE REGS
  0048D2: 4240          141          CLR.W   D0             ;WORK AREA
  0048D4: 3A7C2080      142          MOVEA   #TBLA,A5       ;START OF LINE ADR
  0048D8: 10381540      143          MOVE.B  LINE,D0        ;STARTING LINE #
  0048DC: 12381542      144          MOVE.B  COLUMN,D1      ;STARTING COLMN #
  0048E0: 0C010028      145          CMPI.B  #40,D1         ;RIGHT OF CRT?
  0048E4: 652C          146          BCS     SNDCHR2        ;SKIP IF NOT 
                        147 ;

                        149 ; THE LINE IS FILLED;  SVC THE SELF-SUFF FLAG
                        150 ; AND RESET THE COLUMN POSITION TO ZERO.
                        151 ;
  0048E6: 22381546      152          MOVE.L  SSFFLGS,D1     ;FETCH LINE FLAGS
  0048EA: 4A381900      153          TST.B   MODE           ;EDIT MODE?
  0048EE: 6604          154          BNE     NOTEDIT        ;NO, SKIP
                        155 ;
  0048F0: 0181          156          BCLR    D0,D1          ;NOT SELF-SUFF
  0048F2: 6002          157          BRA     ISEDIT         ;CONTINUE
                        158 ;
  0048F4: 01C1          159 NOTEDIT  BSET    D0,D1          ;LINE SELF-SUFF
  0048F6: 21C11546      160 ISEDIT   MOVE.L  D1,SSFFLGS     ;STORE FLAGS
  0048FA: 42381542      161          CLR.B   COLUMN         ;RESET COLUMN #
  0048FE: 4281          162          CLR.L   D1             ;RESET COLUMN
  004900: 0C000017      163          CMPI.B  #23,D0         ;BOTTOM OF CRT?
  004904: 6506          164          BCS     SNDCHR1        ;SKIP IF NOT
                        165 ;
                        166 ; WE ARE AT THE BOTTOM;  SCROLL THE CRT.
                        167 ;
  004906: 4EB84444      168          JSR     CMD9           ;SCROLL CRT
  00490A: 6006          169          BRA     SNDCHR2        ;DON'T INCR LINE #
                        170 ;
  00490C: 52381540      171 SNDCHR1  ADD.B   #1,LINE        ;NEXT LINE DOWN
  004910: 5200          172          ADDQ.B  #1,D0          ;
                        173 ;
                        174 ; WE CAN NOW PRINT A CHAR ON THIS LINE WITHOUT
                        175 ; FURTHER ADO.
                        176 ;
  004912: E308          177 SNDCHR2  LSL.B   #1,D0          ;ADJ FOR INDEX USE
  004914: 3C350000      178          MOVE.W  (A5,D0),D6     ;GET CRT ADR
  004918: E208          179          LSR.B   #1,D0          ;RESTORE LINE#
  00491A: DC01          180          ADD.B   D1,D6          ;NEXT COLMN OVR
  00491C: 0C07000D      181          CMPI.B  #$0D,D7        ;<CR>?
  004920: 670A          182          BEQ     SNDCR          ;SKIP IF <CR>
                        183 ;
  004922: 4EB84396      184          JSR     CMD4           ;SEND BYTE TO CRT
  004926: 52381542      185          ADDQ.B  #1,COLUMN      ;INCR COL POS
  00492A: 602C          186          BRA     SNDCHRX        ;EXIT
                        187 ;
                        188 ; THE CHAR TO BE PRINTED IS A <CR>
                        189 ;
  00492C: 10381540      190 SNDCR    MOVE.B  LINE,D0
  004930: 24381546      191          MOVE.L  SSFFLGS,D2     ;FETCH LINE FLAGS
  004934: 01C2          192          BSET    D0,D2          ;LINE SELF-SUFF
  004936: 21C21546      193          MOVE.L  D2,SSFFLGS     ;STORE LINE FLAGS
  00493A: 0C3800171540  194          CMPI.B  #23,LINE       ;BOTTOM OF CRT?
  004940: 6706          195          BEQ     SNDCR1         ;SCROLL IF SO
                        196 ;
  004942: 52381540      197          ADDQ.B  #1,LINE        ;NEXT LINE DOWN
  004946: 6004          198          BRA     SNDCR2         ;SKIP SCROLL
                        199 ;
                        200          LIST
  004948: 4EB84444      201 SNDCR1   JSR     CMD9           ;SCROLL CRT
  00494C: 42381542      202 SNDCR2   CLR.B   COLUMN         ;RESET COLUMN #
                        203 ;
                        204 ; DELAY FOR ABOUT NN SEC SO THE 6502 CAN TRAP CTL-C
                        205 ;
  004950: 343C00FF      206          MOVE.W  #$FF,D2        ;DELAY COUNTER
                        207 ;
  004954: 51CAFFFE      208 DELAY    DBF     D2,DELAY       ;DELAY UNTIL DONE
                        209 ;
  004958: 4CDF20FF      210 SNDCHRX  MOVEM.L (A7)+,D0-D7/A5 ;RESTORE REGS 
  00495C: 4E75          211          RTS                    ;SNDCHR DONE
                        212 ;
                        213 ;NOLIST

          SYMBOL TABLE (ALPHABETICAL)

ACTIVE    000020BC  ACTTBL    00003600  ACTTBL2  ?000036E0  ADD0      00003CCA  ADD10
ADD2      00003CC8  ADD4      00003CC6  ADD6      00003CC4  ADD8      00003CC2  ADDIS
ADDN      00003CB0  ADDPS     00003CBC  ARY2OK    0000411C  ARY3OK    000041BE  ASSIG
AV2IV     000040FE  AV3CCV    000041A0  AV3CVV    00004196  AV3VCV    0000419C  BCDX
BEGIN    ?000037C0  BELL      00004392  BRY2OK    0000429C  BRY3OK    0000433E  BUFFE
BUFR1    ?0000151E  C65ADR    000043E4  CDESIZE  ?0000155A  CHRMSK   ?00001F80  CLRCR
CLRCRA    0000448A  CLRCRT    00004470  CLRCSR    0000445A  CLRCSR1   0000445C  CLRKB
CLRMEM    00004212  CMD0      00004378  CMD1      0000437A  CMD1A     0000437C  CMD2A
CMD4      00004396  CMD5      000043A0  CMD5A     000043A6  CMD6      000043B2  CMD6A
CMD7      000043C4  CMD7B     000043CE  CMD8      00004428  CMD8B     00004432  CMD9
CMD9A    ?00004452  COLDSTRT  00006000  COLUMN    00001542  COND      0000151A  CPFP1
CPFPOS    000020C8  CTLCFLG   00001530  DATIN     00000FF8  DATOUT    00000FFA  DEFDI
DELAY     00004954  DEPTHOK   00003FA2  EADT     ?000015D4  ECHO      000043DE  EDTLN
EGOTO     00003CCA  EIMM      00003CCA  EINPUT    00003CCA  ELET      00007300  ELET1
ELSE      00003C84  END       00003B86  ENULL     00003CCA  EOA       000015EC  EOAN
EOBLCK   ?00001556  EOC      ?000015BC  EOCN     ?000015B4  EOH      ?00001584  EOI
EOIN     ?000015AC  EOLA     ?00001594  EOLBA    ?000015A4  EOLBN    ?0000159C  EOLN
EOV       000015E4  EOVN     ?000015C4  ERR45     000041F2  ERR6      000045A4  ERROR
ERRPTR    0000152C  EVENADR   000044DA  EXPADD   ?00001924  FALS1     00003DDE  FALSE
FERR      00003FB6  FERR11    000048CA  FIX16     000048A6  FIX16X    000048C8  FLIN1
FOR       00003F90  FOR0      00003F0C  FOR1      00003F1C  FOR2      00003F2E  FOR3
FOR4      00003F52  FOR5      00003F64  FOR6      00003F76  FOR7      00003F88  FOROK
FORSTK    000014FE  FPADD     000020C0  FPT       00001912  FPU       0000191A  GETIN
GETINDB   0000458A  GETINDC   00004592  GETINDD   000045A2  GETINDX   00004574  GETKE
GETVR     00004C00  GOSUB     00003B0A  GOSUBF    00003AFA  GOSUBT    00003AEA  GOSUB
GOTO      00003ADE  GOTOF     00003ACE  GOTOT     00003AC4  H3C8A     00003C8A  H3C9E
H3CAE     00003CAE  H3CF8     00003CF8  H3D1E     00003D1E  H3D36     00003D36  HADDR
HALGOL    000037CE  HALGOL1   000037E4  HCLR1     0000406C  HCLR2     00004076  HEXIT
HEXITX    00004864  HGR1      00004058  HGR2      00004062  HOME      00003CD2  HPRIN
HPRINT1   0000487E  HPRINT2   00004880  HPTBL    ?000020D8  HTAB      00003D18  HTABC
IDLE     ?00000122  IF1       00003D64  IF2       00003D76  IF2A      00003D80  IF3
IF3A      00003D90  INDEX    ?00001500  INPUT     00003BAC  INPUTS    00003BC0  INPX
INSADR   ?00001504  ISEDIT    000048F6  JV1       000020C0  JV2      ?00003A00  JV3
JV4       00006000  JV5       00007300  KBTEST   ?00001518  KEY1      000037E8  LARY1
LARY1A    000041D4  LARY2     00004100  LARY2A    000041CC  LARY3     000041A2  LASC
LASC1     0000461A  LASSIGN   00004752  LAV1      000047AA  LAV1A     000047B0  LAV1C
LAV1V     000047A8  LAV2      0000479A  LAV2A     000047A0  LAV2CC    0000478C  LAV2C
LAV2VC    00004790  LAV2VV    00004798  LAV3      00004782  LAV3CCC   00004764  LAV3C
LAV3CVC   0000476C  LAV3CVV   0000477C  LAV3VCC   00004768  LAV3VCV   00004778  LAV3V
LAV3VVV   00004780  LBLADR    00003AA6  LBLTEMP   0000151A  LCLR      0000409E  LELSE
LET       00003C98  LFOR      000046F8  LFOR0     000046DA  LFOR1     000046DE  LFOR2
LFOR3     000046E6  LFOR4     000046EA  LFOR5     000046EE  LFOR6     000046F2  LFOR7
LGO       0000463E  LGOSF1    00004660  LGOSUBF   0000465E  LGOSUBT   0000462E  LGOTO
LGOTOT    00004628  LHPR      000045BE  LIF1      000045E8  LIF2      000045F4  LIF3
LIF3A     00004606  LIFEND    00004656  LINBUF   ?00001600  LINE      00001540  LINFE
LINPUTS   000044B2  LISTER    000020B0  LISTKEY   000045AA  LISTX     00004532  LISTX
LKEY      000044E6  LKEYSTR   000044C0  LKEYV2    0000452C  LKEYV4    00004522  LKEYV
LLABEL    000044EC  LLBL      000044F2  LLBL1     000044F6  LLBL2     000044FA  LLET
LLET1     00007304  LLETX     00004740  LLOADC    000044A8  LLOC1     00004518  LLOCA
LNSP      000046D4  LOCAL     00003B48  LOCLOOP   00003B50  LOGX      00001922  LPLOT
LREL      00004612  LREL1     00004614  LREM      00004744  LSTRING   000044D2  LTHEN
LVA1      00004808  LVA1A     0000480C  LVA1C     00004802  LVA1V     00004806  LVA2
LVA2A     000047FE  LVA2CC    000047EC  LVA2CV    000047F4  LVA2VC    000047F0  LVA2V
LVA3      000047E4  LVA3CCC   000047C6  LVA3CCV   000047D6  LVA3CVC   000047CE  LVA3C
LVA3VCC   000047CA  LVA3VCV   000047DA  LVA3VVC   000047D2  LVA3VVV   000047E2  LVAN 
M1       ?00001904  M2       ?0000190C  MADR     ?0000150C  MARY1     00004232  MARY1
MARY2     00004280  MARY2A    0000434E  MARY3     00004322  MAV1C     000040A4  MAV1V
MAV2CC    000040CE  MAV2CV    000040E4  MAV2VC    000040D6  MAV2VV    000040F0  MAV3C
MAV3CCV   00004164  MAV3CVC   0000413E  MAV3CVV   00004182  MAV3VCC   0000412E  MAV3V
MAV3VVC   0000414E  MAV3VVV   0000418C  MEMOK     0000420A  MODE      00001900  MUNG
MVA1C     00004224  MVA1V     0000422A  MVA2CC    0000424E  MVA2CV    00004264  MVA2V
MVA2VV    00004270  MVA3CCC   000042A4  MVA3CCV   000042E4  MVA3CVC   000042BE  MVA3C
MVA3VCC   000042AE  MVA3VCV   000042F2  MVA3VVC   000042CE  MVA3VVV   0000430C  NEGCM
NEXT      00003FEC  NEXTOK    00004004  NEXTX     00004030  NLINES   ?0000154C  NOTED
NUMEVAL   000020D4  NUMWDS   ?00001516  OEGOTO    00003B72  OUTCHR    000045E2  PARM1
PARM2    ?00001536  PASCST1   00004554  PASCSTR   0000454E  PASERR    0000456E  PCLR
PMTPOS   ?00001510  POPCOND   00003ABC  POPFOR    00004040  PPLOT     00004080  PR1V
PR2V      00004540  PR2VX     00004530  PRARRNM   000047BE  PRCOMMA   000045D8  PRDOL
PRHEX     0000484E  PRHEX2    00004844  PRHEX2A   00004846  PRHEX4    0000483C  PRICV
PRICVC    000047C0  PRINT     00003BEC  PRINTCR   00003C20  PRINTER   000020B4  PRINT
PRINTS1   00003C4A  PRINTS2   00003C54  PRINTSV   00003C40  PRNTCON   000045B8  PRNTF
PRNTHEX   0000482E  PRNTST1   00004562  PRNTSTR   0000455E  PRNTSTX   0000456C  PRNTV
PRNTVAR   00004546  PRNTWD    00004834  PRQUOTE   000045DC  PRSPACE   000045E0  PRSTR
PRTO      00004534  PRVC      00004722  PRVC1     00004734  READKB    00004380  REL1
REL10     00003ED8  REL11     00003EE4  REL12     00003EF0  REL2      00003DC0  REL3
REL3A     00003DF4  REL3B     00003DF8  REL4      00003E18  REL4A     00003E2A  REL4B
REL5      00003E4E  REL5A     00003E60  REL5B     00003E64  REL6      00003E84  REL6A
REL6B     00003E98  REL7      00003EBC  REL8      00003EC4  REL9      00003ECC  RELTB
REM       00003F00  RETLOOP   00003B2E  RETURN    00003B1C  RETZERO   00003B26  REWOG
S1        00001902  S2        0000190A  SADT      000015D0  SCMDWD    000043FE  SERCN
SETCSR    00004456  SFLAG     00001508  SHPR1     00004876  SHPRINT   00004866  SINSG
SKEYSTR   000044C4  SLIF      000045B0  SNDBYT    00004416  SNDCHR    000048CE  SNDCH
SNDCHR2   00004912  SNDCHRX   00004958  SNDCMD    0000440E  SNDCR     0000492C  SNDCR
SNDCR2    0000494C  SNDWD     00004400  SOA       000015E8  SOAN      000015C8  SOBLC
SOC       000015B8  SOCN      000015B0  SOH       00001580  SOI       000015D8  SOIN
SOLA      00001590  SOLBA     000015A0  SOLBN     00001598  SOLN      00001588  SOV
SOVN      000015C0  SPRINTS   00003C44  SSFFLGS   00001546  STATUS    00000FFA  STEPO
STMTCNT  ?0000154E  STOP      00003B9C  STR      ?00001600  SYSOUT    000020B8  TBLA
TBUFF    ?0000151C  TEMP     ?00001538  TEMPB    ?00001700  TEXT      0000404E  THEN
TLINE    ?0000151D  TRACE    ?000037C8  TRUE      00003EB4  TRUE1     00003DDA  TXTLE
VA2IV     0000427E  VA3CCV    00004320  VA3CVV    00004316  VA3VCV    0000431C  VTAB
VTABC     00003D42  WAIT      0000441E  WARMSTRT  00006004  WRKADR   ?00001514  WRKBU

          SYMBOL TABLE (NUMERICAL)

IDLE     ?00000122  DATIN     00000FF8  STATUS    00000FFA  DATOUT    00000FFA  FORST
INDEX    ?00001500  INSADR   ?00001504  SFLAG     00001508  MADR     ?0000150C  PMTPO
WRKADR   ?00001514  NUMWDS   ?00001516  KBTEST   ?00001518  LBLTEMP   0000151A  COND
TBUFF    ?0000151C  TLINE    ?0000151D  BUFR1    ?0000151E  ERRPTR    0000152C  CTLCF
TXTLEN   ?00001532  PARM1    ?00001534  PARM2    ?00001536  TEMP     ?00001538  LINE
COLUMN    00001542  SSFFLGS   00001546  EDTLN    ?0000154A  NLINES   ?0000154C  STMTC
SOBLCK   ?00001552  EOBLCK   ?00001556  CDESIZE  ?0000155A  SOH       00001580  EOH
SOLN      00001588  EOLN     ?0000158C  SOLA      00001590  EOLA     ?00001594  SOLBN
EOLBN    ?0000159C  SOLBA     000015A0  EOLBA    ?000015A4  SOIN      000015A8  EOIN
SOCN      000015B0  EOCN     ?000015B4  SOC       000015B8  EOC      ?000015BC  SOVN
EOVN     ?000015C4  SOAN      000015C8  EOAN     ?000015CC  SADT      000015D0  EADT
SOI       000015D8  EOI      ?000015DC  SOV       000015E0  EOV       000015E4  SOA
EOA       000015EC  STR      ?00001600  BUFFER    00001600  LINBUF   ?00001600  TEMPB
WRKBUF   ?00001800  MODE      00001900  S1        00001902  M1       ?00001904  S2
M2       ?0000190C  FPT       00001912  FPU       0000191A  SINSGN   ?00001922  BCDX
LOGX      00001922  SERCNT   ?00001923  EXPADD   ?00001924  CHRMSK   ?00001F80  TBLA
LISTER    000020B0  PRINTER   000020B4  SYSOUT    000020B8  ACTIVE    000020BC  JV1
FPADD     000020C0  CPFP1M    000020C4  CPFPOS    000020C8  PRNTFP    000020CC  PRSTR
NUMEVAL   000020D4  HPTBL    ?000020D8  ACTTBL    00003600  ACTTBL2  ?000036E0  BEGIN
TRACE    ?000037C8  HALGOL    000037CE  HALGOL1   000037E4  KEY1      000037E8  JV2
LBLADR    00003AA6  ASSIGN    00003AB0  POPCOND   00003ABC  GOTOT     00003AC4  GOTOF
GOTO      00003ADE  GOSUBT    00003AEA  GOSUBT1   00003AF4  GOSUBF    00003AFA  GOSUB
RETURN    00003B1C  RETZERO   00003B26  RETLOOP   00003B2E  REWOGS    00003B3C  LOCAL
LOCLOOP   00003B50  OEGOTO    00003B72  END       00003B86  STOP      00003B9C  INPUT
INPUTS    00003BC0  INPX      00003BC4  PRINT     00003BEC  PRINTCR   00003C20  PRINT
PRINTSV   00003C40  SPRINTS   00003C44  PRINTS1   00003C4A  PRINTS2   00003C54  HPRIN
THEN      00003C7C  ELSE      00003C84  H3C8A     00003C8A  LET       00003C98  H3C9E
H3CAE     00003CAE  ADDN      00003CB0  ADDIS     00003CB8  ADDPS     00003CBC  ADD10
ADD8      00003CC2  ADD6      00003CC4  ADD4      00003CC6  ADD2      00003CC8  EGOTO
ENULL     00003CCA  ADD0      00003CCA  EIMM      00003CCA  EINPUT    00003CCA  HOME
VTAB      00003CF2  H3CF8     00003CF8  HTAB      00003D18  H3D1E     00003D1E  H3D36
VTABC     00003D42  HTABC     00003D50  FLIN1     00003D5C  IF1       00003D64  IF2
IF2A      00003D80  IF3       00003D8C  IF3A      00003D90  REL1      00003DA2  REL2
TRUE1     00003DDA  FALS1     00003DDE  REL3      00003DE2  REL3A     00003DF4  REL3B
REL4      00003E18  REL4A     00003E2A  REL4B     00003E2E  REL5      00003E4E  REL5A
REL5B     00003E64  REL6      00003E84  REL6A     00003E94  REL6B     00003E98  TRUE
FALSE     00003EB8  REL7      00003EBC  REL8      00003EC4  REL9      00003ECC  REL10
REL11     00003EE4  REL12     00003EF0  REM       00003F00  FOR0      00003F0C  FOR1
FOR2      00003F2E  FOR3      00003F40  FOR4      00003F52  FOR5      00003F64  FOR6
FOR7      00003F88  FOR       00003F90  DEPTHOK   00003FA2  FERR      00003FB6  STEPO
NEXT      00003FEC  FOROK     00003FFC  NEXTOK    00004004  NEXTX     00004030  NEGCM
POPFOR    00004040  TEXT      0000404E  HGR1      00004058  HGR2      00004062  HCLR1
HCLR2     00004076  PPLOT     00004080  PCLR      0000408A  LPLOT     00004094  LCLR
MAV1C     000040A4  MAV1V     000040AA  LARY1     000040B2  MAV2CC    000040CE  MAV2V
MAV2CV    000040E4  MAV2VV    000040F0  AV2IV     000040FE  LARY2     00004100  ARY2O
MAV3CCC   00004124  MAV3VCC   0000412E  MAV3CVC   0000413E  MAV3VVC   0000414E  MAV3C
MAV3VCV   00004172  MAV3CVV   00004182  MAV3VVV   0000418C  AV3CVV    00004196  AV3VC
AV3CCV    000041A0  LARY3     000041A2  ARY3OK    000041BE  LARY2A    000041CC  LARY1
ERR45     000041F2  DEFDIM    000041F8  MEMOK     0000420A  CLRMEM    00004212  MVA1C
MVA1V     0000422A  MARY1     00004232  MVA2CC    0000424E  MVA2VC    00004256  MVA2C
MVA2VV    00004270  VA2IV     0000427E  MARY2     00004280  BRY2OK    0000429C  MVA3C
MVA3VCC   000042AE  MVA3CVC   000042BE  MVA3VVC   000042CE  MVA3CCV   000042E4  MVA3V
MVA3CVV   00004302  MVA3VVV   0000430C  VA3CVV    00004316  VA3VCV    0000431C  VA3CC
MARY3     00004322  BRY3OK    0000433E  MARY2A    0000434E  MARY1A    00004358  CMD0
CMD1      0000437A  CMD1A     0000437C  READKB    00004380  CMD2A     00004386  BELL
CMD4      00004396  CMD5      000043A0  CMD5A     000043A6  CMD6      000043B2  CMD6A
CMD7      000043C4  CMD7B     000043CE  ECHO      000043DE  C65ADR    000043E4  SCMDW
SNDWD     00004400  SNDCMD    0000440E  SNDBYT    00004416  WAIT      0000441E  CMD8
CMD8B     00004432  CMD9      00004444  CMD9A    ?00004452  SETCSR    00004456  CLRCS
CLRCSR1   0000445C  GETKEY    00004460  CLRKB     0000446C  CLRCRT    00004470  CLRCR
CLRCRA    0000448A  LLOADC    000044A8  LINPUTS   000044B2  LKEYSTR   000044C0  SKEYS
LSTRING   000044D2  EVENADR   000044DA  LKEY      000044E6  LISTXX    000044EA  LLABE
LLBL      000044F2  LLBL1     000044F6  LLBL2     000044FA  LLOCAL    0000450E  LLOC1
LKEYV4    00004522  LKEYV2    0000452C  PR2VX     00004530  LISTX     00004532  PRTO
LKEYVAR   0000453A  PR2V      00004540  PR1V      00004542  PRNTVAR   00004546  PRNTV
PASCSTR   0000454E  PASCST1   00004554  PRNTSTR   0000455E  PRNTST1   00004562  PRNTS
PASERR    0000456E  GETINDX   00004574  GETINDA   0000457E  GETINDB   0000458A  GETIN
GETINDD   000045A2  ERR6      000045A4  LISTKEY   000045AA  SLIF      000045B0  PRNTC
LHPR      000045BE  LINFEED   000045D0  PRDOL     000045D4  PRCOMMA   000045D8  PRQUO
PRSPACE   000045E0  OUTCHR    000045E2  LIF1      000045E8  LIF2      000045F4  LIF3
LIF3A     00004606  LREL      00004612  LREL1     00004614  LASC1     0000461A  LASC
LGOTOT    00004628  LGOSUBT   0000462E  LTHEN    ?00004636  LGO       0000463E  LIFEN
LGOTOF    0000465A  LGOSUBF   0000465E  LGOSF1    00004660  LELSE     00004664  RELTB
LNSP      000046D4  LFOR0     000046DA  LFOR1     000046DE  LFOR2     000046E2  LFOR3
LFOR4     000046EA  LFOR5     000046EE  LFOR6     000046F2  LFOR7     000046F6  LFOR
PRVC      00004722  PRVC1     00004734  LLET      00004738  LLETX     00004740  LREM
LASSIGN   00004752  LAV3CCC   00004764  LAV3VCC   00004768  LAV3CVC   0000476C  LAV3V
LAV3CCV   00004774  LAV3VCV   00004778  LAV3CVV   0000477C  LAV3VVV   00004780  LAV3
LAV2CC    0000478C  LAV2VC    00004790  LAV2CV    00004794  LAV2VV    00004798  LAV2
LAV2A     000047A0  LAV1C     000047A4  LAV1V     000047A8  LAV1      000047AA  LAV1A
PRARRNM   000047BE  PRICVC    000047C0  LVA3CCC   000047C6  LVA3VCC   000047CA  LVA3C
LVA3VVC   000047D2  LVA3CCV   000047D6  LVA3VCV   000047DA  LVA3CVV   000047DE  LVA3V
LVA3      000047E4  LVA2CC    000047EC  LVA2VC    000047F0  LVA2CV    000047F4  LVA2V
LVA2      000047FA  LVA2A     000047FE  LVA1C     00004802  LVA1V     00004806  LVA1
LVA1A     0000480C  LVAN      00004818  PRICV     0000482C  PRNTHEX   0000482E  PRNTW
PRHEX4    0000483C  PRHEX2    00004844  PRHEX2A   00004846  PRHEX     0000484E  HEXIT
HEXITX    00004864  SHPRINT   00004866  SHPR1     00004876  HPRINT1   0000487E  HPRIN
HADDRES   00004890  FIX16     000048A6  FIX16X    000048C8  FERR11    000048CA  SNDCH
NOTEDIT   000048F4  ISEDIT    000048F6  SNDCHR1   0000490C  SNDCHR2   00004912  SNDCR
SNDCR1    00004948  SNDCR2    0000494C  DELAY     00004954  SNDCHRX   00004958  GETVR
JV3       00004C00  COLDSTRT  00006000  JV4       00006000  WARMSTRT  00006004  ERROR
JV5       00007300  ELET      00007300  LLET1     00007304  ELET1     00007308  MUNG 



* HAL.O                                START  $00003600
*                                      LENGTH $000002A7

003600  3C 98 3B 0A 3A DE 3A B0 3B 72 3B 1C 3B AC 3B C0
003610  3B EC 3C 20 3C 32 3C 40 3B 9C 3C D2 3C F2 3D 18
003620  3D 42 3D 50 3C 68 3B 86 3F 00 3B 48 3D 64 3F 0C
003630  3F EC 40 A4 42 24 40 4E 40 58 40 62 40 6C 40 76
003640  40 80 40 94 40 8A 40 9E 00 00 00 00 00 00 00 00
003650  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
003660  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
003670  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
003680  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
003690  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0036A0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0036B0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0036C0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0036D0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0036E0  3D A2 3D C0 3D E2 3E 18 3E 4E 3E 84 3E BC 3E C4
0036F0  3E CC 3E D8 3E E4 3E F0 3A C4 3A CE 3A EA 3A FA
003700  3C 7C 3C 84 3A BC 3D 76 3D 8C 00 00 3F 0C 3F 1C
003710  3F 2E 3F 40 3F 52 3F 64 3F 76 3F 88 00 00 00 00
003720  00 00 00 00 40 A4 40 AA 40 CE 40 D6 40 E4 40 F0
003730  41 24 41 2E 41 3E 41 4E 41 64 41 72 41 82 41 8C
003740  42 24 42 2A 42 4E 42 56 42 64 42 70 42 A4 42 AE
003750  42 BE 42 CE 42 E4 42 F2 43 02 43 0C 00 00 00 00
003760  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
003770  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
003780  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
003790  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0037A0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0037B0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0037C0  2C 78 15 80 49 F8 37 CE 4E 71 4E 71 4E 71 4A 38
0037D0  0F FA 6A 10 1E 38 0F F8 0C 07 00 83 66 06 4B F8
0037E0  3B 86 4E D5 3A 5E 4E D5 03 CC C5 D4 05 C7 CF D3
0037F0  D5 C2 04 C7 CF D4 CF 06 C1 D3 D3 C9 C7 CE 06 CF
003800  C5 C7 CF D4 CF 06 D2 C5 D4 D5 D2 CE 05 C9 CE D0
003810  D5 D4 05 C9 CE D0 D5 D4 05 D0 D2 C9 CE D4 05 D0
003820  D2 C9 CE D4 05 D0 D2 C9 CE D4 05 D0 D2 C9 CE D4
003830  04 D3 D4 CF D0 04 C8 CF CD C5 04 D6 D4 C1 C2 04
003840  C8 D4 C1 C2 04 D6 D4 C1 C2 04 C8 D4 C1 C2 03 C8
003850  D0 D2 03 C5 CE C4 03 D2 C5 CD 05 CC CF C3 C1 CC
003860  02 C9 C6 03 C6 CF D2 04 CE C5 D8 D4 03 CD C1 D6
003870  03 CD D6 C1 00 04 D4 C5 D8 D4 04 C8 C7 D2 B1 04
003880  C8 C7 D2 B2 05 C8 C3 CC D2 B1 05 C8 C3 CC D2 B2
003890  05 D0 D0 CC CF D4 05 CC D0 CC CF D4 04 D0 C3 CC
0038A0  D2 04 CC C3 CC D2 00



* HAL.P                                START  $00003A00
*                                      LENGTH $00000F5E

003A00  4E F8 3A A6 4E F8 3A B0 4E F8 3B 86 4E F8 3B C0
003A10  4E F8 3C 20 4E F8 3C 32 4E F8 3C 40 4E F8 3D 5C
003A20  4E F8 3D 42 4E F8 3D 50 4E F8 43 78 4E F8 43 7A
003A30  4E F8 43 80 4E F8 43 92 4E F8 43 96 4E F8 43 A0
003A40  4E F8 43 B2 4E F8 43 C4 4E F8 44 28 4E F8 44 44
003A50  4E F8 44 56 4E F8 44 5A 4E F8 44 60 4E F8 44 6C
003A60  4E F8 43 DE 4E F8 44 70 4E F8 45 46 4E F8 45 4E
003A70  4E F8 45 74 4E F8 45 AA 4E F8 45 5E 4E F8 47 52
003A80  4E F8 48 3C 4E F8 48 44 4E F8 45 D0 4E F8 45 E2
003A90  4E F8 48 66 4E F8 48 76 4E F8 48 A6 4E F8 48 CE
003AA0  3C CA 44 F2 3C C8 54 8E 4E D4 3C CA 47 52 3C C0
003AB0  3A 5E DB F8 15 E0 2A DE 2A DE 4E D4 31 DB 15 1A
003AC0  4E D4 46 28 4A 78 15 1A 66 14 54 8E 4E D4 4A 78
003AD0  15 1A 67 0A 54 8E 4E D4 3C CA 44 EC 3C C8 3C 56
003AE0  DD F8 15 A0 2C 56 4E D4 46 2E 4A 78 15 1A 66 04
003AF0  58 8E 4E D4 37 38 15 1A 60 10 4A 78 15 1A 67 0A
003B00  54 8E 4E D4 3C CA 44 EC 3C C8 27 0E 3C 56 DD F8
003B10  15 A0 2C 56 4E D4 3C CA 44 E6 3C CA 2E 1B 67 06
003B20  54 87 2C 47 4E D4 3E 1B 67 12 2A 38 15 E0 3A 5B
003B30  DB C5 2A DB 2A DB 55 47 66 F4 60 E0 7E 2A 4E F8
003B40  60 08 3C CA 45 0E 3C B0 3E 1E 30 07 2A 38 15 E0
003B50  3C 1E 3A 46 DB C5 50 8D 27 25 42 95 27 25 42 95
003B60  37 06 55 47 66 EA 37 00 42 A3 4E D4 3C CA 44 EC
003B70  3C C8 3A 5E DB F8 15 A0 21 D5 15 2C 4E D4 60 06
003B80  3C CA 44 E6 3C CA 4E B8 44 5A 08 F8 00 04 15 08
003B90  7E 15 4E F8 60 08 3C CA 44 E6 3C CA 4E B8 44 5A
003BA0  7E 14 4E F8 60 08 3C CA 45 3A 3C C8 21 F8 20 B8
003BB0  20 BC 7E BF 4E B8 45 E2 60 0A 3C CA 44 B2 3C B8
003BC0  4E B8 3C 44 7E A0 4E B8 45 E2 4E B8 4C 00 4A 38
003BD0  15 30 67 00 FF C8 3A 5E DB F8 15 E0 2A F8 19 02
003BE0  2A F8 19 06 4E D4 3C CA 45 3A 3C C8 21 F8 20 B4
003BF0  20 BC 2F 38 19 02 2F 38 19 06 30 5E D1 F8 15 E0
003C00  21 D8 19 02 21 D8 19 06 4E B8 20 CC 4E B8 20 D0
003C10  21 DF 19 06 21 DF 19 02 4E D4 3C CA 44 E6 3C CA
003C20  21 F8 20 B4 20 BC 4E B8 45 D0 4E D4 3C CA 44 C0
003C30  3C BC 61 10 4E B8 45 D0 4E D4 3C CA 44 B2 3C B8
003C40  61 02 60 A8 21 F8 20 B4 20 BC 1E 1E 67 06 4E B8
003C50  45 E2 60 F6 2E 0E 52 87 E2 8F DE 87 2C 47 4E 75
003C60  00 00 3C CA 45 BE 3C C4 20 1E 32 1E 21 CB 19 22
003C70  4E B8 48 66 26 78 19 22 4E D4 46 36 4A 78 15 1A
003C80  66 16 60 06 4A 78 15 1A 67 0E 54 8E 3A 5E DD CD
003C90  4E D4 3C CA 47 38 3C AE 3A 5E DD CD 4E D4 10 1E
003CA0  66 FC 20 0E 52 80 E2 88 D0 80 2C 40 4E 75 54 8E
003CB0  42 80 30 1E DD C0 4E D4 61 E4 60 0C 61 E0 4E D4
003CC0  54 8E 54 8E 54 8E 54 8E 54 8E 4E D4 3C CA 44 E6
003CD0  3C CA 48 E7 FF FE 4E B8 44 5A 4E B8 44 70 42 38
003CE0  15 40 42 38 15 42 4C DF 7F FF 4E D4 3C CA 45 3A
003CF0  3C C8 30 5E D1 F8 15 E0 20 18 22 18 4E B8 48 A6
003D00  4A 07 66 32 0C 46 00 17 62 00 00 2C 11 C6 15 40
003D10  4E D4 3C CA 45 3A 3C C8 30 5E D1 F8 15 E0 20 18
003D20  22 18 4E B8 48 A6 4A 07 66 0C 0C 46 00 27 62 06
003D30  11 C6 15 42 4E D4 7E 19 4E F8 60 08 3C CA 44 A8
003D40  3C C8 30 5E D1 F8 15 B8 60 AE 3C CA 44 A8 3C C8
003D50  30 5E D1 F8 15 B8 60 C6 00 01 4E 75 4E 75 3C CA
003D60  45 E8 3C B0 54 8E 30 5E 3A 5E DB F8 15 E0 60 10
003D70  3C CA 45 F4 3C B0 54 8E 30 5E 3A 5E DB F8 15 B8
003D80  38 1D 3A 1D 60 0A 3C CA 45 FE 3C B0 54 8E 30 5E
003D90  D1 F8 15 E0 30 18 32 18 42 78 15 1A 2E 0D 4E D4
003DA0  00 00 BA 41 66 38 4A 41 6A 30 B8 40 66 30 2A 47
003DB0  30 1D B0 58 66 28 30 15 B0 50 67 1E 4E D4 00 01
003DC0  BA 41 66 16 4A 41 6A 16 B8 40 66 0E 2A 47 30 1D
003DD0  B0 58 66 06 30 15 B0 50 67 04 52 78 15 1A 4E D4
003DE0  00 02 4A 45 6A 00 00 E6 3C 04 B1 46 6A 06 4A 40
003DF0  6A E8 6B EA 4A 40 6B 6C B8 40 65 DE 62 E0 BA 41
003E00  65 D8 62 DA 2A 47 30 1D B0 58 65 CE 62 D0 30 15
003E10  B0 50 65 C6 4E D4 00 03 4A 45 6A 00 00 BC 3C 04
003E20  B1 46 6A 06 4A 40 6A B2 6B B4 4A 40 6B 6A B8 40
003E30  65 A8 62 AA BA 41 65 A2 62 A4 2A 47 30 1D B0 58
003E40  65 98 62 9A 30 15 B0 50 63 90 4E D4 00 04 4A 45
003E50  6A 00 00 92 3C 04 B1 46 6A 06 4A 40 6B 56 6A 58
003E60  4A 40 6B 94 B8 40 62 4C 65 4E BA 41 62 46 65 48
003E70  2A 47 30 1D B0 58 62 3C 65 3E 30 15 B0 50 62 34
003E80  4E D4 00 05 4A 45 6A 68 3C 04 B1 46 6A 06 4A 40
003E90  6B 22 6A 24 4A 40 62 96 B8 40 62 18 65 1A BA 41
003EA0  62 12 65 14 2A 47 30 1D B0 58 62 08 65 0A 30 15
003EB0  B0 50 65 04 52 78 15 1A 4E D4 00 00 4A 41 6A F4
003EC0  4E D4 00 01 4A 41 6B EC 4E D4 00 02 4A 41 6A E8
003ED0  4A 40 6A E0 4E D4 00 03 4A 41 6A D8 4A 40 6A D4
003EE0  4E D4 00 04 4A 41 6A D0 4A 40 6B C8 4E D4 00 05
003EF0  4A 41 6A C0 4A 40 6B BC 4E D4 3C CA 47 44 3C B0
003F00  3A 5E DD CD 4E D4 3C CA 46 DA 3C C2 2A 38 15 E0
003F10  2C 05 2E 05 60 7A 3C CA 46 DE 3C C2 2A 38 15 B8
003F20  2C 38 15 E0 2E 06 60 68 3C CA 46 E2 3C C2 2A 38
003F30  15 E0 2C 38 15 B8 2E 05 60 56 3C CA 46 E6 3C C2
003F40  2A 38 15 B8 2C 05 2E 38 15 E0 60 44 3C CA 46 EA
003F50  3C C2 2A 38 15 E0 2C 05 2E 38 15 B8 60 32 3C CA
003F60  46 EE 3C C2 2A 38 15 B8 2C 38 15 E0 2E 05 60 20
003F70  3C CA 46 F2 3C C2 2A 38 15 E0 2C 38 15 B8 2E 06
003F80  60 0E 3C CA 46 F6 3C C2 2A 38 15 B8 2C 05 2E 05
003F90  3A 5E DB C5 30 78 14 FE B0 FC 14 14 62 04 7E 26
003FA0  60 14 51 48 20 DD 20 95 5D 48 3A 5E DB C6 2C 15
003FB0  4A 46 6B 06 7E 25 4E F8 60 08 48 46 30 86 59 48
003FC0  20 8E 58 90 51 48 20 DD 20 9D 5D 48 3A 5E DB C7
003FD0  20 1D 22 1D 3A 5E 30 8D DB F8 15 E0 2A C0 2A C1
003FE0  31 C8 14 FE 4E D4 3C CA 45 3A 3C C8 30 5E 3A 78
003FF0  14 FE BA FC 14 FE 66 04 7E 27 60 BA B0 DD 67 04
004000  7E 29 60 B2 D1 F8 15 E0 21 DD 19 02 21 DD 19 06
004010  4E B8 20 C0 51 88 20 F8 19 02 20 F8 19 06 21 DD
004020  15 1A 4A 5D 6B 10 30 4D 4E B8 20 C4 67 02 6A 10
004030  2C 78 15 1A 4E D4 30 4D 4E B8 20 C4 67 F2 6A F0
004040  06 78 00 18 14 FE 4E D4 3C CA 44 E6 3C CA 4E 71
004050  4E D4 3C CA 44 E6 3C CA 4E 71 4E D4 3C CA 44 E6
004060  3C CA 4E 71 4E D4 3C CA 44 E6 3C CA 4E 71 4E D4
004070  3C CA 44 E6 3C CA 4E 71 4E D4 3C CA 45 2C 3C C6
004080  4E 71 4E D4 3C CA 45 2C 3C C6 4E 71 4E D4 3C CA
004090  45 22 3C C2 4E 71 4E D4 3C CA 45 22 3C C2 4E 71
0040A0  4E D4 47 A4 3E 1E 60 0A 47 A8 3A 5E DB F8 15 D8
0040B0  3E 15 42 80 30 5E D1 F8 15 D0 36 18 66 00 01 16
0040C0  78 50 4E B8 41 F8 20 80 60 00 01 0A 47 8C 3C 1E
0040D0  3E 1E 60 2C 47 90 3A 5E DB F8 15 D8 3C 15 3E 1E
0040E0  60 1E 47 94 3C 1E 3A 5E DB F8 15 D8 60 10 47 98
0040F0  28 38 15 D8 3A 5E DB C4 3C 15 3A 5E DB C4 3E 15
004100  42 80 30 5E D1 F8 15 D0 34 18 66 10 28 3C 00 00
004110  03 20 4E B8 41 F8 30 C1 20 80 55 88 36 10 60 00
004120  00 AC 47 64 3A 1E 3C 1E 3E 1E 60 76 47 68 3A 5E
004130  DB F8 15 D8 3A 15 3C 1E 3E 1E 60 66 47 6C 3A 1E
004140  3A 5E DB F8 15 D8 3C 15 3E 1E 60 56 47 70 28 38
004150  15 D8 3A 5E DB C4 3A 15 3A 5E DB C4 3C 15 3E 1E
004160  60 40 47 74 3A 1E 3C 1E 3A 5E DB F8 15 D8 60 30
004170  47 78 28 38 15 D8 3A 5E DB C4 3A 15 3C 1E 60 1C
004180  47 7C 3A 1E 28 38 15 D8 60 0C 47 80 28 38 15 D8
004190  3A 5E DB C4 3A 15 3A 5E DB C4 3C 15 3A 5E DB C4
0041A0  3E 15 30 5E D1 F8 15 D0 32 18 66 12 28 3C 00 00
0041B0  1F 40 4E B8 41 F8 30 C1 30 C1 20 80 59 88 34 18
0041C0  36 18 B2 45 65 2C CA C2 CA C3 20 05 B4 46 65 22
0041D0  CC C3 D0 86 B6 47 65 1A 02 87 00 00 FF FF D0 87
0041E0  E7 88 D0 90 20 40 3A 5E DB F8 15 E0 2A D8 2A D8
0041F0  4E D4 7E 2D 4E F8 60 08 20 38 15 EC 90 84 B8 B8
004200  15 E4 64 06 7E 2E 4E F8 60 08 21 C0 15 EC E6 8C
004210  2A 40 42 9D 42 9D 53 84 66 F8 72 0A 55 90 30 C1
004220  4E 75 48 02 3E 1E 60 0A 48 06 3A 5E DB F8 15 D8
004230  3E 15 42 80 30 5E D1 F8 15 D0 36 18 66 00 01 1A
004240  78 50 4E B8 41 F8 20 80 60 00 01 0E 47 EC 3C 1E
004250  3E 1E 60 2C 47 F0 3A 5E DB F8 15 D8 3C 15 3E 1E
004260  60 1E 47 F4 3C 1E 3A 5E DB F8 15 D8 60 10 47 F8
004270  28 38 15 D8 3A 5E DB C4 3C 15 3A 5E DB C4 3E 15
004280  42 80 30 5E D1 F8 15 D0 34 18 66 10 28 3C 00 00
004290  03 20 4E B8 41 F8 30 C1 20 80 55 88 36 10 60 00
0042A0  00 AE 47 C6 3A 1E 3C 1E 3E 1E 60 76 47 CA 3A 5E
0042B0  DB F8 15 D8 3A 15 3C 1E 3E 1E 60 66 47 CE 3A 1E
0042C0  3A 5E DB F8 15 D8 3C 15 3E 1E 60 56 47 D2 28 38
0042D0  15 D8 3A 5E DB C4 3A 15 3A 5E DB C4 3C 15 3E 1E
0042E0  60 40 47 D6 3A 1E 3C 1E 3A 5E DB F8 15 D8 60 30
0042F0  47 DA 28 38 15 D8 3A 5E DB C4 3A 15 3C 1E 60 1C
004300  47 DE 3A 1E 28 38 15 D8 60 0C 47 E2 28 38 15 D8
004310  3A 5E DB C4 3A 15 3A 5E DB C4 3C 15 3A 5E DB C4
004320  3E 15 30 5E D1 F8 15 D0 32 18 66 12 28 3C 00 00
004330  1F 40 4E B8 41 F8 30 C1 30 C1 20 80 59 88 34 18
004340  36 18 B2 45 65 00 FE AC CA C2 CA C3 20 05 B4 46
004350  65 00 FE A0 CC C3 D0 86 B6 47 65 00 FE 96 02 87
004360  00 00 FF FF D0 87 E7 88 D0 90 20 40 3A 5E DB F8
004370  15 E0 20 DD 20 DD 4E D4 4E 75 7A 01 4E F8 44 0E
004380  7A 02 4E B8 44 0E 1E 38 0F FA 6A FA 1E 38 0F F8
004390  4E 75 7A 03 60 E6 7A 04 4E B8 43 FE 4E F8 44 16
0043A0  7A 05 4E B8 43 FE 1E 38 0F FA 6A FA 1E 38 0F F8
0043B0  4E 75 7A 06 0C 07 00 0D 66 02 7E 0A 4E B8 44 0E
0043C0  4E F8 44 16 7A 07 61 36 3C 04 61 34 53 46 1A 38
0043D0  0F FA 6A FA 1A F8 0F F8 51 CE FF F4 4E 75 61 04
0043E0  4E F8 43 96 42 46 1C 38 15 40 2F 0D 3A 7C 20 80
0043F0  DC 46 3C 35 60 00 2A 5F DC 38 15 42 4E 75 61 0E
004400  61 1C 31 C6 0F FA 61 16 11 C6 0F FA 4E 75 61 0E
004410  11 C5 0F FA 4E 75 61 06 11 C7 0F FA 4E 75 08 38
004420  00 06 0F FA 66 F8 4E 75 7A 08 61 D2 3C 04 61 D0
004430  53 46 08 38 00 06 0F FA 66 F8 11 DD 0F FA 51 CE
004440  FF F2 4E 75 24 38 15 46 E2 8A 08 C2 00 17 21 C2
004450  15 46 7A 09 60 B8 7A 16 60 02 7A 17 61 86 60 9E
004460  42 47 4E B8 43 80 08 07 00 07 67 F4 7A 18 60 9E
004470  76 18 3A 7C 20 80 42 40 7A 08 3C 35 00 00 61 00
004480  FF 7E 7C 28 61 00 FF 7A 7E A0 08 38 00 06 0F FA
004490  66 F8 11 C7 0F FA 53 06 66 F0 54 40 53 03 66 D8
0044A0  74 FF 21 C2 15 46 4E 75 4E B8 45 AA 4E B8 45 B8
0044B0  60 38 4E B8 44 C4 4E B8 45 D8 4E B8 45 46 60 2A
0044C0  61 02 60 26 4E B8 45 AA 4E B8 45 DC 61 04 4E F8
0044D0  45 DC 1E 1B 67 04 4E 95 60 F8 2E 0B 52 87 E2 8F
0044E0  DE 87 26 47 4E 75 4E B8 45 AA 60 46 4E B8 45 AA
0044F0  60 04 4E B8 45 E0 61 02 60 38 4E B8 45 DC 2C 78
004500  15 98 32 1B E4 49 4E B8 45 4E 4E F8 45 DC 4E B8
004510  45 AA 31 DB 19 22 61 2E 55 78 19 22 67 14 61 22
004520  60 F6 4E B8 45 AA 61 18 61 0A 60 04 4E B8 45 AA
004530  61 0E 4E 75 72 0F 4E B8 46 D4 61 6E 61 08 60 F2
004540  61 04 4E B8 45 D8 2C 78 15 C0 32 1B E6 49 42 80
004550  4A 41 67 0A 10 1E 67 16 DD C0 53 41 66 F6 10 1E
004560  67 0A 1E 1E 4E B8 45 E2 53 00 66 F6 4E 75 7E 1A
004570  4E F8 60 08 32 2B FF FE 3A 7C 36 00 42 43 34 1D
004580  67 22 B4 41 67 04 52 43 60 F4 42 41 42 42 3C 7C
004590  37 E8 B2 03 67 0C 14 16 67 0A 4D F6 20 01 52 41
0045A0  60 F0 4E 75 7E 06 4E F8 60 08 61 C8 61 B0 60 30
0045B0  72 0C 61 66 54 8B 60 8E 2C 78 15 B0 60 8C 61 EA
0045C0  20 1B 4E B8 48 90 61 10 61 0A 3E 1B 4E B8 48 46
0045D0  7E 0D 60 0E 7E A4 60 0A 7E AC 60 06 7E A2 60 02
0045E0  7E A0 2A 78 20 BC 4E D5 61 C6 61 26 55 8B 4E B8
0045F0  45 46 60 12 61 BA 61 1A 55 8B 61 BC 60 08 61 B0
004600  61 12 7E B0 4E 95 61 D8 54 8B 3C 5B 55 8E 3C 56
004610  4E D6 54 8B 3C 53 55 4E 32 16 4D F8 46 6E 4E F8
004620  45 4E 61 F6 4E F8 44 FA 72 06 61 F6 60 10 72 08
004630  61 F0 54 8B 60 08 72 0A 61 E0 4E B8 73 04 61 A0
004640  3C 5B BC FC 3A CE 67 12 BC FC 3A FA 67 10 BC FC
004650  3C 84 67 10 55 8B 4E F8 45 32 72 07 60 02 72 09
004660  61 C0 60 F2 72 0B 61 B2 4E B8 73 04 60 E8 01 BD
004670  02 BC BE 01 BE 02 BE BD 01 BC 02 BD BC 05 C7 CF
004680  D4 CF A0 0A C5 CC D3 C5 A0 C7 CF D4 CF A0 06 C7
004690  CF D3 D5 C2 A0 0B C5 CC D3 C5 A0 C7 CF D3 D5 C2
0046A0  A0 05 D4 C8 C5 CE A0 05 C5 CC D3 C5 A0 03 C9 C6
0046B0  A0 06 D0 D2 C9 CE D4 A0 04 C6 CF D2 A0 04 A0 D4
0046C0  CF A0 06 A0 D3 D4 C5 D0 A0 05 A9 A0 D4 CF A0 01
0046D0  A9 01 A8 00 4D F8 46 6E 60 5A 74 00 60 1A 74 02
0046E0  60 16 74 04 60 12 74 06 60 0E 74 01 60 0A 74 03
0046F0  60 06 74 05 60 02 74 07 72 0E 4E B8 46 1A 36 1B
004700  3F 1B 3F 03 3F 1B 4E B8 45 46 72 00 61 C6 61 12
004710  72 0F 4E B8 46 1A 61 0A 72 10 4E B8 46 1A 61 02
004720  60 1E 2C 5F 32 1F 2F 0E E6 49 3C 49 E2 4A 64 04
004730  2C 78 15 B0 4E F8 45 4E 4E B8 45 AA 4E B8 73 04
004740  4E F8 45 32 4E B8 45 AA 54 4B 4E B8 44 D2 4E F8
004750  45 32 4E B8 45 AA 4E B8 45 46 72 00 4E B8 46 1A
004760  4E F8 48 2E 74 00 60 1A 74 01 60 16 74 02 60 12
004770  74 03 60 0E 74 04 60 0A 74 05 60 06 74 06 60 02
004780  74 07 5C 8B 61 38 51 8B 61 36 60 14 74 00 60 0A
004790  74 01 60 06 74 02 60 02 74 03 58 8B 61 20 5D 8B
0047A0  61 1E 60 0C 74 00 60 02 74 01 54 8B 61 10 59 8B
0047B0  61 7A 72 11 4E B8 46 1A 54 8B 4E F8 45 3C 4E 71
0047C0  61 6A 4E F8 45 D8 74 00 60 1A 74 01 60 16 74 02
0047D0  60 12 74 03 60 0E 74 04 60 0A 74 05 60 06 74 06
0047E0  60 02 74 07 76 08 61 30 61 D6 60 12 74 00 60 0A
0047F0  74 01 60 06 74 02 60 02 74 03 76 06 61 1A 61 C0
004800  60 0A 74 00 60 02 74 01 76 04 61 0C 61 1E 72 12
004810  4E B8 46 1A 4E F8 45 32 D7 C3 4E B8 45 46 72 0F
004820  4E B8 46 1A 59 8B 61 96 97 C3 4E 75 4E 75 74 03
004830  61 00 FD A2 61 06 51 CA FF FC 4E 75 61 06 61 04
004840  60 00 FD 9E 1E 1B 3F 07 E8 4F 61 02 3E 1F 61 04
004850  60 00 FD 90 02 07 00 0F 06 07 00 B0 0C 07 00 BA
004860  65 02 5E 07 4E 75 21 F8 20 B4 20 BC 4E B8 45 D0
004870  61 1E 4E B8 45 D0 21 F8 20 B4 20 BC 26 40 74 08
004880  4E B8 48 3C 53 02 66 F8 53 01 66 F2 4E F8 45 D0
004890  7E A4 4E B8 45 E2 2E 00 48 47 61 AA 3E 00 E0 4F
0048A0  61 A4 3E 00 60 A0 42 46 42 47 24 00 6B 1C 48 42
0048B0  02 42 1F FF 04 42 10 00 6B 0E 67 0C 7A 10 B4 45
0048C0  62 08 3C 00 9A 42 EA 6E 4E 75 7E 0B 4E 75 48 E7
0048D0  FF 04 42 40 3A 7C 20 80 10 38 15 40 12 38 15 42
0048E0  0C 01 00 28 65 2C 22 38 15 46 4A 38 19 00 66 04
0048F0  01 81 60 02 01 C1 21 C1 15 46 42 38 15 42 42 81
004900  0C 00 00 17 65 06 4E B8 44 44 60 06 52 38 15 40
004910  52 00 E3 08 3C 35 00 00 E2 08 DC 01 0C 07 00 0D
004920  67 0A 4E B8 43 96 52 38 15 42 60 2C 10 38 15 40
004930  24 38 15 46 01 C2 21 C2 15 46 0C 38 00 17 15 40
004940  67 06 52 38 15 40 60 04 4E B8 44 44 42 38 15 42
004950  34 3C 00 FF 51 CA FF FE 4C DF 20 FF 4E 75
