                          1          LIST
                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
                          4 ;        *******
                          5 ;        *     *
                          6 ;        * LET *
                          7 ;        *     *
                          8 ;        *******
                          9 ;
                         10          SHORT   F              ;DTACK ZERO PAGE
                         11 ;
00001094:                12 VECT14   EQU     $1094          ;USED FOR TESTING
                         13 ;
00001600:                14 BUFFER   EQU     $1600
00001700:                15 TEMPB    EQU     $1700
00001800:                16 WRKBUF   EQU     $1800
00001600:                17 LINBUF   EQU     BUFFER
                         18 ;
000014FE:                19 FORSTK   EQU     $14FE          ;$1400 - $14FF
00001500:                20 INDEX    EQU     $1500
00001504:                21 INSADR   EQU     $1504
00001508:                22 SFLAG    EQU     $1508
0000150C:                23 MADR     EQU     $150C
00001510:                24 PMTPOS   EQU     $1510
00001514:                25 WRKADR   EQU     $1514
00001516:                26 NUMWDS   EQU     $1516
00001518:                27 KBTEST   EQU     $1518
0000151A:                28 LBLTEMP  EQU     $151A          ;LONG WORD
0000151A:                29 COND     EQU     LBLTEMP        ;SHARED REG
0000151A:                30 COUNT    EQU     LBLTEMP        ;SHARED REG
0000151C:                31 TBUFE    EQU     $151C          ;BYTE
0000151D:                32 TLINE    EQU     $151D          ;BYTE
0000151E:                33 BUFR1    EQU     $151E          ;BYTE
00001530:                34 CTLCFLG  EQU     $1530
00001532:                35 TXTLEN   EQU     $1532
00001534:                36 PARM1    EQU     $1534
00001536:                37 PARM2    EQU     $1536
00001538:                38 TEMP     EQU     $1538
                         39 ;
00001540:                40 LINE     EQU     $1540
00001542:                41 COLUMN   EQU     $1542
00001544:                42 FLAGS    EQU     $1544
00001546:                43 SSFFLGS  EQU     $1546          ;LONG WORD PARM
                         44 ;
0000154A:                45 EDTLN    EQU     $154A
0000154C:                46 NLINES   EQU     $154C
0000154E:                47 STMTCNT  EQU     $154E          ;STATEMENTS/LINE
                         48 ;
00001580:                49 SOH      EQU     $1580          ;HALGOL OBJ CODE
00001584:                50 EOH      EQU     SOH+4
                         51 ;
00001588:                52 SOLN     EQU     SOH+8          ;LINE # TBL
0000158C:                53 EOLN     EQU     SOLN+4
                         54 ;
00001590:                55 SOLA     EQU     SOLN+8         ;LINE ADDRESS TBL
00001594:                56 EOLA     EQU     SOLA+4
                         57 ;

                         59 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         60 ;
00001598:                61 SOLBN    EQU     SOLA+8         ;LABEL NAME TBL
0000159C:                62 EOLBN    EQU     SOLBN+4
                         63 ;
000015A0:                64 SOLBA    EQU     SOLBN+8        ;LABEL ADDRESS TBL
000015A4:                65 EOLBA    EQU     SOLBA+4
                         66 ;
000015A8:                67 SOIN     EQU     SOLBA+8        ;INTEGER NAME TBL
000015AC:                68 EOIN     EQU     SOIN+4
                         69 ;
000015B0:                70 SOCN     EQU     SOIN+8         ;CONST NAME TBL
000015B4:                71 EOCN     EQU     SOCN+4
                         72 ;
000015B8:                73 SOC      EQU     SOCN+8         ;CONST VALUE TBL
000015BC:                74 EOC      EQU     SOC+4
                         75 ;
000015C0:                76 SOVN     EQU     SOC+8          ;VAR NAME TBL
000015C4:                77 EOVN     EQU     SOVN+4
                         78 ;
000015C8:                79 SOAN     EQU     SOVN+8         ;ARRAY NAME TBL
000015CC:                80 EOAN     EQU     SOAN+4
                         81 ;
000015D0:                82 SOADT    EQU     SOAN+8         ;ARY DESCRIPTR TBL
000015D4:                83 EOADT    EQU     SOADT+4
                         84 ;
000015D8:                85 SOI      EQU     SOADT+8        ;INT VALUE TBL
000015DC:                86 EOI      EQU     SOI+4
                         87 ;
000015E0:                88 SOV      EQU     SOI+8          ;VAR VALUE TBL
000015E4:                89 EOV      EQU     SOV+4
                         90 ;
000015E8:                91 SOA      EQU     SOV+8          ;ARRAY VALUE TBL
000015EC:                92 EOA      EQU     SOA+4
                         93 ;
00001900:                94 MODE     EQU     $1900
00001902:                95 S1       EQU     $1902
00001912:                96 FPT      EQU     S1+16
0000191A:                97 FPU      EQU     S1+24
00001F80:                98 CHRMSK   EQU     $1F80          ;DUMMY OFFSET -128
00002080:                99 TBLA     EQU     $2080
000020B0:               100 LISTER   EQU     $20B0
000020B4:               101 PRINTER  EQU     LISTER+4
000020B8:               102 SYSOUT   EQU     LISTER+8
000020BC:               103 ACTIVE   EQU     LISTER+12
                        104 ;
00003600:               105 ACTTBL   EQU     $3600
000036E0:               106 ACTTBL2  EQU     $36E0
000037C0:               107 BEGIN    EQU     $37C0
000037E8:               108 KEY1     EQU     $37E8
                        109 ;

                        111 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        112 ;
000020C0:               113 JV1      EQU     $20C0          ;DISK 1 JUMP TBL
000020C0:               114 FPADD    EQU     JV1
000020C4:               115 CPFP1M   EQU     FPADD+4
000020C8:               116 CPFPOS   EQU     CPFP1M+4
000020CC:               117 PRNTFP   EQU     CPFPOS+4
000020D0:               118 PRSTRM   EQU     PRNTFP+4
000020D4:               119 NUMEVAL  EQU     PRSTRM+4
000020D8:               120 HPTBL    EQU     NUMEVAL+4
                        121 ;
00003A00:               122 JV2      EQU     $3A00          ;DISK 2 JUMP TBL
00003A08:               123 END      EQU     JV2+8
00003A0C:               124 INPUTS   EQU     END+4
00003A10:               125 PRINTCR  EQU     INPUTS+4
00003A14:               126 PRINTS   EQU     PRINTCR+4
00003A18:               127 PRINTSV  EQU     PRINTS+4
00003A1C:               128 FLIN1    EQU     PRINTSV+4
00003A20:               129 VTABC    EQU     FLIN1+4
00003A24:               130 HTABC    EQU     VTABC+4
00003A28:               131 CMD0     EQU     HTABC+4
00003A2C:               132 CMD1     EQU     CMD0+4
00003A30:               133 READKB   EQU     CMD1+4
00003A34:               134 BELL     EQU     READKB+4
00003A38:               135 CMD4     EQU     BELL+4
00003A3C:               136 CMD5     EQU     CMD4+4
00003A40:               137 CMD6     EQU     CMD5+4
00003A44:               138 CMD7     EQU     CMD6+4
00003A48:               139 CMD8     EQU     CMD7+4
00003A4C:               140 CMD9     EQU     CMD8+4
00003A50:               141 SETCSR   EQU     CMD9+4
00003A54:               142 CLRCSR   EQU     SETCSR+4
00003A58:               143 GETKEY   EQU     CLRCSR+4
00003A5C:               144 CLRKB    EQU     GETKEY+4
00003A60:               145 ECHO     EQU     CLRKB+4
00003A64:               146 CLRCRT   EQU     ECHO+4
00003A68:               147 PRNTVAR  EQU     CLRCRT+4
00003A6C:               148 PASCSTR  EQU     PRNTVAR+4
00003A70:               149 GETINDX  EQU     PASCSTR+4
00003A74:               150 LISTKEY  EQU     GETINDX+4
00003A78:               151 PRNTSTR  EQU     LISTKEY+4
00003A7C:               152 LASSIGN  EQU     PRNTSTR+4
00003A80:               153 PRHEX4   EQU     LASSIGN+4
00003A84:               154 PRHEX2   EQU     PRHEX4+4
00003A88:               155 LINFEED  EQU     PRHEX2+4
00003A8C:               156 OUTCHR   EQU     LINFEED+4
00003A90:               157 SHPRINT  EQU     OUTCHR+4
00003A94:               158 SHPR1    EQU     SHPRINT+4
00003A98:               159 FIX16    EQU     SHPR1+4
00003A9C:               160 SNDCHR   EQU     FIX16+4
                        161 ;

                        163 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        164 ;
00004C00:               165 JV3      EQU     $4C00
00004C00:               166 GETVAR   EQU     JV3
00004C04:               167 SCREDIT  EQU     GETVAR+4
00004C08:               168 HOMCSR   EQU     SCREDIT+4
00004C0C:               169 CHKLIST  EQU     HOMCSR+4
00004C10:               170 CHKLN    EQU     CHKLIST+4
00004C14:               171 SRCH1    EQU     CHKLN+4
00004C18:               172 IPRINT1  EQU     SRCH1+4
00004C1C:               173 GETFLD   EQU     IPRINT1+4
00004C20:               174 GETFLDA  EQU     GETFLD+4
00004C24:               175 EXAMN    EQU     GETFLDA+4
00004C28:               176 HEXCHK   EQU     EXAMN+4
00004C2C:               177 PACK     EQU     HEXCHK+4
00004C30:               178 PREPROC  EQU     PACK+4
00004C34:               179 REMSPCE  EQU     PREPROC+4
00004C38:               180 ADDLST   EQU     REMSPCE+4
00004C3C:               181 VARCHK   EQU     ADDLST+4
00004C40:               182 VARCHK1  EQU     VARCHK+4
00004C44:               183 CONCHK   EQU     VARCHK1+4
00004C48:               184 CONCHK1  EQU     CONCHK+4
00004C4C:               185 GETLBL   EQU     CONCHK1+4
00004C50:               186 GETLBL1  EQU     GETLBL+4
00004C54:               187 HEXGET   EQU     GETLBL1+4
00004C58:               188 VOIDLBL  EQU     HEXGET+4
00004C5C:               189 REWIND   EQU     VOIDLBL+4
00004C60:               190 LIST     EQU     REWIND+4
00004C64:               191 DELFN    EQU     LIST+4
00004C68:               192 SELFN    EQU     DELFN+4
00004C6C:               193 RUN      EQU     SELFN+4
00004C70:               194 INPTXT   EQU     RUN+4
00004C74:               195 SNGLA    EQU     INPTXT+4
00004C78:               196 ERR8     EQU     SNGLA+4
00004C7C:               197 RANGCHK  EQU     ERR8+4
                        198 ;
00006000:               199 JV4      EQU     $6000
00006008:               200 ERROR    EQU     JV4+8
                        201 ;
0000FFFE:               202 LCTR     EQU     $FFFE
0000FFFC:               203 LPTR     EQU     $FFFC
                                     CHAIN   ELET

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
--OBJECT: LET.OBJ0
  007300:                 4          ORG     $7300
                          5 ;
  007300: 4EF87310        6 JV5      JMP     ELET
  007304: 4EF8764E        7          JMP     LLET1
  007308: 4EF87310        8          JMP     ELET
  00730C: 4EF878E6        9          JMP     MURK1
                         10 ;
                         11 ;---------------------
                         12 ;-- EDIT LINK: ELET --
                         13 ;---------------------
                         14 ;
                         15 ; THIS ROUTINE TOKENIZES THE INPUT STREAM IN THE
                         16 ; 'INPUT' BUFFER AND STORES INTERMEDIATE RESULTS
                         17 ; IN THE 'WORK' BUFFER.
                         18 ;
                         19 ; A0: POINTER TO THE INPUT BUFFER
                         20 ; A3: POINTER TO THE WORK BUFFER
                         21 ;
  007310: 4293           22 ELET     CLR.L   (A3)           ;INIT LINKS
  007312: 31CB1514       23          MOVE.W  A3,WRKADR      ;SAVE POINTER
  007316: 588B           24          ADDQ.L  #4,A3          ;START OF BUFFR
  007318: 2C48           25          MOVE.L  A0,A6          ;START OF WRK BUFR
  00731A: 4EB84C34       26          JSR     REMSPCE        ;REMOVE ALL SPACES
  00731E: 204E           27          MOVE.L  A6,A0          ;NEW STRT OF BUFFR
  007320: 4EB87558       28          JSR     PRECHK         ;FOR NOW
  007324: 4EB876F0       29          JSR     TYPCHK         ;GET VARN TYPE
                         30 ;
                         31 ; FETCH THE VARN TYPE AND RETURN IT IN 'D4'
                         32 ; AND CONTINUE THE PARSING OF THE 'LET' STATEMENT
                         33 ;
  007328: 45F87334       34          LEA     LETTBL,A2      ;START OF LET TBL
  00732C: E34C           35          LSL.W   #1,D4          ;TOKEN -> OFFSET
  00732E: 34724000       36          MOVEA.W (A2,D4),A2     ;LET ADDRESS
  007332: 4ED2           37          JMP     (A2)           ;CONT 'LET'
                         38 ;
  007334: 735A           39 LETTBL   DC.W    TYPERR         ;UNKNOWN TYPE
  007336: 734E           40          DC.W    LETFP          ;FP
  007338: 7342           41          DC.W    LETFPA         ;FP ARRAY
  00733A: 7766           42          DC.W    LETINT         ;INTEGER
  00733C: 7344           43          DC.W    LETINTA        ;INTEGER ARRAY
  00733E: 7346           44          DC.W    LETSTR         ;STRING
  007340: 7348           45          DC.W    LETSTRA        ;STRING ARRAY
                         46 ;
  007342: 4E71           47 LETFPA   NOP                    ;NOT IMPLEMENTED
  007344: 4E71           48 LETINTA  NOP                    ;NOT IMPLEMENTED
  007346: 4E71           49 LETSTR   NOP                    ;NOT IMPLEMENTED
  007348: 7E01           50 LETSTRA  MOVEQ   #1,D7          ;ERROR MSG #
  00734A: 4EF86008       51          JMP     ERROR          ;REPORT & EXIT
                         52 ;
  00734E: 4EB87360       53 LETFP    JSR     TOKNLT         ;LEFT OF "="
  007352: 4EB873C8       54          JSR     TOKNRT         ;RIGHT OF "="
  007356: 4EF87926       55          JMP     CLET           ;COMPILE CRUN CD
                         56 ;
  00735A: 7E03           57 TYPERR   MOVEQ   #3,D7          ;SET ERROR #3
  00735C: 4EF86008       58          JMP     ERROR          ;REPORT & EXIT
                         59 ;

                         61 ;---------------------
                         62 ;-- ROUTINE: TOKNLT --
                         63 ;---------------------
                         64 ;
                         65 ; THIS ROUTINE IS USED TO TOKENIZE THE LEFT SIDE
                         66 ; OF THE FP 'LET' EXPRESSION.
                         67 ;
  007360: 20781538       68 TOKNLT   MOVEA.L TEMP,A0        ;START OF KEY
                         69 ;
  007364: 4245           70 TOKNLF   CLR.W   D5             ;INIT WRK REG
  007366: 4246           71          CLR.W   D6             ;INIT INDEX REG
                         72 ;
  007368: 4EB8752E       73          JSR     FETCHR         ;GET 1ST CHR
  00736C: 6726           74          BEQ     LETERR         ;IF NULL
                         75 ;
  00736E: 08070005       76          BTST    #5,D7          ;AN ALPHA ?
  007372: 6720           77          BEQ     LETERR         ;AN ERROR IF NOT
                         78 ;
                         79 ;   <ELSE THE FIRST IS OKAY>
                         80 ;

                         82 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         83 ;
  007374: 5205           84 TOKNL0   ADDQ.B  #1,D5          ;INIT STR LEN
                         85 ;
  007376: 4EB8752E       86          JSR     FETCHR         ;GET NEXT CHR
  00737A: 6718           87          BEQ     LETERR         ;IF NULL
                         88 ;
  00737C: 08070005       89          BTST    #5,D7          ;AN ALPHA ?
  007380: 66F2           90          BNE     TOKNL0         ;UPDATE STR LEN
                         91 ;
  007382: 08070004       92          BTST    #4,D7          ;A NUMERIC ?
  007386: 66EC           93          BNE     TOKNL0         ;UPDATE STR LEN
                         94 ;
  007388: 0C0600AC       95          CMPI.B  #",",D6        ;A DELIMITER?
  00738C: 670C           96          BEQ     TOKNLC         ;TOKEN VARN & OP
                         97 ;
  00738E: 0C0600BD       98          CMPI.B  #"=",D6        ;END OF LF PARSE?
  007392: 670E           99          BEQ     TOKNLD         ;TOKEN & EXIT
                        100 ;
                        101 ;   <ELSE A SYNTAX ERROR>
                        102 ;
  007394: 7E03          103 LETERR   MOVEQ   #3,D7          ;SYNTAX ERR
  007396: 4EF86008      104          JMP     ERROR          ;REPORT ERROR
                        105 ;
  00739A: 6110          106 TOKNLC   BSR     SERVARN        ;SERVICE VARN
  00739C: 4EB873BE      107          JSR     SRVTOKN        ;TOKEN ","
  0073A0: 60C2          108          BRA     TOKNLF         ;GET NEXT CHR
                        109 ;
  0073A2: 6108          110 TOKNLD   BSR     SERVARN        ;SERVICE VARN
  0073A4: 6118          111          BSR     SRVTOKN        ;TOKEN "=" & EXIT
  0073A6: 4A10          112          TST.B   (A0)           ;BUFFER EMPTY ?
  0073A8: 674A          113          BEQ     LETER2         ;IF SO
                        114 ;
  0073AA: 4E75          115          RTS                    ;LEFT SIDE DONE
                        116 ;
                        117 ;----------------------
                        118 ;-- ROUTINE: SERVARN --
                        119 ;----------------------
                        120 ;
                        121 ; THIS ROUTINE IS USED TO STORE THE VARIABLE NAME
                        122 ; AND THEN TOKENIZE ITS TABLE INDEX
                        123 ;
                        124 ; A0: CURRENT INPUT BUFFER POINTER
                        125 ;
                        126 ; NOTE: THE 'VARCHK1' CALL DISTROYS THE CURRENT
                        127 ;       BUFFER POINTER (A0), THEREFORE IT SHOULD
                        128 ;       BE SAVED PRIOR TO EACH CALL.
                        129 ;
  0073AC: 2C781538      130 SERVARN  MOVEA.L TEMP,A6        ;SAVE BUFR PTR
  0073B0: 2F08          131          MOVE.L  A0,-(A7)       ;SAVE TOKEN PTR
  0073B2: 4EB84C40      132          JSR     VARCHK1        ;SERVICE VARN
  0073B6: 205F          133          MOVEA.L (A7)+,A0       ;GET TOKEN PTR
  0073B8: 4EB875AA      134          JSR     TOKNVAR        ;TOKENIZE IT
  0073BC: 4E75          135          RTS
                        136 ;
  0073BE: 4EB8753E      137 SRVTOKN  JSR     TOKNOP2        ;TOKENIZE ","
  0073C2: 21C81538      138          MOVE.L  A0,TEMP        ;SAVE CURNT PTR
  0073C6: 4E75          139          RTS                    ;DONE
                        140 ;

                        142 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        143 ;
                        144 ;---------------------
                        145 ;-- ROUTINE: TOKNRT --
                        146 ;---------------------
                        147 ;
                        148 ; THIS ROUTINE IS USED TO TOKENIZE THE RIGHT SIDE
                        149 ; OF THE 'LET' STATEMENT.
                        150 ;
                        151 ; A0: POINTER TO INPUT BUFFER
                        152 ; A3: POINTER TO THE WORK BUFFER
                        153 ;
  0073C8: 4245          154 TOKNRT   CLR.W   D5             ;INIT VARN LENGTH
  0073CA: 4246          155          CLR.W   D6             ;INIT REG
                        156 ;
  0073CC: 4EB8752E      157          JSR     FETCHR         ;FETCH NEXT CHR
  0073D0: 6700013C      158          BEQ.L   ADRCHK         ;EXIT IF DONE
                        159 ;
  0073D4: 0C0600AB      160          CMPI.B  #"+",D6        ;A UNARY PLUS ?
  0073D8: 671E          161          BEQ     IGNORE         ;THEN IGNORE IT
                        162 ;
  0073DA: 0C0600AD      163          CMPI.B  #"-",D6        ;A UNARY MINUS ?
  0073DE: 6758          164          BEQ     OPPARS         ;THEN TOKENIZE IT
                        165 ;
  0073E0: 0C0600A8      166          CMPI.B  #"(",D6        ;AN OPEN PAREN ?
  0073E4: 6752          167          BEQ     OPPARS         ;THEN TOKENIZE IT
                        168 ;
  0073E6: 08070005      169          BTST    #5,D7          ;AN ALPHA CHR ?
  0073EA: 6612          170          BNE     VARNPRS        ;DO VARN PARSE
                        171 ;
  0073EC: 08070003      172          BTST    #3,D7          ;A CONSTANT ?
  0073F0: 6600009C      173          BNE.L   CONSPRS        ;DO CONS PARSE
                        174 ;
                        175 ;   <ELSE SYNTAX ERROR EXIT>
                        176 ;
  0073F4: 4EF87394      177 LETER2   JMP     LETERR         ;REPORT & EXIT
                        178 ;
  0073F8: 21C81538      179 IGNORE   MOVE.L  A0,TEMP        ;SET NEW BUFR PTR
  0073FC: 60CA          180          BRA     TOKNRT         ;GET NEXT CHR
                        181 ;
                        182 ; VARIABLE NAME PARSING & TOKENIZING
                        183 ;
  0073FE: 5245          184 VARNPRS  ADDQ    #1,D5          ;UPDATE STR LEN
                        185 ;
  007400: 4EB8752E      186          JSR     FETCHR         ;FETCH NEX CHR
  007404: 670000EE      187          BEQ.L   FINIS0         ;THEN DONE
                        188 ;
  007408: 08070005      189          BTST    #5,D7          ;AN ALPHA ?
  00740C: 66F0          190          BNE     VARNPRS        ;UPDATE STR LEN
                        191 ;
  00740E: 08070004      192          BTST    #4,D7          ;A NUMERIC ?
  007412: 66EA          193          BNE     VARNPRS        ;UPDATE STR LEN
                        194 ;
  007414: 08070002      195          BTST    #2,D7          ;BINARY OPERATOR ?
  007418: 660E          196          BNE     VARNA2         ;THEN TOKENIZE IT
                        197 ;
  00741A: 0C0600A8      198          CMPI.B  #"(",D6        ;OPEN PAREN ?
  00741E: 6758          199          BEQ     KEYPARS        ;TOKENIZE KEYWORD
                        200 ;

                        202 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        203 ;
  007420: 0C0600A9      204          CMPI.B  #")",D6        ;CLOSING PAREN ?
  007424: 671C          205          BEQ     VARNA3         ;TOKEN VARN & OP
                        206 ;
  007426: 60CC          207          BRA     LETER2         ;SYNTAX ERROR
                        208 ;
  007428: 2C781538      209 VARNA2   MOVEA.L TEMP,A6        ;START OF VARN
  00742C: 2F08          210          MOVE.L  A0,-(A7)       ;SAVE BUFFR PTR
  00742E: 4EB84C40      211          JSR     VARCHK1        ;GET VARN INDEX
  007432: 4EB875AA      212          JSR     TOKNVAR        ;TOKENIZE IT
  007436: 205F          213          MOVEA.L (A7)+,A0       ;RESTORE BUFR PTR
                        214 ;
                        215 ; TOKENIZE THE UNARY OR BINARY OPERATOR
                        216 ;
  007438: 21C81538      217 OPPARS   MOVE.L  A0,TEMP        ;SAVE CURRENT PTR
  00743C: 4EB8753E      218          JSR     TOKNOP2        ;TOKENIZE IT
  007440: 6086          219          BRA     TOKNRT         ;CONTINUE
                        220 ;
  007442: 2C781538      221 VARNA3   MOVEA.L TEMP,A6        ;START OF VARN
  007446: 2F08          222          MOVE.L  A0,-(A7)       ;SAVE BUFR PTR
  007448: 4EB84C40      223          JSR     VARCHK1        ;GET ITS INDEX
  00744C: 4EB875AA      224          JSR     TOKNVAR        ;TOKENIZE IT
  007450: 205F          225          MOVEA.L (A7)+,A0       ;RESTORE BUFR PTR
  007452: 7A01          226          MOVEQ   #1,D5          ;OPERATOR LENGTH
  007454: 21C81538      227          MOVE.L  A0,TEMP        ;SAVE CURNT PTR
                        228 ;
                        229 ; TOKENIZE THE CLOSING PARENTHESIS
                        230 ;
  007458: 4DE8FFFF      231 VARNA4   LEA     -$1(A0),A6     ;PTR TO OPERATOR
  00745C: 4EB87544      232          JSR     TOKNOP         ;TOKENIZE IT
  007460: 4EB8752E      233 VARNA5   JSR     FETCHR         ;GET NEXT CHR
  007464: 6700009A      234          BEQ.L   FINIS1         ;BUFFER EMPTY
                        235 ;
  007468: 0C0600A9      236          CMPI.B  #")",D6        ;ANOTHER ")" ?
  00746C: 67EA          237          BEQ     VARNA4         ;TOKENIZE IT
                        238 ;
  00746E: 08070002      239          BTST    #2,D7          ;BINARY OPERATOR ?
  007472: 66C4          240          BNE     OPPARS         ;IF YES, TOKENIZE
                        241 ;
                        242 ;   <ELSE SYNTAX ERROR>
                        243 ;
  007474: 4EF87394      244          JMP     LETERR         ;REPORT ERROR
                        245 ;
                        246 ; CHECK FOR HALGOL KEYWORDS 'ABS(','LOG(', ETC.
                        247 ;
  007478: 2C781538      248 KEYPARS  MOVEA.L TEMP,A6        ;START OF KEYWORD
  00747C: 5245          249          ADDQ    #1,D5          ;ADJUST ITS LENGTH
  00747E: 4EB87544      250          JSR     TOKNOP         ;TOKENIZE IT
  007482: 4A10          251          TST.B   (A0)           ;MORE CHRS ?
  007484: 676A          252          BEQ     LETER3         ;ERROR IF NO
                        253 ;
  007486: 21C81538      254          MOVE.L  A0,TEMP        ;SAVE BUFFER PTR
  00748A: 6000FF3C      255          BRA.L   TOKNRT         ;CONTINUE PROCESS
                        256 ;

                        258 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        259 ;
                        260 ; CHECK FOR A VALID NUMERIC CONSTANT
                        261 ;
  00748E: 4BF81700      262 CONSPRS  LEA     TEMPB,A5       ;START OF WRK BUFR
  007492: 7A01          263          MOVEQ   #1,D5          ;INIT STR LEN
  007494: 1AE8FFFF      264          MOVE.B  -$1(A0),(A5)+  ;GET 1ST CHR
  007498: 4215          265 CONSPA   CLR.B   (A5)           ;ADD NULL BYTE
  00749A: 49F81700      266          LEA     TEMPB,A4       ;START OF STRING
  00749E: 4EB820D4      267          JSR     NUMEVAL        ;EVALUATE NUMERIC
  0074A2: 4A07          268          TST.B   D7             ;NUMERIC VALID ?
  0074A4: 6608          269          BNE     CONSPB         ;POSSIBLE ERROR
                        270 ;
  0074A6: 1AD8          271          MOVE.B  (A0)+,(A5)+    ;GET NEXT CHR
  0074A8: 6758          272          BEQ     FINIS2         ;THEN DONE
                        273 ;
  0074AA: 5245          274          ADDQ    #1,D5          ;UPDATE STRING LEN
  0074AC: 60EA          275          BRA     CONSPA         ;CONTINUE
                        276 ;
                        277 ; CORRECT BUFFER PTR TO LAST GOOD NUMERIC CONSTANT
                        278 ;
  0074AE: 422DFFFF      279 CONSPB   CLR.B   -$1(A5)        ;NULL BAD BYTE
  0074B2: 5345          280          SUBQ    #1,D5          ;READJUST COUNT
  0074B4: 49F81700      281          LEA     TEMPB,A4       ;START OF STRING
  0074B8: 4EB820D4      282          JSR     NUMEVAL        ;EVALUATE NUMERIC
  0074BC: 4A07          283          TST.B   D7             ;NUMERIC VALID ?
  0074BE: 6630          284          BNE     LETER3         ;THEN SYNTAX ERR
                        285 ;
                        286 ; SERVICE THE CONSTANT AND TOKENIZE IT
                        287 ;
  0074C0: 4DF81700      288          LEA     TEMPB,A6       ;START OF CONST
  0074C4: 2F08          289          MOVE.L  A0,-(A7)       ;SAVE PTR
  0074C6: 4EB84C48      290          JSR     CONCHK1        ;SERVICE CONST
  0074CA: 4EB875B0      291          JSR     TOKNCNS        ;TOKENIZE CONST
                        292 ;
                        293 ; READY TO TOKENIZE THE NEXT BINARY OPERATOR OR ")"
                        294 ;
  0074CE: 205F          295          MOVEA.L (A7)+,A0       ;RESTORE PTR
  0074D0: 5348          296          SUBQ    #1,A0          ;ADJUST IT
  0074D2: 4A10          297          TST.B   (A0)           ;ANYMORE CHR ?
  0074D4: 672C          298          BEQ     FINIS2         ;THEN DONE
  0074D6: 6004          299          BRA     CONSPD         ;GET NEXT CHR
                        300 ;
  0074D8: 4EB8753E      301 CONSPC   JSR     TOKNOP2        ;TOKENIZE IT
  0074DC: 4EB8752E      302 CONSPD   JSR     FETCHR         ;GET NEXT CHR
  0074E0: 672C          303          BEQ     ADRCHK         ;DONE
                        304 ;
  0074E2: 0C0600A9      305          CMPI.B  #")",D6        ;A CLOSE PAREN?
  0074E6: 67F0          306          BEQ     CONSPC         ;TOKENIZE IT
                        307 ;
  0074E8: 08070002      308          BTST    #2,D7          ;BINARY OPERATOR?
  0074EC: 6600FF4A      309          BNE.L   OPPARS         ;TOKENIZE IT
                        310 ;
                        311 ;   <ELSE SYNTAX ERROR>
                        312 ;
  0074F0: 4EF87394      313 LETER3   JMP     LETERR         ;REPORT & EXIT
                        314 ;
                                     CHAIN   ELET1

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
                          4 ; PARSING IS COMPLETED.
                          5 ;
                          6 ; USE THIS EXIT POINT WHEN COMPLETING A VARIABLE
                          7 ;
  0074F4: 2C781538        8 FINIS0   MOVEA.L TEMP,A6        ;START OF KEY
  0074F8: 4EB84C40        9          JSR     VARCHK1        ;GET OFFSET ADR
  0074FC: 4EB875AA       10          JSR     TOKNVAR        ;TOKENIZE IT
  007500: 600C           11 FINIS1   BRA     ADRCHK         ;CHK ENDING ADR
                         12 ;
                         13 ; USE THIS EXIT POINT WHEN COMPLETING A CONSTANT
                         14 ;
  007502: 2C781538       15 FINIS2   MOVEA.L TEMP,A6        ;STRT OF CONST
  007506: 4EB84C48       16          JSR     CONCHK1        ;SERVICE CONST
  00750A: 4EB875B0       17          JSR     TOKNCNS        ;TOKENIZE CONST
                         18 ;
                         19 ; CHECK IF ENDING ON EITHER AN EVEN OR ODD ADDRESS
                         20 ;
  00750E: 421B           21 ADRCHK   CLR.B   (A3)+          ;ADD NULL BYTE
  007510: 3E0B           22          MOVE.W  A3,D7          ;FETCH END ADR
  007512: E24F           23          LSR.W   #1,D7          ;CHK IF ODD/EVEN
  007514: 6402           24          BCC     ADRCHA         ;THEN DONE
                         25 ;
                         26 ; ADJUST FOR AN 'ODD' ADDRESS
                         27 ;
  007516: 421B           28          CLR.B   (A3)+          ;ADD ANOTHER NULL
  007518: 3C0B           29 ADRCHA   MOVE.W  A3,D6          ;CC END ADR
  00751A: 2F08           30          MOVE.L  A0,-(A7)       ;SAVE A0
  00751C: 30781514       31          MOVE.W  WRKADR,A0      ;BUFFER PTR
  007520: 9C48           32          SUB.W   A0,D6          ;DIFFERENCE
  007522: 5546           33          SUBQ.W  #2,D6          ;1ST LINK VAL
  007524: 30C6           34          MOVE.W  D6,(A0)+       ;LIST LINK1
  007526: 5546           35          SUBQ    #2,D6          ;ADJUST 2ND LNK
  007528: 3086           36          MOVE.W  D6,(A0)        ;2ND LINK ADR
  00752A: 205F           37          MOVE.L  (A7)+,A0       ;RESTORE A0
  00752C: 4E75           38          RTS                    ;DONE
                         39 ;
                         40 ;---------------------
                         41 ;-- ROUTINE: FETCHR --
                         42 ;---------------------
                         43 ;
                         44 ; THIS ROUTINE IS USED TO FETCH CHARACTERS FOR THE
                         45 ; PARSER AND TOKENIZER.
                         46 ; A0: POINTER THE INPUT BUFFER
                         47 ; A4: START OF THE CHARACTER MASK TABLE
                         48 ;
                         49 ; D6: CONTAINS THE ASCII CHARACTER
                         50 ; D7: CONTAINS THE CHARACTER MASK
                         51 ;
                         52 ;
  00752E: 49F81F80       53 FETCHR   LEA     CHRMSK,A4      ;CHR MASK
  007532: 4246           54          CLR.W   D6             ;READY CHR$ INDEX
  007534: 1C18           55          MOVE.B  (A0)+,D6       ;FETCH BUFFR CHR
  007536: 6704           56          BEQ     FETCHX         ;DONE IF EMPTY
                         57 ;
  007538: 1E346000       58          MOVE.B  (A4,D6),D7     ;FETCH CHR MASK
  00753C: 4E75           59 FETCHX   RTS                    ;FETCH DONE
                         60 ;

                         62 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         63 ;
                         64 ;---------------------
                         65 ;-- ROUTINE: TOKNOP --
                         66 ;---------------------
                         67 ;
                         68 ; THIS ROUTINE IS USED TO TOKENIZE THE KEYWORDS
                         69 ;
                         70 ; A6: CONTAINS THE START OF THE OPERATOR
                         71 ; A3: POINTER TO THE WORK BUFFER
                         72 ;
                         73 ; D5: CONTAINS THE LENGTH OF THE OPERATOR
                         74 ;
  00753E: 4DE8FFFF       75 TOKNOP2  LEA     -1(A0),A6      ;PTR TO CHAR
  007542: 7A01           76          MOVEQ   #1,D5          ;1 CHAR
  007544: 45F875CA       77 TOKNOP   LEA     TOKNLST,A2     ;START OF TBL
  007548: 4EB84C0C       78          JSR     CHKLIST        ;GET INDEX
  00754C: 67A2           79          BEQ     LETER3         ;IF NOT, ERROR
                         80 ;
                         81 ; FETCH THE KEYWORD'S TOKEN
                         82 ;
  00754E: 45F876D2       83          LEA     TOKNTBL,A2     ;TOKEN TABLE
  007552: 16F23000       84          MOVE.B  (A2,D3),(A3)+  ;STORE TOKEN
  007556: 4E75           85          RTS                    ;DONE
                         86 ;
                         87 ;---------------------
                         88 ;-- ROUTINE: PRECHK --
                         89 ;---------------------
                         90 ;
                         91 ; TEST FOR THE PRESENCE OF AN "=" SIGN.
                         92 ;
                         93 ; A0: POINTER TO THE INPUT BUFFER
                         94 ;
                         95 ; NOTE: THE 'GETFLDA' CALL RETURNS A0 POINTING TO
                         96 ;       THE FIRST CHARACTER PAST THE "="
                         97 ;
  007558: 21C81538       98 PRECHK   MOVE.L  A0,TEMP        ;SAVE CURRENT PTR
  00755C: 7CBD           99          MOVEQ   #"=",D6        ;SEARCH KEY
  00755E: 4EB84C20      100          JSR     GETFLDA        ;SEARCH FOR KEY
  007562: 4A07          101          TST.B   D7             ;KEY FOUND ?
  007564: 672C          102          BEQ     ERR34Q         ;ERR IF NOT
                        103 ;
                        104 ; TEST IF LEN OF ASSIGNMENT VARIABLE NAME IS VALID
                        105 ;
  007566: 4A05          106          TST.B   D5             ;VARN LEN=0 ?
  007568: 6732          107          BEQ     ERR33          ;ERR IF YES
                        108 ;
                        109 ; TEST FOR UNBALANCED PARENTHESES
                        110 ;
  00756A: 48A70380      111          MOVEM.W D6-D7/A0,-(A7)  ;SAVE REGS
  00756E: 4246          112          CLR.W   D6             ;PARENS CTR
  007570: 1E18          113 PRECH1   MOVE.B  (A0)+,D7       ;FETCH CHAR
  007572: 6714          114          BEQ     PRECHX         ;DONE IF END ($00)
                        115 ;
  007574: 0C0700A8      116          CMPI.B  #$A8,D7        ;LEFT PARENS?
  007578: 6604          117          BNE     PRECH2         ;SKIP IF NOT
                        118 ;
  00757A: 5246          119          ADDQ.W  #1,D6          ;INCR PAREN CTR
  00757C: 60F2          120          BRA     PRECH1         ;NEXT CHAR
                        121 ;

                        123 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        124 ;
  00757E: 0C0700A9      125 PRECH2   CMPI.B  #$A9,D7        ;RIGHT PARENS?
  007582: 66EC          126          BNE     PRECH1         ;NEXT CHAR IF NOT
                        127 ;
  007584: 5346          128          SUBQ.W  #1,D6          ;DECR PREN CTR
  007586: 60E8          129          BRA     PRECH1         ;NEXT CHAR
                        130 ;
  007588: 4A46          131 PRECHX   TST.W   D6             ;BALANCED?
  00758A: 6618          132          BNE     ERR35          ;ERROR IF NOT
                        133 ;
  00758C: 4C9F01C0      134          MOVEM.W (A7)+,D6-D7/A0  ;RESTORE REGS
  007590: 4E75          135          RTS                    ;PRECHECK DONE
                        136 ;
  007592: 4A381921      137 ERR34Q   TST.B   FPU+7          ;FALSE 'LET' ?
  007596: 6708          138          BEQ     ERR34          ;IF NOT
  007598: 7E06          139          MOVEQ   #6,D7          ;UNKNOWN KWD
  00759A: 600A          140          BRA     ERR35A
  00759C: 7E21          141 ERR33    MOVEQ   #33,D7         ;LEFT VARN AWOL
  00759E: 6006          142          BRA     ERR35A
  0075A0: 7E22          143 ERR34    MOVEQ   #34,D7         ;'=' MISSING
  0075A2: 6002          144          BRA     ERR35A
  0075A4: 7E23          145 ERR35    MOVEQ   #35,D7         ;UNBAL PARENS
  0075A6: 4EF86008      146 ERR35A   JMP     ERROR          ;REPORT ERROR
                        147 ;
                        148 ;-----------------------
                        149 ;-- ROUTINE: TOKENVAR --
                        150 ;-----------------------
                        151 ;
                        152 ; TOKENIZE THE CONSTANTS AND NAMED VARIABLES USED
                        153 ; IN THE 'LET' STATEMENT.
                        154 ;
                        155 ; ENTRY POINTS ARE:
                        156 ;
                        157 ; TOKNVAR: USED WHEN TOKENIZING A VARIABLE NAME
                        158 ; TOKNCNS: USED WHEN TOKENIZING A CONSTANT NUMBER
                        159 ;
                        160 ; A3: CONTAINS THE POINTER TO THE WORK BUFFER
                        161 ; D3: CONTAINS THE INDEX FOR THE VARN OR CONSTANT
                        162 ;
  0075AA: 16BC0001      163 TOKNVAR  MOVE.B  #1,(A3)        ;TOKEN FOR VARN
  0075AE: 6004          164          BRA     TOKNCNA        ;CONTINUE
                        165 ;
  0075B0: 16BC0003      166 TOKNCNS  MOVE.B  #3,(A3)        ;TOKEN FOR CONS
  0075B4: 0C4300FF      167 TOKNCNA  CMPI.W  #$FF,D3        ;INDX > $FF
  0075B8: 650A          168          BCS     TONKV1         ;TO INDX < $FF
                        169 ;
                        170 ;   <ELSE INDEX IF GREATER THAN $FF>
                        171 ;
  0075BA: 521B          172          ADD.B   #1,(A3)+       ;ADJUST TOKEN
  0075BC: E05B          173          ROR.W   #8,D3          ;SWAP NIBBLES
  0075BE: 16C3          174          MOVE.B  D3,(A3)+       ;LOW NIBBLE
  0075C0: E04B          175          LSR.W   #8,D3          ;GET HI NIBBLE
  0075C2: 6002          176          BRA     TONKV2         ;STORE LOW NIBBLE
                        177 ;
  0075C4: 524B          178 TONKV1   ADDQ    #1,A3          ;ADJUST PTR
  0075C6: 16C3          179 TONKV2   MOVE.B  D3,(A3)+       ;SAVE VAR INDX
  0075C8: 4E75          180          RTS                    ;DONE
                        181 ;
                                     CHAIN   ELET2

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
  0075CA: 03              4 TOKNLST  DC.B    $03
  0075CB: C3C8D3          5          ASC     "CHS"
  0075CE: 01              6          DC.B    $01
  0075CF: AB              7          ASC     "+"
  0075D0: 01              8          DC.B    $01
  0075D1: AD              9          ASC     "-"
  0075D2: 01             10          DC.B    $01
  0075D3: AA             11          ASC     "*"
  0075D4: 01             12          DC.B    $01
  0075D5: AF             13          ASC     "/"
  0075D6: 01             14          DC.B    $01
  0075D7: DE             15          ASC     "^"
  0075D8: 01             16          DC.B    1
  0075D9: 01             17          DC.B    $01            ;DUMMY LABEL
  0075DA: 01             18          DC.B    $01
  0075DB: A9             19          ASC     ")"
  0075DC: 01             20          DC.B    $01
  0075DD: A8             21          ASC     "("
  0075DE: 04             22          DC.B    $04
  0075DF: C1C2D3A8       23          ASC     "ABS("
  0075E3: 04             24          DC.B    $04
  0075E4: C9CED4A8       25          ASC     "INT("
  0075E8: 05             26          DC.B    5
  0075E9: C6D2C1C3A8     27          ASC     "FRAC("
  0075EE: 04             28          DC.B    $04
  0075EF: D3D1D2A8       29          ASC     "SQR("
  0075F3: 04             30          DC.B    $04
  0075F4: CCCFC7A8       31          ASC     "LOG("
  0075F8: 07             32          DC.B    $07
  0075F9: CCCFC7D4C5CE   33          ASC     "LOGTEN("
  007600: 07             34          DC.B    $07
  007601: CCCFC7D4D7CF   35          ASC     "LOGTWO("
  007608: 04             36          DC.B    $04
  007609: C5D8D0A8       37          ASC     "EXP("
  00760D: 07             38          DC.B    $07
  00760E: C5D8D0D4C5CE   39          ASC     "EXPTEN("
  007615: 07             40          DC.B    $07
  007616: C5D8D0D4D7CF   41          ASC     "EXPTWO("
  00761D: 04             42          DC.B    $04
  00761E: D3C9CEA8       43          ASC     "SIN("
  007622: 04             44          DC.B    $04
  007623: C3CFD3A8       45          ASC     "COS("
  007627: 04             46          DC.B    $04
  007628: D4C1CEA8       47          ASC     "TAN("
  00762C: 07             48          DC.B    $07
  00762D: C1D2C3D3C9CE   49          ASC     "ARCSIN("
  007634: 07             50          DC.B    $07
  007635: C1D2C3C3CFD3   51          ASC     "ARCCOS("
  00763C: 07             52          DC.B    $07
  00763D: C1D2C3D4C1CE   53          ASC     "ARCTAN("
  007644: 04             54          DC.B    $04
  007645: D2CEC4A8       55          ASC     "RND("
  007649: 01             56          DC.B    $01
  00764A: BD             57          ASC     "="
  00764B: 01             58          DC.B    $01
  00764C: AC             59          ASC     ","
  00764D: 00             60          DC.B    $00            ;EOL MARKER

                         62 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         63 ;
                         64 ;---------------------
                         65 ;-- LIST LINK: LLET --
                         66 ;---------------------
                         67 ;
  00764E: 548B           68 LLET1    ADDQ.L  #2,A3          ;PTR TO LINK 2
  007650: 3C5B           69          MOVE.W  (A3)+,A6       ;FETCH LINK2
  007652: DDCB           70          ADD.L   A3,A6          ;NEXT LINE ADR
  007654: 2F0E           71          MOVE.L  A6,-(A7)       ;SAVE NEXT ADR
  007656: 4241           72 LLET0    CLR.W   D1             ;INIT WRK REG
  007658: 4242           73          CLR.W   D2             ;INIT WRK REG
  00765A: 4243           74          CLR.W   D3             ;INIT WRK REG
  00765C: 161B           75          MOVE.B  (A3)+,D3       ;FETCH TOKEN
  00765E: 6754           76          BEQ     LLETX          ;DONE
  007660: 6B3E           77          BMI     LLETA          ;FETCH TOKEN STR
                         78 ;
                         79 ; LIST VARIABLE OR CONSTANT NAME
                         80 ;
  007662: E34B           81          LSL.W   #1,D3          ;READY FOR INDX
  007664: 2A7C00007670   82          MOVEA.L #LSTTBL,A5     ;START OF LST FN
  00766A: 3A7530FE       83          MOVEA.W -$2(A5,D3),A5  ;LST FN ADR
  00766E: 4ED5           84          JMP     (A5)           ;PERFORM LST FN
                         85 ;
  007670: 7678           86 LSTTBL   DC.W    VARN01         ;VARN TOKEN 01
  007672: 767C           87          DC.W    VARN02         ;VARN TOKEN 02
  007674: 768C           88          DC.W    CONS01         ;CONS TOKEN 03
  007676: 7690           89          DC.W    CONS02         ;CONS TOKEN 04
                         90 ;
  007678: 161B           91 VARN01   MOVE.B  (A3)+,D3       ;FETCH VARN INDX
  00767A: 6002           92          BRA     VARN0X         ;LOOKUP VARN
                         93 ;
  00767C: 361B           94 VARN02   MOVE.W  (A3)+,D3       ;FETCH VARN INDX
  00767E: 2C7815C0       95 VARN0X   MOVEA.L SOVN,A6        ;START OF TBL
  007682: 4EB876B8       96          JSR     GETINDC        ;GET ITS INDEX
  007686: 4EB83A78       97          JSR     PRNTSTR        ;PRINT IT
  00768A: 60CA           98          BRA     LLET0          ;FETCH NEXT TOKEN
                         99 ;
  00768C: 161B          100 CONS01   MOVE.B  (A3)+,D3       ;FETCH OFFSET
  00768E: 6002          101          BRA     CONS0X         ;FETCH INDEX
                        102 ;
  007690: 361B          103 CONS02   MOVE.W  (A3)+,D3       ;FETCH INDEX
  007692: 2C7815B0      104 CONS0X   MOVEA.L SOCN,A6        ;START OF TBL
  007696: 4EB876B8      105          JSR     GETINDC        ;GET CONS NAME
  00769A: 4EB83A78      106          JSR     PRNTSTR        ;PRINT IT
  00769E: 60B6          107          BRA     LLET0          ;FETCH INDEX
                        108 ;
                        109 ; LIST CORRESPONDING TOKEN STRING
                        110 ;
  0076A0: 0203007F      111 LLETA    ANDI.B  #$7F,D3        ;MASK OFFSET
  0076A4: 2C7C000075CA  112          MOVEA.L #TOKNLST,A6    ;STRT OF TOKN LST
  0076AA: 4EB876B8      113          JSR     GETINDC        ;FETCH STR ADR
  0076AE: 4EB83A78      114          JSR     PRNTSTR        ;PRINT TOKEN STR
  0076B2: 60A2          115          BRA     LLET0          ;FETCH NEXT TOKEN
                        116 ;
  0076B4: 265F          117 LLETX    MOVE.L  (A7)+,A3       ;NEXT LINE ADR
  0076B6: 4E75          118          RTS                    ;LLET DONE
                        119 ;

                        121 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        122 ;
                        123 ;-------------------------
                        124 ;-- SUBROUTINE: GETINDC --
                        125 ;-------------------------
                        126 ;
  0076B8: B203          127 GETINDC  CMP.B   D3,D1          ;INDEX FOUND?
  0076BA: 670E          128          BEQ     GETINDD        ;THEN SEARCH DONE
                        129 ;
                        130 ; CONTINUE LOOKING FOR THE START OF THE TOKEN
                        131 ;
  0076BC: 1416          132          MOVE.B  (A6),D2        ;LEN OF TOKEN
  0076BE: 6700000C      133          BEQ.L   ERR6X          ;EXCEPTION ERR
                        134 ;
  0076C2: 4DF62001      135          LEA     $1(A6,D2),A6   ;NEXT TOKEN ADR
  0076C6: 5241          136          ADDQ    #1,D1          ;UPDATE INDX CNT
  0076C8: 60EE          137          BRA     GETINDC        ;CONTINUE SEARCH
                        138 ;
  0076CA: 4E75          139 GETINDD  RTS                    ;DONE
                        140 ;
  0076CC: 7E06          141 ERR6X    MOVEQ   #6,D7          ;UNKNOWN TOKEN
  0076CE: 4EF86008      142          JMP     ERROR          ;REPORT ERROR
                        143 ;
                        144 ;-----------------
                        145 ;-- TOKEN TABLE --
                        146 ;-----------------
                        147 ;
  0076D2: 80            148 TOKNTBL  DC.B    $80            ;CHS
  0076D3: 81            149          DC.B    $81            ;+
  0076D4: 82            150          DC.B    $82            ;-
  0076D5: 83            151          DC.B    $83            ;*
  0076D6: 84            152          DC.B    $84            ;/
  0076D7: 85            153          DC.B    $85            ;^
  0076D8: 86            154          DC.B    $86            ;DUMMY
  0076D9: 87            155          DC.B    $87            ;)
  0076DA: 88            156          DC.B    $88            ;(
  0076DB: 89            157          DC.B    $89            ;ABS(
  0076DC: 8A            158          DC.B    $8A            ;INT(
  0076DD: 8B            159          DC.B    $8B            ;FRAC(
  0076DE: 8C            160          DC.B    $8C            ;SQR(
  0076DF: 8D            161          DC.B    $8D            ;LOG(
  0076E0: 8E            162          DC.B    $8E            ;LOGTEN(
  0076E1: 8F            163          DC.B    $8F            ;LOGTWO(
  0076E2: 90            164          DC.B    $90            ;EXP(
  0076E3: 91            165          DC.B    $91            ;EXPTEN(
  0076E4: 92            166          DC.B    $92            ;EXPTWO(
  0076E5: 93            167          DC.B    $93            ;SIN(
  0076E6: 94            168          DC.B    $94            ;COS(
  0076E7: 95            169          DC.B    $95            ;TAN(
  0076E8: 96            170          DC.B    $96            ;ARCSIN(
  0076E9: 97            171          DC.B    $97            ;ARCCOS(
  0076EA: 98            172          DC.B    $98            ;ARCTAN(
  0076EB: 99            173          DC.B    $99            ;RND(
  0076EC: 9A            174          DC.B    $9A            ;=
  0076ED: 9B            175          DC.B    $9B            ;,
  0076EE: 00            176          DC.B    $00            ;EOL MARKER
          00           SYNC
                        177          SYNC
                        178 ;
                                     CHAIN   ELET3

                          2          LIST
                          3 ;---------------------
                          4 ;-- ROUTINE: TYPCHK --
                          5 ;---------------------
                          6 ;
                          7 ; THIS ROUTINE IS USED TO CHECK THE THE
                          8 ; VARIABLE TYPE IN THE 'LET' STATEMENT.
                          9 ;
                         10 ; A0: CONTAINS THE INPUT BUFFER POINTER
                         11 ;
                         12 ;       <RESULT>
                         13 ;
                         14 ; D4: WILL CONTAIN A TYPE (0-6) THAT WILL DENOTE
                         15 ;     THE TYPE OF ASSIGNMENT VARIABLE:
                         16 ;     (0;TYPE ERR),(1-2;FP),(3-4;INT), & (5-6;STR$)
                         17 ;
                         18 ; D5: WILL CONTAIN THE LENGTH OF THE VARN
                         19 ;
                         20 ;
  0076F0: 304E           21 TYPCHK   MOVEA.W A6,A0          ;GET STRT OF VARN
  0076F2: 4244           22          CLR.W   D4             ;INIT VARN TYPE
  0076F4: 4245           23          CLR.W   D5             ;INIT VARN LENGTH
                         24 ;
                         25 ; CHECK IF 1ST CHARACTER OF THE VARIABLE IS VALID
                         26 ;
  0076F6: 4EB8752E       27          JSR     FETCHR         ;GET 1ST VARN CHR
  0076FA: 6764           28          BEQ     TYPCHX         ;IF BUFFER EMPTY
                         29 ;
  0076FC: 08070005       30          BTST    #5,D7          ;ALPHA CHARACTER ?
  007700: 6758           31          BEQ     TYPERX         ;IF NOT, THEN ERR
                         32 ;
  007702: 5245           33 TYPCH0   ADDQ.W  #1,D5          ;UPDATE STR LEN
  007704: 4EB8752E       34          JSR     FETCHR         ;GET NEXT CHR
  007708: 6756           35          BEQ     TYPCHX         ;IF BUFFER EMPTY
                         36 ;
  00770A: 08070005       37          BTST    #5,D7          ;VALID VARN CHR?
  00770E: 66F2           38          BNE     TYPCH0         ;IF YES, CONT
                         39 ;
  007710: 08070004       40          BTST    #4,D7          ;VALID VARN CHR?
  007714: 66EC           41          BNE     TYPCH0         ;IF YES, CONT
                         42 ;
                         43 ; CHECK THE TYPE OF THE ASSIGNMENT VARIABLE
                         44 ; (I.E FP,INT,STR$,FP ARRAY,ETC..)
                         45 ;
  007716: 0C0600A5       46          CMPI.B  #"%",D6        ;INTEGER VARN ?
  00771A: 670C           47          BEQ     TYPCHB         ;IF YES, CONT
                         48 ;
  00771C: 0C0600A4       49          CMPI.B  #"$",D6        ;STRING VARN?
  007720: 670A           50          BEQ     TYPCHC         ;IF YES
                         51 ;
                         52 ; ASSUME FLOATING-POINT VAIRABLE. SET TYPE AND
                         53 ; CHECK IF ITS AN ARRAY
                         54 ;
  007722: 7801           55 TYPCHA   MOVEQ   #1,D4          ;SET FP TYPE
  007724: 5388           56          SUBQ.L  #1,A0          ;PTR=PTR-1
  007726: 600A           57          BRA     TYPCHY0        ;CHEK IF ARRAY
                         58 ;

                         60 ; SET INTEGER VARIABLE TYPE, CHECK IF ARRAY
                         61 ;
  007728: 7803           62 TYPCHB   MOVEQ   #3,D4          ;SET INT TYPE
  00772A: 6002           63          BRA     TYPCHY         ;CHECK IF ARRAY
                         64 ;
                         65 ; SET STRING VARIABLE TYPE, CHECK IF ARRAY
                         66 ;
  00772C: 7805           67 TYPCHC   MOVEQ   #5,D4          ;SET STR$ TYPE
                         68 ;
                         69 ; CHECK TO SEE IF ITS AN ARRAY
                         70 ;
  00772E: 4A10           71 TYPCHY   TST.B   (A0)           ;END OF BUFFER?
  007730: 672E           72          BEQ     TYPCHX         ;IF YES, THEN DONE
                         73 ;
                         74 ; LOOK FOR VALID VARIABLE NAME DELIMETER
                         75 ;
  007732: 0C1000DB       76 TYPCHY0  CMPI.B  #$DB,(A0)      ;ARRAY DELIMETER?
  007736: 6726           77          BEQ     TYPCHD         ;IF YES, ADJ TYPE
                         78 ;
  007738: 0C1000BD       79          CMPI.B  #"=",(A0)      ;ASSIGNMENT ?
  00773C: 6722           80          BEQ     TYPCHX         ;IF YES, THEN DONE
                         81 ;
  00773E: 0C1000AC       82          CMPI.B  #",",(A0)      ;SEPERATOR ?
  007742: 671C           83          BEQ     TYPCHX         ;IF YES, THEN DONE
                         84 ;
  007744: 0C1000A0       85          CMPI.B  #$A0,(A0)      ;SPACE CHR ?
  007748: 6716           86          BEQ     TYPCHX         ;IF YES, THEN DONE
                         87 ;
                         88 ; SEE IF VARIABLE IS SEPERATED BY A VALID OPERATOR
                         89 ;
  00774A: 4EB8752E       90          JSR     FETCHR         ;GET NEXT CHR
                         91 ;
  00774E: 0C0600A9       92          CMPI.B  #")",D6        ;CLOSING PAREN?
  007752: 670E           93          BEQ     TYPCHZ         ;IF YES, THEN DONE
                         94 ;
  007754: 08070002       95          BTST    #2,D7          ;MATH OPERATOR ?
  007758: 6608           96          BNE     TYPCHZ         ;IF YES, THEN DONE
                         97 ;
                         98 ; NO VALID DELIMETER FOUND, ASSUME SYNTAX ERROR
                         99 ;
  00775A: 4244          100 TYPERX   CLR.W   D4             ;WILL SET ERR
  00775C: 6002          101          BRA     TYPCHX         ;DONE
                        102 ;
  00775E: 5244          103 TYPCHD   ADDQ.W  #1,D4          ;ADJ TO ARRAY
                        104 ;
  007760: 4E75          105 TYPCHX   RTS                    ;DONE
                        106 ;
  007762: 5388          107 TYPCHZ   SUBQ.L  #1,A0          ;RESET PTR
  007764: 4E75          108          RTS                    ;DONE
                        109 ;

                        111 ;---------------------
                        112 ;-- ROUTINE: LETINT --
                        113 ;---------------------
                        114 ;
000051AC:               115 EXPAND0  EQU     $51AC
00005498:               116 ADDLIST  EQU     $5498
                        117 ;
  007766: 47F8B000      118 LETINT   LEA     $B000,A3       ;SET WRK BUFFER
  00776A: 4EB87776      119          JSR     TKNILT         ;LET OF "="
  00776E: 4EB877EA      120          JSR     TKNIRT         ;RIGHT OF "="
  007772: 4EF877B6      121          JMP     ICLET          ;COMPILE CRUN CD
                        122 ;
                        123 ;---------------------
                        124 ;-- ROUTINE: TKNILT --
                        125 ;---------------------
                        126 ;
  007776: 20781538      127 TKNILT   MOVEA.L TEMP,A0        ;START OF VARN
  00777A: 4EB876F0      128 TKNILF0  JSR     TYPCHK         ;FETCHR VARN TYPE
                        129 ;
  00777E: 0C040003      130          CMPI.B  #3,D4          ;INT TYPE VARN?
  007782: 6600FBD6      131          BNE     TYPERR         ;IF NOT, THEN ERR
                        132 ;
  007786: 4EB877AC      133          JSR     SRVIVRN        ;SERV INT VARN
  00778A: 0C1000BD      134          CMPI.B  #"=",(A0)      ;LEFT SIDE DONE?
  00778E: 6712          135          BEQ     TKNILFX        ;GET TOKEN & EXIT
                        136 ;
  007790: 0C1000AC      137          CMPI.B  #",",(A0)      ;VARN DELIMETER
  007794: 6600FBC4      138          BNE     TYPERR         ;IF NOT, THEN ERR
                        139 ;
  007798: 16FC0099      140          MOVE.B  #$99,(A3)+     ;STORE TOKEN
  00779C: 5288          141          ADDQ.L  #1,A0          ;ADVANCE PTR
  00779E: 2C48          142          MOVEA.L A0,A6          ;SAVE COPY
  0077A0: 60D8          143          BRA     TKNILF0        ;CONTINUE PARSE
                        144 ;
  0077A2: 16FC0098      145 TKNILFX  MOVE.B  #$98,(A3)+     ;STORE TOKEN
  0077A6: 5288          146          ADDQ.L  #1,A0          ;ADVANCE PTR
  0077A8: 2C48          147          MOVEA.L A0,A6          ;SAVE COPY
  0077AA: 4E75          148          RTS                    ;DONE
                        149 ;
                        150 ;----------------------
                        151 ;-- ROUTINE: SRVIVRN --
                        152 ;----------------------
                        153 ;
  0077AC: 4EB877B8      154 SRVIVRN  JSR     VRNIHK1        ;SERVICE VARN
  0077B0: 4EB875AA      155          JSR     TOKNVAR        ;TOKENIZE VARN
  0077B4: 4E75          156          RTS                    ;DONE
                        157 ;
  0077B6: 4E75          158 ICLET    RTS
                        159 ;

                        161 ;------------------------
                        162 ;-- SUBROUTINE: VRNIHK --
                        163 ;------------------------
                        164 ;
                        165 ; THIS ROUTINE CHECKS IF A VARIABLE NAME EXISTS IN
                        166 ; THE VARIABLE NAME TABLE.  IF NOT IT THEN ADDS
                        167 ; IT TO THE VARIABLE NAME TABLE AND ADJUST THE
                        168 ; VALUE TABLE END POINTER BY 2
                        169 ;
                        170 ; A6: CONTAINS THE POINTER TO THE START OF THE
                        171 ;     VARIABLE NAME.
                        172 ;
                        173 ; D5: CONTAINS THE LENGTH OF THE VARIABLE NAME
                        174 ;
  0077B8: 7C01          175 VRNIHK1  MOVEQ   #1,D6          ;VRNIHK1 FLAG
  0077BA: 6002          176          BRA     VCHK
                        177 ;
  0077BC: 4246          178 VRNIHK   CLR     D6             ;VRNIHK FLAG
                        179 ;
  0077BE: 247815A8      180 VCHK     MOVEA.L SOIN,A2        ;VAR NAME TBL
  0077C2: 4EB84C0C      181          JSR     CHKLIST        ;SEARCH VARTBL
  0077C6: 6620          182          BNE     VCHX           ;SKIP IF IN LIST
                        183 ;
                        184 ; <ELSE ADD VARIABLE NAME TO TABLE>
                        185 ;
  0077C8: 4EB851AC      186          JSR     EXPAND0        ;ADJ TBL PTRS
  0077CC: 4EB85498      187          JSR     ADDLIST        ;SAVE VARN
  0077D0: 21CA15AC      188          MOVE.L  A2,EOIN        ;SAVE NEW LOW ADR
                        189 ;
                        190 ; ADJUST THE INTEGER VALUE TABLE
                        191 ;
  0077D4: 247815D8      192          MOVEA.L SOI,A2         ;EXPANSION ADR
  0077D8: 7A01          193          MOVEQ   #1,D5          ;-EXPAND VARN TBL
  0077DA: 4EB851AC      194          JSR     EXPAND0        ;BY 2 X D5 WRDS -
  0077DE: E34D          195          LSL.W   #1,D5          ;ADJUST OFFSET
  0077E0: 48725000      196          PEA     (A2,D5)        ;- CALC & STORE
  0077E4: 21DF15D8      197          MOVE.L  (A7)+,SOI      ;NEW ENDING ADR -
  0077E8: 4E75          198 VCHX     RTS                    ;DONE
                        199 ;

                        201 ;---------------------
                        202 ;-- ROUTINE: TKNIRT --
                        203 ;---------------------
                        204 ;
                        205 ; THIS ROUTINE IS USED TO TOKENIZE THE RIGHT SIDE
                        206 ; OF THE 'LET' STATEMENT.
                        207 ;
                        208 ; A0: POINTER TO INPUT BUFFER
                        209 ; A3: POINTER TO THE WORK BUFFER
                        210 ;
  0077EA: 4245          211 TKNIRT   CLR.W   D5             ;INIT VARN LENGTH
  0077EC: 4246          212          CLR.W   D6             ;INIT REG
                        213 ;
  0077EE: 4EB8752E      214          JSR     FETCHR         ;FETCH NEXT CHR
  0077F2: 6732          215          BEQ     TKNIRTX        ;EXIT IF DONE
                        216 ;
  0077F4: 0C0600AB      217          CMPI.B  #"+",D6        ;A UNARY PLUS ?
  0077F8: 671E          218          BEQ     IGNOR1         ;THEN IGNORE IT
                        219 ;
  0077FA: 0C0600AD      220          CMPI.B  #"-",D6        ;A UNARY MINUS ?
  0077FE: 671E          221          BEQ     OPIPRS         ;THEN TOKENIZE IT
                        222 ;
  007800: 0C0600A8      223          CMPI.B  #"(",D6        ;AN OPEN PAREN ?
  007804: 6718          224          BEQ     OPIPRS         ;THEN TOKENIZE IT
                        225 ;
  007806: 08070005      226          BTST    #5,D7          ;AN ALPHA CHR ?
  00780A: 661C          227          BNE     VRNIPRS        ;DO VARN PARSE
                        228 ;
  00780C: 08070003      229          BTST    #3,D7          ;A CONSTANT ?
  007810: 66000036      230          BNE.L   CNSIPRS        ;DO CONS PARSE
                        231 ;
                        232 ;   <ELSE SYNTAX ERROR EXIT>
                        233 ;
  007814: 4EF87394      234          JMP     LETERR         ;REPORT & EXIT
                        235 ;
  007818: 21C81538      236 IGNOR1   MOVE.L  A0,TEMP        ;SET NEW BUFR PTR
  00781C: 60CC          237          BRA     TKNIRT         ;GET NEXT CHR
                        238 ;
  00781E: 4EB8784A      239 OPIPRS   JSR     TOKNOP3        ;GET OPER TOKEN
  007822: 2C48          240          MOVEA.L A0,A6          ;SAVE BUFFER PTR
  007824: 60C4          241          BRA     TKNIRT         ;CONTIUE PARSE
                        242 ;
  007826: 4E75          243 TKNIRTX  RTS                    ;RIGHT SIDE DONE
                        244 ;

                        246 ;----------------------
                        247 ;-- ROUTINE: VRNIPRS --
                        248 ;----------------------
                        249 ;
  007828: 4EB876F0      250 VRNIPRS  JSR     TYPCHK         ;FETCH VARN TYPE
                        251 ;
  00782C: 0C040003      252          CMPI.B  #3,D4          ;INTEGER TYPE?
  007830: 6600FB28      253          BNE     TYPERR         ;IF NOT, THEN ERR
                        254 ;
                        255 ; SERVICE THE VARIABLE NAME & TOKENIZE IT
                        256 ;
  007834: 4EB877B8      257          JSR     VRNIHK1        ;SERVICE VARN
  007838: 4EB875AA      258          JSR     TOKNVAR        ;TOKENIZE IT
                        259 ; CHECK IF AT END OF BUFFER, IF SO, THEN DONE
                        260 ;
  00783C: 4A10          261          TST.B   (A0)           ;BUFFER EMPTY ?
  00783E: 67E6          262          BEQ     TKNIRTX        ;THEN DONE
                        263 ;
  007840: 4EB8784A      264          JSR     TOKNOP3        ;GET OPERATOR TKN
  007844: 2C48          265          MOVEA.L A0,A6          ;SAVE BUFFER PTR
  007846: 60A2          266          BRA     TKNIRT         ;CONT PARSE
                        267 ;
                        268 ;----------------------
                        269 ;-- ROUTINE: CNSIPRS --
                        270 ;----------------------
                        271 ;
  007848: 4E75          272 CNSIPRS  RTS
                        273 ;
                        274 ;----------------------
                        275 ;-- ROUTINE: TOKNOP3 --
                        276 ;----------------------
                        277 ;
  00784A: 4DE8FFFF      278 TOKNOP3  LEA     -1(A0),A6      ;PTR TO CHAR
  00784E: 7A01          279          MOVEQ   #1,D5          ;INIT CHR LEN
  007850: 45F87873      280          LEA     TKNILST,A2     ;INT TOKEN LST
  007854: 4EB84C0C      281          JSR     CHKLIST        ;FETCH TOKN INDEX
  007858: 6700FC96      282          BEQ     LETER3         ;IF TOKN NOT FOUND
                        283 ;
                        284 ; FETCH THE KEYWORD'S TOKEN
                        285 ;
  00785C: 45F87866      286          LEA     TKNITBL,A2     ;INT TOKEN TBL
  007860: 16F23000      287          MOVE.B  (A2,D3),(A3)+  ;STORE IT
  007864: 4E75          288          RTS                    ;DONE
                        289 ;

  007866: 80            291 TKNITBL  DC.B    $80            ;CHS
  007867: 81            292          DC.B    $81            ;+
  007868: 82            293          DC.B    $82            ;-
  007869: 83            294          DC.B    $83            ;*
  00786A: 84            295          DC.B    $84            ;/
  00786B: 85            296          DC.B    $85            ;^
  00786C: 86            297          DC.B    $86            ;DUMMY
  00786D: 87            298          DC.B    $87            ;(
  00786E: 88            299          DC.B    $88            ;)
  00786F: 89            300          DC.B    $89            ;ABS(
  007870: 8A            301          DC.B    $8A            ;=
  007871: 8B            302          DC.B    $8B            ;,
  007872: 00            303          DC.B    $00            ;EOL MARKER
                        304 ;
  007873: 03            305 TKNILST  DC.B    $03
  007874: C3C8D3        306          ASC     "CHS"
  007877: 01            307          DC.B    $01
  007878: AB            308          ASC     "+"
  007879: 01            309          DC.B    $01
  00787A: AD            310          ASC     "-"
  00787B: 01            311          DC.B    $01
  00787C: AA            312          ASC     "*"
  00787D: 01            313          DC.B    $01
  00787E: AF            314          ASC     "/"
  00787F: 01            315          DC.B    $01
  007880: DE            316          ASC     "^"
  007881: 01            317          DC.B    $01
  007882: 01            318          DC.B    $01            ;DUMMY
  007883: 01            319          DC.B    $01
  007884: A9            320          ASC     ")"
  007885: 01            321          DC.B    $01
  007886: A8            322          ASC     "("
  007887: 04            323          DC.B    $04
  007888: C1C2D3A8      324          ASC     "ABS("
  00788C: 01            325          DC.B    $01
  00788D: BD            326          ASC     "="
  00788E: 01            327          DC.B    $01
  00788F: AC            328          ASC     ","
  007890: 00            329          DC.B    $00            ;EOL MARKER
                        330          LIST
                                     CHAIN   CLET

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
          00           SYNC
  007892: 4845            4 CE01     SWAP    D5
  007894: 7A01            5          MOVEQ   #1,D5
  007896: 4E4D            6          TRAP    #13
                          7 ;
  007898: 4845            8 CE02     SWAP    D5
  00789A: 7A02            9          MOVEQ   #2,D5
  00789C: 4E4D           10          TRAP    #13
                         11 ;
  00789E: 4845           12 CE03     SWAP    D5
  0078A0: 7A03           13          MOVEQ   #3,D5
  0078A2: 4E4D           14          TRAP    #13
                         15 ;
  0078A4: 4845           16 CE04     SWAP    D5
  0078A6: 7A04           17          MOVEQ   #4,D5
  0078A8: 4E4D           18          TRAP    #13
                         19 ;
  0078AA: 4845           20 CE05     SWAP    D5
  0078AC: 7A05           21          MOVEQ   #5,D5
  0078AE: 4E4D           22          TRAP    #13
                         23 ;
  0078B0: 4845           24 CE06     SWAP    D5
  0078B2: 7A06           25          MOVEQ   #6,D5
  0078B4: 4E4D           26          TRAP    #13
                         27 ;
  0078B6: 4845           28 CE07     SWAP    D5
  0078B8: 7A07           29          MOVEQ   #7,D5
  0078BA: 4E4D           30          TRAP    #13
                         31 ;
  0078BC: 4845           32 CE08     SWAP    D5
  0078BE: 7A08           33          MOVEQ   #8,D5
  0078C0: 4E4D           34          TRAP    #13
                         35 ;
  0078C2: 4845           36 CE09     SWAP    D5
  0078C4: 7A09           37          MOVEQ   #9,D5
  0078C6: 4E4D           38          TRAP    #13
                         39 ;
  0078C8: 4845           40 CE10     SWAP    D5
  0078CA: 7A10           41          MOVEQ   #$10,D5
  0078CC: 4E4D           42          TRAP    #13
                         43 ;
  0078CE: 4845           44 CE11     SWAP    D5
  0078D0: 7A11           45          MOVEQ   #$11,D5
  0078D2: 4E4D           46          TRAP    #13
                         47 ;
  0078D4: 4845           48 CE12     SWAP    D5
  0078D6: 7A12           49          MOVEQ   #$12,D5
  0078D8: 4E4D           50          TRAP    #13
                         51 ;
  0078DA: 4845           52 CE13     SWAP    D5
  0078DC: 7A13           53          MOVEQ   #$13,D5
  0078DE: 4E4D           54          TRAP    #13
                         55 ;
  0078E0: 4845           56 CE14     SWAP    D5
  0078E2: 7A14           57          MOVEQ   #$14,D5
  0078E4: 4E4D           58          TRAP    #13
                         59 ;

                         61 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         62 ;
                         63 ; VARIOUS DEMONSTRATION ENABLING CODES
                         64 ;
  0078E6: 31FC79627960   65 MURK1    MOVE.W  #CLET4+2,CLET4  ;ENABLE HEXPRINT
  0078EC: 4E75           66          RTS                    ;DONE
                         67 ;
  0078EE: 31FC79967960   68 MUMP1    MOVE.W  #CAA,CLET4     ;DISABLE HEXPR
  0078F4: 4E75           69          RTS                    ;DONE
                         70 ;
  0078F6: 31FC4E717C76   71 MURK2    MOVE.W  #$4E71,CLET11  ;HEXPR DBL CR
  0078FC: 4E75           72          RTS                    ;DONE
                         73 ;
  0078FE: 31FC60047C76   74 MUMP2    MOVE.W  #$6004,CLET11  ;DISABLE HXPR
  007904: 4E75           75          RTS                    ;DONE
                         76 ;
  007906: 31FC4E717C7C   77 MURK3    MOVE.W  #$4E71,CLET12  ;LIST PRIMS
  00790C: 4E75           78          RTS                    ;DONE
                         79 ;
  00790E: 31FC60047C7C   80 MUMP3    MOVE.W  #$6004,CLET12  ;DISABLE LIST
  007914: 4E75           81          RTS                    ;DONE
                         82 ;
  007916: 31FC7C767B0E   83 MURK4    MOVE.W  #CLET11,CLET10  ;DISABLE OPT'ZTN
  00791C: 4E75           84          RTS                    ;DONE
                         85 ;
  00791E: 31FC7B107B0E   86 MUMP4    MOVE.W  #L4505,CLET10
  007924: 4E75           87          RTS                    ;DONE
                         88 ;

                         90 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         91 ;
                         92 ; FURTHER COMPRESS THE CRUNCHED CODE.  REPLACE
                         93 ; ALL CONSTANTS AND VARIABLES WITH SINGLE BYTE
                         94 ; IDENTIFIERS:  1,2,3,...  UP TO #127.
                         95 ;
  007926: 3F0B           96 CLET     MOVE.W  A3,-(A7)       ;SAVE A3
  007928: 49F81700       97          LEA     TEMPB,A4       ;PTR TO CRUNCH SQD
  00792C: 4BF81600       98          LEA     BUFFER,A5      ;VARIABLE TYPE
  007930: 4DF81650       99          LEA     BUFFER+80,A6   ;VARIABLE OFFSET
  007934: 30781514      100          MOVE.W  WRKADR,A0      ;PTR TO LINK 1
  007938: 5848          101          ADDQ.W  #4,A0          ;PTR TO CRUN CODE
  00793A: 4240          102          CLR.W   D0             ;CLR VAR COUNT
                        103 ;
  00793C: 1E18          104 CLET1    MOVE.B  (A0)+,D7       ;FETCH CODE
  00793E: 6B1A          105          BMI     CLET3          ;STORE MATH OP
  007940: 6718          106          BEQ     CLET3          ;STORE END MARK
                        107 ;
  007942: 4246          108          CLR.W   D6             ;CLR INDEX
  007944: 5307          109          SUBQ.B  #1,D7          ;SUBTR 1
  007946: E20F          110          LSR.B   #1,D7          ;LEAST BIT TO CY
  007948: 6404          111          BCC     CLET2          ;SINGLE BYTE INDEX
                        112 ;
  00794A: 1C18          113          MOVE.B  (A0)+,D6       ;UPPER BYTE
  00794C: E14E          114          LSL.W   #8,D6          ;MOVE TO B15-B8
  00794E: 1C18          115 CLET2    MOVE.B  (A0)+,D6       ;LOWER BYTE
  007950: 1AC7          116          MOVE.B  D7,(A5)+       ;VAR TYPE
  007952: E74E          117          LSL.W   #3,D6          ;INDEX TO OFFSET
  007954: 3CC6          118          MOVE.W  D6,(A6)+       ;VAR OFFSET
  007956: 5200          119          ADDQ.B  #1,D0          ;VAR #
  007958: 1E00          120          MOVE.B  D0,D7          ;VAR # TO D7
  00795A: 18C7          121 CLET3    MOVE.B  D7,(A4)+       ;STORE BYTE
  00795C: 66DE          122          BNE     CLET1          ;LOOP IF NOT END
  00795E: 4EF8          123          DC.W    $4EF8          ;JUMP
  007960: 7996          124 CLET4    DC.W    CAA            ;SKIP DEMO
                        125 ;
                        126 ; HEXPRINT THE VARIOUS BUFFERS FOR DEMO USE
                        127 ;
  007962: 4EB87D22      128          JSR     SETUP          ;SET UP PRINT
                        129 ;
  007966: 7206          130          MOVEQ   #6,D1          ;6 LINES
  007968: 203C00001808  131          MOVE.L  #WRKBUF+8,D0   ;CRUNCHED CODE
  00796E: 4EB83A94      132          JSR     SHPR1
                        133 ;
  007972: 7203          134          MOVEQ   #3,D1          ;3 LINES
  007974: 203C00001700  135          MOVE.L  #TEMPB,D0      ;DOUBLE CRUNCHED
  00797A: 4EB83A94      136          JSR     SHPR1
                        137 ;
  00797E: 7202          138          MOVEQ   #2,D1          ;2 LINES
  007980: 203C00001600  139          MOVE.L  #BUFFER,D0     ;BYTE ID'S
  007986: 4EB83A94      140          JSR     SHPR1
                        141 ;
  00798A: 7203          142          MOVEQ   #3,D1          ;3 LINES
  00798C: 203C00001650  143          MOVE.L  #BUFFER+80,D0  ;VALUE OFFSETS
  007992: 4EB83A94      144          JSR     SHPR1
                        145 ;

                        147 ; A4 = PTR PAST END OF DBLY CRUNCHED CODE
                        148 ;     (COMPILE PRIMITIVES THERE)
                        149 ; LOCATE THE RIGHT SIDE OF THE EQUATION
                        150 ;
  007996: 41F81700      151 CAA      LEA     TEMPB,A0       ;PTR TO START
  00799A: 7C9A          152          MOVEQ   #$9A,D6        ;"="
  00799C: 1E18          153 CLET5    MOVE.B  (A0)+,D7       ;FETCH A BYTE
  00799E: BE06          154          CMP.B   D6,D7          ;"=" ?
  0079A0: 66FA          155          BNE     CLET5          ;LOOP IF NOT
                        156 ;
  0079A2: 3008          157          MOVE.W  A0,D0          ;SAVE EXPR START
  0079A4: 3A4C          158          MOVE.W  A4,A5          ;COMPILED CODE STRT
  0079A6: 7A7D          159          MOVEQ   #$7D,D5        ;TEMP REG PTR
                        160 ;
                        161 ; D0 = PTR TO RIGHT SIDE START
                        162 ; A5 = PTR TO COMPILED CODE
                        163 ; D5 = TEMP F.P. REGISTER PTR
                        164 ; LOCATE RIGHT PARENS  (IF ANY)
                        165 ;
  0079A8: 3040          166 L105     MOVE.W  D0,A0          ;SET A0 = START
  0079AA: 7C87          167          MOVEQ   #$87,D6        ;")"
  0079AC: 74FF          168          MOVEQ   #$FF,D2        ;COUNT = -1
                        169 ;
  0079AE: 5242          170 CLET6    ADDQ.W  #1,D2          ;INCR THE COUNT
  0079B0: 1E18          171          MOVE.B  (A0)+,D7       ;FETCH A BYTE
  0079B2: 6750          172          BEQ     L180           ;END OF EXPR
                        173 ;
  0079B4: BE06          174          CMP.B   D6,D7          ;")" ?
  0079B6: 66F6          175          BNE     CLET6
                        176 ;
  0079B8: 3248          177          MOVE.W  A0,A1          ;SAVE PTR
  0079BA: 4241          178          CLR.W   D1             ;CLR BYTE COUNT
                        179 ;
                        180 ; A1 = PTR TO BYTE PAST RIGHT PARENS
                        181 ; FIND A LEFT PARENS (IMPLIED OR REAL)
                        182 ;
  0079BC: 7C88          183          MOVEQ   #$88,D6        ;LEFT PARENS
  0079BE: 5241          184 CLET7    ADDQ.W  #1,D1          ;INCR BYTE COUNT
  0079C0: 1E20          185          MOVE.B  -(A0),D7       ;FETCH BYTE
  0079C2: BC07          186          CMP.B   D7,D6          ;D7 < $88 ?
  0079C4: 62F8          187          BHI     CLET7          ;NEXT BYTE IF SO
                        188 ;
  0079C6: 0C07009A      189          CMPI.B  #$9A,D7        ;CHECK FOR GOOF
  0079CA: 6400FD00      190          BCC     ERR6X          ;REPORT GOOF
                        191 ;
  0079CE: 5541          192          SUBQ.W  #2,D1          ;CORRECT THE COUNT
  0079D0: 6606          193          BNE     CLET8          ;OK IF NOT ZERO
                        194 ;
  0079D2: 7E24          195          MOVEQ   #36,D7         ;EMPTY PARENS
  0079D4: 4EF86008      196 CERR     JMP     ERROR          ;REPORT ERROR
                        197 ;
                        198 ; COMPILE THE CONTENTS OF A PARENTHESES
                        199 ;
  0079D8: 3401          200 CLET8    MOVE.W  D1,D2          ;COUNT TO D2
  0079DA: 3F07          201          MOVE.W  D7,-(A7)       ;SAVE D7
  0079DC: 3F08          202          MOVE.W  A0,-(A7)       ;SAVE A0
  0079DE: 5248          203          ADDQ.W  #1,A0          ;PTR TO START
  0079E0: 612A          204          BSR     L2000          ;EVAL NON-P EXPR
  0079E2: 305F          205          MOVE.W  (A7)+,A0       ;RESTORE A0
  0079E4: 3E1F          206          MOVE.W  (A7)+,D7       ;RESTORE D7
                        207 ;

                        209 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        210 ;
                        211 ; TEST FOR AN IMPLIED LEFT PARENS (E.G. 'LOG(')
                        212 ; AND STORE THE MONADIC OPERATOR IF SO.
                        213 ;
  0079E6: 0C070088      214          CMPI.B  #$88,D7        ;LEFT PARENS ?
  0079EA: 6702          215          BEQ     CLET9          ;IF SO
                        216 ;
  0079EC: 1AC7          217          MOVE.B  D7,(A5)+       ;<MONAD OP>
  0079EE: 1AFC009B      218 CLET9    MOVE.B  #$9B,(A5)+     ;<STORE>
  0079F2: 1AC5          219          MOVE.B  D5,(A5)+       ;(TEMPREGX)
  0079F4: 10C5          220          MOVE.B  D5,(A0)+       ;REPLACE "("
  0079F6: 5305          221          SUBQ.B  #1,D5          ;NEW TEMP REG
  0079F8: 5241          222          ADDQ.W  #1,D1          ;ADJ COUNT FOR ")"
  0079FA: 3248          223          MOVE.W  A0,A1          ;A1 = DEST
  0079FC: D0C1          224          ADD.W   D1,A0          ;A0 = SOURCE
  0079FE: 12D8          225 ELIMPAR  MOVE.B  (A0)+,(A1)+    ;MOVE A BYTE
  007A00: 66FC          226          BNE     ELIMPAR        ;CONTINUE TO END
  007A02: 60A4          227          BRA     L105           ;NEXT PAREN ?
                        228 ;
                        229 ;
  007A04: 3040          230 L180     MOVE.W  D0,A0          ;SET A0 = START
  007A06: 6104          231          BSR     L2000          ;EVAL NON-P EXPR
  007A08: 4EF87B0A      232          JMP     L4500          ;DONE
                        233 ;
                        234 ; SUBROUTINE;  EVALUATE NON-PARENTHETICAL EXPR
                        235 ;
                        236 ; A0 = PTR TO START OF NON-PARENTHETIC EXPR
                        237 ; A5 = PTR TO COMPILED PRIMITIVES
                        238 ; D2 = BYTE COUNT OF NON-PARENTHETICAL EXPR
                        239 ;
  007A0C: 42787F3E      240 L2000    CLR.W   T1FLG          ;CLR TEMP STORAGE
  007A10: 4244          241          CLR.W   D4             ;CLR CHS FLAG
  007A12: 1E18          242          MOVE.B  (A0)+,D7       ;FETCH A BYTE
  007A14: 6A14          243          BPL     L2140          ;OK IF VARN
                        244 ;
  007A16: 0C070082      245          CMPI.B  #$82,D7        ;MINUS ?
  007A1A: 660A          246          BNE     CSE            ;SYNTAX ERR IF NOT
                        247 ;
  007A1C: 7801          248          MOVEQ   #1,D4          ;SET CHS FLAG
  007A1E: 5342          249          SUBQ.W  #1,D2          ;DECR COUNT
  007A20: 6704          250          BEQ     CSE            ;SYNTAX ERR IF ZERO
                        251 ;
  007A22: 1E18          252          MOVE.B  (A0)+,D7       ;FETCH A BYTE
  007A24: 6A04          253          BPL     L2140          ;O.K. IF VARN
                        254 ;
  007A26: 7E03          255 CSE      MOVEQ   #3,D7          ;SYNTAX ERROR
  007A28: 60AA          256          BRA     CERR           ;REPORT IT
                        257 ;
                        258 ; LOAD FPACC1 WITH THE INITIAL VARIABLE
                        259 ;
  007A2A: 1AFC009A      260 L2140    MOVE.B  #$9A,(A5)+     ;<LOAD>
  007A2E: 1AC7          261          MOVE.B  D7,(A5)+       ;(VARN)
  007A30: 4A04          262          TST.B   D4             ;CHS FLAG SET ?
  007A32: 6706          263          BEQ     L2150          ;SKIP IF NOT
                        264 ;
  007A34: 1AFC0080      265          MOVE.B  #$80,(A5)+     ;<CHS>
  007A38: 4244          266          CLR.W   D4             ;CLR CHS FLAG
                        267 ;

                        269 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        270 ;
                        271 ; THIS IS THE START OF THE MAIN PARSING LOOP
                        272 ;
  007A3A: 5342          273 L2150    SUBQ.W  #1,D2          ;DECR COUNT
  007A3C: 6768          274          BEQ     L3000          ;DONE IF ZERO
                        275 ;
  007A3E: 1E18          276          MOVE.B  (A0)+,D7       ;FETCH MATH OP
  007A40: 5342          277          SUBQ.W  #1,D2          ;DECR COUNTER
  007A42: 67E2          278          BEQ     CSE            ;ERR IF NO VAR
                        279 ;
  007A44: 1C18          280          MOVE.B  (A0)+,D6       ;FETCH VARN
  007A46: 6BDE          281          BMI     CSE            ;ERR IF NOT VARN
                        282 ;
  007A48: 0C070085      283          CMPI.B  #$85,D7        ;POWER FN ?
  007A4C: 6752          284          BEQ     STORMV         ;IF POWER FN
                        285 ;
                        286 ; FLUSH LEVEL 1 TEMP STORAGE IF NECESSARY
                        287 ;
  007A4E: 4EB87AAA      288 L2160    JSR     FLEV1          ;FLUSH IF OCC'PD
                        289 ;
  007A52: 0C070083      290 L2190    CMPI.B  #$83,D7        ;PRECEDENCE TEST
  007A56: 651E          291          BCS     L2300          ;SKIP IF + OR -
                        292 ;
                        293 ; THE MATH OPERATOR IS MULT OR DIV
                        294 ;
  007A58: 0C420001      295          CMPI.W  #1,D2          ;TEST THE COUNT
  007A5C: 6322          296          BLS     STORMVX        ;STORE & EXIT
                        297 ;
                        298 ; TEST THE PRECEDENCE OF THE NEXT MATH OPERATOR
                        299 ;
  007A5E: 0C100085      300 L2210    CMPI.B  #$85,(A0)      ;TEST PRECEDENCE
  007A62: 663C          301          BNE     STORMV         ;PRECEDENCE O.K.
                        302 ;
                        303 ; STORE FPACC1 IN LEVEL 1 TEMP STORAGE
                        304 ;
  007A64: 1AFC009B      305 L2250    MOVE.B  #$9B,(A5)+     ;<STORE>
  007A68: 1AFC007E      306          MOVE.B  #$7E,(A5)+     ;(TEMP1)
  007A6C: 52387F3E      307          ADDQ.B  #1,T1FLG       ;SET LEV 1 FLG
  007A70: 11C77F40      308          MOVE.B  D7,M1OP        ;SAVE MATH OP
  007A74: 6028          309          BRA     STORLV         ;CONTINUE
                        310 ;
                        311 ; FLUSH LEVEL 0 TEMP STORAGE IF NECESSARY
                        312 ;
  007A76: 4EB87ADA      313 L2300    JSR     FLEV0          ;FLUSH IF OCC'PD
                        314 ;
                        315 ; THE MATH OPERATOR IS ADD OR SUB
                        316 ;
  007A7A: 0C420001      317 L2330    CMPI.W  #1,D2          ;TEST THE COUNT
  007A7E: 6208          318          BHI     L2350          ;TEST PRECEDENCE
                        319 ;
  007A80: 1AC7          320 STORMVX  MOVE.B  D7,(A5)+       ;<MATH OP>
  007A82: 1AC6          321          MOVE.B  D6,(A5)+       ;(VARN)
  007A84: 4EF87AA6      322          JMP     L3000          ;EXPR DONE
                        323 ;
                        324 ; TEST THE PRECEDENCE OF THE NEXT MATH OPERATOR
                        325 ;
  007A88: 0C100082      326 L2350    CMPI.B  #$82,(A0)      ;TEST PRECEDENCE
  007A8C: 6512          327          BCS     STORMV         ;PRECEDENCE O.K.
                        328 ;

                        330 ; STORE FPACC1 IN LEVEL 0 TEMP STORAGE
                        331 ;
  007A8E: 1AFC009B      332 L2400    MOVE.B  #$9B,(A5)+     ;<STORE>
  007A92: 1AFC007F      333          MOVE.B  #$7F,(A5)+     ;(TEMP0)
  007A96: 52387F3F      334          ADDQ.B  #1,T0FLG       ;SET LEV 0 FLG
  007A9A: 11C77F41      335          MOVE.B  D7,M0OP        ;SAVE MATH OP
  007A9E: 7E9A          336 STORLV   MOVEQ   #$9A,D7        ;<LOAD>
  007AA0: 1AC7          337 STORMV   MOVE.B  D7,(A5)+       ;<MATH OP>
  007AA2: 1AC6          338 STORV    MOVE.B  D6,(A5)+       ;(VARN)
  007AA4: 6094          339          BRA     L2150          ;CONTINUE
                        340 ;
                        341 ; DONE;  CLEAN UP TEMPORARY STORAGE AND EXIT
                        342 ;
  007AA6: 6102          343 L3000    BSR     FLEV1
  007AA8: 6030          344          BRA     FLEV0          ;EXIT
                        345 ;
                        346 ; FLUSH TEMPORARY STORAGE LEVEL 1 IF NEEDED
                        347 ;
  007AAA: 4A387F3E      348 FLEV1    TST.B   T1FLG          ;TEMP 1 EMPTY ?
  007AAE: 6728          349          BEQ     FLEV1X         ;SKIP IF SO
                        350 ;
  007AB0: 0C3800877F40  351          CMPI.B  #$87,M1OP      ;<REVDIV> ?
  007AB6: 670E          352          BEQ     L3015          ;IF SO
                        353 ;
  007AB8: 0C3800847F40  354          CMPI.B  #$84,M1OP      ;<DIV> ?
  007ABE: 670C          355          BEQ     L3020          ;IF SO
                        356 ;
  007AC0: 1AFC0083      357          MOVE.B  #$83,(A5)+     ;<MULT>
  007AC4: 600A          358          BRA     L3025
                        359 ;
  007AC6: 1AFC0084      360 L3015    MOVE.B  #$84,(A5)+     ;<DIV>
  007ACA: 6004          361          BRA     L3025
                        362 ;
  007ACC: 1AFC0087      363 L3020    MOVE.B  #$87,(A5)+     ;<REVDIV>
  007AD0: 1AFC007E      364 L3025    MOVE.B  #$7E,(A5)+     ;(TEMP1)
  007AD4: 42387F3E      365          CLR.B   T1FLG          ;CLR LEV 1 FLAG
  007AD8: 4E75          366 FLEV1X   RTS                    ;DONE
                        367 ;
                        368 ; FLUSH LEVEL 0 TEMP STORAGE IF NECESSARY
                        369 ;
  007ADA: 4A387F3F      370 FLEV0    TST.B   T0FLG          ;TEMP 0 EMPTY ?
  007ADE: 6728          371          BEQ     FLEV0X         ;SKIP IF SO
                        372 ;
  007AE0: 0C3800867F41  373          CMP.B   #$86,M0OP      ;<REVSUB> ?
  007AE6: 670E          374          BEQ     L3035
                        375 ;
  007AE8: 0C3800827F41  376          CMPI.B  #$82,M0OP      ;<SUB> ?
  007AEE: 670C          377          BEQ     L3040          ;SKIP IF SUBTRACT
                        378 ;
  007AF0: 1AFC0081      379          MOVE.B  #$81,(A5)+     ;<ADD>
  007AF4: 600A          380          BRA     L3045
                        381 ;
  007AF6: 1AFC0082      382 L3035    MOVE.B  #$82,(A5)+     ;<SUB>
  007AFA: 6004          383          BRA     L3045
                        384 ;
  007AFC: 1AFC0086      385 L3040    MOVE.B  #$86,(A5)+     ;<REVSUB>
  007B00: 1AFC007F      386 L3045    MOVE.B  #$7F,(A5)+     ;(TEMP0)
  007B04: 42387F3F      387          CLR.B   T0FLG          ;CLR LEV 0 FLAG
  007B08: 4E75          388 FLEV0X   RTS                    ;SUBROUTINE DONE
                        389 ;
                                     CHAIN   CLET1

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
                          4 ; THE FOLLOWING ARE LEGAL MATHOPS FOR THE
                          5 ; NEXT OPTIMIZATION PASSES:
                          6 ;
                          7 ;    $81 = <ADD>
                          8 ;    $82 = <SUB>
                          9 ;    $83 = <MULT>
                         10 ;    $84 = <DIV>
                         11 ;    $85 = <^>
                         12 ;    $86 = <REVSUB>
                         13 ;    $87 = <REVDIV>
                         14 ;    $88 = <REV^>
                         15 ;
                         16 ; WARNING:  THE NON-COMMUTATIVE MATH OPS
                         17 ; (E.G. SUB) OPERATE IN THE REVERSE MANNER
                         18 ; THAN IN THE PROGRAMMABLE HALGOL PRIMITIVES.
                         19 ;
                         20 ; THAT IS IRRELEVANT TO THE HALGOL PROGRAMMER
                         21 ; SINCE THE COMPILATION PROCESS IS INVISIBLE,
                         22 ; BUT KEEP IT IN MIND WHEN READING THIS CODE!
                         23 ;--------------------------------------------
                         24 ;
                         25 ; ELIMINATE STORE - LOAD PAIRS OF THE FORM:
                         26 ;    <STORE> (TEMPREGX)
                         27 ;    <LOAD>  (TEMPREGX)
                         28 ;
                         29 ; A4 = START OF COMPILED PRIMITIVES
                         30 ; A5 = POINTER PAST END OF PRIMITIVES
                         31 ;
  007B0A: 4215           32 L4500    CLR.B   (A5)           ;MARK END OF CODE
  007B0C: 4EF8           33          DC.W    $4EF8          ;JMP $AAAA
  007B0E: 7B10           34 CLET10   DC.W    L4505          ;(NEXT LINE)
  007B10: 48E7FFF0       35 L4505    MOVEM.L D0-D7/A0-A3,-(A7)  ;SAVE REGS
                         36 ;
  007B14: 304C           37 L4510    MOVE.W  A4,A0          ;PRT TO START
  007B16: 7A9A           38          MOVEQ   #$9A,D5        ;D5 = <LOAD>
  007B18: 7C9B           39          MOVEQ   #$9B,D6        ;D6 = <STORE>
  007B1A: 4A10           40 GETST    TST.B   (A0)           ;END ?
  007B1C: 6728           41          BEQ     L4520          ;DONE IF END
  007B1E: BC18           42          CMP.B   (A0)+,D6       ;<STORE> ?
  007B20: 66F8           43          BNE     GETST          ;IF NOT
                         44 ;
  007B22: 1618           45          MOVE.B  (A0)+,D3       ;TEMPREGX TO D3
  007B24: 6700FD6C       46          BEQ     CE01           ;ERROR IF END
                         47 ;
  007B28: 4A10           48          TST.B   (A0)           ;NEXT BYTE
  007B2A: 671A           49          BEQ     L4520          ;IF END
                         50 ;
  007B2C: BA10           51          CMP.B   (A0),D5        ;<LOAD> ?
  007B2E: 66EA           52          BNE     GETST          ;IF NOT
                         53 ;
  007B30: 5248           54          ADDQ.W  #1,A0          ;PTR PAST <LOAD>
  007B32: B618           55          CMP.B   (A0)+,D3       ;TEMPREGX ?
  007B34: 66E4           56          BNE     GETST          ;IF NOT
                         57 ;
                         58 ; ELIMINATE THE <STORE> - <LOAD> PAIR
                         59 ;
  007B36: 6102           60          BSR     ELIMPAIR
  007B38: 60DA           61          BRA     L4510          ;ANOTHER PAIR ?
                         62 ;

                         64 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                         65 ;
  007B3A: 3248           66 ELIMPAIR MOVE.W  A0,A1          ;A0 = SOURCE
  007B3C: 5949           67          SUBQ.W  #4,A1          ;A1 = DEST
  007B3E: 3449           68          MOVE.W  A1,A2          ;SAVE START
  007B40: 12D8           69 ELIMPR   MOVE.B  (A0)+,(A1)+    ;MOVE A BYTE
  007B42: 66FC           70          BNE     ELIMPR         ;CONTINUE TO END
  007B44: 4E75           71          RTS                    ;PAIR ELIM'D
                         72 ;
                         73 ; ELIMINATE LOAD - STORE PAIRS OF THE FORM:
                         74 ;    <LOAD>  (ORIGVARN)
                         75 ;    <STORE> (TEMPREGX)
                         76 ;
                         77 ; THIS WILL BE FOLLOWED LATER BY:
                         78 ;    <MATHOP OR LOAD> (TEMPREGX)
                         79 ;
                         80 ; REPLACE THIS WITH:
                         81 ;    <MATHOP OR LOAD> (ORIGVARN)
                         82 ;
                         83 ; (NOTE:  THE COMPILATION PROCESS HAS ALREADY
                         84 ; REVERSED MOST NON-COMMUTATIVE MATH OPS)
                         85 ;
  007B46: 304C           86 L4520    MOVE.W  A4,A0          ;PRT TO START
  007B48: 4A10           87 GETLD    TST.B   (A0)           ;END ?
  007B4A: 6746           88          BEQ     L4550          ;DONE IF END
  007B4C: BA18           89          CMP.B   (A0)+,D5       ;<LOAD> ?
  007B4E: 66F8           90          BNE     GETLD          ;IF NOT
                         91 ;
  007B50: 1618           92          MOVE.B  (A0)+,D3       ;ORIGVARN TO D3
  007B52: 6700FD44       93          BEQ     CE02           ;ERROR IF END
                         94 ;
  007B56: 4A10           95          TST.B   (A0)           ;NEXT BYTE
  007B58: 6738           96          BEQ     L4550          ;IF END
                         97 ;
  007B5A: BC10           98          CMP.B   (A0),D6        ;<STORE> ?
  007B5C: 66EA           99          BNE     GETLD          ;IF NOT
                        100 ;
  007B5E: 5248          101          ADDQ.W  #1,A0          ;PTR PAST <STORE>
  007B60: 1218          102          MOVE.B  (A0)+,D1       ;TEMPREGX TO D1
  007B62: 6B00FD3A      103          BMI     CE03           ;ERROR IF > $7F
  007B66: 0C010068      104          CMPI.B  #$68,D1
  007B6A: 6500FD38      105          BCS     CE04           ;ERROR IF < $68
                        106 ;
                        107 ; ELIMINATE THE <LOAD> - <STORE> PAIR, THEN FIND
                        108 ; <MATHOP OR LOAD> (TEMPREGX) AND REPLACE IT.
                        109 ;
  007B6E: 61CA          110          BSR     ELIMPAIR
  007B70: 304A          111          MOVE.W  A2,A0          ;PTR PAST PAIR
  007B72: 4A10          112 GETTMPRG TST.B   (A0)           ;END ?
  007B74: 6700FD34      113          BEQ     CE05           ;IF SO
  007B78: B218          114          CMP.B   (A0)+,D1       ;TEMPREGX ?
  007B7A: 66F6          115          BNE     GETTMPRG       ;IF NOT
                        116 ;
  007B7C: 5548          117          SUBQ.W  #2,A0          ;PTR TO MATHOP
  007B7E: 1410          118          MOVE.B  (A0),D2        ;MATHOP TO D2
  007B80: B405          119          CMP.B   D5,D2          ;<LOAD> ?
  007B82: 6708          120          BEQ     MATHOK         ;IF SO
                        121 ;
  007B84: 4EB87DB8      122          JSR     LEGLMATH       ;LEGAL MATHOP ?
  007B88: 6700FD38      123          BEQ     CE09           ;ERROR IF NOT
                        124 ;

                        126 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        127 ;
  007B8C: 10C2          128 MATHOK   MOVE.B  D2,(A0)+       ;MATHOP1
  007B8E: 10C3          129          MOVE.B  D3,(A0)+       ;ORIGVARN
  007B90: 6082          130          BRA     L4510          ;ANOTHER PAIR ?
                        131 ;
                        132 ; LOOK FOR A LOAD - CHS - STORE TRIPLET:
                        133 ;    <LOAD>  (ORIGVARN)
                        134 ;    <CHS>
                        135 ;    <STORE> (TEMPREGX)
                        136 ;
                        137 ; THIS WILL BE FOLLOWED LATER BY:
                        138 ;    <MATHOP> (TEMPREGX)
                        139 ; OR <LOAD>   (TEMPREGX)
                        140 ;
                        141 ; THE ORIGINAL TRIPLET CAN BE ELIMINATED.  THEN
                        142 ; REPLACE THE LATER <MATHOP> (TEMPREGX) WITH:
                        143 ;
                        144 ; IF <ADD>,    <SUB>    (ORIGVARN)
                        145 ; IF <REVSUB>, <ADD>    (ORIGVARN) <CHS>
                        146 ; IF <MULT>,   <MULT>   (ORIGVARN) <CHS>
                        147 ; IF <REVDIV>, <REVDIV> (ORIGVARN) <CHS>
                        148 ; IF <LOAD>,   <LOAD>   (ORIGVARN) <CHS>
                        149 ;
                        150 ; IF <POWER>, THIS OPTIMIZATION STEP SHOULD NOT
                        151 ; BE PERFORMED!
                        152 ;
                        153 ; THE NET SAVINGS IS A LOAD-STORE PAIR AND,
                        154 ; PERHAPS, ONE <CHS>.
                        155 ;
  007B92: 304C          156 L4550    MOVE.W  A4,A0          ;PTR TO START
  007B94: 5448          157          ADDQ.W  #2,A0          ;1ST POSS <CHS>
  007B96: 7880          158          MOVEQ   #$80,D4        ;<CHS> TO D4
  007B98: 4A10          159 GETCHS   TST.B   (A0)           ;END?
  007B9A: 67000086      160          BEQ.L   L4600          ;DONE IF END
  007B9E: B818          161          CMP.B   (A0)+,D4       ;<CHS> ?
  007BA0: 66F6          162          BNE     GETCHS         ;IF NOT
                        163 ;
  007BA2: 4A10          164          TST.B   (A0)           ;END ?
  007BA4: 6700007C      165          BEQ.L   L4600          ;IF SO
  007BA8: BC18          166          CMP.B   (A0)+,D6       ;<STORE> ?
  007BAA: 66EC          167          BNE     GETCHS         ;IF NOT
                        168 ;
  007BAC: 1218          169          MOVE.B  (A0)+,D1       ;TEMPREGX TO D1
  007BAE: 3248          170          MOVE.W  A0,A1          ;SAVE 'NEXT' ADR
  007BB0: 5B48          171          SUBQ.W  #5,A0          ;PTR TO POSS LOAD
  007BB2: BA18          172          CMP.B   (A0)+,D5       ;<LOAD> ?
  007BB4: 6704          173          BEQ     GOTLOAD        ;IF SO
                        174 ;
  007BB6: 5648          175          ADDQ.W  #3,A0          ;CORRECT THE PTR
  007BB8: 60DE          176          BRA     GETCHS         ;CONTINUE SEARCH
                        177 ;
  007BBA: 1610          178 GOTLOAD  MOVE.B  (A0),D3        ;ORIGVARN TO D3
  007BBC: 5348          179          SUBQ.W  #1,A0          ;START OF TRIPLET
  007BBE: 3448          180          MOVE.W  A0,A2          ;SAVE START ADR
                        181 ;
                        182 ; NOW FIND <MATHOP> (TEMPREGX) AND REPLACE IT
                        183 ;
  007BC0: 3049          184          MOVE.W  A1,A0          ;SEARCH START
  007BC2: 6148          185          BSR     FTMPREGX       ;FIND TREG
                        186 ;

                        188 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                        189 ;
                        190 ; DO NOT ELIMINATE TRIPLET IF A POWER FN
                        191 ;
  007BC4: 0C020085      192          CMPI.B  #$85,D2        ;<POWER> ?
  007BC8: 6752          193          BEQ     CHPWR          ;IF SO
                        194 ;
  007BCA: 0C020088      195          CMPI.B  #$88,D2        ;<REV^> ?
  007BCE: 674C          196          BEQ     CHPWR          ;IF SO
                        197 ;
                        198 ; ELIMINATE THE TRIPLET
                        199 ;
  007BD0: 304A          200          MOVE.W  A2,A0          ;RESTORE PTR
  007BD2: 14D9          201 ELIMCHS  MOVE.B  (A1)+,(A2)+    ;MOVE A BYTE
  007BD4: 66FC          202          BNE     ELIMCHS        ;CONTINUE TO END
                        203 ;
  007BD6: 6134          204          BSR     FTMPREGX       ;FIND TREG
  007BD8: 4EB87DB8      205          JSR     LEGLMATH       ;LEGAL MATHOP ?
  007BDC: 6700FCD8      206          BEQ     CE07           ;IF NOT
                        207 ;
  007BE0: 0C020081      208          CMPI.B  #$81,D2        ;<ADD> ?
  007BE4: 6604          209          BNE     CHS1           ;IF NOT
                        210 ;
  007BE6: 7482          211          MOVEQ   #$82,D2        ;REPLACE W/<SUB>
  007BE8: 6008          212          BRA     CHS2           ;DONE
                        213 ;
  007BEA: 0C020086      214 CHS1     CMPI.B  #$86,D2        ;<REVSUB> ?
  007BEE: 6602          215          BNE     CHS2           ;IF NOT
                        216 ;
  007BF0: 7481          217          MOVEQ   #$81,D2        ;REPLACE W/<ADD>
                        218 ;
  007BF2: 10C2          219 CHS2     MOVE.B  D2,(A0)+       ;MATHOP1 OR LOAD
  007BF4: 10C3          220          MOVE.B  D3,(A0)+       ;ORIGVARN
                        221 ;
                        222 ; IF MATHOP IS NOT <SUB>, INSERT A <CHS>.
                        223 ;
  007BF6: 0C020082      224          CMPI.B  #$82,D2        ;<SUB> ?
  007BFA: 6700FF18      225          BEQ     L4510          ;IF SO
                        226 ;
  007BFE: 7480          227          MOVEQ   #$80,D2        ;<CHS>
  007C00: 1610          228 INSERCHS MOVE.B  (A0),D3        ;SAVE NEXT CHAR
  007C02: 10C2          229          MOVE.B  D2,(A0)+       ;REPLACE IT
  007C04: 6700FF0E      230          BEQ     L4510          ;DONE IF END
                        231 ;
  007C08: 1403          232          MOVE.B  D3,D2          ;NEXT BYTE
  007C0A: 60F4          233          BRA     INSERCHS
                        234 ;
  007C0C: 4A10          235 FTMPREGX TST.B   (A0)           ;END ?
  007C0E: 6700FCA0      236          BEQ     CE06           ;IF SO
                        237 ;
  007C12: B218          238          CMP.B   (A0)+,D1       ;TEMPREGX ?
  007C14: 66F6          239          BNE     FTMPREGX       ;IF NOT
                        240 ;
  007C16: 5548          241          SUBQ.W  #2,A0          ;PTR TO MATHOP
  007C18: 1410          242          MOVE.B  (A0),D2        ;MATHOP TO D2
  007C1A: 4E75          243          RTS                    ;TREG FOUND
                        244 ;
  007C1C: 3049          245 CHPWR    MOVE.W  A1,A0          ;RESTORE A0
  007C1E: 6000FF78      246          BRA     GETCHS         ;CONT SEARCH
                        247 ;

                        249 ; LOOK FOR A STORE - LOAD - VARN TRIPLET:
                        250 ;    <STORE>  (TEMPREGX)
                        251 ;    <LOAD>   (DIFFVARN)
                        252 ;    <MATHOP> (TEMPREGX)
                        253 ;
                        254 ; WHERE <MATHOP> CAN BE ADD, SUB, REVSUB,
                        255 ; MULT, DIV, OR REVDIV.
                        256 ;
                        257 ; REPLACE THE TRIPLET WITH:
                        258 ;    <MATHOP1> (DIFFVARN)
                        259 ;
                        260 ; (NOTE:  THE COMPILATION PROCESS HAS ALREADY
                        261 ; REVERSED NON-COMMUTATIVE MATH OPS IF X = 0 OR 1)
                        262 ;
  007C22: 304C          263 L4600    MOVE.W  A4,A0          ;PTR TO START
  007C24: 4A10          264 GETST1   TST.B   (A0)           ;END ?
  007C26: 674A          265          BEQ     L4700          ;DONE IF END
                        266 ;
  007C28: BC18          267          CMP.B   (A0)+,D6       ;<STORE> ?
  007C2A: 66F8          268          BNE     GETST1         ;IF NOT
                        269 ;
  007C2C: 1618          270          MOVE.B  (A0)+,D3       ;TEMPREGX TO D3
  007C2E: 6700FC8C      271          BEQ     CE08           ;ERROR IF END
                        272 ;
  007C32: 4A10          273          TST.B   (A0)           ;NEXT BYTE
  007C34: 673C          274          BEQ     L4700          ;IF END
                        275 ;
  007C36: BA10          276          CMP.B   (A0),D5        ;<LOAD> ?
  007C38: 66EA          277          BNE     GETST1         ;IF NOT
                        278 ;
  007C3A: 5248          279          ADDQ.W  #1,A0          ;PTR PAST <LOAD>
  007C3C: 4A18          280          TST.B   (A0)+          ;END ?
  007C3E: 6700FC82      281          BEQ     CE09           ;ERROR IF SO
                        282 ;
  007C42: 1418          283          MOVE.B  (A0)+,D2       ;MAYBE MATHOP
  007C44: 672C          284          BEQ     L4700          ;DONE IF END
                        285 ;
  007C46: B618          286          CMP.B   (A0)+,D3       ;SAME TEMPREG ?
  007C48: 6704          287          BEQ     CHKMATH        ;IF SAME
                        288 ;
  007C4A: 5548          289 NOPE     SUBQ.W  #2,A0          ;CORRECT PTR
  007C4C: 60D6          290          BRA     GETST1         ;RESUME TEST
                        291 ;
  007C4E: 4EB87DB8      292 CHKMATH  JSR     LEGLMATH       ;LEGAL MATHOP?
  007C52: 67F6          293          BEQ     NOPE           ;NOPE, NOT LEGAL
                        294 ;
  007C54: 0C03007E      295          CMPI.B  #$7E,D3        ;0 OR 1 ?
  007C58: 6404          296          BCC     MATHOPOK       ;IF YES
                        297 ;
  007C5A: 4EB87DCC      298          JSR     REVMATH        ;REVERSE MATHOPS
  007C5E: 3248          299 MATHOPOK MOVE.W  A0,A1          ;A0 = SOURCE
  007C60: 5749          300          SUBQ.W  #3,A1          ;PTR TO DIFFVARN
  007C62: 1611          301          MOVE.B  (A1),D3        ;DIFFVARN TO D3
  007C64: 5749          302          SUBQ.W  #3,A1          ;PTR TO DEST
  007C66: 12C2          303          MOVE.B  D2,(A1)+       ;STORE MATHOP1
  007C68: 12C3          304          MOVE.B  D3,(A1)+       ;STORE DIFFVARN
  007C6A: 12D8          305 ELIMTRIP MOVE.B  (A0)+,(A1)+    ;MOVE A BYTE
  007C6C: 66FC          306          BNE     ELIMTRIP       ;CONTINUE TO END
  007C6E: 6000FEA4      307          BRA     L4510          ;ANOTHER TRIPLET ?
                        308 ;
                                     CHAIN   CLET2

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
  007C72: 4CDF0FFF        4 L4700    MOVEM.L (A7)+,D0-D7/A0-A3  ;RESTORE REGS
  007C76: 6004            5 CLET11   BRA     CLET12         ;SKIP HEXPRINT
  007C78: 4EB87D30        6          JSR     HEXPRDCC       ;DOUBLE CRUNCHED
                          7 ;
  007C7C: 6004            8 CLET12   BRA     HCMPL          ;SKIP LIST
  007C7E: 4EB87D46        9          JSR     LCCODE         ;LIST PRIMITIVES
                         10 ;
                         11 ; COMPILE THE BYTE-PRIMITIVES INTO TRUE HALGOL
                         12 ; WORD-PRIMITIVES AND STORE THE RESULT IN THE
                         13 ; WORK BUFFER.  CORRECT LINK1 AS CODE IS ADDED
                         14 ; TO THE WORK BUFFER.
                         15 ;
  007C82: 365F           16 HCMPL    MOVE.W  (A7)+,A3       ;RESTORE A3
  007C84: 30781514       17          MOVE.W  WRKADR,A0      ;PTR TO LINK1
  007C88: 5448           18          ADDQ.W  #2,A0          ;PTR TO LINK2
  007C8A: 7614           19          MOVEQ   #20,D3         ;#20 TO D3
  007C8C: 7880           20          MOVEQ   #$80,D4        ;<CHS> TO D4
  007C8E: 7A9A           21          MOVEQ   #$9A,D5        ;<LOAD> TO D5
  007C90: 7C88           22          MOVEQ   #$88,D6        ;HIGHEST DYADIC OP
                         23 ;
                         24 ; A0 = PTR TO LINK2
                         25 ; A3 = PTR TO HALGOL WORK BUFFER
                         26 ; A4 = PTR TO COMPILED BYTE-PRIMITIVES
                         27 ;
  007C92: 327C20D8       28 HCMPL1   MOVE.W  #HPTBL,A1      ;PRIMITIVE ADR TBL
  007C96: 4247           29          CLR.W   D7
  007C98: 1E1C           30          MOVE.B  (A4)+,D7       ;FETCH A BYTE
  007C9A: 6766           31          BEQ     LEFTSIDE       ;IF END
                         32 ;
  007C9C: BE05           33 HCMPL2   CMP.B   D5,D7          ;LOAD OR STORE ?
  007C9E: 6506           34          BCS     NLS            ;IF NOT
                         35 ;
  007CA0: 04070091       36          SUBI.B  #145,D7        ;D7 = PRIM INDEX
  007CA4: 6020           37          BRA     DYAD           ;COMPILE TWO WORDS
                         38 ;
  007CA6: BE04           39 NLS      CMP.B   D4,D7          ;<CHS> ?
  007CA8: 6604           40          BNE     NOTCHS         ;IF NOT
  007CAA: 4247           41          CLR.W   D7             ;CHS INDEX = 0
  007CAC: 6010           42          BRA     MONAD1         ;ONE-WORD OP
                         43 ;
  007CAE: BE06           44 NOTCHS   CMP.B   D6,D7          ;MONAD ?
  007CB0: 6206           45          BHI     MONAD          ;IF SO
                         46 ;
  007CB2: 04070080       47          SUBI.B  #$80,D7        ;D7 = PRIM INDEX
  007CB6: 600E           48          BRA     DYAD           ;COMPILE TWO WORDS
                         49 ;
                         50 ; WE HAVE A MONADIC OPERATOR (E.G. CHS, LOG).
                         51 ; CONVERT THE INDEX TO THE HALGOL ACTION ADDRESS
                         52 ; AND STORE IT IN THE WORK BUFFER.
                         53 ;
  007CB8: 0407006A       54 MONAD    SUBI.B  #106,D7        ;CORRECT THE INDEX
  007CBC: DE47           55          ADD.W   D7,D7          ;DOUBLE THE INDEX
  007CBE: D2C7           56 MONAD1   ADD.W   D7,A1          ;PTR TO ELEMENT
  007CC0: 36D1           57          MOVE.W  (A1),(A3)+     ;HALGOL ACTION ADR
  007CC2: 5450           58          ADDQ.W  #2,(A0)        ;ADD 2 BYTES
  007CC4: 60CC           59          BRA     HCMPL1         ;NEXT BYTE
                         60 ;

                         62 ; WE HAVE A DYADIC OPERATOR (E.G. LOAD, ADD).
                         63 ; WE MAY HAVE TO ADD #20 OR #40 TO THE INDEX IN
                         64 ; CASE OF A CONSTANT OR A TEMPORARY REGISTER.
                         65 ;
  007CC6: DE47           66 DYAD     ADD.W   D7,D7          ;DOUBLE THE INDEX
  007CC8: D2C7           67          ADD.W   D7,A1          ;PTR TO ADR
                         68 ;
                         69 ; CHK VALUE TYPE (VARN, CONST, TEMPREG).
                         70 ;
  007CCA: 1E1C           71          MOVE.B  (A4)+,D7       ;FETCH VALUE TOKEN
  007CCC: 0C070068       72          CMPI.B  #$68,D7        ;TEMP REG ?
  007CD0: 6514           73          BCS     ISVC           ;IF NOT
                         74 ;
                         75 ; THE F.P. VALUE IS A TEMP REGISTER.  ADD #40
                         76 ; TO THE INDEX AND STORE THE ACTION ADR.
                         77 ;
  007CD2: D2FC0028       78          ADDI.W  #40,A1         ;ADD #40 TO PTR
  007CD6: 36D1           79          MOVE.W  (A1),(A3)+     ;HALGOL ACTION ADR
  007CD8: 727F           80          MOVEQ   #$7F,D1
  007CDA: 9207           81          SUB.B   D7,D1          ;TEMP REG INDEX
  007CDC: E749           82          LSL.W   #3,D1          ;INDEX TO OFFSET
  007CDE: 06411100       83          ADDI.W  #$1100,D1      ;TEMP REG ADR
  007CE2: 36C1           84          MOVE.W  D1,(A3)+       ;(TEMPREGX)
  007CE4: 6018           85          BRA     VAR1           ;ADD 4 & LOOP
                         86 ;
                         87 ; THE F.P. VALUE IS EITHER A VARN OR A CONST.
                         88 ; IF IT IS A CONSTANT, ADD #20 TO THE PTR
                         89 ; AND STORE THE ACTION ADR.
                         90 ;
  007CE6: 5307           91 ISVC     SUBQ.B  #1,D7          ;INDEX
  007CE8: 347C1600       92          MOVE.W  #BUFFER,A2     ;PTR TO TYPE
  007CEC: D4C7           93          ADD.W   D7,A2          ;PTR TO TYPE
  007CEE: 4A12           94          TST.B   (A2)           ;WHAT TYPE ?
  007CF0: 6702           95          BEQ     VAR            ;IF VARIABLE
                         96 ;
  007CF2: D2C3           97          ADD.W   D3,A1          ;ADD #20 TO PTR
  007CF4: 36D1           98 VAR      MOVE.W  (A1),(A3)+     ;HALGOL ACTION ADR
  007CF6: 06470050       99          ADDI.W  #80,D7
  007CFA: D4C7          100          ADD.W   D7,A2          ;PTR TO OFFSET
  007CFC: 36D2          101          MOVE.W  (A2),(A3)+     ;(OFFSET)
  007CFE: 5850          102 VAR1     ADDQ.W  #4,(A0)        ;ADD 4 BYTES
  007D00: 6090          103          BRA     HCMPL1         ;NEXT BYTE
                        104 ;
                        105 ; THE RIGHT HAND SIDE OF THE EQUATION HAS
                        106 ; BEEN EVALUATED AND THE RESULT IS IN FPACC1.
                        107 ; NOW STORE THIS RESULT INTO THE VARIABLE(S)
                        108 ; ON THE LEFT SIDE OF THE EQUATION.
                        109 ;
  007D02: 387C1700      110 LEFTSIDE MOVE.W  #TEMPB,A4      ;PTR TO START
  007D06: 4247          111 LEFTSID1 CLR.W   D7
  007D08: 1E1C          112          MOVE.B  (A4)+,D7       ;FETCH VAR TOKEN
  007D0A: DE47          113          ADD.W   D7,D7          ;DOUBLE IT
  007D0C: 347C164E      114          MOVE.W  #BUFFER+78,A2
  007D10: D4C7          115          ADD.W   D7,A2          ;PTR TO OFFSET
  007D12: 36F820EC      116          MOVE.W  HPTBL+20,(A3)+  ;<STORE>
  007D16: 36D2          117          MOVE.W  (A2),(A3)+     ;(OFFSET)
  007D18: 5850          118          ADDQ.W  #4,(A0)        ;ADD 4 BYTES
  007D1A: 0C1C009B      119          CMPI.B  #$9B,(A4)+     ;COMMA ?
  007D1E: 67E6          120          BEQ     LEFTSID1       ;IF COMMA
                        121 ;
  007D20: 4E75          122          RTS                    ;COMPILE DONE
                                     CHAIN   CLET3

                          2 ; COPYRIGHT 1984 DIGITAL ACOUSTICS INC
                          3 ;
  007D22: 4EB83A54        4 SETUP    JSR     CLRCSR         ;CLR THE CURSOR
  007D26: 21F820B420BC    5          MOVE.L  PRINTER,ACTIVE
  007D2C: 4EF83A88        6          JMP     LINFEED        ;BLANK LINE, EXIT
                          7 ;
                          8 ; HEXPRINT THE DOUBLY CRUNCHED CODE
                          9 ;
  007D30: 61F0           10 HEXPRDCC BSR     SETUP          ;INIT PRINT
  007D32: 7203           11          MOVEQ   #3,D1          ;3 LINES
  007D34: 203C00001700   12          MOVE.L  #TEMPB,D0      ;DOUBLE CRUNCHED
  007D3A: 4EB83A94       13          JSR     SHPR1
                         14 ;
  007D3E: 7203           15          MOVEQ   #3,D1          ;3 LINES
  007D40: 200C           16          MOVE.L  A4,D0          ;COMPILED CODE
  007D42: 4EF83A94       17          JMP     SHPR1          ;EXIT VIA SHPR1
                         18 ;
                         19 ; LIST THE COMPILED PRIMITIVES FOR DEBUGGING
                         20 ;
  007D46: 61DA           21 LCCODE   BSR     SETUP          ;INIT PRINT
  007D48: 4247           22          CLR.W   D7
  007D4A: 304C           23          MOVE.W  A4,A0          ;CODE START
                         24 ;
  007D4C: 1E18           25 LC       MOVE.B  (A0)+,D7       ;FETCH A BYTE
  007D4E: 6766           26          BEQ     LCDONE         ;DONE IF END
  007D50: 6B3C           27          BMI     HIBYT          ;NOT A VARN
                         28 ;
  007D52: 0C070068       29          CMPI.B  #$68,D7        ;TEMP REG ?
  007D56: 650C           30          BCS     VC             ;IF NOT
                         31 ;
  007D58: 7C7F           32          MOVEQ   #$7F,D6
  007D5A: 9C07           33          SUB.B   D7,D6          ;CALC INDEX
  007D5C: 3206           34          MOVE.W  D6,D1          ;INDEX TO D1
  007D5E: 3C7C7E9F       35          MOVE.W  #TREGS,A6
  007D62: 6020           36          BRA     C1
                         37 ;
  007D64: 5307           38 VC       SUBQ.B  #1,D7          ;INDEX
  007D66: 327C1600       39          MOVE.W  #BUFFER,A1     ;PTR TO VAR TYPE
  007D6A: D2C7           40          ADD.W   D7,A1          ;PTR TO TYPE
  007D6C: 4A11           41          TST.B   (A1)           ;WHAT TYPE
  007D6E: 6606           42          BNE     CONST          ;IF CONSTANT
                         43 ;
  007D70: 2C7815C0       44          MOVE.L  SOVN,A6        ;VAR NAME TABLE
  007D74: 6004           45          BRA     C0
                         46 ;
  007D76: 2C7815B0       47 CONST    MOVE.L  SOCN,A6        ;CONST NAME TABLE
  007D7A: 06470050       48 C0       ADDI.W  #80,D7         ;(HEX($50))
  007D7E: D2C7           49          ADD.W   D7,A1          ;PTR TO OFFSET
  007D80: 3211           50          MOVE.W  (A1),D1        ;FETCH OFFSET
  007D82: E649           51          LSR.W   #3,D1          ;OFFSET TO INDEX
                         52 ;
  007D84: 4EB83A6C       53 C1       JSR     PASCSTR
  007D88: 4EB83A88       54 C2       JSR     LINFEED
  007D8C: 60BE           55          BRA     LC
                         56 ;

  007D8E: 04470080       58 HIBYT    SUBI.W  #$80,D7        ;ELIMINATE OFFSET
  007D92: 3207           59          MOVE.W  D7,D1          ;INDEX TO D1
  007D94: 3C7C7DF0       60          MOVE.W  #LCTB,A6       ;PTR TO ASC
  007D98: 3F07           61          MOVE.W  D7,-(A7)       ;SAVE D7
  007D9A: 4EB83A6C       62          JSR     PASCSTR
  007D9E: 11FC00071542   63          MOVE.B  #7,COLUMN
  007DA4: 3E1F           64          MOVE.W  (A7)+,D7       ;RESTORE D7
  007DA6: 67E0           65          BEQ     C2             ;LF IF "CHS"
                         66 ;
  007DA8: 0C07001A       67          CMPI.B  #$1A,D7        ;LOAD OR STORE ?
  007DAC: 649E           68          BCC     LC             ;IF SO
                         69 ;
  007DAE: 0C070009       70          CMPI.B  #$09,D7        ;MONADIC OP ?
  007DB2: 6598           71          BCS     LC             ;IF NOT MONADIC
  007DB4: 60D2           72          BRA     C2             ;LF
                         73 ;
  007DB6: 4E75           74 LCDONE   RTS                    ;LIST DONE
                         75 ;
                         76 ; TEST FOR A LEGAL MATHOP;  D7 = 0 IF ILLEGAL
                         77 ;
  007DB8: 4247           78 LEGLMATH CLR.W   D7             ;CLEAR LEGAL FLG
  007DBA: 0C020088       79          CMPI.B  #$88,D2        ;HIGHEST MATHOP
  007DBE: 6208           80          BHI     UHUH           ;NOT A MATHOP
                         81 ;
  007DC0: 0C020081       82          CMPI.B  #$81,D2        ;LOWEST MATHOP
  007DC4: 6502           83          BCS     UHUH           ;NOT A MATHOP
                         84 ;
  007DC6: 7E01           85          MOVEQ   #1,D7          ;MATHOP FOUND
  007DC8: 4A07           86 UHUH     TST.B   D7             ;SET FLAG
  007DCA: 4E75           87          RTS                    ;SEARCH DONE
                         88 ;
                         89 ; REVERSE NON-COMMUTATIVE MATHOPS
                         90 ;
  007DCC: 2F08           91 REVMATH  MOVE.L  A0,-(A7)       ;SAVE A0
  007DCE: 307C7DE2       92          MOVE.W  #MOPS,A0       ;PTR TO TABLE
  007DD2: 4A10           93 REVM1    TST.B   (A0)           ;END ?
  007DD4: 6708           94          BEQ     REVMX          ;IF SO
  007DD6: B418           95          CMP.B   (A0)+,D2       ;EQUAL ?
  007DD8: 66F8           96          BNE     REVM1          ;IF NOT
                         97 ;
  007DDA: 5C48           98          ADDQ.W  #6,A0          ;CORRECT THE PTR
  007DDC: 1410           99          MOVE.B  (A0),D2        ;REVERSE MATHOP
  007DDE: 205F          100 REVMX    MOVE.L  (A7)+,A0       ;RESTORE A0
  007DE0: 4E75          101          RTS                    ;REVERSAL DONE
                        102 ;
  007DE2: 82848586      103 MOPS     DC.L    $82848586
  007DE6: 8788          104          DC.W    $8788
  007DE8: 00868788      105          DC.L    $00868788
  007DEC: 82848500      106          DC.L    $82848500
                        107 ;

  007DF0: 03            109 LCTB     DC.B    3
  007DF1: C3C8D3        110          ASC     "CHS"
  007DF4: 07            111          DC.B    7
  007DF5: C1C4C4A0A0A0  112          ASC     "ADD    "
  007DFC: 07            113          DC.B    7
  007DFD: D3D5C2A0A0A0  114          ASC     "SUB    "
  007E04: 07            115          DC.B    7
  007E05: CDD5CCD4A0A0  116          ASC     "MULT   "
  007E0C: 07            117          DC.B    7
  007E0D: C4C9D6A0A0A0  118          ASC     "DIV    "
  007E14: 07            119          DC.B    7
  007E15: DEA0A0A0A0A0  120          ASC     "^      "
  007E1C: 07            121          DC.B    7
  007E1D: D2C5D6D3D5C2  122          ASC     "REVSUB "
  007E24: 07            123          DC.B    7
  007E25: D2C5D6C4C9D6  124          ASC     "REVDIV "
  007E2C: 07            125          DC.B    7
  007E2D: D2C5D6DEA0A0  126          ASC     "REV^   "
  007E34: 03            127          DC.B    3
  007E35: C1C2D3        128          ASC     "ABS"
  007E38: 03            129          DC.B    3
  007E39: C9CED4        130          ASC     "INT"
  007E3C: 04            131          DC.B    4
  007E3D: C6D2C1C3      132          ASC     "FRAC"
  007E41: 03            133          DC.B    3
  007E42: D3D1D2        134          ASC     "SQR"
  007E45: 03            135          DC.B    3
  007E46: CCCFC7        136          ASC     "LOG"
  007E49: 06            137          DC.B    6
  007E4A: CCCFC7D4C5CE  138          ASC     "LOGTEN"
  007E50: 06            139          DC.B    6
  007E51: CCCFC7D4D7CF  140          ASC     "LOGTWO"
  007E57: 03            141          DC.B    3
  007E58: C5D8D0        142          ASC     "EXP"
  007E5B: 06            143          DC.B    6
  007E5C: C5D8D0D4C5CE  144          ASC     "EXPTEN"
  007E62: 06            145          DC.B    6
  007E63: C5D8D0D4D7CF  146          ASC     "EXPTWO"
  007E69: 03            147          DC.B    3
  007E6A: D3C9CE        148          ASC     "SIN"
  007E6D: 03            149          DC.B    3
  007E6E: C3CFD3        150          ASC     "COS"
  007E71: 03            151          DC.B    3
  007E72: D4C1CE        152          ASC     "TAN"
  007E75: 06            153          DC.B    6
  007E76: C1D2C3D3C9CE  154          ASC     "ARCSIN"
  007E7C: 06            155          DC.B    6
  007E7D: C1D2C3C3CFD3  156          ASC     "ARCCOS"
  007E83: 06            157          DC.B    6
  007E84: C1D2C3D4C1CE  158          ASC     "ARCTAN"
  007E8A: 03            159          DC.B    3
  007E8B: D2CEC4        160          ASC     "RND"
  007E8E: 07            161          DC.B    7
  007E8F: CCCFC1C4A0A0  162          ASC     "LOAD   "
  007E96: 07            163          DC.B    7
  007E97: D3D4CFD2C5A0  164          ASC     "STORE  "
  007E9E: 00            165          DC.B    $00
                        166 ;

  007E9F: 05            168 TREGS    DC.B    5
  007EA0: D4D2C5C7B0    169          ASC     "TREG0"
  007EA5: 05            170          DC.B    5
  007EA6: D4D2C5C7B1    171          ASC     "TREG1"
  007EAB: 05            172          DC.B    5
  007EAC: D4D2C5C7B2    173          ASC     "TREG2"
  007EB1: 05            174          DC.B    5
  007EB2: D4D2C5C7B3    175          ASC     "TREG3"
  007EB7: 05            176          DC.B    5
  007EB8: D4D2C5C7B4    177          ASC     "TREG4"
  007EBD: 05            178          DC.B    5
  007EBE: D4D2C5C7B5    179          ASC     "TREG5"
  007EC3: 05            180          DC.B    5
  007EC4: D4D2C5C7B6    181          ASC     "TREG6"
  007EC9: 05            182          DC.B    5
  007ECA: D4D2C5C7B7    183          ASC     "TREG7"
  007ECF: 05            184          DC.B    5
  007ED0: D4D2C5C7B8    185          ASC     "TREG8"
  007ED5: 05            186          DC.B    5
  007ED6: D4D2C5C7B9    187          ASC     "TREG9"
  007EDB: 06            188          DC.B    6
  007EDC: D4D2C5C7B1B0  189          ASC     "TREG10"
  007EE2: 06            190          DC.B    6
  007EE3: D4D2C5C7B1B1  191          ASC     "TREG11"
  007EE9: 06            192          DC.B    6
  007EEA: D4D2C5C7B1B2  193          ASC     "TREG12"
  007EF0: 06            194          DC.B    6
  007EF1: D4D2C5C7B1B3  195          ASC     "TREG13"
  007EF7: 06            196          DC.B    6
  007EF8: D4D2C5C7B1B4  197          ASC     "TREG14"
  007EFE: 06            198          DC.B    6
  007EFF: D4D2C5C7B1B5  199          ASC     "TREG15"
  007F05: 06            200          DC.B    6
  007F06: D4D2C5C7B1B6  201          ASC     "TREG16"
  007F0C: 06            202          DC.B    6
  007F0D: D4D2C5C7B1B7  203          ASC     "TREG17"
  007F13: 06            204          DC.B    6
  007F14: D4D2C5C7B1B8  205          ASC     "TREG18"
  007F1A: 06            206          DC.B    6
  007F1B: D4D2C5C7B1B9  207          ASC     "TREG19"
  007F21: 06            208          DC.B    6
  007F22: D4D2C5C7B2B0  209          ASC     "TREG20"
  007F28: 06            210          DC.B    6
  007F29: D4D2C5C7B2B1  211          ASC     "TREG21"
  007F2F: 06            212          DC.B    6
  007F30: D4D2C5C7B2B2  213          ASC     "TREG22"
  007F36: 06            214          DC.B    6
  007F37: D4D2C5C7B2B3  215          ASC     "TREG23"
  007F3D: 00            216          DC.B    $00
                        217 ;
                        218          SYNC
  007F3E: 00            219 T1FLG    DC.B    0
  007F3F: 00            220 T0FLG    DC.B    0
  007F40: 00            221 M1OP     DC.B    0
  007F41: 00            222 M0OP     DC.B    0
                        223 ;

          SYMBOL TABLE (ALPHABETICAL)

ACTIVE    000020BC  ACTTBL   ?00003600  ACTTBL2  ?000036E0  ADDLIST   00005498  ADDLS
ADRCHA    00007518  ADRCHK    0000750E  BEGIN    ?000037C0  BELL      00003A34  BUFFE
BUFR1    ?0000151E  C0        00007D7A  C1        00007D84  C2        00007D88  CAA
CE01      00007892  CE02      00007898  CE03      0000789E  CE04      000078A4  CE05
CE06      000078B0  CE07      000078B6  CE08      000078BC  CE09      000078C2  CE10
CE11     ?000078CE  CE12     ?000078D4  CE13     ?000078DA  CE14     ?000078E0  CERR
CHKLIST   00004C0C  CHKLN     00004C10  CHKMATH   00007C4E  CHPWR     00007C1C  CHRMS
CHS1      00007BEA  CHS2      00007BF2  CLET      00007926  CLET1     0000793C  CLET1
CLET11    00007C76  CLET12    00007C7C  CLET2     0000794E  CLET3     0000795A  CLET4
CLET5     0000799C  CLET6     000079AE  CLET7     000079BE  CLET8     000079D8  CLET9
CLRCRT    00003A64  CLRCSR    00003A54  CLRKB     00003A5C  CMD0      00003A28  CMD1
CMD4      00003A38  CMD5      00003A3C  CMD6      00003A40  CMD7      00003A44  CMD8
CMD9      00003A4C  CNSIPRS   00007848  COLUMN    00001542  CONCHK    00004C44  CONCH
COND     ?0000151A  CONS01    0000768C  CONS02    00007690  CONS0X    00007692  CONSP
CONSPB    000074AE  CONSPC    000074D8  CONSPD    000074DC  CONSPRS   0000748E  CONST
COUNT    ?0000151A  CPFP1M    000020C4  CPFPOS    000020C8  CSE       00007A26  CTLCF
DELFN     00004C64  DYAD      00007CC6  ECHO      00003A60  EDTLN    ?0000154A  ELET
ELIMCHS   00007BD2  ELIMPAIR  00007B3A  ELIMPAR   000079FE  ELIMPR    00007B40  ELIMT
END       00003A08  EOA      ?000015EC  EOADT    ?000015D4  EOAN     ?000015CC  EOC
EOCN     ?000015B4  EOH      ?00001584  EOI      ?000015DC  EOIN      000015AC  EOLA
EOLBA    ?000015A4  EOLBN    ?0000159C  EOLN     ?0000158C  EOV      ?000015E4  EOVN
ERR33     0000759C  ERR34     000075A0  ERR34Q    00007592  ERR35     000075A4  ERR35
ERR6X     000076CC  ERR8      00004C78  ERROR     00006008  EXAMN     00004C24  EXPAN
FETCHR    0000752E  FETCHX    0000753C  FINIS0    000074F4  FINIS1    00007500  FINIS
FIX16     00003A98  FLAGS    ?00001544  FLEV0     00007ADA  FLEV0X    00007B08  FLEV1
FLEV1X    00007AD8  FLIN1     00003A1C  FORSTK   ?000014FE  FPADD     000020C0  FPT
FPU       0000191A  FTMPREGX  00007C0C  GETCHS    00007B98  GETFLD    00004C1C  GETFL
GETINDC   000076B8  GETINDD   000076CA  GETINDX   00003A70  GETKEY    00003A58  GETLB
GETLBL1   00004C50  GETLD     00007B48  GETST     00007B1A  GETST1    00007C24  GETTM
GETVAR    00004C00  GOTLOAD   00007BBA  HCMPL     00007C82  HCMPL1    00007C92  HCMPL
HEXCHK    00004C28  HEXGET    00004C54  HEXPRDCC  00007D30  HIBYT     00007D8E  HOMCS
HPTBL     000020D8  HTABC     00003A24  ICLET     000077B6  IGNOR1    00007818  IGNOR
INDEX    ?00001500  INPTXT    00004C70  INPUTS    00003A0C  INSADR   ?00001504  INSER
IPRINT1   00004C18  ISVC      00007CE6  JV1       000020C0  JV2       00003A00  JV3
JV4       00006000  JV5      ?00007300  KBTEST   ?00001518  KEY1     ?000037E8  KEYPA
L105      000079A8  L180      00007A04  L2000     00007A0C  L2140     00007A2A  L2150
L2160    ?00007A4E  L2190    ?00007A52  L2210    ?00007A5E  L2250    ?00007A64  L2300
L2330    ?00007A7A  L2350     00007A88  L2400    ?00007A8E  L3000     00007AA6  L3015
L3020     00007ACC  L3025     00007AD0  L3035     00007AF6  L3040     00007AFC  L3045
L4500     00007B0A  L4505     00007B10  L4510     00007B14  L4520     00007B46  L4550
L4600     00007C22  L4700     00007C72  LASSIGN   00003A7C  LBLTEMP   0000151A  LC
LCCODE    00007D46  LCDONE    00007DB6  LCTB      00007DF0  LCTR     ?0000FFFE  LEFTS
LEFTSIDE  00007D02  LEGLMATH  00007DB8  LETER2    000073F4  LETER3    000074F0  LETER
LETFP     0000734E  LETFPA    00007342  LETINT    00007766  LETINTA   00007344  LETST
LETSTRA   00007348  LETTBL    00007334  LINBUF   ?00001600  LINE     ?00001540  LINFE
LIST      00004C60  LISTER    000020B0  LISTKEY   00003A74  LLET0     00007656  LLET1
LLETA     000076A0  LLETX     000076B4  LPTR     ?0000FFFC  LSTTBL    00007670  M0OP
M1OP      00007F40  MADR     ?0000150C  MATHOK    00007B8C  MATHOPOK  00007C5E  MODE
MONAD     00007CB8  MONAD1    00007CBE  MOPS      00007DE2  MUMP1    ?000078EE  MUMP2
MUMP3    ?0000790E  MUMP4    ?0000791E  MURK1     000078E6  MURK2    ?000078F6  MURK3
MURK4    ?00007916  NLINES   ?0000154C  NLS       00007CA6  NOPE      00007C4A  NOTCH
NUMEVAL   000020D4  NUMWDS   ?00001516  OPIPRS    0000781E  OPPARS    00007438  OUTCH
PACK      00004C2C  PARM1    ?00001534  PARM2    ?00001536  PASCSTR   00003A6C  PMTPO
PRECH1    00007570  PRECH2    0000757E  PRECHK    00007558  PRECHX    00007588  PREPR
PRHEX2    00003A84  PRHEX4    00003A80  PRINTCR   00003A10  PRINTER   000020B4  PRINT
PRINTSV   00003A18  PRNTFP    000020CC  PRNTSTR   00003A78  PRNTVAR   00003A68  PRSTR
RANGCHK  ?00004C7C  READKB    00003A30  REMSPCE   00004C34  REVM1     00007DD2  REVMA
REVMX     00007DDE  REWIND    00004C5C  RUN       00004C6C  S1        00001902  SCRED
SELFN     00004C68  SERVARN   000073AC  SETCSR    00003A50  SETUP     00007D22  SFLAG
SHPR1     00003A94  SHPRINT   00003A90  SNDCHR   ?00003A9C  SNGLA     00004C74  SOA
SOADT     000015D0  SOAN      000015C8  SOC       000015B8  SOCN      000015B0  SOH
SOI       000015D8  SOIN      000015A8  SOLA      00001590  SOLBA     000015A0  SOLBN
SOLN      00001588  SOV       000015E0  SOVN      000015C0  SRCH1     00004C14  SRVIV
SRVTOKN   000073BE  SSFFLGS  ?00001546  STMTCNT  ?0000154E  STORLV    00007A9E  STORM
STORMVX   00007A80  STORV    ?00007AA2  SYSOUT   ?000020B8  T0FLG     00007F3F  T1FLG
TBLA     ?00002080  TBUFE    ?0000151C  TEMP      00001538  TEMPB     00001700  TKNIL
TKNILFX   000077A2  TKNILST   00007873  TKNILT    00007776  TKNIRT    000077EA  TKNIR
TKNITBL   00007866  TLINE    ?0000151D  TOKNCNA   000075B4  TOKNCNS   000075B0  TOKNL
TOKNLC    0000739A  TOKNLD    000073A2  TOKNLF    00007364  TOKNLST   000075CA  TOKNL
TOKNOP    00007544  TOKNOP2   0000753E  TOKNOP3   0000784A  TOKNRT    000073C8  TOKNT
TOKNVAR   000075AA  TONKV1    000075C4  TONKV2    000075C6  TREGS     00007E9F  TXTLE
TYPCH0    00007702  TYPCHA   ?00007722  TYPCHB    00007728  TYPCHC    0000772C  TYPCH
TYPCHK    000076F0  TYPCHX    00007760  TYPCHY    0000772E  TYPCHY0   00007732  TYPCH
TYPERR    0000735A  TYPERX    0000775A  UHUH      00007DC8  VAR       00007CF4  VAR1
VARCHK    00004C3C  VARCHK1   00004C40  VARN01    00007678  VARN02    0000767C  VARN0
VARNA2    00007428  VARNA3    00007442  VARNA4    00007458  VARNA5   ?00007460  VARNP
VC        00007D64  VCHK      000077BE  VCHX      000077E8  VECT14   ?00001094  VOIDL
VRNIHK   ?000077BC  VRNIHK1   000077B8  VRNIPRS   00007828  VTABC     00003A20  WRKAD
WRKBUF    00001800

          SYMBOL TABLE (NUMERICAL)

VECT14   ?00001094  FORSTK   ?000014FE  INDEX    ?00001500  INSADR   ?00001504  SFLAG
MADR     ?0000150C  PMTPOS   ?00001510  WRKADR    00001514  NUMWDS   ?00001516  KBTES
COUNT    ?0000151A  LBLTEMP   0000151A  COND     ?0000151A  TBUFE    ?0000151C  TLINE
BUFR1    ?0000151E  CTLCFLG  ?00001530  TXTLEN   ?00001532  PARM1    ?00001534  PARM2
TEMP      00001538  LINE     ?00001540  COLUMN    00001542  FLAGS    ?00001544  SSFFL
EDTLN    ?0000154A  NLINES   ?0000154C  STMTCNT  ?0000154E  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  SOADT     000015D0  EOADT
SOI       000015D8  EOI      ?000015DC  SOV       000015E0  EOV      ?000015E4  SOA
EOA      ?000015EC  BUFFER    00001600  LINBUF   ?00001600  TEMPB     00001700  WRKBU
MODE     ?00001900  S1        00001902  FPT      ?00001912  FPU       0000191A  CHRMS
TBLA     ?00002080  LISTER    000020B0  PRINTER   000020B4  SYSOUT   ?000020B8  ACTIV
FPADD     000020C0  JV1       000020C0  CPFP1M    000020C4  CPFPOS    000020C8  PRNTF
PRSTRM    000020D0  NUMEVAL   000020D4  HPTBL     000020D8  ACTTBL   ?00003600  ACTTB
BEGIN    ?000037C0  KEY1     ?000037E8  JV2       00003A00  END       00003A08  INPUT
PRINTCR   00003A10  PRINTS    00003A14  PRINTSV   00003A18  FLIN1     00003A1C  VTABC
HTABC     00003A24  CMD0      00003A28  CMD1      00003A2C  READKB    00003A30  BELL
CMD4      00003A38  CMD5      00003A3C  CMD6      00003A40  CMD7      00003A44  CMD8
CMD9      00003A4C  SETCSR    00003A50  CLRCSR    00003A54  GETKEY    00003A58  CLRKB
ECHO      00003A60  CLRCRT    00003A64  PRNTVAR   00003A68  PASCSTR   00003A6C  GETIN
LISTKEY   00003A74  PRNTSTR   00003A78  LASSIGN   00003A7C  PRHEX4    00003A80  PRHEX
LINFEED   00003A88  OUTCHR    00003A8C  SHPRINT   00003A90  SHPR1     00003A94  FIX16
SNDCHR   ?00003A9C  JV3       00004C00  GETVAR    00004C00  SCREDIT   00004C04  HOMCS
CHKLIST   00004C0C  CHKLN     00004C10  SRCH1     00004C14  IPRINT1   00004C18  GETFL
GETFLDA   00004C20  EXAMN     00004C24  HEXCHK    00004C28  PACK      00004C2C  PREPR
REMSPCE   00004C34  ADDLST    00004C38  VARCHK    00004C3C  VARCHK1   00004C40  CONCH
CONCHK1   00004C48  GETLBL    00004C4C  GETLBL1   00004C50  HEXGET    00004C54  VOIDL
REWIND    00004C5C  LIST      00004C60  DELFN     00004C64  SELFN     00004C68  RUN
INPTXT    00004C70  SNGLA     00004C74  ERR8      00004C78  RANGCHK  ?00004C7C  EXPAN
ADDLIST   00005498  JV4       00006000  ERROR     00006008  JV5      ?00007300  ELET
LETTBL    00007334  LETFPA    00007342  LETINTA   00007344  LETSTR    00007346  LETST
LETFP     0000734E  TYPERR    0000735A  TOKNLT    00007360  TOKNLF    00007364  TOKNL
LETERR    00007394  TOKNLC    0000739A  TOKNLD    000073A2  SERVARN   000073AC  SRVTO
TOKNRT    000073C8  LETER2    000073F4  IGNORE    000073F8  VARNPRS   000073FE  VARNA
OPPARS    00007438  VARNA3    00007442  VARNA4    00007458  VARNA5   ?00007460  KEYPA
CONSPRS   0000748E  CONSPA    00007498  CONSPB    000074AE  CONSPC    000074D8  CONSP
LETER3    000074F0  FINIS0    000074F4  FINIS1    00007500  FINIS2    00007502  ADRCH
ADRCHA    00007518  FETCHR    0000752E  FETCHX    0000753C  TOKNOP2   0000753E  TOKNO
PRECHK    00007558  PRECH1    00007570  PRECH2    0000757E  PRECHX    00007588  ERR34
ERR33     0000759C  ERR34     000075A0  ERR35     000075A4  ERR35A    000075A6  TOKNV
TOKNCNS   000075B0  TOKNCNA   000075B4  TONKV1    000075C4  TONKV2    000075C6  TOKNL
LLET1     0000764E  LLET0     00007656  LSTTBL    00007670  VARN01    00007678  VARN0
VARN0X    0000767E  CONS01    0000768C  CONS02    00007690  CONS0X    00007692  LLETA
LLETX     000076B4  GETINDC   000076B8  GETINDD   000076CA  ERR6X     000076CC  TOKNT
TYPCHK    000076F0  TYPCH0    00007702  TYPCHA   ?00007722  TYPCHB    00007728  TYPCH
TYPCHY    0000772E  TYPCHY0   00007732  TYPERX    0000775A  TYPCHD    0000775E  TYPCH
TYPCHZ    00007762  LETINT    00007766  TKNILT    00007776  TKNILF0   0000777A  TKNIL
SRVIVRN   000077AC  ICLET     000077B6  VRNIHK1   000077B8  VRNIHK   ?000077BC  VCHK
VCHX      000077E8  TKNIRT    000077EA  IGNOR1    00007818  OPIPRS    0000781E  TKNIR
VRNIPRS   00007828  CNSIPRS   00007848  TOKNOP3   0000784A  TKNITBL   00007866  TKNIL
CE01      00007892  CE02      00007898  CE03      0000789E  CE04      000078A4  CE05
CE06      000078B0  CE07      000078B6  CE08      000078BC  CE09      000078C2  CE10
CE11     ?000078CE  CE12     ?000078D4  CE13     ?000078DA  CE14     ?000078E0  MURK1
MUMP1    ?000078EE  MURK2    ?000078F6  MUMP2    ?000078FE  MURK3    ?00007906  MUMP3
MURK4    ?00007916  MUMP4    ?0000791E  CLET      00007926  CLET1     0000793C  CLET2
CLET3     0000795A  CLET4     00007960  CAA       00007996  CLET5     0000799C  L105
CLET6     000079AE  CLET7     000079BE  CERR      000079D4  CLET8     000079D8  CLET9
ELIMPAR   000079FE  L180      00007A04  L2000     00007A0C  CSE       00007A26  L2140
L2150     00007A3A  L2160    ?00007A4E  L2190    ?00007A52  L2210    ?00007A5E  L2250
L2300     00007A76  L2330    ?00007A7A  STORMVX   00007A80  L2350     00007A88  L2400
STORLV    00007A9E  STORMV    00007AA0  STORV    ?00007AA2  L3000     00007AA6  FLEV1
L3015     00007AC6  L3020     00007ACC  L3025     00007AD0  FLEV1X    00007AD8  FLEV0
L3035     00007AF6  L3040     00007AFC  L3045     00007B00  FLEV0X    00007B08  L4500
CLET10    00007B0E  L4505     00007B10  L4510     00007B14  GETST     00007B1A  ELIMP
ELIMPR    00007B40  L4520     00007B46  GETLD     00007B48  GETTMPRG  00007B72  MATHO
L4550     00007B92  GETCHS    00007B98  GOTLOAD   00007BBA  ELIMCHS   00007BD2  CHS1
CHS2      00007BF2  INSERCHS  00007C00  FTMPREGX  00007C0C  CHPWR     00007C1C  L4600
GETST1    00007C24  NOPE      00007C4A  CHKMATH   00007C4E  MATHOPOK  00007C5E  ELIMT
L4700     00007C72  CLET11    00007C76  CLET12    00007C7C  HCMPL     00007C82  HCMPL
HCMPL2   ?00007C9C  NLS       00007CA6  NOTCHS    00007CAE  MONAD     00007CB8  MONAD
DYAD      00007CC6  ISVC      00007CE6  VAR       00007CF4  VAR1      00007CFE  LEFTS
LEFTSID1  00007D06  SETUP     00007D22  HEXPRDCC  00007D30  LCCODE    00007D46  LC
VC        00007D64  CONST     00007D76  C0        00007D7A  C1        00007D84  C2
HIBYT     00007D8E  LCDONE    00007DB6  LEGLMATH  00007DB8  UHUH      00007DC8  REVMA
REVM1     00007DD2  REVMX     00007DDE  MOPS      00007DE2  LCTB      00007DF0  TREGS
T1FLG     00007F3E  T0FLG     00007F3F  M1OP      00007F40  M0OP      00007F41  LPTR
LCTR     ?0000FFFE



* LET.O                                START  $00007300
*                                      LENGTH $00000C42

007300  4E F8 73 10 4E F8 76 4E 4E F8 73 10 4E F8 78 E6
007310  42 93 31 CB 15 14 58 8B 2C 48 4E B8 4C 34 20 4E
007320  4E B8 75 58 4E B8 76 F0 45 F8 73 34 E3 4C 34 72
007330  40 00 4E D2 73 5A 73 4E 73 42 77 66 73 44 73 46
007340  73 48 4E 71 4E 71 4E 71 7E 01 4E F8 60 08 4E B8
007350  73 60 4E B8 73 C8 4E F8 79 26 7E 03 4E F8 60 08
007360  20 78 15 38 42 45 42 46 4E B8 75 2E 67 26 08 07
007370  00 05 67 20 52 05 4E B8 75 2E 67 18 08 07 00 05
007380  66 F2 08 07 00 04 66 EC 0C 06 00 AC 67 0C 0C 06
007390  00 BD 67 0E 7E 03 4E F8 60 08 61 10 4E B8 73 BE
0073A0  60 C2 61 08 61 18 4A 10 67 4A 4E 75 2C 78 15 38
0073B0  2F 08 4E B8 4C 40 20 5F 4E B8 75 AA 4E 75 4E B8
0073C0  75 3E 21 C8 15 38 4E 75 42 45 42 46 4E B8 75 2E
0073D0  67 00 01 3C 0C 06 00 AB 67 1E 0C 06 00 AD 67 58
0073E0  0C 06 00 A8 67 52 08 07 00 05 66 12 08 07 00 03
0073F0  66 00 00 9C 4E F8 73 94 21 C8 15 38 60 CA 52 45
007400  4E B8 75 2E 67 00 00 EE 08 07 00 05 66 F0 08 07
007410  00 04 66 EA 08 07 00 02 66 0E 0C 06 00 A8 67 58
007420  0C 06 00 A9 67 1C 60 CC 2C 78 15 38 2F 08 4E B8
007430  4C 40 4E B8 75 AA 20 5F 21 C8 15 38 4E B8 75 3E
007440  60 86 2C 78 15 38 2F 08 4E B8 4C 40 4E B8 75 AA
007450  20 5F 7A 01 21 C8 15 38 4D E8 FF FF 4E B8 75 44
007460  4E B8 75 2E 67 00 00 9A 0C 06 00 A9 67 EA 08 07
007470  00 02 66 C4 4E F8 73 94 2C 78 15 38 52 45 4E B8
007480  75 44 4A 10 67 6A 21 C8 15 38 60 00 FF 3C 4B F8
007490  17 00 7A 01 1A E8 FF FF 42 15 49 F8 17 00 4E B8
0074A0  20 D4 4A 07 66 08 1A D8 67 58 52 45 60 EA 42 2D
0074B0  FF FF 53 45 49 F8 17 00 4E B8 20 D4 4A 07 66 30
0074C0  4D F8 17 00 2F 08 4E B8 4C 48 4E B8 75 B0 20 5F
0074D0  53 48 4A 10 67 2C 60 04 4E B8 75 3E 4E B8 75 2E
0074E0  67 2C 0C 06 00 A9 67 F0 08 07 00 02 66 00 FF 4A
0074F0  4E F8 73 94 2C 78 15 38 4E B8 4C 40 4E B8 75 AA
007500  60 0C 2C 78 15 38 4E B8 4C 48 4E B8 75 B0 42 1B
007510  3E 0B E2 4F 64 02 42 1B 3C 0B 2F 08 30 78 15 14
007520  9C 48 55 46 30 C6 55 46 30 86 20 5F 4E 75 49 F8
007530  1F 80 42 46 1C 18 67 04 1E 34 60 00 4E 75 4D E8
007540  FF FF 7A 01 45 F8 75 CA 4E B8 4C 0C 67 A2 45 F8
007550  76 D2 16 F2 30 00 4E 75 21 C8 15 38 7C BD 4E B8
007560  4C 20 4A 07 67 2C 4A 05 67 32 48 A7 03 80 42 46
007570  1E 18 67 14 0C 07 00 A8 66 04 52 46 60 F2 0C 07
007580  00 A9 66 EC 53 46 60 E8 4A 46 66 18 4C 9F 01 C0
007590  4E 75 4A 38 19 21 67 08 7E 06 60 0A 7E 21 60 06
0075A0  7E 22 60 02 7E 23 4E F8 60 08 16 BC 00 01 60 04
0075B0  16 BC 00 03 0C 43 00 FF 65 0A 52 1B E0 5B 16 C3
0075C0  E0 4B 60 02 52 4B 16 C3 4E 75 03 C3 C8 D3 01 AB
0075D0  01 AD 01 AA 01 AF 01 DE 01 01 01 A9 01 A8 04 C1
0075E0  C2 D3 A8 04 C9 CE D4 A8 05 C6 D2 C1 C3 A8 04 D3
0075F0  D1 D2 A8 04 CC CF C7 A8 07 CC CF C7 D4 C5 CE A8
007600  07 CC CF C7 D4 D7 CF A8 04 C5 D8 D0 A8 07 C5 D8
007610  D0 D4 C5 CE A8 07 C5 D8 D0 D4 D7 CF A8 04 D3 C9
007620  CE A8 04 C3 CF D3 A8 04 D4 C1 CE A8 07 C1 D2 C3
007630  D3 C9 CE A8 07 C1 D2 C3 C3 CF D3 A8 07 C1 D2 C3
007640  D4 C1 CE A8 04 D2 CE C4 A8 01 BD 01 AC 00 54 8B
007650  3C 5B DD CB 2F 0E 42 41 42 42 42 43 16 1B 67 54
007660  6B 3E E3 4B 2A 7C 00 00 76 70 3A 75 30 FE 4E D5
007670  76 78 76 7C 76 8C 76 90 16 1B 60 02 36 1B 2C 78
007680  15 C0 4E B8 76 B8 4E B8 3A 78 60 CA 16 1B 60 02
007690  36 1B 2C 78 15 B0 4E B8 76 B8 4E B8 3A 78 60 B6
0076A0  02 03 00 7F 2C 7C 00 00 75 CA 4E B8 76 B8 4E B8
0076B0  3A 78 60 A2 26 5F 4E 75 B2 03 67 0E 14 16 67 00
0076C0  00 0C 4D F6 20 01 52 41 60 EE 4E 75 7E 06 4E F8
0076D0  60 08 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D
0076E0  8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 00 00
0076F0  30 4E 42 44 42 45 4E B8 75 2E 67 64 08 07 00 05
007700  67 58 52 45 4E B8 75 2E 67 56 08 07 00 05 66 F2
007710  08 07 00 04 66 EC 0C 06 00 A5 67 0C 0C 06 00 A4
007720  67 0A 78 01 53 88 60 0A 78 03 60 02 78 05 4A 10
007730  67 2E 0C 10 00 DB 67 26 0C 10 00 BD 67 22 0C 10
007740  00 AC 67 1C 0C 10 00 A0 67 16 4E B8 75 2E 0C 06
007750  00 A9 67 0E 08 07 00 02 66 08 42 44 60 02 52 44
007760  4E 75 53 88 4E 75 47 F8 B0 00 4E B8 77 76 4E B8
007770  77 EA 4E F8 77 B6 20 78 15 38 4E B8 76 F0 0C 04
007780  00 03 66 00 FB D6 4E B8 77 AC 0C 10 00 BD 67 12
007790  0C 10 00 AC 66 00 FB C4 16 FC 00 99 52 88 2C 48
0077A0  60 D8 16 FC 00 98 52 88 2C 48 4E 75 4E B8 77 B8
0077B0  4E B8 75 AA 4E 75 4E 75 7C 01 60 02 42 46 24 78
0077C0  15 A8 4E B8 4C 0C 66 20 4E B8 51 AC 4E B8 54 98
0077D0  21 CA 15 AC 24 78 15 D8 7A 01 4E B8 51 AC E3 4D
0077E0  48 72 50 00 21 DF 15 D8 4E 75 42 45 42 46 4E B8
0077F0  75 2E 67 32 0C 06 00 AB 67 1E 0C 06 00 AD 67 1E
007800  0C 06 00 A8 67 18 08 07 00 05 66 1C 08 07 00 03
007810  66 00 00 36 4E F8 73 94 21 C8 15 38 60 CC 4E B8
007820  78 4A 2C 48 60 C4 4E 75 4E B8 76 F0 0C 04 00 03
007830  66 00 FB 28 4E B8 77 B8 4E B8 75 AA 4A 10 67 E6
007840  4E B8 78 4A 2C 48 60 A2 4E 75 4D E8 FF FF 7A 01
007850  45 F8 78 73 4E B8 4C 0C 67 00 FC 96 45 F8 78 66
007860  16 F2 30 00 4E 75 80 81 82 83 84 85 86 87 88 89
007870  8A 8B 00 03 C3 C8 D3 01 AB 01 AD 01 AA 01 AF 01
007880  DE 01 01 01 A9 01 A8 04 C1 C2 D3 A8 01 BD 01 AC
007890  00 00 48 45 7A 01 4E 4D 48 45 7A 02 4E 4D 48 45
0078A0  7A 03 4E 4D 48 45 7A 04 4E 4D 48 45 7A 05 4E 4D
0078B0  48 45 7A 06 4E 4D 48 45 7A 07 4E 4D 48 45 7A 08
0078C0  4E 4D 48 45 7A 09 4E 4D 48 45 7A 10 4E 4D 48 45
0078D0  7A 11 4E 4D 48 45 7A 12 4E 4D 48 45 7A 13 4E 4D
0078E0  48 45 7A 14 4E 4D 31 FC 79 62 79 60 4E 75 31 FC
0078F0  79 96 79 60 4E 75 31 FC 4E 71 7C 76 4E 75 31 FC
007900  60 04 7C 76 4E 75 31 FC 4E 71 7C 7C 4E 75 31 FC
007910  60 04 7C 7C 4E 75 31 FC 7C 76 7B 0E 4E 75 31 FC
007920  7B 10 7B 0E 4E 75 3F 0B 49 F8 17 00 4B F8 16 00
007930  4D F8 16 50 30 78 15 14 58 48 42 40 1E 18 6B 1A
007940  67 18 42 46 53 07 E2 0F 64 04 1C 18 E1 4E 1C 18
007950  1A C7 E7 4E 3C C6 52 00 1E 00 18 C7 66 DE 4E F8
007960  79 96 4E B8 7D 22 72 06 20 3C 00 00 18 08 4E B8
007970  3A 94 72 03 20 3C 00 00 17 00 4E B8 3A 94 72 02
007980  20 3C 00 00 16 00 4E B8 3A 94 72 03 20 3C 00 00
007990  16 50 4E B8 3A 94 41 F8 17 00 7C 9A 1E 18 BE 06
0079A0  66 FA 30 08 3A 4C 7A 7D 30 40 7C 87 74 FF 52 42
0079B0  1E 18 67 50 BE 06 66 F6 32 48 42 41 7C 88 52 41
0079C0  1E 20 BC 07 62 F8 0C 07 00 9A 64 00 FD 00 55 41
0079D0  66 06 7E 24 4E F8 60 08 34 01 3F 07 3F 08 52 48
0079E0  61 2A 30 5F 3E 1F 0C 07 00 88 67 02 1A C7 1A FC
0079F0  00 9B 1A C5 10 C5 53 05 52 41 32 48 D0 C1 12 D8
007A00  66 FC 60 A4 30 40 61 04 4E F8 7B 0A 42 78 7F 3E
007A10  42 44 1E 18 6A 14 0C 07 00 82 66 0A 78 01 53 42
007A20  67 04 1E 18 6A 04 7E 03 60 AA 1A FC 00 9A 1A C7
007A30  4A 04 67 06 1A FC 00 80 42 44 53 42 67 68 1E 18
007A40  53 42 67 E2 1C 18 6B DE 0C 07 00 85 67 52 4E B8
007A50  7A AA 0C 07 00 83 65 1E 0C 42 00 01 63 22 0C 10
007A60  00 85 66 3C 1A FC 00 9B 1A FC 00 7E 52 38 7F 3E
007A70  11 C7 7F 40 60 28 4E B8 7A DA 0C 42 00 01 62 08
007A80  1A C7 1A C6 4E F8 7A A6 0C 10 00 82 65 12 1A FC
007A90  00 9B 1A FC 00 7F 52 38 7F 3F 11 C7 7F 41 7E 9A
007AA0  1A C7 1A C6 60 94 61 02 60 30 4A 38 7F 3E 67 28
007AB0  0C 38 00 87 7F 40 67 0E 0C 38 00 84 7F 40 67 0C
007AC0  1A FC 00 83 60 0A 1A FC 00 84 60 04 1A FC 00 87
007AD0  1A FC 00 7E 42 38 7F 3E 4E 75 4A 38 7F 3F 67 28
007AE0  0C 38 00 86 7F 41 67 0E 0C 38 00 82 7F 41 67 0C
007AF0  1A FC 00 81 60 0A 1A FC 00 82 60 04 1A FC 00 86
007B00  1A FC 00 7F 42 38 7F 3F 4E 75 42 15 4E F8 7B 10
007B10  48 E7 FF F0 30 4C 7A 9A 7C 9B 4A 10 67 28 BC 18
007B20  66 F8 16 18 67 00 FD 6C 4A 10 67 1A BA 10 66 EA
007B30  52 48 B6 18 66 E4 61 02 60 DA 32 48 59 49 34 49
007B40  12 D8 66 FC 4E 75 30 4C 4A 10 67 46 BA 18 66 F8
007B50  16 18 67 00 FD 44 4A 10 67 38 BC 10 66 EA 52 48
007B60  12 18 6B 00 FD 3A 0C 01 00 68 65 00 FD 38 61 CA
007B70  30 4A 4A 10 67 00 FD 34 B2 18 66 F6 55 48 14 10
007B80  B4 05 67 08 4E B8 7D B8 67 00 FD 38 10 C2 10 C3
007B90  60 82 30 4C 54 48 78 80 4A 10 67 00 00 86 B8 18
007BA0  66 F6 4A 10 67 00 00 7C BC 18 66 EC 12 18 32 48
007BB0  5B 48 BA 18 67 04 56 48 60 DE 16 10 53 48 34 48
007BC0  30 49 61 48 0C 02 00 85 67 52 0C 02 00 88 67 4C
007BD0  30 4A 14 D9 66 FC 61 34 4E B8 7D B8 67 00 FC D8
007BE0  0C 02 00 81 66 04 74 82 60 08 0C 02 00 86 66 02
007BF0  74 81 10 C2 10 C3 0C 02 00 82 67 00 FF 18 74 80
007C00  16 10 10 C2 67 00 FF 0E 14 03 60 F4 4A 10 67 00
007C10  FC A0 B2 18 66 F6 55 48 14 10 4E 75 30 49 60 00
007C20  FF 78 30 4C 4A 10 67 4A BC 18 66 F8 16 18 67 00
007C30  FC 8C 4A 10 67 3C BA 10 66 EA 52 48 4A 18 67 00
007C40  FC 82 14 18 67 2C B6 18 67 04 55 48 60 D6 4E B8
007C50  7D B8 67 F6 0C 03 00 7E 64 04 4E B8 7D CC 32 48
007C60  57 49 16 11 57 49 12 C2 12 C3 12 D8 66 FC 60 00
007C70  FE A4 4C DF 0F FF 60 04 4E B8 7D 30 60 04 4E B8
007C80  7D 46 36 5F 30 78 15 14 54 48 76 14 78 80 7A 9A
007C90  7C 88 32 7C 20 D8 42 47 1E 1C 67 66 BE 05 65 06
007CA0  04 07 00 91 60 20 BE 04 66 04 42 47 60 10 BE 06
007CB0  62 06 04 07 00 80 60 0E 04 07 00 6A DE 47 D2 C7
007CC0  36 D1 54 50 60 CC DE 47 D2 C7 1E 1C 0C 07 00 68
007CD0  65 14 D2 FC 00 28 36 D1 72 7F 92 07 E7 49 06 41
007CE0  11 00 36 C1 60 18 53 07 34 7C 16 00 D4 C7 4A 12
007CF0  67 02 D2 C3 36 D1 06 47 00 50 D4 C7 36 D2 58 50
007D00  60 90 38 7C 17 00 42 47 1E 1C DE 47 34 7C 16 4E
007D10  D4 C7 36 F8 20 EC 36 D2 58 50 0C 1C 00 9B 67 E6
007D20  4E 75 4E B8 3A 54 21 F8 20 B4 20 BC 4E F8 3A 88
007D30  61 F0 72 03 20 3C 00 00 17 00 4E B8 3A 94 72 03
007D40  20 0C 4E F8 3A 94 61 DA 42 47 30 4C 1E 18 67 66
007D50  6B 3C 0C 07 00 68 65 0C 7C 7F 9C 07 32 06 3C 7C
007D60  7E 9F 60 20 53 07 32 7C 16 00 D2 C7 4A 11 66 06
007D70  2C 78 15 C0 60 04 2C 78 15 B0 06 47 00 50 D2 C7
007D80  32 11 E6 49 4E B8 3A 6C 4E B8 3A 88 60 BE 04 47
007D90  00 80 32 07 3C 7C 7D F0 3F 07 4E B8 3A 6C 11 FC
007DA0  00 07 15 42 3E 1F 67 E0 0C 07 00 1A 64 9E 0C 07
007DB0  00 09 65 98 60 D2 4E 75 42 47 0C 02 00 88 62 08
007DC0  0C 02 00 81 65 02 7E 01 4A 07 4E 75 2F 08 30 7C
007DD0  7D E2 4A 10 67 08 B4 18 66 F8 5C 48 14 10 20 5F
007DE0  4E 75 82 84 85 86 87 88 00 86 87 88 82 84 85 00
007DF0  03 C3 C8 D3 07 C1 C4 C4 A0 A0 A0 A0 07 D3 D5 C2
007E00  A0 A0 A0 A0 07 CD D5 CC D4 A0 A0 A0 07 C4 C9 D6
007E10  A0 A0 A0 A0 07 DE A0 A0 A0 A0 A0 A0 07 D2 C5 D6
007E20  D3 D5 C2 A0 07 D2 C5 D6 C4 C9 D6 A0 07 D2 C5 D6
007E30  DE A0 A0 A0 03 C1 C2 D3 03 C9 CE D4 04 C6 D2 C1
007E40  C3 03 D3 D1 D2 03 CC CF C7 06 CC CF C7 D4 C5 CE
007E50  06 CC CF C7 D4 D7 CF 03 C5 D8 D0 06 C5 D8 D0 D4
007E60  C5 CE 06 C5 D8 D0 D4 D7 CF 03 D3 C9 CE 03 C3 CF
007E70  D3 03 D4 C1 CE 06 C1 D2 C3 D3 C9 CE 06 C1 D2 C3
007E80  C3 CF D3 06 C1 D2 C3 D4 C1 CE 03 D2 CE C4 07 CC
007E90  CF C1 C4 A0 A0 A0 07 D3 D4 CF D2 C5 A0 A0 00 05
007EA0  D4 D2 C5 C7 B0 05 D4 D2 C5 C7 B1 05 D4 D2 C5 C7
007EB0  B2 05 D4 D2 C5 C7 B3 05 D4 D2 C5 C7 B4 05 D4 D2
007EC0  C5 C7 B5 05 D4 D2 C5 C7 B6 05 D4 D2 C5 C7 B7 05
007ED0  D4 D2 C5 C7 B8 05 D4 D2 C5 C7 B9 06 D4 D2 C5 C7
007EE0  B1 B0 06 D4 D2 C5 C7 B1 B1 06 D4 D2 C5 C7 B1 B2
007EF0  06 D4 D2 C5 C7 B1 B3 06 D4 D2 C5 C7 B1 B4 06 D4
007F00  D2 C5 C7 B1 B5 06 D4 D2 C5 C7 B1 B6 06 D4 D2 C5
007F10  C7 B1 B7 06 D4 D2 C5 C7 B1 B8 06 D4 D2 C5 C7 B1
007F20  B9 06 D4 D2 C5 C7 B2 B0 06 D4 D2 C5 C7 B2 B1 06
007F30  D4 D2 C5 C7 B2 B2 06 D4 D2 C5 C7 B2 B3 00 00 00
007F40  00 00
