mirror of
https://github.com/mist64/msbasic.git
synced 2024-09-21 02:27:33 +00:00
microtan work
This commit is contained in:
parent
8334c8b86a
commit
560815ec48
@ -3,5 +3,5 @@ Commodore BASIC 1 1977 Y Y CBM
|
|||||||
OSI BASIC 1977 1.0 REV 3.2 Y N -
|
OSI BASIC 1977 1.0 REV 3.2 Y N -
|
||||||
AppleSoft I 1977 1.1 N Y Apple CONFIG_11
|
AppleSoft I 1977 1.1 N Y Apple CONFIG_11
|
||||||
KIM BASIC 1977 1.1 N Y - CONFIG_11A
|
KIM BASIC 1977 1.1 N Y - CONFIG_11A
|
||||||
Commodore BASIC 2 1979 Y Y CBM
|
Commodore BASIC 2 1979 Y Y CBM CONFIG_2
|
||||||
KBD BASIC 1980 Y N KBD
|
KBD BASIC 1980 Y N KBD
|
||||||
|
4
array.s
4
array.s
@ -28,7 +28,7 @@ NEG32768:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
MAKINT:
|
MAKINT:
|
||||||
jsr CHRGET
|
jsr CHRGET
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
jsr FRMEVL
|
jsr FRMEVL
|
||||||
.else
|
.else
|
||||||
jsr FRMNUM
|
jsr FRMNUM
|
||||||
@ -39,7 +39,7 @@ MAKINT:
|
|||||||
; MUST BE POSITIVE AND LESS THAN 32768
|
; MUST BE POSITIVE AND LESS THAN 32768
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
MKINT:
|
MKINT:
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
jsr CHKNUM
|
jsr CHKNUM
|
||||||
.endif
|
.endif
|
||||||
lda FACSIGN
|
lda FACSIGN
|
||||||
|
@ -16,6 +16,9 @@ CBM2 := 1
|
|||||||
.elseif .def(kbdbasic)
|
.elseif .def(kbdbasic)
|
||||||
KBD := 1
|
KBD := 1
|
||||||
.include "defines_kbd.s"
|
.include "defines_kbd.s"
|
||||||
|
.elseif .def(microtan)
|
||||||
|
MICROTAN := 1
|
||||||
|
.include "defines_microtan.s"
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.ifdef CONFIG_SMALL
|
.ifdef CONFIG_SMALL
|
||||||
|
@ -13,7 +13,9 @@ CONFIG_INPUTBUFFER_ORDER := 1 ; ldx/ldy or ldy/ldx
|
|||||||
CONFIG_CBM_ALL := 1
|
CONFIG_CBM_ALL := 1
|
||||||
CONFIG_11 := 1
|
CONFIG_11 := 1
|
||||||
CONFIG_11A := 1
|
CONFIG_11A := 1
|
||||||
|
CONFIG_2 := 1
|
||||||
CBM2_KBD := 1
|
CBM2_KBD := 1
|
||||||
|
CBM2_MICROTAN := 1
|
||||||
CBM2_KIM := 1
|
CBM2_KIM := 1
|
||||||
CBM2_APPLE := 1
|
CBM2_APPLE := 1
|
||||||
CBM2_KIM_APPLE := 1 ; OUTDO difference
|
CBM2_KIM_APPLE := 1 ; OUTDO difference
|
||||||
@ -25,6 +27,7 @@ CONFIG_DATAFLAG := 1
|
|||||||
; common:
|
; common:
|
||||||
CONFIG_FILE := 1; support PRINT#, INPUT#, GET#, CMD
|
CONFIG_FILE := 1; support PRINT#, INPUT#, GET#, CMD
|
||||||
CONFIG_NO_CR := 1; terminal doesn't need explicit CRs on line ends
|
CONFIG_NO_CR := 1; terminal doesn't need explicit CRs on line ends
|
||||||
|
CONFIG_NO_LINE_EDITING := 1; support for "@", "_", BEL etc.
|
||||||
|
|
||||||
CRLF_1 := $0D
|
CRLF_1 := $0D
|
||||||
CRLF_2 := $0A
|
CRLF_2 := $0A
|
||||||
@ -94,6 +97,7 @@ Z18 := $0007
|
|||||||
GOGIVEAYF := $0008
|
GOGIVEAYF := $0008
|
||||||
Z03 := $000E;3 ; same
|
Z03 := $000E;3 ; same
|
||||||
LINNUM := $0011;0008
|
LINNUM := $0011;0008
|
||||||
|
|
||||||
Z96 := $00E8-82
|
Z96 := $00E8-82
|
||||||
POSX := $0118-82
|
POSX := $0118-82
|
||||||
TXPSV = LASTOP
|
TXPSV = LASTOP
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
CONFIG_SCRTCH_ORDER := 1
|
CONFIG_SCRTCH_ORDER := 1
|
||||||
CONFIG_SMALL := 1
|
CONFIG_SMALL := 1
|
||||||
|
CONFIG_2 := 1
|
||||||
CBM2_KBD := 1
|
CBM2_KBD := 1
|
||||||
KIM_KBD := 1
|
KIM_KBD := 1
|
||||||
CONFIG_11 := 1
|
CONFIG_11 := 1
|
||||||
|
62
defines_microtan.s
Normal file
62
defines_microtan.s
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
KIM_KBD := 1
|
||||||
|
CONFIG_11 := 1
|
||||||
|
CONFIG_11A := 1
|
||||||
|
CONFIG_SAFE_NAMENOTFOUND := 1
|
||||||
|
CBM2_KIM_APPLE := 1 ; OUTDO difference
|
||||||
|
KIM_APPLE := 1
|
||||||
|
CBM2_MICROTAN := 1
|
||||||
|
|
||||||
|
CONFIG_2 := 1
|
||||||
|
|
||||||
|
CONFIG_NULL := 1
|
||||||
|
CONFIG_PRINT_CR := 1 ; print CR when line end reached
|
||||||
|
|
||||||
|
CRLF_1 := $0D
|
||||||
|
CRLF_2 := $0A
|
||||||
|
|
||||||
|
ZP_START = $85
|
||||||
|
|
||||||
|
JMPADRS = DSCLEN + 1
|
||||||
|
LOWTRX = LOWTR
|
||||||
|
|
||||||
|
Z00 := $0000
|
||||||
|
L0001 := $0001
|
||||||
|
L0002 := $0002
|
||||||
|
GOWARM := $0003
|
||||||
|
GOSTROUT := $0006
|
||||||
|
GOGIVEAYF := $0008
|
||||||
|
|
||||||
|
CHARAC := $000A+$1A
|
||||||
|
ENDCHR := $000B+$1A
|
||||||
|
EOLPNTR := $000C+$1A
|
||||||
|
DIMFLG := $000D+$1A
|
||||||
|
VALTYP := $000E+$1A
|
||||||
|
DATAFLG := $0010+$1A
|
||||||
|
SUBFLG := $0011+$1A
|
||||||
|
INPUTFLG := $0012+$1A
|
||||||
|
CPRMASK := $0013+$1A
|
||||||
|
Z14 := $0014+$1A ; Ctrl+O flag
|
||||||
|
Z15 := $0015+$1A
|
||||||
|
POSX := $0016+$1A
|
||||||
|
Z17 := $0017+$1A
|
||||||
|
Z18 := $0018+$1A
|
||||||
|
LINNUM := $0019+$1A
|
||||||
|
TXPSV := $0019+$1A
|
||||||
|
INPUTBUFFER := $001B+$1A
|
||||||
|
INPUTBUFFERX := $0000
|
||||||
|
|
||||||
|
L1800 := $1800
|
||||||
|
L1873 := $1873
|
||||||
|
MONRDKEY := $1E5A
|
||||||
|
MONCOUT := $1EA0
|
||||||
|
|
||||||
|
STACK_TOP := $FE
|
||||||
|
SPACE_FOR_GOSUB := $3E
|
||||||
|
NULL_MAX := $F2 ; probably different in original version; the image I have seems to be modified; see PDF
|
||||||
|
|
||||||
|
|
||||||
|
RAMSTART2 := $AAAA
|
||||||
|
USR := $AAAA
|
||||||
|
SAVE := $AAAA
|
||||||
|
LOAD := $AAAA
|
||||||
|
LE21C := $AAAA
|
4
eval.s
4
eval.s
@ -19,14 +19,14 @@ GERR:
|
|||||||
beq JERROR
|
beq JERROR
|
||||||
NEXT3:
|
NEXT3:
|
||||||
txs
|
txs
|
||||||
.ifndef CBM2_KBD
|
.ifndef CONFIG_2
|
||||||
inx
|
inx
|
||||||
inx
|
inx
|
||||||
inx
|
inx
|
||||||
inx
|
inx
|
||||||
.endif
|
.endif
|
||||||
txa
|
txa
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
clc
|
clc
|
||||||
adc #$04
|
adc #$04
|
||||||
pha
|
pha
|
||||||
|
2
float.s
2
float.s
@ -1683,7 +1683,7 @@ DECTBL_END:
|
|||||||
.byte $FF,$FF,$FD,$A8
|
.byte $FF,$FF,$FD,$A8
|
||||||
.byte $00,$00,$00,$3C
|
.byte $00,$00,$00,$3C
|
||||||
.endif
|
.endif
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
C_ZERO = CON_HALF + 2
|
C_ZERO = CON_HALF + 2
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
14
flow.s
14
flow.s
@ -82,13 +82,13 @@ NEWSTT:
|
|||||||
jsr ISCNTC
|
jsr ISCNTC
|
||||||
lda TXTPTR
|
lda TXTPTR
|
||||||
ldy TXTPTR+1
|
ldy TXTPTR+1
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
cpy #>INPUTBUFFER
|
cpy #>INPUTBUFFER
|
||||||
.endif
|
.endif
|
||||||
.ifdef CBM2
|
.ifdef CBM2
|
||||||
nop
|
nop
|
||||||
.endif
|
.endif
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
beq LC6D4
|
beq LC6D4
|
||||||
.else
|
.else
|
||||||
beq L2683
|
beq L2683
|
||||||
@ -112,7 +112,7 @@ LA5DC:
|
|||||||
ldy #$02
|
ldy #$02
|
||||||
lda (TXTPTR),y
|
lda (TXTPTR),y
|
||||||
clc
|
clc
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
jeq L2701
|
jeq L2701
|
||||||
.else
|
.else
|
||||||
beq L2701
|
beq L2701
|
||||||
@ -156,7 +156,7 @@ EXECUTE_STATEMENT1:
|
|||||||
bcc LET1
|
bcc LET1
|
||||||
.endif
|
.endif
|
||||||
cmp #NUM_TOKENS
|
cmp #NUM_TOKENS
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
bcs LC721
|
bcs LC721
|
||||||
.else
|
.else
|
||||||
bcs SYNERR1
|
bcs SYNERR1
|
||||||
@ -177,7 +177,7 @@ COLON:
|
|||||||
SYNERR1:
|
SYNERR1:
|
||||||
jmp SYNERR
|
jmp SYNERR
|
||||||
.endif
|
.endif
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
LC721:
|
LC721:
|
||||||
.ifdef KBD
|
.ifdef KBD
|
||||||
cmp #$45
|
cmp #$45
|
||||||
@ -267,7 +267,7 @@ END2:
|
|||||||
bne RET1
|
bne RET1
|
||||||
lda TXTPTR
|
lda TXTPTR
|
||||||
ldy TXTPTR+1
|
ldy TXTPTR+1
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
ldx CURLIN+1
|
ldx CURLIN+1
|
||||||
inx
|
inx
|
||||||
.endif
|
.endif
|
||||||
@ -444,7 +444,7 @@ L281E:
|
|||||||
POP:
|
POP:
|
||||||
bne L281E
|
bne L281E
|
||||||
lda #$FF
|
lda #$FF
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
sta FORPNT+1 ; bugfix, wrong in AppleSoft
|
sta FORPNT+1 ; bugfix, wrong in AppleSoft
|
||||||
.else
|
.else
|
||||||
sta FORPNT
|
sta FORPNT
|
||||||
|
22
init.s
22
init.s
@ -95,7 +95,7 @@ COLD_START2:
|
|||||||
.endif
|
.endif
|
||||||
sta Z18
|
sta Z18
|
||||||
.endif
|
.endif
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
lda #$28
|
lda #$28
|
||||||
sta $0F
|
sta $0F
|
||||||
lda #$1E
|
lda #$1E
|
||||||
@ -116,7 +116,7 @@ L4098:
|
|||||||
sta STRNG2+1,x
|
sta STRNG2+1,x
|
||||||
dex
|
dex
|
||||||
bne L4098
|
bne L4098
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
lda #$03
|
lda #$03
|
||||||
sta DSCLEN
|
sta DSCLEN
|
||||||
.endif
|
.endif
|
||||||
@ -135,7 +135,7 @@ L4098:
|
|||||||
.endif
|
.endif
|
||||||
pha
|
pha
|
||||||
sta Z14
|
sta Z14
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
inx
|
inx
|
||||||
stx $01FD
|
stx $01FD
|
||||||
stx $01FC
|
stx $01FC
|
||||||
@ -172,17 +172,17 @@ L4098:
|
|||||||
tay
|
tay
|
||||||
bne L40EE
|
bne L40EE
|
||||||
.endif
|
.endif
|
||||||
.ifndef CBM2_KBD
|
.ifndef CONFIG_2
|
||||||
lda #<RAMSTART2
|
lda #<RAMSTART2
|
||||||
.endif
|
.endif
|
||||||
ldy #>RAMSTART2
|
ldy #>RAMSTART2
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
sta $28
|
sta $28
|
||||||
sty $29
|
sty $29
|
||||||
.endif
|
.endif
|
||||||
sta LINNUM
|
sta LINNUM
|
||||||
sty LINNUM+1
|
sty LINNUM+1
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
tay
|
tay
|
||||||
.else
|
.else
|
||||||
ldy #$00
|
ldy #$00
|
||||||
@ -196,11 +196,11 @@ L40D7:
|
|||||||
cmp #$80
|
cmp #$80
|
||||||
beq L40FA
|
beq L40FA
|
||||||
.endif
|
.endif
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
bmi L40FA
|
bmi L40FA
|
||||||
.endif
|
.endif
|
||||||
L40DD:
|
L40DD:
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
lda #$55
|
lda #$55
|
||||||
.else
|
.else
|
||||||
lda #$92
|
lda #$92
|
||||||
@ -317,7 +317,7 @@ L4183:
|
|||||||
tya
|
tya
|
||||||
sta (TXTTAB),y
|
sta (TXTTAB),y
|
||||||
inc TXTTAB
|
inc TXTTAB
|
||||||
.ifndef CBM2_KBD
|
.ifndef CONFIG_2
|
||||||
bne L4192
|
bne L4192
|
||||||
inc TXTTAB+1
|
inc TXTTAB+1
|
||||||
L4192:
|
L4192:
|
||||||
@ -325,7 +325,7 @@ L4192:
|
|||||||
lda TXTTAB
|
lda TXTTAB
|
||||||
ldy TXTTAB+1
|
ldy TXTTAB+1
|
||||||
jsr REASON
|
jsr REASON
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
lda #<QT_BASIC
|
lda #<QT_BASIC
|
||||||
ldy #>QT_BASIC
|
ldy #>QT_BASIC
|
||||||
jsr STROUT
|
jsr STROUT
|
||||||
@ -392,7 +392,7 @@ QT_BYTES_FREE:
|
|||||||
.ifndef CBM_APPLE
|
.ifndef CBM_APPLE
|
||||||
.byte $0D,$0A,$0D,$0A
|
.byte $0D,$0A,$0D,$0A
|
||||||
.endif
|
.endif
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
.byte $0D,$00
|
.byte $0D,$00
|
||||||
.endif
|
.endif
|
||||||
.ifdef APPLE
|
.ifdef APPLE
|
||||||
|
2
input.s
2
input.s
@ -186,7 +186,7 @@ GETC:
|
|||||||
READ:
|
READ:
|
||||||
ldx DATPTR
|
ldx DATPTR
|
||||||
ldy DATPTR+1
|
ldy DATPTR+1
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
lda #$98 ; AppleSoft, too
|
lda #$98 ; AppleSoft, too
|
||||||
.byte $2C
|
.byte $2C
|
||||||
L2ABE:
|
L2ABE:
|
||||||
|
2
make.sh
2
make.sh
@ -1,5 +1,5 @@
|
|||||||
# 1.0
|
# 1.0
|
||||||
for i in cbmbasic1 cbmbasic2 kbdbasic osi kb9 applesoft; do
|
for i in cbmbasic1 cbmbasic2 kbdbasic osi kb9 applesoft microtan; do
|
||||||
|
|
||||||
echo $i
|
echo $i
|
||||||
ca65 -D $i msbasic.s -o tmp/$i.o &&
|
ca65 -D $i msbasic.s -o tmp/$i.o &&
|
||||||
|
@ -47,6 +47,9 @@ QT_BREAK:
|
|||||||
.byte $54,$D0 ; ???
|
.byte $54,$D0 ; ???
|
||||||
.else
|
.else
|
||||||
.byte $0D,$0A
|
.byte $0D,$0A
|
||||||
|
.ifdef MICROTAN
|
||||||
|
.byte " "
|
||||||
|
.endif
|
||||||
.byte "BREAK"
|
.byte "BREAK"
|
||||||
.byte $00
|
.byte $00
|
||||||
.endif
|
.endif
|
||||||
|
19
microtan.cfg
Normal file
19
microtan.cfg
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
MEMORY {
|
||||||
|
ZP: start = $0000, size = $0100, type = rw;
|
||||||
|
BASROM: start = $C000, size = $3F00, fill = no, file = %O;
|
||||||
|
DUMMY: start = $0000, size = $00FF, file = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
SEGMENTS {
|
||||||
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
|
HEADER: load = BASROM, type = ro;
|
||||||
|
VECTORS: load = BASROM, type = ro;
|
||||||
|
KEYWORDS: load = BASROM, type = ro;
|
||||||
|
ERROR: load = BASROM, type = ro;
|
||||||
|
CODE: load = BASROM, type = ro;
|
||||||
|
CHRGET: load = BASROM, type = ro;
|
||||||
|
INIT: load = BASROM, type = ro;
|
||||||
|
EXTRA: load = BASROM, type = ro;
|
||||||
|
DUMMY: load = DUMMY; # don't include
|
||||||
|
}
|
||||||
|
|
8
misc2.s
8
misc2.s
@ -49,7 +49,7 @@ ERRDIR:
|
|||||||
inx
|
inx
|
||||||
bne RTS9
|
bne RTS9
|
||||||
ldx #ERR_ILLDIR
|
ldx #ERR_ILLDIR
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
.byte $2C
|
.byte $2C
|
||||||
LD288:
|
LD288:
|
||||||
ldx #ERR_UNDEFFN
|
ldx #ERR_UNDEFFN
|
||||||
@ -102,18 +102,18 @@ L31F3:
|
|||||||
pla
|
pla
|
||||||
sta FNCNAM+1
|
sta FNCNAM+1
|
||||||
ldy #$02
|
ldy #$02
|
||||||
.ifndef CBM2_KBD
|
.ifndef CONFIG_2
|
||||||
ldx #ERR_UNDEFFN
|
ldx #ERR_UNDEFFN
|
||||||
.endif
|
.endif
|
||||||
lda (FNCNAM),y
|
lda (FNCNAM),y
|
||||||
.ifndef CBM2_KBD
|
.ifndef CONFIG_2
|
||||||
beq L31AF
|
beq L31AF
|
||||||
.endif
|
.endif
|
||||||
sta VARPNT
|
sta VARPNT
|
||||||
tax
|
tax
|
||||||
iny
|
iny
|
||||||
lda (FNCNAM),y
|
lda (FNCNAM),y
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
beq LD288
|
beq LD288
|
||||||
.endif
|
.endif
|
||||||
sta VARPNT+1
|
sta VARPNT+1
|
||||||
|
BIN
orig/microtan.bin
Normal file
BIN
orig/microtan.bin
Normal file
Binary file not shown.
8
print.s
8
print.s
@ -15,7 +15,7 @@ PRINT2:
|
|||||||
cmp #TOKEN_TAB
|
cmp #TOKEN_TAB
|
||||||
beq L29F5
|
beq L29F5
|
||||||
cmp #TOKEN_SPC
|
cmp #TOKEN_SPC
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
clc ; also AppleSoft II
|
clc ; also AppleSoft II
|
||||||
.endif
|
.endif
|
||||||
beq L29F5
|
beq L29F5
|
||||||
@ -185,7 +185,7 @@ L29F5:
|
|||||||
jsr GTBYTC
|
jsr GTBYTC
|
||||||
cmp #')'
|
cmp #')'
|
||||||
.ifdef CONFIG_11A
|
.ifdef CONFIG_11A
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
bne SYNERR4
|
bne SYNERR4
|
||||||
.else
|
.else
|
||||||
jne SYNERR
|
jne SYNERR
|
||||||
@ -289,7 +289,7 @@ OUTDO:
|
|||||||
bit Z14
|
bit Z14
|
||||||
bmi L2A56
|
bmi L2A56
|
||||||
.endif
|
.endif
|
||||||
.ifndef CBM2_KBD
|
.ifndef CONFIG_2
|
||||||
pha
|
pha
|
||||||
.endif
|
.endif
|
||||||
.ifdef CBM1
|
.ifdef CBM1
|
||||||
@ -335,7 +335,7 @@ L2A4C:
|
|||||||
inc POSX
|
inc POSX
|
||||||
.endif
|
.endif
|
||||||
L2A4E:
|
L2A4E:
|
||||||
.ifndef CBM2_KBD
|
.ifndef CONFIG_2
|
||||||
pla
|
pla
|
||||||
.endif
|
.endif
|
||||||
.ifdef KIM
|
.ifdef KIM
|
||||||
|
69
program.s
69
program.s
@ -202,7 +202,7 @@ L23AD:
|
|||||||
.endif
|
.endif
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
PUT_NEW_LINE:
|
PUT_NEW_LINE:
|
||||||
.ifdef CBM2
|
.ifdef CBM2_MICROTAN
|
||||||
jsr SETPTRS
|
jsr SETPTRS
|
||||||
jsr LE33D
|
jsr LE33D
|
||||||
lda INPUTBUFFER
|
lda INPUTBUFFER
|
||||||
@ -254,7 +254,7 @@ L23E6:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
FIX_LINKS:
|
FIX_LINKS:
|
||||||
jsr SETPTRS
|
jsr SETPTRS
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
jsr LE33D
|
jsr LE33D
|
||||||
jmp L2351
|
jmp L2351
|
||||||
LE33D:
|
LE33D:
|
||||||
@ -267,7 +267,7 @@ LE33D:
|
|||||||
L23FA:
|
L23FA:
|
||||||
ldy #$01
|
ldy #$01
|
||||||
lda (INDEX),y
|
lda (INDEX),y
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
beq RET3
|
beq RET3
|
||||||
.else
|
.else
|
||||||
bne L2403
|
bne L2403
|
||||||
@ -334,12 +334,12 @@ RET3:
|
|||||||
rts
|
rts
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.ifdef CBM2
|
.ifdef CBM2_MICROTAN
|
||||||
RET3:
|
RET3:
|
||||||
rts
|
rts
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if .def(CBM1) || .def(OSI) || .def(KIM)
|
.if .def(CBM1) || .def(OSI) || .def(KIM) || .def(MICROTAN)
|
||||||
L2420:
|
L2420:
|
||||||
.ifdef OSI
|
.ifdef OSI
|
||||||
jsr OUTDO
|
jsr OUTDO
|
||||||
@ -380,23 +380,35 @@ L0C32:
|
|||||||
ldx #$00
|
ldx #$00
|
||||||
INLIN2:
|
INLIN2:
|
||||||
jsr GETLN
|
jsr GETLN
|
||||||
.ifndef CONFIG_CBM_ALL
|
.ifndef CONFIG_NO_LINE_EDITING
|
||||||
cmp #$07
|
cmp #$07
|
||||||
beq L2443
|
beq L2443
|
||||||
.endif
|
.endif
|
||||||
cmp #$0D
|
cmp #$0D
|
||||||
beq L2453
|
beq L2453
|
||||||
.ifndef CONFIG_CBM_ALL
|
.ifndef CONFIG_NO_LINE_EDITING
|
||||||
cmp #$20 ; line editing
|
cmp #$20 ; line editing
|
||||||
bcc INLIN2
|
bcc INLIN2
|
||||||
|
.ifdef MICROTAN
|
||||||
|
cmp #$80
|
||||||
|
.else
|
||||||
cmp #$7D
|
cmp #$7D
|
||||||
|
.endif
|
||||||
bcs INLIN2
|
bcs INLIN2
|
||||||
cmp #$40 ; @
|
cmp #$40 ; @
|
||||||
beq L2423
|
beq L2423
|
||||||
|
.ifdef MICROTAN
|
||||||
|
cmp #$7F ; _
|
||||||
|
.else
|
||||||
cmp #$5F ; _
|
cmp #$5F ; _
|
||||||
|
.endif
|
||||||
beq L2420
|
beq L2420
|
||||||
L2443:
|
L2443:
|
||||||
|
.ifdef MICROTAN
|
||||||
|
cpx #$4F
|
||||||
|
.else
|
||||||
cpx #$47
|
cpx #$47
|
||||||
|
.endif
|
||||||
bcs L244C
|
bcs L244C
|
||||||
.endif
|
.endif
|
||||||
sta INPUTBUFFER,x
|
sta INPUTBUFFER,x
|
||||||
@ -407,7 +419,7 @@ L2443:
|
|||||||
bne INLIN2
|
bne INLIN2
|
||||||
.endif
|
.endif
|
||||||
L244C:
|
L244C:
|
||||||
.ifndef CONFIG_CBM_ALL
|
.ifndef CONFIG_NO_LINE_EDITING
|
||||||
lda #$07
|
lda #$07
|
||||||
jsr OUTDO
|
jsr OUTDO
|
||||||
bne INLIN2
|
bne INLIN2
|
||||||
@ -420,7 +432,7 @@ L2453:
|
|||||||
.ifndef KBD
|
.ifndef KBD
|
||||||
.ifndef APPLE
|
.ifndef APPLE
|
||||||
GETLN:
|
GETLN:
|
||||||
.ifdef CONFIG_CBM_ALL
|
.ifdef CONFIG_FILE
|
||||||
jsr CHRIN
|
jsr CHRIN
|
||||||
ldy Z03
|
ldy Z03
|
||||||
bne L2465
|
bne L2465
|
||||||
@ -514,7 +526,7 @@ L2498:
|
|||||||
jsr GET_UPPER
|
jsr GET_UPPER
|
||||||
.else
|
.else
|
||||||
lda INPUTBUFFERX,x
|
lda INPUTBUFFERX,x
|
||||||
.ifndef CBM2
|
.ifndef CBM2_MICROTAN
|
||||||
cmp #$20
|
cmp #$20
|
||||||
beq L2497
|
beq L2497
|
||||||
.endif
|
.endif
|
||||||
@ -669,7 +681,7 @@ SCRTCH:
|
|||||||
iny
|
iny
|
||||||
sta (TXTTAB),y
|
sta (TXTTAB),y
|
||||||
lda TXTTAB
|
lda TXTTAB
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
clc
|
clc
|
||||||
.endif
|
.endif
|
||||||
adc #$02
|
adc #$02
|
||||||
@ -716,7 +728,7 @@ STKINI:
|
|||||||
ldx #TEMPST
|
ldx #TEMPST
|
||||||
stx TEMPPT
|
stx TEMPPT
|
||||||
pla
|
pla
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
tay
|
tay
|
||||||
.else
|
.else
|
||||||
.ifdef APPLE
|
.ifdef APPLE
|
||||||
@ -726,7 +738,7 @@ STKINI:
|
|||||||
.endif
|
.endif
|
||||||
.endif
|
.endif
|
||||||
pla
|
pla
|
||||||
.ifndef CBM2_KBD
|
.ifndef CONFIG_2
|
||||||
.ifdef APPLE
|
.ifdef APPLE
|
||||||
sta STACK+250
|
sta STACK+250
|
||||||
.else
|
.else
|
||||||
@ -735,7 +747,7 @@ STKINI:
|
|||||||
.endif
|
.endif
|
||||||
ldx #STACK_TOP
|
ldx #STACK_TOP
|
||||||
txs
|
txs
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
pha
|
pha
|
||||||
tya
|
tya
|
||||||
pha
|
pha
|
||||||
@ -758,6 +770,8 @@ STXTPT:
|
|||||||
adc #$FF
|
adc #$FF
|
||||||
sta TXTPTR+1
|
sta TXTPTR+1
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
; ----------------------------------------------------------------------------
|
||||||
.ifdef KBD
|
.ifdef KBD
|
||||||
LE4C0:
|
LE4C0:
|
||||||
ldy #<LE444
|
ldy #<LE444
|
||||||
@ -778,11 +792,13 @@ LE4D4:
|
|||||||
cmp JMPADRS+1
|
cmp JMPADRS+1
|
||||||
LE4DE:
|
LE4DE:
|
||||||
rts
|
rts
|
||||||
|
.endif
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "LIST" STATEMENT
|
; "LIST" STATEMENT
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
LIST:
|
LIST:
|
||||||
|
.ifdef KBD
|
||||||
jsr LE440
|
jsr LE440
|
||||||
bne LE4DE
|
bne LE4DE
|
||||||
pla
|
pla
|
||||||
@ -790,30 +806,53 @@ LIST:
|
|||||||
L25A6:
|
L25A6:
|
||||||
jsr CRDO
|
jsr CRDO
|
||||||
.else
|
.else
|
||||||
LIST:
|
.ifdef MICROTAN
|
||||||
|
php
|
||||||
|
jmp LE21C
|
||||||
|
LC57E:
|
||||||
|
.else
|
||||||
bcc L2581
|
bcc L2581
|
||||||
beq L2581
|
beq L2581
|
||||||
cmp #TOKEN_MINUS
|
cmp #TOKEN_MINUS
|
||||||
bne L256A
|
bne L256A
|
||||||
L2581:
|
L2581:
|
||||||
jsr LINGET
|
jsr LINGET
|
||||||
|
.endif
|
||||||
jsr FNDLIN
|
jsr FNDLIN
|
||||||
|
.ifdef MICROTAN
|
||||||
|
plp
|
||||||
|
beq LC598
|
||||||
|
.endif
|
||||||
jsr CHRGOT
|
jsr CHRGOT
|
||||||
beq L2598
|
beq L2598
|
||||||
cmp #TOKEN_MINUS
|
cmp #TOKEN_MINUS
|
||||||
bne L2520
|
bne L2520
|
||||||
jsr CHRGET
|
jsr CHRGET
|
||||||
|
.ifdef MICROTAN
|
||||||
|
beq LC598
|
||||||
|
jsr LINGET
|
||||||
|
beq L25A6
|
||||||
|
rts
|
||||||
|
LC598:
|
||||||
|
.else
|
||||||
jsr LINGET
|
jsr LINGET
|
||||||
bne L2520
|
bne L2520
|
||||||
|
.endif
|
||||||
L2598:
|
L2598:
|
||||||
|
.ifndef MICROTAN
|
||||||
pla
|
pla
|
||||||
pla
|
pla
|
||||||
lda LINNUM
|
lda LINNUM
|
||||||
ora LINNUM+1
|
ora LINNUM+1
|
||||||
bne L25A6
|
bne L25A6
|
||||||
|
.endif
|
||||||
lda #$FF
|
lda #$FF
|
||||||
sta LINNUM
|
sta LINNUM
|
||||||
sta LINNUM+1
|
sta LINNUM+1
|
||||||
|
.ifdef MICROTAN
|
||||||
|
pla
|
||||||
|
pla
|
||||||
|
.endif
|
||||||
L25A6:
|
L25A6:
|
||||||
.endif
|
.endif
|
||||||
ldy #$01
|
ldy #$01
|
||||||
|
10
string.s
10
string.s
@ -117,7 +117,7 @@ PUTEMP:
|
|||||||
ldy #$00
|
ldy #$00
|
||||||
stx FAC_LAST-1
|
stx FAC_LAST-1
|
||||||
sty FAC_LAST
|
sty FAC_LAST
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
sty FACEXTENSION
|
sty FACEXTENSION
|
||||||
.endif
|
.endif
|
||||||
dey
|
dey
|
||||||
@ -189,7 +189,7 @@ FINDHIGHESTSTRING:
|
|||||||
sta FRETOP+1
|
sta FRETOP+1
|
||||||
ldy #$00
|
ldy #$00
|
||||||
sty FNCNAM+1
|
sty FNCNAM+1
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
sty FNCNAM
|
sty FNCNAM
|
||||||
.endif
|
.endif
|
||||||
lda STREND
|
lda STREND
|
||||||
@ -356,7 +356,7 @@ L33FA:
|
|||||||
; TO TOP AND GO BACK FOR ANOTHER
|
; TO TOP AND GO BACK FOR ANOTHER
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
MOVE_HIGHEST_STRING_TO_TOP:
|
MOVE_HIGHEST_STRING_TO_TOP:
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
lda FNCNAM+1
|
lda FNCNAM+1
|
||||||
ora FNCNAM
|
ora FNCNAM
|
||||||
.else
|
.else
|
||||||
@ -616,7 +616,7 @@ MIDSTR:
|
|||||||
jsr GETBYT
|
jsr GETBYT
|
||||||
L353F:
|
L353F:
|
||||||
jsr SUBSTRING_SETUP
|
jsr SUBSTRING_SETUP
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
beq GOIQ
|
beq GOIQ
|
||||||
.endif
|
.endif
|
||||||
dex
|
dex
|
||||||
@ -665,7 +665,7 @@ SUBSTRING_SETUP:
|
|||||||
.endif
|
.endif
|
||||||
ldy #$00
|
ldy #$00
|
||||||
txa
|
txa
|
||||||
.ifndef CBM2_KBD
|
.ifndef CONFIG_2
|
||||||
beq GOIQ
|
beq GOIQ
|
||||||
.endif
|
.endif
|
||||||
.ifndef CONFIG_11
|
.ifndef CONFIG_11
|
||||||
|
2
token.s
2
token.s
@ -142,7 +142,7 @@ UNFNC:
|
|||||||
keyword_addr "LEFT$", LEFTSTR, TOKEN_LEFTSTR
|
keyword_addr "LEFT$", LEFTSTR, TOKEN_LEFTSTR
|
||||||
keyword_addr "RIGHT$", RIGHTSTR
|
keyword_addr "RIGHT$", RIGHTSTR
|
||||||
keyword_addr "MID$", MIDSTR
|
keyword_addr "MID$", MIDSTR
|
||||||
.ifdef CBM2_KBD
|
.ifdef CONFIG_2
|
||||||
keyword "GO"
|
keyword "GO"
|
||||||
.endif
|
.endif
|
||||||
.segment "KEYWORDS"
|
.segment "KEYWORDS"
|
||||||
|
2
var.s
2
var.s
@ -155,7 +155,7 @@ LD015:
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
.ifndef CBM2_KBD
|
.ifndef CONFIG_2
|
||||||
C_ZERO:
|
C_ZERO:
|
||||||
.byte $00,$00
|
.byte $00,$00
|
||||||
.endif
|
.endif
|
||||||
|
Loading…
Reference in New Issue
Block a user