home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-07-06 | 12.3 KB | 858 lines | [04] ASCII Text (0x0000) |
- * The saga continues...
- * Part IV
-
- * Originally at $1AA0
-
- REL
- DAT
-
- DSK MAF.4
-
- DATASTK = $0300
- H7FFF = $7FFF
- H96A2 = $96A2
-
- WORD EXT
- LINK3 EXT ; previous link
- LIT EXT ; = $093A
- CLIT EXT ; = $0978
- BRANCH EXT ; = $09D9
- ZBRANCH EXT ; = $09F3
- PRNLOOP EXT ; = $0A16
- PRNPLOOP EXT ; = $0A46
- PRNDO EXT ; = $0A7F
- I EXT ; = $0A9C
- DIGIT EXT ; = $0AD1
- EMBRACE EXT ; = $0B06
- CMOVE EXT ; = $0C62
- USTAR EXT ; = $0CC7
- AND EXT ; = $0D59
- OR EXT ; = $0D72
- SEMIS EXT ; = $0DD9
- LEAVE EXT ; = $0E04
- TOR EXT ; = $0E1F
- RFROM EXT ; = $0E31
- RFETCH EXT ; = $0E45
- ZEQUALS EXT ; = $0EC0
- EQUALS EXT ; = $0F27
- LESSTHAN EXT ; = $0F5A
- GREATER EXT ; = $0F9F
- PLUS EXT ; = $0FE0
- MINUS EXT ; = $0FFC
- DPLUS EXT ; = $1049
- DNEGATE EXT ; = $107D
- DROP EXT ; = $10AC
- OVER EXT ; = $10F3
- DUP EXT ; = $1105
- QDUP EXT ; = $1118
- TWODUP EXT ; = $112F
- SWAP EXT ; = $1170
- ROT EXT ; = $11CE
- ONEPLUS EXT ; = $1226
- TWOPLUS EXT ; = $1241
- ONEMINUS EXT ; = $1251
- TWOMINUS EXT ; = $126C
- PLUSTORE EXT ; = $12C8
- STOREZER EXT ; = $130F
- COMMA EXT ; = $133B
- CCOMMA EXT ; = $135D
- FETCH EXT ; = $138B
- CFETCH EXT ; = $13B0
- STORE EXT ; = $13CD
- CSTORE EXT ; = $13F0
- DOCREATE EXT ; = $1595
- DOCOL EXT ; = $15BD
- NEGONE EXT ; = $165C
- ZERO EXT ; = $1664
- ONE EXT ; = $166C
- BL EXT ; = $1685
- LIMIT EXT ; = $16B6
- FIRST EXT ; = $16C2
- HBT EXT ; = $16D8
- BS EXT ; = $16F5
- TIB EXT ; = $1718
- BASE EXT ; = $17CD
- OFFSET EXT ; = $180E
- STREAM EXT ; = $181A
- BLK EXT ; = $1823
- TOIN EXT ; = $182C
- STATE EXT ; = $1840
- DPL EXT ; = $1849
- EMIT EXT ; = $185C
- TYPE EXT ; = $1866
- FKEY EXT ; = $1877
- WBUF EXT ; = $1881
- EXPECT EXT ; = $188D
- HERE EXT ; = $18CA
- ALLOT EXT ; = $18DA
- TRAVERSE EXT ; = $1900
- LATEST EXT ; = $1922
- SMUDGE EXT ; = $1943
- QERROR EXT ; = $19F6
- QCOMP EXT ; = $1A10
- QEXEC EXT ; = $1A27
- QCSP EXT ; = $1A4F
- BLOCK EXT ; = $28E5
-
- ********************************
- * *
- * COMPILE *
- * *
- ********************************
-
- H1AA0 DA LINK3
- HEX 87
- DCI 'COMPILE'
- COMPILE ENT
- DA DOCOL
-
- DA QCOMP
- DA RFROM
- DA DUP
- DA TWOPLUS
- DA TOR
- DA FETCH
- DA COMMA
- DA SEMIS
-
- ********************************
- * *
- * [ *
- * *
- ********************************
-
- H1ABC DA H1AA0
- HEX C1
- ASC "["
- LFBRAKET ENT
- DA DOCOL
-
- DA STATE
- DA STOREZER
- DA SEMIS
-
- ********************************
- * *
- * ] *
- * *
- ********************************
-
- H1AC8 DA H1ABC
-
- HEX 81
- ASC "]"
- RTBRAKET ENT
- DA DOCOL
-
- DA CLIT
- HEX C0
- DA STATE
- DA STORE
- DA SEMIS
-
- ********************************
- * *
- * HEX *
- * *
- ********************************
-
- H1AD7 DA H1AC8
- HEX 83
- DCI 'HEX'
- HEX16 ENT
- DA DOCOL
-
- DA CLIT
- DB 16
- DA BASE
- DA STORE
- DA SEMIS
-
- ********************************
- * *
- * DEC *
- * *
- ********************************
-
- H1AE8 DA H1AD7
- HEX 83
- DCI 'DEC'
- DEC ENT
- DA DOCOL
-
- DA CLIT
- DB 10
- DA BASE
- DA STORE
- DA SEMIS
-
- ********************************
- * *
- * (;CODE) *
- * *
- ********************************
-
- H1AF9 DA H1AE8
- HEX 87
- DCI '(;CODE)'
- PRNSCODE ENT
- DA DOCOL
-
- DA RFROM
- DA LATEST
- DA TWOPLUS
- DA ONE
- DA TRAVERSE
- DA ONEPLUS
- DA STORE
- DA SEMIS
-
- ********************************
- * *
- * ;CODE *
- * *
- ********************************
-
- H1B15 DA H1AF9
- HEX C5
- DCI ';CODE'
- SCODE ENT
- DA DOCOL
-
- DA QCSP
- DA COMPILE
- DA PRNSCODE
- DA LFBRAKET
- DA SMUDGE
- DA SEMIS
-
- ********************************
- * *
- * DR1 *
- * *
- ********************************
-
- H1B2B DA H1B15
- HEX 83
- DCI 'DR1'
- DR1 ENT
- DA DOCOL
-
- DA OFFSET
- DA STOREZER
- DA SEMIS
-
- ********************************
- * *
- * PREV *
- * *
- ********************************
-
- H1B39 DA H1B2B
- HEX 84
- DCI 'PREV'
- PREV ENT
- DA DOCREATE
-
- DA $AEEF ; calculated FIRST: 4 buffers
-
- ********************************
- * *
- * USE *
- * *
- ********************************
-
- H1B44 DA H1B39
- HEX 83
- DCI 'USE'
- USE ENT
- DA DOCREATE
-
- DA $AEEF
-
- ********************************
- * *
- * DOES> *
- * *
- ********************************
-
- H1B4E DA H1B44
- HEX C5
- DCI 'DOES>'
- DOES ENT
- DA DOCOL
-
- DA QCSP
- DA COMPILE
- DA SMUDGE
- DA COMPILE
- DA PRNSCODE
- DA CLIT
- HEX 20
- DA CCOMMA
- DA LIT
- DA DODOES
- DA COMMA
- DA SEMIS
-
- DODOES ENT
- DEX
- DEX
-
- CLC
- LDA $FA
- ADC #$02
- STA DATASTK,X
-
- TYA
- ADC $FB
- STA DATASTK+1,X
-
- SEC
- PLA
- SBC #$01
- STA $FA
-
- PLA
- SBC #$00
- STA $FB
- JMP DOCOL
-
- ********************************
- * *
- * COUNT *
- * *
- ********************************
-
- H1B8D DA H1B4E
- HEX 85
- DCI 'COUNT'
- COUNT ENT
- DA DOCOL
-
- DA DUP
- DA ONEPLUS
- DA SWAP
- DA CFETCH
- DA SEMIS
-
- ********************************
- * *
- * (TYPE) *
- * *
- ********************************
-
- H1BA1 DA H1B8D
- HEX 86
- DCI '(TYPE)'
- PRNTYPE ENT
- DA DOCOL
-
- DA QDUP
- DA ZBRANCH
- DA H1BC8
- DA OVER
- DA PLUS
- DA SWAP
- DA PRNDO
- H1BBA DA I
- DA CFETCH
- DA EMIT
- DA PRNLOOP
- DA H1BBA
- DA BRANCH
- DA H1BCA
- H1BC8 DA DROP
- H1BCA DA SEMIS
-
- ********************************
- * *
- * -TRAILING *
- * *
- ********************************
-
- H1BCC DA H1BA1
- HEX 89
- DCI '-TRAILING'
- DTRAIL ENT
- DA DOCOL
-
- DA DUP
- DA ZERO
- DA PRNDO
- H1BE0 DA TWODUP
- DA PLUS
- DA ONEMINUS
- DA CFETCH
- DA BL
- DA MINUS
- DA ZBRANCH
- DA H1BF6
- DA LEAVE
- DA BRANCH
- DA H1BF8
- H1BF6 DA ONEMINUS
- H1BF8 DA PRNLOOP
- DA H1BE0
- DA SEMIS
-
- ********************************
- * *
- * EXPECT79 *
- * *
- ********************************
-
- H1BFE DA H1BCC
- HEX 88
- DCI 'EXPECT79'
- EXPECT79 ENT
- DA DOCOL
-
- DA OVER
- DA PLUS
- DA OVER
- DA PRNDO
- H1C13 DA FKEY
- DA DUP
- DA BS
- DA CFETCH
- DA EQUALS
- DA ZBRANCH
- DA H1C3C
- DA DROP
- DA CLIT
- DB 8
- DA OVER
- DA I
- DA EQUALS
- DA DUP
- DA RFROM
- DA TWOMINUS
- DA PLUS
- DA TOR
- DA MINUS
- DA BRANCH
- DA H1C5F
- H1C3C DA DUP
- DA CLIT
- HEX 0D
- DA EQUALS
- DA ZBRANCH
- DA H1C53
- DA LEAVE
- DA DROP
- DA BL
- DA ZERO
- DA BRANCH
- DA H1C55
- H1C53 DA DUP
- H1C55 DA I
- DA CSTORE
- DA I
- DA ONEPLUS
- DA STOREZER
- H1C5F DA EMIT
- DA PRNLOOP
- DA H1C13
- DA DROP
- DA SEMIS
-
- ********************************
- * *
- * QUERY *
- * *
- ********************************
-
- H1C69 DA H1BFE
- HEX 85
- DCI 'QUERY'
- QUERY ENT
- DA DOCOL
-
- DA TIB
- DA FETCH
- DA CLIT
- HEX 50
- DA EXPECT
- DA TOIN
- DA STOREZER
- DA SEMIS
-
- ********************************
- * *
- * null *
- * *
- ********************************
-
- H1C82 DA H1C69
- HEX C1
- HEX 80
- NULL ENT
- DA DOCOL
-
- DA BLK
- DA FETCH
- DA ZBRANCH
- DA H1C92
- DA QEXEC
- H1C92 DA RFROM
- DA DROP
- DA SEMIS
-
- ********************************
- * *
- * FILL *
- * *
- ********************************
-
- H1C98 DA H1C82
- HEX 84
- DCI 'FILL'
- FILL ENT
- DA DOCOL
-
- DA SWAP
- DA TOR
- DA OVER
- DA CSTORE
- DA DUP
- DA ONEPLUS
- DA RFROM
- DA ONEMINUS
- DA CMOVE
- DA SEMIS
-
- ********************************
- * *
- * ERASE *
- * *
- ********************************
-
- H1CB5 DA H1C98
- HEX 85
- DCI 'ERASE'
- ERASE ENT
- DA DOCOL
-
- DA CLIT
- HEX 00
- DA FILL
- DA SEMIS
-
- ********************************
- * *
- * BLANKS *
- * *
- ********************************
-
- H1CC6 DA H1CB5
- HEX 86
- DCI 'BLANKS'
- BLANKS ENT
- DA DOCOL
-
- DA BL
- DA FILL
- DA SEMIS
-
- ********************************
- * *
- * PAD *
- * *
- ********************************
-
- H1CD7 DA H1CC6
- HEX 83
- DCI 'PAD'
- PAD ENT
- DA DOCOL
-
- DA HERE
- DA CLIT
- HEX 44
- DA PLUS
- DA SEMIS
-
- ********************************
- * *
- * HEAVE *
- * *
- ********************************
-
- H1CE8 DA H1CD7
- HEX 85
- DCI 'HEAVE'
- HEAVE ENT
- DA DOCOL
-
- DA PREV
- DA FETCH
- DA DUP
- DA USE
- DA STORE
- DA LIT
- DA H7FFF
- DA SWAP
- DA STORE
- DA SEMIS
-
- ********************************
- * *
- * BARF *
- * *
- ********************************
-
- H1D06 DA H1CE8
- HEX 84
- DCI 'BARF'
- BARF ENT
- DA DOCOL
-
- DA LIMIT
- DA FIRST
- DA PRNDO
- H1D15 DA I
- DA PREV
- DA STORE
- DA HEAVE
- DA HBT
- DA PRNPLOOP
- DA H1D15
- DA SEMIS
-
- ********************************
- * *
- * SCAN>> *
- * *
- ********************************
-
- H1D25 DA H1D06
- HEX 86
- DCI 'SCAN>>'
- SCANN ENT ; ( delim --- addr count )
- DA DOCOL
-
- DA STREAM ; STREAM @ ?DUP 0= IF
- DA FETCH
- DA QDUP
- DA ZEQUALS
- DA ZBRANCH
- DA H1D56
- DA BLK ; BLK @ ?DUP IF
- DA FETCH
- DA QDUP
- DA ZBRANCH
- DA H1D4C
- DA BLOCK ; BLOCK
- DA BRANCH ; ELSE
- DA H1D50
- H1D4C DA TIB ; @
- DA FETCH ; THEN DUP STREAM !
- H1D50 DA DUP
- DA STREAM
- DA STORE
- H1D56 DA TOIN ; ELSE
- DA FETCH ; >IN @ + SWAP
- DA PLUS
- DA SWAP
- DA EMBRACE ; EMBRACE >IN +!
- DA TOIN ; THEN ;
- DA PLUSTORE
- DA SEMIS
-
- ********************************
- * *
- * (WORD) *
- * *
- ********************************
-
- H1D66 DA H1D25
- HEX 86
- DCI '(WORD)'
- PRNWORD ENT
- DA DOCOL
-
- DA SCANN ; SCAN>> does work
- DA TOR
- DA RFETCH ; save char count
- DA WBUF
- DA CSTORE ; put in len byte at WBUF
- DA WBUF
- DA ONEPLUS
- DA RFROM
- DA ONEPLUS
- DA CMOVE ; copy string to WBUF
- DA WBUF ; prep for type using WBUF
- DA SEMIS
-
- ********************************
- * *
- * (.") *
- * *
- ********************************
-
- H1D87 DA H1D66
- HEX 84
- DCI '(.")'
- PRNDQUOT ENT
- DA DOCOL
-
- DA RFETCH
- DA COUNT
- DA DUP
- DA ONEPLUS
- DA RFROM
- DA PLUS
- DA TOR
- DA TYPE
- DA SEMIS
-
- ********************************
- * *
- * ." *
- * *
- ********************************
-
- H1DA2 DA H1D87
- HEX C2
- DCI '."'
- DOTQUOT ENT
- DA DOCOL
-
- DA CLIT
- HEX 22
- DA WORD
- DA STATE
- DA FETCH
- DA ZBRANCH
- DA H1DC4
- DA CFETCH
- DA ONEPLUS
- DA COMPILE
- DA PRNDQUOT
- DA ALLOT
- DA BRANCH
- DA H1DC8
- H1DC4 DA COUNT
- DA TYPE
- H1DC8 DA SEMIS
-
- ********************************
- * *
- * CONVERT *
- * *
- ********************************
-
- H1DCA DA H1DA2
- HEX 87
- DCI 'CONVERT'
- CONVERT ENT ; ( d1 a1 --- d2 a2 )
- DA DOCOL
-
- H1DD6 DA ONEPLUS
- DA DUP
- DA TOR
- DA CFETCH
- DA BASE
- DA FETCH
- DA DIGIT
- DA ZBRANCH
- DA H1E12
- DA SWAP
- DA BASE
- DA FETCH
- DA USTAR
- DA DROP
- DA ROT
- DA BASE
- DA FETCH
- DA USTAR
- DA DPLUS
- DA DPL
- DA FETCH
- DA ONEPLUS
- DA ZBRANCH
- DA H1E0C
- DA ONE
- DA DPL
- DA PLUSTORE
- H1E0C DA RFROM
- DA BRANCH
- DA H1DD6
- H1E12 DA RFROM
- DA SEMIS
-
- ********************************
- * *
- * (NUMBER) *
- * *
- ********************************
-
- LINK4 ENT
- DA H1DCA
- HEX 88
- DCI '(NUMBER)'
- PRNUMBER ENT ; ( addr -- d )
- DA DOCOL
-
- DA ZERO
- DA ZERO
- DA ROT
- DA DUP
- DA ONEPLUS
- DA CFETCH
- DA CLIT
- HEX 2D ; test for -???
- DA EQUALS
- DA DUP
- DA TOR
- DA PLUS
- DA NEGONE
- H1E3A DA DPL
- DA STORE
- DA CONVERT
- DA DUP
- DA CFETCH
- DA DUP
- DA BL
- DA EQUALS
- DA OVER
- DA ZEQUALS
- DA OR
- DA SWAP
- DA CLIT
- HEX 0D
- DA EQUALS
- DA OR
- DA ZEQUALS
- DA ZBRANCH ; bad char -- not delimeter
- DA H1E88
- DA DUP
- DA CFETCH
- DA DUP
- DA CLIT
- HEX 2B
- DA GREATER
- DA OVER
- DA CLIT
- HEX 30
- DA LESSTHAN
- DA AND
- DA SWAP
- DA CLIT
- HEX 3A
- DA EQUALS
- DA OR
- DA ZEQUALS
- DA ZERO
- DA QERROR
- DA ZERO
- DA BRANCH
- DA H1E3A
- H1E88 DA DROP
- DA RFROM
- DA ZBRANCH
- DA H1E92
- DA DNEGATE
- H1E92 DA SEMIS
-