-
-
Save maly/4acdd5e725ca42d03213a9a0551f7fe9 to your computer and use it in GitHub Desktop.
lda test | |
lda <test | |
lda >test | |
.org 100 | |
test: db 0 |
.org 1 | |
test0: db 0 | |
.org $102 | |
test1: db 0 | |
.org $203 | |
test2: db 0 | |
.org $1000 | |
tfr b,2 | |
lda test0 | |
lda test1 | |
lda test2 | |
setdp 1 | |
lda test0 | |
lda test1 | |
lda test2 | |
setdp 2 | |
lda test0 | |
lda test1 | |
lda test2 | |
setdp 257 | |
lda test0 | |
lda test1 | |
lda test2 |
{} |
:0700000096649664B60064EB | |
:01006400009B | |
:00000001FF |
:0100010000FE | |
:0101020000FC | |
:0102030000FA | |
:1010000096009601B60102B60203B600019602B63A | |
:101010000203B60001B601029603B60001B6010252 | |
:03102000B6020312 | |
:00000001FF |
0000 96 64 LDA test | |
0002 96 64 LDA <test | |
0004 B6 00 64 LDA >test | |
0007 ; | |
0064 .ORG 100 | |
0064 00 TEST: DB 0 | |
TEST: 0064 DEFINED AT LINE 6 | |
> USED AT LINE 1 | |
> USED AT LINE 2 | |
> USED AT LINE 3 |
0001 .ORG 1 | |
0001 00 TEST0: DB 0 | |
0102 .ORG $102 | |
0102 00 TEST1: DB 0 | |
0103 ; | |
0203 .ORG $203 | |
0203 00 TEST2: DB 0 | |
0204 ; | |
1000 .ORG $1000 | |
1000 ; | |
1000 96 00 LDA 0a | |
1002 ; | |
1002 96 01 LDA test0 | |
1004 B6 01 02 LDA test1 | |
1007 B6 02 03 LDA test2 | |
100A ; | |
100A SETDP 1 | |
100A B6 00 01 LDA test0 | |
100D 96 02 LDA test1 | |
100F B6 02 03 LDA test2 | |
1012 ; | |
1012 SETDP 2 | |
1012 B6 00 01 LDA test0 | |
1015 B6 01 02 LDA test1 | |
1018 96 03 LDA test2 | |
101A ; | |
101A ; | |
101A SETDP 257 | |
101A B6 00 01 LDA test0 | |
101D B6 01 02 LDA test1 | |
1020 B6 02 03 LDA test2 | |
TEST0: 0001 DEFINED AT LINE 2 | |
> USED AT LINE 13 | |
> USED AT LINE 18 | |
> USED AT LINE 23 | |
> USED AT LINE 29 | |
TEST1: 0102 DEFINED AT LINE 4 | |
> USED AT LINE 14 | |
> USED AT LINE 19 | |
> USED AT LINE 24 | |
> USED AT LINE 30 | |
TEST2: 0203 DEFINED AT LINE 7 | |
> USED AT LINE 15 | |
> USED AT LINE 20 | |
> USED AT LINE 25 | |
> USED AT LINE 31 |
S10600001F411288 | |
S9030000FC |
lda test | |
lda <test | |
lda >test | |
.org 100 | |
test: db 0 |
{} |
:06000000A564A564A50043 | |
:01006400009B | |
:00000001FF |
0000 A5 64 LDA test | |
0002 A5 64 LDA <test | |
0004 A5 00 LDA >test | |
0006 ; | |
0064 .ORG 100 | |
0064 00 TEST: DB 0 | |
TEST: 0064 DEFINED AT LINE 6 | |
> USED AT LINE 1 | |
> USED AT LINE 2 | |
> USED AT LINE 3 |
; Monitor vectors: | |
MRESET EQU $E000 | |
MSERIN EQU $E003 | |
MSEROUT EQU $E006 | |
MPRINT2 EQU $E009 | |
MPRINTX EQU $E00C | |
MPRIMM EQU $E00F | |
.ORG $100 | |
.ENT $ | |
; test 20 | |
; here are your space: | |
TESTMOD: | |
jsr mprimm | |
.cstr "Hello folks",$d,$a | |
JSR hdtest | |
BEQ m68 | |
JSR MPRIMM | |
.CSTR $0d,$0a,"Hi from HD6309",$0d,$0a | |
JMP MRESET | |
M68: | |
JSR MPRIMM | |
.CSTR $0d,$0a,"Hi from MC6809",$0d,$0a | |
JMP MRESET | |
HDTEST: | |
PSHS d | |
FDB $1043 | |
CMPB 1,s | |
PULS d,pc |
{} |
:10010000BDE00F48656C6C6F20666F6C6B730D0AF9 | |
:1001100000BD01482719BDE00F0D0A48692066722D | |
:100120006F6D204844363330390D0A007EE000BD43 | |
:10013000E00F0D0A48692066726F6D204D43363816 | |
:1001400030390D0A007EE00034061043E161358647 | |
:00000001FF |
0000 ; Monitor vectors: | |
0000 MRESET: EQU $E000 | |
0000 MSERIN: EQU $E003 | |
0000 MSEROUT: EQU $E006 | |
0000 MPRINT2: EQU $E009 | |
0000 MPRINTX: EQU $E00C | |
0000 MPRIMM: EQU $E00F | |
0100 .ORG $100 | |
0100 .ENT $ | |
0100 ; test 20 | |
0100 ; here are your space: | |
0100 TESTMOD: | |
0100 BD E0 0F JSR mprimm | |
0103 48 65 6C 6C 6F 20 66 6F 6C 6B 73 0D 0A 00 .CSTR "Hello folks",$d,$a | |
0111 BD 01 48 JSR hdtest | |
0114 27 19 BEQ m68 | |
0116 BD E0 0F JSR MPRIMM | |
0119 0D 0A 48 69 20 66 72 6F 6D 20 48 44 36 33 30 39 0D 0A 00 .CSTR $0d,$0a,"Hi from HD6309",$0d,$0a | |
012C 7E E0 00 JMP MRESET | |
012F M68: | |
012F BD E0 0F JSR MPRIMM | |
0132 0D 0A 48 69 20 66 72 6F 6D 20 4D 43 36 38 30 39 0D 0A 00 .CSTR $0d,$0a,"Hi from MC6809",$0d,$0a | |
0145 7E E0 00 JMP MRESET | |
0148 HDTEST: | |
0148 34 06 PSHS d | |
014A 10 43 FDB $1043 | |
014C E1 61 CMPB 1,s | |
014E 35 86 PULS d,pc | |
MRESET: E000 DEFINED AT LINE 2 | |
> USED AT LINE 22 | |
> USED AT LINE 26 | |
MSERIN: E003 DEFINED AT LINE 3 | |
MSEROUT: E006 DEFINED AT LINE 4 | |
MPRINT2: E009 DEFINED AT LINE 5 | |
MPRINTX: E00C DEFINED AT LINE 6 | |
MPRIMM: E00F DEFINED AT LINE 7 | |
> USED AT LINE 16 | |
> USED AT LINE 20 | |
> USED AT LINE 24 | |
TESTMOD: 0100 DEFINED AT LINE 15 | |
M68: 012F DEFINED AT LINE 23 | |
> USED AT LINE 19 | |
HDTEST: 0148 DEFINED AT LINE 28 | |
> USED AT LINE 18 |
S113010000BD01372719BDE00F0D0A48692066726FDC | |
S1130110006D204844363330390D0A007EE000BDE0DF | |
S1130120000F0D0A48692066726F6D204D43363830D3 | |
S112013000390D0A007EE00034061043E161358685 | |
S9030000FC |
.macro wait_until_bit_6 | |
loop%%M: | |
IN A, %%1 | |
BIT 6,A | |
JR Z,loop%%M | |
.endm | |
l000 ;test | |
lasky equ 22 | |
lasky equ 55 | |
db lasky | |
wait_until_bit_6 lasky | |
wait_until_bit_6 6 | |
lasky equ 33 | |
db lasky | |
wait_until_bit_6 lasky |
{} |
:1000000037DB37CB7728FADB06CB7728FA21DB21E1 | |
:04001000CB7728FA88 | |
:00000001FF |
0000 ; | |
0000 LASKY: EQU 22 | |
0000 LASKY: EQU 55 | |
0000 37 DB lasky | |
0001 ; | |
**MACRO UNROLL - WAIT_UNTIL_BIT_6 | |
0001 LOOPM_5: | |
0001 DB 37 IN A,lasky | |
0003 CB 77 BIT 6,A | |
0005 28 FA JR Z,loopM_5 | |
**MACRO UNROLL - WAIT_UNTIL_BIT_6 | |
0007 LOOPM_6: | |
0007 DB 06 IN A,6 | |
0009 CB 77 BIT 6,A | |
000B 28 FA JR Z,loopM_6 | |
000D ; | |
000D LASKY: EQU 33 | |
000D 21 DB lasky | |
**MACRO UNROLL - WAIT_UNTIL_BIT_6 | |
000E LOOPM_10: | |
000E DB 21 IN A,lasky | |
0010 CB 77 BIT 6,A | |
0012 28 FA JR Z,loopM_10 | |
LASKY: 0021 DEFINED AT LINE 15 | |
> USED AT LINE 10 | |
> USED AT LINE 3 | |
> USED AT LINE 16 | |
> USED AT LINE 3 | |
LOOPM_5: 0001 DEFINED AT LINE 2 | |
> USED AT LINE 5 | |
LOOPM_6: 0007 DEFINED AT LINE 2 | |
> USED AT LINE 5 | |
LOOPM_10: 000E DEFINED AT LINE 2 | |
> USED AT LINE 5 |
;NAM TB01V137 | |
;* WRITTEN 20-OCT-77 BY JOHN BYRNS | |
;* REVISED 30-DEC-77 | |
;* REVISED 18-JAN-78 | |
;* REVISED 10-APR-78 | |
;* REVISED 08-MAY-79 TO ELIMINATE USE OF SP | |
;* REVISED 24-JAN-80 TO USE 6801 ON CHIP RAM | |
;* REVISED 26-JAN-80 FOR NEW 6801 INSTRUCTIONS | |
;* REVISED 24-JUL-81 FOR WHISTON BOARD | |
;* REVISED 24-SEP-81 INCLUDE USER FUNCTION | |
;* REVISED 08-APR-82 MAKE STANDALONE INCLUDE HEX CONSTANTS AND MEM FUNCTION | |
;* REVISED 21-NOV-84 FOR 6809 | |
;* REVISED FEB 94 ADAPTED TO SIMULATOR AND BUGFIXES BY L.C. BENSCHOP. | |
;* | |
.engine kilo | |
EOL: EQU $04 | |
ETX: EQU $03 | |
SPACE: EQU $20 | |
CR: EQU $0D | |
LF: EQU $0A | |
BS: EQU $08 | |
CAN: EQU $18 | |
BELL: EQU $07 | |
FILL: EQU $00 | |
DEL: EQU $7F | |
BSIZE: EQU 73 | |
STKCUS: EQU 48 | |
;* | |
bACIA equ $83FE | |
RMCR EQU bACIA | |
TRCS EQU bACIA | |
RECEV EQU bACIA+1 | |
TRANS EQU bACIA+1 | |
CNTL1 EQU $03 | |
CNTL2 EQU $15 | |
RDRF EQU $01 | |
ORFE EQU $20 | |
TDRE EQU $02 | |
;* EDIT THE FOLLOWING EQUATES TO REFLECT THE | |
;* DESIRED ROM AND RAM LAYOUT | |
LORAM EQU $0080 ;ADDRESS OF DIRECT PAGE SCRATCH RAM | |
BUFFER EQU $0200 ;ADDRESS OF MAIN RAM | |
RAMSIZ EQU $2000 ;SIZE OF MAIN RAM | |
ROMADR EQU $f000 ;ADDRESS OF TINY BASIC ROM | |
;* | |
RAMBEG EQU BUFFER+BSIZE | |
RAMEND EQU BUFFER+RAMSIZ | |
;* | |
RAMPAT EQU $AA0F | |
ROMPAT EQU $F055 | |
;* | |
; ORG LORAM | |
.bsseg | |
.org 6 | |
USRBAS: RMB 2 | |
USRTOP: RMB 2 | |
STKLIM: RMB 2 | |
STKTOP: RMB 2 | |
CURSOR: RMB 2 | |
SAVESP: RMB 2 | |
LINENB: RMB 2 | |
SCRTCH: RMB 2 | |
CHAR: RMB 2 | |
ZONE: RMB 1 | |
MODE: RMB 1 | |
RESRVD: RMB 1 | |
LOEND: EQU $ | |
;* | |
.cseg | |
.ORG 0xfff0 | |
;reserved | |
DW reset | |
;SWI3 | |
DW reset | |
;SWI2 | |
DW reset | |
;FIRQ | |
DW reset | |
;IRQ | |
DW reset | |
;SWI | |
DW reset | |
;NMI | |
DW reset | |
;RES | |
DW reset | |
.block | |
org $e400 | |
@reset: | |
.ent $ | |
BASIC: JMP SETUP | |
.cstr "MOD9BASIC" | |
WARMS LDS STKTOP | |
JSR INTEEE | |
BRA WMS05 | |
SETUP LDS #RAMEND-52 | |
SET03 STS STKTOP | |
JSR INTEEE | |
CLEAR LDD #RAMBEG | |
STD USRBAS | |
STD USRTOP | |
CLR02 STD STKLIM | |
WMS05 JSR CRLF | |
LDX #VSTR | |
JSR PUTSTR | |
CMDB LDS STKTOP | |
CLR MODE | |
JSR CRLF | |
LDX USRBAS | |
STX CURSOR | |
CMDE LDX #0000 | |
STX LINENB | |
TST MODE | |
BNE CMD01 | |
LDA #":" | |
JSR PUTCHR | |
CMD01 JSR GETLIN | |
JSR TSTNBR | |
BCC CMD02 | |
BVS CMD05 | |
JSR SKIPSP | |
CMPA #EOL | |
BEQ CMDE | |
JSR MSLINE | |
BRA CMDB | |
CMD02 PSHS X | |
LDX USRTOP | |
CMPX STKLIM | |
PULS X | |
BEQ CMD03 | |
JMP ERRORR | |
CMD03 ADDD #0 | |
BEQ CMD05 | |
CMD04 PSHS D | |
SUBD #9999 | |
PULS D | |
BHI CMD05 | |
BSR EDITOR | |
BRA CMDE | |
CMD05 JMP ERRORS | |
VSTR DB "TINY V1.37" | |
FCB EOL | |
;****************************** | |
;****************************** | |
EDITOR PSHS D | |
JSR SKIPSP | |
STX SCRTCH | |
LDA 0,S | |
LDX CURSOR | |
CMPX USRTOP | |
BEQ ED00 | |
CMPD 0,X | |
BCC ED01 | |
ED00 LDX USRBAS | |
ED01 JSR FNDLIN | |
STX CURSOR | |
BCS ED04 | |
STX SAVESP | |
LEAX 2,X | |
ED02 LDA ,X+ | |
CMPA #EOL | |
BNE ED02 | |
ED03 CMPX USRTOP | |
BEQ ED35 | |
LDA ,X+ | |
STX CHAR | |
LDX SAVESP | |
STA ,X+ | |
STX SAVESP | |
LDX CHAR | |
BRA ED03 | |
ED35 LDX SAVESP | |
STX USRTOP | |
STX STKLIM | |
ED04 LDX SCRTCH | |
LDB #-1 | |
ED05 INCB | |
LDA ,X+ | |
CMPA #EOL | |
BNE ED05 | |
TSTB | |
BNE ED55 | |
LEAS 2,S | |
RTS | |
ED55 LEAX -1,X | |
ADDB #4 | |
ED06 LEAX -1,X | |
DECB | |
LDA 0,X | |
CMPA #SPACE | |
BEQ ED06 | |
LDA #EOL | |
STA 1,X | |
CLRA | |
LDX USRTOP | |
STX CHAR | |
ADDD USRTOP | |
STD USRTOP | |
STD STKLIM | |
JSR TSTSTK | |
BCC ED07 | |
STX USRTOP | |
STX STKLIM | |
JMP ERRORF | |
ED07 LDX USRTOP | |
ED08 STX SAVESP | |
LDX CHAR | |
CMPX CURSOR | |
BEQ ED09 | |
LDA ,-X | |
STX CHAR | |
LDX SAVESP | |
STA ,-X | |
BRA ED08 | |
ED09 PULS D | |
LDX CURSOR | |
STD ,X++ | |
STX CHAR | |
ED10 LDX SCRTCH | |
LDA ,X+ | |
STX SCRTCH | |
LDX CHAR | |
STA ,X+ | |
STX CHAR | |
CMPA #EOL | |
BNE ED10 | |
RTS | |
;****************************** | |
;****************************** | |
PUTS01 JSR PUTCHR | |
LEAX 1,X | |
PUTSTR LDA 0,X | |
CMPA #EOL | |
BNE PUTS01 | |
RTS | |
;****************************** | |
;****************************** | |
CRLF LDX #CRLFST | |
BSR PUTSTR | |
CLR ZONE | |
RTS | |
CRLFST FCB CR,LF,DEL,FILL,FILL,FILL,EOL | |
;****************************** | |
;****************************** | |
ERRORF BSR ER01 | |
DB "SORRY" | |
FCB EOL | |
ERRORS BSR ER01 | |
DB "WHAT ?" | |
FCB EOL | |
ERRORR BSR ER01 | |
DB "HOW ?" | |
FCB EOL | |
BREAK BSR ER01 | |
DB "BREAK" | |
FCB EOL | |
END: BSR ER01 | |
DB "STOP" | |
FCB EOL | |
ER01 BSR CRLF | |
LDA #BELL | |
JSR PUTCHR | |
LDD LINENB | |
JSR PRNT4 | |
LDA #SPACE | |
JSR PUTCHR | |
PULS X | |
BSR PUTSTR | |
BSR CRLF | |
JMP CMDB | |
;****************************** | |
;****************************** | |
GL00 BSR CRLF | |
GETLIN LDX #BUFFER | |
GL03 JSR GETCHR | |
CMPA #SPACE | |
BCS GL05 | |
CMPA #$7F | |
BEQ GL03 | |
CMPX #BUFFER+BSIZE-1 | |
BNE GL04 | |
LDA #BELL | |
BRA GL02 | |
GL04 STA ,X+ | |
GL02 JSR PUTCHR | |
BRA GL03 | |
GL05 CMPA #BS | |
BEQ GL07 | |
CMPA #CAN | |
BEQ GL00 | |
CMPA #LF | |
BEQ GL09 | |
CMPA #CR | |
BNE GL03 | |
TST MODE | |
BEQ GL06 | |
JSR PUTCHR | |
BRA GL08 | |
GL06 PSHS X | |
JSR CRLF | |
PULS X | |
GL08 LDA #EOL | |
STA 0,X | |
LDX #BUFFER | |
RTS | |
GL07 CMPX #BUFFER | |
BEQ GL03 | |
LEAX -1,X | |
LDA #BS | |
JSR PUTCHR | |
LDA #SPACE | |
JSR PUTCHR | |
LDA #BS | |
BRA GL02 | |
GL09 ORCC #$01 | |
ROR MODE | |
BRA GL02 | |
;****************************** | |
;****************************** | |
REM00 LEAX 1,X | |
REM BSR SKIPSP | |
CMPA #EOL | |
BNE REM00 | |
ENDSMT JSR TSTEOL | |
ENDS02 LDA LINENB | |
ORA LINENB+1 | |
BEQ REM09 | |
REM05 CMPX USRTOP | |
BNE NXTLIN | |
JMP ERRORR | |
NXTLIN LDD ,X++ | |
STD LINENB | |
MSLINE JSR TSTBRK | |
BSR IFAN | |
BCS IMPLET | |
PSHS D | |
REM09 RTS | |
IMPLET JMP LET | |
;****************************** | |
;****************************** | |
IFAN BSR SKIPSP | |
STX CURSOR | |
LDX #VERBT | |
FAN00: LDA ,X+ | |
CMPA #EOL | |
BNE FAN04 | |
LDX CURSOR | |
ORCC #$01 | |
RTS | |
FAN04 STX CHAR | |
LDX CURSOR | |
STX SCRTCH | |
FAN05 LDX SCRTCH | |
CMPA 0,X | |
BNE FAN07 | |
LEAX 1,X | |
STX SCRTCH | |
LDX CHAR | |
LDA ,X+ | |
STX CHAR | |
CMPA #EOL | |
BNE FAN05 | |
LDD 0,X | |
LDX SCRTCH | |
ANDCC #$FE | |
RTS | |
FAN07 LDX CHAR | |
FAN08 LDA ,X+ | |
CMPA #EOL | |
BNE FAN08 | |
LEAX 2,X | |
BRA FAN00 | |
;****************************** | |
;****************************** | |
NXTNSP LEAX 1,X | |
SKIPSP LDA 0,X | |
CMPA #SPACE | |
BEQ NXTNSP | |
RTS | |
;****************************** | |
;****************************** | |
TSTHEX BSR TSTDIG | |
BCC TST05 | |
CMPA #"A" | |
BCS TST03 | |
CMPA #"F" | |
BHI TST03 | |
SUBA #"A"-10 | |
ANDCC #$FE | |
RTS | |
;****************************** | |
;****************************** | |
TSTLTR CMPA #"A" | |
BCS TST03 | |
CMPA #"Z" | |
BLS TST05 | |
TST03 ORCC #$01 | |
RTS | |
;****************************** | |
;****************************** | |
TSTDIG CMPA #"0" | |
BCS TST03 | |
CMPA #"9" | |
BHI TST03 | |
SUBA #"0" | |
TST05 ANDCC #$FE | |
RTS | |
;****************************** | |
;****************************** | |
TSTVAR BSR SKIPSP | |
BSR TSTLTR | |
BCS TSTV03 | |
TFR A,B | |
LDA 1,X | |
BSR TSTLTR | |
BCC TST03 | |
LEAX 1,X | |
SUBB #"A" | |
ASLB | |
CLRA | |
ADDD STKTOP | |
TSTV02 ANDCC #$FE | |
TSTV03 RTS | |
;****************************** | |
;****************************** | |
USER JSR ARGONE | |
PSHS D | |
JSR SKIPSP | |
CMPA #"," | |
BEQ USER03 | |
CMPA #")" | |
ORCC #$01 | |
BEQ USER05 | |
USER02 JMP ERRORS | |
USER03 LEAX 1,X | |
JSR EXPR | |
PSHS A | |
JSR SKIPSP | |
CMPA #")" | |
PULS A | |
BNE USER02 | |
ANDCC #$FE | |
USER05 LEAX 1,X | |
STX CURSOR | |
JSR [,S++] | |
LDX CURSOR | |
ANDCC #$FE | |
RTS | |
;****************************** | |
;****************************** | |
TSTSNB JSR SKIPSP | |
CMPA #"-" | |
BNE TSTNBR | |
LEAX 1,X | |
BSR TSTNBR | |
BCS TSN02 | |
NEGA | |
NEGB | |
SBCA #0 | |
ANDCC #$FC | |
TSN02 RTS | |
;****************************** | |
;****************************** | |
TSTNBR JSR SKIPSP | |
JSR TSTDIG | |
BCC TSTN02 | |
CMPA #"$" | |
ORCC #$01 | |
BNE TSTN09 | |
TSTN20 LEAX 1,X | |
CLR ,-S | |
CLR ,-S | |
TSTN23 LDA 0,X | |
JSR TSTHEX | |
BCS TSTN07 | |
LEAX 1,X | |
PSHS X | |
PSHS A | |
LDD 3,S | |
BITA #$F0 | |
BNE TSTN11 | |
ASLB | |
ROLA | |
ASLB | |
ROLA | |
ASLB | |
ROLA | |
ASLB | |
ROLA | |
ADDB ,S+ | |
STD 2,S | |
PULS X | |
BRA TSTN23 | |
TSTN02 LEAX 1,X | |
PSHS A | |
CLR ,-S | |
TSTN03 LDA 0,X | |
JSR TSTDIG | |
BCS TSTN07 | |
LEAX 1,X | |
PSHS X | |
PSHS A | |
LDD 3,S | |
ASLB | |
ROLA | |
BVS TSTN11 | |
ASLB | |
ROLA | |
BVS TSTN11 | |
ADDD 3,S | |
BVS TSTN11 | |
ASLB | |
ROLA | |
BVS TSTN11 | |
ADDB 0,S | |
ADCA #0 | |
BVS TSTN11 | |
STD 3,S | |
LEAS 1,S | |
PULS X | |
BRA TSTN03 | |
TSTN07 PULS D | |
ANDCC #$FE | |
TSTN09 ANDCC #$FD | |
RTS | |
TSTN11 LDX 1,S | |
LEAS 5,S | |
ORCC #$03 | |
RTS | |
;****************************** | |
;****************************** | |
TSTSTK STS SAVESP | |
LDD SAVESP | |
SUBD #STKCUS | |
SUBD STKLIM | |
RTS | |
;****************************** | |
;****************************** | |
PEEK JSR PAREXP | |
PSHS D | |
PSHS X | |
LDB [2,S] | |
PULS X | |
LEAS 2,S | |
CLRA | |
RTS | |
;****************************** | |
;****************************** | |
POKE JSR PAREXP | |
PSHS D | |
JSR SKIPSP | |
CMPA #"=" | |
BEQ POKE05 | |
JMP ERRORS | |
POKE05 LEAX 1,X | |
JSR EXPR | |
JSR TSTEOL | |
PSHS X | |
STB [2,S] | |
PULS X | |
LEAS 2,S | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
TSTFUN JSR SKIPSP | |
STX CURSOR | |
LDX #FUNT | |
JSR FAN00 | |
BCS TSTF05 | |
PSHS D | |
TSTF05 RTS | |
;****************************** | |
;****************************** | |
FUNT DB "USR" | |
FCB EOL | |
FDB USER | |
DB "PEEK" | |
FCB EOL | |
FDB PEEK | |
DB "MEM" | |
FCB EOL | |
FDB TSTSTK | |
FCB EOL | |
;****************************** | |
;****************************** | |
FLINE LDX USRBAS | |
FNDLIN CMPX USRTOP | |
BNE FND03 | |
ORCC #$03 | |
RTS | |
FND03 CMPD 0,X | |
BNE FND05 | |
ANDCC #$FC | |
RTS | |
FND05 BCC FND07 | |
ORCC #$01 | |
ANDCC #$FD | |
RTS | |
FND07 PSHS A | |
LDA #EOL | |
LEAX 1,X | |
FND09 LEAX 1,X | |
CMPA 0,X | |
BNE FND09 | |
PULS A | |
LEAX 1,X | |
BRA FNDLIN | |
;****************************** | |
;****************************** | |
RELEXP BSR EXPR | |
PSHS D | |
CLRB | |
JSR SKIPSP | |
CMPA #"=" | |
BEQ REL06 | |
CMPA #"<" | |
BNE REL03 | |
LEAX 1,X | |
INCB | |
JSR SKIPSP | |
CMPA #">" | |
BNE REL05 | |
LEAX 1,X | |
ADDB #4 | |
BRA REL07 | |
REL03 CMPA #">" | |
BNE EXPR06 | |
LEAX 1,X | |
ADDB #4 | |
JSR SKIPSP | |
REL05 CMPA #"=" | |
BNE REL07 | |
REL06 LEAX 1,X | |
ADDB #2 | |
REL07 PSHS B | |
BSR EXPR | |
PSHS X | |
SUBD 3,S | |
TFR CC,A | |
LSRA | |
TFR A,B | |
ASLA | |
ASLA | |
PSHS B | |
ADDA ,S+ | |
ANDA #$06 | |
BNE REL08 | |
INCA | |
REL08 CLRB | |
ANDA 2,S | |
BEQ REL09 | |
COMB | |
REL09 CLRA | |
PULS X | |
LEAS 3,S | |
RTS | |
;****************************** | |
;****************************** | |
EXPR CLR ,-S | |
CLR ,-S | |
JSR SKIPSP | |
CMPA #"-" | |
BEQ EXPR05 | |
CMPA #"+" | |
BNE EXPR03 | |
EXPR02 LEAX 1,X | |
EXPR03 BSR TERM | |
EXPR04 ADDD 0,S | |
STD 0,S | |
JSR SKIPSP | |
CMPA #"+" | |
BEQ EXPR02 | |
CMPA #"-" | |
BNE EXPR06 | |
EXPR05 LEAX 1,X | |
BSR TERM | |
NEGA | |
NEGB | |
SBCA #0 | |
BRA EXPR04 | |
EXPR06 PULS D | |
RTS | |
;****************************** | |
;****************************** | |
TERM JSR FACT | |
PSHS D | |
TERM03 JSR SKIPSP | |
CMPA #"*" | |
BEQ TERM07 | |
CMPA #"/" | |
BEQ TERM05 | |
PULS D | |
RTS | |
TERM05 LEAX 1,X | |
BSR FACT | |
PSHS X | |
LEAX 2,S | |
PSHS D | |
EORA 0,X | |
JSR ABSX | |
LEAX 0,S | |
JSR ABSX | |
PSHS A | |
LDA #17 | |
PSHS A | |
CLRA | |
CLRB | |
DIV05 SUBD 2,S | |
BCC DIV07 | |
ADDD 2,S | |
ANDCC #$FE | |
BRA DIV09 | |
DIV07 ORCC #$01 | |
DIV09 ROL 7,S | |
ROL 6,S | |
ROLB | |
ROLA | |
DEC 0,S | |
BNE DIV05 | |
LDA 1,S | |
LEAS 4,S | |
TSTA | |
BPL TERM06 | |
LEAX 2,S | |
BSR NEGX | |
TERM06 PULS X | |
BRA TERM03 | |
TERM07 LEAX 1,X | |
BSR FACT | |
MULT PSHS B | |
LDB 2,S | |
MUL | |
LDA 1,S | |
STB 1,S | |
LDB 0,S | |
MUL | |
LDA 2,S | |
STB 2,S | |
PULS B | |
MUL | |
ADDA 0,S | |
ADDA 1,S | |
STD 0,S | |
BRA TERM03 | |
;****************************** | |
;****************************** | |
FACT JSR TSTVAR | |
BCS FACT03 | |
PSHS X | |
TFR D,X | |
LDD 0,X | |
PULS X | |
FACT02 RTS | |
FACT03 JSR TSTNBR | |
BCC FACT02 | |
JSR TSTFUN | |
BCC FACT02 | |
PAREXP BSR ARGONE | |
PSHS A | |
JSR SKIPSP | |
CMPA #")" | |
PULS A | |
BNE FACT05 | |
LEAX 1,X | |
RTS | |
FACT05 JMP ERRORS | |
;****************************** | |
;****************************** | |
ARGONE JSR TSTSTK | |
BCC FACT04 | |
JMP ERRORF | |
FACT04 JSR SKIPSP | |
CMPA #"(" | |
BNE FACT05 | |
LEAX 1,X | |
JMP EXPR | |
;****************************** | |
;****************************** | |
ABSX TST 0,X | |
BPL NEG05 | |
NEGX NEG 0,X | |
NEG 1,X | |
BCC NEG05 | |
DEC 0,X | |
NEG05 RTS | |
;****************************** | |
;****************************** | |
TSTEOL PSHS A | |
JSR SKIPSP | |
CMPA #EOL | |
BEQ TEOL03 | |
JMP ERRORS | |
TEOL03 LEAX 1,X | |
PULS A | |
RTS | |
;****************************** | |
;****************************** | |
LET JSR TSTVAR | |
BCC LET03 | |
JMP ERRORS | |
LET03 PSHS D | |
JSR SKIPSP | |
CMPA #"=" | |
BEQ LET05 | |
JMP ERRORS | |
LET05 LEAX 1,X | |
JSR EXPR | |
BSR TSTEOL | |
STX CURSOR | |
PULS X | |
STD 0,X | |
LDX CURSOR | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
IF: JSR RELEXP | |
TSTB | |
BEQ IF03 | |
JMP MSLINE | |
IF03: JMP REM | |
;****************************** | |
;****************************** | |
GOTO JSR EXPR | |
BSR TSTEOL | |
JSR FLINE | |
BCS GOSB04 | |
JMP NXTLIN | |
;****************************** | |
;****************************** | |
GOSUB JSR EXPR | |
BSR TSTEOL | |
STX CURSOR | |
JSR FLINE | |
BCC GOSB03 | |
GOSB04 JMP ERRORR | |
GOSB03 JSR TSTSTK | |
BCC GOSB05 | |
JMP ERRORF | |
GOSB05 LDD CURSOR | |
PSHS D | |
LDD LINENB | |
PSHS D | |
JSR NXTLIN | |
PULS D | |
STD LINENB | |
PULS X | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
RETURN EQU TSTEOL | |
;****************************** | |
;****************************** | |
PRINT JSR SKIPSP | |
PR01 CMPA #"," | |
BEQ PR05 | |
CMPA #";" | |
BEQ PR07 | |
CMPA #EOL | |
BEQ PR04 | |
CMPA #$22 | |
BNE PR02 | |
LEAX 1,X | |
BSR PRNTQS | |
BRA PR03 | |
PR02 JSR EXPR | |
PSHS X | |
BSR PRNTN | |
PULS X | |
PR03 JSR SKIPSP | |
CMPA #"," | |
BEQ PR05 | |
CMPA #";" | |
BEQ PR07 | |
CMPA #EOL | |
BEQ PR04 | |
JMP ERRORS | |
PR04 PSHS X | |
JSR CRLF | |
PULS X | |
BRA PR08 | |
PR05 LDB #$7 | |
PR06 LDA #SPACE | |
JSR PUTCHR | |
BITB ZONE | |
BNE PR06 | |
PR07 LEAX 1,X | |
JSR SKIPSP | |
CMPA #EOL | |
BNE PR01 | |
PR08 LEAX 1,X | |
JMP ENDS02 | |
;* | |
;* | |
PRQ01 JSR PUTCHR | |
PRNTQS LDA ,X+ | |
CMPA #EOL | |
BNE PRQ03 | |
JMP ERRORS | |
PRQ03 CMPA #$22 | |
BNE PRQ01 | |
RTS | |
;* | |
PRNTN TSTA | |
BPL PRN03 | |
NEGA | |
NEGB | |
SBCA #0 | |
PSHS A | |
LDA #"-" | |
JSR PUTCHR | |
PULS A | |
PRN03 LDX #PRNPT-2 | |
PRN05 LEAX 2,X | |
CMPD 0,X | |
BCC PRN07 | |
CMPX #PRNPTO | |
BNE PRN05 | |
PRN07 CLR CHAR | |
PRN09 CMPD 0,X | |
BCS PRN11 | |
SUBD 0,X | |
INC CHAR | |
BRA PRN09 | |
PRN11 PSHS A | |
LDA #"0" | |
ADDA CHAR | |
JSR PUTCHR | |
PULS A | |
CMPX #PRNPTO | |
BEQ PRN13 | |
LEAX 2,X | |
BRA PRN07 | |
PRN13 RTS | |
PRNPT FDB 10000 | |
FDB 1000 | |
FDB 100 | |
FDB 10 | |
PRNPTO FDB 1 | |
;* | |
PRNT4 LDX #PRNPT+2 | |
BRA PRN07 | |
;****************************** | |
;****************************** | |
INPUT JSR TSTVAR | |
BCS IN11 | |
PSHS D | |
STX CURSOR | |
IN03 LDA #"?" | |
JSR PUTCHR | |
JSR GETLIN | |
IN05 JSR SKIPSP | |
CMPA #EOL | |
BEQ IN03 | |
JSR TSTSNB | |
BCC IN07 | |
LDX #RMESS | |
JSR PUTSTR | |
JSR CRLF | |
BRA IN03 | |
IN07 STX SCRTCH | |
PULS X | |
STD 0,X | |
LDX CURSOR | |
JSR SKIPSP | |
CMPA #"," | |
BEQ IN09 | |
JMP ENDSMT | |
IN09 LEAX 1,X | |
JSR TSTVAR | |
BCC IN13 | |
IN11 JMP ERRORS | |
IN13 PSHS D | |
PSHS X | |
LDX SCRTCH | |
JSR SKIPSP | |
CMPA #"," | |
BNE IN05 | |
LEAX 1,X | |
BRA IN05 | |
RMESS DB "RE-ENTER" | |
FCB EOL | |
;****************************** | |
;****************************** | |
RUN LDX STKTOP | |
LDA #52 | |
RUN01 CLR ,X+ | |
DECA | |
BNE RUN01 | |
LDX USRBAS | |
JMP REM05 | |
;****************************** | |
;****************************** | |
LIST JSR TSTNBR | |
BCC LIST03 | |
CLRA | |
CLRB | |
STD CURSOR | |
LDA #$7F | |
BRA LIST07 | |
LIST03 STD CURSOR | |
JSR SKIPSP | |
CMPA #"," | |
BEQ LIST05 | |
LDA CURSOR | |
BRA LIST07 | |
LIST05 LEAX 1,X | |
JSR TSTNBR | |
BCC LIST07 | |
JMP ERRORS | |
LIST07 JSR TSTEOL | |
PSHS D | |
LDD CURSOR | |
STX CURSOR | |
JSR FLINE | |
LIST09 CMPX USRTOP | |
BEQ LIST10 | |
PULS D | |
CMPD 0,X | |
BCS LIST11 | |
PSHS D | |
LDD ,X++ | |
PSHS X | |
JSR PRNT4 | |
PULS X | |
LDA #SPACE | |
JSR PUTCHR | |
JSR PUTSTR | |
LEAX 1,X | |
PSHS X | |
JSR CRLF | |
PULS X | |
JSR TSTBRK | |
BRA LIST09 | |
LIST10 LEAS 2,S | |
LDA #ETX | |
JSR PUTCHR | |
LIST11 LDX CURSOR | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
VERBT DB "LET" | |
FCB EOL | |
FDB LET | |
DB "IF" | |
FCB EOL | |
FDB IF | |
DB "GOTO" | |
FCB EOL | |
FDB GOTO | |
DB "GOSUB" | |
FCB EOL | |
FDB GOSUB | |
DB "RETURN" | |
FCB EOL | |
FDB RETURN | |
DB "POKE" | |
FCB EOL | |
FDB POKE | |
DB "PRINT" | |
FCB EOL | |
FDB PRINT | |
DB "INPUT" | |
FCB EOL | |
FDB INPUT | |
DB "REM" | |
FCB EOL | |
FDB REM | |
DB "STOP" | |
FCB EOL | |
FDB END | |
DB "END" | |
FCB EOL | |
FDB END | |
DB "RUN" | |
FCB EOL | |
FDB RUN | |
DB "LIST" | |
FCB EOL | |
FDB LIST | |
DB "NEW" | |
FCB EOL | |
FDB CLEAR | |
DB "?" | |
FCB EOL | |
FDB PRINT | |
FCB EOL | |
;****************************** | |
;****************************** | |
TSTBRK bsr BRKEEE | |
beq GETC05 | |
GETCHR bsr INEEE | |
CMPA #ETX | |
BNE GETC05 | |
JMP BREAK | |
GETC05 RTS | |
PUTCHR INC ZONE | |
JMP OUTEEE | |
;****************************** | |
;****************************** | |
INEEE BSR BRKEEE | |
BEQ INEEE | |
LDA RECEV | |
ANDA #$7F | |
RTS | |
OUTEEE PSHS A | |
OUT01 LDA TRCS | |
BITA #TDRE | |
BEQ OUT01 | |
PULS A | |
STA TRANS | |
RTS | |
BRKEEE PSHS A | |
BRK03 LDA TRCS | |
BITA #ORFE | |
BEQ BRK05 | |
LDA RECEV | |
BRA BRK03 | |
BRK05 BITA #RDRF | |
PULS A | |
RTS | |
;* | |
LDA #CNTL1 | |
STA RMCR | |
LDA #CNTL2 | |
STA TRCS | |
INTEEE EQU $ | |
RTS | |
;****************************** | |
;****************************** | |
.endblock | |
{} |
:10FFF000E400E400E400E400E400E400E400E400E1 | |
:10E400007EE4154D4F443942415349430010DE0C20 | |
:10E41000BDEBE7201310CE21CC10DF0CBDEBE7CC19 | |
:10E420000249DD06DD08DD0ABDE53F8EE483BDE57A | |
:10E430003810DE0C0F19BDE53F9E069F0E8E0000C2 | |
:10E440009F120D192605863ABDEBACBDE592BDE6DF | |
:10E45000EC240E292BBDE65D810427E1BDE60F20EB | |
:10E46000D034109E089C0A351027037EE55FC30058 | |
:10E4700000270D340683270F350622048D1020BD9A | |
:10E480007EE55654494E592056312E333704340612 | |
:10E49000BDE65D9F14A6609E0E9C08270510A30094 | |
:10E4A00024029E06BDE7C69F0E25229F103002A6BD | |
:10E4B00080810426FA9C08270EA6809F169E10A72E | |
:10E4C000809F109E1620EE9E109F089F0A9E14C6E5 | |
:10E4D000FF5CA680810426F95D2603326239301F75 | |
:10E4E000CB04301F5AA600812027F78604A7014FCE | |
:10E4F0009E089F16D308DD08DD0ABDE76424079F48 | |
:10E50000089F0A7EE54E9E089F109E169C0E270AC5 | |
:10E51000A6829F169E10A78220EE35069E0EED81E4 | |
:10E520009F169E14A6809F149E16A7809F16810496 | |
:10E5300026F039BDEBAC3001A600810426F5398EFA | |
:10E54000E5478DF40F18390D0A7F000000048D2671 | |
:10E55000534F525259048D1E57484154203F048D49 | |
:10E5600015484F57203F048D0D425245414B048DB5 | |
:10E570000553544F50048DC78607BDEBACDC12BD6C | |
:10E58000EA608620BDEBAC35108DAD8DB27EE431F6 | |
:10E590008DAD8E0200BDEBA281202514817F27F571 | |
:10E5A0008C0248260486072002A780BDEBAC20E53C | |
:10E5B00081082724811827D8810A2731810D26D583 | |
:10E5C0000D192705BDEBAC20073410BDE53F351014 | |
:10E5D0008604A7008E0200398C020027B8301F86FF | |
:10E5E00008BDEBAC8620BDEBAC860820BE1A010648 | |
:10E5F0001920B830018D66810426F8BDE9339612E2 | |
:10E600009A1327149C0826037EE55FEC81DD12BD7A | |
:10E61000EB9E8D0825033406397EE9448D3F9F0E1D | |
:10E620008EEB39A680810426059E0E1A01399F16AD | |
:10E630009E0E9F149E14A100261530019F149E1655 | |
:10E64000A6809F16810426ECEC009E141CFE399EC9 | |
:10E6500016A680810426FA300220C83001A6008167 | |
:10E660002027F8398D1A2422814125118146220D57 | |
:10E6700080371CFE3981412504815A230D1A013946 | |
:10E68000813025F9813922F580301CFE398DCE8DFF | |
:10E69000E425121F89A6018DDC24E23001C0415817 | |
:10E6A0004FD30C1CFE39BDE9123406BDE65D812C4A | |
:10E6B000270981291A0127157EE5563001BDE84555 | |
:10E6C0003402BDE65D8129350226ED1CFE30019F36 | |
:10E6D0000EADF19E0E1CFE39BDE65D812D260D307E | |
:10E6E000018D092506405082001CFC39BDE65DBD48 | |
:10E6F000E680242F81241A01266030016FE26FE248 | |
:10E70000A600BDE664254F300134103402EC638569 | |
:10E71000F0264A5849584958495849EBE0ED6235C6 | |
:10E720001020DD300134026FE2A600BDE680252610 | |
:10E73000300134103402EC63584929215849291D0D | |
:10E74000E363291958492915EB608900290FED6306 | |
:10E750003261351020D335061CFE1CFD39AE613206 | |
:10E76000651A033910DF10DC10830030930A39BDBD | |
:10E77000E8FF34063410E672351032624F39BDE8D6 | |
:10E78000FF3406BDE65D813D27037EE5563001BDC1 | |
:10E79000E845BDE9333410E772351032627EE5FE9C | |
:10E7A000BDE65D9F0E8EE7B0BDE623250234063937 | |
:10E7B00055535204E6A65045454B04E76F4D454D71 | |
:10E7C00004E764049E069C0826031A033910A3007C | |
:10E7D00026031CFC3924051A011CFD393402860469 | |
:10E7E00030013001A10026FA3502300120D88D55C4 | |
:10E7F00034065FBDE65D813D2723813C2610300154 | |
:10E800005CBDE65D813E26113001CB042013813EC4 | |
:10E81000265F3001CB04BDE65D813D26043001CB8F | |
:10E820000234048D203410A3631FA8441F89484874 | |
:10E830003404ABE0840626014C5FA4622701534FE9 | |
:10E8400035103263396FE26FE2BDE65D812D271727 | |
:10E85000812B260230018D1CE360ED60BDE65D81F9 | |
:10E860002B27F1812D260A30018D0940508200208E | |
:10E87000E7350639BDE8E73406BDE65D812A27485D | |
:10E88000812F270335063930018D5C341030623416 | |
:10E8900006A800BDE9263060BDE9263402861134A1 | |
:10E8A000024F5FA3622406E3621CFE20021A016984 | |
:10E8B00067696659496A6026EAA66132644D2A048E | |
:10E8C00030628D66351020B130018D1B3404E66254 | |
:10E8D0003DA661E761E6603DA662E76235043DABB7 | |
:10E8E00060AB61ED602092BDE68D250934101F01FB | |
:10E8F000EC00351039BDE6EC24FABDE7A024F58D17 | |
:10E90000113402BDE65D8129350226033001397ECE | |
:10E91000E556BDE76424037EE54EBDE65D8128260D | |
:10E92000EE30017EE8456D002A0860006001240297 | |
:10E930006A00393402BDE65D810427037EE5563066 | |
:10E9400001350239BDE68D24037EE5563406BDE669 | |
:10E950005D813D27037EE5563001BDE8458DD49F9E | |
:10E960000E3510ED009E0E7EE5FEBDE7EE5D270341 | |
:10E970007EE60F7EE5F5BDE8458DB8BDE7C4250F01 | |
:10E980007EE60BBDE8458DAB9F0EBDE7C424037E3C | |
:10E99000E55FBDE76424037EE54EDC0E3406DC1241 | |
:10E9A0003406BDE60B3506DD1235107EE5FEBDE60C | |
:10E9B0005D812C2736813B273D8104272581222636 | |
:10E9C0000630018D422009BDE84534108D473510D1 | |
:10E9D000BDE65D812C2714813B271B810427037E24 | |
:10E9E000E5563410BDE53F35102014C6078620BD1E | |
:10E9F000EBACD51826F73001BDE65D810426B230B8 | |
:10EA0000017EE5FEBDEBACA680810426037EE556C3 | |
:10EA1000812226F0394D2A0D405082003402862D85 | |
:10EA2000BDEBAC35028EEA54300210A30024058CF5 | |
:10EA3000EA5E26F40F1610A3002506A3000C16208C | |
:10EA4000F5340286309B16BDEBAC35028CEA5E27AE | |
:10EA500004300220DF39271003E80064000A0001B7 | |
:10EA60008EEA5820CFBDE68D253C34069F0E863FAA | |
:10EA7000BDEBACBDE592BDE65D810427F1BDE6D8F6 | |
:10EA8000240B8EEABABDE538BDE53F20E19F143581 | |
:10EA900010ED009E0EBDE65D812C27037EE5FB3068 | |
:10EAA00001BDE68D24037EE556340634109E14BD68 | |
:10EAB000E65D812C26C0300120BC52452D454E54C8 | |
:10EAC0004552049E0C86346F804A26FB9E067EE6E5 | |
:10EAD00004BDE6EC24084F5FDD0E867F2017DD0EB7 | |
:10EAE000BDE65D812C2704960E200A3001BDE6ECC0 | |
:10EAF00024037EE556BDE9333406DC0E9F0EBDE7E8 | |
:10EB0000C49C082728350610A30025283406EC816C | |
:10EB10003410BDEA6035108620BDEBACBDE5383061 | |
:10EB2000013410BDE53F3510BDEB9E20D432628626 | |
:10EB300003BDEBAC9E0E7EE5FE4C455404E9444912 | |
:10EB40004604E96A474F544F04E976474F5355420C | |
:10EB500004E98352455455524E04E933504F4B4516 | |
:10EB600004E77E5052494E5404E9AE494E50555484 | |
:10EB700004EA6552454D04E5F553544F5004E56FE2 | |
:10EB8000454E4404E56F52554E04EAC34C49535474 | |
:10EB900004EAD14E455704E41F3F04E9AE048D2A30 | |
:10EBA00027098D0D810326037EE567390C187EEB5E | |
:10EBB000BB8D1727FCB683FF847F393402B683FEF2 | |
:10EBC000850227F93502B783FF393402B683FE8503 | |
:10EBD000202705B683FF20F485013502398603B767 | |
:08EBE00083FE8615B783FE39A0 | |
:00000001FF |
0000 ;NAM TB01V137 | |
0000 ;* WRITTEN 20-OCT-77 BY JOHN BYRNS | |
0000 ;* REVISED 30-DEC-77 | |
0000 ;* REVISED 18-JAN-78 | |
0000 ;* REVISED 10-APR-78 | |
0000 ;* REVISED 08-MAY-79 TO ELIMINATE USE OF SP | |
0000 ;* REVISED 24-JAN-80 TO USE 6801 ON CHIP RAM | |
0000 ;* REVISED 26-JAN-80 FOR NEW 6801 INSTRUCTIONS | |
0000 ;* REVISED 24-JUL-81 FOR WHISTON BOARD | |
0000 ;* REVISED 24-SEP-81 INCLUDE USER FUNCTION | |
0000 ;* REVISED 08-APR-82 MAKE STANDALONE INCLUDE HEX CONSTANTS AND MEM FUNCTION | |
0000 ;* REVISED 21-NOV-84 FOR 6809 | |
0000 ;* REVISED FEB 94 ADAPTED TO SIMULATOR AND BUGFIXES BY L.C. BENSCHOP. | |
0000 ;* | |
0000 .ENGINE kilo | |
0000 EOL: EQU $04 | |
0000 ETX: EQU $03 | |
0000 SPACE: EQU $20 | |
0000 CR: EQU $0D | |
0000 LF: EQU $0A | |
0000 BS: EQU $08 | |
0000 CAN: EQU $18 | |
0000 BELL: EQU $07 | |
0000 FILL: EQU $00 | |
0000 DEL: EQU $7F | |
0000 BSIZE: EQU 73 | |
0000 STKCUS: EQU 48 | |
0000 ;* | |
0000 BACIA: EQU $83FE | |
0000 RMCR: EQU bACIA | |
0000 TRCS: EQU bACIA | |
0000 RECEV: EQU bACIA+1 | |
0000 TRANS: EQU bACIA+1 | |
0000 CNTL1: EQU $03 | |
0000 CNTL2: EQU $15 | |
0000 RDRF: EQU $01 | |
0000 ORFE: EQU $20 | |
0000 TDRE: EQU $02 | |
0000 ;* EDIT THE FOLLOWING EQUATES TO REFLECT THE | |
0000 ;* DESIRED ROM AND RAM LAYOUT | |
0000 LORAM: EQU $0080 | |
0000 BUFFER: EQU $0200 | |
0000 RAMSIZ: EQU $2000 | |
0000 ROMADR: EQU $f000 | |
0000 ;* | |
0000 RAMBEG: EQU BUFFER+BSIZE | |
0000 RAMEND: EQU BUFFER+RAMSIZ | |
0000 ;* | |
0000 RAMPAT: EQU $AA0F | |
0000 ROMPAT: EQU $F055 | |
0000 ;* | |
0000 ; ORG LORAM | |
0000 .BSSEG | |
0006 .ORG 6 | |
0006 USRBAS: RMB 2 | |
0008 USRTOP: RMB 2 | |
000A STKLIM: RMB 2 | |
000C STKTOP: RMB 2 | |
000E CURSOR: RMB 2 | |
0010 SAVESP: RMB 2 | |
0012 LINENB: RMB 2 | |
0014 SCRTCH: RMB 2 | |
0016 CHAR: RMB 2 | |
0018 ZONE: RMB 1 | |
0019 MODE: RMB 1 | |
001A RESRVD: RMB 1 | |
001B LOEND: EQU $ | |
001B ;* | |
0000 .CSEG | |
FFF0 .ORG 0xfff0 | |
FFF0 ;reserved | |
FFF0 E4 00 DW reset | |
FFF2 ;SWI3 | |
FFF2 E4 00 DW reset | |
FFF4 ;SWI2 | |
FFF4 E4 00 DW reset | |
FFF6 ;FIRQ | |
FFF6 E4 00 DW reset | |
FFF8 ;IRQ | |
FFF8 E4 00 DW reset | |
FFFA ;SWI | |
FFFA E4 00 DW reset | |
FFFC ;NMI | |
FFFC E4 00 DW reset | |
FFFE ;RES | |
FFFE E4 00 DW reset | |
10000 .BLOCK | |
E400 .ORG $e400 | |
E400 RESET: | |
E400 .ENT $ | |
E400 7E E4 15 BASIC: JMP SETUP | |
E403 4D 4F 44 39 42 41 53 49 43 00 .CSTR "MOD9BASIC" | |
E40D 10 DE 0C WARMS: LDS STKTOP | |
E410 BD EB E7 JSR INTEEE | |
E413 20 13 BRA WMS05 | |
E415 10 CE 21 CC SETUP: LDS #RAMEND-52 | |
E419 10 DF 0C SET03: STS STKTOP | |
E41C BD EB E7 JSR INTEEE | |
E41F CC 02 49 CLEAR: LDD #RAMBEG | |
E422 DD 06 STD USRBAS | |
E424 DD 08 STD USRTOP | |
E426 DD 0A CLR02: STD STKLIM | |
E428 BD E5 3F WMS05: JSR CRLF | |
E42B 8E E4 83 LDX #VSTR | |
E42E BD E5 38 JSR PUTSTR | |
E431 10 DE 0C CMDB: LDS STKTOP | |
E434 0F 19 CLR MODE | |
E436 BD E5 3F JSR CRLF | |
E439 9E 06 LDX USRBAS | |
E43B 9F 0E STX CURSOR | |
E43D 8E 00 00 CMDE: LDX #0000 | |
E440 9F 12 STX LINENB | |
E442 0D 19 TST MODE | |
E444 26 05 BNE CMD01 | |
E446 86 3A LDA #":" | |
E448 BD EB AC JSR PUTCHR | |
E44B BD E5 92 CMD01: JSR GETLIN | |
E44E BD E6 EC JSR TSTNBR | |
E451 24 0E BCC CMD02 | |
E453 29 2B BVS CMD05 | |
E455 BD E6 5D JSR SKIPSP | |
E458 81 04 CMPA #EOL | |
E45A 27 E1 BEQ CMDE | |
E45C BD E6 0F JSR MSLINE | |
E45F 20 D0 BRA CMDB | |
E461 34 10 CMD02: PSHS X | |
E463 9E 08 LDX USRTOP | |
E465 9C 0A CMPX STKLIM | |
E467 35 10 PULS X | |
E469 27 03 BEQ CMD03 | |
E46B 7E E5 5F JMP ERRORR | |
E46E C3 00 00 CMD03: ADDD #0 | |
E471 27 0D BEQ CMD05 | |
E473 34 06 CMD04: PSHS D | |
E475 83 27 0F SUBD #9999 | |
E478 35 06 PULS D | |
E47A 22 04 BHI CMD05 | |
E47C 8D 10 BSR EDITOR | |
E47E 20 BD BRA CMDE | |
E480 7E E5 56 CMD05: JMP ERRORS | |
E483 54 49 4E 59 20 56 31 2E 33 37 VSTR: DB "TINY V1.37" | |
E48D 04 FCB EOL | |
E48E ;****************************** | |
E48E ;****************************** | |
E48E 34 06 EDITOR: PSHS D | |
E490 BD E6 5D JSR SKIPSP | |
E493 9F 14 STX SCRTCH | |
E495 A6 60 LDA 0,S | |
E497 9E 0E LDX CURSOR | |
E499 9C 08 CMPX USRTOP | |
E49B 27 05 BEQ ED00 | |
E49D 10 A3 00 CMPD 0,X | |
E4A0 24 02 BCC ED01 | |
E4A2 9E 06 ED00: LDX USRBAS | |
E4A4 BD E7 C6 ED01: JSR FNDLIN | |
E4A7 9F 0E STX CURSOR | |
E4A9 25 22 BCS ED04 | |
E4AB 9F 10 STX SAVESP | |
E4AD 30 02 LEAX 2,X | |
E4AF A6 80 ED02: LDA ,X+ | |
E4B1 81 04 CMPA #EOL | |
E4B3 26 FA BNE ED02 | |
E4B5 9C 08 ED03: CMPX USRTOP | |
E4B7 27 0E BEQ ED35 | |
E4B9 A6 80 LDA ,X+ | |
E4BB 9F 16 STX CHAR | |
E4BD 9E 10 LDX SAVESP | |
E4BF A7 80 STA ,X+ | |
E4C1 9F 10 STX SAVESP | |
E4C3 9E 16 LDX CHAR | |
E4C5 20 EE BRA ED03 | |
E4C7 9E 10 ED35: LDX SAVESP | |
E4C9 9F 08 STX USRTOP | |
E4CB 9F 0A STX STKLIM | |
E4CD 9E 14 ED04: LDX SCRTCH | |
E4CF C6 FF LDB #-1 | |
E4D1 5C ED05: INCB | |
E4D2 A6 80 LDA ,X+ | |
E4D4 81 04 CMPA #EOL | |
E4D6 26 F9 BNE ED05 | |
E4D8 5D TSTB | |
E4D9 26 03 BNE ED55 | |
E4DB 32 62 LEAS 2,S | |
E4DD 39 RTS | |
E4DE 30 1F ED55: LEAX -1,X | |
E4E0 CB 04 ADDB #4 | |
E4E2 30 1F ED06: LEAX -1,X | |
E4E4 5A DECB | |
E4E5 A6 00 LDA 0,X | |
E4E7 81 20 CMPA #SPACE | |
E4E9 27 F7 BEQ ED06 | |
E4EB 86 04 LDA #EOL | |
E4ED A7 01 STA 1,X | |
E4EF 4F CLRA | |
E4F0 9E 08 LDX USRTOP | |
E4F2 9F 16 STX CHAR | |
E4F4 D3 08 ADDD USRTOP | |
E4F6 DD 08 STD USRTOP | |
E4F8 DD 0A STD STKLIM | |
E4FA BD E7 64 JSR TSTSTK | |
E4FD 24 07 BCC ED07 | |
E4FF 9F 08 STX USRTOP | |
E501 9F 0A STX STKLIM | |
E503 7E E5 4E JMP ERRORF | |
E506 9E 08 ED07: LDX USRTOP | |
E508 9F 10 ED08: STX SAVESP | |
E50A 9E 16 LDX CHAR | |
E50C 9C 0E CMPX CURSOR | |
E50E 27 0A BEQ ED09 | |
E510 A6 82 LDA ,-X | |
E512 9F 16 STX CHAR | |
E514 9E 10 LDX SAVESP | |
E516 A7 82 STA ,-X | |
E518 20 EE BRA ED08 | |
E51A 35 06 ED09: PULS D | |
E51C 9E 0E LDX CURSOR | |
E51E ED 81 STD ,X++ | |
E520 9F 16 STX CHAR | |
E522 9E 14 ED10: LDX SCRTCH | |
E524 A6 80 LDA ,X+ | |
E526 9F 14 STX SCRTCH | |
E528 9E 16 LDX CHAR | |
E52A A7 80 STA ,X+ | |
E52C 9F 16 STX CHAR | |
E52E 81 04 CMPA #EOL | |
E530 26 F0 BNE ED10 | |
E532 39 RTS | |
E533 ;****************************** | |
E533 ;****************************** | |
E533 BD EB AC PUTS01: JSR PUTCHR | |
E536 30 01 LEAX 1,X | |
E538 A6 00 PUTSTR: LDA 0,X | |
E53A 81 04 CMPA #EOL | |
E53C 26 F5 BNE PUTS01 | |
E53E 39 RTS | |
E53F ;****************************** | |
E53F ;****************************** | |
E53F 8E E5 47 CRLF: LDX #CRLFST | |
E542 8D F4 BSR PUTSTR | |
E544 0F 18 CLR ZONE | |
E546 39 RTS | |
E547 0D 0A 7F 00 00 00 04 CRLFST: FCB CR,LF,DEL,FILL,FILL,FILL,EOL | |
E54E ;****************************** | |
E54E ;****************************** | |
E54E 8D 26 ERRORF: BSR ER01 | |
E550 53 4F 52 52 59 DB "SORRY" | |
E555 04 FCB EOL | |
E556 8D 1E ERRORS: BSR ER01 | |
E558 57 48 41 54 20 3F DB "WHAT ?" | |
E55E 04 FCB EOL | |
E55F 8D 15 ERRORR: BSR ER01 | |
E561 48 4F 57 20 3F DB "HOW ?" | |
E566 04 FCB EOL | |
E567 8D 0D BREAK: BSR ER01 | |
E569 42 52 45 41 4B DB "BREAK" | |
E56E 04 FCB EOL | |
E56F 8D 05 END: BSR ER01 | |
E571 53 54 4F 50 DB "STOP" | |
E575 04 FCB EOL | |
E576 8D C7 ER01: BSR CRLF | |
E578 86 07 LDA #BELL | |
E57A BD EB AC JSR PUTCHR | |
E57D DC 12 LDD LINENB | |
E57F BD EA 60 JSR PRNT4 | |
E582 86 20 LDA #SPACE | |
E584 BD EB AC JSR PUTCHR | |
E587 35 10 PULS X | |
E589 8D AD BSR PUTSTR | |
E58B 8D B2 BSR CRLF | |
E58D 7E E4 31 JMP CMDB | |
E590 ;****************************** | |
E590 ;****************************** | |
E590 8D AD GL00: BSR CRLF | |
E592 8E 02 00 GETLIN: LDX #BUFFER | |
E595 BD EB A2 GL03: JSR GETCHR | |
E598 81 20 CMPA #SPACE | |
E59A 25 14 BCS GL05 | |
E59C 81 7F CMPA #$7F | |
E59E 27 F5 BEQ GL03 | |
E5A0 8C 02 48 CMPX #BUFFER+BSIZE-1 | |
E5A3 26 04 BNE GL04 | |
E5A5 86 07 LDA #BELL | |
E5A7 20 02 BRA GL02 | |
E5A9 A7 80 GL04: STA ,X+ | |
E5AB BD EB AC GL02: JSR PUTCHR | |
E5AE 20 E5 BRA GL03 | |
E5B0 81 08 GL05: CMPA #BS | |
E5B2 27 24 BEQ GL07 | |
E5B4 81 18 CMPA #CAN | |
E5B6 27 D8 BEQ GL00 | |
E5B8 81 0A CMPA #LF | |
E5BA 27 31 BEQ GL09 | |
E5BC 81 0D CMPA #CR | |
E5BE 26 D5 BNE GL03 | |
E5C0 0D 19 TST MODE | |
E5C2 27 05 BEQ GL06 | |
E5C4 BD EB AC JSR PUTCHR | |
E5C7 20 07 BRA GL08 | |
E5C9 34 10 GL06: PSHS X | |
E5CB BD E5 3F JSR CRLF | |
E5CE 35 10 PULS X | |
E5D0 86 04 GL08: LDA #EOL | |
E5D2 A7 00 STA 0,X | |
E5D4 8E 02 00 LDX #BUFFER | |
E5D7 39 RTS | |
E5D8 8C 02 00 GL07: CMPX #BUFFER | |
E5DB 27 B8 BEQ GL03 | |
E5DD 30 1F LEAX -1,X | |
E5DF 86 08 LDA #BS | |
E5E1 BD EB AC JSR PUTCHR | |
E5E4 86 20 LDA #SPACE | |
E5E6 BD EB AC JSR PUTCHR | |
E5E9 86 08 LDA #BS | |
E5EB 20 BE BRA GL02 | |
E5ED 1A 01 GL09: ORCC #$01 | |
E5EF 06 19 ROR MODE | |
E5F1 20 B8 BRA GL02 | |
E5F3 ;****************************** | |
E5F3 ;****************************** | |
E5F3 30 01 REM00: LEAX 1,X | |
E5F5 8D 66 REM: BSR SKIPSP | |
E5F7 81 04 CMPA #EOL | |
E5F9 26 F8 BNE REM00 | |
E5FB BD E9 33 ENDSMT: JSR TSTEOL | |
E5FE 96 12 ENDS02: LDA LINENB | |
E600 9A 13 ORA LINENB+1 | |
E602 27 14 BEQ REM09 | |
E604 9C 08 REM05: CMPX USRTOP | |
E606 26 03 BNE NXTLIN | |
E608 7E E5 5F JMP ERRORR | |
E60B EC 81 NXTLIN: LDD ,X++ | |
E60D DD 12 STD LINENB | |
E60F BD EB 9E MSLINE: JSR TSTBRK | |
E612 8D 08 BSR IFAN | |
E614 25 03 BCS IMPLET | |
E616 34 06 PSHS D | |
E618 39 REM09: RTS | |
E619 7E E9 44 IMPLET: JMP LET | |
E61C ;****************************** | |
E61C ;****************************** | |
E61C 8D 3F IFAN: BSR SKIPSP | |
E61E 9F 0E STX CURSOR | |
E620 8E EB 39 LDX #VERBT | |
E623 A6 80 FAN00: LDA ,X+ | |
E625 81 04 CMPA #EOL | |
E627 26 05 BNE FAN04 | |
E629 9E 0E LDX CURSOR | |
E62B 1A 01 ORCC #$01 | |
E62D 39 RTS | |
E62E 9F 16 FAN04: STX CHAR | |
E630 9E 0E LDX CURSOR | |
E632 9F 14 STX SCRTCH | |
E634 9E 14 FAN05: LDX SCRTCH | |
E636 A1 00 CMPA 0,X | |
E638 26 15 BNE FAN07 | |
E63A 30 01 LEAX 1,X | |
E63C 9F 14 STX SCRTCH | |
E63E 9E 16 LDX CHAR | |
E640 A6 80 LDA ,X+ | |
E642 9F 16 STX CHAR | |
E644 81 04 CMPA #EOL | |
E646 26 EC BNE FAN05 | |
E648 EC 00 LDD 0,X | |
E64A 9E 14 LDX SCRTCH | |
E64C 1C FE ANDCC #$FE | |
E64E 39 RTS | |
E64F 9E 16 FAN07: LDX CHAR | |
E651 A6 80 FAN08: LDA ,X+ | |
E653 81 04 CMPA #EOL | |
E655 26 FA BNE FAN08 | |
E657 30 02 LEAX 2,X | |
E659 20 C8 BRA FAN00 | |
E65B ;****************************** | |
E65B ;****************************** | |
E65B 30 01 NXTNSP: LEAX 1,X | |
E65D A6 00 SKIPSP: LDA 0,X | |
E65F 81 20 CMPA #SPACE | |
E661 27 F8 BEQ NXTNSP | |
E663 39 RTS | |
E664 ;****************************** | |
E664 ;****************************** | |
E664 8D 1A TSTHEX: BSR TSTDIG | |
E666 24 22 BCC TST05 | |
E668 81 41 CMPA #"A" | |
E66A 25 11 BCS TST03 | |
E66C 81 46 CMPA #"F" | |
E66E 22 0D BHI TST03 | |
E670 80 37 SUBA #"A"-10 | |
E672 1C FE ANDCC #$FE | |
E674 39 RTS | |
E675 ;****************************** | |
E675 ;****************************** | |
E675 81 41 TSTLTR: CMPA #"A" | |
E677 25 04 BCS TST03 | |
E679 81 5A CMPA #"Z" | |
E67B 23 0D BLS TST05 | |
E67D 1A 01 TST03: ORCC #$01 | |
E67F 39 RTS | |
E680 ;****************************** | |
E680 ;****************************** | |
E680 81 30 TSTDIG: CMPA #"0" | |
E682 25 F9 BCS TST03 | |
E684 81 39 CMPA #"9" | |
E686 22 F5 BHI TST03 | |
E688 80 30 SUBA #"0" | |
E68A 1C FE TST05: ANDCC #$FE | |
E68C 39 RTS | |
E68D ;****************************** | |
E68D ;****************************** | |
E68D 8D CE TSTVAR: BSR SKIPSP | |
E68F 8D E4 BSR TSTLTR | |
E691 25 12 BCS TSTV03 | |
E693 1F 89 TFR A,B | |
E695 A6 01 LDA 1,X | |
E697 8D DC BSR TSTLTR | |
E699 24 E2 BCC TST03 | |
E69B 30 01 LEAX 1,X | |
E69D C0 41 SUBB #"A" | |
E69F 58 ASLB | |
E6A0 4F CLRA | |
E6A1 D3 0C ADDD STKTOP | |
E6A3 1C FE TSTV02: ANDCC #$FE | |
E6A5 39 TSTV03: RTS | |
E6A6 ;****************************** | |
E6A6 ;****************************** | |
E6A6 BD E9 12 USER: JSR ARGONE | |
E6A9 34 06 PSHS D | |
E6AB BD E6 5D JSR SKIPSP | |
E6AE 81 2C CMPA #"," | |
E6B0 27 09 BEQ USER03 | |
E6B2 81 29 CMPA #")" | |
E6B4 1A 01 ORCC #$01 | |
E6B6 27 15 BEQ USER05 | |
E6B8 7E E5 56 USER02: JMP ERRORS | |
E6BB 30 01 USER03: LEAX 1,X | |
E6BD BD E8 45 JSR EXPR | |
E6C0 34 02 PSHS A | |
E6C2 BD E6 5D JSR SKIPSP | |
E6C5 81 29 CMPA #")" | |
E6C7 35 02 PULS A | |
E6C9 26 ED BNE USER02 | |
E6CB 1C FE ANDCC #$FE | |
E6CD 30 01 USER05: LEAX 1,X | |
E6CF 9F 0E STX CURSOR | |
E6D1 AD F1 JSR [,S++] | |
E6D3 9E 0E LDX CURSOR | |
E6D5 1C FE ANDCC #$FE | |
E6D7 39 RTS | |
E6D8 ;****************************** | |
E6D8 ;****************************** | |
E6D8 BD E6 5D TSTSNB: JSR SKIPSP | |
E6DB 81 2D CMPA #"-" | |
E6DD 26 0D BNE TSTNBR | |
E6DF 30 01 LEAX 1,X | |
E6E1 8D 09 BSR TSTNBR | |
E6E3 25 06 BCS TSN02 | |
E6E5 40 NEGA | |
E6E6 50 NEGB | |
E6E7 82 00 SBCA #0 | |
E6E9 1C FC ANDCC #$FC | |
E6EB 39 TSN02: RTS | |
E6EC ;****************************** | |
E6EC ;****************************** | |
E6EC BD E6 5D TSTNBR: JSR SKIPSP | |
E6EF BD E6 80 JSR TSTDIG | |
E6F2 24 2F BCC TSTN02 | |
E6F4 81 24 CMPA #"$" | |
E6F6 1A 01 ORCC #$01 | |
E6F8 26 60 BNE TSTN09 | |
E6FA 30 01 TSTN20: LEAX 1,X | |
E6FC 6F E2 CLR ,-S | |
E6FE 6F E2 CLR ,-S | |
E700 A6 00 TSTN23: LDA 0,X | |
E702 BD E6 64 JSR TSTHEX | |
E705 25 4F BCS TSTN07 | |
E707 30 01 LEAX 1,X | |
E709 34 10 PSHS X | |
E70B 34 02 PSHS A | |
E70D EC 63 LDD 3,S | |
E70F 85 F0 BITA #$F0 | |
E711 26 4A BNE TSTN11 | |
E713 58 ASLB | |
E714 49 ROLA | |
E715 58 ASLB | |
E716 49 ROLA | |
E717 58 ASLB | |
E718 49 ROLA | |
E719 58 ASLB | |
E71A 49 ROLA | |
E71B EB E0 ADDB ,S+ | |
E71D ED 62 STD 2,S | |
E71F 35 10 PULS X | |
E721 20 DD BRA TSTN23 | |
E723 30 01 TSTN02: LEAX 1,X | |
E725 34 02 PSHS A | |
E727 6F E2 CLR ,-S | |
E729 A6 00 TSTN03: LDA 0,X | |
E72B BD E6 80 JSR TSTDIG | |
E72E 25 26 BCS TSTN07 | |
E730 30 01 LEAX 1,X | |
E732 34 10 PSHS X | |
E734 34 02 PSHS A | |
E736 EC 63 LDD 3,S | |
E738 58 ASLB | |
E739 49 ROLA | |
E73A 29 21 BVS TSTN11 | |
E73C 58 ASLB | |
E73D 49 ROLA | |
E73E 29 1D BVS TSTN11 | |
E740 E3 63 ADDD 3,S | |
E742 29 19 BVS TSTN11 | |
E744 58 ASLB | |
E745 49 ROLA | |
E746 29 15 BVS TSTN11 | |
E748 EB 60 ADDB 0,S | |
E74A 89 00 ADCA #0 | |
E74C 29 0F BVS TSTN11 | |
E74E ED 63 STD 3,S | |
E750 32 61 LEAS 1,S | |
E752 35 10 PULS X | |
E754 20 D3 BRA TSTN03 | |
E756 35 06 TSTN07: PULS D | |
E758 1C FE ANDCC #$FE | |
E75A 1C FD TSTN09: ANDCC #$FD | |
E75C 39 RTS | |
E75D AE 61 TSTN11: LDX 1,S | |
E75F 32 65 LEAS 5,S | |
E761 1A 03 ORCC #$03 | |
E763 39 RTS | |
E764 ;****************************** | |
E764 ;****************************** | |
E764 10 DF 10 TSTSTK: STS SAVESP | |
E767 DC 10 LDD SAVESP | |
E769 83 00 30 SUBD #STKCUS | |
E76C 93 0A SUBD STKLIM | |
E76E 39 RTS | |
E76F ;****************************** | |
E76F ;****************************** | |
E76F BD E8 FF PEEK: JSR PAREXP | |
E772 34 06 PSHS D | |
E774 34 10 PSHS X | |
E776 E6 72 LDB [2,S] | |
E778 35 10 PULS X | |
E77A 32 62 LEAS 2,S | |
E77C 4F CLRA | |
E77D 39 RTS | |
E77E ;****************************** | |
E77E ;****************************** | |
E77E BD E8 FF POKE: JSR PAREXP | |
E781 34 06 PSHS D | |
E783 BD E6 5D JSR SKIPSP | |
E786 81 3D CMPA #"=" | |
E788 27 03 BEQ POKE05 | |
E78A 7E E5 56 JMP ERRORS | |
E78D 30 01 POKE05: LEAX 1,X | |
E78F BD E8 45 JSR EXPR | |
E792 BD E9 33 JSR TSTEOL | |
E795 34 10 PSHS X | |
E797 E7 72 STB [2,S] | |
E799 35 10 PULS X | |
E79B 32 62 LEAS 2,S | |
E79D 7E E5 FE JMP ENDS02 | |
E7A0 ;****************************** | |
E7A0 ;****************************** | |
E7A0 BD E6 5D TSTFUN: JSR SKIPSP | |
E7A3 9F 0E STX CURSOR | |
E7A5 8E E7 B0 LDX #FUNT | |
E7A8 BD E6 23 JSR FAN00 | |
E7AB 25 02 BCS TSTF05 | |
E7AD 34 06 PSHS D | |
E7AF 39 TSTF05: RTS | |
E7B0 ;****************************** | |
E7B0 ;****************************** | |
E7B0 55 53 52 FUNT: DB "USR" | |
E7B3 04 FCB EOL | |
E7B4 E6 A6 FDB USER | |
E7B6 50 45 45 4B DB "PEEK" | |
E7BA 04 FCB EOL | |
E7BB E7 6F FDB PEEK | |
E7BD 4D 45 4D DB "MEM" | |
E7C0 04 FCB EOL | |
E7C1 E7 64 FDB TSTSTK | |
E7C3 04 FCB EOL | |
E7C4 ;****************************** | |
E7C4 ;****************************** | |
E7C4 9E 06 FLINE: LDX USRBAS | |
E7C6 9C 08 FNDLIN: CMPX USRTOP | |
E7C8 26 03 BNE FND03 | |
E7CA 1A 03 ORCC #$03 | |
E7CC 39 RTS | |
E7CD 10 A3 00 FND03: CMPD 0,X | |
E7D0 26 03 BNE FND05 | |
E7D2 1C FC ANDCC #$FC | |
E7D4 39 RTS | |
E7D5 24 05 FND05: BCC FND07 | |
E7D7 1A 01 ORCC #$01 | |
E7D9 1C FD ANDCC #$FD | |
E7DB 39 RTS | |
E7DC 34 02 FND07: PSHS A | |
E7DE 86 04 LDA #EOL | |
E7E0 30 01 LEAX 1,X | |
E7E2 30 01 FND09: LEAX 1,X | |
E7E4 A1 00 CMPA 0,X | |
E7E6 26 FA BNE FND09 | |
E7E8 35 02 PULS A | |
E7EA 30 01 LEAX 1,X | |
E7EC 20 D8 BRA FNDLIN | |
E7EE ;****************************** | |
E7EE ;****************************** | |
E7EE 8D 55 RELEXP: BSR EXPR | |
E7F0 34 06 PSHS D | |
E7F2 5F CLRB | |
E7F3 BD E6 5D JSR SKIPSP | |
E7F6 81 3D CMPA #"=" | |
E7F8 27 23 BEQ REL06 | |
E7FA 81 3C CMPA #"<" | |
E7FC 26 10 BNE REL03 | |
E7FE 30 01 LEAX 1,X | |
E800 5C INCB | |
E801 BD E6 5D JSR SKIPSP | |
E804 81 3E CMPA #">" | |
E806 26 11 BNE REL05 | |
E808 30 01 LEAX 1,X | |
E80A CB 04 ADDB #4 | |
E80C 20 13 BRA REL07 | |
E80E 81 3E REL03: CMPA #">" | |
E810 26 5F BNE EXPR06 | |
E812 30 01 LEAX 1,X | |
E814 CB 04 ADDB #4 | |
E816 BD E6 5D JSR SKIPSP | |
E819 81 3D REL05: CMPA #"=" | |
E81B 26 04 BNE REL07 | |
E81D 30 01 REL06: LEAX 1,X | |
E81F CB 02 ADDB #2 | |
E821 34 04 REL07: PSHS B | |
E823 8D 20 BSR EXPR | |
E825 34 10 PSHS X | |
E827 A3 63 SUBD 3,S | |
E829 1F A8 TFR CC,A | |
E82B 44 LSRA | |
E82C 1F 89 TFR A,B | |
E82E 48 ASLA | |
E82F 48 ASLA | |
E830 34 04 PSHS B | |
E832 AB E0 ADDA ,S+ | |
E834 84 06 ANDA #$06 | |
E836 26 01 BNE REL08 | |
E838 4C INCA | |
E839 5F REL08: CLRB | |
E83A A4 62 ANDA 2,S | |
E83C 27 01 BEQ REL09 | |
E83E 53 COMB | |
E83F 4F REL09: CLRA | |
E840 35 10 PULS X | |
E842 32 63 LEAS 3,S | |
E844 39 RTS | |
E845 ;****************************** | |
E845 ;****************************** | |
E845 6F E2 EXPR: CLR ,-S | |
E847 6F E2 CLR ,-S | |
E849 BD E6 5D JSR SKIPSP | |
E84C 81 2D CMPA #"-" | |
E84E 27 17 BEQ EXPR05 | |
E850 81 2B CMPA #"+" | |
E852 26 02 BNE EXPR03 | |
E854 30 01 EXPR02: LEAX 1,X | |
E856 8D 1C EXPR03: BSR TERM | |
E858 E3 60 EXPR04: ADDD 0,S | |
E85A ED 60 STD 0,S | |
E85C BD E6 5D JSR SKIPSP | |
E85F 81 2B CMPA #"+" | |
E861 27 F1 BEQ EXPR02 | |
E863 81 2D CMPA #"-" | |
E865 26 0A BNE EXPR06 | |
E867 30 01 EXPR05: LEAX 1,X | |
E869 8D 09 BSR TERM | |
E86B 40 NEGA | |
E86C 50 NEGB | |
E86D 82 00 SBCA #0 | |
E86F 20 E7 BRA EXPR04 | |
E871 35 06 EXPR06: PULS D | |
E873 39 RTS | |
E874 ;****************************** | |
E874 ;****************************** | |
E874 BD E8 E7 TERM: JSR FACT | |
E877 34 06 PSHS D | |
E879 BD E6 5D TERM03: JSR SKIPSP | |
E87C 81 2A CMPA #"*" | |
E87E 27 48 BEQ TERM07 | |
E880 81 2F CMPA #"/" | |
E882 27 03 BEQ TERM05 | |
E884 35 06 PULS D | |
E886 39 RTS | |
E887 30 01 TERM05: LEAX 1,X | |
E889 8D 5C BSR FACT | |
E88B 34 10 PSHS X | |
E88D 30 62 LEAX 2,S | |
E88F 34 06 PSHS D | |
E891 A8 00 EORA 0,X | |
E893 BD E9 26 JSR ABSX | |
E896 30 60 LEAX 0,S | |
E898 BD E9 26 JSR ABSX | |
E89B 34 02 PSHS A | |
E89D 86 11 LDA #17 | |
E89F 34 02 PSHS A | |
E8A1 4F CLRA | |
E8A2 5F CLRB | |
E8A3 A3 62 DIV05: SUBD 2,S | |
E8A5 24 06 BCC DIV07 | |
E8A7 E3 62 ADDD 2,S | |
E8A9 1C FE ANDCC #$FE | |
E8AB 20 02 BRA DIV09 | |
E8AD 1A 01 DIV07: ORCC #$01 | |
E8AF 69 67 DIV09: ROL 7,S | |
E8B1 69 66 ROL 6,S | |
E8B3 59 ROLB | |
E8B4 49 ROLA | |
E8B5 6A 60 DEC 0,S | |
E8B7 26 EA BNE DIV05 | |
E8B9 A6 61 LDA 1,S | |
E8BB 32 64 LEAS 4,S | |
E8BD 4D TSTA | |
E8BE 2A 04 BPL TERM06 | |
E8C0 30 62 LEAX 2,S | |
E8C2 8D 66 BSR NEGX | |
E8C4 35 10 TERM06: PULS X | |
E8C6 20 B1 BRA TERM03 | |
E8C8 30 01 TERM07: LEAX 1,X | |
E8CA 8D 1B BSR FACT | |
E8CC 34 04 MULT: PSHS B | |
E8CE E6 62 LDB 2,S | |
E8D0 3D MUL | |
E8D1 A6 61 LDA 1,S | |
E8D3 E7 61 STB 1,S | |
E8D5 E6 60 LDB 0,S | |
E8D7 3D MUL | |
E8D8 A6 62 LDA 2,S | |
E8DA E7 62 STB 2,S | |
E8DC 35 04 PULS B | |
E8DE 3D MUL | |
E8DF AB 60 ADDA 0,S | |
E8E1 AB 61 ADDA 1,S | |
E8E3 ED 60 STD 0,S | |
E8E5 20 92 BRA TERM03 | |
E8E7 ;****************************** | |
E8E7 ;****************************** | |
E8E7 BD E6 8D FACT: JSR TSTVAR | |
E8EA 25 09 BCS FACT03 | |
E8EC 34 10 PSHS X | |
E8EE 1F 01 TFR D,X | |
E8F0 EC 00 LDD 0,X | |
E8F2 35 10 PULS X | |
E8F4 39 FACT02: RTS | |
E8F5 BD E6 EC FACT03: JSR TSTNBR | |
E8F8 24 FA BCC FACT02 | |
E8FA BD E7 A0 JSR TSTFUN | |
E8FD 24 F5 BCC FACT02 | |
E8FF 8D 11 PAREXP: BSR ARGONE | |
E901 34 02 PSHS A | |
E903 BD E6 5D JSR SKIPSP | |
E906 81 29 CMPA #")" | |
E908 35 02 PULS A | |
E90A 26 03 BNE FACT05 | |
E90C 30 01 LEAX 1,X | |
E90E 39 RTS | |
E90F 7E E5 56 FACT05: JMP ERRORS | |
E912 ;****************************** | |
E912 ;****************************** | |
E912 BD E7 64 ARGONE: JSR TSTSTK | |
E915 24 03 BCC FACT04 | |
E917 7E E5 4E JMP ERRORF | |
E91A BD E6 5D FACT04: JSR SKIPSP | |
E91D 81 28 CMPA #"(" | |
E91F 26 EE BNE FACT05 | |
E921 30 01 LEAX 1,X | |
E923 7E E8 45 JMP EXPR | |
E926 ;****************************** | |
E926 ;****************************** | |
E926 6D 00 ABSX: TST 0,X | |
E928 2A 08 BPL NEG05 | |
E92A 60 00 NEGX: NEG 0,X | |
E92C 60 01 NEG 1,X | |
E92E 24 02 BCC NEG05 | |
E930 6A 00 DEC 0,X | |
E932 39 NEG05: RTS | |
E933 ;****************************** | |
E933 ;****************************** | |
E933 34 02 TSTEOL: PSHS A | |
E935 BD E6 5D JSR SKIPSP | |
E938 81 04 CMPA #EOL | |
E93A 27 03 BEQ TEOL03 | |
E93C 7E E5 56 JMP ERRORS | |
E93F 30 01 TEOL03: LEAX 1,X | |
E941 35 02 PULS A | |
E943 39 RTS | |
E944 ;****************************** | |
E944 ;****************************** | |
E944 BD E6 8D LET: JSR TSTVAR | |
E947 24 03 BCC LET03 | |
E949 7E E5 56 JMP ERRORS | |
E94C 34 06 LET03: PSHS D | |
E94E BD E6 5D JSR SKIPSP | |
E951 81 3D CMPA #"=" | |
E953 27 03 BEQ LET05 | |
E955 7E E5 56 JMP ERRORS | |
E958 30 01 LET05: LEAX 1,X | |
E95A BD E8 45 JSR EXPR | |
E95D 8D D4 BSR TSTEOL | |
E95F 9F 0E STX CURSOR | |
E961 35 10 PULS X | |
E963 ED 00 STD 0,X | |
E965 9E 0E LDX CURSOR | |
E967 7E E5 FE JMP ENDS02 | |
E96A ;****************************** | |
E96A ;****************************** | |
E96A BD E7 EE IF: JSR RELEXP | |
E96D 5D TSTB | |
E96E 27 03 BEQ IF03 | |
E970 7E E6 0F JMP MSLINE | |
E973 7E E5 F5 IF03: JMP REM | |
E976 ;****************************** | |
E976 ;****************************** | |
E976 BD E8 45 GOTO: JSR EXPR | |
E979 8D B8 BSR TSTEOL | |
E97B BD E7 C4 JSR FLINE | |
E97E 25 0F BCS GOSB04 | |
E980 7E E6 0B JMP NXTLIN | |
E983 ;****************************** | |
E983 ;****************************** | |
E983 BD E8 45 GOSUB: JSR EXPR | |
E986 8D AB BSR TSTEOL | |
E988 9F 0E STX CURSOR | |
E98A BD E7 C4 JSR FLINE | |
E98D 24 03 BCC GOSB03 | |
E98F 7E E5 5F GOSB04: JMP ERRORR | |
E992 BD E7 64 GOSB03: JSR TSTSTK | |
E995 24 03 BCC GOSB05 | |
E997 7E E5 4E JMP ERRORF | |
E99A DC 0E GOSB05: LDD CURSOR | |
E99C 34 06 PSHS D | |
E99E DC 12 LDD LINENB | |
E9A0 34 06 PSHS D | |
E9A2 BD E6 0B JSR NXTLIN | |
E9A5 35 06 PULS D | |
E9A7 DD 12 STD LINENB | |
E9A9 35 10 PULS X | |
E9AB 7E E5 FE JMP ENDS02 | |
E9AE ;****************************** | |
E9AE ;****************************** | |
E9AE RETURN: EQU TSTEOL | |
E9AE ;****************************** | |
E9AE ;****************************** | |
E9AE BD E6 5D PRINT: JSR SKIPSP | |
E9B1 81 2C PR01: CMPA #"," | |
E9B3 27 36 BEQ PR05 | |
E9B5 81 3B CMPA #";" | |
E9B7 27 3D BEQ PR07 | |
E9B9 81 04 CMPA #EOL | |
E9BB 27 25 BEQ PR04 | |
E9BD 81 22 CMPA #$22 | |
E9BF 26 06 BNE PR02 | |
E9C1 30 01 LEAX 1,X | |
E9C3 8D 42 BSR PRNTQS | |
E9C5 20 09 BRA PR03 | |
E9C7 BD E8 45 PR02: JSR EXPR | |
E9CA 34 10 PSHS X | |
E9CC 8D 47 BSR PRNTN | |
E9CE 35 10 PULS X | |
E9D0 BD E6 5D PR03: JSR SKIPSP | |
E9D3 81 2C CMPA #"," | |
E9D5 27 14 BEQ PR05 | |
E9D7 81 3B CMPA #";" | |
E9D9 27 1B BEQ PR07 | |
E9DB 81 04 CMPA #EOL | |
E9DD 27 03 BEQ PR04 | |
E9DF 7E E5 56 JMP ERRORS | |
E9E2 34 10 PR04: PSHS X | |
E9E4 BD E5 3F JSR CRLF | |
E9E7 35 10 PULS X | |
E9E9 20 14 BRA PR08 | |
E9EB C6 07 PR05: LDB #$7 | |
E9ED 86 20 PR06: LDA #SPACE | |
E9EF BD EB AC JSR PUTCHR | |
E9F2 D5 18 BITB ZONE | |
E9F4 26 F7 BNE PR06 | |
E9F6 30 01 PR07: LEAX 1,X | |
E9F8 BD E6 5D JSR SKIPSP | |
E9FB 81 04 CMPA #EOL | |
E9FD 26 B2 BNE PR01 | |
E9FF 30 01 PR08: LEAX 1,X | |
EA01 7E E5 FE JMP ENDS02 | |
EA04 ;* | |
EA04 ;* | |
EA04 BD EB AC PRQ01: JSR PUTCHR | |
EA07 A6 80 PRNTQS: LDA ,X+ | |
EA09 81 04 CMPA #EOL | |
EA0B 26 03 BNE PRQ03 | |
EA0D 7E E5 56 JMP ERRORS | |
EA10 81 22 PRQ03: CMPA #$22 | |
EA12 26 F0 BNE PRQ01 | |
EA14 39 RTS | |
EA15 ;* | |
EA15 4D PRNTN: TSTA | |
EA16 2A 0D BPL PRN03 | |
EA18 40 NEGA | |
EA19 50 NEGB | |
EA1A 82 00 SBCA #0 | |
EA1C 34 02 PSHS A | |
EA1E 86 2D LDA #"-" | |
EA20 BD EB AC JSR PUTCHR | |
EA23 35 02 PULS A | |
EA25 8E EA 54 PRN03: LDX #PRNPT-2 | |
EA28 30 02 PRN05: LEAX 2,X | |
EA2A 10 A3 00 CMPD 0,X | |
EA2D 24 05 BCC PRN07 | |
EA2F 8C EA 5E CMPX #PRNPTO | |
EA32 26 F4 BNE PRN05 | |
EA34 0F 16 PRN07: CLR CHAR | |
EA36 10 A3 00 PRN09: CMPD 0,X | |
EA39 25 06 BCS PRN11 | |
EA3B A3 00 SUBD 0,X | |
EA3D 0C 16 INC CHAR | |
EA3F 20 F5 BRA PRN09 | |
EA41 34 02 PRN11: PSHS A | |
EA43 86 30 LDA #"0" | |
EA45 9B 16 ADDA CHAR | |
EA47 BD EB AC JSR PUTCHR | |
EA4A 35 02 PULS A | |
EA4C 8C EA 5E CMPX #PRNPTO | |
EA4F 27 04 BEQ PRN13 | |
EA51 30 02 LEAX 2,X | |
EA53 20 DF BRA PRN07 | |
EA55 39 PRN13: RTS | |
EA56 27 10 PRNPT: FDB 10000 | |
EA58 03 E8 FDB 1000 | |
EA5A 00 64 FDB 100 | |
EA5C 00 0A FDB 10 | |
EA5E 00 01 PRNPTO: FDB 1 | |
EA60 ;* | |
EA60 8E EA 58 PRNT4: LDX #PRNPT+2 | |
EA63 20 CF BRA PRN07 | |
EA65 ;****************************** | |
EA65 ;****************************** | |
EA65 BD E6 8D INPUT: JSR TSTVAR | |
EA68 25 3C BCS IN11 | |
EA6A 34 06 PSHS D | |
EA6C 9F 0E STX CURSOR | |
EA6E 86 3F IN03: LDA #"?" | |
EA70 BD EB AC JSR PUTCHR | |
EA73 BD E5 92 JSR GETLIN | |
EA76 BD E6 5D IN05: JSR SKIPSP | |
EA79 81 04 CMPA #EOL | |
EA7B 27 F1 BEQ IN03 | |
EA7D BD E6 D8 JSR TSTSNB | |
EA80 24 0B BCC IN07 | |
EA82 8E EA BA LDX #RMESS | |
EA85 BD E5 38 JSR PUTSTR | |
EA88 BD E5 3F JSR CRLF | |
EA8B 20 E1 BRA IN03 | |
EA8D 9F 14 IN07: STX SCRTCH | |
EA8F 35 10 PULS X | |
EA91 ED 00 STD 0,X | |
EA93 9E 0E LDX CURSOR | |
EA95 BD E6 5D JSR SKIPSP | |
EA98 81 2C CMPA #"," | |
EA9A 27 03 BEQ IN09 | |
EA9C 7E E5 FB JMP ENDSMT | |
EA9F 30 01 IN09: LEAX 1,X | |
EAA1 BD E6 8D JSR TSTVAR | |
EAA4 24 03 BCC IN13 | |
EAA6 7E E5 56 IN11: JMP ERRORS | |
EAA9 34 06 IN13: PSHS D | |
EAAB 34 10 PSHS X | |
EAAD 9E 14 LDX SCRTCH | |
EAAF BD E6 5D JSR SKIPSP | |
EAB2 81 2C CMPA #"," | |
EAB4 26 C0 BNE IN05 | |
EAB6 30 01 LEAX 1,X | |
EAB8 20 BC BRA IN05 | |
EABA 52 45 2D 45 4E 54 45 52 RMESS: DB "RE-ENTER" | |
EAC2 04 FCB EOL | |
EAC3 ;****************************** | |
EAC3 ;****************************** | |
EAC3 9E 0C RUN: LDX STKTOP | |
EAC5 86 34 LDA #52 | |
EAC7 6F 80 RUN01: CLR ,X+ | |
EAC9 4A DECA | |
EACA 26 FB BNE RUN01 | |
EACC 9E 06 LDX USRBAS | |
EACE 7E E6 04 JMP REM05 | |
EAD1 ;****************************** | |
EAD1 ;****************************** | |
EAD1 BD E6 EC LIST: JSR TSTNBR | |
EAD4 24 08 BCC LIST03 | |
EAD6 4F CLRA | |
EAD7 5F CLRB | |
EAD8 DD 0E STD CURSOR | |
EADA 86 7F LDA #$7F | |
EADC 20 17 BRA LIST07 | |
EADE DD 0E LIST03: STD CURSOR | |
EAE0 BD E6 5D JSR SKIPSP | |
EAE3 81 2C CMPA #"," | |
EAE5 27 04 BEQ LIST05 | |
EAE7 96 0E LDA CURSOR | |
EAE9 20 0A BRA LIST07 | |
EAEB 30 01 LIST05: LEAX 1,X | |
EAED BD E6 EC JSR TSTNBR | |
EAF0 24 03 BCC LIST07 | |
EAF2 7E E5 56 JMP ERRORS | |
EAF5 BD E9 33 LIST07: JSR TSTEOL | |
EAF8 34 06 PSHS D | |
EAFA DC 0E LDD CURSOR | |
EAFC 9F 0E STX CURSOR | |
EAFE BD E7 C4 JSR FLINE | |
EB01 9C 08 LIST09: CMPX USRTOP | |
EB03 27 28 BEQ LIST10 | |
EB05 35 06 PULS D | |
EB07 10 A3 00 CMPD 0,X | |
EB0A 25 28 BCS LIST11 | |
EB0C 34 06 PSHS D | |
EB0E EC 81 LDD ,X++ | |
EB10 34 10 PSHS X | |
EB12 BD EA 60 JSR PRNT4 | |
EB15 35 10 PULS X | |
EB17 86 20 LDA #SPACE | |
EB19 BD EB AC JSR PUTCHR | |
EB1C BD E5 38 JSR PUTSTR | |
EB1F 30 01 LEAX 1,X | |
EB21 34 10 PSHS X | |
EB23 BD E5 3F JSR CRLF | |
EB26 35 10 PULS X | |
EB28 BD EB 9E JSR TSTBRK | |
EB2B 20 D4 BRA LIST09 | |
EB2D 32 62 LIST10: LEAS 2,S | |
EB2F 86 03 LDA #ETX | |
EB31 BD EB AC JSR PUTCHR | |
EB34 9E 0E LIST11: LDX CURSOR | |
EB36 7E E5 FE JMP ENDS02 | |
EB39 ;****************************** | |
EB39 ;****************************** | |
EB39 4C 45 54 VERBT: DB "LET" | |
EB3C 04 FCB EOL | |
EB3D E9 44 FDB LET | |
EB3F 49 46 DB "IF" | |
EB41 04 FCB EOL | |
EB42 E9 6A FDB IF | |
EB44 47 4F 54 4F DB "GOTO" | |
EB48 04 FCB EOL | |
EB49 E9 76 FDB GOTO | |
EB4B 47 4F 53 55 42 DB "GOSUB" | |
EB50 04 FCB EOL | |
EB51 E9 83 FDB GOSUB | |
EB53 52 45 54 55 52 4E DB "RETURN" | |
EB59 04 FCB EOL | |
EB5A E9 33 FDB RETURN | |
EB5C 50 4F 4B 45 DB "POKE" | |
EB60 04 FCB EOL | |
EB61 E7 7E FDB POKE | |
EB63 50 52 49 4E 54 DB "PRINT" | |
EB68 04 FCB EOL | |
EB69 E9 AE FDB PRINT | |
EB6B 49 4E 50 55 54 DB "INPUT" | |
EB70 04 FCB EOL | |
EB71 EA 65 FDB INPUT | |
EB73 52 45 4D DB "REM" | |
EB76 04 FCB EOL | |
EB77 E5 F5 FDB REM | |
EB79 53 54 4F 50 DB "STOP" | |
EB7D 04 FCB EOL | |
EB7E E5 6F FDB END | |
EB80 45 4E 44 DB "END" | |
EB83 04 FCB EOL | |
EB84 E5 6F FDB END | |
EB86 52 55 4E DB "RUN" | |
EB89 04 FCB EOL | |
EB8A EA C3 FDB RUN | |
EB8C 4C 49 53 54 DB "LIST" | |
EB90 04 FCB EOL | |
EB91 EA D1 FDB LIST | |
EB93 4E 45 57 DB "NEW" | |
EB96 04 FCB EOL | |
EB97 E4 1F FDB CLEAR | |
EB99 3F DB "?" | |
EB9A 04 FCB EOL | |
EB9B E9 AE FDB PRINT | |
EB9D 04 FCB EOL | |
EB9E ;****************************** | |
EB9E ;****************************** | |
EB9E 8D 2A TSTBRK: BSR BRKEEE | |
EBA0 27 09 BEQ GETC05 | |
EBA2 8D 0D GETCHR: BSR INEEE | |
EBA4 81 03 CMPA #ETX | |
EBA6 26 03 BNE GETC05 | |
EBA8 7E E5 67 JMP BREAK | |
EBAB 39 GETC05: RTS | |
EBAC 0C 18 PUTCHR: INC ZONE | |
EBAE 7E EB BB JMP OUTEEE | |
EBB1 ;****************************** | |
EBB1 ;****************************** | |
EBB1 8D 17 INEEE: BSR BRKEEE | |
EBB3 27 FC BEQ INEEE | |
EBB5 B6 83 FF LDA RECEV | |
EBB8 84 7F ANDA #$7F | |
EBBA 39 RTS | |
EBBB 34 02 OUTEEE: PSHS A | |
EBBD B6 83 FE OUT01: LDA TRCS | |
EBC0 85 02 BITA #TDRE | |
EBC2 27 F9 BEQ OUT01 | |
EBC4 35 02 PULS A | |
EBC6 B7 83 FF STA TRANS | |
EBC9 39 RTS | |
EBCA 34 02 BRKEEE: PSHS A | |
EBCC B6 83 FE BRK03: LDA TRCS | |
EBCF 85 20 BITA #ORFE | |
EBD1 27 05 BEQ BRK05 | |
EBD3 B6 83 FF LDA RECEV | |
EBD6 20 F4 BRA BRK03 | |
EBD8 85 01 BRK05: BITA #RDRF | |
EBDA 35 02 PULS A | |
EBDC 39 RTS | |
EBDD ;* | |
EBDD 86 03 LDA #CNTL1 | |
EBDF B7 83 FE STA RMCR | |
EBE2 86 15 LDA #CNTL2 | |
EBE4 B7 83 FE STA TRCS | |
EBE7 INTEEE: EQU $ | |
EBE7 39 RTS | |
EBE8 ;****************************** | |
EBE8 ;****************************** | |
EBE8 .ENDBLOCK | |
EOL: 0004 DEFINED AT LINE 17 | |
> USED AT LINE 148 | |
> USED AT LINE 253 | |
> USED AT LINE 256 | |
> USED AT LINE 259 | |
> USED AT LINE 262 | |
> USED AT LINE 265 | |
> USED AT LINE 581 | |
> USED AT LINE 584 | |
> USED AT LINE 587 | |
> USED AT LINE 589 | |
> USED AT LINE 987 | |
> USED AT LINE 1048 | |
> USED AT LINE 1051 | |
> USED AT LINE 1054 | |
> USED AT LINE 1057 | |
> USED AT LINE 1060 | |
> USED AT LINE 1063 | |
> USED AT LINE 1066 | |
> USED AT LINE 1069 | |
> USED AT LINE 1072 | |
> USED AT LINE 1075 | |
> USED AT LINE 1078 | |
> USED AT LINE 1081 | |
> USED AT LINE 1084 | |
> USED AT LINE 1087 | |
> USED AT LINE 1090 | |
> USED AT LINE 1092 | |
ETX: 0003 DEFINED AT LINE 18 | |
SPACE: 0020 DEFINED AT LINE 19 | |
CR: 000D DEFINED AT LINE 20 | |
> USED AT LINE 248 | |
LF: 000A DEFINED AT LINE 21 | |
> USED AT LINE 248 | |
BS: 0008 DEFINED AT LINE 22 | |
CAN: 0018 DEFINED AT LINE 23 | |
BELL: 0007 DEFINED AT LINE 24 | |
FILL: 0000 DEFINED AT LINE 25 | |
DEL: 007F DEFINED AT LINE 26 | |
BSIZE: 0049 DEFINED AT LINE 27 | |
> USED AT LINE 47 | |
STKCUS: 0030 DEFINED AT LINE 28 | |
BACIA: 83FE DEFINED AT LINE 30 | |
> USED AT LINE 31 | |
> USED AT LINE 32 | |
> USED AT LINE 33 | |
> USED AT LINE 34 | |
RMCR: 83FE DEFINED AT LINE 31 | |
> USED AT LINE 1129 | |
TRCS: 83FE DEFINED AT LINE 32 | |
> USED AT LINE 1112 | |
> USED AT LINE 1119 | |
> USED AT LINE 1131 | |
RECEV: 83FF DEFINED AT LINE 33 | |
> USED AT LINE 1108 | |
> USED AT LINE 1122 | |
TRANS: 83FF DEFINED AT LINE 34 | |
> USED AT LINE 1116 | |
CNTL1: 0003 DEFINED AT LINE 35 | |
CNTL2: 0015 DEFINED AT LINE 36 | |
RDRF: 0001 DEFINED AT LINE 37 | |
ORFE: 0020 DEFINED AT LINE 38 | |
TDRE: 0002 DEFINED AT LINE 39 | |
LORAM: 0080 DEFINED AT LINE 42 | |
BUFFER: 0200 DEFINED AT LINE 43 | |
> USED AT LINE 47 | |
> USED AT LINE 48 | |
RAMSIZ: 2000 DEFINED AT LINE 44 | |
> USED AT LINE 48 | |
ROMADR: F000 DEFINED AT LINE 45 | |
RAMBEG: 0249 DEFINED AT LINE 47 | |
RAMEND: 2200 DEFINED AT LINE 48 | |
RAMPAT: AA0F DEFINED AT LINE 50 | |
ROMPAT: F055 DEFINED AT LINE 51 | |
USRBAS: 0006 DEFINED AT LINE 56 | |
> USED AT LINE 106 | |
> USED AT LINE 115 | |
> USED AT LINE 160 | |
> USED AT LINE 592 | |
> USED AT LINE 995 | |
USRTOP: 0008 DEFINED AT LINE 57 | |
> USED AT LINE 107 | |
> USED AT LINE 133 | |
> USED AT LINE 156 | |
> USED AT LINE 169 | |
> USED AT LINE 179 | |
> USED AT LINE 201 | |
> USED AT LINE 203 | |
> USED AT LINE 204 | |
> USED AT LINE 208 | |
> USED AT LINE 211 | |
> USED AT LINE 334 | |
> USED AT LINE 593 | |
> USED AT LINE 1021 | |
STKLIM: 000A DEFINED AT LINE 58 | |
> USED AT LINE 108 | |
> USED AT LINE 134 | |
> USED AT LINE 180 | |
> USED AT LINE 205 | |
> USED AT LINE 209 | |
> USED AT LINE 541 | |
STKTOP: 000C DEFINED AT LINE 59 | |
> USED AT LINE 99 | |
> USED AT LINE 103 | |
> USED AT LINE 112 | |
> USED AT LINE 427 | |
> USED AT LINE 990 | |
CURSOR: 000E DEFINED AT LINE 60 | |
> USED AT LINE 116 | |
> USED AT LINE 155 | |
> USED AT LINE 162 | |
> USED AT LINE 214 | |
> USED AT LINE 222 | |
> USED AT LINE 348 | |
> USED AT LINE 353 | |
> USED AT LINE 357 | |
> USED AT LINE 450 | |
> USED AT LINE 452 | |
> USED AT LINE 572 | |
> USED AT LINE 815 | |
> USED AT LINE 818 | |
> USED AT LINE 838 | |
> USED AT LINE 845 | |
> USED AT LINE 953 | |
> USED AT LINE 969 | |
> USED AT LINE 1003 | |
> USED AT LINE 1006 | |
> USED AT LINE 1010 | |
> USED AT LINE 1018 | |
> USED AT LINE 1019 | |
> USED AT LINE 1043 | |
SAVESP: 0010 DEFINED AT LINE 61 | |
> USED AT LINE 164 | |
> USED AT LINE 173 | |
> USED AT LINE 175 | |
> USED AT LINE 178 | |
> USED AT LINE 212 | |
> USED AT LINE 218 | |
> USED AT LINE 538 | |
> USED AT LINE 539 | |
LINENB: 0012 DEFINED AT LINE 62 | |
> USED AT LINE 118 | |
> USED AT LINE 269 | |
> USED AT LINE 331 | |
> USED AT LINE 332 | |
> USED AT LINE 338 | |
> USED AT LINE 847 | |
> USED AT LINE 851 | |
SCRTCH: 0014 DEFINED AT LINE 63 | |
> USED AT LINE 153 | |
> USED AT LINE 181 | |
> USED AT LINE 225 | |
> USED AT LINE 227 | |
> USED AT LINE 358 | |
> USED AT LINE 359 | |
> USED AT LINE 363 | |
> USED AT LINE 370 | |
> USED AT LINE 966 | |
> USED AT LINE 980 | |
CHAR: 0016 DEFINED AT LINE 64 | |
> USED AT LINE 172 | |
> USED AT LINE 176 | |
> USED AT LINE 202 | |
> USED AT LINE 213 | |
> USED AT LINE 217 | |
> USED AT LINE 224 | |
> USED AT LINE 228 | |
> USED AT LINE 230 | |
> USED AT LINE 356 | |
> USED AT LINE 364 | |
> USED AT LINE 366 | |
> USED AT LINE 373 | |
> USED AT LINE 924 | |
> USED AT LINE 928 | |
> USED AT LINE 932 | |
ZONE: 0018 DEFINED AT LINE 65 | |
> USED AT LINE 246 | |
> USED AT LINE 890 | |
> USED AT LINE 1102 | |
MODE: 0019 DEFINED AT LINE 66 | |
> USED AT LINE 113 | |
> USED AT LINE 119 | |
> USED AT LINE 301 | |
> USED AT LINE 322 | |
RESRVD: 001A DEFINED AT LINE 67 | |
LOEND: 001B DEFINED AT LINE 68 | |
RESET: E400 DEFINED AT LINE 94 | |
> USED AT LINE 75 | |
> USED AT LINE 77 | |
> USED AT LINE 79 | |
> USED AT LINE 81 | |
> USED AT LINE 83 | |
> USED AT LINE 85 | |
> USED AT LINE 87 | |
> USED AT LINE 89 | |
BASIC: E400 DEFINED AT LINE 97 | |
WARMS: E40D DEFINED AT LINE 99 | |
SETUP: E415 DEFINED AT LINE 102 | |
> USED AT LINE 97 | |
SET03: E419 DEFINED AT LINE 103 | |
CLEAR: E41F DEFINED AT LINE 105 | |
> USED AT LINE 1088 | |
CLR02: E426 DEFINED AT LINE 108 | |
WMS05: E428 DEFINED AT LINE 109 | |
> USED AT LINE 101 | |
CMDB: E431 DEFINED AT LINE 112 | |
> USED AT LINE 131 | |
> USED AT LINE 276 | |
CMDE: E43D DEFINED AT LINE 117 | |
> USED AT LINE 129 | |
> USED AT LINE 145 | |
CMD01: E44B DEFINED AT LINE 123 | |
> USED AT LINE 120 | |
CMD02: E461 DEFINED AT LINE 132 | |
> USED AT LINE 125 | |
CMD03: E46E DEFINED AT LINE 138 | |
> USED AT LINE 136 | |
CMD04: E473 DEFINED AT LINE 140 | |
CMD05: E480 DEFINED AT LINE 146 | |
> USED AT LINE 126 | |
> USED AT LINE 139 | |
> USED AT LINE 143 | |
VSTR: E483 DEFINED AT LINE 147 | |
EDITOR: E48E DEFINED AT LINE 151 | |
> USED AT LINE 144 | |
ED00: E4A2 DEFINED AT LINE 160 | |
> USED AT LINE 157 | |
ED01: E4A4 DEFINED AT LINE 161 | |
> USED AT LINE 159 | |
ED02: E4AF DEFINED AT LINE 166 | |
> USED AT LINE 168 | |
ED03: E4B5 DEFINED AT LINE 169 | |
> USED AT LINE 177 | |
ED35: E4C7 DEFINED AT LINE 178 | |
> USED AT LINE 170 | |
ED04: E4CD DEFINED AT LINE 181 | |
> USED AT LINE 163 | |
ED05: E4D1 DEFINED AT LINE 183 | |
> USED AT LINE 186 | |
ED55: E4DE DEFINED AT LINE 191 | |
> USED AT LINE 188 | |
ED06: E4E2 DEFINED AT LINE 193 | |
> USED AT LINE 197 | |
ED07: E506 DEFINED AT LINE 211 | |
> USED AT LINE 207 | |
ED08: E508 DEFINED AT LINE 212 | |
> USED AT LINE 220 | |
ED09: E51A DEFINED AT LINE 221 | |
> USED AT LINE 215 | |
ED10: E522 DEFINED AT LINE 225 | |
> USED AT LINE 232 | |
PUTS01: E533 DEFINED AT LINE 236 | |
> USED AT LINE 240 | |
PUTSTR: E538 DEFINED AT LINE 238 | |
> USED AT LINE 111 | |
> USED AT LINE 245 | |
> USED AT LINE 274 | |
> USED AT LINE 963 | |
> USED AT LINE 1033 | |
CRLF: E53F DEFINED AT LINE 244 | |
> USED AT LINE 109 | |
> USED AT LINE 114 | |
> USED AT LINE 266 | |
> USED AT LINE 275 | |
> USED AT LINE 279 | |
> USED AT LINE 306 | |
> USED AT LINE 884 | |
> USED AT LINE 964 | |
> USED AT LINE 1036 | |
CRLFST: E547 DEFINED AT LINE 248 | |
ERRORF: E54E DEFINED AT LINE 251 | |
> USED AT LINE 210 | |
> USED AT LINE 777 | |
> USED AT LINE 844 | |
ERRORS: E556 DEFINED AT LINE 254 | |
> USED AT LINE 146 | |
> USED AT LINE 440 | |
> USED AT LINE 560 | |
> USED AT LINE 772 | |
> USED AT LINE 798 | |
> USED AT LINE 806 | |
> USED AT LINE 811 | |
> USED AT LINE 882 | |
> USED AT LINE 904 | |
> USED AT LINE 977 | |
> USED AT LINE 1015 | |
ERRORR: E55F DEFINED AT LINE 257 | |
> USED AT LINE 137 | |
> USED AT LINE 336 | |
> USED AT LINE 841 | |
BREAK: E567 DEFINED AT LINE 260 | |
> USED AT LINE 1100 | |
END: E56F DEFINED AT LINE 263 | |
> USED AT LINE 1076 | |
> USED AT LINE 1079 | |
ER01: E576 DEFINED AT LINE 266 | |
> USED AT LINE 251 | |
> USED AT LINE 254 | |
> USED AT LINE 257 | |
> USED AT LINE 260 | |
> USED AT LINE 263 | |
GL00: E590 DEFINED AT LINE 279 | |
> USED AT LINE 296 | |
GETLIN: E592 DEFINED AT LINE 280 | |
> USED AT LINE 123 | |
> USED AT LINE 956 | |
GL03: E595 DEFINED AT LINE 281 | |
> USED AT LINE 285 | |
> USED AT LINE 292 | |
> USED AT LINE 300 | |
> USED AT LINE 313 | |
GL04: E5A9 DEFINED AT LINE 290 | |
> USED AT LINE 287 | |
GL02: E5AB DEFINED AT LINE 291 | |
> USED AT LINE 289 | |
> USED AT LINE 320 | |
> USED AT LINE 323 | |
GL05: E5B0 DEFINED AT LINE 293 | |
> USED AT LINE 283 | |
GL06: E5C9 DEFINED AT LINE 305 | |
> USED AT LINE 302 | |
GL08: E5D0 DEFINED AT LINE 308 | |
> USED AT LINE 304 | |
GL07: E5D8 DEFINED AT LINE 312 | |
> USED AT LINE 294 | |
GL09: E5ED DEFINED AT LINE 321 | |
> USED AT LINE 298 | |
REM00: E5F3 DEFINED AT LINE 326 | |
> USED AT LINE 329 | |
REM: E5F5 DEFINED AT LINE 327 | |
> USED AT LINE 826 | |
> USED AT LINE 1073 | |
ENDSMT: E5FB DEFINED AT LINE 330 | |
> USED AT LINE 973 | |
ENDS02: E5FE DEFINED AT LINE 331 | |
> USED AT LINE 568 | |
> USED AT LINE 819 | |
> USED AT LINE 853 | |
> USED AT LINE 897 | |
> USED AT LINE 1044 | |
REM05: E604 DEFINED AT LINE 334 | |
> USED AT LINE 996 | |
NXTLIN: E60B DEFINED AT LINE 337 | |
> USED AT LINE 335 | |
> USED AT LINE 833 | |
> USED AT LINE 849 | |
MSLINE: E60F DEFINED AT LINE 339 | |
> USED AT LINE 130 | |
> USED AT LINE 825 | |
REM09: E618 DEFINED AT LINE 343 | |
> USED AT LINE 333 | |
IMPLET: E619 DEFINED AT LINE 344 | |
> USED AT LINE 341 | |
IFAN: E61C DEFINED AT LINE 347 | |
> USED AT LINE 340 | |
FAN00: E623 DEFINED AT LINE 350 | |
> USED AT LINE 378 | |
> USED AT LINE 574 | |
FAN04: E62E DEFINED AT LINE 356 | |
> USED AT LINE 352 | |
FAN05: E634 DEFINED AT LINE 359 | |
> USED AT LINE 368 | |
FAN07: E64F DEFINED AT LINE 373 | |
> USED AT LINE 361 | |
FAN08: E651 DEFINED AT LINE 374 | |
> USED AT LINE 376 | |
NXTNSP: E65B DEFINED AT LINE 381 | |
> USED AT LINE 384 | |
SKIPSP: E65D DEFINED AT LINE 382 | |
> USED AT LINE 127 | |
> USED AT LINE 152 | |
> USED AT LINE 327 | |
> USED AT LINE 347 | |
> USED AT LINE 416 | |
> USED AT LINE 434 | |
> USED AT LINE 444 | |
> USED AT LINE 457 | |
> USED AT LINE 470 | |
> USED AT LINE 557 | |
> USED AT LINE 571 | |
> USED AT LINE 619 | |
> USED AT LINE 626 | |
> USED AT LINE 636 | |
> USED AT LINE 667 | |
> USED AT LINE 676 | |
> USED AT LINE 693 | |
> USED AT LINE 766 | |
> USED AT LINE 778 | |
> USED AT LINE 795 | |
> USED AT LINE 808 | |
> USED AT LINE 859 | |
> USED AT LINE 875 | |
> USED AT LINE 893 | |
> USED AT LINE 957 | |
> USED AT LINE 970 | |
> USED AT LINE 981 | |
> USED AT LINE 1007 | |
TSTHEX: E664 DEFINED AT LINE 388 | |
> USED AT LINE 480 | |
TSTLTR: E675 DEFINED AT LINE 399 | |
> USED AT LINE 417 | |
> USED AT LINE 421 | |
TST03: E67D DEFINED AT LINE 403 | |
> USED AT LINE 391 | |
> USED AT LINE 393 | |
> USED AT LINE 400 | |
> USED AT LINE 408 | |
> USED AT LINE 410 | |
> USED AT LINE 422 | |
TSTDIG: E680 DEFINED AT LINE 407 | |
> USED AT LINE 388 | |
> USED AT LINE 471 | |
> USED AT LINE 504 | |
TST05: E68A DEFINED AT LINE 412 | |
> USED AT LINE 389 | |
> USED AT LINE 402 | |
TSTVAR: E68D DEFINED AT LINE 416 | |
> USED AT LINE 753 | |
> USED AT LINE 804 | |
> USED AT LINE 950 | |
> USED AT LINE 975 | |
TSTV02: E6A3 DEFINED AT LINE 428 | |
TSTV03: E6A5 DEFINED AT LINE 429 | |
> USED AT LINE 418 | |
USER: E6A6 DEFINED AT LINE 432 | |
> USED AT LINE 582 | |
USER02: E6B8 DEFINED AT LINE 440 | |
> USED AT LINE 447 | |
USER03: E6BB DEFINED AT LINE 441 | |
> USED AT LINE 436 | |
USER05: E6CD DEFINED AT LINE 449 | |
> USED AT LINE 439 | |
TSTSNB: E6D8 DEFINED AT LINE 457 | |
> USED AT LINE 960 | |
TSN02: E6EB DEFINED AT LINE 467 | |
> USED AT LINE 462 | |
TSTNBR: E6EC DEFINED AT LINE 470 | |
> USED AT LINE 124 | |
> USED AT LINE 459 | |
> USED AT LINE 461 | |
> USED AT LINE 760 | |
> USED AT LINE 999 | |
> USED AT LINE 1013 | |
TSTN20: E6FA DEFINED AT LINE 476 | |
TSTN23: E700 DEFINED AT LINE 479 | |
> USED AT LINE 499 | |
TSTN02: E723 DEFINED AT LINE 500 | |
> USED AT LINE 472 | |
TSTN03: E729 DEFINED AT LINE 503 | |
> USED AT LINE 527 | |
TSTN07: E756 DEFINED AT LINE 528 | |
> USED AT LINE 481 | |
> USED AT LINE 505 | |
TSTN09: E75A DEFINED AT LINE 530 | |
> USED AT LINE 475 | |
TSTN11: E75D DEFINED AT LINE 532 | |
> USED AT LINE 487 | |
> USED AT LINE 512 | |
> USED AT LINE 515 | |
> USED AT LINE 517 | |
> USED AT LINE 520 | |
> USED AT LINE 523 | |
TSTSTK: E764 DEFINED AT LINE 538 | |
> USED AT LINE 206 | |
> USED AT LINE 588 | |
> USED AT LINE 775 | |
> USED AT LINE 842 | |
PEEK: E76F DEFINED AT LINE 545 | |
> USED AT LINE 585 | |
POKE: E77E DEFINED AT LINE 555 | |
> USED AT LINE 1064 | |
POKE05: E78D DEFINED AT LINE 561 | |
> USED AT LINE 559 | |
TSTFUN: E7A0 DEFINED AT LINE 571 | |
> USED AT LINE 762 | |
TSTF05: E7AF DEFINED AT LINE 577 | |
> USED AT LINE 575 | |
FUNT: E7B0 DEFINED AT LINE 580 | |
FLINE: E7C4 DEFINED AT LINE 592 | |
> USED AT LINE 831 | |
> USED AT LINE 839 | |
> USED AT LINE 1020 | |
FNDLIN: E7C6 DEFINED AT LINE 593 | |
> USED AT LINE 161 | |
> USED AT LINE 613 | |
FND03: E7CD DEFINED AT LINE 597 | |
> USED AT LINE 594 | |
FND05: E7D5 DEFINED AT LINE 601 | |
> USED AT LINE 598 | |
FND07: E7DC DEFINED AT LINE 605 | |
> USED AT LINE 601 | |
FND09: E7E2 DEFINED AT LINE 608 | |
> USED AT LINE 610 | |
RELEXP: E7EE DEFINED AT LINE 616 | |
> USED AT LINE 822 | |
REL03: E80E DEFINED AT LINE 632 | |
> USED AT LINE 623 | |
REL05: E819 DEFINED AT LINE 637 | |
> USED AT LINE 628 | |
REL06: E81D DEFINED AT LINE 639 | |
> USED AT LINE 621 | |
REL07: E821 DEFINED AT LINE 641 | |
> USED AT LINE 631 | |
> USED AT LINE 638 | |
REL08: E839 DEFINED AT LINE 655 | |
> USED AT LINE 653 | |
REL09: E83F DEFINED AT LINE 659 | |
> USED AT LINE 657 | |
EXPR: E845 DEFINED AT LINE 665 | |
> USED AT LINE 442 | |
> USED AT LINE 562 | |
> USED AT LINE 616 | |
> USED AT LINE 642 | |
> USED AT LINE 782 | |
> USED AT LINE 813 | |
> USED AT LINE 829 | |
> USED AT LINE 836 | |
> USED AT LINE 871 | |
EXPR02: E854 DEFINED AT LINE 672 | |
> USED AT LINE 678 | |
EXPR03: E856 DEFINED AT LINE 673 | |
> USED AT LINE 671 | |
EXPR04: E858 DEFINED AT LINE 674 | |
> USED AT LINE 686 | |
EXPR05: E867 DEFINED AT LINE 681 | |
> USED AT LINE 669 | |
EXPR06: E871 DEFINED AT LINE 687 | |
> USED AT LINE 633 | |
> USED AT LINE 680 | |
TERM: E874 DEFINED AT LINE 691 | |
> USED AT LINE 673 | |
> USED AT LINE 682 | |
TERM03: E879 DEFINED AT LINE 693 | |
> USED AT LINE 733 | |
> USED AT LINE 750 | |
TERM05: E887 DEFINED AT LINE 700 | |
> USED AT LINE 697 | |
DIV05: E8A3 DEFINED AT LINE 714 | |
> USED AT LINE 725 | |
DIV07: E8AD DEFINED AT LINE 719 | |
> USED AT LINE 715 | |
DIV09: E8AF DEFINED AT LINE 720 | |
> USED AT LINE 718 | |
TERM06: E8C4 DEFINED AT LINE 732 | |
> USED AT LINE 729 | |
TERM07: E8C8 DEFINED AT LINE 734 | |
> USED AT LINE 695 | |
MULT: E8CC DEFINED AT LINE 736 | |
FACT: E8E7 DEFINED AT LINE 753 | |
> USED AT LINE 691 | |
> USED AT LINE 701 | |
> USED AT LINE 735 | |
FACT02: E8F4 DEFINED AT LINE 759 | |
> USED AT LINE 761 | |
> USED AT LINE 763 | |
FACT03: E8F5 DEFINED AT LINE 760 | |
> USED AT LINE 754 | |
PAREXP: E8FF DEFINED AT LINE 764 | |
> USED AT LINE 545 | |
> USED AT LINE 555 | |
FACT05: E90F DEFINED AT LINE 772 | |
> USED AT LINE 769 | |
> USED AT LINE 780 | |
ARGONE: E912 DEFINED AT LINE 775 | |
> USED AT LINE 432 | |
> USED AT LINE 764 | |
FACT04: E91A DEFINED AT LINE 778 | |
> USED AT LINE 776 | |
ABSX: E926 DEFINED AT LINE 785 | |
> USED AT LINE 706 | |
> USED AT LINE 708 | |
NEGX: E92A DEFINED AT LINE 787 | |
> USED AT LINE 731 | |
NEG05: E932 DEFINED AT LINE 791 | |
> USED AT LINE 786 | |
> USED AT LINE 789 | |
TSTEOL: E933 DEFINED AT LINE 794 | |
> USED AT LINE 330 | |
> USED AT LINE 563 | |
> USED AT LINE 814 | |
> USED AT LINE 830 | |
> USED AT LINE 837 | |
> USED AT LINE 856 | |
> USED AT LINE 1016 | |
TEOL03: E93F DEFINED AT LINE 799 | |
> USED AT LINE 797 | |
LET: E944 DEFINED AT LINE 804 | |
> USED AT LINE 344 | |
> USED AT LINE 1049 | |
LET03: E94C DEFINED AT LINE 807 | |
> USED AT LINE 805 | |
LET05: E958 DEFINED AT LINE 812 | |
> USED AT LINE 810 | |
IF: E96A DEFINED AT LINE 822 | |
> USED AT LINE 1052 | |
IF03: E973 DEFINED AT LINE 826 | |
> USED AT LINE 824 | |
GOTO: E976 DEFINED AT LINE 829 | |
> USED AT LINE 1055 | |
GOSUB: E983 DEFINED AT LINE 836 | |
> USED AT LINE 1058 | |
GOSB04: E98F DEFINED AT LINE 841 | |
> USED AT LINE 832 | |
GOSB03: E992 DEFINED AT LINE 842 | |
> USED AT LINE 840 | |
GOSB05: E99A DEFINED AT LINE 845 | |
> USED AT LINE 843 | |
RETURN: E933 DEFINED AT LINE 856 | |
> USED AT LINE 1061 | |
PRINT: E9AE DEFINED AT LINE 859 | |
> USED AT LINE 1067 | |
> USED AT LINE 1091 | |
PR01: E9B1 DEFINED AT LINE 860 | |
> USED AT LINE 895 | |
PR02: E9C7 DEFINED AT LINE 871 | |
> USED AT LINE 867 | |
PR03: E9D0 DEFINED AT LINE 875 | |
> USED AT LINE 870 | |
PR04: E9E2 DEFINED AT LINE 883 | |
> USED AT LINE 865 | |
> USED AT LINE 881 | |
PR05: E9EB DEFINED AT LINE 887 | |
> USED AT LINE 861 | |
> USED AT LINE 877 | |
PR06: E9ED DEFINED AT LINE 888 | |
> USED AT LINE 891 | |
PR07: E9F6 DEFINED AT LINE 892 | |
> USED AT LINE 863 | |
> USED AT LINE 879 | |
PR08: E9FF DEFINED AT LINE 896 | |
> USED AT LINE 886 | |
PRQ01: EA04 DEFINED AT LINE 900 | |
> USED AT LINE 906 | |
PRNTQS: EA07 DEFINED AT LINE 901 | |
> USED AT LINE 869 | |
PRQ03: EA10 DEFINED AT LINE 905 | |
> USED AT LINE 903 | |
PRNTN: EA15 DEFINED AT LINE 909 | |
> USED AT LINE 873 | |
PRN03: EA25 DEFINED AT LINE 918 | |
> USED AT LINE 910 | |
PRN05: EA28 DEFINED AT LINE 919 | |
> USED AT LINE 923 | |
PRN07: EA34 DEFINED AT LINE 924 | |
> USED AT LINE 921 | |
> USED AT LINE 938 | |
> USED AT LINE 947 | |
PRN09: EA36 DEFINED AT LINE 925 | |
> USED AT LINE 929 | |
PRN11: EA41 DEFINED AT LINE 930 | |
> USED AT LINE 926 | |
PRN13: EA55 DEFINED AT LINE 939 | |
> USED AT LINE 936 | |
PRNPT: EA56 DEFINED AT LINE 940 | |
PRNPTO: EA5E DEFINED AT LINE 944 | |
PRNT4: EA60 DEFINED AT LINE 946 | |
> USED AT LINE 270 | |
> USED AT LINE 1029 | |
INPUT: EA65 DEFINED AT LINE 950 | |
> USED AT LINE 1070 | |
IN03: EA6E DEFINED AT LINE 954 | |
> USED AT LINE 959 | |
> USED AT LINE 965 | |
IN05: EA76 DEFINED AT LINE 957 | |
> USED AT LINE 983 | |
> USED AT LINE 985 | |
IN07: EA8D DEFINED AT LINE 966 | |
> USED AT LINE 961 | |
IN09: EA9F DEFINED AT LINE 974 | |
> USED AT LINE 972 | |
IN11: EAA6 DEFINED AT LINE 977 | |
> USED AT LINE 951 | |
IN13: EAA9 DEFINED AT LINE 978 | |
> USED AT LINE 976 | |
RMESS: EABA DEFINED AT LINE 986 | |
RUN: EAC3 DEFINED AT LINE 990 | |
> USED AT LINE 1082 | |
RUN01: EAC7 DEFINED AT LINE 992 | |
> USED AT LINE 994 | |
LIST: EAD1 DEFINED AT LINE 999 | |
> USED AT LINE 1085 | |
LIST03: EADE DEFINED AT LINE 1006 | |
> USED AT LINE 1000 | |
LIST05: EAEB DEFINED AT LINE 1012 | |
> USED AT LINE 1009 | |
LIST07: EAF5 DEFINED AT LINE 1016 | |
> USED AT LINE 1005 | |
> USED AT LINE 1011 | |
> USED AT LINE 1014 | |
LIST09: EB01 DEFINED AT LINE 1021 | |
> USED AT LINE 1039 | |
LIST10: EB2D DEFINED AT LINE 1040 | |
> USED AT LINE 1022 | |
LIST11: EB34 DEFINED AT LINE 1043 | |
> USED AT LINE 1025 | |
VERBT: EB39 DEFINED AT LINE 1047 | |
TSTBRK: EB9E DEFINED AT LINE 1095 | |
> USED AT LINE 339 | |
> USED AT LINE 1038 | |
GETCHR: EBA2 DEFINED AT LINE 1097 | |
> USED AT LINE 281 | |
GETC05: EBAB DEFINED AT LINE 1101 | |
> USED AT LINE 1096 | |
> USED AT LINE 1099 | |
PUTCHR: EBAC DEFINED AT LINE 1102 | |
> USED AT LINE 122 | |
> USED AT LINE 236 | |
> USED AT LINE 268 | |
> USED AT LINE 272 | |
> USED AT LINE 291 | |
> USED AT LINE 303 | |
> USED AT LINE 316 | |
> USED AT LINE 318 | |
> USED AT LINE 889 | |
> USED AT LINE 900 | |
> USED AT LINE 916 | |
> USED AT LINE 933 | |
> USED AT LINE 955 | |
> USED AT LINE 1032 | |
> USED AT LINE 1042 | |
INEEE: EBB1 DEFINED AT LINE 1106 | |
> USED AT LINE 1097 | |
> USED AT LINE 1107 | |
OUTEEE: EBBB DEFINED AT LINE 1111 | |
> USED AT LINE 1103 | |
OUT01: EBBD DEFINED AT LINE 1112 | |
> USED AT LINE 1114 | |
BRKEEE: EBCA DEFINED AT LINE 1118 | |
> USED AT LINE 1095 | |
> USED AT LINE 1106 | |
BRK03: EBCC DEFINED AT LINE 1119 | |
> USED AT LINE 1123 | |
BRK05: EBD8 DEFINED AT LINE 1124 | |
> USED AT LINE 1121 | |
INTEEE: EBE7 DEFINED AT LINE 1132 | |
> USED AT LINE 100 | |
> USED AT LINE 104 |
;NAM TB01V137 | |
;* WRITTEN 20-OCT-77 BY JOHN BYRNS | |
;* REVISED 30-DEC-77 | |
;* REVISED 18-JAN-78 | |
;* REVISED 10-APR-78 | |
;* REVISED 08-MAY-79 TO ELIMINATE USE OF SP | |
;* REVISED 24-JAN-80 TO USE 6801 ON CHIP RAM | |
;* REVISED 26-JAN-80 FOR NEW 6801 INSTRUCTIONS | |
;* REVISED 24-JUL-81 FOR WHISTON BOARD | |
;* REVISED 24-SEP-81 INCLUDE USER FUNCTION | |
;* REVISED 08-APR-82 MAKE STANDALONE INCLUDE HEX CONSTANTS AND MEM FUNCTION | |
;* REVISED 21-NOV-84 FOR 6809 | |
;* REVISED FEB 94 ADAPTED TO SIMULATOR AND BUGFIXES BY L.C. BENSCHOP. | |
;* | |
.engine kilo | |
EOL: EQU $04 | |
ETX: EQU $03 | |
SPACE: EQU $20 | |
CR: EQU $0D | |
LF: EQU $0A | |
BS: EQU $08 | |
CAN: EQU $18 | |
BELL: EQU $07 | |
FILL: EQU $00 | |
DEL: EQU $7F | |
BSIZE: EQU 73 | |
STKCUS: EQU 48 | |
;* | |
bACIA equ $83FE | |
RMCR EQU bACIA | |
TRCS EQU bACIA | |
RECEV EQU bACIA+1 | |
TRANS EQU bACIA+1 | |
CNTL1 EQU $03 | |
CNTL2 EQU $15 | |
RDRF EQU $01 | |
ORFE EQU $20 | |
TDRE EQU $02 | |
;* EDIT THE FOLLOWING EQUATES TO REFLECT THE | |
;* DESIRED ROM AND RAM LAYOUT | |
LORAM EQU $0080 ;ADDRESS OF DIRECT PAGE SCRATCH RAM | |
BUFFER EQU $0200 ;ADDRESS OF MAIN RAM | |
RAMSIZ EQU $2000 ;SIZE OF MAIN RAM | |
ROMADR EQU $f000 ;ADDRESS OF TINY BASIC ROM | |
;* | |
RAMBEG EQU BUFFER+BSIZE | |
RAMEND EQU BUFFER+RAMSIZ | |
;* | |
RAMPAT EQU $AA0F | |
ROMPAT EQU $F055 | |
;* | |
; ORG LORAM | |
.bsseg | |
.org 6 | |
USRBAS: RMB 2 | |
USRTOP: RMB 2 | |
STKLIM: RMB 2 | |
STKTOP: RMB 2 | |
CURSOR: RMB 2 | |
SAVESP: RMB 2 | |
LINENB: RMB 2 | |
SCRTCH: RMB 2 | |
CHAR: RMB 2 | |
ZONE: RMB 1 | |
MODE: RMB 1 | |
RESRVD: RMB 1 | |
LOEND: EQU $ | |
;* | |
.cseg | |
.ORG 0xfff0 | |
;reserved | |
DW reset | |
;SWI3 | |
DW reset | |
;SWI2 | |
DW reset | |
;FIRQ | |
DW reset | |
;IRQ | |
DW reset | |
;SWI | |
DW reset | |
;NMI | |
DW reset | |
;RES | |
DW reset | |
org $e400 | |
reset: | |
.ent $ | |
BASIC: JMP SETUP | |
.cstr "MOD9BASIC" | |
WARMS LDS STKTOP | |
JSR INTEEE | |
BRA WMS05 | |
SETUP LDS #RAMEND-52 | |
SET03 STS STKTOP | |
JSR INTEEE | |
CLEAR LDD #RAMBEG | |
STD USRBAS | |
STD USRTOP | |
CLR02 STD STKLIM | |
WMS05 JSR CRLF | |
LDX #VSTR | |
JSR PUTSTR | |
CMDB LDS STKTOP | |
CLR MODE | |
JSR CRLF | |
LDX USRBAS | |
STX CURSOR | |
CMDE LDX #0000 | |
STX LINENB | |
TST MODE | |
BNE CMD01 | |
LDA #":" | |
JSR PUTCHR | |
CMD01 JSR GETLIN | |
JSR TSTNBR | |
BCC CMD02 | |
BVS CMD05 | |
JSR SKIPSP | |
CMPA #EOL | |
BEQ CMDE | |
JSR MSLINE | |
BRA CMDB | |
CMD02 PSHS X | |
LDX USRTOP | |
CMPX STKLIM | |
PULS X | |
BEQ CMD03 | |
JMP ERRORR | |
CMD03 ADDD #0 | |
BEQ CMD05 | |
CMD04 PSHS D | |
SUBD #9999 | |
PULS D | |
BHI CMD05 | |
BSR EDITOR | |
BRA CMDE | |
CMD05 JMP ERRORS | |
VSTR DB "TINY V1.37" | |
FCB EOL | |
;****************************** | |
;****************************** | |
EDITOR PSHS D | |
JSR SKIPSP | |
STX SCRTCH | |
LDA 0,S | |
LDX CURSOR | |
CMPX USRTOP | |
BEQ ED00 | |
CMPD 0,X | |
BCC ED01 | |
ED00 LDX USRBAS | |
ED01 JSR FNDLIN | |
STX CURSOR | |
BCS ED04 | |
STX SAVESP | |
LEAX 2,X | |
ED02 LDA ,X+ | |
CMPA #EOL | |
BNE ED02 | |
ED03 CMPX USRTOP | |
BEQ ED35 | |
LDA ,X+ | |
STX CHAR | |
LDX SAVESP | |
STA ,X+ | |
STX SAVESP | |
LDX CHAR | |
BRA ED03 | |
ED35 LDX SAVESP | |
STX USRTOP | |
STX STKLIM | |
ED04 LDX SCRTCH | |
LDB #-1 | |
ED05 INCB | |
LDA ,X+ | |
CMPA #EOL | |
BNE ED05 | |
TSTB | |
BNE ED55 | |
LEAS 2,S | |
RTS | |
ED55 LEAX -1,X | |
ADDB #4 | |
ED06 LEAX -1,X | |
DECB | |
LDA 0,X | |
CMPA #SPACE | |
BEQ ED06 | |
LDA #EOL | |
STA 1,X | |
CLRA | |
LDX USRTOP | |
STX CHAR | |
ADDD USRTOP | |
STD USRTOP | |
STD STKLIM | |
JSR TSTSTK | |
BCC ED07 | |
STX USRTOP | |
STX STKLIM | |
JMP ERRORF | |
ED07 LDX USRTOP | |
ED08 STX SAVESP | |
LDX CHAR | |
CMPX CURSOR | |
BEQ ED09 | |
LDA ,-X | |
STX CHAR | |
LDX SAVESP | |
STA ,-X | |
BRA ED08 | |
ED09 PULS D | |
LDX CURSOR | |
STD ,X++ | |
STX CHAR | |
ED10 LDX SCRTCH | |
LDA ,X+ | |
STX SCRTCH | |
LDX CHAR | |
STA ,X+ | |
STX CHAR | |
CMPA #EOL | |
BNE ED10 | |
RTS | |
;****************************** | |
;****************************** | |
PUTS01 JSR PUTCHR | |
LEAX 1,X | |
PUTSTR LDA 0,X | |
CMPA #EOL | |
BNE PUTS01 | |
RTS | |
;****************************** | |
;****************************** | |
CRLF LDX #CRLFST | |
BSR PUTSTR | |
CLR ZONE | |
RTS | |
CRLFST FCB CR,LF,DEL,FILL,FILL,FILL,EOL | |
;****************************** | |
;****************************** | |
ERRORF BSR ER01 | |
DB "SORRY" | |
FCB EOL | |
ERRORS BSR ER01 | |
DB "WHAT ?" | |
FCB EOL | |
ERRORR BSR ER01 | |
DB "HOW ?" | |
FCB EOL | |
BREAK BSR ER01 | |
DB "BREAK" | |
FCB EOL | |
END BSR ER01 | |
DB "STOP" | |
FCB EOL | |
ER01 BSR CRLF | |
LDA #BELL | |
JSR PUTCHR | |
LDD LINENB | |
JSR PRNT4 | |
LDA #SPACE | |
JSR PUTCHR | |
PULS X | |
BSR PUTSTR | |
BSR CRLF | |
JMP CMDB | |
;****************************** | |
;****************************** | |
GL00 BSR CRLF | |
GETLIN LDX #BUFFER | |
GL03 JSR GETCHR | |
CMPA #SPACE | |
BCS GL05 | |
CMPA #$7F | |
BEQ GL03 | |
CMPX #BUFFER+BSIZE-1 | |
BNE GL04 | |
LDA #BELL | |
BRA GL02 | |
GL04 STA ,X+ | |
GL02 JSR PUTCHR | |
BRA GL03 | |
GL05 CMPA #BS | |
BEQ GL07 | |
CMPA #CAN | |
BEQ GL00 | |
CMPA #LF | |
BEQ GL09 | |
CMPA #CR | |
BNE GL03 | |
TST MODE | |
BEQ GL06 | |
JSR PUTCHR | |
BRA GL08 | |
GL06 PSHS X | |
JSR CRLF | |
PULS X | |
GL08 LDA #EOL | |
STA 0,X | |
LDX #BUFFER | |
RTS | |
GL07 CMPX #BUFFER | |
BEQ GL03 | |
LEAX -1,X | |
LDA #BS | |
JSR PUTCHR | |
LDA #SPACE | |
JSR PUTCHR | |
LDA #BS | |
BRA GL02 | |
GL09 ORCC #$01 | |
ROR MODE | |
BRA GL02 | |
;****************************** | |
;****************************** | |
REM00 LEAX 1,X | |
REM BSR SKIPSP | |
CMPA #EOL | |
BNE REM00 | |
ENDSMT JSR TSTEOL | |
ENDS02 LDA LINENB | |
ORA LINENB+1 | |
BEQ REM09 | |
REM05 CMPX USRTOP | |
BNE NXTLIN | |
JMP ERRORR | |
NXTLIN LDD ,X++ | |
STD LINENB | |
MSLINE JSR TSTBRK | |
BSR IFAN | |
BCS IMPLET | |
PSHS D | |
REM09 RTS | |
IMPLET JMP LET | |
;****************************** | |
;****************************** | |
IFAN BSR SKIPSP | |
STX CURSOR | |
LDX #VERBT | |
FAN00: LDA ,X+ | |
CMPA #EOL | |
BNE FAN04 | |
LDX CURSOR | |
ORCC #$01 | |
RTS | |
FAN04 STX CHAR | |
LDX CURSOR | |
STX SCRTCH | |
FAN05 LDX SCRTCH | |
CMPA 0,X | |
BNE FAN07 | |
LEAX 1,X | |
STX SCRTCH | |
LDX CHAR | |
LDA ,X+ | |
STX CHAR | |
CMPA #EOL | |
BNE FAN05 | |
LDD 0,X | |
LDX SCRTCH | |
ANDCC #$FE | |
RTS | |
FAN07 LDX CHAR | |
FAN08 LDA ,X+ | |
CMPA #EOL | |
BNE FAN08 | |
LEAX 2,X | |
BRA FAN00 | |
;****************************** | |
;****************************** | |
NXTNSP LEAX 1,X | |
SKIPSP LDA 0,X | |
CMPA #SPACE | |
BEQ NXTNSP | |
RTS | |
;****************************** | |
;****************************** | |
TSTHEX BSR TSTDIG | |
BCC TST05 | |
CMPA #"A" | |
BCS TST03 | |
CMPA #"F" | |
BHI TST03 | |
SUBA #"A"-10 | |
ANDCC #$FE | |
RTS | |
;****************************** | |
;****************************** | |
TSTLTR CMPA #"A" | |
BCS TST03 | |
CMPA #"Z" | |
BLS TST05 | |
TST03 ORCC #$01 | |
RTS | |
;****************************** | |
;****************************** | |
TSTDIG CMPA #"0" | |
BCS TST03 | |
CMPA #"9" | |
BHI TST03 | |
SUBA #"0" | |
TST05 ANDCC #$FE | |
RTS | |
;****************************** | |
;****************************** | |
TSTVAR BSR SKIPSP | |
BSR TSTLTR | |
BCS TSTV03 | |
TFR A,B | |
LDA 1,X | |
BSR TSTLTR | |
BCC TST03 | |
LEAX 1,X | |
SUBB #"A" | |
ASLB | |
CLRA | |
ADDD STKTOP | |
TSTV02 ANDCC #$FE | |
TSTV03 RTS | |
;****************************** | |
;****************************** | |
USER JSR ARGONE | |
PSHS D | |
JSR SKIPSP | |
CMPA #"," | |
BEQ USER03 | |
CMPA #")" | |
ORCC #$01 | |
BEQ USER05 | |
USER02 JMP ERRORS | |
USER03 LEAX 1,X | |
JSR EXPR | |
PSHS A | |
JSR SKIPSP | |
CMPA #")" | |
PULS A | |
BNE USER02 | |
ANDCC #$FE | |
USER05 LEAX 1,X | |
STX CURSOR | |
JSR [,S++] | |
LDX CURSOR | |
ANDCC #$FE | |
RTS | |
;****************************** | |
;****************************** | |
TSTSNB JSR SKIPSP | |
CMPA #"-" | |
BNE TSTNBR | |
LEAX 1,X | |
BSR TSTNBR | |
BCS TSN02 | |
NEGA | |
NEGB | |
SBCA #0 | |
ANDCC #$FC | |
TSN02 RTS | |
;****************************** | |
;****************************** | |
TSTNBR JSR SKIPSP | |
JSR TSTDIG | |
BCC TSTN02 | |
CMPA #"$" | |
ORCC #$01 | |
BNE TSTN09 | |
TSTN20 LEAX 1,X | |
CLR ,-S | |
CLR ,-S | |
TSTN23 LDA 0,X | |
JSR TSTHEX | |
BCS TSTN07 | |
LEAX 1,X | |
PSHS X | |
PSHS A | |
LDD 3,S | |
BITA #$F0 | |
BNE TSTN11 | |
ASLB | |
ROLA | |
ASLB | |
ROLA | |
ASLB | |
ROLA | |
ASLB | |
ROLA | |
ADDB ,S+ | |
STD 2,S | |
PULS X | |
BRA TSTN23 | |
TSTN02 LEAX 1,X | |
PSHS A | |
CLR ,-S | |
TSTN03 LDA 0,X | |
JSR TSTDIG | |
BCS TSTN07 | |
LEAX 1,X | |
PSHS X | |
PSHS A | |
LDD 3,S | |
ASLB | |
ROLA | |
BVS TSTN11 | |
ASLB | |
ROLA | |
BVS TSTN11 | |
ADDD 3,S | |
BVS TSTN11 | |
ASLB | |
ROLA | |
BVS TSTN11 | |
ADDB 0,S | |
ADCA #0 | |
BVS TSTN11 | |
STD 3,S | |
LEAS 1,S | |
PULS X | |
BRA TSTN03 | |
TSTN07 PULS D | |
ANDCC #$FE | |
TSTN09 ANDCC #$FD | |
RTS | |
TSTN11 LDX 1,S | |
LEAS 5,S | |
ORCC #$03 | |
RTS | |
;****************************** | |
;****************************** | |
TSTSTK STS SAVESP | |
LDD SAVESP | |
SUBD #STKCUS | |
SUBD STKLIM | |
RTS | |
;****************************** | |
;****************************** | |
PEEK JSR PAREXP | |
PSHS D | |
PSHS X | |
LDB [2,S] | |
PULS X | |
LEAS 2,S | |
CLRA | |
RTS | |
;****************************** | |
;****************************** | |
POKE JSR PAREXP | |
PSHS D | |
JSR SKIPSP | |
CMPA #"=" | |
BEQ POKE05 | |
JMP ERRORS | |
POKE05 LEAX 1,X | |
JSR EXPR | |
JSR TSTEOL | |
PSHS X | |
STB [2,S] | |
PULS X | |
LEAS 2,S | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
TSTFUN JSR SKIPSP | |
STX CURSOR | |
LDX #FUNT | |
JSR FAN00 | |
BCS TSTF05 | |
PSHS D | |
TSTF05 RTS | |
;****************************** | |
;****************************** | |
FUNT DB "USR" | |
FCB EOL | |
FDB USER | |
DB "PEEK" | |
FCB EOL | |
FDB PEEK | |
DB "MEM" | |
FCB EOL | |
FDB TSTSTK | |
FCB EOL | |
;****************************** | |
;****************************** | |
FLINE LDX USRBAS | |
FNDLIN CMPX USRTOP | |
BNE FND03 | |
ORCC #$03 | |
RTS | |
FND03 CMPD 0,X | |
BNE FND05 | |
ANDCC #$FC | |
RTS | |
FND05 BCC FND07 | |
ORCC #$01 | |
ANDCC #$FD | |
RTS | |
FND07 PSHS A | |
LDA #EOL | |
LEAX 1,X | |
FND09 LEAX 1,X | |
CMPA 0,X | |
BNE FND09 | |
PULS A | |
LEAX 1,X | |
BRA FNDLIN | |
;****************************** | |
;****************************** | |
RELEXP BSR EXPR | |
PSHS D | |
CLRB | |
JSR SKIPSP | |
CMPA #"=" | |
BEQ REL06 | |
CMPA #"<" | |
BNE REL03 | |
LEAX 1,X | |
INCB | |
JSR SKIPSP | |
CMPA #">" | |
BNE REL05 | |
LEAX 1,X | |
ADDB #4 | |
BRA REL07 | |
REL03 CMPA #">" | |
BNE EXPR06 | |
LEAX 1,X | |
ADDB #4 | |
JSR SKIPSP | |
REL05 CMPA #"=" | |
BNE REL07 | |
REL06 LEAX 1,X | |
ADDB #2 | |
REL07 PSHS B | |
BSR EXPR | |
PSHS X | |
SUBD 3,S | |
TFR CC,A | |
LSRA | |
TFR A,B | |
ASLA | |
ASLA | |
PSHS B | |
ADDA ,S+ | |
ANDA #$06 | |
BNE REL08 | |
INCA | |
REL08 CLRB | |
ANDA 2,S | |
BEQ REL09 | |
COMB | |
REL09 CLRA | |
PULS X | |
LEAS 3,S | |
RTS | |
;****************************** | |
;****************************** | |
EXPR CLR ,-S | |
CLR ,-S | |
JSR SKIPSP | |
CMPA #"-" | |
BEQ EXPR05 | |
CMPA #"+" | |
BNE EXPR03 | |
EXPR02 LEAX 1,X | |
EXPR03 BSR TERM | |
EXPR04 ADDD 0,S | |
STD 0,S | |
JSR SKIPSP | |
CMPA #"+" | |
BEQ EXPR02 | |
CMPA #"-" | |
BNE EXPR06 | |
EXPR05 LEAX 1,X | |
BSR TERM | |
NEGA | |
NEGB | |
SBCA #0 | |
BRA EXPR04 | |
EXPR06 PULS D | |
RTS | |
;****************************** | |
;****************************** | |
TERM JSR FACT | |
PSHS D | |
TERM03 JSR SKIPSP | |
CMPA #"*" | |
BEQ TERM07 | |
CMPA #"/" | |
BEQ TERM05 | |
PULS D | |
RTS | |
TERM05 LEAX 1,X | |
BSR FACT | |
PSHS X | |
LEAX 2,S | |
PSHS D | |
EORA 0,X | |
JSR ABSX | |
LEAX 0,S | |
JSR ABSX | |
PSHS A | |
LDA #17 | |
PSHS A | |
CLRA | |
CLRB | |
DIV05 SUBD 2,S | |
BCC DIV07 | |
ADDD 2,S | |
ANDCC #$FE | |
BRA DIV09 | |
DIV07 ORCC #$01 | |
DIV09 ROL 7,S | |
ROL 6,S | |
ROLB | |
ROLA | |
DEC 0,S | |
BNE DIV05 | |
LDA 1,S | |
LEAS 4,S | |
TSTA | |
BPL TERM06 | |
LEAX 2,S | |
BSR NEGX | |
TERM06 PULS X | |
BRA TERM03 | |
TERM07 LEAX 1,X | |
BSR FACT | |
MULT PSHS B | |
LDB 2,S | |
MUL | |
LDA 1,S | |
STB 1,S | |
LDB 0,S | |
MUL | |
LDA 2,S | |
STB 2,S | |
PULS B | |
MUL | |
ADDA 0,S | |
ADDA 1,S | |
STD 0,S | |
BRA TERM03 | |
;****************************** | |
;****************************** | |
FACT JSR TSTVAR | |
BCS FACT03 | |
PSHS X | |
TFR D,X | |
LDD 0,X | |
PULS X | |
FACT02 RTS | |
FACT03 JSR TSTNBR | |
BCC FACT02 | |
JSR TSTFUN | |
BCC FACT02 | |
PAREXP BSR ARGONE | |
PSHS A | |
JSR SKIPSP | |
CMPA #")" | |
PULS A | |
BNE FACT05 | |
LEAX 1,X | |
RTS | |
FACT05 JMP ERRORS | |
;****************************** | |
;****************************** | |
ARGONE JSR TSTSTK | |
BCC FACT04 | |
JMP ERRORF | |
FACT04 JSR SKIPSP | |
CMPA #"(" | |
BNE FACT05 | |
LEAX 1,X | |
JMP EXPR | |
;****************************** | |
;****************************** | |
ABSX TST 0,X | |
BPL NEG05 | |
NEGX NEG 0,X | |
NEG 1,X | |
BCC NEG05 | |
DEC 0,X | |
NEG05 RTS | |
;****************************** | |
;****************************** | |
TSTEOL PSHS A | |
JSR SKIPSP | |
CMPA #EOL | |
BEQ TEOL03 | |
JMP ERRORS | |
TEOL03 LEAX 1,X | |
PULS A | |
RTS | |
;****************************** | |
;****************************** | |
LET JSR TSTVAR | |
BCC LET03 | |
JMP ERRORS | |
LET03 PSHS D | |
JSR SKIPSP | |
CMPA #"=" | |
BEQ LET05 | |
JMP ERRORS | |
LET05 LEAX 1,X | |
JSR EXPR | |
BSR TSTEOL | |
STX CURSOR | |
PULS X | |
STD 0,X | |
LDX CURSOR | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
IF: JSR RELEXP | |
TSTB | |
BEQ IF03 | |
JMP MSLINE | |
IF03: JMP REM | |
;****************************** | |
;****************************** | |
GOTO JSR EXPR | |
BSR TSTEOL | |
JSR FLINE | |
BCS GOSB04 | |
JMP NXTLIN | |
;****************************** | |
;****************************** | |
GOSUB JSR EXPR | |
BSR TSTEOL | |
STX CURSOR | |
JSR FLINE | |
BCC GOSB03 | |
GOSB04 JMP ERRORR | |
GOSB03 JSR TSTSTK | |
BCC GOSB05 | |
JMP ERRORF | |
GOSB05 LDD CURSOR | |
PSHS D | |
LDD LINENB | |
PSHS D | |
JSR NXTLIN | |
PULS D | |
STD LINENB | |
PULS X | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
RETURN EQU TSTEOL | |
;****************************** | |
;****************************** | |
PRINT JSR SKIPSP | |
PR01 CMPA #"," | |
BEQ PR05 | |
CMPA #";" | |
BEQ PR07 | |
CMPA #EOL | |
BEQ PR04 | |
CMPA #$22 | |
BNE PR02 | |
LEAX 1,X | |
BSR PRNTQS | |
BRA PR03 | |
PR02 JSR EXPR | |
PSHS X | |
BSR PRNTN | |
PULS X | |
PR03 JSR SKIPSP | |
CMPA #"," | |
BEQ PR05 | |
CMPA #";" | |
BEQ PR07 | |
CMPA #EOL | |
BEQ PR04 | |
JMP ERRORS | |
PR04 PSHS X | |
JSR CRLF | |
PULS X | |
BRA PR08 | |
PR05 LDB #$7 | |
PR06 LDA #SPACE | |
JSR PUTCHR | |
BITB ZONE | |
BNE PR06 | |
PR07 LEAX 1,X | |
JSR SKIPSP | |
CMPA #EOL | |
BNE PR01 | |
PR08 LEAX 1,X | |
JMP ENDS02 | |
;* | |
;* | |
PRQ01 JSR PUTCHR | |
PRNTQS LDA ,X+ | |
CMPA #EOL | |
BNE PRQ03 | |
JMP ERRORS | |
PRQ03 CMPA #$22 | |
BNE PRQ01 | |
RTS | |
;* | |
PRNTN TSTA | |
BPL PRN03 | |
NEGA | |
NEGB | |
SBCA #0 | |
PSHS A | |
LDA #"-" | |
JSR PUTCHR | |
PULS A | |
PRN03 LDX #PRNPT-2 | |
PRN05 LEAX 2,X | |
CMPD 0,X | |
BCC PRN07 | |
CMPX #PRNPTO | |
BNE PRN05 | |
PRN07 CLR CHAR | |
PRN09 CMPD 0,X | |
BCS PRN11 | |
SUBD 0,X | |
INC CHAR | |
BRA PRN09 | |
PRN11 PSHS A | |
LDA #"0" | |
ADDA CHAR | |
JSR PUTCHR | |
PULS A | |
CMPX #PRNPTO | |
BEQ PRN13 | |
LEAX 2,X | |
BRA PRN07 | |
PRN13 RTS | |
PRNPT FDB 10000 | |
FDB 1000 | |
FDB 100 | |
FDB 10 | |
PRNPTO FDB 1 | |
;* | |
PRNT4 LDX #PRNPT+2 | |
BRA PRN07 | |
;****************************** | |
;****************************** | |
INPUT JSR TSTVAR | |
BCS IN11 | |
PSHS D | |
STX CURSOR | |
IN03 LDA #"?" | |
JSR PUTCHR | |
JSR GETLIN | |
IN05 JSR SKIPSP | |
CMPA #EOL | |
BEQ IN03 | |
JSR TSTSNB | |
BCC IN07 | |
LDX #RMESS | |
JSR PUTSTR | |
JSR CRLF | |
BRA IN03 | |
IN07 STX SCRTCH | |
PULS X | |
STD 0,X | |
LDX CURSOR | |
JSR SKIPSP | |
CMPA #"," | |
BEQ IN09 | |
JMP ENDSMT | |
IN09 LEAX 1,X | |
JSR TSTVAR | |
BCC IN13 | |
IN11 JMP ERRORS | |
IN13 PSHS D | |
PSHS X | |
LDX SCRTCH | |
JSR SKIPSP | |
CMPA #"," | |
BNE IN05 | |
LEAX 1,X | |
BRA IN05 | |
RMESS DB "RE-ENTER" | |
FCB EOL | |
;****************************** | |
;****************************** | |
RUN LDX STKTOP | |
LDA #52 | |
RUN01 CLR ,X+ | |
DECA | |
BNE RUN01 | |
LDX USRBAS | |
JMP REM05 | |
;****************************** | |
;****************************** | |
LIST JSR TSTNBR | |
BCC LIST03 | |
CLRA | |
CLRB | |
STD CURSOR | |
LDA #$7F | |
BRA LIST07 | |
LIST03 STD CURSOR | |
JSR SKIPSP | |
CMPA #"," | |
BEQ LIST05 | |
LDA CURSOR | |
BRA LIST07 | |
LIST05 LEAX 1,X | |
JSR TSTNBR | |
BCC LIST07 | |
JMP ERRORS | |
LIST07 JSR TSTEOL | |
PSHS D | |
LDD CURSOR | |
STX CURSOR | |
JSR FLINE | |
LIST09 CMPX USRTOP | |
BEQ LIST10 | |
PULS D | |
CMPD 0,X | |
BCS LIST11 | |
PSHS D | |
LDD ,X++ | |
PSHS X | |
JSR PRNT4 | |
PULS X | |
LDA #SPACE | |
JSR PUTCHR | |
JSR PUTSTR | |
LEAX 1,X | |
PSHS X | |
JSR CRLF | |
PULS X | |
JSR TSTBRK | |
BRA LIST09 | |
LIST10 LEAS 2,S | |
LDA #ETX | |
JSR PUTCHR | |
LIST11 LDX CURSOR | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
VERBT DB "LET" | |
FCB EOL | |
FDB LET | |
DB "IF" | |
FCB EOL | |
FDB IF | |
DB "GOTO" | |
FCB EOL | |
FDB GOTO | |
DB "GOSUB" | |
FCB EOL | |
FDB GOSUB | |
DB "RETURN" | |
FCB EOL | |
FDB RETURN | |
DB "POKE" | |
FCB EOL | |
FDB POKE | |
DB "PRINT" | |
FCB EOL | |
FDB PRINT | |
DB "INPUT" | |
FCB EOL | |
FDB INPUT | |
DB "REM" | |
FCB EOL | |
FDB REM | |
DB "STOP" | |
FCB EOL | |
FDB END | |
DB "END" | |
FCB EOL | |
FDB END | |
DB "RUN" | |
FCB EOL | |
FDB RUN | |
DB "LIST" | |
FCB EOL | |
FDB LIST | |
DB "NEW" | |
FCB EOL | |
FDB CLEAR | |
DB "?" | |
FCB EOL | |
FDB PRINT | |
FCB EOL | |
;****************************** | |
;****************************** | |
TSTBRK bsr BRKEEE | |
beq GETC05 | |
GETCHR bsr INEEE | |
CMPA #ETX | |
BNE GETC05 | |
JMP BREAK | |
GETC05 RTS | |
PUTCHR INC ZONE | |
JMP OUTEEE | |
;****************************** | |
;****************************** | |
INEEE BSR BRKEEE | |
BEQ INEEE | |
LDA RECEV | |
ANDA #$7F | |
RTS | |
OUTEEE PSHS A | |
OUT01 LDA TRCS | |
BITA #TDRE | |
BEQ OUT01 | |
PULS A | |
STA TRANS | |
RTS | |
BRKEEE PSHS A | |
BRK03 LDA TRCS | |
BITA #ORFE | |
BEQ BRK05 | |
LDA RECEV | |
BRA BRK03 | |
BRK05 BITA #RDRF | |
PULS A | |
RTS | |
;* | |
LDA #CNTL1 | |
STA RMCR | |
LDA #CNTL2 | |
STA TRCS | |
INTEEE EQU $ | |
RTS | |
;****************************** | |
;****************************** | |
END: | |
jmp reset | |
{} |
:10FFF000E400E400E400E400E400E400E400E400E1 | |
:10E400007EE4154D4F443942415349430010DE0C20 | |
:10E41000BDEBE5201310CE21CC10DF0CBDEBE5CC1D | |
:10E420000249DD06DD08DD0ABDE53F8EE483BDE57A | |
:10E430003810DE0C0F19BDE53F9E069F0E8E0000C2 | |
:10E440009F120D192605863ABDEBAABDE590BDE6E3 | |
:10E45000EA240E292BBDE65B810427E1BDE60D20F1 | |
:10E46000D034109E089C0A351027037EE55FC30058 | |
:10E4700000270D340683270F350622048D1020BD9A | |
:10E480007EE55654494E592056312E333704340612 | |
:10E49000BDE65B9F14A6609E0E9C08270510A30096 | |
:10E4A00024029E06BDE7C49F0E25229F103002A6BF | |
:10E4B00080810426FA9C08270EA6809F169E10A72E | |
:10E4C000809F109E1620EE9E109F089F0A9E14C6E5 | |
:10E4D000FF5CA680810426F95D2603326239301F75 | |
:10E4E000CB04301F5AA600812027F78604A7014FCE | |
:10E4F0009E089F16D308DD08DD0ABDE76224079F4A | |
:10E50000089F0A7EE54E9E089F109E169C0E270AC5 | |
:10E51000A6829F169E10A78220EE35069E0EED81E4 | |
:10E520009F169E14A6809F149E16A7809F16810496 | |
:10E5300026F039BDEBAA3001A600810426F5398EFC | |
:10E54000E5478DF40F18390D0A7F000000048D2473 | |
:10E55000534F525259048D1C57484154203F048D4B | |
:10E5600013484F57203F048D0B425245414B0453F3 | |
:10E57000544F50048DC98607BDEBAADC12BDEA5E7C | |
:10E580008620BDEBAA35108DAF8DB47EE4318DAF02 | |
:10E590008E0200BDEBA081202514817F27F58C021F | |
:10E5A00048260486072002A780BDEBAA20E5810843 | |
:10E5B0002724811827D8810A2731810D26D50D19E6 | |
:10E5C0002705BDEBAA20073410BDE53F35108604B2 | |
:10E5D000A7008E0200398C020027B8301F8608BDC4 | |
:10E5E000EBAA8620BDEBAA860820BE1A01061920D8 | |
:10E5F000B830018D66810426F8BDE93196129A1370 | |
:10E6000027149C0826037EE55FEC81DD12BDEB9CA0 | |
:10E610008D0825033406397EE9428D3F9F0E8EEB2F | |
:10E6200037A680810426059E0E1A01399F169E0E7C | |
:10E630009F149E14A100261530019F149E16A680DB | |
:10E640009F16810426ECEC009E141CFE399E16A633 | |
:10E6500080810426FA300220C83001A600812027DC | |
:10E66000F8398D1A2422814125118146220D8037E7 | |
:10E670001CFE3981412504815A230D1A013981304C | |
:10E6800025F9813922F580301CFE398DCE8DE425A7 | |
:10E69000121F89A6018DDC24E23001C041584FD3FE | |
:10E6A0000C1CFE39BDE9103406BDE65B812C270940 | |
:10E6B00081291A0127157EE5563001BDE843340251 | |
:10E6C000BDE65B8129350226ED1CFE30019F0EADB3 | |
:10E6D000F19E0E1CFE39BDE65B812D260D30018DAD | |
:10E6E000092506405082001CFC39BDE65BBDE67E74 | |
:10E6F000242F81241A01266030016FE26FE2A60008 | |
:10E70000BDE662254F300134103402EC6385F026FB | |
:10E710004A5849584958495849EBE0ED62351020AC | |
:10E72000DD300134026FE2A600BDE67E2526300111 | |
:10E7300034103402EC63584929215849291DE363F8 | |
:10E74000291958492915EB608900290FED633261B9 | |
:10E75000351020D335061CFE1CFD39AE6132651A1A | |
:10E76000033910DF10DC10830030930A39BDE8FD57 | |
:10E7700034063410E672351032624F39BDE8FD348C | |
:10E7800006BDE65B813D27037EE5563001BDE843CB | |
:10E79000BDE9313410E772351032627EE5FCBDE62A | |
:10E7A0005B9F0E8EE7AEBDE6212502340639555338 | |
:10E7B0005204E6A45045454B04E76D4D454D04E732 | |
:10E7C00062049E069C0826031A033910A300260340 | |
:10E7D0001CFC3924051A011CFD3934028604300161 | |
:10E7E0003001A10026FA3502300120D88D553406BB | |
:10E7F0005FBDE65B813D2723813C261030015CBD77 | |
:10E80000E65B813E26113001CB042013813E265F5A | |
:10E810003001CB04BDE65B813D26043001CB0234E0 | |
:10E82000048D203410A3631FA8441F894848340472 | |
:10E83000ABE0840626014C5FA4622701534F3510DC | |
:10E840003263396FE26FE2BDE65B812D2717812BC2 | |
:10E85000260230018D1CE360ED60BDE65B812B2755 | |
:10E86000F1812D260A30018D094050820020E735C4 | |
:10E870000639BDE8E53406BDE65B812A2748812FCD | |
:10E88000270335063930018D5C341030623406A818 | |
:10E8900000BDE9243060BDE9243402861134024F02 | |
:10E8A0005FA3622406E3621CFE20021A0169676905 | |
:10E8B0006659496A6026EAA66132644D2A043062CC | |
:10E8C0008D66351020B130018D1B3404E6623DA603 | |
:10E8D00061E761E6603DA662E76235043DAB60AB8F | |
:10E8E00061ED602092BDE68B250934101F01EC001C | |
:10E8F000351039BDE6EA24FABDE79E24F58D1134C2 | |
:10E9000002BDE65B8129350226033001397EE556DA | |
:10E91000BDE76224037EE54EBDE65B812826EE302E | |
:10E92000017EE8436D002A086000600124026A004D | |
:10E93000393402BDE65B810427037EE5563001359C | |
:10E940000239BDE68B24037EE5563406BDE65B81C5 | |
:10E950003D27037EE5563001BDE8438DD49F0E353B | |
:10E9600010ED009E0E7EE5FCBDE7EC5D27037EE624 | |
:10E970000D7EE5F3BDE8438DB8BDE7C2250F7EE609 | |
:10E9800009BDE8438DAB9F0EBDE7C224037EE55F62 | |
:10E99000BDE76224037EE54EDC0E3406DC1234064D | |
:10E9A000BDE6093506DD1235107EE5FCBDE65B816E | |
:10E9B0002C2736813B273D810427258122260630DE | |
:10E9C000018D422009BDE84334108D473510BDE666 | |
:10E9D0005B812C2714813B271B810427037EE5568E | |
:10E9E0003410BDE53F35102014C6078620BDEBAAC4 | |
:10E9F000D51826F73001BDE65B810426B230017ED2 | |
:10EA0000E5FCBDEBAAA680810426037EE5568122A3 | |
:10EA100026F0394D2A0D405082003402862DBDEB80 | |
:10EA2000AA35028EEA52300210A30024058CEA5C5B | |
:10EA300026F40F1610A3002506A3000C1620F534AB | |
:10EA40000286309B16BDEBAA35028CEA5C270430A7 | |
:10EA50000220DF39271003E80064000A00018EEA73 | |
:10EA60005620CFBDE68B253C34069F0E863FBDEB7E | |
:10EA7000AABDE590BDE65B810427F1BDE6D6240B77 | |
:10EA80008EEAB8BDE538BDE53F20E19F143510EDB5 | |
:10EA9000009E0EBDE65B812C27037EE5F93001BDAB | |
:10EAA000E68B24037EE556340634109E14BDE65BE7 | |
:10EAB000812C26C0300120BC52452D454E54455274 | |
:10EAC000049E0C86346F804A26FB9E067EE602BDBD | |
:10EAD000E6EA24084F5FDD0E867F2017DD0EBDE6D7 | |
:10EAE0005B812C2704960E200A3001BDE6EA240340 | |
:10EAF0007EE556BDE9313406DC0E9F0EBDE7C29CB3 | |
:10EB0000082728350610A30025283406EC81341088 | |
:10EB1000BDEA5E35108620BDEBAABDE53830013474 | |
:10EB200010BDE53F3510BDEB9C20D432628603BD9D | |
:10EB3000EBAA9E0E7EE5FC4C455404E9424946048E | |
:10EB4000E968474F544F04E974474F53554204E96D | |
:10EB50008152455455524E04E931504F4B4504E71C | |
:10EB60007C5052494E5404E9AC494E50555404EA85 | |
:10EB70006352454D04E5F353544F5004EBE6454EC4 | |
:10EB80004404EBE652554E04EAC14C49535404EA9E | |
:10EB9000CF4E455704E41F3F04E9AC048D2A2709F2 | |
:10EBA0008D0D810326037EE567390C187EEBB98D48 | |
:10EBB0001727FCB683FF847F393402B683FE8502B3 | |
:10EBC00027F93502B783FF393402B683FE85202743 | |
:10EBD00005B683FF20F485013502398603B783FE2D | |
:09EBE0008615B783FE397EE400BE | |
:00000001FF |
0000 ;NAM TB01V137 | |
0000 ;* WRITTEN 20-OCT-77 BY JOHN BYRNS | |
0000 ;* REVISED 30-DEC-77 | |
0000 ;* REVISED 18-JAN-78 | |
0000 ;* REVISED 10-APR-78 | |
0000 ;* REVISED 08-MAY-79 TO ELIMINATE USE OF SP | |
0000 ;* REVISED 24-JAN-80 TO USE 6801 ON CHIP RAM | |
0000 ;* REVISED 26-JAN-80 FOR NEW 6801 INSTRUCTIONS | |
0000 ;* REVISED 24-JUL-81 FOR WHISTON BOARD | |
0000 ;* REVISED 24-SEP-81 INCLUDE USER FUNCTION | |
0000 ;* REVISED 08-APR-82 MAKE STANDALONE INCLUDE HEX CONSTANTS AND MEM FUNCTION | |
0000 ;* REVISED 21-NOV-84 FOR 6809 | |
0000 ;* REVISED FEB 94 ADAPTED TO SIMULATOR AND BUGFIXES BY L.C. BENSCHOP. | |
0000 ;* | |
0000 .ENGINE kilo | |
0000 EOL: EQU $04 | |
0000 ETX: EQU $03 | |
0000 SPACE: EQU $20 | |
0000 CR: EQU $0D | |
0000 LF: EQU $0A | |
0000 BS: EQU $08 | |
0000 CAN: EQU $18 | |
0000 BELL: EQU $07 | |
0000 FILL: EQU $00 | |
0000 DEL: EQU $7F | |
0000 BSIZE: EQU 73 | |
0000 STKCUS: EQU 48 | |
0000 ;* | |
0000 BACIA: EQU $83FE | |
0000 RMCR: EQU bACIA | |
0000 TRCS: EQU bACIA | |
0000 RECEV: EQU bACIA+1 | |
0000 TRANS: EQU bACIA+1 | |
0000 CNTL1: EQU $03 | |
0000 CNTL2: EQU $15 | |
0000 RDRF: EQU $01 | |
0000 ORFE: EQU $20 | |
0000 TDRE: EQU $02 | |
0000 ;* EDIT THE FOLLOWING EQUATES TO REFLECT THE | |
0000 ;* DESIRED ROM AND RAM LAYOUT | |
0000 LORAM: EQU $0080 | |
0000 BUFFER: EQU $0200 | |
0000 RAMSIZ: EQU $2000 | |
0000 ROMADR: EQU $f000 | |
0000 ;* | |
0000 RAMBEG: EQU BUFFER+BSIZE | |
0000 RAMEND: EQU BUFFER+RAMSIZ | |
0000 ;* | |
0000 RAMPAT: EQU $AA0F | |
0000 ROMPAT: EQU $F055 | |
0000 ;* | |
0000 ; ORG LORAM | |
0000 .BSSEG | |
0006 .ORG 6 | |
0006 USRBAS: RMB 2 | |
0008 USRTOP: RMB 2 | |
000A STKLIM: RMB 2 | |
000C STKTOP: RMB 2 | |
000E CURSOR: RMB 2 | |
0010 SAVESP: RMB 2 | |
0012 LINENB: RMB 2 | |
0014 SCRTCH: RMB 2 | |
0016 CHAR: RMB 2 | |
0018 ZONE: RMB 1 | |
0019 MODE: RMB 1 | |
001A RESRVD: RMB 1 | |
001B LOEND: EQU $ | |
001B ;* | |
0000 .CSEG | |
FFF0 .ORG 0xfff0 | |
FFF0 ;reserved | |
FFF0 E4 00 DW reset | |
FFF2 ;SWI3 | |
FFF2 E4 00 DW reset | |
FFF4 ;SWI2 | |
FFF4 E4 00 DW reset | |
FFF6 ;FIRQ | |
FFF6 E4 00 DW reset | |
FFF8 ;IRQ | |
FFF8 E4 00 DW reset | |
FFFA ;SWI | |
FFFA E4 00 DW reset | |
FFFC ;NMI | |
FFFC E4 00 DW reset | |
FFFE ;RES | |
FFFE E4 00 DW reset | |
E400 .ORG $e400 | |
E400 RESET: | |
E400 .ENT $ | |
E400 7E E4 15 BASIC: JMP SETUP | |
E403 4D 4F 44 39 42 41 53 49 43 00 .CSTR "MOD9BASIC" | |
E40D 10 DE 0C WARMS: LDS STKTOP | |
E410 BD EB E5 JSR INTEEE | |
E413 20 13 BRA WMS05 | |
E415 10 CE 21 CC SETUP: LDS #RAMEND-52 | |
E419 10 DF 0C SET03: STS STKTOP | |
E41C BD EB E5 JSR INTEEE | |
E41F CC 02 49 CLEAR: LDD #RAMBEG | |
E422 DD 06 STD USRBAS | |
E424 DD 08 STD USRTOP | |
E426 DD 0A CLR02: STD STKLIM | |
E428 BD E5 3F WMS05: JSR CRLF | |
E42B 8E E4 83 LDX #VSTR | |
E42E BD E5 38 JSR PUTSTR | |
E431 10 DE 0C CMDB: LDS STKTOP | |
E434 0F 19 CLR MODE | |
E436 BD E5 3F JSR CRLF | |
E439 9E 06 LDX USRBAS | |
E43B 9F 0E STX CURSOR | |
E43D 8E 00 00 CMDE: LDX #0000 | |
E440 9F 12 STX LINENB | |
E442 0D 19 TST MODE | |
E444 26 05 BNE CMD01 | |
E446 86 3A LDA #":" | |
E448 BD EB AA JSR PUTCHR | |
E44B BD E5 90 CMD01: JSR GETLIN | |
E44E BD E6 EA JSR TSTNBR | |
E451 24 0E BCC CMD02 | |
E453 29 2B BVS CMD05 | |
E455 BD E6 5B JSR SKIPSP | |
E458 81 04 CMPA #EOL | |
E45A 27 E1 BEQ CMDE | |
E45C BD E6 0D JSR MSLINE | |
E45F 20 D0 BRA CMDB | |
E461 34 10 CMD02: PSHS X | |
E463 9E 08 LDX USRTOP | |
E465 9C 0A CMPX STKLIM | |
E467 35 10 PULS X | |
E469 27 03 BEQ CMD03 | |
E46B 7E E5 5F JMP ERRORR | |
E46E C3 00 00 CMD03: ADDD #0 | |
E471 27 0D BEQ CMD05 | |
E473 34 06 CMD04: PSHS D | |
E475 83 27 0F SUBD #9999 | |
E478 35 06 PULS D | |
E47A 22 04 BHI CMD05 | |
E47C 8D 10 BSR EDITOR | |
E47E 20 BD BRA CMDE | |
E480 7E E5 56 CMD05: JMP ERRORS | |
E483 54 49 4E 59 20 56 31 2E 33 37 VSTR: DB "TINY V1.37" | |
E48D 04 FCB EOL | |
E48E ;****************************** | |
E48E ;****************************** | |
E48E 34 06 EDITOR: PSHS D | |
E490 BD E6 5B JSR SKIPSP | |
E493 9F 14 STX SCRTCH | |
E495 A6 60 LDA 0,S | |
E497 9E 0E LDX CURSOR | |
E499 9C 08 CMPX USRTOP | |
E49B 27 05 BEQ ED00 | |
E49D 10 A3 00 CMPD 0,X | |
E4A0 24 02 BCC ED01 | |
E4A2 9E 06 ED00: LDX USRBAS | |
E4A4 BD E7 C4 ED01: JSR FNDLIN | |
E4A7 9F 0E STX CURSOR | |
E4A9 25 22 BCS ED04 | |
E4AB 9F 10 STX SAVESP | |
E4AD 30 02 LEAX 2,X | |
E4AF A6 80 ED02: LDA ,X+ | |
E4B1 81 04 CMPA #EOL | |
E4B3 26 FA BNE ED02 | |
E4B5 9C 08 ED03: CMPX USRTOP | |
E4B7 27 0E BEQ ED35 | |
E4B9 A6 80 LDA ,X+ | |
E4BB 9F 16 STX CHAR | |
E4BD 9E 10 LDX SAVESP | |
E4BF A7 80 STA ,X+ | |
E4C1 9F 10 STX SAVESP | |
E4C3 9E 16 LDX CHAR | |
E4C5 20 EE BRA ED03 | |
E4C7 9E 10 ED35: LDX SAVESP | |
E4C9 9F 08 STX USRTOP | |
E4CB 9F 0A STX STKLIM | |
E4CD 9E 14 ED04: LDX SCRTCH | |
E4CF C6 FF LDB #-1 | |
E4D1 5C ED05: INCB | |
E4D2 A6 80 LDA ,X+ | |
E4D4 81 04 CMPA #EOL | |
E4D6 26 F9 BNE ED05 | |
E4D8 5D TSTB | |
E4D9 26 03 BNE ED55 | |
E4DB 32 62 LEAS 2,S | |
E4DD 39 RTS | |
E4DE 30 1F ED55: LEAX -1,X | |
E4E0 CB 04 ADDB #4 | |
E4E2 30 1F ED06: LEAX -1,X | |
E4E4 5A DECB | |
E4E5 A6 00 LDA 0,X | |
E4E7 81 20 CMPA #SPACE | |
E4E9 27 F7 BEQ ED06 | |
E4EB 86 04 LDA #EOL | |
E4ED A7 01 STA 1,X | |
E4EF 4F CLRA | |
E4F0 9E 08 LDX USRTOP | |
E4F2 9F 16 STX CHAR | |
E4F4 D3 08 ADDD USRTOP | |
E4F6 DD 08 STD USRTOP | |
E4F8 DD 0A STD STKLIM | |
E4FA BD E7 62 JSR TSTSTK | |
E4FD 24 07 BCC ED07 | |
E4FF 9F 08 STX USRTOP | |
E501 9F 0A STX STKLIM | |
E503 7E E5 4E JMP ERRORF | |
E506 9E 08 ED07: LDX USRTOP | |
E508 9F 10 ED08: STX SAVESP | |
E50A 9E 16 LDX CHAR | |
E50C 9C 0E CMPX CURSOR | |
E50E 27 0A BEQ ED09 | |
E510 A6 82 LDA ,-X | |
E512 9F 16 STX CHAR | |
E514 9E 10 LDX SAVESP | |
E516 A7 82 STA ,-X | |
E518 20 EE BRA ED08 | |
E51A 35 06 ED09: PULS D | |
E51C 9E 0E LDX CURSOR | |
E51E ED 81 STD ,X++ | |
E520 9F 16 STX CHAR | |
E522 9E 14 ED10: LDX SCRTCH | |
E524 A6 80 LDA ,X+ | |
E526 9F 14 STX SCRTCH | |
E528 9E 16 LDX CHAR | |
E52A A7 80 STA ,X+ | |
E52C 9F 16 STX CHAR | |
E52E 81 04 CMPA #EOL | |
E530 26 F0 BNE ED10 | |
E532 39 RTS | |
E533 ;****************************** | |
E533 ;****************************** | |
E533 BD EB AA PUTS01: JSR PUTCHR | |
E536 30 01 LEAX 1,X | |
E538 A6 00 PUTSTR: LDA 0,X | |
E53A 81 04 CMPA #EOL | |
E53C 26 F5 BNE PUTS01 | |
E53E 39 RTS | |
E53F ;****************************** | |
E53F ;****************************** | |
E53F 8E E5 47 CRLF: LDX #CRLFST | |
E542 8D F4 BSR PUTSTR | |
E544 0F 18 CLR ZONE | |
E546 39 RTS | |
E547 0D 0A 7F 00 00 00 04 CRLFST: FCB CR,LF,DEL,FILL,FILL,FILL,EOL | |
E54E ;****************************** | |
E54E ;****************************** | |
E54E 8D 24 ERRORF: BSR ER01 | |
E550 53 4F 52 52 59 DB "SORRY" | |
E555 04 FCB EOL | |
E556 8D 1C ERRORS: BSR ER01 | |
E558 57 48 41 54 20 3F DB "WHAT ?" | |
E55E 04 FCB EOL | |
E55F 8D 13 ERRORR: BSR ER01 | |
E561 48 4F 57 20 3F DB "HOW ?" | |
E566 04 FCB EOL | |
E567 8D 0B BREAK: BSR ER01 | |
E569 42 52 45 41 4B DB "BREAK" | |
E56E 04 FCB EOL | |
E56F END BSR ER01 | |
E56F 53 54 4F 50 DB "STOP" | |
E573 04 FCB EOL | |
E574 8D C9 ER01: BSR CRLF | |
E576 86 07 LDA #BELL | |
E578 BD EB AA JSR PUTCHR | |
E57B DC 12 LDD LINENB | |
E57D BD EA 5E JSR PRNT4 | |
E580 86 20 LDA #SPACE | |
E582 BD EB AA JSR PUTCHR | |
E585 35 10 PULS X | |
E587 8D AF BSR PUTSTR | |
E589 8D B4 BSR CRLF | |
E58B 7E E4 31 JMP CMDB | |
E58E ;****************************** | |
E58E ;****************************** | |
E58E 8D AF GL00: BSR CRLF | |
E590 8E 02 00 GETLIN: LDX #BUFFER | |
E593 BD EB A0 GL03: JSR GETCHR | |
E596 81 20 CMPA #SPACE | |
E598 25 14 BCS GL05 | |
E59A 81 7F CMPA #$7F | |
E59C 27 F5 BEQ GL03 | |
E59E 8C 02 48 CMPX #BUFFER+BSIZE-1 | |
E5A1 26 04 BNE GL04 | |
E5A3 86 07 LDA #BELL | |
E5A5 20 02 BRA GL02 | |
E5A7 A7 80 GL04: STA ,X+ | |
E5A9 BD EB AA GL02: JSR PUTCHR | |
E5AC 20 E5 BRA GL03 | |
E5AE 81 08 GL05: CMPA #BS | |
E5B0 27 24 BEQ GL07 | |
E5B2 81 18 CMPA #CAN | |
E5B4 27 D8 BEQ GL00 | |
E5B6 81 0A CMPA #LF | |
E5B8 27 31 BEQ GL09 | |
E5BA 81 0D CMPA #CR | |
E5BC 26 D5 BNE GL03 | |
E5BE 0D 19 TST MODE | |
E5C0 27 05 BEQ GL06 | |
E5C2 BD EB AA JSR PUTCHR | |
E5C5 20 07 BRA GL08 | |
E5C7 34 10 GL06: PSHS X | |
E5C9 BD E5 3F JSR CRLF | |
E5CC 35 10 PULS X | |
E5CE 86 04 GL08: LDA #EOL | |
E5D0 A7 00 STA 0,X | |
E5D2 8E 02 00 LDX #BUFFER | |
E5D5 39 RTS | |
E5D6 8C 02 00 GL07: CMPX #BUFFER | |
E5D9 27 B8 BEQ GL03 | |
E5DB 30 1F LEAX -1,X | |
E5DD 86 08 LDA #BS | |
E5DF BD EB AA JSR PUTCHR | |
E5E2 86 20 LDA #SPACE | |
E5E4 BD EB AA JSR PUTCHR | |
E5E7 86 08 LDA #BS | |
E5E9 20 BE BRA GL02 | |
E5EB 1A 01 GL09: ORCC #$01 | |
E5ED 06 19 ROR MODE | |
E5EF 20 B8 BRA GL02 | |
E5F1 ;****************************** | |
E5F1 ;****************************** | |
E5F1 30 01 REM00: LEAX 1,X | |
E5F3 8D 66 REM: BSR SKIPSP | |
E5F5 81 04 CMPA #EOL | |
E5F7 26 F8 BNE REM00 | |
E5F9 BD E9 31 ENDSMT: JSR TSTEOL | |
E5FC 96 12 ENDS02: LDA LINENB | |
E5FE 9A 13 ORA LINENB+1 | |
E600 27 14 BEQ REM09 | |
E602 9C 08 REM05: CMPX USRTOP | |
E604 26 03 BNE NXTLIN | |
E606 7E E5 5F JMP ERRORR | |
E609 EC 81 NXTLIN: LDD ,X++ | |
E60B DD 12 STD LINENB | |
E60D BD EB 9C MSLINE: JSR TSTBRK | |
E610 8D 08 BSR IFAN | |
E612 25 03 BCS IMPLET | |
E614 34 06 PSHS D | |
E616 39 REM09: RTS | |
E617 7E E9 42 IMPLET: JMP LET | |
E61A ;****************************** | |
E61A ;****************************** | |
E61A 8D 3F IFAN: BSR SKIPSP | |
E61C 9F 0E STX CURSOR | |
E61E 8E EB 37 LDX #VERBT | |
E621 A6 80 FAN00: LDA ,X+ | |
E623 81 04 CMPA #EOL | |
E625 26 05 BNE FAN04 | |
E627 9E 0E LDX CURSOR | |
E629 1A 01 ORCC #$01 | |
E62B 39 RTS | |
E62C 9F 16 FAN04: STX CHAR | |
E62E 9E 0E LDX CURSOR | |
E630 9F 14 STX SCRTCH | |
E632 9E 14 FAN05: LDX SCRTCH | |
E634 A1 00 CMPA 0,X | |
E636 26 15 BNE FAN07 | |
E638 30 01 LEAX 1,X | |
E63A 9F 14 STX SCRTCH | |
E63C 9E 16 LDX CHAR | |
E63E A6 80 LDA ,X+ | |
E640 9F 16 STX CHAR | |
E642 81 04 CMPA #EOL | |
E644 26 EC BNE FAN05 | |
E646 EC 00 LDD 0,X | |
E648 9E 14 LDX SCRTCH | |
E64A 1C FE ANDCC #$FE | |
E64C 39 RTS | |
E64D 9E 16 FAN07: LDX CHAR | |
E64F A6 80 FAN08: LDA ,X+ | |
E651 81 04 CMPA #EOL | |
E653 26 FA BNE FAN08 | |
E655 30 02 LEAX 2,X | |
E657 20 C8 BRA FAN00 | |
E659 ;****************************** | |
E659 ;****************************** | |
E659 30 01 NXTNSP: LEAX 1,X | |
E65B A6 00 SKIPSP: LDA 0,X | |
E65D 81 20 CMPA #SPACE | |
E65F 27 F8 BEQ NXTNSP | |
E661 39 RTS | |
E662 ;****************************** | |
E662 ;****************************** | |
E662 8D 1A TSTHEX: BSR TSTDIG | |
E664 24 22 BCC TST05 | |
E666 81 41 CMPA #"A" | |
E668 25 11 BCS TST03 | |
E66A 81 46 CMPA #"F" | |
E66C 22 0D BHI TST03 | |
E66E 80 37 SUBA #"A"-10 | |
E670 1C FE ANDCC #$FE | |
E672 39 RTS | |
E673 ;****************************** | |
E673 ;****************************** | |
E673 81 41 TSTLTR: CMPA #"A" | |
E675 25 04 BCS TST03 | |
E677 81 5A CMPA #"Z" | |
E679 23 0D BLS TST05 | |
E67B 1A 01 TST03: ORCC #$01 | |
E67D 39 RTS | |
E67E ;****************************** | |
E67E ;****************************** | |
E67E 81 30 TSTDIG: CMPA #"0" | |
E680 25 F9 BCS TST03 | |
E682 81 39 CMPA #"9" | |
E684 22 F5 BHI TST03 | |
E686 80 30 SUBA #"0" | |
E688 1C FE TST05: ANDCC #$FE | |
E68A 39 RTS | |
E68B ;****************************** | |
E68B ;****************************** | |
E68B 8D CE TSTVAR: BSR SKIPSP | |
E68D 8D E4 BSR TSTLTR | |
E68F 25 12 BCS TSTV03 | |
E691 1F 89 TFR A,B | |
E693 A6 01 LDA 1,X | |
E695 8D DC BSR TSTLTR | |
E697 24 E2 BCC TST03 | |
E699 30 01 LEAX 1,X | |
E69B C0 41 SUBB #"A" | |
E69D 58 ASLB | |
E69E 4F CLRA | |
E69F D3 0C ADDD STKTOP | |
E6A1 1C FE TSTV02: ANDCC #$FE | |
E6A3 39 TSTV03: RTS | |
E6A4 ;****************************** | |
E6A4 ;****************************** | |
E6A4 BD E9 10 USER: JSR ARGONE | |
E6A7 34 06 PSHS D | |
E6A9 BD E6 5B JSR SKIPSP | |
E6AC 81 2C CMPA #"," | |
E6AE 27 09 BEQ USER03 | |
E6B0 81 29 CMPA #")" | |
E6B2 1A 01 ORCC #$01 | |
E6B4 27 15 BEQ USER05 | |
E6B6 7E E5 56 USER02: JMP ERRORS | |
E6B9 30 01 USER03: LEAX 1,X | |
E6BB BD E8 43 JSR EXPR | |
E6BE 34 02 PSHS A | |
E6C0 BD E6 5B JSR SKIPSP | |
E6C3 81 29 CMPA #")" | |
E6C5 35 02 PULS A | |
E6C7 26 ED BNE USER02 | |
E6C9 1C FE ANDCC #$FE | |
E6CB 30 01 USER05: LEAX 1,X | |
E6CD 9F 0E STX CURSOR | |
E6CF AD F1 JSR [,S++] | |
E6D1 9E 0E LDX CURSOR | |
E6D3 1C FE ANDCC #$FE | |
E6D5 39 RTS | |
E6D6 ;****************************** | |
E6D6 ;****************************** | |
E6D6 BD E6 5B TSTSNB: JSR SKIPSP | |
E6D9 81 2D CMPA #"-" | |
E6DB 26 0D BNE TSTNBR | |
E6DD 30 01 LEAX 1,X | |
E6DF 8D 09 BSR TSTNBR | |
E6E1 25 06 BCS TSN02 | |
E6E3 40 NEGA | |
E6E4 50 NEGB | |
E6E5 82 00 SBCA #0 | |
E6E7 1C FC ANDCC #$FC | |
E6E9 39 TSN02: RTS | |
E6EA ;****************************** | |
E6EA ;****************************** | |
E6EA BD E6 5B TSTNBR: JSR SKIPSP | |
E6ED BD E6 7E JSR TSTDIG | |
E6F0 24 2F BCC TSTN02 | |
E6F2 81 24 CMPA #"$" | |
E6F4 1A 01 ORCC #$01 | |
E6F6 26 60 BNE TSTN09 | |
E6F8 30 01 TSTN20: LEAX 1,X | |
E6FA 6F E2 CLR ,-S | |
E6FC 6F E2 CLR ,-S | |
E6FE A6 00 TSTN23: LDA 0,X | |
E700 BD E6 62 JSR TSTHEX | |
E703 25 4F BCS TSTN07 | |
E705 30 01 LEAX 1,X | |
E707 34 10 PSHS X | |
E709 34 02 PSHS A | |
E70B EC 63 LDD 3,S | |
E70D 85 F0 BITA #$F0 | |
E70F 26 4A BNE TSTN11 | |
E711 58 ASLB | |
E712 49 ROLA | |
E713 58 ASLB | |
E714 49 ROLA | |
E715 58 ASLB | |
E716 49 ROLA | |
E717 58 ASLB | |
E718 49 ROLA | |
E719 EB E0 ADDB ,S+ | |
E71B ED 62 STD 2,S | |
E71D 35 10 PULS X | |
E71F 20 DD BRA TSTN23 | |
E721 30 01 TSTN02: LEAX 1,X | |
E723 34 02 PSHS A | |
E725 6F E2 CLR ,-S | |
E727 A6 00 TSTN03: LDA 0,X | |
E729 BD E6 7E JSR TSTDIG | |
E72C 25 26 BCS TSTN07 | |
E72E 30 01 LEAX 1,X | |
E730 34 10 PSHS X | |
E732 34 02 PSHS A | |
E734 EC 63 LDD 3,S | |
E736 58 ASLB | |
E737 49 ROLA | |
E738 29 21 BVS TSTN11 | |
E73A 58 ASLB | |
E73B 49 ROLA | |
E73C 29 1D BVS TSTN11 | |
E73E E3 63 ADDD 3,S | |
E740 29 19 BVS TSTN11 | |
E742 58 ASLB | |
E743 49 ROLA | |
E744 29 15 BVS TSTN11 | |
E746 EB 60 ADDB 0,S | |
E748 89 00 ADCA #0 | |
E74A 29 0F BVS TSTN11 | |
E74C ED 63 STD 3,S | |
E74E 32 61 LEAS 1,S | |
E750 35 10 PULS X | |
E752 20 D3 BRA TSTN03 | |
E754 35 06 TSTN07: PULS D | |
E756 1C FE ANDCC #$FE | |
E758 1C FD TSTN09: ANDCC #$FD | |
E75A 39 RTS | |
E75B AE 61 TSTN11: LDX 1,S | |
E75D 32 65 LEAS 5,S | |
E75F 1A 03 ORCC #$03 | |
E761 39 RTS | |
E762 ;****************************** | |
E762 ;****************************** | |
E762 10 DF 10 TSTSTK: STS SAVESP | |
E765 DC 10 LDD SAVESP | |
E767 83 00 30 SUBD #STKCUS | |
E76A 93 0A SUBD STKLIM | |
E76C 39 RTS | |
E76D ;****************************** | |
E76D ;****************************** | |
E76D BD E8 FD PEEK: JSR PAREXP | |
E770 34 06 PSHS D | |
E772 34 10 PSHS X | |
E774 E6 72 LDB [2,S] | |
E776 35 10 PULS X | |
E778 32 62 LEAS 2,S | |
E77A 4F CLRA | |
E77B 39 RTS | |
E77C ;****************************** | |
E77C ;****************************** | |
E77C BD E8 FD POKE: JSR PAREXP | |
E77F 34 06 PSHS D | |
E781 BD E6 5B JSR SKIPSP | |
E784 81 3D CMPA #"=" | |
E786 27 03 BEQ POKE05 | |
E788 7E E5 56 JMP ERRORS | |
E78B 30 01 POKE05: LEAX 1,X | |
E78D BD E8 43 JSR EXPR | |
E790 BD E9 31 JSR TSTEOL | |
E793 34 10 PSHS X | |
E795 E7 72 STB [2,S] | |
E797 35 10 PULS X | |
E799 32 62 LEAS 2,S | |
E79B 7E E5 FC JMP ENDS02 | |
E79E ;****************************** | |
E79E ;****************************** | |
E79E BD E6 5B TSTFUN: JSR SKIPSP | |
E7A1 9F 0E STX CURSOR | |
E7A3 8E E7 AE LDX #FUNT | |
E7A6 BD E6 21 JSR FAN00 | |
E7A9 25 02 BCS TSTF05 | |
E7AB 34 06 PSHS D | |
E7AD 39 TSTF05: RTS | |
E7AE ;****************************** | |
E7AE ;****************************** | |
E7AE 55 53 52 FUNT: DB "USR" | |
E7B1 04 FCB EOL | |
E7B2 E6 A4 FDB USER | |
E7B4 50 45 45 4B DB "PEEK" | |
E7B8 04 FCB EOL | |
E7B9 E7 6D FDB PEEK | |
E7BB 4D 45 4D DB "MEM" | |
E7BE 04 FCB EOL | |
E7BF E7 62 FDB TSTSTK | |
E7C1 04 FCB EOL | |
E7C2 ;****************************** | |
E7C2 ;****************************** | |
E7C2 9E 06 FLINE: LDX USRBAS | |
E7C4 9C 08 FNDLIN: CMPX USRTOP | |
E7C6 26 03 BNE FND03 | |
E7C8 1A 03 ORCC #$03 | |
E7CA 39 RTS | |
E7CB 10 A3 00 FND03: CMPD 0,X | |
E7CE 26 03 BNE FND05 | |
E7D0 1C FC ANDCC #$FC | |
E7D2 39 RTS | |
E7D3 24 05 FND05: BCC FND07 | |
E7D5 1A 01 ORCC #$01 | |
E7D7 1C FD ANDCC #$FD | |
E7D9 39 RTS | |
E7DA 34 02 FND07: PSHS A | |
E7DC 86 04 LDA #EOL | |
E7DE 30 01 LEAX 1,X | |
E7E0 30 01 FND09: LEAX 1,X | |
E7E2 A1 00 CMPA 0,X | |
E7E4 26 FA BNE FND09 | |
E7E6 35 02 PULS A | |
E7E8 30 01 LEAX 1,X | |
E7EA 20 D8 BRA FNDLIN | |
E7EC ;****************************** | |
E7EC ;****************************** | |
E7EC 8D 55 RELEXP: BSR EXPR | |
E7EE 34 06 PSHS D | |
E7F0 5F CLRB | |
E7F1 BD E6 5B JSR SKIPSP | |
E7F4 81 3D CMPA #"=" | |
E7F6 27 23 BEQ REL06 | |
E7F8 81 3C CMPA #"<" | |
E7FA 26 10 BNE REL03 | |
E7FC 30 01 LEAX 1,X | |
E7FE 5C INCB | |
E7FF BD E6 5B JSR SKIPSP | |
E802 81 3E CMPA #">" | |
E804 26 11 BNE REL05 | |
E806 30 01 LEAX 1,X | |
E808 CB 04 ADDB #4 | |
E80A 20 13 BRA REL07 | |
E80C 81 3E REL03: CMPA #">" | |
E80E 26 5F BNE EXPR06 | |
E810 30 01 LEAX 1,X | |
E812 CB 04 ADDB #4 | |
E814 BD E6 5B JSR SKIPSP | |
E817 81 3D REL05: CMPA #"=" | |
E819 26 04 BNE REL07 | |
E81B 30 01 REL06: LEAX 1,X | |
E81D CB 02 ADDB #2 | |
E81F 34 04 REL07: PSHS B | |
E821 8D 20 BSR EXPR | |
E823 34 10 PSHS X | |
E825 A3 63 SUBD 3,S | |
E827 1F A8 TFR CC,A | |
E829 44 LSRA | |
E82A 1F 89 TFR A,B | |
E82C 48 ASLA | |
E82D 48 ASLA | |
E82E 34 04 PSHS B | |
E830 AB E0 ADDA ,S+ | |
E832 84 06 ANDA #$06 | |
E834 26 01 BNE REL08 | |
E836 4C INCA | |
E837 5F REL08: CLRB | |
E838 A4 62 ANDA 2,S | |
E83A 27 01 BEQ REL09 | |
E83C 53 COMB | |
E83D 4F REL09: CLRA | |
E83E 35 10 PULS X | |
E840 32 63 LEAS 3,S | |
E842 39 RTS | |
E843 ;****************************** | |
E843 ;****************************** | |
E843 6F E2 EXPR: CLR ,-S | |
E845 6F E2 CLR ,-S | |
E847 BD E6 5B JSR SKIPSP | |
E84A 81 2D CMPA #"-" | |
E84C 27 17 BEQ EXPR05 | |
E84E 81 2B CMPA #"+" | |
E850 26 02 BNE EXPR03 | |
E852 30 01 EXPR02: LEAX 1,X | |
E854 8D 1C EXPR03: BSR TERM | |
E856 E3 60 EXPR04: ADDD 0,S | |
E858 ED 60 STD 0,S | |
E85A BD E6 5B JSR SKIPSP | |
E85D 81 2B CMPA #"+" | |
E85F 27 F1 BEQ EXPR02 | |
E861 81 2D CMPA #"-" | |
E863 26 0A BNE EXPR06 | |
E865 30 01 EXPR05: LEAX 1,X | |
E867 8D 09 BSR TERM | |
E869 40 NEGA | |
E86A 50 NEGB | |
E86B 82 00 SBCA #0 | |
E86D 20 E7 BRA EXPR04 | |
E86F 35 06 EXPR06: PULS D | |
E871 39 RTS | |
E872 ;****************************** | |
E872 ;****************************** | |
E872 BD E8 E5 TERM: JSR FACT | |
E875 34 06 PSHS D | |
E877 BD E6 5B TERM03: JSR SKIPSP | |
E87A 81 2A CMPA #"*" | |
E87C 27 48 BEQ TERM07 | |
E87E 81 2F CMPA #"/" | |
E880 27 03 BEQ TERM05 | |
E882 35 06 PULS D | |
E884 39 RTS | |
E885 30 01 TERM05: LEAX 1,X | |
E887 8D 5C BSR FACT | |
E889 34 10 PSHS X | |
E88B 30 62 LEAX 2,S | |
E88D 34 06 PSHS D | |
E88F A8 00 EORA 0,X | |
E891 BD E9 24 JSR ABSX | |
E894 30 60 LEAX 0,S | |
E896 BD E9 24 JSR ABSX | |
E899 34 02 PSHS A | |
E89B 86 11 LDA #17 | |
E89D 34 02 PSHS A | |
E89F 4F CLRA | |
E8A0 5F CLRB | |
E8A1 A3 62 DIV05: SUBD 2,S | |
E8A3 24 06 BCC DIV07 | |
E8A5 E3 62 ADDD 2,S | |
E8A7 1C FE ANDCC #$FE | |
E8A9 20 02 BRA DIV09 | |
E8AB 1A 01 DIV07: ORCC #$01 | |
E8AD 69 67 DIV09: ROL 7,S | |
E8AF 69 66 ROL 6,S | |
E8B1 59 ROLB | |
E8B2 49 ROLA | |
E8B3 6A 60 DEC 0,S | |
E8B5 26 EA BNE DIV05 | |
E8B7 A6 61 LDA 1,S | |
E8B9 32 64 LEAS 4,S | |
E8BB 4D TSTA | |
E8BC 2A 04 BPL TERM06 | |
E8BE 30 62 LEAX 2,S | |
E8C0 8D 66 BSR NEGX | |
E8C2 35 10 TERM06: PULS X | |
E8C4 20 B1 BRA TERM03 | |
E8C6 30 01 TERM07: LEAX 1,X | |
E8C8 8D 1B BSR FACT | |
E8CA 34 04 MULT: PSHS B | |
E8CC E6 62 LDB 2,S | |
E8CE 3D MUL | |
E8CF A6 61 LDA 1,S | |
E8D1 E7 61 STB 1,S | |
E8D3 E6 60 LDB 0,S | |
E8D5 3D MUL | |
E8D6 A6 62 LDA 2,S | |
E8D8 E7 62 STB 2,S | |
E8DA 35 04 PULS B | |
E8DC 3D MUL | |
E8DD AB 60 ADDA 0,S | |
E8DF AB 61 ADDA 1,S | |
E8E1 ED 60 STD 0,S | |
E8E3 20 92 BRA TERM03 | |
E8E5 ;****************************** | |
E8E5 ;****************************** | |
E8E5 BD E6 8B FACT: JSR TSTVAR | |
E8E8 25 09 BCS FACT03 | |
E8EA 34 10 PSHS X | |
E8EC 1F 01 TFR D,X | |
E8EE EC 00 LDD 0,X | |
E8F0 35 10 PULS X | |
E8F2 39 FACT02: RTS | |
E8F3 BD E6 EA FACT03: JSR TSTNBR | |
E8F6 24 FA BCC FACT02 | |
E8F8 BD E7 9E JSR TSTFUN | |
E8FB 24 F5 BCC FACT02 | |
E8FD 8D 11 PAREXP: BSR ARGONE | |
E8FF 34 02 PSHS A | |
E901 BD E6 5B JSR SKIPSP | |
E904 81 29 CMPA #")" | |
E906 35 02 PULS A | |
E908 26 03 BNE FACT05 | |
E90A 30 01 LEAX 1,X | |
E90C 39 RTS | |
E90D 7E E5 56 FACT05: JMP ERRORS | |
E910 ;****************************** | |
E910 ;****************************** | |
E910 BD E7 62 ARGONE: JSR TSTSTK | |
E913 24 03 BCC FACT04 | |
E915 7E E5 4E JMP ERRORF | |
E918 BD E6 5B FACT04: JSR SKIPSP | |
E91B 81 28 CMPA #"(" | |
E91D 26 EE BNE FACT05 | |
E91F 30 01 LEAX 1,X | |
E921 7E E8 43 JMP EXPR | |
E924 ;****************************** | |
E924 ;****************************** | |
E924 6D 00 ABSX: TST 0,X | |
E926 2A 08 BPL NEG05 | |
E928 60 00 NEGX: NEG 0,X | |
E92A 60 01 NEG 1,X | |
E92C 24 02 BCC NEG05 | |
E92E 6A 00 DEC 0,X | |
E930 39 NEG05: RTS | |
E931 ;****************************** | |
E931 ;****************************** | |
E931 34 02 TSTEOL: PSHS A | |
E933 BD E6 5B JSR SKIPSP | |
E936 81 04 CMPA #EOL | |
E938 27 03 BEQ TEOL03 | |
E93A 7E E5 56 JMP ERRORS | |
E93D 30 01 TEOL03: LEAX 1,X | |
E93F 35 02 PULS A | |
E941 39 RTS | |
E942 ;****************************** | |
E942 ;****************************** | |
E942 BD E6 8B LET: JSR TSTVAR | |
E945 24 03 BCC LET03 | |
E947 7E E5 56 JMP ERRORS | |
E94A 34 06 LET03: PSHS D | |
E94C BD E6 5B JSR SKIPSP | |
E94F 81 3D CMPA #"=" | |
E951 27 03 BEQ LET05 | |
E953 7E E5 56 JMP ERRORS | |
E956 30 01 LET05: LEAX 1,X | |
E958 BD E8 43 JSR EXPR | |
E95B 8D D4 BSR TSTEOL | |
E95D 9F 0E STX CURSOR | |
E95F 35 10 PULS X | |
E961 ED 00 STD 0,X | |
E963 9E 0E LDX CURSOR | |
E965 7E E5 FC JMP ENDS02 | |
E968 ;****************************** | |
E968 ;****************************** | |
E968 BD E7 EC IF: JSR RELEXP | |
E96B 5D TSTB | |
E96C 27 03 BEQ IF03 | |
E96E 7E E6 0D JMP MSLINE | |
E971 7E E5 F3 IF03: JMP REM | |
E974 ;****************************** | |
E974 ;****************************** | |
E974 BD E8 43 GOTO: JSR EXPR | |
E977 8D B8 BSR TSTEOL | |
E979 BD E7 C2 JSR FLINE | |
E97C 25 0F BCS GOSB04 | |
E97E 7E E6 09 JMP NXTLIN | |
E981 ;****************************** | |
E981 ;****************************** | |
E981 BD E8 43 GOSUB: JSR EXPR | |
E984 8D AB BSR TSTEOL | |
E986 9F 0E STX CURSOR | |
E988 BD E7 C2 JSR FLINE | |
E98B 24 03 BCC GOSB03 | |
E98D 7E E5 5F GOSB04: JMP ERRORR | |
E990 BD E7 62 GOSB03: JSR TSTSTK | |
E993 24 03 BCC GOSB05 | |
E995 7E E5 4E JMP ERRORF | |
E998 DC 0E GOSB05: LDD CURSOR | |
E99A 34 06 PSHS D | |
E99C DC 12 LDD LINENB | |
E99E 34 06 PSHS D | |
E9A0 BD E6 09 JSR NXTLIN | |
E9A3 35 06 PULS D | |
E9A5 DD 12 STD LINENB | |
E9A7 35 10 PULS X | |
E9A9 7E E5 FC JMP ENDS02 | |
E9AC ;****************************** | |
E9AC ;****************************** | |
E9AC RETURN: EQU TSTEOL | |
E9AC ;****************************** | |
E9AC ;****************************** | |
E9AC BD E6 5B PRINT: JSR SKIPSP | |
E9AF 81 2C PR01: CMPA #"," | |
E9B1 27 36 BEQ PR05 | |
E9B3 81 3B CMPA #";" | |
E9B5 27 3D BEQ PR07 | |
E9B7 81 04 CMPA #EOL | |
E9B9 27 25 BEQ PR04 | |
E9BB 81 22 CMPA #$22 | |
E9BD 26 06 BNE PR02 | |
E9BF 30 01 LEAX 1,X | |
E9C1 8D 42 BSR PRNTQS | |
E9C3 20 09 BRA PR03 | |
E9C5 BD E8 43 PR02: JSR EXPR | |
E9C8 34 10 PSHS X | |
E9CA 8D 47 BSR PRNTN | |
E9CC 35 10 PULS X | |
E9CE BD E6 5B PR03: JSR SKIPSP | |
E9D1 81 2C CMPA #"," | |
E9D3 27 14 BEQ PR05 | |
E9D5 81 3B CMPA #";" | |
E9D7 27 1B BEQ PR07 | |
E9D9 81 04 CMPA #EOL | |
E9DB 27 03 BEQ PR04 | |
E9DD 7E E5 56 JMP ERRORS | |
E9E0 34 10 PR04: PSHS X | |
E9E2 BD E5 3F JSR CRLF | |
E9E5 35 10 PULS X | |
E9E7 20 14 BRA PR08 | |
E9E9 C6 07 PR05: LDB #$7 | |
E9EB 86 20 PR06: LDA #SPACE | |
E9ED BD EB AA JSR PUTCHR | |
E9F0 D5 18 BITB ZONE | |
E9F2 26 F7 BNE PR06 | |
E9F4 30 01 PR07: LEAX 1,X | |
E9F6 BD E6 5B JSR SKIPSP | |
E9F9 81 04 CMPA #EOL | |
E9FB 26 B2 BNE PR01 | |
E9FD 30 01 PR08: LEAX 1,X | |
E9FF 7E E5 FC JMP ENDS02 | |
EA02 ;* | |
EA02 ;* | |
EA02 BD EB AA PRQ01: JSR PUTCHR | |
EA05 A6 80 PRNTQS: LDA ,X+ | |
EA07 81 04 CMPA #EOL | |
EA09 26 03 BNE PRQ03 | |
EA0B 7E E5 56 JMP ERRORS | |
EA0E 81 22 PRQ03: CMPA #$22 | |
EA10 26 F0 BNE PRQ01 | |
EA12 39 RTS | |
EA13 ;* | |
EA13 4D PRNTN: TSTA | |
EA14 2A 0D BPL PRN03 | |
EA16 40 NEGA | |
EA17 50 NEGB | |
EA18 82 00 SBCA #0 | |
EA1A 34 02 PSHS A | |
EA1C 86 2D LDA #"-" | |
EA1E BD EB AA JSR PUTCHR | |
EA21 35 02 PULS A | |
EA23 8E EA 52 PRN03: LDX #PRNPT-2 | |
EA26 30 02 PRN05: LEAX 2,X | |
EA28 10 A3 00 CMPD 0,X | |
EA2B 24 05 BCC PRN07 | |
EA2D 8C EA 5C CMPX #PRNPTO | |
EA30 26 F4 BNE PRN05 | |
EA32 0F 16 PRN07: CLR CHAR | |
EA34 10 A3 00 PRN09: CMPD 0,X | |
EA37 25 06 BCS PRN11 | |
EA39 A3 00 SUBD 0,X | |
EA3B 0C 16 INC CHAR | |
EA3D 20 F5 BRA PRN09 | |
EA3F 34 02 PRN11: PSHS A | |
EA41 86 30 LDA #"0" | |
EA43 9B 16 ADDA CHAR | |
EA45 BD EB AA JSR PUTCHR | |
EA48 35 02 PULS A | |
EA4A 8C EA 5C CMPX #PRNPTO | |
EA4D 27 04 BEQ PRN13 | |
EA4F 30 02 LEAX 2,X | |
EA51 20 DF BRA PRN07 | |
EA53 39 PRN13: RTS | |
EA54 27 10 PRNPT: FDB 10000 | |
EA56 03 E8 FDB 1000 | |
EA58 00 64 FDB 100 | |
EA5A 00 0A FDB 10 | |
EA5C 00 01 PRNPTO: FDB 1 | |
EA5E ;* | |
EA5E 8E EA 56 PRNT4: LDX #PRNPT+2 | |
EA61 20 CF BRA PRN07 | |
EA63 ;****************************** | |
EA63 ;****************************** | |
EA63 BD E6 8B INPUT: JSR TSTVAR | |
EA66 25 3C BCS IN11 | |
EA68 34 06 PSHS D | |
EA6A 9F 0E STX CURSOR | |
EA6C 86 3F IN03: LDA #"?" | |
EA6E BD EB AA JSR PUTCHR | |
EA71 BD E5 90 JSR GETLIN | |
EA74 BD E6 5B IN05: JSR SKIPSP | |
EA77 81 04 CMPA #EOL | |
EA79 27 F1 BEQ IN03 | |
EA7B BD E6 D6 JSR TSTSNB | |
EA7E 24 0B BCC IN07 | |
EA80 8E EA B8 LDX #RMESS | |
EA83 BD E5 38 JSR PUTSTR | |
EA86 BD E5 3F JSR CRLF | |
EA89 20 E1 BRA IN03 | |
EA8B 9F 14 IN07: STX SCRTCH | |
EA8D 35 10 PULS X | |
EA8F ED 00 STD 0,X | |
EA91 9E 0E LDX CURSOR | |
EA93 BD E6 5B JSR SKIPSP | |
EA96 81 2C CMPA #"," | |
EA98 27 03 BEQ IN09 | |
EA9A 7E E5 F9 JMP ENDSMT | |
EA9D 30 01 IN09: LEAX 1,X | |
EA9F BD E6 8B JSR TSTVAR | |
EAA2 24 03 BCC IN13 | |
EAA4 7E E5 56 IN11: JMP ERRORS | |
EAA7 34 06 IN13: PSHS D | |
EAA9 34 10 PSHS X | |
EAAB 9E 14 LDX SCRTCH | |
EAAD BD E6 5B JSR SKIPSP | |
EAB0 81 2C CMPA #"," | |
EAB2 26 C0 BNE IN05 | |
EAB4 30 01 LEAX 1,X | |
EAB6 20 BC BRA IN05 | |
EAB8 52 45 2D 45 4E 54 45 52 RMESS: DB "RE-ENTER" | |
EAC0 04 FCB EOL | |
EAC1 ;****************************** | |
EAC1 ;****************************** | |
EAC1 9E 0C RUN: LDX STKTOP | |
EAC3 86 34 LDA #52 | |
EAC5 6F 80 RUN01: CLR ,X+ | |
EAC7 4A DECA | |
EAC8 26 FB BNE RUN01 | |
EACA 9E 06 LDX USRBAS | |
EACC 7E E6 02 JMP REM05 | |
EACF ;****************************** | |
EACF ;****************************** | |
EACF BD E6 EA LIST: JSR TSTNBR | |
EAD2 24 08 BCC LIST03 | |
EAD4 4F CLRA | |
EAD5 5F CLRB | |
EAD6 DD 0E STD CURSOR | |
EAD8 86 7F LDA #$7F | |
EADA 20 17 BRA LIST07 | |
EADC DD 0E LIST03: STD CURSOR | |
EADE BD E6 5B JSR SKIPSP | |
EAE1 81 2C CMPA #"," | |
EAE3 27 04 BEQ LIST05 | |
EAE5 96 0E LDA CURSOR | |
EAE7 20 0A BRA LIST07 | |
EAE9 30 01 LIST05: LEAX 1,X | |
EAEB BD E6 EA JSR TSTNBR | |
EAEE 24 03 BCC LIST07 | |
EAF0 7E E5 56 JMP ERRORS | |
EAF3 BD E9 31 LIST07: JSR TSTEOL | |
EAF6 34 06 PSHS D | |
EAF8 DC 0E LDD CURSOR | |
EAFA 9F 0E STX CURSOR | |
EAFC BD E7 C2 JSR FLINE | |
EAFF 9C 08 LIST09: CMPX USRTOP | |
EB01 27 28 BEQ LIST10 | |
EB03 35 06 PULS D | |
EB05 10 A3 00 CMPD 0,X | |
EB08 25 28 BCS LIST11 | |
EB0A 34 06 PSHS D | |
EB0C EC 81 LDD ,X++ | |
EB0E 34 10 PSHS X | |
EB10 BD EA 5E JSR PRNT4 | |
EB13 35 10 PULS X | |
EB15 86 20 LDA #SPACE | |
EB17 BD EB AA JSR PUTCHR | |
EB1A BD E5 38 JSR PUTSTR | |
EB1D 30 01 LEAX 1,X | |
EB1F 34 10 PSHS X | |
EB21 BD E5 3F JSR CRLF | |
EB24 35 10 PULS X | |
EB26 BD EB 9C JSR TSTBRK | |
EB29 20 D4 BRA LIST09 | |
EB2B 32 62 LIST10: LEAS 2,S | |
EB2D 86 03 LDA #ETX | |
EB2F BD EB AA JSR PUTCHR | |
EB32 9E 0E LIST11: LDX CURSOR | |
EB34 7E E5 FC JMP ENDS02 | |
EB37 ;****************************** | |
EB37 ;****************************** | |
EB37 4C 45 54 VERBT: DB "LET" | |
EB3A 04 FCB EOL | |
EB3B E9 42 FDB LET | |
EB3D 49 46 DB "IF" | |
EB3F 04 FCB EOL | |
EB40 E9 68 FDB IF | |
EB42 47 4F 54 4F DB "GOTO" | |
EB46 04 FCB EOL | |
EB47 E9 74 FDB GOTO | |
EB49 47 4F 53 55 42 DB "GOSUB" | |
EB4E 04 FCB EOL | |
EB4F E9 81 FDB GOSUB | |
EB51 52 45 54 55 52 4E DB "RETURN" | |
EB57 04 FCB EOL | |
EB58 E9 31 FDB RETURN | |
EB5A 50 4F 4B 45 DB "POKE" | |
EB5E 04 FCB EOL | |
EB5F E7 7C FDB POKE | |
EB61 50 52 49 4E 54 DB "PRINT" | |
EB66 04 FCB EOL | |
EB67 E9 AC FDB PRINT | |
EB69 49 4E 50 55 54 DB "INPUT" | |
EB6E 04 FCB EOL | |
EB6F EA 63 FDB INPUT | |
EB71 52 45 4D DB "REM" | |
EB74 04 FCB EOL | |
EB75 E5 F3 FDB REM | |
EB77 53 54 4F 50 DB "STOP" | |
EB7B 04 FCB EOL | |
EB7C EB E6 FDB END | |
EB7E 45 4E 44 DB "END" | |
EB81 04 FCB EOL | |
EB82 EB E6 FDB END | |
EB84 52 55 4E DB "RUN" | |
EB87 04 FCB EOL | |
EB88 EA C1 FDB RUN | |
EB8A 4C 49 53 54 DB "LIST" | |
EB8E 04 FCB EOL | |
EB8F EA CF FDB LIST | |
EB91 4E 45 57 DB "NEW" | |
EB94 04 FCB EOL | |
EB95 E4 1F FDB CLEAR | |
EB97 3F DB "?" | |
EB98 04 FCB EOL | |
EB99 E9 AC FDB PRINT | |
EB9B 04 FCB EOL | |
EB9C ;****************************** | |
EB9C ;****************************** | |
EB9C 8D 2A TSTBRK: BSR BRKEEE | |
EB9E 27 09 BEQ GETC05 | |
EBA0 8D 0D GETCHR: BSR INEEE | |
EBA2 81 03 CMPA #ETX | |
EBA4 26 03 BNE GETC05 | |
EBA6 7E E5 67 JMP BREAK | |
EBA9 39 GETC05: RTS | |
EBAA 0C 18 PUTCHR: INC ZONE | |
EBAC 7E EB B9 JMP OUTEEE | |
EBAF ;****************************** | |
EBAF ;****************************** | |
EBAF 8D 17 INEEE: BSR BRKEEE | |
EBB1 27 FC BEQ INEEE | |
EBB3 B6 83 FF LDA RECEV | |
EBB6 84 7F ANDA #$7F | |
EBB8 39 RTS | |
EBB9 34 02 OUTEEE: PSHS A | |
EBBB B6 83 FE OUT01: LDA TRCS | |
EBBE 85 02 BITA #TDRE | |
EBC0 27 F9 BEQ OUT01 | |
EBC2 35 02 PULS A | |
EBC4 B7 83 FF STA TRANS | |
EBC7 39 RTS | |
EBC8 34 02 BRKEEE: PSHS A | |
EBCA B6 83 FE BRK03: LDA TRCS | |
EBCD 85 20 BITA #ORFE | |
EBCF 27 05 BEQ BRK05 | |
EBD1 B6 83 FF LDA RECEV | |
EBD4 20 F4 BRA BRK03 | |
EBD6 85 01 BRK05: BITA #RDRF | |
EBD8 35 02 PULS A | |
EBDA 39 RTS | |
EBDB ;* | |
EBDB 86 03 LDA #CNTL1 | |
EBDD B7 83 FE STA RMCR | |
EBE0 86 15 LDA #CNTL2 | |
EBE2 B7 83 FE STA TRCS | |
EBE5 INTEEE: EQU $ | |
EBE5 39 RTS | |
EBE6 ;****************************** | |
EBE6 ;****************************** | |
EBE6 END: | |
EBE6 7E E4 00 JMP reset | |
EOL: 0004 DEFINED AT LINE 17 | |
> USED AT LINE 146 | |
> USED AT LINE 251 | |
> USED AT LINE 254 | |
> USED AT LINE 257 | |
> USED AT LINE 260 | |
> USED AT LINE 263 | |
> USED AT LINE 579 | |
> USED AT LINE 582 | |
> USED AT LINE 585 | |
> USED AT LINE 587 | |
> USED AT LINE 985 | |
> USED AT LINE 1046 | |
> USED AT LINE 1049 | |
> USED AT LINE 1052 | |
> USED AT LINE 1055 | |
> USED AT LINE 1058 | |
> USED AT LINE 1061 | |
> USED AT LINE 1064 | |
> USED AT LINE 1067 | |
> USED AT LINE 1070 | |
> USED AT LINE 1073 | |
> USED AT LINE 1076 | |
> USED AT LINE 1079 | |
> USED AT LINE 1082 | |
> USED AT LINE 1085 | |
> USED AT LINE 1088 | |
> USED AT LINE 1090 | |
ETX: 0003 DEFINED AT LINE 18 | |
SPACE: 0020 DEFINED AT LINE 19 | |
CR: 000D DEFINED AT LINE 20 | |
> USED AT LINE 246 | |
LF: 000A DEFINED AT LINE 21 | |
> USED AT LINE 246 | |
BS: 0008 DEFINED AT LINE 22 | |
CAN: 0018 DEFINED AT LINE 23 | |
BELL: 0007 DEFINED AT LINE 24 | |
FILL: 0000 DEFINED AT LINE 25 | |
DEL: 007F DEFINED AT LINE 26 | |
BSIZE: 0049 DEFINED AT LINE 27 | |
> USED AT LINE 47 | |
STKCUS: 0030 DEFINED AT LINE 28 | |
BACIA: 83FE DEFINED AT LINE 30 | |
> USED AT LINE 31 | |
> USED AT LINE 32 | |
> USED AT LINE 33 | |
> USED AT LINE 34 | |
RMCR: 83FE DEFINED AT LINE 31 | |
> USED AT LINE 1127 | |
TRCS: 83FE DEFINED AT LINE 32 | |
> USED AT LINE 1110 | |
> USED AT LINE 1117 | |
> USED AT LINE 1129 | |
RECEV: 83FF DEFINED AT LINE 33 | |
> USED AT LINE 1106 | |
> USED AT LINE 1120 | |
TRANS: 83FF DEFINED AT LINE 34 | |
> USED AT LINE 1114 | |
CNTL1: 0003 DEFINED AT LINE 35 | |
CNTL2: 0015 DEFINED AT LINE 36 | |
RDRF: 0001 DEFINED AT LINE 37 | |
ORFE: 0020 DEFINED AT LINE 38 | |
TDRE: 0002 DEFINED AT LINE 39 | |
LORAM: 0080 DEFINED AT LINE 42 | |
BUFFER: 0200 DEFINED AT LINE 43 | |
> USED AT LINE 47 | |
> USED AT LINE 48 | |
RAMSIZ: 2000 DEFINED AT LINE 44 | |
> USED AT LINE 48 | |
ROMADR: F000 DEFINED AT LINE 45 | |
RAMBEG: 0249 DEFINED AT LINE 47 | |
RAMEND: 2200 DEFINED AT LINE 48 | |
RAMPAT: AA0F DEFINED AT LINE 50 | |
ROMPAT: F055 DEFINED AT LINE 51 | |
USRBAS: 0006 DEFINED AT LINE 56 | |
> USED AT LINE 104 | |
> USED AT LINE 113 | |
> USED AT LINE 158 | |
> USED AT LINE 590 | |
> USED AT LINE 993 | |
USRTOP: 0008 DEFINED AT LINE 57 | |
> USED AT LINE 105 | |
> USED AT LINE 131 | |
> USED AT LINE 154 | |
> USED AT LINE 167 | |
> USED AT LINE 177 | |
> USED AT LINE 199 | |
> USED AT LINE 201 | |
> USED AT LINE 202 | |
> USED AT LINE 206 | |
> USED AT LINE 209 | |
> USED AT LINE 332 | |
> USED AT LINE 591 | |
> USED AT LINE 1019 | |
STKLIM: 000A DEFINED AT LINE 58 | |
> USED AT LINE 106 | |
> USED AT LINE 132 | |
> USED AT LINE 178 | |
> USED AT LINE 203 | |
> USED AT LINE 207 | |
> USED AT LINE 539 | |
STKTOP: 000C DEFINED AT LINE 59 | |
> USED AT LINE 97 | |
> USED AT LINE 101 | |
> USED AT LINE 110 | |
> USED AT LINE 425 | |
> USED AT LINE 988 | |
CURSOR: 000E DEFINED AT LINE 60 | |
> USED AT LINE 114 | |
> USED AT LINE 153 | |
> USED AT LINE 160 | |
> USED AT LINE 212 | |
> USED AT LINE 220 | |
> USED AT LINE 346 | |
> USED AT LINE 351 | |
> USED AT LINE 355 | |
> USED AT LINE 448 | |
> USED AT LINE 450 | |
> USED AT LINE 570 | |
> USED AT LINE 813 | |
> USED AT LINE 816 | |
> USED AT LINE 836 | |
> USED AT LINE 843 | |
> USED AT LINE 951 | |
> USED AT LINE 967 | |
> USED AT LINE 1001 | |
> USED AT LINE 1004 | |
> USED AT LINE 1008 | |
> USED AT LINE 1016 | |
> USED AT LINE 1017 | |
> USED AT LINE 1041 | |
SAVESP: 0010 DEFINED AT LINE 61 | |
> USED AT LINE 162 | |
> USED AT LINE 171 | |
> USED AT LINE 173 | |
> USED AT LINE 176 | |
> USED AT LINE 210 | |
> USED AT LINE 216 | |
> USED AT LINE 536 | |
> USED AT LINE 537 | |
LINENB: 0012 DEFINED AT LINE 62 | |
> USED AT LINE 116 | |
> USED AT LINE 267 | |
> USED AT LINE 329 | |
> USED AT LINE 330 | |
> USED AT LINE 336 | |
> USED AT LINE 845 | |
> USED AT LINE 849 | |
SCRTCH: 0014 DEFINED AT LINE 63 | |
> USED AT LINE 151 | |
> USED AT LINE 179 | |
> USED AT LINE 223 | |
> USED AT LINE 225 | |
> USED AT LINE 356 | |
> USED AT LINE 357 | |
> USED AT LINE 361 | |
> USED AT LINE 368 | |
> USED AT LINE 964 | |
> USED AT LINE 978 | |
CHAR: 0016 DEFINED AT LINE 64 | |
> USED AT LINE 170 | |
> USED AT LINE 174 | |
> USED AT LINE 200 | |
> USED AT LINE 211 | |
> USED AT LINE 215 | |
> USED AT LINE 222 | |
> USED AT LINE 226 | |
> USED AT LINE 228 | |
> USED AT LINE 354 | |
> USED AT LINE 362 | |
> USED AT LINE 364 | |
> USED AT LINE 371 | |
> USED AT LINE 922 | |
> USED AT LINE 926 | |
> USED AT LINE 930 | |
ZONE: 0018 DEFINED AT LINE 65 | |
> USED AT LINE 244 | |
> USED AT LINE 888 | |
> USED AT LINE 1100 | |
MODE: 0019 DEFINED AT LINE 66 | |
> USED AT LINE 111 | |
> USED AT LINE 117 | |
> USED AT LINE 299 | |
> USED AT LINE 320 | |
RESRVD: 001A DEFINED AT LINE 67 | |
LOEND: 001B DEFINED AT LINE 68 | |
RESET: E400 DEFINED AT LINE 92 | |
> USED AT LINE 75 | |
> USED AT LINE 77 | |
> USED AT LINE 79 | |
> USED AT LINE 81 | |
> USED AT LINE 83 | |
> USED AT LINE 85 | |
> USED AT LINE 87 | |
> USED AT LINE 89 | |
> USED AT LINE 1138 | |
BASIC: E400 DEFINED AT LINE 95 | |
WARMS: E40D DEFINED AT LINE 97 | |
SETUP: E415 DEFINED AT LINE 100 | |
> USED AT LINE 95 | |
SET03: E419 DEFINED AT LINE 101 | |
CLEAR: E41F DEFINED AT LINE 103 | |
> USED AT LINE 1086 | |
CLR02: E426 DEFINED AT LINE 106 | |
WMS05: E428 DEFINED AT LINE 107 | |
> USED AT LINE 99 | |
CMDB: E431 DEFINED AT LINE 110 | |
> USED AT LINE 129 | |
> USED AT LINE 274 | |
CMDE: E43D DEFINED AT LINE 115 | |
> USED AT LINE 127 | |
> USED AT LINE 143 | |
CMD01: E44B DEFINED AT LINE 121 | |
> USED AT LINE 118 | |
CMD02: E461 DEFINED AT LINE 130 | |
> USED AT LINE 123 | |
CMD03: E46E DEFINED AT LINE 136 | |
> USED AT LINE 134 | |
CMD04: E473 DEFINED AT LINE 138 | |
CMD05: E480 DEFINED AT LINE 144 | |
> USED AT LINE 124 | |
> USED AT LINE 137 | |
> USED AT LINE 141 | |
VSTR: E483 DEFINED AT LINE 145 | |
EDITOR: E48E DEFINED AT LINE 149 | |
> USED AT LINE 142 | |
ED00: E4A2 DEFINED AT LINE 158 | |
> USED AT LINE 155 | |
ED01: E4A4 DEFINED AT LINE 159 | |
> USED AT LINE 157 | |
ED02: E4AF DEFINED AT LINE 164 | |
> USED AT LINE 166 | |
ED03: E4B5 DEFINED AT LINE 167 | |
> USED AT LINE 175 | |
ED35: E4C7 DEFINED AT LINE 176 | |
> USED AT LINE 168 | |
ED04: E4CD DEFINED AT LINE 179 | |
> USED AT LINE 161 | |
ED05: E4D1 DEFINED AT LINE 181 | |
> USED AT LINE 184 | |
ED55: E4DE DEFINED AT LINE 189 | |
> USED AT LINE 186 | |
ED06: E4E2 DEFINED AT LINE 191 | |
> USED AT LINE 195 | |
ED07: E506 DEFINED AT LINE 209 | |
> USED AT LINE 205 | |
ED08: E508 DEFINED AT LINE 210 | |
> USED AT LINE 218 | |
ED09: E51A DEFINED AT LINE 219 | |
> USED AT LINE 213 | |
ED10: E522 DEFINED AT LINE 223 | |
> USED AT LINE 230 | |
PUTS01: E533 DEFINED AT LINE 234 | |
> USED AT LINE 238 | |
PUTSTR: E538 DEFINED AT LINE 236 | |
> USED AT LINE 109 | |
> USED AT LINE 243 | |
> USED AT LINE 272 | |
> USED AT LINE 961 | |
> USED AT LINE 1031 | |
CRLF: E53F DEFINED AT LINE 242 | |
> USED AT LINE 107 | |
> USED AT LINE 112 | |
> USED AT LINE 264 | |
> USED AT LINE 273 | |
> USED AT LINE 277 | |
> USED AT LINE 304 | |
> USED AT LINE 882 | |
> USED AT LINE 962 | |
> USED AT LINE 1034 | |
CRLFST: E547 DEFINED AT LINE 246 | |
ERRORF: E54E DEFINED AT LINE 249 | |
> USED AT LINE 208 | |
> USED AT LINE 775 | |
> USED AT LINE 842 | |
ERRORS: E556 DEFINED AT LINE 252 | |
> USED AT LINE 144 | |
> USED AT LINE 438 | |
> USED AT LINE 558 | |
> USED AT LINE 770 | |
> USED AT LINE 796 | |
> USED AT LINE 804 | |
> USED AT LINE 809 | |
> USED AT LINE 880 | |
> USED AT LINE 902 | |
> USED AT LINE 975 | |
> USED AT LINE 1013 | |
ERRORR: E55F DEFINED AT LINE 255 | |
> USED AT LINE 135 | |
> USED AT LINE 334 | |
> USED AT LINE 839 | |
BREAK: E567 DEFINED AT LINE 258 | |
> USED AT LINE 1098 | |
ER01: E574 DEFINED AT LINE 264 | |
> USED AT LINE 249 | |
> USED AT LINE 252 | |
> USED AT LINE 255 | |
> USED AT LINE 258 | |
GL00: E58E DEFINED AT LINE 277 | |
> USED AT LINE 294 | |
GETLIN: E590 DEFINED AT LINE 278 | |
> USED AT LINE 121 | |
> USED AT LINE 954 | |
GL03: E593 DEFINED AT LINE 279 | |
> USED AT LINE 283 | |
> USED AT LINE 290 | |
> USED AT LINE 298 | |
> USED AT LINE 311 | |
GL04: E5A7 DEFINED AT LINE 288 | |
> USED AT LINE 285 | |
GL02: E5A9 DEFINED AT LINE 289 | |
> USED AT LINE 287 | |
> USED AT LINE 318 | |
> USED AT LINE 321 | |
GL05: E5AE DEFINED AT LINE 291 | |
> USED AT LINE 281 | |
GL06: E5C7 DEFINED AT LINE 303 | |
> USED AT LINE 300 | |
GL08: E5CE DEFINED AT LINE 306 | |
> USED AT LINE 302 | |
GL07: E5D6 DEFINED AT LINE 310 | |
> USED AT LINE 292 | |
GL09: E5EB DEFINED AT LINE 319 | |
> USED AT LINE 296 | |
REM00: E5F1 DEFINED AT LINE 324 | |
> USED AT LINE 327 | |
REM: E5F3 DEFINED AT LINE 325 | |
> USED AT LINE 824 | |
> USED AT LINE 1071 | |
ENDSMT: E5F9 DEFINED AT LINE 328 | |
> USED AT LINE 971 | |
ENDS02: E5FC DEFINED AT LINE 329 | |
> USED AT LINE 566 | |
> USED AT LINE 817 | |
> USED AT LINE 851 | |
> USED AT LINE 895 | |
> USED AT LINE 1042 | |
REM05: E602 DEFINED AT LINE 332 | |
> USED AT LINE 994 | |
NXTLIN: E609 DEFINED AT LINE 335 | |
> USED AT LINE 333 | |
> USED AT LINE 831 | |
> USED AT LINE 847 | |
MSLINE: E60D DEFINED AT LINE 337 | |
> USED AT LINE 128 | |
> USED AT LINE 823 | |
REM09: E616 DEFINED AT LINE 341 | |
> USED AT LINE 331 | |
IMPLET: E617 DEFINED AT LINE 342 | |
> USED AT LINE 339 | |
IFAN: E61A DEFINED AT LINE 345 | |
> USED AT LINE 338 | |
FAN00: E621 DEFINED AT LINE 348 | |
> USED AT LINE 376 | |
> USED AT LINE 572 | |
FAN04: E62C DEFINED AT LINE 354 | |
> USED AT LINE 350 | |
FAN05: E632 DEFINED AT LINE 357 | |
> USED AT LINE 366 | |
FAN07: E64D DEFINED AT LINE 371 | |
> USED AT LINE 359 | |
FAN08: E64F DEFINED AT LINE 372 | |
> USED AT LINE 374 | |
NXTNSP: E659 DEFINED AT LINE 379 | |
> USED AT LINE 382 | |
SKIPSP: E65B DEFINED AT LINE 380 | |
> USED AT LINE 125 | |
> USED AT LINE 150 | |
> USED AT LINE 325 | |
> USED AT LINE 345 | |
> USED AT LINE 414 | |
> USED AT LINE 432 | |
> USED AT LINE 442 | |
> USED AT LINE 455 | |
> USED AT LINE 468 | |
> USED AT LINE 555 | |
> USED AT LINE 569 | |
> USED AT LINE 617 | |
> USED AT LINE 624 | |
> USED AT LINE 634 | |
> USED AT LINE 665 | |
> USED AT LINE 674 | |
> USED AT LINE 691 | |
> USED AT LINE 764 | |
> USED AT LINE 776 | |
> USED AT LINE 793 | |
> USED AT LINE 806 | |
> USED AT LINE 857 | |
> USED AT LINE 873 | |
> USED AT LINE 891 | |
> USED AT LINE 955 | |
> USED AT LINE 968 | |
> USED AT LINE 979 | |
> USED AT LINE 1005 | |
TSTHEX: E662 DEFINED AT LINE 386 | |
> USED AT LINE 478 | |
TSTLTR: E673 DEFINED AT LINE 397 | |
> USED AT LINE 415 | |
> USED AT LINE 419 | |
TST03: E67B DEFINED AT LINE 401 | |
> USED AT LINE 389 | |
> USED AT LINE 391 | |
> USED AT LINE 398 | |
> USED AT LINE 406 | |
> USED AT LINE 408 | |
> USED AT LINE 420 | |
TSTDIG: E67E DEFINED AT LINE 405 | |
> USED AT LINE 386 | |
> USED AT LINE 469 | |
> USED AT LINE 502 | |
TST05: E688 DEFINED AT LINE 410 | |
> USED AT LINE 387 | |
> USED AT LINE 400 | |
TSTVAR: E68B DEFINED AT LINE 414 | |
> USED AT LINE 751 | |
> USED AT LINE 802 | |
> USED AT LINE 948 | |
> USED AT LINE 973 | |
TSTV02: E6A1 DEFINED AT LINE 426 | |
TSTV03: E6A3 DEFINED AT LINE 427 | |
> USED AT LINE 416 | |
USER: E6A4 DEFINED AT LINE 430 | |
> USED AT LINE 580 | |
USER02: E6B6 DEFINED AT LINE 438 | |
> USED AT LINE 445 | |
USER03: E6B9 DEFINED AT LINE 439 | |
> USED AT LINE 434 | |
USER05: E6CB DEFINED AT LINE 447 | |
> USED AT LINE 437 | |
TSTSNB: E6D6 DEFINED AT LINE 455 | |
> USED AT LINE 958 | |
TSN02: E6E9 DEFINED AT LINE 465 | |
> USED AT LINE 460 | |
TSTNBR: E6EA DEFINED AT LINE 468 | |
> USED AT LINE 122 | |
> USED AT LINE 457 | |
> USED AT LINE 459 | |
> USED AT LINE 758 | |
> USED AT LINE 997 | |
> USED AT LINE 1011 | |
TSTN20: E6F8 DEFINED AT LINE 474 | |
TSTN23: E6FE DEFINED AT LINE 477 | |
> USED AT LINE 497 | |
TSTN02: E721 DEFINED AT LINE 498 | |
> USED AT LINE 470 | |
TSTN03: E727 DEFINED AT LINE 501 | |
> USED AT LINE 525 | |
TSTN07: E754 DEFINED AT LINE 526 | |
> USED AT LINE 479 | |
> USED AT LINE 503 | |
TSTN09: E758 DEFINED AT LINE 528 | |
> USED AT LINE 473 | |
TSTN11: E75B DEFINED AT LINE 530 | |
> USED AT LINE 485 | |
> USED AT LINE 510 | |
> USED AT LINE 513 | |
> USED AT LINE 515 | |
> USED AT LINE 518 | |
> USED AT LINE 521 | |
TSTSTK: E762 DEFINED AT LINE 536 | |
> USED AT LINE 204 | |
> USED AT LINE 586 | |
> USED AT LINE 773 | |
> USED AT LINE 840 | |
PEEK: E76D DEFINED AT LINE 543 | |
> USED AT LINE 583 | |
POKE: E77C DEFINED AT LINE 553 | |
> USED AT LINE 1062 | |
POKE05: E78B DEFINED AT LINE 559 | |
> USED AT LINE 557 | |
TSTFUN: E79E DEFINED AT LINE 569 | |
> USED AT LINE 760 | |
TSTF05: E7AD DEFINED AT LINE 575 | |
> USED AT LINE 573 | |
FUNT: E7AE DEFINED AT LINE 578 | |
FLINE: E7C2 DEFINED AT LINE 590 | |
> USED AT LINE 829 | |
> USED AT LINE 837 | |
> USED AT LINE 1018 | |
FNDLIN: E7C4 DEFINED AT LINE 591 | |
> USED AT LINE 159 | |
> USED AT LINE 611 | |
FND03: E7CB DEFINED AT LINE 595 | |
> USED AT LINE 592 | |
FND05: E7D3 DEFINED AT LINE 599 | |
> USED AT LINE 596 | |
FND07: E7DA DEFINED AT LINE 603 | |
> USED AT LINE 599 | |
FND09: E7E0 DEFINED AT LINE 606 | |
> USED AT LINE 608 | |
RELEXP: E7EC DEFINED AT LINE 614 | |
> USED AT LINE 820 | |
REL03: E80C DEFINED AT LINE 630 | |
> USED AT LINE 621 | |
REL05: E817 DEFINED AT LINE 635 | |
> USED AT LINE 626 | |
REL06: E81B DEFINED AT LINE 637 | |
> USED AT LINE 619 | |
REL07: E81F DEFINED AT LINE 639 | |
> USED AT LINE 629 | |
> USED AT LINE 636 | |
REL08: E837 DEFINED AT LINE 653 | |
> USED AT LINE 651 | |
REL09: E83D DEFINED AT LINE 657 | |
> USED AT LINE 655 | |
EXPR: E843 DEFINED AT LINE 663 | |
> USED AT LINE 440 | |
> USED AT LINE 560 | |
> USED AT LINE 614 | |
> USED AT LINE 640 | |
> USED AT LINE 780 | |
> USED AT LINE 811 | |
> USED AT LINE 827 | |
> USED AT LINE 834 | |
> USED AT LINE 869 | |
EXPR02: E852 DEFINED AT LINE 670 | |
> USED AT LINE 676 | |
EXPR03: E854 DEFINED AT LINE 671 | |
> USED AT LINE 669 | |
EXPR04: E856 DEFINED AT LINE 672 | |
> USED AT LINE 684 | |
EXPR05: E865 DEFINED AT LINE 679 | |
> USED AT LINE 667 | |
EXPR06: E86F DEFINED AT LINE 685 | |
> USED AT LINE 631 | |
> USED AT LINE 678 | |
TERM: E872 DEFINED AT LINE 689 | |
> USED AT LINE 671 | |
> USED AT LINE 680 | |
TERM03: E877 DEFINED AT LINE 691 | |
> USED AT LINE 731 | |
> USED AT LINE 748 | |
TERM05: E885 DEFINED AT LINE 698 | |
> USED AT LINE 695 | |
DIV05: E8A1 DEFINED AT LINE 712 | |
> USED AT LINE 723 | |
DIV07: E8AB DEFINED AT LINE 717 | |
> USED AT LINE 713 | |
DIV09: E8AD DEFINED AT LINE 718 | |
> USED AT LINE 716 | |
TERM06: E8C2 DEFINED AT LINE 730 | |
> USED AT LINE 727 | |
TERM07: E8C6 DEFINED AT LINE 732 | |
> USED AT LINE 693 | |
MULT: E8CA DEFINED AT LINE 734 | |
FACT: E8E5 DEFINED AT LINE 751 | |
> USED AT LINE 689 | |
> USED AT LINE 699 | |
> USED AT LINE 733 | |
FACT02: E8F2 DEFINED AT LINE 757 | |
> USED AT LINE 759 | |
> USED AT LINE 761 | |
FACT03: E8F3 DEFINED AT LINE 758 | |
> USED AT LINE 752 | |
PAREXP: E8FD DEFINED AT LINE 762 | |
> USED AT LINE 543 | |
> USED AT LINE 553 | |
FACT05: E90D DEFINED AT LINE 770 | |
> USED AT LINE 767 | |
> USED AT LINE 778 | |
ARGONE: E910 DEFINED AT LINE 773 | |
> USED AT LINE 430 | |
> USED AT LINE 762 | |
FACT04: E918 DEFINED AT LINE 776 | |
> USED AT LINE 774 | |
ABSX: E924 DEFINED AT LINE 783 | |
> USED AT LINE 704 | |
> USED AT LINE 706 | |
NEGX: E928 DEFINED AT LINE 785 | |
> USED AT LINE 729 | |
NEG05: E930 DEFINED AT LINE 789 | |
> USED AT LINE 784 | |
> USED AT LINE 787 | |
TSTEOL: E931 DEFINED AT LINE 792 | |
> USED AT LINE 328 | |
> USED AT LINE 561 | |
> USED AT LINE 812 | |
> USED AT LINE 828 | |
> USED AT LINE 835 | |
> USED AT LINE 854 | |
> USED AT LINE 1014 | |
TEOL03: E93D DEFINED AT LINE 797 | |
> USED AT LINE 795 | |
LET: E942 DEFINED AT LINE 802 | |
> USED AT LINE 342 | |
> USED AT LINE 1047 | |
LET03: E94A DEFINED AT LINE 805 | |
> USED AT LINE 803 | |
LET05: E956 DEFINED AT LINE 810 | |
> USED AT LINE 808 | |
IF: E968 DEFINED AT LINE 820 | |
> USED AT LINE 1050 | |
IF03: E971 DEFINED AT LINE 824 | |
> USED AT LINE 822 | |
GOTO: E974 DEFINED AT LINE 827 | |
> USED AT LINE 1053 | |
GOSUB: E981 DEFINED AT LINE 834 | |
> USED AT LINE 1056 | |
GOSB04: E98D DEFINED AT LINE 839 | |
> USED AT LINE 830 | |
GOSB03: E990 DEFINED AT LINE 840 | |
> USED AT LINE 838 | |
GOSB05: E998 DEFINED AT LINE 843 | |
> USED AT LINE 841 | |
RETURN: E931 DEFINED AT LINE 854 | |
> USED AT LINE 1059 | |
PRINT: E9AC DEFINED AT LINE 857 | |
> USED AT LINE 1065 | |
> USED AT LINE 1089 | |
PR01: E9AF DEFINED AT LINE 858 | |
> USED AT LINE 893 | |
PR02: E9C5 DEFINED AT LINE 869 | |
> USED AT LINE 865 | |
PR03: E9CE DEFINED AT LINE 873 | |
> USED AT LINE 868 | |
PR04: E9E0 DEFINED AT LINE 881 | |
> USED AT LINE 863 | |
> USED AT LINE 879 | |
PR05: E9E9 DEFINED AT LINE 885 | |
> USED AT LINE 859 | |
> USED AT LINE 875 | |
PR06: E9EB DEFINED AT LINE 886 | |
> USED AT LINE 889 | |
PR07: E9F4 DEFINED AT LINE 890 | |
> USED AT LINE 861 | |
> USED AT LINE 877 | |
PR08: E9FD DEFINED AT LINE 894 | |
> USED AT LINE 884 | |
PRQ01: EA02 DEFINED AT LINE 898 | |
> USED AT LINE 904 | |
PRNTQS: EA05 DEFINED AT LINE 899 | |
> USED AT LINE 867 | |
PRQ03: EA0E DEFINED AT LINE 903 | |
> USED AT LINE 901 | |
PRNTN: EA13 DEFINED AT LINE 907 | |
> USED AT LINE 871 | |
PRN03: EA23 DEFINED AT LINE 916 | |
> USED AT LINE 908 | |
PRN05: EA26 DEFINED AT LINE 917 | |
> USED AT LINE 921 | |
PRN07: EA32 DEFINED AT LINE 922 | |
> USED AT LINE 919 | |
> USED AT LINE 936 | |
> USED AT LINE 945 | |
PRN09: EA34 DEFINED AT LINE 923 | |
> USED AT LINE 927 | |
PRN11: EA3F DEFINED AT LINE 928 | |
> USED AT LINE 924 | |
PRN13: EA53 DEFINED AT LINE 937 | |
> USED AT LINE 934 | |
PRNPT: EA54 DEFINED AT LINE 938 | |
PRNPTO: EA5C DEFINED AT LINE 942 | |
PRNT4: EA5E DEFINED AT LINE 944 | |
> USED AT LINE 268 | |
> USED AT LINE 1027 | |
INPUT: EA63 DEFINED AT LINE 948 | |
> USED AT LINE 1068 | |
IN03: EA6C DEFINED AT LINE 952 | |
> USED AT LINE 957 | |
> USED AT LINE 963 | |
IN05: EA74 DEFINED AT LINE 955 | |
> USED AT LINE 981 | |
> USED AT LINE 983 | |
IN07: EA8B DEFINED AT LINE 964 | |
> USED AT LINE 959 | |
IN09: EA9D DEFINED AT LINE 972 | |
> USED AT LINE 970 | |
IN11: EAA4 DEFINED AT LINE 975 | |
> USED AT LINE 949 | |
IN13: EAA7 DEFINED AT LINE 976 | |
> USED AT LINE 974 | |
RMESS: EAB8 DEFINED AT LINE 984 | |
RUN: EAC1 DEFINED AT LINE 988 | |
> USED AT LINE 1080 | |
RUN01: EAC5 DEFINED AT LINE 990 | |
> USED AT LINE 992 | |
LIST: EACF DEFINED AT LINE 997 | |
> USED AT LINE 1083 | |
LIST03: EADC DEFINED AT LINE 1004 | |
> USED AT LINE 998 | |
LIST05: EAE9 DEFINED AT LINE 1010 | |
> USED AT LINE 1007 | |
LIST07: EAF3 DEFINED AT LINE 1014 | |
> USED AT LINE 1003 | |
> USED AT LINE 1009 | |
> USED AT LINE 1012 | |
LIST09: EAFF DEFINED AT LINE 1019 | |
> USED AT LINE 1037 | |
LIST10: EB2B DEFINED AT LINE 1038 | |
> USED AT LINE 1020 | |
LIST11: EB32 DEFINED AT LINE 1041 | |
> USED AT LINE 1023 | |
VERBT: EB37 DEFINED AT LINE 1045 | |
TSTBRK: EB9C DEFINED AT LINE 1093 | |
> USED AT LINE 337 | |
> USED AT LINE 1036 | |
GETCHR: EBA0 DEFINED AT LINE 1095 | |
> USED AT LINE 279 | |
GETC05: EBA9 DEFINED AT LINE 1099 | |
> USED AT LINE 1094 | |
> USED AT LINE 1097 | |
PUTCHR: EBAA DEFINED AT LINE 1100 | |
> USED AT LINE 120 | |
> USED AT LINE 234 | |
> USED AT LINE 266 | |
> USED AT LINE 270 | |
> USED AT LINE 289 | |
> USED AT LINE 301 | |
> USED AT LINE 314 | |
> USED AT LINE 316 | |
> USED AT LINE 887 | |
> USED AT LINE 898 | |
> USED AT LINE 914 | |
> USED AT LINE 931 | |
> USED AT LINE 953 | |
> USED AT LINE 1030 | |
> USED AT LINE 1040 | |
INEEE: EBAF DEFINED AT LINE 1104 | |
> USED AT LINE 1095 | |
> USED AT LINE 1105 | |
OUTEEE: EBB9 DEFINED AT LINE 1109 | |
> USED AT LINE 1101 | |
OUT01: EBBB DEFINED AT LINE 1110 | |
> USED AT LINE 1112 | |
BRKEEE: EBC8 DEFINED AT LINE 1116 | |
> USED AT LINE 1093 | |
> USED AT LINE 1104 | |
BRK03: EBCA DEFINED AT LINE 1117 | |
> USED AT LINE 1121 | |
BRK05: EBD6 DEFINED AT LINE 1122 | |
> USED AT LINE 1119 | |
INTEEE: EBE5 DEFINED AT LINE 1130 | |
> USED AT LINE 98 | |
> USED AT LINE 102 | |
END: EBE6 DEFINED AT LINE 1137 | |
> USED AT LINE 1074 | |
> USED AT LINE 1077 |
;NAM TB01V137 | |
;* WRITTEN 20-OCT-77 BY JOHN BYRNS | |
;* REVISED 30-DEC-77 | |
;* REVISED 18-JAN-78 | |
;* REVISED 10-APR-78 | |
;* REVISED 08-MAY-79 TO ELIMINATE USE OF SP | |
;* REVISED 24-JAN-80 TO USE 6801 ON CHIP RAM | |
;* REVISED 26-JAN-80 FOR NEW 6801 INSTRUCTIONS | |
;* REVISED 24-JUL-81 FOR WHISTON BOARD | |
;* REVISED 24-SEP-81 INCLUDE USER FUNCTION | |
;* REVISED 08-APR-82 MAKE STANDALONE INCLUDE HEX CONSTANTS AND MEM FUNCTION | |
;* REVISED 21-NOV-84 FOR 6809 | |
;* REVISED FEB 94 ADAPTED TO SIMULATOR AND BUGFIXES BY L.C. BENSCHOP. | |
;* | |
.engine kilo | |
EOL: EQU $04 | |
ETX: EQU $03 | |
SPACE: EQU $20 | |
CR: EQU $0D | |
LF: EQU $0A | |
BS: EQU $08 | |
CAN: EQU $18 | |
BELL: EQU $07 | |
FILL: EQU $00 | |
DEL: EQU $7F | |
BSIZE: EQU 73 | |
STKCUS: EQU 48 | |
;* | |
bACIA = $83FE | |
RMCR: EQU bACIA | |
TRCS: EQU bACIA | |
RECEV: EQU bACIA+1 | |
TRANS: EQU bACIA+1 | |
CNTL1: EQU $03 | |
CNTL2: EQU $15 | |
RDRF: EQU $01 | |
ORFE: EQU $20 | |
TDRE: EQU $02 | |
;* EDIT THE FOLLOWING EQUATES TO REFLECT THE | |
;* DESIRED ROM AND RAM LAYOUT | |
LORAM: EQU $0080 ;ADDRESS OF DIRECT PAGE SCRATCH RAM | |
BUFFER: EQU $0200 ;ADDRESS OF MAIN RAM | |
RAMSIZ: EQU $2000 ;SIZE OF MAIN RAM | |
ROMADR: EQU $f000 ;ADDRESS OF TINY BASIC ROM | |
;* | |
RAMBEG: EQU BUFFER+BSIZE | |
RAMEND: EQU BUFFER+RAMSIZ | |
;* | |
RAMPAT: EQU $AA0F | |
ROMPAT: EQU $F055 | |
;* | |
; ORG LORAM | |
.bsseg | |
USRBAS: RMB 2 | |
USRTOP: RMB 2 | |
STKLIM: RMB 2 | |
STKTOP: RMB 2 | |
CURSOR: RMB 2 | |
SAVESP: RMB 2 | |
LINENB: RMB 2 | |
SCRTCH: RMB 2 | |
CHAR: RMB 2 | |
ZONE: RMB 1 | |
MODE: RMB 1 | |
RESRVD: RMB 1 | |
LOEND: EQU $ | |
;* | |
.cseg | |
;;; ORG ROMADR | |
.align 256 | |
.ent $ | |
BASIC: JMP SETUP | |
.cstr "MOD9BASIC" | |
WARMS LDS STKTOP | |
JSR INTEEE | |
BRA WMS05 | |
SETUP LDS #RAMEND-52 | |
SET03 STS STKTOP | |
JSR INTEEE | |
CLEAR LDD #RAMBEG | |
STD USRBAS | |
STD USRTOP | |
CLR02 STD STKLIM | |
WMS05 JSR CRLF | |
LDX #VSTR | |
JSR PUTSTR | |
CMDB LDS STKTOP | |
CLR MODE | |
JSR CRLF | |
LDX USRBAS | |
STX CURSOR | |
CMDE LDX #0000 | |
STX LINENB | |
TST MODE | |
BNE CMD01 | |
LDA #":" | |
JSR PUTCHR | |
CMD01 JSR GETLIN | |
JSR TSTNBR | |
BCC CMD02 | |
BVS CMD05 | |
JSR SKIPSP | |
CMPA #EOL | |
BEQ CMDE | |
JSR MSLINE | |
BRA CMDB | |
CMD02 PSHS X | |
LDX USRTOP | |
CMPX STKLIM | |
PULS X | |
BEQ CMD03 | |
JMP ERRORR | |
CMD03 ADDD #0 | |
BEQ CMD05 | |
CMD04 PSHS D | |
SUBD #9999 | |
PULS D | |
BHI CMD05 | |
BSR EDITOR | |
BRA CMDE | |
CMD05 JMP ERRORS | |
VSTR DB "TINY V1.37" | |
FCB EOL | |
;****************************** | |
;****************************** | |
EDITOR PSHS D | |
JSR SKIPSP | |
STX SCRTCH | |
LDA 0,S | |
LDX CURSOR | |
CMPX USRTOP | |
BEQ ED00 | |
CMPD 0,X | |
BCC ED01 | |
ED00 LDX USRBAS | |
ED01 JSR FNDLIN | |
STX CURSOR | |
BCS ED04 | |
STX SAVESP | |
LEAX 2,X | |
ED02 LDA ,X+ | |
CMPA #EOL | |
BNE ED02 | |
ED03 CMPX USRTOP | |
BEQ ED35 | |
LDA ,X+ | |
STX CHAR | |
LDX SAVESP | |
STA ,X+ | |
STX SAVESP | |
LDX CHAR | |
BRA ED03 | |
ED35 LDX SAVESP | |
STX USRTOP | |
STX STKLIM | |
ED04 LDX SCRTCH | |
LDB #-1 | |
ED05 INCB | |
LDA ,X+ | |
CMPA #EOL | |
BNE ED05 | |
TSTB | |
BNE ED55 | |
LEAS 2,S | |
RTS | |
ED55 LEAX -1,X | |
ADDB #4 | |
ED06 LEAX -1,X | |
DECB | |
LDA 0,X | |
CMPA #SPACE | |
BEQ ED06 | |
LDA #EOL | |
STA 1,X | |
CLRA | |
LDX USRTOP | |
STX CHAR | |
ADDD USRTOP | |
STD USRTOP | |
STD STKLIM | |
JSR TSTSTK | |
BCC ED07 | |
STX USRTOP | |
STX STKLIM | |
JMP ERRORF | |
ED07 LDX USRTOP | |
ED08 STX SAVESP | |
LDX CHAR | |
CMPX CURSOR | |
BEQ ED09 | |
LDA ,-X | |
STX CHAR | |
LDX SAVESP | |
STA ,-X | |
BRA ED08 | |
ED09 PULS D | |
LDX CURSOR | |
STD ,X++ | |
STX CHAR | |
ED10 LDX SCRTCH | |
LDA ,X+ | |
STX SCRTCH | |
LDX CHAR | |
STA ,X+ | |
STX CHAR | |
CMPA #EOL | |
BNE ED10 | |
RTS | |
;****************************** | |
;****************************** | |
PUTS01 JSR PUTCHR | |
LEAX 1,X | |
PUTSTR LDA 0,X | |
CMPA #EOL | |
BNE PUTS01 | |
RTS | |
;****************************** | |
;****************************** | |
CRLF LDX #CRLFST | |
BSR PUTSTR | |
CLR ZONE | |
RTS | |
CRLFST FCB CR,LF,DEL,FILL,FILL,FILL,EOL | |
;****************************** | |
;****************************** | |
ERRORF BSR ER01 | |
DB "SORRY" | |
FCB EOL | |
ERRORS BSR ER01 | |
DB "WHAT ?" | |
FCB EOL | |
ERRORR BSR ER01 | |
DB "HOW ?" | |
FCB EOL | |
BREAK BSR ER01 | |
DB "BREAK" | |
FCB EOL | |
END BSR ER01 | |
DB "STOP" | |
FCB EOL | |
ER01 BSR CRLF | |
LDA #BELL | |
JSR PUTCHR | |
LDD LINENB | |
JSR PRNT4 | |
LDA #SPACE | |
JSR PUTCHR | |
PULS X | |
BSR PUTSTR | |
BSR CRLF | |
JMP CMDB | |
;****************************** | |
;****************************** | |
GL00 BSR CRLF | |
GETLIN LDX #BUFFER | |
GL03 JSR GETCHR | |
CMPA #SPACE | |
BCS GL05 | |
CMPA #$7F | |
BEQ GL03 | |
CMPX #BUFFER+BSIZE-1 | |
BNE GL04 | |
LDA #BELL | |
BRA GL02 | |
GL04 STA ,X+ | |
GL02 JSR PUTCHR | |
BRA GL03 | |
GL05 CMPA #BS | |
BEQ GL07 | |
CMPA #CAN | |
BEQ GL00 | |
CMPA #LF | |
BEQ GL09 | |
CMPA #CR | |
BNE GL03 | |
TST MODE | |
BEQ GL06 | |
JSR PUTCHR | |
BRA GL08 | |
GL06 PSHS X | |
JSR CRLF | |
PULS X | |
GL08 LDA #EOL | |
STA 0,X | |
LDX #BUFFER | |
RTS | |
GL07 CMPX #BUFFER | |
BEQ GL03 | |
LEAX -1,X | |
LDA #BS | |
JSR PUTCHR | |
LDA #SPACE | |
JSR PUTCHR | |
LDA #BS | |
BRA GL02 | |
GL09 ORCC #$01 | |
ROR MODE | |
BRA GL02 | |
;****************************** | |
;****************************** | |
REM00 LEAX 1,X | |
REM BSR SKIPSP | |
CMPA #EOL | |
BNE REM00 | |
ENDSMT JSR TSTEOL | |
ENDS02 LDA LINENB | |
ORA LINENB+1 | |
BEQ REM09 | |
REM05 CMPX USRTOP | |
BNE NXTLIN | |
JMP ERRORR | |
NXTLIN LDD ,X++ | |
STD LINENB | |
MSLINE JSR TSTBRK | |
BSR IFAN | |
BCS IMPLET | |
PSHS D | |
REM09 RTS | |
IMPLET JMP LET | |
;****************************** | |
;****************************** | |
IFAN BSR SKIPSP | |
STX CURSOR | |
LDX #VERBT | |
FAN00: LDA ,X+ | |
CMPA #EOL | |
BNE FAN04 | |
LDX CURSOR | |
ORCC #$01 | |
RTS | |
FAN04 STX CHAR | |
LDX CURSOR | |
STX SCRTCH | |
FAN05 LDX SCRTCH | |
CMPA 0,X | |
BNE FAN07 | |
LEAX 1,X | |
STX SCRTCH | |
LDX CHAR | |
LDA ,X+ | |
STX CHAR | |
CMPA #EOL | |
BNE FAN05 | |
LDD 0,X | |
LDX SCRTCH | |
ANDCC #$FE | |
RTS | |
FAN07 LDX CHAR | |
FAN08 LDA ,X+ | |
CMPA #EOL | |
BNE FAN08 | |
LEAX 2,X | |
BRA FAN00 | |
;****************************** | |
;****************************** | |
NXTNSP LEAX 1,X | |
SKIPSP LDA 0,X | |
CMPA #SPACE | |
BEQ NXTNSP | |
RTS | |
;****************************** | |
;****************************** | |
TSTHEX BSR TSTDIG | |
BCC TST05 | |
CMPA #"A" | |
BCS TST03 | |
CMPA #"F" | |
BHI TST03 | |
SUBA #"A"-10 | |
ANDCC #$FE | |
RTS | |
;****************************** | |
;****************************** | |
TSTLTR CMPA #"A" | |
BCS TST03 | |
CMPA #"Z" | |
BLS TST05 | |
TST03 ORCC #$01 | |
RTS | |
;****************************** | |
;****************************** | |
TSTDIG CMPA #"0" | |
BCS TST03 | |
CMPA #"9" | |
BHI TST03 | |
SUBA #"0" | |
TST05 ANDCC #$FE | |
RTS | |
;****************************** | |
;****************************** | |
TSTVAR BSR SKIPSP | |
BSR TSTLTR | |
BCS TSTV03 | |
TFR A,B | |
LDA 1,X | |
BSR TSTLTR | |
BCC TST03 | |
LEAX 1,X | |
SUBB #"A" | |
ASLB | |
CLRA | |
ADDD STKTOP | |
TSTV02 ANDCC #$FE | |
TSTV03 RTS | |
;****************************** | |
;****************************** | |
USER JSR ARGONE | |
PSHS D | |
JSR SKIPSP | |
CMPA #"," | |
BEQ USER03 | |
CMPA #")" | |
ORCC #$01 | |
BEQ USER05 | |
USER02 JMP ERRORS | |
USER03 LEAX 1,X | |
JSR EXPR | |
PSHS A | |
JSR SKIPSP | |
CMPA #")" | |
PULS A | |
BNE USER02 | |
ANDCC #$FE | |
USER05 LEAX 1,X | |
STX CURSOR | |
JSR [,S++] | |
LDX CURSOR | |
ANDCC #$FE | |
RTS | |
;****************************** | |
;****************************** | |
TSTSNB JSR SKIPSP | |
CMPA #"-" | |
BNE TSTNBR | |
LEAX 1,X | |
BSR TSTNBR | |
BCS TSN02 | |
NEGA | |
NEGB | |
SBCA #0 | |
ANDCC #$FC | |
TSN02 RTS | |
;****************************** | |
;****************************** | |
TSTNBR JSR SKIPSP | |
JSR TSTDIG | |
BCC TSTN02 | |
CMPA #"$" | |
ORCC #$01 | |
BNE TSTN09 | |
TSTN20 LEAX 1,X | |
CLR ,-S | |
CLR ,-S | |
TSTN23 LDA 0,X | |
JSR TSTHEX | |
BCS TSTN07 | |
LEAX 1,X | |
PSHS X | |
PSHS A | |
LDD 3,S | |
BITA #$F0 | |
BNE TSTN11 | |
ASLB | |
ROLA | |
ASLB | |
ROLA | |
ASLB | |
ROLA | |
ASLB | |
ROLA | |
ADDB ,S+ | |
STD 2,S | |
PULS X | |
BRA TSTN23 | |
TSTN02 LEAX 1,X | |
PSHS A | |
CLR ,-S | |
TSTN03 LDA 0,X | |
JSR TSTDIG | |
BCS TSTN07 | |
LEAX 1,X | |
PSHS X | |
PSHS A | |
LDD 3,S | |
ASLB | |
ROLA | |
BVS TSTN11 | |
ASLB | |
ROLA | |
BVS TSTN11 | |
ADDD 3,S | |
BVS TSTN11 | |
ASLB | |
ROLA | |
BVS TSTN11 | |
ADDB 0,S | |
ADCA #0 | |
BVS TSTN11 | |
STD 3,S | |
LEAS 1,S | |
PULS X | |
BRA TSTN03 | |
TSTN07 PULS D | |
ANDCC #$FE | |
TSTN09 ANDCC #$FD | |
RTS | |
TSTN11 LDX 1,S | |
LEAS 5,S | |
ORCC #$03 | |
RTS | |
;****************************** | |
;****************************** | |
TSTSTK STS SAVESP | |
LDD SAVESP | |
SUBD #STKCUS | |
SUBD STKLIM | |
RTS | |
;****************************** | |
;****************************** | |
PEEK JSR PAREXP | |
PSHS D | |
PSHS X | |
LDB [2,S] | |
PULS X | |
LEAS 2,S | |
CLRA | |
RTS | |
;****************************** | |
;****************************** | |
POKE JSR PAREXP | |
PSHS D | |
JSR SKIPSP | |
CMPA #"=" | |
BEQ POKE05 | |
JMP ERRORS | |
POKE05 LEAX 1,X | |
JSR EXPR | |
JSR TSTEOL | |
PSHS X | |
STB [2,S] | |
PULS X | |
LEAS 2,S | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
TSTFUN JSR SKIPSP | |
STX CURSOR | |
LDX #FUNT | |
JSR FAN00 | |
BCS TSTF05 | |
PSHS D | |
TSTF05 RTS | |
;****************************** | |
;****************************** | |
FUNT DB "USR" | |
FCB EOL | |
FDB USER | |
DB "PEEK" | |
FCB EOL | |
FDB PEEK | |
DB "MEM" | |
FCB EOL | |
FDB TSTSTK | |
FCB EOL | |
;****************************** | |
;****************************** | |
FLINE LDX USRBAS | |
FNDLIN CMPX USRTOP | |
BNE FND03 | |
ORCC #$03 | |
RTS | |
FND03 CMPD 0,X | |
BNE FND05 | |
ANDCC #$FC | |
RTS | |
FND05 BCC FND07 | |
ORCC #$01 | |
ANDCC #$FD | |
RTS | |
FND07 PSHS A | |
LDA #EOL | |
LEAX 1,X | |
FND09 LEAX 1,X | |
CMPA 0,X | |
BNE FND09 | |
PULS A | |
LEAX 1,X | |
BRA FNDLIN | |
;****************************** | |
;****************************** | |
RELEXP BSR EXPR | |
PSHS D | |
CLRB | |
JSR SKIPSP | |
CMPA #"=" | |
BEQ REL06 | |
CMPA #"<" | |
BNE REL03 | |
LEAX 1,X | |
INCB | |
JSR SKIPSP | |
CMPA #">" | |
BNE REL05 | |
LEAX 1,X | |
ADDB #4 | |
BRA REL07 | |
REL03 CMPA #">" | |
BNE EXPR06 | |
LEAX 1,X | |
ADDB #4 | |
JSR SKIPSP | |
REL05 CMPA #"=" | |
BNE REL07 | |
REL06 LEAX 1,X | |
ADDB #2 | |
REL07 PSHS B | |
BSR EXPR | |
PSHS X | |
SUBD 3,S | |
TFR CC,A | |
LSRA | |
TFR A,B | |
ASLA | |
ASLA | |
PSHS B | |
ADDA ,S+ | |
ANDA #$06 | |
BNE REL08 | |
INCA | |
REL08 CLRB | |
ANDA 2,S | |
BEQ REL09 | |
COMB | |
REL09 CLRA | |
PULS X | |
LEAS 3,S | |
RTS | |
;****************************** | |
;****************************** | |
EXPR CLR ,-S | |
CLR ,-S | |
JSR SKIPSP | |
CMPA #"-" | |
BEQ EXPR05 | |
CMPA #"+" | |
BNE EXPR03 | |
EXPR02 LEAX 1,X | |
EXPR03 BSR TERM | |
EXPR04 ADDD 0,S | |
STD 0,S | |
JSR SKIPSP | |
CMPA #"+" | |
BEQ EXPR02 | |
CMPA #"-" | |
BNE EXPR06 | |
EXPR05 LEAX 1,X | |
BSR TERM | |
NEGA | |
NEGB | |
SBCA #0 | |
BRA EXPR04 | |
EXPR06 PULS D | |
RTS | |
;****************************** | |
;****************************** | |
TERM JSR FACT | |
PSHS D | |
TERM03 JSR SKIPSP | |
CMPA #"*" | |
BEQ TERM07 | |
CMPA #"/" | |
BEQ TERM05 | |
PULS D | |
RTS | |
TERM05 LEAX 1,X | |
BSR FACT | |
PSHS X | |
LEAX 2,S | |
PSHS D | |
EORA 0,X | |
JSR ABSX | |
LEAX 0,S | |
JSR ABSX | |
PSHS A | |
LDA #17 | |
PSHS A | |
CLRA | |
CLRB | |
DIV05 SUBD 2,S | |
BCC DIV07 | |
ADDD 2,S | |
ANDCC #$FE | |
BRA DIV09 | |
DIV07 ORCC #$01 | |
DIV09 ROL 7,S | |
ROL 6,S | |
ROLB | |
ROLA | |
DEC 0,S | |
BNE DIV05 | |
LDA 1,S | |
LEAS 4,S | |
TSTA | |
BPL TERM06 | |
LEAX 2,S | |
BSR NEGX | |
TERM06 PULS X | |
BRA TERM03 | |
TERM07 LEAX 1,X | |
BSR FACT | |
MULT PSHS B | |
LDB 2,S | |
MUL | |
LDA 1,S | |
STB 1,S | |
LDB 0,S | |
MUL | |
LDA 2,S | |
STB 2,S | |
PULS B | |
MUL | |
ADDA 0,S | |
ADDA 1,S | |
STD 0,S | |
BRA TERM03 | |
;****************************** | |
;****************************** | |
FACT JSR TSTVAR | |
BCS FACT03 | |
PSHS X | |
TFR D,X | |
LDD 0,X | |
PULS X | |
FACT02 RTS | |
FACT03 JSR TSTNBR | |
BCC FACT02 | |
JSR TSTFUN | |
BCC FACT02 | |
PAREXP BSR ARGONE | |
PSHS A | |
JSR SKIPSP | |
CMPA #")" | |
PULS A | |
BNE FACT05 | |
LEAX 1,X | |
RTS | |
FACT05 JMP ERRORS | |
;****************************** | |
;****************************** | |
ARGONE JSR TSTSTK | |
BCC FACT04 | |
JMP ERRORF | |
FACT04 JSR SKIPSP | |
CMPA #"(" | |
BNE FACT05 | |
LEAX 1,X | |
JMP EXPR | |
;****************************** | |
;****************************** | |
ABSX TST 0,X | |
BPL NEG05 | |
NEGX NEG 0,X | |
NEG 1,X | |
BCC NEG05 | |
DEC 0,X | |
NEG05 RTS | |
;****************************** | |
;****************************** | |
TSTEOL PSHS A | |
JSR SKIPSP | |
CMPA #EOL | |
BEQ TEOL03 | |
JMP ERRORS | |
TEOL03 LEAX 1,X | |
PULS A | |
RTS | |
;****************************** | |
;****************************** | |
LET JSR TSTVAR | |
BCC LET03 | |
JMP ERRORS | |
LET03 PSHS D | |
JSR SKIPSP | |
CMPA #"=" | |
BEQ LET05 | |
JMP ERRORS | |
LET05 LEAX 1,X | |
JSR EXPR | |
BSR TSTEOL | |
STX CURSOR | |
PULS X | |
STD 0,X | |
LDX CURSOR | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
IF: JSR RELEXP | |
TSTB | |
BEQ IF03 | |
JMP MSLINE | |
IF03: JMP REM | |
;****************************** | |
;****************************** | |
GOTO JSR EXPR | |
BSR TSTEOL | |
JSR FLINE | |
BCS GOSB04 | |
JMP NXTLIN | |
;****************************** | |
;****************************** | |
GOSUB JSR EXPR | |
BSR TSTEOL | |
STX CURSOR | |
JSR FLINE | |
BCC GOSB03 | |
GOSB04 JMP ERRORR | |
GOSB03 JSR TSTSTK | |
BCC GOSB05 | |
JMP ERRORF | |
GOSB05 LDD CURSOR | |
PSHS D | |
LDD LINENB | |
PSHS D | |
JSR NXTLIN | |
PULS D | |
STD LINENB | |
PULS X | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
RETURN EQU TSTEOL | |
;****************************** | |
;****************************** | |
PRINT JSR SKIPSP | |
PR01 CMPA #"," | |
BEQ PR05 | |
CMPA #";" | |
BEQ PR07 | |
CMPA #EOL | |
BEQ PR04 | |
CMPA #$22 | |
BNE PR02 | |
LEAX 1,X | |
BSR PRNTQS | |
BRA PR03 | |
PR02 JSR EXPR | |
PSHS X | |
BSR PRNTN | |
PULS X | |
PR03 JSR SKIPSP | |
CMPA #"," | |
BEQ PR05 | |
CMPA #";" | |
BEQ PR07 | |
CMPA #EOL | |
BEQ PR04 | |
JMP ERRORS | |
PR04 PSHS X | |
JSR CRLF | |
PULS X | |
BRA PR08 | |
PR05 LDB #$7 | |
PR06 LDA #SPACE | |
JSR PUTCHR | |
BITB ZONE | |
BNE PR06 | |
PR07 LEAX 1,X | |
JSR SKIPSP | |
CMPA #EOL | |
BNE PR01 | |
PR08 LEAX 1,X | |
JMP ENDS02 | |
;* | |
;* | |
PRQ01 JSR PUTCHR | |
PRNTQS LDA ,X+ | |
CMPA #EOL | |
BNE PRQ03 | |
JMP ERRORS | |
PRQ03 CMPA #$22 | |
BNE PRQ01 | |
RTS | |
;* | |
PRNTN TSTA | |
BPL PRN03 | |
NEGA | |
NEGB | |
SBCA #0 | |
PSHS A | |
LDA #"-" | |
JSR PUTCHR | |
PULS A | |
PRN03 LDX #PRNPT-2 | |
PRN05 LEAX 2,X | |
CMPD 0,X | |
BCC PRN07 | |
CMPX #PRNPTO | |
BNE PRN05 | |
PRN07 CLR CHAR | |
PRN09 CMPD 0,X | |
BCS PRN11 | |
SUBD 0,X | |
INC CHAR | |
BRA PRN09 | |
PRN11 PSHS A | |
LDA #"0" | |
ADDA CHAR | |
JSR PUTCHR | |
PULS A | |
CMPX #PRNPTO | |
BEQ PRN13 | |
LEAX 2,X | |
BRA PRN07 | |
PRN13 RTS | |
PRNPT FDB 10000 | |
FDB 1000 | |
FDB 100 | |
FDB 10 | |
PRNPTO FDB 1 | |
;* | |
PRNT4 LDX #PRNPT+2 | |
BRA PRN07 | |
;****************************** | |
;****************************** | |
INPUT JSR TSTVAR | |
BCS IN11 | |
PSHS D | |
STX CURSOR | |
IN03 LDA #"?" | |
JSR PUTCHR | |
JSR GETLIN | |
IN05 JSR SKIPSP | |
CMPA #EOL | |
BEQ IN03 | |
JSR TSTSNB | |
BCC IN07 | |
LDX #RMESS | |
JSR PUTSTR | |
JSR CRLF | |
BRA IN03 | |
IN07 STX SCRTCH | |
PULS X | |
STD 0,X | |
LDX CURSOR | |
JSR SKIPSP | |
CMPA #"," | |
BEQ IN09 | |
JMP ENDSMT | |
IN09 LEAX 1,X | |
JSR TSTVAR | |
BCC IN13 | |
IN11 JMP ERRORS | |
IN13 PSHS D | |
PSHS X | |
LDX SCRTCH | |
JSR SKIPSP | |
CMPA #"," | |
BNE IN05 | |
LEAX 1,X | |
BRA IN05 | |
RMESS DB "RE-ENTER" | |
FCB EOL | |
;****************************** | |
;****************************** | |
RUN LDX STKTOP | |
LDA #52 | |
RUN01 CLR ,X+ | |
DECA | |
BNE RUN01 | |
LDX USRBAS | |
JMP REM05 | |
;****************************** | |
;****************************** | |
LIST JSR TSTNBR | |
BCC LIST03 | |
CLRA | |
CLRB | |
STD CURSOR | |
LDA #$7F | |
BRA LIST07 | |
LIST03 STD CURSOR | |
JSR SKIPSP | |
CMPA #"," | |
BEQ LIST05 | |
LDA CURSOR | |
BRA LIST07 | |
LIST05 LEAX 1,X | |
JSR TSTNBR | |
BCC LIST07 | |
JMP ERRORS | |
LIST07 JSR TSTEOL | |
PSHS D | |
LDD CURSOR | |
STX CURSOR | |
JSR FLINE | |
LIST09 CMPX USRTOP | |
BEQ LIST10 | |
PULS D | |
CMPD 0,X | |
BCS LIST11 | |
PSHS D | |
LDD ,X++ | |
PSHS X | |
JSR PRNT4 | |
PULS X | |
LDA #SPACE | |
JSR PUTCHR | |
JSR PUTSTR | |
LEAX 1,X | |
PSHS X | |
JSR CRLF | |
PULS X | |
JSR TSTBRK | |
BRA LIST09 | |
LIST10 LEAS 2,S | |
LDA #ETX | |
JSR PUTCHR | |
LIST11 LDX CURSOR | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
VERBT DB "LET" | |
FCB EOL | |
FDB LET | |
DB "IF" | |
FCB EOL | |
FDB IF | |
DB "GOTO" | |
FCB EOL | |
FDB GOTO | |
DB "GOSUB" | |
FCB EOL | |
FDB GOSUB | |
DB "RETURN" | |
FCB EOL | |
FDB RETURN | |
DB "POKE" | |
FCB EOL | |
FDB POKE | |
DB "PRINT" | |
FCB EOL | |
FDB PRINT | |
DB "INPUT" | |
FCB EOL | |
FDB INPUT | |
DB "REM" | |
FCB EOL | |
FDB REM | |
DB "STOP" | |
FCB EOL | |
FDB END | |
DB "END" | |
FCB EOL | |
FDB END | |
DB "RUN" | |
FCB EOL | |
FDB RUN | |
DB "LIST" | |
FCB EOL | |
FDB LIST | |
DB "NEW" | |
FCB EOL | |
FDB CLEAR | |
DB "?" | |
FCB EOL | |
FDB PRINT | |
FCB EOL | |
;****************************** | |
;****************************** | |
TSTBRK bsr BRKEEE | |
beq GETC05 | |
GETCHR bsr INEEE | |
CMPA #ETX | |
BNE GETC05 | |
JMP BREAK | |
GETC05 RTS | |
PUTCHR INC ZONE | |
JMP OUTEEE | |
;****************************** | |
;****************************** | |
INEEE BSR BRKEEE | |
BEQ INEEE | |
LDA RECEV | |
ANDA #$7F | |
RTS | |
OUTEEE PSHS A | |
OUT01 LDA TRCS | |
BITA #TDRE | |
BEQ OUT01 | |
PULS A | |
STA TRANS | |
RTS | |
BRKEEE PSHS A | |
BRK03 LDA TRCS | |
BITA #ORFE | |
BEQ BRK05 | |
LDA RECEV | |
BRA BRK03 | |
BRK05 BITA #RDRF | |
PULS A | |
RTS | |
;* | |
LDA #CNTL1 | |
STA RMCR | |
LDA #CNTL2 | |
STA TRCS | |
INTEEE EQU $ | |
RTS | |
;****************************** | |
;****************************** | |
END: | |
;NAM TB01V137 | |
;* WRITTEN 20-OCT-77 BY JOHN BYRNS | |
;* REVISED 30-DEC-77 | |
;* REVISED 18-JAN-78 | |
;* REVISED 10-APR-78 | |
;* REVISED 08-MAY-79 TO ELIMINATE USE OF SP | |
;* REVISED 24-JAN-80 TO USE 6801 ON CHIP RAM | |
;* REVISED 26-JAN-80 FOR NEW 6801 INSTRUCTIONS | |
;* REVISED 24-JUL-81 FOR WHISTON BOARD | |
;* REVISED 24-SEP-81 INCLUDE USER FUNCTION | |
;* REVISED 08-APR-82 MAKE STANDALONE INCLUDE HEX CONSTANTS AND MEM FUNCTION | |
;* REVISED 21-NOV-84 FOR 6809 | |
;* REVISED FEB 94 ADAPTED TO SIMULATOR AND BUGFIXES BY L.C. BENSCHOP. | |
;* | |
;.engine kilo | |
EOL: EQU $04 | |
ETX: EQU $03 | |
SPACE: EQU $20 | |
CR: EQU $0D | |
LF: EQU $0A | |
BS: EQU $08 | |
CAN: EQU $18 | |
BELL: EQU $07 | |
FILL: EQU $00 | |
DEL: EQU $7F | |
BSIZE: EQU 73 | |
STKCUS: EQU 48 | |
;* | |
bACIA equ $83FE | |
RMCR EQU bACIA | |
TRCS EQU bACIA | |
RECEV EQU bACIA+1 | |
TRANS EQU bACIA+1 | |
CNTL1 EQU $03 | |
CNTL2 EQU $15 | |
RDRF EQU $01 | |
ORFE EQU $20 | |
TDRE EQU $02 | |
;* EDIT THE FOLLOWING EQUATES TO REFLECT THE | |
;* DESIRED ROM AND RAM LAYOUT | |
LORAM EQU $0080 ;ADDRESS OF DIRECT PAGE SCRATCH RAM | |
BUFFER EQU $0200 ;ADDRESS OF MAIN RAM | |
RAMSIZ EQU $2000 ;SIZE OF MAIN RAM | |
ROMADR EQU $f000 ;ADDRESS OF TINY BASIC ROM | |
;* | |
RAMBEG EQU BUFFER+BSIZE | |
RAMEND EQU BUFFER+RAMSIZ | |
;* | |
RAMPAT EQU $AA0F | |
ROMPAT EQU $F055 | |
;* | |
; ORG LORAM | |
.bsseg | |
USRBAS: RMB 2 | |
USRTOP: RMB 2 | |
STKLIM: RMB 2 | |
STKTOP: RMB 2 | |
CURSOR: RMB 2 | |
SAVESP: RMB 2 | |
LINENB: RMB 2 | |
SCRTCH: RMB 2 | |
CHAR: RMB 2 | |
ZONE: RMB 1 | |
MODE: RMB 1 | |
RESRVD: RMB 1 | |
LOEND: EQU $ | |
;* | |
.cseg | |
;;; ORG ROMADR | |
.align 256 | |
.ent $ | |
.block | |
BASIC: JMP SETUP | |
.cstr "MOD9BASIC" | |
WARMS LDS STKTOP | |
JSR INTEEE | |
BRA WMS05 | |
SETUP LDS #RAMEND-52 | |
SET03 STS STKTOP | |
JSR INTEEE | |
CLEAR LDD #RAMBEG | |
STD USRBAS | |
STD USRTOP | |
CLR02 STD STKLIM | |
WMS05 JSR CRLF | |
LDX #VSTR | |
JSR PUTSTR | |
CMDB LDS STKTOP | |
CLR MODE | |
JSR CRLF | |
LDX USRBAS | |
STX CURSOR | |
CMDE LDX #0000 | |
STX LINENB | |
TST MODE | |
BNE CMD01 | |
LDA #":" | |
JSR PUTCHR | |
CMD01 JSR GETLIN | |
JSR TSTNBR | |
BCC CMD02 | |
BVS CMD05 | |
JSR SKIPSP | |
CMPA #EOL | |
BEQ CMDE | |
JSR MSLINE | |
BRA CMDB | |
CMD02 PSHS X | |
LDX USRTOP | |
CMPX STKLIM | |
PULS X | |
BEQ CMD03 | |
JMP ERRORR | |
CMD03 ADDD #0 | |
BEQ CMD05 | |
CMD04 PSHS D | |
SUBD #9999 | |
PULS D | |
BHI CMD05 | |
BSR EDITOR | |
BRA CMDE | |
CMD05 JMP ERRORS | |
VSTR DB "TINY V1.37" | |
FCB EOL | |
;****************************** | |
;****************************** | |
EDITOR PSHS D | |
JSR SKIPSP | |
STX SCRTCH | |
LDA 0,S | |
LDX CURSOR | |
CMPX USRTOP | |
BEQ ED00 | |
CMPD 0,X | |
BCC ED01 | |
ED00 LDX USRBAS | |
ED01 JSR FNDLIN | |
STX CURSOR | |
BCS ED04 | |
STX SAVESP | |
LEAX 2,X | |
ED02 LDA ,X+ | |
CMPA #EOL | |
BNE ED02 | |
ED03 CMPX USRTOP | |
BEQ ED35 | |
LDA ,X+ | |
STX CHAR | |
LDX SAVESP | |
STA ,X+ | |
STX SAVESP | |
LDX CHAR | |
BRA ED03 | |
ED35 LDX SAVESP | |
STX USRTOP | |
STX STKLIM | |
ED04 LDX SCRTCH | |
LDB #-1 | |
ED05 INCB | |
LDA ,X+ | |
CMPA #EOL | |
BNE ED05 | |
TSTB | |
BNE ED55 | |
LEAS 2,S | |
RTS | |
ED55 LEAX -1,X | |
ADDB #4 | |
ED06 LEAX -1,X | |
DECB | |
LDA 0,X | |
CMPA #SPACE | |
BEQ ED06 | |
LDA #EOL | |
STA 1,X | |
CLRA | |
LDX USRTOP | |
STX CHAR | |
ADDD USRTOP | |
STD USRTOP | |
STD STKLIM | |
JSR TSTSTK | |
BCC ED07 | |
STX USRTOP | |
STX STKLIM | |
JMP ERRORF | |
ED07 LDX USRTOP | |
ED08 STX SAVESP | |
LDX CHAR | |
CMPX CURSOR | |
BEQ ED09 | |
LDA ,-X | |
STX CHAR | |
LDX SAVESP | |
STA ,-X | |
BRA ED08 | |
ED09 PULS D | |
LDX CURSOR | |
STD ,X++ | |
STX CHAR | |
ED10 LDX SCRTCH | |
LDA ,X+ | |
STX SCRTCH | |
LDX CHAR | |
STA ,X+ | |
STX CHAR | |
CMPA #EOL | |
BNE ED10 | |
RTS | |
;****************************** | |
;****************************** | |
PUTS01 JSR PUTCHR | |
LEAX 1,X | |
PUTSTR LDA 0,X | |
CMPA #EOL | |
BNE PUTS01 | |
RTS | |
;****************************** | |
;****************************** | |
CRLF LDX #CRLFST | |
BSR PUTSTR | |
CLR ZONE | |
RTS | |
CRLFST FCB CR,LF,DEL,FILL,FILL,FILL,EOL | |
;****************************** | |
;****************************** | |
ERRORF BSR ER01 | |
DB "SORRY" | |
FCB EOL | |
ERRORS BSR ER01 | |
DB "WHAT ?" | |
FCB EOL | |
ERRORR BSR ER01 | |
DB "HOW ?" | |
FCB EOL | |
BREAK BSR ER01 | |
DB "BREAK" | |
FCB EOL | |
END: BSR ER01 | |
DB "STOP" | |
FCB EOL | |
ER01 BSR CRLF | |
LDA #BELL | |
JSR PUTCHR | |
LDD LINENB | |
JSR PRNT4 | |
LDA #SPACE | |
JSR PUTCHR | |
PULS X | |
BSR PUTSTR | |
BSR CRLF | |
JMP CMDB | |
;****************************** | |
;****************************** | |
GL00 BSR CRLF | |
GETLIN LDX #BUFFER | |
GL03 JSR GETCHR | |
CMPA #SPACE | |
BCS GL05 | |
CMPA #$7F | |
BEQ GL03 | |
CMPX #BUFFER+BSIZE-1 | |
BNE GL04 | |
LDA #BELL | |
BRA GL02 | |
GL04 STA ,X+ | |
GL02 JSR PUTCHR | |
BRA GL03 | |
GL05 CMPA #BS | |
BEQ GL07 | |
CMPA #CAN | |
BEQ GL00 | |
CMPA #LF | |
BEQ GL09 | |
CMPA #CR | |
BNE GL03 | |
TST MODE | |
BEQ GL06 | |
JSR PUTCHR | |
BRA GL08 | |
GL06 PSHS X | |
JSR CRLF | |
PULS X | |
GL08 LDA #EOL | |
STA 0,X | |
LDX #BUFFER | |
RTS | |
GL07 CMPX #BUFFER | |
BEQ GL03 | |
LEAX -1,X | |
LDA #BS | |
JSR PUTCHR | |
LDA #SPACE | |
JSR PUTCHR | |
LDA #BS | |
BRA GL02 | |
GL09 ORCC #$01 | |
ROR MODE | |
BRA GL02 | |
;****************************** | |
;****************************** | |
REM00 LEAX 1,X | |
REM BSR SKIPSP | |
CMPA #EOL | |
BNE REM00 | |
ENDSMT JSR TSTEOL | |
ENDS02 LDA LINENB | |
ORA LINENB+1 | |
BEQ REM09 | |
REM05 CMPX USRTOP | |
BNE NXTLIN | |
JMP ERRORR | |
NXTLIN LDD ,X++ | |
STD LINENB | |
MSLINE JSR TSTBRK | |
BSR IFAN | |
BCS IMPLET | |
PSHS D | |
REM09 RTS | |
IMPLET JMP LET | |
;****************************** | |
;****************************** | |
IFAN BSR SKIPSP | |
STX CURSOR | |
LDX #VERBT | |
FAN00: LDA ,X+ | |
CMPA #EOL | |
BNE FAN04 | |
LDX CURSOR | |
ORCC #$01 | |
RTS | |
FAN04 STX CHAR | |
LDX CURSOR | |
STX SCRTCH | |
FAN05 LDX SCRTCH | |
CMPA 0,X | |
BNE FAN07 | |
LEAX 1,X | |
STX SCRTCH | |
LDX CHAR | |
LDA ,X+ | |
STX CHAR | |
CMPA #EOL | |
BNE FAN05 | |
LDD 0,X | |
LDX SCRTCH | |
ANDCC #$FE | |
RTS | |
FAN07 LDX CHAR | |
FAN08 LDA ,X+ | |
CMPA #EOL | |
BNE FAN08 | |
LEAX 2,X | |
BRA FAN00 | |
;****************************** | |
;****************************** | |
NXTNSP LEAX 1,X | |
SKIPSP LDA 0,X | |
CMPA #SPACE | |
BEQ NXTNSP | |
RTS | |
;****************************** | |
;****************************** | |
TSTHEX BSR TSTDIG | |
BCC TST05 | |
CMPA #"A" | |
BCS TST03 | |
CMPA #"F" | |
BHI TST03 | |
SUBA #"A"-10 | |
ANDCC #$FE | |
RTS | |
;****************************** | |
;****************************** | |
TSTLTR CMPA #"A" | |
BCS TST03 | |
CMPA #"Z" | |
BLS TST05 | |
TST03 ORCC #$01 | |
RTS | |
;****************************** | |
;****************************** | |
TSTDIG CMPA #"0" | |
BCS TST03 | |
CMPA #"9" | |
BHI TST03 | |
SUBA #"0" | |
TST05 ANDCC #$FE | |
RTS | |
;****************************** | |
;****************************** | |
TSTVAR BSR SKIPSP | |
BSR TSTLTR | |
BCS TSTV03 | |
TFR A,B | |
LDA 1,X | |
BSR TSTLTR | |
BCC TST03 | |
LEAX 1,X | |
SUBB #"A" | |
ASLB | |
CLRA | |
ADDD STKTOP | |
TSTV02 ANDCC #$FE | |
TSTV03 RTS | |
;****************************** | |
;****************************** | |
USER JSR ARGONE | |
PSHS D | |
JSR SKIPSP | |
CMPA #"," | |
BEQ USER03 | |
CMPA #")" | |
ORCC #$01 | |
BEQ USER05 | |
USER02 JMP ERRORS | |
USER03 LEAX 1,X | |
JSR EXPR | |
PSHS A | |
JSR SKIPSP | |
CMPA #")" | |
PULS A | |
BNE USER02 | |
ANDCC #$FE | |
USER05 LEAX 1,X | |
STX CURSOR | |
JSR [,S++] | |
LDX CURSOR | |
ANDCC #$FE | |
RTS | |
;****************************** | |
;****************************** | |
TSTSNB JSR SKIPSP | |
CMPA #"-" | |
BNE TSTNBR | |
LEAX 1,X | |
BSR TSTNBR | |
BCS TSN02 | |
NEGA | |
NEGB | |
SBCA #0 | |
ANDCC #$FC | |
TSN02 RTS | |
;****************************** | |
;****************************** | |
TSTNBR JSR SKIPSP | |
JSR TSTDIG | |
BCC TSTN02 | |
CMPA #"$" | |
ORCC #$01 | |
BNE TSTN09 | |
TSTN20 LEAX 1,X | |
CLR ,-S | |
CLR ,-S | |
TSTN23 LDA 0,X | |
JSR TSTHEX | |
BCS TSTN07 | |
LEAX 1,X | |
PSHS X | |
PSHS A | |
LDD 3,S | |
BITA #$F0 | |
BNE TSTN11 | |
ASLB | |
ROLA | |
ASLB | |
ROLA | |
ASLB | |
ROLA | |
ASLB | |
ROLA | |
ADDB ,S+ | |
STD 2,S | |
PULS X | |
BRA TSTN23 | |
TSTN02 LEAX 1,X | |
PSHS A | |
CLR ,-S | |
TSTN03 LDA 0,X | |
JSR TSTDIG | |
BCS TSTN07 | |
LEAX 1,X | |
PSHS X | |
PSHS A | |
LDD 3,S | |
ASLB | |
ROLA | |
BVS TSTN11 | |
ASLB | |
ROLA | |
BVS TSTN11 | |
ADDD 3,S | |
BVS TSTN11 | |
ASLB | |
ROLA | |
BVS TSTN11 | |
ADDB 0,S | |
ADCA #0 | |
BVS TSTN11 | |
STD 3,S | |
LEAS 1,S | |
PULS X | |
BRA TSTN03 | |
TSTN07 PULS D | |
ANDCC #$FE | |
TSTN09 ANDCC #$FD | |
RTS | |
TSTN11 LDX 1,S | |
LEAS 5,S | |
ORCC #$03 | |
RTS | |
;****************************** | |
;****************************** | |
TSTSTK STS SAVESP | |
LDD SAVESP | |
SUBD #STKCUS | |
SUBD STKLIM | |
RTS | |
;****************************** | |
;****************************** | |
PEEK JSR PAREXP | |
PSHS D | |
PSHS X | |
LDB [2,S] | |
PULS X | |
LEAS 2,S | |
CLRA | |
RTS | |
;****************************** | |
;****************************** | |
POKE JSR PAREXP | |
PSHS D | |
JSR SKIPSP | |
CMPA #"=" | |
BEQ POKE05 | |
JMP ERRORS | |
POKE05 LEAX 1,X | |
JSR EXPR | |
JSR TSTEOL | |
PSHS X | |
STB [2,S] | |
PULS X | |
LEAS 2,S | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
TSTFUN JSR SKIPSP | |
STX CURSOR | |
LDX #FUNT | |
JSR FAN00 | |
BCS TSTF05 | |
PSHS D | |
TSTF05 RTS | |
;****************************** | |
;****************************** | |
FUNT DB "USR" | |
FCB EOL | |
FDB USER | |
DB "PEEK" | |
FCB EOL | |
FDB PEEK | |
DB "MEM" | |
FCB EOL | |
FDB TSTSTK | |
FCB EOL | |
;****************************** | |
;****************************** | |
FLINE LDX USRBAS | |
FNDLIN CMPX USRTOP | |
BNE FND03 | |
ORCC #$03 | |
RTS | |
FND03 CMPD 0,X | |
BNE FND05 | |
ANDCC #$FC | |
RTS | |
FND05 BCC FND07 | |
ORCC #$01 | |
ANDCC #$FD | |
RTS | |
FND07 PSHS A | |
LDA #EOL | |
LEAX 1,X | |
FND09 LEAX 1,X | |
CMPA 0,X | |
BNE FND09 | |
PULS A | |
LEAX 1,X | |
BRA FNDLIN | |
;****************************** | |
;****************************** | |
RELEXP BSR EXPR | |
PSHS D | |
CLRB | |
JSR SKIPSP | |
CMPA #"=" | |
BEQ REL06 | |
CMPA #"<" | |
BNE REL03 | |
LEAX 1,X | |
INCB | |
JSR SKIPSP | |
CMPA #">" | |
BNE REL05 | |
LEAX 1,X | |
ADDB #4 | |
BRA REL07 | |
REL03 CMPA #">" | |
BNE EXPR06 | |
LEAX 1,X | |
ADDB #4 | |
JSR SKIPSP | |
REL05 CMPA #"=" | |
BNE REL07 | |
REL06 LEAX 1,X | |
ADDB #2 | |
REL07 PSHS B | |
BSR EXPR | |
PSHS X | |
SUBD 3,S | |
TFR CC,A | |
LSRA | |
TFR A,B | |
ASLA | |
ASLA | |
PSHS B | |
ADDA ,S+ | |
ANDA #$06 | |
BNE REL08 | |
INCA | |
REL08 CLRB | |
ANDA 2,S | |
BEQ REL09 | |
COMB | |
REL09 CLRA | |
PULS X | |
LEAS 3,S | |
RTS | |
;****************************** | |
;****************************** | |
EXPR CLR ,-S | |
CLR ,-S | |
JSR SKIPSP | |
CMPA #"-" | |
BEQ EXPR05 | |
CMPA #"+" | |
BNE EXPR03 | |
EXPR02 LEAX 1,X | |
EXPR03 BSR TERM | |
EXPR04 ADDD 0,S | |
STD 0,S | |
JSR SKIPSP | |
CMPA #"+" | |
BEQ EXPR02 | |
CMPA #"-" | |
BNE EXPR06 | |
EXPR05 LEAX 1,X | |
BSR TERM | |
NEGA | |
NEGB | |
SBCA #0 | |
BRA EXPR04 | |
EXPR06 PULS D | |
RTS | |
;****************************** | |
;****************************** | |
TERM JSR FACT | |
PSHS D | |
TERM03 JSR SKIPSP | |
CMPA #"*" | |
BEQ TERM07 | |
CMPA #"/" | |
BEQ TERM05 | |
PULS D | |
RTS | |
TERM05 LEAX 1,X | |
BSR FACT | |
PSHS X | |
LEAX 2,S | |
PSHS D | |
EORA 0,X | |
JSR ABSX | |
LEAX 0,S | |
JSR ABSX | |
PSHS A | |
LDA #17 | |
PSHS A | |
CLRA | |
CLRB | |
DIV05 SUBD 2,S | |
BCC DIV07 | |
ADDD 2,S | |
ANDCC #$FE | |
BRA DIV09 | |
DIV07 ORCC #$01 | |
DIV09 ROL 7,S | |
ROL 6,S | |
ROLB | |
ROLA | |
DEC 0,S | |
BNE DIV05 | |
LDA 1,S | |
LEAS 4,S | |
TSTA | |
BPL TERM06 | |
LEAX 2,S | |
BSR NEGX | |
TERM06 PULS X | |
BRA TERM03 | |
TERM07 LEAX 1,X | |
BSR FACT | |
MULT PSHS B | |
LDB 2,S | |
MUL | |
LDA 1,S | |
STB 1,S | |
LDB 0,S | |
MUL | |
LDA 2,S | |
STB 2,S | |
PULS B | |
MUL | |
ADDA 0,S | |
ADDA 1,S | |
STD 0,S | |
BRA TERM03 | |
;****************************** | |
;****************************** | |
FACT JSR TSTVAR | |
BCS FACT03 | |
PSHS X | |
TFR D,X | |
LDD 0,X | |
PULS X | |
FACT02 RTS | |
FACT03 JSR TSTNBR | |
BCC FACT02 | |
JSR TSTFUN | |
BCC FACT02 | |
PAREXP BSR ARGONE | |
PSHS A | |
JSR SKIPSP | |
CMPA #")" | |
PULS A | |
BNE FACT05 | |
LEAX 1,X | |
RTS | |
FACT05 JMP ERRORS | |
;****************************** | |
;****************************** | |
ARGONE JSR TSTSTK | |
BCC FACT04 | |
JMP ERRORF | |
FACT04 JSR SKIPSP | |
CMPA #"(" | |
BNE FACT05 | |
LEAX 1,X | |
JMP EXPR | |
;****************************** | |
;****************************** | |
ABSX TST 0,X | |
BPL NEG05 | |
NEGX NEG 0,X | |
NEG 1,X | |
BCC NEG05 | |
DEC 0,X | |
NEG05 RTS | |
;****************************** | |
;****************************** | |
TSTEOL PSHS A | |
JSR SKIPSP | |
CMPA #EOL | |
BEQ TEOL03 | |
JMP ERRORS | |
TEOL03 LEAX 1,X | |
PULS A | |
RTS | |
;****************************** | |
;****************************** | |
LET JSR TSTVAR | |
BCC LET03 | |
JMP ERRORS | |
LET03 PSHS D | |
JSR SKIPSP | |
CMPA #"=" | |
BEQ LET05 | |
JMP ERRORS | |
LET05 LEAX 1,X | |
JSR EXPR | |
BSR TSTEOL | |
STX CURSOR | |
PULS X | |
STD 0,X | |
LDX CURSOR | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
IF: JSR RELEXP | |
TSTB | |
BEQ IF03 | |
JMP MSLINE | |
IF03: JMP REM | |
;****************************** | |
;****************************** | |
GOTO JSR EXPR | |
BSR TSTEOL | |
JSR FLINE | |
BCS GOSB04 | |
JMP NXTLIN | |
;****************************** | |
;****************************** | |
GOSUB JSR EXPR | |
BSR TSTEOL | |
STX CURSOR | |
JSR FLINE | |
BCC GOSB03 | |
GOSB04 JMP ERRORR | |
GOSB03 JSR TSTSTK | |
BCC GOSB05 | |
JMP ERRORF | |
GOSB05 LDD CURSOR | |
PSHS D | |
LDD LINENB | |
PSHS D | |
JSR NXTLIN | |
PULS D | |
STD LINENB | |
PULS X | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
RETURN EQU TSTEOL | |
;****************************** | |
;****************************** | |
PRINT JSR SKIPSP | |
PR01 CMPA #"," | |
BEQ PR05 | |
CMPA #";" | |
BEQ PR07 | |
CMPA #EOL | |
BEQ PR04 | |
CMPA #$22 | |
BNE PR02 | |
LEAX 1,X | |
BSR PRNTQS | |
BRA PR03 | |
PR02 JSR EXPR | |
PSHS X | |
BSR PRNTN | |
PULS X | |
PR03 JSR SKIPSP | |
CMPA #"," | |
BEQ PR05 | |
CMPA #";" | |
BEQ PR07 | |
CMPA #EOL | |
BEQ PR04 | |
JMP ERRORS | |
PR04 PSHS X | |
JSR CRLF | |
PULS X | |
BRA PR08 | |
PR05 LDB #$7 | |
PR06 LDA #SPACE | |
JSR PUTCHR | |
BITB ZONE | |
BNE PR06 | |
PR07 LEAX 1,X | |
JSR SKIPSP | |
CMPA #EOL | |
BNE PR01 | |
PR08 LEAX 1,X | |
JMP ENDS02 | |
;* | |
;* | |
PRQ01 JSR PUTCHR | |
PRNTQS LDA ,X+ | |
CMPA #EOL | |
BNE PRQ03 | |
JMP ERRORS | |
PRQ03 CMPA #$22 | |
BNE PRQ01 | |
RTS | |
;* | |
PRNTN TSTA | |
BPL PRN03 | |
NEGA | |
NEGB | |
SBCA #0 | |
PSHS A | |
LDA #"-" | |
JSR PUTCHR | |
PULS A | |
PRN03 LDX #PRNPT-2 | |
PRN05 LEAX 2,X | |
CMPD 0,X | |
BCC PRN07 | |
CMPX #PRNPTO | |
BNE PRN05 | |
PRN07 CLR CHAR | |
PRN09 CMPD 0,X | |
BCS PRN11 | |
SUBD 0,X | |
INC CHAR | |
BRA PRN09 | |
PRN11 PSHS A | |
LDA #"0" | |
ADDA CHAR | |
JSR PUTCHR | |
PULS A | |
CMPX #PRNPTO | |
BEQ PRN13 | |
LEAX 2,X | |
BRA PRN07 | |
PRN13 RTS | |
PRNPT FDB 10000 | |
FDB 1000 | |
FDB 100 | |
FDB 10 | |
PRNPTO FDB 1 | |
;* | |
PRNT4 LDX #PRNPT+2 | |
BRA PRN07 | |
;****************************** | |
;****************************** | |
INPUT JSR TSTVAR | |
BCS IN11 | |
PSHS D | |
STX CURSOR | |
IN03 LDA #"?" | |
JSR PUTCHR | |
JSR GETLIN | |
IN05 JSR SKIPSP | |
CMPA #EOL | |
BEQ IN03 | |
JSR TSTSNB | |
BCC IN07 | |
LDX #RMESS | |
JSR PUTSTR | |
JSR CRLF | |
BRA IN03 | |
IN07 STX SCRTCH | |
PULS X | |
STD 0,X | |
LDX CURSOR | |
JSR SKIPSP | |
CMPA #"," | |
BEQ IN09 | |
JMP ENDSMT | |
IN09 LEAX 1,X | |
JSR TSTVAR | |
BCC IN13 | |
IN11 JMP ERRORS | |
IN13 PSHS D | |
PSHS X | |
LDX SCRTCH | |
JSR SKIPSP | |
CMPA #"," | |
BNE IN05 | |
LEAX 1,X | |
BRA IN05 | |
RMESS DB "RE-ENTER" | |
FCB EOL | |
;****************************** | |
;****************************** | |
RUN LDX STKTOP | |
LDA #52 | |
RUN01 CLR ,X+ | |
DECA | |
BNE RUN01 | |
LDX USRBAS | |
JMP REM05 | |
;****************************** | |
;****************************** | |
LIST JSR TSTNBR | |
BCC LIST03 | |
CLRA | |
CLRB | |
STD CURSOR | |
LDA #$7F | |
BRA LIST07 | |
LIST03 STD CURSOR | |
JSR SKIPSP | |
CMPA #"," | |
BEQ LIST05 | |
LDA CURSOR | |
BRA LIST07 | |
LIST05 LEAX 1,X | |
JSR TSTNBR | |
BCC LIST07 | |
JMP ERRORS | |
LIST07 JSR TSTEOL | |
PSHS D | |
LDD CURSOR | |
STX CURSOR | |
JSR FLINE | |
LIST09 CMPX USRTOP | |
BEQ LIST10 | |
PULS D | |
CMPD 0,X | |
BCS LIST11 | |
PSHS D | |
LDD ,X++ | |
PSHS X | |
JSR PRNT4 | |
PULS X | |
LDA #SPACE | |
JSR PUTCHR | |
JSR PUTSTR | |
LEAX 1,X | |
PSHS X | |
JSR CRLF | |
PULS X | |
JSR TSTBRK | |
BRA LIST09 | |
LIST10 LEAS 2,S | |
LDA #ETX | |
JSR PUTCHR | |
LIST11 LDX CURSOR | |
JMP ENDS02 | |
;****************************** | |
;****************************** | |
VERBT DB "LET" | |
FCB EOL | |
FDB LET | |
DB "IF" | |
FCB EOL | |
FDB IF | |
DB "GOTO" | |
FCB EOL | |
FDB GOTO | |
DB "GOSUB" | |
FCB EOL | |
FDB GOSUB | |
DB "RETURN" | |
FCB EOL | |
FDB RETURN | |
DB "POKE" | |
FCB EOL | |
FDB POKE | |
DB "PRINT" | |
FCB EOL | |
FDB PRINT | |
DB "INPUT" | |
FCB EOL | |
FDB INPUT | |
DB "REM" | |
FCB EOL | |
FDB REM | |
DB "STOP" | |
FCB EOL | |
FDB END | |
DB "END" | |
FCB EOL | |
FDB END | |
DB "RUN" | |
FCB EOL | |
FDB RUN | |
DB "LIST" | |
FCB EOL | |
FDB LIST | |
DB "NEW" | |
FCB EOL | |
FDB CLEAR | |
DB "?" | |
FCB EOL | |
FDB PRINT | |
FCB EOL | |
;****************************** | |
;****************************** | |
TSTBRK bsr BRKEEE | |
beq GETC05 | |
GETCHR bsr INEEE | |
CMPA #ETX | |
BNE GETC05 | |
JMP BREAK | |
GETC05 RTS | |
PUTCHR INC ZONE | |
JMP OUTEEE | |
;****************************** | |
;****************************** | |
INEEE BSR BRKEEE | |
BEQ INEEE | |
LDA RECEV | |
ANDA #$7F | |
RTS | |
OUTEEE PSHS A | |
OUT01 LDA TRCS | |
BITA #TDRE | |
BEQ OUT01 | |
PULS A | |
STA TRANS | |
RTS | |
BRKEEE PSHS A | |
BRK03 LDA TRCS | |
BITA #ORFE | |
BEQ BRK05 | |
LDA RECEV | |
BRA BRK03 | |
BRK05 BITA #RDRF | |
PULS A | |
RTS | |
;* | |
LDA #CNTL1 | |
STA RMCR | |
LDA #CNTL2 | |
STA TRCS | |
INTEEE EQU $ | |
RTS | |
;****************************** | |
;****************************** | |
.endblock | |
{} |
:100000000E144D4F443942415349430010DE06BDA2 | |
:1000100007E3201310CE21CC10DF06BD07E3CC028E | |
:1000200049DD00DD02DD04BD013E8E0082BD0137E9 | |
:1000300010DE060F13BD013E9E009F088E00009F3C | |
:100040000C0D132605863ABD07A8BD018EBD02E83A | |
:10005000240E292BBD0259810427E1BD020B20D0BB | |
:1000600034109E029C04351027037E015EC30000FD | |
:10007000270D340683270F350622048D1020BD7E00 | |
:10008000015554494E592056312E3337043406BD9C | |
:1000900002599F0EA6609E089C02270510A300240B | |
:1000A000029E00BD03C29F0825229F0A3002A6803F | |
:1000B000810426FA9C02270EA6809F109E0AA78024 | |
:1000C0009F0A9E1020EE9E0A9F029F049E0EC6FF6E | |
:1000D0005CA680810426F95D2603326239301FCB8D | |
:1000E00004301F5AA600812027F78604A7014F9EDF | |
:1000F000029F10D302DD02DD04BD036024079F02CE | |
:100100009F047E014D9E029F0A9E109C08270AA60E | |
:10011000829F109E0AA78220EE35069E08ED819FE1 | |
:10012000109E0EA6809F0E9E10A7809F1081042611 | |
:10013000F039BD07A83001A600810426F5398E01EB | |
:10014000468DF40F12390D0A7F000000048D2453F0 | |
:100150004F525259048D1C57484154203F048D136F | |
:10016000484F57203F048D0B425245414B04535496 | |
:100170004F50048DC98607BD07A8DC0CBD065C8600 | |
:1001800020BD07A835108DAF8DB40E308DB08E0216 | |
:1001900000BD079E81202514817F27F58C0248260B | |
:1001A0000486072002A780BD07A820E58108272430 | |
:1001B000811827D8810A2731810D26D50D132705EF | |
:1001C000BD07A820073410BD013E35108604A700E6 | |
:1001D0008E0200398C020027B8301F8608BD07A8A0 | |
:1001E0008620BD07A8860820BE1A01061320B83055 | |
:1001F000018D66810426F8BD052F960C9A0D2714F3 | |
:100200009C0226037E015EEC81DD0CBD079A8D0801 | |
:1002100025033406397E05408D3F9F088E0735A69D | |
:1002200080810426059E081A01399F109E089F0EA2 | |
:100230009E0EA100261530019F0E9E10A6809F10D5 | |
:10024000810426ECEC009E0E1CFE399E10A68081D7 | |
:100250000426FA300220C83001A600812027F83990 | |
:100260008D1A2422814125118146220D80371CFEE2 | |
:100270003981412504815A230D1A0139813025F92C | |
:10028000813922F580301CFE398DCE8DE425121F78 | |
:1002900089A6018DDC24E23001C041584FD3061CF1 | |
:1002A000FE39BD050E3406BD0259812C270981296E | |
:1002B0001A0127157E01553001BD04413402BD02EB | |
:1002C000598129350226ED1CFE30019F08ADF19EB3 | |
:1002D000081CFE39BD0259812D260D30018D0925DE | |
:1002E00006405082001CFC39BD0259BD027C242FFF | |
:1002F00081241A01266030016FE26FE2A600BD0280 | |
:1003000060254F300134103402EC6385F0264A58E2 | |
:1003100049584958495849EBE0ED62351020DD3025 | |
:100320000134026FE2A600BD027C252630013410A4 | |
:100330003402EC63584929215849291DE3632919DE | |
:1003400058492915EB608900290FED63326135109A | |
:1003500020D335061CFE1CFD39AE6132651A033907 | |
:1003600010DF0ADC0A830030930439BD04FB340635 | |
:100370003410E672351032624F39BD04FB3406BDCD | |
:100380000259813D27037E01553001BD0441BD0561 | |
:100390002F3410E772351032627E01FABD02599F88 | |
:1003A000088E03ACBD021F25023406395553520492 | |
:1003B00002A25045454B04036B4D454D04036004B8 | |
:1003C0009E009C0226031A033910A30026031CFC7E | |
:1003D0003924051A011CFD3934028604300130012C | |
:1003E000A10026FA3502300120D88D5534065FBDB4 | |
:1003F0000259813D2723813C261030015CBD025902 | |
:10040000813E26113001CB042013813E265F30014E | |
:10041000CB04BD0259813D26043001CB0234048D4A | |
:10042000203410A3631FA8441F8948483404ABE05C | |
:10043000840626014C5FA4622701534F35103263B6 | |
:10044000396FE26FE2BD0259812D2717812B2602F9 | |
:1004500030018D1CE360ED60BD0259812B27F181D5 | |
:100460002D260A30018D094050820020E7350639DB | |
:10047000BD04E33406BD0259812A2748812F270392 | |
:1004800035063930018D5C341030623406A800BD69 | |
:1004900005223060BD05223402861134024F5FA36D | |
:1004A000622406E3621CFE20021A0169676966592C | |
:1004B000496A6026EAA66132644D2A0430628D667C | |
:1004C000351020B130018D1B3404E6623DA661E792 | |
:1004D00061E6603DA662E76235043DAB60AB61ED6D | |
:1004E000602092BD0289250934101F01EC003510EF | |
:1004F00039BD02E824FABD039C24F58D113402BDF8 | |
:1005000002598129350226033001397E0155BD0388 | |
:100510006024037E014DBD0259812826EE30017E04 | |
:1005200004416D002A086000600124026A00393429 | |
:1005300002BD0259810427037E015530013502397D | |
:10054000BD028924037E01553406BD0259813D2731 | |
:10055000037E01553001BD04418DD49F083510ED57 | |
:10056000009E087E01FABD03EA5D27037E020B7E32 | |
:1005700001F1BD04418DB8BD03C0250F7E0207BD4A | |
:1005800004418DAB9F08BD03C024037E015EBD0303 | |
:100590006024037E014DDC083406DC0C3406BD0209 | |
:1005A000073506DD0C35107E01FABD0259812C2776 | |
:1005B00036813B273D810427258122260630018D87 | |
:1005C000422009BD044134108D473510BD025981C8 | |
:1005D0002C2714813B271B810427037E01553410EF | |
:1005E000BD013E35102014C6078620BD07A8D512D0 | |
:1005F00026F73001BD0259810426B230017E01FA8E | |
:10060000BD07A8A680810426037E0155812226F01D | |
:10061000394D2A0D405082003402862DBD07A83581 | |
:10062000028E0650300210A30024058C065A26F4D0 | |
:100630000F1010A3002506A3000C1020F53402862D | |
:10064000309B10BD07A835028C065A2704300220C3 | |
:10065000DF39271003E80064000A00018E065420E9 | |
:10066000CFBD0289253C34069F08863FBD07A8BD43 | |
:10067000018EBD0259810427F1BD02D4240B8E06E0 | |
:10068000B6BD0137BD013E20E19F0E3510ED009E45 | |
:1006900008BD0259812C27037E01F73001BD028974 | |
:1006A00024037E0155340634109E0EBD0259812C60 | |
:1006B00026C0300120BC52452D454E544552049E63 | |
:1006C0000686346F804A26FB9E007E0200BD02E84B | |
:1006D00024084F5FDD08867F2017DD08BD025981A1 | |
:1006E0002C27049608200A3001BD02E824037E016D | |
:1006F00055BD052F3406DC089F08BD03C09C0227AA | |
:1007000028350610A30025283406EC813410BD06D8 | |
:100710005C35108620BD07A8BD013730013410BDFF | |
:10072000013E3510BD079A20D432628603BD07A86A | |
:100730009E087E01FA4C455404054049460405666E | |
:10074000474F544F040572474F53554204057F529B | |
:10075000455455524E04052F504F4B4504037A50D3 | |
:1007600052494E540405AA494E505554040661524C | |
:10077000454D0401F153544F500407E4454E4404E1 | |
:1007800007E452554E0406BF4C4953540406CD4E5F | |
:10079000455704001E3F0405AA048D2A27098D0D24 | |
:1007A000810326037E0166390C127E07B78D172759 | |
:1007B000FCB683FF847F393402B683FE850227F9B5 | |
:1007C0003502B783FF393402B683FE85202705B68C | |
:1007D00083FF20F485013502398603B783FE861531 | |
:0407E000B783FE39A4 | |
:00000001FF |
:100000000E144D4F443942415349430010DE06BDA2 | |
:1000100007E5201310CE21CC10DF06BD07E5CC028A | |
:1000200049DD00DD02DD04BD013E8E0082BD0137E9 | |
:1000300010DE060F13BD013E9E009F088E00009F3C | |
:100040000C0D132605863ABD07AABD0190BD02EA34 | |
:10005000240E292BBD025B810427E1BD020D20D0B7 | |
:1000600034109E029C04351027037E015EC30000FD | |
:10007000270D340683270F350622048D1020BD7E00 | |
:10008000015554494E592056312E3337043406BD9C | |
:10009000025B9F0EA6609E089C02270510A3002409 | |
:1000A000029E00BD03C49F0825229F0A3002A6803D | |
:1000B000810426FA9C02270EA6809F109E0AA78024 | |
:1000C0009F0A9E1020EE9E0A9F029F049E0EC6FF6E | |
:1000D0005CA680810426F95D2603326239301FCB8D | |
:1000E00004301F5AA600812027F78604A7014F9EDF | |
:1000F000029F10D302DD02DD04BD036224079F02CC | |
:100100009F047E014D9E029F0A9E109C08270AA60E | |
:10011000829F109E0AA78220EE35069E08ED819FE1 | |
:10012000109E0EA6809F0E9E10A7809F1081042611 | |
:10013000F039BD07AA3001A600810426F5398E01E9 | |
:10014000468DF40F12390D0A7F000000048D2653EE | |
:100150004F525259048D1E57484154203F048D156B | |
:10016000484F57203F048D0D425245414B048D05A9 | |
:1001700053544F50048DC78607BD07AADC0CBD063B | |
:100180005E8620BD07AA35108DAD8DB20E308DAEC6 | |
:100190008E0200BD07A081202514817F27F58C02E7 | |
:1001A00048260486072002A780BD07AA20E581080B | |
:1001B0002724811827D8810A2731810D26D50D13D0 | |
:1001C0002705BD07AA20073410BD013E351086045F | |
:1001D000A7008E0200398C020027B8301F8608BDA8 | |
:1001E00007AA8620BD07AA860820BE1A010613208A | |
:1001F000B830018D66810426F8BD0531960C9A0D44 | |
:1002000027149C0226037E015EEC81DD0CBD079C59 | |
:100210008D0825033406397E05428D3F9F088E07E1 | |
:1002200037A680810426059E081A01399F109E0872 | |
:100230009F0E9E0EA100261530019F0E9E10A680D7 | |
:100240009F10810426ECEC009E0E1CFE399E10A629 | |
:1002500080810426FA300220C83001A600812027C0 | |
:10026000F8398D1A2422814125118146220D8037CB | |
:100270001CFE3981412504815A230D1A0139813030 | |
:1002800025F9813922F580301CFE398DCE8DE4258B | |
:10029000121F89A6018DDC24E23001C041584FD3E2 | |
:1002A000061CFE39BD05103406BD025B812C2709F2 | |
:1002B00081291A0127157E01553001BD04433402FE | |
:1002C000BD025B8129350226ED1CFE30019F08AD81 | |
:1002D000F19E081CFE39BD025B812D260D30018D7B | |
:1002E000092506405082001CFC39BD025BBD027E20 | |
:1002F000242F81241A01266030016FE26FE2A600EC | |
:10030000BD0262254F300134103402EC6385F026C3 | |
:100310004A5849584958495849EBE0ED6235102090 | |
:10032000DD300134026FE2A600BD027E25263001D9 | |
:1003300034103402EC63584929215849291DE363DC | |
:10034000291958492915EB608900290FED6332619D | |
:10035000351020D335061CFE1CFD39AE6132651AFE | |
:10036000033910DF0ADC0A830030930439BD04FD31 | |
:1003700034063410E672351032624F39BD04FD3454 | |
:1003800006BD025B813D27037E01553001BD04435C | |
:10039000BD05313410E772351032627E01FCBD02BA | |
:1003A0005B9F088E03AEBD022125023406395553EA | |
:1003B000520402A45045454B04036D4D454D0403C2 | |
:1003C00062049E009C0226031A033910A300260330 | |
:1003D0001CFC3924051A011CFD3934028604300145 | |
:1003E0003001A10026FA3502300120D88D5534069F | |
:1003F0005FBD025B813D2723813C261030015CBD3F | |
:10040000025B813E26113001CB042013813E265F22 | |
:100410003001CB04BD025B813D26043001CB0234A8 | |
:10042000048D203410A3631FA8441F894848340456 | |
:10043000ABE0840626014C5FA4622701534F3510C0 | |
:100440003263396FE26FE2BD025B812D2717812B8A | |
:10045000260230018D1CE360ED60BD025B812B271D | |
:10046000F1812D260A30018D094050820020E735A8 | |
:100470000639BD04E53406BD025B812A2748812F79 | |
:10048000270335063930018D5C341030623406A8FC | |
:1004900000BD05243060BD05243402861134024FAE | |
:1004A0005FA3622406E3621CFE20021A01696769E9 | |
:1004B0006659496A6026EAA66132644D2A043062B0 | |
:1004C0008D66351020B130018D1B3404E6623DA6E7 | |
:1004D00061E761E6603DA662E76235043DAB60AB73 | |
:1004E00061ED602092BD028B250934101F01EC00E4 | |
:1004F000351039BD02EA24FABD039E24F58D11346E | |
:1005000002BD025B8129350226033001397E015587 | |
:10051000BD036224037E014DBD025B812826EE30BF | |
:10052000017E04436D002A086000600124026A0015 | |
:10053000393402BD025B810427037E015530013549 | |
:100540000239BD028B24037E01553406BD025B8156 | |
:100550003D27037E01553001BD04438DD49F0835EE | |
:1005600010ED009E087E01FCBD03EC5D27037E02BA | |
:100570000D7E01F3BD04438DB8BD03C2250F7E027D | |
:1005800009BD04438DAB9F08BD03C224037E015EF9 | |
:10059000BD036224037E014DDC083406DC0C340606 | |
:1005A000BD02093506DD0C35107E01FCBD025B8104 | |
:1005B0002C2736813B273D810427258122260630C2 | |
:1005C000018D422009BD044334108D473510BD0212 | |
:1005D0005B812C2714813B271B810427037E015557 | |
:1005E0003410BD013E35102014C6078620BD07AA71 | |
:1005F000D51226F73001BD025B810426B230017EA0 | |
:1006000001FCBD07AAA680810426037E0155812234 | |
:1006100026F0394D2A0D405082003402862DBD0748 | |
:10062000AA35028E0652300210A30024058C065C07 | |
:1006300026F40F1010A3002506A3000C1020F5349B | |
:100640000286309B10BD07AA35028C065C27043059 | |
:100650000220DF39271003E80064000A00018E063B | |
:100660005620CFBD028B253C34069F08863FBD0730 | |
:10067000AABD0190BD025B810427F1BD02D6240B07 | |
:100680008E06B8BD0137BD013E20E19F0E3510ED4D | |
:10069000009E08BD025B812C27037E01F93001BD5D | |
:1006A000028B24037E0155340634109E0EBD025B7E | |
:1006B000812C26C0300120BC52452D454E54455258 | |
:1006C000049E0686346F804A26FB9E007E0202BD91 | |
:1006D00002EA24084F5FDD08867F2017DD08BD028F | |
:1006E0005B812C27049608200A3001BD02EA24030E | |
:1006F0007E0155BD05313406DC089F08BD03C29C50 | |
:10070000022728350610A30025283406EC81341072 | |
:10071000BD065E35108620BD07AABD013730013405 | |
:1007200010BD013E3510BD079C20D432628603BD4A | |
:1007300007AA9E087E01FC4C455404054249460424 | |
:100740000568474F544F040574474F5355420405FD | |
:100750008152455455524E040531504F4B450403C8 | |
:100760007C5052494E540405AC494E505554040631 | |
:100770006352454D0401F353544F5004016E454EEE | |
:100780004404016E52554E0406C14C4953540406AC | |
:10079000CF4E455704001E3F0405AC048D2A27099F | |
:1007A0008D0D810326037E0166390C127E07B98DFB | |
:1007B0001727FCB683FF847F393402B683FE850297 | |
:1007C00027F93502B783FF393402B683FE85202727 | |
:1007D00005B683FF20F485013502398603B783FE11 | |
:0607E0008615B783FE3907 | |
:00000001FF |
0000 ;NAM TB01V137 | |
0000 ;* WRITTEN 20-OCT-77 BY JOHN BYRNS | |
0000 ;* REVISED 30-DEC-77 | |
0000 ;* REVISED 18-JAN-78 | |
0000 ;* REVISED 10-APR-78 | |
0000 ;* REVISED 08-MAY-79 TO ELIMINATE USE OF SP | |
0000 ;* REVISED 24-JAN-80 TO USE 6801 ON CHIP RAM | |
0000 ;* REVISED 26-JAN-80 FOR NEW 6801 INSTRUCTIONS | |
0000 ;* REVISED 24-JUL-81 FOR WHISTON BOARD | |
0000 ;* REVISED 24-SEP-81 INCLUDE USER FUNCTION | |
0000 ;* REVISED 08-APR-82 MAKE STANDALONE INCLUDE HEX CONSTANTS AND MEM FUNCTION | |
0000 ;* REVISED 21-NOV-84 FOR 6809 | |
0000 ;* REVISED FEB 94 ADAPTED TO SIMULATOR AND BUGFIXES BY L.C. BENSCHOP. | |
0000 ;* | |
0000 .ENGINE kilo | |
0000 EOL: EQU $04 | |
0000 ETX: EQU $03 | |
0000 SPACE: EQU $20 | |
0000 CR: EQU $0D | |
0000 LF: EQU $0A | |
0000 BS: EQU $08 | |
0000 CAN: EQU $18 | |
0000 BELL: EQU $07 | |
0000 FILL: EQU $00 | |
0000 DEL: EQU $7F | |
0000 BSIZE: EQU 73 | |
0000 STKCUS: EQU 48 | |
0000 ;* | |
0000 BACIA: = $83FE | |
0000 RMCR: EQU bACIA | |
0000 TRCS: EQU bACIA | |
0000 RECEV: EQU bACIA+1 | |
0000 TRANS: EQU bACIA+1 | |
0000 CNTL1: EQU $03 | |
0000 CNTL2: EQU $15 | |
0000 RDRF: EQU $01 | |
0000 ORFE: EQU $20 | |
0000 TDRE: EQU $02 | |
0000 ;* EDIT THE FOLLOWING EQUATES TO REFLECT THE | |
0000 ;* DESIRED ROM AND RAM LAYOUT | |
0000 LORAM: EQU $0080 ;ADDRESS OF DIRECT PAGE SCRATCH RAM | |
0000 BUFFER: EQU $0200 ;ADDRESS OF MAIN RAM | |
0000 RAMSIZ: EQU $2000 ;SIZE OF MAIN RAM | |
0000 ROMADR: EQU $f000 ;ADDRESS OF TINY BASIC ROM | |
0000 ;* | |
0000 RAMBEG: EQU BUFFER+BSIZE | |
0000 RAMEND: EQU BUFFER+RAMSIZ | |
0000 ;* | |
0000 RAMPAT: EQU $AA0F | |
0000 ROMPAT: EQU $F055 | |
0000 ;* | |
0000 ; ORG LORAM | |
0000 .BSSEG | |
0000 USRBAS: RMB 2 | |
0002 USRTOP: RMB 2 | |
0004 STKLIM: RMB 2 | |
0006 STKTOP: RMB 2 | |
0008 CURSOR: RMB 2 | |
000A SAVESP: RMB 2 | |
000C LINENB: RMB 2 | |
000E SCRTCH: RMB 2 | |
0010 CHAR: RMB 2 | |
0012 ZONE: RMB 1 | |
0013 MODE: RMB 1 | |
0014 RESRVD: RMB 1 | |
0015 LOEND: EQU $ | |
0015 ;* | |
0000 .CSEG | |
0000 ; ORG ROMADR | |
0000 ALIGN 256 | |
0000 .ENT $ | |
0000 0E 14 BASIC: JMP SETUP | |
0002 4D 4F 44 39 42 41 53 49 43 00 .CSTR "MOD9BASIC" | |
000C 10 DE 06 WARMS: LDS STKTOP | |
000F BD 07 E3 JSR INTEEE | |
0012 20 13 BRA WMS05 | |
0014 10 CE 21 CC SETUP: LDS #RAMEND-52 | |
0018 10 DF 06 SET03: STS STKTOP | |
001B BD 07 E3 JSR INTEEE | |
001E CC 02 49 CLEAR: LDD #RAMBEG | |
0021 DD 00 STD USRBAS | |
0023 DD 02 STD USRTOP | |
0025 DD 04 CLR02: STD STKLIM | |
0027 BD 01 3E WMS05: JSR CRLF | |
002A 8E 00 82 LDX #VSTR | |
002D BD 01 37 JSR PUTSTR | |
0030 10 DE 06 CMDB: LDS STKTOP | |
0033 0F 13 CLR MODE | |
0035 BD 01 3E JSR CRLF | |
0038 9E 00 LDX USRBAS | |
003A 9F 08 STX CURSOR | |
003C 8E 00 00 CMDE: LDX #0000 | |
003F 9F 0C STX LINENB | |
0041 0D 13 TST MODE | |
0043 26 05 BNE CMD01 | |
0045 86 3A LDA #":" | |
0047 BD 07 A8 JSR PUTCHR | |
004A BD 01 8E CMD01: JSR GETLIN | |
004D BD 02 E8 JSR TSTNBR | |
0050 24 0E BCC CMD02 | |
0052 29 2B BVS CMD05 | |
0054 BD 02 59 JSR SKIPSP | |
0057 81 04 CMPA #EOL | |
0059 27 E1 BEQ CMDE | |
005B BD 02 0B JSR MSLINE | |
005E 20 D0 BRA CMDB | |
0060 34 10 CMD02: PSHS X | |
0062 9E 02 LDX USRTOP | |
0064 9C 04 CMPX STKLIM | |
0066 35 10 PULS X | |
0068 27 03 BEQ CMD03 | |
006A 7E 01 5E JMP ERRORR | |
006D C3 00 00 CMD03: ADDD #0 | |
0070 27 0D BEQ CMD05 | |
0072 34 06 CMD04: PSHS D | |
0074 83 27 0F SUBD #9999 | |
0077 35 06 PULS D | |
0079 22 04 BHI CMD05 | |
007B 8D 10 BSR EDITOR | |
007D 20 BD BRA CMDE | |
007F 7E 01 55 CMD05: JMP ERRORS | |
0082 54 49 4E 59 20 56 31 2E 33 37 VSTR: DB "TINY V1.37" | |
008C 04 FCB EOL | |
008D ;****************************** | |
008D ;****************************** | |
008D 34 06 EDITOR: PSHS D | |
008F BD 02 59 JSR SKIPSP | |
0092 9F 0E STX SCRTCH | |
0094 A6 60 LDA 0,S | |
0096 9E 08 LDX CURSOR | |
0098 9C 02 CMPX USRTOP | |
009A 27 05 BEQ ED00 | |
009C 10 A3 00 CMPD 0,X | |
009F 24 02 BCC ED01 | |
00A1 9E 00 ED00: LDX USRBAS | |
00A3 BD 03 C2 ED01: JSR FNDLIN | |
00A6 9F 08 STX CURSOR | |
00A8 25 22 BCS ED04 | |
00AA 9F 0A STX SAVESP | |
00AC 30 02 LEAX 2,X | |
00AE A6 80 ED02: LDA ,X+ | |
00B0 81 04 CMPA #EOL | |
00B2 26 FA BNE ED02 | |
00B4 9C 02 ED03: CMPX USRTOP | |
00B6 27 0E BEQ ED35 | |
00B8 A6 80 LDA ,X+ | |
00BA 9F 10 STX CHAR | |
00BC 9E 0A LDX SAVESP | |
00BE A7 80 STA ,X+ | |
00C0 9F 0A STX SAVESP | |
00C2 9E 10 LDX CHAR | |
00C4 20 EE BRA ED03 | |
00C6 9E 0A ED35: LDX SAVESP | |
00C8 9F 02 STX USRTOP | |
00CA 9F 04 STX STKLIM | |
00CC 9E 0E ED04: LDX SCRTCH | |
00CE C6 FF LDB #-1 | |
00D0 5C ED05: INCB | |
00D1 A6 80 LDA ,X+ | |
00D3 81 04 CMPA #EOL | |
00D5 26 F9 BNE ED05 | |
00D7 5D TSTB | |
00D8 26 03 BNE ED55 | |
00DA 32 62 LEAS 2,S | |
00DC 39 RTS | |
00DD 30 1F ED55: LEAX -1,X | |
00DF CB 04 ADDB #4 | |
00E1 30 1F ED06: LEAX -1,X | |
00E3 5A DECB | |
00E4 A6 00 LDA 0,X | |
00E6 81 20 CMPA #SPACE | |
00E8 27 F7 BEQ ED06 | |
00EA 86 04 LDA #EOL | |
00EC A7 01 STA 1,X | |
00EE 4F CLRA | |
00EF 9E 02 LDX USRTOP | |
00F1 9F 10 STX CHAR | |
00F3 D3 02 ADDD USRTOP | |
00F5 DD 02 STD USRTOP | |
00F7 DD 04 STD STKLIM | |
00F9 BD 03 60 JSR TSTSTK | |
00FC 24 07 BCC ED07 | |
00FE 9F 02 STX USRTOP | |
0100 9F 04 STX STKLIM | |
0102 7E 01 4D JMP ERRORF | |
0105 9E 02 ED07: LDX USRTOP | |
0107 9F 0A ED08: STX SAVESP | |
0109 9E 10 LDX CHAR | |
010B 9C 08 CMPX CURSOR | |
010D 27 0A BEQ ED09 | |
010F A6 82 LDA ,-X | |
0111 9F 10 STX CHAR | |
0113 9E 0A LDX SAVESP | |
0115 A7 82 STA ,-X | |
0117 20 EE BRA ED08 | |
0119 35 06 ED09: PULS D | |
011B 9E 08 LDX CURSOR | |
011D ED 81 STD ,X++ | |
011F 9F 10 STX CHAR | |
0121 9E 0E ED10: LDX SCRTCH | |
0123 A6 80 LDA ,X+ | |
0125 9F 0E STX SCRTCH | |
0127 9E 10 LDX CHAR | |
0129 A7 80 STA ,X+ | |
012B 9F 10 STX CHAR | |
012D 81 04 CMPA #EOL | |
012F 26 F0 BNE ED10 | |
0131 39 RTS | |
0132 ;****************************** | |
0132 ;****************************** | |
0132 BD 07 A8 PUTS01: JSR PUTCHR | |
0135 30 01 LEAX 1,X | |
0137 A6 00 PUTSTR: LDA 0,X | |
0139 81 04 CMPA #EOL | |
013B 26 F5 BNE PUTS01 | |
013D 39 RTS | |
013E ;****************************** | |
013E ;****************************** | |
013E 8E 01 46 CRLF: LDX #CRLFST | |
0141 8D F4 BSR PUTSTR | |
0143 0F 12 CLR ZONE | |
0145 39 RTS | |
0146 0D 0A 7F 00 00 00 04 CRLFST: FCB CR,LF,DEL,FILL,FILL,FILL,EOL | |
014D ;****************************** | |
014D ;****************************** | |
014D 8D 24 ERRORF: BSR ER01 | |
014F 53 4F 52 52 59 DB "SORRY" | |
0154 04 FCB EOL | |
0155 8D 1C ERRORS: BSR ER01 | |
0157 57 48 41 54 20 3F DB "WHAT ?" | |
015D 04 FCB EOL | |
015E 8D 13 ERRORR: BSR ER01 | |
0160 48 4F 57 20 3F DB "HOW ?" | |
0165 04 FCB EOL | |
0166 8D 0B BREAK: BSR ER01 | |
0168 42 52 45 41 4B DB "BREAK" | |
016D 04 FCB EOL | |
016E END BSR ER01 | |
016E 53 54 4F 50 DB "STOP" | |
0172 04 FCB EOL | |
0173 8D C9 ER01: BSR CRLF | |
0175 86 07 LDA #BELL | |
0177 BD 07 A8 JSR PUTCHR | |
017A DC 0C LDD LINENB | |
017C BD 06 5C JSR PRNT4 | |
017F 86 20 LDA #SPACE | |
0181 BD 07 A8 JSR PUTCHR | |
0184 35 10 PULS X | |
0186 8D AF BSR PUTSTR | |
0188 8D B4 BSR CRLF | |
018A 0E 30 JMP CMDB | |
018C ;****************************** | |
018C ;****************************** | |
018C 8D B0 GL00: BSR CRLF | |
018E 8E 02 00 GETLIN: LDX #BUFFER | |
0191 BD 07 9E GL03: JSR GETCHR | |
0194 81 20 CMPA #SPACE | |
0196 25 14 BCS GL05 | |
0198 81 7F CMPA #$7F | |
019A 27 F5 BEQ GL03 | |
019C 8C 02 48 CMPX #BUFFER+BSIZE-1 | |
019F 26 04 BNE GL04 | |
01A1 86 07 LDA #BELL | |
01A3 20 02 BRA GL02 | |
01A5 A7 80 GL04: STA ,X+ | |
01A7 BD 07 A8 GL02: JSR PUTCHR | |
01AA 20 E5 BRA GL03 | |
01AC 81 08 GL05: CMPA #BS | |
01AE 27 24 BEQ GL07 | |
01B0 81 18 CMPA #CAN | |
01B2 27 D8 BEQ GL00 | |
01B4 81 0A CMPA #LF | |
01B6 27 31 BEQ GL09 | |
01B8 81 0D CMPA #CR | |
01BA 26 D5 BNE GL03 | |
01BC 0D 13 TST MODE | |
01BE 27 05 BEQ GL06 | |
01C0 BD 07 A8 JSR PUTCHR | |
01C3 20 07 BRA GL08 | |
01C5 34 10 GL06: PSHS X | |
01C7 BD 01 3E JSR CRLF | |
01CA 35 10 PULS X | |
01CC 86 04 GL08: LDA #EOL | |
01CE A7 00 STA 0,X | |
01D0 8E 02 00 LDX #BUFFER | |
01D3 39 RTS | |
01D4 8C 02 00 GL07: CMPX #BUFFER | |
01D7 27 B8 BEQ GL03 | |
01D9 30 1F LEAX -1,X | |
01DB 86 08 LDA #BS | |
01DD BD 07 A8 JSR PUTCHR | |
01E0 86 20 LDA #SPACE | |
01E2 BD 07 A8 JSR PUTCHR | |
01E5 86 08 LDA #BS | |
01E7 20 BE BRA GL02 | |
01E9 1A 01 GL09: ORCC #$01 | |
01EB 06 13 ROR MODE | |
01ED 20 B8 BRA GL02 | |
01EF ;****************************** | |
01EF ;****************************** | |
01EF 30 01 REM00: LEAX 1,X | |
01F1 8D 66 REM: BSR SKIPSP | |
01F3 81 04 CMPA #EOL | |
01F5 26 F8 BNE REM00 | |
01F7 BD 05 2F ENDSMT: JSR TSTEOL | |
01FA 96 0C ENDS02: LDA LINENB | |
01FC 9A 0D ORA LINENB+1 | |
01FE 27 14 BEQ REM09 | |
0200 9C 02 REM05: CMPX USRTOP | |
0202 26 03 BNE NXTLIN | |
0204 7E 01 5E JMP ERRORR | |
0207 EC 81 NXTLIN: LDD ,X++ | |
0209 DD 0C STD LINENB | |
020B BD 07 9A MSLINE: JSR TSTBRK | |
020E 8D 08 BSR IFAN | |
0210 25 03 BCS IMPLET | |
0212 34 06 PSHS D | |
0214 39 REM09: RTS | |
0215 7E 05 40 IMPLET: JMP LET | |
0218 ;****************************** | |
0218 ;****************************** | |
0218 8D 3F IFAN: BSR SKIPSP | |
021A 9F 08 STX CURSOR | |
021C 8E 07 35 LDX #VERBT | |
021F A6 80 FAN00: LDA ,X+ | |
0221 81 04 CMPA #EOL | |
0223 26 05 BNE FAN04 | |
0225 9E 08 LDX CURSOR | |
0227 1A 01 ORCC #$01 | |
0229 39 RTS | |
022A 9F 10 FAN04: STX CHAR | |
022C 9E 08 LDX CURSOR | |
022E 9F 0E STX SCRTCH | |
0230 9E 0E FAN05: LDX SCRTCH | |
0232 A1 00 CMPA 0,X | |
0234 26 15 BNE FAN07 | |
0236 30 01 LEAX 1,X | |
0238 9F 0E STX SCRTCH | |
023A 9E 10 LDX CHAR | |
023C A6 80 LDA ,X+ | |
023E 9F 10 STX CHAR | |
0240 81 04 CMPA #EOL | |
0242 26 EC BNE FAN05 | |
0244 EC 00 LDD 0,X | |
0246 9E 0E LDX SCRTCH | |
0248 1C FE ANDCC #$FE | |
024A 39 RTS | |
024B 9E 10 FAN07: LDX CHAR | |
024D A6 80 FAN08: LDA ,X+ | |
024F 81 04 CMPA #EOL | |
0251 26 FA BNE FAN08 | |
0253 30 02 LEAX 2,X | |
0255 20 C8 BRA FAN00 | |
0257 ;****************************** | |
0257 ;****************************** | |
0257 30 01 NXTNSP: LEAX 1,X | |
0259 A6 00 SKIPSP: LDA 0,X | |
025B 81 20 CMPA #SPACE | |
025D 27 F8 BEQ NXTNSP | |
025F 39 RTS | |
0260 ;****************************** | |
0260 ;****************************** | |
0260 8D 1A TSTHEX: BSR TSTDIG | |
0262 24 22 BCC TST05 | |
0264 81 41 CMPA #"A" | |
0266 25 11 BCS TST03 | |
0268 81 46 CMPA #"F" | |
026A 22 0D BHI TST03 | |
026C 80 37 SUBA #"A"-10 | |
026E 1C FE ANDCC #$FE | |
0270 39 RTS | |
0271 ;****************************** | |
0271 ;****************************** | |
0271 81 41 TSTLTR: CMPA #"A" | |
0273 25 04 BCS TST03 | |
0275 81 5A CMPA #"Z" | |
0277 23 0D BLS TST05 | |
0279 1A 01 TST03: ORCC #$01 | |
027B 39 RTS | |
027C ;****************************** | |
027C ;****************************** | |
027C 81 30 TSTDIG: CMPA #"0" | |
027E 25 F9 BCS TST03 | |
0280 81 39 CMPA #"9" | |
0282 22 F5 BHI TST03 | |
0284 80 30 SUBA #"0" | |
0286 1C FE TST05: ANDCC #$FE | |
0288 39 RTS | |
0289 ;****************************** | |
0289 ;****************************** | |
0289 8D CE TSTVAR: BSR SKIPSP | |
028B 8D E4 BSR TSTLTR | |
028D 25 12 BCS TSTV03 | |
028F 1F 89 TFR A,B | |
0291 A6 01 LDA 1,X | |
0293 8D DC BSR TSTLTR | |
0295 24 E2 BCC TST03 | |
0297 30 01 LEAX 1,X | |
0299 C0 41 SUBB #"A" | |
029B 58 ASLB | |
029C 4F CLRA | |
029D D3 06 ADDD STKTOP | |
029F 1C FE TSTV02: ANDCC #$FE | |
02A1 39 TSTV03: RTS | |
02A2 ;****************************** | |
02A2 ;****************************** | |
02A2 BD 05 0E USER: JSR ARGONE | |
02A5 34 06 PSHS D | |
02A7 BD 02 59 JSR SKIPSP | |
02AA 81 2C CMPA #"," | |
02AC 27 09 BEQ USER03 | |
02AE 81 29 CMPA #")" | |
02B0 1A 01 ORCC #$01 | |
02B2 27 15 BEQ USER05 | |
02B4 7E 01 55 USER02: JMP ERRORS | |
02B7 30 01 USER03: LEAX 1,X | |
02B9 BD 04 41 JSR EXPR | |
02BC 34 02 PSHS A | |
02BE BD 02 59 JSR SKIPSP | |
02C1 81 29 CMPA #")" | |
02C3 35 02 PULS A | |
02C5 26 ED BNE USER02 | |
02C7 1C FE ANDCC #$FE | |
02C9 30 01 USER05: LEAX 1,X | |
02CB 9F 08 STX CURSOR | |
02CD AD F1 JSR [,S++] | |
02CF 9E 08 LDX CURSOR | |
02D1 1C FE ANDCC #$FE | |
02D3 39 RTS | |
02D4 ;****************************** | |
02D4 ;****************************** | |
02D4 BD 02 59 TSTSNB: JSR SKIPSP | |
02D7 81 2D CMPA #"-" | |
02D9 26 0D BNE TSTNBR | |
02DB 30 01 LEAX 1,X | |
02DD 8D 09 BSR TSTNBR | |
02DF 25 06 BCS TSN02 | |
02E1 40 NEGA | |
02E2 50 NEGB | |
02E3 82 00 SBCA #0 | |
02E5 1C FC ANDCC #$FC | |
02E7 39 TSN02: RTS | |
02E8 ;****************************** | |
02E8 ;****************************** | |
02E8 BD 02 59 TSTNBR: JSR SKIPSP | |
02EB BD 02 7C JSR TSTDIG | |
02EE 24 2F BCC TSTN02 | |
02F0 81 24 CMPA #"$" | |
02F2 1A 01 ORCC #$01 | |
02F4 26 60 BNE TSTN09 | |
02F6 30 01 TSTN20: LEAX 1,X | |
02F8 6F E2 CLR ,-S | |
02FA 6F E2 CLR ,-S | |
02FC A6 00 TSTN23: LDA 0,X | |
02FE BD 02 60 JSR TSTHEX | |
0301 25 4F BCS TSTN07 | |
0303 30 01 LEAX 1,X | |
0305 34 10 PSHS X | |
0307 34 02 PSHS A | |
0309 EC 63 LDD 3,S | |
030B 85 F0 BITA #$F0 | |
030D 26 4A BNE TSTN11 | |
030F 58 ASLB | |
0310 49 ROLA | |
0311 58 ASLB | |
0312 49 ROLA | |
0313 58 ASLB | |
0314 49 ROLA | |
0315 58 ASLB | |
0316 49 ROLA | |
0317 EB E0 ADDB ,S+ | |
0319 ED 62 STD 2,S | |
031B 35 10 PULS X | |
031D 20 DD BRA TSTN23 | |
031F 30 01 TSTN02: LEAX 1,X | |
0321 34 02 PSHS A | |
0323 6F E2 CLR ,-S | |
0325 A6 00 TSTN03: LDA 0,X | |
0327 BD 02 7C JSR TSTDIG | |
032A 25 26 BCS TSTN07 | |
032C 30 01 LEAX 1,X | |
032E 34 10 PSHS X | |
0330 34 02 PSHS A | |
0332 EC 63 LDD 3,S | |
0334 58 ASLB | |
0335 49 ROLA | |
0336 29 21 BVS TSTN11 | |
0338 58 ASLB | |
0339 49 ROLA | |
033A 29 1D BVS TSTN11 | |
033C E3 63 ADDD 3,S | |
033E 29 19 BVS TSTN11 | |
0340 58 ASLB | |
0341 49 ROLA | |
0342 29 15 BVS TSTN11 | |
0344 EB 60 ADDB 0,S | |
0346 89 00 ADCA #0 | |
0348 29 0F BVS TSTN11 | |
034A ED 63 STD 3,S | |
034C 32 61 LEAS 1,S | |
034E 35 10 PULS X | |
0350 20 D3 BRA TSTN03 | |
0352 35 06 TSTN07: PULS D | |
0354 1C FE ANDCC #$FE | |
0356 1C FD TSTN09: ANDCC #$FD | |
0358 39 RTS | |
0359 AE 61 TSTN11: LDX 1,S | |
035B 32 65 LEAS 5,S | |
035D 1A 03 ORCC #$03 | |
035F 39 RTS | |
0360 ;****************************** | |
0360 ;****************************** | |
0360 10 DF 0A TSTSTK: STS SAVESP | |
0363 DC 0A LDD SAVESP | |
0365 83 00 30 SUBD #STKCUS | |
0368 93 04 SUBD STKLIM | |
036A 39 RTS | |
036B ;****************************** | |
036B ;****************************** | |
036B BD 04 FB PEEK: JSR PAREXP | |
036E 34 06 PSHS D | |
0370 34 10 PSHS X | |
0372 E6 72 LDB [2,S] | |
0374 35 10 PULS X | |
0376 32 62 LEAS 2,S | |
0378 4F CLRA | |
0379 39 RTS | |
037A ;****************************** | |
037A ;****************************** | |
037A BD 04 FB POKE: JSR PAREXP | |
037D 34 06 PSHS D | |
037F BD 02 59 JSR SKIPSP | |
0382 81 3D CMPA #"=" | |
0384 27 03 BEQ POKE05 | |
0386 7E 01 55 JMP ERRORS | |
0389 30 01 POKE05: LEAX 1,X | |
038B BD 04 41 JSR EXPR | |
038E BD 05 2F JSR TSTEOL | |
0391 34 10 PSHS X | |
0393 E7 72 STB [2,S] | |
0395 35 10 PULS X | |
0397 32 62 LEAS 2,S | |
0399 7E 01 FA JMP ENDS02 | |
039C ;****************************** | |
039C ;****************************** | |
039C BD 02 59 TSTFUN: JSR SKIPSP | |
039F 9F 08 STX CURSOR | |
03A1 8E 03 AC LDX #FUNT | |
03A4 BD 02 1F JSR FAN00 | |
03A7 25 02 BCS TSTF05 | |
03A9 34 06 PSHS D | |
03AB 39 TSTF05: RTS | |
03AC ;****************************** | |
03AC ;****************************** | |
03AC 55 53 52 FUNT: DB "USR" | |
03AF 04 FCB EOL | |
03B0 02 A2 FDB USER | |
03B2 50 45 45 4B DB "PEEK" | |
03B6 04 FCB EOL | |
03B7 03 6B FDB PEEK | |
03B9 4D 45 4D DB "MEM" | |
03BC 04 FCB EOL | |
03BD 03 60 FDB TSTSTK | |
03BF 04 FCB EOL | |
03C0 ;****************************** | |
03C0 ;****************************** | |
03C0 9E 00 FLINE: LDX USRBAS | |
03C2 9C 02 FNDLIN: CMPX USRTOP | |
03C4 26 03 BNE FND03 | |
03C6 1A 03 ORCC #$03 | |
03C8 39 RTS | |
03C9 10 A3 00 FND03: CMPD 0,X | |
03CC 26 03 BNE FND05 | |
03CE 1C FC ANDCC #$FC | |
03D0 39 RTS | |
03D1 24 05 FND05: BCC FND07 | |
03D3 1A 01 ORCC #$01 | |
03D5 1C FD ANDCC #$FD | |
03D7 39 RTS | |
03D8 34 02 FND07: PSHS A | |
03DA 86 04 LDA #EOL | |
03DC 30 01 LEAX 1,X | |
03DE 30 01 FND09: LEAX 1,X | |
03E0 A1 00 CMPA 0,X | |
03E2 26 FA BNE FND09 | |
03E4 35 02 PULS A | |
03E6 30 01 LEAX 1,X | |
03E8 20 D8 BRA FNDLIN | |
03EA ;****************************** | |
03EA ;****************************** | |
03EA 8D 55 RELEXP: BSR EXPR | |
03EC 34 06 PSHS D | |
03EE 5F CLRB | |
03EF BD 02 59 JSR SKIPSP | |
03F2 81 3D CMPA #"=" | |
03F4 27 23 BEQ REL06 | |
03F6 81 3C CMPA #"<" | |
03F8 26 10 BNE REL03 | |
03FA 30 01 LEAX 1,X | |
03FC 5C INCB | |
03FD BD 02 59 JSR SKIPSP | |
0400 81 3E CMPA #">" | |
0402 26 11 BNE REL05 | |
0404 30 01 LEAX 1,X | |
0406 CB 04 ADDB #4 | |
0408 20 13 BRA REL07 | |
040A 81 3E REL03: CMPA #">" | |
040C 26 5F BNE EXPR06 | |
040E 30 01 LEAX 1,X | |
0410 CB 04 ADDB #4 | |
0412 BD 02 59 JSR SKIPSP | |
0415 81 3D REL05: CMPA #"=" | |
0417 26 04 BNE REL07 | |
0419 30 01 REL06: LEAX 1,X | |
041B CB 02 ADDB #2 | |
041D 34 04 REL07: PSHS B | |
041F 8D 20 BSR EXPR | |
0421 34 10 PSHS X | |
0423 A3 63 SUBD 3,S | |
0425 1F A8 TFR CC,A | |
0427 44 LSRA | |
0428 1F 89 TFR A,B | |
042A 48 ASLA | |
042B 48 ASLA | |
042C 34 04 PSHS B | |
042E AB E0 ADDA ,S+ | |
0430 84 06 ANDA #$06 | |
0432 26 01 BNE REL08 | |
0434 4C INCA | |
0435 5F REL08: CLRB | |
0436 A4 62 ANDA 2,S | |
0438 27 01 BEQ REL09 | |
043A 53 COMB | |
043B 4F REL09: CLRA | |
043C 35 10 PULS X | |
043E 32 63 LEAS 3,S | |
0440 39 RTS | |
0441 ;****************************** | |
0441 ;****************************** | |
0441 6F E2 EXPR: CLR ,-S | |
0443 6F E2 CLR ,-S | |
0445 BD 02 59 JSR SKIPSP | |
0448 81 2D CMPA #"-" | |
044A 27 17 BEQ EXPR05 | |
044C 81 2B CMPA #"+" | |
044E 26 02 BNE EXPR03 | |
0450 30 01 EXPR02: LEAX 1,X | |
0452 8D 1C EXPR03: BSR TERM | |
0454 E3 60 EXPR04: ADDD 0,S | |
0456 ED 60 STD 0,S | |
0458 BD 02 59 JSR SKIPSP | |
045B 81 2B CMPA #"+" | |
045D 27 F1 BEQ EXPR02 | |
045F 81 2D CMPA #"-" | |
0461 26 0A BNE EXPR06 | |
0463 30 01 EXPR05: LEAX 1,X | |
0465 8D 09 BSR TERM | |
0467 40 NEGA | |
0468 50 NEGB | |
0469 82 00 SBCA #0 | |
046B 20 E7 BRA EXPR04 | |
046D 35 06 EXPR06: PULS D | |
046F 39 RTS | |
0470 ;****************************** | |
0470 ;****************************** | |
0470 BD 04 E3 TERM: JSR FACT | |
0473 34 06 PSHS D | |
0475 BD 02 59 TERM03: JSR SKIPSP | |
0478 81 2A CMPA #"*" | |
047A 27 48 BEQ TERM07 | |
047C 81 2F CMPA #"/" | |
047E 27 03 BEQ TERM05 | |
0480 35 06 PULS D | |
0482 39 RTS | |
0483 30 01 TERM05: LEAX 1,X | |
0485 8D 5C BSR FACT | |
0487 34 10 PSHS X | |
0489 30 62 LEAX 2,S | |
048B 34 06 PSHS D | |
048D A8 00 EORA 0,X | |
048F BD 05 22 JSR ABSX | |
0492 30 60 LEAX 0,S | |
0494 BD 05 22 JSR ABSX | |
0497 34 02 PSHS A | |
0499 86 11 LDA #17 | |
049B 34 02 PSHS A | |
049D 4F CLRA | |
049E 5F CLRB | |
049F A3 62 DIV05: SUBD 2,S | |
04A1 24 06 BCC DIV07 | |
04A3 E3 62 ADDD 2,S | |
04A5 1C FE ANDCC #$FE | |
04A7 20 02 BRA DIV09 | |
04A9 1A 01 DIV07: ORCC #$01 | |
04AB 69 67 DIV09: ROL 7,S | |
04AD 69 66 ROL 6,S | |
04AF 59 ROLB | |
04B0 49 ROLA | |
04B1 6A 60 DEC 0,S | |
04B3 26 EA BNE DIV05 | |
04B5 A6 61 LDA 1,S | |
04B7 32 64 LEAS 4,S | |
04B9 4D TSTA | |
04BA 2A 04 BPL TERM06 | |
04BC 30 62 LEAX 2,S | |
04BE 8D 66 BSR NEGX | |
04C0 35 10 TERM06: PULS X | |
04C2 20 B1 BRA TERM03 | |
04C4 30 01 TERM07: LEAX 1,X | |
04C6 8D 1B BSR FACT | |
04C8 34 04 MULT: PSHS B | |
04CA E6 62 LDB 2,S | |
04CC 3D MUL | |
04CD A6 61 LDA 1,S | |
04CF E7 61 STB 1,S | |
04D1 E6 60 LDB 0,S | |
04D3 3D MUL | |
04D4 A6 62 LDA 2,S | |
04D6 E7 62 STB 2,S | |
04D8 35 04 PULS B | |
04DA 3D MUL | |
04DB AB 60 ADDA 0,S | |
04DD AB 61 ADDA 1,S | |
04DF ED 60 STD 0,S | |
04E1 20 92 BRA TERM03 | |
04E3 ;****************************** | |
04E3 ;****************************** | |
04E3 BD 02 89 FACT: JSR TSTVAR | |
04E6 25 09 BCS FACT03 | |
04E8 34 10 PSHS X | |
04EA 1F 01 TFR D,X | |
04EC EC 00 LDD 0,X | |
04EE 35 10 PULS X | |
04F0 39 FACT02: RTS | |
04F1 BD 02 E8 FACT03: JSR TSTNBR | |
04F4 24 FA BCC FACT02 | |
04F6 BD 03 9C JSR TSTFUN | |
04F9 24 F5 BCC FACT02 | |
04FB 8D 11 PAREXP: BSR ARGONE | |
04FD 34 02 PSHS A | |
04FF BD 02 59 JSR SKIPSP | |
0502 81 29 CMPA #")" | |
0504 35 02 PULS A | |
0506 26 03 BNE FACT05 | |
0508 30 01 LEAX 1,X | |
050A 39 RTS | |
050B 7E 01 55 FACT05: JMP ERRORS | |
050E ;****************************** | |
050E ;****************************** | |
050E BD 03 60 ARGONE: JSR TSTSTK | |
0511 24 03 BCC FACT04 | |
0513 7E 01 4D JMP ERRORF | |
0516 BD 02 59 FACT04: JSR SKIPSP | |
0519 81 28 CMPA #"(" | |
051B 26 EE BNE FACT05 | |
051D 30 01 LEAX 1,X | |
051F 7E 04 41 JMP EXPR | |
0522 ;****************************** | |
0522 ;****************************** | |
0522 6D 00 ABSX: TST 0,X | |
0524 2A 08 BPL NEG05 | |
0526 60 00 NEGX: NEG 0,X | |
0528 60 01 NEG 1,X | |
052A 24 02 BCC NEG05 | |
052C 6A 00 DEC 0,X | |
052E 39 NEG05: RTS | |
052F ;****************************** | |
052F ;****************************** | |
052F 34 02 TSTEOL: PSHS A | |
0531 BD 02 59 JSR SKIPSP | |
0534 81 04 CMPA #EOL | |
0536 27 03 BEQ TEOL03 | |
0538 7E 01 55 JMP ERRORS | |
053B 30 01 TEOL03: LEAX 1,X | |
053D 35 02 PULS A | |
053F 39 RTS | |
0540 ;****************************** | |
0540 ;****************************** | |
0540 BD 02 89 LET: JSR TSTVAR | |
0543 24 03 BCC LET03 | |
0545 7E 01 55 JMP ERRORS | |
0548 34 06 LET03: PSHS D | |
054A BD 02 59 JSR SKIPSP | |
054D 81 3D CMPA #"=" | |
054F 27 03 BEQ LET05 | |
0551 7E 01 55 JMP ERRORS | |
0554 30 01 LET05: LEAX 1,X | |
0556 BD 04 41 JSR EXPR | |
0559 8D D4 BSR TSTEOL | |
055B 9F 08 STX CURSOR | |
055D 35 10 PULS X | |
055F ED 00 STD 0,X | |
0561 9E 08 LDX CURSOR | |
0563 7E 01 FA JMP ENDS02 | |
0566 ;****************************** | |
0566 ;****************************** | |
0566 BD 03 EA IF: JSR RELEXP | |
0569 5D TSTB | |
056A 27 03 BEQ IF03 | |
056C 7E 02 0B JMP MSLINE | |
056F 7E 01 F1 IF03: JMP REM | |
0572 ;****************************** | |
0572 ;****************************** | |
0572 BD 04 41 GOTO: JSR EXPR | |
0575 8D B8 BSR TSTEOL | |
0577 BD 03 C0 JSR FLINE | |
057A 25 0F BCS GOSB04 | |
057C 7E 02 07 JMP NXTLIN | |
057F ;****************************** | |
057F ;****************************** | |
057F BD 04 41 GOSUB: JSR EXPR | |
0582 8D AB BSR TSTEOL | |
0584 9F 08 STX CURSOR | |
0586 BD 03 C0 JSR FLINE | |
0589 24 03 BCC GOSB03 | |
058B 7E 01 5E GOSB04: JMP ERRORR | |
058E BD 03 60 GOSB03: JSR TSTSTK | |
0591 24 03 BCC GOSB05 | |
0593 7E 01 4D JMP ERRORF | |
0596 DC 08 GOSB05: LDD CURSOR | |
0598 34 06 PSHS D | |
059A DC 0C LDD LINENB | |
059C 34 06 PSHS D | |
059E BD 02 07 JSR NXTLIN | |
05A1 35 06 PULS D | |
05A3 DD 0C STD LINENB | |
05A5 35 10 PULS X | |
05A7 7E 01 FA JMP ENDS02 | |
05AA ;****************************** | |
05AA ;****************************** | |
05AA RETURN: EQU TSTEOL | |
05AA ;****************************** | |
05AA ;****************************** | |
05AA BD 02 59 PRINT: JSR SKIPSP | |
05AD 81 2C PR01: CMPA #"," | |
05AF 27 36 BEQ PR05 | |
05B1 81 3B CMPA #";" | |
05B3 27 3D BEQ PR07 | |
05B5 81 04 CMPA #EOL | |
05B7 27 25 BEQ PR04 | |
05B9 81 22 CMPA #$22 | |
05BB 26 06 BNE PR02 | |
05BD 30 01 LEAX 1,X | |
05BF 8D 42 BSR PRNTQS | |
05C1 20 09 BRA PR03 | |
05C3 BD 04 41 PR02: JSR EXPR | |
05C6 34 10 PSHS X | |
05C8 8D 47 BSR PRNTN | |
05CA 35 10 PULS X | |
05CC BD 02 59 PR03: JSR SKIPSP | |
05CF 81 2C CMPA #"," | |
05D1 27 14 BEQ PR05 | |
05D3 81 3B CMPA #";" | |
05D5 27 1B BEQ PR07 | |
05D7 81 04 CMPA #EOL | |
05D9 27 03 BEQ PR04 | |
05DB 7E 01 55 JMP ERRORS | |
05DE 34 10 PR04: PSHS X | |
05E0 BD 01 3E JSR CRLF | |
05E3 35 10 PULS X | |
05E5 20 14 BRA PR08 | |
05E7 C6 07 PR05: LDB #$7 | |
05E9 86 20 PR06: LDA #SPACE | |
05EB BD 07 A8 JSR PUTCHR | |
05EE D5 12 BITB ZONE | |
05F0 26 F7 BNE PR06 | |
05F2 30 01 PR07: LEAX 1,X | |
05F4 BD 02 59 JSR SKIPSP | |
05F7 81 04 CMPA #EOL | |
05F9 26 B2 BNE PR01 | |
05FB 30 01 PR08: LEAX 1,X | |
05FD 7E 01 FA JMP ENDS02 | |
0600 ;* | |
0600 ;* | |
0600 BD 07 A8 PRQ01: JSR PUTCHR | |
0603 A6 80 PRNTQS: LDA ,X+ | |
0605 81 04 CMPA #EOL | |
0607 26 03 BNE PRQ03 | |
0609 7E 01 55 JMP ERRORS | |
060C 81 22 PRQ03: CMPA #$22 | |
060E 26 F0 BNE PRQ01 | |
0610 39 RTS | |
0611 ;* | |
0611 4D PRNTN: TSTA | |
0612 2A 0D BPL PRN03 | |
0614 40 NEGA | |
0615 50 NEGB | |
0616 82 00 SBCA #0 | |
0618 34 02 PSHS A | |
061A 86 2D LDA #"-" | |
061C BD 07 A8 JSR PUTCHR | |
061F 35 02 PULS A | |
0621 8E 06 50 PRN03: LDX #PRNPT-2 | |
0624 30 02 PRN05: LEAX 2,X | |
0626 10 A3 00 CMPD 0,X | |
0629 24 05 BCC PRN07 | |
062B 8C 06 5A CMPX #PRNPTO | |
062E 26 F4 BNE PRN05 | |
0630 0F 10 PRN07: CLR CHAR | |
0632 10 A3 00 PRN09: CMPD 0,X | |
0635 25 06 BCS PRN11 | |
0637 A3 00 SUBD 0,X | |
0639 0C 10 INC CHAR | |
063B 20 F5 BRA PRN09 | |
063D 34 02 PRN11: PSHS A | |
063F 86 30 LDA #"0" | |
0641 9B 10 ADDA CHAR | |
0643 BD 07 A8 JSR PUTCHR | |
0646 35 02 PULS A | |
0648 8C 06 5A CMPX #PRNPTO | |
064B 27 04 BEQ PRN13 | |
064D 30 02 LEAX 2,X | |
064F 20 DF BRA PRN07 | |
0651 39 PRN13: RTS | |
0652 27 10 PRNPT: FDB 10000 | |
0654 03 E8 FDB 1000 | |
0656 00 64 FDB 100 | |
0658 00 0A FDB 10 | |
065A 00 01 PRNPTO: FDB 1 | |
065C ;* | |
065C 8E 06 54 PRNT4: LDX #PRNPT+2 | |
065F 20 CF BRA PRN07 | |
0661 ;****************************** | |
0661 ;****************************** | |
0661 BD 02 89 INPUT: JSR TSTVAR | |
0664 25 3C BCS IN11 | |
0666 34 06 PSHS D | |
0668 9F 08 STX CURSOR | |
066A 86 3F IN03: LDA #"?" | |
066C BD 07 A8 JSR PUTCHR | |
066F BD 01 8E JSR GETLIN | |
0672 BD 02 59 IN05: JSR SKIPSP | |
0675 81 04 CMPA #EOL | |
0677 27 F1 BEQ IN03 | |
0679 BD 02 D4 JSR TSTSNB | |
067C 24 0B BCC IN07 | |
067E 8E 06 B6 LDX #RMESS | |
0681 BD 01 37 JSR PUTSTR | |
0684 BD 01 3E JSR CRLF | |
0687 20 E1 BRA IN03 | |
0689 9F 0E IN07: STX SCRTCH | |
068B 35 10 PULS X | |
068D ED 00 STD 0,X | |
068F 9E 08 LDX CURSOR | |
0691 BD 02 59 JSR SKIPSP | |
0694 81 2C CMPA #"," | |
0696 27 03 BEQ IN09 | |
0698 7E 01 F7 JMP ENDSMT | |
069B 30 01 IN09: LEAX 1,X | |
069D BD 02 89 JSR TSTVAR | |
06A0 24 03 BCC IN13 | |
06A2 7E 01 55 IN11: JMP ERRORS | |
06A5 34 06 IN13: PSHS D | |
06A7 34 10 PSHS X | |
06A9 9E 0E LDX SCRTCH | |
06AB BD 02 59 JSR SKIPSP | |
06AE 81 2C CMPA #"," | |
06B0 26 C0 BNE IN05 | |
06B2 30 01 LEAX 1,X | |
06B4 20 BC BRA IN05 | |
06B6 52 45 2D 45 4E 54 45 52 RMESS: DB "RE-ENTER" | |
06BE 04 FCB EOL | |
06BF ;****************************** | |
06BF ;****************************** | |
06BF 9E 06 RUN: LDX STKTOP | |
06C1 86 34 LDA #52 | |
06C3 6F 80 RUN01: CLR ,X+ | |
06C5 4A DECA | |
06C6 26 FB BNE RUN01 | |
06C8 9E 00 LDX USRBAS | |
06CA 7E 02 00 JMP REM05 | |
06CD ;****************************** | |
06CD ;****************************** | |
06CD BD 02 E8 LIST: JSR TSTNBR | |
06D0 24 08 BCC LIST03 | |
06D2 4F CLRA | |
06D3 5F CLRB | |
06D4 DD 08 STD CURSOR | |
06D6 86 7F LDA #$7F | |
06D8 20 17 BRA LIST07 | |
06DA DD 08 LIST03: STD CURSOR | |
06DC BD 02 59 JSR SKIPSP | |
06DF 81 2C CMPA #"," | |
06E1 27 04 BEQ LIST05 | |
06E3 96 08 LDA CURSOR | |
06E5 20 0A BRA LIST07 | |
06E7 30 01 LIST05: LEAX 1,X | |
06E9 BD 02 E8 JSR TSTNBR | |
06EC 24 03 BCC LIST07 | |
06EE 7E 01 55 JMP ERRORS | |
06F1 BD 05 2F LIST07: JSR TSTEOL | |
06F4 34 06 PSHS D | |
06F6 DC 08 LDD CURSOR | |
06F8 9F 08 STX CURSOR | |
06FA BD 03 C0 JSR FLINE | |
06FD 9C 02 LIST09: CMPX USRTOP | |
06FF 27 28 BEQ LIST10 | |
0701 35 06 PULS D | |
0703 10 A3 00 CMPD 0,X | |
0706 25 28 BCS LIST11 | |
0708 34 06 PSHS D | |
070A EC 81 LDD ,X++ | |
070C 34 10 PSHS X | |
070E BD 06 5C JSR PRNT4 | |
0711 35 10 PULS X | |
0713 86 20 LDA #SPACE | |
0715 BD 07 A8 JSR PUTCHR | |
0718 BD 01 37 JSR PUTSTR | |
071B 30 01 LEAX 1,X | |
071D 34 10 PSHS X | |
071F BD 01 3E JSR CRLF | |
0722 35 10 PULS X | |
0724 BD 07 9A JSR TSTBRK | |
0727 20 D4 BRA LIST09 | |
0729 32 62 LIST10: LEAS 2,S | |
072B 86 03 LDA #ETX | |
072D BD 07 A8 JSR PUTCHR | |
0730 9E 08 LIST11: LDX CURSOR | |
0732 7E 01 FA JMP ENDS02 | |
0735 ;****************************** | |
0735 ;****************************** | |
0735 4C 45 54 VERBT: DB "LET" | |
0738 04 FCB EOL | |
0739 05 40 FDB LET | |
073B 49 46 DB "IF" | |
073D 04 FCB EOL | |
073E 05 66 FDB IF | |
0740 47 4F 54 4F DB "GOTO" | |
0744 04 FCB EOL | |
0745 05 72 FDB GOTO | |
0747 47 4F 53 55 42 DB "GOSUB" | |
074C 04 FCB EOL | |
074D 05 7F FDB GOSUB | |
074F 52 45 54 55 52 4E DB "RETURN" | |
0755 04 FCB EOL | |
0756 05 2F FDB RETURN | |
0758 50 4F 4B 45 DB "POKE" | |
075C 04 FCB EOL | |
075D 03 7A FDB POKE | |
075F 50 52 49 4E 54 DB "PRINT" | |
0764 04 FCB EOL | |
0765 05 AA FDB PRINT | |
0767 49 4E 50 55 54 DB "INPUT" | |
076C 04 FCB EOL | |
076D 06 61 FDB INPUT | |
076F 52 45 4D DB "REM" | |
0772 04 FCB EOL | |
0773 01 F1 FDB REM | |
0775 53 54 4F 50 DB "STOP" | |
0779 04 FCB EOL | |
077A 07 E4 FDB END | |
077C 45 4E 44 DB "END" | |
077F 04 FCB EOL | |
0780 07 E4 FDB END | |
0782 52 55 4E DB "RUN" | |
0785 04 FCB EOL | |
0786 06 BF FDB RUN | |
0788 4C 49 53 54 DB "LIST" | |
078C 04 FCB EOL | |
078D 06 CD FDB LIST | |
078F 4E 45 57 DB "NEW" | |
0792 04 FCB EOL | |
0793 00 1E FDB CLEAR | |
0795 3F DB "?" | |
0796 04 FCB EOL | |
0797 05 AA FDB PRINT | |
0799 04 FCB EOL | |
079A ;****************************** | |
079A ;****************************** | |
079A 8D 2A TSTBRK: BSR BRKEEE | |
079C 27 09 BEQ GETC05 | |
079E 8D 0D GETCHR: BSR INEEE | |
07A0 81 03 CMPA #ETX | |
07A2 26 03 BNE GETC05 | |
07A4 7E 01 66 JMP BREAK | |
07A7 39 GETC05: RTS | |
07A8 0C 12 PUTCHR: INC ZONE | |
07AA 7E 07 B7 JMP OUTEEE | |
07AD ;****************************** | |
07AD ;****************************** | |
07AD 8D 17 INEEE: BSR BRKEEE | |
07AF 27 FC BEQ INEEE | |
07B1 B6 83 FF LDA RECEV | |
07B4 84 7F ANDA #$7F | |
07B6 39 RTS | |
07B7 34 02 OUTEEE: PSHS A | |
07B9 B6 83 FE OUT01: LDA TRCS | |
07BC 85 02 BITA #TDRE | |
07BE 27 F9 BEQ OUT01 | |
07C0 35 02 PULS A | |
07C2 B7 83 FF STA TRANS | |
07C5 39 RTS | |
07C6 34 02 BRKEEE: PSHS A | |
07C8 B6 83 FE BRK03: LDA TRCS | |
07CB 85 20 BITA #ORFE | |
07CD 27 05 BEQ BRK05 | |
07CF B6 83 FF LDA RECEV | |
07D2 20 F4 BRA BRK03 | |
07D4 85 01 BRK05: BITA #RDRF | |
07D6 35 02 PULS A | |
07D8 39 RTS | |
07D9 ;* | |
07D9 86 03 LDA #CNTL1 | |
07DB B7 83 FE STA RMCR | |
07DE 86 15 LDA #CNTL2 | |
07E0 B7 83 FE STA TRCS | |
07E3 INTEEE: EQU $ | |
07E3 39 RTS | |
07E4 ;****************************** | |
07E4 ;****************************** | |
07E4 END: | |
EOL: 0004 DEFINED AT LINE 18 | |
> USED AT LINE 127 | |
> USED AT LINE 232 | |
> USED AT LINE 235 | |
> USED AT LINE 238 | |
> USED AT LINE 241 | |
> USED AT LINE 244 | |
> USED AT LINE 560 | |
> USED AT LINE 563 | |
> USED AT LINE 566 | |
> USED AT LINE 568 | |
> USED AT LINE 966 | |
> USED AT LINE 1027 | |
> USED AT LINE 1030 | |
> USED AT LINE 1033 | |
> USED AT LINE 1036 | |
> USED AT LINE 1039 | |
> USED AT LINE 1042 | |
> USED AT LINE 1045 | |
> USED AT LINE 1048 | |
> USED AT LINE 1051 | |
> USED AT LINE 1054 | |
> USED AT LINE 1057 | |
> USED AT LINE 1060 | |
> USED AT LINE 1063 | |
> USED AT LINE 1066 | |
> USED AT LINE 1069 | |
> USED AT LINE 1071 | |
ETX: 0003 DEFINED AT LINE 19 | |
SPACE: 0020 DEFINED AT LINE 20 | |
CR: 000D DEFINED AT LINE 21 | |
> USED AT LINE 227 | |
LF: 000A DEFINED AT LINE 22 | |
> USED AT LINE 227 | |
BS: 0008 DEFINED AT LINE 23 | |
CAN: 0018 DEFINED AT LINE 24 | |
BELL: 0007 DEFINED AT LINE 25 | |
FILL: 0000 DEFINED AT LINE 26 | |
DEL: 007F DEFINED AT LINE 27 | |
BSIZE: 0049 DEFINED AT LINE 28 | |
> USED AT LINE 48 | |
STKCUS: 0030 DEFINED AT LINE 29 | |
BACIA: 83FE DEFINED AT LINE 31 | |
> USED AT LINE 32 | |
> USED AT LINE 33 | |
> USED AT LINE 34 | |
> USED AT LINE 35 | |
RMCR: 83FE DEFINED AT LINE 32 | |
> USED AT LINE 1108 | |
TRCS: 83FE DEFINED AT LINE 33 | |
> USED AT LINE 1091 | |
> USED AT LINE 1098 | |
> USED AT LINE 1110 | |
RECEV: 83FF DEFINED AT LINE 34 | |
> USED AT LINE 1087 | |
> USED AT LINE 1101 | |
TRANS: 83FF DEFINED AT LINE 35 | |
> USED AT LINE 1095 | |
CNTL1: 0003 DEFINED AT LINE 36 | |
CNTL2: 0015 DEFINED AT LINE 37 | |
RDRF: 0001 DEFINED AT LINE 38 | |
ORFE: 0020 DEFINED AT LINE 39 | |
TDRE: 0002 DEFINED AT LINE 40 | |
LORAM: 0080 DEFINED AT LINE 43 | |
BUFFER: 0200 DEFINED AT LINE 44 | |
> USED AT LINE 48 | |
> USED AT LINE 49 | |
RAMSIZ: 2000 DEFINED AT LINE 45 | |
> USED AT LINE 49 | |
ROMADR: F000 DEFINED AT LINE 46 | |
RAMBEG: 0249 DEFINED AT LINE 48 | |
RAMEND: 2200 DEFINED AT LINE 49 | |
RAMPAT: AA0F DEFINED AT LINE 51 | |
ROMPAT: F055 DEFINED AT LINE 52 | |
USRBAS: 0000 DEFINED AT LINE 56 | |
> USED AT LINE 85 | |
> USED AT LINE 94 | |
> USED AT LINE 139 | |
> USED AT LINE 571 | |
> USED AT LINE 974 | |
USRTOP: 0002 DEFINED AT LINE 57 | |
> USED AT LINE 86 | |
> USED AT LINE 112 | |
> USED AT LINE 135 | |
> USED AT LINE 148 | |
> USED AT LINE 158 | |
> USED AT LINE 180 | |
> USED AT LINE 182 | |
> USED AT LINE 183 | |
> USED AT LINE 187 | |
> USED AT LINE 190 | |
> USED AT LINE 313 | |
> USED AT LINE 572 | |
> USED AT LINE 1000 | |
STKLIM: 0004 DEFINED AT LINE 58 | |
> USED AT LINE 87 | |
> USED AT LINE 113 | |
> USED AT LINE 159 | |
> USED AT LINE 184 | |
> USED AT LINE 188 | |
> USED AT LINE 520 | |
STKTOP: 0006 DEFINED AT LINE 59 | |
> USED AT LINE 78 | |
> USED AT LINE 82 | |
> USED AT LINE 91 | |
> USED AT LINE 406 | |
> USED AT LINE 969 | |
CURSOR: 0008 DEFINED AT LINE 60 | |
> USED AT LINE 95 | |
> USED AT LINE 134 | |
> USED AT LINE 141 | |
> USED AT LINE 193 | |
> USED AT LINE 201 | |
> USED AT LINE 327 | |
> USED AT LINE 332 | |
> USED AT LINE 336 | |
> USED AT LINE 429 | |
> USED AT LINE 431 | |
> USED AT LINE 551 | |
> USED AT LINE 794 | |
> USED AT LINE 797 | |
> USED AT LINE 817 | |
> USED AT LINE 824 | |
> USED AT LINE 932 | |
> USED AT LINE 948 | |
> USED AT LINE 982 | |
> USED AT LINE 985 | |
> USED AT LINE 989 | |
> USED AT LINE 997 | |
> USED AT LINE 998 | |
> USED AT LINE 1022 | |
SAVESP: 000A DEFINED AT LINE 61 | |
> USED AT LINE 143 | |
> USED AT LINE 152 | |
> USED AT LINE 154 | |
> USED AT LINE 157 | |
> USED AT LINE 191 | |
> USED AT LINE 197 | |
> USED AT LINE 517 | |
> USED AT LINE 518 | |
LINENB: 000C DEFINED AT LINE 62 | |
> USED AT LINE 97 | |
> USED AT LINE 248 | |
> USED AT LINE 310 | |
> USED AT LINE 311 | |
> USED AT LINE 317 | |
> USED AT LINE 826 | |
> USED AT LINE 830 | |
SCRTCH: 000E DEFINED AT LINE 63 | |
> USED AT LINE 132 | |
> USED AT LINE 160 | |
> USED AT LINE 204 | |
> USED AT LINE 206 | |
> USED AT LINE 337 | |
> USED AT LINE 338 | |
> USED AT LINE 342 | |
> USED AT LINE 349 | |
> USED AT LINE 945 | |
> USED AT LINE 959 | |
CHAR: 0010 DEFINED AT LINE 64 | |
> USED AT LINE 151 | |
> USED AT LINE 155 | |
> USED AT LINE 181 | |
> USED AT LINE 192 | |
> USED AT LINE 196 | |
> USED AT LINE 203 | |
> USED AT LINE 207 | |
> USED AT LINE 209 | |
> USED AT LINE 335 | |
> USED AT LINE 343 | |
> USED AT LINE 345 | |
> USED AT LINE 352 | |
> USED AT LINE 903 | |
> USED AT LINE 907 | |
> USED AT LINE 911 | |
ZONE: 0012 DEFINED AT LINE 65 | |
> USED AT LINE 225 | |
> USED AT LINE 869 | |
> USED AT LINE 1081 | |
MODE: 0013 DEFINED AT LINE 66 | |
> USED AT LINE 92 | |
> USED AT LINE 98 | |
> USED AT LINE 280 | |
> USED AT LINE 301 | |
RESRVD: 0014 DEFINED AT LINE 67 | |
LOEND: 0015 DEFINED AT LINE 68 | |
BASIC: 0000 DEFINED AT LINE 76 | |
WARMS: 000C DEFINED AT LINE 78 | |
SETUP: 0014 DEFINED AT LINE 81 | |
> USED AT LINE 76 | |
SET03: 0018 DEFINED AT LINE 82 | |
CLEAR: 001E DEFINED AT LINE 84 | |
> USED AT LINE 1067 | |
CLR02: 0025 DEFINED AT LINE 87 | |
WMS05: 0027 DEFINED AT LINE 88 | |
> USED AT LINE 80 | |
CMDB: 0030 DEFINED AT LINE 91 | |
> USED AT LINE 110 | |
> USED AT LINE 255 | |
CMDE: 003C DEFINED AT LINE 96 | |
> USED AT LINE 108 | |
> USED AT LINE 124 | |
CMD01: 004A DEFINED AT LINE 102 | |
> USED AT LINE 99 | |
CMD02: 0060 DEFINED AT LINE 111 | |
> USED AT LINE 104 | |
CMD03: 006D DEFINED AT LINE 117 | |
> USED AT LINE 115 | |
CMD04: 0072 DEFINED AT LINE 119 | |
CMD05: 007F DEFINED AT LINE 125 | |
> USED AT LINE 105 | |
> USED AT LINE 118 | |
> USED AT LINE 122 | |
VSTR: 0082 DEFINED AT LINE 126 | |
EDITOR: 008D DEFINED AT LINE 130 | |
> USED AT LINE 123 | |
ED00: 00A1 DEFINED AT LINE 139 | |
> USED AT LINE 136 | |
ED01: 00A3 DEFINED AT LINE 140 | |
> USED AT LINE 138 | |
ED02: 00AE DEFINED AT LINE 145 | |
> USED AT LINE 147 | |
ED03: 00B4 DEFINED AT LINE 148 | |
> USED AT LINE 156 | |
ED35: 00C6 DEFINED AT LINE 157 | |
> USED AT LINE 149 | |
ED04: 00CC DEFINED AT LINE 160 | |
> USED AT LINE 142 | |
ED05: 00D0 DEFINED AT LINE 162 | |
> USED AT LINE 165 | |
ED55: 00DD DEFINED AT LINE 170 | |
> USED AT LINE 167 | |
ED06: 00E1 DEFINED AT LINE 172 | |
> USED AT LINE 176 | |
ED07: 0105 DEFINED AT LINE 190 | |
> USED AT LINE 186 | |
ED08: 0107 DEFINED AT LINE 191 | |
> USED AT LINE 199 | |
ED09: 0119 DEFINED AT LINE 200 | |
> USED AT LINE 194 | |
ED10: 0121 DEFINED AT LINE 204 | |
> USED AT LINE 211 | |
PUTS01: 0132 DEFINED AT LINE 215 | |
> USED AT LINE 219 | |
PUTSTR: 0137 DEFINED AT LINE 217 | |
> USED AT LINE 90 | |
> USED AT LINE 224 | |
> USED AT LINE 253 | |
> USED AT LINE 942 | |
> USED AT LINE 1012 | |
CRLF: 013E DEFINED AT LINE 223 | |
> USED AT LINE 88 | |
> USED AT LINE 93 | |
> USED AT LINE 245 | |
> USED AT LINE 254 | |
> USED AT LINE 258 | |
> USED AT LINE 285 | |
> USED AT LINE 863 | |
> USED AT LINE 943 | |
> USED AT LINE 1015 | |
CRLFST: 0146 DEFINED AT LINE 227 | |
ERRORF: 014D DEFINED AT LINE 230 | |
> USED AT LINE 189 | |
> USED AT LINE 756 | |
> USED AT LINE 823 | |
ERRORS: 0155 DEFINED AT LINE 233 | |
> USED AT LINE 125 | |
> USED AT LINE 419 | |
> USED AT LINE 539 | |
> USED AT LINE 751 | |
> USED AT LINE 777 | |
> USED AT LINE 785 | |
> USED AT LINE 790 | |
> USED AT LINE 861 | |
> USED AT LINE 883 | |
> USED AT LINE 956 | |
> USED AT LINE 994 | |
ERRORR: 015E DEFINED AT LINE 236 | |
> USED AT LINE 116 | |
> USED AT LINE 315 | |
> USED AT LINE 820 | |
BREAK: 0166 DEFINED AT LINE 239 | |
> USED AT LINE 1079 | |
ER01: 0173 DEFINED AT LINE 245 | |
> USED AT LINE 230 | |
> USED AT LINE 233 | |
> USED AT LINE 236 | |
> USED AT LINE 239 | |
GL00: 018C DEFINED AT LINE 258 | |
> USED AT LINE 275 | |
GETLIN: 018E DEFINED AT LINE 259 | |
> USED AT LINE 102 | |
> USED AT LINE 935 | |
GL03: 0191 DEFINED AT LINE 260 | |
> USED AT LINE 264 | |
> USED AT LINE 271 | |
> USED AT LINE 279 | |
> USED AT LINE 292 | |
GL04: 01A5 DEFINED AT LINE 269 | |
> USED AT LINE 266 | |
GL02: 01A7 DEFINED AT LINE 270 | |
> USED AT LINE 268 | |
> USED AT LINE 299 | |
> USED AT LINE 302 | |
GL05: 01AC DEFINED AT LINE 272 | |
> USED AT LINE 262 | |
GL06: 01C5 DEFINED AT LINE 284 | |
> USED AT LINE 281 | |
GL08: 01CC DEFINED AT LINE 287 | |
> USED AT LINE 283 | |
GL07: 01D4 DEFINED AT LINE 291 | |
> USED AT LINE 273 | |
GL09: 01E9 DEFINED AT LINE 300 | |
> USED AT LINE 277 | |
REM00: 01EF DEFINED AT LINE 305 | |
> USED AT LINE 308 | |
REM: 01F1 DEFINED AT LINE 306 | |
> USED AT LINE 805 | |
> USED AT LINE 1052 | |
ENDSMT: 01F7 DEFINED AT LINE 309 | |
> USED AT LINE 952 | |
ENDS02: 01FA DEFINED AT LINE 310 | |
> USED AT LINE 547 | |
> USED AT LINE 798 | |
> USED AT LINE 832 | |
> USED AT LINE 876 | |
> USED AT LINE 1023 | |
REM05: 0200 DEFINED AT LINE 313 | |
> USED AT LINE 975 | |
NXTLIN: 0207 DEFINED AT LINE 316 | |
> USED AT LINE 314 | |
> USED AT LINE 812 | |
> USED AT LINE 828 | |
MSLINE: 020B DEFINED AT LINE 318 | |
> USED AT LINE 109 | |
> USED AT LINE 804 | |
REM09: 0214 DEFINED AT LINE 322 | |
> USED AT LINE 312 | |
IMPLET: 0215 DEFINED AT LINE 323 | |
> USED AT LINE 320 | |
IFAN: 0218 DEFINED AT LINE 326 | |
> USED AT LINE 319 | |
FAN00: 021F DEFINED AT LINE 329 | |
> USED AT LINE 357 | |
> USED AT LINE 553 | |
FAN04: 022A DEFINED AT LINE 335 | |
> USED AT LINE 331 | |
FAN05: 0230 DEFINED AT LINE 338 | |
> USED AT LINE 347 | |
FAN07: 024B DEFINED AT LINE 352 | |
> USED AT LINE 340 | |
FAN08: 024D DEFINED AT LINE 353 | |
> USED AT LINE 355 | |
NXTNSP: 0257 DEFINED AT LINE 360 | |
> USED AT LINE 363 | |
SKIPSP: 0259 DEFINED AT LINE 361 | |
> USED AT LINE 106 | |
> USED AT LINE 131 | |
> USED AT LINE 306 | |
> USED AT LINE 326 | |
> USED AT LINE 395 | |
> USED AT LINE 413 | |
> USED AT LINE 423 | |
> USED AT LINE 436 | |
> USED AT LINE 449 | |
> USED AT LINE 536 | |
> USED AT LINE 550 | |
> USED AT LINE 598 | |
> USED AT LINE 605 | |
> USED AT LINE 615 | |
> USED AT LINE 646 | |
> USED AT LINE 655 | |
> USED AT LINE 672 | |
> USED AT LINE 745 | |
> USED AT LINE 757 | |
> USED AT LINE 774 | |
> USED AT LINE 787 | |
> USED AT LINE 838 | |
> USED AT LINE 854 | |
> USED AT LINE 872 | |
> USED AT LINE 936 | |
> USED AT LINE 949 | |
> USED AT LINE 960 | |
> USED AT LINE 986 | |
TSTHEX: 0260 DEFINED AT LINE 367 | |
> USED AT LINE 459 | |
TSTLTR: 0271 DEFINED AT LINE 378 | |
> USED AT LINE 396 | |
> USED AT LINE 400 | |
TST03: 0279 DEFINED AT LINE 382 | |
> USED AT LINE 370 | |
> USED AT LINE 372 | |
> USED AT LINE 379 | |
> USED AT LINE 387 | |
> USED AT LINE 389 | |
> USED AT LINE 401 | |
TSTDIG: 027C DEFINED AT LINE 386 | |
> USED AT LINE 367 | |
> USED AT LINE 450 | |
> USED AT LINE 483 | |
TST05: 0286 DEFINED AT LINE 391 | |
> USED AT LINE 368 | |
> USED AT LINE 381 | |
TSTVAR: 0289 DEFINED AT LINE 395 | |
> USED AT LINE 732 | |
> USED AT LINE 783 | |
> USED AT LINE 929 | |
> USED AT LINE 954 | |
TSTV02: 029F DEFINED AT LINE 407 | |
TSTV03: 02A1 DEFINED AT LINE 408 | |
> USED AT LINE 397 | |
USER: 02A2 DEFINED AT LINE 411 | |
> USED AT LINE 561 | |
USER02: 02B4 DEFINED AT LINE 419 | |
> USED AT LINE 426 | |
USER03: 02B7 DEFINED AT LINE 420 | |
> USED AT LINE 415 | |
USER05: 02C9 DEFINED AT LINE 428 | |
> USED AT LINE 418 | |
TSTSNB: 02D4 DEFINED AT LINE 436 | |
> USED AT LINE 939 | |
TSN02: 02E7 DEFINED AT LINE 446 | |
> USED AT LINE 441 | |
TSTNBR: 02E8 DEFINED AT LINE 449 | |
> USED AT LINE 103 | |
> USED AT LINE 438 | |
> USED AT LINE 440 | |
> USED AT LINE 739 | |
> USED AT LINE 978 | |
> USED AT LINE 992 | |
TSTN20: 02F6 DEFINED AT LINE 455 | |
TSTN23: 02FC DEFINED AT LINE 458 | |
> USED AT LINE 478 | |
TSTN02: 031F DEFINED AT LINE 479 | |
> USED AT LINE 451 | |
TSTN03: 0325 DEFINED AT LINE 482 | |
> USED AT LINE 506 | |
TSTN07: 0352 DEFINED AT LINE 507 | |
> USED AT LINE 460 | |
> USED AT LINE 484 | |
TSTN09: 0356 DEFINED AT LINE 509 | |
> USED AT LINE 454 | |
TSTN11: 0359 DEFINED AT LINE 511 | |
> USED AT LINE 466 | |
> USED AT LINE 491 | |
> USED AT LINE 494 | |
> USED AT LINE 496 | |
> USED AT LINE 499 | |
> USED AT LINE 502 | |
TSTSTK: 0360 DEFINED AT LINE 517 | |
> USED AT LINE 185 | |
> USED AT LINE 567 | |
> USED AT LINE 754 | |
> USED AT LINE 821 | |
PEEK: 036B DEFINED AT LINE 524 | |
> USED AT LINE 564 | |
POKE: 037A DEFINED AT LINE 534 | |
> USED AT LINE 1043 | |
POKE05: 0389 DEFINED AT LINE 540 | |
> USED AT LINE 538 | |
TSTFUN: 039C DEFINED AT LINE 550 | |
> USED AT LINE 741 | |
TSTF05: 03AB DEFINED AT LINE 556 | |
> USED AT LINE 554 | |
FUNT: 03AC DEFINED AT LINE 559 | |
FLINE: 03C0 DEFINED AT LINE 571 | |
> USED AT LINE 810 | |
> USED AT LINE 818 | |
> USED AT LINE 999 | |
FNDLIN: 03C2 DEFINED AT LINE 572 | |
> USED AT LINE 140 | |
> USED AT LINE 592 | |
FND03: 03C9 DEFINED AT LINE 576 | |
> USED AT LINE 573 | |
FND05: 03D1 DEFINED AT LINE 580 | |
> USED AT LINE 577 | |
FND07: 03D8 DEFINED AT LINE 584 | |
> USED AT LINE 580 | |
FND09: 03DE DEFINED AT LINE 587 | |
> USED AT LINE 589 | |
RELEXP: 03EA DEFINED AT LINE 595 | |
> USED AT LINE 801 | |
REL03: 040A DEFINED AT LINE 611 | |
> USED AT LINE 602 | |
REL05: 0415 DEFINED AT LINE 616 | |
> USED AT LINE 607 | |
REL06: 0419 DEFINED AT LINE 618 | |
> USED AT LINE 600 | |
REL07: 041D DEFINED AT LINE 620 | |
> USED AT LINE 610 | |
> USED AT LINE 617 | |
REL08: 0435 DEFINED AT LINE 634 | |
> USED AT LINE 632 | |
REL09: 043B DEFINED AT LINE 638 | |
> USED AT LINE 636 | |
EXPR: 0441 DEFINED AT LINE 644 | |
> USED AT LINE 421 | |
> USED AT LINE 541 | |
> USED AT LINE 595 | |
> USED AT LINE 621 | |
> USED AT LINE 761 | |
> USED AT LINE 792 | |
> USED AT LINE 808 | |
> USED AT LINE 815 | |
> USED AT LINE 850 | |
EXPR02: 0450 DEFINED AT LINE 651 | |
> USED AT LINE 657 | |
EXPR03: 0452 DEFINED AT LINE 652 | |
> USED AT LINE 650 | |
EXPR04: 0454 DEFINED AT LINE 653 | |
> USED AT LINE 665 | |
EXPR05: 0463 DEFINED AT LINE 660 | |
> USED AT LINE 648 | |
EXPR06: 046D DEFINED AT LINE 666 | |
> USED AT LINE 612 | |
> USED AT LINE 659 | |
TERM: 0470 DEFINED AT LINE 670 | |
> USED AT LINE 652 | |
> USED AT LINE 661 | |
TERM03: 0475 DEFINED AT LINE 672 | |
> USED AT LINE 712 | |
> USED AT LINE 729 | |
TERM05: 0483 DEFINED AT LINE 679 | |
> USED AT LINE 676 | |
DIV05: 049F DEFINED AT LINE 693 | |
> USED AT LINE 704 | |
DIV07: 04A9 DEFINED AT LINE 698 | |
> USED AT LINE 694 | |
DIV09: 04AB DEFINED AT LINE 699 | |
> USED AT LINE 697 | |
TERM06: 04C0 DEFINED AT LINE 711 | |
> USED AT LINE 708 | |
TERM07: 04C4 DEFINED AT LINE 713 | |
> USED AT LINE 674 | |
MULT: 04C8 DEFINED AT LINE 715 | |
FACT: 04E3 DEFINED AT LINE 732 | |
> USED AT LINE 670 | |
> USED AT LINE 680 | |
> USED AT LINE 714 | |
FACT02: 04F0 DEFINED AT LINE 738 | |
> USED AT LINE 740 | |
> USED AT LINE 742 | |
FACT03: 04F1 DEFINED AT LINE 739 | |
> USED AT LINE 733 | |
PAREXP: 04FB DEFINED AT LINE 743 | |
> USED AT LINE 524 | |
> USED AT LINE 534 | |
FACT05: 050B DEFINED AT LINE 751 | |
> USED AT LINE 748 | |
> USED AT LINE 759 | |
ARGONE: 050E DEFINED AT LINE 754 | |
> USED AT LINE 411 | |
> USED AT LINE 743 | |
FACT04: 0516 DEFINED AT LINE 757 | |
> USED AT LINE 755 | |
ABSX: 0522 DEFINED AT LINE 764 | |
> USED AT LINE 685 | |
> USED AT LINE 687 | |
NEGX: 0526 DEFINED AT LINE 766 | |
> USED AT LINE 710 | |
NEG05: 052E DEFINED AT LINE 770 | |
> USED AT LINE 765 | |
> USED AT LINE 768 | |
TSTEOL: 052F DEFINED AT LINE 773 | |
> USED AT LINE 309 | |
> USED AT LINE 542 | |
> USED AT LINE 793 | |
> USED AT LINE 809 | |
> USED AT LINE 816 | |
> USED AT LINE 835 | |
> USED AT LINE 995 | |
TEOL03: 053B DEFINED AT LINE 778 | |
> USED AT LINE 776 | |
LET: 0540 DEFINED AT LINE 783 | |
> USED AT LINE 323 | |
> USED AT LINE 1028 | |
LET03: 0548 DEFINED AT LINE 786 | |
> USED AT LINE 784 | |
LET05: 0554 DEFINED AT LINE 791 | |
> USED AT LINE 789 | |
IF: 0566 DEFINED AT LINE 801 | |
> USED AT LINE 1031 | |
IF03: 056F DEFINED AT LINE 805 | |
> USED AT LINE 803 | |
GOTO: 0572 DEFINED AT LINE 808 | |
> USED AT LINE 1034 | |
GOSUB: 057F DEFINED AT LINE 815 | |
> USED AT LINE 1037 | |
GOSB04: 058B DEFINED AT LINE 820 | |
> USED AT LINE 811 | |
GOSB03: 058E DEFINED AT LINE 821 | |
> USED AT LINE 819 | |
GOSB05: 0596 DEFINED AT LINE 824 | |
> USED AT LINE 822 | |
RETURN: 052F DEFINED AT LINE 835 | |
> USED AT LINE 1040 | |
PRINT: 05AA DEFINED AT LINE 838 | |
> USED AT LINE 1046 | |
> USED AT LINE 1070 | |
PR01: 05AD DEFINED AT LINE 839 | |
> USED AT LINE 874 | |
PR02: 05C3 DEFINED AT LINE 850 | |
> USED AT LINE 846 | |
PR03: 05CC DEFINED AT LINE 854 | |
> USED AT LINE 849 | |
PR04: 05DE DEFINED AT LINE 862 | |
> USED AT LINE 844 | |
> USED AT LINE 860 | |
PR05: 05E7 DEFINED AT LINE 866 | |
> USED AT LINE 840 | |
> USED AT LINE 856 | |
PR06: 05E9 DEFINED AT LINE 867 | |
> USED AT LINE 870 | |
PR07: 05F2 DEFINED AT LINE 871 | |
> USED AT LINE 842 | |
> USED AT LINE 858 | |
PR08: 05FB DEFINED AT LINE 875 | |
> USED AT LINE 865 | |
PRQ01: 0600 DEFINED AT LINE 879 | |
> USED AT LINE 885 | |
PRNTQS: 0603 DEFINED AT LINE 880 | |
> USED AT LINE 848 | |
PRQ03: 060C DEFINED AT LINE 884 | |
> USED AT LINE 882 | |
PRNTN: 0611 DEFINED AT LINE 888 | |
> USED AT LINE 852 | |
PRN03: 0621 DEFINED AT LINE 897 | |
> USED AT LINE 889 | |
PRN05: 0624 DEFINED AT LINE 898 | |
> USED AT LINE 902 | |
PRN07: 0630 DEFINED AT LINE 903 | |
> USED AT LINE 900 | |
> USED AT LINE 917 | |
> USED AT LINE 926 | |
PRN09: 0632 DEFINED AT LINE 904 | |
> USED AT LINE 908 | |
PRN11: 063D DEFINED AT LINE 909 | |
> USED AT LINE 905 | |
PRN13: 0651 DEFINED AT LINE 918 | |
> USED AT LINE 915 | |
PRNPT: 0652 DEFINED AT LINE 919 | |
PRNPTO: 065A DEFINED AT LINE 923 | |
PRNT4: 065C DEFINED AT LINE 925 | |
> USED AT LINE 249 | |
> USED AT LINE 1008 | |
INPUT: 0661 DEFINED AT LINE 929 | |
> USED AT LINE 1049 | |
IN03: 066A DEFINED AT LINE 933 | |
> USED AT LINE 938 | |
> USED AT LINE 944 | |
IN05: 0672 DEFINED AT LINE 936 | |
> USED AT LINE 962 | |
> USED AT LINE 964 | |
IN07: 0689 DEFINED AT LINE 945 | |
> USED AT LINE 940 | |
IN09: 069B DEFINED AT LINE 953 | |
> USED AT LINE 951 | |
IN11: 06A2 DEFINED AT LINE 956 | |
> USED AT LINE 930 | |
IN13: 06A5 DEFINED AT LINE 957 | |
> USED AT LINE 955 | |
RMESS: 06B6 DEFINED AT LINE 965 | |
RUN: 06BF DEFINED AT LINE 969 | |
> USED AT LINE 1061 | |
RUN01: 06C3 DEFINED AT LINE 971 | |
> USED AT LINE 973 | |
LIST: 06CD DEFINED AT LINE 978 | |
> USED AT LINE 1064 | |
LIST03: 06DA DEFINED AT LINE 985 | |
> USED AT LINE 979 | |
LIST05: 06E7 DEFINED AT LINE 991 | |
> USED AT LINE 988 | |
LIST07: 06F1 DEFINED AT LINE 995 | |
> USED AT LINE 984 | |
> USED AT LINE 990 | |
> USED AT LINE 993 | |
LIST09: 06FD DEFINED AT LINE 1000 | |
> USED AT LINE 1018 | |
LIST10: 0729 DEFINED AT LINE 1019 | |
> USED AT LINE 1001 | |
LIST11: 0730 DEFINED AT LINE 1022 | |
> USED AT LINE 1004 | |
VERBT: 0735 DEFINED AT LINE 1026 | |
TSTBRK: 079A DEFINED AT LINE 1074 | |
> USED AT LINE 318 | |
> USED AT LINE 1017 | |
GETCHR: 079E DEFINED AT LINE 1076 | |
> USED AT LINE 260 | |
GETC05: 07A7 DEFINED AT LINE 1080 | |
> USED AT LINE 1075 | |
> USED AT LINE 1078 | |
PUTCHR: 07A8 DEFINED AT LINE 1081 | |
> USED AT LINE 101 | |
> USED AT LINE 215 | |
> USED AT LINE 247 | |
> USED AT LINE 251 | |
> USED AT LINE 270 | |
> USED AT LINE 282 | |
> USED AT LINE 295 | |
> USED AT LINE 297 | |
> USED AT LINE 868 | |
> USED AT LINE 879 | |
> USED AT LINE 895 | |
> USED AT LINE 912 | |
> USED AT LINE 934 | |
> USED AT LINE 1011 | |
> USED AT LINE 1021 | |
INEEE: 07AD DEFINED AT LINE 1085 | |
> USED AT LINE 1076 | |
> USED AT LINE 1086 | |
OUTEEE: 07B7 DEFINED AT LINE 1090 | |
> USED AT LINE 1082 | |
OUT01: 07B9 DEFINED AT LINE 1091 | |
> USED AT LINE 1093 | |
BRKEEE: 07C6 DEFINED AT LINE 1097 | |
> USED AT LINE 1074 | |
> USED AT LINE 1085 | |
BRK03: 07C8 DEFINED AT LINE 1098 | |
> USED AT LINE 1102 | |
BRK05: 07D4 DEFINED AT LINE 1103 | |
> USED AT LINE 1100 | |
INTEEE: 07E3 DEFINED AT LINE 1111 | |
> USED AT LINE 79 | |
> USED AT LINE 83 | |
END: 07E4 DEFINED AT LINE 1118 | |
> USED AT LINE 1055 | |
> USED AT LINE 1058 |
0000 ;NAM TB01V137 | |
0000 ;* WRITTEN 20-OCT-77 BY JOHN BYRNS | |
0000 ;* REVISED 30-DEC-77 | |
0000 ;* REVISED 18-JAN-78 | |
0000 ;* REVISED 10-APR-78 | |
0000 ;* REVISED 08-MAY-79 TO ELIMINATE USE OF SP | |
0000 ;* REVISED 24-JAN-80 TO USE 6801 ON CHIP RAM | |
0000 ;* REVISED 26-JAN-80 FOR NEW 6801 INSTRUCTIONS | |
0000 ;* REVISED 24-JUL-81 FOR WHISTON BOARD | |
0000 ;* REVISED 24-SEP-81 INCLUDE USER FUNCTION | |
0000 ;* REVISED 08-APR-82 MAKE STANDALONE INCLUDE HEX CONSTANTS AND MEM FUNCTION | |
0000 ;* REVISED 21-NOV-84 FOR 6809 | |
0000 ;* REVISED FEB 94 ADAPTED TO SIMULATOR AND BUGFIXES BY L.C. BENSCHOP. | |
0000 ;* | |
0000 ;.engine kilo | |
0000 EOL: EQU $04 | |
0000 ETX: EQU $03 | |
0000 SPACE: EQU $20 | |
0000 CR: EQU $0D | |
0000 LF: EQU $0A | |
0000 BS: EQU $08 | |
0000 CAN: EQU $18 | |
0000 BELL: EQU $07 | |
0000 FILL: EQU $00 | |
0000 DEL: EQU $7F | |
0000 BSIZE: EQU 73 | |
0000 STKCUS: EQU 48 | |
0000 ;* | |
0000 BACIA: EQU $83FE | |
0000 RMCR: EQU bACIA | |
0000 TRCS: EQU bACIA | |
0000 RECEV: EQU bACIA+1 | |
0000 TRANS: EQU bACIA+1 | |
0000 CNTL1: EQU $03 | |
0000 CNTL2: EQU $15 | |
0000 RDRF: EQU $01 | |
0000 ORFE: EQU $20 | |
0000 TDRE: EQU $02 | |
0000 ;* EDIT THE FOLLOWING EQUATES TO REFLECT THE | |
0000 ;* DESIRED ROM AND RAM LAYOUT | |
0000 LORAM: EQU $0080 | |
0000 BUFFER: EQU $0200 | |
0000 RAMSIZ: EQU $2000 | |
0000 ROMADR: EQU $f000 | |
0000 ;* | |
0000 RAMBEG: EQU BUFFER+BSIZE | |
0000 RAMEND: EQU BUFFER+RAMSIZ | |
0000 ;* | |
0000 RAMPAT: EQU $AA0F | |
0000 ROMPAT: EQU $F055 | |
0000 ;* | |
0000 ; ORG LORAM | |
0000 .BSSEG | |
0000 USRBAS: RMB 2 | |
0002 USRTOP: RMB 2 | |
0004 STKLIM: RMB 2 | |
0006 STKTOP: RMB 2 | |
0008 CURSOR: RMB 2 | |
000A SAVESP: RMB 2 | |
000C LINENB: RMB 2 | |
000E SCRTCH: RMB 2 | |
0010 CHAR: RMB 2 | |
0012 ZONE: RMB 1 | |
0013 MODE: RMB 1 | |
0014 RESRVD: RMB 1 | |
0015 LOEND: EQU $ | |
0015 ;* | |
0000 .CSEG | |
0000 ; ORG ROMADR | |
0000 ALIGN 256 | |
0000 .ENT $ | |
0000 0E 14 BASIC: JMP SETUP | |
0002 4D 4F 44 39 42 41 53 49 43 00 .CSTR "MOD9BASIC" | |
000C 10 DE 06 WARMS: LDS STKTOP | |
000F BD 07 E5 JSR INTEEE | |
0012 20 13 BRA WMS05 | |
0014 10 CE 21 CC SETUP: LDS #RAMEND-52 | |
0018 10 DF 06 SET03: STS STKTOP | |
001B BD 07 E5 JSR INTEEE | |
001E CC 02 49 CLEAR: LDD #RAMBEG | |
0021 DD 00 STD USRBAS | |
0023 DD 02 STD USRTOP | |
0025 DD 04 CLR02: STD STKLIM | |
0027 BD 01 3E WMS05: JSR CRLF | |
002A 8E 00 82 LDX #VSTR | |
002D BD 01 37 JSR PUTSTR | |
0030 10 DE 06 CMDB: LDS STKTOP | |
0033 0F 13 CLR MODE | |
0035 BD 01 3E JSR CRLF | |
0038 9E 00 LDX USRBAS | |
003A 9F 08 STX CURSOR | |
003C 8E 00 00 CMDE: LDX #0000 | |
003F 9F 0C STX LINENB | |
0041 0D 13 TST MODE | |
0043 26 05 BNE CMD01 | |
0045 86 3A LDA #":" | |
0047 BD 07 AA JSR PUTCHR | |
004A BD 01 90 CMD01: JSR GETLIN | |
004D BD 02 EA JSR TSTNBR | |
0050 24 0E BCC CMD02 | |
0052 29 2B BVS CMD05 | |
0054 BD 02 5B JSR SKIPSP | |
0057 81 04 CMPA #EOL | |
0059 27 E1 BEQ CMDE | |
005B BD 02 0D JSR MSLINE | |
005E 20 D0 BRA CMDB | |
0060 34 10 CMD02: PSHS X | |
0062 9E 02 LDX USRTOP | |
0064 9C 04 CMPX STKLIM | |
0066 35 10 PULS X | |
0068 27 03 BEQ CMD03 | |
006A 7E 01 5E JMP ERRORR | |
006D C3 00 00 CMD03: ADDD #0 | |
0070 27 0D BEQ CMD05 | |
0072 34 06 CMD04: PSHS D | |
0074 83 27 0F SUBD #9999 | |
0077 35 06 PULS D | |
0079 22 04 BHI CMD05 | |
007B 8D 10 BSR EDITOR | |
007D 20 BD BRA CMDE | |
007F 7E 01 55 CMD05: JMP ERRORS | |
0082 54 49 4E 59 20 56 31 2E 33 37 VSTR: DB "TINY V1.37" | |
008C 04 FCB EOL | |
008D ;****************************** | |
008D ;****************************** | |
008D 34 06 EDITOR: PSHS D | |
008F BD 02 5B JSR SKIPSP | |
0092 9F 0E STX SCRTCH | |
0094 A6 60 LDA 0,S | |
0096 9E 08 LDX CURSOR | |
0098 9C 02 CMPX USRTOP | |
009A 27 05 BEQ ED00 | |
009C 10 A3 00 CMPD 0,X | |
009F 24 02 BCC ED01 | |
00A1 9E 00 ED00: LDX USRBAS | |
00A3 BD 03 C4 ED01: JSR FNDLIN | |
00A6 9F 08 STX CURSOR | |
00A8 25 22 BCS ED04 | |
00AA 9F 0A STX SAVESP | |
00AC 30 02 LEAX 2,X | |
00AE A6 80 ED02: LDA ,X+ | |
00B0 81 04 CMPA #EOL | |
00B2 26 FA BNE ED02 | |
00B4 9C 02 ED03: CMPX USRTOP | |
00B6 27 0E BEQ ED35 | |
00B8 A6 80 LDA ,X+ | |
00BA 9F 10 STX CHAR | |
00BC 9E 0A LDX SAVESP | |
00BE A7 80 STA ,X+ | |
00C0 9F 0A STX SAVESP | |
00C2 9E 10 LDX CHAR | |
00C4 20 EE BRA ED03 | |
00C6 9E 0A ED35: LDX SAVESP | |
00C8 9F 02 STX USRTOP | |
00CA 9F 04 STX STKLIM | |
00CC 9E 0E ED04: LDX SCRTCH | |
00CE C6 FF LDB #-1 | |
00D0 5C ED05: INCB | |
00D1 A6 80 LDA ,X+ | |
00D3 81 04 CMPA #EOL | |
00D5 26 F9 BNE ED05 | |
00D7 5D TSTB | |
00D8 26 03 BNE ED55 | |
00DA 32 62 LEAS 2,S | |
00DC 39 RTS | |
00DD 30 1F ED55: LEAX -1,X | |
00DF CB 04 ADDB #4 | |
00E1 30 1F ED06: LEAX -1,X | |
00E3 5A DECB | |
00E4 A6 00 LDA 0,X | |
00E6 81 20 CMPA #SPACE | |
00E8 27 F7 BEQ ED06 | |
00EA 86 04 LDA #EOL | |
00EC A7 01 STA 1,X | |
00EE 4F CLRA | |
00EF 9E 02 LDX USRTOP | |
00F1 9F 10 STX CHAR | |
00F3 D3 02 ADDD USRTOP | |
00F5 DD 02 STD USRTOP | |
00F7 DD 04 STD STKLIM | |
00F9 BD 03 62 JSR TSTSTK | |
00FC 24 07 BCC ED07 | |
00FE 9F 02 STX USRTOP | |
0100 9F 04 STX STKLIM | |
0102 7E 01 4D JMP ERRORF | |
0105 9E 02 ED07: LDX USRTOP | |
0107 9F 0A ED08: STX SAVESP | |
0109 9E 10 LDX CHAR | |
010B 9C 08 CMPX CURSOR | |
010D 27 0A BEQ ED09 | |
010F A6 82 LDA ,-X | |
0111 9F 10 STX CHAR | |
0113 9E 0A LDX SAVESP | |
0115 A7 82 STA ,-X | |
0117 20 EE BRA ED08 | |
0119 35 06 ED09: PULS D | |
011B 9E 08 LDX CURSOR | |
011D ED 81 STD ,X++ | |
011F 9F 10 STX CHAR | |
0121 9E 0E ED10: LDX SCRTCH | |
0123 A6 80 LDA ,X+ | |
0125 9F 0E STX SCRTCH | |
0127 9E 10 LDX CHAR | |
0129 A7 80 STA ,X+ | |
012B 9F 10 STX CHAR | |
012D 81 04 CMPA #EOL | |
012F 26 F0 BNE ED10 | |
0131 39 RTS | |
0132 ;****************************** | |
0132 ;****************************** | |
0132 BD 07 AA PUTS01: JSR PUTCHR | |
0135 30 01 LEAX 1,X | |
0137 A6 00 PUTSTR: LDA 0,X | |
0139 81 04 CMPA #EOL | |
013B 26 F5 BNE PUTS01 | |
013D 39 RTS | |
013E ;****************************** | |
013E ;****************************** | |
013E 8E 01 46 CRLF: LDX #CRLFST | |
0141 8D F4 BSR PUTSTR | |
0143 0F 12 CLR ZONE | |
0145 39 RTS | |
0146 0D 0A 7F 00 00 00 04 CRLFST: FCB CR,LF,DEL,FILL,FILL,FILL,EOL | |
014D ;****************************** | |
014D ;****************************** | |
014D 8D 26 ERRORF: BSR ER01 | |
014F 53 4F 52 52 59 DB "SORRY" | |
0154 04 FCB EOL | |
0155 8D 1E ERRORS: BSR ER01 | |
0157 57 48 41 54 20 3F DB "WHAT ?" | |
015D 04 FCB EOL | |
015E 8D 15 ERRORR: BSR ER01 | |
0160 48 4F 57 20 3F DB "HOW ?" | |
0165 04 FCB EOL | |
0166 8D 0D BREAK: BSR ER01 | |
0168 42 52 45 41 4B DB "BREAK" | |
016D 04 FCB EOL | |
016E 8D 05 END: BSR ER01 | |
0170 53 54 4F 50 DB "STOP" | |
0174 04 FCB EOL | |
0175 8D C7 ER01: BSR CRLF | |
0177 86 07 LDA #BELL | |
0179 BD 07 AA JSR PUTCHR | |
017C DC 0C LDD LINENB | |
017E BD 06 5E JSR PRNT4 | |
0181 86 20 LDA #SPACE | |
0183 BD 07 AA JSR PUTCHR | |
0186 35 10 PULS X | |
0188 8D AD BSR PUTSTR | |
018A 8D B2 BSR CRLF | |
018C 0E 30 JMP CMDB | |
018E ;****************************** | |
018E ;****************************** | |
018E 8D AE GL00: BSR CRLF | |
0190 8E 02 00 GETLIN: LDX #BUFFER | |
0193 BD 07 A0 GL03: JSR GETCHR | |
0196 81 20 CMPA #SPACE | |
0198 25 14 BCS GL05 | |
019A 81 7F CMPA #$7F | |
019C 27 F5 BEQ GL03 | |
019E 8C 02 48 CMPX #BUFFER+BSIZE-1 | |
01A1 26 04 BNE GL04 | |
01A3 86 07 LDA #BELL | |
01A5 20 02 BRA GL02 | |
01A7 A7 80 GL04: STA ,X+ | |
01A9 BD 07 AA GL02: JSR PUTCHR | |
01AC 20 E5 BRA GL03 | |
01AE 81 08 GL05: CMPA #BS | |
01B0 27 24 BEQ GL07 | |
01B2 81 18 CMPA #CAN | |
01B4 27 D8 BEQ GL00 | |
01B6 81 0A CMPA #LF | |
01B8 27 31 BEQ GL09 | |
01BA 81 0D CMPA #CR | |
01BC 26 D5 BNE GL03 | |
01BE 0D 13 TST MODE | |
01C0 27 05 BEQ GL06 | |
01C2 BD 07 AA JSR PUTCHR | |
01C5 20 07 BRA GL08 | |
01C7 34 10 GL06: PSHS X | |
01C9 BD 01 3E JSR CRLF | |
01CC 35 10 PULS X | |
01CE 86 04 GL08: LDA #EOL | |
01D0 A7 00 STA 0,X | |
01D2 8E 02 00 LDX #BUFFER | |
01D5 39 RTS | |
01D6 8C 02 00 GL07: CMPX #BUFFER | |
01D9 27 B8 BEQ GL03 | |
01DB 30 1F LEAX -1,X | |
01DD 86 08 LDA #BS | |
01DF BD 07 AA JSR PUTCHR | |
01E2 86 20 LDA #SPACE | |
01E4 BD 07 AA JSR PUTCHR | |
01E7 86 08 LDA #BS | |
01E9 20 BE BRA GL02 | |
01EB 1A 01 GL09: ORCC #$01 | |
01ED 06 13 ROR MODE | |
01EF 20 B8 BRA GL02 | |
01F1 ;****************************** | |
01F1 ;****************************** | |
01F1 30 01 REM00: LEAX 1,X | |
01F3 8D 66 REM: BSR SKIPSP | |
01F5 81 04 CMPA #EOL | |
01F7 26 F8 BNE REM00 | |
01F9 BD 05 31 ENDSMT: JSR TSTEOL | |
01FC 96 0C ENDS02: LDA LINENB | |
01FE 9A 0D ORA LINENB+1 | |
0200 27 14 BEQ REM09 | |
0202 9C 02 REM05: CMPX USRTOP | |
0204 26 03 BNE NXTLIN | |
0206 7E 01 5E JMP ERRORR | |
0209 EC 81 NXTLIN: LDD ,X++ | |
020B DD 0C STD LINENB | |
020D BD 07 9C MSLINE: JSR TSTBRK | |
0210 8D 08 BSR IFAN | |
0212 25 03 BCS IMPLET | |
0214 34 06 PSHS D | |
0216 39 REM09: RTS | |
0217 7E 05 42 IMPLET: JMP LET | |
021A ;****************************** | |
021A ;****************************** | |
021A 8D 3F IFAN: BSR SKIPSP | |
021C 9F 08 STX CURSOR | |
021E 8E 07 37 LDX #VERBT | |
0221 A6 80 FAN00: LDA ,X+ | |
0223 81 04 CMPA #EOL | |
0225 26 05 BNE FAN04 | |
0227 9E 08 LDX CURSOR | |
0229 1A 01 ORCC #$01 | |
022B 39 RTS | |
022C 9F 10 FAN04: STX CHAR | |
022E 9E 08 LDX CURSOR | |
0230 9F 0E STX SCRTCH | |
0232 9E 0E FAN05: LDX SCRTCH | |
0234 A1 00 CMPA 0,X | |
0236 26 15 BNE FAN07 | |
0238 30 01 LEAX 1,X | |
023A 9F 0E STX SCRTCH | |
023C 9E 10 LDX CHAR | |
023E A6 80 LDA ,X+ | |
0240 9F 10 STX CHAR | |
0242 81 04 CMPA #EOL | |
0244 26 EC BNE FAN05 | |
0246 EC 00 LDD 0,X | |
0248 9E 0E LDX SCRTCH | |
024A 1C FE ANDCC #$FE | |
024C 39 RTS | |
024D 9E 10 FAN07: LDX CHAR | |
024F A6 80 FAN08: LDA ,X+ | |
0251 81 04 CMPA #EOL | |
0253 26 FA BNE FAN08 | |
0255 30 02 LEAX 2,X | |
0257 20 C8 BRA FAN00 | |
0259 ;****************************** | |
0259 ;****************************** | |
0259 30 01 NXTNSP: LEAX 1,X | |
025B A6 00 SKIPSP: LDA 0,X | |
025D 81 20 CMPA #SPACE | |
025F 27 F8 BEQ NXTNSP | |
0261 39 RTS | |
0262 ;****************************** | |
0262 ;****************************** | |
0262 8D 1A TSTHEX: BSR TSTDIG | |
0264 24 22 BCC TST05 | |
0266 81 41 CMPA #"A" | |
0268 25 11 BCS TST03 | |
026A 81 46 CMPA #"F" | |
026C 22 0D BHI TST03 | |
026E 80 37 SUBA #"A"-10 | |
0270 1C FE ANDCC #$FE | |
0272 39 RTS | |
0273 ;****************************** | |
0273 ;****************************** | |
0273 81 41 TSTLTR: CMPA #"A" | |
0275 25 04 BCS TST03 | |
0277 81 5A CMPA #"Z" | |
0279 23 0D BLS TST05 | |
027B 1A 01 TST03: ORCC #$01 | |
027D 39 RTS | |
027E ;****************************** | |
027E ;****************************** | |
027E 81 30 TSTDIG: CMPA #"0" | |
0280 25 F9 BCS TST03 | |
0282 81 39 CMPA #"9" | |
0284 22 F5 BHI TST03 | |
0286 80 30 SUBA #"0" | |
0288 1C FE TST05: ANDCC #$FE | |
028A 39 RTS | |
028B ;****************************** | |
028B ;****************************** | |
028B 8D CE TSTVAR: BSR SKIPSP | |
028D 8D E4 BSR TSTLTR | |
028F 25 12 BCS TSTV03 | |
0291 1F 89 TFR A,B | |
0293 A6 01 LDA 1,X | |
0295 8D DC BSR TSTLTR | |
0297 24 E2 BCC TST03 | |
0299 30 01 LEAX 1,X | |
029B C0 41 SUBB #"A" | |
029D 58 ASLB | |
029E 4F CLRA | |
029F D3 06 ADDD STKTOP | |
02A1 1C FE TSTV02: ANDCC #$FE | |
02A3 39 TSTV03: RTS | |
02A4 ;****************************** | |
02A4 ;****************************** | |
02A4 BD 05 10 USER: JSR ARGONE | |
02A7 34 06 PSHS D | |
02A9 BD 02 5B JSR SKIPSP | |
02AC 81 2C CMPA #"," | |
02AE 27 09 BEQ USER03 | |
02B0 81 29 CMPA #")" | |
02B2 1A 01 ORCC #$01 | |
02B4 27 15 BEQ USER05 | |
02B6 7E 01 55 USER02: JMP ERRORS | |
02B9 30 01 USER03: LEAX 1,X | |
02BB BD 04 43 JSR EXPR | |
02BE 34 02 PSHS A | |
02C0 BD 02 5B JSR SKIPSP | |
02C3 81 29 CMPA #")" | |
02C5 35 02 PULS A | |
02C7 26 ED BNE USER02 | |
02C9 1C FE ANDCC #$FE | |
02CB 30 01 USER05: LEAX 1,X | |
02CD 9F 08 STX CURSOR | |
02CF AD F1 JSR [,S++] | |
02D1 9E 08 LDX CURSOR | |
02D3 1C FE ANDCC #$FE | |
02D5 39 RTS | |
02D6 ;****************************** | |
02D6 ;****************************** | |
02D6 BD 02 5B TSTSNB: JSR SKIPSP | |
02D9 81 2D CMPA #"-" | |
02DB 26 0D BNE TSTNBR | |
02DD 30 01 LEAX 1,X | |
02DF 8D 09 BSR TSTNBR | |
02E1 25 06 BCS TSN02 | |
02E3 40 NEGA | |
02E4 50 NEGB | |
02E5 82 00 SBCA #0 | |
02E7 1C FC ANDCC #$FC | |
02E9 39 TSN02: RTS | |
02EA ;****************************** | |
02EA ;****************************** | |
02EA BD 02 5B TSTNBR: JSR SKIPSP | |
02ED BD 02 7E JSR TSTDIG | |
02F0 24 2F BCC TSTN02 | |
02F2 81 24 CMPA #"$" | |
02F4 1A 01 ORCC #$01 | |
02F6 26 60 BNE TSTN09 | |
02F8 30 01 TSTN20: LEAX 1,X | |
02FA 6F E2 CLR ,-S | |
02FC 6F E2 CLR ,-S | |
02FE A6 00 TSTN23: LDA 0,X | |
0300 BD 02 62 JSR TSTHEX | |
0303 25 4F BCS TSTN07 | |
0305 30 01 LEAX 1,X | |
0307 34 10 PSHS X | |
0309 34 02 PSHS A | |
030B EC 63 LDD 3,S | |
030D 85 F0 BITA #$F0 | |
030F 26 4A BNE TSTN11 | |
0311 58 ASLB | |
0312 49 ROLA | |
0313 58 ASLB | |
0314 49 ROLA | |
0315 58 ASLB | |
0316 49 ROLA | |
0317 58 ASLB | |
0318 49 ROLA | |
0319 EB E0 ADDB ,S+ | |
031B ED 62 STD 2,S | |
031D 35 10 PULS X | |
031F 20 DD BRA TSTN23 | |
0321 30 01 TSTN02: LEAX 1,X | |
0323 34 02 PSHS A | |
0325 6F E2 CLR ,-S | |
0327 A6 00 TSTN03: LDA 0,X | |
0329 BD 02 7E JSR TSTDIG | |
032C 25 26 BCS TSTN07 | |
032E 30 01 LEAX 1,X | |
0330 34 10 PSHS X | |
0332 34 02 PSHS A | |
0334 EC 63 LDD 3,S | |
0336 58 ASLB | |
0337 49 ROLA | |
0338 29 21 BVS TSTN11 | |
033A 58 ASLB | |
033B 49 ROLA | |
033C 29 1D BVS TSTN11 | |
033E E3 63 ADDD 3,S | |
0340 29 19 BVS TSTN11 | |
0342 58 ASLB | |
0343 49 ROLA | |
0344 29 15 BVS TSTN11 | |
0346 EB 60 ADDB 0,S | |
0348 89 00 ADCA #0 | |
034A 29 0F BVS TSTN11 | |
034C ED 63 STD 3,S | |
034E 32 61 LEAS 1,S | |
0350 35 10 PULS X | |
0352 20 D3 BRA TSTN03 | |
0354 35 06 TSTN07: PULS D | |
0356 1C FE ANDCC #$FE | |
0358 1C FD TSTN09: ANDCC #$FD | |
035A 39 RTS | |
035B AE 61 TSTN11: LDX 1,S | |
035D 32 65 LEAS 5,S | |
035F 1A 03 ORCC #$03 | |
0361 39 RTS | |
0362 ;****************************** | |
0362 ;****************************** | |
0362 10 DF 0A TSTSTK: STS SAVESP | |
0365 DC 0A LDD SAVESP | |
0367 83 00 30 SUBD #STKCUS | |
036A 93 04 SUBD STKLIM | |
036C 39 RTS | |
036D ;****************************** | |
036D ;****************************** | |
036D BD 04 FD PEEK: JSR PAREXP | |
0370 34 06 PSHS D | |
0372 34 10 PSHS X | |
0374 E6 72 LDB [2,S] | |
0376 35 10 PULS X | |
0378 32 62 LEAS 2,S | |
037A 4F CLRA | |
037B 39 RTS | |
037C ;****************************** | |
037C ;****************************** | |
037C BD 04 FD POKE: JSR PAREXP | |
037F 34 06 PSHS D | |
0381 BD 02 5B JSR SKIPSP | |
0384 81 3D CMPA #"=" | |
0386 27 03 BEQ POKE05 | |
0388 7E 01 55 JMP ERRORS | |
038B 30 01 POKE05: LEAX 1,X | |
038D BD 04 43 JSR EXPR | |
0390 BD 05 31 JSR TSTEOL | |
0393 34 10 PSHS X | |
0395 E7 72 STB [2,S] | |
0397 35 10 PULS X | |
0399 32 62 LEAS 2,S | |
039B 7E 01 FC JMP ENDS02 | |
039E ;****************************** | |
039E ;****************************** | |
039E BD 02 5B TSTFUN: JSR SKIPSP | |
03A1 9F 08 STX CURSOR | |
03A3 8E 03 AE LDX #FUNT | |
03A6 BD 02 21 JSR FAN00 | |
03A9 25 02 BCS TSTF05 | |
03AB 34 06 PSHS D | |
03AD 39 TSTF05: RTS | |
03AE ;****************************** | |
03AE ;****************************** | |
03AE 55 53 52 FUNT: DB "USR" | |
03B1 04 FCB EOL | |
03B2 02 A4 FDB USER | |
03B4 50 45 45 4B DB "PEEK" | |
03B8 04 FCB EOL | |
03B9 03 6D FDB PEEK | |
03BB 4D 45 4D DB "MEM" | |
03BE 04 FCB EOL | |
03BF 03 62 FDB TSTSTK | |
03C1 04 FCB EOL | |
03C2 ;****************************** | |
03C2 ;****************************** | |
03C2 9E 00 FLINE: LDX USRBAS | |
03C4 9C 02 FNDLIN: CMPX USRTOP | |
03C6 26 03 BNE FND03 | |
03C8 1A 03 ORCC #$03 | |
03CA 39 RTS | |
03CB 10 A3 00 FND03: CMPD 0,X | |
03CE 26 03 BNE FND05 | |
03D0 1C FC ANDCC #$FC | |
03D2 39 RTS | |
03D3 24 05 FND05: BCC FND07 | |
03D5 1A 01 ORCC #$01 | |
03D7 1C FD ANDCC #$FD | |
03D9 39 RTS | |
03DA 34 02 FND07: PSHS A | |
03DC 86 04 LDA #EOL | |
03DE 30 01 LEAX 1,X | |
03E0 30 01 FND09: LEAX 1,X | |
03E2 A1 00 CMPA 0,X | |
03E4 26 FA BNE FND09 | |
03E6 35 02 PULS A | |
03E8 30 01 LEAX 1,X | |
03EA 20 D8 BRA FNDLIN | |
03EC ;****************************** | |
03EC ;****************************** | |
03EC 8D 55 RELEXP: BSR EXPR | |
03EE 34 06 PSHS D | |
03F0 5F CLRB | |
03F1 BD 02 5B JSR SKIPSP | |
03F4 81 3D CMPA #"=" | |
03F6 27 23 BEQ REL06 | |
03F8 81 3C CMPA #"<" | |
03FA 26 10 BNE REL03 | |
03FC 30 01 LEAX 1,X | |
03FE 5C INCB | |
03FF BD 02 5B JSR SKIPSP | |
0402 81 3E CMPA #">" | |
0404 26 11 BNE REL05 | |
0406 30 01 LEAX 1,X | |
0408 CB 04 ADDB #4 | |
040A 20 13 BRA REL07 | |
040C 81 3E REL03: CMPA #">" | |
040E 26 5F BNE EXPR06 | |
0410 30 01 LEAX 1,X | |
0412 CB 04 ADDB #4 | |
0414 BD 02 5B JSR SKIPSP | |
0417 81 3D REL05: CMPA #"=" | |
0419 26 04 BNE REL07 | |
041B 30 01 REL06: LEAX 1,X | |
041D CB 02 ADDB #2 | |
041F 34 04 REL07: PSHS B | |
0421 8D 20 BSR EXPR | |
0423 34 10 PSHS X | |
0425 A3 63 SUBD 3,S | |
0427 1F A8 TFR CC,A | |
0429 44 LSRA | |
042A 1F 89 TFR A,B | |
042C 48 ASLA | |
042D 48 ASLA | |
042E 34 04 PSHS B | |
0430 AB E0 ADDA ,S+ | |
0432 84 06 ANDA #$06 | |
0434 26 01 BNE REL08 | |
0436 4C INCA | |
0437 5F REL08: CLRB | |
0438 A4 62 ANDA 2,S | |
043A 27 01 BEQ REL09 | |
043C 53 COMB | |
043D 4F REL09: CLRA | |
043E 35 10 PULS X | |
0440 32 63 LEAS 3,S | |
0442 39 RTS | |
0443 ;****************************** | |
0443 ;****************************** | |
0443 6F E2 EXPR: CLR ,-S | |
0445 6F E2 CLR ,-S | |
0447 BD 02 5B JSR SKIPSP | |
044A 81 2D CMPA #"-" | |
044C 27 17 BEQ EXPR05 | |
044E 81 2B CMPA #"+" | |
0450 26 02 BNE EXPR03 | |
0452 30 01 EXPR02: LEAX 1,X | |
0454 8D 1C EXPR03: BSR TERM | |
0456 E3 60 EXPR04: ADDD 0,S | |
0458 ED 60 STD 0,S | |
045A BD 02 5B JSR SKIPSP | |
045D 81 2B CMPA #"+" | |
045F 27 F1 BEQ EXPR02 | |
0461 81 2D CMPA #"-" | |
0463 26 0A BNE EXPR06 | |
0465 30 01 EXPR05: LEAX 1,X | |
0467 8D 09 BSR TERM | |
0469 40 NEGA | |
046A 50 NEGB | |
046B 82 00 SBCA #0 | |
046D 20 E7 BRA EXPR04 | |
046F 35 06 EXPR06: PULS D | |
0471 39 RTS | |
0472 ;****************************** | |
0472 ;****************************** | |
0472 BD 04 E5 TERM: JSR FACT | |
0475 34 06 PSHS D | |
0477 BD 02 5B TERM03: JSR SKIPSP | |
047A 81 2A CMPA #"*" | |
047C 27 48 BEQ TERM07 | |
047E 81 2F CMPA #"/" | |
0480 27 03 BEQ TERM05 | |
0482 35 06 PULS D | |
0484 39 RTS | |
0485 30 01 TERM05: LEAX 1,X | |
0487 8D 5C BSR FACT | |
0489 34 10 PSHS X | |
048B 30 62 LEAX 2,S | |
048D 34 06 PSHS D | |
048F A8 00 EORA 0,X | |
0491 BD 05 24 JSR ABSX | |
0494 30 60 LEAX 0,S | |
0496 BD 05 24 JSR ABSX | |
0499 34 02 PSHS A | |
049B 86 11 LDA #17 | |
049D 34 02 PSHS A | |
049F 4F CLRA | |
04A0 5F CLRB | |
04A1 A3 62 DIV05: SUBD 2,S | |
04A3 24 06 BCC DIV07 | |
04A5 E3 62 ADDD 2,S | |
04A7 1C FE ANDCC #$FE | |
04A9 20 02 BRA DIV09 | |
04AB 1A 01 DIV07: ORCC #$01 | |
04AD 69 67 DIV09: ROL 7,S | |
04AF 69 66 ROL 6,S | |
04B1 59 ROLB | |
04B2 49 ROLA | |
04B3 6A 60 DEC 0,S | |
04B5 26 EA BNE DIV05 | |
04B7 A6 61 LDA 1,S | |
04B9 32 64 LEAS 4,S | |
04BB 4D TSTA | |
04BC 2A 04 BPL TERM06 | |
04BE 30 62 LEAX 2,S | |
04C0 8D 66 BSR NEGX | |
04C2 35 10 TERM06: PULS X | |
04C4 20 B1 BRA TERM03 | |
04C6 30 01 TERM07: LEAX 1,X | |
04C8 8D 1B BSR FACT | |
04CA 34 04 MULT: PSHS B | |
04CC E6 62 LDB 2,S | |
04CE 3D MUL | |
04CF A6 61 LDA 1,S | |
04D1 E7 61 STB 1,S | |
04D3 E6 60 LDB 0,S | |
04D5 3D MUL | |
04D6 A6 62 LDA 2,S | |
04D8 E7 62 STB 2,S | |
04DA 35 04 PULS B | |
04DC 3D MUL | |
04DD AB 60 ADDA 0,S | |
04DF AB 61 ADDA 1,S | |
04E1 ED 60 STD 0,S | |
04E3 20 92 BRA TERM03 | |
04E5 ;****************************** | |
04E5 ;****************************** | |
04E5 BD 02 8B FACT: JSR TSTVAR | |
04E8 25 09 BCS FACT03 | |
04EA 34 10 PSHS X | |
04EC 1F 01 TFR D,X | |
04EE EC 00 LDD 0,X | |
04F0 35 10 PULS X | |
04F2 39 FACT02: RTS | |
04F3 BD 02 EA FACT03: JSR TSTNBR | |
04F6 24 FA BCC FACT02 | |
04F8 BD 03 9E JSR TSTFUN | |
04FB 24 F5 BCC FACT02 | |
04FD 8D 11 PAREXP: BSR ARGONE | |
04FF 34 02 PSHS A | |
0501 BD 02 5B JSR SKIPSP | |
0504 81 29 CMPA #")" | |
0506 35 02 PULS A | |
0508 26 03 BNE FACT05 | |
050A 30 01 LEAX 1,X | |
050C 39 RTS | |
050D 7E 01 55 FACT05: JMP ERRORS | |
0510 ;****************************** | |
0510 ;****************************** | |
0510 BD 03 62 ARGONE: JSR TSTSTK | |
0513 24 03 BCC FACT04 | |
0515 7E 01 4D JMP ERRORF | |
0518 BD 02 5B FACT04: JSR SKIPSP | |
051B 81 28 CMPA #"(" | |
051D 26 EE BNE FACT05 | |
051F 30 01 LEAX 1,X | |
0521 7E 04 43 JMP EXPR | |
0524 ;****************************** | |
0524 ;****************************** | |
0524 6D 00 ABSX: TST 0,X | |
0526 2A 08 BPL NEG05 | |
0528 60 00 NEGX: NEG 0,X | |
052A 60 01 NEG 1,X | |
052C 24 02 BCC NEG05 | |
052E 6A 00 DEC 0,X | |
0530 39 NEG05: RTS | |
0531 ;****************************** | |
0531 ;****************************** | |
0531 34 02 TSTEOL: PSHS A | |
0533 BD 02 5B JSR SKIPSP | |
0536 81 04 CMPA #EOL | |
0538 27 03 BEQ TEOL03 | |
053A 7E 01 55 JMP ERRORS | |
053D 30 01 TEOL03: LEAX 1,X | |
053F 35 02 PULS A | |
0541 39 RTS | |
0542 ;****************************** | |
0542 ;****************************** | |
0542 BD 02 8B LET: JSR TSTVAR | |
0545 24 03 BCC LET03 | |
0547 7E 01 55 JMP ERRORS | |
054A 34 06 LET03: PSHS D | |
054C BD 02 5B JSR SKIPSP | |
054F 81 3D CMPA #"=" | |
0551 27 03 BEQ LET05 | |
0553 7E 01 55 JMP ERRORS | |
0556 30 01 LET05: LEAX 1,X | |
0558 BD 04 43 JSR EXPR | |
055B 8D D4 BSR TSTEOL | |
055D 9F 08 STX CURSOR | |
055F 35 10 PULS X | |
0561 ED 00 STD 0,X | |
0563 9E 08 LDX CURSOR | |
0565 7E 01 FC JMP ENDS02 | |
0568 ;****************************** | |
0568 ;****************************** | |
0568 BD 03 EC IF: JSR RELEXP | |
056B 5D TSTB | |
056C 27 03 BEQ IF03 | |
056E 7E 02 0D JMP MSLINE | |
0571 7E 01 F3 IF03: JMP REM | |
0574 ;****************************** | |
0574 ;****************************** | |
0574 BD 04 43 GOTO: JSR EXPR | |
0577 8D B8 BSR TSTEOL | |
0579 BD 03 C2 JSR FLINE | |
057C 25 0F BCS GOSB04 | |
057E 7E 02 09 JMP NXTLIN | |
0581 ;****************************** | |
0581 ;****************************** | |
0581 BD 04 43 GOSUB: JSR EXPR | |
0584 8D AB BSR TSTEOL | |
0586 9F 08 STX CURSOR | |
0588 BD 03 C2 JSR FLINE | |
058B 24 03 BCC GOSB03 | |
058D 7E 01 5E GOSB04: JMP ERRORR | |
0590 BD 03 62 GOSB03: JSR TSTSTK | |
0593 24 03 BCC GOSB05 | |
0595 7E 01 4D JMP ERRORF | |
0598 DC 08 GOSB05: LDD CURSOR | |
059A 34 06 PSHS D | |
059C DC 0C LDD LINENB | |
059E 34 06 PSHS D | |
05A0 BD 02 09 JSR NXTLIN | |
05A3 35 06 PULS D | |
05A5 DD 0C STD LINENB | |
05A7 35 10 PULS X | |
05A9 7E 01 FC JMP ENDS02 | |
05AC ;****************************** | |
05AC ;****************************** | |
05AC RETURN: EQU TSTEOL | |
05AC ;****************************** | |
05AC ;****************************** | |
05AC BD 02 5B PRINT: JSR SKIPSP | |
05AF 81 2C PR01: CMPA #"," | |
05B1 27 36 BEQ PR05 | |
05B3 81 3B CMPA #";" | |
05B5 27 3D BEQ PR07 | |
05B7 81 04 CMPA #EOL | |
05B9 27 25 BEQ PR04 | |
05BB 81 22 CMPA #$22 | |
05BD 26 06 BNE PR02 | |
05BF 30 01 LEAX 1,X | |
05C1 8D 42 BSR PRNTQS | |
05C3 20 09 BRA PR03 | |
05C5 BD 04 43 PR02: JSR EXPR | |
05C8 34 10 PSHS X | |
05CA 8D 47 BSR PRNTN | |
05CC 35 10 PULS X | |
05CE BD 02 5B PR03: JSR SKIPSP | |
05D1 81 2C CMPA #"," | |
05D3 27 14 BEQ PR05 | |
05D5 81 3B CMPA #";" | |
05D7 27 1B BEQ PR07 | |
05D9 81 04 CMPA #EOL | |
05DB 27 03 BEQ PR04 | |
05DD 7E 01 55 JMP ERRORS | |
05E0 34 10 PR04: PSHS X | |
05E2 BD 01 3E JSR CRLF | |
05E5 35 10 PULS X | |
05E7 20 14 BRA PR08 | |
05E9 C6 07 PR05: LDB #$7 | |
05EB 86 20 PR06: LDA #SPACE | |
05ED BD 07 AA JSR PUTCHR | |
05F0 D5 12 BITB ZONE | |
05F2 26 F7 BNE PR06 | |
05F4 30 01 PR07: LEAX 1,X | |
05F6 BD 02 5B JSR SKIPSP | |
05F9 81 04 CMPA #EOL | |
05FB 26 B2 BNE PR01 | |
05FD 30 01 PR08: LEAX 1,X | |
05FF 7E 01 FC JMP ENDS02 | |
0602 ;* | |
0602 ;* | |
0602 BD 07 AA PRQ01: JSR PUTCHR | |
0605 A6 80 PRNTQS: LDA ,X+ | |
0607 81 04 CMPA #EOL | |
0609 26 03 BNE PRQ03 | |
060B 7E 01 55 JMP ERRORS | |
060E 81 22 PRQ03: CMPA #$22 | |
0610 26 F0 BNE PRQ01 | |
0612 39 RTS | |
0613 ;* | |
0613 4D PRNTN: TSTA | |
0614 2A 0D BPL PRN03 | |
0616 40 NEGA | |
0617 50 NEGB | |
0618 82 00 SBCA #0 | |
061A 34 02 PSHS A | |
061C 86 2D LDA #"-" | |
061E BD 07 AA JSR PUTCHR | |
0621 35 02 PULS A | |
0623 8E 06 52 PRN03: LDX #PRNPT-2 | |
0626 30 02 PRN05: LEAX 2,X | |
0628 10 A3 00 CMPD 0,X | |
062B 24 05 BCC PRN07 | |
062D 8C 06 5C CMPX #PRNPTO | |
0630 26 F4 BNE PRN05 | |
0632 0F 10 PRN07: CLR CHAR | |
0634 10 A3 00 PRN09: CMPD 0,X | |
0637 25 06 BCS PRN11 | |
0639 A3 00 SUBD 0,X | |
063B 0C 10 INC CHAR | |
063D 20 F5 BRA PRN09 | |
063F 34 02 PRN11: PSHS A | |
0641 86 30 LDA #"0" | |
0643 9B 10 ADDA CHAR | |
0645 BD 07 AA JSR PUTCHR | |
0648 35 02 PULS A | |
064A 8C 06 5C CMPX #PRNPTO | |
064D 27 04 BEQ PRN13 | |
064F 30 02 LEAX 2,X | |
0651 20 DF BRA PRN07 | |
0653 39 PRN13: RTS | |
0654 27 10 PRNPT: FDB 10000 | |
0656 03 E8 FDB 1000 | |
0658 00 64 FDB 100 | |
065A 00 0A FDB 10 | |
065C 00 01 PRNPTO: FDB 1 | |
065E ;* | |
065E 8E 06 56 PRNT4: LDX #PRNPT+2 | |
0661 20 CF BRA PRN07 | |
0663 ;****************************** | |
0663 ;****************************** | |
0663 BD 02 8B INPUT: JSR TSTVAR | |
0666 25 3C BCS IN11 | |
0668 34 06 PSHS D | |
066A 9F 08 STX CURSOR | |
066C 86 3F IN03: LDA #"?" | |
066E BD 07 AA JSR PUTCHR | |
0671 BD 01 90 JSR GETLIN | |
0674 BD 02 5B IN05: JSR SKIPSP | |
0677 81 04 CMPA #EOL | |
0679 27 F1 BEQ IN03 | |
067B BD 02 D6 JSR TSTSNB | |
067E 24 0B BCC IN07 | |
0680 8E 06 B8 LDX #RMESS | |
0683 BD 01 37 JSR PUTSTR | |
0686 BD 01 3E JSR CRLF | |
0689 20 E1 BRA IN03 | |
068B 9F 0E IN07: STX SCRTCH | |
068D 35 10 PULS X | |
068F ED 00 STD 0,X | |
0691 9E 08 LDX CURSOR | |
0693 BD 02 5B JSR SKIPSP | |
0696 81 2C CMPA #"," | |
0698 27 03 BEQ IN09 | |
069A 7E 01 F9 JMP ENDSMT | |
069D 30 01 IN09: LEAX 1,X | |
069F BD 02 8B JSR TSTVAR | |
06A2 24 03 BCC IN13 | |
06A4 7E 01 55 IN11: JMP ERRORS | |
06A7 34 06 IN13: PSHS D | |
06A9 34 10 PSHS X | |
06AB 9E 0E LDX SCRTCH | |
06AD BD 02 5B JSR SKIPSP | |
06B0 81 2C CMPA #"," | |
06B2 26 C0 BNE IN05 | |
06B4 30 01 LEAX 1,X | |
06B6 20 BC BRA IN05 | |
06B8 52 45 2D 45 4E 54 45 52 RMESS: DB "RE-ENTER" | |
06C0 04 FCB EOL | |
06C1 ;****************************** | |
06C1 ;****************************** | |
06C1 9E 06 RUN: LDX STKTOP | |
06C3 86 34 LDA #52 | |
06C5 6F 80 RUN01: CLR ,X+ | |
06C7 4A DECA | |
06C8 26 FB BNE RUN01 | |
06CA 9E 00 LDX USRBAS | |
06CC 7E 02 02 JMP REM05 | |
06CF ;****************************** | |
06CF ;****************************** | |
06CF BD 02 EA LIST: JSR TSTNBR | |
06D2 24 08 BCC LIST03 | |
06D4 4F CLRA | |
06D5 5F CLRB | |
06D6 DD 08 STD CURSOR | |
06D8 86 7F LDA #$7F | |
06DA 20 17 BRA LIST07 | |
06DC DD 08 LIST03: STD CURSOR | |
06DE BD 02 5B JSR SKIPSP | |
06E1 81 2C CMPA #"," | |
06E3 27 04 BEQ LIST05 | |
06E5 96 08 LDA CURSOR | |
06E7 20 0A BRA LIST07 | |
06E9 30 01 LIST05: LEAX 1,X | |
06EB BD 02 EA JSR TSTNBR | |
06EE 24 03 BCC LIST07 | |
06F0 7E 01 55 JMP ERRORS | |
06F3 BD 05 31 LIST07: JSR TSTEOL | |
06F6 34 06 PSHS D | |
06F8 DC 08 LDD CURSOR | |
06FA 9F 08 STX CURSOR | |
06FC BD 03 C2 JSR FLINE | |
06FF 9C 02 LIST09: CMPX USRTOP | |
0701 27 28 BEQ LIST10 | |
0703 35 06 PULS D | |
0705 10 A3 00 CMPD 0,X | |
0708 25 28 BCS LIST11 | |
070A 34 06 PSHS D | |
070C EC 81 LDD ,X++ | |
070E 34 10 PSHS X | |
0710 BD 06 5E JSR PRNT4 | |
0713 35 10 PULS X | |
0715 86 20 LDA #SPACE | |
0717 BD 07 AA JSR PUTCHR | |
071A BD 01 37 JSR PUTSTR | |
071D 30 01 LEAX 1,X | |
071F 34 10 PSHS X | |
0721 BD 01 3E JSR CRLF | |
0724 35 10 PULS X | |
0726 BD 07 9C JSR TSTBRK | |
0729 20 D4 BRA LIST09 | |
072B 32 62 LIST10: LEAS 2,S | |
072D 86 03 LDA #ETX | |
072F BD 07 AA JSR PUTCHR | |
0732 9E 08 LIST11: LDX CURSOR | |
0734 7E 01 FC JMP ENDS02 | |
0737 ;****************************** | |
0737 ;****************************** | |
0737 4C 45 54 VERBT: DB "LET" | |
073A 04 FCB EOL | |
073B 05 42 FDB LET | |
073D 49 46 DB "IF" | |
073F 04 FCB EOL | |
0740 05 68 FDB IF | |
0742 47 4F 54 4F DB "GOTO" | |
0746 04 FCB EOL | |
0747 05 74 FDB GOTO | |
0749 47 4F 53 55 42 DB "GOSUB" | |
074E 04 FCB EOL | |
074F 05 81 FDB GOSUB | |
0751 52 45 54 55 52 4E DB "RETURN" | |
0757 04 FCB EOL | |
0758 05 31 FDB RETURN | |
075A 50 4F 4B 45 DB "POKE" | |
075E 04 FCB EOL | |
075F 03 7C FDB POKE | |
0761 50 52 49 4E 54 DB "PRINT" | |
0766 04 FCB EOL | |
0767 05 AC FDB PRINT | |
0769 49 4E 50 55 54 DB "INPUT" | |
076E 04 FCB EOL | |
076F 06 63 FDB INPUT | |
0771 52 45 4D DB "REM" | |
0774 04 FCB EOL | |
0775 01 F3 FDB REM | |
0777 53 54 4F 50 DB "STOP" | |
077B 04 FCB EOL | |
077C 01 6E FDB END | |
077E 45 4E 44 DB "END" | |
0781 04 FCB EOL | |
0782 01 6E FDB END | |
0784 52 55 4E DB "RUN" | |
0787 04 FCB EOL | |
0788 06 C1 FDB RUN | |
078A 4C 49 53 54 DB "LIST" | |
078E 04 FCB EOL | |
078F 06 CF FDB LIST | |
0791 4E 45 57 DB "NEW" | |
0794 04 FCB EOL | |
0795 00 1E FDB CLEAR | |
0797 3F DB "?" | |
0798 04 FCB EOL | |
0799 05 AC FDB PRINT | |
079B 04 FCB EOL | |
079C ;****************************** | |
079C ;****************************** | |
079C 8D 2A TSTBRK: BSR BRKEEE | |
079E 27 09 BEQ GETC05 | |
07A0 8D 0D GETCHR: BSR INEEE | |
07A2 81 03 CMPA #ETX | |
07A4 26 03 BNE GETC05 | |
07A6 7E 01 66 JMP BREAK | |
07A9 39 GETC05: RTS | |
07AA 0C 12 PUTCHR: INC ZONE | |
07AC 7E 07 B9 JMP OUTEEE | |
07AF ;****************************** | |
07AF ;****************************** | |
07AF 8D 17 INEEE: BSR BRKEEE | |
07B1 27 FC BEQ INEEE | |
07B3 B6 83 FF LDA RECEV | |
07B6 84 7F ANDA #$7F | |
07B8 39 RTS | |
07B9 34 02 OUTEEE: PSHS A | |
07BB B6 83 FE OUT01: LDA TRCS | |
07BE 85 02 BITA #TDRE | |
07C0 27 F9 BEQ OUT01 | |
07C2 35 02 PULS A | |
07C4 B7 83 FF STA TRANS | |
07C7 39 RTS | |
07C8 34 02 BRKEEE: PSHS A | |
07CA B6 83 FE BRK03: LDA TRCS | |
07CD 85 20 BITA #ORFE | |
07CF 27 05 BEQ BRK05 | |
07D1 B6 83 FF LDA RECEV | |
07D4 20 F4 BRA BRK03 | |
07D6 85 01 BRK05: BITA #RDRF | |
07D8 35 02 PULS A | |
07DA 39 RTS | |
07DB ;* | |
07DB 86 03 LDA #CNTL1 | |
07DD B7 83 FE STA RMCR | |
07E0 86 15 LDA #CNTL2 | |
07E2 B7 83 FE STA TRCS | |
07E5 INTEEE: EQU $ | |
07E5 39 RTS | |
07E6 ;****************************** | |
07E6 ;****************************** | |
EOL: 0004 DEFINED AT LINE 18 | |
> USED AT LINE 127 | |
> USED AT LINE 232 | |
> USED AT LINE 235 | |
> USED AT LINE 238 | |
> USED AT LINE 241 | |
> USED AT LINE 244 | |
> USED AT LINE 560 | |
> USED AT LINE 563 | |
> USED AT LINE 566 | |
> USED AT LINE 568 | |
> USED AT LINE 966 | |
> USED AT LINE 1027 | |
> USED AT LINE 1030 | |
> USED AT LINE 1033 | |
> USED AT LINE 1036 | |
> USED AT LINE 1039 | |
> USED AT LINE 1042 | |
> USED AT LINE 1045 | |
> USED AT LINE 1048 | |
> USED AT LINE 1051 | |
> USED AT LINE 1054 | |
> USED AT LINE 1057 | |
> USED AT LINE 1060 | |
> USED AT LINE 1063 | |
> USED AT LINE 1066 | |
> USED AT LINE 1069 | |
> USED AT LINE 1071 | |
ETX: 0003 DEFINED AT LINE 19 | |
SPACE: 0020 DEFINED AT LINE 20 | |
CR: 000D DEFINED AT LINE 21 | |
> USED AT LINE 227 | |
LF: 000A DEFINED AT LINE 22 | |
> USED AT LINE 227 | |
BS: 0008 DEFINED AT LINE 23 | |
CAN: 0018 DEFINED AT LINE 24 | |
BELL: 0007 DEFINED AT LINE 25 | |
FILL: 0000 DEFINED AT LINE 26 | |
DEL: 007F DEFINED AT LINE 27 | |
BSIZE: 0049 DEFINED AT LINE 28 | |
> USED AT LINE 48 | |
STKCUS: 0030 DEFINED AT LINE 29 | |
BACIA: 83FE DEFINED AT LINE 31 | |
> USED AT LINE 32 | |
> USED AT LINE 33 | |
> USED AT LINE 34 | |
> USED AT LINE 35 | |
RMCR: 83FE DEFINED AT LINE 32 | |
> USED AT LINE 1108 | |
TRCS: 83FE DEFINED AT LINE 33 | |
> USED AT LINE 1091 | |
> USED AT LINE 1098 | |
> USED AT LINE 1110 | |
RECEV: 83FF DEFINED AT LINE 34 | |
> USED AT LINE 1087 | |
> USED AT LINE 1101 | |
TRANS: 83FF DEFINED AT LINE 35 | |
> USED AT LINE 1095 | |
CNTL1: 0003 DEFINED AT LINE 36 | |
CNTL2: 0015 DEFINED AT LINE 37 | |
RDRF: 0001 DEFINED AT LINE 38 | |
ORFE: 0020 DEFINED AT LINE 39 | |
TDRE: 0002 DEFINED AT LINE 40 | |
LORAM: 0080 DEFINED AT LINE 43 | |
BUFFER: 0200 DEFINED AT LINE 44 | |
> USED AT LINE 48 | |
> USED AT LINE 49 | |
RAMSIZ: 2000 DEFINED AT LINE 45 | |
> USED AT LINE 49 | |
ROMADR: F000 DEFINED AT LINE 46 | |
RAMBEG: 0249 DEFINED AT LINE 48 | |
RAMEND: 2200 DEFINED AT LINE 49 | |
RAMPAT: AA0F DEFINED AT LINE 51 | |
ROMPAT: F055 DEFINED AT LINE 52 | |
USRBAS: 0000 DEFINED AT LINE 56 | |
> USED AT LINE 85 | |
> USED AT LINE 94 | |
> USED AT LINE 139 | |
> USED AT LINE 571 | |
> USED AT LINE 974 | |
USRTOP: 0002 DEFINED AT LINE 57 | |
> USED AT LINE 86 | |
> USED AT LINE 112 | |
> USED AT LINE 135 | |
> USED AT LINE 148 | |
> USED AT LINE 158 | |
> USED AT LINE 180 | |
> USED AT LINE 182 | |
> USED AT LINE 183 | |
> USED AT LINE 187 | |
> USED AT LINE 190 | |
> USED AT LINE 313 | |
> USED AT LINE 572 | |
> USED AT LINE 1000 | |
STKLIM: 0004 DEFINED AT LINE 58 | |
> USED AT LINE 87 | |
> USED AT LINE 113 | |
> USED AT LINE 159 | |
> USED AT LINE 184 | |
> USED AT LINE 188 | |
> USED AT LINE 520 | |
STKTOP: 0006 DEFINED AT LINE 59 | |
> USED AT LINE 78 | |
> USED AT LINE 82 | |
> USED AT LINE 91 | |
> USED AT LINE 406 | |
> USED AT LINE 969 | |
CURSOR: 0008 DEFINED AT LINE 60 | |
> USED AT LINE 95 | |
> USED AT LINE 134 | |
> USED AT LINE 141 | |
> USED AT LINE 193 | |
> USED AT LINE 201 | |
> USED AT LINE 327 | |
> USED AT LINE 332 | |
> USED AT LINE 336 | |
> USED AT LINE 429 | |
> USED AT LINE 431 | |
> USED AT LINE 551 | |
> USED AT LINE 794 | |
> USED AT LINE 797 | |
> USED AT LINE 817 | |
> USED AT LINE 824 | |
> USED AT LINE 932 | |
> USED AT LINE 948 | |
> USED AT LINE 982 | |
> USED AT LINE 985 | |
> USED AT LINE 989 | |
> USED AT LINE 997 | |
> USED AT LINE 998 | |
> USED AT LINE 1022 | |
SAVESP: 000A DEFINED AT LINE 61 | |
> USED AT LINE 143 | |
> USED AT LINE 152 | |
> USED AT LINE 154 | |
> USED AT LINE 157 | |
> USED AT LINE 191 | |
> USED AT LINE 197 | |
> USED AT LINE 517 | |
> USED AT LINE 518 | |
LINENB: 000C DEFINED AT LINE 62 | |
> USED AT LINE 97 | |
> USED AT LINE 248 | |
> USED AT LINE 310 | |
> USED AT LINE 311 | |
> USED AT LINE 317 | |
> USED AT LINE 826 | |
> USED AT LINE 830 | |
SCRTCH: 000E DEFINED AT LINE 63 | |
> USED AT LINE 132 | |
> USED AT LINE 160 | |
> USED AT LINE 204 | |
> USED AT LINE 206 | |
> USED AT LINE 337 | |
> USED AT LINE 338 | |
> USED AT LINE 342 | |
> USED AT LINE 349 | |
> USED AT LINE 945 | |
> USED AT LINE 959 | |
CHAR: 0010 DEFINED AT LINE 64 | |
> USED AT LINE 151 | |
> USED AT LINE 155 | |
> USED AT LINE 181 | |
> USED AT LINE 192 | |
> USED AT LINE 196 | |
> USED AT LINE 203 | |
> USED AT LINE 207 | |
> USED AT LINE 209 | |
> USED AT LINE 335 | |
> USED AT LINE 343 | |
> USED AT LINE 345 | |
> USED AT LINE 352 | |
> USED AT LINE 903 | |
> USED AT LINE 907 | |
> USED AT LINE 911 | |
ZONE: 0012 DEFINED AT LINE 65 | |
> USED AT LINE 225 | |
> USED AT LINE 869 | |
> USED AT LINE 1081 | |
MODE: 0013 DEFINED AT LINE 66 | |
> USED AT LINE 92 | |
> USED AT LINE 98 | |
> USED AT LINE 280 | |
> USED AT LINE 301 | |
RESRVD: 0014 DEFINED AT LINE 67 | |
LOEND: 0015 DEFINED AT LINE 68 | |
BASIC: 0000 DEFINED AT LINE 76 | |
WARMS: 000C DEFINED AT LINE 78 | |
SETUP: 0014 DEFINED AT LINE 81 | |
> USED AT LINE 76 | |
SET03: 0018 DEFINED AT LINE 82 | |
CLEAR: 001E DEFINED AT LINE 84 | |
> USED AT LINE 1067 | |
CLR02: 0025 DEFINED AT LINE 87 | |
WMS05: 0027 DEFINED AT LINE 88 | |
> USED AT LINE 80 | |
CMDB: 0030 DEFINED AT LINE 91 | |
> USED AT LINE 110 | |
> USED AT LINE 255 | |
CMDE: 003C DEFINED AT LINE 96 | |
> USED AT LINE 108 | |
> USED AT LINE 124 | |
CMD01: 004A DEFINED AT LINE 102 | |
> USED AT LINE 99 | |
CMD02: 0060 DEFINED AT LINE 111 | |
> USED AT LINE 104 | |
CMD03: 006D DEFINED AT LINE 117 | |
> USED AT LINE 115 | |
CMD04: 0072 DEFINED AT LINE 119 | |
CMD05: 007F DEFINED AT LINE 125 | |
> USED AT LINE 105 | |
> USED AT LINE 118 | |
> USED AT LINE 122 | |
VSTR: 0082 DEFINED AT LINE 126 | |
EDITOR: 008D DEFINED AT LINE 130 | |
> USED AT LINE 123 | |
ED00: 00A1 DEFINED AT LINE 139 | |
> USED AT LINE 136 | |
ED01: 00A3 DEFINED AT LINE 140 | |
> USED AT LINE 138 | |
ED02: 00AE DEFINED AT LINE 145 | |
> USED AT LINE 147 | |
ED03: 00B4 DEFINED AT LINE 148 | |
> USED AT LINE 156 | |
ED35: 00C6 DEFINED AT LINE 157 | |
> USED AT LINE 149 | |
ED04: 00CC DEFINED AT LINE 160 | |
> USED AT LINE 142 | |
ED05: 00D0 DEFINED AT LINE 162 | |
> USED AT LINE 165 | |
ED55: 00DD DEFINED AT LINE 170 | |
> USED AT LINE 167 | |
ED06: 00E1 DEFINED AT LINE 172 | |
> USED AT LINE 176 | |
ED07: 0105 DEFINED AT LINE 190 | |
> USED AT LINE 186 | |
ED08: 0107 DEFINED AT LINE 191 | |
> USED AT LINE 199 | |
ED09: 0119 DEFINED AT LINE 200 | |
> USED AT LINE 194 | |
ED10: 0121 DEFINED AT LINE 204 | |
> USED AT LINE 211 | |
PUTS01: 0132 DEFINED AT LINE 215 | |
> USED AT LINE 219 | |
PUTSTR: 0137 DEFINED AT LINE 217 | |
> USED AT LINE 90 | |
> USED AT LINE 224 | |
> USED AT LINE 253 | |
> USED AT LINE 942 | |
> USED AT LINE 1012 | |
CRLF: 013E DEFINED AT LINE 223 | |
> USED AT LINE 88 | |
> USED AT LINE 93 | |
> USED AT LINE 245 | |
> USED AT LINE 254 | |
> USED AT LINE 258 | |
> USED AT LINE 285 | |
> USED AT LINE 863 | |
> USED AT LINE 943 | |
> USED AT LINE 1015 | |
CRLFST: 0146 DEFINED AT LINE 227 | |
ERRORF: 014D DEFINED AT LINE 230 | |
> USED AT LINE 189 | |
> USED AT LINE 756 | |
> USED AT LINE 823 | |
ERRORS: 0155 DEFINED AT LINE 233 | |
> USED AT LINE 125 | |
> USED AT LINE 419 | |
> USED AT LINE 539 | |
> USED AT LINE 751 | |
> USED AT LINE 777 | |
> USED AT LINE 785 | |
> USED AT LINE 790 | |
> USED AT LINE 861 | |
> USED AT LINE 883 | |
> USED AT LINE 956 | |
> USED AT LINE 994 | |
ERRORR: 015E DEFINED AT LINE 236 | |
> USED AT LINE 116 | |
> USED AT LINE 315 | |
> USED AT LINE 820 | |
BREAK: 0166 DEFINED AT LINE 239 | |
> USED AT LINE 1079 | |
END: 016E DEFINED AT LINE 242 | |
> USED AT LINE 1055 | |
> USED AT LINE 1058 | |
ER01: 0175 DEFINED AT LINE 245 | |
> USED AT LINE 230 | |
> USED AT LINE 233 | |
> USED AT LINE 236 | |
> USED AT LINE 239 | |
> USED AT LINE 242 | |
GL00: 018E DEFINED AT LINE 258 | |
> USED AT LINE 275 | |
GETLIN: 0190 DEFINED AT LINE 259 | |
> USED AT LINE 102 | |
> USED AT LINE 935 | |
GL03: 0193 DEFINED AT LINE 260 | |
> USED AT LINE 264 | |
> USED AT LINE 271 | |
> USED AT LINE 279 | |
> USED AT LINE 292 | |
GL04: 01A7 DEFINED AT LINE 269 | |
> USED AT LINE 266 | |
GL02: 01A9 DEFINED AT LINE 270 | |
> USED AT LINE 268 | |
> USED AT LINE 299 | |
> USED AT LINE 302 | |
GL05: 01AE DEFINED AT LINE 272 | |
> USED AT LINE 262 | |
GL06: 01C7 DEFINED AT LINE 284 | |
> USED AT LINE 281 | |
GL08: 01CE DEFINED AT LINE 287 | |
> USED AT LINE 283 | |
GL07: 01D6 DEFINED AT LINE 291 | |
> USED AT LINE 273 | |
GL09: 01EB DEFINED AT LINE 300 | |
> USED AT LINE 277 | |
REM00: 01F1 DEFINED AT LINE 305 | |
> USED AT LINE 308 | |
REM: 01F3 DEFINED AT LINE 306 | |
> USED AT LINE 805 | |
> USED AT LINE 1052 | |
ENDSMT: 01F9 DEFINED AT LINE 309 | |
> USED AT LINE 952 | |
ENDS02: 01FC DEFINED AT LINE 310 | |
> USED AT LINE 547 | |
> USED AT LINE 798 | |
> USED AT LINE 832 | |
> USED AT LINE 876 | |
> USED AT LINE 1023 | |
REM05: 0202 DEFINED AT LINE 313 | |
> USED AT LINE 975 | |
NXTLIN: 0209 DEFINED AT LINE 316 | |
> USED AT LINE 314 | |
> USED AT LINE 812 | |
> USED AT LINE 828 | |
MSLINE: 020D DEFINED AT LINE 318 | |
> USED AT LINE 109 | |
> USED AT LINE 804 | |
REM09: 0216 DEFINED AT LINE 322 | |
> USED AT LINE 312 | |
IMPLET: 0217 DEFINED AT LINE 323 | |
> USED AT LINE 320 | |
IFAN: 021A DEFINED AT LINE 326 | |
> USED AT LINE 319 | |
FAN00: 0221 DEFINED AT LINE 329 | |
> USED AT LINE 357 | |
> USED AT LINE 553 | |
FAN04: 022C DEFINED AT LINE 335 | |
> USED AT LINE 331 | |
FAN05: 0232 DEFINED AT LINE 338 | |
> USED AT LINE 347 | |
FAN07: 024D DEFINED AT LINE 352 | |
> USED AT LINE 340 | |
FAN08: 024F DEFINED AT LINE 353 | |
> USED AT LINE 355 | |
NXTNSP: 0259 DEFINED AT LINE 360 | |
> USED AT LINE 363 | |
SKIPSP: 025B DEFINED AT LINE 361 | |
> USED AT LINE 106 | |
> USED AT LINE 131 | |
> USED AT LINE 306 | |
> USED AT LINE 326 | |
> USED AT LINE 395 | |
> USED AT LINE 413 | |
> USED AT LINE 423 | |
> USED AT LINE 436 | |
> USED AT LINE 449 | |
> USED AT LINE 536 | |
> USED AT LINE 550 | |
> USED AT LINE 598 | |
> USED AT LINE 605 | |
> USED AT LINE 615 | |
> USED AT LINE 646 | |
> USED AT LINE 655 | |
> USED AT LINE 672 | |
> USED AT LINE 745 | |
> USED AT LINE 757 | |
> USED AT LINE 774 | |
> USED AT LINE 787 | |
> USED AT LINE 838 | |
> USED AT LINE 854 | |
> USED AT LINE 872 | |
> USED AT LINE 936 | |
> USED AT LINE 949 | |
> USED AT LINE 960 | |
> USED AT LINE 986 | |
TSTHEX: 0262 DEFINED AT LINE 367 | |
> USED AT LINE 459 | |
TSTLTR: 0273 DEFINED AT LINE 378 | |
> USED AT LINE 396 | |
> USED AT LINE 400 | |
TST03: 027B DEFINED AT LINE 382 | |
> USED AT LINE 370 | |
> USED AT LINE 372 | |
> USED AT LINE 379 | |
> USED AT LINE 387 | |
> USED AT LINE 389 | |
> USED AT LINE 401 | |
TSTDIG: 027E DEFINED AT LINE 386 | |
> USED AT LINE 367 | |
> USED AT LINE 450 | |
> USED AT LINE 483 | |
TST05: 0288 DEFINED AT LINE 391 | |
> USED AT LINE 368 | |
> USED AT LINE 381 | |
TSTVAR: 028B DEFINED AT LINE 395 | |
> USED AT LINE 732 | |
> USED AT LINE 783 | |
> USED AT LINE 929 | |
> USED AT LINE 954 | |
TSTV02: 02A1 DEFINED AT LINE 407 | |
TSTV03: 02A3 DEFINED AT LINE 408 | |
> USED AT LINE 397 | |
USER: 02A4 DEFINED AT LINE 411 | |
> USED AT LINE 561 | |
USER02: 02B6 DEFINED AT LINE 419 | |
> USED AT LINE 426 | |
USER03: 02B9 DEFINED AT LINE 420 | |
> USED AT LINE 415 | |
USER05: 02CB DEFINED AT LINE 428 | |
> USED AT LINE 418 | |
TSTSNB: 02D6 DEFINED AT LINE 436 | |
> USED AT LINE 939 | |
TSN02: 02E9 DEFINED AT LINE 446 | |
> USED AT LINE 441 | |
TSTNBR: 02EA DEFINED AT LINE 449 | |
> USED AT LINE 103 | |
> USED AT LINE 438 | |
> USED AT LINE 440 | |
> USED AT LINE 739 | |
> USED AT LINE 978 | |
> USED AT LINE 992 | |
TSTN20: 02F8 DEFINED AT LINE 455 | |
TSTN23: 02FE DEFINED AT LINE 458 | |
> USED AT LINE 478 | |
TSTN02: 0321 DEFINED AT LINE 479 | |
> USED AT LINE 451 | |
TSTN03: 0327 DEFINED AT LINE 482 | |
> USED AT LINE 506 | |
TSTN07: 0354 DEFINED AT LINE 507 | |
> USED AT LINE 460 | |
> USED AT LINE 484 | |
TSTN09: 0358 DEFINED AT LINE 509 | |
> USED AT LINE 454 | |
TSTN11: 035B DEFINED AT LINE 511 | |
> USED AT LINE 466 | |
> USED AT LINE 491 | |
> USED AT LINE 494 | |
> USED AT LINE 496 | |
> USED AT LINE 499 | |
> USED AT LINE 502 | |
TSTSTK: 0362 DEFINED AT LINE 517 | |
> USED AT LINE 185 | |
> USED AT LINE 567 | |
> USED AT LINE 754 | |
> USED AT LINE 821 | |
PEEK: 036D DEFINED AT LINE 524 | |
> USED AT LINE 564 | |
POKE: 037C DEFINED AT LINE 534 | |
> USED AT LINE 1043 | |
POKE05: 038B DEFINED AT LINE 540 | |
> USED AT LINE 538 | |
TSTFUN: 039E DEFINED AT LINE 550 | |
> USED AT LINE 741 | |
TSTF05: 03AD DEFINED AT LINE 556 | |
> USED AT LINE 554 | |
FUNT: 03AE DEFINED AT LINE 559 | |
FLINE: 03C2 DEFINED AT LINE 571 | |
> USED AT LINE 810 | |
> USED AT LINE 818 | |
> USED AT LINE 999 | |
FNDLIN: 03C4 DEFINED AT LINE 572 | |
> USED AT LINE 140 | |
> USED AT LINE 592 | |
FND03: 03CB DEFINED AT LINE 576 | |
> USED AT LINE 573 | |
FND05: 03D3 DEFINED AT LINE 580 | |
> USED AT LINE 577 | |
FND07: 03DA DEFINED AT LINE 584 | |
> USED AT LINE 580 | |
FND09: 03E0 DEFINED AT LINE 587 | |
> USED AT LINE 589 | |
RELEXP: 03EC DEFINED AT LINE 595 | |
> USED AT LINE 801 | |
REL03: 040C DEFINED AT LINE 611 | |
> USED AT LINE 602 | |
REL05: 0417 DEFINED AT LINE 616 | |
> USED AT LINE 607 | |
REL06: 041B DEFINED AT LINE 618 | |
> USED AT LINE 600 | |
REL07: 041F DEFINED AT LINE 620 | |
> USED AT LINE 610 | |
> USED AT LINE 617 | |
REL08: 0437 DEFINED AT LINE 634 | |
> USED AT LINE 632 | |
REL09: 043D DEFINED AT LINE 638 | |
> USED AT LINE 636 | |
EXPR: 0443 DEFINED AT LINE 644 | |
> USED AT LINE 421 | |
> USED AT LINE 541 | |
> USED AT LINE 595 | |
> USED AT LINE 621 | |
> USED AT LINE 761 | |
> USED AT LINE 792 | |
> USED AT LINE 808 | |
> USED AT LINE 815 | |
> USED AT LINE 850 | |
EXPR02: 0452 DEFINED AT LINE 651 | |
> USED AT LINE 657 | |
EXPR03: 0454 DEFINED AT LINE 652 | |
> USED AT LINE 650 | |
EXPR04: 0456 DEFINED AT LINE 653 | |
> USED AT LINE 665 | |
EXPR05: 0465 DEFINED AT LINE 660 | |
> USED AT LINE 648 | |
EXPR06: 046F DEFINED AT LINE 666 | |
> USED AT LINE 612 | |
> USED AT LINE 659 | |
TERM: 0472 DEFINED AT LINE 670 | |
> USED AT LINE 652 | |
> USED AT LINE 661 | |
TERM03: 0477 DEFINED AT LINE 672 | |
> USED AT LINE 712 | |
> USED AT LINE 729 | |
TERM05: 0485 DEFINED AT LINE 679 | |
> USED AT LINE 676 | |
DIV05: 04A1 DEFINED AT LINE 693 | |
> USED AT LINE 704 | |
DIV07: 04AB DEFINED AT LINE 698 | |
> USED AT LINE 694 | |
DIV09: 04AD DEFINED AT LINE 699 | |
> USED AT LINE 697 | |
TERM06: 04C2 DEFINED AT LINE 711 | |
> USED AT LINE 708 | |
TERM07: 04C6 DEFINED AT LINE 713 | |
> USED AT LINE 674 | |
MULT: 04CA DEFINED AT LINE 715 | |
FACT: 04E5 DEFINED AT LINE 732 | |
> USED AT LINE 670 | |
> USED AT LINE 680 | |
> USED AT LINE 714 | |
FACT02: 04F2 DEFINED AT LINE 738 | |
> USED AT LINE 740 | |
> USED AT LINE 742 | |
FACT03: 04F3 DEFINED AT LINE 739 | |
> USED AT LINE 733 | |
PAREXP: 04FD DEFINED AT LINE 743 | |
> USED AT LINE 524 | |
> USED AT LINE 534 | |
FACT05: 050D DEFINED AT LINE 751 | |
> USED AT LINE 748 | |
> USED AT LINE 759 | |
ARGONE: 0510 DEFINED AT LINE 754 | |
> USED AT LINE 411 | |
> USED AT LINE 743 | |
FACT04: 0518 DEFINED AT LINE 757 | |
> USED AT LINE 755 | |
ABSX: 0524 DEFINED AT LINE 764 | |
> USED AT LINE 685 | |
> USED AT LINE 687 | |
NEGX: 0528 DEFINED AT LINE 766 | |
> USED AT LINE 710 | |
NEG05: 0530 DEFINED AT LINE 770 | |
> USED AT LINE 765 | |
> USED AT LINE 768 | |
TSTEOL: 0531 DEFINED AT LINE 773 | |
> USED AT LINE 309 | |
> USED AT LINE 542 | |
> USED AT LINE 793 | |
> USED AT LINE 809 | |
> USED AT LINE 816 | |
> USED AT LINE 835 | |
> USED AT LINE 995 | |
TEOL03: 053D DEFINED AT LINE 778 | |
> USED AT LINE 776 | |
LET: 0542 DEFINED AT LINE 783 | |
> USED AT LINE 323 | |
> USED AT LINE 1028 | |
LET03: 054A DEFINED AT LINE 786 | |
> USED AT LINE 784 | |
LET05: 0556 DEFINED AT LINE 791 | |
> USED AT LINE 789 | |
IF: 0568 DEFINED AT LINE 801 | |
> USED AT LINE 1031 | |
IF03: 0571 DEFINED AT LINE 805 | |
> USED AT LINE 803 | |
GOTO: 0574 DEFINED AT LINE 808 | |
> USED AT LINE 1034 | |
GOSUB: 0581 DEFINED AT LINE 815 | |
> USED AT LINE 1037 | |
GOSB04: 058D DEFINED AT LINE 820 | |
> USED AT LINE 811 | |
GOSB03: 0590 DEFINED AT LINE 821 | |
> USED AT LINE 819 | |
GOSB05: 0598 DEFINED AT LINE 824 | |
> USED AT LINE 822 | |
RETURN: 0531 DEFINED AT LINE 835 | |
> USED AT LINE 1040 | |
PRINT: 05AC DEFINED AT LINE 838 | |
> USED AT LINE 1046 | |
> USED AT LINE 1070 | |
PR01: 05AF DEFINED AT LINE 839 | |
> USED AT LINE 874 | |
PR02: 05C5 DEFINED AT LINE 850 | |
> USED AT LINE 846 | |
PR03: 05CE DEFINED AT LINE 854 | |
> USED AT LINE 849 | |
PR04: 05E0 DEFINED AT LINE 862 | |
> USED AT LINE 844 | |
> USED AT LINE 860 | |
PR05: 05E9 DEFINED AT LINE 866 | |
> USED AT LINE 840 | |
> USED AT LINE 856 | |
PR06: 05EB DEFINED AT LINE 867 | |
> USED AT LINE 870 | |
PR07: 05F4 DEFINED AT LINE 871 | |
> USED AT LINE 842 | |
> USED AT LINE 858 | |
PR08: 05FD DEFINED AT LINE 875 | |
> USED AT LINE 865 | |
PRQ01: 0602 DEFINED AT LINE 879 | |
> USED AT LINE 885 | |
PRNTQS: 0605 DEFINED AT LINE 880 | |
> USED AT LINE 848 | |
PRQ03: 060E DEFINED AT LINE 884 | |
> USED AT LINE 882 | |
PRNTN: 0613 DEFINED AT LINE 888 | |
> USED AT LINE 852 | |
PRN03: 0623 DEFINED AT LINE 897 | |
> USED AT LINE 889 | |
PRN05: 0626 DEFINED AT LINE 898 | |
> USED AT LINE 902 | |
PRN07: 0632 DEFINED AT LINE 903 | |
> USED AT LINE 900 | |
> USED AT LINE 917 | |
> USED AT LINE 926 | |
PRN09: 0634 DEFINED AT LINE 904 | |
> USED AT LINE 908 | |
PRN11: 063F DEFINED AT LINE 909 | |
> USED AT LINE 905 | |
PRN13: 0653 DEFINED AT LINE 918 | |
> USED AT LINE 915 | |
PRNPT: 0654 DEFINED AT LINE 919 | |
PRNPTO: 065C DEFINED AT LINE 923 | |
PRNT4: 065E DEFINED AT LINE 925 | |
> USED AT LINE 249 | |
> USED AT LINE 1008 | |
INPUT: 0663 DEFINED AT LINE 929 | |
> USED AT LINE 1049 | |
IN03: 066C DEFINED AT LINE 933 | |
> USED AT LINE 938 | |
> USED AT LINE 944 | |
IN05: 0674 DEFINED AT LINE 936 | |
> USED AT LINE 962 | |
> USED AT LINE 964 | |
IN07: 068B DEFINED AT LINE 945 | |
> USED AT LINE 940 | |
IN09: 069D DEFINED AT LINE 953 | |
> USED AT LINE 951 | |
IN11: 06A4 DEFINED AT LINE 956 | |
> USED AT LINE 930 | |
IN13: 06A7 DEFINED AT LINE 957 | |
> USED AT LINE 955 | |
RMESS: 06B8 DEFINED AT LINE 965 | |
RUN: 06C1 DEFINED AT LINE 969 | |
> USED AT LINE 1061 | |
RUN01: 06C5 DEFINED AT LINE 971 | |
> USED AT LINE 973 | |
LIST: 06CF DEFINED AT LINE 978 | |
> USED AT LINE 1064 | |
LIST03: 06DC DEFINED AT LINE 985 | |
> USED AT LINE 979 | |
LIST05: 06E9 DEFINED AT LINE 991 | |
> USED AT LINE 988 | |
LIST07: 06F3 DEFINED AT LINE 995 | |
> USED AT LINE 984 | |
> USED AT LINE 990 | |
> USED AT LINE 993 | |
LIST09: 06FF DEFINED AT LINE 1000 | |
> USED AT LINE 1018 | |
LIST10: 072B DEFINED AT LINE 1019 | |
> USED AT LINE 1001 | |
LIST11: 0732 DEFINED AT LINE 1022 | |
> USED AT LINE 1004 | |
VERBT: 0737 DEFINED AT LINE 1026 | |
TSTBRK: 079C DEFINED AT LINE 1074 | |
> USED AT LINE 318 | |
> USED AT LINE 1017 | |
GETCHR: 07A0 DEFINED AT LINE 1076 | |
> USED AT LINE 260 | |
GETC05: 07A9 DEFINED AT LINE 1080 | |
> USED AT LINE 1075 | |
> USED AT LINE 1078 | |
PUTCHR: 07AA DEFINED AT LINE 1081 | |
> USED AT LINE 101 | |
> USED AT LINE 215 | |
> USED AT LINE 247 | |
> USED AT LINE 251 | |
> USED AT LINE 270 | |
> USED AT LINE 282 | |
> USED AT LINE 295 | |
> USED AT LINE 297 | |
> USED AT LINE 868 | |
> USED AT LINE 879 | |
> USED AT LINE 895 | |
> USED AT LINE 912 | |
> USED AT LINE 934 | |
> USED AT LINE 1011 | |
> USED AT LINE 1021 | |
INEEE: 07AF DEFINED AT LINE 1085 | |
> USED AT LINE 1076 | |
> USED AT LINE 1086 | |
OUTEEE: 07B9 DEFINED AT LINE 1090 | |
> USED AT LINE 1082 | |
OUT01: 07BB DEFINED AT LINE 1091 | |
> USED AT LINE 1093 | |
BRKEEE: 07C8 DEFINED AT LINE 1097 | |
> USED AT LINE 1074 | |
> USED AT LINE 1085 | |
BRK03: 07CA DEFINED AT LINE 1098 | |
> USED AT LINE 1102 | |
BRK05: 07D6 DEFINED AT LINE 1103 | |
> USED AT LINE 1100 | |
INTEEE: 07E5 DEFINED AT LINE 1111 | |
> USED AT LINE 79 | |
> USED AT LINE 83 |
.org $200 | |
.ent $ | |
ldx test | |
ldx [test] | |
lda $1234 | |
ldx $fedc | |
lda #$2 | |
tfr a,dp | |
lda $12 | |
test dw $204 | |
; setdp | |
; lda <12 | |
; reg |
{} |
{} |
:10020000BE0213AE9F0213B61234BEFEDC86021F7E | |
:050210008B96120204B0 | |
:00000001FF |
0200 .ORG $200 | |
0200 .ENT $ | |
0200 BE 02 13 LDX test | |
0203 AE 9F 02 13 LDX [test] | |
0207 B6 12 34 LDA $1234 | |
020A BE FE DC LDX $fedc | |
020D 86 02 LDA #$2 | |
020F 1F 8B TFR a,dp | |
0211 96 12 LDA $12 | |
0213 02 04 TEST: DW $204 | |
0215 ; setdp | |
0215 ; lda <12 | |
0215 ; reg | |
TEST: 0213 DEFINED AT LINE 15 | |
> USED AT LINE 4 |
;TITLE 6809 eForth | |
;.engine kilo | |
; $Id: ef09.asm,v 1.1 1997/11/24 02:56:01 root Exp $ | |
; | |
;=============================================================== | |
; | |
; eForth 1.0 by Bill Muench and C. H. Ting, 1990 | |
; Much of the code is derived from the following sources: | |
; 8086 figForth by Thomas Newman, 1981 and Joe smith, 1983 | |
; aFORTH by John Rible | |
; bFORTH by Bill Muench | |
; | |
; The goal of this implementation is to provide a simple eForth Model | |
; which can be ported easily to many 8, 16, 24 and 32 bit CPU's. | |
; The following attributes make it suitable for CPU's of the '90: | |
; | |
; small machine dependent kernel and portable high level code | |
; source code in the MASM format | |
; direct threaded code | |
; separated code and name dictionaries | |
; simple vectored terminal and file interface to host computer | |
; aligned with the proposed ANS Forth Standard | |
; easy upgrade path to optimize for specific CPU | |
; | |
; You are invited to implement this Model on your favorite CPU and | |
; contribute it to the eForth Library for public use. You may use | |
; a portable implementation to advertise more sophisticated and | |
; optimized version for commercial purposes. However, you are | |
; expected to implement the Model faithfully. The eForth Working | |
; Group reserves the right to reject implementation which deviates | |
; significantly from this Model. | |
; | |
; As the ANS Forth Standard is still evolving, this Model will | |
; change accordingly. Implementations must state clearly the | |
; version number of the Model being tracked. | |
; | |
; Representing the eForth Working Group in the Silicon Valley FIG Chapter. | |
; Send contributions to: | |
; | |
; Dr. C. H. Ting | |
; 156 14th Avenue | |
; San Mateo, CA 94402 | |
; (415) 571-7639 | |
; | |
;=============================================================== | |
; $Log: ef09.asm,v $ | |
; Revision 1.1 1997/11/24 02:56:01 root | |
; Initial revision | |
; | |
;=============================================================== | |
;; Version control | |
VER EQU 1 ;major release version | |
EXT EQU 0 ;minor extension | |
;; Constants | |
TRUEE EQU -1 ;true flag | |
COMPO EQU $40 ;lexicon compile only bit | |
IMEDD EQU $80 ;lexicon immediate bit | |
MASKK EQU $1F7F ;lexicon bit mask | |
CFAOFF EQU 3 ;offset from word entry to code field area | |
; (length of JSR) | |
CELLL EQU 2 ;size of a cell | |
BASEE EQU 10 ;default radix | |
VOCSS EQU 8 ;depth of vocabulary stack | |
BKSPP EQU 8 ;back space | |
BKSPP2 EQU 127 ;back space | |
LF EQU 10 ;line feed | |
CRR EQU 13 ;carriage return | |
ERR EQU 27 ;error escape | |
TIC EQU 39 ;tick | |
CALLL EQU $12BD ;NOP CALL opcodes | |
;; Memory allocation | |
EM EQU $7000 ;top of memory | |
US EQU 64*CELLL ;user area size in cells | |
RTS: EQU 128*CELLL ;return stack/TIB size | |
UPP EQU EM-US ;start of user area (UP0) | |
RPP EQU UPP-8*CELLL ;start of return stack (RP0) | |
TIBB EQU RPP-RTS ;terminal input buffer (TIB) | |
SPP EQU TIBB-8*CELLL ;start of data stack (SP0) | |
COLDD EQU $100 ;cold start vector | |
CODEE EQU COLDD+US ;code dictionary | |
NAMEE EQU EM-$0400 ;name dictionary | |
;; Initialize assembly variables | |
;; Main entry points and COLD start data | |
.ORG 0xfff0 | |
;reserved | |
DW reset | |
;SWI3 | |
DW reset | |
;SWI2 | |
DW reset | |
;FIRQ | |
DW reset | |
;IRQ | |
DW reset | |
;SWI | |
DW reset | |
;NMI | |
DW reset | |
;RES | |
DW reset | |
ORG COLDD ;beginning of cold boot area | |
; SETDP 0 | |
.ent $ | |
reset: | |
ORIG lds #SPP ;Init stack pointer. | |
ldy #RPP ;Init return stack pointer | |
ldu #COLD1 ;Init Instr pointer. | |
pulu pc ;next. | |
; COLD start moves the following to USER variables. | |
; MUST BE IN SAME ORDER AS USER VARIABLES. | |
UZERO RMB 8 ;reserved space in user area | |
FDB SPP ;SP0 | |
FDB RPP ;RP0 | |
FDB QRX ;'?KEY | |
FDB TXSTO ;'EMIT | |
FDB ACCEP ;'EXPECT | |
FDB KTAP ;'TAP | |
FDB TXSTO ;'ECHO | |
FDB DOTOK ;'PROMPT | |
FDB BASEE ;BASE | |
FDB 0 ;tmp | |
FDB 0 ;SPAN | |
FDB 0 ;>IN | |
FDB 0 ;#TIB | |
FDB TIBB ;TIB | |
FDB 0 ;CSP | |
FDB INTER ;'EVAL | |
FDB NUMBQ ;'NUMBER | |
FDB 0 ;HLD | |
FDB 0 ;HANDLER | |
FDB 0 ;CONTEXT pointer | |
RMB VOCSS*2 ;vocabulary stack | |
FDB 0 ;CURRENT pointer | |
FDB 0 ;vocabulary link pointer | |
FDB CTOP ;CP | |
FDB NTOP ;NP | |
FDB LASTN ;LAST | |
ULAST: | |
ORG CODEE ;beginning of the code dictionary | |
;; Device dependent I/O | |
ACIA EQU $83fe | |
ACIAC EQU ACIA | |
ACIAS EQU ACIA | |
ACIAD EQU ACIA+1 | |
ACIA_TDRE EQU 02h | |
ACIA_RDRF EQU 01h | |
SEROUT: | |
PSHS a,b | |
SEROUTL: | |
LDB ACIAS | |
ANDB #ACIA_TDRE | |
; BEQ seroutl | |
STA ACIAD | |
PULS a,b | |
RTS | |
SERIN: | |
LDA ACIAS | |
ANDA #ACIA_RDRF | |
BEQ serin_ret | |
LDA ACIAD | |
serin_ret: RTS | |
; BYE ( -- ) | |
; Exit eForth. | |
FDB BYE,0 | |
L100 FCB 3,"BYE" | |
BYE JMP $E000 ; monitor | |
; ?RX ( -- c T | F ) | |
; Return input character and true, or a false if no input. | |
FDB QRX,L100 | |
L110 FCB 3,"?RX" | |
QRX ldx #0 | |
jsr serin | |
beq qrx1 | |
stx ,--s | |
pulu pc | |
qrx1: tfr a,b | |
clra | |
std ,--s | |
leax -1,x | |
stx ,--s | |
pulu pc | |
; TX! ( c -- ) | |
; Send character c to the output device. | |
FDB TXSTO,L110 | |
L120 FCB 3,"TX!" | |
TXSTO ldd ,s++ | |
cmpb #$ff | |
bne tx1 | |
ldb #32 | |
tx1: | |
tfr b,a | |
jsr serout | |
pulu pc | |
; !IO ( -- ) | |
; Initialize the serial I/O devices. | |
FDB STOIO,L120 | |
L130 FCB 3,"!IO" | |
STOIO pulu pc | |
;; The kernel | |
; doLIT ( -- w ) | |
; Push an inline literal. | |
FDB DOLIT,L130 | |
L140 FCB COMPO+5,"doLIT" | |
DOLIT: | |
;;;; ldd ,u++ | |
pulu d | |
; 7 cycles | |
pshs d | |
;;;; 8 cycles | |
;;;; std ,--s | |
pulu pc | |
; doCLIT ( -- w ) | |
; Push an inline 8-bit literal. | |
FDB DOCLIT,L140 | |
L141 FCB COMPO+6,"doCLIT" | |
DOCLIT: | |
pulu b | |
sex ; sign extended | |
pshs d | |
pulu pc | |
; doLIST ( a -- ) | |
; Process colon list. | |
FDB DOLST,L141 | |
L150 FCB COMPO+6,"doLIST" | |
DOLST stu ,--y ; IP on return stack | |
puls u ; JSR left new IP on parameter stack | |
;;;; ldu ,s++ | |
pulu pc ; FORTH NEXT IP | |
; next ( -- ) | |
; Run time code for the single index loop. | |
; : next ( -- ) \ hilevel model | |
; r> r> dup if 1 - >r @ >r exit then drop cell+ >r ; | |
FDB DONXT,L150 | |
L160 FCB COMPO+4,"next" | |
DONXT ldd ,y ; counter on return stack | |
subd #1 ; decrement | |
bcs next1 ; < -> exit loop | |
std ,y ; decremented value back on stack | |
ldu ,u ; branch to begin of loop | |
pulu pc | |
next1 leay 2,y ; remove counter from stack | |
leau 2,u ; skip branch destination | |
pulu pc | |
; ?branch ( f -- ) | |
; Branch if flag is zero. | |
FDB QBRAN,L160 | |
L170 FCB COMPO+7,"?branch" | |
QBRAN: ;$CODE COMPO+7,'?branch',QBRAN | |
ldd ,s++ | |
beq bran1 | |
leau 2,u ; skip new IP, no branch | |
pulu pc | |
bran1 ldu ,u ; go to new IP | |
pulu pc | |
; branch ( -- ) | |
; Branch to an inline address. | |
FDB BRAN,L170 | |
L180 FCB COMPO+6,"branch" | |
BRAN ldu ,u ; destination immediate after BRANCH | |
pulu pc | |
; EXECUTE ( ca -- ) | |
; Execute the word at ca. | |
FDB EXECU,L180 | |
L190 FCB 7,"EXECUTE" | |
EXECU rts ; code pointer on parameter stack | |
; EXIT ( -- ) | |
; SEMIS | |
; Terminate a colon definition. | |
FDB EXIT,L190 | |
L200 FCB 4,"EXIT" | |
EXIT ldu ,y++ ; get calling IP from return stack | |
pulu pc | |
; ! ( w a -- ) | |
; Pop the data stack to memory. | |
FDB STORE,L200 | |
L210 FCB 1,"!" | |
STORE: | |
;;;; ldx ,s++ | |
;;;; ldd ,s++ | |
;;;; faster ... | |
puls x | |
puls d | |
; we cannot use puls x,d because the order fetched would be wrong :( | |
std ,x | |
pulu pc | |
; @ ( a -- w ) | |
; Push memory location to the data stack. | |
FDB AT,L210 | |
L220 FCB 1,"@" | |
AT ldd [,s] | |
std ,s | |
pulu pc | |
; C! ( c b -- ) | |
; Pop the data stack to byte memory. | |
FDB CSTOR,L220 | |
L230 FCB 2,"C!" | |
CSTOR: | |
;;;; ldx ,s++ | |
;;;; ldd ,s++ | |
;;;; faster ... | |
puls x | |
puls d | |
; we cannot use puls x,d because the order fetched would be wrong :( | |
stb ,x | |
pulu pc | |
; C@ ( b -- c ) | |
; Push byte memory location to the data stack. | |
FDB CAT,L230 | |
L240 FCB 2,"C@" | |
CAT ldb [,s] | |
clra | |
std ,s | |
pulu pc | |
; RP@ ( -- a ) | |
; Push the current RP to the data stack. | |
FDB RPAT,L240 | |
L250 FCB 3,"RP@" | |
RPAT pshs y | |
pulu pc | |
; RP! ( a -- ) | |
; Set the return stack pointer. | |
FDB RPSTO,L250 | |
L260 FCB 3,"RP!" | |
RPSTO puls y | |
pulu pc | |
; R> ( -- w ) | |
; Pop the return stack to the data stack. | |
FDB RFROM,L260 | |
L270 FCB 2,"R>" | |
RFROM ldd ,y++ | |
;;;; std ,--s | |
pshs d | |
pulu pc | |
; I ( -- w ) | |
; Copy top of return stack (current index from DO/LOOP) to the data stack. | |
FDB RAT,L270 | |
L279 FCB 1,"I" | |
; R@ ( -- w ) | |
; Copy top of return stack to the data stack. | |
FDB RAT,L279 | |
L280 FCB 2,"R@" | |
RAT: | |
I: | |
ldd ,y | |
;;;; std ,--s | |
pshs d | |
pulu pc | |
; >R ( w -- ) | |
; Push the data stack to the return stack. | |
FDB TOR,L280 | |
L290 FCB 2,">R" | |
TOR: | |
;;;; ldd ,s++ | |
puls d | |
std ,--y | |
pulu pc | |
; SP@ ( -- a ) | |
; Push the current data stack pointer. | |
FDB SPAT,L290 | |
L300 FCB 3,"SP@" | |
SPAT: | |
tfr s,d | |
std ,--s | |
;;;; alternatively | |
;;;; sts ,--s ; does this work? | |
pulu pc | |
; SP! ( a -- ) | |
; Set the data stack pointer. | |
FDB SPSTO,L300 | |
L310 FCB 3,"SP!" | |
SPSTO lds ,s | |
pulu pc | |
; DROP ( w -- ) | |
; Discard top stack item. | |
FDB DROP,L310 | |
L320 FCB 4,"DROP" | |
DROP leas 2,s | |
pulu pc | |
; DUP ( w -- w w ) | |
; Duplicate the top stack item. | |
FDB DUPP,L320 | |
L330 FCB 3,"DUP" | |
DUPP ldd ,s | |
;;;; std ,--s | |
pshs d | |
pulu pc | |
; SWAP ( w1 w2 -- w2 w1 ) | |
; Exchange top two stack items. | |
FDB SWAP,L330 | |
L340 FCB 4,"SWAP" | |
SWAP: | |
;;;;OLD 1: slow | |
;;;; ldx ,s++ | |
;;;; ldd ,s++ | |
;;;;OLD 2: faster | |
;;;; puls x | |
;;;; puls d | |
;;;; pshs d,x | |
;more efficient, without unnecessary stack pointer manipulations | |
ldd ,s | |
ldx 2,s | |
std 2,s | |
stx ,s | |
pulu pc | |
; OVER ( w1 w2 -- w1 w2 w1 ) | |
; Copy second stack item to top. | |
FDB OVER,L340 | |
L350 FCB 4,"OVER" | |
OVER ldd 2,s | |
;;;; std ,--s | |
pshs d | |
pulu pc | |
; 0< ( n -- t ) | |
; Return true if n is negative. | |
FDB ZLESS,L350 | |
L360 FCB 2,"0<" | |
ZLESS ldb ,s ; input high byte, as D low | |
sex ; sign extend to b to a/b | |
tfr a,b ; high byte: 0 or FF copy to D low | |
std ,s ; D: 0000 or FFFF (= -1) | |
pulu pc | |
; 0= ( n -- t ) | |
; Return true if n is zero | |
FDB ZEQUAL,L360 | |
L365 FCB 2,"0=" | |
ZEQUAL: | |
ldx #TRUEE ; true | |
ldd ,s ; TOS | |
beq ZEQUAL1 ; -> true | |
ldx #0 ; false | |
ZEQUAL1 stx ,s ; D: 0000 or FFFF (= -1) | |
pulu pc | |
; AND ( w w -- w ) | |
; Bitwise AND. | |
FDB ANDD,L365 | |
L370 FCB 3,"AND" | |
ANDD ldd ,s++ | |
anda ,s | |
andb 1,s | |
std ,s | |
pulu pc | |
; OR ( w w -- w ) | |
; Bitwise inclusive OR. | |
FDB ORR,L370 | |
L380 FCB 2,"OR" | |
ORR ldd ,s++ | |
ora ,s | |
orb 1,s | |
std ,s | |
pulu pc | |
; XOR ( w w -- w ) | |
; Bitwise exclusive OR. | |
FDB XORR,L380 | |
L390 FCB 3,"XOR" | |
XORR ldd ,s++ | |
eora ,s | |
eorb 1,s | |
std ,s | |
pulu pc | |
; D+ ( ud ud -- udsum ) | |
; Add two unsigned double numbers and return a double sum. | |
FDB DPLUS,L390 | |
L391 FCB 2,"D+" | |
DPLUS ldd 2,s ; add low words | |
addd 6,s | |
std 6,s | |
ldd ,s ; add hig words | |
adcb 5,s | |
adca 4,s | |
std 4,s | |
leas 4,s ; drop one double | |
pulu pc | |
; D- ( ud ud -- uddiff ) | |
; Subtract two unsigned double numbers and return a double sum. | |
FDB DSUB,L391 | |
L392 FCB 2,"D-" | |
DSUB jsr DOLST | |
FDB DNEGA,DPLUS,EXIT | |
; UM+ ( u u -- udsum ) | |
; Add two unsigned single numbers and return a double sum. | |
FDB UPLUS,L392 | |
L400 FCB 3,"UM+" | |
UPLUS ldd ,s | |
addd 2,s | |
std 2,s | |
ldd #0 | |
adcb #0 | |
std ,s | |
pulu pc | |
;; Constants | |
; doCONST ( -- w ) | |
; Run time routine for CONSTANT | |
FDB DOCONST,L400 | |
L401 FCB COMPO+7,"doCONST" | |
DOCONST: | |
FDOCONST: | |
ldd [,s] ; contents of W (on TOS because of JSR) | |
std ,s ; to TOS (replacing W) | |
pulu pc | |
; 0 ( -- 0 ) | |
; Constant 0 | |
FDB ZERO,L401 | |
L402 FCB 1,"0" | |
ZERO jsr FDOCONST | |
FDB 0 | |
; 1 ( -- 1 ) | |
; Constant 1 | |
FDB ONE,L402 | |
L403 FCB 1,"1" | |
ONE jsr FDOCONST | |
FDB 1 | |
; 2 ( -- 2 ) | |
; Constant 2 | |
FDB TWO,L403 | |
L404 FCB 1,"2" | |
TWO jsr FDOCONST | |
FDB 2 | |
; -1 ( -- -1 ) | |
; Constant -1 | |
FDB MONE,L404 | |
L405 FCB 2,"-1" | |
MONE jsr FDOCONST | |
FDB -1 | |
;; System and user variables | |
; doVAR ( -- a ) | |
; Run time routine for VARIABLE and CREATE. | |
FDB DOVAR,L405 | |
L410 FCB COMPO+5,"doVAR" | |
DOVAR: | |
jsr DOLST | |
FDB RFROM,EXIT | |
;; fast native DOVAR implementation | |
FDOVAR pulu pc | |
; UP ( -- a ) | |
; Pointer to the user area. | |
FDB UP,L410 | |
L420 FCB 2,"UP" | |
UP: | |
;; jsr DOLST | |
;; FDB DOVAR | |
;; fast (native) DOVAR | |
jsr FDOVAR | |
FDB UPP | |
; doUSER ( -- a ) | |
; Run time routine for user variables. | |
FDB DOUSE,L420 | |
L430 FCB COMPO+5,"doUSER" | |
DOUSE: | |
jsr DOLST | |
FDB RFROM,AT,UP,AT,PLUS,EXIT | |
;; fast (native) DOUSE implementation (*NOT COMPLETE*) | |
FDOUSE: | |
ldd [,s] ; pointer to value (from JSR) | |
addd UP+CFAOFF ; dirty access to start of USER area: | |
; var. UP value direct access (not | |
; as a high level word) | |
std ,s ; resulting address returned on p-stack | |
pulu pc | |
; SP0 ( -- a ) | |
; Pointer to bottom of the data stack. | |
FDB SZERO,L430 | |
L440 FCB 3,"SP0" | |
SZERO: | |
jsr FDOUSE | |
FDB 8 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,8 | |
; RP0 ( -- a ) | |
; Pointer to bottom of the return stack. | |
FDB RZERO,L440 | |
L450 FCB 3,"RP0" | |
RZERO: | |
jsr FDOUSE | |
FDB 10 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,10 | |
; '?KEY ( -- a ) | |
; Execution vector of ?KEY. | |
FDB TQKEY,L450 | |
L460 FCB 5,"'?KEY" | |
TQKEY: | |
jsr FDOUSE | |
FDB 12 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,12 | |
; 'EMIT ( -- a ) | |
; Execution vector of EMIT. | |
FDB TEMIT,L460 | |
L470 FCB 5,"'EMIT" | |
TEMIT: | |
jsr FDOUSE | |
FDB 14 | |
;; jsr DOLST | |
;; FDB DOUSE,14 | |
; 'EXPECT ( -- a ) | |
; Execution vector of EXPECT. | |
FDB TEXPE,L470 | |
L480 FCB 7,"'EXPECT" | |
TEXPE: | |
jsr FDOUSE | |
FDB 16 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,16 | |
; 'TAP ( -- a ) | |
; Execution vector of TAP. | |
FDB TTAP,L480 | |
L490 FCB 4,"'TAP" | |
TTAP: | |
jsr FDOUSE | |
FDB 18 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,18 | |
; 'ECHO ( -- a ) | |
; Execution vector of ECHO. | |
FDB TECHO,L490 | |
L500 FCB 5,"'ECHO" | |
TECHO: | |
jsr FDOUSE | |
FDB 20 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,20 | |
; 'PROMPT ( -- a ) | |
; Execution vector of PROMPT. | |
FDB TPROM,L500 | |
L510 FCB 7,"'PROMPT" | |
TPROM: | |
jsr FDOUSE | |
FDB 22 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,22 | |
; BASE ( -- a ) | |
; Storage of the radix base for numeric I/O. | |
FDB BASE,L510 | |
L520 FCB 4,"BASE" | |
BASE: | |
jsr FDOUSE | |
FDB 24 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,24 | |
; tmp ( -- a ) | |
; A temporary storage location used in parse and find. | |
FDB TEMP,L520 | |
L530 FCB COMPO+3,"tmp" | |
TEMP: | |
jsr FDOUSE | |
FDB 26 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,26 | |
; SPAN ( -- a ) | |
; Hold character count received by EXPECT. | |
FDB SPAN,L530 | |
L540 FCB 4,"SPAN" | |
SPAN: | |
jsr FDOUSE | |
FDB 28 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,28 | |
; >IN ( -- a ) | |
; Hold the character pointer while parsing input stream. | |
FDB INN,L540 | |
L550 FCB 3,">IN" | |
INN: | |
jsr FDOUSE | |
FDB 30 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,30 | |
; #TIB ( -- a ) | |
; Hold the current count in and address of the terminal input buffer. | |
FDB NTIB,L550 | |
L560 FCB 4,"#TIB" | |
NTIB: | |
jsr FDOUSE | |
FDB 32 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,32 ;It contains TWO cells!!!! | |
; CSP ( -- a ) | |
; Hold the stack pointer for error checking. | |
FDB CSP,L560 | |
L570 FCB 3,"CSP" | |
CSP: | |
jsr FDOUSE | |
FDB 36 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE 36 | |
; 'EVAL ( -- a ) | |
; Execution vector of EVAL. | |
FDB TEVAL,L570 | |
L580 FCB 5,"'EVAL" | |
TEVAL: | |
jsr FDOUSE | |
FDB 38 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,38 | |
; 'NUMBER ( -- a ) | |
; Execution vector of NUMBER?. | |
FDB TNUMB,L580 | |
L590 FCB 7,"'NUMBER" | |
TNUMB: | |
jsr FDOUSE | |
FDB 40 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,40 | |
; HLD ( -- a ) | |
; Hold a pointer in building a numeric output string. | |
FDB HLD,L590 | |
L600 FCB 3,"HLD" | |
HLD: | |
jsr FDOUSE | |
FDB 42 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,42 | |
; HANDLER ( -- a ) | |
; Hold the return stack pointer for error handling. | |
FDB HANDL,L600 | |
L610 FCB 7,"HANDLER" | |
HANDL: | |
jsr FDOUSE | |
FDB 44 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,44 | |
; CONTEXT ( -- a ) | |
; A area to specify vocabulary search order. | |
FDB CNTXT,L610 | |
L620 FCB 7,"CONTEXT" | |
CNTXT: | |
jsr FDOUSE | |
FDB 46 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,46 ;plus space for voc stack. | |
; CURRENT ( -- a ) | |
; Point to the vocabulary to be extended. | |
FDB CRRNT,L620 | |
L630 FCB 7,"CURRENT" | |
CRRNT: | |
jsr FDOUSE | |
FDB 48+VOCSS*2 ;Extra cell | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,48+VOCSS*2 ;Extra cell | |
; CP ( -- a ) | |
; Point to the top of the code dictionary. | |
FDB CP,L630 | |
L640 FCB 2,"CP" | |
CP: | |
jsr FDOUSE | |
FDB 52+VOCSS*2 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,52+VOCSS*2 | |
; NP ( -- a ) | |
; Point to the bottom of the name dictionary. | |
FDB NP,L640 | |
L650 FCB 2,"NP" | |
NP: | |
jsr FDOUSE | |
FDB 54+VOCSS*2 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,54+VOCSS*2 | |
; LAST ( -- a ) | |
; Point to the last name in the name dictionary. | |
FDB LAST,L650 | |
L660 FCB 4,"LAST" | |
LAST: | |
jsr FDOUSE | |
FDB 56+VOCSS*2 | |
;;;; jsr DOLST | |
;;;; FDB DOUSE,56+VOCSS*2 | |
;; Common functions | |
; doVOC ( -- ) | |
; Run time action of VOCABULARY's. | |
FDB DOVOC,L660 | |
L670 FCB COMPO+5,"doVOC" | |
DOVOC: | |
jsr DOLST | |
FDB RFROM,CNTXT,STORE,EXIT | |
; FORTH ( -- ) | |
; Make FORTH the context vocabulary. | |
FDB FORTH,L670 | |
L680 FCB 5,"FORTH" | |
FORTH: | |
jsr DOLST | |
FDB DOVOC | |
FDB 0 ;vocabulary head pointer | |
FDB 0 ;vocabulary link pointer | |
; ?DUP ( w -- w w | 0 ) | |
; Dup tos if its is not zero. | |
FDB QDUP,L680 | |
L690 FCB 4,"?DUP" | |
QDUP: | |
jsr DOLST | |
FDB DUPP | |
FDB QBRAN,QDUP1 | |
FDB DUPP | |
QDUP1 FDB EXIT | |
; ROT ( w1 w2 w3 -- w2 w3 w1 ) | |
; Rot 3rd item to top. | |
FDB ROT,L690 | |
L700 FCB 3,"ROT" | |
ROT: | |
jsr DOLST | |
FDB TOR,SWAP,RFROM,SWAP,EXIT | |
; 2DROP ( w w -- ) | |
; Discard two items on stack. | |
FDB DDROP,L700 | |
L710 FCB 5,"2DROP" | |
DDROP: | |
jsr DOLST | |
FDB DROP,DROP,EXIT | |
; 2DUP ( w1 w2 -- w1 w2 w1 w2 ) | |
; Duplicate top two items. | |
FDB DDUP,L710 | |
L720 FCB 4,"2DUP" | |
DDUP: | |
jsr DOLST | |
FDB OVER,OVER,EXIT | |
; LSHIFT ( w n -- w ) | |
; Shift word left n times. | |
FDB LSHIFT,L720 | |
L721 FCB 6,"LSHIFT" | |
LSHIFT ldx ,s++ ;shift count | |
beq LSHIFT2 | |
ldd ,s ;value to shift | |
LSHIFT1 aslb ;low | |
rola ;high | |
leax -1,x ;count down | |
bne LSHIFT1 | |
std ,s | |
LSHIFT2: | |
pulu pc | |
; RSHIFT ( w n -- w ) | |
; Shift word right n times. | |
FDB RSHIFT,L721 | |
L721A FCB 6,"RSHIFT" | |
RSHIFT ldx ,s++ ;shift count | |
beq RSHIFT2 | |
ldd ,s ;value to shift | |
RSHIFT1 lsra ;high | |
rorb ;low | |
leax -1,x ;count down | |
bne RSHIFT1 | |
std ,s | |
RSHIFT2: | |
pulu pc | |
; >< ( w -- w ) | |
; swap high and low byte | |
FDB SWAPHL,L721A | |
L722 FCB 2,"><" | |
SWAPHL ldb ,s ;high -> D low | |
lda 1,s ;low -> D high | |
std ,s | |
pulu pc | |
; 256/ ( w -- w ) | |
; multiply with 256 (shift left 8 times) | |
FDB SLASH256,L722 | |
L723 FCB 4,"256/" | |
SLASH256 ldb ,s ;high -> D low | |
clra ;D high = 0 | |
std ,s | |
pulu pc | |
; 256* ( w -- w ) | |
; multiply with 256 (shift left 8 times) | |
FDB STAR256,L723 | |
L724 FCB 4,"256*" | |
STAR256 lda 1,s ;low -> D high | |
clrb ;D low = 0 | |
std ,s | |
pulu pc | |
; 1+ ( w -- w ) | |
; Shortcut, quick add 1 | |
FDB PLUS1,L724 | |
L725 FCB 2,"1+" | |
PLUS1 ldd ,s | |
addd #1 | |
std ,s | |
pulu pc | |
; -+ ( w -- w ) | |
; Shortcut, quick subtract 1 | |
FDB MINUS1,L725 | |
L726 FCB 2,"1-" | |
MINUS1 ldd ,s | |
subd #1 | |
std ,s | |
pulu pc | |
; 2* ( w -- w ) | |
; multiply by 2 using shift operation | |
FDB TWOSTAR,L726 | |
L727 FCB 2,"2*" | |
TWOSTAR asl 1,s ;low | |
rol 0,s ;high | |
pulu pc | |
; 2/ ( w -- w ) | |
; divide by 2 using shift operation | |
FDB TWOSLASH,L727 | |
L728 FCB 2,"2/" | |
TWOSLASH asr 0,s ;high | |
ror 1,s ;low | |
pulu pc | |
; + ( w w -- sum ) | |
; Add top two items. | |
FDB PLUS,L728 | |
L730 FCB 1,"+" | |
PLUS: | |
ldd ,s++ | |
addd ,s | |
std ,s | |
pulu pc | |
;;; HL with UPLUS!? Too inefficient ... | |
;;; jsr DOLST | |
;;; FDB UPLUS,DROP,EXIT | |
; NOT ( w -- w ) | |
; One's complement of tos. | |
FDB INVER,L730 | |
L740 FCB 3,"NOT" | |
INVER: | |
;;;; fastest ... (13T) | |
com ,s ; 6T | |
com 1,s ; 7T | |
pulu pc | |
;;;; alternative ... (14T) | |
ldd ,s ;TOS 5T | |
coma ; 2T | |
comb ; 2T | |
std ,s ; 5T | |
pulu pc | |
;;; slow HL ... | |
;;; jsr DOLST | |
;;; FDB DOLIT,-1,XORR,EXIT | |
; NEGATE ( n -- -n ) | |
; Two's complement of tos. | |
FDB NEGAT,L740 | |
L750 FCB 6,"NEGATE" | |
NEGAT: | |
;;;; fastest? .... (3+6+5 = 14T) | |
ldd #0 ; 3T | |
subd ,s ; 6T | |
std ,s ; 5T | |
pulu pc | |
;;;; alternate ... (7+3+6 = 16T) | |
neg 1,s ; high 7T | |
bne NEGAT1 ; 3T | |
neg ,s ; low with 1+ carry 6T | |
pulu pc | |
NEGAT1 com ,s ; low, no 1+ carry 6T | |
pulu pc | |
;;;; slow HL ... | |
;;;; jsr DOLST | |
;;;; FDB INVER,PLUS1,EXIT | |
; DNEGATE ( d -- -d ) | |
; Two's complement of top double. | |
FDB DNEGA,L750 | |
L760 FCB 7,"DNEGATE" | |
DNEGA: | |
ldd #0 | |
subd 2,s ; low word | |
std 2,s | |
ldd #0 | |
sbcb 1,s ; high word low byte | |
sbca ,s ; high word high byte | |
std ,s | |
pulu pc | |
;;;; slow HL ... | |
;;;; jsr DOLST | |
;;;; FDB INVER,TOR,INVER | |
;;;; FDB DOLIT,1,UPLUS | |
;;;; FDB RFROM,PLUS,EXIT | |
; - ( n1 n2 -- n1-n2 ) | |
; Subtraction. | |
FDB SUBB,L760 | |
L770 FCB 1,"-" | |
SUBB: ldd 2,s | |
subd ,s++ | |
std ,s | |
pulu pc | |
;;; slow HL ... | |
;;; jsr DOLST | |
;;; FDB NEGAT,PLUS,EXIT | |
; ABS ( n -- n ) | |
; Return the absolute value of n. | |
FDB ABSS,L770 | |
L780 FCB 3,"ABS" | |
ABSS jsr DOLST | |
FDB DUPP,ZLESS | |
FDB QBRAN,ABS1 | |
FDB NEGAT | |
ABS1 FDB EXIT | |
; = ( w w -- t ) | |
; Return true if top two are equal. | |
FDB EQUAL,L780 | |
L790 FCB 1,"=" | |
EQUAL: | |
ldx #TRUEE | |
puls d ; first value | |
cmpd ,s ; compare to 2nd value | |
beq EQUAL1 ; equal -> true | |
ldx #0 ; false (leax 1,x save 1 byte, but is slower) | |
EQUAL1 stx ,s | |
pulu pc | |
;;;; slow HL ... | |
;;;; jsr DOLST | |
;;;; FDB XORR | |
;;;; FDB QBRAN,EQU1 | |
;;;; FDB DOLIT,0,EXIT | |
;;;;EQU1: FDB DOLIT,TRUEE,EXIT | |
; U< ( u1 u2 -- t ) | |
; Unsigned compare of top two items. | |
FDB ULESS,L790 | |
L800 FCB 2,"U<" | |
ULESS: | |
ldx #TRUEE ; true | |
puls d ; u2 | |
cmpd ,s ; u2 - u1 | |
bhi ULES1 ; unsigned: u2 higher u1 | |
ldx #0 ; false | |
ULES1 stx ,s ; replace TOS with result | |
pulu pc | |
;;;; slow HL ... | |
;;;; jsr DOLST | |
;;;; FDB DDUP,XORR,ZLESS | |
;;;; FDB QBRAN,ULES1 | |
;;;; FDB SWAP,DROP,ZLESS,EXIT | |
;;;;ULES1: FDB SUBB,ZLESS,EXIT | |
; < ( n1 n2 -- t ) | |
; Signed compare of top two items. | |
FDB LESS,L800 | |
L810 FCB 1,"<" | |
LESS: | |
ldx #TRUEE ; true | |
puls d ; n2 | |
cmpd ,s ; n2 - n1 | |
bgt LESS1 ; signed: n2 greater than n1 | |
ldx #0 ; false | |
LESS1 stx ,s ; replace TOS with result | |
pulu pc | |
;;;; slow HL ... | |
;;;; jsr DOLST | |
;;;; FDB DDUP,XORR,ZLESS | |
;;;; FDB QBRAN,LESS1 | |
;;;; FDB DROP,ZLESS,EXIT | |
;;;;LESS1: FDB SUBB,ZLESS,EXIT | |
; MAX ( n n -- n ) | |
; Return the greater of two top stack items. | |
FDB MAX,L810 | |
L820 FCB 3,"MAX" | |
MAX jsr DOLST | |
FDB DDUP,LESS | |
FDB QBRAN,MAX1 | |
FDB SWAP | |
MAX1 FDB DROP,EXIT | |
; MIN ( n n -- n ) | |
; Return the smaller of top two stack items. | |
FDB MIN,L820 | |
L830 FCB 3,"MIN" | |
MIN jsr DOLST | |
FDB DDUP,SWAP,LESS | |
FDB QBRAN,MIN1 | |
FDB SWAP | |
MIN1 FDB DROP,EXIT | |
; WITHIN ( u ul uh -- t ) | |
; Return true if u is within the range of ul and uh. ( ul <= u < uh ) | |
FDB WITHI,L830 | |
L840 FCB 6,"WITHIN" | |
WITHI jsr DOLST | |
FDB OVER,SUBB,TOR | |
FDB SUBB,RFROM,ULESS,EXIT | |
;; Divide | |
; U/ ( udl udh un -- ur uq ) | |
; Unsigned divide of a double by a single. Return mod and quotient. | |
; | |
; Special cases: | |
; 1. overflow: quotient overflow if dividend is to great (remainder = divisor), | |
; remainder is set to $FFFF -> special handling. | |
; This is checked also right before the main loop. | |
; 2. underflow: divisor does not fit into dividend -> remainder | |
; get the value of the dividend -> automatically covered. | |
; | |
; overflow: quotient = $FFFF, remainder = divisor | |
; underflow: quotient = $0000, remainder = dividend low | |
; division by zero: quotient = $FFFF, remainder = $0000 | |
; | |
; Testvalues: | |
; | |
; DIVH DIVL DVSR QUOT REM comment | |
; | |
; 0100 0000 FFFF 0100 0100 maximum divisor | |
; 0000 0001 8000 0000 0001 underflow (REM = DIVL) | |
; 0000 5800 3000 0001 1800 normal divsion | |
; 5800 0000 3000 FFFF 3000 overflow | |
; 0000 0001 0000 FFFF 0000 overflow (division by zero) | |
FDB USLASH,L840 | |
L845 FCB 2,"U/" | |
USLASH: | |
ldx #16 | |
ldd 2,s ; udh | |
cmpd ,s ; dividend to great? | |
bhs UMMODOV ; quotient overflow! | |
asl 5,s ; udl low | |
rol 4,s ; udl high | |
UMMOD1 rolb ; got one bit from udl | |
rola | |
bcs UMMOD2 ; bit 16 means always greater as divisor | |
cmpd ,s ; divide by un | |
bhs UMMOD2 ; higher or same as divisor? | |
andcc #$fe ; clc - clear carry flag | |
bra UMMOD3 | |
UMMOD2 subd ,s | |
orcc #$01 ; sec - set carry flag | |
UMMOD3 rol 5,s ; udl, quotient shifted in | |
rol 4,s | |
leax -1,x | |
bne UMMOD1 | |
ldx 4,s ; quotient | |
cmpd ,s ; remainder >= divisor -> overflow | |
blo UMMOD4 | |
UMMODOV: | |
ldd ,s ; remainder set to divisor | |
ldx #$FFFF ; quotient = FFFF (-1) marks overflow | |
; (case 1) | |
UMMOD4: | |
leas 2,s ; un (divisor thrown away) | |
stx ,s ; quotient to TOS | |
std 2,s ; remainder 2nd | |
pulu pc ; NEXT | |
; UM/MOD ( udl udh un -- ur uq ) | |
; Unsigned divide of a double by a single. Return mod and quotient. | |
FDB UMMOD,L845 | |
L850 FCB 6,"UM/MOD" | |
UMMOD: | |
jmp USLASH | |
;;;; slow HL ... | |
jsr DOLST | |
FDB DDUP,ULESS | |
FDB QBRAN,UMM4 | |
FDB NEGAT,DOLIT,15,TOR | |
UMM1 FDB TOR,DUPP,UPLUS | |
FDB TOR,TOR,DUPP,UPLUS | |
FDB RFROM,PLUS,DUPP | |
FDB RFROM,RAT,SWAP,TOR | |
FDB UPLUS,RFROM,ORR | |
FDB QBRAN,UMM2 | |
FDB TOR,DROP,PLUS1,RFROM | |
FDB BRAN,UMM3 | |
UMM2 FDB DROP | |
UMM3 FDB RFROM | |
FDB DONXT,UMM1 | |
FDB DROP,SWAP,EXIT | |
UMM4 FDB DROP,DDROP | |
FDB DOLIT,-1,DUPP,EXIT | |
; M/MOD ( d n -- r q ) | |
; Signed floored divide of double by single. Return mod and quotient. | |
FDB MSMOD,L850 | |
L860 FCB 5,"M/MOD" | |
MSMOD: | |
jsr DOLST | |
FDB DUPP,ZLESS,DUPP,TOR | |
FDB QBRAN,MMOD1 | |
FDB NEGAT,TOR,DNEGA,RFROM | |
MMOD1 FDB TOR,DUPP,ZLESS | |
FDB QBRAN,MMOD2 | |
FDB RAT,PLUS | |
MMOD2 FDB RFROM,UMMOD,RFROM | |
FDB QBRAN,MMOD3 | |
FDB SWAP,NEGAT,SWAP | |
MMOD3 FDB EXIT | |
; /MOD ( n n -- r q ) | |
; Signed divide. Return mod and quotient. | |
FDB SLMOD,L860 | |
L870 FCB 4,"/MOD" | |
SLMOD jsr DOLST | |
FDB OVER,ZLESS,SWAP,MSMOD,EXIT | |
; MOD ( n n -- r ) | |
; Signed divide. Return mod only. | |
FDB MODD,L870 | |
L880 FCB 3,"MOD" | |
MODD jsr DOLST | |
FDB SLMOD,DROP,EXIT | |
; / ( n n -- q ) | |
; Signed divide. Return quotient only. | |
FDB SLASH,L880 | |
L890 FCB 1,"/" | |
SLASH: | |
jsr DOLST | |
FDB SLMOD,SWAP,DROP,EXIT | |
;; Multiply | |
; UM* ( u u -- ud ) | |
; Unsigned multiply. Return double product. | |
FDB UMSTA,L890 | |
L900 FCB 3,"UM*" | |
UMSTA: | |
ldx #17 ; 16 adds and 17 shifts ... | |
clra ; result high word | |
clrb | |
bra UUMSTA3 | |
UUMSTA1 bcc UUMSTA2 | |
addd ,s | |
UUMSTA2 rora ; high, result high word | |
rorb ; low, result high word | |
UUMSTA3 ror 2,s ; shift multiplier high, result low word | |
ror 3,s ; shift multiplier low, result low word | |
leax -1,x | |
bne UUMSTA1 | |
std ,s | |
pulu pc | |
;;;; slow HL ... | |
;;;; jsr DOLST | |
;;;; FDB DOLIT,0,SWAP,DOLIT,15,TOR | |
;;;;UMST1: FDB DUPP,UPLUS,TOR,TOR | |
;;;; FDB DUPP,UPLUS,RFROM,PLUS,RFROM | |
;;;; FDB QBRAN,UMST2 | |
;;;; FDB TOR,OVER,UPLUS,RFROM,PLUS | |
;;;;UMST2: FDB DONXT,UMST1 | |
;;;; FDB ROT,DROP,EXIT | |
; _UM* ( u u -- ud ) | |
; Unsigned multiply. Return double product. | |
FDB UUMSTA,L900 | |
L900A FCB 4,"_UM*" | |
UUMSTA: | |
jsr DOLST | |
FDB DOLIT,0,SWAP,DOLIT,15,TOR | |
UMST1 FDB DUPP,UPLUS,TOR,TOR | |
FDB DUPP,UPLUS,RFROM,PLUS,RFROM | |
FDB QBRAN,UMST2 | |
FDB TOR,OVER,UPLUS,RFROM,PLUS | |
UMST2 FDB DONXT,UMST1 | |
FDB ROT,DROP,EXIT | |
; * ( n n -- n ) | |
; Signed multiply. Return single product. | |
; XXX Not really signed, -200 -200 * -> -25536 | |
FDB STAR,L900A | |
L910 FCB 1,"*" | |
STAR: | |
jsr DOLST | |
FDB MSTAR,DROP,EXIT | |
; M* ( n n -- d ) | |
; Signed multiply. Return double product. | |
FDB MSTAR,L910 | |
L920 FCB 2,"M*" | |
MSTAR: | |
jsr DOLST | |
FDB DDUP,XORR,ZLESS,TOR | |
FDB ABSS,SWAP,ABSS,UMSTA | |
FDB RFROM | |
FDB QBRAN,MSTA1 | |
FDB DNEGA | |
MSTA1 FDB EXIT | |
; */MOD ( n1 n2 n3 -- r q ) | |
; Multiply n1 and n2, then divide by n3. Return mod and quotient. | |
FDB SSMOD,L920 | |
L930 FCB 5,"*/MOD" | |
SSMOD jsr DOLST | |
FDB TOR,MSTAR,RFROM,MSMOD,EXIT | |
; */ ( n1 n2 n3 -- q ) | |
; Multiply n1 by n2, then divide by n3. Return quotient only. | |
FDB STASL,L930 | |
L940 FCB 2,"*/" | |
STASL jsr DOLST | |
FDB SSMOD,SWAP,DROP,EXIT | |
;; Miscellaneous | |
; CELL+ ( a -- a ) | |
; Add cell size in byte to address. | |
FDB CELLP,L940 | |
L950 FCB 5,"CELL+" | |
CELLP jsr DOLST | |
FDB DOCLIT | |
FCB CELLL | |
FDB PLUS,EXIT | |
; CELL- ( a -- a ) | |
; Subtract cell size in byte from address. | |
FDB CELLM,L950 | |
L960 FCB 5,"CELL-" | |
CELLM jsr DOLST | |
FDB DOCLIT | |
FCB 0-CELLL | |
FDB PLUS,EXIT | |
; CELLS ( n -- n ) | |
; Multiply tos by cell size in bytes. | |
FDB CELLS,L960 | |
L970 FCB 5,"CELLS" | |
CELLS jsr DOLST | |
FDB DOCLIT | |
FCB CELLL | |
FDB STAR,EXIT | |
; ALIGNED ( b -- a ) | |
; Align address to the cell boundary. | |
FDB ALGND,L970 | |
L975 FCB 7,"ALIGNED" | |
ALGND jsr DOLST | |
FDB EXIT | |
; BL ( -- 32 ) | |
; Return 32, the blank character. | |
FDB BLANK,L975 | |
L980 FCB 2,"BL" | |
BLANK: | |
jsr DOCONST | |
FDB ' ' | |
;;; jsr DOLST | |
;;; FDB DOLIT,' ',EXIT | |
; >CHAR ( c -- c ) | |
; Filter non-printing characters. | |
FDB TCHAR,L980 | |
L990 FCB 5,">CHAR" | |
TCHAR jsr DOLST | |
FDB DOLIT,$7F,ANDD,DUPP ;mask msb | |
FDB DOCLIT | |
FCB 127 | |
FDB BLANK,WITHI ;check for printable | |
FDB QBRAN,TCHA1 | |
FDB DROP,DOLIT,'_' ;replace non-printables | |
TCHA1 FDB EXIT | |
; DEPTH ( -- n ) | |
; Return the depth of the data stack. | |
FDB DEPTH,L990 | |
L1000 FCB 5,"DEPTH" | |
DEPTH jsr DOLST | |
FDB SPAT,SZERO,AT,SWAP,SUBB | |
FDB DOCLIT | |
FCB CELLL | |
FDB SLASH,EXIT | |
; PICK ( ... +n -- ... w ) | |
; Copy the nth stack item to tos. | |
FDB PICK,L1000 | |
L1010 FCB 4,"PICK" | |
PICK: | |
ldd ,s | |
addd #1 ; correct index | |
aslb ; CELLL* (ASSERT: CELLL=2!!!) | |
rola | |
ldx d,s ; pick value | |
stx ,s ; replace TOP | |
pulu pc | |
;;;; slow HL ... | |
;;;; jsr DOLST | |
;;;; FDB PLUS1,CELLS | |
;;;; FDB SPAT,PLUS,AT,EXIT | |
; ROLL ( ... +n -- ... w ) | |
; Copy the nth stack item to tos. | |
FDB ROLL,L1010 | |
L1015 FCB 4,"ROLL" | |
ROLL: | |
;;;; XXX als Primitive! | |
;;;; slow HL ... | |
jsr DOLST | |
FDB DUPP,TWO | |
FDB LESS,QBRAN,ROL1 | |
FDB DROP,BRAN,ROL2 | |
ROL1 FDB SWAP,TOR,ONE | |
FDB SUBB | |
FDB ROLL,RFROM,SWAP | |
ROL2 FDB EXIT | |
;; Memory access | |
; +! ( n a -- ) | |
; Add n to the contents at address a. | |
FDB PSTOR,L1015 | |
L1020 FCB 2,"+!" | |
PSTOR: | |
puls x ; address | |
puls d ; value | |
addd ,x ; add to value from address | |
std ,x ; store back | |
pulu pc | |
;;;; XXX als Primitive! | |
;;;; slow HL ... | |
;;;; jsr DOLST | |
;;;; FDB SWAP,OVER,AT,PLUS | |
;;;; FDB SWAP,STORE,EXIT | |
; 2! ( d a -- ) | |
; Store the double integer to address a. | |
FDB DSTOR,L1020 | |
L1030 FCB 2,"2!" | |
DSTOR: | |
;;;; XXX als Primitive! | |
;;;; slow HL ... | |
jsr DOLST | |
FDB SWAP,OVER,STORE | |
FDB CELLP,STORE,EXIT | |
; 2@ ( a -- d ) | |
; Fetch double integer from address a. | |
FDB DAT,L1030 | |
L1040 FCB 2,"2@" | |
DAT: | |
;;;; XXX als Primitive! | |
;;;; slow HL ... | |
jsr DOLST | |
FDB DUPP,CELLP,AT | |
FDB SWAP,AT,EXIT | |
; COUNT ( b -- b +n ) | |
; Return count byte of a string and add 1 to byte address. | |
FDB COUNT,L1040 | |
L1050 FCB 5,"COUNT" | |
COUNT jsr DOLST | |
FDB DUPP,PLUS1 | |
FDB SWAP,CAT,EXIT | |
; HERE ( -- a ) | |
; Return the top of the code dictionary. | |
FDB HERE,L1050 | |
L1060 FCB 4,"HERE" | |
HERE jsr DOLST | |
FDB CP,AT,EXIT | |
; PAD ( -- a ) | |
; Return the address of the text buffer above the code dictionary. | |
FDB PAD,L1060 | |
L1070 FCB 3,"PAD" | |
PAD jsr DOLST | |
FDB HERE,DOLIT,80,PLUS,EXIT | |
; TIB ( -- a ) | |
; Return the address of the terminal input buffer. | |
FDB TIB,L1070 | |
L1080 FCB 3,"TIB" | |
TIB jsr DOLST | |
FDB NTIB,CELLP,AT,EXIT | |
; @EXECUTE ( a -- ) | |
; Execute vector stored in address a. | |
FDB ATEXE,L1080 | |
L1090 FCB 8,"@EXECUTE" | |
ATEXE jsr DOLST | |
FDB AT,QDUP ;?address or zero | |
FDB QBRAN,EXE1 | |
FDB EXECU ;execute if non-zero | |
EXE1 FDB EXIT ;do nothing if zero | |
; CMOVE ( b1 b2 u -- ) | |
; Copy u bytes from b1 to b2. | |
FDB CMOVE,L1090 | |
L1100 FCB 5,"CMOVE" | |
CMOVE: | |
jmp CMOVEW | |
ldd ,s ;count | |
beq CMOVE3 ;zero -> leave | |
tstb ;count low | |
beq CMOVE1 | |
inc ,s ;ajust high for to-0 decrementation | |
CMOVE1: | |
ldx 2,s ;to addr | |
stu 2,s ;save reg on stack | |
ldu 4,s ;from addr | |
CMOVE2 lda ,u+ ;from -> | |
sta ,x+ ;to | |
decb ;low count | |
bne CMOVE2 | |
dec ,s ;high count | |
bne CMOVE2 | |
ldu 2,s | |
CMOVE3 leas 6,s ;drop 3 parameters from stack | |
pulu pc | |
;;;; | |
;;;; alternative, wordwise copy ... | |
CMOVEW ldd ,s ; count | |
ldx 2,s ; destination | |
sty ,s ; save RP | |
stu 2,s ; save IP | |
ldy 4,s ; source | |
lsra ; divide by 2, count words | |
rorb ; | |
pshs cc | |
beq CMOVEW1 ; byte decrement correction | |
inca ; byte decrement high byte correction | |
CMOVEW1 subd #0 ; word count zero (=65536)? | |
beq CMOVEW3 | |
CMOVEW2 ldu ,y++ ; source | |
stu ,x++ ; destination | |
decb ; count low | |
bne CMOVEW2 | |
deca ; count high (count to 0 corrected) | |
bne CMOVEW2 | |
CMOVEW3 puls CC ; check if odd count? | |
bcc CMOVEW4 | |
lda ,y | |
sta ,x | |
CMOVEW4 puls y,u ; y first | |
leas 2,s ; drop 3rd parameter | |
pulu pc ; next | |
;;;; | |
;;;; slow HL ... | |
;;;; jsr DOLST | |
;;;; FDB TOR | |
;;;; FDB BRAN,CMOV2 | |
;;;;CMOV1: FDB TOR,DUPP,CAT | |
;;;; FDB RAT,CSTOR | |
;;;; FDB PLUS1 | |
;;;; FDB RFROM,PLUS1 | |
;;;;CMOV2: FDB DONXT,CMOV1 | |
;;;; FDB DDROP,EXIT | |
;;;; | |
; FILL ( b u c -- ) | |
; Fill u bytes of character c to area beginning at b. | |
FDB FILL,L1100 | |
L1110 FCB 4,"FILL" | |
FILL: | |
ldd 2,s ;count | |
beq NFILL3 ;zero -> leave | |
tstb ;count low | |
beq NFILL1 | |
inc 2,s ;ajust high for to-0 decrementation | |
NFILL1: | |
ldx 4,s ;to addr | |
lda 1,s ;fill byte, low byte from TOS | |
NFILL2: | |
sta ,x+ ;to | |
decb ;low count | |
bne NFILL2 | |
dec 2,s ;high count | |
bne NFILL2 | |
NFILL3 leas 6,s ;drop 3 parameters from stack | |
pulu pc | |
;;;; slow HL ... | |
;;;; jsr DOLST | |
;;;; FDB SWAP,TOR,SWAP | |
;;;; FDB BRAN,FILL2 | |
;;;;FILL1: FDB DDUP,CSTOR,PLUS1 | |
;;;;FILL2: FDB DONXT,FILL1 | |
;;;; FDB DDROP,EXIT | |
; -TRAILING ( b u -- b u ) | |
; Adjust the count to eliminate trailing white space. | |
FDB DTRAI,L1110 | |
L1120 FCB 9,"-TRAILING" | |
DTRAI jsr DOLST | |
FDB TOR | |
FDB BRAN,DTRA2 | |
DTRA1 FDB BLANK,OVER,RAT,PLUS,CAT,LESS | |
FDB QBRAN,DTRA2 | |
FDB RFROM,PLUS1,EXIT | |
DTRA2 FDB DONXT,DTRA1 | |
FDB ZERO,EXIT | |
; PACK$ ( b u a -- a ) | |
; Build a counted string with u characters from b. Null fill. | |
FDB PACKS,L1120 | |
L1130 FCB 5,"PACK$" | |
PACKS jsr DOLST | |
FDB DUPP,TOR ;strings only on cell boundary | |
FDB DDUP,CSTOR | |
FDB PLUS1 ;count mod cell | |
FDB DDUP,PLUS | |
FDB ZERO,SWAP,CSTOR ;null fill cell | |
FDB SWAP,CMOVE,RFROM,EXIT ;move string | |
;; Numeric output, single precision | |
; DIGIT ( u -- c ) | |
; Convert digit u to a character. | |
FDB DIGIT,L1130 | |
L1140 FCB 5,"DIGIT" | |
DIGIT jsr DOLST | |
FDB DOCLIT | |
FCB 9 | |
FDB OVER,LESS | |
FDB DOCLIT | |
FCB 7 | |
FDB ANDD,PLUS | |
FDB DOLIT,'0',PLUS,EXIT | |
; EXTRACT ( n base -- n c ) | |
; Extract the least significant digit from n. | |
FDB EXTRC,L1140 | |
L1150 FCB 7,"EXTRACT" | |
EXTRC jsr DOLST | |
FDB ZERO,SWAP,UMMOD | |
FDB SWAP,DIGIT,EXIT | |
; <# ( -- ) | |
; Initiate the numeric output process. | |
FDB BDIGS,L1150 | |
L1160 FCB 2,"<#" | |
BDIGS jsr DOLST | |
FDB PAD,HLD,STORE,EXIT | |
; HOLD ( c -- ) | |
; Insert a character into the numeric output string. | |
FDB HOLD,L1160 | |
L1170 FCB 4,"HOLD" | |
HOLD jsr DOLST | |
FDB HLD,AT,MINUS1 | |
FDB DUPP,HLD,STORE,CSTOR,EXIT | |
; # ( u -- u ) | |
; Extract one digit from u and append the digit to output string. | |
FDB DIG,L1170 | |
L1180 FCB 1,"#" | |
DIG jsr DOLST | |
FDB BASE,AT,EXTRC,HOLD,EXIT | |
; #S ( u -- 0 ) | |
; Convert u until all digits are added to the output string. | |
FDB DIGS,L1180 | |
L1190 FCB 2,"#S" | |
DIGS jsr DOLST | |
DIGS1 FDB DIG,DUPP | |
FDB QBRAN,DIGS2 | |
FDB BRAN,DIGS1 | |
DIGS2 FDB EXIT | |
; SIGN ( n -- ) | |
; Add a minus sign to the numeric output string. | |
FDB SIGN,L1190 | |
L1200 FCB 4,"SIGN" | |
SIGN jsr DOLST | |
FDB ZLESS | |
FDB QBRAN,SIGN1 | |
FDB DOLIT,'-',HOLD | |
SIGN1 FDB EXIT | |
; #> ( w -- b u ) | |
; Prepare the output string to be TYPE'd. | |
FDB EDIGS,L1200 | |
L1210 FCB 2,"#>" | |
EDIGS jsr DOLST | |
FDB DROP,HLD,AT | |
FDB PAD,OVER,SUBB,EXIT | |
; str ( w -- b u ) | |
; Convert a signed integer to a numeric string. | |
FDB STR,L1210 | |
L1220 FCB 3,"str" | |
STR jsr DOLST | |
FDB DUPP,TOR,ABSS | |
FDB BDIGS,DIGS,RFROM | |
FDB SIGN,EDIGS,EXIT | |
; HEX ( -- ) | |
; Use radix 16 as base for numeric conversions. | |
FDB HEX,L1220 | |
L1230 FCB 3,"HEX" | |
HEX jsr DOLST | |
FDB DOCLIT | |
FCB 16 | |
FDB BASE,STORE,EXIT | |
; DECIMAL ( -- ) | |
; Use radix 10 as base for numeric conversions. | |
FDB DECIM,L1230 | |
L1240 FCB 7,"DECIMAL" | |
DECIM jsr DOLST | |
FDB DOCLIT | |
FCB 10 | |
FDB BASE,STORE,EXIT | |
;; Numeric input, single precision | |
; DIGIT? ( c base -- u t ) | |
; Convert a character to its numeric value. A flag indicates success. | |
FDB DIGTQ,L1240 | |
L1250 FCB 6,"DIGIT?" | |
DIGTQ jsr DOLST | |
FDB TOR,DOLIT,'0',SUBB | |
FDB DOCLIT | |
FCB 9 | |
FDB OVER,LESS | |
FDB QBRAN,DGTQ1 | |
FDB DOCLIT | |
FCB 7 | |
FDB SUBB | |
FDB DUPP,DOLIT,10,LESS,ORR | |
DGTQ1 FDB DUPP,RFROM,ULESS,EXIT | |
; NUMBER? ( a -- n T | a F ) | |
; Convert a number string to integer. Push a flag on tos. | |
FDB NUMBQ,L1250 | |
L1260 FCB 7,"NUMBER?" | |
NUMBQ jsr DOLST | |
FDB BASE,AT,TOR,ZERO,OVER,COUNT | |
FDB OVER,CAT,DOLIT,'$',EQUAL | |
FDB QBRAN,NUMQ1 | |
FDB HEX,SWAP,PLUS1 | |
FDB SWAP,MINUS1 | |
NUMQ1 FDB OVER,CAT,DOLIT,'-',EQUAL,TOR | |
FDB SWAP,RAT,SUBB,SWAP,RAT,PLUS,QDUP | |
FDB QBRAN,NUMQ6 | |
FDB MINUS1,TOR | |
NUMQ2 FDB DUPP,TOR,CAT,BASE,AT,DIGTQ | |
FDB QBRAN,NUMQ4 | |
FDB SWAP,BASE,AT,STAR,PLUS,RFROM | |
FDB PLUS1 | |
FDB DONXT,NUMQ2 | |
FDB RAT,SWAP,DROP | |
FDB QBRAN,NUMQ3 | |
FDB NEGAT | |
NUMQ3 FDB SWAP | |
FDB BRAN,NUMQ5 | |
NUMQ4 FDB RFROM,RFROM,DDROP,DDROP,ZERO | |
NUMQ5 FDB DUPP | |
NUMQ6 FDB RFROM,DDROP | |
FDB RFROM,BASE,STORE,EXIT | |
;; Basic I/O | |
; ?KEY ( -- c T | F ) | |
; Return input character and true, or a false if no input. | |
FDB QKEY,L1260 | |
L1270 FCB 4,"?KEY" | |
QKEY jsr DOLST | |
FDB TQKEY,ATEXE,EXIT | |
; KEY ( -- c ) | |
; Wait for and return an input character. | |
FDB KEY,L1270 | |
L1280 FCB 3,"KEY" | |
KEY jsr DOLST | |
KEY1 FDB QKEY | |
FDB QBRAN,KEY1 | |
FDB EXIT | |
; EMIT ( c -- ) | |
; Send a character to the output device. | |
FDB EMIT,L1280 | |
L1290 FCB 4,"EMIT" | |
EMIT jsr DOLST | |
FDB TEMIT,ATEXE,EXIT | |
; NUF? ( -- t ) | |
; Return false if no input, else pause and if CR return true. | |
FDB NUFQ,L1290 | |
L1300 FCB 4,"NUF?" | |
NUFQ jsr DOLST | |
FDB QKEY,DUPP | |
FDB QBRAN,NUFQ1 | |
FDB DDROP,KEY,DOCLIT | |
FCB CRR | |
FDB EQUAL | |
NUFQ1 FDB EXIT | |
; PACE ( -- ) | |
; Send a pace character for the file downloading process. | |
FDB PACE,L1300 | |
L1310 FCB 4,"PACE" | |
PACE jsr DOLST | |
FDB DOCLIT | |
FCB 11 | |
FDB EMIT,EXIT | |
; SPACE ( -- ) | |
; Send the blank character to the output device. | |
FDB SPACE,L1310 | |
L1320 FCB 5,"SPACE" | |
SPACE jsr DOLST | |
FDB BLANK,EMIT,EXIT | |
; SPACES ( +n -- ) | |
; Send n spaces to the output device. | |
FDB SPACS,L1320 | |
L1330 FCB 6,"SPACES" | |
SPACS jsr DOLST | |
FDB ZERO,MAX,TOR | |
FDB BRAN,CHAR2 | |
CHAR1 FDB SPACE | |
CHAR2 FDB DONXT,CHAR1 | |
FDB EXIT | |
; TYPE ( b u -- ) | |
; Output u characters from b. | |
FDB TYPES,L1330 | |
L1340 FCB 4,"TYPE" | |
TYPES jsr DOLST | |
FDB TOR | |
FDB BRAN,TYPE2 | |
TYPE1 FDB DUPP,CAT,EMIT | |
FDB PLUS1 | |
TYPE2 FDB DONXT,TYPE1 | |
FDB DROP,EXIT | |
; CR ( -- ) | |
; Output a carriage return and a line feed. | |
FDB CR,L1340 | |
L1350 FCB 2,"CR" | |
CR jsr DOLST | |
FDB DOCLIT | |
FCB CRR | |
FDB EMIT | |
FDB DOCLIT | |
FCB LF | |
FDB EMIT,EXIT | |
; do$ ( -- a ) | |
; Return the address of a compiled string. | |
FDB DOSTR,L1350 | |
L1360 FCB COMPO+3,"do$" | |
DOSTR jsr DOLST | |
FDB RFROM,RAT,RFROM,COUNT,PLUS | |
FDB ALGND,TOR,SWAP,TOR,EXIT | |
; $"| ( -- a ) | |
; Run time routine compiled by $". Return address of a compiled string. | |
FDB STRQP,L1360 | |
L1370 FCB COMPO+3,"$",$22,"|" | |
STRQP jsr DOLST | |
FDB DOSTR,EXIT ;force a call to do$ | |
; ."| ( -- ) | |
; Run time routine of ." . Output a compiled string. | |
FDB DOTQP,L1370 | |
L1380 FCB COMPO+3,".",$22,"|" | |
DOTQP jsr DOLST | |
FDB DOSTR,COUNT,TYPES,EXIT | |
; .R ( n +n -- ) | |
; Display an integer in a field of n columns, right justified. | |
FDB DOTR,L1380 | |
L1390 FCB 2,".R" | |
DOTR jsr DOLST | |
FDB TOR,STR,RFROM,OVER,SUBB | |
FDB SPACS,TYPES,EXIT | |
; U.R ( u +n -- ) | |
; Display an unsigned integer in n column, right justified. | |
FDB UDOTR,L1390 | |
L1400 FCB 3,"U.R" | |
UDOTR jsr DOLST | |
FDB TOR,BDIGS,DIGS,EDIGS | |
FDB RFROM,OVER,SUBB | |
FDB SPACS,TYPES,EXIT | |
; U. ( u -- ) | |
; Display an unsigned integer in free format. | |
FDB UDOT,L1400 | |
L1410 FCB 2,"U." | |
UDOT jsr DOLST | |
FDB BDIGS,DIGS,EDIGS | |
FDB SPACE,TYPES,EXIT | |
; . ( w -- ) | |
; Display an integer in free format, preceeded by a space. | |
FDB DOT,L1410 | |
L1420 FCB 1,"." | |
DOT jsr DOLST | |
FDB BASE,AT,DOCLIT | |
FCB 10 | |
FDB XORR ;?decimal | |
FDB QBRAN,DOT1 | |
FDB UDOT,EXIT ;no, display unsigned | |
DOT1 FDB STR,SPACE,TYPES,EXIT ;yes, display signed | |
; ? ( a -- ) | |
; Display the contents in a memory cell. | |
FDB QUEST,L1420 | |
L1430 FCB 1,"?" | |
QUEST jsr DOLST | |
FDB AT,DOT,EXIT | |
;; Parsing | |
; parse ( b u c -- b u delta ; <string> ) | |
; Scan string delimited by c. Return found string and its offset. | |
FDB PARS,L1430 | |
L1440 FCB 5,"parse" | |
PARS jsr DOLST | |
FDB TEMP,STORE,OVER,TOR,DUPP | |
FDB QBRAN,PARS8 | |
FDB MINUS1,TEMP,AT,BLANK,EQUAL | |
FDB QBRAN,PARS3 | |
FDB TOR | |
PARS1 FDB BLANK,OVER,CAT ;skip leading blanks ONLY | |
FDB SUBB,ZLESS,INVER | |
FDB QBRAN,PARS2 | |
FDB PLUS1 | |
FDB DONXT,PARS1 | |
FDB RFROM,DROP,ZERO,DUPP,EXIT | |
PARS2 FDB RFROM | |
PARS3 FDB OVER,SWAP | |
FDB TOR | |
PARS4 FDB TEMP,AT,OVER,CAT,SUBB ;scan for delimiter | |
FDB TEMP,AT,BLANK,EQUAL | |
FDB QBRAN,PARS5 | |
FDB ZLESS | |
PARS5 FDB QBRAN,PARS6 | |
FDB PLUS1 | |
FDB DONXT,PARS4 | |
FDB DUPP,TOR | |
FDB BRAN,PARS7 | |
PARS6 FDB RFROM,DROP,DUPP | |
FDB PLUS1,TOR | |
PARS7 FDB OVER,SUBB | |
FDB RFROM,RFROM,SUBB,EXIT | |
PARS8 FDB OVER,RFROM,SUBB,EXIT | |
; PARSE ( c -- b u ; <string> ) | |
; Scan input stream and return counted string delimited by c. | |
FDB PARSE,L1440 | |
L1450 FCB 5,"PARSE" | |
PARSE jsr DOLST | |
FDB TOR,TIB,INN,AT,PLUS ;current input buffer pointer | |
FDB NTIB,AT,INN,AT,SUBB ;remaining count | |
FDB RFROM,PARS,INN,PSTOR,EXIT | |
; .( ( -- ) | |
; Output following string up to next ) . | |
FDB DOTPR,L1450 | |
L1460 FCB IMEDD+2,".(" | |
DOTPR jsr DOLST | |
FDB DOLIT,')',PARSE,TYPES,EXIT | |
; ( ( -- ) | |
; Ignore following string up to next ) . A comment. | |
FDB PAREN,L1460 | |
L1470 FCB IMEDD+1,"(" | |
PAREN jsr DOLST | |
FDB DOLIT,')',PARSE,DDROP,EXIT | |
; \ ( -- ) | |
; Ignore following text till the end of line. | |
FDB BKSLA,L1470 | |
L1480 FCB IMEDD+1,92 ; '\' but give as numeric to avoid different escap char processing in different assemblers | |
BKSLA jsr DOLST | |
FDB NTIB,AT,INN,STORE,EXIT | |
; CHAR ( -- c ) | |
; Parse next word and return its first character. | |
FDB CHAR,L1480 | |
L1490 FCB 4,"CHAR" | |
CHAR jsr DOLST | |
FDB BLANK,PARSE,DROP,CAT,EXIT | |
; TOKEN ( -- a ; <string> ) | |
; Parse a word from input stream and copy it to name dictionary. | |
FDB TOKEN,L1490 | |
L1500 FCB 5,"TOKEN" | |
TOKEN jsr DOLST | |
FDB BLANK,PARSE,DOCLIT | |
FCB 31 | |
FDB MIN | |
FDB NP,AT,OVER,SUBB,CELLM | |
FDB PACKS,EXIT | |
; WORD ( c -- a ; <string> ) | |
; Parse a word from input stream and copy it to code dictionary. | |
FDB WORD,L1500 | |
L1510 FCB 4,"WORD" | |
WORD jsr DOLST | |
FDB PARSE,HERE,PACKS,EXIT | |
;; Dictionary search | |
; NAME> ( na -- ca ) | |
; Return a code address given a name address. | |
FDB NAMET,L1510 | |
L1520 FCB 5,"NAME>" | |
NAMET jsr DOLST | |
FDB CELLM,CELLM,AT,EXIT | |
; SAME? ( a a u -- a a f \ -0+ ) | |
; Compare u bytes in two strings. Return 0 if identical. | |
FDB SAMEQ,L1520 | |
L1530 FCB 5,"SAME?" | |
SAMEQ jsr DOLST | |
FDB TOR | |
FDB BRAN,SAME2 | |
SAME1 FDB OVER,RAT,PLUS,CAT | |
FDB OVER,RAT,PLUS,CAT | |
FDB SUBB,QDUP | |
FDB QBRAN,SAME2 | |
FDB RFROM,DROP,EXIT | |
SAME2 FDB DONXT,SAME1 | |
FDB DOLIT,0,EXIT | |
; find ( a va -- ca na | a F ) | |
; Search a vocabulary for a string. Return ca and na if succeeded. | |
FDB FIND,L1530 | |
L1540 FCB 4,"find" | |
FIND jsr DOLST | |
FDB SWAP,DUPP,CAT,MINUS1 | |
FDB TEMP,STORE | |
FDB DUPP,AT,TOR,CELLP,SWAP | |
FIND1 FDB AT,DUPP | |
FDB QBRAN,FIND6 | |
FDB DUPP,AT,DOLIT,MASKK,ANDD,RAT,XORR | |
FDB QBRAN,FIND2 | |
FDB CELLP,MONE | |
FDB BRAN,FIND3 | |
FIND2 FDB CELLP,TEMP,AT,SAMEQ | |
FIND3 FDB BRAN,FIND4 | |
FIND6 FDB RFROM,DROP | |
FDB SWAP,CELLM,SWAP,EXIT | |
FIND4 FDB QBRAN,FIND5 | |
FDB CELLM,CELLM | |
FDB BRAN,FIND1 | |
FIND5 FDB RFROM,DROP,SWAP,DROP | |
FDB CELLM | |
FDB DUPP,NAMET,SWAP,EXIT | |
; NAME? ( a -- ca na | a F ) | |
; Search all context vocabularies for a string. | |
FDB NAMEQ,L1540 | |
L1550 FCB 5,"NAME?" | |
NAMEQ jsr DOLST | |
FDB CNTXT,DUPP,DAT,XORR | |
FDB QBRAN,NAMQ1 | |
FDB CELLM | |
NAMQ1 FDB TOR | |
NAMQ2 FDB RFROM,CELLP,DUPP,TOR | |
FDB AT,QDUP | |
FDB QBRAN,NAMQ3 | |
FDB FIND,QDUP | |
FDB QBRAN,NAMQ2 | |
FDB RFROM,DROP,EXIT | |
NAMQ3 FDB RFROM,DROP | |
FDB ZERO,EXIT | |
;; Terminal response | |
; ^H ( bot eot cur -- bot eot cur ) | |
; Backup the cursor by one character. | |
FDB BKSP,L1550 | |
L1560 FCB 2,"^H" | |
BKSP jsr DOLST | |
FDB TOR,OVER,RFROM,SWAP,OVER,XORR | |
FDB QBRAN,BACK1 | |
FDB DOLIT,BKSPP,TECHO,ATEXE,MINUS1 | |
FDB BLANK,TECHO,ATEXE | |
FDB DOLIT,BKSPP,TECHO,ATEXE | |
BACK1 FDB EXIT | |
; TAP ( bot eot cur c -- bot eot cur ) | |
; Accept and echo the key stroke and bump the cursor. | |
FDB TAP,L1560 | |
L1570 FCB 3,"TAP" | |
TAP jsr DOLST | |
FDB DUPP,TECHO,ATEXE | |
FDB OVER,CSTOR,PLUS1,EXIT | |
; kTAP ( bot eot cur c -- bot eot cur ) | |
; Process a key stroke, CR or backspace. | |
FDB KTAP,L1570 | |
L1580 FCB 4,"kTAP" | |
KTAP jsr DOLST | |
FDB DUPP,DOCLIT | |
FCB CRR | |
FDB XORR | |
FDB QBRAN,KTAP2 | |
FDB DUPP,DOLIT,BKSPP,XORR | |
FDB SWAP,DOLIT,BKSPP2,XORR,ANDD | |
FDB QBRAN,KTAP1 | |
FDB BLANK,TAP,EXIT | |
KTAP1 FDB BKSP,EXIT | |
KTAP2 FDB DROP,SWAP,DROP,DUPP,EXIT | |
; accept ( b u -- b u ) | |
; Accept characters to input buffer. Return with actual count. | |
FDB ACCEP,L1580 | |
L1590 FCB 6,"ACCEPT" | |
ACCEP jsr DOLST | |
FDB OVER,PLUS,OVER | |
ACCP1 FDB DDUP,XORR | |
FDB QBRAN,ACCP4 | |
FDB KEY,DUPP | |
; FDB BLANK,SUBB,DOLIT,95,ULESS | |
FDB BLANK,DOLIT,127,WITHI | |
FDB QBRAN,ACCP2 | |
FDB TAP | |
FDB BRAN,ACCP3 | |
ACCP2 FDB TTAP,ATEXE | |
ACCP3 FDB BRAN,ACCP1 | |
ACCP4 FDB DROP,OVER,SUBB,EXIT | |
; EXPECT ( b u -- ) | |
; Accept input stream and store count in SPAN. | |
FDB EXPEC,L1590 | |
L1600 FCB 6,"EXPECT" | |
EXPEC jsr DOLST | |
FDB TEXPE,ATEXE,SPAN,STORE,DROP,EXIT | |
; QUERY ( -- ) | |
; Accept input stream to terminal input buffer. | |
FDB QUERY,L1600 | |
L1610 FCB 5,"QUERY" | |
QUERY jsr DOLST | |
FDB TIB,DOCLIT | |
FCB 80 | |
FDB TEXPE,ATEXE,NTIB,STORE | |
FDB DROP,ZERO,INN,STORE,EXIT | |
;; Error handling | |
; CATCH ( ca -- 0 | err# ) | |
; Execute word at ca and set up an error frame for it. | |
FDB CATCH,L1610 | |
L1620 FCB 5,"CATCH" | |
CATCH jsr DOLST | |
FDB SPAT,TOR,HANDL,AT,TOR ;save error frame | |
FDB RPAT,HANDL,STORE,EXECU ;execute | |
FDB RFROM,HANDL,STORE ;restore error frame | |
FDB RFROM,DROP,ZERO,EXIT ;no error | |
; THROW ( err# -- err# ) | |
; Reset system to current local error frame an update error flag. | |
FDB THROW,L1620 | |
L1630 FCB 5,"THROW" | |
THROW jsr DOLST | |
FDB HANDL,AT,RPSTO ;restore return stack | |
FDB RFROM,HANDL,STORE ;restore handler frame | |
FDB RFROM,SWAP,TOR,SPSTO ;restore data stack | |
FDB DROP,RFROM,EXIT | |
; NULL$ ( -- a ) | |
; Return address of a null string with zero count. | |
FDB NULLS,L1630 | |
L1640 FCB 5,"NULL$" | |
NULLS: | |
;;;; jsr DOLST | |
;;;; FDB DOVAR ;emulate CREATE | |
jsr FDOVAR | |
FDB 0 | |
FCB 99,111,121,111,116,101 | |
; ABORT ( -- ) | |
; Reset data stack and jump to QUIT. | |
FDB ABORT,L1640 | |
L1650 FCB 5,"ABORT" | |
ABORT jsr DOLST | |
FDB NULLS,THROW | |
; abort" ( f -- ) | |
; Run time routine of ABORT" . Abort with a message. | |
FDB ABORQ,L1650 | |
L1660 FCB COMPO+6,"abort",'"' | |
ABORQ jsr DOLST | |
FDB QBRAN,ABOR1 ;text flag | |
FDB DOSTR,THROW ;pass error string | |
ABOR1 FDB DOSTR,DROP,EXIT ;drop error | |
;; The text interpreter | |
; $INTERPRET ( a -- ) | |
; Interpret a word. If failed, try to convert it to an integer. | |
FDB INTER,L1660 | |
L1670 FCB 10,"$INTERPRET" | |
INTER jsr DOLST | |
FDB NAMEQ,QDUP ;?defined | |
FDB QBRAN,INTE1 | |
FDB AT,DOLIT,COMPO*256,ANDD ;?compile only lexicon bits | |
FDB ABORQ | |
FCB 13," compile only" | |
FDB EXECU,EXIT ;execute defined word | |
INTE1 FDB TNUMB,ATEXE ;convert a number | |
FDB QBRAN,INTE2 | |
FDB EXIT | |
INTE2 FDB THROW ;error | |
; [ ( -- ) | |
; Start the text interpreter. | |
FDB LBRAC,L1670 | |
L1680 FCB IMEDD+1,"[" | |
LBRAC jsr DOLST | |
FDB DOLIT,INTER,TEVAL,STORE,EXIT | |
; .OK ( -- ) | |
; Display 'ok' only while interpreting. | |
FDB DOTOK,L1680 | |
L1690 FCB 3,".OK" | |
DOTOK jsr DOLST | |
FDB DOLIT,INTER,TEVAL,AT,EQUAL | |
FDB QBRAN,DOTO1 | |
FDB DOTQP | |
FCB 3," ok" | |
DOTO1 FDB CR,EXIT | |
; ?STACK ( -- ) | |
; Abort if the data stack underflows. | |
FDB QSTAC,L1690 | |
L1700 FCB 6,"?STACK" | |
QSTAC jsr DOLST | |
FDB DEPTH,ZLESS ;check only for underflow | |
FDB ABORQ | |
FCB 10," underflow" | |
FDB EXIT | |
; EVAL ( -- ) | |
; Interpret the input stream. | |
FDB EVAL,L1700 | |
L1710 FCB 4,"EVAL" | |
EVAL jsr DOLST | |
EVAL1 FDB TOKEN,DUPP,CAT ;?input stream empty | |
FDB QBRAN,EVAL2 | |
FDB TEVAL,ATEXE,QSTAC ;evaluate input, check stack | |
FDB BRAN,EVAL1 | |
EVAL2 FDB DROP,TPROM,ATEXE,EXIT ;prompt | |
;; Shell | |
; PRESET ( -- ) | |
; Reset data stack pointer and the terminal input buffer. | |
FDB PRESE,L1710 | |
L1720 FCB 6,"PRESET" | |
PRESE jsr DOLST | |
FDB SZERO,AT,SPSTO | |
FDB DOLIT,TIBB,NTIB,CELLP,STORE,EXIT | |
; xio ( a a a -- ) | |
; Reset the I/O vectors 'EXPECT, 'TAP, 'ECHO and 'PROMPT. | |
FDB XIO,L1720 | |
L1730 FCB COMPO+3,"xio" | |
XIO jsr DOLST | |
FDB DOLIT,ACCEP,TEXPE,DSTOR | |
FDB TECHO,DSTOR,EXIT | |
; FILE ( -- ) | |
; Select I/O vectors for file download. | |
FDB FILE,L1730 | |
L1740 FCB 4,"FILE" | |
FILE jsr DOLST | |
FDB DOLIT,PACE,DOLIT,DROP | |
FDB DOLIT,KTAP,XIO,EXIT | |
; HAND ( -- ) | |
; Select I/O vectors for terminal interface. | |
FDB HAND,L1740 | |
L1750 FCB 4,"HAND" | |
HAND jsr DOLST | |
FDB DOLIT,DOTOK,DOLIT,EMIT | |
FDB DOLIT,KTAP,XIO,EXIT | |
; I/O ( -- a ) | |
; Array to store default I/O vectors. | |
FDB ISLO,L1750 | |
L1760 FCB 3,"I/O" | |
ISLO: | |
;; jsr DOLST | |
;; FDB DOVAR ;emulate CREATE | |
jsr FDOVAR | |
FDB QRX,TXSTO ;default I/O vectors | |
; CONSOLE ( -- ) | |
; Initiate terminal interface. | |
FDB CONSO,L1760 | |
L1770 FCB 7,"CONSOLE" | |
CONSO jsr DOLST | |
FDB ISLO,DAT,TQKEY,DSTOR ;restore default I/O device | |
FDB HAND,EXIT ;keyboard input | |
; QUIT ( -- ) | |
; Reset return stack pointer and start text interpreter. | |
FDB QUIT,L1770 | |
L1780 FCB 4,"QUIT" | |
QUIT jsr DOLST | |
FDB RZERO,AT,RPSTO ;reset return stack pointer | |
QUIT1 FDB LBRAC ;start interpretation | |
QUIT2 FDB QUERY ;get input | |
FDB DOLIT,EVAL,CATCH,QDUP ;evaluate input | |
FDB QBRAN,QUIT2 ;continue till error | |
FDB TPROM,AT,TOR ;save input device | |
FDB CONSO,NULLS,OVER,XORR ;?display error message | |
FDB QBRAN,QUIT3 | |
FDB SPACE,COUNT,TYPES ;error message | |
FDB DOTQP | |
FCB 3," ? " ;error prompt | |
QUIT3 FDB RFROM,DOLIT,DOTOK,XORR ;?file input | |
FDB QBRAN,QUIT4 | |
FDB DOLIT,ERR,EMIT ;file error, tell host | |
QUIT4 FDB PRESE ;some cleanup | |
FDB BRAN,QUIT1 | |
;; The compiler | |
; ' ( -- ca ) | |
; Search context vocabularies for the next word in input stream. | |
FDB TICK,L1780 | |
L1790 FCB 1,"'" | |
TICK jsr DOLST | |
FDB TOKEN,NAMEQ ;?defined | |
FDB QBRAN,TICK1 | |
FDB EXIT ;yes, push code address | |
TICK1 FDB THROW ;no, error | |
; ALLOT ( n -- ) | |
; Allocate n bytes to the code dictionary. | |
FDB ALLOT,L1790 | |
L1800 FCB 5,"ALLOT" | |
ALLOT jsr DOLST | |
FDB CP,PSTOR,EXIT ;adjust code pointer | |
; , ( w -- ) | |
; Compile an integer into the code dictionary. | |
FDB COMMA,L1800 | |
L1810 FCB 1,"," | |
COMMA jsr DOLST | |
FDB HERE,DUPP,CELLP ;cell boundary | |
FDB CP,STORE,STORE,EXIT ;adjust code pointer and compile | |
; [COMPILE] ( -- ; <string> ) | |
; Compile the next immediate word into code dictionary. | |
FDB BCOMP,L1810 | |
L1820 FCB IMEDD+9,"[COMPILE]" | |
BCOMP jsr DOLST | |
FDB TICK,COMMA,EXIT | |
; COMPILE ( -- ) | |
; Compile the next address in colon list to code dictionary. | |
FDB COMPI,L1820 | |
L1830 FCB COMPO+7,"COMPILE" | |
COMPI jsr DOLST | |
FDB RFROM,DUPP,AT,COMMA ;compile address | |
FDB CELLP,TOR,EXIT ;adjust return address | |
; LITERAL ( w -- ) | |
; Compile tos to code dictionary as an integer literal. | |
FDB LITER,L1830 | |
L1840 FCB IMEDD+7,"LITERAL" | |
LITER jsr DOLST | |
FDB COMPI,DOLIT,COMMA,EXIT | |
; $," ( -- ) | |
; Compile a literal string up to next " . | |
FDB STRCQ,L1840 | |
L1850 FCB 3,"$,",'"' | |
STRCQ jsr DOLST | |
FDB DOLIT,'"',WORD ;move string to code dictionary | |
FDB COUNT,PLUS,ALGND ;calculate aligned end of string | |
FDB CP,STORE,EXIT ;adjust the code pointer | |
; RECURSE ( -- ) | |
; Make the current word available for compilation. | |
FDB RECUR,L1850 | |
L1860 FCB IMEDD+7,"RECURSE" | |
RECUR jsr DOLST | |
FDB LAST,AT,NAMET,COMMA,EXIT | |
;; Structures | |
; DO ( -- a m ) | |
; Start a DO-LOOP/+LOOP structure in a colon definition. | |
FDB DO,L1860 | |
L1861 FCB IMEDD+2,"DO" | |
DO jsr DOLST | |
FDB COMPI,DODO,HERE | |
FDB ONE ; marker for DO | |
FDB EXIT | |
; ?DO ( -- a m ) | |
; Start a ?DO-LOOP/+LOOP structure in a colon definition. | |
FDB QDO,L1861 | |
L1862 FCB IMEDD+3,"?DO" | |
QDO jsr DOLST | |
FDB COMPI,DOQDO,HERE | |
FDB COMPI,0 ; branch destination placeholder | |
FDB TWO ; marker for ?DO | |
FDB EXIT | |
; (?DO) ( w w -- ) | |
; Runtime part of DO in a DO-LOOP/+LOOP structure. | |
FDB DOQDO,L1862 | |
L1862A FCB 5,"(?DO)" | |
DOQDO: | |
puls d ;start | |
cmpd ,s ;start < end -> ok | |
blt DOQDO1 | |
leas 2,s ;drop end | |
ldu ,u | |
pulu pc ;branch past loop | |
DOQDO1: | |
puls x ;end | |
stx ,--y ;end to return stack | |
std ,--y ;start to return stack | |
leau 2,u ;skip jump forward | |
pulu pc | |
; -DO ( -- a m ) | |
; Start a -DO-LOOP/+LOOP structure in a colon definition. | |
FDB MDO,L1862A | |
L1862B FCB IMEDD+3,"-DO" | |
MDO jsr DOLST | |
FDB COMPI,DOMDO,HERE | |
FDB COMPI,0 ; branch destination placeholder | |
FDB TWO ; marker for ?DO/-DO | |
FDB EXIT | |
; (-DO) ( w w -- ) | |
; Runtime part of -DO in a -DO-LOOP/+LOOP structure. | |
FDB DOMDO,L1862B | |
L1862C FCB 5,"(-DO)" | |
DOMDO: | |
puls d ;start | |
cmpd ,s ;start > end -> ok | |
bgt DOMDO1 | |
leas 2,s ;drop end | |
ldu ,u | |
pulu pc ;branch past loop | |
DOMDO1: | |
puls x ;end | |
stx ,--y ;end to return stack | |
std ,--y ;start to return stack | |
leau 2,u ;skip jump forward | |
pulu pc | |
; (DO) ( w w -- ) | |
; Runtime part of DO in a DO-LOOP/+LOOP structure. | |
FDB DODO,L1862C | |
L1863 FCB 4,"(DO)" | |
DODO: | |
puls d,x ;start first, end second | |
stx ,--y ;end to return stack | |
std ,--y ;start to return stack | |
pulu pc | |
; (LOOP) ( -- ) | |
; Runtime part of LOOP | |
FDB DOLOOP,L1863 | |
L1864 FCB 6,"(LOOP)" | |
DOLOOP: | |
ldd #1 | |
bra DOPLOF | |
; (+LOOP) ( -- ) | |
; Runtime part of +LOOP | |
FDB DOPLOOP,L1864 | |
L1865 FCB IMEDD+7,"(+LOOP)" | |
DOPLOOP: | |
ldd ,s++ ; increment | |
bpl DOPLOF ; forward | |
addd ,y ; start/index | |
cmpd 2,y ; end | |
ble DOPLO1 ; index <= end -> leave | |
std ,y | |
ldu ,u ; branch to begin of loop | |
pulu pc | |
DOPLOF addd ,y ; start/index | |
cmpd 2,y ; end | |
bge DOPLO1 ; index >= end -> leave | |
std ,y ; save back | |
ldu ,u ; branch to begin of loop | |
pulu pc | |
DOPLO1: | |
leau 2,u ; skip back destination | |
leay 4,y ; remove index and upper from r stack | |
pulu pc | |
; LOOP ( a m -- ) | |
; Terminate a DO/?DO-LOOP loop structure. | |
FDB LOOP,L1865 | |
L1866 FCB IMEDD+4,"LOOP" | |
LOOP jsr DOLST | |
FDB COMPI,DOLOOP | |
FDB TWO,EQUAL,QBRAN,LOOP1 | |
FDB HERE,CELLP,OVER,STORE,CELLP ; branch forward destination | |
LOOP1 FDB COMMA,EXIT | |
; +LOOP ( a m -- ) | |
; Terminate a DO/?DO-+LOOP loop structure. | |
FDB PLOOP,L1866 | |
L1867 FCB IMEDD+5,"+LOOP" | |
PLOOP jsr DOLST | |
FDB COMPI,DOPLOOP | |
FDB TWO,EQUAL,QBRAN,PLOOP1 | |
FDB HERE,CELLP,OVER,STORE,CELLP ; branch forward destination | |
PLOOP1 FDB COMMA,EXIT | |
; LEAVE ( -- ) | |
; Leave DO/LOOP | |
FDB LEAVE,L1867 | |
L1868 FCB 5,"LEAVE" | |
LEAVE: | |
ldd ,y ;take index on return stack | |
std 2,y ;and change end to it | |
pulu pc | |
; FOR ( -- a ) | |
; Start a FOR-NEXT loop structure in a colon definition. | |
FDB FOR,L1867 | |
L1870 FCB IMEDD+3,"FOR" | |
FOR jsr DOLST | |
FDB COMPI,TOR,HERE,EXIT | |
; BEGIN ( -- a ) | |
; Start an infinite or indefinite loop structure. | |
FDB BEGIN,L1870 | |
L1880 FCB IMEDD+5,"BEGIN" | |
BEGIN jsr DOLST | |
FDB HERE,EXIT | |
; NEXT ( a -- ) | |
; Terminate a FOR-NEXT loop structure. | |
FDB NEXT,L1880 | |
L1890 FCB IMEDD+4,"NEXT" | |
NEXT jsr DOLST | |
FDB COMPI,DONXT,COMMA,EXIT | |
; UNTIL ( a -- ) | |
; Terminate a BEGIN-UNTIL indefinite loop structure. | |
FDB UNTIL,L1890 | |
L1900 FCB IMEDD+5,"UNTIL" | |
UNTIL jsr DOLST | |
FDB COMPI,QBRAN,COMMA,EXIT | |
; AGAIN ( a -- ) | |
; Terminate a BEGIN-AGAIN infinite loop structure. | |
FDB AGAIN,L1900 | |
L1910 FCB IMEDD+5,"AGAIN" | |
AGAIN jsr DOLST | |
FDB COMPI,BRAN,COMMA,EXIT | |
; IF ( -- A ) | |
; Begin a conditional branch structure. | |
FDB IFF,L1910 | |
L1920 FCB IMEDD+2,"IF" | |
IFF jsr DOLST | |
FDB COMPI,QBRAN,HERE | |
FDB ZERO,COMMA,EXIT | |
; AHEAD ( -- A ) | |
; Compile a forward branch instruction. | |
FDB AHEAD,L1920 | |
L1930 FCB IMEDD+5,"AHEAD" | |
AHEAD jsr DOLST | |
FDB COMPI,BRAN,HERE,ZERO,COMMA,EXIT | |
; REPEAT ( A a -- ) | |
; Terminate a BEGIN-WHILE-REPEAT indefinite loop. | |
FDB REPEA,L1930 | |
L1940 FCB IMEDD+6,"REPEAT" | |
REPEA jsr DOLST | |
FDB AGAIN,HERE,SWAP,STORE,EXIT | |
; THEN ( A -- ) | |
; Terminate a conditional branch structure. | |
FDB THENN,L1940 | |
L1950 FCB IMEDD+4,"THEN" | |
THENN jsr DOLST | |
FDB HERE,SWAP,STORE,EXIT | |
; AFT ( a -- a A ) | |
; Jump to THEN in a FOR-AFT-THEN-NEXT loop the first time through. | |
FDB AFT,L1950 | |
L1960 FCB IMEDD+3,"AFT" | |
AFT jsr DOLST | |
FDB DROP,AHEAD,BEGIN,SWAP,EXIT | |
; ELSE ( A -- A ) | |
; Start the false clause in an IF-ELSE-THEN structure. | |
FDB ELSEE,L1960 | |
L1970 FCB IMEDD+4,"ELSE" | |
ELSEE jsr DOLST | |
FDB AHEAD,SWAP,THENN,EXIT | |
; WHILE ( a -- A a ) | |
; Conditional branch out of a BEGIN-WHILE-REPEAT loop. | |
FDB WHILE,L1970 | |
L1980 FCB IMEDD+5,"WHILE" | |
WHILE jsr DOLST | |
FDB IFF,SWAP,EXIT | |
; ABORT" ( -- ; <string> ) | |
; Conditional abort with an error message. | |
FDB ABRTQ,L1980 | |
L1990 FCB IMEDD+6,"ABORT",'"' | |
ABRTQ jsr DOLST | |
FDB COMPI,ABORQ,STRCQ,EXIT | |
; $" ( -- ; <string> ) | |
; Compile an inline string literal. | |
FDB STRQ,L1990 | |
L2000 FCB IMEDD+2,"$",$22 | |
STRQ jsr DOLST | |
FDB COMPI,STRQP,STRCQ,EXIT | |
; ." ( -- ; <string> ) | |
; Compile an inline string literal to be typed out at run time. | |
FDB DOTQ,L2000 | |
L2010 FCB IMEDD+2,".",$22 | |
DOTQ jsr DOLST | |
FDB COMPI,DOTQP,STRCQ,EXIT | |
;; Name compiler | |
; ?UNIQUE ( a -- a ) | |
; Display a warning message if the word already exists. | |
FDB UNIQU,L2010 | |
L2020 FCB 7,"?UNIQUE" | |
UNIQU jsr DOLST | |
FDB DUPP,NAMEQ ;?name exists | |
FDB QBRAN,UNIQ1 | |
FDB DOTQP ;redefinitions are OK | |
FCB 7," reDef " ;but the user should be warned | |
FDB OVER,COUNT,TYPES ;just in case its not planned | |
UNIQ1 FDB DROP,EXIT | |
; $,n ( na -- ) | |
; Build a new dictionary name using the string at na. | |
FDB SNAME,L2020 | |
L2030 FCB 3,"$,n" | |
SNAME jsr DOLST | |
FDB DUPP,CAT ;?null input | |
FDB QBRAN,PNAM1 | |
FDB UNIQU ;?redefinition | |
FDB DUPP,LAST,STORE ;save na for vocabulary link | |
FDB HERE,ALGND,SWAP ;align code address | |
FDB CELLM ;link address | |
FDB CRRNT,AT,AT,OVER,STORE | |
FDB CELLM,DUPP,NP,STORE ;adjust name pointer | |
FDB STORE,EXIT ;save code pointer | |
PNAM1 FDB STRQP | |
FCB 5," name" ;null input | |
FDB THROW | |
;; FORTH compiler | |
; $COMPILE ( a -- ) | |
; Compile next word to code dictionary as a token or literal. | |
FDB SCOMP,L2030 | |
L2040 FCB 8,"$COMPILE" | |
SCOMP jsr DOLST | |
FDB NAMEQ,QDUP ;?defined | |
FDB QBRAN,SCOM2 | |
FDB AT,DOLIT,IMEDD*256,ANDD ;?immediate | |
FDB QBRAN,SCOM1 | |
FDB EXECU,EXIT ;its immediate, execute | |
SCOM1 FDB COMMA,EXIT ;its not immediate, compile | |
SCOM2 FDB TNUMB,ATEXE ;try to convert to number | |
FDB QBRAN,SCOM3 | |
FDB LITER,EXIT ;compile number as integer | |
SCOM3 FDB THROW ;error | |
; OVERT ( -- ) | |
; Link a new word into the current vocabulary. | |
FDB OVERT,L2040 | |
L2050 FCB 5,"OVERT" | |
OVERT jsr DOLST | |
FDB LAST,AT,CRRNT,AT,STORE,EXIT | |
; ; ( -- ) | |
; Terminate a colon definition. | |
FDB SEMIS,L2050 | |
L2060 FCB IMEDD+COMPO+1,";" | |
SEMIS jsr DOLST | |
FDB COMPI,EXIT,LBRAC,OVERT,EXIT | |
; ] ( -- ) | |
; Start compiling the words in the input stream. | |
FDB RBRAC,L2060 | |
L2070 FCB 1,"]" | |
RBRAC jsr DOLST | |
FDB DOLIT,SCOMP,TEVAL,STORE,EXIT | |
; call, ( ca -- ) | |
; Assemble a call instruction to ca. | |
FDB CALLC,L2070 | |
L2080 FCB 5,"call," | |
CALLC jsr DOLST | |
FDB DOCLIT | |
FCB CALLL | |
FDB HERE,CSTOR ;Direct Threaded Code | |
FDB ONE,ALLOT | |
FDB COMMA,EXIT ;DTC 6809 extended addr jsr | |
; : ( -- ; <string> ) | |
; Start a new colon definition using next word as its name. | |
FDB COLON,L2080 | |
L2090 FCB 1,":" | |
COLON jsr DOLST | |
FDB TOKEN,SNAME,DOLIT,DOLST | |
FDB CALLC,RBRAC,EXIT | |
; IMMEDIATE ( -- ) | |
; Make the last compiled word an immediate word. | |
FDB IMMED,L2090 | |
L2100 FCB 9,"IMMEDIATE" | |
IMMED jsr DOLST | |
FDB DOLIT,IMEDD*256,LAST,AT,AT,ORR | |
FDB LAST,AT,STORE,EXIT | |
;; Defining words | |
; USER ( u -- ; <string> ) | |
; Compile a new user variable. | |
FDB USER,L2100 | |
L2110 FCB 4,"USER" | |
USER jsr DOLST | |
FDB TOKEN,SNAME,OVERT | |
;;;; FDB DOLIT,DOLST,CALLC | |
;;;; FDB DOLIT,DOUSE,COMMA | |
; fast implementation .... | |
FDB DOLIT,FDOUSE,CALLC | |
FDB COMMA,EXIT | |
; CREATE ( -- ; <string> ) | |
; Compile a new array entry without allocating code space. | |
FDB CREAT,L2110 | |
L2120 FCB 6,"CREATE" | |
CREAT jsr DOLST | |
FDB TOKEN,SNAME,OVERT | |
;;;; FDB DOLIT,DOLST,CALLC | |
;;;; FDB DOLIT,DOVAR,COMMA,EXIT | |
; fast implementation .... | |
FDB DOLIT,FDOVAR,CALLC,EXIT | |
; VARIABLE ( -- ; <string> ) | |
; Compile a new variable initialized to 0. | |
FDB VARIA,L2120 | |
L2130 FCB 8,"VARIABLE" | |
VARIA jsr DOLST | |
FDB CREAT,ZERO,COMMA,EXIT | |
; CONSTANT ( w -- ; <string> ) | |
; Compile a new constant with value w. | |
FDB CONST,L2130 | |
L2135 FCB 8,"CONSTANT" | |
CONST jsr DOLST | |
FDB TOKEN,SNAME,OVERT | |
FDB DOLIT,DOCONST,CALLC | |
FDB COMMA,EXIT | |
;; Tools | |
; _TYPE ( b u -- ) | |
; Display a string. Filter non-printing characters. | |
FDB UTYPE,L2135 | |
L2140 FCB 5,"_TYPE" | |
UTYPE jsr DOLST | |
FDB TOR ;start count down loop | |
FDB BRAN,UTYP2 ;skip first pass | |
UTYP1 FDB DUPP,CAT,TCHAR,EMIT ;display only printable | |
FDB PLUS1 ;increment address | |
UTYP2 FDB DONXT,UTYP1 ;loop till done | |
FDB DROP,EXIT | |
; dm+ ( a u -- a ) | |
; Dump u bytes from , leaving a+u on the stack. | |
FDB DUMPP,L2140 | |
L2150 FCB 3,"dm+" | |
DUMPP jsr DOLST | |
FDB OVER,DOLIT,4,UDOTR ;display address | |
FDB SPACE,TOR ;start count down loop | |
FDB BRAN,PDUM2 ;skip first pass | |
PDUM1 FDB DUPP,CAT,DOLIT,3,UDOTR ;display numeric data | |
FDB PLUS1 ;increment address | |
PDUM2 FDB DONXT,PDUM1 ;loop till done | |
FDB EXIT | |
; DUMP ( a u -- ) | |
; Dump u bytes from a, in a formatted manner. | |
FDB DUMP,L2150 | |
L2160 FCB 4,"DUMP" | |
DUMP jsr DOLST | |
FDB BASE,AT,TOR,HEX ;save radix, set hex | |
FDB DOCLIT | |
FCB 16 | |
FDB SLASH ;change count to lines | |
FDB TOR ;start count down loop | |
DUMP1 FDB CR,DOCLIT | |
FCB 16 | |
FDB DDUP,DUMPP ;display numeric | |
FDB ROT,ROT | |
FDB TWO,SPACS,UTYPE ;display printable characters | |
FDB NUFQ,INVER ;user control | |
FDB QBRAN,DUMP2 | |
FDB DONXT,DUMP1 ;loop till done | |
FDB BRAN,DUMP3 | |
DUMP2 FDB RFROM,DROP ;cleanup loop stack, early exit | |
DUMP3 FDB DROP,RFROM,BASE,STORE ;restore radix | |
FDB EXIT | |
; .S ( ... -- ... ) | |
; Display the contents of the data stack. | |
FDB DOTS,L2160 | |
L2170 FCB 2,".S" | |
DOTS jsr DOLST | |
FDB CR,DEPTH ;stack depth | |
FDB TOR ;start count down loop | |
FDB BRAN,DOTS2 ;skip first pass | |
DOTS1 FDB RAT,PICK,DOT ;index stack, display contents | |
DOTS2 FDB DONXT,DOTS1 ;loop till done | |
FDB DOTQP | |
FCB 4," <sp" | |
FDB EXIT | |
; !CSP ( -- ) | |
; Save stack pointer in CSP for error checking. | |
FDB STCSP,L2170 | |
L2180 FCB 4,"!CSP" | |
STCSP jsr DOLST | |
FDB SPAT,CSP,STORE,EXIT ;save pointer | |
; ?CSP ( -- ) | |
; Abort if stack pointer differs from that saved in CSP. | |
FDB QCSP,L2180 | |
L2190 FCB 4,"?CSP" | |
QCSP jsr DOLST | |
FDB SPAT,CSP,AT,XORR ;compare pointers | |
FDB ABORQ ;abort if different | |
FCB 6,"stacks" | |
FDB EXIT | |
; >NAME ( ca -- na | F ) | |
; Convert code address to a name address. | |
FDB TNAME,L2190 | |
L2200 FCB 5,">NAME" | |
TNAME jsr DOLST | |
FDB CRRNT ;vocabulary link | |
TNAM1 FDB CELLP,AT,QDUP ;check all vocabularies | |
FDB QBRAN,TNAM4 | |
FDB DDUP | |
TNAM2 FDB AT,DUPP ;?last word in a vocabulary | |
FDB QBRAN,TNAM3 | |
FDB DDUP,NAMET,XORR ;compare | |
FDB QBRAN,TNAM3 | |
FDB CELLM ;continue with next word | |
FDB BRAN,TNAM2 | |
TNAM3 FDB SWAP,DROP,QDUP | |
FDB QBRAN,TNAM1 | |
FDB SWAP,DROP,SWAP,DROP,EXIT | |
TNAM4 FDB DROP,DOLIT,0,EXIT | |
; .ID ( na -- ) | |
; Display the name at address. | |
FDB DOTID,L2200 | |
L2210 FCB 3,".ID" | |
DOTID jsr DOLST | |
FDB QDUP ;if zero no name | |
FDB QBRAN,DOTI1 | |
FDB COUNT,DOCLIT | |
FCB $1F | |
FDB ANDD ;mask lexicon bits | |
FDB UTYPE,EXIT ;display name string | |
DOTI1 FDB DOTQP | |
FCB 9," {noName}" | |
FDB EXIT | |
; SEE ( -- ; <string> ) | |
; A simple decompiler. | |
FDB SEE,L2210 | |
L2220 FCB 3,"SEE" | |
SEE jsr DOLST | |
FDB TICK ;starting address | |
FDB PLUS1 ;skip JSR | |
;primitive check ... | |
FDB BASE,AT,TOR,HEX ;switch to hex base | |
FDB DUPP,AT,DOLIT,DOLST,XORR | |
;high level word? | |
FDB QBRAN,SEE1 ;yes! | |
FDB CR,DOTQP ;primitive word only | |
FCB 9, " PRIMITVE" | |
FDB BRAN,SEE5 ;exit | |
SEE1 FDB CR,CELLP,DUPP,UDOT,SPACE | |
FDB DUPP,AT,DUPP ;?does it contain a zero | |
FDB QBRAN,SEE2 | |
FDB TNAME ;?is it a name | |
SEE2 FDB QDUP ;name address or zero | |
FDB QBRAN,SEE3 | |
FDB SPACE,DOTID ;display name | |
FDB DUPP,AT | |
FDB DUPP,DOLIT,DOCLIT,EQUAL ; doCLIT? | |
FDB QBRAN,SEE21 | |
FDB OVER,CELLP,CAT,SPACE,UDOT ; CLIT: get only single byte | |
FDB SWAP,PLUS1,SWAP | |
FDB BRAN,SEE28 | |
SEE21 FDB DUPP,DOLIT,DOLIT,EQUAL ; doCLIT? | |
FDB OVER,DOLIT,QBRAN,EQUAL,ORR ; ?BRAN ? | |
FDB OVER,DOLIT,BRAN,EQUAL,ORR; BRANCH ? | |
FDB OVER,DOLIT,DONXT,EQUAL,ORR; next ? (from FOR/NEXT) | |
FDB OVER,DOLIT,DOLOOP,EQUAL,ORR; (LOOP) ? | |
FDB OVER,DOLIT,DOPLOOP,EQUAL,ORR; (+LOOP) ? | |
FDB OVER,DOLIT,DODO,EQUAL,ORR; (DO) ? | |
FDB OVER,DOLIT,DOQDO,EQUAL,ORR; (?DO) ? | |
FDB OVER,DOLIT,DOMDO,EQUAL,ORR; (-DO) ? | |
FDB QBRAN,SEE27 | |
FDB SWAP,CELLP,DUPP,AT,SPACE,UDOT,SWAP ; LIT: get word | |
FDB BRAN,SEE28 | |
SEE27: | |
FDB DUPP,DOLIT,DOTQP,EQUAL ; ." ..." | |
FDB OVER,DOLIT,ABORQ,EQUAL,ORR ; ABORT" ..." | |
FDB OVER,DOLIT,STRQP,EQUAL,ORR ; $" ..." | |
FDB QBRAN,SEE29 ; last case aalway to SEE29!! | |
FDB SWAP,CELLP ; print compiled string | |
FDB DUPP,COUNT,TYPES,DOCLIT | |
FCB 34 | |
FDB EMIT | |
FDB COUNT,PLUS,CELLM,SWAP ; adjust continuation address | |
SEE28 FDB DROP ; LEAVL, without EXIT check | |
FDB BRAN,SEE4 | |
SEE29 FDB DROP ; ELSE | |
FDB BRAN,SEE31 ; cleanup, check for EXIT | |
SEE3 FDB DUPP,AT,UDOT ;display number | |
FDB BRAN,SEE4 | |
SEE31 FDB DUPP,AT,DOLIT,EXIT,XORR ; stop on EXIT word | |
; but not if SEE decompiles itself! | |
FDB QBRAN,SEE5 | |
SEE4 FDB NUFQ ;user control | |
FDB QBRAN,SEE1 | |
SEE5 FDB RFROM,BASE,STORE,DROP,EXIT | |
; WORDS ( -- ) | |
; Display the names in the context vocabulary. | |
FDB WORDS,L2220 | |
L2230 FCB 5,"WORDS" | |
WORDS jsr DOLST | |
FDB CR,CNTXT,AT ;only in context | |
WORS1 FDB AT,QDUP ;?at end of list | |
FDB QBRAN,WORS2 | |
FDB DUPP,SPACE,DOTID ;display a name | |
FDB CELLM,NUFQ ;user control | |
FDB QBRAN,WORS1 | |
FDB DROP | |
WORS2 FDB EXIT | |
;; Hardware reset | |
; VER ( -- n ) | |
; Return the version number of this implementation. | |
FDB VERSN,L2230 | |
L2240 FCB 3,"VER" | |
VERSN jsr DOLST | |
FDB DOLIT,VER*256+EXT,EXIT | |
; hi ( -- ) | |
; Display the sign-on message of eForth. | |
FDB HI,L2240 | |
L2250 FCB 2,"hi" | |
HI jsr DOLST | |
FDB STOIO,CR,DOTQP ;initialize I/O | |
FCB 11,"eForth v" ;model | |
FCB VER+"0",".",EXT+"0" ;version | |
FDB CR,EXIT | |
; 'BOOT ( -- a ) | |
; The application startup vector. | |
FDB TBOOT,L2250 | |
L2260 FCB 5,"'BOOT" | |
TBOOT: | |
;;;; jsr DOLST | |
;;;; FDB DOVAR | |
jsr FDOVAR | |
FDB HI ;application to boot | |
; COLD ( -- ) | |
; The hilevel cold start sequence. | |
FDB COLD,L2260 | |
L2270 FCB 4,"COLD" | |
COLD jsr DOLST | |
COLD1 FDB DOLIT,UZERO,DOLIT,UPP | |
FDB DOLIT,ULAST-UZERO,CMOVE ;initialize user area | |
FDB PRESE ;initialize data stack and TIB | |
FDB TBOOT,ATEXE ;application boot | |
FDB FORTH,CNTXT,AT,DUPP ;initialize search order | |
FDB CRRNT,DSTOR,OVERT | |
; TEST | |
; FDB DOLIT,10,DOLIT,1 | |
; FDB DODO | |
; | |
FDB QUIT ;start interpretation | |
FDB BRAN,COLD1 ;just in case | |
;=============================================================== | |
LASTN EQU L2270 ;last name address in name dictionary | |
NTOP EQU NAMEE ;next available memory in name dictionary | |
CTOP EQU $ ;next available memory in code dictionary | |
; END ORIG | |
;=============================================================== |
{"124":true,"185":true} |
:10FFF00001000100010001000100010001000100F9 | |
:0D01000010CE6E60108E6F70CE1D513780D6 | |
:100115006E606F7001AB01CA1290124D01CA13F2E5 | |
:10012500000A00000000000000006E70000013A42B | |
:080135000D8000000000000035 | |
:0A014D00000000001D796C001D4940 | |
:100180003406F683FEC402B783FF350639B683FE14 | |
:1001900084012703B683FF3901A0000003425945BB | |
:1001A0007EE00001AB019C033F52588E0000BD0170 | |
:1001B0008D2704AFE337801F894FEDE3301FAFE396 | |
:1001C000378001CA01A703545821ECE1C1FF260280 | |
:1001D000C6201F98BD0180378001E101C603214977 | |
:1001E0004F378001ED01DD45646F4C4954370634CB | |
:1001F00006378001FE01E746646F434C49543704DB | |
:100200001D34063780021001F746646F4C49535481 | |
:10021000EFA335403780021F0209446E657874EC05 | |
:10022000A48300012506EDA4EEC4378031223342B9 | |
:100230003780023E021A473F6272616E6368ECE1EA | |
:10024000270433423780EEC43780025502364662B7 | |
:1002500072616E6368EEC437800265024E074558CE | |
:10026000454355544539026F025D0445584954EEE3 | |
:10027000A137800279026A012135103506ED8437F5 | |
:1002800080028702770140ECF4EDE43780029402AB | |
:100290008502432135103506E784378002A3029199 | |
:1002A000024340E6F44FEDE4378002B202A003526D | |
:1002B00050403420378002BE02AE03525021352018 | |
:1002C000378002C902BA02523EECA13406378002DE | |
:1002D000DC02C6014902DC02D3025240ECA434061F | |
:1002E000378002E902D9023E523506EDA33780027B | |
:1002F000F702E6035350401F40EDE3378003050249 | |
:10030000F30353502110EEE4378003130301044438 | |
:10031000524F5032623780031F030E03445550EC96 | |
:10032000E434063780032E031B0453574150ECE49A | |
:10033000AE62ED62AFE4378003410329044F5645B6 | |
:1003400052EC6234063780034E033C02303CE6E454 | |
:100350001D1F89EDE43780035E034B02303D8EFFA5 | |
:10036000FFECE427038E0000AFE437800374035BE7 | |
:1003700003414E44ECE1A4E4E461EDE437800385FD | |
:100380000370024F52ECE1AAE4EA61EDE437800326 | |
:1003900097038203584F52ECE1A8E4E861EDE4379B | |
:1003A0008003A8039302442BEC62E366ED66ECE461 | |
:1003B000E965A964ED643264378003C103A5024492 | |
:1003C0002DBD0210071703A8026F03D203BE035509 | |
:1003D0004D2BECE4E362ED62CC0000C900EDE437A4 | |
:1003E0008003ED03CE47646F434F4E5354ECF4ED5E | |
:1003F000E4378003F903E50130BD03ED0000040498 | |
:1004000003F70131BD03ED0001040F04020132BD09 | |
:1004100003ED0002041B040D022D31BD03EDFFFFAF | |
:10042000042A041845646F564152BD021002C902E5 | |
:100430006F3780043A0424025550BD04316F8004A4 | |
:100440004A043745646F55534552BD021002C90234 | |
:1004500087043A028706CD026FECF4F3043DEDE425 | |
:100460003780046A044303535030BD045900080424 | |
:1004700077046603525030BD0459000A04860473A1 | |
:1004800005273F4B4559BD0459000C0495048005D0 | |
:1004900027454D4954BD0459000E04A6048F072773 | |
:1004A000455850454354BD0459001004B4049E04FB | |
:1004B00027544150BD0459001204C304AF05274519 | |
:1004C00043484FBD0459001404D404BD07275052BB | |
:1004D0004F4D5054BD0459001604E204CC0442416F | |
:1004E0005345BD0459001804EF04DD43746D70BD1D | |
:1004F0000459001A04FD04EB045350414EBD045945 | |
:10050000001C050A04F8033E494EBD0459001E05AF | |
:100510001805060423544942BD0459002005250549 | |
:100520001303435350BD0459002405340521052706 | |
:100530004556414CBD045900260545052E07274E5A | |
:10054000554D424552BD045900280552053D03480A | |
:100550004C44BD0459002A0563054E0748414E44EA | |
:100560004C4552BD0459002C0574055B07434F4EA2 | |
:1005700054455854BD0459002E0585056C07435554 | |
:100580005252454E54BD045900400591057D024329 | |
:1005900050BD04590044059D058E024E50BD0459BE | |
:1005A000004605AB059A044C415354BD045900481C | |
:1005B00005BA05A645646F564F43BD021002C90532 | |
:1005C000740279026F05CF05B405464F525448BDF9 | |
:1005D000021005BA0000000005E105C9043F4455BA | |
:1005E00050BD0210031F023E05EC031F026F05F60B | |
:1005F00005DC03524F54BD021002E9032E02C90369 | |
:100600002E026F060D05F2053244524F50BD021006 | |
:1006100003130313026F061F06070432445550BD2F | |
:10062000021003410341026F0633061A064C534879 | |
:10063000494654AEE1270AECE45849301F26FAED4A | |
:10064000E43780064E062C06525348494654AEE124 | |
:10065000270AECE44456301F26FAEDE4378006659D | |
:100660000647023E3CE6E4A661EDE43780067606E6 | |
:1006700062043235362FE6E44FEDE4378006860615 | |
:1006800071043235362AA6615FEDE43780069406A0 | |
:100690008102312BECE4C30001EDE4378006A406AF | |
:1006A0009102312DECE4830001EDE4378006B406BD | |
:1006B000A102322A68616960378006C106B1023240 | |
:1006C0002F67606661378006CD06BE012BECE1E343 | |
:1006D000E4EDE4378006DD06CB034E4F5463E4635C | |
:1006E000613780ECE44353EDE4378006F606D90623 | |
:1006F0004E4547415445CC0000A3E4EDE43780600B | |
:1007000061260460E4378063E43780071706EF074B | |
:10071000444E4547415445CC0000A362ED62CC00F5 | |
:1007200000E261A2E4EDE43780072F070F012DEC12 | |
:1007300062A3E1EDE43780073F072D03414253BD3B | |
:100740000210031F034E023E074C06F6026F0754C9 | |
:10075000073B013D8EFFFF350610A3E427038E0003 | |
:1007600000AFE43780076C075202553C8EFFFF351F | |
:100770000610A3E422038E0000AFE437800783074E | |
:1007800069013C8EFFFF350610A3E42E038E0000A6 | |
:10079000AFE43780079C0781034D4158BD02100626 | |
:1007A0001F0783023E07A9032E0313026F07B50735 | |
:1007B00098034D494EBD0210061F032E0783023ECB | |
:1007C00007C4032E0313026F07D307B1065749541A | |
:1007D00048494EBD02100341072F02E9072F02C905 | |
:1007E000076C026F07EB07CC02552F8E0010EC62EE | |
:1007F00010A3E42424686569645949250910A3E419 | |
:1008000024041CFE2004A3E41A0169656964301FF6 | |
:1008100026E7AE6410A3E42505ECE48EFFFF326208 | |
:10082000AFE4ED623780083107E806554D2F4D4F94 | |
:10083000447E07EBBD0210061F076C023E088706C8 | |
:10084000F601ED000F02E902E9031F03D202E902FB | |
:10085000E9031F03D202C906CD031F02C902DC034C | |
:100860002E02E903D202C90385023E087902E90398 | |
:1008700013069402C90255087B031302C9021F081C | |
:10088000470313032E026F0313060D01EDFFFF0351 | |
:100890001F026F089D082A054D2F4D4F44BD0210C1 | |
:1008A000031F034E031F02E9023E08B406F602E9E5 | |
:1008B000071702C902E9031F034E023E08C202DC09 | |
:1008C00006CD02C9083102C9023E08D2032E06F63F | |
:1008D000032E026F08DD0897042F4D4F44BD021010 | |
:1008E0000341034E032E089D026F08F208D8034D02 | |
:1008F0004F44BD021008DD0313026F090108EE0129 | |
:100900002FBD021008DD032E0313026F091408FF28 | |
:1009100003554D2A8E00114F5F20062402E3E44662 | |
:100920005666626663301F26F2EDE43780093609A9 | |
:1009300010045F554D2ABD021001ED0000032E0189 | |
:10094000ED000F02E9031F03D202E902E9031F03CE | |
:10095000D202C906CD02C9023E096502E90341037C | |
:10096000D202C906CD021F094505F60313026F091D | |
:10097000750931012ABD021009850313026F09852B | |
:100980000973024D2ABD0210061F0397034E02E9A8 | |
:10099000073F032E073F091402C9023E09A00717AB | |
:1009A000026F09AC0982052A2F4D4F44BD02100287 | |
:1009B000E9098502C9089D026F09C009A6022A2F0C | |
:1009C000BD021009AC032E0313026F09D509BD0542 | |
:1009D00043454C4C2BBD021001FE0206CD026F09AF | |
:1009E000E909CF0543454C4C2DBD021001FEFE0622 | |
:1009F000CD026F09FD09E30543454C4C53BD021080 | |
:100A000001FE020975026F0A1309F707414C4947B5 | |
:100A10004E4544BD0210026F0A1F0A0B02424CBD34 | |
:100A200003ED0A2C0A1C053E43484152BD02100149 | |
:100A3000ED007F0374031F01FE7F0A1F07D3023EF0 | |
:100A40000A46031301ED026F0A520A260544455077 | |
:100A50005448BD021002F7046A0287032E072F01D3 | |
:100A6000FE020901026F0A6F0A4C045049434BEC25 | |
:100A7000E4C300015849AEEBAFE437800A850A6A47 | |
:100A800004524F4C4CBD0210031F040F0783023E5B | |
:100A90000A98031302550AA6032E02E90404072F3D | |
:100AA0000A8502C9032E026F0AAF0A80022B213584 | |
:100AB000103506E384ED8437800AC00AAC02322187 | |
:100AC000BD0210032E0341027909D50279026F0A93 | |
:100AD000D60ABD023240BD0210031F09D5028703AA | |
:100AE0002E0287026F0AEF0AD305434F554E54BDBD | |
:100AF0000210031F0694032E02A3026F0B050AE9DE | |
:100B00000448455245BD021005910287026F0B163D | |
:100B10000B0003504144BD02100B0501ED005006CF | |
:100B2000CD026F0B2B0B1203544942BD0210051866 | |
:100B300009D50287026F0B430B27084045584543F0 | |
:100B4000555445BD0210028705E1023E0B50026577 | |
:100B5000026F0B5C0B3A05434D4F56457E0B7FEC05 | |
:100B6000E427185D27026CE4AE62EF62EE64A6C073 | |
:100B7000A7805A26F96AE426F5EE6232663780ECE1 | |
:100B8000E4AE6210AFE4EF6210AE64445634012765 | |
:100B9000014C830000270AEEA1EF815A26F94A266C | |
:100BA000F635012404A6A4A7843560326237800B91 | |
:100BB000B80B560446494C4CEC6227125D27026C78 | |
:100BC00062AE64A661A7805A26FB6A6226F7326687 | |
:100BD00037800BE00BB3092D545241494C494E4725 | |
:100BE000BD021002E902550BFF0A1F034102DC0699 | |
:100BF000CD02A30783023E0BFF02C90694026F02D7 | |
:100C00001F0BE903F9026F0C110BD6055041434B42 | |
:100C100024BD0210031F02E9061F02940694061F5A | |
:100C200006CD03F9032E0294032E0B5C02C9026F5A | |
:100C30000C3A0C0B054449474954BD021001FE090A | |
:100C40000341078301FE07037406CD01ED06CD02C3 | |
:100C50006F0C5D0C340745585452414354BD02108B | |
:100C600003F9032E0831032E0C3A026F0C730C5556 | |
:100C7000023C23BD02100B1605520279026F0C874D | |
:100C80000C7004484F4C44BD02100552028706A464 | |
:100C9000031F055202790294026F0CA00C820123FB | |
:100CA000BD021004E202870C5D0C87026F0CB40CCD | |
:100CB0009E022353BD02100CA0031F023E0CC30270 | |
:100CC000550CB7026F0CCE0CB1045349474EBD0210 | |
:100CD00010034E023E0CDB01ED0C87026F0CE40C9E | |
:100CE000C902233EBD02100313055202870B1603EF | |
:100CF00041072F026F0CFD0CE103737472BD0210EB | |
:100D0000031F02E9073F0C730CB402C90CCE0CE4BC | |
:100D1000026F0D1A0CF903484558BD021001FE1070 | |
:100D200004E20279026F0D320D1607444543494D26 | |
:100D3000414CBD021001FE0A04E20279026F0D4926 | |
:100D40000D2A0644494749543FBD021002E901ED0E | |
:100D5000072F01FE0903410783023E0D6C01FE07C8 | |
:100D6000072F031F01ED000A07830385031F02C934 | |
:100D7000076C026F0D800D42074E554D4245523FA4 | |
:100D8000BD021004E2028702E903F903410AEF03FE | |
:100D90004102A301ED0754023E0DA50D1A032E06D4 | |
:100DA00094032E06A4034102A301ED075402E903B4 | |
:100DB0002E02DC072F032E02DC06CD05E1023E0EDB | |
:100DC0000506A402E9031F02E902A304E202870D5B | |
:100DD00049023E0DF9032E04E20287097506CD0291 | |
:100DE000C90694021F0DC502DC032E0313023E0D3B | |
:100DF000F306F6032E02550E0302C902C9060D06BC | |
:100E00000D03F9031F02C9060D02C904E2027902AB | |
:100E10006F0E1A0D78043F4B4559BD021004860B26 | |
:100E200043026F0E2B0E15034B4559BD02100E1ACF | |
:100E3000023E0E2E026F0E3F0E2704454D4954BD53 | |
:100E4000021004950B43026F0E510E3A044E5546A4 | |
:100E50003FBD02100E1A031F023E0E65060D0E2B3B | |
:100E600001FE0D0754026F0E700E4C0450414345B5 | |
:100E7000BD021001FE0B0E3F026F0E840E6B055378 | |
:100E800050414345BD02100A1F0E3F026F0E980EDF | |
:100E90007E06535041434553BD021003F9079C029F | |
:100EA000E902550EA70E84021F0EA5026F0EB60EA4 | |
:100EB000910454595045BD021002E902550EC70372 | |
:100EC0001F02A30E3F0694021F0EBF0313026F0EF4 | |
:100ED000D60EB1024352BD021001FE0D0E3F01FEBF | |
:100EE0000A0E3F026F0EED0ED343646F24BD021055 | |
:100EF00002C902DC02C90AEF06CD0A1302E9032E79 | |
:100F000002E9026F0F090EE943BD02100EED026FF8 | |
:100F10000F150F0843BD02100EED0AEF0EB6026F5B | |
:100F20000F270F14022E52BD021002E90CFD02C958 | |
:100F30000341072F0E980EB6026F0F420F24035580 | |
:100F40002E52BD021002E90C730CB40CE402C9036A | |
:100F500041072F0E980EB6026F0F600F3E02552EFE | |
:100F6000BD02100C730CB40CE40E840EB6026F0FAD | |
:100F7000750F5D012EBD021004E2028701FE0A0317 | |
:100F800097023E0F890F60026F0CFD0E840EB602B1 | |
:100F90006F0F970F73013FBD021002870F75026F2D | |
:100FA0000FAA0F95057061727365BD021004EF0200 | |
:100FB00079034102E9031F023E103306A404EF0245 | |
:100FC000870A1F0754023E0FED02E90A1F03410280 | |
:100FD000A3072F034E06DD023E0FEB0694021F0F00 | |
:100FE000CB02C9031303F9031F026F02C9034103B4 | |
:100FF0002E02E904EF0287034102A3072F04EF0248 | |
:10100000870A1F0754023E100B034E023E101D06B6 | |
:1010100094021F0FF3031F02E90255102702C903B0 | |
:1010200013031F069402E90341072F02C902C907EF | |
:101030002F026F034102C9072F026F10450FA4054D | |
:101040005041525345BD021002E90B2B050A02879D | |
:1010500006CD05180287050A0287072F02C90FAAC5 | |
:10106000050A0AAF026F106D103F822E28BD0210D4 | |
:1010700001ED10450EB6026F107E106A8128BD0288 | |
:101080001001ED1045060D026F108F107C815CBDC4 | |
:10109000021005180287050A0279026F10A5108D4B | |
:1010A0000443484152BD02100A1F1045031302A316 | |
:1010B000026F10BC10A005544F4B454EBD02100AE4 | |
:1010C0001F104501FE1F07B5059D02870341072F2D | |
:1010D00009E90C11026F10DF10B604574F5244BDDE | |
:1010E000021010450B050C11026F10F410DA054EBA | |
:1010F000414D453EBD021009E909E90287026F1121 | |
:101100000910EE0553414D453FBD021002E902555D | |
:101110001130034102DC06CD02A3034102DC06CDFF | |
:1011200002A3072F05E1023E113002C90313026F2B | |
:10113000021F111201ED0000026F1143110304663A | |
:10114000696E64BD0210032E031F02A306A404EF00 | |
:101150000279031F028702E909D5032E0287031FC4 | |
:10116000023E118A031F028701ED1F7F037402DC18 | |
:101170000397023E117E09D5041B0255118609D53D | |
:1011800004EF028711090255119602C90313032EB9 | |
:1011900009E9032E026F023E11A209E909E902558D | |
:1011A000115C02C90313032E031309E9031F10F492 | |
:1011B000032E026F11BE113E054E414D453FBD024B | |
:1011C000100574031F0AD60397023E11CF09E902E6 | |
:1011D000E902C909D5031F02E9028705E1023E11B0 | |
:1011E000EF114305E1023E11D102C90313026F0260 | |
:1011F000C9031303F9026F11FE11B8025E48BD0264 | |
:101200001002E9034102C9032E03410397023E1273 | |
:101210002901ED000804C30B4306A40A1F04C30BF5 | |
:101220004301ED000804C30B43026F123311FB03AB | |
:10123000544150BD0210031F04C30B4303410294E9 | |
:101240000694026F124D122F046B544150BD0210D0 | |
:10125000031F01FE0D0397023E127B031F01ED00E9 | |
:10126000080397032E01ED007F03970374023E12DB | |
:10127000770A1F1233026F11FE026F0313032E034E | |
:1012800013031F026F129012480641434345505406 | |
:10129000BD0210034106CD0341061F0397023E1213 | |
:1012A000BF0E2B031F0A1F01ED007F07D3023E1262 | |
:1012B000B71233025512BB04B40B43025512990303 | |
:1012C000130341072F026F12D21289064558504569 | |
:1012D0004354BD021004A60B4304FD02790313021C | |
:1012E0006F12EB12CB055155455259BD02100B2B15 | |
:1012F00001FE5004A60B4305180279031303F905F8 | |
:101300000A0279026F130F12E5054341544348BDA9 | |
:10131000021002F702E90563028702E902B20563DF | |
:101320000279026502C90563027902C9031303F950 | |
:10133000026F133C1309055448524F57BD02100564 | |
:1013400063028702BE02C90563027902C9032E0245 | |
:10135000E90305031302C9026F13631336054E55E3 | |
:101360004C4C24BD04310000636F796F74651378B1 | |
:10137000135D0541424F5254BD02101363133C13D9 | |
:1013800084137246BD0210023E138F0EED133C0E05 | |
:10139000ED0313026F13A413830A24494E544552DC | |
:1013A00050524554BD021011BE05E1023E13CB025E | |
:1013B0008701ED4000037413840D20636F6D706925 | |
:1013C0006C65206F6E6C790265026F05450B4302F8 | |
:1013D0003E13D5026F133C13DD1399815BBD0210E0 | |
:1013E00001ED13A405340279026F13F213DB032E0F | |
:1013F0004F4BBD021001ED13A405340287075402C0 | |
:101400003E14090F1503206F6B0ED6026F141813CC | |
:10141000EE063F535441434BBD02100A52034E1394 | |
:10142000840A20756E646572666C6F77026F14377C | |
:101430001411044556414CBD021010BC031F02A3F9 | |
:10144000023E144E05340B4314180255143A03138C | |
:1014500004D40B43026F14611432065052455345B5 | |
:1014600054BD0210046A0287030501ED6E70051871 | |
:1014700009D50279026F147E145A4378696FBD0250 | |
:101480001001ED129004A60AC004C30AC0026F1432 | |
:1014900098147A0446494C45BD021001ED0E7001C6 | |
:1014A000ED031301ED124D147E026F14B414930476 | |
:1014B00048414E44BD021001ED13F201ED0E3F0113 | |
:1014C000ED124D147E026F14CF14AF03492F4FBDA0 | |
:1014D000043101AB01CA14E214CB07434F4E534F02 | |
:1014E0004C45BD021014CF0AD604860AC014B402BB | |
:1014F0006F14FA14DA0451554954BD0210047702EE | |
:101500008702BE13DD12EB01ED1437130F05E10264 | |
:101510003E150504D4028702E914E2136303410374 | |
:1015200097023E15310E840AEF0EB60F1503203FC9 | |
:101530002002C901ED13F20397023E154301ED00AD | |
:101540001B0E3F146102551503154F14F50127BDFD | |
:10155000021010BC11BE023E155C026F133C1568F0 | |
:10156000154D05414C4C4F54BD021005910AAF0278 | |
:101570006F15771562012CBD02100B05031F09D5ED | |
:10158000059102790279026F15961575895B434FB3 | |
:101590004D50494C455DBD0210154F1577026F1532 | |
:1015A000AB158C47434F4D50494C45BD021002C905 | |
:1015B000031F0287157709D502E9026F15C815A325 | |
:1015C000874C49544552414CBD021015AB01ED15F5 | |
:1015D00077026F15D815C003BD021001ED10DF0AA8 | |
:1015E000EF06CD0A1305910279026F15F715D7871B | |
:1015F00052454355525345BD021005AB028710F4C6 | |
:101600001577026F160B15EF82444FBD021015AB14 | |
:1016100016950B050404026F16201608833F444FED | |
:10162000BD021015AB163B0B0515AB0000040F02F5 | |
:101630006F163B161C05283F444F29350610A3E4BE | |
:101640002D063262EEC437803510AFA3EDA33342CE | |
:101650003780165A1635832D444FBD021015AB1630 | |
:10166000750B0515AB0000040F026F1675165605B5 | |
:10167000282D444F29350610A3E42E063262EEC40D | |
:1016800037803510AFA3EDA3334237801695166F20 | |
:101690000428444F293516AFA3EDA3378016A816AA | |
:1016A0009006284C4F4F5029CC0001201D16B9162A | |
:1016B000A187282B4C4F4F5029ECE12A0DE3A410B1 | |
:1016C000A3222F13EDA4EEC43780E3A410A3222C91 | |
:1016D00006EDA4EEC4378033423124378016E61677 | |
:1016E000B1844C4F4F50BD021015AB16A8040F0724 | |
:1016F00054023E16FF0B0509D50341027909D515A1 | |
:1017000077026F170D16E1852B4C4F4F50BD02101D | |
:1017100015AB16B9040F0754023E17260B0509D561 | |
:101720000341027909D51577026F17341707054C65 | |
:1017300045415645ECA4ED223780174217078346F2 | |
:101740004F52BD021015AB02E90B05026F17571778 | |
:101750003E85424547494EBD02100B05026F176793 | |
:101760001751844E455854BD021015AB021F157712 | |
:10177000026F177C176285554E54494CBD021015F7 | |
:10178000AB023E1577026F179117768541474149A5 | |
:101790004EBD021015AB02551577026F17A3178BBC | |
:1017A000824946BD021015AB023E0B0503F91577C1 | |
:1017B000026F17BC17A0854148454144BD02101572 | |
:1017C000AB02550B0503F91577026F17D617B686CE | |
:1017D000524550454154BD021017910B05032E028E | |
:1017E00079026F17EC17CF845448454EBD02100B99 | |
:1017F00005032E0279026F17FF17E783414654BD98 | |
:101800000210031317BC1757032E026F181517FB8E | |
:1018100084454C5345BD021017BC032E17EC026FD4 | |
:10182000182A1810855748494C45BD021017A303C4 | |
:101830002E026F1838182486BD021015AB138415BC | |
:10184000D8026F184A1837822422BD021015AB0F38 | |
:101850000915D8026F185C1847822E22BD02101598 | |
:10186000AB0F1515D8026F18731859073F554E491D | |
:10187000515545BD0210031F11BE023E188E0F15B3 | |
:10188000072072654465662003410AEF0EB6031314 | |
:10189000026F189A186B03242C6EBD0210031F02EE | |
:1018A000A3023E18CB1873031F05AB02790B050A80 | |
:1018B00013032E09E905850287028703410279098E | |
:1018C000E9031F059D02790279026F0F0905206E59 | |
:1018D000616D65133C18E218960824434F4D50493A | |
:1018E0004C45BD021011BE05E1023E1901028701FF | |
:1018F000ED80000374023E18FD0265026F15770249 | |
:101900006F05450B43023E190D15C8026F133C19B4 | |
:101910001918D9054F56455254BD021005AB028720 | |
:10192000058502870279026F192E1913C13BBD028A | |
:101930001015AB026F13DD1919026F1941192C0133 | |
:101940005DBD021001ED18E205340279026F1958ED | |
:10195000193F0563616C6C2CBD021001FEBD0B05C7 | |
:101960000294040415681577026F19701952013A30 | |
:10197000BD021010BC189A01ED021019581941024D | |
:101980006F198F196E09494D4D454449415445BD64 | |
:10199000021001ED800005AB02870287038505ABCD | |
:1019A00002870279026F19AF19850455534552BD5C | |
:1019B000021010BC189A191901ED0459195815771D | |
:1019C000026F19CD19AA06435245415445BD021074 | |
:1019D00010BC189A191901ED04311958026F19EB4E | |
:1019E00019C6085641524941424C45BD021019CD15 | |
:1019F00003F91577026F1A0319E208434F4E535447 | |
:101A0000414E54BD021010BC189A191901ED03ED96 | |
:101A100019581577026F1A2019FA055F5459504565 | |
:101A2000BD021002E902551A33031F02A30A2C0E4D | |
:101A30003F0694021F1A290313026F1A431A1A034E | |
:101A4000646D2BBD0210034101ED00040F420E84B2 | |
:101A500002E902551A62031F02A301ED00030F42BF | |
:101A60000694021F1A56026F1A711A3F0444554D0C | |
:101A700050BD021004E2028702E90D1A01FE1009AE | |
:101A80000102E90ED601FE10061F1A4305F605F6FF | |
:101A9000040F0E981A200E5106DD023E1AA6021FF0 | |
:101AA0001A8302551AAA02C90313031302C904E2D6 | |
:101AB0000279026F1ABB1A6C022E53BD02100ED6A9 | |
:101AC0000A5202E902551ACE02DC0A6F0F75021F94 | |
:101AD0001AC80F1504203C7370026F1AE41AB80478 | |
:101AE00021435350BD021002F705250279026F1AF7 | |
:101AF000F81ADF043F435350BD021002F7052502D8 | |
:101B0000870397138406737461636B73026F1B18EA | |
:101B10001AF3053E4E414D45BD0210058509D5021B | |
:101B20008705E1023E1B55061F0287031F023E1B6D | |
:101B300041061F10F40397023E1B4109E902551BA1 | |
:101B400029032E031305E1023E1B1D032E0313037D | |
:101B50002E0313026F031301ED0000026F1B651BC0 | |
:101B600012032E4944BD021005E1023E1B790AEF23 | |
:101B700001FE1F03741A20026F0F1509207B6E6F80 | |
:101B80004E616D657D026F1B8F1B6103534545BD23 | |
:101B90000210154F069404E2028702E90D1A031F92 | |
:101BA000028701ED02100397023E1BBE0ED60F15F1 | |
:101BB00009205052494D4954564502551CD10ED664 | |
:101BC00009D5031F0F600E84031F0287031F023E07 | |
:101BD0001BD41B1805E1023E1CB30E841B65031FBA | |
:101BE0000287031F01ED01FE0754023E1C02034160 | |
:101BF00009D502A30E840F60032E0694032E02550E | |
:101C00001CA7031F01ED01ED0754034101ED023E46 | |
:101C100007540385034101ED025507540385034131 | |
:101C200001ED021F07540385034101ED16A8075477 | |
:101C30000385034101ED16B907540385034101ED06 | |
:101C4000169507540385034101ED163B07540385A0 | |
:101C5000034101ED167507540385023E1C70032EE7 | |
:101C600009D5031F02870E840F60032E02551CA79F | |
:101C7000031F01ED0F150754034101ED13840754B1 | |
:101C80000385034101ED0F0907540385023E1CAD96 | |
:101C9000032E09D5031F0AEF0EB601FE220E3F0ADE | |
:101CA000EF06CD09E9032E031302551CCB031302E3 | |
:101CB000551CBD031F02870F6002551CCB031F027A | |
:101CC0008701ED026F0397023E1CD10E51023E1BAD | |
:101CD000BE02C904E202790313026F1CE51B8B05E7 | |
:101CE000574F524453BD02100ED605740287028727 | |
:101CF00005E1023E1D06031F0E841B6509E90E5116 | |
:101D0000023E1CEE0313026F1D101CDF03564552EA | |
:101D1000BD021001ED0100026F1D201D0C0268695B | |
:101D2000BD021001E10ED60F150B65466F72746887 | |
:101D300020760ED6026F1D401D1D0527424F4F54C1 | |
:101D4000BD04311D201D4E1D3A04434F4C44BD02BD | |
:101D50001001ED010D01ED6F8001ED004A0B5C14E7 | |
:101D6000611D400B4305CF05740287031F05850ADB | |
:091D7000C0191914FA02551D51A5 | |
:00000001FF |
0000 ;TITLE 6809 eForth | |
0000 ;.engine kilo | |
0000 ; $Id: ef09.asm,v 1.1 1997/11/24 02:56:01 root Exp $ | |
0000 ; | |
0000 ;=============================================================== | |
0000 ; | |
0000 ; eForth 1.0 by Bill Muench and C. H. Ting, 1990 | |
0000 ; Much of the code is derived from the following sources: | |
0000 ; 8086 figForth by Thomas Newman, 1981 and Joe smith, 1983 | |
0000 ; aFORTH by John Rible | |
0000 ; bFORTH by Bill Muench | |
0000 ; | |
0000 ; The goal of this implementation is to provide a simple eForth Model | |
0000 ; which can be ported easily to many 8, 16, 24 and 32 bit CPU's. | |
0000 ; The following attributes make it suitable for CPU's of the '90: | |
0000 ; | |
0000 ; small machine dependent kernel and portable high level code | |
0000 ; source code in the MASM format | |
0000 ; direct threaded code | |
0000 ; separated code and name dictionaries | |
0000 ; simple vectored terminal and file interface to host computer | |
0000 ; aligned with the proposed ANS Forth Standard | |
0000 ; easy upgrade path to optimize for specific CPU | |
0000 ; | |
0000 ; You are invited to implement this Model on your favorite CPU and | |
0000 ; contribute it to the eForth Library for public use. You may use | |
0000 ; a portable implementation to advertise more sophisticated and | |
0000 ; optimized version for commercial purposes. However, you are | |
0000 ; expected to implement the Model faithfully. The eForth Working | |
0000 ; Group reserves the right to reject implementation which deviates | |
0000 ; significantly from this Model. | |
0000 ; | |
0000 ; As the ANS Forth Standard is still evolving, this Model will | |
0000 ; change accordingly. Implementations must state clearly the | |
0000 ; version number of the Model being tracked. | |
0000 ; | |
0000 ; Representing the eForth Working Group in the Silicon Valley FIG Chapter. | |
0000 ; Send contributions to: | |
0000 ; | |
0000 ; Dr. C. H. Ting | |
0000 ; 156 14th Avenue | |
0000 ; San Mateo, CA 94402 | |
0000 ; (415) 571-7639 | |
0000 ; | |
0000 ;=============================================================== | |
0000 ; $Log: ef09.asm,v $ | |
0000 ; Revision 1.1 1997/11/24 02:56:01 root | |
0000 ; Initial revision | |
0000 ; | |
0000 ;=============================================================== | |
0000 ; Version control | |
0000 ; | |
0000 VER: EQU 1 | |
0000 EXT: EQU 0 | |
0000 ; | |
0000 ; Constants | |
0000 ; | |
0000 TRUEE: EQU -1 | |
0000 ; | |
0000 COMPO: EQU $40 | |
0000 IMEDD: EQU $80 | |
0000 MASKK: EQU $1F7F | |
0000 ; | |
0000 CFAOFF: EQU 3 | |
0000 ; (length of JSR) | |
0000 CELLL: EQU 2 | |
0000 BASEE: EQU 10 | |
0000 VOCSS: EQU 8 | |
0000 ; | |
0000 BKSPP: EQU 8 | |
0000 BKSPP2: EQU 127 | |
0000 LF: EQU 10 | |
0000 CRR: EQU 13 | |
0000 ERR: EQU 27 | |
0000 TIC: EQU 39 | |
0000 ; | |
0000 CALLL: EQU $12BD | |
0000 ; | |
0000 ; Memory allocation | |
0000 ; | |
0000 EM: EQU $7000 | |
0000 US: EQU 64*CELLL | |
0000 RTS: EQU 128*CELLL ;return stack/TIB size | |
0000 ; | |
0000 UPP: EQU EM-US | |
0000 RPP: EQU UPP-8*CELLL | |
0000 TIBB: EQU RPP-RTS | |
0000 SPP: EQU TIBB-8*CELLL | |
0000 ; | |
0000 COLDD: EQU $100 | |
0000 CODEE: EQU COLDD+US | |
0000 NAMEE: EQU EM-$0400 | |
0000 ; | |
0000 ; Initialize assembly variables | |
0000 ; | |
0000 ; | |
0000 ; Main entry points and COLD start data | |
0000 ; | |
0000 ; | |
FFF0 .ORG 0xfff0 | |
FFF0 ;reserved | |
FFF0 01 00 DW reset | |
FFF2 ;SWI3 | |
FFF2 01 00 DW reset | |
FFF4 ;SWI2 | |
FFF4 01 00 DW reset | |
FFF6 ;FIRQ | |
FFF6 01 00 DW reset | |
FFF8 ;IRQ | |
FFF8 01 00 DW reset | |
FFFA ;SWI | |
FFFA 01 00 DW reset | |
FFFC ;NMI | |
FFFC 01 00 DW reset | |
FFFE ;RES | |
FFFE 01 00 DW reset | |
10000 ; | |
10000 ; | |
10000 ; | |
0100 .ORG COLDD ;beginning of cold boot area | |
0100 ; SETDP 0 | |
0100 .ENT $ | |
0100 RESET: | |
0100 10 CE 6E 60 ORIG: LDS #SPP | |
0104 10 8E 6F 70 LDY #RPP ;Init return stack pointer | |
0108 CE 1D 51 LDU #COLD1 ;Init Instr pointer. | |
010B 37 80 PULU pc ;next. | |
010D ; | |
010D ; COLD start moves the following to USER variables. | |
010D ; MUST BE IN SAME ORDER AS USER VARIABLES. | |
010D ; | |
010D ; | |
010D UZERO: RMB 8 | |
0115 6E 60 FDB SPP ;SP0 | |
0117 6F 70 FDB RPP ;RP0 | |
0119 01 AB FDB QRX ;'?KEY | |
011B 01 CA FDB TXSTO ;'EMIT | |
011D 12 90 FDB ACCEP ;'EXPECT | |
011F 12 4D FDB KTAP ;'TAP | |
0121 01 CA FDB TXSTO ;'ECHO | |
0123 13 F2 FDB DOTOK ;'PROMPT | |
0125 00 0A FDB BASEE ;BASE | |
0127 00 00 FDB 0 ;tmp | |
0129 00 00 FDB 0 ;SPAN | |
012B 00 00 FDB 0 ;>IN | |
012D 00 00 FDB 0 ;#TIB | |
012F 6E 70 FDB TIBB ;TIB | |
0131 00 00 FDB 0 ;CSP | |
0133 13 A4 FDB INTER ;'EVAL | |
0135 0D 80 FDB NUMBQ ;'NUMBER | |
0137 00 00 FDB 0 ;HLD | |
0139 00 00 FDB 0 ;HANDLER | |
013B 00 00 FDB 0 ;CONTEXT pointer | |
013D RMB VOCSS*2 ;vocabulary stack | |
014D 00 00 FDB 0 ;CURRENT pointer | |
014F 00 00 FDB 0 ;vocabulary link pointer | |
0151 1D 79 FDB CTOP ;CP | |
0153 6C 00 FDB NTOP ;NP | |
0155 1D 49 FDB LASTN ;LAST | |
0157 ULAST: | |
0157 ; | |
0180 .ORG CODEE ;beginning of the code dictionary | |
0180 ; | |
0180 ; Device dependent I/O | |
0180 ; | |
0180 ACIA: EQU $83fe | |
0180 ACIAC: EQU ACIA | |
0180 ACIAS: EQU ACIA | |
0180 ACIAD: EQU ACIA+1 | |
0180 ; | |
0180 ACIA_TDRE: EQU 02h | |
0180 ACIA_RDRF: EQU 01h | |
0180 ; | |
0180 SEROUT: | |
0180 34 06 PSHS a,b | |
0182 SEROUTL: | |
0182 F6 83 FE LDB ACIAS | |
0185 C4 02 ANDB #ACIA_TDRE | |
0187 ; BEQ seroutl | |
0187 B7 83 FF STA ACIAD | |
018A 35 06 PULS a,b | |
018C 39 RTS | |
018D ; | |
018D SERIN: | |
018D B6 83 FE LDA ACIAS | |
0190 84 01 ANDA #ACIA_RDRF | |
0192 27 03 BEQ serin_ret | |
0194 B6 83 FF LDA ACIAD | |
0197 39 SERIN_RET: RTS | |
0198 ; | |
0198 ; | |
0198 ; BYE ( -- ) | |
0198 ; Exit eForth. | |
0198 ; | |
0198 01 A0 00 00 FDB BYE,0 | |
019C 03 42 59 45 L100: FCB 3,"BYE" | |
01A0 7E E0 00 BYE: JMP $E000 | |
01A3 ; | |
01A3 ; ?RX ( -- c T | F ) | |
01A3 ; Return input character and true, or a false if no input. | |
01A3 ; | |
01A3 01 AB 01 9C FDB QRX,L100 | |
01A7 03 3F 52 58 L110: FCB 3,"?RX" | |
01AB 8E 00 00 QRX: LDX #0 | |
01AE BD 01 8D JSR serin | |
01B1 27 04 BEQ qrx1 | |
01B3 AF E3 STX ,--s | |
01B5 37 80 PULU pc | |
01B7 1F 89 QRX1: TFR a,b | |
01B9 4F CLRA | |
01BA ED E3 STD ,--s | |
01BC 30 1F LEAX -1,x | |
01BE AF E3 STX ,--s | |
01C0 37 80 PULU pc | |
01C2 ; | |
01C2 ; TX! ( c -- ) | |
01C2 ; Send character c to the output device. | |
01C2 01 CA 01 A7 FDB TXSTO,L110 | |
01C6 03 54 58 21 L120: FCB 3,"TX!" | |
01CA EC E1 TXSTO: LDD ,s++ | |
01CC C1 FF CMPB #$ff | |
01CE 26 02 BNE tx1 | |
01D0 C6 20 LDB #32 | |
01D2 TX1: | |
01D2 1F 98 TFR b,a | |
01D4 BD 01 80 JSR serout | |
01D7 37 80 PULU pc | |
01D9 ; | |
01D9 ; | |
01D9 ; !IO ( -- ) | |
01D9 ; Initialize the serial I/O devices. | |
01D9 ; | |
01D9 01 E1 01 C6 FDB STOIO,L120 | |
01DD 03 21 49 4F L130: FCB 3,"!IO" | |
01E1 37 80 STOIO: PULU pc | |
01E3 ; | |
01E3 ; The kernel | |
01E3 ; | |
01E3 ; doLIT ( -- w ) | |
01E3 ; Push an inline literal. | |
01E3 ; | |
01E3 01 ED 01 DD FDB DOLIT,L130 | |
01E7 45 64 6F 4C 49 54 L140: FCB COMPO+5,"doLIT" | |
01ED DOLIT: | |
01ED ; ldd ,u++ | |
01ED 37 06 PULU d | |
01EF ; 7 cycles | |
01EF 34 06 PSHS d | |
01F1 ; 8 cycles | |
01F1 ; std ,--s | |
01F1 37 80 PULU pc | |
01F3 ; | |
01F3 ; doCLIT ( -- w ) | |
01F3 ; Push an inline 8-bit literal. | |
01F3 ; | |
01F3 01 FE 01 E7 FDB DOCLIT,L140 | |
01F7 46 64 6F 43 4C 49 54 L141: FCB COMPO+6,"doCLIT" | |
01FE DOCLIT: | |
01FE 37 04 PULU b | |
0200 1D SEX ; sign extended | |
0201 34 06 PSHS d | |
0203 37 80 PULU pc | |
0205 ; | |
0205 ; doLIST ( a -- ) | |
0205 ; Process colon list. | |
0205 ; | |
0205 02 10 01 F7 FDB DOLST,L141 | |
0209 46 64 6F 4C 49 53 54 L150: FCB COMPO+6,"doLIST" | |
0210 EF A3 DOLST: STU ,--y | |
0212 35 40 PULS u ; JSR left new IP on parameter stack | |
0214 ; ldu ,s++ | |
0214 37 80 PULU pc ; FORTH NEXT IP | |
0216 ; | |
0216 ; next ( -- ) | |
0216 ; Run time code for the single index loop. | |
0216 ; : next ( -- ) \ hilevel model | |
0216 ; r> r> dup if 1 - >r @ >r exit then drop cell+ >r ; | |
0216 ; | |
0216 02 1F 02 09 FDB DONXT,L150 | |
021A 44 6E 65 78 74 L160: FCB COMPO+4,"next" | |
021F EC A4 DONXT: LDD ,y | |
0221 83 00 01 SUBD #1 ; decrement | |
0224 25 06 BCS next1 ; < -> exit loop | |
0226 ED A4 STD ,y ; decremented value back on stack | |
0228 EE C4 LDU ,u ; branch to begin of loop | |
022A 37 80 PULU pc | |
022C 31 22 NEXT1: LEAY 2,y | |
022E 33 42 LEAU 2,u ; skip branch destination | |
0230 37 80 PULU pc | |
0232 ; | |
0232 ; | |
0232 ; ?branch ( f -- ) | |
0232 ; Branch if flag is zero. | |
0232 ; | |
0232 02 3E 02 1A FDB QBRAN,L160 | |
0236 47 3F 62 72 61 6E 63 68 L170: FCB COMPO+7,"?branch" | |
023E QBRAN: ;$CODE COMPO+7,'?branch',QBRAN | |
023E EC E1 LDD ,s++ | |
0240 27 04 BEQ bran1 | |
0242 33 42 LEAU 2,u ; skip new IP, no branch | |
0244 37 80 PULU pc | |
0246 EE C4 BRAN1: LDU ,u | |
0248 37 80 PULU pc | |
024A ; | |
024A ; branch ( -- ) | |
024A ; Branch to an inline address. | |
024A ; | |
024A 02 55 02 36 FDB BRAN,L170 | |
024E 46 62 72 61 6E 63 68 L180: FCB COMPO+6,"branch" | |
0255 EE C4 BRAN: LDU ,u | |
0257 37 80 PULU pc | |
0259 ; | |
0259 ; EXECUTE ( ca -- ) | |
0259 ; Execute the word at ca. | |
0259 ; | |
0259 02 65 02 4E FDB EXECU,L180 | |
025D 07 45 58 45 43 55 54 45 L190: FCB 7,"EXECUTE" | |
0265 39 EXECU: RTS | |
0266 ; | |
0266 ; EXIT ( -- ) | |
0266 ; SEMIS | |
0266 ; Terminate a colon definition. | |
0266 ; | |
0266 02 6F 02 5D FDB EXIT,L190 | |
026A 04 45 58 49 54 L200: FCB 4,"EXIT" | |
026F EE A1 EXIT: LDU ,y++ | |
0271 37 80 PULU pc | |
0273 ; | |
0273 ; ! ( w a -- ) | |
0273 ; Pop the data stack to memory. | |
0273 ; | |
0273 02 79 02 6A FDB STORE,L200 | |
0277 01 21 L210: FCB 1,"!" | |
0279 STORE: | |
0279 ; ldx ,s++ | |
0279 ; ldd ,s++ | |
0279 ; faster ... | |
0279 35 10 PULS x | |
027B 35 06 PULS d | |
027D ; we cannot use puls x,d because the order fetched would be wrong :( | |
027D ED 84 STD ,x | |
027F 37 80 PULU pc | |
0281 ; | |
0281 ; @ ( a -- w ) | |
0281 ; Push memory location to the data stack. | |
0281 ; | |
0281 02 87 02 77 FDB AT,L210 | |
0285 01 40 L220: FCB 1,"@" | |
0287 EC F4 AT: LDD [,s] | |
0289 ED E4 STD ,s | |
028B 37 80 PULU pc | |
028D ; | |
028D ; C! ( c b -- ) | |
028D ; Pop the data stack to byte memory. | |
028D ; | |
028D 02 94 02 85 FDB CSTOR,L220 | |
0291 02 43 21 L230: FCB 2,"C!" | |
0294 CSTOR: | |
0294 ; ldx ,s++ | |
0294 ; ldd ,s++ | |
0294 ; faster ... | |
0294 35 10 PULS x | |
0296 35 06 PULS d | |
0298 ; we cannot use puls x,d because the order fetched would be wrong :( | |
0298 E7 84 STB ,x | |
029A 37 80 PULU pc | |
029C ; | |
029C ; | |
029C ; C@ ( b -- c ) | |
029C ; Push byte memory location to the data stack. | |
029C ; | |
029C 02 A3 02 91 FDB CAT,L230 | |
02A0 02 43 40 L240: FCB 2,"C@" | |
02A3 E6 F4 CAT: LDB [,s] | |
02A5 4F CLRA | |
02A6 ED E4 STD ,s | |
02A8 37 80 PULU pc | |
02AA ; | |
02AA ; RP@ ( -- a ) | |
02AA ; Push the current RP to the data stack. | |
02AA ; | |
02AA 02 B2 02 A0 FDB RPAT,L240 | |
02AE 03 52 50 40 L250: FCB 3,"RP@" | |
02B2 34 20 RPAT: PSHS y | |
02B4 37 80 PULU pc | |
02B6 ; | |
02B6 ; RP! ( a -- ) | |
02B6 ; Set the return stack pointer. | |
02B6 ; | |
02B6 02 BE 02 AE FDB RPSTO,L250 | |
02BA 03 52 50 21 L260: FCB 3,"RP!" | |
02BE 35 20 RPSTO: PULS y | |
02C0 37 80 PULU pc | |
02C2 ; | |
02C2 ; R> ( -- w ) | |
02C2 ; Pop the return stack to the data stack. | |
02C2 ; | |
02C2 02 C9 02 BA FDB RFROM,L260 | |
02C6 02 52 3E L270: FCB 2,"R>" | |
02C9 EC A1 RFROM: LDD ,y++ | |
02CB ; std ,--s | |
02CB 34 06 PSHS d | |
02CD 37 80 PULU pc | |
02CF ; | |
02CF ; I ( -- w ) | |
02CF ; Copy top of return stack (current index from DO/LOOP) to the data stack. | |
02CF ; | |
02CF 02 DC 02 C6 FDB RAT,L270 | |
02D3 01 49 L279: FCB 1,"I" | |
02D5 ; | |
02D5 ; R@ ( -- w ) | |
02D5 ; Copy top of return stack to the data stack. | |
02D5 ; | |
02D5 02 DC 02 D3 FDB RAT,L279 | |
02D9 02 52 40 L280: FCB 2,"R@" | |
02DC RAT: | |
02DC I: | |
02DC EC A4 LDD ,y | |
02DE ; std ,--s | |
02DE 34 06 PSHS d | |
02E0 37 80 PULU pc | |
02E2 ; | |
02E2 ; >R ( w -- ) | |
02E2 ; Push the data stack to the return stack. | |
02E2 ; | |
02E2 02 E9 02 D9 FDB TOR,L280 | |
02E6 02 3E 52 L290: FCB 2,">R" | |
02E9 TOR: | |
02E9 ; ldd ,s++ | |
02E9 35 06 PULS d | |
02EB ED A3 STD ,--y | |
02ED 37 80 PULU pc | |
02EF ; | |
02EF ; SP@ ( -- a ) | |
02EF ; Push the current data stack pointer. | |
02EF ; | |
02EF 02 F7 02 E6 FDB SPAT,L290 | |
02F3 03 53 50 40 L300: FCB 3,"SP@" | |
02F7 SPAT: | |
02F7 1F 40 TFR s,d | |
02F9 ED E3 STD ,--s | |
02FB ; alternatively | |
02FB ; sts ,--s ; does this work? | |
02FB 37 80 PULU pc | |
02FD ; | |
02FD ; SP! ( a -- ) | |
02FD ; Set the data stack pointer. | |
02FD ; | |
02FD 03 05 02 F3 FDB SPSTO,L300 | |
0301 03 53 50 21 L310: FCB 3,"SP!" | |
0305 10 EE E4 SPSTO: LDS ,s | |
0308 37 80 PULU pc | |
030A ; | |
030A ; DROP ( w -- ) | |
030A ; Discard top stack item. | |
030A ; | |
030A 03 13 03 01 FDB DROP,L310 | |
030E 04 44 52 4F 50 L320: FCB 4,"DROP" | |
0313 32 62 DROP: LEAS 2,s | |
0315 37 80 PULU pc | |
0317 ; | |
0317 ; DUP ( w -- w w ) | |
0317 ; Duplicate the top stack item. | |
0317 ; | |
0317 03 1F 03 0E FDB DUPP,L320 | |
031B 03 44 55 50 L330: FCB 3,"DUP" | |
031F EC E4 DUPP: LDD ,s | |
0321 ; std ,--s | |
0321 34 06 PSHS d | |
0323 37 80 PULU pc | |
0325 ; | |
0325 ; SWAP ( w1 w2 -- w2 w1 ) | |
0325 ; Exchange top two stack items. | |
0325 ; | |
0325 03 2E 03 1B FDB SWAP,L330 | |
0329 04 53 57 41 50 L340: FCB 4,"SWAP" | |
032E SWAP: | |
032E ;OLD 1: slow | |
032E ; ldx ,s++ | |
032E ; ldd ,s++ | |
032E ;OLD 2: faster | |
032E ; puls x | |
032E ; puls d | |
032E ; pshs d,x | |
032E ;more efficient, without unnecessary stack pointer manipulations | |
032E EC E4 LDD ,s | |
0330 AE 62 LDX 2,s | |
0332 ED 62 STD 2,s | |
0334 AF E4 STX ,s | |
0336 37 80 PULU pc | |
0338 ; | |
0338 ; OVER ( w1 w2 -- w1 w2 w1 ) | |
0338 ; Copy second stack item to top. | |
0338 ; | |
0338 03 41 03 29 FDB OVER,L340 | |
033C 04 4F 56 45 52 L350: FCB 4,"OVER" | |
0341 EC 62 OVER: LDD 2,s | |
0343 ; std ,--s | |
0343 34 06 PSHS d | |
0345 37 80 PULU pc | |
0347 ; | |
0347 ; 0< ( n -- t ) | |
0347 ; Return true if n is negative. | |
0347 ; | |
0347 03 4E 03 3C FDB ZLESS,L350 | |
034B 02 30 3C L360: FCB 2,"0<" | |
034E E6 E4 ZLESS: LDB ,s | |
0350 1D SEX ; sign extend to b to a/b | |
0351 1F 89 TFR a,b ; high byte: 0 or FF copy to D low | |
0353 ED E4 STD ,s ; D: 0000 or FFFF (= -1) | |
0355 37 80 PULU pc | |
0357 ; | |
0357 ; 0= ( n -- t ) | |
0357 ; Return true if n is zero | |
0357 ; | |
0357 03 5E 03 4B FDB ZEQUAL,L360 | |
035B 02 30 3D L365: FCB 2,"0=" | |
035E ZEQUAL: | |
035E 8E FF FF LDX #TRUEE ; true | |
0361 EC E4 LDD ,s ; TOS | |
0363 27 03 BEQ ZEQUAL1 ; -> true | |
0365 8E 00 00 LDX #0 ; false | |
0368 AF E4 ZEQUAL1: STX ,s | |
036A 37 80 PULU pc | |
036C ; | |
036C ; AND ( w w -- w ) | |
036C ; Bitwise AND. | |
036C ; | |
036C 03 74 03 5B FDB ANDD,L365 | |
0370 03 41 4E 44 L370: FCB 3,"AND" | |
0374 EC E1 ANDD: LDD ,s++ | |
0376 A4 E4 ANDA ,s | |
0378 E4 61 ANDB 1,s | |
037A ED E4 STD ,s | |
037C 37 80 PULU pc | |
037E ; | |
037E ; OR ( w w -- w ) | |
037E ; Bitwise inclusive OR. | |
037E ; | |
037E 03 85 03 70 FDB ORR,L370 | |
0382 02 4F 52 L380: FCB 2,"OR" | |
0385 EC E1 ORR: LDD ,s++ | |
0387 AA E4 ORA ,s | |
0389 EA 61 ORB 1,s | |
038B ED E4 STD ,s | |
038D 37 80 PULU pc | |
038F ; | |
038F ; XOR ( w w -- w ) | |
038F ; Bitwise exclusive OR. | |
038F ; | |
038F 03 97 03 82 FDB XORR,L380 | |
0393 03 58 4F 52 L390: FCB 3,"XOR" | |
0397 EC E1 XORR: LDD ,s++ | |
0399 A8 E4 EORA ,s | |
039B E8 61 EORB 1,s | |
039D ED E4 STD ,s | |
039F 37 80 PULU pc | |
03A1 ; | |
03A1 ; D+ ( ud ud -- udsum ) | |
03A1 ; Add two unsigned double numbers and return a double sum. | |
03A1 ; | |
03A1 03 A8 03 93 FDB DPLUS,L390 | |
03A5 02 44 2B L391: FCB 2,"D+" | |
03A8 EC 62 DPLUS: LDD 2,s | |
03AA E3 66 ADDD 6,s | |
03AC ED 66 STD 6,s | |
03AE EC E4 LDD ,s ; add hig words | |
03B0 E9 65 ADCB 5,s | |
03B2 A9 64 ADCA 4,s | |
03B4 ED 64 STD 4,s | |
03B6 32 64 LEAS 4,s ; drop one double | |
03B8 37 80 PULU pc | |
03BA ; | |
03BA ; D- ( ud ud -- uddiff ) | |
03BA ; Subtract two unsigned double numbers and return a double sum. | |
03BA ; | |
03BA 03 C1 03 A5 FDB DSUB,L391 | |
03BE 02 44 2D L392: FCB 2,"D-" | |
03C1 BD 02 10 DSUB: JSR DOLST | |
03C4 07 17 03 A8 02 6F FDB DNEGA,DPLUS,EXIT | |
03CA ; | |
03CA ; | |
03CA ; UM+ ( u u -- udsum ) | |
03CA ; Add two unsigned single numbers and return a double sum. | |
03CA ; | |
03CA 03 D2 03 BE FDB UPLUS,L392 | |
03CE 03 55 4D 2B L400: FCB 3,"UM+" | |
03D2 EC E4 UPLUS: LDD ,s | |
03D4 E3 62 ADDD 2,s | |
03D6 ED 62 STD 2,s | |
03D8 CC 00 00 LDD #0 | |
03DB C9 00 ADCB #0 | |
03DD ED E4 STD ,s | |
03DF 37 80 PULU pc | |
03E1 ; | |
03E1 ; Constants | |
03E1 ; | |
03E1 ; doCONST ( -- w ) | |
03E1 ; Run time routine for CONSTANT | |
03E1 ; | |
03E1 03 ED 03 CE FDB DOCONST,L400 | |
03E5 47 64 6F 43 4F 4E 53 54 L401: FCB COMPO+7,"doCONST" | |
03ED DOCONST: | |
03ED FDOCONST: | |
03ED EC F4 LDD [,s] ; contents of W (on TOS because of JSR) | |
03EF ED E4 STD ,s ; to TOS (replacing W) | |
03F1 37 80 PULU pc | |
03F3 ; | |
03F3 ; 0 ( -- 0 ) | |
03F3 ; Constant 0 | |
03F3 ; | |
03F3 03 F9 03 E5 FDB ZERO,L401 | |
03F7 01 30 L402: FCB 1,"0" | |
03F9 BD 03 ED ZERO: JSR FDOCONST | |
03FC 00 00 FDB 0 | |
03FE ; | |
03FE ; 1 ( -- 1 ) | |
03FE ; Constant 1 | |
03FE ; | |
03FE 04 04 03 F7 FDB ONE,L402 | |
0402 01 31 L403: FCB 1,"1" | |
0404 BD 03 ED ONE: JSR FDOCONST | |
0407 00 01 FDB 1 | |
0409 ; | |
0409 ; 2 ( -- 2 ) | |
0409 ; Constant 2 | |
0409 ; | |
0409 04 0F 04 02 FDB TWO,L403 | |
040D 01 32 L404: FCB 1,"2" | |
040F BD 03 ED TWO: JSR FDOCONST | |
0412 00 02 FDB 2 | |
0414 ; | |
0414 ; | |
0414 ; -1 ( -- -1 ) | |
0414 ; Constant -1 | |
0414 ; | |
0414 04 1B 04 0D FDB MONE,L404 | |
0418 02 2D 31 L405: FCB 2,"-1" | |
041B BD 03 ED MONE: JSR FDOCONST | |
041E FF FF FDB -1 | |
0420 ; | |
0420 ; System and user variables | |
0420 ; | |
0420 ; doVAR ( -- a ) | |
0420 ; Run time routine for VARIABLE and CREATE. | |
0420 ; | |
0420 04 2A 04 18 FDB DOVAR,L405 | |
0424 45 64 6F 56 41 52 L410: FCB COMPO+5,"doVAR" | |
042A DOVAR: | |
042A BD 02 10 JSR DOLST | |
042D 02 C9 02 6F FDB RFROM,EXIT | |
0431 ; | |
0431 ; fast native DOVAR implementation | |
0431 37 80 FDOVAR: PULU pc | |
0433 ; | |
0433 ; | |
0433 ; UP ( -- a ) | |
0433 ; Pointer to the user area. | |
0433 ; | |
0433 04 3A 04 24 FDB UP,L410 | |
0437 02 55 50 L420: FCB 2,"UP" | |
043A UP: | |
043A ; jsr DOLST | |
043A ; FDB DOVAR | |
043A ; fast (native) DOVAR | |
043A BD 04 31 JSR FDOVAR | |
043D 6F 80 FDB UPP | |
043F ; | |
043F ; doUSER ( -- a ) | |
043F ; Run time routine for user variables. | |
043F ; | |
043F 04 4A 04 37 FDB DOUSE,L420 | |
0443 45 64 6F 55 53 45 52 L430: FCB COMPO+5,"doUSER" | |
044A DOUSE: | |
044A BD 02 10 JSR DOLST | |
044D 02 C9 02 87 04 3A 02 87 06 CD 02 6F FDB RFROM,AT,UP,AT,PLUS,EXIT | |
0459 ; | |
0459 ; fast (native) DOUSE implementation (*NOT COMPLETE*) | |
0459 FDOUSE: | |
0459 EC F4 LDD [,s] ; pointer to value (from JSR) | |
045B F3 04 3D ADDD UP+CFAOFF ; dirty access to start of USER area: | |
045E ; var. UP value direct access (not | |
045E ; as a high level word) | |
045E ED E4 STD ,s ; resulting address returned on p-stack | |
0460 37 80 PULU pc | |
0462 ; | |
0462 ; SP0 ( -- a ) | |
0462 ; Pointer to bottom of the data stack. | |
0462 ; | |
0462 04 6A 04 43 FDB SZERO,L430 | |
0466 03 53 50 30 L440: FCB 3,"SP0" | |
046A SZERO: | |
046A BD 04 59 JSR FDOUSE | |
046D 00 08 FDB 8 | |
046F ; jsr DOLST | |
046F ; FDB DOUSE,8 | |
046F ; | |
046F ; RP0 ( -- a ) | |
046F ; Pointer to bottom of the return stack. | |
046F ; | |
046F 04 77 04 66 FDB RZERO,L440 | |
0473 03 52 50 30 L450: FCB 3,"RP0" | |
0477 RZERO: | |
0477 BD 04 59 JSR FDOUSE | |
047A 00 0A FDB 10 | |
047C ; jsr DOLST | |
047C ; FDB DOUSE,10 | |
047C ; | |
047C ; '?KEY ( -- a ) | |
047C ; Execution vector of ?KEY. | |
047C ; | |
047C 04 86 04 73 FDB TQKEY,L450 | |
0480 05 27 3F 4B 45 59 L460: FCB 5,"'?KEY" | |
0486 TQKEY: | |
0486 BD 04 59 JSR FDOUSE | |
0489 00 0C FDB 12 | |
048B ; jsr DOLST | |
048B ; FDB DOUSE,12 | |
048B ; | |
048B ; 'EMIT ( -- a ) | |
048B ; Execution vector of EMIT. | |
048B ; | |
048B 04 95 04 80 FDB TEMIT,L460 | |
048F 05 27 45 4D 49 54 L470: FCB 5,"'EMIT" | |
0495 TEMIT: | |
0495 BD 04 59 JSR FDOUSE | |
0498 00 0E FDB 14 | |
049A ; jsr DOLST | |
049A ; FDB DOUSE,14 | |
049A ; | |
049A ; 'EXPECT ( -- a ) | |
049A ; Execution vector of EXPECT. | |
049A ; | |
049A 04 A6 04 8F FDB TEXPE,L470 | |
049E 07 27 45 58 50 45 43 54 L480: FCB 7,"'EXPECT" | |
04A6 TEXPE: | |
04A6 BD 04 59 JSR FDOUSE | |
04A9 00 10 FDB 16 | |
04AB ; jsr DOLST | |
04AB ; FDB DOUSE,16 | |
04AB ; | |
04AB ; 'TAP ( -- a ) | |
04AB ; Execution vector of TAP. | |
04AB ; | |
04AB 04 B4 04 9E FDB TTAP,L480 | |
04AF 04 27 54 41 50 L490: FCB 4,"'TAP" | |
04B4 TTAP: | |
04B4 BD 04 59 JSR FDOUSE | |
04B7 00 12 FDB 18 | |
04B9 ; jsr DOLST | |
04B9 ; FDB DOUSE,18 | |
04B9 ; | |
04B9 ; 'ECHO ( -- a ) | |
04B9 ; Execution vector of ECHO. | |
04B9 ; | |
04B9 04 C3 04 AF FDB TECHO,L490 | |
04BD 05 27 45 43 48 4F L500: FCB 5,"'ECHO" | |
04C3 TECHO: | |
04C3 BD 04 59 JSR FDOUSE | |
04C6 00 14 FDB 20 | |
04C8 ; jsr DOLST | |
04C8 ; FDB DOUSE,20 | |
04C8 ; | |
04C8 ; 'PROMPT ( -- a ) | |
04C8 ; Execution vector of PROMPT. | |
04C8 ; | |
04C8 04 D4 04 BD FDB TPROM,L500 | |
04CC 07 27 50 52 4F 4D 50 54 L510: FCB 7,"'PROMPT" | |
04D4 TPROM: | |
04D4 BD 04 59 JSR FDOUSE | |
04D7 00 16 FDB 22 | |
04D9 ; jsr DOLST | |
04D9 ; FDB DOUSE,22 | |
04D9 ; | |
04D9 ; | |
04D9 ; BASE ( -- a ) | |
04D9 ; Storage of the radix base for numeric I/O. | |
04D9 ; | |
04D9 04 E2 04 CC FDB BASE,L510 | |
04DD 04 42 41 53 45 L520: FCB 4,"BASE" | |
04E2 BASE: | |
04E2 BD 04 59 JSR FDOUSE | |
04E5 00 18 FDB 24 | |
04E7 ; jsr DOLST | |
04E7 ; FDB DOUSE,24 | |
04E7 ; | |
04E7 ; tmp ( -- a ) | |
04E7 ; A temporary storage location used in parse and find. | |
04E7 ; | |
04E7 04 EF 04 DD FDB TEMP,L520 | |
04EB 43 74 6D 70 L530: FCB COMPO+3,"tmp" | |
04EF TEMP: | |
04EF BD 04 59 JSR FDOUSE | |
04F2 00 1A FDB 26 | |
04F4 ; jsr DOLST | |
04F4 ; FDB DOUSE,26 | |
04F4 ; | |
04F4 ; SPAN ( -- a ) | |
04F4 ; Hold character count received by EXPECT. | |
04F4 ; | |
04F4 04 FD 04 EB FDB SPAN,L530 | |
04F8 04 53 50 41 4E L540: FCB 4,"SPAN" | |
04FD SPAN: | |
04FD BD 04 59 JSR FDOUSE | |
0500 00 1C FDB 28 | |
0502 ; jsr DOLST | |
0502 ; FDB DOUSE,28 | |
0502 ; | |
0502 ; >IN ( -- a ) | |
0502 ; Hold the character pointer while parsing input stream. | |
0502 ; | |
0502 05 0A 04 F8 FDB INN,L540 | |
0506 03 3E 49 4E L550: FCB 3,">IN" | |
050A INN: | |
050A BD 04 59 JSR FDOUSE | |
050D 00 1E FDB 30 | |
050F ; jsr DOLST | |
050F ; FDB DOUSE,30 | |
050F ; | |
050F ; #TIB ( -- a ) | |
050F ; Hold the current count in and address of the terminal input buffer. | |
050F ; | |
050F 05 18 05 06 FDB NTIB,L550 | |
0513 04 23 54 49 42 L560: FCB 4,"#TIB" | |
0518 NTIB: | |
0518 BD 04 59 JSR FDOUSE | |
051B 00 20 FDB 32 | |
051D ; jsr DOLST | |
051D ; FDB DOUSE,32 ;It contains TWO cells!!!! | |
051D ; | |
051D ; CSP ( -- a ) | |
051D ; Hold the stack pointer for error checking. | |
051D ; | |
051D 05 25 05 13 FDB CSP,L560 | |
0521 03 43 53 50 L570: FCB 3,"CSP" | |
0525 CSP: | |
0525 BD 04 59 JSR FDOUSE | |
0528 00 24 FDB 36 | |
052A ; jsr DOLST | |
052A ; FDB DOUSE 36 | |
052A ; | |
052A ; 'EVAL ( -- a ) | |
052A ; Execution vector of EVAL. | |
052A ; | |
052A 05 34 05 21 FDB TEVAL,L570 | |
052E 05 27 45 56 41 4C L580: FCB 5,"'EVAL" | |
0534 TEVAL: | |
0534 BD 04 59 JSR FDOUSE | |
0537 00 26 FDB 38 | |
0539 ; jsr DOLST | |
0539 ; FDB DOUSE,38 | |
0539 ; | |
0539 ; 'NUMBER ( -- a ) | |
0539 ; Execution vector of NUMBER?. | |
0539 ; | |
0539 05 45 05 2E FDB TNUMB,L580 | |
053D 07 27 4E 55 4D 42 45 52 L590: FCB 7,"'NUMBER" | |
0545 TNUMB: | |
0545 BD 04 59 JSR FDOUSE | |
0548 00 28 FDB 40 | |
054A ; jsr DOLST | |
054A ; FDB DOUSE,40 | |
054A ; | |
054A ; HLD ( -- a ) | |
054A ; Hold a pointer in building a numeric output string. | |
054A ; | |
054A 05 52 05 3D FDB HLD,L590 | |
054E 03 48 4C 44 L600: FCB 3,"HLD" | |
0552 HLD: | |
0552 BD 04 59 JSR FDOUSE | |
0555 00 2A FDB 42 | |
0557 ; jsr DOLST | |
0557 ; FDB DOUSE,42 | |
0557 ; | |
0557 ; HANDLER ( -- a ) | |
0557 ; Hold the return stack pointer for error handling. | |
0557 ; | |
0557 05 63 05 4E FDB HANDL,L600 | |
055B 07 48 41 4E 44 4C 45 52 L610: FCB 7,"HANDLER" | |
0563 HANDL: | |
0563 BD 04 59 JSR FDOUSE | |
0566 00 2C FDB 44 | |
0568 ; jsr DOLST | |
0568 ; FDB DOUSE,44 | |
0568 ; | |
0568 ; CONTEXT ( -- a ) | |
0568 ; A area to specify vocabulary search order. | |
0568 ; | |
0568 05 74 05 5B FDB CNTXT,L610 | |
056C 07 43 4F 4E 54 45 58 54 L620: FCB 7,"CONTEXT" | |
0574 CNTXT: | |
0574 BD 04 59 JSR FDOUSE | |
0577 00 2E FDB 46 | |
0579 ; jsr DOLST | |
0579 ; FDB DOUSE,46 ;plus space for voc stack. | |
0579 ; | |
0579 ; CURRENT ( -- a ) | |
0579 ; Point to the vocabulary to be extended. | |
0579 ; | |
0579 05 85 05 6C FDB CRRNT,L620 | |
057D 07 43 55 52 52 45 4E 54 L630: FCB 7,"CURRENT" | |
0585 CRRNT: | |
0585 BD 04 59 JSR FDOUSE | |
0588 00 40 FDB 48+VOCSS*2 ;Extra cell | |
058A ; jsr DOLST | |
058A ; FDB DOUSE,48+VOCSS*2 ;Extra cell | |
058A ; | |
058A ; CP ( -- a ) | |
058A ; Point to the top of the code dictionary. | |
058A ; | |
058A 05 91 05 7D FDB CP,L630 | |
058E 02 43 50 L640: FCB 2,"CP" | |
0591 CP: | |
0591 BD 04 59 JSR FDOUSE | |
0594 00 44 FDB 52+VOCSS*2 | |
0596 ; jsr DOLST | |
0596 ; FDB DOUSE,52+VOCSS*2 | |
0596 ; | |
0596 ; NP ( -- a ) | |
0596 ; Point to the bottom of the name dictionary. | |
0596 ; | |
0596 05 9D 05 8E FDB NP,L640 | |
059A 02 4E 50 L650: FCB 2,"NP" | |
059D NP: | |
059D BD 04 59 JSR FDOUSE | |
05A0 00 46 FDB 54+VOCSS*2 | |
05A2 ; jsr DOLST | |
05A2 ; FDB DOUSE,54+VOCSS*2 | |
05A2 ; | |
05A2 ; LAST ( -- a ) | |
05A2 ; Point to the last name in the name dictionary. | |
05A2 ; | |
05A2 05 AB 05 9A FDB LAST,L650 | |
05A6 04 4C 41 53 54 L660: FCB 4,"LAST" | |
05AB LAST: | |
05AB BD 04 59 JSR FDOUSE | |
05AE 00 48 FDB 56+VOCSS*2 | |
05B0 ; jsr DOLST | |
05B0 ; FDB DOUSE,56+VOCSS*2 | |
05B0 ; | |
05B0 ; Common functions | |
05B0 ; | |
05B0 ; doVOC ( -- ) | |
05B0 ; Run time action of VOCABULARY's. | |
05B0 ; | |
05B0 05 BA 05 A6 FDB DOVOC,L660 | |
05B4 45 64 6F 56 4F 43 L670: FCB COMPO+5,"doVOC" | |
05BA DOVOC: | |
05BA BD 02 10 JSR DOLST | |
05BD 02 C9 05 74 02 79 02 6F FDB RFROM,CNTXT,STORE,EXIT | |
05C5 ; | |
05C5 ; FORTH ( -- ) | |
05C5 ; Make FORTH the context vocabulary. | |
05C5 ; | |
05C5 05 CF 05 B4 FDB FORTH,L670 | |
05C9 05 46 4F 52 54 48 L680: FCB 5,"FORTH" | |
05CF FORTH: | |
05CF BD 02 10 JSR DOLST | |
05D2 05 BA FDB DOVOC | |
05D4 00 00 FDB 0 ;vocabulary head pointer | |
05D6 00 00 FDB 0 ;vocabulary link pointer | |
05D8 ; | |
05D8 ; ?DUP ( w -- w w | 0 ) | |
05D8 ; Dup tos if its is not zero. | |
05D8 ; | |
05D8 05 E1 05 C9 FDB QDUP,L680 | |
05DC 04 3F 44 55 50 L690: FCB 4,"?DUP" | |
05E1 QDUP: | |
05E1 BD 02 10 JSR DOLST | |
05E4 03 1F FDB DUPP | |
05E6 02 3E 05 EC FDB QBRAN,QDUP1 | |
05EA 03 1F FDB DUPP | |
05EC 02 6F QDUP1: FDB EXIT | |
05EE ; | |
05EE ; ROT ( w1 w2 w3 -- w2 w3 w1 ) | |
05EE ; Rot 3rd item to top. | |
05EE ; | |
05EE 05 F6 05 DC FDB ROT,L690 | |
05F2 03 52 4F 54 L700: FCB 3,"ROT" | |
05F6 ROT: | |
05F6 BD 02 10 JSR DOLST | |
05F9 02 E9 03 2E 02 C9 03 2E 02 6F FDB TOR,SWAP,RFROM,SWAP,EXIT | |
0603 ; | |
0603 ; 2DROP ( w w -- ) | |
0603 ; Discard two items on stack. | |
0603 ; | |
0603 06 0D 05 F2 FDB DDROP,L700 | |
0607 05 32 44 52 4F 50 L710: FCB 5,"2DROP" | |
060D DDROP: | |
060D BD 02 10 JSR DOLST | |
0610 03 13 03 13 02 6F FDB DROP,DROP,EXIT | |
0616 ; | |
0616 ; 2DUP ( w1 w2 -- w1 w2 w1 w2 ) | |
0616 ; Duplicate top two items. | |
0616 ; | |
0616 06 1F 06 07 FDB DDUP,L710 | |
061A 04 32 44 55 50 L720: FCB 4,"2DUP" | |
061F DDUP: | |
061F BD 02 10 JSR DOLST | |
0622 03 41 03 41 02 6F FDB OVER,OVER,EXIT | |
0628 ; | |
0628 ; LSHIFT ( w n -- w ) | |
0628 ; Shift word left n times. | |
0628 06 33 06 1A FDB LSHIFT,L720 | |
062C 06 4C 53 48 49 46 54 L721: FCB 6,"LSHIFT" | |
0633 AE E1 LSHIFT: LDX ,s++ | |
0635 27 0A BEQ LSHIFT2 | |
0637 EC E4 LDD ,s ;value to shift | |
0639 58 LSHIFT1: ASLB | |
063A 49 ROLA ;high | |
063B 30 1F LEAX -1,x ;count down | |
063D 26 FA BNE LSHIFT1 | |
063F ED E4 STD ,s | |
0641 LSHIFT2: | |
0641 37 80 PULU pc | |
0643 ; | |
0643 ; RSHIFT ( w n -- w ) | |
0643 ; Shift word right n times. | |
0643 06 4E 06 2C FDB RSHIFT,L721 | |
0647 06 52 53 48 49 46 54 L721A: FCB 6,"RSHIFT" | |
064E AE E1 RSHIFT: LDX ,s++ | |
0650 27 0A BEQ RSHIFT2 | |
0652 EC E4 LDD ,s ;value to shift | |
0654 44 RSHIFT1: LSRA | |
0655 56 RORB ;low | |
0656 30 1F LEAX -1,x ;count down | |
0658 26 FA BNE RSHIFT1 | |
065A ED E4 STD ,s | |
065C RSHIFT2: | |
065C 37 80 PULU pc | |
065E ; | |
065E ; >< ( w -- w ) | |
065E ; swap high and low byte | |
065E 06 65 06 47 FDB SWAPHL,L721A | |
0662 02 3E 3C L722: FCB 2,"><" | |
0665 E6 E4 SWAPHL: LDB ,s | |
0667 A6 61 LDA 1,s ;low -> D high | |
0669 ED E4 STD ,s | |
066B 37 80 PULU pc | |
066D ; | |
066D ; 256/ ( w -- w ) | |
066D ; multiply with 256 (shift left 8 times) | |
066D 06 76 06 62 FDB SLASH256,L722 | |
0671 04 32 35 36 2F L723: FCB 4,"256/" | |
0676 E6 E4 SLASH256: LDB ,s | |
0678 4F CLRA ;D high = 0 | |
0679 ED E4 STD ,s | |
067B 37 80 PULU pc | |
067D ; | |
067D ; 256* ( w -- w ) | |
067D ; multiply with 256 (shift left 8 times) | |
067D 06 86 06 71 FDB STAR256,L723 | |
0681 04 32 35 36 2A L724: FCB 4,"256*" | |
0686 A6 61 STAR256: LDA 1,s | |
0688 5F CLRB ;D low = 0 | |
0689 ED E4 STD ,s | |
068B 37 80 PULU pc | |
068D ; | |
068D ; 1+ ( w -- w ) | |
068D ; Shortcut, quick add 1 | |
068D 06 94 06 81 FDB PLUS1,L724 | |
0691 02 31 2B L725: FCB 2,"1+" | |
0694 EC E4 PLUS1: LDD ,s | |
0696 C3 00 01 ADDD #1 | |
0699 ED E4 STD ,s | |
069B 37 80 PULU pc | |
069D ; | |
069D ; -+ ( w -- w ) | |
069D ; Shortcut, quick subtract 1 | |
069D 06 A4 06 91 FDB MINUS1,L725 | |
06A1 02 31 2D L726: FCB 2,"1-" | |
06A4 EC E4 MINUS1: LDD ,s | |
06A6 83 00 01 SUBD #1 | |
06A9 ED E4 STD ,s | |
06AB 37 80 PULU pc | |
06AD ; | |
06AD ; 2* ( w -- w ) | |
06AD ; multiply by 2 using shift operation | |
06AD 06 B4 06 A1 FDB TWOSTAR,L726 | |
06B1 02 32 2A L727: FCB 2,"2*" | |
06B4 68 61 TWOSTAR: ASL 1,s | |
06B6 69 60 ROL 0,s ;high | |
06B8 37 80 PULU pc | |
06BA ; | |
06BA ; 2/ ( w -- w ) | |
06BA ; divide by 2 using shift operation | |
06BA 06 C1 06 B1 FDB TWOSLASH,L727 | |
06BE 02 32 2F L728: FCB 2,"2/" | |
06C1 67 60 TWOSLASH: ASR 0,s | |
06C3 66 61 ROR 1,s ;low | |
06C5 37 80 PULU pc | |
06C7 ; | |
06C7 ; + ( w w -- sum ) | |
06C7 ; Add top two items. | |
06C7 ; | |
06C7 06 CD 06 BE FDB PLUS,L728 | |
06CB 01 2B L730: FCB 1,"+" | |
06CD PLUS: | |
06CD EC E1 LDD ,s++ | |
06CF E3 E4 ADDD ,s | |
06D1 ED E4 STD ,s | |
06D3 37 80 PULU pc | |
06D5 ; HL with UPLUS!? Too inefficient ... | |
06D5 ; jsr DOLST | |
06D5 ; FDB UPLUS,DROP,EXIT | |
06D5 ; | |
06D5 ; NOT ( w -- w ) | |
06D5 ; One's complement of tos. | |
06D5 ; | |
06D5 06 DD 06 CB FDB INVER,L730 | |
06D9 03 4E 4F 54 L740: FCB 3,"NOT" | |
06DD INVER: | |
06DD ; fastest ... (13T) | |
06DD 63 E4 COM ,s ; 6T | |
06DF 63 61 COM 1,s ; 7T | |
06E1 37 80 PULU pc | |
06E3 ; alternative ... (14T) | |
06E3 EC E4 LDD ,s ;TOS 5T | |
06E5 43 COMA ; 2T | |
06E6 53 COMB ; 2T | |
06E7 ED E4 STD ,s ; 5T | |
06E9 37 80 PULU pc | |
06EB ; slow HL ... | |
06EB ; jsr DOLST | |
06EB ; FDB DOLIT,-1,XORR,EXIT | |
06EB ; | |
06EB ; NEGATE ( n -- -n ) | |
06EB ; Two's complement of tos. | |
06EB ; | |
06EB 06 F6 06 D9 FDB NEGAT,L740 | |
06EF 06 4E 45 47 41 54 45 L750: FCB 6,"NEGATE" | |
06F6 NEGAT: | |
06F6 ; fastest? .... (3+6+5 = 14T) | |
06F6 CC 00 00 LDD #0 ; 3T | |
06F9 A3 E4 SUBD ,s ; 6T | |
06FB ED E4 STD ,s ; 5T | |
06FD 37 80 PULU pc | |
06FF ; alternate ... (7+3+6 = 16T) | |
06FF 60 61 NEG 1,s ; high 7T | |
0701 26 04 BNE NEGAT1 ; 3T | |
0703 60 E4 NEG ,s ; low with 1+ carry 6T | |
0705 37 80 PULU pc | |
0707 63 E4 NEGAT1: COM ,s | |
0709 37 80 PULU pc | |
070B ; slow HL ... | |
070B ; jsr DOLST | |
070B ; FDB INVER,PLUS1,EXIT | |
070B ; | |
070B ; DNEGATE ( d -- -d ) | |
070B ; Two's complement of top double. | |
070B ; | |
070B 07 17 06 EF FDB DNEGA,L750 | |
070F 07 44 4E 45 47 41 54 45 L760: FCB 7,"DNEGATE" | |
0717 DNEGA: | |
0717 CC 00 00 LDD #0 | |
071A A3 62 SUBD 2,s ; low word | |
071C ED 62 STD 2,s | |
071E CC 00 00 LDD #0 | |
0721 E2 61 SBCB 1,s ; high word low byte | |
0723 A2 E4 SBCA ,s ; high word high byte | |
0725 ED E4 STD ,s | |
0727 37 80 PULU pc | |
0729 ; slow HL ... | |
0729 ; jsr DOLST | |
0729 ; FDB INVER,TOR,INVER | |
0729 ; FDB DOLIT,1,UPLUS | |
0729 ; FDB RFROM,PLUS,EXIT | |
0729 ; | |
0729 ; - ( n1 n2 -- n1-n2 ) | |
0729 ; Subtraction. | |
0729 ; | |
0729 07 2F 07 0F FDB SUBB,L760 | |
072D 01 2D L770: FCB 1,"-" | |
072F EC 62 SUBB: LDD 2,s | |
0731 A3 E1 SUBD ,s++ | |
0733 ED E4 STD ,s | |
0735 37 80 PULU pc | |
0737 ; slow HL ... | |
0737 ; jsr DOLST | |
0737 ; FDB NEGAT,PLUS,EXIT | |
0737 ; | |
0737 ; ABS ( n -- n ) | |
0737 ; Return the absolute value of n. | |
0737 ; | |
0737 07 3F 07 2D FDB ABSS,L770 | |
073B 03 41 42 53 L780: FCB 3,"ABS" | |
073F BD 02 10 ABSS: JSR DOLST | |
0742 03 1F 03 4E FDB DUPP,ZLESS | |
0746 02 3E 07 4C FDB QBRAN,ABS1 | |
074A 06 F6 FDB NEGAT | |
074C 02 6F ABS1: FDB EXIT | |
074E ; | |
074E ; = ( w w -- t ) | |
074E ; Return true if top two are equal. | |
074E ; | |
074E 07 54 07 3B FDB EQUAL,L780 | |
0752 01 3D L790: FCB 1,"=" | |
0754 EQUAL: | |
0754 8E FF FF LDX #TRUEE | |
0757 35 06 PULS d ; first value | |
0759 10 A3 E4 CMPD ,s ; compare to 2nd value | |
075C 27 03 BEQ EQUAL1 ; equal -> true | |
075E 8E 00 00 LDX #0 ; false (leax 1,x save 1 byte, but is slower) | |
0761 AF E4 EQUAL1: STX ,s | |
0763 37 80 PULU pc | |
0765 ; slow HL ... | |
0765 ; jsr DOLST | |
0765 ; FDB XORR | |
0765 ; FDB QBRAN,EQU1 | |
0765 ; FDB DOLIT,0,EXIT | |
0765 ;EQU1: FDB DOLIT,TRUEE,EXIT | |
0765 ; | |
0765 ; U< ( u1 u2 -- t ) | |
0765 ; Unsigned compare of top two items. | |
0765 ; | |
0765 07 6C 07 52 FDB ULESS,L790 | |
0769 02 55 3C L800: FCB 2,"U<" | |
076C ULESS: | |
076C 8E FF FF LDX #TRUEE ; true | |
076F 35 06 PULS d ; u2 | |
0771 10 A3 E4 CMPD ,s ; u2 - u1 | |
0774 22 03 BHI ULES1 ; unsigned: u2 higher u1 | |
0776 8E 00 00 LDX #0 ; false | |
0779 AF E4 ULES1: STX ,s | |
077B 37 80 PULU pc | |
077D ; slow HL ... | |
077D ; jsr DOLST | |
077D ; FDB DDUP,XORR,ZLESS | |
077D ; FDB QBRAN,ULES1 | |
077D ; FDB SWAP,DROP,ZLESS,EXIT | |
077D ;ULES1: FDB SUBB,ZLESS,EXIT | |
077D ; | |
077D ; < ( n1 n2 -- t ) | |
077D ; Signed compare of top two items. | |
077D ; | |
077D 07 83 07 69 FDB LESS,L800 | |
0781 01 3C L810: FCB 1,"<" | |
0783 LESS: | |
0783 8E FF FF LDX #TRUEE ; true | |
0786 35 06 PULS d ; n2 | |
0788 10 A3 E4 CMPD ,s ; n2 - n1 | |
078B 2E 03 BGT LESS1 ; signed: n2 greater than n1 | |
078D 8E 00 00 LDX #0 ; false | |
0790 AF E4 LESS1: STX ,s | |
0792 37 80 PULU pc | |
0794 ; | |
0794 ; slow HL ... | |
0794 ; jsr DOLST | |
0794 ; FDB DDUP,XORR,ZLESS | |
0794 ; FDB QBRAN,LESS1 | |
0794 ; FDB DROP,ZLESS,EXIT | |
0794 ;LESS1: FDB SUBB,ZLESS,EXIT | |
0794 ; | |
0794 ; MAX ( n n -- n ) | |
0794 ; Return the greater of two top stack items. | |
0794 ; | |
0794 07 9C 07 81 FDB MAX,L810 | |
0798 03 4D 41 58 L820: FCB 3,"MAX" | |
079C BD 02 10 MAX: JSR DOLST | |
079F 06 1F 07 83 FDB DDUP,LESS | |
07A3 02 3E 07 A9 FDB QBRAN,MAX1 | |
07A7 03 2E FDB SWAP | |
07A9 03 13 02 6F MAX1: FDB DROP,EXIT | |
07AD ; | |
07AD ; MIN ( n n -- n ) | |
07AD ; Return the smaller of top two stack items. | |
07AD ; | |
07AD 07 B5 07 98 FDB MIN,L820 | |
07B1 03 4D 49 4E L830: FCB 3,"MIN" | |
07B5 BD 02 10 MIN: JSR DOLST | |
07B8 06 1F 03 2E 07 83 FDB DDUP,SWAP,LESS | |
07BE 02 3E 07 C4 FDB QBRAN,MIN1 | |
07C2 03 2E FDB SWAP | |
07C4 03 13 02 6F MIN1: FDB DROP,EXIT | |
07C8 ; | |
07C8 ; WITHIN ( u ul uh -- t ) | |
07C8 ; Return true if u is within the range of ul and uh. ( ul <= u < uh ) | |
07C8 ; | |
07C8 07 D3 07 B1 FDB WITHI,L830 | |
07CC 06 57 49 54 48 49 4E L840: FCB 6,"WITHIN" | |
07D3 BD 02 10 WITHI: JSR DOLST | |
07D6 03 41 07 2F 02 E9 FDB OVER,SUBB,TOR | |
07DC 07 2F 02 C9 07 6C 02 6F FDB SUBB,RFROM,ULESS,EXIT | |
07E4 ; | |
07E4 ; Divide | |
07E4 ; | |
07E4 ; U/ ( udl udh un -- ur uq ) | |
07E4 ; Unsigned divide of a double by a single. Return mod and quotient. | |
07E4 ; | |
07E4 ; Special cases: | |
07E4 ; 1. overflow: quotient overflow if dividend is to great (remainder = divisor), | |
07E4 ; remainder is set to $FFFF -> special handling. | |
07E4 ; This is checked also right before the main loop. | |
07E4 ; 2. underflow: divisor does not fit into dividend -> remainder | |
07E4 ; get the value of the dividend -> automatically covered. | |
07E4 ; | |
07E4 ; overflow: quotient = $FFFF, remainder = divisor | |
07E4 ; underflow: quotient = $0000, remainder = dividend low | |
07E4 ; division by zero: quotient = $FFFF, remainder = $0000 | |
07E4 ; | |
07E4 ; Testvalues: | |
07E4 ; | |
07E4 ; DIVH DIVL DVSR QUOT REM comment | |
07E4 ; | |
07E4 ; 0100 0000 FFFF 0100 0100 maximum divisor | |
07E4 ; 0000 0001 8000 0000 0001 underflow (REM = DIVL) | |
07E4 ; 0000 5800 3000 0001 1800 normal divsion | |
07E4 ; 5800 0000 3000 FFFF 3000 overflow | |
07E4 ; 0000 0001 0000 FFFF 0000 overflow (division by zero) | |
07E4 ; | |
07E4 07 EB 07 CC FDB USLASH,L840 | |
07E8 02 55 2F L845: FCB 2,"U/" | |
07EB ; | |
07EB USLASH: | |
07EB 8E 00 10 LDX #16 | |
07EE EC 62 LDD 2,s ; udh | |
07F0 10 A3 E4 CMPD ,s ; dividend to great? | |
07F3 24 24 BHS UMMODOV ; quotient overflow! | |
07F5 68 65 ASL 5,s ; udl low | |
07F7 69 64 ROL 4,s ; udl high | |
07F9 ; | |
07F9 59 UMMOD1: ROLB | |
07FA 49 ROLA | |
07FB 25 09 BCS UMMOD2 ; bit 16 means always greater as divisor | |
07FD 10 A3 E4 CMPD ,s ; divide by un | |
0800 24 04 BHS UMMOD2 ; higher or same as divisor? | |
0802 1C FE ANDCC #$fe ; clc - clear carry flag | |
0804 20 04 BRA UMMOD3 | |
0806 A3 E4 UMMOD2: SUBD ,s | |
0808 1A 01 ORCC #$01 ; sec - set carry flag | |
080A 69 65 UMMOD3: ROL 5,s | |
080C 69 64 ROL 4,s | |
080E 30 1F LEAX -1,x | |
0810 26 E7 BNE UMMOD1 | |
0812 ; | |
0812 AE 64 LDX 4,s ; quotient | |
0814 10 A3 E4 CMPD ,s ; remainder >= divisor -> overflow | |
0817 25 05 BLO UMMOD4 | |
0819 UMMODOV: | |
0819 EC E4 LDD ,s ; remainder set to divisor | |
081B 8E FF FF LDX #$FFFF ; quotient = FFFF (-1) marks overflow | |
081E ; (case 1) | |
081E UMMOD4: | |
081E 32 62 LEAS 2,s ; un (divisor thrown away) | |
0820 AF E4 STX ,s ; quotient to TOS | |
0822 ED 62 STD 2,s ; remainder 2nd | |
0824 ; | |
0824 37 80 PULU pc ; NEXT | |
0826 ; | |
0826 ; | |
0826 ; UM/MOD ( udl udh un -- ur uq ) | |
0826 ; Unsigned divide of a double by a single. Return mod and quotient. | |
0826 ; | |
0826 08 31 07 E8 FDB UMMOD,L845 | |
082A 06 55 4D 2F 4D 4F 44 L850: FCB 6,"UM/MOD" | |
0831 UMMOD: | |
0831 7E 07 EB JMP USLASH | |
0834 ; slow HL ... | |
0834 BD 02 10 JSR DOLST | |
0837 06 1F 07 6C FDB DDUP,ULESS | |
083B 02 3E 08 87 FDB QBRAN,UMM4 | |
083F 06 F6 01 ED 00 0F 02 E9 FDB NEGAT,DOLIT,15,TOR | |
0847 02 E9 03 1F 03 D2 UMM1: FDB TOR,DUPP,UPLUS | |
084D 02 E9 02 E9 03 1F 03 D2 FDB TOR,TOR,DUPP,UPLUS | |
0855 02 C9 06 CD 03 1F FDB RFROM,PLUS,DUPP | |
085B 02 C9 02 DC 03 2E 02 E9 FDB RFROM,RAT,SWAP,TOR | |
0863 03 D2 02 C9 03 85 FDB UPLUS,RFROM,ORR | |
0869 02 3E 08 79 FDB QBRAN,UMM2 | |
086D 02 E9 03 13 06 94 02 C9 FDB TOR,DROP,PLUS1,RFROM | |
0875 02 55 08 7B FDB BRAN,UMM3 | |
0879 03 13 UMM2: FDB DROP | |
087B 02 C9 UMM3: FDB RFROM | |
087D 02 1F 08 47 FDB DONXT,UMM1 | |
0881 03 13 03 2E 02 6F FDB DROP,SWAP,EXIT | |
0887 03 13 06 0D UMM4: FDB DROP,DDROP | |
088B 01 ED FF FF 03 1F 02 6F FDB DOLIT,-1,DUPP,EXIT | |
0893 ; | |
0893 ; M/MOD ( d n -- r q ) | |
0893 ; Signed floored divide of double by single. Return mod and quotient. | |
0893 ; | |
0893 08 9D 08 2A FDB MSMOD,L850 | |
0897 05 4D 2F 4D 4F 44 L860: FCB 5,"M/MOD" | |
089D MSMOD: | |
089D BD 02 10 JSR DOLST | |
08A0 03 1F 03 4E 03 1F 02 E9 FDB DUPP,ZLESS,DUPP,TOR | |
08A8 02 3E 08 B4 FDB QBRAN,MMOD1 | |
08AC 06 F6 02 E9 07 17 02 C9 FDB NEGAT,TOR,DNEGA,RFROM | |
08B4 02 E9 03 1F 03 4E MMOD1: FDB TOR,DUPP,ZLESS | |
08BA 02 3E 08 C2 FDB QBRAN,MMOD2 | |
08BE 02 DC 06 CD FDB RAT,PLUS | |
08C2 02 C9 08 31 02 C9 MMOD2: FDB RFROM,UMMOD,RFROM | |
08C8 02 3E 08 D2 FDB QBRAN,MMOD3 | |
08CC 03 2E 06 F6 03 2E FDB SWAP,NEGAT,SWAP | |
08D2 02 6F MMOD3: FDB EXIT | |
08D4 ; | |
08D4 ; /MOD ( n n -- r q ) | |
08D4 ; Signed divide. Return mod and quotient. | |
08D4 ; | |
08D4 08 DD 08 97 FDB SLMOD,L860 | |
08D8 04 2F 4D 4F 44 L870: FCB 4,"/MOD" | |
08DD BD 02 10 SLMOD: JSR DOLST | |
08E0 03 41 03 4E 03 2E 08 9D 02 6F FDB OVER,ZLESS,SWAP,MSMOD,EXIT | |
08EA ; | |
08EA ; MOD ( n n -- r ) | |
08EA ; Signed divide. Return mod only. | |
08EA ; | |
08EA 08 F2 08 D8 FDB MODD,L870 | |
08EE 03 4D 4F 44 L880: FCB 3,"MOD" | |
08F2 BD 02 10 MODD: JSR DOLST | |
08F5 08 DD 03 13 02 6F FDB SLMOD,DROP,EXIT | |
08FB ; | |
08FB ; / ( n n -- q ) | |
08FB ; Signed divide. Return quotient only. | |
08FB ; | |
08FB 09 01 08 EE FDB SLASH,L880 | |
08FF 01 2F L890: FCB 1,"/" | |
0901 SLASH: | |
0901 BD 02 10 JSR DOLST | |
0904 08 DD 03 2E 03 13 02 6F FDB SLMOD,SWAP,DROP,EXIT | |
090C ; | |
090C ; Multiply | |
090C ; | |
090C ; UM* ( u u -- ud ) | |
090C ; Unsigned multiply. Return double product. | |
090C ; | |
090C 09 14 08 FF FDB UMSTA,L890 | |
0910 03 55 4D 2A L900: FCB 3,"UM*" | |
0914 UMSTA: | |
0914 8E 00 11 LDX #17 ; 16 adds and 17 shifts ... | |
0917 4F CLRA ; result high word | |
0918 5F CLRB | |
0919 20 06 BRA UUMSTA3 | |
091B 24 02 UUMSTA1: BCC UUMSTA2 | |
091D E3 E4 ADDD ,s | |
091F 46 UUMSTA2: RORA | |
0920 56 RORB ; low, result high word | |
0921 66 62 UUMSTA3: ROR 2,s | |
0923 66 63 ROR 3,s ; shift multiplier low, result low word | |
0925 30 1F LEAX -1,x | |
0927 26 F2 BNE UUMSTA1 | |
0929 ED E4 STD ,s | |
092B 37 80 PULU pc | |
092D ; slow HL ... | |
092D ; jsr DOLST | |
092D ; FDB DOLIT,0,SWAP,DOLIT,15,TOR | |
092D ;UMST1: FDB DUPP,UPLUS,TOR,TOR | |
092D ; FDB DUPP,UPLUS,RFROM,PLUS,RFROM | |
092D ; FDB QBRAN,UMST2 | |
092D ; FDB TOR,OVER,UPLUS,RFROM,PLUS | |
092D ;UMST2: FDB DONXT,UMST1 | |
092D ; FDB ROT,DROP,EXIT | |
092D ; | |
092D ; _UM* ( u u -- ud ) | |
092D ; Unsigned multiply. Return double product. | |
092D ; | |
092D 09 36 09 10 FDB UUMSTA,L900 | |
0931 04 5F 55 4D 2A L900A: FCB 4,"_UM*" | |
0936 UUMSTA: | |
0936 BD 02 10 JSR DOLST | |
0939 01 ED 00 00 03 2E 01 ED 00 0F 02 E9 FDB DOLIT,0,SWAP,DOLIT,15,TOR | |
0945 03 1F 03 D2 02 E9 02 E9 UMST1: FDB DUPP,UPLUS,TOR,TOR | |
094D 03 1F 03 D2 02 C9 06 CD 02 C9 FDB DUPP,UPLUS,RFROM,PLUS,RFROM | |
0957 02 3E 09 65 FDB QBRAN,UMST2 | |
095B 02 E9 03 41 03 D2 02 C9 06 CD FDB TOR,OVER,UPLUS,RFROM,PLUS | |
0965 02 1F 09 45 UMST2: FDB DONXT,UMST1 | |
0969 05 F6 03 13 02 6F FDB ROT,DROP,EXIT | |
096F ; | |
096F ; * ( n n -- n ) | |
096F ; Signed multiply. Return single product. | |
096F ; XXX Not really signed, -200 -200 * -> -25536 | |
096F ; | |
096F 09 75 09 31 FDB STAR,L900A | |
0973 01 2A L910: FCB 1,"*" | |
0975 STAR: | |
0975 BD 02 10 JSR DOLST | |
0978 09 85 03 13 02 6F FDB MSTAR,DROP,EXIT | |
097E ; | |
097E ; M* ( n n -- d ) | |
097E ; Signed multiply. Return double product. | |
097E ; | |
097E 09 85 09 73 FDB MSTAR,L910 | |
0982 02 4D 2A L920: FCB 2,"M*" | |
0985 MSTAR: | |
0985 BD 02 10 JSR DOLST | |
0988 06 1F 03 97 03 4E 02 E9 FDB DDUP,XORR,ZLESS,TOR | |
0990 07 3F 03 2E 07 3F 09 14 FDB ABSS,SWAP,ABSS,UMSTA | |
0998 02 C9 FDB RFROM | |
099A 02 3E 09 A0 FDB QBRAN,MSTA1 | |
099E 07 17 FDB DNEGA | |
09A0 02 6F MSTA1: FDB EXIT | |
09A2 ; | |
09A2 ; */MOD ( n1 n2 n3 -- r q ) | |
09A2 ; Multiply n1 and n2, then divide by n3. Return mod and quotient. | |
09A2 ; | |
09A2 09 AC 09 82 FDB SSMOD,L920 | |
09A6 05 2A 2F 4D 4F 44 L930: FCB 5,"*/MOD" | |
09AC BD 02 10 SSMOD: JSR DOLST | |
09AF 02 E9 09 85 02 C9 08 9D 02 6F FDB TOR,MSTAR,RFROM,MSMOD,EXIT | |
09B9 ; | |
09B9 ; */ ( n1 n2 n3 -- q ) | |
09B9 ; Multiply n1 by n2, then divide by n3. Return quotient only. | |
09B9 ; | |
09B9 09 C0 09 A6 FDB STASL,L930 | |
09BD 02 2A 2F L940: FCB 2,"*/" | |
09C0 BD 02 10 STASL: JSR DOLST | |
09C3 09 AC 03 2E 03 13 02 6F FDB SSMOD,SWAP,DROP,EXIT | |
09CB ; | |
09CB ; Miscellaneous | |
09CB ; | |
09CB ; CELL+ ( a -- a ) | |
09CB ; Add cell size in byte to address. | |
09CB ; | |
09CB 09 D5 09 BD FDB CELLP,L940 | |
09CF 05 43 45 4C 4C 2B L950: FCB 5,"CELL+" | |
09D5 BD 02 10 CELLP: JSR DOLST | |
09D8 01 FE FDB DOCLIT | |
09DA 02 FCB CELLL | |
09DB 06 CD 02 6F FDB PLUS,EXIT | |
09DF ; | |
09DF ; CELL- ( a -- a ) | |
09DF ; Subtract cell size in byte from address. | |
09DF ; | |
09DF 09 E9 09 CF FDB CELLM,L950 | |
09E3 05 43 45 4C 4C 2D L960: FCB 5,"CELL-" | |
09E9 BD 02 10 CELLM: JSR DOLST | |
09EC 01 FE FDB DOCLIT | |
09EE FE FCB 0-CELLL | |
09EF 06 CD 02 6F FDB PLUS,EXIT | |
09F3 ; | |
09F3 ; CELLS ( n -- n ) | |
09F3 ; Multiply tos by cell size in bytes. | |
09F3 ; | |
09F3 09 FD 09 E3 FDB CELLS,L960 | |
09F7 05 43 45 4C 4C 53 L970: FCB 5,"CELLS" | |
09FD BD 02 10 CELLS: JSR DOLST | |
0A00 01 FE FDB DOCLIT | |
0A02 02 FCB CELLL | |
0A03 09 75 02 6F FDB STAR,EXIT | |
0A07 ; | |
0A07 ; ALIGNED ( b -- a ) | |
0A07 ; Align address to the cell boundary. | |
0A07 ; | |
0A07 0A 13 09 F7 FDB ALGND,L970 | |
0A0B 07 41 4C 49 47 4E 45 44 L975: FCB 7,"ALIGNED" | |
0A13 BD 02 10 ALGND: JSR DOLST | |
0A16 02 6F FDB EXIT | |
0A18 ; | |
0A18 ; BL ( -- 32 ) | |
0A18 ; Return 32, the blank character. | |
0A18 ; | |
0A18 0A 1F 0A 0B FDB BLANK,L975 | |
0A1C 02 42 4C L980: FCB 2,"BL" | |
0A1F BLANK: | |
0A1F BD 03 ED JSR DOCONST | |
0A22 FDB ' ' | |
0A22 ; jsr DOLST | |
0A22 ; FDB DOLIT,' ',EXIT | |
0A22 ; | |
0A22 ; >CHAR ( c -- c ) | |
0A22 ; Filter non-printing characters. | |
0A22 ; | |
0A22 0A 2C 0A 1C FDB TCHAR,L980 | |
0A26 05 3E 43 48 41 52 L990: FCB 5,">CHAR" | |
0A2C BD 02 10 TCHAR: JSR DOLST | |
0A2F 01 ED 00 7F 03 74 03 1F FDB DOLIT,$7F,ANDD,DUPP ;mask msb | |
0A37 01 FE FDB DOCLIT | |
0A39 7F FCB 127 | |
0A3A 0A 1F 07 D3 FDB BLANK,WITHI ;check for printable | |
0A3E 02 3E 0A 46 FDB QBRAN,TCHA1 | |
0A42 03 13 01 ED FDB DROP,DOLIT,'_' ;replace non-printables | |
0A46 02 6F TCHA1: FDB EXIT | |
0A48 ; | |
0A48 ; DEPTH ( -- n ) | |
0A48 ; Return the depth of the data stack. | |
0A48 ; | |
0A48 0A 52 0A 26 FDB DEPTH,L990 | |
0A4C 05 44 45 50 54 48 L1000: FCB 5,"DEPTH" | |
0A52 BD 02 10 DEPTH: JSR DOLST | |
0A55 02 F7 04 6A 02 87 03 2E 07 2F FDB SPAT,SZERO,AT,SWAP,SUBB | |
0A5F 01 FE FDB DOCLIT | |
0A61 02 FCB CELLL | |
0A62 09 01 02 6F FDB SLASH,EXIT | |
0A66 ; | |
0A66 ; PICK ( ... +n -- ... w ) | |
0A66 ; Copy the nth stack item to tos. | |
0A66 ; | |
0A66 0A 6F 0A 4C FDB PICK,L1000 | |
0A6A 04 50 49 43 4B L1010: FCB 4,"PICK" | |
0A6F PICK: | |
0A6F EC E4 LDD ,s | |
0A71 C3 00 01 ADDD #1 ; correct index | |
0A74 58 ASLB ; CELLL* (ASSERT: CELLL=2!!!) | |
0A75 49 ROLA | |
0A76 AE EB LDX d,s ; pick value | |
0A78 AF E4 STX ,s ; replace TOP | |
0A7A 37 80 PULU pc | |
0A7C ; slow HL ... | |
0A7C ; jsr DOLST | |
0A7C ; FDB PLUS1,CELLS | |
0A7C ; FDB SPAT,PLUS,AT,EXIT | |
0A7C ; | |
0A7C ; | |
0A7C ; ROLL ( ... +n -- ... w ) | |
0A7C ; Copy the nth stack item to tos. | |
0A7C ; | |
0A7C 0A 85 0A 6A FDB ROLL,L1010 | |
0A80 04 52 4F 4C 4C L1015: FCB 4,"ROLL" | |
0A85 ROLL: | |
0A85 ; XXX als Primitive! | |
0A85 ; slow HL ... | |
0A85 BD 02 10 JSR DOLST | |
0A88 03 1F 04 0F FDB DUPP,TWO | |
0A8C 07 83 02 3E 0A 98 FDB LESS,QBRAN,ROL1 | |
0A92 03 13 02 55 0A A6 FDB DROP,BRAN,ROL2 | |
0A98 03 2E 02 E9 04 04 ROL1: FDB SWAP,TOR,ONE | |
0A9E 07 2F FDB SUBB | |
0AA0 0A 85 02 C9 03 2E FDB ROLL,RFROM,SWAP | |
0AA6 02 6F ROL2: FDB EXIT | |
0AA8 ; | |
0AA8 ; Memory access | |
0AA8 ; | |
0AA8 ; +! ( n a -- ) | |
0AA8 ; Add n to the contents at address a. | |
0AA8 ; | |
0AA8 0A AF 0A 80 FDB PSTOR,L1015 | |
0AAC 02 2B 21 L1020: FCB 2,"+!" | |
0AAF PSTOR: | |
0AAF 35 10 PULS x ; address | |
0AB1 35 06 PULS d ; value | |
0AB3 E3 84 ADDD ,x ; add to value from address | |
0AB5 ED 84 STD ,x ; store back | |
0AB7 37 80 PULU pc | |
0AB9 ; | |
0AB9 ; XXX als Primitive! | |
0AB9 ; slow HL ... | |
0AB9 ; jsr DOLST | |
0AB9 ; FDB SWAP,OVER,AT,PLUS | |
0AB9 ; FDB SWAP,STORE,EXIT | |
0AB9 ; | |
0AB9 ; 2! ( d a -- ) | |
0AB9 ; Store the double integer to address a. | |
0AB9 ; | |
0AB9 0A C0 0A AC FDB DSTOR,L1020 | |
0ABD 02 32 21 L1030: FCB 2,"2!" | |
0AC0 DSTOR: | |
0AC0 ; XXX als Primitive! | |
0AC0 ; slow HL ... | |
0AC0 BD 02 10 JSR DOLST | |
0AC3 03 2E 03 41 02 79 FDB SWAP,OVER,STORE | |
0AC9 09 D5 02 79 02 6F FDB CELLP,STORE,EXIT | |
0ACF ; | |
0ACF ; 2@ ( a -- d ) | |
0ACF ; Fetch double integer from address a. | |
0ACF ; | |
0ACF 0A D6 0A BD FDB DAT,L1030 | |
0AD3 02 32 40 L1040: FCB 2,"2@" | |
0AD6 DAT: | |
0AD6 ; XXX als Primitive! | |
0AD6 ; slow HL ... | |
0AD6 BD 02 10 JSR DOLST | |
0AD9 03 1F 09 D5 02 87 FDB DUPP,CELLP,AT | |
0ADF 03 2E 02 87 02 6F FDB SWAP,AT,EXIT | |
0AE5 ; | |
0AE5 ; COUNT ( b -- b +n ) | |
0AE5 ; Return count byte of a string and add 1 to byte address. | |
0AE5 ; | |
0AE5 0A EF 0A D3 FDB COUNT,L1040 | |
0AE9 05 43 4F 55 4E 54 L1050: FCB 5,"COUNT" | |
0AEF BD 02 10 COUNT: JSR DOLST | |
0AF2 03 1F 06 94 FDB DUPP,PLUS1 | |
0AF6 03 2E 02 A3 02 6F FDB SWAP,CAT,EXIT | |
0AFC ; | |
0AFC ; HERE ( -- a ) | |
0AFC ; Return the top of the code dictionary. | |
0AFC ; | |
0AFC 0B 05 0A E9 FDB HERE,L1050 | |
0B00 04 48 45 52 45 L1060: FCB 4,"HERE" | |
0B05 BD 02 10 HERE: JSR DOLST | |
0B08 05 91 02 87 02 6F FDB CP,AT,EXIT | |
0B0E ; | |
0B0E ; PAD ( -- a ) | |
0B0E ; Return the address of the text buffer above the code dictionary. | |
0B0E ; | |
0B0E 0B 16 0B 00 FDB PAD,L1060 | |
0B12 03 50 41 44 L1070: FCB 3,"PAD" | |
0B16 BD 02 10 PAD: JSR DOLST | |
0B19 0B 05 01 ED 00 50 06 CD 02 6F FDB HERE,DOLIT,80,PLUS,EXIT | |
0B23 ; | |
0B23 ; TIB ( -- a ) | |
0B23 ; Return the address of the terminal input buffer. | |
0B23 ; | |
0B23 0B 2B 0B 12 FDB TIB,L1070 | |
0B27 03 54 49 42 L1080: FCB 3,"TIB" | |
0B2B BD 02 10 TIB: JSR DOLST | |
0B2E 05 18 09 D5 02 87 02 6F FDB NTIB,CELLP,AT,EXIT | |
0B36 ; | |
0B36 ; @EXECUTE ( a -- ) | |
0B36 ; Execute vector stored in address a. | |
0B36 ; | |
0B36 0B 43 0B 27 FDB ATEXE,L1080 | |
0B3A 08 40 45 58 45 43 55 54 45 L1090: FCB 8,"@EXECUTE" | |
0B43 BD 02 10 ATEXE: JSR DOLST | |
0B46 02 87 05 E1 FDB AT,QDUP ;?address or zero | |
0B4A 02 3E 0B 50 FDB QBRAN,EXE1 | |
0B4E 02 65 FDB EXECU ;execute if non-zero | |
0B50 02 6F EXE1: FDB EXIT | |
0B52 ; | |
0B52 ; CMOVE ( b1 b2 u -- ) | |
0B52 ; Copy u bytes from b1 to b2. | |
0B52 ; | |
0B52 0B 5C 0B 3A FDB CMOVE,L1090 | |
0B56 05 43 4D 4F 56 45 L1100: FCB 5,"CMOVE" | |
0B5C CMOVE: | |
0B5C 7E 0B 7F JMP CMOVEW | |
0B5F EC E4 LDD ,s ;count | |
0B61 27 18 BEQ CMOVE3 ;zero -> leave | |
0B63 5D TSTB ;count low | |
0B64 27 02 BEQ CMOVE1 | |
0B66 6C E4 INC ,s ;ajust high for to-0 decrementation | |
0B68 CMOVE1: | |
0B68 AE 62 LDX 2,s ;to addr | |
0B6A EF 62 STU 2,s ;save reg on stack | |
0B6C EE 64 LDU 4,s ;from addr | |
0B6E A6 C0 CMOVE2: LDA ,u+ | |
0B70 A7 80 STA ,x+ ;to | |
0B72 5A DECB ;low count | |
0B73 26 F9 BNE CMOVE2 | |
0B75 6A E4 DEC ,s ;high count | |
0B77 26 F5 BNE CMOVE2 | |
0B79 EE 62 LDU 2,s | |
0B7B 32 66 CMOVE3: LEAS 6,s | |
0B7D 37 80 PULU pc | |
0B7F ; | |
0B7F ; alternative, wordwise copy ... | |
0B7F EC E4 CMOVEW: LDD ,s | |
0B81 AE 62 LDX 2,s ; destination | |
0B83 10 AF E4 STY ,s ; save RP | |
0B86 EF 62 STU 2,s ; save IP | |
0B88 10 AE 64 LDY 4,s ; source | |
0B8B 44 LSRA ; divide by 2, count words | |
0B8C 56 RORB ; | |
0B8D 34 01 PSHS cc | |
0B8F 27 01 BEQ CMOVEW1 ; byte decrement correction | |
0B91 4C INCA ; byte decrement high byte correction | |
0B92 83 00 00 CMOVEW1: SUBD #0 | |
0B95 27 0A BEQ CMOVEW3 | |
0B97 EE A1 CMOVEW2: LDU ,y++ | |
0B99 EF 81 STU ,x++ ; destination | |
0B9B 5A DECB ; count low | |
0B9C 26 F9 BNE CMOVEW2 | |
0B9E 4A DECA ; count high (count to 0 corrected) | |
0B9F 26 F6 BNE CMOVEW2 | |
0BA1 35 01 CMOVEW3: PULS CC | |
0BA3 24 04 BCC CMOVEW4 | |
0BA5 A6 A4 LDA ,y | |
0BA7 A7 84 STA ,x | |
0BA9 35 60 CMOVEW4: PULS y,u | |
0BAB 32 62 LEAS 2,s ; drop 3rd parameter | |
0BAD 37 80 PULU pc ; next | |
0BAF ; | |
0BAF ; slow HL ... | |
0BAF ; jsr DOLST | |
0BAF ; FDB TOR | |
0BAF ; FDB BRAN,CMOV2 | |
0BAF ;CMOV1: FDB TOR,DUPP,CAT | |
0BAF ; FDB RAT,CSTOR | |
0BAF ; FDB PLUS1 | |
0BAF ; FDB RFROM,PLUS1 | |
0BAF ;CMOV2: FDB DONXT,CMOV1 | |
0BAF ; FDB DDROP,EXIT | |
0BAF ; | |
0BAF ; | |
0BAF ; FILL ( b u c -- ) | |
0BAF ; Fill u bytes of character c to area beginning at b. | |
0BAF ; | |
0BAF 0B B8 0B 56 FDB FILL,L1100 | |
0BB3 04 46 49 4C 4C L1110: FCB 4,"FILL" | |
0BB8 FILL: | |
0BB8 EC 62 LDD 2,s ;count | |
0BBA 27 12 BEQ NFILL3 ;zero -> leave | |
0BBC 5D TSTB ;count low | |
0BBD 27 02 BEQ NFILL1 | |
0BBF 6C 62 INC 2,s ;ajust high for to-0 decrementation | |
0BC1 NFILL1: | |
0BC1 AE 64 LDX 4,s ;to addr | |
0BC3 A6 61 LDA 1,s ;fill byte, low byte from TOS | |
0BC5 NFILL2: | |
0BC5 A7 80 STA ,x+ ;to | |
0BC7 5A DECB ;low count | |
0BC8 26 FB BNE NFILL2 | |
0BCA 6A 62 DEC 2,s ;high count | |
0BCC 26 F7 BNE NFILL2 | |
0BCE 32 66 NFILL3: LEAS 6,s | |
0BD0 37 80 PULU pc | |
0BD2 ; slow HL ... | |
0BD2 ; jsr DOLST | |
0BD2 ; FDB SWAP,TOR,SWAP | |
0BD2 ; FDB BRAN,FILL2 | |
0BD2 ;FILL1: FDB DDUP,CSTOR,PLUS1 | |
0BD2 ;FILL2: FDB DONXT,FILL1 | |
0BD2 ; FDB DDROP,EXIT | |
0BD2 ; | |
0BD2 ; -TRAILING ( b u -- b u ) | |
0BD2 ; Adjust the count to eliminate trailing white space. | |
0BD2 ; | |
0BD2 0B E0 0B B3 FDB DTRAI,L1110 | |
0BD6 09 2D 54 52 41 49 4C 49 4E 47 L1120: FCB 9,"-TRAILING" | |
0BE0 BD 02 10 DTRAI: JSR DOLST | |
0BE3 02 E9 FDB TOR | |
0BE5 02 55 0B FF FDB BRAN,DTRA2 | |
0BE9 0A 1F 03 41 02 DC 06 CD 02 A3 07 83 DTRA1: FDB BLANK,OVER,RAT,PLUS,CAT,LESS | |
0BF5 02 3E 0B FF FDB QBRAN,DTRA2 | |
0BF9 02 C9 06 94 02 6F FDB RFROM,PLUS1,EXIT | |
0BFF 02 1F 0B E9 DTRA2: FDB DONXT,DTRA1 | |
0C03 03 F9 02 6F FDB ZERO,EXIT | |
0C07 ; | |
0C07 ; PACK$ ( b u a -- a ) | |
0C07 ; Build a counted string with u characters from b. Null fill. | |
0C07 ; | |
0C07 0C 11 0B D6 FDB PACKS,L1120 | |
0C0B 05 50 41 43 4B 24 L1130: FCB 5,"PACK$" | |
0C11 BD 02 10 PACKS: JSR DOLST | |
0C14 03 1F 02 E9 FDB DUPP,TOR ;strings only on cell boundary | |
0C18 06 1F 02 94 FDB DDUP,CSTOR | |
0C1C 06 94 FDB PLUS1 ;count mod cell | |
0C1E 06 1F 06 CD FDB DDUP,PLUS | |
0C22 03 F9 03 2E 02 94 FDB ZERO,SWAP,CSTOR ;null fill cell | |
0C28 03 2E 0B 5C 02 C9 02 6F FDB SWAP,CMOVE,RFROM,EXIT ;move string | |
0C30 ; | |
0C30 ; Numeric output, single precision | |
0C30 ; | |
0C30 ; DIGIT ( u -- c ) | |
0C30 ; Convert digit u to a character. | |
0C30 ; | |
0C30 0C 3A 0C 0B FDB DIGIT,L1130 | |
0C34 05 44 49 47 49 54 L1140: FCB 5,"DIGIT" | |
0C3A BD 02 10 DIGIT: JSR DOLST | |
0C3D 01 FE FDB DOCLIT | |
0C3F 09 FCB 9 | |
0C40 03 41 07 83 FDB OVER,LESS | |
0C44 01 FE FDB DOCLIT | |
0C46 07 FCB 7 | |
0C47 03 74 06 CD FDB ANDD,PLUS | |
0C4B 01 ED 06 CD 02 6F FDB DOLIT,'0',PLUS,EXIT | |
0C51 ; | |
0C51 ; EXTRACT ( n base -- n c ) | |
0C51 ; Extract the least significant digit from n. | |
0C51 ; | |
0C51 0C 5D 0C 34 FDB EXTRC,L1140 | |
0C55 07 45 58 54 52 41 43 54 L1150: FCB 7,"EXTRACT" | |
0C5D BD 02 10 EXTRC: JSR DOLST | |
0C60 03 F9 03 2E 08 31 FDB ZERO,SWAP,UMMOD | |
0C66 03 2E 0C 3A 02 6F FDB SWAP,DIGIT,EXIT | |
0C6C ; | |
0C6C ; <# ( -- ) | |
0C6C ; Initiate the numeric output process. | |
0C6C ; | |
0C6C 0C 73 0C 55 FDB BDIGS,L1150 | |
0C70 02 3C 23 L1160: FCB 2,"<#" | |
0C73 BD 02 10 BDIGS: JSR DOLST | |
0C76 0B 16 05 52 02 79 02 6F FDB PAD,HLD,STORE,EXIT | |
0C7E ; | |
0C7E ; HOLD ( c -- ) | |
0C7E ; Insert a character into the numeric output string. | |
0C7E ; | |
0C7E ; | |
0C7E 0C 87 0C 70 FDB HOLD,L1160 | |
0C82 04 48 4F 4C 44 L1170: FCB 4,"HOLD" | |
0C87 BD 02 10 HOLD: JSR DOLST | |
0C8A 05 52 02 87 06 A4 FDB HLD,AT,MINUS1 | |
0C90 03 1F 05 52 02 79 02 94 02 6F FDB DUPP,HLD,STORE,CSTOR,EXIT | |
0C9A ; | |
0C9A ; # ( u -- u ) | |
0C9A ; Extract one digit from u and append the digit to output string. | |
0C9A ; | |
0C9A 0C A0 0C 82 FDB DIG,L1170 | |
0C9E 01 23 L1180: FCB 1,"#" | |
0CA0 BD 02 10 DIG: JSR DOLST | |
0CA3 04 E2 02 87 0C 5D 0C 87 02 6F FDB BASE,AT,EXTRC,HOLD,EXIT | |
0CAD ; | |
0CAD ; #S ( u -- 0 ) | |
0CAD ; Convert u until all digits are added to the output string. | |
0CAD ; | |
0CAD 0C B4 0C 9E FDB DIGS,L1180 | |
0CB1 02 23 53 L1190: FCB 2,"#S" | |
0CB4 BD 02 10 DIGS: JSR DOLST | |
0CB7 0C A0 03 1F DIGS1: FDB DIG,DUPP | |
0CBB 02 3E 0C C3 FDB QBRAN,DIGS2 | |
0CBF 02 55 0C B7 FDB BRAN,DIGS1 | |
0CC3 02 6F DIGS2: FDB EXIT | |
0CC5 ; | |
0CC5 ; SIGN ( n -- ) | |
0CC5 ; Add a minus sign to the numeric output string. | |
0CC5 ; | |
0CC5 0C CE 0C B1 FDB SIGN,L1190 | |
0CC9 04 53 49 47 4E L1200: FCB 4,"SIGN" | |
0CCE BD 02 10 SIGN: JSR DOLST | |
0CD1 03 4E FDB ZLESS | |
0CD3 02 3E 0C DB FDB QBRAN,SIGN1 | |
0CD7 01 ED 0C 87 FDB DOLIT,'-',HOLD | |
0CDB 02 6F SIGN1: FDB EXIT | |
0CDD ; | |
0CDD ; #> ( w -- b u ) | |
0CDD ; Prepare the output string to be TYPE'd. | |
0CDD ; | |
0CDD 0C E4 0C C9 FDB EDIGS,L1200 | |
0CE1 02 23 3E L1210: FCB 2,"#>" | |
0CE4 BD 02 10 EDIGS: JSR DOLST | |
0CE7 03 13 05 52 02 87 FDB DROP,HLD,AT | |
0CED 0B 16 03 41 07 2F 02 6F FDB PAD,OVER,SUBB,EXIT | |
0CF5 ; | |
0CF5 ; str ( w -- b u ) | |
0CF5 ; Convert a signed integer to a numeric string. | |
0CF5 ; | |
0CF5 0C FD 0C E1 FDB STR,L1210 | |
0CF9 03 73 74 72 L1220: FCB 3,"str" | |
0CFD BD 02 10 STR: JSR DOLST | |
0D00 03 1F 02 E9 07 3F FDB DUPP,TOR,ABSS | |
0D06 0C 73 0C B4 02 C9 FDB BDIGS,DIGS,RFROM | |
0D0C 0C CE 0C E4 02 6F FDB SIGN,EDIGS,EXIT | |
0D12 ; | |
0D12 ; HEX ( -- ) | |
0D12 ; Use radix 16 as base for numeric conversions. | |
0D12 ; | |
0D12 0D 1A 0C F9 FDB HEX,L1220 | |
0D16 03 48 45 58 L1230: FCB 3,"HEX" | |
0D1A BD 02 10 HEX: JSR DOLST | |
0D1D 01 FE FDB DOCLIT | |
0D1F 10 FCB 16 | |
0D20 04 E2 02 79 02 6F FDB BASE,STORE,EXIT | |
0D26 ; | |
0D26 ; DECIMAL ( -- ) | |
0D26 ; Use radix 10 as base for numeric conversions. | |
0D26 ; | |
0D26 0D 32 0D 16 FDB DECIM,L1230 | |
0D2A 07 44 45 43 49 4D 41 4C L1240: FCB 7,"DECIMAL" | |
0D32 BD 02 10 DECIM: JSR DOLST | |
0D35 01 FE FDB DOCLIT | |
0D37 0A FCB 10 | |
0D38 04 E2 02 79 02 6F FDB BASE,STORE,EXIT | |
0D3E ; | |
0D3E ; Numeric input, single precision | |
0D3E ; | |
0D3E ; DIGIT? ( c base -- u t ) | |
0D3E ; Convert a character to its numeric value. A flag indicates success. | |
0D3E ; | |
0D3E 0D 49 0D 2A FDB DIGTQ,L1240 | |
0D42 06 44 49 47 49 54 3F L1250: FCB 6,"DIGIT?" | |
0D49 BD 02 10 DIGTQ: JSR DOLST | |
0D4C 02 E9 01 ED 07 2F FDB TOR,DOLIT,'0',SUBB | |
0D52 01 FE FDB DOCLIT | |
0D54 09 FCB 9 | |
0D55 03 41 07 83 FDB OVER,LESS | |
0D59 02 3E 0D 6C FDB QBRAN,DGTQ1 | |
0D5D 01 FE FDB DOCLIT | |
0D5F 07 FCB 7 | |
0D60 07 2F FDB SUBB | |
0D62 03 1F 01 ED 00 0A 07 83 03 85 FDB DUPP,DOLIT,10,LESS,ORR | |
0D6C 03 1F 02 C9 07 6C 02 6F DGTQ1: FDB DUPP,RFROM,ULESS,EXIT | |
0D74 ; | |
0D74 ; NUMBER? ( a -- n T | a F ) | |
0D74 ; Convert a number string to integer. Push a flag on tos. | |
0D74 ; | |
0D74 0D 80 0D 42 FDB NUMBQ,L1250 | |
0D78 07 4E 55 4D 42 45 52 3F L1260: FCB 7,"NUMBER?" | |
0D80 BD 02 10 NUMBQ: JSR DOLST | |
0D83 04 E2 02 87 02 E9 03 F9 03 41 0A EF FDB BASE,AT,TOR,ZERO,OVER,COUNT | |
0D8F 03 41 02 A3 01 ED 07 54 FDB OVER,CAT,DOLIT,'$',EQUAL | |
0D97 02 3E 0D A5 FDB QBRAN,NUMQ1 | |
0D9B 0D 1A 03 2E 06 94 FDB HEX,SWAP,PLUS1 | |
0DA1 03 2E 06 A4 FDB SWAP,MINUS1 | |
0DA5 03 41 02 A3 01 ED 07 54 02 E9 NUMQ1: FDB OVER,CAT,DOLIT,'-',EQUAL,TOR | |
0DAF 03 2E 02 DC 07 2F 03 2E 02 DC 06 CD 05 E1 FDB SWAP,RAT,SUBB,SWAP,RAT,PLUS,QDUP | |
0DBD 02 3E 0E 05 FDB QBRAN,NUMQ6 | |
0DC1 06 A4 02 E9 FDB MINUS1,TOR | |
0DC5 03 1F 02 E9 02 A3 04 E2 02 87 0D 49 NUMQ2: FDB DUPP,TOR,CAT,BASE,AT,DIGTQ | |
0DD1 02 3E 0D F9 FDB QBRAN,NUMQ4 | |
0DD5 03 2E 04 E2 02 87 09 75 06 CD 02 C9 FDB SWAP,BASE,AT,STAR,PLUS,RFROM | |
0DE1 06 94 FDB PLUS1 | |
0DE3 02 1F 0D C5 FDB DONXT,NUMQ2 | |
0DE7 02 DC 03 2E 03 13 FDB RAT,SWAP,DROP | |
0DED 02 3E 0D F3 FDB QBRAN,NUMQ3 | |
0DF1 06 F6 FDB NEGAT | |
0DF3 03 2E NUMQ3: FDB SWAP | |
0DF5 02 55 0E 03 FDB BRAN,NUMQ5 | |
0DF9 02 C9 02 C9 06 0D 06 0D 03 F9 NUMQ4: FDB RFROM,RFROM,DDROP,DDROP,ZERO | |
0E03 03 1F NUMQ5: FDB DUPP | |
0E05 02 C9 06 0D NUMQ6: FDB RFROM,DDROP | |
0E09 02 C9 04 E2 02 79 02 6F FDB RFROM,BASE,STORE,EXIT | |
0E11 ; | |
0E11 ; Basic I/O | |
0E11 ; | |
0E11 ; ?KEY ( -- c T | F ) | |
0E11 ; Return input character and true, or a false if no input. | |
0E11 ; | |
0E11 ; | |
0E11 0E 1A 0D 78 FDB QKEY,L1260 | |
0E15 04 3F 4B 45 59 L1270: FCB 4,"?KEY" | |
0E1A BD 02 10 QKEY: JSR DOLST | |
0E1D 04 86 0B 43 02 6F FDB TQKEY,ATEXE,EXIT | |
0E23 ; | |
0E23 ; KEY ( -- c ) | |
0E23 ; Wait for and return an input character. | |
0E23 ; | |
0E23 0E 2B 0E 15 FDB KEY,L1270 | |
0E27 03 4B 45 59 L1280: FCB 3,"KEY" | |
0E2B BD 02 10 KEY: JSR DOLST | |
0E2E 0E 1A KEY1: FDB QKEY | |
0E30 02 3E 0E 2E FDB QBRAN,KEY1 | |
0E34 02 6F FDB EXIT | |
0E36 ; | |
0E36 ; EMIT ( c -- ) | |
0E36 ; Send a character to the output device. | |
0E36 ; | |
0E36 0E 3F 0E 27 FDB EMIT,L1280 | |
0E3A 04 45 4D 49 54 L1290: FCB 4,"EMIT" | |
0E3F BD 02 10 EMIT: JSR DOLST | |
0E42 04 95 0B 43 02 6F FDB TEMIT,ATEXE,EXIT | |
0E48 ; | |
0E48 ; NUF? ( -- t ) | |
0E48 ; Return false if no input, else pause and if CR return true. | |
0E48 ; | |
0E48 0E 51 0E 3A FDB NUFQ,L1290 | |
0E4C 04 4E 55 46 3F L1300: FCB 4,"NUF?" | |
0E51 BD 02 10 NUFQ: JSR DOLST | |
0E54 0E 1A 03 1F FDB QKEY,DUPP | |
0E58 02 3E 0E 65 FDB QBRAN,NUFQ1 | |
0E5C 06 0D 0E 2B 01 FE FDB DDROP,KEY,DOCLIT | |
0E62 0D FCB CRR | |
0E63 07 54 FDB EQUAL | |
0E65 02 6F NUFQ1: FDB EXIT | |
0E67 ; | |
0E67 ; PACE ( -- ) | |
0E67 ; Send a pace character for the file downloading process. | |
0E67 ; | |
0E67 0E 70 0E 4C FDB PACE,L1300 | |
0E6B 04 50 41 43 45 L1310: FCB 4,"PACE" | |
0E70 BD 02 10 PACE: JSR DOLST | |
0E73 01 FE FDB DOCLIT | |
0E75 0B FCB 11 | |
0E76 0E 3F 02 6F FDB EMIT,EXIT | |
0E7A ; | |
0E7A ; SPACE ( -- ) | |
0E7A ; Send the blank character to the output device. | |
0E7A ; | |
0E7A 0E 84 0E 6B FDB SPACE,L1310 | |
0E7E 05 53 50 41 43 45 L1320: FCB 5,"SPACE" | |
0E84 BD 02 10 SPACE: JSR DOLST | |
0E87 0A 1F 0E 3F 02 6F FDB BLANK,EMIT,EXIT | |
0E8D ; | |
0E8D ; SPACES ( +n -- ) | |
0E8D ; Send n spaces to the output device. | |
0E8D ; | |
0E8D 0E 98 0E 7E FDB SPACS,L1320 | |
0E91 06 53 50 41 43 45 53 L1330: FCB 6,"SPACES" | |
0E98 BD 02 10 SPACS: JSR DOLST | |
0E9B 03 F9 07 9C 02 E9 FDB ZERO,MAX,TOR | |
0EA1 02 55 0E A7 FDB BRAN,CHAR2 | |
0EA5 0E 84 CHAR1: FDB SPACE | |
0EA7 02 1F 0E A5 CHAR2: FDB DONXT,CHAR1 | |
0EAB 02 6F FDB EXIT | |
0EAD ; | |
0EAD ; TYPE ( b u -- ) | |
0EAD ; Output u characters from b. | |
0EAD ; | |
0EAD 0E B6 0E 91 FDB TYPES,L1330 | |
0EB1 04 54 59 50 45 L1340: FCB 4,"TYPE" | |
0EB6 BD 02 10 TYPES: JSR DOLST | |
0EB9 02 E9 FDB TOR | |
0EBB 02 55 0E C7 FDB BRAN,TYPE2 | |
0EBF 03 1F 02 A3 0E 3F TYPE1: FDB DUPP,CAT,EMIT | |
0EC5 06 94 FDB PLUS1 | |
0EC7 02 1F 0E BF TYPE2: FDB DONXT,TYPE1 | |
0ECB 03 13 02 6F FDB DROP,EXIT | |
0ECF ; | |
0ECF ; CR ( -- ) | |
0ECF ; Output a carriage return and a line feed. | |
0ECF ; | |
0ECF 0E D6 0E B1 FDB CR,L1340 | |
0ED3 02 43 52 L1350: FCB 2,"CR" | |
0ED6 BD 02 10 CR: JSR DOLST | |
0ED9 01 FE FDB DOCLIT | |
0EDB 0D FCB CRR | |
0EDC 0E 3F FDB EMIT | |
0EDE 01 FE FDB DOCLIT | |
0EE0 0A FCB LF | |
0EE1 0E 3F 02 6F FDB EMIT,EXIT | |
0EE5 ; | |
0EE5 ; do$ ( -- a ) | |
0EE5 ; Return the address of a compiled string. | |
0EE5 ; | |
0EE5 0E ED 0E D3 FDB DOSTR,L1350 | |
0EE9 43 64 6F 24 L1360: FCB COMPO+3,"do$" | |
0EED BD 02 10 DOSTR: JSR DOLST | |
0EF0 02 C9 02 DC 02 C9 0A EF 06 CD FDB RFROM,RAT,RFROM,COUNT,PLUS | |
0EFA 0A 13 02 E9 03 2E 02 E9 02 6F FDB ALGND,TOR,SWAP,TOR,EXIT | |
0F04 ; | |
0F04 ; $"| ( -- a ) | |
0F04 ; Run time routine compiled by $". Return address of a compiled string. | |
0F04 ; | |
0F04 0F 09 0E E9 FDB STRQP,L1360 | |
0F08 43 L1370: FCB COMPO+3,"$",$22,"|" | |
0F09 BD 02 10 STRQP: JSR DOLST | |
0F0C 0E ED 02 6F FDB DOSTR,EXIT ;force a call to do$ | |
0F10 ; | |
0F10 ; ."| ( -- ) | |
0F10 ; Run time routine of ." . Output a compiled string. | |
0F10 ; | |
0F10 0F 15 0F 08 FDB DOTQP,L1370 | |
0F14 43 L1380: FCB COMPO+3,".",$22,"|" | |
0F15 BD 02 10 DOTQP: JSR DOLST | |
0F18 0E ED 0A EF 0E B6 02 6F FDB DOSTR,COUNT,TYPES,EXIT | |
0F20 ; | |
0F20 ; .R ( n +n -- ) | |
0F20 ; Display an integer in a field of n columns, right justified. | |
0F20 ; | |
0F20 0F 27 0F 14 FDB DOTR,L1380 | |
0F24 02 2E 52 L1390: FCB 2,".R" | |
0F27 BD 02 10 DOTR: JSR DOLST | |
0F2A 02 E9 0C FD 02 C9 03 41 07 2F FDB TOR,STR,RFROM,OVER,SUBB | |
0F34 0E 98 0E B6 02 6F FDB SPACS,TYPES,EXIT | |
0F3A ; | |
0F3A ; U.R ( u +n -- ) | |
0F3A ; Display an unsigned integer in n column, right justified. | |
0F3A ; | |
0F3A 0F 42 0F 24 FDB UDOTR,L1390 | |
0F3E 03 55 2E 52 L1400: FCB 3,"U.R" | |
0F42 BD 02 10 UDOTR: JSR DOLST | |
0F45 02 E9 0C 73 0C B4 0C E4 FDB TOR,BDIGS,DIGS,EDIGS | |
0F4D 02 C9 03 41 07 2F FDB RFROM,OVER,SUBB | |
0F53 0E 98 0E B6 02 6F FDB SPACS,TYPES,EXIT | |
0F59 ; | |
0F59 ; U. ( u -- ) | |
0F59 ; Display an unsigned integer in free format. | |
0F59 ; | |
0F59 0F 60 0F 3E FDB UDOT,L1400 | |
0F5D 02 55 2E L1410: FCB 2,"U." | |
0F60 BD 02 10 UDOT: JSR DOLST | |
0F63 0C 73 0C B4 0C E4 FDB BDIGS,DIGS,EDIGS | |
0F69 0E 84 0E B6 02 6F FDB SPACE,TYPES,EXIT | |
0F6F ; | |
0F6F ; . ( w -- ) | |
0F6F ; Display an integer in free format, preceeded by a space. | |
0F6F ; | |
0F6F 0F 75 0F 5D FDB DOT,L1410 | |
0F73 01 2E L1420: FCB 1,"." | |
0F75 BD 02 10 DOT: JSR DOLST | |
0F78 04 E2 02 87 01 FE FDB BASE,AT,DOCLIT | |
0F7E 0A FCB 10 | |
0F7F 03 97 FDB XORR ;?decimal | |
0F81 02 3E 0F 89 FDB QBRAN,DOT1 | |
0F85 0F 60 02 6F FDB UDOT,EXIT ;no, display unsigned | |
0F89 0C FD 0E 84 0E B6 02 6F DOT1: FDB STR,SPACE,TYPES,EXIT | |
0F91 ; | |
0F91 ; ? ( a -- ) | |
0F91 ; Display the contents in a memory cell. | |
0F91 ; | |
0F91 0F 97 0F 73 FDB QUEST,L1420 | |
0F95 01 3F L1430: FCB 1,"?" | |
0F97 BD 02 10 QUEST: JSR DOLST | |
0F9A 02 87 0F 75 02 6F FDB AT,DOT,EXIT | |
0FA0 ; | |
0FA0 ; Parsing | |
0FA0 ; | |
0FA0 ; parse ( b u c -- b u delta ; <string> ) | |
0FA0 ; Scan string delimited by c. Return found string and its offset. | |
0FA0 ; | |
0FA0 0F AA 0F 95 FDB PARS,L1430 | |
0FA4 05 70 61 72 73 65 L1440: FCB 5,"parse" | |
0FAA BD 02 10 PARS: JSR DOLST | |
0FAD 04 EF 02 79 03 41 02 E9 03 1F FDB TEMP,STORE,OVER,TOR,DUPP | |
0FB7 02 3E 10 33 FDB QBRAN,PARS8 | |
0FBB 06 A4 04 EF 02 87 0A 1F 07 54 FDB MINUS1,TEMP,AT,BLANK,EQUAL | |
0FC5 02 3E 0F ED FDB QBRAN,PARS3 | |
0FC9 02 E9 FDB TOR | |
0FCB 0A 1F 03 41 02 A3 PARS1: FDB BLANK,OVER,CAT | |
0FD1 07 2F 03 4E 06 DD FDB SUBB,ZLESS,INVER | |
0FD7 02 3E 0F EB FDB QBRAN,PARS2 | |
0FDB 06 94 FDB PLUS1 | |
0FDD 02 1F 0F CB FDB DONXT,PARS1 | |
0FE1 02 C9 03 13 03 F9 03 1F 02 6F FDB RFROM,DROP,ZERO,DUPP,EXIT | |
0FEB 02 C9 PARS2: FDB RFROM | |
0FED 03 41 03 2E PARS3: FDB OVER,SWAP | |
0FF1 02 E9 FDB TOR | |
0FF3 04 EF 02 87 03 41 02 A3 07 2F PARS4: FDB TEMP,AT,OVER,CAT,SUBB | |
0FFD 04 EF 02 87 0A 1F 07 54 FDB TEMP,AT,BLANK,EQUAL | |
1005 02 3E 10 0B FDB QBRAN,PARS5 | |
1009 03 4E FDB ZLESS | |
100B 02 3E 10 1D PARS5: FDB QBRAN,PARS6 | |
100F 06 94 FDB PLUS1 | |
1011 02 1F 0F F3 FDB DONXT,PARS4 | |
1015 03 1F 02 E9 FDB DUPP,TOR | |
1019 02 55 10 27 FDB BRAN,PARS7 | |
101D 02 C9 03 13 03 1F PARS6: FDB RFROM,DROP,DUPP | |
1023 06 94 02 E9 FDB PLUS1,TOR | |
1027 03 41 07 2F PARS7: FDB OVER,SUBB | |
102B 02 C9 02 C9 07 2F 02 6F FDB RFROM,RFROM,SUBB,EXIT | |
1033 03 41 02 C9 07 2F 02 6F PARS8: FDB OVER,RFROM,SUBB,EXIT | |
103B ; | |
103B ; PARSE ( c -- b u ; <string> ) | |
103B ; Scan input stream and return counted string delimited by c. | |
103B ; | |
103B 10 45 0F A4 FDB PARSE,L1440 | |
103F 05 50 41 52 53 45 L1450: FCB 5,"PARSE" | |
1045 BD 02 10 PARSE: JSR DOLST | |
1048 02 E9 0B 2B 05 0A 02 87 06 CD FDB TOR,TIB,INN,AT,PLUS ;current input buffer pointer | |
1052 05 18 02 87 05 0A 02 87 07 2F FDB NTIB,AT,INN,AT,SUBB ;remaining count | |
105C 02 C9 0F AA 05 0A 0A AF 02 6F FDB RFROM,PARS,INN,PSTOR,EXIT | |
1066 ; | |
1066 ; .( ( -- ) | |
1066 ; Output following string up to next ) . | |
1066 ; | |
1066 10 6D 10 3F FDB DOTPR,L1450 | |
106A 82 2E 28 L1460: FCB IMEDD+2,".(" | |
106D BD 02 10 DOTPR: JSR DOLST | |
1070 01 ED 10 45 0E B6 02 6F FDB DOLIT,')',PARSE,TYPES,EXIT | |
1078 ; | |
1078 ; ( ( -- ) | |
1078 ; Ignore following string up to next ) . A comment. | |
1078 ; | |
1078 10 7E 10 6A FDB PAREN,L1460 | |
107C 81 28 L1470: FCB IMEDD+1,"(" | |
107E BD 02 10 PAREN: JSR DOLST | |
1081 01 ED 10 45 06 0D 02 6F FDB DOLIT,')',PARSE,DDROP,EXIT | |
1089 ; | |
1089 ; \ ( -- ) | |
1089 ; Ignore following text till the end of line. | |
1089 ; | |
1089 10 8F 10 7C FDB BKSLA,L1470 | |
108D 81 5C L1480: FCB IMEDD+1,92 | |
108F BD 02 10 BKSLA: JSR DOLST | |
1092 05 18 02 87 05 0A 02 79 02 6F FDB NTIB,AT,INN,STORE,EXIT | |
109C ; | |
109C ; CHAR ( -- c ) | |
109C ; Parse next word and return its first character. | |
109C ; | |
109C 10 A5 10 8D FDB CHAR,L1480 | |
10A0 04 43 48 41 52 L1490: FCB 4,"CHAR" | |
10A5 BD 02 10 CHAR: JSR DOLST | |
10A8 0A 1F 10 45 03 13 02 A3 02 6F FDB BLANK,PARSE,DROP,CAT,EXIT | |
10B2 ; | |
10B2 ; TOKEN ( -- a ; <string> ) | |
10B2 ; Parse a word from input stream and copy it to name dictionary. | |
10B2 ; | |
10B2 10 BC 10 A0 FDB TOKEN,L1490 | |
10B6 05 54 4F 4B 45 4E L1500: FCB 5,"TOKEN" | |
10BC BD 02 10 TOKEN: JSR DOLST | |
10BF 0A 1F 10 45 01 FE FDB BLANK,PARSE,DOCLIT | |
10C5 1F FCB 31 | |
10C6 07 B5 FDB MIN | |
10C8 05 9D 02 87 03 41 07 2F 09 E9 FDB NP,AT,OVER,SUBB,CELLM | |
10D2 0C 11 02 6F FDB PACKS,EXIT | |
10D6 ; | |
10D6 ; WORD ( c -- a ; <string> ) | |
10D6 ; Parse a word from input stream and copy it to code dictionary. | |
10D6 ; | |
10D6 10 DF 10 B6 FDB WORD,L1500 | |
10DA 04 57 4F 52 44 L1510: FCB 4,"WORD" | |
10DF BD 02 10 WORD: JSR DOLST | |
10E2 10 45 0B 05 0C 11 02 6F FDB PARSE,HERE,PACKS,EXIT | |
10EA ; | |
10EA ; Dictionary search | |
10EA ; | |
10EA ; NAME> ( na -- ca ) | |
10EA ; Return a code address given a name address. | |
10EA ; | |
10EA 10 F4 10 DA FDB NAMET,L1510 | |
10EE 05 4E 41 4D 45 3E L1520: FCB 5,"NAME>" | |
10F4 BD 02 10 NAMET: JSR DOLST | |
10F7 09 E9 09 E9 02 87 02 6F FDB CELLM,CELLM,AT,EXIT | |
10FF ; | |
10FF ; SAME? ( a a u -- a a f \ -0+ ) | |
10FF ; Compare u bytes in two strings. Return 0 if identical. | |
10FF ; | |
10FF 11 09 10 EE FDB SAMEQ,L1520 | |
1103 05 53 41 4D 45 3F L1530: FCB 5,"SAME?" | |
1109 BD 02 10 SAMEQ: JSR DOLST | |
110C 02 E9 FDB TOR | |
110E 02 55 11 30 FDB BRAN,SAME2 | |
1112 03 41 02 DC 06 CD 02 A3 SAME1: FDB OVER,RAT,PLUS,CAT | |
111A 03 41 02 DC 06 CD 02 A3 FDB OVER,RAT,PLUS,CAT | |
1122 07 2F 05 E1 FDB SUBB,QDUP | |
1126 02 3E 11 30 FDB QBRAN,SAME2 | |
112A 02 C9 03 13 02 6F FDB RFROM,DROP,EXIT | |
1130 02 1F 11 12 SAME2: FDB DONXT,SAME1 | |
1134 01 ED 00 00 02 6F FDB DOLIT,0,EXIT | |
113A ; | |
113A ; find ( a va -- ca na | a F ) | |
113A ; Search a vocabulary for a string. Return ca and na if succeeded. | |
113A ; | |
113A 11 43 11 03 FDB FIND,L1530 | |
113E 04 66 69 6E 64 L1540: FCB 4,"find" | |
1143 BD 02 10 FIND: JSR DOLST | |
1146 03 2E 03 1F 02 A3 06 A4 FDB SWAP,DUPP,CAT,MINUS1 | |
114E 04 EF 02 79 FDB TEMP,STORE | |
1152 03 1F 02 87 02 E9 09 D5 03 2E FDB DUPP,AT,TOR,CELLP,SWAP | |
115C 02 87 03 1F FIND1: FDB AT,DUPP | |
1160 02 3E 11 8A FDB QBRAN,FIND6 | |
1164 03 1F 02 87 01 ED 1F 7F 03 74 02 DC 03 97 FDB DUPP,AT,DOLIT,MASKK,ANDD,RAT,XORR | |
1172 02 3E 11 7E FDB QBRAN,FIND2 | |
1176 09 D5 04 1B FDB CELLP,MONE | |
117A 02 55 11 86 FDB BRAN,FIND3 | |
117E 09 D5 04 EF 02 87 11 09 FIND2: FDB CELLP,TEMP,AT,SAMEQ | |
1186 02 55 11 96 FIND3: FDB BRAN,FIND4 | |
118A 02 C9 03 13 FIND6: FDB RFROM,DROP | |
118E 03 2E 09 E9 03 2E 02 6F FDB SWAP,CELLM,SWAP,EXIT | |
1196 02 3E 11 A2 FIND4: FDB QBRAN,FIND5 | |
119A 09 E9 09 E9 FDB CELLM,CELLM | |
119E 02 55 11 5C FDB BRAN,FIND1 | |
11A2 02 C9 03 13 03 2E 03 13 FIND5: FDB RFROM,DROP,SWAP,DROP | |
11AA 09 E9 FDB CELLM | |
11AC 03 1F 10 F4 03 2E 02 6F FDB DUPP,NAMET,SWAP,EXIT | |
11B4 ; | |
11B4 ; NAME? ( a -- ca na | a F ) | |
11B4 ; Search all context vocabularies for a string. | |
11B4 ; | |
11B4 11 BE 11 3E FDB NAMEQ,L1540 | |
11B8 05 4E 41 4D 45 3F L1550: FCB 5,"NAME?" | |
11BE BD 02 10 NAMEQ: JSR DOLST | |
11C1 05 74 03 1F 0A D6 03 97 FDB CNTXT,DUPP,DAT,XORR | |
11C9 02 3E 11 CF FDB QBRAN,NAMQ1 | |
11CD 09 E9 FDB CELLM | |
11CF 02 E9 NAMQ1: FDB TOR | |
11D1 02 C9 09 D5 03 1F 02 E9 NAMQ2: FDB RFROM,CELLP,DUPP,TOR | |
11D9 02 87 05 E1 FDB AT,QDUP | |
11DD 02 3E 11 EF FDB QBRAN,NAMQ3 | |
11E1 11 43 05 E1 FDB FIND,QDUP | |
11E5 02 3E 11 D1 FDB QBRAN,NAMQ2 | |
11E9 02 C9 03 13 02 6F FDB RFROM,DROP,EXIT | |
11EF 02 C9 03 13 NAMQ3: FDB RFROM,DROP | |
11F3 03 F9 02 6F FDB ZERO,EXIT | |
11F7 ; | |
11F7 ; Terminal response | |
11F7 ; | |
11F7 ; ^H ( bot eot cur -- bot eot cur ) | |
11F7 ; Backup the cursor by one character. | |
11F7 ; | |
11F7 11 FE 11 B8 FDB BKSP,L1550 | |
11FB 02 5E 48 L1560: FCB 2,"^H" | |
11FE BD 02 10 BKSP: JSR DOLST | |
1201 02 E9 03 41 02 C9 03 2E 03 41 03 97 FDB TOR,OVER,RFROM,SWAP,OVER,XORR | |
120D 02 3E 12 29 FDB QBRAN,BACK1 | |
1211 01 ED 00 08 04 C3 0B 43 06 A4 FDB DOLIT,BKSPP,TECHO,ATEXE,MINUS1 | |
121B 0A 1F 04 C3 0B 43 FDB BLANK,TECHO,ATEXE | |
1221 01 ED 00 08 04 C3 0B 43 FDB DOLIT,BKSPP,TECHO,ATEXE | |
1229 02 6F BACK1: FDB EXIT | |
122B ; | |
122B ; TAP ( bot eot cur c -- bot eot cur ) | |
122B ; Accept and echo the key stroke and bump the cursor. | |
122B ; | |
122B 12 33 11 FB FDB TAP,L1560 | |
122F 03 54 41 50 L1570: FCB 3,"TAP" | |
1233 BD 02 10 TAP: JSR DOLST | |
1236 03 1F 04 C3 0B 43 FDB DUPP,TECHO,ATEXE | |
123C 03 41 02 94 06 94 02 6F FDB OVER,CSTOR,PLUS1,EXIT | |
1244 ; | |
1244 ; kTAP ( bot eot cur c -- bot eot cur ) | |
1244 ; Process a key stroke, CR or backspace. | |
1244 ; | |
1244 12 4D 12 2F FDB KTAP,L1570 | |
1248 04 6B 54 41 50 L1580: FCB 4,"kTAP" | |
124D BD 02 10 KTAP: JSR DOLST | |
1250 03 1F 01 FE FDB DUPP,DOCLIT | |
1254 0D FCB CRR | |
1255 03 97 FDB XORR | |
1257 02 3E 12 7B FDB QBRAN,KTAP2 | |
125B 03 1F 01 ED 00 08 03 97 FDB DUPP,DOLIT,BKSPP,XORR | |
1263 03 2E 01 ED 00 7F 03 97 03 74 FDB SWAP,DOLIT,BKSPP2,XORR,ANDD | |
126D 02 3E 12 77 FDB QBRAN,KTAP1 | |
1271 0A 1F 12 33 02 6F FDB BLANK,TAP,EXIT | |
1277 11 FE 02 6F KTAP1: FDB BKSP,EXIT | |
127B 03 13 03 2E 03 13 03 1F 02 6F KTAP2: FDB DROP,SWAP,DROP,DUPP,EXIT | |
1285 ; | |
1285 ; accept ( b u -- b u ) | |
1285 ; Accept characters to input buffer. Return with actual count. | |
1285 ; | |
1285 12 90 12 48 FDB ACCEP,L1580 | |
1289 06 41 43 43 45 50 54 L1590: FCB 6,"ACCEPT" | |
1290 BD 02 10 ACCEP: JSR DOLST | |
1293 03 41 06 CD 03 41 FDB OVER,PLUS,OVER | |
1299 06 1F 03 97 ACCP1: FDB DDUP,XORR | |
129D 02 3E 12 BF FDB QBRAN,ACCP4 | |
12A1 0E 2B 03 1F FDB KEY,DUPP | |
12A5 ; FDB BLANK,SUBB,DOLIT,95,ULESS | |
12A5 0A 1F 01 ED 00 7F 07 D3 FDB BLANK,DOLIT,127,WITHI | |
12AD 02 3E 12 B7 FDB QBRAN,ACCP2 | |
12B1 12 33 FDB TAP | |
12B3 02 55 12 BB FDB BRAN,ACCP3 | |
12B7 04 B4 0B 43 ACCP2: FDB TTAP,ATEXE | |
12BB 02 55 12 99 ACCP3: FDB BRAN,ACCP1 | |
12BF 03 13 03 41 07 2F 02 6F ACCP4: FDB DROP,OVER,SUBB,EXIT | |
12C7 ; | |
12C7 ; EXPECT ( b u -- ) | |
12C7 ; Accept input stream and store count in SPAN. | |
12C7 ; | |
12C7 12 D2 12 89 FDB EXPEC,L1590 | |
12CB 06 45 58 50 45 43 54 L1600: FCB 6,"EXPECT" | |
12D2 BD 02 10 EXPEC: JSR DOLST | |
12D5 04 A6 0B 43 04 FD 02 79 03 13 02 6F FDB TEXPE,ATEXE,SPAN,STORE,DROP,EXIT | |
12E1 ; | |
12E1 ; QUERY ( -- ) | |
12E1 ; Accept input stream to terminal input buffer. | |
12E1 ; | |
12E1 12 EB 12 CB FDB QUERY,L1600 | |
12E5 05 51 55 45 52 59 L1610: FCB 5,"QUERY" | |
12EB BD 02 10 QUERY: JSR DOLST | |
12EE 0B 2B 01 FE FDB TIB,DOCLIT | |
12F2 50 FCB 80 | |
12F3 04 A6 0B 43 05 18 02 79 FDB TEXPE,ATEXE,NTIB,STORE | |
12FB 03 13 03 F9 05 0A 02 79 02 6F FDB DROP,ZERO,INN,STORE,EXIT | |
1305 ; | |
1305 ; Error handling | |
1305 ; | |
1305 ; CATCH ( ca -- 0 | err# ) | |
1305 ; Execute word at ca and set up an error frame for it. | |
1305 ; | |
1305 13 0F 12 E5 FDB CATCH,L1610 | |
1309 05 43 41 54 43 48 L1620: FCB 5,"CATCH" | |
130F BD 02 10 CATCH: JSR DOLST | |
1312 02 F7 02 E9 05 63 02 87 02 E9 FDB SPAT,TOR,HANDL,AT,TOR ;save error frame | |
131C 02 B2 05 63 02 79 02 65 FDB RPAT,HANDL,STORE,EXECU ;execute | |
1324 02 C9 05 63 02 79 FDB RFROM,HANDL,STORE ;restore error frame | |
132A 02 C9 03 13 03 F9 02 6F FDB RFROM,DROP,ZERO,EXIT ;no error | |
1332 ; | |
1332 ; THROW ( err# -- err# ) | |
1332 ; Reset system to current local error frame an update error flag. | |
1332 ; | |
1332 13 3C 13 09 FDB THROW,L1620 | |
1336 05 54 48 52 4F 57 L1630: FCB 5,"THROW" | |
133C BD 02 10 THROW: JSR DOLST | |
133F 05 63 02 87 02 BE FDB HANDL,AT,RPSTO ;restore return stack | |
1345 02 C9 05 63 02 79 FDB RFROM,HANDL,STORE ;restore handler frame | |
134B 02 C9 03 2E 02 E9 03 05 FDB RFROM,SWAP,TOR,SPSTO ;restore data stack | |
1353 03 13 02 C9 02 6F FDB DROP,RFROM,EXIT | |
1359 ; | |
1359 ; NULL$ ( -- a ) | |
1359 ; Return address of a null string with zero count. | |
1359 ; | |
1359 13 63 13 36 FDB NULLS,L1630 | |
135D 05 4E 55 4C 4C 24 L1640: FCB 5,"NULL$" | |
1363 NULLS: | |
1363 ; jsr DOLST | |
1363 ; FDB DOVAR ;emulate CREATE | |
1363 BD 04 31 JSR FDOVAR | |
1366 00 00 FDB 0 | |
1368 63 6F 79 6F 74 65 FCB 99,111,121,111,116,101 | |
136E ; | |
136E ; ABORT ( -- ) | |
136E ; Reset data stack and jump to QUIT. | |
136E ; | |
136E 13 78 13 5D FDB ABORT,L1640 | |
1372 05 41 42 4F 52 54 L1650: FCB 5,"ABORT" | |
1378 BD 02 10 ABORT: JSR DOLST | |
137B 13 63 13 3C FDB NULLS,THROW | |
137F ; | |
137F ; abort" ( f -- ) | |
137F ; Run time routine of ABORT" . Abort with a message. | |
137F ; | |
137F 13 84 13 72 FDB ABORQ,L1650 | |
1383 46 L1660: FCB COMPO+6,"abort",'"' | |
1384 BD 02 10 ABORQ: JSR DOLST | |
1387 02 3E 13 8F FDB QBRAN,ABOR1 ;text flag | |
138B 0E ED 13 3C FDB DOSTR,THROW ;pass error string | |
138F 0E ED 03 13 02 6F ABOR1: FDB DOSTR,DROP,EXIT | |
1395 ; | |
1395 ; The text interpreter | |
1395 ; | |
1395 ; $INTERPRET ( a -- ) | |
1395 ; Interpret a word. If failed, try to convert it to an integer. | |
1395 ; | |
1395 13 A4 13 83 FDB INTER,L1660 | |
1399 0A 24 49 4E 54 45 52 50 52 45 54 L1670: FCB 10,"$INTERPRET" | |
13A4 BD 02 10 INTER: JSR DOLST | |
13A7 11 BE 05 E1 FDB NAMEQ,QDUP ;?defined | |
13AB 02 3E 13 CB FDB QBRAN,INTE1 | |
13AF 02 87 01 ED 40 00 03 74 FDB AT,DOLIT,COMPO*256,ANDD ;?compile only lexicon bits | |
13B7 13 84 FDB ABORQ | |
13B9 0D 20 63 6F 6D 70 69 6C 65 20 6F 6E 6C 79 FCB 13," compile only" | |
13C7 02 65 02 6F FDB EXECU,EXIT ;execute defined word | |
13CB 05 45 0B 43 INTE1: FDB TNUMB,ATEXE | |
13CF 02 3E 13 D5 FDB QBRAN,INTE2 | |
13D3 02 6F FDB EXIT | |
13D5 13 3C INTE2: FDB THROW | |
13D7 ; | |
13D7 ; [ ( -- ) | |
13D7 ; Start the text interpreter. | |
13D7 ; | |
13D7 13 DD 13 99 FDB LBRAC,L1670 | |
13DB 81 5B L1680: FCB IMEDD+1,"[" | |
13DD BD 02 10 LBRAC: JSR DOLST | |
13E0 01 ED 13 A4 05 34 02 79 02 6F FDB DOLIT,INTER,TEVAL,STORE,EXIT | |
13EA ; | |
13EA ; .OK ( -- ) | |
13EA ; Display 'ok' only while interpreting. | |
13EA ; | |
13EA 13 F2 13 DB FDB DOTOK,L1680 | |
13EE 03 2E 4F 4B L1690: FCB 3,".OK" | |
13F2 BD 02 10 DOTOK: JSR DOLST | |
13F5 01 ED 13 A4 05 34 02 87 07 54 FDB DOLIT,INTER,TEVAL,AT,EQUAL | |
13FF 02 3E 14 09 FDB QBRAN,DOTO1 | |
1403 0F 15 FDB DOTQP | |
1405 03 20 6F 6B FCB 3," ok" | |
1409 0E D6 02 6F DOTO1: FDB CR,EXIT | |
140D ; | |
140D ; ?STACK ( -- ) | |
140D ; Abort if the data stack underflows. | |
140D ; | |
140D 14 18 13 EE FDB QSTAC,L1690 | |
1411 06 3F 53 54 41 43 4B L1700: FCB 6,"?STACK" | |
1418 BD 02 10 QSTAC: JSR DOLST | |
141B 0A 52 03 4E FDB DEPTH,ZLESS ;check only for underflow | |
141F 13 84 FDB ABORQ | |
1421 0A 20 75 6E 64 65 72 66 6C 6F 77 FCB 10," underflow" | |
142C 02 6F FDB EXIT | |
142E ; | |
142E ; EVAL ( -- ) | |
142E ; Interpret the input stream. | |
142E ; | |
142E 14 37 14 11 FDB EVAL,L1700 | |
1432 04 45 56 41 4C L1710: FCB 4,"EVAL" | |
1437 BD 02 10 EVAL: JSR DOLST | |
143A 10 BC 03 1F 02 A3 EVAL1: FDB TOKEN,DUPP,CAT | |
1440 02 3E 14 4E FDB QBRAN,EVAL2 | |
1444 05 34 0B 43 14 18 FDB TEVAL,ATEXE,QSTAC ;evaluate input, check stack | |
144A 02 55 14 3A FDB BRAN,EVAL1 | |
144E 03 13 04 D4 0B 43 02 6F EVAL2: FDB DROP,TPROM,ATEXE,EXIT | |
1456 ; | |
1456 ; Shell | |
1456 ; | |
1456 ; PRESET ( -- ) | |
1456 ; Reset data stack pointer and the terminal input buffer. | |
1456 ; | |
1456 14 61 14 32 FDB PRESE,L1710 | |
145A 06 50 52 45 53 45 54 L1720: FCB 6,"PRESET" | |
1461 BD 02 10 PRESE: JSR DOLST | |
1464 04 6A 02 87 03 05 FDB SZERO,AT,SPSTO | |
146A 01 ED 6E 70 05 18 09 D5 02 79 02 6F FDB DOLIT,TIBB,NTIB,CELLP,STORE,EXIT | |
1476 ; | |
1476 ; xio ( a a a -- ) | |
1476 ; Reset the I/O vectors 'EXPECT, 'TAP, 'ECHO and 'PROMPT. | |
1476 ; | |
1476 14 7E 14 5A FDB XIO,L1720 | |
147A 43 78 69 6F L1730: FCB COMPO+3,"xio" | |
147E BD 02 10 XIO: JSR DOLST | |
1481 01 ED 12 90 04 A6 0A C0 FDB DOLIT,ACCEP,TEXPE,DSTOR | |
1489 04 C3 0A C0 02 6F FDB TECHO,DSTOR,EXIT | |
148F ; | |
148F ; FILE ( -- ) | |
148F ; Select I/O vectors for file download. | |
148F ; | |
148F 14 98 14 7A FDB FILE,L1730 | |
1493 04 46 49 4C 45 L1740: FCB 4,"FILE" | |
1498 BD 02 10 FILE: JSR DOLST | |
149B 01 ED 0E 70 01 ED 03 13 FDB DOLIT,PACE,DOLIT,DROP | |
14A3 01 ED 12 4D 14 7E 02 6F FDB DOLIT,KTAP,XIO,EXIT | |
14AB ; | |
14AB ; HAND ( -- ) | |
14AB ; Select I/O vectors for terminal interface. | |
14AB ; | |
14AB 14 B4 14 93 FDB HAND,L1740 | |
14AF 04 48 41 4E 44 L1750: FCB 4,"HAND" | |
14B4 BD 02 10 HAND: JSR DOLST | |
14B7 01 ED 13 F2 01 ED 0E 3F FDB DOLIT,DOTOK,DOLIT,EMIT | |
14BF 01 ED 12 4D 14 7E 02 6F FDB DOLIT,KTAP,XIO,EXIT | |
14C7 ; | |
14C7 ; I/O ( -- a ) | |
14C7 ; Array to store default I/O vectors. | |
14C7 ; | |
14C7 14 CF 14 AF FDB ISLO,L1750 | |
14CB 03 49 2F 4F L1760: FCB 3,"I/O" | |
14CF ISLO: | |
14CF ; jsr DOLST | |
14CF ; FDB DOVAR ;emulate CREATE | |
14CF BD 04 31 JSR FDOVAR | |
14D2 01 AB 01 CA FDB QRX,TXSTO ;default I/O vectors | |
14D6 ; | |
14D6 ; CONSOLE ( -- ) | |
14D6 ; Initiate terminal interface. | |
14D6 ; | |
14D6 14 E2 14 CB FDB CONSO,L1760 | |
14DA 07 43 4F 4E 53 4F 4C 45 L1770: FCB 7,"CONSOLE" | |
14E2 BD 02 10 CONSO: JSR DOLST | |
14E5 14 CF 0A D6 04 86 0A C0 FDB ISLO,DAT,TQKEY,DSTOR ;restore default I/O device | |
14ED 14 B4 02 6F FDB HAND,EXIT ;keyboard input | |
14F1 ; | |
14F1 ; QUIT ( -- ) | |
14F1 ; Reset return stack pointer and start text interpreter. | |
14F1 ; | |
14F1 14 FA 14 DA FDB QUIT,L1770 | |
14F5 04 51 55 49 54 L1780: FCB 4,"QUIT" | |
14FA BD 02 10 QUIT: JSR DOLST | |
14FD 04 77 02 87 02 BE FDB RZERO,AT,RPSTO ;reset return stack pointer | |
1503 13 DD QUIT1: FDB LBRAC | |
1505 12 EB QUIT2: FDB QUERY | |
1507 01 ED 14 37 13 0F 05 E1 FDB DOLIT,EVAL,CATCH,QDUP ;evaluate input | |
150F 02 3E 15 05 FDB QBRAN,QUIT2 ;continue till error | |
1513 04 D4 02 87 02 E9 FDB TPROM,AT,TOR ;save input device | |
1519 14 E2 13 63 03 41 03 97 FDB CONSO,NULLS,OVER,XORR ;?display error message | |
1521 02 3E 15 31 FDB QBRAN,QUIT3 | |
1525 0E 84 0A EF 0E B6 FDB SPACE,COUNT,TYPES ;error message | |
152B 0F 15 FDB DOTQP | |
152D 03 20 3F 20 FCB 3," ? " ;error prompt | |
1531 02 C9 01 ED 13 F2 03 97 QUIT3: FDB RFROM,DOLIT,DOTOK,XORR | |
1539 02 3E 15 43 FDB QBRAN,QUIT4 | |
153D 01 ED 00 1B 0E 3F FDB DOLIT,ERR,EMIT ;file error, tell host | |
1543 14 61 QUIT4: FDB PRESE | |
1545 02 55 15 03 FDB BRAN,QUIT1 | |
1549 ; | |
1549 ; The compiler | |
1549 ; | |
1549 ; ' ( -- ca ) | |
1549 ; Search context vocabularies for the next word in input stream. | |
1549 ; | |
1549 15 4F 14 F5 FDB TICK,L1780 | |
154D 01 27 L1790: FCB 1,"'" | |
154F BD 02 10 TICK: JSR DOLST | |
1552 10 BC 11 BE FDB TOKEN,NAMEQ ;?defined | |
1556 02 3E 15 5C FDB QBRAN,TICK1 | |
155A 02 6F FDB EXIT ;yes, push code address | |
155C 13 3C TICK1: FDB THROW | |
155E ; | |
155E ; ALLOT ( n -- ) | |
155E ; Allocate n bytes to the code dictionary. | |
155E ; | |
155E 15 68 15 4D FDB ALLOT,L1790 | |
1562 05 41 4C 4C 4F 54 L1800: FCB 5,"ALLOT" | |
1568 BD 02 10 ALLOT: JSR DOLST | |
156B 05 91 0A AF 02 6F FDB CP,PSTOR,EXIT ;adjust code pointer | |
1571 ; | |
1571 ; , ( w -- ) | |
1571 ; Compile an integer into the code dictionary. | |
1571 ; | |
1571 15 77 15 62 FDB COMMA,L1800 | |
1575 01 2C L1810: FCB 1,"," | |
1577 BD 02 10 COMMA: JSR DOLST | |
157A 0B 05 03 1F 09 D5 FDB HERE,DUPP,CELLP ;cell boundary | |
1580 05 91 02 79 02 79 02 6F FDB CP,STORE,STORE,EXIT ;adjust code pointer and compile | |
1588 ; | |
1588 ; [COMPILE] ( -- ; <string> ) | |
1588 ; Compile the next immediate word into code dictionary. | |
1588 ; | |
1588 15 96 15 75 FDB BCOMP,L1810 | |
158C 89 5B 43 4F 4D 50 49 4C 45 5D L1820: FCB IMEDD+9,"[COMPILE]" | |
1596 BD 02 10 BCOMP: JSR DOLST | |
1599 15 4F 15 77 02 6F FDB TICK,COMMA,EXIT | |
159F ; | |
159F ; COMPILE ( -- ) | |
159F ; Compile the next address in colon list to code dictionary. | |
159F ; | |
159F 15 AB 15 8C FDB COMPI,L1820 | |
15A3 47 43 4F 4D 50 49 4C 45 L1830: FCB COMPO+7,"COMPILE" | |
15AB BD 02 10 COMPI: JSR DOLST | |
15AE 02 C9 03 1F 02 87 15 77 FDB RFROM,DUPP,AT,COMMA ;compile address | |
15B6 09 D5 02 E9 02 6F FDB CELLP,TOR,EXIT ;adjust return address | |
15BC ; | |
15BC ; LITERAL ( w -- ) | |
15BC ; Compile tos to code dictionary as an integer literal. | |
15BC ; | |
15BC 15 C8 15 A3 FDB LITER,L1830 | |
15C0 87 4C 49 54 45 52 41 4C L1840: FCB IMEDD+7,"LITERAL" | |
15C8 BD 02 10 LITER: JSR DOLST | |
15CB 15 AB 01 ED 15 77 02 6F FDB COMPI,DOLIT,COMMA,EXIT | |
15D3 ; | |
15D3 ; $," ( -- ) | |
15D3 ; Compile a literal string up to next " . | |
15D3 ; | |
15D3 15 D8 15 C0 FDB STRCQ,L1840 | |
15D7 03 L1850: FCB 3,"$,",'"' | |
15D8 BD 02 10 STRCQ: JSR DOLST | |
15DB 01 ED 10 DF FDB DOLIT,'"',WORD ;move string to code dictionary | |
15DF 0A EF 06 CD 0A 13 FDB COUNT,PLUS,ALGND ;calculate aligned end of string | |
15E5 05 91 02 79 02 6F FDB CP,STORE,EXIT ;adjust the code pointer | |
15EB ; | |
15EB ; RECURSE ( -- ) | |
15EB ; Make the current word available for compilation. | |
15EB ; | |
15EB 15 F7 15 D7 FDB RECUR,L1850 | |
15EF 87 52 45 43 55 52 53 45 L1860: FCB IMEDD+7,"RECURSE" | |
15F7 BD 02 10 RECUR: JSR DOLST | |
15FA 05 AB 02 87 10 F4 15 77 02 6F FDB LAST,AT,NAMET,COMMA,EXIT | |
1604 ; | |
1604 ; Structures | |
1604 ; | |
1604 ; DO ( -- a m ) | |
1604 ; Start a DO-LOOP/+LOOP structure in a colon definition. | |
1604 ; | |
1604 16 0B 15 EF FDB DO,L1860 | |
1608 82 44 4F L1861: FCB IMEDD+2,"DO" | |
160B BD 02 10 DO: JSR DOLST | |
160E 15 AB 16 95 0B 05 FDB COMPI,DODO,HERE | |
1614 04 04 FDB ONE ; marker for DO | |
1616 02 6F FDB EXIT | |
1618 ; | |
1618 ; ?DO ( -- a m ) | |
1618 ; Start a ?DO-LOOP/+LOOP structure in a colon definition. | |
1618 ; | |
1618 16 20 16 08 FDB QDO,L1861 | |
161C 83 3F 44 4F L1862: FCB IMEDD+3,"?DO" | |
1620 BD 02 10 QDO: JSR DOLST | |
1623 15 AB 16 3B 0B 05 FDB COMPI,DOQDO,HERE | |
1629 15 AB 00 00 FDB COMPI,0 ; branch destination placeholder | |
162D 04 0F FDB TWO ; marker for ?DO | |
162F 02 6F FDB EXIT | |
1631 ; | |
1631 ; (?DO) ( w w -- ) | |
1631 ; Runtime part of DO in a DO-LOOP/+LOOP structure. | |
1631 ; | |
1631 16 3B 16 1C FDB DOQDO,L1862 | |
1635 05 28 3F 44 4F 29 L1862A: FCB 5,"(?DO)" | |
163B DOQDO: | |
163B 35 06 PULS d ;start | |
163D 10 A3 E4 CMPD ,s ;start < end -> ok | |
1640 2D 06 BLT DOQDO1 | |
1642 32 62 LEAS 2,s ;drop end | |
1644 EE C4 LDU ,u | |
1646 37 80 PULU pc ;branch past loop | |
1648 DOQDO1: | |
1648 35 10 PULS x ;end | |
164A AF A3 STX ,--y ;end to return stack | |
164C ED A3 STD ,--y ;start to return stack | |
164E 33 42 LEAU 2,u ;skip jump forward | |
1650 37 80 PULU pc | |
1652 ; | |
1652 ; -DO ( -- a m ) | |
1652 ; Start a -DO-LOOP/+LOOP structure in a colon definition. | |
1652 ; | |
1652 16 5A 16 35 FDB MDO,L1862A | |
1656 83 2D 44 4F L1862B: FCB IMEDD+3,"-DO" | |
165A BD 02 10 MDO: JSR DOLST | |
165D 15 AB 16 75 0B 05 FDB COMPI,DOMDO,HERE | |
1663 15 AB 00 00 FDB COMPI,0 ; branch destination placeholder | |
1667 04 0F FDB TWO ; marker for ?DO/-DO | |
1669 02 6F FDB EXIT | |
166B ; | |
166B ; (-DO) ( w w -- ) | |
166B ; Runtime part of -DO in a -DO-LOOP/+LOOP structure. | |
166B ; | |
166B 16 75 16 56 FDB DOMDO,L1862B | |
166F 05 28 2D 44 4F 29 L1862C: FCB 5,"(-DO)" | |
1675 DOMDO: | |
1675 35 06 PULS d ;start | |
1677 10 A3 E4 CMPD ,s ;start > end -> ok | |
167A 2E 06 BGT DOMDO1 | |
167C 32 62 LEAS 2,s ;drop end | |
167E EE C4 LDU ,u | |
1680 37 80 PULU pc ;branch past loop | |
1682 DOMDO1: | |
1682 35 10 PULS x ;end | |
1684 AF A3 STX ,--y ;end to return stack | |
1686 ED A3 STD ,--y ;start to return stack | |
1688 33 42 LEAU 2,u ;skip jump forward | |
168A 37 80 PULU pc | |
168C ; | |
168C ; (DO) ( w w -- ) | |
168C ; Runtime part of DO in a DO-LOOP/+LOOP structure. | |
168C ; | |
168C 16 95 16 6F FDB DODO,L1862C | |
1690 04 28 44 4F 29 L1863: FCB 4,"(DO)" | |
1695 DODO: | |
1695 35 16 PULS d,x ;start first, end second | |
1697 AF A3 STX ,--y ;end to return stack | |
1699 ED A3 STD ,--y ;start to return stack | |
169B 37 80 PULU pc | |
169D ; | |
169D ; (LOOP) ( -- ) | |
169D ; Runtime part of LOOP | |
169D ; | |
169D 16 A8 16 90 FDB DOLOOP,L1863 | |
16A1 06 28 4C 4F 4F 50 29 L1864: FCB 6,"(LOOP)" | |
16A8 DOLOOP: | |
16A8 CC 00 01 LDD #1 | |
16AB 20 1D BRA DOPLOF | |
16AD ; | |
16AD ; (+LOOP) ( -- ) | |
16AD ; Runtime part of +LOOP | |
16AD ; | |
16AD 16 B9 16 A1 FDB DOPLOOP,L1864 | |
16B1 87 28 2B 4C 4F 4F 50 29 L1865: FCB IMEDD+7,"(+LOOP)" | |
16B9 DOPLOOP: | |
16B9 EC E1 LDD ,s++ ; increment | |
16BB 2A 0D BPL DOPLOF ; forward | |
16BD E3 A4 ADDD ,y ; start/index | |
16BF 10 A3 22 CMPD 2,y ; end | |
16C2 2F 13 BLE DOPLO1 ; index <= end -> leave | |
16C4 ED A4 STD ,y | |
16C6 EE C4 LDU ,u ; branch to begin of loop | |
16C8 37 80 PULU pc | |
16CA ; | |
16CA E3 A4 DOPLOF: ADDD ,y | |
16CC 10 A3 22 CMPD 2,y ; end | |
16CF 2C 06 BGE DOPLO1 ; index >= end -> leave | |
16D1 ED A4 STD ,y ; save back | |
16D3 EE C4 LDU ,u ; branch to begin of loop | |
16D5 37 80 PULU pc | |
16D7 DOPLO1: | |
16D7 33 42 LEAU 2,u ; skip back destination | |
16D9 31 24 LEAY 4,y ; remove index and upper from r stack | |
16DB 37 80 PULU pc | |
16DD ; | |
16DD ; LOOP ( a m -- ) | |
16DD ; Terminate a DO/?DO-LOOP loop structure. | |
16DD ; | |
16DD 16 E6 16 B1 FDB LOOP,L1865 | |
16E1 84 4C 4F 4F 50 L1866: FCB IMEDD+4,"LOOP" | |
16E6 BD 02 10 LOOP: JSR DOLST | |
16E9 15 AB 16 A8 FDB COMPI,DOLOOP | |
16ED 04 0F 07 54 02 3E 16 FF FDB TWO,EQUAL,QBRAN,LOOP1 | |
16F5 0B 05 09 D5 03 41 02 79 09 D5 FDB HERE,CELLP,OVER,STORE,CELLP ; branch forward destination | |
16FF 15 77 02 6F LOOP1: FDB COMMA,EXIT | |
1703 ; | |
1703 ; | |
1703 ; +LOOP ( a m -- ) | |
1703 ; Terminate a DO/?DO-+LOOP loop structure. | |
1703 ; | |
1703 17 0D 16 E1 FDB PLOOP,L1866 | |
1707 85 2B 4C 4F 4F 50 L1867: FCB IMEDD+5,"+LOOP" | |
170D BD 02 10 PLOOP: JSR DOLST | |
1710 15 AB 16 B9 FDB COMPI,DOPLOOP | |
1714 04 0F 07 54 02 3E 17 26 FDB TWO,EQUAL,QBRAN,PLOOP1 | |
171C 0B 05 09 D5 03 41 02 79 09 D5 FDB HERE,CELLP,OVER,STORE,CELLP ; branch forward destination | |
1726 15 77 02 6F PLOOP1: FDB COMMA,EXIT | |
172A ; | |
172A ; LEAVE ( -- ) | |
172A ; Leave DO/LOOP | |
172A ; | |
172A 17 34 17 07 FDB LEAVE,L1867 | |
172E 05 4C 45 41 56 45 L1868: FCB 5,"LEAVE" | |
1734 LEAVE: | |
1734 EC A4 LDD ,y ;take index on return stack | |
1736 ED 22 STD 2,y ;and change end to it | |
1738 37 80 PULU pc | |
173A ; | |
173A ; FOR ( -- a ) | |
173A ; Start a FOR-NEXT loop structure in a colon definition. | |
173A ; | |
173A 17 42 17 07 FDB FOR,L1867 | |
173E 83 46 4F 52 L1870: FCB IMEDD+3,"FOR" | |
1742 BD 02 10 FOR: JSR DOLST | |
1745 15 AB 02 E9 0B 05 02 6F FDB COMPI,TOR,HERE,EXIT | |
174D ; | |
174D ; BEGIN ( -- a ) | |
174D ; Start an infinite or indefinite loop structure. | |
174D ; | |
174D 17 57 17 3E FDB BEGIN,L1870 | |
1751 85 42 45 47 49 4E L1880: FCB IMEDD+5,"BEGIN" | |
1757 BD 02 10 BEGIN: JSR DOLST | |
175A 0B 05 02 6F FDB HERE,EXIT | |
175E ; | |
175E ; NEXT ( a -- ) | |
175E ; Terminate a FOR-NEXT loop structure. | |
175E ; | |
175E 17 67 17 51 FDB NEXT,L1880 | |
1762 84 4E 45 58 54 L1890: FCB IMEDD+4,"NEXT" | |
1767 BD 02 10 NEXT: JSR DOLST | |
176A 15 AB 02 1F 15 77 02 6F FDB COMPI,DONXT,COMMA,EXIT | |
1772 ; | |
1772 ; UNTIL ( a -- ) | |
1772 ; Terminate a BEGIN-UNTIL indefinite loop structure. | |
1772 ; | |
1772 17 7C 17 62 FDB UNTIL,L1890 | |
1776 85 55 4E 54 49 4C L1900: FCB IMEDD+5,"UNTIL" | |
177C BD 02 10 UNTIL: JSR DOLST | |
177F 15 AB 02 3E 15 77 02 6F FDB COMPI,QBRAN,COMMA,EXIT | |
1787 ; | |
1787 ; AGAIN ( a -- ) | |
1787 ; Terminate a BEGIN-AGAIN infinite loop structure. | |
1787 ; | |
1787 17 91 17 76 FDB AGAIN,L1900 | |
178B 85 41 47 41 49 4E L1910: FCB IMEDD+5,"AGAIN" | |
1791 BD 02 10 AGAIN: JSR DOLST | |
1794 15 AB 02 55 15 77 02 6F FDB COMPI,BRAN,COMMA,EXIT | |
179C ; | |
179C ; IF ( -- A ) | |
179C ; Begin a conditional branch structure. | |
179C ; | |
179C 17 A3 17 8B FDB IFF,L1910 | |
17A0 82 49 46 L1920: FCB IMEDD+2,"IF" | |
17A3 BD 02 10 IFF: JSR DOLST | |
17A6 15 AB 02 3E 0B 05 FDB COMPI,QBRAN,HERE | |
17AC 03 F9 15 77 02 6F FDB ZERO,COMMA,EXIT | |
17B2 ; | |
17B2 ; AHEAD ( -- A ) | |
17B2 ; Compile a forward branch instruction. | |
17B2 ; | |
17B2 17 BC 17 A0 FDB AHEAD,L1920 | |
17B6 85 41 48 45 41 44 L1930: FCB IMEDD+5,"AHEAD" | |
17BC BD 02 10 AHEAD: JSR DOLST | |
17BF 15 AB 02 55 0B 05 03 F9 15 77 02 6F FDB COMPI,BRAN,HERE,ZERO,COMMA,EXIT | |
17CB ; | |
17CB ; REPEAT ( A a -- ) | |
17CB ; Terminate a BEGIN-WHILE-REPEAT indefinite loop. | |
17CB ; | |
17CB 17 D6 17 B6 FDB REPEA,L1930 | |
17CF 86 52 45 50 45 41 54 L1940: FCB IMEDD+6,"REPEAT" | |
17D6 BD 02 10 REPEA: JSR DOLST | |
17D9 17 91 0B 05 03 2E 02 79 02 6F FDB AGAIN,HERE,SWAP,STORE,EXIT | |
17E3 ; | |
17E3 ; THEN ( A -- ) | |
17E3 ; Terminate a conditional branch structure. | |
17E3 ; | |
17E3 17 EC 17 CF FDB THENN,L1940 | |
17E7 84 54 48 45 4E L1950: FCB IMEDD+4,"THEN" | |
17EC BD 02 10 THENN: JSR DOLST | |
17EF 0B 05 03 2E 02 79 02 6F FDB HERE,SWAP,STORE,EXIT | |
17F7 ; | |
17F7 ; AFT ( a -- a A ) | |
17F7 ; Jump to THEN in a FOR-AFT-THEN-NEXT loop the first time through. | |
17F7 ; | |
17F7 17 FF 17 E7 FDB AFT,L1950 | |
17FB 83 41 46 54 L1960: FCB IMEDD+3,"AFT" | |
17FF BD 02 10 AFT: JSR DOLST | |
1802 03 13 17 BC 17 57 03 2E 02 6F FDB DROP,AHEAD,BEGIN,SWAP,EXIT | |
180C ; | |
180C ; ELSE ( A -- A ) | |
180C ; Start the false clause in an IF-ELSE-THEN structure. | |
180C ; | |
180C 18 15 17 FB FDB ELSEE,L1960 | |
1810 84 45 4C 53 45 L1970: FCB IMEDD+4,"ELSE" | |
1815 BD 02 10 ELSEE: JSR DOLST | |
1818 17 BC 03 2E 17 EC 02 6F FDB AHEAD,SWAP,THENN,EXIT | |
1820 ; | |
1820 ; WHILE ( a -- A a ) | |
1820 ; Conditional branch out of a BEGIN-WHILE-REPEAT loop. | |
1820 ; | |
1820 18 2A 18 10 FDB WHILE,L1970 | |
1824 85 57 48 49 4C 45 L1980: FCB IMEDD+5,"WHILE" | |
182A BD 02 10 WHILE: JSR DOLST | |
182D 17 A3 03 2E 02 6F FDB IFF,SWAP,EXIT | |
1833 ; | |
1833 ; ABORT" ( -- ; <string> ) | |
1833 ; Conditional abort with an error message. | |
1833 ; | |
1833 18 38 18 24 FDB ABRTQ,L1980 | |
1837 86 L1990: FCB IMEDD+6,"ABORT",'"' | |
1838 BD 02 10 ABRTQ: JSR DOLST | |
183B 15 AB 13 84 15 D8 02 6F FDB COMPI,ABORQ,STRCQ,EXIT | |
1843 ; | |
1843 ; $" ( -- ; <string> ) | |
1843 ; Compile an inline string literal. | |
1843 ; | |
1843 18 4A 18 37 FDB STRQ,L1990 | |
1847 82 24 22 L2000: FCB IMEDD+2,"$",$22 | |
184A BD 02 10 STRQ: JSR DOLST | |
184D 15 AB 0F 09 15 D8 02 6F FDB COMPI,STRQP,STRCQ,EXIT | |
1855 ; | |
1855 ; ." ( -- ; <string> ) | |
1855 ; Compile an inline string literal to be typed out at run time. | |
1855 ; | |
1855 18 5C 18 47 FDB DOTQ,L2000 | |
1859 82 2E 22 L2010: FCB IMEDD+2,".",$22 | |
185C BD 02 10 DOTQ: JSR DOLST | |
185F 15 AB 0F 15 15 D8 02 6F FDB COMPI,DOTQP,STRCQ,EXIT | |
1867 ; | |
1867 ; Name compiler | |
1867 ; | |
1867 ; ?UNIQUE ( a -- a ) | |
1867 ; Display a warning message if the word already exists. | |
1867 ; | |
1867 18 73 18 59 FDB UNIQU,L2010 | |
186B 07 3F 55 4E 49 51 55 45 L2020: FCB 7,"?UNIQUE" | |
1873 BD 02 10 UNIQU: JSR DOLST | |
1876 03 1F 11 BE FDB DUPP,NAMEQ ;?name exists | |
187A 02 3E 18 8E FDB QBRAN,UNIQ1 | |
187E 0F 15 FDB DOTQP ;redefinitions are OK | |
1880 07 20 72 65 44 65 66 20 FCB 7," reDef " ;but the user should be warned | |
1888 03 41 0A EF 0E B6 FDB OVER,COUNT,TYPES ;just in case its not planned | |
188E 03 13 02 6F UNIQ1: FDB DROP,EXIT | |
1892 ; | |
1892 ; $,n ( na -- ) | |
1892 ; Build a new dictionary name using the string at na. | |
1892 ; | |
1892 18 9A 18 6B FDB SNAME,L2020 | |
1896 03 24 2C 6E L2030: FCB 3,"$,n" | |
189A BD 02 10 SNAME: JSR DOLST | |
189D 03 1F 02 A3 FDB DUPP,CAT ;?null input | |
18A1 02 3E 18 CB FDB QBRAN,PNAM1 | |
18A5 18 73 FDB UNIQU ;?redefinition | |
18A7 03 1F 05 AB 02 79 FDB DUPP,LAST,STORE ;save na for vocabulary link | |
18AD 0B 05 0A 13 03 2E FDB HERE,ALGND,SWAP ;align code address | |
18B3 09 E9 FDB CELLM ;link address | |
18B5 05 85 02 87 02 87 03 41 02 79 FDB CRRNT,AT,AT,OVER,STORE | |
18BF 09 E9 03 1F 05 9D 02 79 FDB CELLM,DUPP,NP,STORE ;adjust name pointer | |
18C7 02 79 02 6F FDB STORE,EXIT ;save code pointer | |
18CB 0F 09 PNAM1: FDB STRQP | |
18CD 05 20 6E 61 6D 65 FCB 5," name" ;null input | |
18D3 13 3C FDB THROW | |
18D5 ; | |
18D5 ; FORTH compiler | |
18D5 ; | |
18D5 ; $COMPILE ( a -- ) | |
18D5 ; Compile next word to code dictionary as a token or literal. | |
18D5 ; | |
18D5 18 E2 18 96 FDB SCOMP,L2030 | |
18D9 08 24 43 4F 4D 50 49 4C 45 L2040: FCB 8,"$COMPILE" | |
18E2 BD 02 10 SCOMP: JSR DOLST | |
18E5 11 BE 05 E1 FDB NAMEQ,QDUP ;?defined | |
18E9 02 3E 19 01 FDB QBRAN,SCOM2 | |
18ED 02 87 01 ED 80 00 03 74 FDB AT,DOLIT,IMEDD*256,ANDD ;?immediate | |
18F5 02 3E 18 FD FDB QBRAN,SCOM1 | |
18F9 02 65 02 6F FDB EXECU,EXIT ;its immediate, execute | |
18FD 15 77 02 6F SCOM1: FDB COMMA,EXIT | |
1901 05 45 0B 43 SCOM2: FDB TNUMB,ATEXE | |
1905 02 3E 19 0D FDB QBRAN,SCOM3 | |
1909 15 C8 02 6F FDB LITER,EXIT ;compile number as integer | |
190D 13 3C SCOM3: FDB THROW | |
190F ; | |
190F ; OVERT ( -- ) | |
190F ; Link a new word into the current vocabulary. | |
190F ; | |
190F 19 19 18 D9 FDB OVERT,L2040 | |
1913 05 4F 56 45 52 54 L2050: FCB 5,"OVERT" | |
1919 BD 02 10 OVERT: JSR DOLST | |
191C 05 AB 02 87 05 85 02 87 02 79 02 6F FDB LAST,AT,CRRNT,AT,STORE,EXIT | |
1928 ; | |
1928 ; ; ( -- ) | |
1928 ; Terminate a colon definition. | |
1928 ; | |
1928 19 2E 19 13 FDB SEMIS,L2050 | |
192C C1 3B L2060: FCB IMEDD+COMPO+1,";" | |
192E BD 02 10 SEMIS: JSR DOLST | |
1931 15 AB 02 6F 13 DD 19 19 02 6F FDB COMPI,EXIT,LBRAC,OVERT,EXIT | |
193B ; | |
193B ; ] ( -- ) | |
193B ; Start compiling the words in the input stream. | |
193B ; | |
193B 19 41 19 2C FDB RBRAC,L2060 | |
193F 01 5D L2070: FCB 1,"]" | |
1941 BD 02 10 RBRAC: JSR DOLST | |
1944 01 ED 18 E2 05 34 02 79 02 6F FDB DOLIT,SCOMP,TEVAL,STORE,EXIT | |
194E ; | |
194E ; call, ( ca -- ) | |
194E ; Assemble a call instruction to ca. | |
194E ; | |
194E 19 58 19 3F FDB CALLC,L2070 | |
1952 05 63 61 6C 6C 2C L2080: FCB 5,"call," | |
1958 BD 02 10 CALLC: JSR DOLST | |
195B 01 FE FDB DOCLIT | |
195D BD FCB CALLL | |
195E 0B 05 02 94 FDB HERE,CSTOR ;Direct Threaded Code | |
1962 04 04 15 68 FDB ONE,ALLOT | |
1966 15 77 02 6F FDB COMMA,EXIT ;DTC 6809 extended addr jsr | |
196A ; | |
196A ; : ( -- ; <string> ) | |
196A ; Start a new colon definition using next word as its name. | |
196A ; | |
196A 19 70 19 52 FDB COLON,L2080 | |
196E 01 3A L2090: FCB 1,":" | |
1970 BD 02 10 COLON: JSR DOLST | |
1973 10 BC 18 9A 01 ED 02 10 FDB TOKEN,SNAME,DOLIT,DOLST | |
197B 19 58 19 41 02 6F FDB CALLC,RBRAC,EXIT | |
1981 ; | |
1981 ; IMMEDIATE ( -- ) | |
1981 ; Make the last compiled word an immediate word. | |
1981 ; | |
1981 19 8F 19 6E FDB IMMED,L2090 | |
1985 09 49 4D 4D 45 44 49 41 54 45 L2100: FCB 9,"IMMEDIATE" | |
198F BD 02 10 IMMED: JSR DOLST | |
1992 01 ED 80 00 05 AB 02 87 02 87 03 85 FDB DOLIT,IMEDD*256,LAST,AT,AT,ORR | |
199E 05 AB 02 87 02 79 02 6F FDB LAST,AT,STORE,EXIT | |
19A6 ; | |
19A6 ; Defining words | |
19A6 ; | |
19A6 ; USER ( u -- ; <string> ) | |
19A6 ; Compile a new user variable. | |
19A6 ; | |
19A6 19 AF 19 85 FDB USER,L2100 | |
19AA 04 55 53 45 52 L2110: FCB 4,"USER" | |
19AF BD 02 10 USER: JSR DOLST | |
19B2 10 BC 18 9A 19 19 FDB TOKEN,SNAME,OVERT | |
19B8 ; FDB DOLIT,DOLST,CALLC | |
19B8 ; FDB DOLIT,DOUSE,COMMA | |
19B8 ; fast implementation .... | |
19B8 01 ED 04 59 19 58 FDB DOLIT,FDOUSE,CALLC | |
19BE 15 77 02 6F FDB COMMA,EXIT | |
19C2 ; | |
19C2 ; CREATE ( -- ; <string> ) | |
19C2 ; Compile a new array entry without allocating code space. | |
19C2 ; | |
19C2 19 CD 19 AA FDB CREAT,L2110 | |
19C6 06 43 52 45 41 54 45 L2120: FCB 6,"CREATE" | |
19CD BD 02 10 CREAT: JSR DOLST | |
19D0 10 BC 18 9A 19 19 FDB TOKEN,SNAME,OVERT | |
19D6 ; FDB DOLIT,DOLST,CALLC | |
19D6 ; FDB DOLIT,DOVAR,COMMA,EXIT | |
19D6 ; fast implementation .... | |
19D6 01 ED 04 31 19 58 02 6F FDB DOLIT,FDOVAR,CALLC,EXIT | |
19DE ; | |
19DE ; VARIABLE ( -- ; <string> ) | |
19DE ; Compile a new variable initialized to 0. | |
19DE ; | |
19DE 19 EB 19 C6 FDB VARIA,L2120 | |
19E2 08 56 41 52 49 41 42 4C 45 L2130: FCB 8,"VARIABLE" | |
19EB BD 02 10 VARIA: JSR DOLST | |
19EE 19 CD 03 F9 15 77 02 6F FDB CREAT,ZERO,COMMA,EXIT | |
19F6 ; | |
19F6 ; CONSTANT ( w -- ; <string> ) | |
19F6 ; Compile a new constant with value w. | |
19F6 ; | |
19F6 1A 03 19 E2 FDB CONST,L2130 | |
19FA 08 43 4F 4E 53 54 41 4E 54 L2135: FCB 8,"CONSTANT" | |
1A03 BD 02 10 CONST: JSR DOLST | |
1A06 10 BC 18 9A 19 19 FDB TOKEN,SNAME,OVERT | |
1A0C 01 ED 03 ED 19 58 FDB DOLIT,DOCONST,CALLC | |
1A12 15 77 02 6F FDB COMMA,EXIT | |
1A16 ; | |
1A16 ; Tools | |
1A16 ; | |
1A16 ; _TYPE ( b u -- ) | |
1A16 ; Display a string. Filter non-printing characters. | |
1A16 ; | |
1A16 1A 20 19 FA FDB UTYPE,L2135 | |
1A1A 05 5F 54 59 50 45 L2140: FCB 5,"_TYPE" | |
1A20 BD 02 10 UTYPE: JSR DOLST | |
1A23 02 E9 FDB TOR ;start count down loop | |
1A25 02 55 1A 33 FDB BRAN,UTYP2 ;skip first pass | |
1A29 03 1F 02 A3 0A 2C 0E 3F UTYP1: FDB DUPP,CAT,TCHAR,EMIT | |
1A31 06 94 FDB PLUS1 ;increment address | |
1A33 02 1F 1A 29 UTYP2: FDB DONXT,UTYP1 | |
1A37 03 13 02 6F FDB DROP,EXIT | |
1A3B ; | |
1A3B ; dm+ ( a u -- a ) | |
1A3B ; Dump u bytes from , leaving a+u on the stack. | |
1A3B ; | |
1A3B 1A 43 1A 1A FDB DUMPP,L2140 | |
1A3F 03 64 6D 2B L2150: FCB 3,"dm+" | |
1A43 BD 02 10 DUMPP: JSR DOLST | |
1A46 03 41 01 ED 00 04 0F 42 FDB OVER,DOLIT,4,UDOTR ;display address | |
1A4E 0E 84 02 E9 FDB SPACE,TOR ;start count down loop | |
1A52 02 55 1A 62 FDB BRAN,PDUM2 ;skip first pass | |
1A56 03 1F 02 A3 01 ED 00 03 0F 42 PDUM1: FDB DUPP,CAT,DOLIT,3,UDOTR | |
1A60 06 94 FDB PLUS1 ;increment address | |
1A62 02 1F 1A 56 PDUM2: FDB DONXT,PDUM1 | |
1A66 02 6F FDB EXIT | |
1A68 ; | |
1A68 ; DUMP ( a u -- ) | |
1A68 ; Dump u bytes from a, in a formatted manner. | |
1A68 ; | |
1A68 1A 71 1A 3F FDB DUMP,L2150 | |
1A6C 04 44 55 4D 50 L2160: FCB 4,"DUMP" | |
1A71 BD 02 10 DUMP: JSR DOLST | |
1A74 04 E2 02 87 02 E9 0D 1A FDB BASE,AT,TOR,HEX ;save radix, set hex | |
1A7C 01 FE FDB DOCLIT | |
1A7E 10 FCB 16 | |
1A7F 09 01 FDB SLASH ;change count to lines | |
1A81 02 E9 FDB TOR ;start count down loop | |
1A83 0E D6 01 FE DUMP1: FDB CR,DOCLIT | |
1A87 10 FCB 16 | |
1A88 06 1F 1A 43 FDB DDUP,DUMPP ;display numeric | |
1A8C 05 F6 05 F6 FDB ROT,ROT | |
1A90 04 0F 0E 98 1A 20 FDB TWO,SPACS,UTYPE ;display printable characters | |
1A96 0E 51 06 DD FDB NUFQ,INVER ;user control | |
1A9A 02 3E 1A A6 FDB QBRAN,DUMP2 | |
1A9E 02 1F 1A 83 FDB DONXT,DUMP1 ;loop till done | |
1AA2 02 55 1A AA FDB BRAN,DUMP3 | |
1AA6 02 C9 03 13 DUMP2: FDB RFROM,DROP | |
1AAA 03 13 02 C9 04 E2 02 79 DUMP3: FDB DROP,RFROM,BASE,STORE | |
1AB2 02 6F FDB EXIT | |
1AB4 ; | |
1AB4 ; .S ( ... -- ... ) | |
1AB4 ; Display the contents of the data stack. | |
1AB4 ; | |
1AB4 1A BB 1A 6C FDB DOTS,L2160 | |
1AB8 02 2E 53 L2170: FCB 2,".S" | |
1ABB BD 02 10 DOTS: JSR DOLST | |
1ABE 0E D6 0A 52 FDB CR,DEPTH ;stack depth | |
1AC2 02 E9 FDB TOR ;start count down loop | |
1AC4 02 55 1A CE FDB BRAN,DOTS2 ;skip first pass | |
1AC8 02 DC 0A 6F 0F 75 DOTS1: FDB RAT,PICK,DOT | |
1ACE 02 1F 1A C8 DOTS2: FDB DONXT,DOTS1 | |
1AD2 0F 15 FDB DOTQP | |
1AD4 04 20 3C 73 70 FCB 4," <sp" | |
1AD9 02 6F FDB EXIT | |
1ADB ; | |
1ADB ; !CSP ( -- ) | |
1ADB ; Save stack pointer in CSP for error checking. | |
1ADB ; | |
1ADB 1A E4 1A B8 FDB STCSP,L2170 | |
1ADF 04 21 43 53 50 L2180: FCB 4,"!CSP" | |
1AE4 BD 02 10 STCSP: JSR DOLST | |
1AE7 02 F7 05 25 02 79 02 6F FDB SPAT,CSP,STORE,EXIT ;save pointer | |
1AEF ; | |
1AEF ; ?CSP ( -- ) | |
1AEF ; Abort if stack pointer differs from that saved in CSP. | |
1AEF ; | |
1AEF 1A F8 1A DF FDB QCSP,L2180 | |
1AF3 04 3F 43 53 50 L2190: FCB 4,"?CSP" | |
1AF8 BD 02 10 QCSP: JSR DOLST | |
1AFB 02 F7 05 25 02 87 03 97 FDB SPAT,CSP,AT,XORR ;compare pointers | |
1B03 13 84 FDB ABORQ ;abort if different | |
1B05 06 73 74 61 63 6B 73 FCB 6,"stacks" | |
1B0C 02 6F FDB EXIT | |
1B0E ; | |
1B0E ; >NAME ( ca -- na | F ) | |
1B0E ; Convert code address to a name address. | |
1B0E ; | |
1B0E 1B 18 1A F3 FDB TNAME,L2190 | |
1B12 05 3E 4E 41 4D 45 L2200: FCB 5,">NAME" | |
1B18 BD 02 10 TNAME: JSR DOLST | |
1B1B 05 85 FDB CRRNT ;vocabulary link | |
1B1D 09 D5 02 87 05 E1 TNAM1: FDB CELLP,AT,QDUP | |
1B23 02 3E 1B 55 FDB QBRAN,TNAM4 | |
1B27 06 1F FDB DDUP | |
1B29 02 87 03 1F TNAM2: FDB AT,DUPP | |
1B2D 02 3E 1B 41 FDB QBRAN,TNAM3 | |
1B31 06 1F 10 F4 03 97 FDB DDUP,NAMET,XORR ;compare | |
1B37 02 3E 1B 41 FDB QBRAN,TNAM3 | |
1B3B 09 E9 FDB CELLM ;continue with next word | |
1B3D 02 55 1B 29 FDB BRAN,TNAM2 | |
1B41 03 2E 03 13 05 E1 TNAM3: FDB SWAP,DROP,QDUP | |
1B47 02 3E 1B 1D FDB QBRAN,TNAM1 | |
1B4B 03 2E 03 13 03 2E 03 13 02 6F FDB SWAP,DROP,SWAP,DROP,EXIT | |
1B55 03 13 01 ED 00 00 02 6F TNAM4: FDB DROP,DOLIT,0,EXIT | |
1B5D ; | |
1B5D ; .ID ( na -- ) | |
1B5D ; Display the name at address. | |
1B5D ; | |
1B5D 1B 65 1B 12 FDB DOTID,L2200 | |
1B61 03 2E 49 44 L2210: FCB 3,".ID" | |
1B65 BD 02 10 DOTID: JSR DOLST | |
1B68 05 E1 FDB QDUP ;if zero no name | |
1B6A 02 3E 1B 79 FDB QBRAN,DOTI1 | |
1B6E 0A EF 01 FE FDB COUNT,DOCLIT | |
1B72 1F FCB $1F | |
1B73 03 74 FDB ANDD ;mask lexicon bits | |
1B75 1A 20 02 6F FDB UTYPE,EXIT ;display name string | |
1B79 0F 15 DOTI1: FDB DOTQP | |
1B7B 09 20 7B 6E 6F 4E 61 6D 65 7D FCB 9," {noName}" | |
1B85 02 6F FDB EXIT | |
1B87 ; | |
1B87 ; SEE ( -- ; <string> ) | |
1B87 ; A simple decompiler. | |
1B87 ; | |
1B87 1B 8F 1B 61 FDB SEE,L2210 | |
1B8B 03 53 45 45 L2220: FCB 3,"SEE" | |
1B8F BD 02 10 SEE: JSR DOLST | |
1B92 15 4F FDB TICK ;starting address | |
1B94 06 94 FDB PLUS1 ;skip JSR | |
1B96 ;primitive check ... | |
1B96 04 E2 02 87 02 E9 0D 1A FDB BASE,AT,TOR,HEX ;switch to hex base | |
1B9E 03 1F 02 87 01 ED 02 10 03 97 FDB DUPP,AT,DOLIT,DOLST,XORR | |
1BA8 ;high level word? | |
1BA8 02 3E 1B BE FDB QBRAN,SEE1 ;yes! | |
1BAC 0E D6 0F 15 FDB CR,DOTQP ;primitive word only | |
1BB0 09 20 50 52 49 4D 49 54 56 45 FCB 9," PRIMITVE" | |
1BBA 02 55 1C D1 FDB BRAN,SEE5 ;exit | |
1BBE 0E D6 09 D5 03 1F 0F 60 0E 84 SEE1: FDB CR,CELLP,DUPP,UDOT,SPACE | |
1BC8 03 1F 02 87 03 1F FDB DUPP,AT,DUPP ;?does it contain a zero | |
1BCE 02 3E 1B D4 FDB QBRAN,SEE2 | |
1BD2 1B 18 FDB TNAME ;?is it a name | |
1BD4 05 E1 SEE2: FDB QDUP | |
1BD6 02 3E 1C B3 FDB QBRAN,SEE3 | |
1BDA ; | |
1BDA 0E 84 1B 65 FDB SPACE,DOTID ;display name | |
1BDE 03 1F 02 87 FDB DUPP,AT | |
1BE2 ; | |
1BE2 03 1F 01 ED 01 FE 07 54 FDB DUPP,DOLIT,DOCLIT,EQUAL ; doCLIT? | |
1BEA 02 3E 1C 02 FDB QBRAN,SEE21 | |
1BEE 03 41 09 D5 02 A3 0E 84 0F 60 FDB OVER,CELLP,CAT,SPACE,UDOT ; CLIT: get only single byte | |
1BF8 03 2E 06 94 03 2E FDB SWAP,PLUS1,SWAP | |
1BFE 02 55 1C A7 FDB BRAN,SEE28 | |
1C02 ; | |
1C02 03 1F 01 ED 01 ED 07 54 SEE21: FDB DUPP,DOLIT,DOLIT,EQUAL | |
1C0A 03 41 01 ED 02 3E 07 54 03 85 FDB OVER,DOLIT,QBRAN,EQUAL,ORR ; ?BRAN ? | |
1C14 03 41 01 ED 02 55 07 54 03 85 FDB OVER,DOLIT,BRAN,EQUAL,ORR ; BRANCH ? | |
1C1E 03 41 01 ED 02 1F 07 54 03 85 FDB OVER,DOLIT,DONXT,EQUAL,ORR ; next ? (from FOR/NEXT) | |
1C28 03 41 01 ED 16 A8 07 54 03 85 FDB OVER,DOLIT,DOLOOP,EQUAL,ORR ; (LOOP) ? | |
1C32 03 41 01 ED 16 B9 07 54 03 85 FDB OVER,DOLIT,DOPLOOP,EQUAL,ORR ; (+LOOP) ? | |
1C3C 03 41 01 ED 16 95 07 54 03 85 FDB OVER,DOLIT,DODO,EQUAL,ORR ; (DO) ? | |
1C46 03 41 01 ED 16 3B 07 54 03 85 FDB OVER,DOLIT,DOQDO,EQUAL,ORR ; (?DO) ? | |
1C50 03 41 01 ED 16 75 07 54 03 85 FDB OVER,DOLIT,DOMDO,EQUAL,ORR ; (-DO) ? | |
1C5A 02 3E 1C 70 FDB QBRAN,SEE27 | |
1C5E 03 2E 09 D5 03 1F 02 87 0E 84 0F 60 03 2E FDB SWAP,CELLP,DUPP,AT,SPACE,UDOT,SWAP ; LIT: get word | |
1C6C 02 55 1C A7 FDB BRAN,SEE28 | |
1C70 SEE27: | |
1C70 03 1F 01 ED 0F 15 07 54 FDB DUPP,DOLIT,DOTQP,EQUAL ; ." ..." | |
1C78 03 41 01 ED 13 84 07 54 03 85 FDB OVER,DOLIT,ABORQ,EQUAL,ORR ; ABORT" ..." | |
1C82 03 41 01 ED 0F 09 07 54 03 85 FDB OVER,DOLIT,STRQP,EQUAL,ORR ; $" ..." | |
1C8C 02 3E 1C AD FDB QBRAN,SEE29 ; last case aalway to SEE29!! | |
1C90 03 2E 09 D5 FDB SWAP,CELLP ; print compiled string | |
1C94 03 1F 0A EF 0E B6 01 FE FDB DUPP,COUNT,TYPES,DOCLIT | |
1C9C 22 FCB 34 | |
1C9D 0E 3F FDB EMIT | |
1C9F 0A EF 06 CD 09 E9 03 2E FDB COUNT,PLUS,CELLM,SWAP ; adjust continuation address | |
1CA7 ; | |
1CA7 03 13 SEE28: FDB DROP | |
1CA9 02 55 1C CB FDB BRAN,SEE4 | |
1CAD 03 13 SEE29: FDB DROP | |
1CAF 02 55 1C BD FDB BRAN,SEE31 ; cleanup, check for EXIT | |
1CB3 ; | |
1CB3 03 1F 02 87 0F 60 SEE3: FDB DUPP,AT,UDOT | |
1CB9 02 55 1C CB FDB BRAN,SEE4 | |
1CBD 03 1F 02 87 01 ED 02 6F 03 97 SEE31: FDB DUPP,AT,DOLIT,EXIT,XORR | |
1CC7 ; but not if SEE decompiles itself! | |
1CC7 02 3E 1C D1 FDB QBRAN,SEE5 | |
1CCB 0E 51 SEE4: FDB NUFQ | |
1CCD 02 3E 1B BE FDB QBRAN,SEE1 | |
1CD1 02 C9 04 E2 02 79 03 13 02 6F SEE5: FDB RFROM,BASE,STORE,DROP,EXIT | |
1CDB ; | |
1CDB ; WORDS ( -- ) | |
1CDB ; Display the names in the context vocabulary. | |
1CDB ; | |
1CDB 1C E5 1B 8B FDB WORDS,L2220 | |
1CDF 05 57 4F 52 44 53 L2230: FCB 5,"WORDS" | |
1CE5 BD 02 10 WORDS: JSR DOLST | |
1CE8 0E D6 05 74 02 87 FDB CR,CNTXT,AT ;only in context | |
1CEE 02 87 05 E1 WORS1: FDB AT,QDUP | |
1CF2 02 3E 1D 06 FDB QBRAN,WORS2 | |
1CF6 03 1F 0E 84 1B 65 FDB DUPP,SPACE,DOTID ;display a name | |
1CFC 09 E9 0E 51 FDB CELLM,NUFQ ;user control | |
1D00 02 3E 1C EE FDB QBRAN,WORS1 | |
1D04 03 13 FDB DROP | |
1D06 02 6F WORS2: FDB EXIT | |
1D08 ; | |
1D08 ; Hardware reset | |
1D08 ; | |
1D08 ; VER ( -- n ) | |
1D08 ; Return the version number of this implementation. | |
1D08 ; | |
1D08 1D 10 1C DF FDB VERSN,L2230 | |
1D0C 03 56 45 52 L2240: FCB 3,"VER" | |
1D10 BD 02 10 VERSN: JSR DOLST | |
1D13 01 ED 01 00 02 6F FDB DOLIT,VER*256+EXT,EXIT | |
1D19 ; | |
1D19 ; hi ( -- ) | |
1D19 ; Display the sign-on message of eForth. | |
1D19 ; | |
1D19 1D 20 1D 0C FDB HI,L2240 | |
1D1D 02 68 69 L2250: FCB 2,"hi" | |
1D20 BD 02 10 HI: JSR DOLST | |
1D23 01 E1 0E D6 0F 15 FDB STOIO,CR,DOTQP ;initialize I/O | |
1D29 0B 65 46 6F 72 74 68 20 76 FCB 11,"eForth v" ;model | |
1D32 FCB VER+"0",".",EXT+"0" ;version | |
1D32 0E D6 02 6F FDB CR,EXIT | |
1D36 ; | |
1D36 ; 'BOOT ( -- a ) | |
1D36 ; The application startup vector. | |
1D36 ; | |
1D36 1D 40 1D 1D FDB TBOOT,L2250 | |
1D3A 05 27 42 4F 4F 54 L2260: FCB 5,"'BOOT" | |
1D40 TBOOT: | |
1D40 ; jsr DOLST | |
1D40 ; FDB DOVAR | |
1D40 BD 04 31 JSR FDOVAR | |
1D43 1D 20 FDB HI ;application to boot | |
1D45 ; | |
1D45 ; COLD ( -- ) | |
1D45 ; The hilevel cold start sequence. | |
1D45 ; | |
1D45 1D 4E 1D 3A FDB COLD,L2260 | |
1D49 04 43 4F 4C 44 L2270: FCB 4,"COLD" | |
1D4E BD 02 10 COLD: JSR DOLST | |
1D51 01 ED 01 0D 01 ED 6F 80 COLD1: FDB DOLIT,UZERO,DOLIT,UPP | |
1D59 01 ED 00 4A 0B 5C FDB DOLIT,ULAST-UZERO,CMOVE ;initialize user area | |
1D5F 14 61 FDB PRESE ;initialize data stack and TIB | |
1D61 1D 40 0B 43 FDB TBOOT,ATEXE ;application boot | |
1D65 05 CF 05 74 02 87 03 1F FDB FORTH,CNTXT,AT,DUPP ;initialize search order | |
1D6D 05 85 0A C0 19 19 FDB CRRNT,DSTOR,OVERT | |
1D73 ; TEST | |
1D73 ; FDB DOLIT,10,DOLIT,1 | |
1D73 ; FDB DODO | |
1D73 ; | |
1D73 14 FA FDB QUIT ;start interpretation | |
1D75 02 55 1D 51 FDB BRAN,COLD1 ;just in case | |
1D79 ; | |
1D79 ;=============================================================== | |
1D79 ; | |
1D79 LASTN: EQU L2270 | |
1D79 ; | |
1D79 NTOP: EQU NAMEE | |
1D79 CTOP: EQU $ | |
1D79 ; | |
1D79 ; | |
1D79 ; END ORIG | |
1D79 ; | |
1D79 ;=============================================================== | |
VER: 0001 DEFINED AT LINE 53 | |
> USED AT LINE 3322 | |
> USED AT LINE 3332 | |
EXT: 0000 DEFINED AT LINE 54 | |
> USED AT LINE 3322 | |
> USED AT LINE 3332 | |
TRUEE: 00-1 DEFINED AT LINE 58 | |
COMPO: 0040 DEFINED AT LINE 60 | |
> USED AT LINE 243 | |
> USED AT LINE 257 | |
> USED AT LINE 268 | |
> USED AT LINE 280 | |
> USED AT LINE 296 | |
> USED AT LINE 309 | |
> USED AT LINE 602 | |
> USED AT LINE 648 | |
> USED AT LINE 673 | |
> USED AT LINE 791 | |
> USED AT LINE 947 | |
> USED AT LINE 2093 | |
> USED AT LINE 2102 | |
> USED AT LINE 2110 | |
> USED AT LINE 2460 | |
> USED AT LINE 2543 | |
> USED AT LINE 2651 | |
> USED AT LINE 3019 | |
IMEDD: 0080 DEFINED AT LINE 61 | |
> USED AT LINE 2214 | |
> USED AT LINE 2222 | |
> USED AT LINE 2230 | |
> USED AT LINE 2489 | |
> USED AT LINE 2643 | |
> USED AT LINE 2660 | |
> USED AT LINE 2678 | |
> USED AT LINE 2688 | |
> USED AT LINE 2698 | |
> USED AT LINE 2728 | |
> USED AT LINE 2778 | |
> USED AT LINE 2804 | |
> USED AT LINE 2816 | |
> USED AT LINE 2837 | |
> USED AT LINE 2845 | |
> USED AT LINE 2853 | |
> USED AT LINE 2861 | |
> USED AT LINE 2869 | |
> USED AT LINE 2877 | |
> USED AT LINE 2886 | |
> USED AT LINE 2894 | |
> USED AT LINE 2902 | |
> USED AT LINE 2910 | |
> USED AT LINE 2918 | |
> USED AT LINE 2926 | |
> USED AT LINE 2934 | |
> USED AT LINE 2942 | |
> USED AT LINE 2950 | |
> USED AT LINE 3019 | |
> USED AT LINE 3058 | |
MASKK: 1F7F DEFINED AT LINE 62 | |
CFAOFF: 0003 DEFINED AT LINE 64 | |
> USED AT LINE 681 | |
CELLL: 0002 DEFINED AT LINE 66 | |
> USED AT LINE 82 | |
> USED AT LINE 83 | |
> USED AT LINE 86 | |
> USED AT LINE 88 | |
> USED AT LINE 1517 | |
> USED AT LINE 1527 | |
> USED AT LINE 1537 | |
> USED AT LINE 1581 | |
BASEE: 000A DEFINED AT LINE 67 | |
> USED AT LINE 142 | |
VOCSS: 0008 DEFINED AT LINE 68 | |
> USED AT LINE 154 | |
> USED AT LINE 904 | |
> USED AT LINE 915 | |
> USED AT LINE 926 | |
> USED AT LINE 937 | |
BKSPP: 0008 DEFINED AT LINE 70 | |
> USED AT LINE 2343 | |
> USED AT LINE 2345 | |
BKSPP2: 007F DEFINED AT LINE 71 | |
LF: 000A DEFINED AT LINE 72 | |
> USED AT LINE 2086 | |
CRR: 000D DEFINED AT LINE 73 | |
> USED AT LINE 2029 | |
> USED AT LINE 2083 | |
> USED AT LINE 2364 | |
ERR: 001B DEFINED AT LINE 74 | |
> USED AT LINE 2605 | |
TIC: 0027 DEFINED AT LINE 75 | |
CALLL: 12BD DEFINED AT LINE 77 | |
> USED AT LINE 3038 | |
EM: 7000 DEFINED AT LINE 81 | |
> USED AT LINE 85 | |
> USED AT LINE 92 | |
US: 0080 DEFINED AT LINE 82 | |
> USED AT LINE 85 | |
> USED AT LINE 91 | |
RTS: 0100 DEFINED AT LINE 83 | |
> USED AT LINE 87 | |
UPP: 6F80 DEFINED AT LINE 85 | |
> USED AT LINE 86 | |
> USED AT LINE 667 | |
RPP: 6F70 DEFINED AT LINE 86 | |
> USED AT LINE 87 | |
> USED AT LINE 135 | |
TIBB: 6E70 DEFINED AT LINE 87 | |
> USED AT LINE 88 | |
> USED AT LINE 147 | |
> USED AT LINE 2537 | |
SPP: 6E60 DEFINED AT LINE 88 | |
> USED AT LINE 134 | |
COLDD: 0100 DEFINED AT LINE 90 | |
> USED AT LINE 91 | |
> USED AT LINE 120 | |
CODEE: 0180 DEFINED AT LINE 91 | |
> USED AT LINE 162 | |
NAMEE: 6C00 DEFINED AT LINE 92 | |
> USED AT LINE 3369 | |
RESET: 0100 DEFINED AT LINE 123 | |
> USED AT LINE 102 | |
> USED AT LINE 104 | |
> USED AT LINE 106 | |
> USED AT LINE 108 | |
> USED AT LINE 110 | |
> USED AT LINE 112 | |
> USED AT LINE 114 | |
> USED AT LINE 116 | |
ORIG: 0100 DEFINED AT LINE 124 | |
UZERO: 010D DEFINED AT LINE 133 | |
> USED AT LINE 3352 | |
> USED AT LINE 3353 | |
ULAST: 0157 DEFINED AT LINE 160 | |
> USED AT LINE 3353 | |
ACIA: 83FE DEFINED AT LINE 166 | |
> USED AT LINE 167 | |
> USED AT LINE 168 | |
> USED AT LINE 169 | |
ACIAC: 83FE DEFINED AT LINE 167 | |
ACIAS: 83FE DEFINED AT LINE 168 | |
> USED AT LINE 177 | |
> USED AT LINE 185 | |
ACIAD: 83FF DEFINED AT LINE 169 | |
> USED AT LINE 180 | |
> USED AT LINE 188 | |
ACIA_TDRE: 0002 DEFINED AT LINE 171 | |
ACIA_RDRF: 0001 DEFINED AT LINE 172 | |
SEROUT: 0180 DEFINED AT LINE 174 | |
> USED AT LINE 226 | |
SEROUTL: 0182 DEFINED AT LINE 176 | |
SERIN: 018D DEFINED AT LINE 184 | |
> USED AT LINE 205 | |
SERIN_RET: 0197 DEFINED AT LINE 189 | |
> USED AT LINE 187 | |
L100: 019C DEFINED AT LINE 196 | |
> USED AT LINE 202 | |
BYE: 01A0 DEFINED AT LINE 197 | |
> USED AT LINE 195 | |
L110: 01A7 DEFINED AT LINE 203 | |
> USED AT LINE 218 | |
QRX: 01AB DEFINED AT LINE 204 | |
> USED AT LINE 136 | |
> USED AT LINE 202 | |
> USED AT LINE 2575 | |
QRX1: 01B7 DEFINED AT LINE 209 | |
> USED AT LINE 206 | |
L120: 01C6 DEFINED AT LINE 219 | |
> USED AT LINE 233 | |
TXSTO: 01CA DEFINED AT LINE 220 | |
> USED AT LINE 137 | |
> USED AT LINE 140 | |
> USED AT LINE 218 | |
> USED AT LINE 2575 | |
TX1: 01D2 DEFINED AT LINE 224 | |
> USED AT LINE 222 | |
L130: 01DD DEFINED AT LINE 234 | |
> USED AT LINE 242 | |
STOIO: 01E1 DEFINED AT LINE 235 | |
> USED AT LINE 233 | |
> USED AT LINE 3330 | |
L140: 01E7 DEFINED AT LINE 243 | |
> USED AT LINE 256 | |
DOLIT: 01ED DEFINED AT LINE 244 | |
> USED AT LINE 242 | |
> USED AT LINE 1362 | |
> USED AT LINE 1376 | |
> USED AT LINE 1460 | |
> USED AT LINE 1565 | |
> USED AT LINE 1570 | |
> USED AT LINE 1687 | |
> USED AT LINE 1844 | |
> USED AT LINE 1900 | |
> USED AT LINE 1950 | |
> USED AT LINE 1958 | |
> USED AT LINE 2216 | |
> USED AT LINE 2224 | |
> USED AT LINE 2286 | |
> USED AT LINE 2343 | |
> USED AT LINE 2345 | |
> USED AT LINE 2367 | |
> USED AT LINE 2368 | |
> USED AT LINE 2385 | |
> USED AT LINE 2476 | |
> USED AT LINE 2491 | |
> USED AT LINE 2499 | |
> USED AT LINE 2537 | |
> USED AT LINE 2545 | |
> USED AT LINE 2554 | |
> USED AT LINE 2555 | |
> USED AT LINE 2563 | |
> USED AT LINE 2564 | |
> USED AT LINE 2595 | |
> USED AT LINE 2603 | |
> USED AT LINE 2605 | |
> USED AT LINE 2662 | |
> USED AT LINE 2670 | |
> USED AT LINE 2998 | |
> USED AT LINE 3029 | |
> USED AT LINE 3058 | |
> USED AT LINE 3073 | |
> USED AT LINE 3086 | |
> USED AT LINE 3103 | |
> USED AT LINE 3127 | |
> USED AT LINE 3212 | |
> USED AT LINE 3256 | |
> USED AT LINE 3262 | |
> USED AT LINE 3263 | |
> USED AT LINE 3264 | |
> USED AT LINE 3265 | |
> USED AT LINE 3266 | |
> USED AT LINE 3267 | |
> USED AT LINE 3268 | |
> USED AT LINE 3269 | |
> USED AT LINE 3270 | |
> USED AT LINE 3275 | |
> USED AT LINE 3276 | |
> USED AT LINE 3277 | |
> USED AT LINE 3322 | |
> USED AT LINE 3352 | |
> USED AT LINE 3353 | |
L141: 01F7 DEFINED AT LINE 257 | |
> USED AT LINE 267 | |
DOCLIT: 01FE DEFINED AT LINE 258 | |
> USED AT LINE 256 | |
> USED AT LINE 1516 | |
> USED AT LINE 1526 | |
> USED AT LINE 1536 | |
> USED AT LINE 1566 | |
> USED AT LINE 1580 | |
> USED AT LINE 1838 | |
> USED AT LINE 1841 | |
> USED AT LINE 1928 | |
> USED AT LINE 1938 | |
> USED AT LINE 1951 | |
> USED AT LINE 1955 | |
> USED AT LINE 2039 | |
> USED AT LINE 2082 | |
> USED AT LINE 2085 | |
> USED AT LINE 2363 | |
> USED AT LINE 2407 | |
> USED AT LINE 3037 | |
> USED AT LINE 3142 | |
> USED AT LINE 3146 | |
> USED AT LINE 3222 | |
L150: 0209 DEFINED AT LINE 268 | |
> USED AT LINE 279 | |
DOLST: 0210 DEFINED AT LINE 269 | |
> USED AT LINE 267 | |
> USED AT LINE 579 | |
> USED AT LINE 650 | |
> USED AT LINE 675 | |
> USED AT LINE 949 | |
> USED AT LINE 958 | |
> USED AT LINE 969 | |
> USED AT LINE 981 | |
> USED AT LINE 990 | |
> USED AT LINE 999 | |
> USED AT LINE 1187 | |
> USED AT LINE 1259 | |
> USED AT LINE 1270 | |
> USED AT LINE 1281 | |
> USED AT LINE 1359 | |
> USED AT LINE 1384 | |
> USED AT LINE 1401 | |
> USED AT LINE 1409 | |
> USED AT LINE 1418 | |
> USED AT LINE 1459 | |
> USED AT LINE 1475 | |
> USED AT LINE 1484 | |
> USED AT LINE 1497 | |
> USED AT LINE 1505 | |
> USED AT LINE 1515 | |
> USED AT LINE 1525 | |
> USED AT LINE 1535 | |
> USED AT LINE 1545 | |
> USED AT LINE 1564 | |
> USED AT LINE 1578 | |
> USED AT LINE 1611 | |
> USED AT LINE 1648 | |
> USED AT LINE 1660 | |
> USED AT LINE 1669 | |
> USED AT LINE 1678 | |
> USED AT LINE 1686 | |
> USED AT LINE 1694 | |
> USED AT LINE 1702 | |
> USED AT LINE 1808 | |
> USED AT LINE 1822 | |
> USED AT LINE 1837 | |
> USED AT LINE 1851 | |
> USED AT LINE 1860 | |
> USED AT LINE 1869 | |
> USED AT LINE 1878 | |
> USED AT LINE 1886 | |
> USED AT LINE 1897 | |
> USED AT LINE 1908 | |
> USED AT LINE 1917 | |
> USED AT LINE 1927 | |
> USED AT LINE 1937 | |
> USED AT LINE 1949 | |
> USED AT LINE 1966 | |
> USED AT LINE 1999 | |
> USED AT LINE 2007 | |
> USED AT LINE 2017 | |
> USED AT LINE 2025 | |
> USED AT LINE 2038 | |
> USED AT LINE 2048 | |
> USED AT LINE 2056 | |
> USED AT LINE 2068 | |
> USED AT LINE 2081 | |
> USED AT LINE 2094 | |
> USED AT LINE 2103 | |
> USED AT LINE 2111 | |
> USED AT LINE 2119 | |
> USED AT LINE 2128 | |
> USED AT LINE 2138 | |
> USED AT LINE 2147 | |
> USED AT LINE 2160 | |
> USED AT LINE 2170 | |
> USED AT LINE 2205 | |
> USED AT LINE 2215 | |
> USED AT LINE 2223 | |
> USED AT LINE 2231 | |
> USED AT LINE 2239 | |
> USED AT LINE 2247 | |
> USED AT LINE 2259 | |
> USED AT LINE 2269 | |
> USED AT LINE 2277 | |
> USED AT LINE 2293 | |
> USED AT LINE 2319 | |
> USED AT LINE 2340 | |
> USED AT LINE 2353 | |
> USED AT LINE 2362 | |
> USED AT LINE 2379 | |
> USED AT LINE 2398 | |
> USED AT LINE 2406 | |
> USED AT LINE 2419 | |
> USED AT LINE 2430 | |
> USED AT LINE 2453 | |
> USED AT LINE 2461 | |
> USED AT LINE 2473 | |
> USED AT LINE 2490 | |
> USED AT LINE 2498 | |
> USED AT LINE 2510 | |
> USED AT LINE 2521 | |
> USED AT LINE 2535 | |
> USED AT LINE 2544 | |
> USED AT LINE 2553 | |
> USED AT LINE 2562 | |
> USED AT LINE 2582 | |
> USED AT LINE 2591 | |
> USED AT LINE 2616 | |
> USED AT LINE 2627 | |
> USED AT LINE 2635 | |
> USED AT LINE 2644 | |
> USED AT LINE 2652 | |
> USED AT LINE 2661 | |
> USED AT LINE 2669 | |
> USED AT LINE 2679 | |
> USED AT LINE 2689 | |
> USED AT LINE 2699 | |
> USED AT LINE 2729 | |
> USED AT LINE 2805 | |
> USED AT LINE 2817 | |
> USED AT LINE 2838 | |
> USED AT LINE 2846 | |
> USED AT LINE 2854 | |
> USED AT LINE 2862 | |
> USED AT LINE 2870 | |
> USED AT LINE 2878 | |
> USED AT LINE 2887 | |
> USED AT LINE 2895 | |
> USED AT LINE 2903 | |
> USED AT LINE 2911 | |
> USED AT LINE 2919 | |
> USED AT LINE 2927 | |
> USED AT LINE 2935 | |
> USED AT LINE 2943 | |
> USED AT LINE 2951 | |
> USED AT LINE 2961 | |
> USED AT LINE 2974 | |
> USED AT LINE 2995 | |
> USED AT LINE 3012 | |
> USED AT LINE 3020 | |
> USED AT LINE 3028 | |
> USED AT LINE 3036 | |
> USED AT LINE 3048 | |
> USED AT LINE 3057 | |
> USED AT LINE 3068 | |
> USED AT LINE 3081 | |
> USED AT LINE 3093 | |
> USED AT LINE 3101 | |
> USED AT LINE 3113 | |
> USED AT LINE 3126 | |
> USED AT LINE 3140 | |
> USED AT LINE 3164 | |
> USED AT LINE 3179 | |
> USED AT LINE 3187 | |
> USED AT LINE 3198 | |
> USED AT LINE 3219 | |
> USED AT LINE 3235 | |
> USED AT LINE 3304 | |
> USED AT LINE 3321 | |
> USED AT LINE 3329 | |
> USED AT LINE 3351 | |
L160: 021A DEFINED AT LINE 280 | |
> USED AT LINE 295 | |
DONXT: 021F DEFINED AT LINE 281 | |
> USED AT LINE 279 | |
> USED AT LINE 1373 | |
> USED AT LINE 1465 | |
> USED AT LINE 1814 | |
> USED AT LINE 1980 | |
> USED AT LINE 2060 | |
> USED AT LINE 2073 | |
> USED AT LINE 2180 | |
> USED AT LINE 2191 | |
> USED AT LINE 2285 | |
> USED AT LINE 2855 | |
> USED AT LINE 3118 | |
> USED AT LINE 3132 | |
> USED AT LINE 3153 | |
> USED AT LINE 3169 | |
NEXT1: 022C DEFINED AT LINE 287 | |
> USED AT LINE 283 | |
L170: 0236 DEFINED AT LINE 296 | |
> USED AT LINE 308 | |
QBRAN: 023E DEFINED AT LINE 297 | |
> USED AT LINE 295 | |
> USED AT LINE 971 | |
> USED AT LINE 1189 | |
> USED AT LINE 1261 | |
> USED AT LINE 1272 | |
> USED AT LINE 1361 | |
> USED AT LINE 1368 | |
> USED AT LINE 1386 | |
> USED AT LINE 1389 | |
> USED AT LINE 1392 | |
> USED AT LINE 1463 | |
> USED AT LINE 1488 | |
> USED AT LINE 1569 | |
> USED AT LINE 1613 | |
> USED AT LINE 1704 | |
> USED AT LINE 1812 | |
> USED AT LINE 1888 | |
> USED AT LINE 1899 | |
> USED AT LINE 1954 | |
> USED AT LINE 1969 | |
> USED AT LINE 1974 | |
> USED AT LINE 1977 | |
> USED AT LINE 1982 | |
> USED AT LINE 2009 | |
> USED AT LINE 2027 | |
> USED AT LINE 2151 | |
> USED AT LINE 2172 | |
> USED AT LINE 2174 | |
> USED AT LINE 2178 | |
> USED AT LINE 2187 | |
> USED AT LINE 2189 | |
> USED AT LINE 2283 | |
> USED AT LINE 2298 | |
> USED AT LINE 2300 | |
> USED AT LINE 2307 | |
> USED AT LINE 2321 | |
> USED AT LINE 2326 | |
> USED AT LINE 2328 | |
> USED AT LINE 2342 | |
> USED AT LINE 2366 | |
> USED AT LINE 2369 | |
> USED AT LINE 2382 | |
> USED AT LINE 2386 | |
> USED AT LINE 2462 | |
> USED AT LINE 2475 | |
> USED AT LINE 2481 | |
> USED AT LINE 2500 | |
> USED AT LINE 2523 | |
> USED AT LINE 2596 | |
> USED AT LINE 2599 | |
> USED AT LINE 2604 | |
> USED AT LINE 2618 | |
> USED AT LINE 2863 | |
> USED AT LINE 2879 | |
> USED AT LINE 2963 | |
> USED AT LINE 2976 | |
> USED AT LINE 2997 | |
> USED AT LINE 2999 | |
> USED AT LINE 3003 | |
> USED AT LINE 3152 | |
> USED AT LINE 3201 | |
> USED AT LINE 3204 | |
> USED AT LINE 3206 | |
> USED AT LINE 3210 | |
> USED AT LINE 3221 | |
> USED AT LINE 3242 | |
> USED AT LINE 3248 | |
> USED AT LINE 3251 | |
> USED AT LINE 3257 | |
> USED AT LINE 3271 | |
> USED AT LINE 3278 | |
> USED AT LINE 3294 | |
> USED AT LINE 3296 | |
> USED AT LINE 3307 | |
> USED AT LINE 3310 | |
BRAN1: 0246 DEFINED AT LINE 302 | |
> USED AT LINE 299 | |
L180: 024E DEFINED AT LINE 309 | |
> USED AT LINE 316 | |
BRAN: 0255 DEFINED AT LINE 310 | |
> USED AT LINE 308 | |
> USED AT LINE 1370 | |
> USED AT LINE 1614 | |
> USED AT LINE 1810 | |
> USED AT LINE 1889 | |
> USED AT LINE 1985 | |
> USED AT LINE 2058 | |
> USED AT LINE 2070 | |
> USED AT LINE 2193 | |
> USED AT LINE 2279 | |
> USED AT LINE 2302 | |
> USED AT LINE 2304 | |
> USED AT LINE 2309 | |
> USED AT LINE 2388 | |
> USED AT LINE 2390 | |
> USED AT LINE 2525 | |
> USED AT LINE 2607 | |
> USED AT LINE 2871 | |
> USED AT LINE 2888 | |
> USED AT LINE 3115 | |
> USED AT LINE 3129 | |
> USED AT LINE 3154 | |
> USED AT LINE 3167 | |
> USED AT LINE 3208 | |
> USED AT LINE 3245 | |
> USED AT LINE 3260 | |
> USED AT LINE 3273 | |
> USED AT LINE 3286 | |
> USED AT LINE 3288 | |
> USED AT LINE 3291 | |
> USED AT LINE 3363 | |
L190: 025D DEFINED AT LINE 317 | |
> USED AT LINE 324 | |
EXECU: 0265 DEFINED AT LINE 318 | |
> USED AT LINE 316 | |
> USED AT LINE 1705 | |
> USED AT LINE 2479 | |
> USED AT LINE 3000 | |
L200: 026A DEFINED AT LINE 325 | |
> USED AT LINE 332 | |
EXIT: 026F DEFINED AT LINE 326 | |
> USED AT LINE 324 | |
> USED AT LINE 651 | |
> USED AT LINE 973 | |
> USED AT LINE 1191 | |
> USED AT LINE 1263 | |
> USED AT LINE 1274 | |
> USED AT LINE 1394 | |
> USED AT LINE 1490 | |
> USED AT LINE 1518 | |
> USED AT LINE 1528 | |
> USED AT LINE 1538 | |
> USED AT LINE 1546 | |
> USED AT LINE 1571 | |
> USED AT LINE 1582 | |
> USED AT LINE 1618 | |
> USED AT LINE 1706 | |
> USED AT LINE 1815 | |
> USED AT LINE 1890 | |
> USED AT LINE 1901 | |
> USED AT LINE 2010 | |
> USED AT LINE 2031 | |
> USED AT LINE 2041 | |
> USED AT LINE 2061 | |
> USED AT LINE 2074 | |
> USED AT LINE 2087 | |
> USED AT LINE 2104 | |
> USED AT LINE 2152 | |
> USED AT LINE 2252 | |
> USED AT LINE 2331 | |
> USED AT LINE 2346 | |
> USED AT LINE 2371 | |
> USED AT LINE 2479 | |
> USED AT LINE 2482 | |
> USED AT LINE 2503 | |
> USED AT LINE 2514 | |
> USED AT LINE 2584 | |
> USED AT LINE 2619 | |
> USED AT LINE 2692 | |
> USED AT LINE 2703 | |
> USED AT LINE 2733 | |
> USED AT LINE 2809 | |
> USED AT LINE 2821 | |
> USED AT LINE 2847 | |
> USED AT LINE 2967 | |
> USED AT LINE 2983 | |
> USED AT LINE 3000 | |
> USED AT LINE 3001 | |
> USED AT LINE 3004 | |
> USED AT LINE 3021 | |
> USED AT LINE 3041 | |
> USED AT LINE 3074 | |
> USED AT LINE 3104 | |
> USED AT LINE 3119 | |
> USED AT LINE 3133 | |
> USED AT LINE 3157 | |
> USED AT LINE 3172 | |
> USED AT LINE 3191 | |
> USED AT LINE 3225 | |
> USED AT LINE 3228 | |
> USED AT LINE 3312 | |
> USED AT LINE 3333 | |
L210: 0277 DEFINED AT LINE 333 | |
> USED AT LINE 347 | |
STORE: 0279 DEFINED AT LINE 334 | |
> USED AT LINE 332 | |
> USED AT LINE 1650 | |
> USED AT LINE 1930 | |
> USED AT LINE 1940 | |
> USED AT LINE 2171 | |
> USED AT LINE 2295 | |
> USED AT LINE 2637 | |
> USED AT LINE 2672 | |
> USED AT LINE 2983 | |
L220: 0285 DEFINED AT LINE 348 | |
> USED AT LINE 356 | |
AT: 0287 DEFINED AT LINE 349 | |
> USED AT LINE 347 | |
> USED AT LINE 676 | |
> USED AT LINE 1662 | |
> USED AT LINE 1679 | |
> USED AT LINE 1703 | |
> USED AT LINE 1870 | |
> USED AT LINE 1879 | |
> USED AT LINE 1967 | |
> USED AT LINE 2148 | |
> USED AT LINE 2161 | |
> USED AT LINE 2185 | |
> USED AT LINE 2186 | |
> USED AT LINE 2207 | |
> USED AT LINE 2232 | |
> USED AT LINE 2251 | |
> USED AT LINE 2296 | |
> USED AT LINE 2297 | |
> USED AT LINE 2299 | |
> USED AT LINE 2325 | |
> USED AT LINE 2431 | |
> USED AT LINE 2476 | |
> USED AT LINE 2536 | |
> USED AT LINE 2592 | |
> USED AT LINE 2597 | |
> USED AT LINE 2680 | |
> USED AT LINE 2981 | |
> USED AT LINE 2998 | |
> USED AT LINE 3013 | |
> USED AT LINE 3059 | |
> USED AT LINE 3141 | |
> USED AT LINE 3200 | |
> USED AT LINE 3203 | |
> USED AT LINE 3239 | |
> USED AT LINE 3240 | |
> USED AT LINE 3247 | |
> USED AT LINE 3254 | |
> USED AT LINE 3290 | |
> USED AT LINE 3292 | |
> USED AT LINE 3306 | |
L230: 0291 DEFINED AT LINE 357 | |
> USED AT LINE 372 | |
CSTOR: 0294 DEFINED AT LINE 358 | |
> USED AT LINE 356 | |
> USED AT LINE 1824 | |
> USED AT LINE 2355 | |
> USED AT LINE 3039 | |
L240: 02A0 DEFINED AT LINE 373 | |
> USED AT LINE 382 | |
CAT: 02A3 DEFINED AT LINE 374 | |
> USED AT LINE 372 | |
> USED AT LINE 1671 | |
> USED AT LINE 1968 | |
> USED AT LINE 1972 | |
> USED AT LINE 2071 | |
> USED AT LINE 2975 | |
> USED AT LINE 3116 | |
> USED AT LINE 3130 | |
L250: 02AE DEFINED AT LINE 383 | |
> USED AT LINE 390 | |
RPAT: 02B2 DEFINED AT LINE 384 | |
> USED AT LINE 382 | |
> USED AT LINE 2421 | |
L260: 02BA DEFINED AT LINE 391 | |
> USED AT LINE 398 | |
RPSTO: 02BE DEFINED AT LINE 392 | |
> USED AT LINE 390 | |
L270: 02C6 DEFINED AT LINE 399 | |
> USED AT LINE 408 | |
RFROM: 02C9 DEFINED AT LINE 400 | |
> USED AT LINE 398 | |
> USED AT LINE 651 | |
> USED AT LINE 676 | |
> USED AT LINE 950 | |
> USED AT LINE 1283 | |
> USED AT LINE 1365 | |
> USED AT LINE 1366 | |
> USED AT LINE 1367 | |
> USED AT LINE 1372 | |
> USED AT LINE 1391 | |
> USED AT LINE 1487 | |
> USED AT LINE 1617 | |
> USED AT LINE 1813 | |
> USED AT LINE 1959 | |
> USED AT LINE 1986 | |
> USED AT LINE 1986 | |
> USED AT LINE 1988 | |
> USED AT LINE 1989 | |
> USED AT LINE 2095 | |
> USED AT LINE 2130 | |
> USED AT LINE 2181 | |
> USED AT LINE 2182 | |
> USED AT LINE 2194 | |
> USED AT LINE 2197 | |
> USED AT LINE 2197 | |
> USED AT LINE 2198 | |
> USED AT LINE 2208 | |
> USED AT LINE 2284 | |
> USED AT LINE 2305 | |
> USED AT LINE 2310 | |
> USED AT LINE 2324 | |
> USED AT LINE 2329 | |
> USED AT LINE 2330 | |
> USED AT LINE 2422 | |
> USED AT LINE 2423 | |
> USED AT LINE 2432 | |
> USED AT LINE 2433 | |
> USED AT LINE 2434 | |
> USED AT LINE 2603 | |
> USED AT LINE 2653 | |
> USED AT LINE 3155 | |
> USED AT LINE 3156 | |
> USED AT LINE 3297 | |
L279: 02D3 DEFINED AT LINE 409 | |
> USED AT LINE 414 | |
L280: 02D9 DEFINED AT LINE 415 | |
> USED AT LINE 426 | |
RAT: 02DC DEFINED AT LINE 416 | |
> USED AT LINE 408 | |
> USED AT LINE 414 | |
> USED AT LINE 1366 | |
> USED AT LINE 1390 | |
> USED AT LINE 1973 | |
> USED AT LINE 1981 | |
> USED AT LINE 2095 | |
> USED AT LINE 2280 | |
> USED AT LINE 2281 | |
> USED AT LINE 3168 | |
I: 02DC DEFINED AT LINE 417 | |
L290: 02E6 DEFINED AT LINE 427 | |
> USED AT LINE 437 | |
TOR: 02E9 DEFINED AT LINE 428 | |
> USED AT LINE 426 | |
> USED AT LINE 982 | |
> USED AT LINE 1363 | |
> USED AT LINE 1364 | |
> USED AT LINE 1364 | |
> USED AT LINE 1369 | |
> USED AT LINE 1387 | |
> USED AT LINE 1388 | |
> USED AT LINE 1464 | |
> USED AT LINE 1498 | |
> USED AT LINE 1615 | |
> USED AT LINE 1809 | |
> USED AT LINE 1823 | |
> USED AT LINE 1918 | |
> USED AT LINE 1950 | |
> USED AT LINE 1975 | |
> USED AT LINE 1976 | |
> USED AT LINE 2069 | |
> USED AT LINE 2096 | |
> USED AT LINE 2120 | |
> USED AT LINE 2129 | |
> USED AT LINE 2175 | |
> USED AT LINE 2184 | |
> USED AT LINE 2192 | |
> USED AT LINE 2195 | |
> USED AT LINE 2206 | |
> USED AT LINE 2278 | |
> USED AT LINE 2323 | |
> USED AT LINE 2341 | |
> USED AT LINE 2420 | |
> USED AT LINE 2654 | |
> USED AT LINE 2839 | |
> USED AT LINE 3114 | |
> USED AT LINE 3128 | |
> USED AT LINE 3145 | |
> USED AT LINE 3166 | |
L300: 02F3 DEFINED AT LINE 438 | |
> USED AT LINE 449 | |
SPAT: 02F7 DEFINED AT LINE 439 | |
> USED AT LINE 437 | |
> USED AT LINE 1579 | |
> USED AT LINE 2420 | |
> USED AT LINE 3180 | |
> USED AT LINE 3188 | |
L310: 0301 DEFINED AT LINE 450 | |
> USED AT LINE 457 | |
SPSTO: 0305 DEFINED AT LINE 451 | |
> USED AT LINE 449 | |
L320: 030E DEFINED AT LINE 458 | |
> USED AT LINE 465 | |
DROP: 0313 DEFINED AT LINE 459 | |
> USED AT LINE 457 | |
> USED AT LINE 991 | |
> USED AT LINE 991 | |
> USED AT LINE 1263 | |
> USED AT LINE 1274 | |
> USED AT LINE 1369 | |
> USED AT LINE 1371 | |
> USED AT LINE 1374 | |
> USED AT LINE 1375 | |
> USED AT LINE 1410 | |
> USED AT LINE 1466 | |
> USED AT LINE 1476 | |
> USED AT LINE 1570 | |
> USED AT LINE 1614 | |
> USED AT LINE 1909 | |
> USED AT LINE 2074 | |
> USED AT LINE 2181 | |
> USED AT LINE 2194 | |
> USED AT LINE 2284 | |
> USED AT LINE 2305 | |
> USED AT LINE 2310 | |
> USED AT LINE 2329 | |
> USED AT LINE 2330 | |
> USED AT LINE 2372 | |
> USED AT LINE 2391 | |
> USED AT LINE 2410 | |
> USED AT LINE 2423 | |
> USED AT LINE 2434 | |
> USED AT LINE 2464 | |
> USED AT LINE 2526 | |
> USED AT LINE 2912 | |
> USED AT LINE 2967 | |
> USED AT LINE 3119 | |
> USED AT LINE 3155 | |
> USED AT LINE 3156 | |
> USED AT LINE 3209 | |
> USED AT LINE 3211 | |
> USED AT LINE 3212 | |
> USED AT LINE 3285 | |
> USED AT LINE 3287 | |
> USED AT LINE 3311 | |
L330: 031B DEFINED AT LINE 466 | |
> USED AT LINE 475 | |
DUPP: 031F DEFINED AT LINE 467 | |
> USED AT LINE 465 | |
> USED AT LINE 970 | |
> USED AT LINE 972 | |
> USED AT LINE 1188 | |
> USED AT LINE 1363 | |
> USED AT LINE 1385 | |
> USED AT LINE 1388 | |
> USED AT LINE 1461 | |
> USED AT LINE 1462 | |
> USED AT LINE 1612 | |
> USED AT LINE 1661 | |
> USED AT LINE 1670 | |
> USED AT LINE 1823 | |
> USED AT LINE 1871 | |
> USED AT LINE 1887 | |
> USED AT LINE 1918 | |
> USED AT LINE 1958 | |
> USED AT LINE 1959 | |
> USED AT LINE 1976 | |
> USED AT LINE 1987 | |
> USED AT LINE 2026 | |
> USED AT LINE 2071 | |
> USED AT LINE 2192 | |
> USED AT LINE 2294 | |
> USED AT LINE 2296 | |
> USED AT LINE 2297 | |
> USED AT LINE 2299 | |
> USED AT LINE 2312 | |
> USED AT LINE 2320 | |
> USED AT LINE 2354 | |
> USED AT LINE 2363 | |
> USED AT LINE 2367 | |
> USED AT LINE 2383 | |
> USED AT LINE 2522 | |
> USED AT LINE 2636 | |
> USED AT LINE 2653 | |
> USED AT LINE 2962 | |
> USED AT LINE 2975 | |
> USED AT LINE 2978 | |
> USED AT LINE 2982 | |
> USED AT LINE 3116 | |
> USED AT LINE 3130 | |
> USED AT LINE 3203 | |
> USED AT LINE 3240 | |
> USED AT LINE 3247 | |
> USED AT LINE 3254 | |
> USED AT LINE 3256 | |
> USED AT LINE 3262 | |
> USED AT LINE 3275 | |
> USED AT LINE 3280 | |
> USED AT LINE 3290 | |
> USED AT LINE 3292 | |
> USED AT LINE 3308 | |
L340: 0329 DEFINED AT LINE 476 | |
> USED AT LINE 495 | |
SWAP: 032E DEFINED AT LINE 477 | |
> USED AT LINE 475 | |
> USED AT LINE 982 | |
> USED AT LINE 1262 | |
> USED AT LINE 1271 | |
> USED AT LINE 1273 | |
> USED AT LINE 1374 | |
> USED AT LINE 1393 | |
> USED AT LINE 1419 | |
> USED AT LINE 1486 | |
> USED AT LINE 1506 | |
> USED AT LINE 1615 | |
> USED AT LINE 1649 | |
> USED AT LINE 1662 | |
> USED AT LINE 1671 | |
> USED AT LINE 1827 | |
> USED AT LINE 1828 | |
> USED AT LINE 1852 | |
> USED AT LINE 1853 | |
> USED AT LINE 1970 | |
> USED AT LINE 1971 | |
> USED AT LINE 1973 | |
> USED AT LINE 1978 | |
> USED AT LINE 1981 | |
> USED AT LINE 1984 | |
> USED AT LINE 2183 | |
> USED AT LINE 2294 | |
> USED AT LINE 2306 | |
> USED AT LINE 2368 | |
> USED AT LINE 2372 | |
> USED AT LINE 2433 | |
> USED AT LINE 2904 | |
> USED AT LINE 2920 | |
> USED AT LINE 2928 | |
> USED AT LINE 3209 | |
> USED AT LINE 3211 | |
> USED AT LINE 3259 | |
> USED AT LINE 3272 | |
> USED AT LINE 3279 | |
L350: 033C DEFINED AT LINE 496 | |
> USED AT LINE 505 | |
OVER: 0341 DEFINED AT LINE 497 | |
> USED AT LINE 495 | |
> USED AT LINE 1000 | |
> USED AT LINE 1000 | |
> USED AT LINE 1282 | |
> USED AT LINE 1402 | |
> USED AT LINE 1464 | |
> USED AT LINE 1649 | |
> USED AT LINE 1811 | |
> USED AT LINE 1840 | |
> USED AT LINE 1910 | |
> USED AT LINE 1953 | |
> USED AT LINE 1968 | |
> USED AT LINE 1972 | |
> USED AT LINE 2130 | |
> USED AT LINE 2176 | |
> USED AT LINE 2183 | |
> USED AT LINE 2196 | |
> USED AT LINE 2198 | |
> USED AT LINE 2280 | |
> USED AT LINE 2281 | |
> USED AT LINE 2341 | |
> USED AT LINE 2355 | |
> USED AT LINE 2380 | |
> USED AT LINE 2391 | |
> USED AT LINE 2966 | |
> USED AT LINE 3127 | |
> USED AT LINE 3258 | |
> USED AT LINE 3263 | |
> USED AT LINE 3264 | |
> USED AT LINE 3265 | |
> USED AT LINE 3266 | |
> USED AT LINE 3267 | |
> USED AT LINE 3268 | |
> USED AT LINE 3269 | |
> USED AT LINE 3270 | |
> USED AT LINE 3276 | |
> USED AT LINE 3277 | |
L360: 034B DEFINED AT LINE 506 | |
> USED AT LINE 516 | |
ZLESS: 034E DEFINED AT LINE 507 | |
> USED AT LINE 505 | |
> USED AT LINE 1188 | |
> USED AT LINE 1385 | |
> USED AT LINE 1402 | |
> USED AT LINE 1898 | |
> USED AT LINE 2177 | |
> USED AT LINE 2188 | |
> USED AT LINE 2511 | |
L365: 035B DEFINED AT LINE 517 | |
> USED AT LINE 529 | |
ZEQUAL: 035E DEFINED AT LINE 518 | |
> USED AT LINE 516 | |
ZEQUAL1: 0368 DEFINED AT LINE 523 | |
> USED AT LINE 521 | |
L370: 0370 DEFINED AT LINE 530 | |
> USED AT LINE 540 | |
ANDD: 0374 DEFINED AT LINE 531 | |
> USED AT LINE 529 | |
> USED AT LINE 1843 | |
> USED AT LINE 3224 | |
L380: 0382 DEFINED AT LINE 541 | |
> USED AT LINE 551 | |
ORR: 0385 DEFINED AT LINE 542 | |
> USED AT LINE 540 | |
L390: 0393 DEFINED AT LINE 552 | |
> USED AT LINE 562 | |
XORR: 0397 DEFINED AT LINE 553 | |
> USED AT LINE 551 | |
> USED AT LINE 1485 | |
> USED AT LINE 2150 | |
> USED AT LINE 2365 | |
> USED AT LINE 2381 | |
L391: 03A5 DEFINED AT LINE 563 | |
> USED AT LINE 577 | |
DPLUS: 03A8 DEFINED AT LINE 564 | |
> USED AT LINE 562 | |
> USED AT LINE 580 | |
L392: 03BE DEFINED AT LINE 578 | |
> USED AT LINE 586 | |
DSUB: 03C1 DEFINED AT LINE 579 | |
> USED AT LINE 577 | |
L400: 03CE DEFINED AT LINE 587 | |
> USED AT LINE 601 | |
UPLUS: 03D2 DEFINED AT LINE 588 | |
> USED AT LINE 586 | |
> USED AT LINE 1367 | |
> USED AT LINE 1461 | |
> USED AT LINE 1462 | |
L401: 03E5 DEFINED AT LINE 602 | |
> USED AT LINE 612 | |
DOCONST: 03ED DEFINED AT LINE 603 | |
> USED AT LINE 601 | |
> USED AT LINE 1554 | |
> USED AT LINE 3103 | |
FDOCONST: 03ED DEFINED AT LINE 604 | |
> USED AT LINE 614 | |
> USED AT LINE 622 | |
> USED AT LINE 630 | |
> USED AT LINE 639 | |
L402: 03F7 DEFINED AT LINE 613 | |
> USED AT LINE 620 | |
ZERO: 03F9 DEFINED AT LINE 614 | |
> USED AT LINE 612 | |
> USED AT LINE 1815 | |
> USED AT LINE 1827 | |
> USED AT LINE 1852 | |
> USED AT LINE 2057 | |
> USED AT LINE 2331 | |
> USED AT LINE 2410 | |
> USED AT LINE 2880 | |
> USED AT LINE 3094 | |
L403: 0402 DEFINED AT LINE 621 | |
> USED AT LINE 628 | |
ONE: 0404 DEFINED AT LINE 622 | |
> USED AT LINE 620 | |
> USED AT LINE 2691 | |
> USED AT LINE 3040 | |
L404: 040D DEFINED AT LINE 629 | |
> USED AT LINE 637 | |
TWO: 040F DEFINED AT LINE 630 | |
> USED AT LINE 628 | |
> USED AT LINE 1612 | |
> USED AT LINE 2702 | |
> USED AT LINE 2732 | |
> USED AT LINE 2807 | |
> USED AT LINE 2819 | |
> USED AT LINE 3150 | |
L405: 0418 DEFINED AT LINE 638 | |
> USED AT LINE 647 | |
MONE: 041B DEFINED AT LINE 639 | |
> USED AT LINE 637 | |
> USED AT LINE 2301 | |
L410: 0424 DEFINED AT LINE 648 | |
> USED AT LINE 660 | |
DOVAR: 042A DEFINED AT LINE 649 | |
> USED AT LINE 647 | |
FDOVAR: 0431 DEFINED AT LINE 654 | |
> USED AT LINE 666 | |
> USED AT LINE 2444 | |
> USED AT LINE 2574 | |
> USED AT LINE 3086 | |
> USED AT LINE 3343 | |
L420: 0437 DEFINED AT LINE 661 | |
> USED AT LINE 672 | |
UP: 043A DEFINED AT LINE 662 | |
> USED AT LINE 660 | |
> USED AT LINE 681 | |
L430: 0443 DEFINED AT LINE 673 | |
> USED AT LINE 690 | |
DOUSE: 044A DEFINED AT LINE 674 | |
> USED AT LINE 672 | |
FDOUSE: 0459 DEFINED AT LINE 679 | |
> USED AT LINE 693 | |
> USED AT LINE 704 | |
> USED AT LINE 715 | |
> USED AT LINE 726 | |
> USED AT LINE 737 | |
> USED AT LINE 748 | |
> USED AT LINE 759 | |
> USED AT LINE 770 | |
> USED AT LINE 782 | |
> USED AT LINE 793 | |
> USED AT LINE 804 | |
> USED AT LINE 815 | |
> USED AT LINE 826 | |
> USED AT LINE 837 | |
> USED AT LINE 848 | |
> USED AT LINE 859 | |
> USED AT LINE 870 | |
> USED AT LINE 881 | |
> USED AT LINE 892 | |
> USED AT LINE 903 | |
> USED AT LINE 914 | |
> USED AT LINE 925 | |
> USED AT LINE 936 | |
> USED AT LINE 3073 | |
L440: 0466 DEFINED AT LINE 691 | |
> USED AT LINE 701 | |
SZERO: 046A DEFINED AT LINE 692 | |
> USED AT LINE 690 | |
> USED AT LINE 1579 | |
> USED AT LINE 2536 | |
L450: 0473 DEFINED AT LINE 702 | |
> USED AT LINE 712 | |
RZERO: 0477 DEFINED AT LINE 703 | |
> USED AT LINE 701 | |
> USED AT LINE 2592 | |
L460: 0480 DEFINED AT LINE 713 | |
> USED AT LINE 723 | |
TQKEY: 0486 DEFINED AT LINE 714 | |
> USED AT LINE 712 | |
> USED AT LINE 2000 | |
L470: 048F DEFINED AT LINE 724 | |
> USED AT LINE 734 | |
TEMIT: 0495 DEFINED AT LINE 725 | |
> USED AT LINE 723 | |
> USED AT LINE 2018 | |
L480: 049E DEFINED AT LINE 735 | |
> USED AT LINE 745 | |
TEXPE: 04A6 DEFINED AT LINE 736 | |
> USED AT LINE 734 | |
> USED AT LINE 2399 | |
> USED AT LINE 2409 | |
L490: 04AF DEFINED AT LINE 746 | |
> USED AT LINE 756 | |
TTAP: 04B4 DEFINED AT LINE 747 | |
> USED AT LINE 745 | |
> USED AT LINE 2389 | |
L500: 04BD DEFINED AT LINE 757 | |
> USED AT LINE 767 | |
TECHO: 04C3 DEFINED AT LINE 758 | |
> USED AT LINE 756 | |
> USED AT LINE 2344 | |
> USED AT LINE 2354 | |
> USED AT LINE 2546 | |
L510: 04CC DEFINED AT LINE 768 | |
> USED AT LINE 779 | |
TPROM: 04D4 DEFINED AT LINE 769 | |
> USED AT LINE 767 | |
> USED AT LINE 2526 | |
> USED AT LINE 2597 | |
L520: 04DD DEFINED AT LINE 780 | |
> USED AT LINE 790 | |
BASE: 04E2 DEFINED AT LINE 781 | |
> USED AT LINE 779 | |
> USED AT LINE 1879 | |
> USED AT LINE 1930 | |
> USED AT LINE 1940 | |
> USED AT LINE 1967 | |
> USED AT LINE 1978 | |
> USED AT LINE 1989 | |
> USED AT LINE 2148 | |
> USED AT LINE 3141 | |
> USED AT LINE 3239 | |
> USED AT LINE 3297 | |
L530: 04EB DEFINED AT LINE 791 | |
> USED AT LINE 801 | |
TEMP: 04EF DEFINED AT LINE 792 | |
> USED AT LINE 790 | |
> USED AT LINE 2171 | |
> USED AT LINE 2173 | |
> USED AT LINE 2185 | |
> USED AT LINE 2186 | |
> USED AT LINE 2295 | |
> USED AT LINE 2303 | |
L540: 04F8 DEFINED AT LINE 802 | |
> USED AT LINE 812 | |
SPAN: 04FD DEFINED AT LINE 803 | |
> USED AT LINE 801 | |
L550: 0506 DEFINED AT LINE 813 | |
> USED AT LINE 823 | |
INN: 050A DEFINED AT LINE 814 | |
> USED AT LINE 812 | |
L560: 0513 DEFINED AT LINE 824 | |
> USED AT LINE 834 | |
NTIB: 0518 DEFINED AT LINE 825 | |
> USED AT LINE 823 | |
> USED AT LINE 1695 | |
> USED AT LINE 2207 | |
> USED AT LINE 2232 | |
L570: 0521 DEFINED AT LINE 835 | |
> USED AT LINE 845 | |
CSP: 0525 DEFINED AT LINE 836 | |
> USED AT LINE 834 | |
> USED AT LINE 3180 | |
> USED AT LINE 3188 | |
L580: 052E DEFINED AT LINE 846 | |
> USED AT LINE 856 | |
TEVAL: 0534 DEFINED AT LINE 847 | |
> USED AT LINE 845 | |
> USED AT LINE 2524 | |
L590: 053D DEFINED AT LINE 857 | |
> USED AT LINE 867 | |
TNUMB: 0545 DEFINED AT LINE 858 | |
> USED AT LINE 856 | |
> USED AT LINE 2480 | |
> USED AT LINE 3002 | |
L600: 054E DEFINED AT LINE 868 | |
> USED AT LINE 878 | |
HLD: 0552 DEFINED AT LINE 869 | |
> USED AT LINE 867 | |
> USED AT LINE 1861 | |
> USED AT LINE 1870 | |
> USED AT LINE 1871 | |
> USED AT LINE 1909 | |
L610: 055B DEFINED AT LINE 879 | |
> USED AT LINE 889 | |
HANDL: 0563 DEFINED AT LINE 880 | |
> USED AT LINE 878 | |
> USED AT LINE 2421 | |
> USED AT LINE 2422 | |
> USED AT LINE 2431 | |
> USED AT LINE 2432 | |
L620: 056C DEFINED AT LINE 890 | |
> USED AT LINE 900 | |
CNTXT: 0574 DEFINED AT LINE 891 | |
> USED AT LINE 889 | |
> USED AT LINE 950 | |
> USED AT LINE 2320 | |
> USED AT LINE 3305 | |
> USED AT LINE 3356 | |
L630: 057D DEFINED AT LINE 901 | |
> USED AT LINE 911 | |
CRRNT: 0585 DEFINED AT LINE 902 | |
> USED AT LINE 900 | |
> USED AT LINE 2981 | |
> USED AT LINE 3199 | |
> USED AT LINE 3357 | |
L640: 058E DEFINED AT LINE 912 | |
> USED AT LINE 922 | |
CP: 0591 DEFINED AT LINE 913 | |
> USED AT LINE 911 | |
> USED AT LINE 1679 | |
> USED AT LINE 2628 | |
> USED AT LINE 2637 | |
> USED AT LINE 2672 | |
L650: 059A DEFINED AT LINE 923 | |
> USED AT LINE 933 | |
NP: 059D DEFINED AT LINE 924 | |
> USED AT LINE 922 | |
> USED AT LINE 2251 | |
L660: 05A6 DEFINED AT LINE 934 | |
> USED AT LINE 946 | |
LAST: 05AB DEFINED AT LINE 935 | |
> USED AT LINE 933 | |
> USED AT LINE 2680 | |
> USED AT LINE 2978 | |
> USED AT LINE 3013 | |
> USED AT LINE 3059 | |
L670: 05B4 DEFINED AT LINE 947 | |
> USED AT LINE 955 | |
DOVOC: 05BA DEFINED AT LINE 948 | |
> USED AT LINE 946 | |
> USED AT LINE 959 | |
L680: 05C9 DEFINED AT LINE 956 | |
> USED AT LINE 966 | |
FORTH: 05CF DEFINED AT LINE 957 | |
> USED AT LINE 955 | |
> USED AT LINE 3356 | |
L690: 05DC DEFINED AT LINE 967 | |
> USED AT LINE 978 | |
QDUP: 05E1 DEFINED AT LINE 968 | |
> USED AT LINE 966 | |
> USED AT LINE 1703 | |
> USED AT LINE 2282 | |
> USED AT LINE 2325 | |
> USED AT LINE 2327 | |
> USED AT LINE 2474 | |
> USED AT LINE 2996 | |
> USED AT LINE 3220 | |
> USED AT LINE 3250 | |
> USED AT LINE 3306 | |
QDUP1: 05EC DEFINED AT LINE 973 | |
> USED AT LINE 971 | |
L700: 05F2 DEFINED AT LINE 979 | |
> USED AT LINE 987 | |
ROT: 05F6 DEFINED AT LINE 980 | |
> USED AT LINE 978 | |
> USED AT LINE 1466 | |
> USED AT LINE 3149 | |
> USED AT LINE 3149 | |
L710: 0607 DEFINED AT LINE 988 | |
> USED AT LINE 996 | |
DDROP: 060D DEFINED AT LINE 989 | |
> USED AT LINE 987 | |
> USED AT LINE 1375 | |
> USED AT LINE 1988 | |
> USED AT LINE 2028 | |
L720: 061A DEFINED AT LINE 997 | |
> USED AT LINE 1004 | |
DDUP: 061F DEFINED AT LINE 998 | |
> USED AT LINE 996 | |
> USED AT LINE 1260 | |
> USED AT LINE 1271 | |
> USED AT LINE 1360 | |
> USED AT LINE 1485 | |
> USED AT LINE 1824 | |
> USED AT LINE 1826 | |
> USED AT LINE 2381 | |
> USED AT LINE 3148 | |
> USED AT LINE 3202 | |
> USED AT LINE 3205 | |
L721: 062C DEFINED AT LINE 1005 | |
> USED AT LINE 1019 | |
LSHIFT: 0633 DEFINED AT LINE 1006 | |
> USED AT LINE 1004 | |
LSHIFT1: 0639 DEFINED AT LINE 1009 | |
> USED AT LINE 1012 | |
LSHIFT2: 0641 DEFINED AT LINE 1014 | |
> USED AT LINE 1007 | |
L721A: 0647 DEFINED AT LINE 1020 | |
> USED AT LINE 1034 | |
RSHIFT: 064E DEFINED AT LINE 1021 | |
> USED AT LINE 1019 | |
RSHIFT1: 0654 DEFINED AT LINE 1024 | |
> USED AT LINE 1027 | |
RSHIFT2: 065C DEFINED AT LINE 1029 | |
> USED AT LINE 1022 | |
L722: 0662 DEFINED AT LINE 1035 | |
> USED AT LINE 1043 | |
SWAPHL: 0665 DEFINED AT LINE 1036 | |
> USED AT LINE 1034 | |
L723: 0671 DEFINED AT LINE 1044 | |
> USED AT LINE 1052 | |
SLASH256: 0676 DEFINED AT LINE 1045 | |
> USED AT LINE 1043 | |
L724: 0681 DEFINED AT LINE 1053 | |
> USED AT LINE 1061 | |
STAR256: 0686 DEFINED AT LINE 1054 | |
> USED AT LINE 1052 | |
L725: 0691 DEFINED AT LINE 1062 | |
> USED AT LINE 1070 | |
PLUS1: 0694 DEFINED AT LINE 1063 | |
> USED AT LINE 1061 | |
> USED AT LINE 1670 | |
> USED AT LINE 1813 | |
> USED AT LINE 1825 | |
> USED AT LINE 1979 | |
> USED AT LINE 2072 | |
> USED AT LINE 2179 | |
> USED AT LINE 2190 | |
> USED AT LINE 2195 | |
> USED AT LINE 3117 | |
> USED AT LINE 3131 | |
> USED AT LINE 3237 | |
> USED AT LINE 3259 | |
L726: 06A1 DEFINED AT LINE 1071 | |
> USED AT LINE 1079 | |
MINUS1: 06A4 DEFINED AT LINE 1072 | |
> USED AT LINE 1070 | |
> USED AT LINE 1971 | |
> USED AT LINE 1975 | |
> USED AT LINE 2173 | |
L727: 06B1 DEFINED AT LINE 1080 | |
> USED AT LINE 1087 | |
TWOSTAR: 06B4 DEFINED AT LINE 1081 | |
> USED AT LINE 1079 | |
L728: 06BE DEFINED AT LINE 1088 | |
> USED AT LINE 1096 | |
TWOSLASH: 06C1 DEFINED AT LINE 1089 | |
> USED AT LINE 1087 | |
L730: 06CB DEFINED AT LINE 1097 | |
> USED AT LINE 1110 | |
PLUS: 06CD DEFINED AT LINE 1098 | |
> USED AT LINE 1096 | |
> USED AT LINE 1365 | |
> USED AT LINE 1390 | |
> USED AT LINE 1518 | |
> USED AT LINE 1528 | |
> USED AT LINE 1826 | |
> USED AT LINE 1843 | |
> USED AT LINE 2380 | |
> USED AT LINE 2671 | |
> USED AT LINE 3283 | |
L740: 06D9 DEFINED AT LINE 1111 | |
> USED AT LINE 1130 | |
INVER: 06DD DEFINED AT LINE 1112 | |
> USED AT LINE 1110 | |
> USED AT LINE 3151 | |
L750: 06EF DEFINED AT LINE 1131 | |
> USED AT LINE 1152 | |
NEGAT: 06F6 DEFINED AT LINE 1132 | |
> USED AT LINE 1130 | |
> USED AT LINE 1190 | |
> USED AT LINE 1362 | |
> USED AT LINE 1387 | |
> USED AT LINE 1393 | |
> USED AT LINE 1983 | |
NEGAT1: 0707 DEFINED AT LINE 1143 | |
> USED AT LINE 1140 | |
L760: 070F DEFINED AT LINE 1153 | |
> USED AT LINE 1172 | |
DNEGA: 0717 DEFINED AT LINE 1154 | |
> USED AT LINE 580 | |
> USED AT LINE 1152 | |
> USED AT LINE 1489 | |
L770: 072D DEFINED AT LINE 1173 | |
> USED AT LINE 1185 | |
SUBB: 072F DEFINED AT LINE 1174 | |
> USED AT LINE 1172 | |
> USED AT LINE 1282 | |
> USED AT LINE 1283 | |
> USED AT LINE 1616 | |
> USED AT LINE 1957 | |
> USED AT LINE 2177 | |
> USED AT LINE 2196 | |
> USED AT LINE 2282 | |
L780: 073B DEFINED AT LINE 1186 | |
> USED AT LINE 1196 | |
ABSS: 073F DEFINED AT LINE 1187 | |
> USED AT LINE 1185 | |
> USED AT LINE 1486 | |
ABS1: 074C DEFINED AT LINE 1191 | |
> USED AT LINE 1189 | |
L790: 0752 DEFINED AT LINE 1197 | |
> USED AT LINE 1216 | |
EQUAL: 0754 DEFINED AT LINE 1198 | |
> USED AT LINE 1196 | |
> USED AT LINE 2030 | |
> USED AT LINE 2807 | |
> USED AT LINE 2819 | |
EQUAL1: 0761 DEFINED AT LINE 1204 | |
> USED AT LINE 1202 | |
L800: 0769 DEFINED AT LINE 1217 | |
> USED AT LINE 1236 | |
ULESS: 076C DEFINED AT LINE 1218 | |
> USED AT LINE 1216 | |
> USED AT LINE 1360 | |
ULES1: 0779 DEFINED AT LINE 1224 | |
> USED AT LINE 1222 | |
L810: 0781 DEFINED AT LINE 1237 | |
> USED AT LINE 1257 | |
LESS: 0783 DEFINED AT LINE 1238 | |
> USED AT LINE 1236 | |
> USED AT LINE 1260 | |
> USED AT LINE 1613 | |
> USED AT LINE 1840 | |
> USED AT LINE 1953 | |
LESS1: 0790 DEFINED AT LINE 1244 | |
> USED AT LINE 1242 | |
L820: 0798 DEFINED AT LINE 1258 | |
> USED AT LINE 1268 | |
MAX: 079C DEFINED AT LINE 1259 | |
> USED AT LINE 1257 | |
> USED AT LINE 2057 | |
MAX1: 07A9 DEFINED AT LINE 1263 | |
> USED AT LINE 1261 | |
L830: 07B1 DEFINED AT LINE 1269 | |
> USED AT LINE 1279 | |
MIN: 07B5 DEFINED AT LINE 1270 | |
> USED AT LINE 1268 | |
> USED AT LINE 2250 | |
MIN1: 07C4 DEFINED AT LINE 1274 | |
> USED AT LINE 1272 | |
L840: 07CC DEFINED AT LINE 1280 | |
> USED AT LINE 1311 | |
WITHI: 07D3 DEFINED AT LINE 1281 | |
> USED AT LINE 1279 | |
> USED AT LINE 1568 | |
L845: 07E8 DEFINED AT LINE 1312 | |
> USED AT LINE 1354 | |
USLASH: 07EB DEFINED AT LINE 1314 | |
> USED AT LINE 1311 | |
> USED AT LINE 1357 | |
UMMOD1: 07F9 DEFINED AT LINE 1322 | |
> USED AT LINE 1334 | |
UMMOD2: 0806 DEFINED AT LINE 1329 | |
> USED AT LINE 1324 | |
> USED AT LINE 1326 | |
UMMOD3: 080A DEFINED AT LINE 1331 | |
> USED AT LINE 1328 | |
UMMODOV: 0819 DEFINED AT LINE 1339 | |
> USED AT LINE 1318 | |
UMMOD4: 081E DEFINED AT LINE 1343 | |
> USED AT LINE 1338 | |
L850: 082A DEFINED AT LINE 1355 | |
> USED AT LINE 1381 | |
UMMOD: 0831 DEFINED AT LINE 1356 | |
> USED AT LINE 1354 | |
> USED AT LINE 1391 | |
UMM1: 0847 DEFINED AT LINE 1363 | |
> USED AT LINE 1373 | |
UMM2: 0879 DEFINED AT LINE 1371 | |
> USED AT LINE 1368 | |
UMM3: 087B DEFINED AT LINE 1372 | |
> USED AT LINE 1370 | |
UMM4: 0887 DEFINED AT LINE 1375 | |
> USED AT LINE 1361 | |
L860: 0897 DEFINED AT LINE 1382 | |
> USED AT LINE 1399 | |
MSMOD: 089D DEFINED AT LINE 1383 | |
> USED AT LINE 1381 | |
MMOD1: 08B4 DEFINED AT LINE 1388 | |
> USED AT LINE 1386 | |
MMOD2: 08C2 DEFINED AT LINE 1391 | |
> USED AT LINE 1389 | |
MMOD3: 08D2 DEFINED AT LINE 1394 | |
> USED AT LINE 1392 | |
L870: 08D8 DEFINED AT LINE 1400 | |
> USED AT LINE 1407 | |
SLMOD: 08DD DEFINED AT LINE 1401 | |
> USED AT LINE 1399 | |
> USED AT LINE 1410 | |
> USED AT LINE 1419 | |
L880: 08EE DEFINED AT LINE 1408 | |
> USED AT LINE 1415 | |
MODD: 08F2 DEFINED AT LINE 1409 | |
> USED AT LINE 1407 | |
L890: 08FF DEFINED AT LINE 1416 | |
> USED AT LINE 1426 | |
SLASH: 0901 DEFINED AT LINE 1417 | |
> USED AT LINE 1415 | |
> USED AT LINE 1582 | |
> USED AT LINE 3144 | |
L900: 0910 DEFINED AT LINE 1427 | |
> USED AT LINE 1456 | |
UMSTA: 0914 DEFINED AT LINE 1428 | |
> USED AT LINE 1426 | |
UUMSTA1: 091B DEFINED AT LINE 1433 | |
> USED AT LINE 1440 | |
UUMSTA2: 091F DEFINED AT LINE 1435 | |
> USED AT LINE 1433 | |
UUMSTA3: 0921 DEFINED AT LINE 1437 | |
> USED AT LINE 1432 | |
L900A: 0931 DEFINED AT LINE 1457 | |
> USED AT LINE 1472 | |
UUMSTA: 0936 DEFINED AT LINE 1458 | |
> USED AT LINE 1456 | |
UMST1: 0945 DEFINED AT LINE 1461 | |
> USED AT LINE 1465 | |
UMST2: 0965 DEFINED AT LINE 1465 | |
> USED AT LINE 1463 | |
L910: 0973 DEFINED AT LINE 1473 | |
> USED AT LINE 1481 | |
STAR: 0975 DEFINED AT LINE 1474 | |
> USED AT LINE 1472 | |
> USED AT LINE 1538 | |
L920: 0982 DEFINED AT LINE 1482 | |
> USED AT LINE 1495 | |
MSTAR: 0985 DEFINED AT LINE 1483 | |
> USED AT LINE 1476 | |
> USED AT LINE 1481 | |
> USED AT LINE 1498 | |
MSTA1: 09A0 DEFINED AT LINE 1490 | |
> USED AT LINE 1488 | |
L930: 09A6 DEFINED AT LINE 1496 | |
> USED AT LINE 1503 | |
SSMOD: 09AC DEFINED AT LINE 1497 | |
> USED AT LINE 1495 | |
> USED AT LINE 1506 | |
L940: 09BD DEFINED AT LINE 1504 | |
> USED AT LINE 1513 | |
STASL: 09C0 DEFINED AT LINE 1505 | |
> USED AT LINE 1503 | |
L950: 09CF DEFINED AT LINE 1514 | |
> USED AT LINE 1523 | |
CELLP: 09D5 DEFINED AT LINE 1515 | |
> USED AT LINE 1513 | |
> USED AT LINE 1650 | |
> USED AT LINE 1661 | |
> USED AT LINE 1695 | |
> USED AT LINE 2301 | |
> USED AT LINE 2303 | |
> USED AT LINE 2324 | |
> USED AT LINE 2654 | |
> USED AT LINE 2808 | |
> USED AT LINE 2820 | |
> USED AT LINE 3200 | |
> USED AT LINE 3246 | |
> USED AT LINE 3258 | |
> USED AT LINE 3272 | |
> USED AT LINE 3279 | |
L960: 09E3 DEFINED AT LINE 1524 | |
> USED AT LINE 1533 | |
CELLM: 09E9 DEFINED AT LINE 1525 | |
> USED AT LINE 1523 | |
> USED AT LINE 2270 | |
> USED AT LINE 2270 | |
> USED AT LINE 2306 | |
> USED AT LINE 2308 | |
> USED AT LINE 2308 | |
> USED AT LINE 2311 | |
> USED AT LINE 2322 | |
> USED AT LINE 2980 | |
> USED AT LINE 2982 | |
> USED AT LINE 3207 | |
> USED AT LINE 3309 | |
L970: 09F7 DEFINED AT LINE 1534 | |
> USED AT LINE 1543 | |
CELLS: 09FD DEFINED AT LINE 1535 | |
> USED AT LINE 1533 | |
L975: 0A0B DEFINED AT LINE 1544 | |
> USED AT LINE 1551 | |
ALGND: 0A13 DEFINED AT LINE 1545 | |
> USED AT LINE 1543 | |
> USED AT LINE 2096 | |
> USED AT LINE 2979 | |
L980: 0A1C DEFINED AT LINE 1552 | |
> USED AT LINE 1562 | |
BLANK: 0A1F DEFINED AT LINE 1553 | |
> USED AT LINE 1551 | |
> USED AT LINE 1568 | |
> USED AT LINE 1811 | |
> USED AT LINE 2049 | |
> USED AT LINE 2176 | |
> USED AT LINE 2240 | |
> USED AT LINE 2248 | |
> USED AT LINE 2344 | |
> USED AT LINE 2370 | |
> USED AT LINE 2385 | |
L990: 0A26 DEFINED AT LINE 1563 | |
> USED AT LINE 1576 | |
TCHAR: 0A2C DEFINED AT LINE 1564 | |
> USED AT LINE 1562 | |
TCHA1: 0A46 DEFINED AT LINE 1571 | |
> USED AT LINE 1569 | |
L1000: 0A4C DEFINED AT LINE 1577 | |
> USED AT LINE 1587 | |
DEPTH: 0A52 DEFINED AT LINE 1578 | |
> USED AT LINE 1576 | |
> USED AT LINE 2511 | |
> USED AT LINE 3165 | |
L1010: 0A6A DEFINED AT LINE 1588 | |
> USED AT LINE 1606 | |
PICK: 0A6F DEFINED AT LINE 1589 | |
> USED AT LINE 1587 | |
> USED AT LINE 3168 | |
L1015: 0A80 DEFINED AT LINE 1607 | |
> USED AT LINE 1625 | |
ROLL: 0A85 DEFINED AT LINE 1608 | |
> USED AT LINE 1606 | |
> USED AT LINE 1617 | |
ROL1: 0A98 DEFINED AT LINE 1615 | |
ROL2: 0AA6 DEFINED AT LINE 1618 | |
L1020: 0AAC DEFINED AT LINE 1626 | |
> USED AT LINE 1643 | |
PSTOR: 0AAF DEFINED AT LINE 1627 | |
> USED AT LINE 1625 | |
> USED AT LINE 2628 | |
L1030: 0ABD DEFINED AT LINE 1644 | |
> USED AT LINE 1655 | |
DSTOR: 0AC0 DEFINED AT LINE 1645 | |
> USED AT LINE 1643 | |
> USED AT LINE 2546 | |
> USED AT LINE 3357 | |
L1040: 0AD3 DEFINED AT LINE 1656 | |
> USED AT LINE 1667 | |
DAT: 0AD6 DEFINED AT LINE 1657 | |
> USED AT LINE 1655 | |
> USED AT LINE 2583 | |
L1050: 0AE9 DEFINED AT LINE 1668 | |
> USED AT LINE 1676 | |
COUNT: 0AEF DEFINED AT LINE 1669 | |
> USED AT LINE 1667 | |
> USED AT LINE 2112 | |
> USED AT LINE 2600 | |
> USED AT LINE 2671 | |
> USED AT LINE 2966 | |
> USED AT LINE 3222 | |
> USED AT LINE 3280 | |
> USED AT LINE 3283 | |
L1060: 0B00 DEFINED AT LINE 1677 | |
> USED AT LINE 1684 | |
HERE: 0B05 DEFINED AT LINE 1678 | |
> USED AT LINE 1676 | |
> USED AT LINE 1687 | |
> USED AT LINE 2260 | |
> USED AT LINE 2636 | |
> USED AT LINE 2808 | |
> USED AT LINE 2820 | |
> USED AT LINE 2847 | |
> USED AT LINE 2896 | |
> USED AT LINE 2904 | |
> USED AT LINE 2979 | |
> USED AT LINE 3039 | |
L1070: 0B12 DEFINED AT LINE 1685 | |
> USED AT LINE 1692 | |
PAD: 0B16 DEFINED AT LINE 1686 | |
> USED AT LINE 1684 | |
> USED AT LINE 1861 | |
> USED AT LINE 1910 | |
L1080: 0B27 DEFINED AT LINE 1693 | |
> USED AT LINE 1700 | |
TIB: 0B2B DEFINED AT LINE 1694 | |
> USED AT LINE 1692 | |
> USED AT LINE 2206 | |
> USED AT LINE 2407 | |
L1090: 0B3A DEFINED AT LINE 1701 | |
> USED AT LINE 1711 | |
ATEXE: 0B43 DEFINED AT LINE 1702 | |
> USED AT LINE 1700 | |
> USED AT LINE 2000 | |
> USED AT LINE 2018 | |
> USED AT LINE 2389 | |
> USED AT LINE 2399 | |
> USED AT LINE 2409 | |
> USED AT LINE 2480 | |
> USED AT LINE 2524 | |
> USED AT LINE 3002 | |
> USED AT LINE 3355 | |
EXE1: 0B50 DEFINED AT LINE 1706 | |
> USED AT LINE 1704 | |
L1100: 0B56 DEFINED AT LINE 1712 | |
> USED AT LINE 1776 | |
CMOVE: 0B5C DEFINED AT LINE 1713 | |
> USED AT LINE 1711 | |
> USED AT LINE 1828 | |
CMOVE1: 0B68 DEFINED AT LINE 1720 | |
> USED AT LINE 1718 | |
CMOVE2: 0B6E DEFINED AT LINE 1724 | |
> USED AT LINE 1727 | |
> USED AT LINE 1729 | |
CMOVE3: 0B7B DEFINED AT LINE 1731 | |
> USED AT LINE 1716 | |
CMOVEW: 0B7F DEFINED AT LINE 1735 | |
> USED AT LINE 1714 | |
CMOVEW1: 0B92 DEFINED AT LINE 1745 | |
> USED AT LINE 1743 | |
CMOVEW2: 0B97 DEFINED AT LINE 1747 | |
> USED AT LINE 1750 | |
> USED AT LINE 1752 | |
CMOVEW3: 0BA1 DEFINED AT LINE 1753 | |
> USED AT LINE 1746 | |
CMOVEW4: 0BA9 DEFINED AT LINE 1757 | |
> USED AT LINE 1754 | |
L1110: 0BB3 DEFINED AT LINE 1777 | |
> USED AT LINE 1806 | |
FILL: 0BB8 DEFINED AT LINE 1778 | |
> USED AT LINE 1776 | |
NFILL1: 0BC1 DEFINED AT LINE 1784 | |
> USED AT LINE 1782 | |
NFILL2: 0BC5 DEFINED AT LINE 1787 | |
> USED AT LINE 1790 | |
> USED AT LINE 1792 | |
NFILL3: 0BCE DEFINED AT LINE 1793 | |
> USED AT LINE 1780 | |
L1120: 0BD6 DEFINED AT LINE 1807 | |
> USED AT LINE 1820 | |
DTRAI: 0BE0 DEFINED AT LINE 1808 | |
> USED AT LINE 1806 | |
DTRA1: 0BE9 DEFINED AT LINE 1811 | |
> USED AT LINE 1814 | |
DTRA2: 0BFF DEFINED AT LINE 1814 | |
> USED AT LINE 1810 | |
> USED AT LINE 1812 | |
L1130: 0C0B DEFINED AT LINE 1821 | |
> USED AT LINE 1835 | |
PACKS: 0C11 DEFINED AT LINE 1822 | |
> USED AT LINE 1820 | |
> USED AT LINE 2252 | |
L1140: 0C34 DEFINED AT LINE 1836 | |
> USED AT LINE 1849 | |
DIGIT: 0C3A DEFINED AT LINE 1837 | |
> USED AT LINE 1835 | |
> USED AT LINE 1853 | |
L1150: 0C55 DEFINED AT LINE 1850 | |
> USED AT LINE 1858 | |
EXTRC: 0C5D DEFINED AT LINE 1851 | |
> USED AT LINE 1849 | |
L1160: 0C70 DEFINED AT LINE 1859 | |
> USED AT LINE 1867 | |
BDIGS: 0C73 DEFINED AT LINE 1860 | |
> USED AT LINE 1858 | |
> USED AT LINE 1919 | |
> USED AT LINE 2129 | |
> USED AT LINE 2139 | |
L1170: 0C82 DEFINED AT LINE 1868 | |
> USED AT LINE 1876 | |
HOLD: 0C87 DEFINED AT LINE 1869 | |
> USED AT LINE 1867 | |
L1180: 0C9E DEFINED AT LINE 1877 | |
> USED AT LINE 1884 | |
DIG: 0CA0 DEFINED AT LINE 1878 | |
> USED AT LINE 1876 | |
> USED AT LINE 1887 | |
L1190: 0CB1 DEFINED AT LINE 1885 | |
> USED AT LINE 1895 | |
DIGS: 0CB4 DEFINED AT LINE 1886 | |
> USED AT LINE 1884 | |
> USED AT LINE 1919 | |
> USED AT LINE 2139 | |
DIGS1: 0CB7 DEFINED AT LINE 1887 | |
> USED AT LINE 1889 | |
DIGS2: 0CC3 DEFINED AT LINE 1890 | |
> USED AT LINE 1888 | |
L1200: 0CC9 DEFINED AT LINE 1896 | |
> USED AT LINE 1906 | |
SIGN: 0CCE DEFINED AT LINE 1897 | |
> USED AT LINE 1895 | |
> USED AT LINE 1920 | |
SIGN1: 0CDB DEFINED AT LINE 1901 | |
> USED AT LINE 1899 | |
L1210: 0CE1 DEFINED AT LINE 1907 | |
> USED AT LINE 1915 | |
EDIGS: 0CE4 DEFINED AT LINE 1908 | |
> USED AT LINE 1906 | |
> USED AT LINE 1920 | |
L1220: 0CF9 DEFINED AT LINE 1916 | |
> USED AT LINE 1925 | |
STR: 0CFD DEFINED AT LINE 1917 | |
> USED AT LINE 1915 | |
> USED AT LINE 2120 | |
> USED AT LINE 2153 | |
L1230: 0D16 DEFINED AT LINE 1926 | |
> USED AT LINE 1935 | |
HEX: 0D1A DEFINED AT LINE 1927 | |
> USED AT LINE 1925 | |
> USED AT LINE 1970 | |
L1240: 0D2A DEFINED AT LINE 1936 | |
> USED AT LINE 1947 | |
DECIM: 0D32 DEFINED AT LINE 1937 | |
> USED AT LINE 1935 | |
L1250: 0D42 DEFINED AT LINE 1948 | |
> USED AT LINE 1964 | |
DIGTQ: 0D49 DEFINED AT LINE 1949 | |
> USED AT LINE 1947 | |
DGTQ1: 0D6C DEFINED AT LINE 1959 | |
> USED AT LINE 1954 | |
L1260: 0D78 DEFINED AT LINE 1965 | |
> USED AT LINE 1997 | |
NUMBQ: 0D80 DEFINED AT LINE 1966 | |
> USED AT LINE 150 | |
> USED AT LINE 1964 | |
NUMQ1: 0DA5 DEFINED AT LINE 1972 | |
> USED AT LINE 1969 | |
NUMQ2: 0DC5 DEFINED AT LINE 1976 | |
> USED AT LINE 1980 | |
NUMQ3: 0DF3 DEFINED AT LINE 1984 | |
> USED AT LINE 1982 | |
NUMQ4: 0DF9 DEFINED AT LINE 1986 | |
> USED AT LINE 1977 | |
NUMQ5: 0E03 DEFINED AT LINE 1987 | |
> USED AT LINE 1985 | |
NUMQ6: 0E05 DEFINED AT LINE 1988 | |
> USED AT LINE 1974 | |
L1270: 0E15 DEFINED AT LINE 1998 | |
> USED AT LINE 2005 | |
QKEY: 0E1A DEFINED AT LINE 1999 | |
> USED AT LINE 1997 | |
> USED AT LINE 2008 | |
> USED AT LINE 2026 | |
L1280: 0E27 DEFINED AT LINE 2006 | |
> USED AT LINE 2015 | |
KEY: 0E2B DEFINED AT LINE 2007 | |
> USED AT LINE 2005 | |
> USED AT LINE 2028 | |
> USED AT LINE 2383 | |
KEY1: 0E2E DEFINED AT LINE 2008 | |
> USED AT LINE 2009 | |
L1290: 0E3A DEFINED AT LINE 2016 | |
> USED AT LINE 2023 | |
EMIT: 0E3F DEFINED AT LINE 2017 | |
> USED AT LINE 2015 | |
> USED AT LINE 2041 | |
> USED AT LINE 2049 | |
> USED AT LINE 2084 | |
> USED AT LINE 2087 | |
> USED AT LINE 3282 | |
L1300: 0E4C DEFINED AT LINE 2024 | |
> USED AT LINE 2036 | |
NUFQ: 0E51 DEFINED AT LINE 2025 | |
> USED AT LINE 2023 | |
> USED AT LINE 3151 | |
> USED AT LINE 3295 | |
> USED AT LINE 3309 | |
NUFQ1: 0E65 DEFINED AT LINE 2031 | |
> USED AT LINE 2027 | |
L1310: 0E6B DEFINED AT LINE 2037 | |
> USED AT LINE 2046 | |
PACE: 0E70 DEFINED AT LINE 2038 | |
> USED AT LINE 2036 | |
> USED AT LINE 2554 | |
L1320: 0E7E DEFINED AT LINE 2047 | |
> USED AT LINE 2054 | |
SPACE: 0E84 DEFINED AT LINE 2048 | |
> USED AT LINE 2046 | |
> USED AT LINE 2059 | |
> USED AT LINE 2140 | |
> USED AT LINE 2153 | |
> USED AT LINE 2600 | |
> USED AT LINE 3128 | |
> USED AT LINE 3253 | |
> USED AT LINE 3308 | |
L1330: 0E91 DEFINED AT LINE 2055 | |
> USED AT LINE 2066 | |
SPACS: 0E98 DEFINED AT LINE 2056 | |
> USED AT LINE 2054 | |
> USED AT LINE 2121 | |
> USED AT LINE 2131 | |
> USED AT LINE 3150 | |
CHAR1: 0EA5 DEFINED AT LINE 2059 | |
> USED AT LINE 2060 | |
CHAR2: 0EA7 DEFINED AT LINE 2060 | |
> USED AT LINE 2058 | |
L1340: 0EB1 DEFINED AT LINE 2067 | |
> USED AT LINE 2079 | |
TYPES: 0EB6 DEFINED AT LINE 2068 | |
> USED AT LINE 2066 | |
> USED AT LINE 2121 | |
> USED AT LINE 2131 | |
> USED AT LINE 2140 | |
TYPE1: 0EBF DEFINED AT LINE 2071 | |
> USED AT LINE 2073 | |
TYPE2: 0EC7 DEFINED AT LINE 2073 | |
> USED AT LINE 2070 | |
L1350: 0ED3 DEFINED AT LINE 2080 | |
> USED AT LINE 2092 | |
CR: 0ED6 DEFINED AT LINE 2081 | |
> USED AT LINE 2079 | |
> USED AT LINE 2503 | |
> USED AT LINE 3146 | |
> USED AT LINE 3165 | |
> USED AT LINE 3243 | |
> USED AT LINE 3246 | |
> USED AT LINE 3305 | |
> USED AT LINE 3330 | |
> USED AT LINE 3333 | |
L1360: 0EE9 DEFINED AT LINE 2093 | |
> USED AT LINE 2101 | |
DOSTR: 0EED DEFINED AT LINE 2094 | |
> USED AT LINE 2092 | |
> USED AT LINE 2104 | |
> USED AT LINE 2112 | |
> USED AT LINE 2463 | |
> USED AT LINE 2464 | |
L1370: 0F08 DEFINED AT LINE 2102 | |
> USED AT LINE 2109 | |
STRQP: 0F09 DEFINED AT LINE 2103 | |
> USED AT LINE 2101 | |
> USED AT LINE 2944 | |
> USED AT LINE 2984 | |
L1380: 0F14 DEFINED AT LINE 2110 | |
> USED AT LINE 2117 | |
DOTQP: 0F15 DEFINED AT LINE 2111 | |
> USED AT LINE 2109 | |
> USED AT LINE 2501 | |
> USED AT LINE 2601 | |
> USED AT LINE 2952 | |
> USED AT LINE 2964 | |
> USED AT LINE 3170 | |
> USED AT LINE 3226 | |
> USED AT LINE 3243 | |
L1390: 0F24 DEFINED AT LINE 2118 | |
> USED AT LINE 2126 | |
DOTR: 0F27 DEFINED AT LINE 2119 | |
> USED AT LINE 2117 | |
L1400: 0F3E DEFINED AT LINE 2127 | |
> USED AT LINE 2136 | |
UDOTR: 0F42 DEFINED AT LINE 2128 | |
> USED AT LINE 2126 | |
L1410: 0F5D DEFINED AT LINE 2137 | |
> USED AT LINE 2145 | |
UDOT: 0F60 DEFINED AT LINE 2138 | |
> USED AT LINE 2136 | |
> USED AT LINE 2152 | |
L1420: 0F73 DEFINED AT LINE 2146 | |
> USED AT LINE 2158 | |
DOT: 0F75 DEFINED AT LINE 2147 | |
> USED AT LINE 2145 | |
> USED AT LINE 2161 | |
DOT1: 0F89 DEFINED AT LINE 2153 | |
> USED AT LINE 2151 | |
L1430: 0F95 DEFINED AT LINE 2159 | |
> USED AT LINE 2168 | |
QUEST: 0F97 DEFINED AT LINE 2160 | |
> USED AT LINE 2158 | |
L1440: 0FA4 DEFINED AT LINE 2169 | |
> USED AT LINE 2203 | |
PARS: 0FAA DEFINED AT LINE 2170 | |
> USED AT LINE 2168 | |
> USED AT LINE 2208 | |
PARS1: 0FCB DEFINED AT LINE 2176 | |
> USED AT LINE 2180 | |
PARS2: 0FEB DEFINED AT LINE 2182 | |
> USED AT LINE 2178 | |
PARS3: 0FED DEFINED AT LINE 2183 | |
> USED AT LINE 2174 | |
PARS4: 0FF3 DEFINED AT LINE 2185 | |
> USED AT LINE 2191 | |
PARS5: 100B DEFINED AT LINE 2189 | |
> USED AT LINE 2187 | |
PARS6: 101D DEFINED AT LINE 2194 | |
> USED AT LINE 2189 | |
PARS7: 1027 DEFINED AT LINE 2196 | |
> USED AT LINE 2193 | |
PARS8: 1033 DEFINED AT LINE 2198 | |
> USED AT LINE 2172 | |
L1450: 103F DEFINED AT LINE 2204 | |
> USED AT LINE 2213 | |
PARSE: 1045 DEFINED AT LINE 2205 | |
> USED AT LINE 2203 | |
> USED AT LINE 2240 | |
> USED AT LINE 2248 | |
> USED AT LINE 2260 | |
L1460: 106A DEFINED AT LINE 2214 | |
> USED AT LINE 2221 | |
DOTPR: 106D DEFINED AT LINE 2215 | |
> USED AT LINE 2213 | |
L1470: 107C DEFINED AT LINE 2222 | |
> USED AT LINE 2229 | |
PAREN: 107E DEFINED AT LINE 2223 | |
> USED AT LINE 2221 | |
L1480: 108D DEFINED AT LINE 2230 | |
> USED AT LINE 2237 | |
BKSLA: 108F DEFINED AT LINE 2231 | |
> USED AT LINE 2229 | |
L1490: 10A0 DEFINED AT LINE 2238 | |
> USED AT LINE 2245 | |
CHAR: 10A5 DEFINED AT LINE 2239 | |
> USED AT LINE 2237 | |
L1500: 10B6 DEFINED AT LINE 2246 | |
> USED AT LINE 2257 | |
TOKEN: 10BC DEFINED AT LINE 2247 | |
> USED AT LINE 2245 | |
> USED AT LINE 2522 | |
> USED AT LINE 2617 | |
> USED AT LINE 3049 | |
> USED AT LINE 3069 | |
> USED AT LINE 3082 | |
> USED AT LINE 3102 | |
L1510: 10DA DEFINED AT LINE 2258 | |
> USED AT LINE 2267 | |
WORD: 10DF DEFINED AT LINE 2259 | |
> USED AT LINE 2257 | |
L1520: 10EE DEFINED AT LINE 2268 | |
> USED AT LINE 2275 | |
NAMET: 10F4 DEFINED AT LINE 2269 | |
> USED AT LINE 2267 | |
> USED AT LINE 2312 | |
> USED AT LINE 3205 | |
L1530: 1103 DEFINED AT LINE 2276 | |
> USED AT LINE 2291 | |
SAMEQ: 1109 DEFINED AT LINE 2277 | |
> USED AT LINE 2275 | |
SAME1: 1112 DEFINED AT LINE 2280 | |
> USED AT LINE 2285 | |
SAME2: 1130 DEFINED AT LINE 2285 | |
> USED AT LINE 2279 | |
> USED AT LINE 2283 | |
L1540: 113E DEFINED AT LINE 2292 | |
> USED AT LINE 2317 | |
FIND: 1143 DEFINED AT LINE 2293 | |
> USED AT LINE 2291 | |
> USED AT LINE 2327 | |
FIND1: 115C DEFINED AT LINE 2297 | |
> USED AT LINE 2309 | |
FIND2: 117E DEFINED AT LINE 2303 | |
> USED AT LINE 2300 | |
FIND3: 1186 DEFINED AT LINE 2304 | |
> USED AT LINE 2302 | |
FIND6: 118A DEFINED AT LINE 2305 | |
> USED AT LINE 2298 | |
FIND4: 1196 DEFINED AT LINE 2307 | |
> USED AT LINE 2304 | |
FIND5: 11A2 DEFINED AT LINE 2310 | |
> USED AT LINE 2307 | |
L1550: 11B8 DEFINED AT LINE 2318 | |
> USED AT LINE 2338 | |
NAMEQ: 11BE DEFINED AT LINE 2319 | |
> USED AT LINE 2317 | |
> USED AT LINE 2474 | |
> USED AT LINE 2617 | |
> USED AT LINE 2962 | |
> USED AT LINE 2996 | |
NAMQ1: 11CF DEFINED AT LINE 2323 | |
> USED AT LINE 2321 | |
NAMQ2: 11D1 DEFINED AT LINE 2324 | |
> USED AT LINE 2328 | |
NAMQ3: 11EF DEFINED AT LINE 2330 | |
> USED AT LINE 2326 | |
L1560: 11FB DEFINED AT LINE 2339 | |
> USED AT LINE 2351 | |
BKSP: 11FE DEFINED AT LINE 2340 | |
> USED AT LINE 2338 | |
> USED AT LINE 2371 | |
BACK1: 1229 DEFINED AT LINE 2346 | |
> USED AT LINE 2342 | |
L1570: 122F DEFINED AT LINE 2352 | |
> USED AT LINE 2360 | |
TAP: 1233 DEFINED AT LINE 2353 | |
> USED AT LINE 2351 | |
> USED AT LINE 2370 | |
> USED AT LINE 2387 | |
L1580: 1248 DEFINED AT LINE 2361 | |
> USED AT LINE 2377 | |
KTAP: 124D DEFINED AT LINE 2362 | |
> USED AT LINE 139 | |
> USED AT LINE 2360 | |
> USED AT LINE 2555 | |
> USED AT LINE 2564 | |
KTAP1: 1277 DEFINED AT LINE 2371 | |
> USED AT LINE 2369 | |
KTAP2: 127B DEFINED AT LINE 2372 | |
> USED AT LINE 2366 | |
L1590: 1289 DEFINED AT LINE 2378 | |
> USED AT LINE 2396 | |
ACCEP: 1290 DEFINED AT LINE 2379 | |
> USED AT LINE 138 | |
> USED AT LINE 2377 | |
> USED AT LINE 2545 | |
ACCP1: 1299 DEFINED AT LINE 2381 | |
> USED AT LINE 2390 | |
ACCP2: 12B7 DEFINED AT LINE 2389 | |
> USED AT LINE 2386 | |
ACCP3: 12BB DEFINED AT LINE 2390 | |
> USED AT LINE 2388 | |
ACCP4: 12BF DEFINED AT LINE 2391 | |
> USED AT LINE 2382 | |
L1600: 12CB DEFINED AT LINE 2397 | |
> USED AT LINE 2404 | |
EXPEC: 12D2 DEFINED AT LINE 2398 | |
> USED AT LINE 2396 | |
L1610: 12E5 DEFINED AT LINE 2405 | |
> USED AT LINE 2417 | |
QUERY: 12EB DEFINED AT LINE 2406 | |
> USED AT LINE 2404 | |
> USED AT LINE 2594 | |
L1620: 1309 DEFINED AT LINE 2418 | |
> USED AT LINE 2428 | |
CATCH: 130F DEFINED AT LINE 2419 | |
> USED AT LINE 2417 | |
L1630: 1336 DEFINED AT LINE 2429 | |
> USED AT LINE 2439 | |
THROW: 133C DEFINED AT LINE 2430 | |
> USED AT LINE 2428 | |
> USED AT LINE 2454 | |
> USED AT LINE 2463 | |
> USED AT LINE 2483 | |
> USED AT LINE 2620 | |
> USED AT LINE 2986 | |
> USED AT LINE 3005 | |
L1640: 135D DEFINED AT LINE 2440 | |
> USED AT LINE 2451 | |
NULLS: 1363 DEFINED AT LINE 2441 | |
> USED AT LINE 2439 | |
> USED AT LINE 2454 | |
> USED AT LINE 2598 | |
L1650: 1372 DEFINED AT LINE 2452 | |
> USED AT LINE 2459 | |
ABORT: 1378 DEFINED AT LINE 2453 | |
> USED AT LINE 2451 | |
L1660: 1383 DEFINED AT LINE 2460 | |
> USED AT LINE 2471 | |
ABORQ: 1384 DEFINED AT LINE 2461 | |
> USED AT LINE 2459 | |
> USED AT LINE 2477 | |
> USED AT LINE 2512 | |
> USED AT LINE 2936 | |
> USED AT LINE 3189 | |
ABOR1: 138F DEFINED AT LINE 2464 | |
> USED AT LINE 2462 | |
L1670: 1399 DEFINED AT LINE 2472 | |
> USED AT LINE 2488 | |
INTER: 13A4 DEFINED AT LINE 2473 | |
> USED AT LINE 149 | |
> USED AT LINE 2471 | |
> USED AT LINE 2491 | |
> USED AT LINE 2499 | |
INTE1: 13CB DEFINED AT LINE 2480 | |
> USED AT LINE 2475 | |
INTE2: 13D5 DEFINED AT LINE 2483 | |
> USED AT LINE 2481 | |
L1680: 13DB DEFINED AT LINE 2489 | |
> USED AT LINE 2496 | |
LBRAC: 13DD DEFINED AT LINE 2490 | |
> USED AT LINE 2488 | |
> USED AT LINE 2593 | |
L1690: 13EE DEFINED AT LINE 2497 | |
> USED AT LINE 2508 | |
DOTOK: 13F2 DEFINED AT LINE 2498 | |
> USED AT LINE 141 | |
> USED AT LINE 2496 | |
> USED AT LINE 2563 | |
DOTO1: 1409 DEFINED AT LINE 2503 | |
> USED AT LINE 2500 | |
L1700: 1411 DEFINED AT LINE 2509 | |
> USED AT LINE 2519 | |
QSTAC: 1418 DEFINED AT LINE 2510 | |
> USED AT LINE 2508 | |
L1710: 1432 DEFINED AT LINE 2520 | |
> USED AT LINE 2533 | |
EVAL: 1437 DEFINED AT LINE 2521 | |
> USED AT LINE 2519 | |
> USED AT LINE 2595 | |
EVAL1: 143A DEFINED AT LINE 2522 | |
> USED AT LINE 2525 | |
EVAL2: 144E DEFINED AT LINE 2526 | |
> USED AT LINE 2523 | |
L1720: 145A DEFINED AT LINE 2534 | |
> USED AT LINE 2542 | |
PRESE: 1461 DEFINED AT LINE 2535 | |
> USED AT LINE 2533 | |
> USED AT LINE 2606 | |
> USED AT LINE 3354 | |
L1730: 147A DEFINED AT LINE 2543 | |
> USED AT LINE 2551 | |
XIO: 147E DEFINED AT LINE 2544 | |
> USED AT LINE 2542 | |
L1740: 1493 DEFINED AT LINE 2552 | |
> USED AT LINE 2560 | |
FILE: 1498 DEFINED AT LINE 2553 | |
> USED AT LINE 2551 | |
L1750: 14AF DEFINED AT LINE 2561 | |
> USED AT LINE 2569 | |
HAND: 14B4 DEFINED AT LINE 2562 | |
> USED AT LINE 2560 | |
> USED AT LINE 2584 | |
L1760: 14CB DEFINED AT LINE 2570 | |
> USED AT LINE 2580 | |
ISLO: 14CF DEFINED AT LINE 2571 | |
> USED AT LINE 2569 | |
> USED AT LINE 2583 | |
L1770: 14DA DEFINED AT LINE 2581 | |
> USED AT LINE 2589 | |
CONSO: 14E2 DEFINED AT LINE 2582 | |
> USED AT LINE 2580 | |
> USED AT LINE 2598 | |
L1780: 14F5 DEFINED AT LINE 2590 | |
> USED AT LINE 2614 | |
QUIT: 14FA DEFINED AT LINE 2591 | |
> USED AT LINE 2589 | |
> USED AT LINE 3362 | |
QUIT1: 1503 DEFINED AT LINE 2593 | |
> USED AT LINE 2607 | |
QUIT2: 1505 DEFINED AT LINE 2594 | |
> USED AT LINE 2596 | |
QUIT3: 1531 DEFINED AT LINE 2603 | |
> USED AT LINE 2599 | |
QUIT4: 1543 DEFINED AT LINE 2606 | |
> USED AT LINE 2604 | |
L1790: 154D DEFINED AT LINE 2615 | |
> USED AT LINE 2625 | |
TICK: 154F DEFINED AT LINE 2616 | |
> USED AT LINE 2614 | |
> USED AT LINE 2645 | |
> USED AT LINE 3236 | |
TICK1: 155C DEFINED AT LINE 2620 | |
> USED AT LINE 2618 | |
L1800: 1562 DEFINED AT LINE 2626 | |
> USED AT LINE 2633 | |
ALLOT: 1568 DEFINED AT LINE 2627 | |
> USED AT LINE 2625 | |
> USED AT LINE 3040 | |
L1810: 1575 DEFINED AT LINE 2634 | |
> USED AT LINE 2642 | |
COMMA: 1577 DEFINED AT LINE 2635 | |
> USED AT LINE 2633 | |
> USED AT LINE 2645 | |
> USED AT LINE 2809 | |
> USED AT LINE 2821 | |
> USED AT LINE 2880 | |
> USED AT LINE 3001 | |
> USED AT LINE 3041 | |
> USED AT LINE 3074 | |
> USED AT LINE 3104 | |
L1820: 158C DEFINED AT LINE 2643 | |
> USED AT LINE 2650 | |
BCOMP: 1596 DEFINED AT LINE 2644 | |
> USED AT LINE 2642 | |
L1830: 15A3 DEFINED AT LINE 2651 | |
> USED AT LINE 2659 | |
COMPI: 15AB DEFINED AT LINE 2652 | |
> USED AT LINE 2650 | |
> USED AT LINE 2662 | |
> USED AT LINE 2690 | |
> USED AT LINE 2700 | |
> USED AT LINE 2701 | |
> USED AT LINE 2730 | |
> USED AT LINE 2731 | |
> USED AT LINE 2806 | |
> USED AT LINE 2818 | |
> USED AT LINE 2839 | |
> USED AT LINE 2855 | |
> USED AT LINE 2863 | |
> USED AT LINE 2871 | |
> USED AT LINE 2879 | |
> USED AT LINE 2888 | |
> USED AT LINE 2936 | |
> USED AT LINE 2944 | |
> USED AT LINE 2952 | |
> USED AT LINE 3021 | |
L1840: 15C0 DEFINED AT LINE 2660 | |
> USED AT LINE 2667 | |
LITER: 15C8 DEFINED AT LINE 2661 | |
> USED AT LINE 2659 | |
> USED AT LINE 3004 | |
L1850: 15D7 DEFINED AT LINE 2668 | |
> USED AT LINE 2677 | |
STRCQ: 15D8 DEFINED AT LINE 2669 | |
> USED AT LINE 2667 | |
L1860: 15EF DEFINED AT LINE 2678 | |
> USED AT LINE 2687 | |
RECUR: 15F7 DEFINED AT LINE 2679 | |
> USED AT LINE 2677 | |
L1861: 1608 DEFINED AT LINE 2688 | |
> USED AT LINE 2697 | |
DO: 160B DEFINED AT LINE 2689 | |
> USED AT LINE 2687 | |
L1862: 161C DEFINED AT LINE 2698 | |
> USED AT LINE 2708 | |
QDO: 1620 DEFINED AT LINE 2699 | |
> USED AT LINE 2697 | |
L1862A: 1635 DEFINED AT LINE 2709 | |
> USED AT LINE 2727 | |
DOQDO: 163B DEFINED AT LINE 2710 | |
> USED AT LINE 2700 | |
> USED AT LINE 2708 | |
DOQDO1: 1648 DEFINED AT LINE 2717 | |
> USED AT LINE 2713 | |
L1862B: 1656 DEFINED AT LINE 2728 | |
> USED AT LINE 2738 | |
MDO: 165A DEFINED AT LINE 2729 | |
> USED AT LINE 2727 | |
L1862C: 166F DEFINED AT LINE 2739 | |
> USED AT LINE 2757 | |
DOMDO: 1675 DEFINED AT LINE 2740 | |
> USED AT LINE 2730 | |
> USED AT LINE 2738 | |
DOMDO1: 1682 DEFINED AT LINE 2747 | |
> USED AT LINE 2743 | |
L1863: 1690 DEFINED AT LINE 2758 | |
> USED AT LINE 2768 | |
DODO: 1695 DEFINED AT LINE 2759 | |
> USED AT LINE 2690 | |
> USED AT LINE 2757 | |
L1864: 16A1 DEFINED AT LINE 2769 | |
> USED AT LINE 2777 | |
DOLOOP: 16A8 DEFINED AT LINE 2770 | |
> USED AT LINE 2768 | |
> USED AT LINE 2806 | |
L1865: 16B1 DEFINED AT LINE 2778 | |
> USED AT LINE 2803 | |
DOPLOOP: 16B9 DEFINED AT LINE 2779 | |
> USED AT LINE 2777 | |
> USED AT LINE 2818 | |
DOPLOF: 16CA DEFINED AT LINE 2789 | |
> USED AT LINE 2772 | |
> USED AT LINE 2781 | |
DOPLO1: 16D7 DEFINED AT LINE 2795 | |
> USED AT LINE 2784 | |
> USED AT LINE 2791 | |
L1866: 16E1 DEFINED AT LINE 2804 | |
> USED AT LINE 2815 | |
LOOP: 16E6 DEFINED AT LINE 2805 | |
> USED AT LINE 2803 | |
LOOP1: 16FF DEFINED AT LINE 2809 | |
L1867: 1707 DEFINED AT LINE 2816 | |
> USED AT LINE 2826 | |
> USED AT LINE 2836 | |
PLOOP: 170D DEFINED AT LINE 2817 | |
> USED AT LINE 2815 | |
PLOOP1: 1726 DEFINED AT LINE 2821 | |
L1868: 172E DEFINED AT LINE 2827 | |
LEAVE: 1734 DEFINED AT LINE 2828 | |
> USED AT LINE 2826 | |
L1870: 173E DEFINED AT LINE 2837 | |
> USED AT LINE 2844 | |
FOR: 1742 DEFINED AT LINE 2838 | |
> USED AT LINE 2836 | |
L1880: 1751 DEFINED AT LINE 2845 | |
> USED AT LINE 2852 | |
BEGIN: 1757 DEFINED AT LINE 2846 | |
> USED AT LINE 2844 | |
L1890: 1762 DEFINED AT LINE 2853 | |
> USED AT LINE 2860 | |
NEXT: 1767 DEFINED AT LINE 2854 | |
> USED AT LINE 2852 | |
L1900: 1776 DEFINED AT LINE 2861 | |
> USED AT LINE 2868 | |
UNTIL: 177C DEFINED AT LINE 2862 | |
> USED AT LINE 2860 | |
L1910: 178B DEFINED AT LINE 2869 | |
> USED AT LINE 2876 | |
AGAIN: 1791 DEFINED AT LINE 2870 | |
> USED AT LINE 2868 | |
> USED AT LINE 2896 | |
L1920: 17A0 DEFINED AT LINE 2877 | |
> USED AT LINE 2885 | |
IFF: 17A3 DEFINED AT LINE 2878 | |
> USED AT LINE 2876 | |
> USED AT LINE 2928 | |
L1930: 17B6 DEFINED AT LINE 2886 | |
> USED AT LINE 2893 | |
AHEAD: 17BC DEFINED AT LINE 2887 | |
> USED AT LINE 2885 | |
> USED AT LINE 2912 | |
> USED AT LINE 2920 | |
L1940: 17CF DEFINED AT LINE 2894 | |
> USED AT LINE 2901 | |
REPEA: 17D6 DEFINED AT LINE 2895 | |
> USED AT LINE 2893 | |
L1950: 17E7 DEFINED AT LINE 2902 | |
> USED AT LINE 2909 | |
THENN: 17EC DEFINED AT LINE 2903 | |
> USED AT LINE 2901 | |
L1960: 17FB DEFINED AT LINE 2910 | |
> USED AT LINE 2917 | |
AFT: 17FF DEFINED AT LINE 2911 | |
> USED AT LINE 2909 | |
L1970: 1810 DEFINED AT LINE 2918 | |
> USED AT LINE 2925 | |
ELSEE: 1815 DEFINED AT LINE 2919 | |
> USED AT LINE 2917 | |
L1980: 1824 DEFINED AT LINE 2926 | |
> USED AT LINE 2933 | |
WHILE: 182A DEFINED AT LINE 2927 | |
> USED AT LINE 2925 | |
L1990: 1837 DEFINED AT LINE 2934 | |
> USED AT LINE 2941 | |
ABRTQ: 1838 DEFINED AT LINE 2935 | |
> USED AT LINE 2933 | |
L2000: 1847 DEFINED AT LINE 2942 | |
> USED AT LINE 2949 | |
STRQ: 184A DEFINED AT LINE 2943 | |
> USED AT LINE 2941 | |
L2010: 1859 DEFINED AT LINE 2950 | |
> USED AT LINE 2959 | |
DOTQ: 185C DEFINED AT LINE 2951 | |
> USED AT LINE 2949 | |
L2020: 186B DEFINED AT LINE 2960 | |
> USED AT LINE 2972 | |
UNIQU: 1873 DEFINED AT LINE 2961 | |
> USED AT LINE 2959 | |
> USED AT LINE 2977 | |
UNIQ1: 188E DEFINED AT LINE 2967 | |
> USED AT LINE 2963 | |
L2030: 1896 DEFINED AT LINE 2973 | |
> USED AT LINE 2993 | |
SNAME: 189A DEFINED AT LINE 2974 | |
> USED AT LINE 2972 | |
> USED AT LINE 3049 | |
> USED AT LINE 3069 | |
> USED AT LINE 3082 | |
> USED AT LINE 3102 | |
PNAM1: 18CB DEFINED AT LINE 2984 | |
> USED AT LINE 2976 | |
L2040: 18D9 DEFINED AT LINE 2994 | |
> USED AT LINE 3010 | |
SCOMP: 18E2 DEFINED AT LINE 2995 | |
> USED AT LINE 2993 | |
> USED AT LINE 3029 | |
SCOM1: 18FD DEFINED AT LINE 3001 | |
> USED AT LINE 2999 | |
SCOM2: 1901 DEFINED AT LINE 3002 | |
> USED AT LINE 2997 | |
SCOM3: 190D DEFINED AT LINE 3005 | |
> USED AT LINE 3003 | |
L2050: 1913 DEFINED AT LINE 3011 | |
> USED AT LINE 3018 | |
OVERT: 1919 DEFINED AT LINE 3012 | |
> USED AT LINE 3010 | |
L2060: 192C DEFINED AT LINE 3019 | |
> USED AT LINE 3026 | |
SEMIS: 192E DEFINED AT LINE 3020 | |
> USED AT LINE 3018 | |
L2070: 193F DEFINED AT LINE 3027 | |
> USED AT LINE 3034 | |
RBRAC: 1941 DEFINED AT LINE 3028 | |
> USED AT LINE 3026 | |
> USED AT LINE 3050 | |
L2080: 1952 DEFINED AT LINE 3035 | |
> USED AT LINE 3046 | |
CALLC: 1958 DEFINED AT LINE 3036 | |
> USED AT LINE 3034 | |
> USED AT LINE 3050 | |
L2090: 196E DEFINED AT LINE 3047 | |
> USED AT LINE 3055 | |
COLON: 1970 DEFINED AT LINE 3048 | |
> USED AT LINE 3046 | |
L2100: 1985 DEFINED AT LINE 3056 | |
> USED AT LINE 3066 | |
IMMED: 198F DEFINED AT LINE 3057 | |
> USED AT LINE 3055 | |
L2110: 19AA DEFINED AT LINE 3067 | |
> USED AT LINE 3079 | |
USER: 19AF DEFINED AT LINE 3068 | |
> USED AT LINE 3066 | |
L2120: 19C6 DEFINED AT LINE 3080 | |
> USED AT LINE 3091 | |
CREAT: 19CD DEFINED AT LINE 3081 | |
> USED AT LINE 3079 | |
> USED AT LINE 3094 | |
L2130: 19E2 DEFINED AT LINE 3092 | |
> USED AT LINE 3099 | |
VARIA: 19EB DEFINED AT LINE 3093 | |
> USED AT LINE 3091 | |
L2135: 19FA DEFINED AT LINE 3100 | |
> USED AT LINE 3111 | |
CONST: 1A03 DEFINED AT LINE 3101 | |
> USED AT LINE 3099 | |
L2140: 1A1A DEFINED AT LINE 3112 | |
> USED AT LINE 3124 | |
UTYPE: 1A20 DEFINED AT LINE 3113 | |
> USED AT LINE 3111 | |
> USED AT LINE 3225 | |
UTYP1: 1A29 DEFINED AT LINE 3116 | |
> USED AT LINE 3118 | |
UTYP2: 1A33 DEFINED AT LINE 3118 | |
> USED AT LINE 3115 | |
L2150: 1A3F DEFINED AT LINE 3125 | |
> USED AT LINE 3138 | |
DUMPP: 1A43 DEFINED AT LINE 3126 | |
> USED AT LINE 3124 | |
> USED AT LINE 3148 | |
PDUM1: 1A56 DEFINED AT LINE 3130 | |
> USED AT LINE 3132 | |
PDUM2: 1A62 DEFINED AT LINE 3132 | |
> USED AT LINE 3129 | |
L2160: 1A6C DEFINED AT LINE 3139 | |
> USED AT LINE 3162 | |
DUMP: 1A71 DEFINED AT LINE 3140 | |
> USED AT LINE 3138 | |
DUMP1: 1A83 DEFINED AT LINE 3146 | |
> USED AT LINE 3153 | |
DUMP2: 1AA6 DEFINED AT LINE 3155 | |
> USED AT LINE 3152 | |
DUMP3: 1AAA DEFINED AT LINE 3156 | |
> USED AT LINE 3154 | |
L2170: 1AB8 DEFINED AT LINE 3163 | |
> USED AT LINE 3177 | |
DOTS: 1ABB DEFINED AT LINE 3164 | |
> USED AT LINE 3162 | |
DOTS1: 1AC8 DEFINED AT LINE 3168 | |
> USED AT LINE 3169 | |
DOTS2: 1ACE DEFINED AT LINE 3169 | |
> USED AT LINE 3167 | |
L2180: 1ADF DEFINED AT LINE 3178 | |
> USED AT LINE 3185 | |
STCSP: 1AE4 DEFINED AT LINE 3179 | |
> USED AT LINE 3177 | |
L2190: 1AF3 DEFINED AT LINE 3186 | |
> USED AT LINE 3196 | |
QCSP: 1AF8 DEFINED AT LINE 3187 | |
> USED AT LINE 3185 | |
L2200: 1B12 DEFINED AT LINE 3197 | |
> USED AT LINE 3217 | |
TNAME: 1B18 DEFINED AT LINE 3198 | |
> USED AT LINE 3196 | |
> USED AT LINE 3249 | |
TNAM1: 1B1D DEFINED AT LINE 3200 | |
> USED AT LINE 3210 | |
TNAM2: 1B29 DEFINED AT LINE 3203 | |
> USED AT LINE 3208 | |
TNAM3: 1B41 DEFINED AT LINE 3209 | |
> USED AT LINE 3204 | |
> USED AT LINE 3206 | |
TNAM4: 1B55 DEFINED AT LINE 3212 | |
> USED AT LINE 3201 | |
L2210: 1B61 DEFINED AT LINE 3218 | |
> USED AT LINE 3233 | |
DOTID: 1B65 DEFINED AT LINE 3219 | |
> USED AT LINE 3217 | |
> USED AT LINE 3253 | |
DOTI1: 1B79 DEFINED AT LINE 3226 | |
> USED AT LINE 3221 | |
L2220: 1B8B DEFINED AT LINE 3234 | |
> USED AT LINE 3302 | |
SEE: 1B8F DEFINED AT LINE 3235 | |
> USED AT LINE 3233 | |
SEE1: 1BBE DEFINED AT LINE 3246 | |
> USED AT LINE 3242 | |
> USED AT LINE 3296 | |
SEE2: 1BD4 DEFINED AT LINE 3250 | |
> USED AT LINE 3248 | |
SEE21: 1C02 DEFINED AT LINE 3262 | |
> USED AT LINE 3257 | |
SEE27: 1C70 DEFINED AT LINE 3274 | |
> USED AT LINE 3271 | |
SEE28: 1CA7 DEFINED AT LINE 3285 | |
> USED AT LINE 3260 | |
> USED AT LINE 3273 | |
SEE29: 1CAD DEFINED AT LINE 3287 | |
> USED AT LINE 3278 | |
SEE3: 1CB3 DEFINED AT LINE 3290 | |
> USED AT LINE 3251 | |
SEE31: 1CBD DEFINED AT LINE 3292 | |
> USED AT LINE 3288 | |
SEE4: 1CCB DEFINED AT LINE 3295 | |
> USED AT LINE 3286 | |
> USED AT LINE 3291 | |
SEE5: 1CD1 DEFINED AT LINE 3297 | |
> USED AT LINE 3245 | |
> USED AT LINE 3294 | |
L2230: 1CDF DEFINED AT LINE 3303 | |
> USED AT LINE 3319 | |
WORDS: 1CE5 DEFINED AT LINE 3304 | |
> USED AT LINE 3302 | |
WORS1: 1CEE DEFINED AT LINE 3306 | |
> USED AT LINE 3310 | |
WORS2: 1D06 DEFINED AT LINE 3312 | |
> USED AT LINE 3307 | |
L2240: 1D0C DEFINED AT LINE 3320 | |
> USED AT LINE 3327 | |
VERSN: 1D10 DEFINED AT LINE 3321 | |
> USED AT LINE 3319 | |
L2250: 1D1D DEFINED AT LINE 3328 | |
> USED AT LINE 3338 | |
HI: 1D20 DEFINED AT LINE 3329 | |
> USED AT LINE 3327 | |
> USED AT LINE 3344 | |
L2260: 1D3A DEFINED AT LINE 3339 | |
> USED AT LINE 3349 | |
TBOOT: 1D40 DEFINED AT LINE 3340 | |
> USED AT LINE 3338 | |
> USED AT LINE 3355 | |
L2270: 1D49 DEFINED AT LINE 3350 | |
> USED AT LINE 3367 | |
COLD: 1D4E DEFINED AT LINE 3351 | |
> USED AT LINE 3349 | |
COLD1: 1D51 DEFINED AT LINE 3352 | |
> USED AT LINE 3363 | |
LASTN: 1D49 DEFINED AT LINE 3367 | |
> USED AT LINE 159 | |
NTOP: 6C00 DEFINED AT LINE 3369 | |
> USED AT LINE 158 | |
CTOP: 1D79 DEFINED AT LINE 3370 | |
> USED AT LINE 157 |
; START OF ROM CODE | |
; ================= | |
ORG $F800 | |
ROMSTART: | |
RAMSTART: EQU $0000 | |
RAMEND: EQU ROMSTART | |
RAMEND_EQU_ROMSTART: EQU 1 | |
BUILDK: EQU 1 | |
FALSE: equ 0 | |
TRUE: equ 1 | |
.db RAMEND_EQU_ROMSTART | |
test equ (ramend = romstart) | |
; NOT WORKING because ELSE is not working: | |
; IF BUILDK | |
; TFR S,X ; | |
; ELSE | |
; LDX #ROMSTART ; | |
; ENDIF | |
; | |
; Workaround suggested by Martin: | |
; | |
IF RAMEND_EQU_ROMSTART | |
TFR S,X ; | |
ENDIF | |
IFN RAMEND_EQU_ROMSTART | |
LDX #ROMSTART ; | |
ENDIF | |
; fails: | |
; IF (RAMEND==ROMSTART) | |
; TFR S,X ; | |
; ENDIF | |
; fails: | |
; IFN RAMEND = ROMSTART | |
; LDX #ROMSTART ; | |
; ENDIF | |
IF FALSE | |
db "False!" | |
db 0 | |
ENDIF | |
IFN FALSE | |
db "True!" | |
db 0 | |
ENDIF | |
; | |
IF TRUE | |
db "True!" | |
db 0 | |
ENDIF | |
IFN TRUE | |
db "False!" | |
db 0 | |
ENDIF | |
; | |
; The ELSE statement seems to work for db | |
; | |
IF FALSE | |
db "False!" | |
db 0 | |
ELSE | |
db "True!" | |
db 0 | |
ENDIF | |
; | |
IF TRUE | |
db "True!" | |
db 0 | |
ELSE | |
db "False!" | |
db 0 | |
ENDIF | |
; | |
; The ELSE statement fails for mnemonics: | |
; | |
IF TRUE | |
TFR S,X ; | |
ELSE | |
LDX #ROMSTART ; | |
ENDIF | |
; | |
IF FALSE | |
TFR S,X ; | |
ELSE | |
LDX #ROMSTART ; | |
ENDIF | |
; | |
; The ELSE statement fails for db mixed with mnemonics: | |
; | |
IF TRUE | |
db 0 | |
TFR S,X ; | |
ELSE | |
db 0 ; this won't appear (good) | |
LDX #ROMSTART ; this will appear (bad) | |
ENDIF | |
; | |
IF FALSE | |
db 0 ; this won't appear (good) | |
TFR S,X ; this will appear (bad) | |
ELSE | |
db 0 | |
LDX #ROMSTART ; | |
ENDIF | |
; | |
; The ELSE statement fails for FCC mixed with mnemonics: | |
; | |
IF TRUE | |
FCC "Okay" | |
TFR S,X ; | |
ELSE | |
FCC "Okay" ; this won't appear (good) | |
LDX #ROMSTART ; this will appear (bad) | |
ENDIF | |
; | |
IF FALSE | |
FCC "Okay" ; this won't appear (good) | |
TFR S,X ; this will appear (bad) | |
ELSE | |
FCC "Okay" | |
LDX #ROMSTART ; | |
ENDIF | |
db "K" | |
FCC "Okay" | |
ds "Malfunctions " ; creates a mess from here onward | |
; fds "Wibble " | |
fdb "Wibble " | |
end |
.MACRO write_string | |
LDX #$00 ; Start at 0 | |
OUTSTR: | |
LDA $%%1,X | |
CMPA #$%%2 | |
BEQ DONE ; Are we done writing? | |
JSR OUTCH | |
INX | |
JMP OUTSTR | |
DONE: | |
.ENDM | |
write_string TABLEHEADER,DB | |
TABLEHEADER: | |
DB "TEST" |
{} |
:10F80000011F4154727565210054727565210054C1 | |
:10F8100072756521005472756521001F418EF800D4 | |
:0DF82000001F41008EF8001F418EF8004BC4 | |
:00000001FF |
0000 ; START OF ROM CODE | |
0000 ; ================= | |
F800 .ORG $F800 | |
F800 ROMSTART: | |
F800 RAMSTART: EQU $0000 | |
F800 RAMEND: EQU ROMSTART | |
F800 ; | |
F800 RAMEND_EQU_ROMSTART: EQU 1 | |
F800 BUILDK: EQU 1 | |
F800 ; | |
F800 FALSE: EQU 0 | |
F800 TRUE: EQU 1 | |
F800 ; | |
F800 01 DB RAMEND_EQU_ROMSTART | |
F801 ; | |
F801 TEST: EQU (ramend = romstart) | |
F801 ; | |
F801 ; NOT WORKING because ELSE is not working: | |
F801 ; IF BUILDK | |
F801 ; TFR S,X ; | |
F801 ; ELSE | |
F801 ; LDX #ROMSTART ; | |
F801 ; ENDIF | |
F801 ; | |
F801 ; Workaround suggested by Martin: | |
F801 ; | |
F801 ; | |
F801 IF RAMEND_EQU_ROMSTART | |
F801 1F 41 TFR S,X ; | |
F803 ENDIF | |
F803 IFN RAMEND_EQU_ROMSTART | |
F803 ENDIF | |
F803 ; | |
F803 ; fails: | |
F803 ; IF (RAMEND==ROMSTART) | |
F803 ; TFR S,X ; | |
F803 ; ENDIF | |
F803 ; | |
F803 ; fails: | |
F803 ; IFN RAMEND = ROMSTART | |
F803 ; LDX #ROMSTART ; | |
F803 ; ENDIF | |
F803 ; | |
F803 IF FALSE | |
F803 ENDIF | |
F803 IFN FALSE | |
F803 54 72 75 65 21 DB "True!" | |
F808 00 DB 0 | |
F809 ENDIF | |
F809 ; | |
F809 IF TRUE | |
F809 54 72 75 65 21 DB "True!" | |
F80E 00 DB 0 | |
F80F ENDIF | |
F80F IFN TRUE | |
F80F ENDIF | |
F80F ; | |
F80F ; The ELSE statement seems to work for db | |
F80F ; | |
F80F IF FALSE | |
F80F ELSE | |
F80F 54 72 75 65 21 DB "True!" | |
F814 00 DB 0 | |
F815 ENDIF | |
F815 ; | |
F815 IF TRUE | |
F815 54 72 75 65 21 DB "True!" | |
F81A 00 DB 0 | |
F81B ELSE | |
F81B ENDIF | |
F81B ; | |
F81B ; The ELSE statement fails for mnemonics: | |
F81B ; | |
F81B IF TRUE | |
F81B 1F 41 TFR S,X ; | |
F81D ELSE | |
F81D ENDIF | |
F81D ; | |
F81D IF FALSE | |
F81D ELSE | |
F81D 8E F8 00 LDX #ROMSTART ; | |
F820 ENDIF | |
F820 ; | |
F820 ; | |
F820 ; The ELSE statement fails for db mixed with mnemonics: | |
F820 ; | |
F820 IF TRUE | |
F820 00 DB 0 | |
F821 1F 41 TFR S,X ; | |
F823 ELSE | |
F823 ENDIF | |
F823 ; | |
F823 IF FALSE | |
F823 ELSE | |
F823 00 DB 0 | |
F824 8E F8 00 LDX #ROMSTART ; | |
F827 ENDIF | |
F827 ; | |
F827 ; | |
F827 ; The ELSE statement fails for FCC mixed with mnemonics: | |
F827 ; | |
F827 IF TRUE | |
F827 FCC "Okay" | |
F827 1F 41 TFR S,X ; | |
F829 ELSE | |
F829 ENDIF | |
F829 ; | |
F829 IF FALSE | |
F829 ELSE | |
F829 FCC "Okay" | |
F829 8E F8 00 LDX #ROMSTART ; | |
F82C ENDIF | |
F82C ; | |
F82C 4B DB "K" | |
F82D FCC "Okay" | |
F82D DS "Malfunctions " ; creates a mess from here onward | |
63533MALFUNCTIONS ; fds "Wibble " | |
63533MALFUNCTIONS 0 FDB "Wibble " | |
63533MALFUNCTIONS 00 END | |
ROMSTART: F800 DEFINED AT LINE 4 | |
> USED AT LINE 6 | |
> USED AT LINE 16 | |
RAMSTART: 0000 DEFINED AT LINE 5 | |
RAMEND: F800 DEFINED AT LINE 6 | |
> USED AT LINE 16 | |
RAMEND_EQU_ROMSTART: 0001 DEFINED AT LINE 8 | |
> USED AT LINE 14 | |
BUILDK: 0001 DEFINED AT LINE 9 | |
FALSE: 0000 DEFINED AT LINE 11 | |
TRUE: 0001 DEFINED AT LINE 12 | |
TEST: 0001 DEFINED AT LINE 16 |
S113F800011F4154727565210054727565210054BE | |
S113F81072756521005472756521001F418EF800D1 | |
S110F820001F41008EF8001F418EF8004BC1 | |
S9030000FC |
.org $2000 | |
.ent $ | |
lda $1234 | |
.MACRO write_string | |
LDX #$00 ; Start at 0 | |
OUTSTR: | |
LDA %%1,X | |
CMP #$%%2 | |
BEQ DONE ; Are we done writing? | |
JSR OUTCH | |
INX | |
JMP OUTSTR | |
DONE: | |
.ENDM | |
jmp tableheader | |
jmp $1234 | |
TABLEHEADER: | |
DB "TEST" | |
;write_string TABLEHEADER,DB | |
lda tableheader,X |
{} |
:10200000AD34124C09204C341254455354BD0920B0 | |
:00000001FF |
2000 .ORG $2000 | |
2000 .ENT $ | |
2000 AD 34 12 LDA $1234 | |
2003 4C 09 20 JMP tableheader | |
2006 4C 34 12 JMP $1234 | |
2009 TABLEHEADER: | |
2009 54 45 53 54 DB "TEST" | |
200D ;write_string TABLEHEADER,DB | |
200D BD 09 20 LDA tableheader,X | |
TABLEHEADER: 2009 DEFINED AT LINE 21 | |
> USED AT LINE 18 | |
> USED AT LINE 26 |
cpu M6809 | |
serial 6850 | |
serial.data 0x83ff | |
serial.control 0x83fe | |
serial.map 1 | |
terminal.caps 1 | |
memory.rom.from 0xE000 | |
memory.rom.to 0xffff | |
memory.ram.from 0x0000 | |
memory.ram.to 0x7fff |
.ENGINE kilo | |
;zero page | |
.BSSEG | |
.ORG 0 | |
Q_ADD: DS 2 | |
Q_KEY: DS 1 | |
Q_HEXCNT: DS 1 | |
Q_HEXADD: DS 2 | |
.CSEG | |
;.org $0000 | |
;.phase $E000 | |
.ORG $E000 | |
.ENT $ | |
JMP reset | |
JMP serin | |
JMP serout | |
JMP print2 | |
JMP printx | |
JMP primm | |
RESET: | |
LDS #$8000 | |
ORCC #$50 | |
LDA #$15 | |
STA ACIAC | |
LDA #0 | |
TFR a,dp | |
WARM: | |
JSR primm | |
.CSTR "KILO Monitor v1" | |
MAINCRLF: | |
JSR pcrlf | |
MAIN: | |
JSR prompt | |
MAINSHORT: | |
JSR serin | |
CMPA #":" | |
BEQ m_hex | |
CMPA #$0d | |
BEQ mainshort | |
CMPA #$a | |
BEQ mainshort | |
;caps fix | |
ANDA #$DF | |
CMPA #"M" | |
LBEQ m_mem | |
CMPA #"D" | |
LBEQ m_dump | |
CMPA #"G" | |
LBEQ m_go | |
CMPA #"U" | |
LBEQ m_user | |
WHAT: | |
JSR primm | |
.CSTR "What?" | |
JMP maincrlf | |
M_HEX: | |
JSR gethex2 | |
STA q_hexcnt | |
JSR gethex4 | |
STX q_hexadd | |
JSR gethex2 | |
CMPA #$00 | |
BNE m_hexend | |
M_HEX_LOOP: | |
JSR gethex2 | |
STA ,x+ | |
;inc q_hexadd | |
DEC q_hexcnt | |
BNE m_hex_loop | |
LDA #"*" | |
JSR serout | |
M_HEX_WAITEND: | |
JSR serin | |
CMPA #$0d | |
BEQ main | |
CMPA #$0a | |
BEQ m_hex_waitend | |
CMPA #":" | |
BEQ m_hex | |
BRA m_hex_waitend | |
M_HEXEND: | |
;jsr gethex2 | |
BRA maincrlf | |
M_MEM: | |
JSR getaddr | |
LDX q_add | |
M_MEM_LINE: | |
JSR pcrlf | |
JSR printx | |
JSR primm | |
.CSTR " [" | |
LDA ,x+ | |
STA q_add+1 | |
JSR print2 | |
JSR primm | |
.CSTR "] " | |
JSR get4x | |
CMPA #$A0 | |
LBEQ maincrlf | |
CMPA #$88 | |
BEQ m_mem_back | |
CMPA #$8d | |
BNE m_mem_line | |
LDA q_add+1 | |
STA [-1,x] | |
JMP m_mem_line | |
M_MEM_BACK: | |
LDA q_add+1 | |
STA [-1,x] | |
LEAX -2,x | |
JMP m_mem_line | |
M_DUMP: | |
JSR getaddr | |
LDX q_add | |
JSR pcrlf | |
M_DUMP_LINE: | |
JSR printx | |
JSR primm | |
.CSTR ": " | |
LDB #$10 | |
M_DUMP_LOOP: | |
LDA ,x+ | |
JSR print2 | |
LDA #$20 | |
JSR serout | |
DECB | |
BNE m_dump_loop | |
JSR pcrlf | |
M_DUMP_WAIT: | |
JSR serin | |
CMPA #$0d | |
BEQ m_dump_line | |
CMPA #$20 | |
LBEQ main | |
CMPA #$08 | |
BNE m_dump_wait | |
LEAX -32,x | |
JMP m_dump_line | |
M_GO: | |
JSR getaddr | |
JMP [q_add] | |
M_USER: | |
JSR primm | |
.CSTR "Installed modules:",$d,$a | |
LDD #mon_end | |
CLRB | |
INCA | |
PSHS d | |
PULS x | |
M_U_FIND: | |
LDA 3,x | |
CMPA #"M" | |
BNE m_u_next | |
LDA 4,x | |
CMPA #"O" | |
BNE m_u_next | |
LDA 5,x | |
CMPA #"D" | |
BNE m_u_next | |
LDA 6,x | |
CMPA #"9" | |
BNE m_u_next | |
;found | |
PSHS x | |
LEAX 7,x | |
JSR strout | |
JSR pcrlf | |
PULS x | |
M_U_NEXT: | |
LEAX 256,x | |
BNE m_u_find | |
JMP main | |
PRINTX: | |
TFR x,d | |
JSR print2 | |
TFR b,a | |
PRINT2: | |
PSHS a | |
LSRA | |
LSRA | |
LSRA | |
LSRA | |
JSR printhex | |
PULS a | |
ANDA #$0f | |
PRINTHEX: | |
CMPA #$0a | |
BHS ph2 | |
ADDA #$30 | |
JMP serout | |
PH2: | |
ADDA #$37 | |
JMP serout | |
GETADDR: | |
JSR primm | |
.CSTR "Addr:" | |
JSR get4 | |
RTS | |
GET4: | |
LDD #0 | |
STD q_add | |
GET4X: | |
JSR gethex | |
BPL get4ok | |
RTS | |
GET4OK: | |
TFR a,b | |
JSR printhex | |
CLRA | |
LSL q_add+1 | |
ROL q_add | |
LSL q_add+1 | |
ROL q_add | |
LSL q_add+1 | |
ROL q_add | |
LSL q_add+1 | |
ROL q_add | |
ADDD q_add | |
STD q_add | |
JMP get4x | |
GETHEX2: | |
JSR gethex | |
LSLA | |
LSLA | |
LSLA | |
LSLA | |
STA q_key | |
JSR gethex | |
ADDA q_key | |
RTS | |
GETHEX4: | |
JSR gethex2 | |
PSHS a | |
JSR gethex2 | |
TFR a,b | |
PULS a | |
TFR d,x | |
RTS | |
GETHEX: | |
JSR serin | |
CMPA #$30 | |
BHS gh1 | |
GHB: | |
ORA #$80 | |
RTS | |
GH1: | |
CMPA #$3A | |
BHI gh2 | |
SUBA #$30 | |
RTS | |
GH2: | |
CMPA #"A" | |
BLO ghb | |
CMPA #"F" | |
BHI gh3 | |
SUBA #55 | |
RTS | |
GH3: | |
CMPA #"a" | |
BLO ghb | |
CMPA #"f" | |
BHI ghb | |
SUBA #$57 | |
RTS | |
; serial | |
ACIA EQU $83fe | |
ACIAC EQU ACIA | |
ACIAS EQU ACIA | |
ACIAD EQU ACIA+1 | |
ACIA_TDRE EQU 02h | |
ACIA_RDRF EQU 01h | |
STROUT: | |
LDA ,x+ | |
BNE sout2 | |
RTS | |
SOUT2: | |
JSR serout | |
JMP strout | |
SEROUT: | |
PSHS a,b | |
SEROUTL: | |
LDB ACIAS | |
ANDB #ACIA_TDRE | |
BEQ seroutl | |
STA ACIAD | |
PULS a,b | |
RTS | |
PCRLF: | |
LDA #$d | |
JSR serout | |
LDA #$a | |
JMP serout | |
PROMPT: | |
LDA #">" | |
JSR serout | |
LDA #$20 | |
JMP serout | |
PRIMM: | |
PSHS a,x | |
LDX 3,s | |
PRIMM1: | |
LDA ,x+ | |
BNE primm2 | |
STX 3,s | |
PULS a,x,pc | |
PRIMM2: | |
JSR serout | |
BRA primm1 | |
SERIN: | |
LDA ACIAS | |
ANDA #ACIA_RDRF | |
BEQ serin | |
LDA ACIAD | |
RTS | |
MON_END EQU $ | |
.BLOCK | |
.INCLUDE basic.a09 | |
.ENDBLOCK | |
.INCLUDE testmod.a09 | |
.ORG 0xfff0 | |
;reserved | |
DW reset | |
;SWI3 | |
DW reset | |
;SWI2 | |
DW reset | |
;FIRQ | |
DW reset | |
;IRQ | |
DW reset | |
;SWI | |
DW reset | |
;NMI | |
DW reset | |
;RES | |
DW reset |
; OMEN KILO monitor version 1.0 | |
; (C) 2018 Martin Maly <maly@maly.cz> | |
; Published under the terms of MIT license | |
; Commands: | |
; ========= | |
; M - list / change memory | |
; D - Dump memory | |
; Enter moves to the next cell, backspace moves to the previous, space ends | |
; G - Jump to memory | |
; U - List and call user modules | |
; W - Dump memory (from, to) as a SREC19 record | |
; X - Dump memory (from, to) as a HEX record | |
; : - read a HEX line (you can send the HEX record directly into the terminal) | |
; S - read a SREC line | |
.ENGINE kilo | |
.pragma srec | |
;zero page | |
.BSSEG | |
.ORG 0 | |
Q_ADD: DS 2 ; address | |
Q_KEY: DS 1 ; last key pressed | |
Q_HEXCNT: DS 1 ; for hex/srec: number of bytes | |
Q_HEXADD: DS 2 ; for hex/srec: address | |
Q_HEXADD2: DS 2 | |
q_subr: ds 2 | |
.CSEG | |
; for generating EEPROM image, use this: | |
;.org $0000 | |
;.phase $E000 | |
.ORG $E000 | |
.ENT $ | |
; Vector table | |
; E000 - reset | |
; E003 - read a character from the serial port | |
; E006 - print a character | |
; E009 - print 2digit hex number from A | |
; E00C - print 4digit hex number from X | |
; E00F - print immediatelly stored ASCIIZ string | |
JMP reset | |
JMP serin | |
JMP serout | |
JMP print2 | |
JMP printx | |
JMP primm | |
RESET: | |
LDS #$8000 | |
ORCC #$50 | |
LDA #$15 | |
STA ACIAC | |
LDA #0 | |
TFR a,dp | |
WARM: | |
JSR primm | |
.CSTR "KILO Monitor v1" | |
MAINCRLF: | |
JSR pcrlf | |
MAIN: | |
JSR prompt | |
MAINSHORT: | |
JSR serin | |
CMPA #":" | |
BEQ m_hex | |
CMPA #$0d | |
BEQ mainshort | |
CMPA #$a | |
BEQ mainshort | |
;caps fix | |
ANDA #$DF | |
CMPA #"M" | |
LBEQ m_mem | |
CMPA #"D" | |
LBEQ m_dump | |
CMPA #"G" | |
LBEQ m_go | |
CMPA #"U" | |
LBEQ m_user | |
CMPA #"W" | |
LBEQ m_writesrec | |
CMPA #"X" | |
LBEQ m_writehex | |
WHAT: | |
JSR primm | |
.CSTR "What?" | |
JMP maincrlf | |
M_HEX: | |
JSR gethex2 | |
STA q_hexcnt | |
JSR gethex4 | |
STX q_hexadd | |
JSR gethex2 | |
CMPA #$00 | |
BNE m_hexend | |
M_HEX_LOOP: | |
JSR gethex2 | |
STA ,x+ | |
;inc q_hexadd | |
DEC q_hexcnt | |
BNE m_hex_loop | |
LDA #"*" | |
JSR serout | |
M_HEX_WAITEND: | |
JSR serin | |
CMPA #$0d | |
BEQ main | |
CMPA #$0a | |
BEQ m_hex_waitend | |
CMPA #":" | |
BEQ m_hex | |
BRA m_hex_waitend | |
M_HEXEND: | |
;jsr gethex2 | |
BRA maincrlf | |
M_MEM: | |
JSR getaddr | |
LDX q_add | |
M_MEM_LINE: | |
JSR pcrlf | |
JSR printx | |
JSR primm | |
.CSTR " [" | |
LDA ,x+ | |
STA q_add+1 | |
JSR print2 | |
JSR primm | |
.CSTR "] " | |
JSR get4x | |
CMPA #$A0 | |
LBEQ maincrlf | |
CMPA #$88 | |
BEQ m_mem_back | |
CMPA #$8d | |
BNE m_mem_line | |
LDA q_add+1 | |
STA [-1,x] | |
JMP m_mem_line | |
M_MEM_BACK: | |
LDA q_add+1 | |
STA [-1,x] | |
LEAX -2,x | |
JMP m_mem_line | |
M_DUMP: | |
JSR getaddr | |
LDX q_add | |
JSR pcrlf | |
M_DUMP_LINE: | |
JSR printx | |
JSR primm | |
.CSTR ": " | |
LDB #$10 | |
M_DUMP_LOOP: | |
LDA ,x+ | |
JSR print2 | |
LDA #$20 | |
JSR serout | |
DECB | |
BNE m_dump_loop | |
JSR pcrlf | |
M_DUMP_WAIT: | |
JSR serin | |
CMPA #$0d | |
BEQ m_dump_line | |
CMPA #$20 | |
LBEQ main | |
CMPA #$08 | |
BNE m_dump_wait | |
LEAX -32,x | |
JMP m_dump_line | |
M_GO: | |
JSR getaddr | |
JMP [q_add] | |
M_U_FNEXT: | |
LDA 3,x | |
CMPA #"M" | |
BNE m_u_fnext_e | |
LDA 4,x | |
CMPA #"O" | |
BNE m_u_fnext_e | |
LDA 5,x | |
CMPA #"D" | |
BNE m_u_fnext_e | |
LDA 6,x | |
CMPA #"9" | |
M_U_FNEXT_E: | |
RTS | |
M_USER: | |
JSR primm | |
.CSTR "Installed modules:",$d,$a | |
LDD #mon_end | |
CLRB | |
INCA | |
PSHS d | |
PULS x | |
LDB #$41 | |
M_U_FIND: | |
JSR m_u_fnext | |
BNE m_u_next | |
;found | |
LDA #"[" | |
JSR serout | |
TFR b,a | |
JSR serout | |
INCB | |
LDA #"]" | |
JSR serout | |
LDA #" " | |
JSR serout | |
PSHS x | |
LEAX 7,x | |
JSR strout | |
JSR pcrlf | |
PULS x | |
M_U_NEXT: | |
LEAX 256,x | |
BNE m_u_find | |
JSR primm | |
.CSTR "Select module to run: " | |
M_U_SEL: | |
JSR serin | |
CMPA #$20 | |
LBEQ main | |
CMPA #$0d | |
LBEQ main | |
SUBA #$41 | |
LBLT main | |
PSHS a | |
LDD #mon_end | |
CLRB | |
INCA | |
PSHS d | |
PULS x | |
PULS b | |
M_U_SELF: | |
JSR m_u_fnext | |
BNE m_u_seln | |
CMPB #0 | |
BEQ m_u_found | |
DECB | |
M_U_SELN: | |
LEAX 256,x | |
BNE m_u_self | |
JMP m_u_sel | |
M_U_FOUND: | |
PSHS x | |
RTS | |
M_WRITEHEX: | |
ldx #m_whexline | |
stx q_subr | |
jsr m_wrbody | |
JSR primm | |
.CSTR ":00000001FF",$d,$a | |
JMP main | |
M_WRITEsrec: | |
ldx #m_wsline | |
stx q_subr | |
jsr m_wrbody | |
JSR primm | |
.CSTR "S9030000FC",$d,$a | |
JMP main | |
m_wrbody: | |
JSR primm | |
.CSTR "From:" | |
JSR get4 | |
LDX q_add | |
STX q_hexadd | |
JSR primm | |
.CSTR $d,$a,"To:" | |
JSR get4 | |
LDX q_add | |
STX q_hexadd2 | |
JSR pcrlf | |
M_WHL: | |
LDA q_hexadd | |
CMPA q_hexadd2 | |
BNE m_wh10 | |
LDA q_hexadd2+1 | |
SUBA q_hexadd+1 | |
BEQ m_whend | |
CMPA #$10 | |
BLO m_whx | |
M_WH10: | |
LDA #$10 | |
M_WHX: | |
STA q_hexcnt | |
JSR [q_subr] | |
LDA q_hexadd | |
CMPA q_hexadd2 | |
BLS m_whl | |
LDA q_hexadd+1 | |
CMPA q_hexadd2+1 | |
BLS m_whl | |
m_whend: | |
rts | |
M_WHEXLINE: | |
LDA #":" | |
JSR serout | |
LDA q_hexcnt | |
JSR print2 | |
LDX q_hexadd | |
JSR printx | |
LDA #0 | |
JSR print2 | |
LDB q_hexcnt | |
ADDB q_hexadd | |
ADDB q_hexadd+1 | |
MWHLOOP: | |
ADDB ,x | |
LDA ,x+ | |
JSR print2 | |
DEC q_hexcnt | |
BNE mwhloop | |
STX q_hexadd | |
TFR b,a | |
NEGA | |
JSR print2 | |
JSR pcrlf | |
RTS | |
M_WSLINE: | |
LDA #"S" | |
JSR serout | |
LDA #"1" | |
JSR serout | |
LDA q_hexcnt | |
adda #3 | |
JSR print2 | |
LDX q_hexadd | |
JSR printx | |
LDA #0 | |
JSR print2 | |
LDB q_hexcnt | |
ADDB q_hexadd | |
ADDB q_hexadd+1 | |
addb #3 | |
MWSLOOP: | |
ADDB ,x | |
LDA ,x+ | |
JSR print2 | |
DEC q_hexcnt | |
BNE mwsloop | |
STX q_hexadd | |
TFR b,a | |
NEGA | |
JSR print2 | |
JSR pcrlf | |
RTS | |
; ---------------------------------------- | |
; End of monitor commands | |
; Here starts the useful routines | |
; Print the 4digit hex number from the X register | |
PRINTX: | |
TFR x,d | |
JSR print2 | |
TFR b,a | |
; Print the 2digit hex number from the A register | |
PRINT2: | |
PSHS a | |
LSRA | |
LSRA | |
LSRA | |
LSRA | |
JSR printhex | |
PULS a | |
ANDA #$0f | |
; Print one hex digit from register A | |
PRINTHEX: | |
CMPA #$0a | |
BHS ph2 | |
ADDA #$30 | |
JMP serout | |
PH2: | |
ADDA #$37 | |
JMP serout | |
; Prompt for address | |
GETADDR: | |
JSR primm | |
.CSTR "Addr:" | |
;JSR get4 | |
;RTS | |
; Read 4digit hex address | |
; The value is in q_add variable (ZP) | |
GET4: | |
LDD #0 | |
STD q_add | |
GET4X: | |
JSR gethex | |
BPL get4ok | |
RTS | |
GET4OK: | |
TFR a,b | |
JSR printhex | |
CLRA | |
LSL q_add+1 | |
ROL q_add | |
LSL q_add+1 | |
ROL q_add | |
LSL q_add+1 | |
ROL q_add | |
LSL q_add+1 | |
ROL q_add | |
ADDD q_add | |
STD q_add | |
JMP get4x | |
; Get 1 byte from serial to A (for .hex/.srec) | |
GETHEX2: | |
JSR gethex | |
LSLA | |
LSLA | |
LSLA | |
LSLA | |
STA q_key | |
JSR gethex | |
ADDA q_key | |
RTS | |
; Get 2 bytes from serial to X (for .hex/.srec) | |
GETHEX4: | |
JSR gethex2 | |
PSHS a | |
JSR gethex2 | |
TFR a,b | |
PULS a | |
TFR d,x | |
RTS | |
GETHEX: | |
JSR serin | |
CMPA #$30 | |
BHS gh1 | |
GHB: | |
ORA #$80 | |
RTS | |
GH1: | |
CMPA #$3A | |
BHI gh2 | |
SUBA #$30 | |
RTS | |
GH2: | |
CMPA #"A" | |
BLO ghb | |
CMPA #"F" | |
BHI gh3 | |
SUBA #55 | |
RTS | |
GH3: | |
CMPA #"a" | |
BLO ghb | |
CMPA #"f" | |
BHI ghb | |
SUBA #$57 | |
RTS | |
; serial | |
ACIA EQU $83fe | |
ACIAC EQU ACIA | |
ACIAS EQU ACIA | |
ACIAD EQU ACIA+1 | |
ACIA_TDRE EQU 02h | |
ACIA_RDRF EQU 01h | |
; Print null-terminated string to serial port | |
; address of the string is in the X register | |
STROUT: | |
LDA ,x+ | |
BNE sout2 | |
RTS | |
SOUT2: | |
JSR serout | |
JMP strout | |
; send one byte from A to serial | |
SEROUT: | |
PSHS a,b | |
SEROUTL: | |
LDB ACIAS | |
ANDB #ACIA_TDRE | |
BEQ seroutl | |
STA ACIAD | |
PULS a,b | |
RTS | |
; print CR LF | |
PCRLF: | |
LDA #$d | |
JSR serout | |
LDA #$a | |
JMP serout | |
; print monitor prompt | |
PROMPT: | |
LDA #">" | |
JSR serout | |
LDA #$20 | |
JMP serout | |
; print immediate | |
; Usage: | |
; JSR PRIMM | |
; .CSTR "string to print" | |
PRIMM: | |
PSHS a,x | |
LDX 3,s | |
PRIMM1: | |
LDA ,x+ | |
BNE primm2 | |
STX 3,s | |
PULS a,x,pc | |
PRIMM2: | |
JSR serout | |
BRA primm1 | |
; Wait for serial char to read | |
SERIN: | |
LDA ACIAS | |
ANDA #ACIA_RDRF | |
BEQ serin | |
LDA ACIAD | |
RTS | |
MON_END EQU $ | |
; USER MODULES | |
; see testmod.a09 to further information | |
.INCLUDE testmod.a09 | |
.INCLUDE basic.a09 | |
.ORG 0xfff0 | |
;reserved | |
DW reset | |
;SWI3 | |
DW reset | |
;SWI2 | |
DW reset | |
;FIRQ | |
DW reset | |
;IRQ | |
DW reset | |
;SWI | |
DW reset | |
;NMI | |
DW reset | |
;RES | |
DW reset | |
{} |
:10E000007EE0127EE24A7EE2167EE1767EE16F7E5F | |
:10E01000E23910CE80001A508615B783FE86001FA5 | |
:10E020008BBDE2394B494C4F204D6F6E69746F7256 | |
:10E0300020763100BDE225BDE22FBDE24A813A27BC | |
:10E040002E810D27F5810A27F184DF814D102700ED | |
:10E05000508144102700898147102700BD81551049 | |
:10E060002700BEBDE239576861743F007EE034BDD1 | |
:10E07000E1C69703BDE1D59F04BDE1C68100261F1F | |
:10E08000BDE1C6A7800A0326F7862ABDE216BDE2D7 | |
:10E090004A810D27A2810A27F5813A27D220EF2055 | |
:10E0A00093BDE1919E00BDE225BDE16FBDE2392047 | |
:10E0B0005B00A6809701BDE176BDE2395D2000BD21 | |
:10E0C000E1A381A01027FF6C8188270B818D26D6C4 | |
:10E0D0009601A71F7EE0A69601A71F301E7EE0A630 | |
:10E0E000BDE1919E00BDE225BDE16FBDE2393A2060 | |
:10E0F00000C610A680BDE1768620BDE2165A26F342 | |
:10E10000BDE225BDE24A810D27DE81201027FF27D1 | |
:10E11000810826EF3088E07EE0E8BDE1916E9F0047 | |
:10E1200000BDE239496E7374616C6C6564206D6F7B | |
:10E1300064756C65733A0D0A00CCE2555F4C340689 | |
:10E140003510A603814D261EA604814F2618A6056C | |
:10E1500081442612A6068139260C34103007BDE210 | |
:10E160000BBDE22535103089010026D67EE0371F31 | |
:10E1700010BDE1761F98340244444444BDE1833528 | |
:10E1800002840F810A24058B307EE2168B377EE2F3 | |
:10E1900016BDE239416464723A00BDE19E39CC009B | |
:10E1A00000DD00BDE1E42A01391F89BDE1834F088C | |
:10E1B000010900080109000801090008010900D34C | |
:10E1C00000DD007EE1A3BDE1E4484848489702BD78 | |
:10E1D000E1E49B0239BDE1C63402BDE1C61F8935C9 | |
:10E1E000021F0139BDE24A813024038A8039813A15 | |
:10E1F0002203803039814125F2814622038037395C | |
:10E20000816125E7816622E3805739A6802601399E | |
:10E21000BDE2167EE20B3406F683FEC40227F9B790 | |
:10E2200083FF350639860DBDE216860A7EE2168624 | |
:10E230003EBDE21686207EE2163412AE63A680262C | |
:10E2400004AF633592BDE21620F3B683FE84012746 | |
:05E25000F9B683FF395F | |
:10E300007EE3154D4F443942415349430010DE0C22 | |
:10E31000BDEAE1201310CE21CC10DF0CBDEAE1CC28 | |
:10E320000249DD06DD08DD0ABDE43F8EE383BDE47E | |
:10E330003810DE0C0F19BDE43F9E069F0E8E0000C4 | |
:10E340009F120D192605863ABDEAA6BDE490BDE5EB | |
:10E35000EA240E292BBDE55B810427E1BDE50D20F4 | |
:10E36000D034109E089C0A351027037EE45FC3005A | |
:10E3700000270D340683270F350622048D1020BD9B | |
:10E380007EE45654494E592056312E333704340614 | |
:10E39000BDE55B9F14A6609E0E9C08270510A30098 | |
:10E3A00024029E06BDE6C49F0E25229F103002A6C1 | |
:10E3B00080810426FA9C08270EA6809F169E10A72F | |
:10E3C000809F109E1620EE9E109F089F0A9E14C6E6 | |
:10E3D000FF5CA680810426F95D2603326239301F76 | |
:10E3E000CB04301F5AA600812027F78604A7014FCF | |
:10E3F0009E089F16D308DD08DD0ABDE66224079F4C | |
:10E40000089F0A7EE44E9E089F109E169C0E270AC7 | |
:10E41000A6829F169E10A78220EE35069E0EED81E5 | |
:10E420009F169E14A6809F149E16A7809F16810497 | |
:10E4300026F039BDEAA63001A600810426F5398E02 | |
:10E44000E4478DF40F18390D0A7F000000048D2475 | |
:10E45000534F525259048D1C57484154203F048D4C | |
:10E4600013484F57203F048D0B425245414B0453F4 | |
:10E47000544F50048DC98607BDEAA6DC12BDE95E83 | |
:10E480008620BDEAA635108DAF8DB47EE3318DAF09 | |
:10E490008E0200BDEA9C81202514817F27F58C0225 | |
:10E4A00048260486072002A780BDEAA620E5810849 | |
:10E4B0002724811827D8810A2731810D26D50D19E7 | |
:10E4C0002705BDEAA620073410BDE43F35108604B9 | |
:10E4D000A7008E0200398C020027B8301F8608BDC5 | |
:10E4E000EAA68620BDEAA6860820BE1A01061920E3 | |
:10E4F000B830018D66810426F8BDE83196129A1372 | |
:10E5000027149C0826037EE45FEC81DD12BDEA98A7 | |
:10E510008D0825033406397EE8428D3F9F0E8EEA32 | |
:10E5200037A680810426059E0E1A01399F169E0E7D | |
:10E530009F149E14A100261530019F149E16A680DC | |
:10E540009F16810426ECEC009E141CFE399E16A634 | |
:10E5500080810426FA300220C83001A600812027DD | |
:10E56000F8398D1A2422814125118146220D8037E8 | |
:10E570001CFE3981412504815A230D1A013981304D | |
:10E5800025F9813922F580301CFE398DCE8DE425A8 | |
:10E59000121F89A6018DDC24E23001C041584FD3FF | |
:10E5A0000C1CFE39BDE8103406BDE55B812C270943 | |
:10E5B00081291A0127157EE4563001BDE743340254 | |
:10E5C000BDE55B8129350226ED1CFE30019F0EADB5 | |
:10E5D000F19E0E1CFE39BDE55B812D260D30018DAF | |
:10E5E000092506405082001CFC39BDE55BBDE57E77 | |
:10E5F000242F81241A01266030016FE26FE2A60009 | |
:10E60000BDE562254F300134103402EC6385F026FD | |
:10E610004A5849584958495849EBE0ED62351020AD | |
:10E62000DD300134026FE2A600BDE57E2526300113 | |
:10E6300034103402EC63584929215849291DE363F9 | |
:10E64000291958492915EB608900290FED633261BA | |
:10E65000351020D335061CFE1CFD39AE6132651A1B | |
:10E66000033910DF10DC10830030930A39BDE7FD59 | |
:10E6700034063410E672351032624F39BDE7FD348E | |
:10E6800006BDE55B813D27037EE4563001BDE743CF | |
:10E69000BDE8313410E772351032627EE4FCBDE52E | |
:10E6A0005B9F0E8EE6AEBDE521250234063955533B | |
:10E6B0005204E5A45045454B04E66D4D454D04E636 | |
:10E6C00062049E069C0826031A033910A300260341 | |
:10E6D0001CFC3924051A011CFD3934028604300162 | |
:10E6E0003001A10026FA3502300120D88D553406BC | |
:10E6F0005FBDE55B813D2723813C261030015CBD79 | |
:10E70000E55B813E26113001CB042013813E265F5C | |
:10E710003001CB04BDE55B813D26043001CB0234E2 | |
:10E72000048D203410A3631FA8441F894848340473 | |
:10E73000ABE0840626014C5FA4622701534F3510DD | |
:10E740003263396FE26FE2BDE55B812D2717812BC4 | |
:10E75000260230018D1CE360ED60BDE55B812B2757 | |
:10E76000F1812D260A30018D094050820020E735C5 | |
:10E770000639BDE7E53406BDE55B812A2748812FD0 | |
:10E78000270335063930018D5C341030623406A819 | |
:10E7900000BDE8243060BDE8243402861134024F05 | |
:10E7A0005FA3622406E3621CFE20021A0169676906 | |
:10E7B0006659496A6026EAA66132644D2A043062CD | |
:10E7C0008D66351020B130018D1B3404E6623DA604 | |
:10E7D00061E761E6603DA662E76235043DAB60AB90 | |
:10E7E00061ED602092BDE58B250934101F01EC001E | |
:10E7F000351039BDE5EA24FABDE69E24F58D1134C5 | |
:10E8000002BDE55B8129350226033001397EE456DD | |
:10E81000BDE66224037EE44EBDE55B812826EE3032 | |
:10E82000017EE7436D002A086000600124026A004F | |
:10E83000393402BDE55B810427037EE4563001359F | |
:10E840000239BDE58B24037EE4563406BDE55B81C9 | |
:10E850003D27037EE4563001BDE7438DD49F0E353E | |
:10E8600010ED009E0E7EE4FCBDE6EC5D27037EE528 | |
:10E870000D7EE4F3BDE7438DB8BDE6C2250F7EE50E | |
:10E8800009BDE7438DAB9F0EBDE6C224037EE45F66 | |
:10E89000BDE66224037EE44EDC0E3406DC12340650 | |
:10E8A000BDE5093506DD1235107EE4FCBDE55B8172 | |
:10E8B0002C2736813B273D810427258122260630DF | |
:10E8C000018D422009BDE74334108D473510BDE569 | |
:10E8D0005B812C2714813B271B810427037EE45690 | |
:10E8E0003410BDE43F35102014C6078620BDEAA6CB | |
:10E8F000D51826F73001BDE55B810426B230017ED4 | |
:10E90000E4FCBDEAA6A680810426037EE4568122AB | |
:10E9100026F0394D2A0D405082003402862DBDEA82 | |
:10E92000A635028EE952300210A30024058CE95C62 | |
:10E9300026F40F1610A3002506A3000C1620F534AC | |
:10E940000286309B16BDEAA635028CE95C270430AE | |
:10E950000220DF39271003E80064000A00018EE975 | |
:10E960005620CFBDE58B253C34069F0E863FBDEA81 | |
:10E97000A6BDE490BDE55B810427F1BDE5D6240B7F | |
:10E980008EE9B8BDE438BDE43F20E19F143510EDB9 | |
:10E99000009E0EBDE55B812C27037EE4F93001BDAE | |
:10E9A000E58B24037EE456340634109E14BDE55BEB | |
:10E9B000812C26C0300120BC52452D454E54455275 | |
:10E9C000049E0C86346F804A26FB9E067EE502BDBF | |
:10E9D000E5EA24084F5FDD0E867F2017DD0EBDE5DA | |
:10E9E0005B812C2704960E200A3001BDE5EA240342 | |
:10E9F0007EE456BDE8313406DC0E9F0EBDE6C29CB7 | |
:10EA0000082728350610A30025283406EC81341089 | |
:10EA1000BDE95E35108620BDEAA6BDE4383001347C | |
:10EA200010BDE43F3510BDEA9820D432628603BDA4 | |
:10EA3000EAA69E0E7EE4FC4C455404E84249460496 | |
:10EA4000E868474F544F04E874474F53554204E871 | |
:10EA50008152455455524E04E831504F4B4504E61F | |
:10EA60007C5052494E5404E8AC494E50555404E988 | |
:0EEA70006352454D04E4F353544F5004EAE260 | |
:06EA7C00454E4404EAE2ED | |
:10EA800052554E04E9C14C49535404E9CF4E455701 | |
:10EA900004E31F3F04E8AC048D2A27098D0D810390 | |
:10EAA00026037EE467390C187EEAB58D1727FCB67D | |
:10EAB000E256847F393402B6E255850227F93502E1 | |
:10EAC000B7E256393402B6E25585202705B6E2563C | |
:10EAD00020F485013502398603B7E2558615B7E281 | |
:02EAE0005539A6 | |
:10EB00007EEB0F4D4F4439546573744D6F6400BDF7 | |
:10EB1000E00F54657374206D6F64756C650D0A00A9 | |
:03EB20007EE00094 | |
:10FFF000E012E012E012E012E012E012E012E01271 | |
:00000001FF |
:10E000007EE0127EE3A67EE3727EE2D67EE2CF7EE3 | |
:10E01000E39510CE80001A508615B783FE86001F48 | |
:10E020008BBDE3954B494C4F204D6F6E69746F72F9 | |
:10E0300020763100BDE381BDE38BBDE3A6813A27A5 | |
:10E040003A810D27F5810A27F184DF814D102700E1 | |
:10E050005C8144102700958147102700C981551025 | |
:10E060002700E1815710270198815810270176BDBC | |
:10E07000E395576861743F007EE034BDE322970367 | |
:10E08000BDE3319F04BDE3228100261FBDE322A72B | |
:10E09000800A0326F7862ABDE372BDE3A6810D2719 | |
:10E0A00096810A27F5813A27D220EF2087BDE2F139 | |
:10E0B0009E00BDE381BDE2CFBDE395205B00A6805D | |
:10E0C0009701BDE2D6BDE3955D2000BDE2FF81A0D2 | |
:10E0D0001027FF608188270B818D26D69601A71F08 | |
:10E0E0007EE0B29601A71F301E7EE0B2BDE2F19E37 | |
:10E0F00000BDE381BDE2CFBDE3953A2000C610A686 | |
:10E1000080BDE2D68620BDE3725A26F3BDE381BD11 | |
:10E11000E3A6810D27DE81201027FF1B810826EF53 | |
:10E120003088E07EE0F4BDE2F16E9F0000A603813E | |
:10E130004D2610A604814F260AA60581442604A672 | |
:10E1400006813939BDE395496E7374616C6C656401 | |
:10E15000206D6F64756C65733A0D0A00CCE3B15F96 | |
:10E160004C34063510C641BDE12D2621865BBDE34A | |
:10E17000721F98BDE3725C865DBDE3728620BDE3CD | |
:10E180007234103007BDE367BDE38135103089017B | |
:10E190000026D4BDE39553656C656374206D6F6490 | |
:10E1A000756C6520746F2072756E3A2000BDE3A611 | |
:10E1B00081201027FE81810D1027FE7B8041102DCC | |
:10E1C000FE753402CCE3B15F4C340635103504BD26 | |
:10E1D000E12D2605C100270A5A3089010026F07E6C | |
:10E1E000E1AD3410398EE2649F08BDE21CBDE395B9 | |
:10E1F0003A303030303030303146460D0A007EE063 | |
:10E20000378EE2959F08BDE21CBDE395533930334C | |
:10E210003030303046430D0A007EE037BDE395468E | |
:10E22000726F6D3A00BDE2FA9E009F04BDE3950D4A | |
:10E230000A546F3A00BDE2FA9E009F06BDE3819644 | |
:10E24000049106260A960790052718811025028654 | |
:10E25000109703AD9F00089604910623E29605915E | |
:10E260000723DC39863ABDE3729603BDE2D69E04ED | |
:10E27000BDE2CF8600BDE2D6D603DB04DB05EB842E | |
:10E28000A680BDE2D60A0326F59F041F9840BDE292 | |
:10E29000D6BDE381398653BDE3728631BDE3729604 | |
:10E2A000038B03BDE2D69E04BDE2CF8600BDE2D65D | |
:10E2B000D603DB04DB05CB03EB84A680BDE2D60AE4 | |
:10E2C0000326F59F041F9840BDE2D6BDE381391FA8 | |
:10E2D00010BDE2D61F98340244444444BDE2E33505 | |
:10E2E00002840F810A24058B307EE3728B377EE334 | |
:10E2F00072BDE395416464723A00CC0000DD00BD5C | |
:10E30000E3402A01391F89BDE2E34F0801090008F3 | |
:10E310000109000801090008010900D300DD007EA1 | |
:10E32000E2FFBDE340484848489702BDE3409B02F6 | |
:10E3300039BDE3223402BDE3221F8935021F0139B2 | |
:10E34000BDE3A6813024038A8039813A22038030DC | |
:10E3500039814125F281462203803739816125E7E1 | |
:10E36000816622E3805739A680260139BDE3727E9B | |
:10E37000E3673406F683FEC40227F9B783FF350648 | |
:10E3800039860DBDE372860A7EE372863EBDE37276 | |
:10E3900086207EE3723412AE63A6802604AF633516 | |
:10E3A00092BDE37220F3B683FE840127F9B683FFA2 | |
:01E3B0003933 | |
:10E400007E00004D4F4439546573744D6F6400BDF8 | |
:10E41000E00F54657374206D6F64756C650D0A00B0 | |
:03E420007EE0009B | |
:10E500007EE5154D4F443942415349430010DE101A | |
:10E51000BDECE7201310CE21CC10DF10BDECE7CC12 | |
:10E520000249DD0ADD0CDD0EBDE63F8EE583BDE66A | |
:10E530003810DE100F1DBDE63F9E0A9F128E0000B0 | |
:10E540009F160D1D2605863ABDECACBDE692BDE7D3 | |
:10E55000EC240E292BBDE75D810427E1BDE70F20E8 | |
:10E56000D034109E0C9C0E351027037EE65FC3004E | |
:10E5700000270D340683270F350622048D1020BD99 | |
:10E580007EE65654494E592056312E333704340610 | |
:10E59000BDE75D9F18A6609E129C0C270510A30086 | |
:10E5A00024029E0ABDE8C69F1225229F143002A6AF | |
:10E5B00080810426FA9C0C270EA6809F1A9E14A721 | |
:10E5C000809F149E1A20EE9E149F0C9F0E9E18C6CC | |
:10E5D000FF5CA680810426F95D2603326239301F74 | |
:10E5E000CB04301F5AA600812027F78604A7014FCD | |
:10E5F0009E0C9F1AD30CDD0CDD0EBDE86424079F32 | |
:10E600000C9F0E7EE64E9E0C9F149E1A9C12270AAB | |
:10E61000A6829F1A9E14A78220EE35069E12ED81D7 | |
:10E620009F1A9E18A6809F189E1AA7809F1A810481 | |
:10E6300026F039BDECAC3001A600810426F5398EF8 | |
:10E64000E6478DF40F1C390D0A7F000000048D266B | |
:10E65000534F525259048D1E57484154203F048D48 | |
:10E6600015484F57203F048D0D425245414B048DB4 | |
:10E670000553544F50048DC78607BDECACDC16BD66 | |
:10E68000EB608620BDECAC35108DAD8DB27EE531F2 | |
:10E690008DAD8E0200BDECA281202514817F27F56F | |
:10E6A0008C0248260486072002A780BDECAC20E53A | |
:10E6B00081082724811827D8810A2731810D26D582 | |
:10E6C0000D1D2705BDECAC20073410BDE63F35100D | |
:10E6D0008604A7008E0200398C020027B8301F86FE | |
:10E6E00008BDECAC8620BDECAC860820BE1A010645 | |
:10E6F0001D20B830018D66810426F8BDEA339616D8 | |
:10E700009A1727149C0C26037EE65FEC81DD16BD6C | |
:10E71000EC9E8D0825033406397EEA448D3F9F1216 | |
:10E720008EEC39A680810426059E121A01399F1AA3 | |
:10E730009E129F189E18A100261530019F189E1A40 | |
:10E74000A6809F1A810426ECEC009E181CFE399EC0 | |
:10E750001AA680810426FA300220C83001A6008162 | |
:10E760002027F8398D1A2422814125118146220D56 | |
:10E7700080371CFE3981412504815A230D1A013945 | |
:10E78000813025F9813922F580301CFE398DCE8DFE | |
:10E79000E425121F89A6018DDC24E23001C0415816 | |
:10E7A0004FD3101CFE39BDEA123406BDE75D812C43 | |
:10E7B000270981291A0127157EE6563001BDE94552 | |
:10E7C0003402BDE75D8129350226ED1CFE30019F34 | |
:10E7D00012ADF19E121CFE39BDE75D812D260D3074 | |
:10E7E000018D092506405082001CFC39BDE75DBD46 | |
:10E7F000E780242F81241A01266030016FE26FE246 | |
:10E80000A600BDE764254F300134103402EC638567 | |
:10E81000F0264A5849584958495849EBE0ED6235C5 | |
:10E820001020DD300134026FE2A600BDE78025260E | |
:10E83000300134103402EC63584929215849291D0C | |
:10E84000E363291958492915EB608900290FED6305 | |
:10E850003261351020D335061CFE1CFD39AE613205 | |
:10E86000651A033910DF14DC14830030930E39BDB0 | |
:10E87000E9FF34063410E672351032624F39BDE9D3 | |
:10E88000FF3406BDE75D813D27037EE6563001BDBE | |
:10E89000E945BDEA333410E772351032627EE6FE98 | |
:10E8A000BDE75D9F128EE8B0BDE72325023406392F | |
:10E8B00055535204E7A65045454B04E86F4D454D6E | |
:10E8C00004E864049E0A9C0C26031A033910A30072 | |
:10E8D00026031CFC3924051A011CFD393402860468 | |
:10E8E00030013001A10026FA3502300120D88D55C3 | |
:10E8F00034065FBDE75D813D2723813C2610300152 | |
:10E900005CBDE75D813E26113001CB042013813EC2 | |
:10E91000265F3001CB04BDE75D813D26043001CB8D | |
:10E920000234048D203410A3631FA8441F89484873 | |
:10E930003404ABE0840626014C5FA4622701534FE8 | |
:10E9400035103263396FE26FE2BDE75D812D271725 | |
:10E95000812B260230018D1CE360ED60BDE75D81F7 | |
:10E960002B27F1812D260A30018D0940508200208D | |
:10E97000E7350639BDE9E73406BDE75D812A27485A | |
:10E98000812F270335063930018D5C341030623415 | |
:10E9900006A800BDEA263060BDEA2634028611349E | |
:10E9A000024F5FA3622406E3621CFE20021A016983 | |
:10E9B00067696659496A6026EAA66132644D2A048D | |
:10E9C00030628D66351020B130018D1B3404E66253 | |
:10E9D0003DA661E761E6603DA662E76235043DABB6 | |
:10E9E00060AB61ED602092BDE78D250934101F01F9 | |
:10E9F000EC00351039BDE7EC24FABDE8A024F58D14 | |
:10EA0000113402BDE75D8129350226033001397ECC | |
:10EA1000E656BDE86424037EE64EBDE75D81282608 | |
:10EA2000EE30017EE9456D002A0860006001240295 | |
:10EA30006A00393402BDE75D810427037EE6563063 | |
:10EA400001350239BDE78D24037EE6563406BDE765 | |
:10EA50005D813D27037EE6563001BDE9458DD49F9B | |
:10EA6000123510ED009E127EE6FEBDE8EE5D270336 | |
:10EA70007EE70F7EE6F5BDE9458DB8BDE8C4250FFC | |
:10EA80007EE70BBDE9458DAB9F12BDE8C424037E34 | |
:10EA9000E65FBDE86424037EE64EDC123406DC1635 | |
:10EAA0003406BDE70B3506DD1635107EE6FEBDE704 | |
:10EAB0005D812C2736813B273D8104272581222635 | |
:10EAC0000630018D422009BDE94534108D473510CF | |
:10EAD000BDE75D812C2714813B271B810427037E22 | |
:10EAE000E6563410BDE63F35102014C6078620BD1B | |
:10EAF000ECACD51C26F73001BDE75D810426B230B1 | |
:10EB0000017EE6FEBDECACA680810426037EE656BF | |
:10EB1000812226F0394D2A0D405082003402862D84 | |
:10EB2000BDECAC35028EEB54300210A30024058CF2 | |
:10EB3000EB5E26F40F1A10A3002506A3000C1A2082 | |
:10EB4000F5340286309B1ABDECAC35028CEB5E27A7 | |
:10EB500004300220DF39271003E80064000A0001B6 | |
:10EB60008EEB5820CFBDE78D253C34069F12863FA3 | |
:10EB7000BDECACBDE692BDE75D810427F1BDE7D8F1 | |
:10EB8000240B8EEBBABDE638BDE63F20E19F183579 | |
:10EB900010ED009E12BDE75D812C27037EE6FB3061 | |
:10EBA00001BDE78D24037EE656340634109E18BD61 | |
:10EBB000E75D812C26C0300120BC52452D454E54C6 | |
:10EBC0004552049E1086346F804A26FB9E0A7EE7DB | |
:10EBD00004BDE7EC24084F5FDD12867F2017DD12AD | |
:10EBE000BDE75D812C27049612200A3001BDE7ECB9 | |
:10EBF00024037EE656BDEA333406DC129F12BDE8DC | |
:10EC0000C49C0C2728350610A30025283406EC8167 | |
:10EC10003410BDEB6035108620BDECACBDE638305D | |
:10EC2000013410BDE63F3510BDEC9E20D432628623 | |
:10EC300003BDECAC9E127EE6FE4C455404EA44490A | |
:10EC40004604EA6A474F544F04EA76474F53554209 | |
:10EC500004EA8352455455524E04EA33504F4B4513 | |
:10EC600004E87E5052494E5404EAAE494E50555481 | |
:10EC700004EB6552454D04E6F553544F5004E66FDE | |
:10EC8000454E4404E66F52554E04EBC34C49535471 | |
:10EC900004EBD14E455704E51F3F04EAAE048D2A2C | |
:10ECA00027098D0D810326037EE667390C1C7EEC57 | |
:10ECB000BB8D1727FCB683FF847F393402B683FEF1 | |
:10ECC000850227F93502B783FF393402B683FE8502 | |
:10ECD000202705B683FF20F485013502398603B766 | |
:08ECE00083FE8615B783FE399F | |
:10FFF000E012E012E012E012E012E012E012E01271 | |
:00000001FF |
0000 .ENGINE kilo | |
0000 ;zero page | |
0000 .BSSEG | |
0000 .ORG 0 | |
0000 Q_ADD: DS 2 | |
0002 Q_KEY: DS 1 | |
0003 Q_HEXCNT: DS 1 | |
0004 Q_HEXADD: DS 2 | |
0000 .CSEG | |
0000 ;.org $0000 | |
0000 ;.phase $E000 | |
E000 .ORG $E000 | |
E000 .ENT $ | |
E000 7E E0 12 JMP reset | |
E003 7E E2 4A JMP serin | |
E006 7E E2 16 JMP serout | |
E009 7E E1 76 JMP print2 | |
E00C 7E E1 6F JMP printx | |
E00F 7E E2 39 JMP primm | |
E012 RESET: | |
E012 10 CE 80 00 LDS #$8000 | |
E016 1A 50 ORCC #$50 | |
E018 86 15 LDA #$15 | |
E01A B7 83 FE STA ACIAC | |
E01D 86 00 LDA #0 | |
E01F 1F 8B TFR a,dp | |
E021 WARM: | |
E021 BD E2 39 JSR primm | |
E024 4B 49 4C 4F 20 4D 6F 6E 69 74 6F 72 20 76 31 00 .CSTR "KILO Monitor v1" | |
E034 MAINCRLF: | |
E034 BD E2 25 JSR pcrlf | |
E037 MAIN: | |
E037 BD E2 2F JSR prompt | |
E03A MAINSHORT: | |
E03A BD E2 4A JSR serin | |
E03D 81 3A CMPA #":" | |
E03F 27 2E BEQ m_hex | |
E041 81 0D CMPA #$0d | |
E043 27 F5 BEQ mainshort | |
E045 81 0A CMPA #$a | |
E047 27 F1 BEQ mainshort | |
E049 ;caps fix | |
E049 84 DF ANDA #$DF | |
E04B 81 4D CMPA #"M" | |
E04D 10 27 00 50 LBEQ m_mem | |
E051 81 44 CMPA #"D" | |
E053 10 27 00 89 LBEQ m_dump | |
E057 81 47 CMPA #"G" | |
E059 10 27 00 BD LBEQ m_go | |
E05D 81 55 CMPA #"U" | |
E05F 10 27 00 BE LBEQ m_user | |
E063 WHAT: | |
E063 BD E2 39 JSR primm | |
E066 57 68 61 74 3F 00 .CSTR "What?" | |
E06C 7E E0 34 JMP maincrlf | |
E06F M_HEX: | |
E06F BD E1 C6 JSR gethex2 | |
E072 97 03 STA q_hexcnt | |
E074 BD E1 D5 JSR gethex4 | |
E077 9F 04 STX q_hexadd | |
E079 BD E1 C6 JSR gethex2 | |
E07C 81 00 CMPA #$00 | |
E07E 26 1F BNE m_hexend | |
E080 M_HEX_LOOP: | |
E080 BD E1 C6 JSR gethex2 | |
E083 A7 80 STA ,x+ | |
E085 ;inc q_hexadd | |
E085 0A 03 DEC q_hexcnt | |
E087 26 F7 BNE m_hex_loop | |
E089 86 2A LDA #"*" | |
E08B BD E2 16 JSR serout | |
E08E M_HEX_WAITEND: | |
E08E BD E2 4A JSR serin | |
E091 81 0D CMPA #$0d | |
E093 27 A2 BEQ main | |
E095 81 0A CMPA #$0a | |
E097 27 F5 BEQ m_hex_waitend | |
E099 81 3A CMPA #":" | |
E09B 27 D2 BEQ m_hex | |
E09D 20 EF BRA m_hex_waitend | |
E09F M_HEXEND: | |
E09F ;jsr gethex2 | |
E09F 20 93 BRA maincrlf | |
E0A1 M_MEM: | |
E0A1 BD E1 91 JSR getaddr | |
E0A4 9E 00 LDX q_add | |
E0A6 M_MEM_LINE: | |
E0A6 BD E2 25 JSR pcrlf | |
E0A9 BD E1 6F JSR printx | |
E0AC BD E2 39 JSR primm | |
E0AF 20 5B 00 .CSTR " [" | |
E0B2 A6 80 LDA ,x+ | |
E0B4 97 01 STA q_add+1 | |
E0B6 BD E1 76 JSR print2 | |
E0B9 BD E2 39 JSR primm | |
E0BC 5D 20 00 .CSTR "] " | |
E0BF BD E1 A3 JSR get4x | |
E0C2 81 A0 CMPA #$A0 | |
E0C4 10 27 FF 6C LBEQ maincrlf | |
E0C8 81 88 CMPA #$88 | |
E0CA 27 0B BEQ m_mem_back | |
E0CC 81 8D CMPA #$8d | |
E0CE 26 D6 BNE m_mem_line | |
E0D0 96 01 LDA q_add+1 | |
E0D2 A7 1F STA [-1,x] | |
E0D4 7E E0 A6 JMP m_mem_line | |
E0D7 M_MEM_BACK: | |
E0D7 96 01 LDA q_add+1 | |
E0D9 A7 1F STA [-1,x] | |
E0DB 30 1E LEAX -2,x | |
E0DD 7E E0 A6 JMP m_mem_line | |
E0E0 M_DUMP: | |
E0E0 BD E1 91 JSR getaddr | |
E0E3 9E 00 LDX q_add | |
E0E5 BD E2 25 JSR pcrlf | |
E0E8 M_DUMP_LINE: | |
E0E8 BD E1 6F JSR printx | |
E0EB BD E2 39 JSR primm | |
E0EE 3A 20 00 .CSTR ": " | |
E0F1 C6 10 LDB #$10 | |
E0F3 M_DUMP_LOOP: | |
E0F3 A6 80 LDA ,x+ | |
E0F5 BD E1 76 JSR print2 | |
E0F8 86 20 LDA #$20 | |
E0FA BD E2 16 JSR serout | |
E0FD 5A DECB | |
E0FE 26 F3 BNE m_dump_loop | |
E100 BD E2 25 JSR pcrlf | |
E103 M_DUMP_WAIT: | |
E103 BD E2 4A JSR serin | |
E106 81 0D CMPA #$0d | |
E108 27 DE BEQ m_dump_line | |
E10A 81 20 CMPA #$20 | |
E10C 10 27 FF 27 LBEQ main | |
E110 81 08 CMPA #$08 | |
E112 26 EF BNE m_dump_wait | |
E114 30 88 E0 LEAX -32,x | |
E117 7E E0 E8 JMP m_dump_line | |
E11A M_GO: | |
E11A BD E1 91 JSR getaddr | |
E11D 6E 9F 00 00 JMP [q_add] | |
E121 M_USER: | |
E121 BD E2 39 JSR primm | |
E124 49 6E 73 74 61 6C 6C 65 64 20 6D 6F 64 75 6C 65 73 3A 0D 0A 00 .CSTR "Installed modules:",$d,$a | |
E139 CC E2 55 LDD #mon_end | |
E13C 5F CLRB | |
E13D 4C INCA | |
E13E 34 06 PSHS d | |
E140 35 10 PULS x | |
E142 M_U_FIND: | |
E142 A6 03 LDA 3,x | |
E144 81 4D CMPA #"M" | |
E146 26 1E BNE m_u_next | |
E148 A6 04 LDA 4,x | |
E14A 81 4F CMPA #"O" | |
E14C 26 18 BNE m_u_next | |
E14E A6 05 LDA 5,x | |
E150 81 44 CMPA #"D" | |
E152 26 12 BNE m_u_next | |
E154 A6 06 LDA 6,x | |
E156 81 39 CMPA #"9" | |
E158 26 0C BNE m_u_next | |
E15A ;found | |
E15A 34 10 PSHS x | |
E15C 30 07 LEAX 7,x | |
E15E BD E2 0B JSR strout | |
E161 BD E2 25 JSR pcrlf | |
E164 35 10 PULS x | |
E166 M_U_NEXT: | |
E166 30 89 01 00 LEAX 256,x | |
E16A 26 D6 BNE m_u_find | |
E16C 7E E0 37 JMP main | |
E16F PRINTX: | |
E16F 1F 10 TFR x,d | |
E171 BD E1 76 JSR print2 | |
E174 1F 98 TFR b,a | |
E176 PRINT2: | |
E176 34 02 PSHS a | |
E178 44 LSRA | |
E179 44 LSRA | |
E17A 44 LSRA | |
E17B 44 LSRA | |
E17C BD E1 83 JSR printhex | |
E17F 35 02 PULS a | |
E181 84 0F ANDA #$0f | |
E183 PRINTHEX: | |
E183 81 0A CMPA #$0a | |
E185 24 05 BHS ph2 | |
E187 8B 30 ADDA #$30 | |
E189 7E E2 16 JMP serout | |
E18C PH2: | |
E18C 8B 37 ADDA #$37 | |
E18E 7E E2 16 JMP serout | |
E191 GETADDR: | |
E191 BD E2 39 JSR primm | |
E194 41 64 64 72 3A 00 .CSTR "Addr:" | |
E19A BD E1 9E JSR get4 | |
E19D 39 RTS | |
E19E GET4: | |
E19E CC 00 00 LDD #0 | |
E1A1 DD 00 STD q_add | |
E1A3 GET4X: | |
E1A3 BD E1 E4 JSR gethex | |
E1A6 2A 01 BPL get4ok | |
E1A8 39 RTS | |
E1A9 GET4OK: | |
E1A9 1F 89 TFR a,b | |
E1AB BD E1 83 JSR printhex | |
E1AE 4F CLRA | |
E1AF 08 01 LSL q_add+1 | |
E1B1 09 00 ROL q_add | |
E1B3 08 01 LSL q_add+1 | |
E1B5 09 00 ROL q_add | |
E1B7 08 01 LSL q_add+1 | |
E1B9 09 00 ROL q_add | |
E1BB 08 01 LSL q_add+1 | |
E1BD 09 00 ROL q_add | |
E1BF D3 00 ADDD q_add | |
E1C1 DD 00 STD q_add | |
E1C3 7E E1 A3 JMP get4x | |
E1C6 GETHEX2: | |
E1C6 BD E1 E4 JSR gethex | |
E1C9 48 LSLA | |
E1CA 48 LSLA | |
E1CB 48 LSLA | |
E1CC 48 LSLA | |
E1CD 97 02 STA q_key | |
E1CF BD E1 E4 JSR gethex | |
E1D2 9B 02 ADDA q_key | |
E1D4 39 RTS | |
E1D5 GETHEX4: | |
E1D5 BD E1 C6 JSR gethex2 | |
E1D8 34 02 PSHS a | |
E1DA BD E1 C6 JSR gethex2 | |
E1DD 1F 89 TFR a,b | |
E1DF 35 02 PULS a | |
E1E1 1F 01 TFR d,x | |
E1E3 39 RTS | |
E1E4 GETHEX: | |
E1E4 BD E2 4A JSR serin | |
E1E7 81 30 CMPA #$30 | |
E1E9 24 03 BHS gh1 | |
E1EB GHB: | |
E1EB 8A 80 ORA #$80 | |
E1ED 39 RTS | |
E1EE GH1: | |
E1EE 81 3A CMPA #$3A | |
E1F0 22 03 BHI gh2 | |
E1F2 80 30 SUBA #$30 | |
E1F4 39 RTS | |
E1F5 GH2: | |
E1F5 81 41 CMPA #"A" | |
E1F7 25 F2 BLO ghb | |
E1F9 81 46 CMPA #"F" | |
E1FB 22 03 BHI gh3 | |
E1FD 80 37 SUBA #55 | |
E1FF 39 RTS | |
E200 GH3: | |
E200 81 61 CMPA #"a" | |
E202 25 E7 BLO ghb | |
E204 81 66 CMPA #"f" | |
E206 22 E3 BHI ghb | |
E208 80 57 SUBA #$57 | |
E20A 39 RTS | |
E20B ; serial | |
E20B ACIA: EQU $83fe | |
E20B ACIAC: EQU ACIA | |
E20B ACIAS: EQU ACIA | |
E20B ACIAD: EQU ACIA+1 | |
E20B ACIA_TDRE: EQU 02h | |
E20B ACIA_RDRF: EQU 01h | |
E20B STROUT: | |
E20B A6 80 LDA ,x+ | |
E20D 26 01 BNE sout2 | |
E20F 39 RTS | |
E210 SOUT2: | |
E210 BD E2 16 JSR serout | |
E213 7E E2 0B JMP strout | |
E216 SEROUT: | |
E216 34 06 PSHS a,b | |
E218 SEROUTL: | |
E218 F6 83 FE LDB ACIAS | |
E21B C4 02 ANDB #ACIA_TDRE | |
E21D 27 F9 BEQ seroutl | |
E21F B7 83 FF STA ACIAD | |
E222 35 06 PULS a,b | |
E224 39 RTS | |
E225 PCRLF: | |
E225 86 0D LDA #$d | |
E227 BD E2 16 JSR serout | |
E22A 86 0A LDA #$a | |
E22C 7E E2 16 JMP serout | |
E22F PROMPT: | |
E22F 86 3E LDA #">" | |
E231 BD E2 16 JSR serout | |
E234 86 20 LDA #$20 | |
E236 7E E2 16 JMP serout | |
E239 PRIMM: | |
E239 34 12 PSHS a,x | |
E23B AE 63 LDX 3,s | |
E23D PRIMM1: | |
E23D A6 80 LDA ,x+ | |
E23F 26 04 BNE primm2 | |
E241 AF 63 STX 3,s | |
E243 35 92 PULS a,x,pc | |
E245 PRIMM2: | |
E245 BD E2 16 JSR serout | |
E248 20 F3 BRA primm1 | |
E24A SERIN: | |
E24A B6 83 FE LDA ACIAS | |
E24D 84 01 ANDA #ACIA_RDRF | |
E24F 27 F9 BEQ serin | |
E251 B6 83 FF LDA ACIAD | |
E254 39 RTS | |
E255 MON_END: EQU $ | |
E255 .BLOCK | |
E255 ;NAM TB01V137 | |
E255 ;* WRITTEN 20-OCT-77 BY JOHN BYRNS | |
E255 ;* REVISED 30-DEC-77 | |
E255 ;* REVISED 18-JAN-78 | |
E255 ;* REVISED 10-APR-78 | |
E255 ;* REVISED 08-MAY-79 TO ELIMINATE USE OF SP | |
E255 ;* REVISED 24-JAN-80 TO USE 6801 ON CHIP RAM | |
E255 ;* REVISED 26-JAN-80 FOR NEW 6801 INSTRUCTIONS | |
E255 ;* REVISED 24-JUL-81 FOR WHISTON BOARD | |
E255 ;* REVISED 24-SEP-81 INCLUDE USER FUNCTION | |
E255 ;* REVISED 08-APR-82 MAKE STANDALONE INCLUDE HEX CONSTANTS AND MEM FUNCTION | |
E255 ;* REVISED 21-NOV-84 FOR 6809 | |
E255 ;* REVISED FEB 94 ADAPTED TO SIMULATOR AND BUGFIXES BY L.C. BENSCHOP. | |
E255 ;* | |
E255 .ENGINE kilo | |
E255 EOL: EQU $04 | |
E255 ETX: EQU $03 | |
E255 SPACE: EQU $20 | |
E255 CR: EQU $0D | |
E255 LF: EQU $0A | |
E255 BS: EQU $08 | |
E255 CAN: EQU $18 | |
E255 BELL: EQU $07 | |
E255 FILL: EQU $00 | |
E255 DEL: EQU $7F | |
E255 BSIZE: EQU 73 | |
E255 STKCUS: EQU 48 | |
E255 ;* | |
E255 BACIA: = $83FE | |
E255 RMCR: EQU bACIA | |
E255 TRCS: EQU bACIA | |
E255 RECEV: EQU bACIA+1 | |
E255 TRANS: EQU bACIA+1 | |
E255 CNTL1: EQU $03 | |
E255 CNTL2: EQU $15 | |
E255 RDRF: EQU $01 | |
E255 ORFE: EQU $20 | |
E255 TDRE: EQU $02 | |
E255 ;* EDIT THE FOLLOWING EQUATES TO REFLECT THE | |
E255 ;* DESIRED ROM AND RAM LAYOUT | |
E255 LORAM: EQU $0080 ;ADDRESS OF DIRECT PAGE SCRATCH RAM | |
E255 BUFFER: EQU $0200 ;ADDRESS OF MAIN RAM | |
E255 RAMSIZ: EQU $2000 ;SIZE OF MAIN RAM | |
E255 ROMADR: EQU $f000 ;ADDRESS OF TINY BASIC ROM | |
E255 ;* | |
E255 RAMBEG: EQU BUFFER+BSIZE | |
E255 RAMEND: EQU BUFFER+RAMSIZ | |
E255 ;* | |
E255 RAMPAT: EQU $AA0F | |
E255 ROMPAT: EQU $F055 | |
E255 ;* | |
E255 ; ORG LORAM | |
0006 .BSSEG | |
0006 USRBAS: RMB 2 | |
0008 USRTOP: RMB 2 | |
000A STKLIM: RMB 2 | |
000C STKTOP: RMB 2 | |
000E CURSOR: RMB 2 | |
0010 SAVESP: RMB 2 | |
0012 LINENB: RMB 2 | |
0014 SCRTCH: RMB 2 | |
0016 CHAR: RMB 2 | |
0018 ZONE: RMB 1 | |
0019 MODE: RMB 1 | |
001A RESRVD: RMB 1 | |
001B LOEND: EQU $ | |
001B ;* | |
E255 .CSEG | |
E255 ; ORG ROMADR | |
E255 ALIGN 256 | |
E300 .ENT $ | |
E300 7E E3 15 BASIC: JMP SETUP | |
E303 4D 4F 44 39 42 41 53 49 43 00 .CSTR "MOD9BASIC" | |
E30D 10 DE 0C WARMS: LDS STKTOP | |
E310 BD EA E1 JSR INTEEE | |
E313 20 13 BRA WMS05 | |
E315 10 CE 21 CC SETUP: LDS #RAMEND-52 | |
E319 10 DF 0C SET03: STS STKTOP | |
E31C BD EA E1 JSR INTEEE | |
E31F CC 02 49 CLEAR: LDD #RAMBEG | |
E322 DD 06 STD USRBAS | |
E324 DD 08 STD USRTOP | |
E326 DD 0A CLR02: STD STKLIM | |
E328 BD E4 3F WMS05: JSR CRLF | |
E32B 8E E3 83 LDX #VSTR | |
E32E BD E4 38 JSR PUTSTR | |
E331 10 DE 0C CMDB: LDS STKTOP | |
E334 0F 19 CLR MODE | |
E336 BD E4 3F JSR CRLF | |
E339 9E 06 LDX USRBAS | |
E33B 9F 0E STX CURSOR | |
E33D 8E 00 00 CMDE: LDX #0000 | |
E340 9F 12 STX LINENB | |
E342 0D 19 TST MODE | |
E344 26 05 BNE CMD01 | |
E346 86 3A LDA #":" | |
E348 BD EA A6 JSR PUTCHR | |
E34B BD E4 90 CMD01: JSR GETLIN | |
E34E BD E5 EA JSR TSTNBR | |
E351 24 0E BCC CMD02 | |
E353 29 2B BVS CMD05 | |
E355 BD E5 5B JSR SKIPSP | |
E358 81 04 CMPA #EOL | |
E35A 27 E1 BEQ CMDE | |
E35C BD E5 0D JSR MSLINE | |
E35F 20 D0 BRA CMDB | |
E361 34 10 CMD02: PSHS X | |
E363 9E 08 LDX USRTOP | |
E365 9C 0A CMPX STKLIM | |
E367 35 10 PULS X | |
E369 27 03 BEQ CMD03 | |
E36B 7E E4 5F JMP ERRORR | |
E36E C3 00 00 CMD03: ADDD #0 | |
E371 27 0D BEQ CMD05 | |
E373 34 06 CMD04: PSHS D | |
E375 83 27 0F SUBD #9999 | |
E378 35 06 PULS D | |
E37A 22 04 BHI CMD05 | |
E37C 8D 10 BSR EDITOR | |
E37E 20 BD BRA CMDE | |
E380 7E E4 56 CMD05: JMP ERRORS | |
E383 54 49 4E 59 20 56 31 2E 33 37 VSTR: DB "TINY V1.37" | |
E38D 04 FCB EOL | |
E38E ;****************************** | |
E38E ;****************************** | |
E38E 34 06 EDITOR: PSHS D | |
E390 BD E5 5B JSR SKIPSP | |
E393 9F 14 STX SCRTCH | |
E395 A6 60 LDA 0,S | |
E397 9E 0E LDX CURSOR | |
E399 9C 08 CMPX USRTOP | |
E39B 27 05 BEQ ED00 | |
E39D 10 A3 00 CMPD 0,X | |
E3A0 24 02 BCC ED01 | |
E3A2 9E 06 ED00: LDX USRBAS | |
E3A4 BD E6 C4 ED01: JSR FNDLIN | |
E3A7 9F 0E STX CURSOR | |
E3A9 25 22 BCS ED04 | |
E3AB 9F 10 STX SAVESP | |
E3AD 30 02 LEAX 2,X | |
E3AF A6 80 ED02: LDA ,X+ | |
E3B1 81 04 CMPA #EOL | |
E3B3 26 FA BNE ED02 | |
E3B5 9C 08 ED03: CMPX USRTOP | |
E3B7 27 0E BEQ ED35 | |
E3B9 A6 80 LDA ,X+ | |
E3BB 9F 16 STX CHAR | |
E3BD 9E 10 LDX SAVESP | |
E3BF A7 80 STA ,X+ | |
E3C1 9F 10 STX SAVESP | |
E3C3 9E 16 LDX CHAR | |
E3C5 20 EE BRA ED03 | |
E3C7 9E 10 ED35: LDX SAVESP | |
E3C9 9F 08 STX USRTOP | |
E3CB 9F 0A STX STKLIM | |
E3CD 9E 14 ED04: LDX SCRTCH | |
E3CF C6 FF LDB #-1 | |
E3D1 5C ED05: INCB | |
E3D2 A6 80 LDA ,X+ | |
E3D4 81 04 CMPA #EOL | |
E3D6 26 F9 BNE ED05 | |
E3D8 5D TSTB | |
E3D9 26 03 BNE ED55 | |
E3DB 32 62 LEAS 2,S | |
E3DD 39 RTS | |
E3DE 30 1F ED55: LEAX -1,X | |
E3E0 CB 04 ADDB #4 | |
E3E2 30 1F ED06: LEAX -1,X | |
E3E4 5A DECB | |
E3E5 A6 00 LDA 0,X | |
E3E7 81 20 CMPA #SPACE | |
E3E9 27 F7 BEQ ED06 | |
E3EB 86 04 LDA #EOL | |
E3ED A7 01 STA 1,X | |
E3EF 4F CLRA | |
E3F0 9E 08 LDX USRTOP | |
E3F2 9F 16 STX CHAR | |
E3F4 D3 08 ADDD USRTOP | |
E3F6 DD 08 STD USRTOP | |
E3F8 DD 0A STD STKLIM | |
E3FA BD E6 62 JSR TSTSTK | |
E3FD 24 07 BCC ED07 | |
E3FF 9F 08 STX USRTOP | |
E401 9F 0A STX STKLIM | |
E403 7E E4 4E JMP ERRORF | |
E406 9E 08 ED07: LDX USRTOP | |
E408 9F 10 ED08: STX SAVESP | |
E40A 9E 16 LDX CHAR | |
E40C 9C 0E CMPX CURSOR | |
E40E 27 0A BEQ ED09 | |
E410 A6 82 LDA ,-X | |
E412 9F 16 STX CHAR | |
E414 9E 10 LDX SAVESP | |
E416 A7 82 STA ,-X | |
E418 20 EE BRA ED08 | |
E41A 35 06 ED09: PULS D | |
E41C 9E 0E LDX CURSOR | |
E41E ED 81 STD ,X++ | |
E420 9F 16 STX CHAR | |
E422 9E 14 ED10: LDX SCRTCH | |
E424 A6 80 LDA ,X+ | |
E426 9F 14 STX SCRTCH | |
E428 9E 16 LDX CHAR | |
E42A A7 80 STA ,X+ | |
E42C 9F 16 STX CHAR | |
E42E 81 04 CMPA #EOL | |
E430 26 F0 BNE ED10 | |
E432 39 RTS | |
E433 ;****************************** | |
E433 ;****************************** | |
E433 BD EA A6 PUTS01: JSR PUTCHR | |
E436 30 01 LEAX 1,X | |
E438 A6 00 PUTSTR: LDA 0,X | |
E43A 81 04 CMPA #EOL | |
E43C 26 F5 BNE PUTS01 | |
E43E 39 RTS | |
E43F ;****************************** | |
E43F ;****************************** | |
E43F 8E E4 47 CRLF: LDX #CRLFST | |
E442 8D F4 BSR PUTSTR | |
E444 0F 18 CLR ZONE | |
E446 39 RTS | |
E447 0D 0A 7F 00 00 00 04 CRLFST: FCB CR,LF,DEL,FILL,FILL,FILL,EOL | |
E44E ;****************************** | |
E44E ;****************************** | |
E44E 8D 24 ERRORF: BSR ER01 | |
E450 53 4F 52 52 59 DB "SORRY" | |
E455 04 FCB EOL | |
E456 8D 1C ERRORS: BSR ER01 | |
E458 57 48 41 54 20 3F DB "WHAT ?" | |
E45E 04 FCB EOL | |
E45F 8D 13 ERRORR: BSR ER01 | |
E461 48 4F 57 20 3F DB "HOW ?" | |
E466 04 FCB EOL | |
E467 8D 0B BREAK: BSR ER01 | |
E469 42 52 45 41 4B DB "BREAK" | |
E46E 04 FCB EOL | |
E46F END BSR ER01 | |
E46F 53 54 4F 50 DB "STOP" | |
E473 04 FCB EOL | |
E474 8D C9 ER01: BSR CRLF | |
E476 86 07 LDA #BELL | |
E478 BD EA A6 JSR PUTCHR | |
E47B DC 12 LDD LINENB | |
E47D BD E9 5E JSR PRNT4 | |
E480 86 20 LDA #SPACE | |
E482 BD EA A6 JSR PUTCHR | |
E485 35 10 PULS X | |
E487 8D AF BSR PUTSTR | |
E489 8D B4 BSR CRLF | |
E48B 7E E3 31 JMP CMDB | |
E48E ;****************************** | |
E48E ;****************************** | |
E48E 8D AF GL00: BSR CRLF | |
E490 8E 02 00 GETLIN: LDX #BUFFER | |
E493 BD EA 9C GL03: JSR GETCHR | |
E496 81 20 CMPA #SPACE | |
E498 25 14 BCS GL05 | |
E49A 81 7F CMPA #$7F | |
E49C 27 F5 BEQ GL03 | |
E49E 8C 02 48 CMPX #BUFFER+BSIZE-1 | |
E4A1 26 04 BNE GL04 | |
E4A3 86 07 LDA #BELL | |
E4A5 20 02 BRA GL02 | |
E4A7 A7 80 GL04: STA ,X+ | |
E4A9 BD EA A6 GL02: JSR PUTCHR | |
E4AC 20 E5 BRA GL03 | |
E4AE 81 08 GL05: CMPA #BS | |
E4B0 27 24 BEQ GL07 | |
E4B2 81 18 CMPA #CAN | |
E4B4 27 D8 BEQ GL00 | |
E4B6 81 0A CMPA #LF | |
E4B8 27 31 BEQ GL09 | |
E4BA 81 0D CMPA #CR | |
E4BC 26 D5 BNE GL03 | |
E4BE 0D 19 TST MODE | |
E4C0 27 05 BEQ GL06 | |
E4C2 BD EA A6 JSR PUTCHR | |
E4C5 20 07 BRA GL08 | |
E4C7 34 10 GL06: PSHS X | |
E4C9 BD E4 3F JSR CRLF | |
E4CC 35 10 PULS X | |
E4CE 86 04 GL08: LDA #EOL | |
E4D0 A7 00 STA 0,X | |
E4D2 8E 02 00 LDX #BUFFER | |
E4D5 39 RTS | |
E4D6 8C 02 00 GL07: CMPX #BUFFER | |
E4D9 27 B8 BEQ GL03 | |
E4DB 30 1F LEAX -1,X | |
E4DD 86 08 LDA #BS | |
E4DF BD EA A6 JSR PUTCHR | |
E4E2 86 20 LDA #SPACE | |
E4E4 BD EA A6 JSR PUTCHR | |
E4E7 86 08 LDA #BS | |
E4E9 20 BE BRA GL02 | |
E4EB 1A 01 GL09: ORCC #$01 | |
E4ED 06 19 ROR MODE | |
E4EF 20 B8 BRA GL02 | |
E4F1 ;****************************** | |
E4F1 ;****************************** | |
E4F1 30 01 REM00: LEAX 1,X | |
E4F3 8D 66 REM: BSR SKIPSP | |
E4F5 81 04 CMPA #EOL | |
E4F7 26 F8 BNE REM00 | |
E4F9 BD E8 31 ENDSMT: JSR TSTEOL | |
E4FC 96 12 ENDS02: LDA LINENB | |
E4FE 9A 13 ORA LINENB+1 | |
E500 27 14 BEQ REM09 | |
E502 9C 08 REM05: CMPX USRTOP | |
E504 26 03 BNE NXTLIN | |
E506 7E E4 5F JMP ERRORR | |
E509 EC 81 NXTLIN: LDD ,X++ | |
E50B DD 12 STD LINENB | |
E50D BD EA 98 MSLINE: JSR TSTBRK | |
E510 8D 08 BSR IFAN | |
E512 25 03 BCS IMPLET | |
E514 34 06 PSHS D | |
E516 39 REM09: RTS | |
E517 7E E8 42 IMPLET: JMP LET | |
E51A ;****************************** | |
E51A ;****************************** | |
E51A 8D 3F IFAN: BSR SKIPSP | |
E51C 9F 0E STX CURSOR | |
E51E 8E EA 37 LDX #VERBT | |
E521 A6 80 FAN00: LDA ,X+ | |
E523 81 04 CMPA #EOL | |
E525 26 05 BNE FAN04 | |
E527 9E 0E LDX CURSOR | |
E529 1A 01 ORCC #$01 | |
E52B 39 RTS | |
E52C 9F 16 FAN04: STX CHAR | |
E52E 9E 0E LDX CURSOR | |
E530 9F 14 STX SCRTCH | |
E532 9E 14 FAN05: LDX SCRTCH | |
E534 A1 00 CMPA 0,X | |
E536 26 15 BNE FAN07 | |
E538 30 01 LEAX 1,X | |
E53A 9F 14 STX SCRTCH | |
E53C 9E 16 LDX CHAR | |
E53E A6 80 LDA ,X+ | |
E540 9F 16 STX CHAR | |
E542 81 04 CMPA #EOL | |
E544 26 EC BNE FAN05 | |
E546 EC 00 LDD 0,X | |
E548 9E 14 LDX SCRTCH | |
E54A 1C FE ANDCC #$FE | |
E54C 39 RTS | |
E54D 9E 16 FAN07: LDX CHAR | |
E54F A6 80 FAN08: LDA ,X+ | |
E551 81 04 CMPA #EOL | |
E553 26 FA BNE FAN08 | |
E555 30 02 LEAX 2,X | |
E557 20 C8 BRA FAN00 | |
E559 ;****************************** | |
E559 ;****************************** | |
E559 30 01 NXTNSP: LEAX 1,X | |
E55B A6 00 SKIPSP: LDA 0,X | |
E55D 81 20 CMPA #SPACE | |
E55F 27 F8 BEQ NXTNSP | |
E561 39 RTS | |
E562 ;****************************** | |
E562 ;****************************** | |
E562 8D 1A TSTHEX: BSR TSTDIG | |
E564 24 22 BCC TST05 | |
E566 81 41 CMPA #"A" | |
E568 25 11 BCS TST03 | |
E56A 81 46 CMPA #"F" | |
E56C 22 0D BHI TST03 | |
E56E 80 37 SUBA #"A"-10 | |
E570 1C FE ANDCC #$FE | |
E572 39 RTS | |
E573 ;****************************** | |
E573 ;****************************** | |
E573 81 41 TSTLTR: CMPA #"A" | |
E575 25 04 BCS TST03 | |
E577 81 5A CMPA #"Z" | |
E579 23 0D BLS TST05 | |
E57B 1A 01 TST03: ORCC #$01 | |
E57D 39 RTS | |
E57E ;****************************** | |
E57E ;****************************** | |
E57E 81 30 TSTDIG: CMPA #"0" | |
E580 25 F9 BCS TST03 | |
E582 81 39 CMPA #"9" | |
E584 22 F5 BHI TST03 | |
E586 80 30 SUBA #"0" | |
E588 1C FE TST05: ANDCC #$FE | |
E58A 39 RTS | |
E58B ;****************************** | |
E58B ;****************************** | |
E58B 8D CE TSTVAR: BSR SKIPSP | |
E58D 8D E4 BSR TSTLTR | |
E58F 25 12 BCS TSTV03 | |
E591 1F 89 TFR A,B | |
E593 A6 01 LDA 1,X | |
E595 8D DC BSR TSTLTR | |
E597 24 E2 BCC TST03 | |
E599 30 01 LEAX 1,X | |
E59B C0 41 SUBB #"A" | |
E59D 58 ASLB | |
E59E 4F CLRA | |
E59F D3 0C ADDD STKTOP | |
E5A1 1C FE TSTV02: ANDCC #$FE | |
E5A3 39 TSTV03: RTS | |
E5A4 ;****************************** | |
E5A4 ;****************************** | |
E5A4 BD E8 10 USER: JSR ARGONE | |
E5A7 34 06 PSHS D | |
E5A9 BD E5 5B JSR SKIPSP | |
E5AC 81 2C CMPA #"," | |
E5AE 27 09 BEQ USER03 | |
E5B0 81 29 CMPA #")" | |
E5B2 1A 01 ORCC #$01 | |
E5B4 27 15 BEQ USER05 | |
E5B6 7E E4 56 USER02: JMP ERRORS | |
E5B9 30 01 USER03: LEAX 1,X | |
E5BB BD E7 43 JSR EXPR | |
E5BE 34 02 PSHS A | |
E5C0 BD E5 5B JSR SKIPSP | |
E5C3 81 29 CMPA #")" | |
E5C5 35 02 PULS A | |
E5C7 26 ED BNE USER02 | |
E5C9 1C FE ANDCC #$FE | |
E5CB 30 01 USER05: LEAX 1,X | |
E5CD 9F 0E STX CURSOR | |
E5CF AD F1 JSR [,S++] | |
E5D1 9E 0E LDX CURSOR | |
E5D3 1C FE ANDCC #$FE | |
E5D5 39 RTS | |
E5D6 ;****************************** | |
E5D6 ;****************************** | |
E5D6 BD E5 5B TSTSNB: JSR SKIPSP | |
E5D9 81 2D CMPA #"-" | |
E5DB 26 0D BNE TSTNBR | |
E5DD 30 01 LEAX 1,X | |
E5DF 8D 09 BSR TSTNBR | |
E5E1 25 06 BCS TSN02 | |
E5E3 40 NEGA | |
E5E4 50 NEGB | |
E5E5 82 00 SBCA #0 | |
E5E7 1C FC ANDCC #$FC | |
E5E9 39 TSN02: RTS | |
E5EA ;****************************** | |
E5EA ;****************************** | |
E5EA BD E5 5B TSTNBR: JSR SKIPSP | |
E5ED BD E5 7E JSR TSTDIG | |
E5F0 24 2F BCC TSTN02 | |
E5F2 81 24 CMPA #"$" | |
E5F4 1A 01 ORCC #$01 | |
E5F6 26 60 BNE TSTN09 | |
E5F8 30 01 TSTN20: LEAX 1,X | |
E5FA 6F E2 CLR ,-S | |
E5FC 6F E2 CLR ,-S | |
E5FE A6 00 TSTN23: LDA 0,X | |
E600 BD E5 62 JSR TSTHEX | |
E603 25 4F BCS TSTN07 | |
E605 30 01 LEAX 1,X | |
E607 34 10 PSHS X | |
E609 34 02 PSHS A | |
E60B EC 63 LDD 3,S | |
E60D 85 F0 BITA #$F0 | |
E60F 26 4A BNE TSTN11 | |
E611 58 ASLB | |
E612 49 ROLA | |
E613 58 ASLB | |
E614 49 ROLA | |
E615 58 ASLB | |
E616 49 ROLA | |
E617 58 ASLB | |
E618 49 ROLA | |
E619 EB E0 ADDB ,S+ | |
E61B ED 62 STD 2,S | |
E61D 35 10 PULS X | |
E61F 20 DD BRA TSTN23 | |
E621 30 01 TSTN02: LEAX 1,X | |
E623 34 02 PSHS A | |
E625 6F E2 CLR ,-S | |
E627 A6 00 TSTN03: LDA 0,X | |
E629 BD E5 7E JSR TSTDIG | |
E62C 25 26 BCS TSTN07 | |
E62E 30 01 LEAX 1,X | |
E630 34 10 PSHS X | |
E632 34 02 PSHS A | |
E634 EC 63 LDD 3,S | |
E636 58 ASLB | |
E637 49 ROLA | |
E638 29 21 BVS TSTN11 | |
E63A 58 ASLB | |
E63B 49 ROLA | |
E63C 29 1D BVS TSTN11 | |
E63E E3 63 ADDD 3,S | |
E640 29 19 BVS TSTN11 | |
E642 58 ASLB | |
E643 49 ROLA | |
E644 29 15 BVS TSTN11 | |
E646 EB 60 ADDB 0,S | |
E648 89 00 ADCA #0 | |
E64A 29 0F BVS TSTN11 | |
E64C ED 63 STD 3,S | |
E64E 32 61 LEAS 1,S | |
E650 35 10 PULS X | |
E652 20 D3 BRA TSTN03 | |
E654 35 06 TSTN07: PULS D | |
E656 1C FE ANDCC #$FE | |
E658 1C FD TSTN09: ANDCC #$FD | |
E65A 39 RTS | |
E65B AE 61 TSTN11: LDX 1,S | |
E65D 32 65 LEAS 5,S | |
E65F 1A 03 ORCC #$03 | |
E661 39 RTS | |
E662 ;****************************** | |
E662 ;****************************** | |
E662 10 DF 10 TSTSTK: STS SAVESP | |
E665 DC 10 LDD SAVESP | |
E667 83 00 30 SUBD #STKCUS | |
E66A 93 0A SUBD STKLIM | |
E66C 39 RTS | |
E66D ;****************************** | |
E66D ;****************************** | |
E66D BD E7 FD PEEK: JSR PAREXP | |
E670 34 06 PSHS D | |
E672 34 10 PSHS X | |
E674 E6 72 LDB [2,S] | |
E676 35 10 PULS X | |
E678 32 62 LEAS 2,S | |
E67A 4F CLRA | |
E67B 39 RTS | |
E67C ;****************************** | |
E67C ;****************************** | |
E67C BD E7 FD POKE: JSR PAREXP | |
E67F 34 06 PSHS D | |
E681 BD E5 5B JSR SKIPSP | |
E684 81 3D CMPA #"=" | |
E686 27 03 BEQ POKE05 | |
E688 7E E4 56 JMP ERRORS | |
E68B 30 01 POKE05: LEAX 1,X | |
E68D BD E7 43 JSR EXPR | |
E690 BD E8 31 JSR TSTEOL | |
E693 34 10 PSHS X | |
E695 E7 72 STB [2,S] | |
E697 35 10 PULS X | |
E699 32 62 LEAS 2,S | |
E69B 7E E4 FC JMP ENDS02 | |
E69E ;****************************** | |
E69E ;****************************** | |
E69E BD E5 5B TSTFUN: JSR SKIPSP | |
E6A1 9F 0E STX CURSOR | |
E6A3 8E E6 AE LDX #FUNT | |
E6A6 BD E5 21 JSR FAN00 | |
E6A9 25 02 BCS TSTF05 | |
E6AB 34 06 PSHS D | |
E6AD 39 TSTF05: RTS | |
E6AE ;****************************** | |
E6AE ;****************************** | |
E6AE 55 53 52 FUNT: DB "USR" | |
E6B1 04 FCB EOL | |
E6B2 E5 A4 FDB USER | |
E6B4 50 45 45 4B DB "PEEK" | |
E6B8 04 FCB EOL | |
E6B9 E6 6D FDB PEEK | |
E6BB 4D 45 4D DB "MEM" | |
E6BE 04 FCB EOL | |
E6BF E6 62 FDB TSTSTK | |
E6C1 04 FCB EOL | |
E6C2 ;****************************** | |
E6C2 ;****************************** | |
E6C2 9E 06 FLINE: LDX USRBAS | |
E6C4 9C 08 FNDLIN: CMPX USRTOP | |
E6C6 26 03 BNE FND03 | |
E6C8 1A 03 ORCC #$03 | |
E6CA 39 RTS | |
E6CB 10 A3 00 FND03: CMPD 0,X | |
E6CE 26 03 BNE FND05 | |
E6D0 1C FC ANDCC #$FC | |
E6D2 39 RTS | |
E6D3 24 05 FND05: BCC FND07 | |
E6D5 1A 01 ORCC #$01 | |
E6D7 1C FD ANDCC #$FD | |
E6D9 39 RTS | |
E6DA 34 02 FND07: PSHS A | |
E6DC 86 04 LDA #EOL | |
E6DE 30 01 LEAX 1,X | |
E6E0 30 01 FND09: LEAX 1,X | |
E6E2 A1 00 CMPA 0,X | |
E6E4 26 FA BNE FND09 | |
E6E6 35 02 PULS A | |
E6E8 30 01 LEAX 1,X | |
E6EA 20 D8 BRA FNDLIN | |
E6EC ;****************************** | |
E6EC ;****************************** | |
E6EC 8D 55 RELEXP: BSR EXPR | |
E6EE 34 06 PSHS D | |
E6F0 5F CLRB | |
E6F1 BD E5 5B JSR SKIPSP | |
E6F4 81 3D CMPA #"=" | |
E6F6 27 23 BEQ REL06 | |
E6F8 81 3C CMPA #"<" | |
E6FA 26 10 BNE REL03 | |
E6FC 30 01 LEAX 1,X | |
E6FE 5C INCB | |
E6FF BD E5 5B JSR SKIPSP | |
E702 81 3E CMPA #">" | |
E704 26 11 BNE REL05 | |
E706 30 01 LEAX 1,X | |
E708 CB 04 ADDB #4 | |
E70A 20 13 BRA REL07 | |
E70C 81 3E REL03: CMPA #">" | |
E70E 26 5F BNE EXPR06 | |
E710 30 01 LEAX 1,X | |
E712 CB 04 ADDB #4 | |
E714 BD E5 5B JSR SKIPSP | |
E717 81 3D REL05: CMPA #"=" | |
E719 26 04 BNE REL07 | |
E71B 30 01 REL06: LEAX 1,X | |
E71D CB 02 ADDB #2 | |
E71F 34 04 REL07: PSHS B | |
E721 8D 20 BSR EXPR | |
E723 34 10 PSHS X | |
E725 A3 63 SUBD 3,S | |
E727 1F A8 TFR CC,A | |
E729 44 LSRA | |
E72A 1F 89 TFR A,B | |
E72C 48 ASLA | |
E72D 48 ASLA | |
E72E 34 04 PSHS B | |
E730 AB E0 ADDA ,S+ | |
E732 84 06 ANDA #$06 | |
E734 26 01 BNE REL08 | |
E736 4C INCA | |
E737 5F REL08: CLRB | |
E738 A4 62 ANDA 2,S | |
E73A 27 01 BEQ REL09 | |
E73C 53 COMB | |
E73D 4F REL09: CLRA | |
E73E 35 10 PULS X | |
E740 32 63 LEAS 3,S | |
E742 39 RTS | |
E743 ;****************************** | |
E743 ;****************************** | |
E743 6F E2 EXPR: CLR ,-S | |
E745 6F E2 CLR ,-S | |
E747 BD E5 5B JSR SKIPSP | |
E74A 81 2D CMPA #"-" | |
E74C 27 17 BEQ EXPR05 | |
E74E 81 2B CMPA #"+" | |
E750 26 02 BNE EXPR03 | |
E752 30 01 EXPR02: LEAX 1,X | |
E754 8D 1C EXPR03: BSR TERM | |
E756 E3 60 EXPR04: ADDD 0,S | |
E758 ED 60 STD 0,S | |
E75A BD E5 5B JSR SKIPSP | |
E75D 81 2B CMPA #"+" | |
E75F 27 F1 BEQ EXPR02 | |
E761 81 2D CMPA #"-" | |
E763 26 0A BNE EXPR06 | |
E765 30 01 EXPR05: LEAX 1,X | |
E767 8D 09 BSR TERM | |
E769 40 NEGA | |
E76A 50 NEGB | |
E76B 82 00 SBCA #0 | |
E76D 20 E7 BRA EXPR04 | |
E76F 35 06 EXPR06: PULS D | |
E771 39 RTS | |
E772 ;****************************** | |
E772 ;****************************** | |
E772 BD E7 E5 TERM: JSR FACT | |
E775 34 06 PSHS D | |
E777 BD E5 5B TERM03: JSR SKIPSP | |
E77A 81 2A CMPA #"*" | |
E77C 27 48 BEQ TERM07 | |
E77E 81 2F CMPA #"/" | |
E780 27 03 BEQ TERM05 | |
E782 35 06 PULS D | |
E784 39 RTS | |
E785 30 01 TERM05: LEAX 1,X | |
E787 8D 5C BSR FACT | |
E789 34 10 PSHS X | |
E78B 30 62 LEAX 2,S | |
E78D 34 06 PSHS D | |
E78F A8 00 EORA 0,X | |
E791 BD E8 24 JSR ABSX | |
E794 30 60 LEAX 0,S | |
E796 BD E8 24 JSR ABSX | |
E799 34 02 PSHS A | |
E79B 86 11 LDA #17 | |
E79D 34 02 PSHS A | |
E79F 4F CLRA | |
E7A0 5F CLRB | |
E7A1 A3 62 DIV05: SUBD 2,S | |
E7A3 24 06 BCC DIV07 | |
E7A5 E3 62 ADDD 2,S | |
E7A7 1C FE ANDCC #$FE | |
E7A9 20 02 BRA DIV09 | |
E7AB 1A 01 DIV07: ORCC #$01 | |
E7AD 69 67 DIV09: ROL 7,S | |
E7AF 69 66 ROL 6,S | |
E7B1 59 ROLB | |
E7B2 49 ROLA | |
E7B3 6A 60 DEC 0,S | |
E7B5 26 EA BNE DIV05 | |
E7B7 A6 61 LDA 1,S | |
E7B9 32 64 LEAS 4,S | |
E7BB 4D TSTA | |
E7BC 2A 04 BPL TERM06 | |
E7BE 30 62 LEAX 2,S | |
E7C0 8D 66 BSR NEGX | |
E7C2 35 10 TERM06: PULS X | |
E7C4 20 B1 BRA TERM03 | |
E7C6 30 01 TERM07: LEAX 1,X | |
E7C8 8D 1B BSR FACT | |
E7CA 34 04 MULT: PSHS B | |
E7CC E6 62 LDB 2,S | |
E7CE 3D MUL | |
E7CF A6 61 LDA 1,S | |
E7D1 E7 61 STB 1,S | |
E7D3 E6 60 LDB 0,S | |
E7D5 3D MUL | |
E7D6 A6 62 LDA 2,S | |
E7D8 E7 62 STB 2,S | |
E7DA 35 04 PULS B | |
E7DC 3D MUL | |
E7DD AB 60 ADDA 0,S | |
E7DF AB 61 ADDA 1,S | |
E7E1 ED 60 STD 0,S | |
E7E3 20 92 BRA TERM03 | |
E7E5 ;****************************** | |
E7E5 ;****************************** | |
E7E5 BD E5 8B FACT: JSR TSTVAR | |
E7E8 25 09 BCS FACT03 | |
E7EA 34 10 PSHS X | |
E7EC 1F 01 TFR D,X | |
E7EE EC 00 LDD 0,X | |
E7F0 35 10 PULS X | |
E7F2 39 FACT02: RTS | |
E7F3 BD E5 EA FACT03: JSR TSTNBR | |
E7F6 24 FA BCC FACT02 | |
E7F8 BD E6 9E JSR TSTFUN | |
E7FB 24 F5 BCC FACT02 | |
E7FD 8D 11 PAREXP: BSR ARGONE | |
E7FF 34 02 PSHS A | |
E801 BD E5 5B JSR SKIPSP | |
E804 81 29 CMPA #")" | |
E806 35 02 PULS A | |
E808 26 03 BNE FACT05 | |
E80A 30 01 LEAX 1,X | |
E80C 39 RTS | |
E80D 7E E4 56 FACT05: JMP ERRORS | |
E810 ;****************************** | |
E810 ;****************************** | |
E810 BD E6 62 ARGONE: JSR TSTSTK | |
E813 24 03 BCC FACT04 | |
E815 7E E4 4E JMP ERRORF | |
E818 BD E5 5B FACT04: JSR SKIPSP | |
E81B 81 28 CMPA #"(" | |
E81D 26 EE BNE FACT05 | |
E81F 30 01 LEAX 1,X | |
E821 7E E7 43 JMP EXPR | |
E824 ;****************************** | |
E824 ;****************************** | |
E824 6D 00 ABSX: TST 0,X | |
E826 2A 08 BPL NEG05 | |
E828 60 00 NEGX: NEG 0,X | |
E82A 60 01 NEG 1,X | |
E82C 24 02 BCC NEG05 | |
E82E 6A 00 DEC 0,X | |
E830 39 NEG05: RTS | |
E831 ;****************************** | |
E831 ;****************************** | |
E831 34 02 TSTEOL: PSHS A | |
E833 BD E5 5B JSR SKIPSP | |
E836 81 04 CMPA #EOL | |
E838 27 03 BEQ TEOL03 | |
E83A 7E E4 56 JMP ERRORS | |
E83D 30 01 TEOL03: LEAX 1,X | |
E83F 35 02 PULS A | |
E841 39 RTS | |
E842 ;****************************** | |
E842 ;****************************** | |
E842 BD E5 8B LET: JSR TSTVAR | |
E845 24 03 BCC LET03 | |
E847 7E E4 56 JMP ERRORS | |
E84A 34 06 LET03: PSHS D | |
E84C BD E5 5B JSR SKIPSP | |
E84F 81 3D CMPA #"=" | |
E851 27 03 BEQ LET05 | |
E853 7E E4 56 JMP ERRORS | |
E856 30 01 LET05: LEAX 1,X | |
E858 BD E7 43 JSR EXPR | |
E85B 8D D4 BSR TSTEOL | |
E85D 9F 0E STX CURSOR | |
E85F 35 10 PULS X | |
E861 ED 00 STD 0,X | |
E863 9E 0E LDX CURSOR | |
E865 7E E4 FC JMP ENDS02 | |
E868 ;****************************** | |
E868 ;****************************** | |
E868 BD E6 EC IF: JSR RELEXP | |
E86B 5D TSTB | |
E86C 27 03 BEQ IF03 | |
E86E 7E E5 0D JMP MSLINE | |
E871 7E E4 F3 IF03: JMP REM | |
E874 ;****************************** | |
E874 ;****************************** | |
E874 BD E7 43 GOTO: JSR EXPR | |
E877 8D B8 BSR TSTEOL | |
E879 BD E6 C2 JSR FLINE | |
E87C 25 0F BCS GOSB04 | |
E87E 7E E5 09 JMP NXTLIN | |
E881 ;****************************** | |
E881 ;****************************** | |
E881 BD E7 43 GOSUB: JSR EXPR | |
E884 8D AB BSR TSTEOL | |
E886 9F 0E STX CURSOR | |
E888 BD E6 C2 JSR FLINE | |
E88B 24 03 BCC GOSB03 | |
E88D 7E E4 5F GOSB04: JMP ERRORR | |
E890 BD E6 62 GOSB03: JSR TSTSTK | |
E893 24 03 BCC GOSB05 | |
E895 7E E4 4E JMP ERRORF | |
E898 DC 0E GOSB05: LDD CURSOR | |
E89A 34 06 PSHS D | |
E89C DC 12 LDD LINENB | |
E89E 34 06 PSHS D | |
E8A0 BD E5 09 JSR NXTLIN | |
E8A3 35 06 PULS D | |
E8A5 DD 12 STD LINENB | |
E8A7 35 10 PULS X | |
E8A9 7E E4 FC JMP ENDS02 | |
E8AC ;****************************** | |
E8AC ;****************************** | |
E8AC RETURN: EQU TSTEOL | |
E8AC ;****************************** | |
E8AC ;****************************** | |
E8AC BD E5 5B PRINT: JSR SKIPSP | |
E8AF 81 2C PR01: CMPA #"," | |
E8B1 27 36 BEQ PR05 | |
E8B3 81 3B CMPA #";" | |
E8B5 27 3D BEQ PR07 | |
E8B7 81 04 CMPA #EOL | |
E8B9 27 25 BEQ PR04 | |
E8BB 81 22 CMPA #$22 | |
E8BD 26 06 BNE PR02 | |
E8BF 30 01 LEAX 1,X | |
E8C1 8D 42 BSR PRNTQS | |
E8C3 20 09 BRA PR03 | |
E8C5 BD E7 43 PR02: JSR EXPR | |
E8C8 34 10 PSHS X | |
E8CA 8D 47 BSR PRNTN | |
E8CC 35 10 PULS X | |
E8CE BD E5 5B PR03: JSR SKIPSP | |
E8D1 81 2C CMPA #"," | |
E8D3 27 14 BEQ PR05 | |
E8D5 81 3B CMPA #";" | |
E8D7 27 1B BEQ PR07 | |
E8D9 81 04 CMPA #EOL | |
E8DB 27 03 BEQ PR04 | |
E8DD 7E E4 56 JMP ERRORS | |
E8E0 34 10 PR04: PSHS X | |
E8E2 BD E4 3F JSR CRLF | |
E8E5 35 10 PULS X | |
E8E7 20 14 BRA PR08 | |
E8E9 C6 07 PR05: LDB #$7 | |
E8EB 86 20 PR06: LDA #SPACE | |
E8ED BD EA A6 JSR PUTCHR | |
E8F0 D5 18 BITB ZONE | |
E8F2 26 F7 BNE PR06 | |
E8F4 30 01 PR07: LEAX 1,X | |
E8F6 BD E5 5B JSR SKIPSP | |
E8F9 81 04 CMPA #EOL | |
E8FB 26 B2 BNE PR01 | |
E8FD 30 01 PR08: LEAX 1,X | |
E8FF 7E E4 FC JMP ENDS02 | |
E902 ;* | |
E902 ;* | |
E902 BD EA A6 PRQ01: JSR PUTCHR | |
E905 A6 80 PRNTQS: LDA ,X+ | |
E907 81 04 CMPA #EOL | |
E909 26 03 BNE PRQ03 | |
E90B 7E E4 56 JMP ERRORS | |
E90E 81 22 PRQ03: CMPA #$22 | |
E910 26 F0 BNE PRQ01 | |
E912 39 RTS | |
E913 ;* | |
E913 4D PRNTN: TSTA | |
E914 2A 0D BPL PRN03 | |
E916 40 NEGA | |
E917 50 NEGB | |
E918 82 00 SBCA #0 | |
E91A 34 02 PSHS A | |
E91C 86 2D LDA #"-" | |
E91E BD EA A6 JSR PUTCHR | |
E921 35 02 PULS A | |
E923 8E E9 52 PRN03: LDX #PRNPT-2 | |
E926 30 02 PRN05: LEAX 2,X | |
E928 10 A3 00 CMPD 0,X | |
E92B 24 05 BCC PRN07 | |
E92D 8C E9 5C CMPX #PRNPTO | |
E930 26 F4 BNE PRN05 | |
E932 0F 16 PRN07: CLR CHAR | |
E934 10 A3 00 PRN09: CMPD 0,X | |
E937 25 06 BCS PRN11 | |
E939 A3 00 SUBD 0,X | |
E93B 0C 16 INC CHAR | |
E93D 20 F5 BRA PRN09 | |
E93F 34 02 PRN11: PSHS A | |
E941 86 30 LDA #"0" | |
E943 9B 16 ADDA CHAR | |
E945 BD EA A6 JSR PUTCHR | |
E948 35 02 PULS A | |
E94A 8C E9 5C CMPX #PRNPTO | |
E94D 27 04 BEQ PRN13 | |
E94F 30 02 LEAX 2,X | |
E951 20 DF BRA PRN07 | |
E953 39 PRN13: RTS | |
E954 27 10 PRNPT: FDB 10000 | |
E956 03 E8 FDB 1000 | |
E958 00 64 FDB 100 | |
E95A 00 0A FDB 10 | |
E95C 00 01 PRNPTO: FDB 1 | |
E95E ;* | |
E95E 8E E9 56 PRNT4: LDX #PRNPT+2 | |
E961 20 CF BRA PRN07 | |
E963 ;****************************** | |
E963 ;****************************** | |
E963 BD E5 8B INPUT: JSR TSTVAR | |
E966 25 3C BCS IN11 | |
E968 34 06 PSHS D | |
E96A 9F 0E STX CURSOR | |
E96C 86 3F IN03: LDA #"?" | |
E96E BD EA A6 JSR PUTCHR | |
E971 BD E4 90 JSR GETLIN | |
E974 BD E5 5B IN05: JSR SKIPSP | |
E977 81 04 CMPA #EOL | |
E979 27 F1 BEQ IN03 | |
E97B BD E5 D6 JSR TSTSNB | |
E97E 24 0B BCC IN07 | |
E980 8E E9 B8 LDX #RMESS | |
E983 BD E4 38 JSR PUTSTR | |
E986 BD E4 3F JSR CRLF | |
E989 20 E1 BRA IN03 | |
E98B 9F 14 IN07: STX SCRTCH | |
E98D 35 10 PULS X | |
E98F ED 00 STD 0,X | |
E991 9E 0E LDX CURSOR | |
E993 BD E5 5B JSR SKIPSP | |
E996 81 2C CMPA #"," | |
E998 27 03 BEQ IN09 | |
E99A 7E E4 F9 JMP ENDSMT | |
E99D 30 01 IN09: LEAX 1,X | |
E99F BD E5 8B JSR TSTVAR | |
E9A2 24 03 BCC IN13 | |
E9A4 7E E4 56 IN11: JMP ERRORS | |
E9A7 34 06 IN13: PSHS D | |
E9A9 34 10 PSHS X | |
E9AB 9E 14 LDX SCRTCH | |
E9AD BD E5 5B JSR SKIPSP | |
E9B0 81 2C CMPA #"," | |
E9B2 26 C0 BNE IN05 | |
E9B4 30 01 LEAX 1,X | |
E9B6 20 BC BRA IN05 | |
E9B8 52 45 2D 45 4E 54 45 52 RMESS: DB "RE-ENTER" | |
E9C0 04 FCB EOL | |
E9C1 ;****************************** | |
E9C1 ;****************************** | |
E9C1 9E 0C RUN: LDX STKTOP | |
E9C3 86 34 LDA #52 | |
E9C5 6F 80 RUN01: CLR ,X+ | |
E9C7 4A DECA | |
E9C8 26 FB BNE RUN01 | |
E9CA 9E 06 LDX USRBAS | |
E9CC 7E E5 02 JMP REM05 | |
E9CF ;****************************** | |
E9CF ;****************************** | |
E9CF BD E5 EA LIST: JSR TSTNBR | |
E9D2 24 08 BCC LIST03 | |
E9D4 4F CLRA | |
E9D5 5F CLRB | |
E9D6 DD 0E STD CURSOR | |
E9D8 86 7F LDA #$7F | |
E9DA 20 17 BRA LIST07 | |
E9DC DD 0E LIST03: STD CURSOR | |
E9DE BD E5 5B JSR SKIPSP | |
E9E1 81 2C CMPA #"," | |
E9E3 27 04 BEQ LIST05 | |
E9E5 96 0E LDA CURSOR | |
E9E7 20 0A BRA LIST07 | |
E9E9 30 01 LIST05: LEAX 1,X | |
E9EB BD E5 EA JSR TSTNBR | |
E9EE 24 03 BCC LIST07 | |
E9F0 7E E4 56 JMP ERRORS | |
E9F3 BD E8 31 LIST07: JSR TSTEOL | |
E9F6 34 06 PSHS D | |
E9F8 DC 0E LDD CURSOR | |
E9FA 9F 0E STX CURSOR | |
E9FC BD E6 C2 JSR FLINE | |
E9FF 9C 08 LIST09: CMPX USRTOP | |
EA01 27 28 BEQ LIST10 | |
EA03 35 06 PULS D | |
EA05 10 A3 00 CMPD 0,X | |
EA08 25 28 BCS LIST11 | |
EA0A 34 06 PSHS D | |
EA0C EC 81 LDD ,X++ | |
EA0E 34 10 PSHS X | |
EA10 BD E9 5E JSR PRNT4 | |
EA13 35 10 PULS X | |
EA15 86 20 LDA #SPACE | |
EA17 BD EA A6 JSR PUTCHR | |
EA1A BD E4 38 JSR PUTSTR | |
EA1D 30 01 LEAX 1,X | |
EA1F 34 10 PSHS X | |
EA21 BD E4 3F JSR CRLF | |
EA24 35 10 PULS X | |
EA26 BD EA 98 JSR TSTBRK | |
EA29 20 D4 BRA LIST09 | |
EA2B 32 62 LIST10: LEAS 2,S | |
EA2D 86 03 LDA #ETX | |
EA2F BD EA A6 JSR PUTCHR | |
EA32 9E 0E LIST11: LDX CURSOR | |
EA34 7E E4 FC JMP ENDS02 | |
EA37 ;****************************** | |
EA37 ;****************************** | |
EA37 4C 45 54 VERBT: DB "LET" | |
EA3A 04 FCB EOL | |
EA3B E8 42 FDB LET | |
EA3D 49 46 DB "IF" | |
EA3F 04 FCB EOL | |
EA40 E8 68 FDB IF | |
EA42 47 4F 54 4F DB "GOTO" | |
EA46 04 FCB EOL | |
EA47 E8 74 FDB GOTO | |
EA49 47 4F 53 55 42 DB "GOSUB" | |
EA4E 04 FCB EOL | |
EA4F E8 81 FDB GOSUB | |
EA51 52 45 54 55 52 4E DB "RETURN" | |
EA57 04 FCB EOL | |
EA58 E8 31 FDB RETURN | |
EA5A 50 4F 4B 45 DB "POKE" | |
EA5E 04 FCB EOL | |
EA5F E6 7C FDB POKE | |
EA61 50 52 49 4E 54 DB "PRINT" | |
EA66 04 FCB EOL | |
EA67 E8 AC FDB PRINT | |
EA69 49 4E 50 55 54 DB "INPUT" | |
EA6E 04 FCB EOL | |
EA6F E9 63 FDB INPUT | |
EA71 52 45 4D DB "REM" | |
EA74 04 FCB EOL | |
EA75 E4 F3 FDB REM | |
EA77 53 54 4F 50 DB "STOP" | |
EA7B 04 FCB EOL | |
EA7C EA E2 FDB END | |
EA7C 45 4E 44 DB "END" | |
EA7F 04 FCB EOL | |
EA80 EA E2 FDB END | |
EA80 52 55 4E DB "RUN" | |
EA83 04 FCB EOL | |
EA84 E9 C1 FDB RUN | |
EA86 4C 49 53 54 DB "LIST" | |
EA8A 04 FCB EOL | |
EA8B E9 CF FDB LIST | |
EA8D 4E 45 57 DB "NEW" | |
EA90 04 FCB EOL | |
EA91 E3 1F FDB CLEAR | |
EA93 3F DB "?" | |
EA94 04 FCB EOL | |
EA95 E8 AC FDB PRINT | |
EA97 04 FCB EOL | |
EA98 ;****************************** | |
EA98 ;****************************** | |
EA98 8D 2A TSTBRK: BSR BRKEEE | |
EA9A 27 09 BEQ GETC05 | |
EA9C 8D 0D GETCHR: BSR INEEE | |
EA9E 81 03 CMPA #ETX | |
EAA0 26 03 BNE GETC05 | |
EAA2 7E E4 67 JMP BREAK | |
EAA5 39 GETC05: RTS | |
EAA6 0C 18 PUTCHR: INC ZONE | |
EAA8 7E EA B5 JMP OUTEEE | |
EAAB ;****************************** | |
EAAB ;****************************** | |
EAAB 8D 17 INEEE: BSR BRKEEE | |
EAAD 27 FC BEQ INEEE | |
EAAF B6 E2 56 LDA RECEV | |
EAB2 84 7F ANDA #$7F | |
EAB4 39 RTS | |
EAB5 34 02 OUTEEE: PSHS A | |
EAB7 B6 E2 55 OUT01: LDA TRCS | |
EABA 85 02 BITA #TDRE | |
EABC 27 F9 BEQ OUT01 | |
EABE 35 02 PULS A | |
EAC0 B7 E2 56 STA TRANS | |
EAC3 39 RTS | |
EAC4 34 02 BRKEEE: PSHS A | |
EAC6 B6 E2 55 BRK03: LDA TRCS | |
EAC9 85 20 BITA #ORFE | |
EACB 27 05 BEQ BRK05 | |
EACD B6 E2 56 LDA RECEV | |
EAD0 20 F4 BRA BRK03 | |
EAD2 85 01 BRK05: BITA #RDRF | |
EAD4 35 02 PULS A | |
EAD6 39 RTS | |
EAD7 ;* | |
EAD7 86 03 LDA #CNTL1 | |
EAD9 B7 E2 55 STA RMCR | |
EADC 86 15 LDA #CNTL2 | |
EADE B7 E2 55 STA TRCS | |
EAE1 INTEEE: EQU $ | |
EAE1 39 RTS | |
EAE2 ;****************************** | |
EAE2 ;****************************** | |
EAE2 END: | |
EAE2 .ENDBLOCK | |
EAE2 .CSEG | |
EAE2 ALIGN 256 | |
EB00 7E EB 0F JMP testmod | |
EB03 4D 4F 44 39 54 65 73 74 4D 6F 64 00 .CSTR "MOD9TestMod" | |
EB0F TESTMOD: | |
EB0F BD E0 0F JSR $E00F | |
EB12 54 65 73 74 20 6D 6F 64 75 6C 65 0D 0A 00 .CSTR "Test module",$0d,$0a | |
EB20 7E E0 00 JMP $e000 | |
FFF0 .ORG 0xfff0 | |
FFF0 ;reserved | |
FFF0 E0 12 DW reset | |
FFF2 ;SWI3 | |
FFF2 E0 12 DW reset | |
FFF4 ;SWI2 | |
FFF4 E0 12 DW reset | |
FFF6 ;FIRQ | |
FFF6 E0 12 DW reset | |
FFF8 ;IRQ | |
FFF8 E0 12 DW reset | |
FFFA ;SWI | |
FFFA E0 12 DW reset | |
FFFC ;NMI | |
FFFC E0 12 DW reset | |
FFFE ;RES | |
FFFE E0 12 DW reset | |
Q_ADD: 0000 DEFINED AT LINE 6 | |
> USED AT LINE 95 | |
> USED AT LINE 102 | |
> USED AT LINE 113 | |
> USED AT LINE 117 | |
> USED AT LINE 125 | |
> USED AT LINE 218 | |
> USED AT LINE 227 | |
> USED AT LINE 228 | |
> USED AT LINE 229 | |
> USED AT LINE 230 | |
> USED AT LINE 231 | |
> USED AT LINE 232 | |
> USED AT LINE 233 | |
> USED AT LINE 234 | |
> USED AT LINE 235 | |
> USED AT LINE 236 | |
Q_KEY: 0002 DEFINED AT LINE 7 | |
> USED AT LINE 246 | |
> USED AT LINE 248 | |
Q_HEXCNT: 0003 DEFINED AT LINE 8 | |
> USED AT LINE 65 | |
> USED AT LINE 75 | |
Q_HEXADD: 0004 DEFINED AT LINE 9 | |
> USED AT LINE 67 | |
RESET: E012 DEFINED AT LINE 22 | |
> USED AT LINE 16 | |
> USED AT LINE 361 | |
> USED AT LINE 363 | |
> USED AT LINE 365 | |
> USED AT LINE 367 | |
> USED AT LINE 369 | |
> USED AT LINE 371 | |
> USED AT LINE 373 | |
> USED AT LINE 375 | |
WARM: E021 DEFINED AT LINE 31 | |
MAINCRLF: E034 DEFINED AT LINE 34 | |
> USED AT LINE 61 | |
> USED AT LINE 90 | |
> USED AT LINE 108 | |
MAIN: E037 DEFINED AT LINE 36 | |
> USED AT LINE 82 | |
> USED AT LINE 145 | |
> USED AT LINE 185 | |
MAINSHORT: E03A DEFINED AT LINE 38 | |
> USED AT LINE 43 | |
> USED AT LINE 45 | |
WHAT: E063 DEFINED AT LINE 58 | |
M_HEX: E06F DEFINED AT LINE 63 | |
> USED AT LINE 41 | |
> USED AT LINE 86 | |
M_HEX_LOOP: E080 DEFINED AT LINE 71 | |
> USED AT LINE 76 | |
M_HEX_WAITEND: E08E DEFINED AT LINE 79 | |
> USED AT LINE 84 | |
> USED AT LINE 87 | |
M_HEXEND: E09F DEFINED AT LINE 88 | |
> USED AT LINE 70 | |
M_MEM: E0A1 DEFINED AT LINE 93 | |
> USED AT LINE 50 | |
M_MEM_LINE: E0A6 DEFINED AT LINE 96 | |
> USED AT LINE 112 | |
> USED AT LINE 115 | |
> USED AT LINE 120 | |
M_MEM_BACK: E0D7 DEFINED AT LINE 116 | |
> USED AT LINE 110 | |
M_DUMP: E0E0 DEFINED AT LINE 123 | |
> USED AT LINE 52 | |
M_DUMP_LINE: E0E8 DEFINED AT LINE 127 | |
> USED AT LINE 143 | |
> USED AT LINE 149 | |
M_DUMP_LOOP: E0F3 DEFINED AT LINE 132 | |
> USED AT LINE 138 | |
M_DUMP_WAIT: E103 DEFINED AT LINE 140 | |
> USED AT LINE 147 | |
M_GO: E11A DEFINED AT LINE 151 | |
> USED AT LINE 54 | |
M_USER: E121 DEFINED AT LINE 155 | |
> USED AT LINE 56 | |
M_U_FIND: E142 DEFINED AT LINE 163 | |
> USED AT LINE 184 | |
M_U_NEXT: E166 DEFINED AT LINE 182 | |
> USED AT LINE 166 | |
> USED AT LINE 169 | |
> USED AT LINE 172 | |
> USED AT LINE 175 | |
PRINTX: E16F DEFINED AT LINE 187 | |
> USED AT LINE 20 | |
> USED AT LINE 98 | |
> USED AT LINE 128 | |
PRINT2: E176 DEFINED AT LINE 192 | |
> USED AT LINE 19 | |
> USED AT LINE 103 | |
> USED AT LINE 134 | |
> USED AT LINE 189 | |
PRINTHEX: E183 DEFINED AT LINE 201 | |
> USED AT LINE 198 | |
> USED AT LINE 225 | |
PH2: E18C DEFINED AT LINE 206 | |
> USED AT LINE 203 | |
GETADDR: E191 DEFINED AT LINE 210 | |
> USED AT LINE 94 | |
> USED AT LINE 124 | |
> USED AT LINE 152 | |
GET4: E19E DEFINED AT LINE 216 | |
> USED AT LINE 213 | |
GET4X: E1A3 DEFINED AT LINE 219 | |
> USED AT LINE 106 | |
> USED AT LINE 238 | |
GET4OK: E1A9 DEFINED AT LINE 223 | |
> USED AT LINE 221 | |
GETHEX2: E1C6 DEFINED AT LINE 240 | |
> USED AT LINE 64 | |
> USED AT LINE 68 | |
> USED AT LINE 72 | |
> USED AT LINE 252 | |
> USED AT LINE 254 | |
GETHEX4: E1D5 DEFINED AT LINE 251 | |
> USED AT LINE 66 | |
GETHEX: E1E4 DEFINED AT LINE 260 | |
> USED AT LINE 220 | |
> USED AT LINE 241 | |
> USED AT LINE 247 | |
GHB: E1EB DEFINED AT LINE 264 | |
> USED AT LINE 274 | |
> USED AT LINE 281 | |
> USED AT LINE 283 | |
GH1: E1EE DEFINED AT LINE 267 | |
> USED AT LINE 263 | |
GH2: E1F5 DEFINED AT LINE 272 | |
> USED AT LINE 269 | |
GH3: E200 DEFINED AT LINE 279 | |
> USED AT LINE 276 | |
ACIA: 83FE DEFINED AT LINE 290 | |
> USED AT LINE 291 | |
> USED AT LINE 292 | |
> USED AT LINE 293 | |
ACIAC: 83FE DEFINED AT LINE 291 | |
> USED AT LINE 26 | |
ACIAS: 83FE DEFINED AT LINE 292 | |
> USED AT LINE 310 | |
> USED AT LINE 343 | |
ACIAD: 83FF DEFINED AT LINE 293 | |
> USED AT LINE 313 | |
> USED AT LINE 346 | |
ACIA_TDRE: 0002 DEFINED AT LINE 295 | |
ACIA_RDRF: 0001 DEFINED AT LINE 296 | |
STROUT: E20B DEFINED AT LINE 299 | |
> USED AT LINE 179 | |
> USED AT LINE 305 | |
SOUT2: E210 DEFINED AT LINE 303 | |
> USED AT LINE 301 | |
SEROUT: E216 DEFINED AT LINE 307 | |
> USED AT LINE 18 | |
> USED AT LINE 78 | |
> USED AT LINE 136 | |
> USED AT LINE 205 | |
> USED AT LINE 208 | |
> USED AT LINE 304 | |
> USED AT LINE 319 | |
> USED AT LINE 321 | |
> USED AT LINE 325 | |
> USED AT LINE 327 | |
> USED AT LINE 339 | |
SEROUTL: E218 DEFINED AT LINE 309 | |
> USED AT LINE 312 | |
PCRLF: E225 DEFINED AT LINE 317 | |
> USED AT LINE 35 | |
> USED AT LINE 97 | |
> USED AT LINE 126 | |
> USED AT LINE 139 | |
> USED AT LINE 180 | |
PROMPT: E22F DEFINED AT LINE 323 | |
> USED AT LINE 37 | |
PRIMM: E239 DEFINED AT LINE 330 | |
> USED AT LINE 21 | |
> USED AT LINE 32 | |
> USED AT LINE 59 | |
> USED AT LINE 99 | |
> USED AT LINE 104 | |
> USED AT LINE 129 | |
> USED AT LINE 156 | |
> USED AT LINE 211 | |
PRIMM1: E23D DEFINED AT LINE 333 | |
> USED AT LINE 340 | |
PRIMM2: E245 DEFINED AT LINE 338 | |
> USED AT LINE 335 | |
SERIN: E24A DEFINED AT LINE 342 | |
> USED AT LINE 17 | |
> USED AT LINE 39 | |
> USED AT LINE 80 | |
> USED AT LINE 141 | |
> USED AT LINE 261 | |
> USED AT LINE 345 | |
MON_END: E255 DEFINED AT LINE 349 | |
EOL: 0004 DEFINED AT LINE 18 IN basic.a09 | |
> USED AT LINE 127 IN basic.a09 | |
> USED AT LINE 232 IN basic.a09 | |
> USED AT LINE 235 IN basic.a09 | |
> USED AT LINE 238 IN basic.a09 | |
> USED AT LINE 241 IN basic.a09 | |
> USED AT LINE 244 IN basic.a09 | |
> USED AT LINE 560 IN basic.a09 | |
> USED AT LINE 563 IN basic.a09 | |
> USED AT LINE 566 IN basic.a09 | |
> USED AT LINE 568 IN basic.a09 | |
> USED AT LINE 966 IN basic.a09 | |
> USED AT LINE 1027 IN basic.a09 | |
> USED AT LINE 1030 IN basic.a09 | |
> USED AT LINE 1033 IN basic.a09 | |
> USED AT LINE 1036 IN basic.a09 | |
> USED AT LINE 1039 IN basic.a09 | |
> USED AT LINE 1042 IN basic.a09 | |
> USED AT LINE 1045 IN basic.a09 | |
> USED AT LINE 1048 IN basic.a09 | |
> USED AT LINE 1051 IN basic.a09 | |
> USED AT LINE 1054 IN basic.a09 | |
> USED AT LINE 1057 IN basic.a09 | |
> USED AT LINE 1060 IN basic.a09 | |
> USED AT LINE 1063 IN basic.a09 | |
> USED AT LINE 1066 IN basic.a09 | |
> USED AT LINE 1069 IN basic.a09 | |
> USED AT LINE 1071 IN basic.a09 | |
ETX: 0003 DEFINED AT LINE 19 IN basic.a09 | |
SPACE: 0020 DEFINED AT LINE 20 IN basic.a09 | |
CR: 000D DEFINED AT LINE 21 IN basic.a09 | |
> USED AT LINE 227 | |
LF: 000A DEFINED AT LINE 22 IN basic.a09 | |
> USED AT LINE 227 | |
BS: 0008 DEFINED AT LINE 23 IN basic.a09 | |
CAN: 0018 DEFINED AT LINE 24 IN basic.a09 | |
BELL: 0007 DEFINED AT LINE 25 IN basic.a09 | |
FILL: 0000 DEFINED AT LINE 26 IN basic.a09 | |
DEL: 007F DEFINED AT LINE 27 IN basic.a09 | |
BSIZE: 0049 DEFINED AT LINE 28 IN basic.a09 | |
> USED AT LINE 48 IN basic.a09 | |
STKCUS: 0030 DEFINED AT LINE 29 IN basic.a09 | |
BACIA: 83FE DEFINED AT LINE 31 | |
> USED AT LINE 32 IN basic.a09 | |
> USED AT LINE 33 IN basic.a09 | |
> USED AT LINE 34 IN basic.a09 | |
> USED AT LINE 35 IN basic.a09 | |
RMCR: 83FE DEFINED AT LINE 32 IN basic.a09 | |
> USED AT LINE 1108 IN basic.a09 | |
TRCS: 83FE DEFINED AT LINE 33 IN basic.a09 | |
> USED AT LINE 1091 | |
> USED AT LINE 1098 | |
> USED AT LINE 1110 IN basic.a09 | |
RECEV: 83FF DEFINED AT LINE 34 IN basic.a09 | |
> USED AT LINE 1087 IN basic.a09 | |
> USED AT LINE 1101 IN basic.a09 | |
TRANS: 83FF DEFINED AT LINE 35 IN basic.a09 | |
> USED AT LINE 1095 IN basic.a09 | |
CNTL1: 0003 DEFINED AT LINE 36 IN basic.a09 | |
CNTL2: 0015 DEFINED AT LINE 37 IN basic.a09 | |
RDRF: 0001 DEFINED AT LINE 38 IN basic.a09 | |
ORFE: 0020 DEFINED AT LINE 39 IN basic.a09 | |
TDRE: 0002 DEFINED AT LINE 40 IN basic.a09 | |
LORAM: 0080 DEFINED AT LINE 43 IN basic.a09 | |
BUFFER: 0200 DEFINED AT LINE 44 IN basic.a09 | |
> USED AT LINE 48 IN basic.a09 | |
> USED AT LINE 49 IN basic.a09 | |
RAMSIZ: 2000 DEFINED AT LINE 45 IN basic.a09 | |
> USED AT LINE 49 IN basic.a09 | |
ROMADR: F000 DEFINED AT LINE 46 IN basic.a09 | |
RAMBEG: 0249 DEFINED AT LINE 48 IN basic.a09 | |
RAMEND: 2200 DEFINED AT LINE 49 IN basic.a09 | |
RAMPAT: AA0F DEFINED AT LINE 51 IN basic.a09 | |
ROMPAT: F055 DEFINED AT LINE 52 IN basic.a09 | |
USRBAS: 0006 DEFINED AT LINE 56 IN basic.a09 | |
> USED AT LINE 85 IN basic.a09 | |
> USED AT LINE 94 IN basic.a09 | |
> USED AT LINE 139 | |
> USED AT LINE 571 | |
> USED AT LINE 974 IN basic.a09 | |
USRTOP: 0008 DEFINED AT LINE 57 IN basic.a09 | |
> USED AT LINE 86 IN basic.a09 | |
> USED AT LINE 112 IN basic.a09 | |
> USED AT LINE 135 IN basic.a09 | |
> USED AT LINE 148 | |
> USED AT LINE 158 IN basic.a09 | |
> USED AT LINE 180 IN basic.a09 | |
> USED AT LINE 182 IN basic.a09 | |
> USED AT LINE 183 IN basic.a09 | |
> USED AT LINE 187 IN basic.a09 | |
> USED AT LINE 190 | |
> USED AT LINE 313 | |
> USED AT LINE 572 | |
> USED AT LINE 1000 | |
STKLIM: 000A DEFINED AT LINE 58 IN basic.a09 | |
> USED AT LINE 87 | |
> USED AT LINE 113 IN basic.a09 | |
> USED AT LINE 159 IN basic.a09 | |
> USED AT LINE 184 IN basic.a09 | |
> USED AT LINE 188 IN basic.a09 | |
> USED AT LINE 520 IN basic.a09 | |
STKTOP: 000C DEFINED AT LINE 59 IN basic.a09 | |
> USED AT LINE 78 | |
> USED AT LINE 82 | |
> USED AT LINE 91 | |
> USED AT LINE 406 IN basic.a09 | |
> USED AT LINE 969 | |
CURSOR: 000E DEFINED AT LINE 60 IN basic.a09 | |
> USED AT LINE 95 IN basic.a09 | |
> USED AT LINE 134 IN basic.a09 | |
> USED AT LINE 141 IN basic.a09 | |
> USED AT LINE 193 IN basic.a09 | |
> USED AT LINE 201 IN basic.a09 | |
> USED AT LINE 327 IN basic.a09 | |
> USED AT LINE 332 IN basic.a09 | |
> USED AT LINE 336 IN basic.a09 | |
> USED AT LINE 429 IN basic.a09 | |
> USED AT LINE 431 IN basic.a09 | |
> USED AT LINE 551 IN basic.a09 | |
> USED AT LINE 794 IN basic.a09 | |
> USED AT LINE 797 IN basic.a09 | |
> USED AT LINE 817 IN basic.a09 | |
> USED AT LINE 824 | |
> USED AT LINE 932 IN basic.a09 | |
> USED AT LINE 948 IN basic.a09 | |
> USED AT LINE 982 IN basic.a09 | |
> USED AT LINE 985 | |
> USED AT LINE 989 IN basic.a09 | |
> USED AT LINE 997 IN basic.a09 | |
> USED AT LINE 998 IN basic.a09 | |
> USED AT LINE 1022 | |
SAVESP: 0010 DEFINED AT LINE 61 IN basic.a09 | |
> USED AT LINE 143 IN basic.a09 | |
> USED AT LINE 152 IN basic.a09 | |
> USED AT LINE 154 IN basic.a09 | |
> USED AT LINE 157 | |
> USED AT LINE 191 | |
> USED AT LINE 197 IN basic.a09 | |
> USED AT LINE 517 | |
> USED AT LINE 518 IN basic.a09 | |
LINENB: 0012 DEFINED AT LINE 62 IN basic.a09 | |
> USED AT LINE 97 IN basic.a09 | |
> USED AT LINE 248 IN basic.a09 | |
> USED AT LINE 310 | |
> USED AT LINE 311 IN basic.a09 | |
> USED AT LINE 317 IN basic.a09 | |
> USED AT LINE 826 IN basic.a09 | |
> USED AT LINE 830 IN basic.a09 | |
SCRTCH: 0014 DEFINED AT LINE 63 IN basic.a09 | |
> USED AT LINE 132 IN basic.a09 | |
> USED AT LINE 160 | |
> USED AT LINE 204 | |
> USED AT LINE 206 IN basic.a09 | |
> USED AT LINE 337 IN basic.a09 | |
> USED AT LINE 338 | |
> USED AT LINE 342 IN basic.a09 | |
> USED AT LINE 349 IN basic.a09 | |
> USED AT LINE 945 | |
> USED AT LINE 959 IN basic.a09 | |
CHAR: 0016 DEFINED AT LINE 64 IN basic.a09 | |
> USED AT LINE 151 IN basic.a09 | |
> USED AT LINE 155 IN basic.a09 | |
> USED AT LINE 181 IN basic.a09 | |
> USED AT LINE 192 IN basic.a09 | |
> USED AT LINE 196 IN basic.a09 | |
> USED AT LINE 203 IN basic.a09 | |
> USED AT LINE 207 IN basic.a09 | |
> USED AT LINE 209 IN basic.a09 | |
> USED AT LINE 335 | |
> USED AT LINE 343 IN basic.a09 | |
> USED AT LINE 345 IN basic.a09 | |
> USED AT LINE 352 | |
> USED AT LINE 903 | |
> USED AT LINE 907 IN basic.a09 | |
> USED AT LINE 911 IN basic.a09 | |
ZONE: 0018 DEFINED AT LINE 65 IN basic.a09 | |
> USED AT LINE 225 IN basic.a09 | |
> USED AT LINE 869 IN basic.a09 | |
> USED AT LINE 1081 | |
MODE: 0019 DEFINED AT LINE 66 IN basic.a09 | |
> USED AT LINE 92 IN basic.a09 | |
> USED AT LINE 98 IN basic.a09 | |
> USED AT LINE 280 IN basic.a09 | |
> USED AT LINE 301 IN basic.a09 | |
RESRVD: 001A DEFINED AT LINE 67 IN basic.a09 | |
LOEND: 001B DEFINED AT LINE 68 IN basic.a09 | |
BASIC: E300 DEFINED AT LINE 76 IN basic.a09 | |
WARMS: E30D DEFINED AT LINE 78 | |
SETUP: E315 DEFINED AT LINE 81 | |
> USED AT LINE 76 IN basic.a09 | |
SET03: E319 DEFINED AT LINE 82 | |
CLEAR: E31F DEFINED AT LINE 84 | |
> USED AT LINE 1067 IN basic.a09 | |
CLR02: E326 DEFINED AT LINE 87 | |
WMS05: E328 DEFINED AT LINE 88 | |
> USED AT LINE 80 IN basic.a09 | |
CMDB: E331 DEFINED AT LINE 91 | |
> USED AT LINE 110 IN basic.a09 | |
> USED AT LINE 255 IN basic.a09 | |
CMDE: E33D DEFINED AT LINE 96 | |
> USED AT LINE 108 IN basic.a09 | |
> USED AT LINE 124 IN basic.a09 | |
CMD01: E34B DEFINED AT LINE 102 | |
> USED AT LINE 99 IN basic.a09 | |
CMD02: E361 DEFINED AT LINE 111 | |
> USED AT LINE 104 IN basic.a09 | |
CMD03: E36E DEFINED AT LINE 117 | |
> USED AT LINE 115 IN basic.a09 | |
CMD04: E373 DEFINED AT LINE 119 | |
CMD05: E380 DEFINED AT LINE 125 | |
> USED AT LINE 105 IN basic.a09 | |
> USED AT LINE 118 IN basic.a09 | |
> USED AT LINE 122 IN basic.a09 | |
VSTR: E383 DEFINED AT LINE 126 | |
EDITOR: E38E DEFINED AT LINE 130 | |
> USED AT LINE 123 IN basic.a09 | |
ED00: E3A2 DEFINED AT LINE 139 | |
> USED AT LINE 136 IN basic.a09 | |
ED01: E3A4 DEFINED AT LINE 140 | |
> USED AT LINE 138 IN basic.a09 | |
ED02: E3AF DEFINED AT LINE 145 | |
> USED AT LINE 147 IN basic.a09 | |
ED03: E3B5 DEFINED AT LINE 148 | |
> USED AT LINE 156 IN basic.a09 | |
ED35: E3C7 DEFINED AT LINE 157 | |
> USED AT LINE 149 IN basic.a09 | |
ED04: E3CD DEFINED AT LINE 160 | |
> USED AT LINE 142 IN basic.a09 | |
ED05: E3D1 DEFINED AT LINE 162 | |
> USED AT LINE 165 IN basic.a09 | |
ED55: E3DE DEFINED AT LINE 170 | |
> USED AT LINE 167 IN basic.a09 | |
ED06: E3E2 DEFINED AT LINE 172 | |
> USED AT LINE 176 IN basic.a09 | |
ED07: E406 DEFINED AT LINE 190 | |
> USED AT LINE 186 IN basic.a09 | |
ED08: E408 DEFINED AT LINE 191 | |
> USED AT LINE 199 IN basic.a09 | |
ED09: E41A DEFINED AT LINE 200 | |
> USED AT LINE 194 IN basic.a09 | |
ED10: E422 DEFINED AT LINE 204 | |
> USED AT LINE 211 IN basic.a09 | |
PUTS01: E433 DEFINED AT LINE 215 | |
> USED AT LINE 219 IN basic.a09 | |
PUTSTR: E438 DEFINED AT LINE 217 | |
> USED AT LINE 90 IN basic.a09 | |
> USED AT LINE 224 IN basic.a09 | |
> USED AT LINE 253 IN basic.a09 | |
> USED AT LINE 942 IN basic.a09 | |
> USED AT LINE 1012 IN basic.a09 | |
CRLF: E43F DEFINED AT LINE 223 | |
> USED AT LINE 88 | |
> USED AT LINE 93 IN basic.a09 | |
> USED AT LINE 245 | |
> USED AT LINE 254 IN basic.a09 | |
> USED AT LINE 258 | |
> USED AT LINE 285 IN basic.a09 | |
> USED AT LINE 863 IN basic.a09 | |
> USED AT LINE 943 IN basic.a09 | |
> USED AT LINE 1015 IN basic.a09 | |
CRLFST: E447 DEFINED AT LINE 227 | |
ERRORF: E44E DEFINED AT LINE 230 | |
> USED AT LINE 189 IN basic.a09 | |
> USED AT LINE 756 IN basic.a09 | |
> USED AT LINE 823 IN basic.a09 | |
ERRORS: E456 DEFINED AT LINE 233 | |
> USED AT LINE 125 | |
> USED AT LINE 419 | |
> USED AT LINE 539 IN basic.a09 | |
> USED AT LINE 751 | |
> USED AT LINE 777 IN basic.a09 | |
> USED AT LINE 785 IN basic.a09 | |
> USED AT LINE 790 IN basic.a09 | |
> USED AT LINE 861 IN basic.a09 | |
> USED AT LINE 883 IN basic.a09 | |
> USED AT LINE 956 | |
> USED AT LINE 994 IN basic.a09 | |
ERRORR: E45F DEFINED AT LINE 236 | |
> USED AT LINE 116 IN basic.a09 | |
> USED AT LINE 315 IN basic.a09 | |
> USED AT LINE 820 | |
BREAK: E467 DEFINED AT LINE 239 | |
> USED AT LINE 1079 IN basic.a09 | |
ER01: E474 DEFINED AT LINE 245 | |
> USED AT LINE 230 | |
> USED AT LINE 233 | |
> USED AT LINE 236 | |
> USED AT LINE 239 | |
GL00: E48E DEFINED AT LINE 258 | |
> USED AT LINE 275 IN basic.a09 | |
GETLIN: E490 DEFINED AT LINE 259 | |
> USED AT LINE 102 | |
> USED AT LINE 935 IN basic.a09 | |
GL03: E493 DEFINED AT LINE 260 | |
> USED AT LINE 264 IN basic.a09 | |
> USED AT LINE 271 IN basic.a09 | |
> USED AT LINE 279 IN basic.a09 | |
> USED AT LINE 292 IN basic.a09 | |
GL04: E4A7 DEFINED AT LINE 269 | |
> USED AT LINE 266 IN basic.a09 | |
GL02: E4A9 DEFINED AT LINE 270 | |
> USED AT LINE 268 IN basic.a09 | |
> USED AT LINE 299 IN basic.a09 | |
> USED AT LINE 302 IN basic.a09 | |
GL05: E4AE DEFINED AT LINE 272 | |
> USED AT LINE 262 IN basic.a09 | |
GL06: E4C7 DEFINED AT LINE 284 | |
> USED AT LINE 281 IN basic.a09 | |
GL08: E4CE DEFINED AT LINE 287 | |
> USED AT LINE 283 IN basic.a09 | |
GL07: E4D6 DEFINED AT LINE 291 | |
> USED AT LINE 273 IN basic.a09 | |
GL09: E4EB DEFINED AT LINE 300 | |
> USED AT LINE 277 IN basic.a09 | |
REM00: E4F1 DEFINED AT LINE 305 | |
> USED AT LINE 308 IN basic.a09 | |
REM: E4F3 DEFINED AT LINE 306 | |
> USED AT LINE 805 IN basic.a09 | |
> USED AT LINE 1052 IN basic.a09 | |
ENDSMT: E4F9 DEFINED AT LINE 309 | |
> USED AT LINE 952 IN basic.a09 | |
ENDS02: E4FC DEFINED AT LINE 310 | |
> USED AT LINE 547 IN basic.a09 | |
> USED AT LINE 798 IN basic.a09 | |
> USED AT LINE 832 IN basic.a09 | |
> USED AT LINE 876 IN basic.a09 | |
> USED AT LINE 1023 IN basic.a09 | |
REM05: E502 DEFINED AT LINE 313 | |
> USED AT LINE 975 IN basic.a09 | |
NXTLIN: E509 DEFINED AT LINE 316 | |
> USED AT LINE 314 IN basic.a09 | |
> USED AT LINE 812 IN basic.a09 | |
> USED AT LINE 828 IN basic.a09 | |
MSLINE: E50D DEFINED AT LINE 318 | |
> USED AT LINE 109 IN basic.a09 | |
> USED AT LINE 804 IN basic.a09 | |
REM09: E516 DEFINED AT LINE 322 | |
> USED AT LINE 312 IN basic.a09 | |
IMPLET: E517 DEFINED AT LINE 323 | |
> USED AT LINE 320 IN basic.a09 | |
IFAN: E51A DEFINED AT LINE 326 | |
> USED AT LINE 319 IN basic.a09 | |
FAN00: E521 DEFINED AT LINE 329 IN basic.a09 | |
> USED AT LINE 357 IN basic.a09 | |
> USED AT LINE 553 IN basic.a09 | |
FAN04: E52C DEFINED AT LINE 335 | |
> USED AT LINE 331 IN basic.a09 | |
FAN05: E532 DEFINED AT LINE 338 | |
> USED AT LINE 347 IN basic.a09 | |
FAN07: E54D DEFINED AT LINE 352 | |
> USED AT LINE 340 IN basic.a09 | |
FAN08: E54F DEFINED AT LINE 353 | |
> USED AT LINE 355 IN basic.a09 | |
NXTNSP: E559 DEFINED AT LINE 360 | |
> USED AT LINE 363 IN basic.a09 | |
SKIPSP: E55B DEFINED AT LINE 361 | |
> USED AT LINE 106 IN basic.a09 | |
> USED AT LINE 131 IN basic.a09 | |
> USED AT LINE 306 | |
> USED AT LINE 326 | |
> USED AT LINE 395 | |
> USED AT LINE 413 IN basic.a09 | |
> USED AT LINE 423 IN basic.a09 | |
> USED AT LINE 436 | |
> USED AT LINE 449 | |
> USED AT LINE 536 IN basic.a09 | |
> USED AT LINE 550 | |
> USED AT LINE 598 IN basic.a09 | |
> USED AT LINE 605 IN basic.a09 | |
> USED AT LINE 615 IN basic.a09 | |
> USED AT LINE 646 IN basic.a09 | |
> USED AT LINE 655 IN basic.a09 | |
> USED AT LINE 672 | |
> USED AT LINE 745 IN basic.a09 | |
> USED AT LINE 757 | |
> USED AT LINE 774 IN basic.a09 | |
> USED AT LINE 787 IN basic.a09 | |
> USED AT LINE 838 | |
> USED AT LINE 854 | |
> USED AT LINE 872 IN basic.a09 | |
> USED AT LINE 936 | |
> USED AT LINE 949 IN basic.a09 | |
> USED AT LINE 960 IN basic.a09 | |
> USED AT LINE 986 IN basic.a09 | |
TSTHEX: E562 DEFINED AT LINE 367 | |
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)