Cleanup BASIC sources
This commit is contained in:
1 parent
385de7a111
commit
25236f542d
36 files changed
+53
-2643
No files matched your search
-43
@@ -20,10 +20,7 @@ L2FAF:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
NEG32768:
|
NEG32768:
|
||||||
.byte $90,$80,$00,$00
|
.byte $90,$80,$00,$00
|
||||||
|
|
||||||
.ifdef CONFIG_2C
|
|
||||||
.byte $00; bugfix: short number
|
.byte $00; bugfix: short number
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; EVALUATE NUMERIC FORMULA AT TXTPTR
|
; EVALUATE NUMERIC FORMULA AT TXTPTR
|
||||||
@@ -32,20 +29,14 @@ NEG32768:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
MAKINT:
|
MAKINT:
|
||||||
jsr CHRGET
|
jsr CHRGET
|
||||||
.ifdef CONFIG_2
|
|
||||||
jsr FRMEVL
|
jsr FRMEVL
|
||||||
.else
|
|
||||||
jsr FRMNUM
|
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; CONVERT FAC TO INTEGER
|
; CONVERT FAC TO INTEGER
|
||||||
; MUST BE POSITIVE AND LESS THAN 32768
|
; MUST BE POSITIVE AND LESS THAN 32768
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
MKINT:
|
MKINT:
|
||||||
.ifdef CONFIG_2
|
|
||||||
jsr CHKNUM
|
jsr CHKNUM
|
||||||
.endif
|
|
||||||
lda FACSIGN
|
lda FACSIGN
|
||||||
bmi MI1
|
bmi MI1
|
||||||
|
|
||||||
@@ -70,9 +61,7 @@ MI2:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
ARRAY:
|
ARRAY:
|
||||||
lda DIMFLG
|
lda DIMFLG
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
ora VALTYP+1
|
ora VALTYP+1
|
||||||
.endif
|
|
||||||
pha
|
pha
|
||||||
lda VALTYP
|
lda VALTYP
|
||||||
pha
|
pha
|
||||||
@@ -109,10 +98,8 @@ L2FDE:
|
|||||||
pla
|
pla
|
||||||
sta VALTYP
|
sta VALTYP
|
||||||
pla
|
pla
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
sta VALTYP+1
|
sta VALTYP+1
|
||||||
and #$7F
|
and #$7F
|
||||||
.endif
|
|
||||||
sta DIMFLG
|
sta DIMFLG
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; SEARCH ARRAY TABLE FOR THIS ARRAY NAME
|
; SEARCH ARRAY TABLE FOR THIS ARRAY NAME
|
||||||
@@ -185,28 +172,19 @@ MAKE_NEW_ARRAY:
|
|||||||
tay
|
tay
|
||||||
sta STRNG2+1
|
sta STRNG2+1
|
||||||
ldx #BYTES_PER_ELEMENT
|
ldx #BYTES_PER_ELEMENT
|
||||||
.if .def(CONFIG_SMALL) && (!.def(CONFIG_2))
|
|
||||||
stx STRNG2
|
|
||||||
.endif
|
|
||||||
lda VARNAM
|
lda VARNAM
|
||||||
sta (LOWTR),y
|
sta (LOWTR),y
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
bpl L3078
|
bpl L3078
|
||||||
dex
|
dex
|
||||||
L3078:
|
L3078:
|
||||||
.endif
|
|
||||||
iny
|
iny
|
||||||
lda VARNAM+1
|
lda VARNAM+1
|
||||||
sta (LOWTR),y
|
sta (LOWTR),y
|
||||||
.if (!.def(CONFIG_SMALL)) || .def(CONFIG_2)
|
|
||||||
bpl L3081
|
bpl L3081
|
||||||
dex
|
dex
|
||||||
.if !(.def(CONFIG_SMALL) && .def(CONFIG_2))
|
|
||||||
dex
|
dex
|
||||||
.endif
|
|
||||||
L3081:
|
L3081:
|
||||||
stx STRNG2
|
stx STRNG2
|
||||||
.endif
|
|
||||||
lda EOLPNTR
|
lda EOLPNTR
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
@@ -324,42 +302,21 @@ L3124:
|
|||||||
stx STRNG2
|
stx STRNG2
|
||||||
dec EOLPNTR
|
dec EOLPNTR
|
||||||
bne L30F6
|
bne L30F6
|
||||||
.if .def(CONFIG_SMALL) && (!.def(CONFIG_2))
|
|
||||||
asl STRNG2
|
|
||||||
rol a
|
|
||||||
bcs GSE
|
|
||||||
asl STRNG2
|
|
||||||
rol a
|
|
||||||
bcs GSE
|
|
||||||
tay
|
|
||||||
lda STRNG2
|
|
||||||
.else
|
|
||||||
.ifdef CONFIG_11A
|
|
||||||
sta STRNG2+1
|
sta STRNG2+1
|
||||||
.endif
|
|
||||||
ldx #BYTES_FP
|
ldx #BYTES_FP
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
lda VARNAM+1
|
|
||||||
.else
|
|
||||||
lda VARNAM
|
lda VARNAM
|
||||||
.endif
|
|
||||||
bpl L3135
|
bpl L3135
|
||||||
dex
|
dex
|
||||||
L3135:
|
L3135:
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
stx RESULT+1
|
|
||||||
.else
|
|
||||||
lda VARNAM+1
|
lda VARNAM+1
|
||||||
bpl L313B
|
bpl L313B
|
||||||
dex
|
dex
|
||||||
dex
|
dex
|
||||||
L313B:
|
L313B:
|
||||||
stx RESULT+2
|
stx RESULT+2
|
||||||
.endif
|
|
||||||
lda #$00
|
lda #$00
|
||||||
jsr MULTIPLY_SUBS1
|
jsr MULTIPLY_SUBS1
|
||||||
txa
|
txa
|
||||||
.endif
|
|
||||||
adc HIGHDS
|
adc HIGHDS
|
||||||
sta VARPNT
|
sta VARPNT
|
||||||
tya
|
tya
|
||||||
|
|||||||
+2
-2
@@ -2,5 +2,5 @@ if [ ! -d tmp ]; then
|
|||||||
mkdir tmp
|
mkdir tmp
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ca65 -D kilian msbasic.s -o tmp/kilian.o
|
ca65 msbasic.s -o tmp/rom.o
|
||||||
ld65 -C kilian.cfg tmp/kilian.o -o tmp/kilian.bin -Ln tmp/kilian.lbl
|
ld65 -C config.cfg tmp/rom.o -o tmp/rom.bin -Ln tmp/rom.lbl
|
||||||
@@ -7,9 +7,6 @@ GENERIC_CHRGET:
|
|||||||
GENERIC_CHRGOT:
|
GENERIC_CHRGOT:
|
||||||
GENERIC_TXTPTR = GENERIC_CHRGOT + 1
|
GENERIC_TXTPTR = GENERIC_CHRGOT + 1
|
||||||
lda $EA60
|
lda $EA60
|
||||||
.ifdef KBD
|
|
||||||
jsr LF430
|
|
||||||
.endif
|
|
||||||
cmp #$3A
|
cmp #$3A
|
||||||
bcs L4058
|
bcs L4058
|
||||||
GENERIC_CHRGOT2:
|
GENERIC_CHRGOT2:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: start = $0000, size = $0100, type = rw;
|
ZP: start = $0000, size = $0100, type = rw;
|
||||||
BASROM: start = $C000, size = $3F00, fill = yes, file = %O;
|
BASROM: start = $C000, size = $3F00, fill = yes, file = %O;
|
||||||
WOZMON: start = $FDAA, size = $FA, fill = yes, file = %O;
|
WOZMON: start = $FF00, size = $FA, fill = yes, file = %O;
|
||||||
RESETVEC: start = $FFFA, size = $6, fill = yes, file = %O;
|
RESETVEC: start = $FFFA, size = $6, fill = yes, file = %O;
|
||||||
DUMMY: start = $0000, size = $00FF, file = "";
|
DUMMY: start = $0000, size = $00FF, file = "";
|
||||||
}
|
}
|
||||||
+8
-80
@@ -1,99 +1,27 @@
|
|||||||
.if .def(cbmbasic1)
|
; extra/override ZP variables
|
||||||
CBM1 := 1
|
USR := GORESTART ; XXX
|
||||||
.include "defines_cbm1.s"
|
|
||||||
.elseif .def(osi)
|
|
||||||
OSI := 1
|
|
||||||
.include "defines_osi.s"
|
|
||||||
.elseif .def(applesoft)
|
|
||||||
APPLE := 1
|
|
||||||
.include "defines_apple.s"
|
|
||||||
.elseif .def(kb9)
|
|
||||||
KIM := 1
|
|
||||||
.include "defines_kim.s"
|
|
||||||
.elseif .def(cbmbasic2)
|
|
||||||
CBM2 := 1
|
|
||||||
.include "defines_cbm2.s"
|
|
||||||
.elseif .def(kbdbasic)
|
|
||||||
KBD := 1
|
|
||||||
.include "defines_kbd.s"
|
|
||||||
.elseif .def(microtan)
|
|
||||||
MICROTAN := 1
|
|
||||||
.include "defines_microtan.s"
|
|
||||||
.elseif .def(aim65)
|
|
||||||
AIM65 := 1
|
|
||||||
.include "defines_aim65.s"
|
|
||||||
.elseif .def(sym1)
|
|
||||||
SYM1 := 1
|
|
||||||
.include "defines_sym1.s"
|
|
||||||
.elseif .def(w65c816sxb)
|
|
||||||
W65C816SXB := 1
|
|
||||||
.include "defines_w65c816sxb.s"
|
|
||||||
.elseif .def(kilian)
|
|
||||||
KILIAN := 1
|
|
||||||
.include "defines_kilian.s"
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef CONFIG_2C
|
; constants
|
||||||
CONFIG_2B := 1
|
SPACE_FOR_GOSUB := $3E
|
||||||
.endif
|
STACK_TOP := $FA
|
||||||
.ifdef CONFIG_2B
|
WIDTH := 80
|
||||||
CONFIG_2A := 1
|
WIDTH2 := 30
|
||||||
.endif
|
RAMSTART2 := $0400
|
||||||
.ifdef CONFIG_2A
|
|
||||||
CONFIG_2 := 1
|
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_2
|
|
||||||
CONFIG_11A := 1
|
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_11A
|
|
||||||
CONFIG_11 := 1
|
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_11
|
|
||||||
CONFIG_10A := 1
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
BYTES_FP := 4
|
|
||||||
CONFIG_SMALL_ERROR := 1
|
|
||||||
.else
|
|
||||||
BYTES_FP := 5
|
BYTES_FP := 5
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifndef BYTES_PER_ELEMENT
|
|
||||||
BYTES_PER_ELEMENT := BYTES_FP
|
BYTES_PER_ELEMENT := BYTES_FP
|
||||||
.endif
|
|
||||||
BYTES_PER_VARIABLE := BYTES_FP+2
|
BYTES_PER_VARIABLE := BYTES_FP+2
|
||||||
MANTISSA_BYTES := BYTES_FP-1
|
MANTISSA_BYTES := BYTES_FP-1
|
||||||
BYTES_PER_FRAME := 2*BYTES_FP+8
|
BYTES_PER_FRAME := 2*BYTES_FP+8
|
||||||
FOR_STACK1 := 2*BYTES_FP+5
|
FOR_STACK1 := 2*BYTES_FP+5
|
||||||
FOR_STACK2 := BYTES_FP+4
|
FOR_STACK2 := BYTES_FP+4
|
||||||
|
|
||||||
.ifndef MAX_EXPON
|
|
||||||
MAX_EXPON = 10
|
MAX_EXPON = 10
|
||||||
.endif
|
|
||||||
|
|
||||||
STACK := $0100
|
STACK := $0100
|
||||||
.ifndef STACK2
|
|
||||||
STACK2 := STACK
|
STACK2 := STACK
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef INPUTBUFFER
|
|
||||||
.if INPUTBUFFER >= $0100
|
|
||||||
CONFIG_NO_INPUTBUFFER_ZP := 1
|
|
||||||
.endif
|
|
||||||
.if INPUTBUFFER = $0200
|
|
||||||
CONFIG_INPUTBUFFER_0200 := 1
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
INPUTBUFFERX = INPUTBUFFER & $FF00
|
INPUTBUFFERX = INPUTBUFFER & $FF00
|
||||||
|
|
||||||
CR=13
|
CR=13
|
||||||
LF=10
|
LF=10
|
||||||
|
|
||||||
.ifndef CRLF_1
|
|
||||||
CRLF_1 := CR
|
|
||||||
CRLF_2 := LF
|
|
||||||
.endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
; configuration
|
|
||||||
CONFIG_2A := 1
|
|
||||||
|
|
||||||
CONFIG_DATAFLG := 1
|
|
||||||
CONFIG_EASTER_EGG := 1
|
|
||||||
CONFIG_NO_READ_Y_IS_ZERO_HACK := 1
|
|
||||||
CONFIG_PEEK_SAVE_LINNUM := 1
|
|
||||||
CONFIG_SCRTCH_ORDER := 2
|
|
||||||
|
|
||||||
; zero page -- CBM BASIC V2 layout
|
|
||||||
ZP_START1 = $02
|
|
||||||
ZP_START2 = $0C
|
|
||||||
ZP_START3 = $12
|
|
||||||
ZP_START4 = $1D
|
|
||||||
|
|
||||||
; input buffer
|
|
||||||
INPUTBUFFER := $0200
|
|
||||||
|
|
||||||
; extra/override ZP variables
|
|
||||||
USR := GORESTART ; XXX
|
|
||||||
|
|
||||||
; constants
|
|
||||||
SPACE_FOR_GOSUB := $3E
|
|
||||||
STACK_TOP := $FA
|
|
||||||
WIDTH := 80
|
|
||||||
WIDTH2 := 30
|
|
||||||
RAMSTART2 := $0400
|
|
||||||
-27
@@ -1,32 +1,10 @@
|
|||||||
init_error_table
|
init_error_table
|
||||||
|
|
||||||
.ifdef CONFIG_SMALL_ERROR
|
|
||||||
define_error ERR_NOFOR, "NF"
|
|
||||||
define_error ERR_SYNTAX, "SN"
|
|
||||||
define_error ERR_NOGOSUB, "RG"
|
|
||||||
define_error ERR_NODATA, "OD"
|
|
||||||
define_error ERR_ILLQTY, "FC"
|
|
||||||
define_error ERR_OVERFLOW, "OV"
|
|
||||||
define_error ERR_MEMFULL, "OM"
|
|
||||||
define_error ERR_UNDEFSTAT, "US"
|
|
||||||
define_error ERR_BADSUBS, "BS"
|
|
||||||
define_error ERR_REDIMD, "DD"
|
|
||||||
define_error ERR_ZERODIV, "/0"
|
|
||||||
define_error ERR_ILLDIR, "ID"
|
|
||||||
define_error ERR_BADTYPE, "TM"
|
|
||||||
define_error ERR_STRLONG, "LS"
|
|
||||||
define_error ERR_FRMCPX, "ST"
|
|
||||||
define_error ERR_CANTCONT, "CN"
|
|
||||||
define_error ERR_UNDEFFN, "UF"
|
|
||||||
.else
|
|
||||||
define_error ERR_NOFOR, "NEXT WITHOUT FOR"
|
define_error ERR_NOFOR, "NEXT WITHOUT FOR"
|
||||||
define_error ERR_SYNTAX, "SYNTAX"
|
define_error ERR_SYNTAX, "SYNTAX"
|
||||||
define_error ERR_NOGOSUB, "RETURN WITHOUT GOSUB"
|
define_error ERR_NOGOSUB, "RETURN WITHOUT GOSUB"
|
||||||
define_error ERR_NODATA, "OUT OF DATA"
|
define_error ERR_NODATA, "OUT OF DATA"
|
||||||
define_error ERR_ILLQTY, "ILLEGAL QUANTITY"
|
define_error ERR_ILLQTY, "ILLEGAL QUANTITY"
|
||||||
.ifdef CBM1
|
|
||||||
.byte 0,0,0,0,0
|
|
||||||
.endif
|
|
||||||
define_error ERR_OVERFLOW, "OVERFLOW"
|
define_error ERR_OVERFLOW, "OVERFLOW"
|
||||||
define_error ERR_MEMFULL, "OUT OF MEMORY"
|
define_error ERR_MEMFULL, "OUT OF MEMORY"
|
||||||
define_error ERR_UNDEFSTAT, "UNDEF'D STATEMENT"
|
define_error ERR_UNDEFSTAT, "UNDEF'D STATEMENT"
|
||||||
@@ -37,13 +15,8 @@ define_error ERR_ILLDIR, "ILLEGAL DIRECT"
|
|||||||
define_error ERR_BADTYPE, "TYPE MISMATCH"
|
define_error ERR_BADTYPE, "TYPE MISMATCH"
|
||||||
define_error ERR_STRLONG, "STRING TOO LONG"
|
define_error ERR_STRLONG, "STRING TOO LONG"
|
||||||
.ifdef CONFIG_FILE
|
.ifdef CONFIG_FILE
|
||||||
.ifdef CBM1
|
|
||||||
define_error ERR_BADDATA, "BAD DATA"
|
|
||||||
.else
|
|
||||||
define_error ERR_BADDATA, "FILE DATA"
|
define_error ERR_BADDATA, "FILE DATA"
|
||||||
.endif
|
.endif
|
||||||
.endif
|
|
||||||
define_error ERR_FRMCPX, "FORMULA TOO COMPLEX"
|
define_error ERR_FRMCPX, "FORMULA TOO COMPLEX"
|
||||||
define_error ERR_CANTCONT, "CAN'T CONTINUE"
|
define_error ERR_CANTCONT, "CAN'T CONTINUE"
|
||||||
define_error ERR_UNDEFFN, "UNDEF'D FUNCTION"
|
define_error ERR_UNDEFFN, "UNDEF'D FUNCTION"
|
||||||
.endif
|
|
||||||
-227
@@ -19,31 +19,13 @@ GERR:
|
|||||||
beq JERROR
|
beq JERROR
|
||||||
NEXT3:
|
NEXT3:
|
||||||
txs
|
txs
|
||||||
.ifndef CONFIG_2
|
|
||||||
inx
|
|
||||||
inx
|
|
||||||
inx
|
|
||||||
inx
|
|
||||||
.endif
|
|
||||||
txa
|
txa
|
||||||
.ifdef CONFIG_2
|
|
||||||
clc
|
clc
|
||||||
adc #$04
|
adc #$04
|
||||||
pha
|
pha
|
||||||
adc #BYTES_FP+1
|
adc #BYTES_FP+1
|
||||||
sta DEST
|
sta DEST
|
||||||
pla
|
pla
|
||||||
.else
|
|
||||||
inx
|
|
||||||
inx
|
|
||||||
inx
|
|
||||||
inx
|
|
||||||
inx
|
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
inx
|
|
||||||
.endif
|
|
||||||
stx DEST
|
|
||||||
.endif
|
|
||||||
ldy #>STACK
|
ldy #>STACK
|
||||||
jsr LOAD_FAC_FROM_YA
|
jsr LOAD_FAC_FROM_YA
|
||||||
tsx
|
tsx
|
||||||
@@ -240,18 +222,12 @@ FRM_STACK2:
|
|||||||
tay
|
tay
|
||||||
pla
|
pla
|
||||||
sta INDEX
|
sta INDEX
|
||||||
.ifndef CONFIG_2B
|
|
||||||
inc INDEX ; bug: assumes not on page boundary
|
|
||||||
; bug exists on AppleSoft II
|
|
||||||
.endif
|
|
||||||
pla
|
pla
|
||||||
sta INDEX+1
|
sta INDEX+1
|
||||||
.ifdef CONFIG_2B
|
|
||||||
inc INDEX
|
inc INDEX
|
||||||
bne LEB69
|
bne LEB69
|
||||||
inc INDEX+1
|
inc INDEX+1
|
||||||
LEB69:
|
LEB69:
|
||||||
.endif
|
|
||||||
tya
|
tya
|
||||||
pha
|
pha
|
||||||
|
|
||||||
@@ -261,10 +237,8 @@ LEB69:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
FRM_STACK3:
|
FRM_STACK3:
|
||||||
jsr ROUND_FAC
|
jsr ROUND_FAC
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
lda FAC+4
|
lda FAC+4
|
||||||
pha
|
pha
|
||||||
.endif
|
|
||||||
lda FAC+3
|
lda FAC+3
|
||||||
pha
|
pha
|
||||||
lda FAC+2
|
lda FAC+2
|
||||||
@@ -307,10 +281,8 @@ FRM_PERFORM2:
|
|||||||
pla
|
pla
|
||||||
sta ARG+3
|
sta ARG+3
|
||||||
pla
|
pla
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
sta ARG+4
|
sta ARG+4
|
||||||
pla
|
pla
|
||||||
.endif
|
|
||||||
sta ARGSIGN
|
sta ARGSIGN
|
||||||
eor FACSIGN
|
eor FACSIGN
|
||||||
sta SGNCPR
|
sta SGNCPR
|
||||||
@@ -335,17 +307,6 @@ L2D36:
|
|||||||
L2D39:
|
L2D39:
|
||||||
jsr ISLETC
|
jsr ISLETC
|
||||||
bcs FRM_VARIABLE
|
bcs FRM_VARIABLE
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
cmp #$FF
|
|
||||||
bne LCDC1
|
|
||||||
lda #<CON_PI
|
|
||||||
ldy #>CON_PI
|
|
||||||
jsr LOAD_FAC_FROM_YA
|
|
||||||
jmp CHRGET
|
|
||||||
CON_PI:
|
|
||||||
.byte $82,$49,$0f,$DA,$A1
|
|
||||||
LCDC1:
|
|
||||||
.endif
|
|
||||||
cmp #$2E
|
cmp #$2E
|
||||||
beq L2D36
|
beq L2D36
|
||||||
cmp #TOKEN_MINUS
|
cmp #TOKEN_MINUS
|
||||||
@@ -394,16 +355,6 @@ EQUOP:
|
|||||||
eor #$FF
|
eor #$FF
|
||||||
jmp GIVAYF
|
jmp GIVAYF
|
||||||
L2D74:
|
L2D74:
|
||||||
.ifdef SYM1
|
|
||||||
cmp #TOKEN_USR
|
|
||||||
bne LCC8A
|
|
||||||
jmp LCDBD
|
|
||||||
LCC8A:
|
|
||||||
cmp #$26
|
|
||||||
bne LCC91
|
|
||||||
jmp LCDFE
|
|
||||||
LCC91:
|
|
||||||
.endif
|
|
||||||
cmp #TOKEN_FN
|
cmp #TOKEN_FN
|
||||||
bne L2D7B
|
bne L2D7B
|
||||||
jmp L31F3
|
jmp L31F3
|
||||||
@@ -452,49 +403,14 @@ FRM_VARIABLE:
|
|||||||
FRM_VARIABLE_CALL = *-1
|
FRM_VARIABLE_CALL = *-1
|
||||||
sta FAC_LAST-1
|
sta FAC_LAST-1
|
||||||
sty FAC_LAST
|
sty FAC_LAST
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
lda VARNAM
|
|
||||||
ldy VARNAM+1
|
|
||||||
.endif
|
|
||||||
ldx VALTYP
|
ldx VALTYP
|
||||||
beq L2DB1
|
beq L2DB1
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
.ifdef CONFIG_CBM1_PATCHES
|
|
||||||
jmp PATCH2
|
|
||||||
clc
|
|
||||||
LCE3B:
|
|
||||||
.else
|
|
||||||
ldx #$00
|
|
||||||
stx STRNG1+1
|
|
||||||
bit FAC+4
|
|
||||||
bpl LCE53
|
|
||||||
cmp #$54 ; T
|
|
||||||
bne LCE53
|
|
||||||
.endif
|
|
||||||
cpy #$C9 ; I$
|
|
||||||
bne LCE53
|
|
||||||
jsr LCE76
|
|
||||||
sty EXPON
|
|
||||||
dey
|
|
||||||
sty STRNG2
|
|
||||||
ldy #$06
|
|
||||||
sty INDX
|
|
||||||
ldy #$24
|
|
||||||
jsr LDD3A
|
|
||||||
jmp LD353
|
|
||||||
LCE53:
|
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_2
|
|
||||||
.ifndef CBM2
|
|
||||||
; bugfix?
|
; bugfix?
|
||||||
; fixed on AppleSoft II, not on any CBM
|
; fixed on AppleSoft II, not on any CBM
|
||||||
ldx #$00
|
ldx #$00
|
||||||
stx STRNG1+1
|
stx STRNG1+1
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
rts
|
rts
|
||||||
L2DB1:
|
L2DB1:
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
ldx VALTYP+1
|
ldx VALTYP+1
|
||||||
bpl L2DC2
|
bpl L2DC2
|
||||||
ldy #$00
|
ldy #$00
|
||||||
@@ -506,57 +422,7 @@ L2DB1:
|
|||||||
txa
|
txa
|
||||||
jmp GIVAYF
|
jmp GIVAYF
|
||||||
L2DC2:
|
L2DC2:
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_CBM1_PATCHES
|
|
||||||
jmp PATCH3
|
|
||||||
.byte $19
|
|
||||||
.endif
|
|
||||||
.ifdef CBM2
|
|
||||||
bit FAC+4
|
|
||||||
bpl LCE90
|
|
||||||
cmp #$54
|
|
||||||
bne LCE82
|
|
||||||
.endif
|
|
||||||
.ifndef CONFIG_CBM_ALL
|
|
||||||
jmp LOAD_FAC_FROM_YA
|
jmp LOAD_FAC_FROM_YA
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
LCE69:
|
|
||||||
cpy #$49
|
|
||||||
.ifdef CBM1
|
|
||||||
bne LCE82
|
|
||||||
.else
|
|
||||||
bne LCE90
|
|
||||||
.endif
|
|
||||||
jsr LCE76
|
|
||||||
tya
|
|
||||||
ldx #$A0
|
|
||||||
jmp LDB21
|
|
||||||
LCE76:
|
|
||||||
.ifdef CBM1
|
|
||||||
lda #$FE
|
|
||||||
ldy #$01
|
|
||||||
.else
|
|
||||||
lda #$8B
|
|
||||||
ldy #$00
|
|
||||||
.endif
|
|
||||||
sei
|
|
||||||
jsr LOAD_FAC_FROM_YA
|
|
||||||
cli
|
|
||||||
sty FAC+1
|
|
||||||
rts
|
|
||||||
LCE82:
|
|
||||||
cmp #$53
|
|
||||||
bne LCE90
|
|
||||||
cpy #$54
|
|
||||||
bne LCE90
|
|
||||||
lda Z96
|
|
||||||
jmp FLOAT
|
|
||||||
LCE90:
|
|
||||||
lda FAC+3
|
|
||||||
ldy FAC+4
|
|
||||||
jmp LOAD_FAC_FROM_YA
|
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
UNARY:
|
UNARY:
|
||||||
@@ -593,11 +459,7 @@ L2DF4:
|
|||||||
sta JMPADRS+1
|
sta JMPADRS+1
|
||||||
lda UNFNC-TOKEN_SGN-TOKEN_SGN+$101,y
|
lda UNFNC-TOKEN_SGN-TOKEN_SGN+$101,y
|
||||||
sta JMPADRS+2
|
sta JMPADRS+2
|
||||||
.ifdef KBD
|
|
||||||
jsr LF47D
|
|
||||||
.else
|
|
||||||
jsr JMPADRS
|
jsr JMPADRS
|
||||||
.endif
|
|
||||||
jmp CHKNUM
|
jmp CHKNUM
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
@@ -697,92 +559,3 @@ CMPDONE:
|
|||||||
lda #$FF
|
lda #$FF
|
||||||
L2E99:
|
L2E99:
|
||||||
jmp FLOAT
|
jmp FLOAT
|
||||||
|
|
||||||
.ifdef SYM1
|
|
||||||
LCDBD:
|
|
||||||
jsr CHRGET
|
|
||||||
jsr CHKOPN
|
|
||||||
jsr FRMEVL
|
|
||||||
jsr CHRGOT
|
|
||||||
cmp #$29
|
|
||||||
beq LCDF1
|
|
||||||
jsr AYINT
|
|
||||||
lda FAC+4
|
|
||||||
ldy FAC+3
|
|
||||||
sta USR+1
|
|
||||||
sty USR+2
|
|
||||||
LCDD8:
|
|
||||||
jsr CHKCOM
|
|
||||||
jsr FRMEVL
|
|
||||||
jsr CHRGOT
|
|
||||||
cmp #$29
|
|
||||||
beq LCDF1
|
|
||||||
jsr AYINT
|
|
||||||
lda FAC+3
|
|
||||||
pha
|
|
||||||
lda FAC+4
|
|
||||||
pha
|
|
||||||
jmp LCDD8
|
|
||||||
|
|
||||||
LCDF1:
|
|
||||||
jsr CHRGET
|
|
||||||
jsr AYINT
|
|
||||||
lda FAC+3
|
|
||||||
ldy FAC+4
|
|
||||||
jmp USR
|
|
||||||
|
|
||||||
LCDFE:
|
|
||||||
lda ZD4
|
|
||||||
pha
|
|
||||||
lda ZD3
|
|
||||||
pha
|
|
||||||
jsr CHRGET
|
|
||||||
cmp #$22
|
|
||||||
bne LCE49
|
|
||||||
jsr CHRGET
|
|
||||||
jsr LCE2B
|
|
||||||
tax
|
|
||||||
jsr CHRGOT
|
|
||||||
jsr LCE2B
|
|
||||||
pha
|
|
||||||
jsr CHRGOT
|
|
||||||
cmp #$22
|
|
||||||
bne LCE48
|
|
||||||
jsr CHRGET
|
|
||||||
pla
|
|
||||||
tay
|
|
||||||
pla
|
|
||||||
pla
|
|
||||||
txa
|
|
||||||
jmp GIVAYF
|
|
||||||
|
|
||||||
LCE2B:
|
|
||||||
jsr ASCNIB
|
|
||||||
bcs LCE47
|
|
||||||
pha
|
|
||||||
jsr CHRGET
|
|
||||||
jsr ASCNIB
|
|
||||||
sta FAC+4
|
|
||||||
bcs LCE46
|
|
||||||
jsr CHRGET
|
|
||||||
pla
|
|
||||||
asl a
|
|
||||||
asl a
|
|
||||||
asl a
|
|
||||||
asl a
|
|
||||||
ora FAC+4
|
|
||||||
rts
|
|
||||||
|
|
||||||
LCE46:
|
|
||||||
pla
|
|
||||||
LCE47:
|
|
||||||
pla
|
|
||||||
LCE48:
|
|
||||||
pla
|
|
||||||
LCE49:
|
|
||||||
pla
|
|
||||||
sta ZD3
|
|
||||||
pla
|
|
||||||
sta ZD4
|
|
||||||
jmp ZERO_FAC
|
|
||||||
.endif
|
|
||||||
+26
-29
@@ -1,38 +1,35 @@
|
|||||||
.segment "EXTRA"
|
.segment "EXTRA"
|
||||||
|
|
||||||
.ifdef KIM
|
LOAD:
|
||||||
.include "kim_extra.s"
|
rts
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef CONFIG_CBM1_PATCHES
|
SAVE:
|
||||||
.include "cbm1_patches.s"
|
rts
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef KBD
|
ISCNTC:
|
||||||
.include "kbd_extra.s"
|
lda $BC01
|
||||||
.endif
|
cmp #$03
|
||||||
|
beq @break
|
||||||
|
rts
|
||||||
|
@break:
|
||||||
|
jmp STOP
|
||||||
|
|
||||||
.ifdef APPLE
|
MONRDKEY:
|
||||||
.include "apple_extra.s"
|
lda $BC01
|
||||||
.endif
|
bmi @skipped
|
||||||
|
sta $BC00 ; echo
|
||||||
|
@skipped:
|
||||||
|
rts
|
||||||
|
|
||||||
.ifdef MICROTAN
|
MONCOUT:
|
||||||
.include "microtan_extra.s"
|
sta $BC00
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef AIM65
|
rts
|
||||||
.include "aim65_extra.s"
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef SYM1
|
.segment "WOZMON"
|
||||||
.byte 0,0,0
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef W65C816SXB
|
|
||||||
.include "w65c816sxb_extra.s"
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef KILIAN
|
|
||||||
.include "kilian_extra.s"
|
|
||||||
.include "wozmon.s"
|
.include "wozmon.s"
|
||||||
.endif
|
|
||||||
|
.segment "RESETVEC"
|
||||||
|
.word $0000 ; NMI vector
|
||||||
|
.word RESET ; RESET vector
|
||||||
|
.word $0000 ; IRQ vector
|
||||||
-319
@@ -31,7 +31,6 @@ FSUBT:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; Commodore BASIC V2 Easter Egg
|
; Commodore BASIC V2 Easter Egg
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
.ifdef CONFIG_EASTER_EGG
|
|
||||||
EASTER_EGG:
|
EASTER_EGG:
|
||||||
lda LINNUM
|
lda LINNUM
|
||||||
cmp #<6502
|
cmp #<6502
|
||||||
@@ -58,7 +57,6 @@ LD766:
|
|||||||
dec FORPNT
|
dec FORPNT
|
||||||
bne LD758
|
bne LD758
|
||||||
rts
|
rts
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; SHIFT SMALLER ARGUMENT MORE THAN 7 BITS
|
; SHIFT SMALLER ARGUMENT MORE THAN 7 BITS
|
||||||
@@ -86,11 +84,7 @@ L365B:
|
|||||||
lda ARG
|
lda ARG
|
||||||
FADD2:
|
FADD2:
|
||||||
tay
|
tay
|
||||||
.ifdef KBD
|
|
||||||
beq RTS4
|
|
||||||
.else
|
|
||||||
beq RTS3
|
beq RTS3
|
||||||
.endif
|
|
||||||
sec
|
sec
|
||||||
sbc FAC
|
sbc FAC
|
||||||
beq FADD3
|
beq FADD3
|
||||||
@@ -126,11 +120,9 @@ L369B:
|
|||||||
eor #$FF
|
eor #$FF
|
||||||
adc ARGEXTENSION
|
adc ARGEXTENSION
|
||||||
sta FACEXTENSION
|
sta FACEXTENSION
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
lda 4,y
|
lda 4,y
|
||||||
sbc 4,x
|
sbc 4,x
|
||||||
sta FAC+4
|
sta FAC+4
|
||||||
.endif
|
|
||||||
lda 3,y
|
lda 3,y
|
||||||
sbc 3,x
|
sbc 3,x
|
||||||
sta FAC+3
|
sta FAC+3
|
||||||
@@ -158,24 +150,13 @@ L36C7:
|
|||||||
stx FAC+1
|
stx FAC+1
|
||||||
ldx FAC+3
|
ldx FAC+3
|
||||||
stx FAC+2
|
stx FAC+2
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
ldx FACEXTENSION
|
|
||||||
stx FAC+3
|
|
||||||
.else
|
|
||||||
ldx FAC+4
|
ldx FAC+4
|
||||||
stx FAC+3
|
stx FAC+3
|
||||||
ldx FACEXTENSION
|
ldx FACEXTENSION
|
||||||
stx FAC+4
|
stx FAC+4
|
||||||
.endif
|
|
||||||
sty FACEXTENSION
|
sty FACEXTENSION
|
||||||
adc #$08
|
adc #$08
|
||||||
.ifdef CONFIG_2B
|
|
||||||
; bugfix?
|
|
||||||
; fix does not exist on AppleSoft 2
|
|
||||||
cmp #(MANTISSA_BYTES+1)*8
|
cmp #(MANTISSA_BYTES+1)*8
|
||||||
.else
|
|
||||||
cmp #MANTISSA_BYTES*8
|
|
||||||
.endif
|
|
||||||
bne L36C7
|
bne L36C7
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
@@ -196,11 +177,9 @@ STA_IN_FAC_SIGN:
|
|||||||
FADD4:
|
FADD4:
|
||||||
adc ARGEXTENSION
|
adc ARGEXTENSION
|
||||||
sta FACEXTENSION
|
sta FACEXTENSION
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
lda FAC+4
|
lda FAC+4
|
||||||
adc ARG+4
|
adc ARG+4
|
||||||
sta FAC+4
|
sta FAC+4
|
||||||
.endif
|
|
||||||
lda FAC+3
|
lda FAC+3
|
||||||
adc ARG+3
|
adc ARG+3
|
||||||
sta FAC+3
|
sta FAC+3
|
||||||
@@ -218,9 +197,7 @@ FADD4:
|
|||||||
NORMALIZE_FAC3:
|
NORMALIZE_FAC3:
|
||||||
adc #$01
|
adc #$01
|
||||||
asl FACEXTENSION
|
asl FACEXTENSION
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
rol FAC+4
|
rol FAC+4
|
||||||
.endif
|
|
||||||
rol FAC+3
|
rol FAC+3
|
||||||
rol FAC+2
|
rol FAC+2
|
||||||
rol FAC+1
|
rol FAC+1
|
||||||
@@ -237,51 +214,11 @@ NORMALIZE_FAC5:
|
|||||||
NORMALIZE_FAC6:
|
NORMALIZE_FAC6:
|
||||||
inc FAC
|
inc FAC
|
||||||
beq OVERFLOW
|
beq OVERFLOW
|
||||||
.ifndef CONFIG_ROR_WORKAROUND
|
|
||||||
ror FAC+1
|
ror FAC+1
|
||||||
ror FAC+2
|
ror FAC+2
|
||||||
ror FAC+3
|
ror FAC+3
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
ror FAC+4
|
ror FAC+4
|
||||||
.endif
|
|
||||||
ror FACEXTENSION
|
ror FACEXTENSION
|
||||||
.else
|
|
||||||
lda #$00
|
|
||||||
bcc L372E
|
|
||||||
lda #$80
|
|
||||||
L372E:
|
|
||||||
lsr FAC+1
|
|
||||||
ora FAC+1
|
|
||||||
sta FAC+1
|
|
||||||
lda #$00
|
|
||||||
bcc L373A
|
|
||||||
lda #$80
|
|
||||||
L373A:
|
|
||||||
lsr FAC+2
|
|
||||||
ora FAC+2
|
|
||||||
sta FAC+2
|
|
||||||
lda #$00
|
|
||||||
bcc L3746
|
|
||||||
lda #$80
|
|
||||||
L3746:
|
|
||||||
lsr FAC+3
|
|
||||||
ora FAC+3
|
|
||||||
sta FAC+3
|
|
||||||
lda #$00
|
|
||||||
bcc L3752
|
|
||||||
lda #$80
|
|
||||||
L3752:
|
|
||||||
lsr FAC+4
|
|
||||||
ora FAC+4
|
|
||||||
sta FAC+4
|
|
||||||
lda #$00
|
|
||||||
bcc L375E
|
|
||||||
lda #$80
|
|
||||||
L375E:
|
|
||||||
lsr FACEXTENSION
|
|
||||||
ora FACEXTENSION
|
|
||||||
sta FACEXTENSION
|
|
||||||
.endif
|
|
||||||
L3764:
|
L3764:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@@ -306,11 +243,9 @@ COMPLEMENT_FAC_MANTISSA:
|
|||||||
lda FAC+3
|
lda FAC+3
|
||||||
eor #$FF
|
eor #$FF
|
||||||
sta FAC+3
|
sta FAC+3
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
lda FAC+4
|
lda FAC+4
|
||||||
eor #$FF
|
eor #$FF
|
||||||
sta FAC+4
|
sta FAC+4
|
||||||
.endif
|
|
||||||
lda FACEXTENSION
|
lda FACEXTENSION
|
||||||
eor #$FF
|
eor #$FF
|
||||||
sta FACEXTENSION
|
sta FACEXTENSION
|
||||||
@@ -321,10 +256,8 @@ COMPLEMENT_FAC_MANTISSA:
|
|||||||
; INCREMENT FAC MANTISSA
|
; INCREMENT FAC MANTISSA
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
INCREMENT_FAC_MANTISSA:
|
INCREMENT_FAC_MANTISSA:
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
inc FAC+4
|
inc FAC+4
|
||||||
bne RTS12
|
bne RTS12
|
||||||
.endif
|
|
||||||
inc FAC+3
|
inc FAC+3
|
||||||
bne RTS12
|
bne RTS12
|
||||||
inc FAC+2
|
inc FAC+2
|
||||||
@@ -346,16 +279,10 @@ OVERFLOW:
|
|||||||
SHIFT_RIGHT1:
|
SHIFT_RIGHT1:
|
||||||
ldx #RESULT-1
|
ldx #RESULT-1
|
||||||
SHIFT_RIGHT2:
|
SHIFT_RIGHT2:
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
ldy 3,x
|
|
||||||
.else
|
|
||||||
ldy 4,x
|
ldy 4,x
|
||||||
.endif
|
|
||||||
sty FACEXTENSION
|
sty FACEXTENSION
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
ldy 3,x
|
ldy 3,x
|
||||||
sty 4,x
|
sty 4,x
|
||||||
.endif
|
|
||||||
ldy 2,x
|
ldy 2,x
|
||||||
sty 3,x
|
sty 3,x
|
||||||
ldy 1,x
|
ldy 1,x
|
||||||
@@ -374,7 +301,6 @@ SHIFT_RIGHT:
|
|||||||
tay
|
tay
|
||||||
lda FACEXTENSION
|
lda FACEXTENSION
|
||||||
bcs SHIFT_RIGHT5
|
bcs SHIFT_RIGHT5
|
||||||
.ifndef CONFIG_ROR_WORKAROUND
|
|
||||||
LB588:
|
LB588:
|
||||||
asl 1,x
|
asl 1,x
|
||||||
bcc LB58E
|
bcc LB58E
|
||||||
@@ -389,76 +315,15 @@ LB58E:
|
|||||||
SHIFT_RIGHT4:
|
SHIFT_RIGHT4:
|
||||||
ror 2,x
|
ror 2,x
|
||||||
ror 3,x
|
ror 3,x
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
ror 4,x
|
ror 4,x
|
||||||
.endif
|
|
||||||
ror a
|
ror a
|
||||||
iny
|
iny
|
||||||
bne LB588
|
bne LB588
|
||||||
.else
|
|
||||||
L37C4:
|
|
||||||
pha
|
|
||||||
lda 1,x
|
|
||||||
and #$80
|
|
||||||
lsr 1,x
|
|
||||||
ora 1,x
|
|
||||||
sta 1,x
|
|
||||||
.byte $24
|
|
||||||
SHIFT_RIGHT4:
|
|
||||||
pha
|
|
||||||
lda #$00
|
|
||||||
bcc L37D7
|
|
||||||
lda #$80
|
|
||||||
L37D7:
|
|
||||||
lsr 2,x
|
|
||||||
ora 2,x
|
|
||||||
sta 2,x
|
|
||||||
lda #$00
|
|
||||||
bcc L37E3
|
|
||||||
lda #$80
|
|
||||||
L37E3:
|
|
||||||
lsr 3,x
|
|
||||||
ora 3,x
|
|
||||||
sta 3,x
|
|
||||||
lda #$00
|
|
||||||
bcc L37EF
|
|
||||||
lda #$80
|
|
||||||
L37EF:
|
|
||||||
lsr 4,x
|
|
||||||
ora 4,x
|
|
||||||
sta 4,x
|
|
||||||
pla
|
|
||||||
php
|
|
||||||
lsr a
|
|
||||||
plp
|
|
||||||
bcc L37FD
|
|
||||||
ora #$80
|
|
||||||
L37FD:
|
|
||||||
iny
|
|
||||||
bne L37C4
|
|
||||||
.endif
|
|
||||||
SHIFT_RIGHT5:
|
SHIFT_RIGHT5:
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
CON_ONE:
|
|
||||||
.byte $81,$00,$00,$00
|
|
||||||
POLY_LOG:
|
|
||||||
.byte $02
|
|
||||||
.byte $80,$19,$56,$62
|
|
||||||
.byte $80,$76,$22,$F3
|
|
||||||
.byte $82,$38,$AA,$40
|
|
||||||
CON_SQR_HALF:
|
|
||||||
.byte $80,$35,$04,$F3
|
|
||||||
CON_SQR_TWO:
|
|
||||||
.byte $81,$35,$04,$F3
|
|
||||||
CON_NEG_HALF:
|
|
||||||
.byte $80,$80,$00,$00
|
|
||||||
CON_LOG_TWO:
|
|
||||||
.byte $80,$31,$72,$18
|
|
||||||
.else
|
|
||||||
CON_ONE:
|
CON_ONE:
|
||||||
.byte $81,$00,$00,$00,$00
|
.byte $81,$00,$00,$00,$00
|
||||||
POLY_LOG:
|
POLY_LOG:
|
||||||
@@ -475,7 +340,6 @@ CON_NEG_HALF:
|
|||||||
.byte $80,$80,$00,$00,$00
|
.byte $80,$80,$00,$00,$00
|
||||||
CON_LOG_TWO:
|
CON_LOG_TWO:
|
||||||
.byte $80,$31,$72,$17,$F8
|
.byte $80,$31,$72,$17,$F8
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "LOG" FUNCTION
|
; "LOG" FUNCTION
|
||||||
@@ -522,25 +386,17 @@ FMULT:
|
|||||||
; FAC = ARG * FAC
|
; FAC = ARG * FAC
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
FMULTT:
|
FMULTT:
|
||||||
.ifndef CONFIG_11
|
|
||||||
beq L3903
|
|
||||||
.else
|
|
||||||
jeq L3903
|
jeq L3903
|
||||||
.endif
|
|
||||||
jsr ADD_EXPONENTS
|
jsr ADD_EXPONENTS
|
||||||
lda #$00
|
lda #$00
|
||||||
sta RESULT
|
sta RESULT
|
||||||
sta RESULT+1
|
sta RESULT+1
|
||||||
sta RESULT+2
|
sta RESULT+2
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
sta RESULT+3
|
sta RESULT+3
|
||||||
.endif
|
|
||||||
lda FACEXTENSION
|
lda FACEXTENSION
|
||||||
jsr MULTIPLY1
|
jsr MULTIPLY1
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
lda FAC+4
|
lda FAC+4
|
||||||
jsr MULTIPLY1
|
jsr MULTIPLY1
|
||||||
.endif
|
|
||||||
lda FAC+3
|
lda FAC+3
|
||||||
jsr MULTIPLY1
|
jsr MULTIPLY1
|
||||||
lda FAC+2
|
lda FAC+2
|
||||||
@@ -562,11 +418,9 @@ L38A7:
|
|||||||
tay
|
tay
|
||||||
bcc L38C3
|
bcc L38C3
|
||||||
clc
|
clc
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
lda RESULT+3
|
lda RESULT+3
|
||||||
adc ARG+4
|
adc ARG+4
|
||||||
sta RESULT+3
|
sta RESULT+3
|
||||||
.endif
|
|
||||||
lda RESULT+2
|
lda RESULT+2
|
||||||
adc ARG+3
|
adc ARG+3
|
||||||
sta RESULT+2
|
sta RESULT+2
|
||||||
@@ -577,56 +431,11 @@ L38A7:
|
|||||||
adc ARG+1
|
adc ARG+1
|
||||||
sta RESULT
|
sta RESULT
|
||||||
L38C3:
|
L38C3:
|
||||||
.ifndef CONFIG_ROR_WORKAROUND
|
|
||||||
ror RESULT
|
ror RESULT
|
||||||
ror RESULT+1
|
ror RESULT+1
|
||||||
.ifdef APPLE_BAD_BYTE
|
|
||||||
; this seems to be a bad byte in the dump
|
|
||||||
.byte RESULT+2,RESULT+2 ; XXX BUG!
|
|
||||||
.else
|
|
||||||
ror RESULT+2
|
ror RESULT+2
|
||||||
.endif
|
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
ror RESULT+3
|
ror RESULT+3
|
||||||
.endif
|
|
||||||
ror FACEXTENSION
|
ror FACEXTENSION
|
||||||
.else
|
|
||||||
lda #$00
|
|
||||||
bcc L38C9
|
|
||||||
lda #$80
|
|
||||||
L38C9:
|
|
||||||
lsr RESULT
|
|
||||||
ora RESULT
|
|
||||||
sta RESULT
|
|
||||||
lda #$00
|
|
||||||
bcc L38D5
|
|
||||||
lda #$80
|
|
||||||
L38D5:
|
|
||||||
lsr RESULT+1
|
|
||||||
ora RESULT+1
|
|
||||||
sta RESULT+1
|
|
||||||
lda #$00
|
|
||||||
bcc L38E1
|
|
||||||
lda #$80
|
|
||||||
L38E1:
|
|
||||||
lsr RESULT+2
|
|
||||||
ora RESULT+2
|
|
||||||
sta RESULT+2
|
|
||||||
lda #$00
|
|
||||||
bcc L38ED
|
|
||||||
lda #$80
|
|
||||||
L38ED:
|
|
||||||
lsr RESULT+3
|
|
||||||
ora RESULT+3
|
|
||||||
sta RESULT+3
|
|
||||||
lda #$00
|
|
||||||
bcc L38F9
|
|
||||||
lda #$80
|
|
||||||
L38F9:
|
|
||||||
lsr FACEXTENSION
|
|
||||||
ora FACEXTENSION
|
|
||||||
sta FACEXTENSION
|
|
||||||
.endif
|
|
||||||
tya
|
tya
|
||||||
lsr a
|
lsr a
|
||||||
bne L38A7
|
bne L38A7
|
||||||
@@ -640,11 +449,9 @@ LOAD_ARG_FROM_YA:
|
|||||||
sta INDEX
|
sta INDEX
|
||||||
sty INDEX+1
|
sty INDEX+1
|
||||||
ldy #BYTES_FP-1
|
ldy #BYTES_FP-1
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
lda (INDEX),y
|
lda (INDEX),y
|
||||||
sta ARG+4
|
sta ARG+4
|
||||||
dey
|
dey
|
||||||
.endif
|
|
||||||
lda (INDEX),y
|
lda (INDEX),y
|
||||||
sta ARG+3
|
sta ARG+3
|
||||||
dey
|
dey
|
||||||
@@ -732,11 +539,7 @@ L3970:
|
|||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
CONTEN:
|
CONTEN:
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
.byte $84,$20,$00,$00
|
|
||||||
.else
|
|
||||||
.byte $84,$20,$00,$00,$00
|
.byte $84,$20,$00,$00,$00
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; DIVIDE FAC BY 10
|
; DIVIDE FAC BY 10
|
||||||
@@ -785,11 +588,9 @@ L39A1:
|
|||||||
bne L39B7
|
bne L39B7
|
||||||
ldy ARG+3
|
ldy ARG+3
|
||||||
cpy FAC+3
|
cpy FAC+3
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
bne L39B7
|
bne L39B7
|
||||||
ldy ARG+4
|
ldy ARG+4
|
||||||
cpy FAC+4
|
cpy FAC+4
|
||||||
.endif
|
|
||||||
L39B7:
|
L39B7:
|
||||||
php
|
php
|
||||||
rol a
|
rol a
|
||||||
@@ -804,9 +605,7 @@ L39C4:
|
|||||||
bcs L39D5
|
bcs L39D5
|
||||||
L39C7:
|
L39C7:
|
||||||
asl ARG_LAST
|
asl ARG_LAST
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
rol ARG+3
|
rol ARG+3
|
||||||
.endif
|
|
||||||
rol ARG+2
|
rol ARG+2
|
||||||
rol ARG+1
|
rol ARG+1
|
||||||
bcs L39B7
|
bcs L39B7
|
||||||
@@ -814,11 +613,9 @@ L39C7:
|
|||||||
bpl L39B7
|
bpl L39B7
|
||||||
L39D5:
|
L39D5:
|
||||||
tay
|
tay
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
lda ARG+4
|
lda ARG+4
|
||||||
sbc FAC+4
|
sbc FAC+4
|
||||||
sta ARG+4
|
sta ARG+4
|
||||||
.endif
|
|
||||||
lda ARG+3
|
lda ARG+3
|
||||||
sbc FAC+3
|
sbc FAC+3
|
||||||
sta ARG+3
|
sta ARG+3
|
||||||
@@ -857,10 +654,8 @@ COPY_RESULT_INTO_FAC:
|
|||||||
sta FAC+2
|
sta FAC+2
|
||||||
lda RESULT+2
|
lda RESULT+2
|
||||||
sta FAC+3
|
sta FAC+3
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
lda RESULT+3
|
lda RESULT+3
|
||||||
sta FAC+4
|
sta FAC+4
|
||||||
.endif
|
|
||||||
jmp NORMALIZE_FAC2
|
jmp NORMALIZE_FAC2
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
@@ -870,11 +665,9 @@ LOAD_FAC_FROM_YA:
|
|||||||
sta INDEX
|
sta INDEX
|
||||||
sty INDEX+1
|
sty INDEX+1
|
||||||
ldy #MANTISSA_BYTES
|
ldy #MANTISSA_BYTES
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
lda (INDEX),y
|
lda (INDEX),y
|
||||||
sta FAC+4
|
sta FAC+4
|
||||||
dey
|
dey
|
||||||
.endif
|
|
||||||
lda (INDEX),y
|
lda (INDEX),y
|
||||||
sta FAC+3
|
sta FAC+3
|
||||||
dey
|
dey
|
||||||
@@ -921,11 +714,9 @@ STORE_FAC_AT_YX_ROUNDED:
|
|||||||
stx INDEX
|
stx INDEX
|
||||||
sty INDEX+1
|
sty INDEX+1
|
||||||
ldy #MANTISSA_BYTES
|
ldy #MANTISSA_BYTES
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
lda FAC+4
|
lda FAC+4
|
||||||
sta (INDEX),y
|
sta (INDEX),y
|
||||||
dey
|
dey
|
||||||
.endif
|
|
||||||
lda FAC+3
|
lda FAC+3
|
||||||
sta (INDEX),y
|
sta (INDEX),y
|
||||||
dey
|
dey
|
||||||
@@ -1043,9 +834,7 @@ FLOAT1:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
FLOAT2:
|
FLOAT2:
|
||||||
lda #$00
|
lda #$00
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
sta FAC+4
|
sta FAC+4
|
||||||
.endif
|
|
||||||
sta FAC+3
|
sta FAC+3
|
||||||
LDB21:
|
LDB21:
|
||||||
stx FAC
|
stx FAC
|
||||||
@@ -1092,12 +881,10 @@ FCOMP2:
|
|||||||
cmp FAC+2
|
cmp FAC+2
|
||||||
bne L3B0A
|
bne L3B0A
|
||||||
iny
|
iny
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
lda (DEST),y
|
lda (DEST),y
|
||||||
cmp FAC+3
|
cmp FAC+3
|
||||||
bne L3B0A
|
bne L3B0A
|
||||||
iny
|
iny
|
||||||
.endif
|
|
||||||
lda #$7F
|
lda #$7F
|
||||||
cmp FACEXTENSION
|
cmp FACEXTENSION
|
||||||
lda (DEST),y
|
lda (DEST),y
|
||||||
@@ -1175,9 +962,7 @@ QINT3:
|
|||||||
sta FAC+1
|
sta FAC+1
|
||||||
sta FAC+2
|
sta FAC+2
|
||||||
sta FAC+3
|
sta FAC+3
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
sta FAC+4
|
sta FAC+4
|
||||||
.endif
|
|
||||||
tay
|
tay
|
||||||
RTS17:
|
RTS17:
|
||||||
rts
|
rts
|
||||||
@@ -1197,12 +982,6 @@ L3B6F:
|
|||||||
dex
|
dex
|
||||||
bpl L3B6F
|
bpl L3B6F
|
||||||
bcc FIN2
|
bcc FIN2
|
||||||
.ifdef SYM1
|
|
||||||
cmp #$26
|
|
||||||
bne LDABB
|
|
||||||
jmp LCDFE
|
|
||||||
LDABB:
|
|
||||||
.endif
|
|
||||||
cmp #$2D
|
cmp #$2D
|
||||||
bne L3B7E
|
bne L3B7E
|
||||||
stx SERLEN
|
stx SERLEN
|
||||||
@@ -1231,17 +1010,7 @@ FIN3:
|
|||||||
beq FIN4
|
beq FIN4
|
||||||
bne FIN6
|
bne FIN6
|
||||||
L3BA6:
|
L3BA6:
|
||||||
.ifndef CONFIG_ROR_WORKAROUND
|
|
||||||
ror EXPSGN
|
ror EXPSGN
|
||||||
.else
|
|
||||||
lda #$00
|
|
||||||
bcc L3BAC
|
|
||||||
lda #$80
|
|
||||||
L3BAC:
|
|
||||||
lsr EXPSGN
|
|
||||||
ora EXPSGN
|
|
||||||
sta EXPSGN
|
|
||||||
.endif
|
|
||||||
FIN4:
|
FIN4:
|
||||||
jsr CHRGET
|
jsr CHRGET
|
||||||
FIN5:
|
FIN5:
|
||||||
@@ -1258,17 +1027,7 @@ FIN6:
|
|||||||
; FOUND A DECIMAL POINT
|
; FOUND A DECIMAL POINT
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
FIN10:
|
FIN10:
|
||||||
.ifndef CONFIG_ROR_WORKAROUND
|
|
||||||
ror LOWTR
|
ror LOWTR
|
||||||
.else
|
|
||||||
lda #$00
|
|
||||||
bcc L3BC9
|
|
||||||
lda #$80
|
|
||||||
L3BC9:
|
|
||||||
lsr LOWTR
|
|
||||||
ora LOWTR
|
|
||||||
sta LOWTR
|
|
||||||
.endif
|
|
||||||
bit LOWTR
|
bit LOWTR
|
||||||
bvc FIN1
|
bvc FIN1
|
||||||
|
|
||||||
@@ -1336,20 +1095,11 @@ GETEXP:
|
|||||||
lda EXPON
|
lda EXPON
|
||||||
cmp #MAX_EXPON
|
cmp #MAX_EXPON
|
||||||
bcc L3C2C
|
bcc L3C2C
|
||||||
.ifdef CONFIG_10A
|
|
||||||
lda #$64
|
lda #$64
|
||||||
.endif
|
|
||||||
bit EXPSGN
|
bit EXPSGN
|
||||||
.ifdef CONFIG_10A
|
|
||||||
bmi L3C3A
|
bmi L3C3A
|
||||||
.else
|
|
||||||
bmi LDC70
|
|
||||||
.endif
|
|
||||||
jmp OVERFLOW
|
jmp OVERFLOW
|
||||||
LDC70:
|
LDC70:
|
||||||
.ifndef CONFIG_10A
|
|
||||||
lda #$0B
|
|
||||||
.endif
|
|
||||||
L3C2C:
|
L3C2C:
|
||||||
asl a
|
asl a
|
||||||
asl a
|
asl a
|
||||||
@@ -1366,40 +1116,20 @@ L3C3A:
|
|||||||
jmp FIN4
|
jmp FIN4
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
; these values are /1000 of what the labels say
|
|
||||||
CON_99999999_9:
|
|
||||||
.byte $91,$43,$4F,$F8
|
|
||||||
CON_999999999:
|
|
||||||
.byte $94,$74,$23,$F7
|
|
||||||
CON_BILLION:
|
|
||||||
.byte $94,$74,$24,$00
|
|
||||||
.else
|
|
||||||
CON_99999999_9:
|
CON_99999999_9:
|
||||||
.byte $9B,$3E,$BC,$1F,$FD
|
.byte $9B,$3E,$BC,$1F,$FD
|
||||||
CON_999999999:
|
CON_999999999:
|
||||||
.ifndef CONFIG_10A
|
|
||||||
.byte $9E,$6E,$6B,$27,$FE
|
|
||||||
.else
|
|
||||||
.byte $9E,$6E,$6B,$27,$FD
|
.byte $9E,$6E,$6B,$27,$FD
|
||||||
.endif
|
|
||||||
CON_BILLION:
|
CON_BILLION:
|
||||||
.byte $9E,$6E,$6B,$28,$00
|
.byte $9E,$6E,$6B,$28,$00
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; PRINT "IN <LINE #>"
|
; PRINT "IN <LINE #>"
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
INPRT:
|
INPRT:
|
||||||
.ifdef KBD
|
|
||||||
jsr LFE0B
|
|
||||||
.byte " in"
|
|
||||||
.byte 0
|
|
||||||
.else
|
|
||||||
lda #<QT_IN
|
lda #<QT_IN
|
||||||
ldy #>QT_IN
|
ldy #>QT_IN
|
||||||
jsr GOSTROUT2
|
jsr GOSTROUT2
|
||||||
.endif
|
|
||||||
lda CURLIN+1
|
lda CURLIN+1
|
||||||
ldx CURLIN
|
ldx CURLIN
|
||||||
|
|
||||||
@@ -1451,11 +1181,7 @@ L3C8C:
|
|||||||
lda #<CON_BILLION
|
lda #<CON_BILLION
|
||||||
ldy #>CON_BILLION
|
ldy #>CON_BILLION
|
||||||
jsr FMULT
|
jsr FMULT
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
lda #<-6 ; exponent adjustment
|
|
||||||
.else
|
|
||||||
lda #<-9
|
lda #<-9
|
||||||
.endif
|
|
||||||
L3C95:
|
L3C95:
|
||||||
sta INDX
|
sta INDX
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
@@ -1533,11 +1259,9 @@ LDD3A:
|
|||||||
L3CF6:
|
L3CF6:
|
||||||
lda FAC_LAST
|
lda FAC_LAST
|
||||||
clc
|
clc
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
adc DECTBL+3,y
|
adc DECTBL+3,y
|
||||||
sta FAC+4
|
sta FAC+4
|
||||||
lda FAC+3
|
lda FAC+3
|
||||||
.endif
|
|
||||||
adc DECTBL+2,y
|
adc DECTBL+2,y
|
||||||
sta FAC+3
|
sta FAC+3
|
||||||
lda FAC+2
|
lda FAC+2
|
||||||
@@ -1562,9 +1286,7 @@ L3D23:
|
|||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
iny
|
iny
|
||||||
.endif
|
|
||||||
sty VARPNT
|
sty VARPNT
|
||||||
ldy STRNG2
|
ldy STRNG2
|
||||||
iny
|
iny
|
||||||
@@ -1584,10 +1306,6 @@ L3D3E:
|
|||||||
and #$80
|
and #$80
|
||||||
tax
|
tax
|
||||||
cpy #DECTBL_END-DECTBL
|
cpy #DECTBL_END-DECTBL
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
beq LDD96
|
|
||||||
cpy #$3C ; XXX
|
|
||||||
.endif
|
|
||||||
bne L3CF6
|
bne L3CF6
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; NINE DIGITS HAVE BEEN STORED IN STRING. NOW LOOK
|
; NINE DIGITS HAVE BEEN STORED IN STRING. NOW LOOK
|
||||||
@@ -1644,25 +1362,13 @@ L3D94:
|
|||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
CON_HALF:
|
CON_HALF:
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
.byte $80,$00,$00,$00
|
|
||||||
.else
|
|
||||||
.byte $80,$00,$00,$00,$00
|
.byte $80,$00,$00,$00,$00
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; POWERS OF 10 FROM 1E8 DOWN TO 1,
|
; POWERS OF 10 FROM 1E8 DOWN TO 1,
|
||||||
; AS 32-BIT INTEGERS, WITH ALTERNATING SIGNS
|
; AS 32-BIT INTEGERS, WITH ALTERNATING SIGNS
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
DECTBL:
|
DECTBL:
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
.byte $FE,$79,$60 ; -100000
|
|
||||||
.byte $00,$27,$10 ; 10000
|
|
||||||
.byte $FF,$FC,$18 ; -1000
|
|
||||||
.byte $00,$00,$64 ; 100
|
|
||||||
.byte $FF,$FF,$F6 ; -10
|
|
||||||
.byte $00,$00,$01 ; 1
|
|
||||||
.else
|
|
||||||
.byte $FA,$0A,$1F,$00 ; -100000000
|
.byte $FA,$0A,$1F,$00 ; -100000000
|
||||||
.byte $00,$98,$96,$80 ; 10000000
|
.byte $00,$98,$96,$80 ; 10000000
|
||||||
.byte $FF,$F0,$BD,$C0 ; -1000000
|
.byte $FF,$F0,$BD,$C0 ; -1000000
|
||||||
@@ -1672,19 +1378,8 @@ DECTBL:
|
|||||||
.byte $FF,$FF,$FF,$9C ; -100
|
.byte $FF,$FF,$FF,$9C ; -100
|
||||||
.byte $00,$00,$00,$0A ; 10
|
.byte $00,$00,$00,$0A ; 10
|
||||||
.byte $FF,$FF,$FF,$FF ; -1
|
.byte $FF,$FF,$FF,$FF ; -1
|
||||||
.endif
|
|
||||||
DECTBL_END:
|
DECTBL_END:
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
.byte $FF,$DF,$0A,$80 ; TI$
|
|
||||||
.byte $00,$03,$4B,$C0
|
|
||||||
.byte $FF,$FF,$73,$60
|
|
||||||
.byte $00,$00,$0E,$10
|
|
||||||
.byte $FF,$FF,$FD,$A8
|
|
||||||
.byte $00,$00,$00,$3C
|
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_2
|
|
||||||
C_ZERO = CON_HALF + 2
|
C_ZERO = CON_HALF + 2
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "SQR" FUNCTION
|
; "SQR" FUNCTION
|
||||||
@@ -1744,19 +1439,6 @@ L3E0F:
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
CON_LOG_E:
|
|
||||||
.byte $81,$38,$AA,$3B
|
|
||||||
POLY_EXP:
|
|
||||||
.byte $06
|
|
||||||
.byte $74,$63,$90,$8C
|
|
||||||
.byte $77,$23,$0C,$AB
|
|
||||||
.byte $7A,$1E,$94,$00
|
|
||||||
.byte $7C,$63,$42,$80
|
|
||||||
.byte $7E,$75,$FE,$D0
|
|
||||||
.byte $80,$31,$72,$15
|
|
||||||
.byte $81,$00,$00,$00
|
|
||||||
.else
|
|
||||||
CON_LOG_E:
|
CON_LOG_E:
|
||||||
.byte $81,$38,$AA,$3B,$29
|
.byte $81,$38,$AA,$3B,$29
|
||||||
POLY_EXP:
|
POLY_EXP:
|
||||||
@@ -1769,7 +1451,6 @@ POLY_EXP:
|
|||||||
.byte $7E,$75,$FD,$E7,$C6
|
.byte $7E,$75,$FD,$E7,$C6
|
||||||
.byte $80,$31,$72,$18,$10
|
.byte $80,$31,$72,$18,$10
|
||||||
.byte $81,$00,$00,$00,$00
|
.byte $81,$00,$00,$00,$00
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "EXP" FUNCTION
|
; "EXP" FUNCTION
|
||||||
|
|||||||
-95
@@ -82,41 +82,19 @@ NEWSTT:
|
|||||||
jsr ISCNTC
|
jsr ISCNTC
|
||||||
lda TXTPTR
|
lda TXTPTR
|
||||||
ldy TXTPTR+1
|
ldy TXTPTR+1
|
||||||
.if .def(CONFIG_NO_INPUTBUFFER_ZP) && .def(CONFIG_2)
|
|
||||||
cpy #>INPUTBUFFER
|
cpy #>INPUTBUFFER
|
||||||
.ifdef CBM2
|
|
||||||
nop
|
|
||||||
.endif
|
|
||||||
beq LC6D4
|
beq LC6D4
|
||||||
.else
|
|
||||||
; BUG on AppleSoft I,
|
|
||||||
; fixed differently on AppleSoft II (ldx/inx)
|
|
||||||
beq L2683
|
|
||||||
.endif
|
|
||||||
sta OLDTEXT
|
sta OLDTEXT
|
||||||
sty OLDTEXT+1
|
sty OLDTEXT+1
|
||||||
LC6D4:
|
LC6D4:
|
||||||
ldy #$00
|
ldy #$00
|
||||||
L2683:
|
L2683:
|
||||||
lda (TXTPTR),y
|
lda (TXTPTR),y
|
||||||
.ifndef CONFIG_11
|
|
||||||
beq LA5DC ; old: 1 cycle more on generic case
|
|
||||||
cmp #$3A
|
|
||||||
beq NEWSTT2
|
|
||||||
SYNERR1:
|
|
||||||
jmp SYNERR
|
|
||||||
LA5DC:
|
|
||||||
.else
|
|
||||||
bne COLON; new: 1 cycle more on ":" case
|
bne COLON; new: 1 cycle more on ":" case
|
||||||
.endif
|
|
||||||
ldy #$02
|
ldy #$02
|
||||||
lda (TXTPTR),y
|
lda (TXTPTR),y
|
||||||
clc
|
clc
|
||||||
.ifdef CONFIG_2
|
|
||||||
jeq L2701
|
jeq L2701
|
||||||
.else
|
|
||||||
beq L2701
|
|
||||||
.endif
|
|
||||||
iny
|
iny
|
||||||
lda (TXTPTR),y
|
lda (TXTPTR),y
|
||||||
sta CURLIN
|
sta CURLIN
|
||||||
@@ -140,27 +118,12 @@ NEWSTT2:
|
|||||||
; CARRY IS SET
|
; CARRY IS SET
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
EXECUTE_STATEMENT:
|
EXECUTE_STATEMENT:
|
||||||
.ifndef CONFIG_11A
|
|
||||||
beq RET1
|
|
||||||
.else
|
|
||||||
beq RET2
|
beq RET2
|
||||||
.endif
|
|
||||||
.ifndef CONFIG_11
|
|
||||||
sec
|
|
||||||
.endif
|
|
||||||
EXECUTE_STATEMENT1:
|
EXECUTE_STATEMENT1:
|
||||||
sbc #$80
|
sbc #$80
|
||||||
.ifndef CONFIG_11
|
|
||||||
jcc LET ; old: 1 cycle more on instr.
|
|
||||||
.else
|
|
||||||
bcc LET1; new: 1 cycle more on assignment
|
bcc LET1; new: 1 cycle more on assignment
|
||||||
.endif
|
|
||||||
cmp #NUM_TOKENS
|
cmp #NUM_TOKENS
|
||||||
.ifdef CONFIG_2
|
|
||||||
bcs LC721
|
bcs LC721
|
||||||
.else
|
|
||||||
bcs SYNERR1
|
|
||||||
.endif
|
|
||||||
asl a
|
asl a
|
||||||
tay
|
tay
|
||||||
lda TOKEN_ADDRESS_TABLE+1,y
|
lda TOKEN_ADDRESS_TABLE+1,y
|
||||||
@@ -169,7 +132,6 @@ EXECUTE_STATEMENT1:
|
|||||||
pha
|
pha
|
||||||
jmp CHRGET
|
jmp CHRGET
|
||||||
|
|
||||||
.ifdef CONFIG_11
|
|
||||||
LET1:
|
LET1:
|
||||||
jmp LET
|
jmp LET
|
||||||
|
|
||||||
@@ -178,9 +140,7 @@ COLON:
|
|||||||
beq NEWSTT2
|
beq NEWSTT2
|
||||||
SYNERR1:
|
SYNERR1:
|
||||||
jmp SYNERR
|
jmp SYNERR
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef CONFIG_2; GO TO
|
|
||||||
LC721:
|
LC721:
|
||||||
cmp #TOKEN_GO-$80
|
cmp #TOKEN_GO-$80
|
||||||
bne SYNERR1
|
bne SYNERR1
|
||||||
@@ -188,7 +148,6 @@ LC721:
|
|||||||
lda #TOKEN_TO
|
lda #TOKEN_TO
|
||||||
jsr SYNCHR
|
jsr SYNCHR
|
||||||
jmp GOTO
|
jmp GOTO
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "RESTORE" STATEMENT
|
; "RESTORE" STATEMENT
|
||||||
@@ -223,13 +182,11 @@ END2:
|
|||||||
bne RET1
|
bne RET1
|
||||||
lda TXTPTR
|
lda TXTPTR
|
||||||
ldy TXTPTR+1
|
ldy TXTPTR+1
|
||||||
.if .def(CONFIG_NO_INPUTBUFFER_ZP) && .def(CONFIG_2)
|
|
||||||
; BUG on AppleSoft I
|
; BUG on AppleSoft I
|
||||||
; fix exists on AppleSoft II
|
; fix exists on AppleSoft II
|
||||||
; TXTPTR+1 will always be > 0
|
; TXTPTR+1 will always be > 0
|
||||||
ldx CURLIN+1
|
ldx CURLIN+1
|
||||||
inx
|
inx
|
||||||
.endif
|
|
||||||
beq END4
|
beq END4
|
||||||
sta OLDTEXT
|
sta OLDTEXT
|
||||||
sty OLDTEXT+1
|
sty OLDTEXT+1
|
||||||
@@ -244,19 +201,12 @@ END4:
|
|||||||
L2701:
|
L2701:
|
||||||
lda #<QT_BREAK
|
lda #<QT_BREAK
|
||||||
ldy #>QT_BREAK
|
ldy #>QT_BREAK
|
||||||
.ifndef KBD
|
|
||||||
ldx #$00
|
ldx #$00
|
||||||
stx Z14
|
stx Z14
|
||||||
.endif
|
|
||||||
bcc L270E
|
bcc L270E
|
||||||
jmp PRINT_ERROR_LINNUM
|
jmp PRINT_ERROR_LINNUM
|
||||||
L270E:
|
L270E:
|
||||||
jmp RESTART
|
jmp RESTART
|
||||||
.ifdef KBD
|
|
||||||
LE664:
|
|
||||||
tay
|
|
||||||
jmp SNGFLT
|
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "CONT" COMMAND
|
; "CONT" COMMAND
|
||||||
@@ -277,48 +227,3 @@ L271C:
|
|||||||
sty CURLIN+1
|
sty CURLIN+1
|
||||||
RET1:
|
RET1:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.ifdef KBD
|
|
||||||
PRT:
|
|
||||||
jsr GETBYT
|
|
||||||
txa
|
|
||||||
; not ROR bug safe
|
|
||||||
ror a
|
|
||||||
ror a
|
|
||||||
ror a
|
|
||||||
sta $8F
|
|
||||||
rts
|
|
||||||
|
|
||||||
LE68C:
|
|
||||||
ldy #$12
|
|
||||||
LE68E:
|
|
||||||
lda LEA30,y
|
|
||||||
sta $03A2,y
|
|
||||||
dey
|
|
||||||
bpl LE68E
|
|
||||||
rts
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifndef AIM65
|
|
||||||
.if .def(CONFIG_NULL) || .def(CONFIG_PRINTNULLS)
|
|
||||||
; CBM1 has the keyword removed,
|
|
||||||
; but the code is still here
|
|
||||||
NULL:
|
|
||||||
jsr GETBYT
|
|
||||||
bne RET1
|
|
||||||
inx
|
|
||||||
cpx #NULL_MAX
|
|
||||||
bcs L2739
|
|
||||||
dex
|
|
||||||
stx Z15
|
|
||||||
L2738:
|
|
||||||
rts
|
|
||||||
L2739:
|
|
||||||
jmp IQERR
|
|
||||||
.endif
|
|
||||||
.ifndef CONFIG_11A
|
|
||||||
CLEAR:
|
|
||||||
bne RET1
|
|
||||||
jmp CLEARC
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
-14
@@ -57,13 +57,8 @@ L2809:
|
|||||||
lda TXTTAB
|
lda TXTTAB
|
||||||
ldx TXTTAB+1
|
ldx TXTTAB+1
|
||||||
L280D:
|
L280D:
|
||||||
.ifdef KBD
|
|
||||||
jsr LF457
|
|
||||||
bne UNDERR
|
|
||||||
.else
|
|
||||||
jsr FL1
|
jsr FL1
|
||||||
bcc UNDERR
|
bcc UNDERR
|
||||||
.endif
|
|
||||||
lda LOWTRX
|
lda LOWTRX
|
||||||
sbc #$01
|
sbc #$01
|
||||||
sta TXTPTR
|
sta TXTPTR
|
||||||
@@ -79,11 +74,7 @@ L281E:
|
|||||||
POP:
|
POP:
|
||||||
bne L281E
|
bne L281E
|
||||||
lda #$FF
|
lda #$FF
|
||||||
.ifdef CONFIG_2A
|
|
||||||
sta FORPNT+1 ; bugfix, wrong in AppleSoft II
|
sta FORPNT+1 ; bugfix, wrong in AppleSoft II
|
||||||
.else
|
|
||||||
sta FORPNT
|
|
||||||
.endif
|
|
||||||
jsr GTFORPNT
|
jsr GTFORPNT
|
||||||
txs
|
txs
|
||||||
cmp #TOKEN_GOSUB
|
cmp #TOKEN_GOSUB
|
||||||
@@ -151,13 +142,8 @@ L2866:
|
|||||||
beq L2852
|
beq L2852
|
||||||
iny
|
iny
|
||||||
cmp #$22
|
cmp #$22
|
||||||
.ifndef CONFIG_11
|
|
||||||
beq L285E; old: swap & cont is faster
|
|
||||||
bne L2866
|
|
||||||
.else
|
|
||||||
bne L2866; new: cont is faster
|
bne L2866; new: cont is faster
|
||||||
beq L285E
|
beq L285E
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "IF" STATEMENT
|
; "IF" STATEMENT
|
||||||
|
|||||||
+1
-31
@@ -1,33 +1,3 @@
|
|||||||
.segment "HEADER"
|
.segment "HEADER"
|
||||||
.ifdef W65C816SXB
|
|
||||||
; Disable emulation mode (is left on from the monitor)
|
|
||||||
.setcpu "65816"
|
|
||||||
SEC ;set carry for emulation mode
|
|
||||||
XCE ;go into emulation mode
|
|
||||||
.setcpu "65C02"
|
|
||||||
jsr INITUSBSERIAL
|
|
||||||
|
|
||||||
; Add a small delay to allow monitor to connect the terminal after
|
; Empty
|
||||||
; starting execution
|
|
||||||
ldy #0
|
|
||||||
ldx #0
|
|
||||||
@loop:
|
|
||||||
dex
|
|
||||||
bne @loop
|
|
||||||
dey
|
|
||||||
bne @loop
|
|
||||||
jmp COLD_START
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef KBD
|
|
||||||
jmp LE68C
|
|
||||||
.byte $00,$13,$56
|
|
||||||
.endif
|
|
||||||
.ifdef AIM65
|
|
||||||
jmp COLD_START
|
|
||||||
jmp RESTART
|
|
||||||
.word AYINT,GIVAYF
|
|
||||||
.endif
|
|
||||||
.ifdef SYM1
|
|
||||||
jmp PR_WRITTEN_BY
|
|
||||||
.endif
|
|
||||||
+2
-341
@@ -1,56 +1,20 @@
|
|||||||
.segment "INIT"
|
.segment "INIT"
|
||||||
|
|
||||||
.ifdef KBD
|
|
||||||
FNDLIN2:
|
|
||||||
php
|
|
||||||
jmp FNDLIN
|
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
PR_WRITTEN_BY:
|
PR_WRITTEN_BY:
|
||||||
.ifndef KBD
|
|
||||||
.ifndef CONFIG_CBM_ALL
|
|
||||||
.ifndef AIM65
|
|
||||||
.ifndef SYM1
|
|
||||||
lda #<QT_WRITTEN_BY
|
lda #<QT_WRITTEN_BY
|
||||||
ldy #>QT_WRITTEN_BY
|
ldy #>QT_WRITTEN_BY
|
||||||
jsr STROUT
|
jsr STROUT
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
COLD_START:
|
COLD_START:
|
||||||
.ifdef SYM1
|
|
||||||
jsr ACCESS
|
|
||||||
.endif
|
|
||||||
.ifdef KBD
|
|
||||||
lda #<LFD81
|
|
||||||
sta $03A0
|
|
||||||
lda #>LFD81
|
|
||||||
sta $03A1
|
|
||||||
lda #$20
|
|
||||||
sta $0480
|
|
||||||
lda $0352
|
|
||||||
sta $04
|
|
||||||
lda $0353
|
|
||||||
sta $05
|
|
||||||
.else
|
|
||||||
.ifndef CBM2
|
|
||||||
ldx #$FF
|
ldx #$FF
|
||||||
stx CURLIN+1
|
stx CURLIN+1
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_NO_INPUTBUFFER_ZP
|
|
||||||
ldx #$FB
|
ldx #$FB
|
||||||
.elseif .def(AIM65)
|
|
||||||
ldx #$FE
|
|
||||||
.endif
|
|
||||||
txs
|
txs
|
||||||
.ifndef CONFIG_CBM_ALL
|
|
||||||
lda #<COLD_START
|
lda #<COLD_START
|
||||||
ldy #>COLD_START
|
ldy #>COLD_START
|
||||||
sta GORESTART+1
|
sta GORESTART+1
|
||||||
sty GORESTART+2
|
sty GORESTART+2
|
||||||
.ifndef AIM65
|
|
||||||
sta GOSTROUT+1
|
sta GOSTROUT+1
|
||||||
sty GOSTROUT+2
|
sty GOSTROUT+2
|
||||||
lda #<AYINT
|
lda #<AYINT
|
||||||
@@ -61,69 +25,20 @@ COLD_START:
|
|||||||
ldy #>GIVAYF
|
ldy #>GIVAYF
|
||||||
sta GOGIVEAYF
|
sta GOGIVEAYF
|
||||||
sty GOGIVEAYF+1
|
sty GOGIVEAYF+1
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
lda #$4C
|
lda #$4C
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
sta JMPADRS
|
|
||||||
.endif
|
|
||||||
sta GORESTART
|
sta GORESTART
|
||||||
.ifdef AIM65
|
|
||||||
sta JMPADRS
|
|
||||||
sta ATN
|
|
||||||
sta GOSTROUT
|
|
||||||
.else
|
|
||||||
.ifndef CONFIG_CBM_ALL
|
|
||||||
sta GOSTROUT
|
sta GOSTROUT
|
||||||
sta JMPADRS
|
sta JMPADRS
|
||||||
.endif
|
|
||||||
.ifdef SYM1
|
|
||||||
sta USR1
|
|
||||||
sta USR3
|
|
||||||
sta USR2
|
|
||||||
.endif
|
|
||||||
.if (!.def(CONFIG_RAM)) && (!.def(CONFIG_CBM_ALL))
|
|
||||||
sta USR
|
sta USR
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifndef CONFIG_RAM
|
|
||||||
.ifdef APPLE
|
|
||||||
lda #<USR_FUNC
|
|
||||||
ldy #>USR_FUNC
|
|
||||||
.else
|
|
||||||
lda #<IQERR
|
lda #<IQERR
|
||||||
ldy #>IQERR
|
ldy #>IQERR
|
||||||
.endif
|
|
||||||
.ifdef AIM65
|
|
||||||
sta ATN+1
|
|
||||||
sty ATN+2
|
|
||||||
sta GOSTROUT+1
|
|
||||||
sty GOSTROUT+2
|
|
||||||
.else
|
|
||||||
sta USR+1
|
sta USR+1
|
||||||
sty USR+2
|
sty USR+2
|
||||||
.ifdef SYM1
|
|
||||||
sta USR1+1
|
|
||||||
sty USR1+2
|
|
||||||
lda #<DUMPT
|
|
||||||
ldy #>DUMPT
|
|
||||||
sta USR2+1
|
|
||||||
sty USR2+2
|
|
||||||
lda #<L8C78
|
|
||||||
ldy #>L8C78
|
|
||||||
sta USR3+1
|
|
||||||
sty USR3+2
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.ifndef CBM1
|
|
||||||
lda #WIDTH
|
lda #WIDTH
|
||||||
sta Z17
|
sta Z17
|
||||||
lda #WIDTH2
|
lda #WIDTH2
|
||||||
sta Z18
|
sta Z18
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
|
|
||||||
; All non-CONFIG_SMALL versions of BASIC have
|
; All non-CONFIG_SMALL versions of BASIC have
|
||||||
; the same bug here: While the number of bytes
|
; the same bug here: While the number of bytes
|
||||||
@@ -141,190 +56,81 @@ COLD_START:
|
|||||||
; the number of bytes by adding 3 - this
|
; the number of bytes by adding 3 - this
|
||||||
; copies four bytes too many, which is no
|
; copies four bytes too many, which is no
|
||||||
; problem.
|
; problem.
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
.ifdef KBD
|
|
||||||
ldx #GENERIC_CHRGET_END-GENERIC_CHRGET+4
|
|
||||||
.else
|
|
||||||
ldx #GENERIC_CHRGET_END-GENERIC_CHRGET
|
|
||||||
.endif
|
|
||||||
.else
|
|
||||||
ldx #GENERIC_CHRGET_END-GENERIC_CHRGET-1 ; XXX
|
ldx #GENERIC_CHRGET_END-GENERIC_CHRGET-1 ; XXX
|
||||||
.endif
|
|
||||||
L4098:
|
L4098:
|
||||||
lda GENERIC_CHRGET-1,x
|
lda GENERIC_CHRGET-1,x
|
||||||
sta CHRGET-1,x
|
sta CHRGET-1,x
|
||||||
dex
|
dex
|
||||||
bne L4098
|
bne L4098
|
||||||
.ifdef CONFIG_2
|
|
||||||
lda #$03
|
lda #$03
|
||||||
sta DSCLEN
|
sta DSCLEN
|
||||||
.endif
|
|
||||||
.ifndef KBD
|
|
||||||
txa
|
txa
|
||||||
sta SHIFTSIGNEXT
|
sta SHIFTSIGNEXT
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
sta CURDVC
|
|
||||||
.endif
|
|
||||||
sta LASTPT+1
|
sta LASTPT+1
|
||||||
.ifndef AIM65
|
|
||||||
.if .defined(CONFIG_NULL) || .defined(CONFIG_PRINTNULLS)
|
|
||||||
sta Z15
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.ifndef CONFIG_11
|
|
||||||
sta POSX
|
|
||||||
.endif
|
|
||||||
pha
|
pha
|
||||||
sta Z14
|
sta Z14
|
||||||
.ifndef CBM2
|
|
||||||
.ifndef AIM65
|
|
||||||
.ifndef SYM1
|
|
||||||
.ifndef MICROTAN
|
|
||||||
lda #$03
|
lda #$03
|
||||||
sta DSCLEN
|
sta DSCLEN
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.ifndef CONFIG_11
|
|
||||||
lda #$2C
|
|
||||||
sta LINNUM+1
|
|
||||||
.endif
|
|
||||||
jsr CRDO
|
jsr CRDO
|
||||||
.endif
|
|
||||||
.ifdef CBM2
|
|
||||||
inx
|
|
||||||
stx INPUTBUFFER-3
|
|
||||||
stx INPUTBUFFER-4
|
|
||||||
.endif
|
|
||||||
.ifdef APPLE
|
|
||||||
lda #$01
|
lda #$01
|
||||||
sta INPUTBUFFER-3
|
sta INPUTBUFFER-3
|
||||||
sta INPUTBUFFER-4
|
sta INPUTBUFFER-4
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_INPUTBUFFER_0200
|
|
||||||
lda #$01
|
|
||||||
sta INPUTBUFFER-3
|
|
||||||
sta INPUTBUFFER-4
|
|
||||||
.endif
|
|
||||||
ldx #TEMPST
|
ldx #TEMPST
|
||||||
stx TEMPPT
|
stx TEMPPT
|
||||||
.ifndef CONFIG_CBM_ALL
|
lda #<$BC00 ; Start of IO
|
||||||
.ifdef KILIAN
|
|
||||||
lda #<$BC00
|
|
||||||
sta MEMSIZ
|
sta MEMSIZ
|
||||||
lda #>$BC00
|
lda #>$BC00
|
||||||
sta MEMSIZ+1
|
sta MEMSIZ+1
|
||||||
jmp L4106
|
jmp L4106
|
||||||
.else
|
|
||||||
lda #<QT_MEMORY_SIZE
|
|
||||||
ldy #>QT_MEMORY_SIZE
|
|
||||||
jsr STROUT
|
|
||||||
.endif
|
|
||||||
.ifdef APPLE
|
|
||||||
jsr INLINX
|
|
||||||
.else
|
|
||||||
jsr NXIN
|
jsr NXIN
|
||||||
.endif
|
|
||||||
stx TXTPTR
|
stx TXTPTR
|
||||||
sty TXTPTR+1
|
sty TXTPTR+1
|
||||||
jsr CHRGET
|
jsr CHRGET
|
||||||
.ifndef AIM65
|
|
||||||
.ifndef SYM1
|
|
||||||
cmp #$41
|
cmp #$41
|
||||||
bne SKIPPED
|
bne SKIPPED
|
||||||
jmp PR_WRITTEN_BY
|
jmp PR_WRITTEN_BY
|
||||||
SKIPPED:
|
SKIPPED:
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
tay
|
tay
|
||||||
bne L40EE
|
bne L40EE
|
||||||
.endif
|
|
||||||
.ifndef CBM2
|
|
||||||
lda #<RAMSTART2
|
lda #<RAMSTART2
|
||||||
.endif
|
|
||||||
ldy #>RAMSTART2
|
ldy #>RAMSTART2
|
||||||
.ifdef CONFIG_2
|
|
||||||
sta TXTTAB
|
sta TXTTAB
|
||||||
sty TXTTAB+1
|
sty TXTTAB+1
|
||||||
.endif
|
|
||||||
sta LINNUM
|
sta LINNUM
|
||||||
sty LINNUM+1
|
sty LINNUM+1
|
||||||
.ifdef CBM2
|
|
||||||
tay
|
|
||||||
.else
|
|
||||||
ldy #$00
|
ldy #$00
|
||||||
.endif
|
|
||||||
L40D7:
|
L40D7:
|
||||||
inc LINNUM
|
inc LINNUM
|
||||||
bne L40DD
|
bne L40DD
|
||||||
inc LINNUM+1
|
inc LINNUM+1
|
||||||
.ifdef CBM1
|
|
||||||
; CBM: hard RAM top limit is $8000
|
|
||||||
lda LINNUM+1
|
|
||||||
cmp #$80
|
|
||||||
beq L40FA
|
|
||||||
.endif
|
|
||||||
.ifdef CBM2
|
|
||||||
; optimized version of the CBM1 code
|
|
||||||
bmi L40FA
|
|
||||||
.endif
|
|
||||||
.if .def(AIM65)
|
|
||||||
; AIM65: hard RAM top limit is $A000
|
|
||||||
lda LINNUM+1
|
|
||||||
cmp #$A0
|
|
||||||
beq L40FA
|
|
||||||
.endif
|
|
||||||
L40DD:
|
L40DD:
|
||||||
.ifdef CONFIG_2
|
|
||||||
lda #$55 ; 01010101 / 10101010
|
lda #$55 ; 01010101 / 10101010
|
||||||
.else
|
|
||||||
lda #$92 ; 10010010 / 00100100
|
|
||||||
.endif
|
|
||||||
sta (LINNUM),y
|
sta (LINNUM),y
|
||||||
cmp (LINNUM),y
|
cmp (LINNUM),y
|
||||||
bne L40FA
|
bne L40FA
|
||||||
asl a
|
asl a
|
||||||
sta (LINNUM),y
|
sta (LINNUM),y
|
||||||
cmp (LINNUM),y
|
cmp (LINNUM),y
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
beq L40D7
|
|
||||||
.else
|
|
||||||
.ifndef CONFIG_11
|
|
||||||
beq L40D7; old: faster
|
|
||||||
bne L40FA
|
|
||||||
.else
|
|
||||||
bne L40FA; new: slower
|
bne L40FA; new: slower
|
||||||
beq L40D7
|
beq L40D7
|
||||||
.endif
|
|
||||||
L40EE:
|
L40EE:
|
||||||
jsr CHRGOT
|
jsr CHRGOT
|
||||||
jsr LINGET
|
jsr LINGET
|
||||||
tay
|
tay
|
||||||
beq L40FA
|
beq L40FA
|
||||||
jmp SYNERR
|
jmp SYNERR
|
||||||
.endif
|
|
||||||
L40FA:
|
L40FA:
|
||||||
lda LINNUM
|
lda LINNUM
|
||||||
ldy LINNUM+1
|
ldy LINNUM+1
|
||||||
sta MEMSIZ
|
sta MEMSIZ
|
||||||
sty MEMSIZ+1
|
sty MEMSIZ+1
|
||||||
.if !(.def(MICROTAN) || .def(AIM65) || .def(SYM1))
|
|
||||||
sta FRETOP
|
sta FRETOP
|
||||||
sty FRETOP+1
|
sty FRETOP+1
|
||||||
.endif
|
|
||||||
L4106:
|
L4106:
|
||||||
.ifndef CONFIG_CBM_ALL
|
|
||||||
.ifdef APPLE
|
|
||||||
lda #$FF
|
|
||||||
jmp L2829
|
|
||||||
.word STROUT ; PATCH!
|
|
||||||
jsr NXIN
|
|
||||||
.else
|
|
||||||
lda #<QT_TERMINAL_WIDTH
|
lda #<QT_TERMINAL_WIDTH
|
||||||
ldy #>QT_TERMINAL_WIDTH
|
ldy #>QT_TERMINAL_WIDTH
|
||||||
jsr STROUT
|
jsr STROUT
|
||||||
jsr NXIN
|
jsr NXIN
|
||||||
.endif
|
|
||||||
stx TXTPTR
|
stx TXTPTR
|
||||||
sty TXTPTR+1
|
sty TXTPTR+1
|
||||||
jsr CHRGET
|
jsr CHRGET
|
||||||
@@ -339,87 +145,29 @@ L4106:
|
|||||||
L2829:
|
L2829:
|
||||||
sta Z17
|
sta Z17
|
||||||
L4129:
|
L4129:
|
||||||
.ifdef AIM65
|
|
||||||
sbc #$0A
|
|
||||||
.else
|
|
||||||
sbc #$0E
|
sbc #$0E
|
||||||
.endif
|
|
||||||
bcs L4129
|
bcs L4129
|
||||||
eor #$FF
|
eor #$FF
|
||||||
.ifdef AIM65
|
|
||||||
sbc #$08
|
|
||||||
.else
|
|
||||||
sbc #$0C
|
sbc #$0C
|
||||||
.endif
|
|
||||||
clc
|
clc
|
||||||
adc Z17
|
adc Z17
|
||||||
sta Z18
|
sta Z18
|
||||||
.endif
|
|
||||||
L4136:
|
L4136:
|
||||||
.ifdef CONFIG_RAM
|
|
||||||
lda #<QT_WANT
|
|
||||||
ldy #>QT_WANT
|
|
||||||
jsr STROUT
|
|
||||||
jsr NXIN
|
|
||||||
stx TXTPTR
|
|
||||||
sty TXTPTR+1
|
|
||||||
jsr CHRGET
|
|
||||||
ldx #<RAMSTART1
|
|
||||||
ldy #>RAMSTART1
|
|
||||||
cmp #'Y'
|
|
||||||
beq L4183
|
|
||||||
cmp #'A'
|
|
||||||
beq L4157
|
|
||||||
cmp #'N'
|
|
||||||
bne L4136
|
|
||||||
L4157:
|
|
||||||
ldx #<IQERR
|
|
||||||
ldy #>IQERR
|
|
||||||
stx UNFNC_ATN
|
|
||||||
sty UNFNC_ATN+1
|
|
||||||
ldx #<ATN ; overwrite starting
|
|
||||||
ldy #>ATN ; with ATN
|
|
||||||
cmp #'A'
|
|
||||||
beq L4183
|
|
||||||
ldx #<IQERR
|
|
||||||
ldy #>IQERR
|
|
||||||
stx UNFNC_COS
|
|
||||||
sty UNFNC_COS+1
|
|
||||||
stx UNFNC_TAN
|
|
||||||
sty UNFNC_TAN+1
|
|
||||||
stx UNFNC_SIN
|
|
||||||
sty UNFNC_SIN+1
|
|
||||||
ldx #<SIN_COS_TAN_ATN ; overwrite
|
|
||||||
ldy #>SIN_COS_TAN_ATN ; all of trig.s
|
|
||||||
L4183:
|
|
||||||
.else
|
|
||||||
ldx #<RAMSTART2
|
ldx #<RAMSTART2
|
||||||
ldy #>RAMSTART2
|
ldy #>RAMSTART2
|
||||||
.endif
|
|
||||||
stx TXTTAB
|
stx TXTTAB
|
||||||
sty TXTTAB+1
|
sty TXTTAB+1
|
||||||
ldy #$00
|
ldy #$00
|
||||||
tya
|
tya
|
||||||
sta (TXTTAB),y
|
sta (TXTTAB),y
|
||||||
inc TXTTAB
|
inc TXTTAB
|
||||||
.ifndef CBM2
|
|
||||||
bne L4192
|
bne L4192
|
||||||
inc TXTTAB+1
|
inc TXTTAB+1
|
||||||
L4192:
|
L4192:
|
||||||
.endif
|
|
||||||
.if CONFIG_SCRTCH_ORDER = 1
|
|
||||||
jsr SCRTCH
|
|
||||||
.endif
|
|
||||||
lda TXTTAB
|
lda TXTTAB
|
||||||
ldy TXTTAB+1
|
ldy TXTTAB+1
|
||||||
jsr REASON
|
jsr REASON
|
||||||
.ifdef CBM2
|
|
||||||
lda #<QT_BASIC
|
|
||||||
ldy #>QT_BASIC
|
|
||||||
jsr STROUT
|
|
||||||
.else
|
|
||||||
jsr CRDO
|
jsr CRDO
|
||||||
.endif
|
|
||||||
lda MEMSIZ
|
lda MEMSIZ
|
||||||
sec
|
sec
|
||||||
sbc TXTTAB
|
sbc TXTTAB
|
||||||
@@ -430,119 +178,32 @@ L4192:
|
|||||||
lda #<QT_BYTES_FREE
|
lda #<QT_BYTES_FREE
|
||||||
ldy #>QT_BYTES_FREE
|
ldy #>QT_BYTES_FREE
|
||||||
jsr STROUT
|
jsr STROUT
|
||||||
.if CONFIG_SCRTCH_ORDER = 2
|
|
||||||
jsr SCRTCH
|
jsr SCRTCH
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
jmp RESTART
|
|
||||||
.elseif .def(AIM65)
|
|
||||||
lda #<CRDO
|
|
||||||
ldy #>CRDO
|
|
||||||
sta GORESTART+1
|
|
||||||
sty GORESTART+2
|
|
||||||
jmp RESTART
|
|
||||||
.else
|
|
||||||
lda #<STROUT
|
lda #<STROUT
|
||||||
ldy #>STROUT
|
ldy #>STROUT
|
||||||
sta GOSTROUT+1
|
sta GOSTROUT+1
|
||||||
sty GOSTROUT+2
|
sty GOSTROUT+2
|
||||||
.if CONFIG_SCRTCH_ORDER = 3
|
|
||||||
jsr SCRTCH
|
|
||||||
.endif
|
|
||||||
lda #<RESTART
|
lda #<RESTART
|
||||||
ldy #>RESTART
|
ldy #>RESTART
|
||||||
sta GORESTART+1
|
sta GORESTART+1
|
||||||
sty GORESTART+2
|
sty GORESTART+2
|
||||||
jmp (GORESTART+1)
|
jmp (GORESTART+1)
|
||||||
.endif
|
|
||||||
|
|
||||||
.if .def(CONFIG_RAM) || .def(OSI)
|
|
||||||
; OSI is compiled for ROM, but includes
|
|
||||||
; this unused string
|
|
||||||
QT_WANT:
|
|
||||||
.byte "WANT SIN-COS-TAN-ATN"
|
|
||||||
.byte 0
|
|
||||||
.endif
|
|
||||||
QT_WRITTEN_BY:
|
QT_WRITTEN_BY:
|
||||||
.ifndef CONFIG_CBM_ALL
|
|
||||||
.if !(.def(AIM65) || .def(SYM1))
|
|
||||||
.ifdef APPLE
|
|
||||||
asc80 "COPYRIGHT 1977 BY MICROSOFT CO"
|
|
||||||
.byte CR,0
|
|
||||||
.else
|
|
||||||
.byte CR,LF,$0C ; FORM FEED
|
.byte CR,LF,$0C ; FORM FEED
|
||||||
.ifndef CONFIG_11
|
|
||||||
.byte "WRITTEN BY RICHARD W. WEILAND."
|
|
||||||
.else
|
|
||||||
.byte "WRITTEN BY WEILAND & GATES"
|
.byte "WRITTEN BY WEILAND & GATES"
|
||||||
.endif
|
|
||||||
.byte CR,LF,0
|
.byte CR,LF,0
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
QT_MEMORY_SIZE:
|
QT_MEMORY_SIZE:
|
||||||
.byte "MEMORY SIZE"
|
.byte "MEMORY SIZE"
|
||||||
.byte 0
|
.byte 0
|
||||||
QT_TERMINAL_WIDTH:
|
QT_TERMINAL_WIDTH:
|
||||||
.if !(.def(AIM65) || .def(SYM1))
|
|
||||||
.byte "TERMINAL "
|
.byte "TERMINAL "
|
||||||
.endif
|
|
||||||
.byte "WIDTH"
|
.byte "WIDTH"
|
||||||
.byte 0
|
.byte 0
|
||||||
.endif
|
|
||||||
QT_BYTES_FREE:
|
QT_BYTES_FREE:
|
||||||
.byte " BYTES FREE"
|
.byte " BYTES FREE"
|
||||||
.ifdef CBM1
|
|
||||||
.elseif .def(CBM2)
|
|
||||||
.byte CR,0
|
|
||||||
.elseif .def(APPLE)
|
|
||||||
.byte 0
|
|
||||||
.else
|
|
||||||
.byte CR,LF,CR,LF
|
.byte CR,LF,CR,LF
|
||||||
.endif
|
|
||||||
QT_BASIC:
|
QT_BASIC:
|
||||||
.ifdef OSI
|
|
||||||
.byte "OSI 6502 BASIC VERSION 1.0 REV 3.2"
|
|
||||||
.endif
|
|
||||||
.ifdef KIM
|
|
||||||
.byte "MOS TECH 6502 BASIC V1.1"
|
|
||||||
.endif
|
|
||||||
.ifdef MICROTAN
|
|
||||||
.byte "MICROTAN BASIC"
|
|
||||||
.endif
|
|
||||||
.ifdef AIM65
|
|
||||||
.byte " AIM 65 BASIC V1.1"
|
|
||||||
.endif
|
|
||||||
.ifdef SYM1
|
|
||||||
.byte "BASIC V1.1"
|
|
||||||
.endif
|
|
||||||
.ifdef CBM1
|
|
||||||
.byte $13 ; HOME
|
|
||||||
.byte "*** COMMODORE BASIC ***"
|
|
||||||
.byte $11,$11,$11,0 ; DOWN/DOWN/DOWN
|
|
||||||
.endif
|
|
||||||
.ifdef CBM2
|
|
||||||
.byte "### COMMODORE BASIC ###"
|
|
||||||
.byte CR,CR,0
|
|
||||||
.endif
|
|
||||||
.ifdef APPLE
|
|
||||||
.byte LF,CR,LF
|
|
||||||
.byte "APPLE BASIC V1.1"
|
|
||||||
.endif
|
|
||||||
.ifndef CONFIG_CBM_ALL
|
|
||||||
.byte CR,LF
|
.byte CR,LF
|
||||||
.ifdef MICROTAN
|
|
||||||
.byte "(C) 1980 MICROSOFT"
|
|
||||||
.elseif .def(AIM65)
|
|
||||||
.byte 0
|
|
||||||
.byte "(C) 1978 MICROSOFT"
|
|
||||||
.elseif .def(SYM1)
|
|
||||||
.byte "COPYRIGHT 1978 SYNERTEK SYSTEMS CORP."
|
|
||||||
.else
|
|
||||||
.byte "COPYRIGHT 1977 BY MICROSOFT CO."
|
.byte "COPYRIGHT 1977 BY MICROSOFT CO."
|
||||||
.endif
|
|
||||||
.byte CR,LF
|
.byte CR,LF
|
||||||
.ifndef AIM65
|
|
||||||
.byte 0
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
-107
@@ -1,123 +1,44 @@
|
|||||||
.segment "CODE"
|
.segment "CODE"
|
||||||
|
|
||||||
.ifndef CONFIG_NO_LINE_EDITING
|
|
||||||
L2420:
|
L2420:
|
||||||
.ifdef OSI
|
|
||||||
jsr OUTDO
|
|
||||||
.endif
|
|
||||||
dex
|
dex
|
||||||
.ifdef AIM65
|
|
||||||
bmi L2423
|
|
||||||
jsr PSLS
|
|
||||||
jmp INLIN2
|
|
||||||
LB35F:
|
|
||||||
jsr OUTDO
|
|
||||||
.else
|
|
||||||
bpl INLIN2
|
bpl INLIN2
|
||||||
.endif
|
|
||||||
L2423:
|
L2423:
|
||||||
.ifdef OSI
|
|
||||||
jsr OUTDO
|
|
||||||
.endif
|
|
||||||
jsr CRDO
|
jsr CRDO
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; READ A LINE, AND STRIP OFF SIGN BITS
|
; READ A LINE, AND STRIP OFF SIGN BITS
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
.ifndef KBD
|
|
||||||
INLIN:
|
INLIN:
|
||||||
.ifdef APPLE
|
|
||||||
ldx #$DD
|
|
||||||
INLIN1:
|
|
||||||
stx $33
|
|
||||||
jsr L2900
|
|
||||||
cpx #$EF
|
|
||||||
bcs L0C32
|
|
||||||
ldx #$EF
|
|
||||||
L0C32:
|
|
||||||
lda #$00
|
|
||||||
sta INPUTBUFFER,x
|
|
||||||
ldx #<(INPUTBUFFER-1)
|
|
||||||
ldy #>(INPUTBUFFER-1)
|
|
||||||
rts
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifndef APPLE
|
|
||||||
ldx #$00
|
ldx #$00
|
||||||
INLIN2:
|
INLIN2:
|
||||||
jsr GETLN
|
jsr GETLN
|
||||||
.ifdef AIM65
|
|
||||||
cmp #$1A
|
|
||||||
bne INLINAIM
|
|
||||||
jsr DU13
|
|
||||||
jmp INLIN
|
|
||||||
INLINAIM:
|
|
||||||
.endif
|
|
||||||
.ifndef CONFIG_NO_LINE_EDITING
|
|
||||||
cmp #$07
|
cmp #$07
|
||||||
beq L2443
|
beq L2443
|
||||||
.endif
|
|
||||||
cmp #$0D
|
cmp #$0D
|
||||||
beq L2453
|
beq L2453
|
||||||
.ifndef CONFIG_NO_LINE_EDITING
|
|
||||||
cmp #$20
|
cmp #$20
|
||||||
.ifdef AIM65
|
|
||||||
bcc L244E
|
|
||||||
.else
|
|
||||||
bcc INLIN2
|
bcc INLIN2
|
||||||
.endif
|
|
||||||
.ifdef MICROTAN
|
|
||||||
cmp #$80
|
|
||||||
.else
|
|
||||||
.ifdef AIM65
|
|
||||||
cmp #$7F
|
|
||||||
beq L2420
|
|
||||||
.endif
|
|
||||||
cmp #$7D
|
cmp #$7D
|
||||||
.endif
|
|
||||||
bcs INLIN2
|
bcs INLIN2
|
||||||
cmp #$40 ; @
|
cmp #$40 ; @
|
||||||
.ifdef AIM65
|
|
||||||
beq LB35F
|
|
||||||
.else
|
|
||||||
beq L2423
|
beq L2423
|
||||||
.ifdef MICROTAN
|
|
||||||
cmp #$7F ; DEL
|
|
||||||
.else
|
|
||||||
cmp #$5F ; _
|
cmp #$5F ; _
|
||||||
.endif
|
|
||||||
beq L2420
|
beq L2420
|
||||||
.endif
|
|
||||||
L2443:
|
L2443:
|
||||||
.ifdef MICROTAN
|
|
||||||
cpx #$4F
|
|
||||||
.else
|
|
||||||
cpx #$47
|
cpx #$47
|
||||||
.endif
|
|
||||||
bcs L244C
|
bcs L244C
|
||||||
.endif
|
|
||||||
sta INPUTBUFFER,x
|
sta INPUTBUFFER,x
|
||||||
inx
|
inx
|
||||||
.if .def(OSI) || .def(AIM65)
|
|
||||||
.byte $2C
|
|
||||||
.else
|
|
||||||
bne INLIN2
|
bne INLIN2
|
||||||
.endif
|
|
||||||
L244C:
|
L244C:
|
||||||
.ifndef CONFIG_NO_LINE_EDITING
|
|
||||||
lda #$07 ; BEL
|
lda #$07 ; BEL
|
||||||
L244E:
|
L244E:
|
||||||
jsr OUTDO
|
jsr OUTDO
|
||||||
bne INLIN2
|
bne INLIN2
|
||||||
.endif
|
|
||||||
L2453:
|
L2453:
|
||||||
jmp L29B9
|
jmp L29B9
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifndef KBD
|
|
||||||
.ifndef APPLE
|
|
||||||
GETLN:
|
GETLN:
|
||||||
.ifdef CONFIG_FILE
|
.ifdef CONFIG_FILE
|
||||||
jsr CHRIN
|
jsr CHRIN
|
||||||
@@ -126,34 +47,7 @@ GETLN:
|
|||||||
.else
|
.else
|
||||||
jsr MONRDKEY
|
jsr MONRDKEY
|
||||||
.endif
|
.endif
|
||||||
.ifdef OSI
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
and #$7F
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.ifdef APPLE
|
|
||||||
RDKEY:
|
|
||||||
jsr LFD0C
|
|
||||||
and #$7F
|
|
||||||
.endif
|
|
||||||
.ifdef SYM1
|
|
||||||
cmp #$14
|
|
||||||
.else
|
|
||||||
cmp #$0F
|
cmp #$0F
|
||||||
.endif
|
|
||||||
bne L2465
|
bne L2465
|
||||||
pha
|
pha
|
||||||
lda Z14
|
lda Z14
|
||||||
@@ -162,4 +56,3 @@ RDKEY:
|
|||||||
pla
|
pla
|
||||||
L2465:
|
L2465:
|
||||||
rts
|
rts
|
||||||
.endif
|
|
||||||
-140
@@ -8,25 +8,14 @@
|
|||||||
INPUTERR:
|
INPUTERR:
|
||||||
lda INPUTFLG
|
lda INPUTFLG
|
||||||
beq RESPERR ; INPUT
|
beq RESPERR ; INPUT
|
||||||
.ifndef SYM1
|
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
.ifdef CONFIG_10A
|
|
||||||
; without this, it treats GET errors
|
; without this, it treats GET errors
|
||||||
; like READ errors
|
; like READ errors
|
||||||
bmi L2A63 ; READ
|
bmi L2A63 ; READ
|
||||||
ldy #$FF ; GET
|
ldy #$FF ; GET
|
||||||
bne L2A67
|
bne L2A67
|
||||||
L2A63:
|
L2A63:
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_CBM1_PATCHES
|
|
||||||
jsr PATCH5
|
|
||||||
nop
|
|
||||||
.else
|
|
||||||
lda Z8C
|
lda Z8C
|
||||||
ldy Z8C+1
|
ldy Z8C+1
|
||||||
.endif
|
|
||||||
L2A67:
|
L2A67:
|
||||||
sta CURLIN
|
sta CURLIN
|
||||||
sty CURLIN+1
|
sty CURLIN+1
|
||||||
@@ -53,8 +42,6 @@ RTS20:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "GET" STATEMENT
|
; "GET" STATEMENT
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
.ifndef SYM1
|
|
||||||
GET:
|
GET:
|
||||||
jsr ERRDIR
|
jsr ERRDIR
|
||||||
; CBM: if GET#, then switch input
|
; CBM: if GET#, then switch input
|
||||||
@@ -71,12 +58,8 @@ LCAB6:
|
|||||||
.endif
|
.endif
|
||||||
ldx #<(INPUTBUFFER+1)
|
ldx #<(INPUTBUFFER+1)
|
||||||
ldy #>(INPUTBUFFER+1)
|
ldy #>(INPUTBUFFER+1)
|
||||||
.ifdef CONFIG_NO_INPUTBUFFER_ZP
|
|
||||||
lda #$00
|
lda #$00
|
||||||
sta INPUTBUFFER+1
|
sta INPUTBUFFER+1
|
||||||
.else
|
|
||||||
sty INPUTBUFFER+1
|
|
||||||
.endif
|
|
||||||
lda #$40
|
lda #$40
|
||||||
jsr PROCESS_INPUT_LIST
|
jsr PROCESS_INPUT_LIST
|
||||||
; CBM: if GET#, then switch input back
|
; CBM: if GET#, then switch input back
|
||||||
@@ -85,8 +68,6 @@ LCAB6:
|
|||||||
bne LCAD8
|
bne LCAD8
|
||||||
.endif
|
.endif
|
||||||
rts
|
rts
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "INPUT#" STATEMENT
|
; "INPUT#" STATEMENT
|
||||||
@@ -109,30 +90,13 @@ LCAD8:
|
|||||||
LCAE0:
|
LCAE0:
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.ifdef SYM1
|
|
||||||
LC9B0:
|
|
||||||
jsr OUTQUES ; '?'
|
|
||||||
jsr OUTSP
|
|
||||||
jmp L2A9E
|
|
||||||
.endif
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "INPUT" STATEMENT
|
; "INPUT" STATEMENT
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
INPUT:
|
INPUT:
|
||||||
.ifndef KBD
|
|
||||||
lsr Z14
|
lsr Z14
|
||||||
.endif
|
|
||||||
.ifdef AIM65
|
|
||||||
lda PRIFLG
|
|
||||||
sta ZBE
|
|
||||||
jsr LCFFA
|
|
||||||
.endif
|
|
||||||
cmp #$22
|
cmp #$22
|
||||||
.ifdef SYM1
|
|
||||||
bne LC9B0
|
|
||||||
.else
|
|
||||||
bne L2A9E
|
bne L2A9E
|
||||||
.endif
|
|
||||||
jsr STRTXT
|
jsr STRTXT
|
||||||
lda #$3B
|
lda #$3B
|
||||||
jsr SYNCHR
|
jsr SYNCHR
|
||||||
@@ -142,16 +106,7 @@ L2A9E:
|
|||||||
lda #$2C
|
lda #$2C
|
||||||
sta INPUTBUFFER-1
|
sta INPUTBUFFER-1
|
||||||
LCAF8:
|
LCAF8:
|
||||||
.ifdef APPLE
|
|
||||||
jsr INLINX
|
|
||||||
.elseif .def(SYM1)
|
|
||||||
jsr INLIN
|
|
||||||
.else
|
|
||||||
jsr NXIN
|
jsr NXIN
|
||||||
.endif
|
|
||||||
.ifdef KBD
|
|
||||||
bmi L2ABE
|
|
||||||
.else
|
|
||||||
.ifdef CONFIG_FILE
|
.ifdef CONFIG_FILE
|
||||||
lda CURDVC
|
lda CURDVC
|
||||||
beq LCB0C
|
beq LCB0C
|
||||||
@@ -168,21 +123,10 @@ LCB0C:
|
|||||||
lda CURDVC
|
lda CURDVC
|
||||||
bne LCAF8
|
bne LCAF8
|
||||||
.endif
|
.endif
|
||||||
.ifdef CONFIG_CBM1_PATCHES
|
|
||||||
jmp PATCH1
|
|
||||||
.else
|
|
||||||
clc
|
clc
|
||||||
jmp CONTROL_C_TYPED
|
jmp CONTROL_C_TYPED
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
|
|
||||||
NXIN:
|
NXIN:
|
||||||
.ifdef KBD
|
|
||||||
jsr INLIN
|
|
||||||
bmi RTS20
|
|
||||||
pla
|
|
||||||
jmp LE86C
|
|
||||||
.else
|
|
||||||
.ifdef CONFIG_FILE
|
.ifdef CONFIG_FILE
|
||||||
lda CURDVC
|
lda CURDVC
|
||||||
bne LCB21
|
bne LCB21
|
||||||
@@ -191,17 +135,6 @@ NXIN:
|
|||||||
jsr OUTSP
|
jsr OUTSP
|
||||||
LCB21:
|
LCB21:
|
||||||
jmp INLIN
|
jmp INLIN
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
|
||||||
; "GETC" STATEMENT
|
|
||||||
; ----------------------------------------------------------------------------
|
|
||||||
.ifdef KBD
|
|
||||||
GETC:
|
|
||||||
jsr CONINT
|
|
||||||
jsr LF43D
|
|
||||||
jmp LE664
|
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "READ" STATEMENT
|
; "READ" STATEMENT
|
||||||
@@ -209,17 +142,11 @@ GETC:
|
|||||||
READ:
|
READ:
|
||||||
ldx DATPTR
|
ldx DATPTR
|
||||||
ldy DATPTR+1
|
ldy DATPTR+1
|
||||||
.ifdef CONFIG_NO_READ_Y_IS_ZERO_HACK
|
|
||||||
; AppleSoft II, too
|
; AppleSoft II, too
|
||||||
lda #$98 ; READ
|
lda #$98 ; READ
|
||||||
.byte $2C
|
.byte $2C
|
||||||
L2ABE:
|
L2ABE:
|
||||||
lda #$00 ; INPUT
|
lda #$00 ; INPUT
|
||||||
.else
|
|
||||||
.byte $A9 ; LDA #$98
|
|
||||||
L2ABE:
|
|
||||||
tya
|
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; PROCESS INPUT LIST
|
; PROCESS INPUT LIST
|
||||||
@@ -248,19 +175,8 @@ PROCESS_INPUT_ITEM:
|
|||||||
jsr CHRGOT
|
jsr CHRGOT
|
||||||
bne INSTART
|
bne INSTART
|
||||||
bit INPUTFLG
|
bit INPUTFLG
|
||||||
.ifndef CONFIG_SMALL ; GET
|
|
||||||
.ifndef SYM1
|
|
||||||
bvc L2AF0
|
bvc L2AF0
|
||||||
.ifdef MICROTAN
|
|
||||||
jsr MONRDKEY2
|
|
||||||
.elseif .def(AIM65)
|
|
||||||
jsr MONRDKEY2
|
|
||||||
.else
|
|
||||||
jsr MONRDKEY
|
jsr MONRDKEY
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_IO_MSB
|
|
||||||
and #$7F
|
|
||||||
.endif
|
|
||||||
sta INPUTBUFFER
|
sta INPUTBUFFER
|
||||||
; BUG: The beq/bne L2AF8 below is supposed
|
; BUG: The beq/bne L2AF8 below is supposed
|
||||||
; to be always taken. For this to happen,
|
; to be always taken. For this to happen,
|
||||||
@@ -275,31 +191,16 @@ PROCESS_INPUT_ITEM:
|
|||||||
; Microsoft fixed this somewhere after KIM
|
; Microsoft fixed this somewhere after KIM
|
||||||
; and before MICROTAN, by using beq instead
|
; and before MICROTAN, by using beq instead
|
||||||
; of bne in the ZP case.
|
; of bne in the ZP case.
|
||||||
.ifdef CBM1
|
|
||||||
ldy #>(INPUTBUFFER-1)
|
|
||||||
ldx #<(INPUTBUFFER-1)
|
|
||||||
.else
|
|
||||||
ldx #<(INPUTBUFFER-1)
|
ldx #<(INPUTBUFFER-1)
|
||||||
ldy #>(INPUTBUFFER-1)
|
ldy #>(INPUTBUFFER-1)
|
||||||
.endif
|
|
||||||
.if .def(CONFIG_2) && (!.def(CONFIG_NO_INPUTBUFFER_ZP))
|
|
||||||
beq L2AF8 ; always
|
|
||||||
.else
|
|
||||||
bne L2AF8 ; always
|
bne L2AF8 ; always
|
||||||
.endif
|
|
||||||
L2AF0:
|
L2AF0:
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
bmi FINDATA
|
bmi FINDATA
|
||||||
.ifdef CONFIG_FILE
|
.ifdef CONFIG_FILE
|
||||||
lda CURDVC
|
lda CURDVC
|
||||||
bne LCB64
|
bne LCB64
|
||||||
.endif
|
.endif
|
||||||
.ifdef KBD
|
|
||||||
jsr OUTQUESSP
|
|
||||||
.else
|
|
||||||
jsr OUTQUES
|
jsr OUTQUES
|
||||||
.endif
|
|
||||||
LCB64:
|
LCB64:
|
||||||
jsr NXIN
|
jsr NXIN
|
||||||
L2AF8:
|
L2AF8:
|
||||||
@@ -311,24 +212,14 @@ INSTART:
|
|||||||
jsr CHRGET
|
jsr CHRGET
|
||||||
bit VALTYP
|
bit VALTYP
|
||||||
bpl L2B34
|
bpl L2B34
|
||||||
.ifndef CONFIG_SMALL ; GET
|
|
||||||
.ifndef SYM1
|
|
||||||
bit INPUTFLG
|
bit INPUTFLG
|
||||||
bvc L2B10
|
bvc L2B10
|
||||||
.ifdef CONFIG_CBM1_PATCHES
|
|
||||||
lda #$00
|
|
||||||
jsr PATCH4
|
|
||||||
nop
|
|
||||||
.else
|
|
||||||
inx
|
inx
|
||||||
stx TXTPTR
|
stx TXTPTR
|
||||||
lda #$00
|
lda #$00
|
||||||
sta CHARAC
|
sta CHARAC
|
||||||
beq L2B1C
|
beq L2B1C
|
||||||
.endif
|
|
||||||
L2B10:
|
L2B10:
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
sta CHARAC
|
sta CHARAC
|
||||||
cmp #$22
|
cmp #$22
|
||||||
beq L2B1D
|
beq L2B1D
|
||||||
@@ -347,21 +238,13 @@ L2B1D:
|
|||||||
L2B28:
|
L2B28:
|
||||||
jsr STRLT2
|
jsr STRLT2
|
||||||
jsr POINT
|
jsr POINT
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
jsr LETSTRING
|
|
||||||
.else
|
|
||||||
jsr PUTSTR
|
jsr PUTSTR
|
||||||
.endif
|
|
||||||
jmp INPUT_MORE
|
jmp INPUT_MORE
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
L2B34:
|
L2B34:
|
||||||
jsr FIN
|
jsr FIN
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
jsr SETFOR
|
|
||||||
.else
|
|
||||||
lda VALTYP+1
|
lda VALTYP+1
|
||||||
jsr LET2
|
jsr LET2
|
||||||
.endif
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
INPUT_MORE:
|
INPUT_MORE:
|
||||||
jsr CHRGOT
|
jsr CHRGOT
|
||||||
@@ -411,17 +294,10 @@ INPDONE:
|
|||||||
lda INPTR
|
lda INPTR
|
||||||
ldy INPTR+1
|
ldy INPTR+1
|
||||||
ldx INPUTFLG
|
ldx INPUTFLG
|
||||||
.if .def(CONFIG_SMALL) && (!.def(CONFIG_11))
|
|
||||||
beq L2B94 ; INPUT
|
|
||||||
.else
|
|
||||||
bpl L2B94; INPUT or GET
|
bpl L2B94; INPUT or GET
|
||||||
.endif
|
|
||||||
jmp SETDA
|
jmp SETDA
|
||||||
L2B94:
|
L2B94:
|
||||||
ldy #$00
|
ldy #$00
|
||||||
.ifdef AIM65
|
|
||||||
jsr LB8B1
|
|
||||||
.endif
|
|
||||||
lda (INPTR),y
|
lda (INPTR),y
|
||||||
beq L2BA1
|
beq L2BA1
|
||||||
.ifdef CONFIG_FILE
|
.ifdef CONFIG_FILE
|
||||||
@@ -436,24 +312,8 @@ L2BA1:
|
|||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
ERREXTRA:
|
ERREXTRA:
|
||||||
.ifdef KBD
|
|
||||||
.byte "?Extra"
|
|
||||||
.else
|
|
||||||
.byte "?EXTRA IGNORED"
|
.byte "?EXTRA IGNORED"
|
||||||
.endif
|
|
||||||
.byte $0D,$0A,$00
|
.byte $0D,$0A,$00
|
||||||
ERRREENTRY:
|
ERRREENTRY:
|
||||||
.ifdef KBD
|
|
||||||
.byte "What?"
|
|
||||||
.else
|
|
||||||
.byte "?REDO FROM START"
|
.byte "?REDO FROM START"
|
||||||
.endif
|
|
||||||
.byte $0D,$0A,$00
|
.byte $0D,$0A,$00
|
||||||
.ifdef KBD
|
|
||||||
LEA30:
|
|
||||||
.byte "B"
|
|
||||||
.byte $FD
|
|
||||||
.byte "GsBASIC"
|
|
||||||
.byte $00,$1B,$0D,$13
|
|
||||||
.byte " BASIC"
|
|
||||||
.endif
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
.segment "EXTRA"
|
|
||||||
.export MONRDKEY, MONCOUT, LOAD; SAVE; ISCNTC
|
|
||||||
|
|
||||||
LOAD:
|
|
||||||
rts
|
|
||||||
|
|
||||||
SAVE:
|
|
||||||
rts
|
|
||||||
|
|
||||||
ISCNTC:
|
|
||||||
lda $BC01
|
|
||||||
cmp #$03
|
|
||||||
beq @break
|
|
||||||
rts
|
|
||||||
@break:
|
|
||||||
jmp STOP
|
|
||||||
|
|
||||||
MONRDKEY:
|
|
||||||
lda $BC01
|
|
||||||
bmi @skipped
|
|
||||||
sta $BC00 ; echo
|
|
||||||
@skipped:
|
|
||||||
rts
|
|
||||||
|
|
||||||
MONCOUT:
|
|
||||||
sta $BC00
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
.segment "RESETVEC"
|
|
||||||
.word $0000 ; NMI vector
|
|
||||||
.word RESET ; RESET vector
|
|
||||||
.word $0000 ; IRQ vector
|
|
||||||
+1
-15
@@ -1,17 +1,3 @@
|
|||||||
.segment "CODE"
|
.segment "CODE"
|
||||||
|
|
||||||
.ifdef APPLE
|
; None yet
|
||||||
.include "apple_loadsave.s"
|
|
||||||
.endif
|
|
||||||
.ifdef KIM
|
|
||||||
.include "kim_loadsave.s"
|
|
||||||
.endif
|
|
||||||
.ifdef MICROTAN
|
|
||||||
.include "microtan_loadsave.s"
|
|
||||||
.endif
|
|
||||||
.ifdef AIM65
|
|
||||||
.include "aim65_loadsave.s"
|
|
||||||
.endif
|
|
||||||
.ifdef SYM1
|
|
||||||
.include "sym1_loadsave.s"
|
|
||||||
.endif
|
|
||||||
@@ -3,58 +3,14 @@
|
|||||||
.segment "CODE"
|
.segment "CODE"
|
||||||
|
|
||||||
QT_ERROR:
|
QT_ERROR:
|
||||||
.ifdef KBD
|
|
||||||
.byte " err"
|
|
||||||
.else
|
|
||||||
.ifdef APPLE
|
|
||||||
.byte " ERR"
|
|
||||||
.byte $07,$07
|
|
||||||
.else
|
|
||||||
.byte " ERROR"
|
.byte " ERROR"
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.byte 0
|
.byte 0
|
||||||
|
|
||||||
.ifndef KBD
|
|
||||||
QT_IN:
|
QT_IN:
|
||||||
.byte " IN "
|
.byte " IN "
|
||||||
.byte $00
|
.byte $00
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef KBD
|
|
||||||
.byte $54,$D2 ; ???
|
|
||||||
OKPRT:
|
|
||||||
jsr PRIMM
|
|
||||||
.byte CR,CR,">>",CR,LF
|
|
||||||
.byte 0
|
|
||||||
rts
|
|
||||||
nop
|
|
||||||
.else
|
|
||||||
.ifndef AIM65
|
|
||||||
QT_OK:
|
QT_OK:
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
.byte CR,LF,"READY.",CR,LF
|
|
||||||
.else
|
|
||||||
.ifdef APPLE
|
|
||||||
; binary patch!
|
|
||||||
.byte CR,0,0,"K",CR,LF
|
|
||||||
.else
|
|
||||||
.byte CR,LF,"OK",CR,LF
|
.byte CR,LF,"OK",CR,LF
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.byte 0
|
.byte 0
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
QT_BREAK:
|
QT_BREAK:
|
||||||
|
|
||||||
.ifdef KBD
|
|
||||||
.byte CR,LF," Brk"
|
|
||||||
.byte 0
|
|
||||||
.byte $54,$D0 ; ???
|
|
||||||
.elseif .def(MICROTAN) || .def(AIM65)
|
|
||||||
.byte CR,LF,"BREAK"
|
.byte CR,LF,"BREAK"
|
||||||
.byte 0
|
.byte 0
|
||||||
.else
|
|
||||||
.byte CR,LF,"BREAK"
|
|
||||||
.byte 0
|
|
||||||
.endif
|
|
||||||
-72
@@ -60,10 +60,8 @@ LET:
|
|||||||
sty FORPNT+1
|
sty FORPNT+1
|
||||||
lda #TOKEN_EQUAL
|
lda #TOKEN_EQUAL
|
||||||
jsr SYNCHR
|
jsr SYNCHR
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
lda VALTYP+1
|
lda VALTYP+1
|
||||||
pha
|
pha
|
||||||
.endif
|
|
||||||
lda VALTYP
|
lda VALTYP
|
||||||
pha
|
pha
|
||||||
jsr FRMEVL
|
jsr FRMEVL
|
||||||
@@ -71,7 +69,6 @@ LET:
|
|||||||
rol a
|
rol a
|
||||||
jsr CHKVAL
|
jsr CHKVAL
|
||||||
bne LETSTRING
|
bne LETSTRING
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
pla
|
pla
|
||||||
LET2:
|
LET2:
|
||||||
bpl L2923
|
bpl L2923
|
||||||
@@ -85,79 +82,18 @@ LET2:
|
|||||||
sta (FORPNT),y
|
sta (FORPNT),y
|
||||||
rts
|
rts
|
||||||
L2923:
|
L2923:
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; REAL VARIABLE = EXPRESSION
|
; REAL VARIABLE = EXPRESSION
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
jmp SETFOR
|
jmp SETFOR
|
||||||
LETSTRING:
|
LETSTRING:
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
pla
|
pla
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; INSTALL STRING, DESCRIPTOR ADDRESS IS AT FAC+3,4
|
; INSTALL STRING, DESCRIPTOR ADDRESS IS AT FAC+3,4
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
PUTSTR:
|
PUTSTR:
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
ldy FORPNT+1
|
|
||||||
.ifdef CBM1
|
|
||||||
cpy #$D0 ; TI$
|
|
||||||
.else
|
|
||||||
cpy #$DE
|
|
||||||
.endif
|
|
||||||
bne LC92B
|
|
||||||
jsr FREFAC
|
|
||||||
cmp #$06
|
|
||||||
.ifdef CBM2
|
|
||||||
bne IQERR1
|
|
||||||
.else
|
|
||||||
jne IQERR
|
|
||||||
.endif
|
|
||||||
ldy #$00
|
|
||||||
sty FAC
|
|
||||||
sty FACSIGN
|
|
||||||
LC8E8:
|
|
||||||
sty STRNG2
|
|
||||||
jsr LC91C
|
|
||||||
jsr MUL10
|
|
||||||
inc STRNG2
|
|
||||||
ldy STRNG2
|
|
||||||
jsr LC91C
|
|
||||||
jsr COPY_FAC_TO_ARG_ROUNDED
|
|
||||||
tax
|
|
||||||
beq LC902
|
|
||||||
inx
|
|
||||||
txa
|
|
||||||
jsr LD9BF
|
|
||||||
LC902:
|
|
||||||
ldy STRNG2
|
|
||||||
iny
|
|
||||||
cpy #$06
|
|
||||||
bne LC8E8
|
|
||||||
jsr MUL10
|
|
||||||
jsr QINT
|
|
||||||
ldx #$02
|
|
||||||
sei
|
|
||||||
LC912:
|
|
||||||
lda FAC+2,x
|
|
||||||
sta TISTR,x
|
|
||||||
dex
|
|
||||||
bpl LC912
|
|
||||||
cli
|
|
||||||
rts
|
|
||||||
LC91C:
|
|
||||||
lda (INDEX),y
|
|
||||||
jsr CHRGOT2
|
|
||||||
bcc LC926
|
|
||||||
IQERR1:
|
|
||||||
jmp IQERR
|
|
||||||
LC926:
|
|
||||||
sbc #$2F
|
|
||||||
jmp ADDACC
|
|
||||||
LC92B:
|
|
||||||
.endif
|
|
||||||
ldy #$02
|
ldy #$02
|
||||||
lda (FAC_LAST-1),y
|
lda (FAC_LAST-1),y
|
||||||
cmp FRETOP+1
|
cmp FRETOP+1
|
||||||
@@ -205,14 +141,6 @@ L2963:
|
|||||||
sta (FORPNT),y
|
sta (FORPNT),y
|
||||||
RET5:
|
RET5:
|
||||||
rts
|
rts
|
||||||
.ifdef AIM65
|
|
||||||
LB89D:
|
|
||||||
cmp #$21
|
|
||||||
bne RET5
|
|
||||||
lda #$80
|
|
||||||
sta PRIFLG
|
|
||||||
jmp CHRGET
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef CONFIG_FILE
|
.ifdef CONFIG_FILE
|
||||||
PRINTH:
|
PRINTH:
|
||||||
|
|||||||
-16
@@ -49,11 +49,9 @@ ERRDIR:
|
|||||||
inx
|
inx
|
||||||
bne RTS9
|
bne RTS9
|
||||||
ldx #ERR_ILLDIR
|
ldx #ERR_ILLDIR
|
||||||
.ifdef CONFIG_2
|
|
||||||
.byte $2C
|
.byte $2C
|
||||||
LD288:
|
LD288:
|
||||||
ldx #ERR_UNDEFFN
|
ldx #ERR_UNDEFFN
|
||||||
.endif
|
|
||||||
L31AF:
|
L31AF:
|
||||||
jmp ERROR
|
jmp ERROR
|
||||||
DEF:
|
DEF:
|
||||||
@@ -67,9 +65,7 @@ DEF:
|
|||||||
jsr CHKCLS
|
jsr CHKCLS
|
||||||
lda #TOKEN_EQUAL
|
lda #TOKEN_EQUAL
|
||||||
jsr SYNCHR
|
jsr SYNCHR
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
pha
|
pha
|
||||||
.endif
|
|
||||||
lda VARPNT+1
|
lda VARPNT+1
|
||||||
pha
|
pha
|
||||||
lda VARPNT
|
lda VARPNT
|
||||||
@@ -102,24 +98,14 @@ L31F3:
|
|||||||
pla
|
pla
|
||||||
sta FNCNAM+1
|
sta FNCNAM+1
|
||||||
ldy #$02
|
ldy #$02
|
||||||
.ifndef CONFIG_2
|
|
||||||
ldx #ERR_UNDEFFN
|
|
||||||
.endif
|
|
||||||
lda (FNCNAM),y
|
lda (FNCNAM),y
|
||||||
.ifndef CONFIG_2
|
|
||||||
beq L31AF
|
|
||||||
.endif
|
|
||||||
sta VARPNT
|
sta VARPNT
|
||||||
tax
|
tax
|
||||||
iny
|
iny
|
||||||
lda (FNCNAM),y
|
lda (FNCNAM),y
|
||||||
.ifdef CONFIG_2
|
|
||||||
beq LD288
|
beq LD288
|
||||||
.endif
|
|
||||||
sta VARPNT+1
|
sta VARPNT+1
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
iny
|
iny
|
||||||
.endif
|
|
||||||
L3219:
|
L3219:
|
||||||
lda (VARPNT),y
|
lda (VARPNT),y
|
||||||
pha
|
pha
|
||||||
@@ -166,9 +152,7 @@ L3250:
|
|||||||
pla
|
pla
|
||||||
iny
|
iny
|
||||||
sta (FNCNAM),y
|
sta (FNCNAM),y
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
pla
|
pla
|
||||||
iny
|
iny
|
||||||
sta (FNCNAM),y
|
sta (FNCNAM),y
|
||||||
.endif
|
|
||||||
rts
|
rts
|
||||||
-76
@@ -1,76 +0,0 @@
|
|||||||
; KBD specific patches
|
|
||||||
|
|
||||||
.segment "CODE"
|
|
||||||
|
|
||||||
.ifdef KBD
|
|
||||||
VARTAB_MINUS_2_TO_AY:
|
|
||||||
lda VARTAB
|
|
||||||
sec
|
|
||||||
sbc #$02
|
|
||||||
ldy VARTAB+1
|
|
||||||
bcs LF42C
|
|
||||||
dey
|
|
||||||
LF42C:
|
|
||||||
rts
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
|
||||||
GET_UPPER:
|
|
||||||
lda INPUTBUFFERX,x
|
|
||||||
LF430:
|
|
||||||
cmp #'a'
|
|
||||||
bcc LF43A
|
|
||||||
cmp #'z'+1
|
|
||||||
bcs LF43A
|
|
||||||
LF438:
|
|
||||||
sbc #$1F
|
|
||||||
LF43A:
|
|
||||||
rts
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
|
||||||
GETLN:
|
|
||||||
ldx #$5D
|
|
||||||
LF43D:
|
|
||||||
txa
|
|
||||||
and #$7F
|
|
||||||
cmp $0340
|
|
||||||
beq LF44D
|
|
||||||
sta $0340
|
|
||||||
lda #$03
|
|
||||||
jsr LDE48
|
|
||||||
LF44D:
|
|
||||||
jsr LDE7F
|
|
||||||
bne RTS4
|
|
||||||
cpx #$80
|
|
||||||
bcc LF44D
|
|
||||||
RTS4:
|
|
||||||
rts
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
|
||||||
LF457:
|
|
||||||
lda TXTTAB
|
|
||||||
ldx TXTTAB+1
|
|
||||||
LF45B:
|
|
||||||
sta JMPADRS+1
|
|
||||||
stx JMPADRS+2
|
|
||||||
ldy #$01
|
|
||||||
lda (JMPADRS+1),y
|
|
||||||
beq LF438
|
|
||||||
iny
|
|
||||||
iny
|
|
||||||
lda (JMPADRS+1),y
|
|
||||||
dey
|
|
||||||
cmp LINNUM+1
|
|
||||||
bne LF472
|
|
||||||
lda (JMPADRS+1),y
|
|
||||||
cmp LINNUM
|
|
||||||
LF472:
|
|
||||||
bcs LF43A
|
|
||||||
dey
|
|
||||||
lda (JMPADRS+1),y
|
|
||||||
tax
|
|
||||||
dey
|
|
||||||
lda (JMPADRS+1),y
|
|
||||||
bcc LF45B
|
|
||||||
LF47D:
|
|
||||||
jmp (JMPADRS+1)
|
|
||||||
.endif
|
|
||||||
@@ -24,7 +24,6 @@
|
|||||||
.include "array.s"
|
.include "array.s"
|
||||||
.include "misc2.s"
|
.include "misc2.s"
|
||||||
.include "string.s"
|
.include "string.s"
|
||||||
.include "misc3.s"
|
|
||||||
.include "poke.s"
|
.include "poke.s"
|
||||||
.include "float.s"
|
.include "float.s"
|
||||||
.include "chrget.s"
|
.include "chrget.s"
|
||||||
|
|||||||
-33
@@ -1,6 +1,5 @@
|
|||||||
.segment "CODE"
|
.segment "CODE"
|
||||||
|
|
||||||
.ifndef CONFIG_NO_POKE
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; EVALUATE "EXP1,EXP2"
|
; EVALUATE "EXP1,EXP2"
|
||||||
;
|
;
|
||||||
@@ -24,12 +23,7 @@ COMBYTE:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
GETADR:
|
GETADR:
|
||||||
lda FACSIGN
|
lda FACSIGN
|
||||||
.ifdef APPLE
|
|
||||||
nop ; PATCH
|
|
||||||
nop
|
|
||||||
.else
|
|
||||||
bmi GOIQ
|
bmi GOIQ
|
||||||
.endif
|
|
||||||
lda FAC
|
lda FAC
|
||||||
cmp #$91
|
cmp #$91
|
||||||
bcs GOIQ
|
bcs GOIQ
|
||||||
@@ -44,40 +38,18 @@ GETADR:
|
|||||||
; "PEEK" FUNCTION
|
; "PEEK" FUNCTION
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
PEEK:
|
PEEK:
|
||||||
.ifdef CONFIG_PEEK_SAVE_LINNUM
|
|
||||||
lda LINNUM+1
|
lda LINNUM+1
|
||||||
pha
|
pha
|
||||||
lda LINNUM
|
lda LINNUM
|
||||||
pha
|
pha
|
||||||
.endif
|
|
||||||
jsr GETADR
|
jsr GETADR
|
||||||
ldy #$00
|
ldy #$00
|
||||||
.ifdef CBM1
|
|
||||||
; disallow PEEK between $C000 and $DFFF
|
|
||||||
cmp #$C0
|
|
||||||
bcc LD6F3
|
|
||||||
cmp #$E1
|
|
||||||
bcc LD6F6
|
|
||||||
LD6F3:
|
|
||||||
.endif
|
|
||||||
.ifdef CBM2
|
|
||||||
nop ; patch that disables the compares above
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
.endif
|
|
||||||
lda (LINNUM),y
|
lda (LINNUM),y
|
||||||
tay
|
tay
|
||||||
.ifdef CONFIG_PEEK_SAVE_LINNUM
|
|
||||||
pla
|
pla
|
||||||
sta LINNUM
|
sta LINNUM
|
||||||
pla
|
pla
|
||||||
sta LINNUM+1
|
sta LINNUM+1
|
||||||
.endif
|
|
||||||
LD6F6:
|
LD6F6:
|
||||||
jmp SNGFLT
|
jmp SNGFLT
|
||||||
|
|
||||||
@@ -99,11 +71,7 @@ WAIT:
|
|||||||
stx FORPNT
|
stx FORPNT
|
||||||
ldx #$00
|
ldx #$00
|
||||||
jsr CHRGOT
|
jsr CHRGOT
|
||||||
.ifdef CONFIG_EASTER_EGG
|
|
||||||
beq EASTER_EGG
|
beq EASTER_EGG
|
||||||
.else
|
|
||||||
beq L3628
|
|
||||||
.endif
|
|
||||||
jsr COMBYTE
|
jsr COMBYTE
|
||||||
L3628:
|
L3628:
|
||||||
stx FORPNT+1
|
stx FORPNT+1
|
||||||
@@ -115,4 +83,3 @@ L362C:
|
|||||||
beq L362C
|
beq L362C
|
||||||
RTS3:
|
RTS3:
|
||||||
rts
|
rts
|
||||||
.endif
|
|
||||||
+2
-250
@@ -1,16 +1,5 @@
|
|||||||
.segment "CODE"
|
.segment "CODE"
|
||||||
|
|
||||||
.ifdef AIM65
|
|
||||||
PRINT:
|
|
||||||
lda PRIFLG
|
|
||||||
sta ZBE
|
|
||||||
jsr L297E
|
|
||||||
LB8B1:
|
|
||||||
lda ZBE
|
|
||||||
sta PRIFLG
|
|
||||||
rts
|
|
||||||
.endif
|
|
||||||
|
|
||||||
PRSTRING:
|
PRSTRING:
|
||||||
jsr STRPRT
|
jsr STRPRT
|
||||||
L297E:
|
L297E:
|
||||||
@@ -19,30 +8,16 @@ L297E:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "PRINT" STATEMENT
|
; "PRINT" STATEMENT
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
.ifndef AIM65
|
|
||||||
PRINT:
|
PRINT:
|
||||||
.endif
|
|
||||||
beq CRDO
|
beq CRDO
|
||||||
PRINT2:
|
PRINT2:
|
||||||
beq L29DD
|
beq L29DD
|
||||||
.ifdef AIM65
|
|
||||||
jsr LB89D
|
|
||||||
beq L29DD
|
|
||||||
.endif
|
|
||||||
cmp #TOKEN_TAB
|
cmp #TOKEN_TAB
|
||||||
beq L29F5
|
beq L29F5
|
||||||
cmp #TOKEN_SPC
|
cmp #TOKEN_SPC
|
||||||
.ifdef CONFIG_2
|
|
||||||
clc ; also AppleSoft II
|
clc ; also AppleSoft II
|
||||||
.endif
|
|
||||||
beq L29F5
|
beq L29F5
|
||||||
cmp #','
|
cmp #','
|
||||||
; Pre-KIM had no CLC. KIM added the CLC
|
|
||||||
; here. Post-KIM moved the CLC up...
|
|
||||||
; (makes no sense on KIM, liveness = 0)
|
|
||||||
.if .def(CONFIG_11A) && (!.def(CONFIG_2))
|
|
||||||
clc
|
|
||||||
.endif
|
|
||||||
beq L29DE
|
beq L29DE
|
||||||
cmp #$3B
|
cmp #$3B
|
||||||
beq L2A0D
|
beq L2A0D
|
||||||
@@ -51,216 +26,77 @@ PRINT2:
|
|||||||
bmi PRSTRING
|
bmi PRSTRING
|
||||||
jsr FOUT
|
jsr FOUT
|
||||||
jsr STRLIT
|
jsr STRLIT
|
||||||
.ifndef CONFIG_NO_CR
|
|
||||||
ldy #$00
|
ldy #$00
|
||||||
lda (FAC_LAST-1),y
|
lda (FAC_LAST-1),y
|
||||||
clc
|
clc
|
||||||
adc POSX
|
adc POSX
|
||||||
.ifdef KBD
|
|
||||||
cmp #$28
|
|
||||||
.else
|
|
||||||
cmp Z17
|
cmp Z17
|
||||||
.endif
|
|
||||||
bcc L29B1
|
bcc L29B1
|
||||||
jsr CRDO
|
jsr CRDO
|
||||||
L29B1:
|
L29B1:
|
||||||
.endif
|
|
||||||
jsr STRPRT
|
jsr STRPRT
|
||||||
.ifdef KBD
|
|
||||||
jmp L297E
|
|
||||||
.else
|
|
||||||
jsr OUTSP
|
jsr OUTSP
|
||||||
bne L297E ; branch always
|
bne L297E ; branch always
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef KBD
|
|
||||||
; PATCHES
|
|
||||||
LE86C:
|
|
||||||
pla
|
|
||||||
jmp CONTROL_C_TYPED
|
|
||||||
LE870:
|
|
||||||
jsr GETBYT
|
|
||||||
txa
|
|
||||||
LE874:
|
|
||||||
beq LE878
|
|
||||||
bpl LE8F2
|
|
||||||
LE878:
|
|
||||||
jmp IQERR
|
|
||||||
; PATCHES
|
|
||||||
.endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.ifndef KBD
|
|
||||||
L29B9:
|
L29B9:
|
||||||
.ifdef CONFIG_INPUTBUFFER_0200
|
|
||||||
lda #$00
|
lda #$00
|
||||||
sta INPUTBUFFER,x
|
sta INPUTBUFFER,x
|
||||||
ldx #<(INPUTBUFFER-1)
|
ldx #<(INPUTBUFFER-1)
|
||||||
ldy #>(INPUTBUFFER-1)
|
ldy #>(INPUTBUFFER-1)
|
||||||
.else
|
|
||||||
.ifndef APPLE
|
|
||||||
ldy #$00
|
|
||||||
sty INPUTBUFFER,x
|
|
||||||
ldx #LINNUM+1
|
|
||||||
.endif
|
|
||||||
.if .def(MICROTAN) || .def(SYM1)
|
|
||||||
bne CRDO2
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_FILE
|
.ifdef CONFIG_FILE
|
||||||
lda CURDVC
|
lda CURDVC
|
||||||
bne L29DD
|
bne L29DD
|
||||||
.endif
|
.endif
|
||||||
.endif
|
|
||||||
|
|
||||||
|
|
||||||
CRDO:
|
CRDO:
|
||||||
.if .def(CONFIG_PRINTNULLS) && .def(CONFIG_FILE)
|
lda #CR
|
||||||
lda CURDVC
|
|
||||||
bne LC9D8
|
|
||||||
sta POSX
|
sta POSX
|
||||||
LC9D8:
|
|
||||||
.endif
|
|
||||||
lda #CRLF_1
|
|
||||||
.ifndef CONFIG_CBM_ALL
|
|
||||||
sta POSX
|
|
||||||
.endif
|
|
||||||
jsr OUTDO
|
jsr OUTDO
|
||||||
CRDO2:
|
CRDO2:
|
||||||
lda #CRLF_2
|
lda #LF
|
||||||
jsr OUTDO
|
jsr OUTDO
|
||||||
|
|
||||||
PRINTNULLS:
|
PRINTNULLS:
|
||||||
.if .def(KBD) || .def(AIM65)
|
|
||||||
lda #$00
|
|
||||||
sta POSX
|
|
||||||
eor #$FF
|
eor #$FF
|
||||||
.else
|
|
||||||
.if .def(CONFIG_NULL) || .def(CONFIG_PRINTNULLS)
|
|
||||||
.ifdef CONFIG_FILE
|
|
||||||
; Although there is no statement for it,
|
|
||||||
; CBM1 had NULL support and ignores
|
|
||||||
; it when not targeting the screen,
|
|
||||||
; CBM2 dropped it completely.
|
|
||||||
lda CURDVC
|
|
||||||
bne L29DD
|
|
||||||
.endif
|
|
||||||
txa
|
|
||||||
pha
|
|
||||||
ldx Z15
|
|
||||||
beq L29D9
|
|
||||||
.ifdef SYM1
|
|
||||||
lda #$FF
|
|
||||||
.else
|
|
||||||
lda #$00
|
|
||||||
.endif
|
|
||||||
L29D3:
|
|
||||||
jsr OUTDO
|
|
||||||
dex
|
|
||||||
bne L29D3
|
|
||||||
L29D9:
|
|
||||||
stx POSX
|
|
||||||
pla
|
|
||||||
tax
|
|
||||||
.else
|
|
||||||
.ifndef CONFIG_2
|
|
||||||
lda #$00
|
|
||||||
sta POSX
|
|
||||||
.endif
|
|
||||||
eor #$FF
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
L29DD:
|
L29DD:
|
||||||
rts
|
rts
|
||||||
L29DE:
|
L29DE:
|
||||||
lda POSX
|
lda POSX
|
||||||
.ifndef CONFIG_NO_CR
|
|
||||||
.ifdef KBD
|
|
||||||
cmp #$1A
|
|
||||||
.else
|
|
||||||
cmp Z18
|
cmp Z18
|
||||||
.endif
|
|
||||||
bcc L29EA
|
bcc L29EA
|
||||||
jsr CRDO
|
jsr CRDO
|
||||||
jmp L2A0D
|
jmp L2A0D
|
||||||
L29EA:
|
L29EA:
|
||||||
.endif
|
|
||||||
sec
|
sec
|
||||||
L29EB:
|
L29EB:
|
||||||
.if .def(CONFIG_CBM_ALL) || .def(AIM65)
|
|
||||||
sbc #$0A
|
|
||||||
.else
|
|
||||||
.ifdef KBD
|
|
||||||
sbc #$0D
|
|
||||||
.else
|
|
||||||
sbc #$0E
|
sbc #$0E
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
bcs L29EB
|
bcs L29EB
|
||||||
eor #$FF
|
eor #$FF
|
||||||
adc #$01
|
adc #$01
|
||||||
bne L2A08
|
bne L2A08
|
||||||
L29F5:
|
L29F5:
|
||||||
.ifdef CONFIG_11A
|
|
||||||
php
|
php
|
||||||
.else
|
|
||||||
pha
|
|
||||||
.endif
|
|
||||||
jsr GTBYTC
|
jsr GTBYTC
|
||||||
cmp #')'
|
cmp #')'
|
||||||
.ifdef CONFIG_11A
|
|
||||||
.ifdef CONFIG_2
|
|
||||||
bne SYNERR4
|
bne SYNERR4
|
||||||
.else
|
|
||||||
jne SYNERR
|
|
||||||
.endif
|
|
||||||
plp
|
plp
|
||||||
bcc L2A09
|
bcc L2A09
|
||||||
.else
|
|
||||||
.ifdef CONFIG_11
|
|
||||||
jne SYNERR
|
|
||||||
.else
|
|
||||||
bne SYNERR4
|
|
||||||
.endif
|
|
||||||
pla
|
|
||||||
cmp #TOKEN_TAB
|
|
||||||
.ifdef CONFIG_11
|
|
||||||
bne L2A09
|
|
||||||
.else
|
|
||||||
bne L2A0A
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
txa
|
txa
|
||||||
sbc POSX
|
sbc POSX
|
||||||
bcc L2A0D
|
bcc L2A0D
|
||||||
.ifndef CONFIG_11
|
|
||||||
beq L2A0D
|
|
||||||
.endif
|
|
||||||
L2A08:
|
L2A08:
|
||||||
tax
|
tax
|
||||||
.ifdef CONFIG_11
|
|
||||||
L2A09:
|
L2A09:
|
||||||
inx
|
inx
|
||||||
.endif
|
|
||||||
L2A0A:
|
L2A0A:
|
||||||
.ifndef CONFIG_11
|
|
||||||
jsr OUTSP
|
|
||||||
.endif
|
|
||||||
dex
|
dex
|
||||||
.ifndef CONFIG_11
|
|
||||||
bne L2A0A
|
|
||||||
.else
|
|
||||||
bne L2A13
|
bne L2A13
|
||||||
.endif
|
|
||||||
L2A0D:
|
L2A0D:
|
||||||
jsr CHRGET
|
jsr CHRGET
|
||||||
jmp PRINT2
|
jmp PRINT2
|
||||||
.ifdef CONFIG_11
|
|
||||||
L2A13:
|
L2A13:
|
||||||
jsr OUTSP
|
jsr OUTSP
|
||||||
bne L2A0A
|
bne L2A0A
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; PRINT STRING AT (Y,A)
|
; PRINT STRING AT (Y,A)
|
||||||
@@ -289,7 +125,6 @@ L2A22:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
OUTSP:
|
OUTSP:
|
||||||
.ifdef CONFIG_FILE
|
.ifdef CONFIG_FILE
|
||||||
.ifndef CBM1
|
|
||||||
; on non-screen devices, print SPACE
|
; on non-screen devices, print SPACE
|
||||||
; instead of CRSR RIGHT
|
; instead of CRSR RIGHT
|
||||||
lda CURDVC
|
lda CURDVC
|
||||||
@@ -297,7 +132,6 @@ OUTSP:
|
|||||||
lda #$20
|
lda #$20
|
||||||
.byte $2C
|
.byte $2C
|
||||||
LCA40:
|
LCA40:
|
||||||
.endif
|
|
||||||
lda #$1D ; CRSR RIGHT
|
lda #$1D ; CRSR RIGHT
|
||||||
.else
|
.else
|
||||||
lda #$20
|
lda #$20
|
||||||
@@ -310,101 +144,19 @@ OUTQUES:
|
|||||||
; PRINT CHAR FROM (A)
|
; PRINT CHAR FROM (A)
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
OUTDO:
|
OUTDO:
|
||||||
.ifndef KBD
|
|
||||||
bit Z14
|
bit Z14
|
||||||
bmi L2A56
|
bmi L2A56
|
||||||
.endif
|
|
||||||
.if .def(CONFIG_PRINT_CR) || .def(CBM1)
|
|
||||||
; Commodore forgot to remove this in CBM1
|
|
||||||
pha
|
|
||||||
.endif
|
|
||||||
.ifdef CBM1
|
|
||||||
cmp #$1D ; CRSR RIGHT
|
|
||||||
beq LCA6A
|
|
||||||
cmp #$9D ; CRSR LEFT
|
|
||||||
beq LCA5A
|
|
||||||
cmp #$14 ; DEL
|
|
||||||
bne LCA64
|
|
||||||
LCA5A:
|
|
||||||
lda POSX
|
|
||||||
beq L2A4E
|
|
||||||
lda CURDVC
|
|
||||||
bne L2A4E
|
|
||||||
dec POSX
|
|
||||||
LCA64:
|
|
||||||
and #$7F
|
|
||||||
.endif
|
|
||||||
.ifndef CBM2
|
|
||||||
cmp #$20
|
cmp #$20
|
||||||
bcc L2A4E
|
bcc L2A4E
|
||||||
.endif
|
|
||||||
LCA6A:
|
LCA6A:
|
||||||
.ifdef CONFIG_CBM1_PATCHES
|
|
||||||
lda CURDVC
|
|
||||||
jsr PATCH6
|
|
||||||
nop
|
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_PRINT_CR
|
|
||||||
lda POSX
|
|
||||||
cmp Z17
|
|
||||||
bne L2A4C
|
|
||||||
.ifdef AIM65
|
|
||||||
lda #$00
|
|
||||||
sta POSX
|
|
||||||
.elseif .def(APPLE)
|
|
||||||
nop ; PATCH!
|
|
||||||
nop ; don't print CR
|
|
||||||
nop
|
|
||||||
.else
|
|
||||||
jsr CRDO
|
|
||||||
.endif
|
|
||||||
L2A4C:
|
|
||||||
.endif
|
|
||||||
.ifndef CONFIG_CBM_ALL
|
|
||||||
inc POSX
|
inc POSX
|
||||||
.endif
|
|
||||||
L2A4E:
|
L2A4E:
|
||||||
.if .def(CONFIG_PRINT_CR) || .def(CBM1)
|
|
||||||
; Commodore forgot to remove this in CBM1
|
|
||||||
pla
|
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_MONCOUT_DESTROYS_Y
|
|
||||||
sty DIMFLG
|
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_IO_MSB
|
|
||||||
ora #$80
|
|
||||||
.endif
|
|
||||||
jsr MONCOUT
|
jsr MONCOUT
|
||||||
.ifdef CONFIG_IO_MSB
|
|
||||||
and #$7F
|
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_MONCOUT_DESTROYS_Y
|
|
||||||
ldy DIMFLG
|
|
||||||
.endif
|
|
||||||
.ifdef OSI
|
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
.endif
|
|
||||||
L2A56:
|
L2A56:
|
||||||
and #$FF
|
and #$FF
|
||||||
LE8F2:
|
LE8F2:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
|
||||||
; ???
|
|
||||||
; ----------------------------------------------------------------------------
|
|
||||||
.ifdef KBD
|
|
||||||
LE8F3:
|
|
||||||
pha
|
|
||||||
lda $047F
|
|
||||||
clc
|
|
||||||
beq LE900
|
|
||||||
lda #$00
|
|
||||||
sta $047F
|
|
||||||
sec
|
|
||||||
LE900:
|
|
||||||
pla
|
|
||||||
rts
|
|
||||||
.endif
|
|
||||||
-278
@@ -32,22 +32,12 @@ LC366:
|
|||||||
jsr OUTQUES
|
jsr OUTQUES
|
||||||
L2329:
|
L2329:
|
||||||
lda ERROR_MESSAGES,x
|
lda ERROR_MESSAGES,x
|
||||||
.ifndef CONFIG_SMALL_ERROR
|
|
||||||
pha
|
pha
|
||||||
and #$7F
|
and #$7F
|
||||||
.endif
|
|
||||||
jsr OUTDO
|
jsr OUTDO
|
||||||
.ifdef CONFIG_SMALL_ERROR
|
|
||||||
lda ERROR_MESSAGES+1,x
|
|
||||||
.ifdef KBD
|
|
||||||
and #$7F
|
|
||||||
.endif
|
|
||||||
jsr OUTDO
|
|
||||||
.else
|
|
||||||
inx
|
inx
|
||||||
pla
|
pla
|
||||||
bpl L2329
|
bpl L2329
|
||||||
.endif
|
|
||||||
jsr STKINI
|
jsr STKINI
|
||||||
lda #<QT_ERROR
|
lda #<QT_ERROR
|
||||||
ldy #>QT_ERROR
|
ldy #>QT_ERROR
|
||||||
@@ -68,45 +58,20 @@ PRINT_ERROR_LINNUM:
|
|||||||
; WARM RESTART ENTRY
|
; WARM RESTART ENTRY
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
RESTART:
|
RESTART:
|
||||||
.ifdef KBD
|
|
||||||
jsr CRDO
|
|
||||||
nop
|
|
||||||
L2351X:
|
|
||||||
jsr OKPRT
|
|
||||||
L2351:
|
|
||||||
jsr INLIN
|
|
||||||
LE28E:
|
|
||||||
bpl RESTART
|
|
||||||
.else
|
|
||||||
lsr Z14
|
lsr Z14
|
||||||
.ifndef AIM65
|
|
||||||
lda #<QT_OK
|
lda #<QT_OK
|
||||||
ldy #>QT_OK
|
ldy #>QT_OK
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
jsr STROUT
|
|
||||||
.else
|
|
||||||
jsr GOSTROUT
|
jsr GOSTROUT
|
||||||
.endif
|
|
||||||
.else
|
|
||||||
jsr GORESTART
|
|
||||||
.endif
|
|
||||||
L2351:
|
L2351:
|
||||||
jsr INLIN
|
jsr INLIN
|
||||||
.endif
|
|
||||||
stx TXTPTR
|
stx TXTPTR
|
||||||
sty TXTPTR+1
|
sty TXTPTR+1
|
||||||
jsr CHRGET
|
jsr CHRGET
|
||||||
.ifdef CONFIG_11
|
|
||||||
; bug in pre-1.1: CHRGET sets Z on '\0'
|
; bug in pre-1.1: CHRGET sets Z on '\0'
|
||||||
; and ':' - a line starting with ':' in
|
; and ':' - a line starting with ':' in
|
||||||
; direct mode gets ignored
|
; direct mode gets ignored
|
||||||
tax
|
tax
|
||||||
.endif
|
|
||||||
.ifdef KBD
|
|
||||||
beq L2351X
|
|
||||||
.else
|
|
||||||
beq L2351
|
beq L2351
|
||||||
.endif
|
|
||||||
ldx #$FF
|
ldx #$FF
|
||||||
stx CURLIN+1
|
stx CURLIN+1
|
||||||
bcc NUMBERED_LINE
|
bcc NUMBERED_LINE
|
||||||
@@ -120,57 +85,6 @@ NUMBERED_LINE:
|
|||||||
jsr LINGET
|
jsr LINGET
|
||||||
jsr PARSE_INPUT_LINE
|
jsr PARSE_INPUT_LINE
|
||||||
sty EOLPNTR
|
sty EOLPNTR
|
||||||
.ifdef KBD
|
|
||||||
jsr FNDLIN2
|
|
||||||
lda JMPADRS+1
|
|
||||||
sta LOWTR
|
|
||||||
sta Z96
|
|
||||||
lda JMPADRS+2
|
|
||||||
sta LOWTR+1
|
|
||||||
sta Z96+1
|
|
||||||
lda LINNUM
|
|
||||||
sta L06FE
|
|
||||||
lda LINNUM+1
|
|
||||||
sta L06FE+1
|
|
||||||
inc LINNUM
|
|
||||||
bne LE2D2
|
|
||||||
inc LINNUM+1
|
|
||||||
bne LE2D2
|
|
||||||
jmp SYNERR
|
|
||||||
LE2D2:
|
|
||||||
jsr LF457
|
|
||||||
ldx #Z96
|
|
||||||
jsr CMPJMPADRS
|
|
||||||
bcs LE2FD
|
|
||||||
LE2DC:
|
|
||||||
ldx #$00
|
|
||||||
lda (JMPADRS+1,x)
|
|
||||||
sta (Z96,x)
|
|
||||||
inc JMPADRS+1
|
|
||||||
bne LE2E8
|
|
||||||
inc JMPADRS+2
|
|
||||||
LE2E8:
|
|
||||||
inc Z96
|
|
||||||
bne LE2EE
|
|
||||||
inc Z96+1
|
|
||||||
LE2EE:
|
|
||||||
ldx #VARTAB
|
|
||||||
jsr CMPJMPADRS
|
|
||||||
bne LE2DC
|
|
||||||
lda Z96
|
|
||||||
sta VARTAB
|
|
||||||
lda Z96+1
|
|
||||||
sta VARTAB+1
|
|
||||||
LE2FD:
|
|
||||||
jsr SETPTRS
|
|
||||||
jsr LE33D
|
|
||||||
lda INPUTBUFFER
|
|
||||||
LE306:
|
|
||||||
beq LE28E
|
|
||||||
cmp #$A5
|
|
||||||
beq LE306
|
|
||||||
clc
|
|
||||||
.else
|
|
||||||
jsr FNDLIN
|
jsr FNDLIN
|
||||||
bcc PUT_NEW_LINE
|
bcc PUT_NEW_LINE
|
||||||
ldy #$01
|
ldy #$01
|
||||||
@@ -214,25 +128,13 @@ L23AD:
|
|||||||
inc DEST+1
|
inc DEST+1
|
||||||
dex
|
dex
|
||||||
bne L23AD
|
bne L23AD
|
||||||
.endif
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
PUT_NEW_LINE:
|
PUT_NEW_LINE:
|
||||||
.ifndef KBD
|
|
||||||
.ifdef CONFIG_2
|
|
||||||
jsr SETPTRS
|
jsr SETPTRS
|
||||||
jsr LE33D
|
jsr LE33D
|
||||||
lda INPUTBUFFER
|
lda INPUTBUFFER
|
||||||
beq L2351
|
beq L2351
|
||||||
clc
|
clc
|
||||||
.else
|
|
||||||
lda INPUTBUFFER
|
|
||||||
beq FIX_LINKS
|
|
||||||
lda MEMSIZ
|
|
||||||
ldy MEMSIZ+1
|
|
||||||
sta FRETOP
|
|
||||||
sty FRETOP+1
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
lda VARTAB
|
lda VARTAB
|
||||||
sta HIGHTR
|
sta HIGHTR
|
||||||
adc EOLPNTR
|
adc EOLPNTR
|
||||||
@@ -244,12 +146,10 @@ PUT_NEW_LINE:
|
|||||||
L23D6:
|
L23D6:
|
||||||
sty HIGHDS+1
|
sty HIGHDS+1
|
||||||
jsr BLTU
|
jsr BLTU
|
||||||
.ifdef CONFIG_INPUTBUFFER_0200
|
|
||||||
lda LINNUM
|
lda LINNUM
|
||||||
ldy LINNUM+1
|
ldy LINNUM+1
|
||||||
sta INPUTBUFFER-2
|
sta INPUTBUFFER-2
|
||||||
sty INPUTBUFFER-1
|
sty INPUTBUFFER-1
|
||||||
.endif
|
|
||||||
lda STREND
|
lda STREND
|
||||||
ldy STREND+1
|
ldy STREND+1
|
||||||
sta VARTAB
|
sta VARTAB
|
||||||
@@ -269,11 +169,9 @@ L23E6:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
FIX_LINKS:
|
FIX_LINKS:
|
||||||
jsr SETPTRS
|
jsr SETPTRS
|
||||||
.ifdef CONFIG_2
|
|
||||||
jsr LE33D
|
jsr LE33D
|
||||||
jmp L2351
|
jmp L2351
|
||||||
LE33D:
|
LE33D:
|
||||||
.endif
|
|
||||||
lda TXTTAB
|
lda TXTTAB
|
||||||
ldy TXTTAB+1
|
ldy TXTTAB+1
|
||||||
sta INDEX
|
sta INDEX
|
||||||
@@ -282,11 +180,7 @@ LE33D:
|
|||||||
L23FA:
|
L23FA:
|
||||||
ldy #$01
|
ldy #$01
|
||||||
lda (INDEX),y
|
lda (INDEX),y
|
||||||
.ifdef CONFIG_2
|
|
||||||
beq RET3
|
beq RET3
|
||||||
.else
|
|
||||||
jeq L2351
|
|
||||||
.endif
|
|
||||||
ldy #$04
|
ldy #$04
|
||||||
L2405:
|
L2405:
|
||||||
iny
|
iny
|
||||||
@@ -306,16 +200,10 @@ L2405:
|
|||||||
sta INDEX+1
|
sta INDEX+1
|
||||||
bcc L23FA ; always
|
bcc L23FA ; always
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
|
||||||
.ifdef KBD
|
|
||||||
.include "kbd_loadsave.s"
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifdef CONFIG_2
|
|
||||||
; !!! kbd_loadsave.s requires an RTS here!
|
; !!! kbd_loadsave.s requires an RTS here!
|
||||||
RET3:
|
RET3:
|
||||||
rts
|
rts
|
||||||
.endif
|
|
||||||
|
|
||||||
.include "inline.s"
|
.include "inline.s"
|
||||||
|
|
||||||
@@ -328,14 +216,6 @@ PARSE_INPUT_LINE:
|
|||||||
sty DATAFLG
|
sty DATAFLG
|
||||||
L246C:
|
L246C:
|
||||||
lda INPUTBUFFERX,x
|
lda INPUTBUFFERX,x
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
bpl LC49E
|
|
||||||
cmp #$FF
|
|
||||||
beq L24AC
|
|
||||||
inx
|
|
||||||
bne L246C
|
|
||||||
LC49E:
|
|
||||||
.endif
|
|
||||||
cmp #$20
|
cmp #$20
|
||||||
beq L24AC
|
beq L24AC
|
||||||
sta ENDCHR
|
sta ENDCHR
|
||||||
@@ -368,15 +248,7 @@ L2496:
|
|||||||
L2497:
|
L2497:
|
||||||
inx
|
inx
|
||||||
L2498:
|
L2498:
|
||||||
.ifdef KBD
|
|
||||||
jsr GET_UPPER
|
|
||||||
.else
|
|
||||||
lda INPUTBUFFERX,x
|
lda INPUTBUFFERX,x
|
||||||
.ifndef CONFIG_2
|
|
||||||
cmp #$20
|
|
||||||
beq L2497
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
sec
|
sec
|
||||||
sbc TOKEN_NAME_TABLE,y
|
sbc TOKEN_NAME_TABLE,y
|
||||||
beq L2496
|
beq L2496
|
||||||
@@ -437,9 +309,7 @@ L24DB:
|
|||||||
; ---END OF LINE------------------
|
; ---END OF LINE------------------
|
||||||
L24EA:
|
L24EA:
|
||||||
sta INPUTBUFFER-3,y
|
sta INPUTBUFFER-3,y
|
||||||
.ifdef CONFIG_NO_INPUTBUFFER_ZP
|
|
||||||
dec TXTPTR+1
|
dec TXTPTR+1
|
||||||
.endif
|
|
||||||
lda #<(INPUTBUFFER-1)
|
lda #<(INPUTBUFFER-1)
|
||||||
sta TXTPTR
|
sta TXTPTR
|
||||||
rts
|
rts
|
||||||
@@ -454,32 +324,6 @@ L24EA:
|
|||||||
; LOWTR POINTS AT LINE
|
; LOWTR POINTS AT LINE
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
FNDLIN:
|
FNDLIN:
|
||||||
.ifdef KBD
|
|
||||||
jsr CHRGET
|
|
||||||
jmp LE444
|
|
||||||
LE440:
|
|
||||||
php
|
|
||||||
jsr LINGET
|
|
||||||
LE444:
|
|
||||||
jsr LF457
|
|
||||||
ldx #$FF
|
|
||||||
plp
|
|
||||||
beq LE464
|
|
||||||
jsr CHRGOT
|
|
||||||
beq L2520
|
|
||||||
cmp #$A5
|
|
||||||
bne L2520
|
|
||||||
jsr CHRGET
|
|
||||||
beq LE464
|
|
||||||
bcs LE461
|
|
||||||
jsr LINGET
|
|
||||||
beq L2520
|
|
||||||
LE461:
|
|
||||||
jmp SYNERR
|
|
||||||
LE464:
|
|
||||||
stx LINNUM
|
|
||||||
stx LINNUM+1
|
|
||||||
.else
|
|
||||||
lda TXTTAB
|
lda TXTTAB
|
||||||
ldx TXTTAB+1
|
ldx TXTTAB+1
|
||||||
FL1:
|
FL1:
|
||||||
@@ -511,7 +355,6 @@ L2516:
|
|||||||
bcs FL1
|
bcs FL1
|
||||||
L251F:
|
L251F:
|
||||||
clc
|
clc
|
||||||
.endif
|
|
||||||
L2520:
|
L2520:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@@ -527,9 +370,7 @@ SCRTCH:
|
|||||||
iny
|
iny
|
||||||
sta (TXTTAB),y
|
sta (TXTTAB),y
|
||||||
lda TXTTAB
|
lda TXTTAB
|
||||||
.ifdef CONFIG_2
|
|
||||||
clc
|
clc
|
||||||
.endif
|
|
||||||
adc #$02
|
adc #$02
|
||||||
sta VARTAB
|
sta VARTAB
|
||||||
lda TXTTAB+1
|
lda TXTTAB+1
|
||||||
@@ -538,7 +379,6 @@ SCRTCH:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
SETPTRS:
|
SETPTRS:
|
||||||
jsr STXTPT
|
jsr STXTPT
|
||||||
.ifdef CONFIG_11A
|
|
||||||
lda #$00
|
lda #$00
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
@@ -546,20 +386,11 @@ SETPTRS:
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
CLEAR:
|
CLEAR:
|
||||||
bne L256A
|
bne L256A
|
||||||
.endif
|
|
||||||
CLEARC:
|
CLEARC:
|
||||||
.ifdef KBD
|
|
||||||
lda #<CONST_MEMSIZ
|
|
||||||
ldy #>CONST_MEMSIZ
|
|
||||||
.else
|
|
||||||
lda MEMSIZ
|
lda MEMSIZ
|
||||||
ldy MEMSIZ+1
|
ldy MEMSIZ+1
|
||||||
.endif
|
|
||||||
sta FRETOP
|
sta FRETOP
|
||||||
sty FRETOP+1
|
sty FRETOP+1
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
jsr CLALL
|
|
||||||
.endif
|
|
||||||
lda VARTAB
|
lda VARTAB
|
||||||
ldy VARTAB+1
|
ldy VARTAB+1
|
||||||
sta ARYTAB
|
sta ARYTAB
|
||||||
@@ -572,22 +403,13 @@ STKINI:
|
|||||||
ldx #TEMPST
|
ldx #TEMPST
|
||||||
stx TEMPPT
|
stx TEMPPT
|
||||||
pla
|
pla
|
||||||
.ifdef CONFIG_2
|
|
||||||
tay
|
tay
|
||||||
.else
|
|
||||||
sta STACK+STACK_TOP+1
|
|
||||||
.endif
|
|
||||||
pla
|
pla
|
||||||
.ifndef CONFIG_2
|
|
||||||
sta STACK+STACK_TOP+2
|
|
||||||
.endif
|
|
||||||
ldx #STACK_TOP
|
ldx #STACK_TOP
|
||||||
txs
|
txs
|
||||||
.ifdef CONFIG_2
|
|
||||||
pha
|
pha
|
||||||
tya
|
tya
|
||||||
pha
|
pha
|
||||||
.endif
|
|
||||||
lda #$00
|
lda #$00
|
||||||
sta OLDTEXT+1
|
sta OLDTEXT+1
|
||||||
sta SUBFLG
|
sta SUBFLG
|
||||||
@@ -607,121 +429,41 @@ STXTPT:
|
|||||||
sta TXTPTR+1
|
sta TXTPTR+1
|
||||||
rts
|
rts
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
|
||||||
.ifdef KBD
|
|
||||||
LE4C0:
|
|
||||||
ldy #<LE444
|
|
||||||
ldx #>LE444
|
|
||||||
LE4C4:
|
|
||||||
jsr LFFD6
|
|
||||||
jsr LFFED
|
|
||||||
lda $0504
|
|
||||||
clc
|
|
||||||
adc #$08
|
|
||||||
sta $0504
|
|
||||||
rts
|
|
||||||
|
|
||||||
CMPJMPADRS:
|
|
||||||
lda 1,x
|
|
||||||
cmp JMPADRS+2
|
|
||||||
bne LE4DE
|
|
||||||
lda 0,x
|
|
||||||
cmp JMPADRS+1
|
|
||||||
LE4DE:
|
|
||||||
rts
|
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "LIST" STATEMENT
|
; "LIST" STATEMENT
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
LIST:
|
LIST:
|
||||||
.ifdef KBD
|
|
||||||
jsr LE440
|
|
||||||
bne LE4DE
|
|
||||||
pla
|
|
||||||
pla
|
|
||||||
L25A6:
|
|
||||||
jsr CRDO
|
|
||||||
.else
|
|
||||||
.ifdef AIM65
|
|
||||||
pha
|
|
||||||
lda #$00
|
|
||||||
LB4BF:
|
|
||||||
sta INPUTFLG
|
|
||||||
pla
|
|
||||||
.endif
|
|
||||||
.ifdef MICROTAN
|
|
||||||
php
|
|
||||||
jmp LE21C ; patch
|
|
||||||
LC57E:
|
|
||||||
.elseif .def(AIM65) || .def(SYM1)
|
|
||||||
php
|
|
||||||
jsr LINGET
|
|
||||||
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
|
||||||
.if .def(MICROTAN) || .def(AIM65) || .def(SYM1)
|
|
||||||
plp
|
|
||||||
beq L2598
|
|
||||||
.endif
|
|
||||||
jsr CHRGOT
|
jsr CHRGOT
|
||||||
.if .def(MICROTAN) || .def(AIM65) || .def(SYM1)
|
|
||||||
beq L25A6
|
|
||||||
.else
|
|
||||||
beq L2598
|
beq L2598
|
||||||
.endif
|
|
||||||
cmp #TOKEN_MINUS
|
cmp #TOKEN_MINUS
|
||||||
bne L2520
|
bne L2520
|
||||||
jsr CHRGET
|
jsr CHRGET
|
||||||
.if .def(MICROTAN) || .def(AIM65) || .def(SYM1)
|
|
||||||
beq L2598
|
|
||||||
jsr LINGET
|
|
||||||
beq L25A6
|
|
||||||
rts
|
|
||||||
.else
|
|
||||||
jsr LINGET
|
jsr LINGET
|
||||||
bne L2520
|
bne L2520
|
||||||
.endif
|
|
||||||
L2598:
|
L2598:
|
||||||
.if !(.def(MICROTAN) || .def(AIM65) || .def(SYM1))
|
|
||||||
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
|
||||||
L25A6:
|
L25A6:
|
||||||
.if .def(MICROTAN) || .def(AIM65) || .def(SYM1)
|
|
||||||
pla
|
|
||||||
pla
|
|
||||||
.endif
|
|
||||||
L25A6X:
|
L25A6X:
|
||||||
.endif
|
|
||||||
ldy #$01
|
ldy #$01
|
||||||
.ifdef CONFIG_DATAFLG
|
|
||||||
sty DATAFLG
|
sty DATAFLG
|
||||||
.endif
|
|
||||||
lda (LOWTRX),y
|
lda (LOWTRX),y
|
||||||
beq L25E5
|
beq L25E5
|
||||||
.ifdef MICROTAN
|
|
||||||
jmp LE21F
|
|
||||||
LC5A9:
|
|
||||||
.else
|
|
||||||
jsr ISCNTC
|
jsr ISCNTC
|
||||||
.endif
|
|
||||||
.ifndef KBD
|
|
||||||
jsr CRDO
|
jsr CRDO
|
||||||
.endif
|
|
||||||
iny
|
iny
|
||||||
lda (LOWTRX),y
|
lda (LOWTRX),y
|
||||||
tax
|
tax
|
||||||
@@ -743,18 +485,14 @@ L25CA:
|
|||||||
and #$7F
|
and #$7F
|
||||||
L25CE:
|
L25CE:
|
||||||
jsr OUTDO
|
jsr OUTDO
|
||||||
.ifdef CONFIG_DATAFLG
|
|
||||||
cmp #$22
|
cmp #$22
|
||||||
bne LA519
|
bne LA519
|
||||||
lda DATAFLG
|
lda DATAFLG
|
||||||
eor #$FF
|
eor #$FF
|
||||||
sta DATAFLG
|
sta DATAFLG
|
||||||
LA519:
|
LA519:
|
||||||
.endif
|
|
||||||
iny
|
iny
|
||||||
.ifdef CONFIG_11
|
|
||||||
beq L25E5
|
beq L25E5
|
||||||
.endif
|
|
||||||
lda (LOWTRX),y
|
lda (LOWTRX),y
|
||||||
bne L25E8
|
bne L25E8
|
||||||
tay
|
tay
|
||||||
@@ -764,31 +502,15 @@ LA519:
|
|||||||
lda (LOWTRX),y
|
lda (LOWTRX),y
|
||||||
stx LOWTRX
|
stx LOWTRX
|
||||||
sta LOWTRX+1
|
sta LOWTRX+1
|
||||||
.if .def(MICROTAN) || .def(AIM65) || .def(SYM1)
|
|
||||||
bne L25A6X
|
|
||||||
.else
|
|
||||||
bne L25A6
|
bne L25A6
|
||||||
.endif
|
|
||||||
L25E5:
|
L25E5:
|
||||||
.ifdef AIM65
|
|
||||||
lda INPUTFLG
|
|
||||||
beq L25E5a
|
|
||||||
jsr CRDO
|
|
||||||
jsr CRDO
|
|
||||||
lda #$1a
|
|
||||||
jsr OUTDO
|
|
||||||
jsr $e50a
|
|
||||||
L25E5a:
|
|
||||||
.endif
|
|
||||||
jmp RESTART
|
jmp RESTART
|
||||||
L25E8:
|
L25E8:
|
||||||
bpl L25CE
|
bpl L25CE
|
||||||
.ifdef CONFIG_DATAFLG
|
|
||||||
cmp #$FF
|
cmp #$FF
|
||||||
beq L25CE
|
beq L25CE
|
||||||
bit DATAFLG
|
bit DATAFLG
|
||||||
bmi L25CE
|
bmi L25CE
|
||||||
.endif
|
|
||||||
sec
|
sec
|
||||||
sbc #$7F
|
sbc #$7F
|
||||||
tax
|
tax
|
||||||
|
|||||||
@@ -4,51 +4,6 @@
|
|||||||
; "RND" FUNCTION
|
; "RND" FUNCTION
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
|
|
||||||
.ifdef KBD
|
|
||||||
RND:
|
|
||||||
ldx #$10
|
|
||||||
jsr SIGN
|
|
||||||
beq LFC26
|
|
||||||
bmi LFC10
|
|
||||||
lda RNDSEED
|
|
||||||
ldy RNDSEED+1
|
|
||||||
LFBFA:
|
|
||||||
sta FAC+2
|
|
||||||
sty FAC+1
|
|
||||||
LFBFE:
|
|
||||||
asl a
|
|
||||||
asl a
|
|
||||||
eor FAC+2
|
|
||||||
asl a
|
|
||||||
eor FAC+1
|
|
||||||
asl a
|
|
||||||
asl a
|
|
||||||
asl a
|
|
||||||
asl a
|
|
||||||
eor FAC+1
|
|
||||||
asl a
|
|
||||||
rol FAC+2
|
|
||||||
rol FAC+1
|
|
||||||
LFC10:
|
|
||||||
lda FAC+2
|
|
||||||
dex
|
|
||||||
bne LFBFE
|
|
||||||
sta RNDSEED
|
|
||||||
sta FAC+3
|
|
||||||
lda FAC+1
|
|
||||||
sta RNDSEED+1
|
|
||||||
lda #$80
|
|
||||||
sta FAC
|
|
||||||
stx FACSIGN
|
|
||||||
jmp NORMALIZE_FAC2
|
|
||||||
LFC26:
|
|
||||||
ldy $03CA
|
|
||||||
lda $03C7
|
|
||||||
ora #$01
|
|
||||||
GOMOVMF:
|
|
||||||
bne LFBFA
|
|
||||||
.byte $F0
|
|
||||||
.else
|
|
||||||
; <<< THESE ARE MISSING ONE BYTE FOR FP VALUES >>>
|
; <<< THESE ARE MISSING ONE BYTE FOR FP VALUES >>>
|
||||||
; (non CONFIG_SMALL)
|
; (non CONFIG_SMALL)
|
||||||
CONRND1:
|
CONRND1:
|
||||||
@@ -57,30 +12,13 @@ CONRND2:
|
|||||||
.byte $68,$28,$B1,$46
|
.byte $68,$28,$B1,$46
|
||||||
RND:
|
RND:
|
||||||
jsr SIGN
|
jsr SIGN
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
bmi L3F01
|
|
||||||
bne LDF63
|
|
||||||
lda ENTROPY
|
|
||||||
sta FAC+1
|
|
||||||
lda ENTROPY+4
|
|
||||||
sta FAC+2
|
|
||||||
lda ENTROPY+1
|
|
||||||
sta FAC+3
|
|
||||||
lda ENTROPY+5
|
|
||||||
sta FAC+4
|
|
||||||
jmp LDF88
|
|
||||||
LDF63:
|
|
||||||
.else
|
|
||||||
tax
|
tax
|
||||||
bmi L3F01
|
bmi L3F01
|
||||||
.endif
|
|
||||||
lda #<RNDSEED
|
lda #<RNDSEED
|
||||||
ldy #>RNDSEED
|
ldy #>RNDSEED
|
||||||
jsr LOAD_FAC_FROM_YA
|
jsr LOAD_FAC_FROM_YA
|
||||||
.ifndef CONFIG_CBM_ALL
|
|
||||||
txa
|
txa
|
||||||
beq RTS19
|
beq RTS19
|
||||||
.endif
|
|
||||||
lda #<CONRND1
|
lda #<CONRND1
|
||||||
ldy #>CONRND1
|
ldy #>CONRND1
|
||||||
jsr FMULT
|
jsr FMULT
|
||||||
@@ -92,13 +30,6 @@ L3F01:
|
|||||||
lda FAC+1
|
lda FAC+1
|
||||||
sta FAC_LAST
|
sta FAC_LAST
|
||||||
stx FAC+1
|
stx FAC+1
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
ldx FAC+2
|
|
||||||
lda FAC+3
|
|
||||||
sta FAC+2
|
|
||||||
stx FAC+3
|
|
||||||
LDF88:
|
|
||||||
.endif
|
|
||||||
lda #$00
|
lda #$00
|
||||||
sta FACSIGN
|
sta FACSIGN
|
||||||
lda FAC
|
lda FAC
|
||||||
@@ -110,7 +41,6 @@ LDF88:
|
|||||||
ldy #>RNDSEED
|
ldy #>RNDSEED
|
||||||
GOMOVMF:
|
GOMOVMF:
|
||||||
jmp STORE_FAC_AT_YX_ROUNDED
|
jmp STORE_FAC_AT_YX_ROUNDED
|
||||||
.endif
|
|
||||||
|
|
||||||
.segment "CHRGET"
|
.segment "CHRGET"
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
@@ -120,16 +50,6 @@ GOMOVMF:
|
|||||||
; (on all non-CONFIG_SMALL)
|
; (on all non-CONFIG_SMALL)
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
GENERIC_RNDSEED:
|
GENERIC_RNDSEED:
|
||||||
.ifndef KBD
|
|
||||||
; random number seed
|
; random number seed
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
.byte $80,$4F,$C7,$52
|
|
||||||
.else
|
|
||||||
.ifdef CONFIG_11
|
|
||||||
.byte $80,$4F,$C7,$52,$58
|
.byte $80,$4F,$C7,$52,$58
|
||||||
.else
|
|
||||||
.byte $80,$4F,$C7,$52,$59
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
GENERIC_CHRGET_END:
|
GENERIC_CHRGET_END:
|
||||||
@@ -86,13 +86,8 @@ L32AA:
|
|||||||
L32B6:
|
L32B6:
|
||||||
stx STRNG2+1
|
stx STRNG2+1
|
||||||
lda STRNG1+1
|
lda STRNG1+1
|
||||||
.ifdef CONFIG_NO_INPUTBUFFER_ZP
|
|
||||||
beq LD399
|
beq LD399
|
||||||
cmp #>INPUTBUFFER
|
cmp #>INPUTBUFFER
|
||||||
.elseif .def(AIM65)
|
|
||||||
beq LD399
|
|
||||||
cmp #$01
|
|
||||||
.endif
|
|
||||||
bne PUTNEW
|
bne PUTNEW
|
||||||
LD399:
|
LD399:
|
||||||
tya
|
tya
|
||||||
@@ -124,9 +119,7 @@ PUTEMP:
|
|||||||
ldy #$00
|
ldy #$00
|
||||||
stx FAC_LAST-1
|
stx FAC_LAST-1
|
||||||
sty FAC_LAST
|
sty FAC_LAST
|
||||||
.ifdef CONFIG_2
|
|
||||||
sty FACEXTENSION
|
sty FACEXTENSION
|
||||||
.endif
|
|
||||||
dey
|
dey
|
||||||
sty VALTYP
|
sty VALTYP
|
||||||
stx LASTPT
|
stx LASTPT
|
||||||
@@ -183,22 +176,14 @@ L3311:
|
|||||||
; BELOW STRING AREA DOWN TO STREND.
|
; BELOW STRING AREA DOWN TO STREND.
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
GARBAG:
|
GARBAG:
|
||||||
|
|
||||||
.ifdef CONST_MEMSIZ
|
|
||||||
ldx #<CONST_MEMSIZ
|
|
||||||
lda #>CONST_MEMSIZ
|
|
||||||
.else
|
|
||||||
ldx MEMSIZ
|
ldx MEMSIZ
|
||||||
lda MEMSIZ+1
|
lda MEMSIZ+1
|
||||||
.endif
|
|
||||||
FINDHIGHESTSTRING:
|
FINDHIGHESTSTRING:
|
||||||
stx FRETOP
|
stx FRETOP
|
||||||
sta FRETOP+1
|
sta FRETOP+1
|
||||||
ldy #$00
|
ldy #$00
|
||||||
sty FNCNAM+1
|
sty FNCNAM+1
|
||||||
.ifdef CONFIG_2
|
|
||||||
sty FNCNAM ; GC bugfix!
|
sty FNCNAM ; GC bugfix!
|
||||||
.endif
|
|
||||||
lda STREND
|
lda STREND
|
||||||
ldx STREND+1
|
ldx STREND+1
|
||||||
sta LOWTR
|
sta LOWTR
|
||||||
@@ -244,14 +229,10 @@ L336B:
|
|||||||
L3376:
|
L3376:
|
||||||
sta INDEX
|
sta INDEX
|
||||||
stx INDEX+1
|
stx INDEX+1
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
ldy #$01
|
|
||||||
.else
|
|
||||||
ldy #$00
|
ldy #$00
|
||||||
lda (INDEX),y
|
lda (INDEX),y
|
||||||
tax
|
tax
|
||||||
iny
|
iny
|
||||||
.endif
|
|
||||||
lda (INDEX),y
|
lda (INDEX),y
|
||||||
php
|
php
|
||||||
iny
|
iny
|
||||||
@@ -264,21 +245,13 @@ L3376:
|
|||||||
sta HIGHDS+1
|
sta HIGHDS+1
|
||||||
plp
|
plp
|
||||||
bpl L3367
|
bpl L3367
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
txa
|
txa
|
||||||
bmi L3367
|
bmi L3367
|
||||||
.endif
|
|
||||||
iny
|
iny
|
||||||
lda (INDEX),y
|
lda (INDEX),y
|
||||||
.ifdef CONFIG_CBM1_PATCHES
|
|
||||||
jsr LE7F3 ; XXX patch, call into screen editor
|
|
||||||
.else
|
|
||||||
.ifdef CONFIG_11
|
|
||||||
ldy #$00 ; GC bugfix
|
ldy #$00 ; GC bugfix
|
||||||
.endif
|
|
||||||
asl a
|
asl a
|
||||||
adc #$05
|
adc #$05
|
||||||
.endif
|
|
||||||
adc INDEX
|
adc INDEX
|
||||||
sta INDEX
|
sta INDEX
|
||||||
bcc L33A7
|
bcc L33A7
|
||||||
@@ -298,10 +271,8 @@ L33B1:
|
|||||||
; PROCESS A SIMPLE VARIABLE
|
; PROCESS A SIMPLE VARIABLE
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
CHECK_SIMPLE_VARIABLE:
|
CHECK_SIMPLE_VARIABLE:
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
lda (INDEX),y
|
lda (INDEX),y
|
||||||
bmi CHECK_BUMP
|
bmi CHECK_BUMP
|
||||||
.endif
|
|
||||||
iny
|
iny
|
||||||
lda (INDEX),y
|
lda (INDEX),y
|
||||||
bpl CHECK_BUMP
|
bpl CHECK_BUMP
|
||||||
@@ -360,19 +331,11 @@ 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 CONFIG_2
|
|
||||||
lda FNCNAM+1 ; GC bugfix
|
lda FNCNAM+1 ; GC bugfix
|
||||||
ora FNCNAM
|
ora FNCNAM
|
||||||
.else
|
|
||||||
ldx FNCNAM+1
|
|
||||||
.endif
|
|
||||||
beq L33FA
|
beq L33FA
|
||||||
lda Z52
|
lda Z52
|
||||||
.ifndef CONFIG_10A
|
|
||||||
sbc #$03
|
|
||||||
.else
|
|
||||||
and #$04
|
and #$04
|
||||||
.endif
|
|
||||||
lsr a
|
lsr a
|
||||||
tay
|
tay
|
||||||
sta Z52
|
sta Z52
|
||||||
@@ -531,11 +494,7 @@ L34CD:
|
|||||||
; RELEASE TEMPORARY DESCRIPTOR IF Y,A = LASTPT
|
; RELEASE TEMPORARY DESCRIPTOR IF Y,A = LASTPT
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
FRETMS:
|
FRETMS:
|
||||||
.ifdef KBD
|
|
||||||
cpy #$00
|
|
||||||
.else
|
|
||||||
cpy LASTPT+1
|
cpy LASTPT+1
|
||||||
.endif
|
|
||||||
bne L34E2
|
bne L34E2
|
||||||
cmp LASTPT
|
cmp LASTPT
|
||||||
bne L34E2
|
bne L34E2
|
||||||
@@ -620,9 +579,7 @@ MIDSTR:
|
|||||||
jsr GETBYT
|
jsr GETBYT
|
||||||
L353F:
|
L353F:
|
||||||
jsr SUBSTRING_SETUP
|
jsr SUBSTRING_SETUP
|
||||||
.ifdef CONFIG_2
|
|
||||||
beq GOIQ
|
beq GOIQ
|
||||||
.endif
|
|
||||||
dex
|
dex
|
||||||
txa
|
txa
|
||||||
pha
|
pha
|
||||||
@@ -644,15 +601,9 @@ L353F:
|
|||||||
SUBSTRING_SETUP:
|
SUBSTRING_SETUP:
|
||||||
jsr CHKCLS
|
jsr CHKCLS
|
||||||
pla
|
pla
|
||||||
.ifndef CONFIG_11
|
|
||||||
sta JMPADRS+1
|
|
||||||
pla
|
|
||||||
sta JMPADRS+2
|
|
||||||
.else
|
|
||||||
tay
|
tay
|
||||||
pla
|
pla
|
||||||
sta Z52
|
sta Z52
|
||||||
.endif
|
|
||||||
pla
|
pla
|
||||||
pla
|
pla
|
||||||
pla
|
pla
|
||||||
@@ -661,23 +612,13 @@ SUBSTRING_SETUP:
|
|||||||
sta DSCPTR
|
sta DSCPTR
|
||||||
pla
|
pla
|
||||||
sta DSCPTR+1
|
sta DSCPTR+1
|
||||||
.ifdef CONFIG_11
|
|
||||||
lda Z52
|
lda Z52
|
||||||
pha
|
pha
|
||||||
tya
|
tya
|
||||||
pha
|
pha
|
||||||
.endif
|
|
||||||
ldy #$00
|
ldy #$00
|
||||||
txa
|
txa
|
||||||
.ifndef CONFIG_2
|
|
||||||
beq GOIQ
|
|
||||||
.endif
|
|
||||||
.ifndef CONFIG_11
|
|
||||||
inc JMPADRS+1
|
|
||||||
jmp (JMPADRS+1)
|
|
||||||
.else
|
|
||||||
rts
|
rts
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "LEN" FUNCTION
|
; "LEN" FUNCTION
|
||||||
@@ -707,11 +648,7 @@ ASC:
|
|||||||
ldy #$00
|
ldy #$00
|
||||||
lda (INDEX),y
|
lda (INDEX),y
|
||||||
tay
|
tay
|
||||||
.ifndef CONFIG_11A
|
|
||||||
jmp SNGFLT1
|
|
||||||
.else
|
|
||||||
jmp SNGFLT
|
jmp SNGFLT
|
||||||
.endif
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
GOIQ:
|
GOIQ:
|
||||||
jmp IQERR
|
jmp IQERR
|
||||||
|
|||||||
-60
@@ -10,73 +10,33 @@
|
|||||||
keyword_rts "INPUT", INPUT
|
keyword_rts "INPUT", INPUT
|
||||||
keyword_rts "DIM", DIM
|
keyword_rts "DIM", DIM
|
||||||
keyword_rts "READ", READ
|
keyword_rts "READ", READ
|
||||||
.ifdef APPLE
|
|
||||||
keyword_rts "PLT", PLT
|
|
||||||
.else
|
|
||||||
keyword_rts "LET", LET
|
keyword_rts "LET", LET
|
||||||
.endif
|
|
||||||
keyword_rts "GOTO", GOTO, TOKEN_GOTO
|
keyword_rts "GOTO", GOTO, TOKEN_GOTO
|
||||||
keyword_rts "RUN", RUN
|
keyword_rts "RUN", RUN
|
||||||
keyword_rts "IF", IF
|
keyword_rts "IF", IF
|
||||||
keyword_rts "RESTORE", RESTORE
|
keyword_rts "RESTORE", RESTORE
|
||||||
keyword_rts "GOSUB", GOSUB, TOKEN_GOSUB
|
keyword_rts "GOSUB", GOSUB, TOKEN_GOSUB
|
||||||
keyword_rts "RETURN", POP
|
keyword_rts "RETURN", POP
|
||||||
.ifdef APPLE
|
|
||||||
keyword_rts "TEX", TEX, TOKEN_REM
|
|
||||||
.else
|
|
||||||
keyword_rts "REM", REM, TOKEN_REM
|
keyword_rts "REM", REM, TOKEN_REM
|
||||||
.endif
|
|
||||||
keyword_rts "STOP", STOP
|
keyword_rts "STOP", STOP
|
||||||
keyword_rts "ON", ON
|
keyword_rts "ON", ON
|
||||||
.ifdef CONFIG_NULL
|
|
||||||
keyword_rts "NULL", NULL
|
|
||||||
.endif
|
|
||||||
.ifdef KBD
|
|
||||||
keyword_rts "PLOD", PLOD
|
|
||||||
keyword_rts "PSAV", PSAV
|
|
||||||
keyword_rts "VLOD", VLOD
|
|
||||||
keyword_rts "VSAV", VSAV
|
|
||||||
.endif
|
|
||||||
.ifndef CONFIG_NO_POKE
|
|
||||||
keyword_rts "WAIT", WAIT
|
keyword_rts "WAIT", WAIT
|
||||||
.endif
|
|
||||||
.ifndef KBD
|
|
||||||
keyword_rts "LOAD", LOAD
|
|
||||||
keyword_rts "SAVE", SAVE
|
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
keyword_rts "VERIFY", VERIFY
|
|
||||||
.endif
|
|
||||||
keyword_rts "DEF", DEF
|
keyword_rts "DEF", DEF
|
||||||
.ifdef KBD
|
|
||||||
keyword_rts "SLOD", SLOD
|
|
||||||
.endif
|
|
||||||
.ifndef CONFIG_NO_POKE
|
|
||||||
keyword_rts "POKE", POKE
|
keyword_rts "POKE", POKE
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_FILE
|
.ifdef CONFIG_FILE
|
||||||
keyword_rts "PRINT#", PRINTH
|
keyword_rts "PRINT#", PRINTH
|
||||||
.endif
|
.endif
|
||||||
keyword_rts "PRINT", PRINT, TOKEN_PRINT
|
keyword_rts "PRINT", PRINT, TOKEN_PRINT
|
||||||
keyword_rts "CONT", CONT
|
keyword_rts "CONT", CONT
|
||||||
keyword_rts "LIST", LIST
|
keyword_rts "LIST", LIST
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
keyword_rts "CLR", CLEAR
|
|
||||||
.else
|
|
||||||
keyword_rts "CLEAR", CLEAR
|
keyword_rts "CLEAR", CLEAR
|
||||||
.endif
|
|
||||||
.ifdef CONFIG_FILE
|
.ifdef CONFIG_FILE
|
||||||
keyword_rts "CMD", CMD
|
keyword_rts "CMD", CMD
|
||||||
keyword_rts "SYS", SYS
|
keyword_rts "SYS", SYS
|
||||||
keyword_rts "OPEN", OPEN
|
keyword_rts "OPEN", OPEN
|
||||||
keyword_rts "CLOSE", CLOSE
|
keyword_rts "CLOSE", CLOSE
|
||||||
.endif
|
.endif
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
keyword_rts "GET", GET
|
keyword_rts "GET", GET
|
||||||
.endif
|
|
||||||
.ifdef KBD
|
|
||||||
keyword_rts "PRT", PRT
|
|
||||||
.endif
|
|
||||||
keyword_rts "NEW", NEW
|
keyword_rts "NEW", NEW
|
||||||
|
|
||||||
count_tokens
|
count_tokens
|
||||||
@@ -92,11 +52,7 @@
|
|||||||
keyword "-", TOKEN_MINUS
|
keyword "-", TOKEN_MINUS
|
||||||
keyword "*"
|
keyword "*"
|
||||||
keyword "/"
|
keyword "/"
|
||||||
.ifdef KBD
|
|
||||||
keyword "#"
|
|
||||||
.else
|
|
||||||
keyword "^"
|
keyword "^"
|
||||||
.endif
|
|
||||||
keyword "AND"
|
keyword "AND"
|
||||||
keyword "OR"
|
keyword "OR"
|
||||||
keyword ">", TOKEN_GREATER
|
keyword ">", TOKEN_GREATER
|
||||||
@@ -109,16 +65,7 @@ UNFNC:
|
|||||||
keyword_addr "SGN", SGN, TOKEN_SGN
|
keyword_addr "SGN", SGN, TOKEN_SGN
|
||||||
keyword_addr "INT", INT
|
keyword_addr "INT", INT
|
||||||
keyword_addr "ABS", ABS
|
keyword_addr "ABS", ABS
|
||||||
.ifdef KBD
|
|
||||||
keyword_addr "VER", VER
|
|
||||||
.endif
|
|
||||||
.ifndef CONFIG_NO_POKE
|
|
||||||
.ifdef CONFIG_RAM
|
|
||||||
keyword_addr "USR", IQERR
|
|
||||||
.else
|
|
||||||
keyword_addr "USR", USR, TOKEN_USR
|
keyword_addr "USR", USR, TOKEN_USR
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
keyword_addr "FRE", FRE
|
keyword_addr "FRE", FRE
|
||||||
keyword_addr "POS", POS
|
keyword_addr "POS", POS
|
||||||
keyword_addr "SQR", SQR
|
keyword_addr "SQR", SQR
|
||||||
@@ -137,12 +84,7 @@ UNFNC_TAN:
|
|||||||
.segment "VECTORS"
|
.segment "VECTORS"
|
||||||
UNFNC_ATN:
|
UNFNC_ATN:
|
||||||
keyword_addr "ATN", ATN
|
keyword_addr "ATN", ATN
|
||||||
.ifdef KBD
|
|
||||||
keyword_addr "GETC", GETC
|
|
||||||
.endif
|
|
||||||
.ifndef CONFIG_NO_POKE
|
|
||||||
keyword_addr "PEEK", PEEK
|
keyword_addr "PEEK", PEEK
|
||||||
.endif
|
|
||||||
keyword_addr "LEN", LEN
|
keyword_addr "LEN", LEN
|
||||||
keyword_addr "STR$", STR
|
keyword_addr "STR$", STR
|
||||||
keyword_addr "VAL", VAL
|
keyword_addr "VAL", VAL
|
||||||
@@ -151,9 +93,7 @@ UNFNC_ATN:
|
|||||||
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 CONFIG_2
|
|
||||||
keyword "GO", TOKEN_GO
|
keyword "GO", TOKEN_GO
|
||||||
.endif
|
|
||||||
.segment "KEYWORDS"
|
.segment "KEYWORDS"
|
||||||
.byte 0
|
.byte 0
|
||||||
|
|
||||||
|
|||||||
-43
@@ -1,6 +1,5 @@
|
|||||||
.segment "CODE"
|
.segment "CODE"
|
||||||
|
|
||||||
.ifndef SYM1
|
|
||||||
SIN_COS_TAN_ATN:
|
SIN_COS_TAN_ATN:
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "COS" FUNCTION
|
; "COS" FUNCTION
|
||||||
@@ -93,18 +92,6 @@ TAN1:
|
|||||||
jmp SIN1
|
jmp SIN1
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
CON_PI_HALF:
|
|
||||||
.byte $81,$49,$0F,$DB
|
|
||||||
CON_PI_DOUB:
|
|
||||||
.byte $83,$49,$0F,$DB
|
|
||||||
QUARTER:
|
|
||||||
.byte $7F,$00,$00,$00
|
|
||||||
POLY_SIN:
|
|
||||||
.byte $04,$86,$1E,$D7,$FB,$87,$99,$26
|
|
||||||
.byte $65,$87,$23,$34,$58,$86,$A5,$5D
|
|
||||||
.byte $E1,$83,$49,$0F,$DB
|
|
||||||
.else
|
|
||||||
CON_PI_HALF:
|
CON_PI_HALF:
|
||||||
.byte $81,$49,$0F,$DA,$A2
|
.byte $81,$49,$0F,$DA,$A2
|
||||||
CON_PI_DOUB:
|
CON_PI_DOUB:
|
||||||
@@ -116,22 +103,11 @@ POLY_SIN:
|
|||||||
.byte $07,$FB,$F8,$87,$99,$68,$89,$01
|
.byte $07,$FB,$F8,$87,$99,$68,$89,$01
|
||||||
.byte $87,$23,$35,$DF,$E1,$86,$A5,$5D
|
.byte $87,$23,$35,$DF,$E1,$86,$A5,$5D
|
||||||
.byte $E7,$28,$83,$49,$0F,$DA,$A2
|
.byte $E7,$28,$83,$49,$0F,$DA,$A2
|
||||||
.ifndef CONFIG_11
|
|
||||||
; no easter egg text before BASIC 1.1
|
|
||||||
.elseif !.def(CONFIG_2A)
|
|
||||||
; ASCII encoded easter egg
|
|
||||||
MICROSOFT:
|
|
||||||
.byte $A6,$D3,$C1,$C8,$D4,$C8,$D5,$C4
|
|
||||||
.byte $CE,$CA
|
|
||||||
.else
|
|
||||||
; PET encoded easter egg text since CBM2
|
; PET encoded easter egg text since CBM2
|
||||||
MICROSOFT:
|
MICROSOFT:
|
||||||
.byte $A1,$54,$46,$8F,$13,$8F,$52,$43
|
.byte $A1,$54,$46,$8F,$13,$8F,$52,$43
|
||||||
.byte $89,$CD
|
.byte $89,$CD
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.ifndef AIM65
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "ATN" FUNCTION
|
; "ATN" FUNCTION
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
@@ -171,18 +147,6 @@ L4002:
|
|||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
POLY_ATN:
|
POLY_ATN:
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
.byte $08
|
|
||||||
.byte $78,$3A,$C5,$37
|
|
||||||
.byte $7B,$83,$A2,$5C
|
|
||||||
.byte $7C,$2E,$DD,$4D
|
|
||||||
.byte $7D,$99,$B0,$1E
|
|
||||||
.byte $7D,$59,$ED,$24
|
|
||||||
.byte $7E,$91,$72,$00
|
|
||||||
.byte $7E,$4C,$B9,$73
|
|
||||||
.byte $7F,$AA,$AA,$53
|
|
||||||
.byte $81,$00,$00,$00
|
|
||||||
.else
|
|
||||||
.byte $0B
|
.byte $0B
|
||||||
.byte $76,$B3,$83,$BD,$D3
|
.byte $76,$B3,$83,$BD,$D3
|
||||||
.byte $79,$1E,$F4,$A6,$F5
|
.byte $79,$1E,$F4,$A6,$F5
|
||||||
@@ -196,10 +160,3 @@ POLY_ATN:
|
|||||||
.byte $7E,$4C,$CC,$91,$C7
|
.byte $7E,$4C,$CC,$91,$C7
|
||||||
.byte $7F,$AA,$AA,$AA,$13
|
.byte $7F,$AA,$AA,$AA,$13
|
||||||
.byte $81,$00,$00,$00,$00
|
.byte $81,$00,$00,$00,$00
|
||||||
.endif
|
|
||||||
|
|
||||||
.if .def(CONFIG_11A) && (!.def(CONFIG_2))
|
|
||||||
.byte $00 ; XXX
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
.endif
|
|
||||||
@@ -42,9 +42,7 @@ SYNERR3:
|
|||||||
NAMOK:
|
NAMOK:
|
||||||
ldx #$00
|
ldx #$00
|
||||||
stx VALTYP
|
stx VALTYP
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
stx VALTYP+1
|
stx VALTYP+1
|
||||||
.endif
|
|
||||||
jsr CHRGET
|
jsr CHRGET
|
||||||
bcc L2ECD
|
bcc L2ECD
|
||||||
jsr ISLETC
|
jsr ISLETC
|
||||||
@@ -58,14 +56,9 @@ L2ECE:
|
|||||||
bcs L2ECE
|
bcs L2ECE
|
||||||
L2ED8:
|
L2ED8:
|
||||||
cmp #$24
|
cmp #$24
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
bne L2EF9
|
|
||||||
.else
|
|
||||||
bne L2EE2
|
bne L2EE2
|
||||||
.endif
|
|
||||||
lda #$FF
|
lda #$FF
|
||||||
sta VALTYP
|
sta VALTYP
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
bne L2EF2
|
bne L2EF2
|
||||||
L2EE2:
|
L2EE2:
|
||||||
cmp #$25
|
cmp #$25
|
||||||
@@ -77,7 +70,6 @@ L2EE2:
|
|||||||
ora VARNAM
|
ora VARNAM
|
||||||
sta VARNAM
|
sta VARNAM
|
||||||
L2EF2:
|
L2EF2:
|
||||||
.endif
|
|
||||||
txa
|
txa
|
||||||
ora #$80
|
ora #$80
|
||||||
tax
|
tax
|
||||||
@@ -143,22 +135,12 @@ NAMENOTFOUND:
|
|||||||
pha
|
pha
|
||||||
cmp #<FRM_VARIABLE_CALL
|
cmp #<FRM_VARIABLE_CALL
|
||||||
bne MAKENEWVARIABLE
|
bne MAKENEWVARIABLE
|
||||||
.ifdef CONFIG_SAFE_NAMENOTFOUND
|
|
||||||
tsx
|
|
||||||
lda STACK+2,x
|
|
||||||
cmp #>FRM_VARIABLE_CALL
|
|
||||||
bne MAKENEWVARIABLE
|
|
||||||
.endif
|
|
||||||
LD015:
|
LD015:
|
||||||
lda #<C_ZERO
|
lda #<C_ZERO
|
||||||
ldy #>C_ZERO
|
ldy #>C_ZERO
|
||||||
rts
|
rts
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
.ifndef CONFIG_2
|
|
||||||
C_ZERO:
|
|
||||||
.byte $00,$00
|
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; MAKE A NEW SIMPLE VARIABLE
|
; MAKE A NEW SIMPLE VARIABLE
|
||||||
@@ -167,24 +149,6 @@ C_ZERO:
|
|||||||
; ENTER 7-BYTE VARIABLE DATA IN THE HOLE
|
; ENTER 7-BYTE VARIABLE DATA IN THE HOLE
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
MAKENEWVARIABLE:
|
MAKENEWVARIABLE:
|
||||||
.ifdef CONFIG_CBM_ALL
|
|
||||||
lda VARNAM
|
|
||||||
ldy VARNAM+1
|
|
||||||
cmp #$54
|
|
||||||
bne LD02F
|
|
||||||
cpy #$C9
|
|
||||||
beq LD015
|
|
||||||
cpy #$49
|
|
||||||
bne LD02F
|
|
||||||
LD02C:
|
|
||||||
jmp SYNERR
|
|
||||||
LD02F:
|
|
||||||
cmp #$53
|
|
||||||
bne LD037
|
|
||||||
cpy #$54
|
|
||||||
beq LD02C
|
|
||||||
LD037:
|
|
||||||
.endif
|
|
||||||
lda ARYTAB
|
lda ARYTAB
|
||||||
ldy ARYTAB+1
|
ldy ARYTAB+1
|
||||||
sta LOWTR
|
sta LOWTR
|
||||||
@@ -221,10 +185,8 @@ L2F68:
|
|||||||
sta (LOWTR),y
|
sta (LOWTR),y
|
||||||
iny
|
iny
|
||||||
sta (LOWTR),y
|
sta (LOWTR),y
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
iny
|
iny
|
||||||
sta (LOWTR),y
|
sta (LOWTR),y
|
||||||
.endif
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; PUT ADDRESS OF VALUE OF VARIABLE IN VARPNT AND Y,A
|
; PUT ADDRESS OF VALUE OF VARIABLE IN VARPNT AND Y,A
|
||||||
|
|||||||
+2
-4
@@ -1,5 +1,3 @@
|
|||||||
.segment "WOZMON"
|
|
||||||
|
|
||||||
XAML = $24 ; Last "opened" location Low
|
XAML = $24 ; Last "opened" location Low
|
||||||
XAMH = $25 ; Last "opened" location High
|
XAMH = $25 ; Last "opened" location High
|
||||||
STL = $26 ; Store address Low
|
STL = $26 ; Store address Low
|
||||||
@@ -27,7 +25,7 @@ ESCAPE:
|
|||||||
JSR ECHO ; Output it.
|
JSR ECHO ; Output it.
|
||||||
|
|
||||||
GETLINE:
|
GETLINE:
|
||||||
LDA #$0D ; Send CR
|
LDA #$0A ; Send LF
|
||||||
JSR ECHO
|
JSR ECHO
|
||||||
|
|
||||||
LDY #$01 ; Initialize text index.
|
LDY #$01 ; Initialize text index.
|
||||||
@@ -120,7 +118,7 @@ SETADR: LDA L-1,X ; Copy hex data to
|
|||||||
|
|
||||||
NXTPRNT:
|
NXTPRNT:
|
||||||
BNE PRDATA ; NE means no address to print.
|
BNE PRDATA ; NE means no address to print.
|
||||||
LDA #$0D ; CR.
|
LDA #$0A ; LF.
|
||||||
JSR ECHO ; Output it.
|
JSR ECHO ; Output it.
|
||||||
LDA XAMH ; 'Examine index' high-order byte.
|
LDA XAMH ; 'Examine index' high-order byte.
|
||||||
JSR PRBYTE ; Output it in hex format.
|
JSR PRBYTE ; Output it in hex format.
|
||||||
|
|||||||
+5
-50
@@ -2,7 +2,7 @@
|
|||||||
.feature org_per_seg
|
.feature org_per_seg
|
||||||
.zeropage
|
.zeropage
|
||||||
|
|
||||||
.org ZP_START1
|
.org $02
|
||||||
|
|
||||||
GORESTART:
|
GORESTART:
|
||||||
.res 3
|
.res 3
|
||||||
@@ -13,31 +13,21 @@ GOAYINT:
|
|||||||
GOGIVEAYF:
|
GOGIVEAYF:
|
||||||
.res 2
|
.res 2
|
||||||
|
|
||||||
.org ZP_START2
|
.org $0C
|
||||||
Z15:
|
Z15:
|
||||||
.res 1
|
.res 1
|
||||||
.ifndef POSX; allow override
|
|
||||||
POSX:
|
POSX:
|
||||||
.endif
|
|
||||||
.res 1
|
.res 1
|
||||||
.ifndef Z17; allow override
|
|
||||||
Z17:
|
Z17:
|
||||||
.endif
|
|
||||||
.res 1
|
.res 1
|
||||||
.ifndef Z18; allow override
|
|
||||||
Z18:
|
Z18:
|
||||||
.endif
|
|
||||||
.res 1
|
.res 1
|
||||||
LINNUM:
|
LINNUM:
|
||||||
.ifndef TXPSV; allow override
|
|
||||||
TXPSV:
|
TXPSV:
|
||||||
.endif
|
|
||||||
.res 2
|
.res 2
|
||||||
.ifndef INPUTBUFFER; allow override
|
INPUTBUFFER = $0200
|
||||||
INPUTBUFFER:
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.org ZP_START3
|
.org $12
|
||||||
|
|
||||||
CHARAC:
|
CHARAC:
|
||||||
.res 1
|
.res 1
|
||||||
@@ -48,11 +38,7 @@ EOLPNTR:
|
|||||||
DIMFLG:
|
DIMFLG:
|
||||||
.res 1
|
.res 1
|
||||||
VALTYP:
|
VALTYP:
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
.res 1
|
|
||||||
.else
|
|
||||||
.res 2
|
.res 2
|
||||||
.endif
|
|
||||||
DATAFLG:
|
DATAFLG:
|
||||||
.res 1
|
.res 1
|
||||||
SUBFLG:
|
SUBFLG:
|
||||||
@@ -64,7 +50,7 @@ CPRMASK:
|
|||||||
Z14:
|
Z14:
|
||||||
.res 1
|
.res 1
|
||||||
|
|
||||||
.org ZP_START4
|
.org $1D
|
||||||
|
|
||||||
TEMPPT:
|
TEMPPT:
|
||||||
.res 1
|
.res 1
|
||||||
@@ -119,44 +105,29 @@ FNCNAM:
|
|||||||
TEMP3:
|
TEMP3:
|
||||||
.res 2
|
.res 2
|
||||||
DSCPTR:
|
DSCPTR:
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
.res 2
|
|
||||||
.else
|
|
||||||
.res 3
|
.res 3
|
||||||
.endif
|
|
||||||
DSCLEN:
|
DSCLEN:
|
||||||
.res 2
|
.res 2
|
||||||
.ifndef JMPADRS ; allow override
|
|
||||||
JMPADRS := DSCLEN + 1
|
JMPADRS := DSCLEN + 1
|
||||||
.endif
|
|
||||||
Z52:
|
Z52:
|
||||||
.res 1
|
.res 1
|
||||||
ARGEXTENSION:
|
ARGEXTENSION:
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
.res 1
|
.res 1
|
||||||
.endif
|
|
||||||
TEMP1:
|
TEMP1:
|
||||||
.res 1
|
.res 1
|
||||||
HIGHDS:
|
HIGHDS:
|
||||||
.res 2
|
.res 2
|
||||||
HIGHTR:
|
HIGHTR:
|
||||||
.res 2
|
.res 2
|
||||||
.ifndef CONFIG_SMALL
|
|
||||||
TEMP2:
|
TEMP2:
|
||||||
.res 1
|
.res 1
|
||||||
.endif
|
|
||||||
INDX:
|
INDX:
|
||||||
TMPEXP:
|
TMPEXP:
|
||||||
.ifdef CONFIG_SMALL
|
|
||||||
TEMP2:
|
|
||||||
.endif
|
|
||||||
.res 1
|
.res 1
|
||||||
EXPON:
|
EXPON:
|
||||||
.res 1
|
.res 1
|
||||||
LOWTR:
|
LOWTR:
|
||||||
.ifndef LOWTRX ; allow override
|
|
||||||
LOWTRX:
|
LOWTRX:
|
||||||
.endif
|
|
||||||
.res 1
|
.res 1
|
||||||
EXPSGN:
|
EXPSGN:
|
||||||
.res 1
|
.res 1
|
||||||
@@ -180,24 +151,8 @@ SGNCPR = STRNG1
|
|||||||
FACEXTENSION = STRNG1+1
|
FACEXTENSION = STRNG1+1
|
||||||
STRNG2:
|
STRNG2:
|
||||||
.res 2
|
.res 2
|
||||||
.ifdef AIM65
|
|
||||||
ATN:
|
|
||||||
.res 3
|
|
||||||
ZBE:
|
|
||||||
.res 1
|
|
||||||
.endif
|
|
||||||
.ifdef SYM1
|
|
||||||
USR1:
|
|
||||||
.res 3
|
|
||||||
USR2:
|
|
||||||
.res 3
|
|
||||||
USR3:
|
|
||||||
.res 3
|
|
||||||
.endif
|
|
||||||
CHRGET:
|
CHRGET:
|
||||||
TXTPTR = <(GENERIC_TXTPTR-GENERIC_CHRGET + CHRGET)
|
TXTPTR = <(GENERIC_TXTPTR-GENERIC_CHRGET + CHRGET)
|
||||||
CHRGOT = <(GENERIC_CHRGOT-GENERIC_CHRGET + CHRGET)
|
CHRGOT = <(GENERIC_CHRGOT-GENERIC_CHRGET + CHRGET)
|
||||||
CHRGOT2 = <(GENERIC_CHRGOT2-GENERIC_CHRGET + CHRGET)
|
CHRGOT2 = <(GENERIC_CHRGOT2-GENERIC_CHRGET + CHRGET)
|
||||||
RNDSEED = <(GENERIC_RNDSEED-GENERIC_CHRGET + CHRGET)
|
RNDSEED = <(GENERIC_RNDSEED-GENERIC_CHRGET + CHRGET)
|
||||||
|
|
||||||
|
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
int putChar(uint8_t c) {
|
int putChar(uint8_t c) {
|
||||||
int _c = putchar(c);
|
int _c = putchar(c);
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
|
||||||
return _c;
|
return _c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ int main(void) {
|
|||||||
|
|
||||||
printf("6502PC Emulator with MS Basic\n");
|
printf("6502PC Emulator with MS Basic\n");
|
||||||
printf("CTRL + G to exit\n");
|
printf("CTRL + G to exit\n");
|
||||||
|
printf("DF6FR to jump to BASIC\n");
|
||||||
|
|
||||||
clock_gettime(CLOCK_MONOTONIC, &emulationStart);
|
clock_gettime(CLOCK_MONOTONIC, &emulationStart);
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
uint8_t rom[ROM_SIZE] = {0};
|
uint8_t rom[ROM_SIZE] = {0};
|
||||||
|
|
||||||
void initRom(uint8_t *rom) {
|
void initRom(uint8_t *rom) {
|
||||||
FILE *fp = fopen("rom/tmp/kilian.bin", "rb");
|
FILE *fp = fopen("rom/tmp/rom.bin", "rb");
|
||||||
|
|
||||||
if (!fp) {
|
if (!fp) {
|
||||||
perror("fopen");
|
perror("fopen");
|
||||||
|
|||||||
Reference in new issue
Block a user