mirror of
https://github.com/mist64/msbasic.git
synced 2024-09-21 10:37:25 +00:00
added SYM-1
This commit is contained in:
parent
440442981d
commit
42fd0a2a58
@ -22,6 +22,9 @@ MICROTAN := 1
|
|||||||
.elseif .def(aim65)
|
.elseif .def(aim65)
|
||||||
AIM65 := 1
|
AIM65 := 1
|
||||||
.include "defines_aim65.s"
|
.include "defines_aim65.s"
|
||||||
|
.elseif .def(sym1)
|
||||||
|
SYM1 := 1
|
||||||
|
.include "defines_sym1.s"
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.ifdef CONFIG_2C
|
.ifdef CONFIG_2C
|
||||||
|
@ -29,7 +29,7 @@ STACK2 := $0200
|
|||||||
; constants
|
; constants
|
||||||
STACK_TOP := $FD
|
STACK_TOP := $FD
|
||||||
SPACE_FOR_GOSUB := $44
|
SPACE_FOR_GOSUB := $44
|
||||||
NULL_MAX := $F2 ; probably different in original version; the image I have seems
|
NULL_MAX := $F2
|
||||||
CRLF_1 := CR
|
CRLF_1 := CR
|
||||||
CRLF_2 := LF
|
CRLF_2 := LF
|
||||||
WIDTH := 20
|
WIDTH := 20
|
||||||
|
57
defines_sym1.s
Normal file
57
defines_sym1.s
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
; configuration
|
||||||
|
CONFIG_2A := 1
|
||||||
|
|
||||||
|
CONFIG_NULL := 1
|
||||||
|
CONFIG_PRINT_CR := 1 ; print CR when line end reached
|
||||||
|
CONFIG_SAFE_NAMENOTFOUND := 1
|
||||||
|
CONFIG_SCRTCH_ORDER := 1
|
||||||
|
CONFIG_PEEK_SAVE_LINNUM := 1
|
||||||
|
CONFIG_SMALL_ERROR := 1
|
||||||
|
|
||||||
|
; zero page
|
||||||
|
ZP_START1 = $00
|
||||||
|
ZP_START2 = $18
|
||||||
|
ZP_START3 = $0d
|
||||||
|
ZP_START4 = $66
|
||||||
|
|
||||||
|
;extra ZP variables
|
||||||
|
USR := $0A
|
||||||
|
TXPSV := LASTOP
|
||||||
|
ZD3 := $D3
|
||||||
|
ZD4 := $D4
|
||||||
|
|
||||||
|
GET := IQERR
|
||||||
|
COS := USR1
|
||||||
|
SIN := USR1
|
||||||
|
TAN := USR1
|
||||||
|
ATN := USR1
|
||||||
|
|
||||||
|
; inputbuffer
|
||||||
|
INPUTBUFFER := $001E
|
||||||
|
|
||||||
|
; constants
|
||||||
|
STACK_TOP := $FE
|
||||||
|
SPACE_FOR_GOSUB := $3E
|
||||||
|
NULL_MAX := $F0
|
||||||
|
CRLF_1 := CR
|
||||||
|
CRLF_2 := LF
|
||||||
|
WIDTH := 72
|
||||||
|
WIDTH2 := 56
|
||||||
|
|
||||||
|
; memory layout
|
||||||
|
RAMSTART2 := $0200
|
||||||
|
|
||||||
|
; monitor functions
|
||||||
|
ASCNIB := $8275
|
||||||
|
INSTAT := $8386
|
||||||
|
MONRDKEY := $8A1B
|
||||||
|
MONCOUT := $8A47
|
||||||
|
ACCESS := $8B86
|
||||||
|
L8C78 := $8C78
|
||||||
|
DUMPT := $8E87
|
||||||
|
|
||||||
|
P3L := $A64A
|
||||||
|
P3H := P3L+1
|
||||||
|
P2L := $A64C
|
||||||
|
P2H := P2L+1
|
||||||
|
P1L := $A64E
|
99
eval.s
99
eval.s
@ -394,6 +394,16 @@ 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
|
||||||
@ -687,3 +697,92 @@ 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
|
||||||
|
4
extra.s
4
extra.s
@ -23,3 +23,7 @@
|
|||||||
.ifdef AIM65
|
.ifdef AIM65
|
||||||
.include "aim65_extra.s"
|
.include "aim65_extra.s"
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
.ifdef SYM1
|
||||||
|
.byte 0,0,0
|
||||||
|
.endif
|
6
float.s
6
float.s
@ -1197,6 +1197,12 @@ 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
|
||||||
|
1
flow1.s
1
flow1.s
@ -311,6 +311,7 @@ NULL:
|
|||||||
bcs L2739
|
bcs L2739
|
||||||
dex
|
dex
|
||||||
stx Z15
|
stx Z15
|
||||||
|
L2738:
|
||||||
rts
|
rts
|
||||||
L2739:
|
L2739:
|
||||||
jmp IQERR
|
jmp IQERR
|
||||||
|
3
header.s
3
header.s
@ -8,3 +8,6 @@
|
|||||||
jmp RESTART
|
jmp RESTART
|
||||||
.word AYINT,GIVAYF
|
.word AYINT,GIVAYF
|
||||||
.endif
|
.endif
|
||||||
|
.ifdef SYM1
|
||||||
|
jmp PR_WRITTEN_BY
|
||||||
|
.endif
|
||||||
|
37
init.s
37
init.s
@ -11,13 +11,18 @@ PR_WRITTEN_BY:
|
|||||||
.ifndef KBD
|
.ifndef KBD
|
||||||
.ifndef CONFIG_CBM_ALL
|
.ifndef CONFIG_CBM_ALL
|
||||||
.ifndef AIM65
|
.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
|
||||||
.endif
|
.endif
|
||||||
|
.endif
|
||||||
COLD_START:
|
COLD_START:
|
||||||
|
.ifdef SYM1
|
||||||
|
jsr ACCESS
|
||||||
|
.endif
|
||||||
.ifdef KBD
|
.ifdef KBD
|
||||||
lda #<LFD81
|
lda #<LFD81
|
||||||
sta $03A0
|
sta $03A0
|
||||||
@ -72,6 +77,11 @@ COLD_START:
|
|||||||
sta GOSTROUT
|
sta GOSTROUT
|
||||||
sta JMPADRS
|
sta JMPADRS
|
||||||
.endif
|
.endif
|
||||||
|
.ifdef SYM1
|
||||||
|
sta USR1
|
||||||
|
sta USR3
|
||||||
|
sta USR2
|
||||||
|
.endif
|
||||||
.if (!.def(CONFIG_RAM)) && (!.def(CONFIG_CBM_ALL))
|
.if (!.def(CONFIG_RAM)) && (!.def(CONFIG_CBM_ALL))
|
||||||
sta USR
|
sta USR
|
||||||
.endif
|
.endif
|
||||||
@ -93,6 +103,18 @@ COLD_START:
|
|||||||
.else
|
.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
|
||||||
.endif
|
.endif
|
||||||
.ifndef CBM1
|
.ifndef CBM1
|
||||||
@ -156,10 +178,12 @@ L4098:
|
|||||||
sta Z14
|
sta Z14
|
||||||
.ifndef CBM2
|
.ifndef CBM2
|
||||||
.ifndef AIM65
|
.ifndef AIM65
|
||||||
|
.ifndef SYM1
|
||||||
.ifndef MICROTAN
|
.ifndef MICROTAN
|
||||||
lda #$03
|
lda #$03
|
||||||
sta DSCLEN
|
sta DSCLEN
|
||||||
.endif
|
.endif
|
||||||
|
.endif
|
||||||
.endif
|
.endif
|
||||||
.ifndef CONFIG_11
|
.ifndef CONFIG_11
|
||||||
lda #$2C
|
lda #$2C
|
||||||
@ -192,8 +216,10 @@ L4098:
|
|||||||
sty TXTPTR+1
|
sty TXTPTR+1
|
||||||
jsr CHRGET
|
jsr CHRGET
|
||||||
.ifndef AIM65
|
.ifndef AIM65
|
||||||
|
.ifndef SYM1
|
||||||
cmp #$41
|
cmp #$41
|
||||||
beq PR_WRITTEN_BY
|
beq PR_WRITTEN_BY
|
||||||
|
.endif
|
||||||
.endif
|
.endif
|
||||||
tay
|
tay
|
||||||
bne L40EE
|
bne L40EE
|
||||||
@ -267,7 +293,7 @@ L40FA:
|
|||||||
ldy LINNUM+1
|
ldy LINNUM+1
|
||||||
sta MEMSIZ
|
sta MEMSIZ
|
||||||
sty MEMSIZ+1
|
sty MEMSIZ+1
|
||||||
.if !(.def(MICROTAN) || .def(AIM65))
|
.if !(.def(MICROTAN) || .def(AIM65) || .def(SYM1))
|
||||||
sta FRETOP
|
sta FRETOP
|
||||||
sty FRETOP+1
|
sty FRETOP+1
|
||||||
.endif
|
.endif
|
||||||
@ -424,7 +450,7 @@ QT_WANT:
|
|||||||
.endif
|
.endif
|
||||||
QT_WRITTEN_BY:
|
QT_WRITTEN_BY:
|
||||||
.ifndef CONFIG_CBM_ALL
|
.ifndef CONFIG_CBM_ALL
|
||||||
.ifndef AIM65
|
.if !(.def(AIM65) || .def(SYM1))
|
||||||
.ifdef APPLE
|
.ifdef APPLE
|
||||||
asc80 "COPYRIGHT 1977 BY MICROSOFT CO"
|
asc80 "COPYRIGHT 1977 BY MICROSOFT CO"
|
||||||
.byte CR,0
|
.byte CR,0
|
||||||
@ -442,7 +468,7 @@ QT_MEMORY_SIZE:
|
|||||||
.byte "MEMORY SIZE"
|
.byte "MEMORY SIZE"
|
||||||
.byte 0
|
.byte 0
|
||||||
QT_TERMINAL_WIDTH:
|
QT_TERMINAL_WIDTH:
|
||||||
.ifndef AIM65
|
.if !(.def(AIM65) || .def(SYM1))
|
||||||
.byte "TERMINAL "
|
.byte "TERMINAL "
|
||||||
.endif
|
.endif
|
||||||
.byte "WIDTH"
|
.byte "WIDTH"
|
||||||
@ -471,6 +497,9 @@ QT_BASIC:
|
|||||||
.ifdef AIM65
|
.ifdef AIM65
|
||||||
.byte " AIM 65 BASIC V1.1"
|
.byte " AIM 65 BASIC V1.1"
|
||||||
.endif
|
.endif
|
||||||
|
.ifdef SYM1
|
||||||
|
.byte "BASIC V1.1"
|
||||||
|
.endif
|
||||||
.ifdef CBM1
|
.ifdef CBM1
|
||||||
.byte $13 ; HOME
|
.byte $13 ; HOME
|
||||||
.byte "*** COMMODORE BASIC ***"
|
.byte "*** COMMODORE BASIC ***"
|
||||||
@ -491,6 +520,8 @@ QT_BASIC:
|
|||||||
.elseif .def(AIM65)
|
.elseif .def(AIM65)
|
||||||
.byte 0
|
.byte 0
|
||||||
.byte "(C) 1978 MICROSOFT"
|
.byte "(C) 1978 MICROSOFT"
|
||||||
|
.elseif .def(SYM1)
|
||||||
|
.byte "COPYRIGHT 1978 SYNERTEK SYSTEMS CORP."
|
||||||
.else
|
.else
|
||||||
.byte "COPYRIGHT 1977 BY MICROSOFT CO."
|
.byte "COPYRIGHT 1977 BY MICROSOFT CO."
|
||||||
.endif
|
.endif
|
||||||
|
9
inline.s
9
inline.s
@ -99,10 +99,7 @@ L2443:
|
|||||||
.endif
|
.endif
|
||||||
sta INPUTBUFFER,x
|
sta INPUTBUFFER,x
|
||||||
inx
|
inx
|
||||||
.ifdef OSI
|
.if .def(OSI) || .def(AIM65)
|
||||||
.byte $2C
|
|
||||||
.elseif .def(AIM65)
|
|
||||||
|
|
||||||
.byte $2C
|
.byte $2C
|
||||||
.else
|
.else
|
||||||
bne INLIN2
|
bne INLIN2
|
||||||
@ -152,7 +149,11 @@ RDKEY:
|
|||||||
jsr LFD0C
|
jsr LFD0C
|
||||||
and #$7F
|
and #$7F
|
||||||
.endif
|
.endif
|
||||||
|
.ifdef SYM1
|
||||||
|
cmp #$14
|
||||||
|
.else
|
||||||
cmp #$0F
|
cmp #$0F
|
||||||
|
.endif
|
||||||
bne L2465
|
bne L2465
|
||||||
pha
|
pha
|
||||||
lda Z14
|
lda Z14
|
||||||
|
20
input.s
20
input.s
@ -8,6 +8,7 @@
|
|||||||
INPUTERR:
|
INPUTERR:
|
||||||
lda INPUTFLG
|
lda INPUTFLG
|
||||||
beq RESPERR ; INPUT
|
beq RESPERR ; INPUT
|
||||||
|
.ifndef SYM1
|
||||||
.ifndef CONFIG_SMALL
|
.ifndef CONFIG_SMALL
|
||||||
.ifdef CONFIG_10A
|
.ifdef CONFIG_10A
|
||||||
; without this, it treats GET errors
|
; without this, it treats GET errors
|
||||||
@ -18,6 +19,7 @@ INPUTERR:
|
|||||||
L2A63:
|
L2A63:
|
||||||
.endif
|
.endif
|
||||||
.endif
|
.endif
|
||||||
|
.endif
|
||||||
.ifdef CONFIG_CBM1_PATCHES
|
.ifdef CONFIG_CBM1_PATCHES
|
||||||
jsr PATCH5
|
jsr PATCH5
|
||||||
nop
|
nop
|
||||||
@ -52,6 +54,7 @@ RTS20:
|
|||||||
; "GET" STATEMENT
|
; "GET" STATEMENT
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
.ifndef CONFIG_SMALL
|
.ifndef CONFIG_SMALL
|
||||||
|
.ifndef SYM1
|
||||||
GET:
|
GET:
|
||||||
jsr ERRDIR
|
jsr ERRDIR
|
||||||
; CBM: if GET#, then switch input
|
; CBM: if GET#, then switch input
|
||||||
@ -83,6 +86,7 @@ LCAB6:
|
|||||||
.endif
|
.endif
|
||||||
rts
|
rts
|
||||||
.endif
|
.endif
|
||||||
|
.endif
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "INPUT#" STATEMENT
|
; "INPUT#" STATEMENT
|
||||||
@ -105,6 +109,12 @@ LCAD8:
|
|||||||
LCAE0:
|
LCAE0:
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
.ifdef SYM1
|
||||||
|
LC9B0:
|
||||||
|
jsr OUTQUES ; '?'
|
||||||
|
jsr OUTSP
|
||||||
|
jmp L2A9E
|
||||||
|
.endif
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "INPUT" STATEMENT
|
; "INPUT" STATEMENT
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
@ -118,7 +128,11 @@ INPUT:
|
|||||||
jsr LCFFA
|
jsr LCFFA
|
||||||
.endif
|
.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
|
||||||
@ -130,6 +144,8 @@ L2A9E:
|
|||||||
LCAF8:
|
LCAF8:
|
||||||
.ifdef APPLE
|
.ifdef APPLE
|
||||||
jsr INLINX
|
jsr INLINX
|
||||||
|
.elseif .def(SYM1)
|
||||||
|
jsr INLIN
|
||||||
.else
|
.else
|
||||||
jsr NXIN
|
jsr NXIN
|
||||||
.endif
|
.endif
|
||||||
@ -233,6 +249,7 @@ PROCESS_INPUT_ITEM:
|
|||||||
bne INSTART
|
bne INSTART
|
||||||
bit INPUTFLG
|
bit INPUTFLG
|
||||||
.ifndef CONFIG_SMALL ; GET
|
.ifndef CONFIG_SMALL ; GET
|
||||||
|
.ifndef SYM1
|
||||||
bvc L2AF0
|
bvc L2AF0
|
||||||
.ifdef MICROTAN
|
.ifdef MICROTAN
|
||||||
jsr MONRDKEY2
|
jsr MONRDKEY2
|
||||||
@ -271,6 +288,7 @@ PROCESS_INPUT_ITEM:
|
|||||||
bne L2AF8 ; always
|
bne L2AF8 ; always
|
||||||
.endif
|
.endif
|
||||||
L2AF0:
|
L2AF0:
|
||||||
|
.endif
|
||||||
.endif
|
.endif
|
||||||
bmi FINDATA
|
bmi FINDATA
|
||||||
.ifdef CONFIG_FILE
|
.ifdef CONFIG_FILE
|
||||||
@ -294,6 +312,7 @@ INSTART:
|
|||||||
bit VALTYP
|
bit VALTYP
|
||||||
bpl L2B34
|
bpl L2B34
|
||||||
.ifndef CONFIG_SMALL ; GET
|
.ifndef CONFIG_SMALL ; GET
|
||||||
|
.ifndef SYM1
|
||||||
bit INPUTFLG
|
bit INPUTFLG
|
||||||
bvc L2B10
|
bvc L2B10
|
||||||
.ifdef CONFIG_CBM1_PATCHES
|
.ifdef CONFIG_CBM1_PATCHES
|
||||||
@ -308,6 +327,7 @@ INSTART:
|
|||||||
beq L2B1C
|
beq L2B1C
|
||||||
.endif
|
.endif
|
||||||
L2B10:
|
L2B10:
|
||||||
|
.endif
|
||||||
.endif
|
.endif
|
||||||
sta CHARAC
|
sta CHARAC
|
||||||
cmp #$22
|
cmp #$22
|
||||||
|
3
iscntc.s
3
iscntc.s
@ -23,4 +23,7 @@
|
|||||||
.ifdef AIM65
|
.ifdef AIM65
|
||||||
.include "aim65_iscntc.s"
|
.include "aim65_iscntc.s"
|
||||||
.endif
|
.endif
|
||||||
|
.ifdef SYM1
|
||||||
|
.include "sym1_iscntc.s"
|
||||||
|
.endif
|
||||||
;!!! runs into "STOP"
|
;!!! runs into "STOP"
|
@ -12,3 +12,6 @@
|
|||||||
.ifdef AIM65
|
.ifdef AIM65
|
||||||
.include "aim65_loadsave.s"
|
.include "aim65_loadsave.s"
|
||||||
.endif
|
.endif
|
||||||
|
.ifdef SYM1
|
||||||
|
.include "sym1_loadsave.s"
|
||||||
|
.endif
|
2
make.sh
2
make.sh
@ -2,7 +2,7 @@ if [ ! -d tmp ]; then
|
|||||||
mkdir tmp
|
mkdir tmp
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for i in cbmbasic1 cbmbasic2 kbdbasic osi kb9 applesoft microtan aim65; do
|
for i in cbmbasic1 cbmbasic2 kbdbasic osi kb9 applesoft microtan aim65 sym1; do
|
||||||
|
|
||||||
echo $i
|
echo $i
|
||||||
ca65 -D $i msbasic.s -o tmp/$i.o &&
|
ca65 -D $i msbasic.s -o tmp/$i.o &&
|
||||||
|
BIN
orig/sym1.bin
Normal file
BIN
orig/sym1.bin
Normal file
Binary file not shown.
12
print.s
12
print.s
@ -104,7 +104,7 @@ L29B9:
|
|||||||
sty INPUTBUFFER,x
|
sty INPUTBUFFER,x
|
||||||
ldx #LINNUM+1
|
ldx #LINNUM+1
|
||||||
.endif
|
.endif
|
||||||
.ifdef MICROTAN
|
.if .def(MICROTAN) || .def(SYM1)
|
||||||
bne CRDO2
|
bne CRDO2
|
||||||
.endif
|
.endif
|
||||||
.endif
|
.endif
|
||||||
@ -132,11 +132,7 @@ CRDO2:
|
|||||||
jsr OUTDO
|
jsr OUTDO
|
||||||
|
|
||||||
PRINTNULLS:
|
PRINTNULLS:
|
||||||
.ifdef KBD
|
.if .def(KBD) || .def(AIM65)
|
||||||
lda #$00
|
|
||||||
sta POSX
|
|
||||||
eor #$FF
|
|
||||||
.elseif .def(AIM65)
|
|
||||||
lda #$00
|
lda #$00
|
||||||
sta POSX
|
sta POSX
|
||||||
eor #$FF
|
eor #$FF
|
||||||
@ -154,7 +150,11 @@ PRINTNULLS:
|
|||||||
pha
|
pha
|
||||||
ldx Z15
|
ldx Z15
|
||||||
beq L29D9
|
beq L29D9
|
||||||
|
.ifdef SYM1
|
||||||
|
lda #$FF
|
||||||
|
.else
|
||||||
lda #$00
|
lda #$00
|
||||||
|
.endif
|
||||||
L29D3:
|
L29D3:
|
||||||
jsr OUTDO
|
jsr OUTDO
|
||||||
dex
|
dex
|
||||||
|
14
program.s
14
program.s
@ -654,7 +654,7 @@ LB4BF:
|
|||||||
php
|
php
|
||||||
jmp LE21C ; patch
|
jmp LE21C ; patch
|
||||||
LC57E:
|
LC57E:
|
||||||
.elseif .def(AIM65)
|
.elseif .def(AIM65) || .def(SYM1)
|
||||||
php
|
php
|
||||||
jsr LINGET
|
jsr LINGET
|
||||||
LC57E:
|
LC57E:
|
||||||
@ -667,12 +667,12 @@ L2581:
|
|||||||
jsr LINGET
|
jsr LINGET
|
||||||
.endif
|
.endif
|
||||||
jsr FNDLIN
|
jsr FNDLIN
|
||||||
.if .def(MICROTAN) || .def(AIM65)
|
.if .def(MICROTAN) || .def(AIM65) || .def(SYM1)
|
||||||
plp
|
plp
|
||||||
beq L2598
|
beq L2598
|
||||||
.endif
|
.endif
|
||||||
jsr CHRGOT
|
jsr CHRGOT
|
||||||
.if .def(MICROTAN) || .def(AIM65)
|
.if .def(MICROTAN) || .def(AIM65) || .def(SYM1)
|
||||||
beq L25A6
|
beq L25A6
|
||||||
.else
|
.else
|
||||||
beq L2598
|
beq L2598
|
||||||
@ -680,7 +680,7 @@ L2581:
|
|||||||
cmp #TOKEN_MINUS
|
cmp #TOKEN_MINUS
|
||||||
bne L2520
|
bne L2520
|
||||||
jsr CHRGET
|
jsr CHRGET
|
||||||
.if .def(MICROTAN) || .def(AIM65)
|
.if .def(MICROTAN) || .def(AIM65) || .def(SYM1)
|
||||||
beq L2598
|
beq L2598
|
||||||
jsr LINGET
|
jsr LINGET
|
||||||
beq L25A6
|
beq L25A6
|
||||||
@ -690,7 +690,7 @@ L2581:
|
|||||||
bne L2520
|
bne L2520
|
||||||
.endif
|
.endif
|
||||||
L2598:
|
L2598:
|
||||||
.if !(.def(MICROTAN) || .def(AIM65))
|
.if !(.def(MICROTAN) || .def(AIM65) || .def(SYM1))
|
||||||
pla
|
pla
|
||||||
pla
|
pla
|
||||||
lda LINNUM
|
lda LINNUM
|
||||||
@ -701,7 +701,7 @@ L2598:
|
|||||||
sta LINNUM
|
sta LINNUM
|
||||||
sta LINNUM+1
|
sta LINNUM+1
|
||||||
L25A6:
|
L25A6:
|
||||||
.if .def(MICROTAN) || .def(AIM65)
|
.if .def(MICROTAN) || .def(AIM65) || .def(SYM1)
|
||||||
pla
|
pla
|
||||||
pla
|
pla
|
||||||
.endif
|
.endif
|
||||||
@ -764,7 +764,7 @@ LA519:
|
|||||||
lda (LOWTRX),y
|
lda (LOWTRX),y
|
||||||
stx LOWTRX
|
stx LOWTRX
|
||||||
sta LOWTRX+1
|
sta LOWTRX+1
|
||||||
.if .def(MICROTAN) || .def(AIM65)
|
.if .def(MICROTAN) || .def(AIM65) || .def(SYM1)
|
||||||
bne L25A6X
|
bne L25A6X
|
||||||
.else
|
.else
|
||||||
bne L25A6
|
bne L25A6
|
||||||
|
@ -5,7 +5,7 @@ if [ ! -d orig ]; then
|
|||||||
exit;
|
exit;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for i in cbmbasic1 cbmbasic2 kbdbasic osi kb9 applesoft microtan aim65; do
|
for i in cbmbasic1 cbmbasic2 kbdbasic osi kb9 applesoft microtan aim65 sym1; do
|
||||||
|
|
||||||
echo $i
|
echo $i
|
||||||
ca65 -D $i msbasic.s -o tmp/$i.o &&
|
ca65 -D $i msbasic.s -o tmp/$i.o &&
|
||||||
|
19
sym1.cfg
Normal file
19
sym1.cfg
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
MEMORY {
|
||||||
|
ZP: start = $0000, size = $0100, type = rw;
|
||||||
|
BASROM: start = $C000, size = $2000, fill = no, file = %O;
|
||||||
|
DUMMY: start = $0000, size = $00FF, file = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
SEGMENTS {
|
||||||
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
|
HEADER: load = BASROM, type = ro;
|
||||||
|
VECTORS: load = BASROM, type = ro;
|
||||||
|
KEYWORDS: load = BASROM, type = ro;
|
||||||
|
ERROR: load = BASROM, type = ro;
|
||||||
|
CODE: load = BASROM, type = ro;
|
||||||
|
CHRGET: load = BASROM, type = ro;
|
||||||
|
INIT: load = BASROM, type = ro;
|
||||||
|
EXTRA: load = BASROM, type = ro;
|
||||||
|
DUMMY: load = DUMMY; # don't include
|
||||||
|
}
|
||||||
|
|
8
sym1_iscntc.s
Normal file
8
sym1_iscntc.s
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.segment "CODE"
|
||||||
|
ISCNTC:
|
||||||
|
jsr INSTAT
|
||||||
|
bcc RET1
|
||||||
|
|
||||||
|
lda #$03
|
||||||
|
cmp #$03
|
||||||
|
;!!! runs into "STOP"
|
70
sym1_loadsave.s
Normal file
70
sym1_loadsave.s
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
.segment "CODE"
|
||||||
|
|
||||||
|
SAVE:
|
||||||
|
beq L2739
|
||||||
|
sta P1L
|
||||||
|
jsr CHRGET
|
||||||
|
bne NULL-1
|
||||||
|
|
||||||
|
lda TXTTAB
|
||||||
|
ldy TXTTAB+1
|
||||||
|
sta P2L
|
||||||
|
sty P2H
|
||||||
|
|
||||||
|
lda VARTAB
|
||||||
|
ldy VARTAB+1
|
||||||
|
sta P3L
|
||||||
|
sty P3H
|
||||||
|
|
||||||
|
ldy #$80
|
||||||
|
jsr USR2
|
||||||
|
bcs LC6DD
|
||||||
|
lda #<SAVED
|
||||||
|
ldy #>SAVED
|
||||||
|
jmp STROUT
|
||||||
|
|
||||||
|
LOADED:
|
||||||
|
.byte "LOADED",CR,LF
|
||||||
|
.byte "OK",CR,LF,0
|
||||||
|
|
||||||
|
SAVED:
|
||||||
|
.byte "SAVED",CR,LF,0
|
||||||
|
|
||||||
|
LOAD:
|
||||||
|
beq L2739
|
||||||
|
sta $A64E
|
||||||
|
jsr CHRGET
|
||||||
|
bne L2738
|
||||||
|
ldy #$80
|
||||||
|
jsr USR3
|
||||||
|
bcs LC6EF
|
||||||
|
|
||||||
|
lda #<LOADED
|
||||||
|
ldy #>LOADED
|
||||||
|
jsr STROUT
|
||||||
|
|
||||||
|
ldx P3L
|
||||||
|
ldy P3H
|
||||||
|
txa
|
||||||
|
stx VARTAB
|
||||||
|
sty VARTAB+1
|
||||||
|
jmp FIX_LINKS
|
||||||
|
|
||||||
|
LC6DD:
|
||||||
|
lda #<BAD_SAVE
|
||||||
|
ldy #>BAD_SAVE
|
||||||
|
jmp STROUT
|
||||||
|
|
||||||
|
BAD_SAVE:
|
||||||
|
htasc "BAD SAVE"
|
||||||
|
.byte CR,LF,0
|
||||||
|
LC6EF:
|
||||||
|
lda #<BAD_LOAD
|
||||||
|
ldy #>BAD_LOAD
|
||||||
|
jsr STROUT
|
||||||
|
jsr SCRTCH
|
||||||
|
jmp RESTART
|
||||||
|
|
||||||
|
BAD_LOAD:
|
||||||
|
htasc "BAD LOAD"
|
||||||
|
.byte CR,LF,0
|
2
token.s
2
token.s
@ -116,7 +116,7 @@ UNFNC:
|
|||||||
.ifdef CONFIG_RAM
|
.ifdef CONFIG_RAM
|
||||||
keyword_addr "USR", IQERR
|
keyword_addr "USR", IQERR
|
||||||
.else
|
.else
|
||||||
keyword_addr "USR", USR
|
keyword_addr "USR", USR, TOKEN_USR
|
||||||
.endif
|
.endif
|
||||||
.endif
|
.endif
|
||||||
keyword_addr "FRE", FRE
|
keyword_addr "FRE", FRE
|
||||||
|
2
trig.s
2
trig.s
@ -1,5 +1,6 @@
|
|||||||
.segment "CODE"
|
.segment "CODE"
|
||||||
|
|
||||||
|
.ifndef SYM1
|
||||||
SIN_COS_TAN_ATN:
|
SIN_COS_TAN_ATN:
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; "COS" FUNCTION
|
; "COS" FUNCTION
|
||||||
@ -201,3 +202,4 @@ POLY_ATN:
|
|||||||
.byte $00 ; XXX
|
.byte $00 ; XXX
|
||||||
.endif
|
.endif
|
||||||
.endif
|
.endif
|
||||||
|
.endif
|
@ -186,6 +186,14 @@ ATN:
|
|||||||
ZBE:
|
ZBE:
|
||||||
.res 1
|
.res 1
|
||||||
.endif
|
.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)
|
||||||
|
Loading…
Reference in New Issue
Block a user