This commit is contained in:
Michael Steil
2008-10-15 05:00:23 +00:00
parent a5ba6d95f1
commit 8e753acd2b
9 changed files with 82 additions and 66 deletions

View File

@@ -1,8 +1,8 @@
Name Year MS Version ROM 9digit extensions comment Name Release MS Version ROM 9digit extensions comment
Commodore BASIC 1 1977 Y Y CBM Commodore BASIC 1 1977 Y Y CBM
OSI BASIC 1977 1.0 REV 3.2 Y N - OSI BASIC 1977 1.0 REV 3.2 Y N -
AppleSoft I 1977 1.1 N Y Apple CONFIG_11 AppleSoft I 1977 1.1 N Y Apple CONFIG_11
KIM BASIC 1977 1.1 N Y - CONFIG_11A KIM BASIC 1977 1.1 N Y - CONFIG_11A
Commodore BASIC 2 1979 Y Y CBM CONFIG_2 Commodore BASIC 2 1979 Y Y CBM CONFIG_2
KBD BASIC 1980 Y N KBD KBD BASIC 1980 Y N KBD
MicroTAN 1980 Y Y - MicroTAN 1980 Y Y -

View File

@@ -89,7 +89,7 @@ INLINX:
.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0,0,0 .byte 0,0,0,0,0,0,0,0,0,0
L29D0: USR_FUNC:
jsr L29DA jsr L29DA
lda FAC+3 lda FAC+3
sta FAC+5 sta FAC+5

View File

@@ -1,3 +1,5 @@
; http://apple2.org.za/gswv/a2zine/GS.WorldView/Resources/GS.TECH.INFO/AppleSoft/
CONFIG_11 := 1 CONFIG_11 := 1
CBM2_APPLE := 1 CBM2_APPLE := 1
CONFIG_SAFE_NAMENOTFOUND := 1 CONFIG_SAFE_NAMENOTFOUND := 1
@@ -6,7 +8,7 @@ CBM1_APPLE := 1
CBM_APPLE := 1 CBM_APPLE := 1
KIM_APPLE := 1 KIM_APPLE := 1
APPLE_MICROTAN := 1 APPLE_MICROTAN := 1
CONFIG_SCRTCH_ORDER := 1 .define CONFIG_SCRTCH_ORDER 3
CONFIG_PRINT_CR := 1 ; print CR when line end reached CONFIG_PRINT_CR := 1 ; print CR when line end reached
CONFIG_IO_MSB := 1 ; all I/O has bit #7 set CONFIG_IO_MSB := 1 ; all I/O has bit #7 set
; INPUTBUFFER > $0100 ; INPUTBUFFER > $0100

View File

@@ -28,6 +28,7 @@ CONFIG_DATAFLAG := 1
CONFIG_FILE := 1; support PRINT#, INPUT#, GET#, CMD CONFIG_FILE := 1; support PRINT#, INPUT#, GET#, CMD
CONFIG_NO_CR := 1; terminal doesn't need explicit CRs on line ends CONFIG_NO_CR := 1; terminal doesn't need explicit CRs on line ends
CONFIG_NO_LINE_EDITING := 1; support for "@", "_", BEL etc. CONFIG_NO_LINE_EDITING := 1; support for "@", "_", BEL etc.
.define CONFIG_SCRTCH_ORDER 2
CRLF_1 := $0D CRLF_1 := $0D
CRLF_2 := $0A CRLF_2 := $0A

View File

@@ -1,4 +1,4 @@
CONFIG_SCRTCH_ORDER := 1 .define CONFIG_SCRTCH_ORDER 3
CONFIG_SMALL := 1 CONFIG_SMALL := 1
CONFIG_2 := 1 CONFIG_2 := 1
CBM2_KBD := 1 CBM2_KBD := 1

View File

@@ -7,6 +7,7 @@ KIM_APPLE := 1
CONFIG_NULL := 1 CONFIG_NULL := 1
CONFIG_PRINT_CR := 1 ; print CR when line end reached CONFIG_PRINT_CR := 1 ; print CR when line end reached
KIM_MICROTAN := 1 KIM_MICROTAN := 1
.define CONFIG_SCRTCH_ORDER 2
CRLF_1 := $0D CRLF_1 := $0D
CRLF_2 := $0A CRLF_2 := $0A

View File

@@ -13,6 +13,7 @@ CONFIG_2 := 1
CONFIG_NULL := 1 CONFIG_NULL := 1
CONFIG_PRINT_CR := 1 ; print CR when line end reached CONFIG_PRINT_CR := 1 ; print CR when line end reached
.define CONFIG_SCRTCH_ORDER 1
CRLF_1 := $0D CRLF_1 := $0D
CRLF_2 := $0A CRLF_2 := $0A
@@ -58,8 +59,8 @@ SPACE_FOR_GOSUB := $3E
NULL_MAX := $F0 ; probably different in original version; the image I have seems to be modified; see PDF NULL_MAX := $F0 ; probably different in original version; the image I have seems to be modified; see PDF
RAMSTART2 := $AAAA RAMSTART2 := $0400
USR := $AAAA USR := $0021
SAVE := $AAAA SAVE := $AAAA
LOAD := $AAAA LOAD := $AAAA
LE21C := $AAAA LE21C := $AAAA

View File

@@ -3,8 +3,7 @@ CONFIG_NULL := 1
CONFIG_PRINT_CR := 1 ; print CR when line end reached CONFIG_PRINT_CR := 1 ; print CR when line end reached
CONFIG_DATAFLAG := 1 CONFIG_DATAFLAG := 1
; minor: just code order .define CONFIG_SCRTCH_ORDER 3
CONFIG_SCRTCH_ORDER := 1
CRLF_1 := $0D CRLF_1 := $0D
CRLF_2 := $0A CRLF_2 := $0A

114
init.s
View File

@@ -20,21 +20,21 @@ COLD_START:
lda $0353 lda $0353
sta $05 sta $05
.else .else
.ifndef CONFIG_CBM_ALL .ifndef CONFIG_CBM_ALL
lda #<QT_WRITTEN_BY lda #<QT_WRITTEN_BY
ldy #>QT_WRITTEN_BY ldy #>QT_WRITTEN_BY
jsr STROUT jsr STROUT
.endif .endif
COLD_START2: COLD_START2:
.ifndef CBM2 .ifndef CBM2
ldx #$FF ldx #$FF
stx CURLIN+1 stx CURLIN+1
.endif .endif
.if INPUTBUFFER >= $0100 .if INPUTBUFFER >= $0100
ldx #$FB ldx #$FB
.endif .endif
txs txs
.ifndef CONFIG_CBM_ALL .ifndef CONFIG_CBM_ALL
lda #<COLD_START2 lda #<COLD_START2
ldy #>COLD_START2 ldy #>COLD_START2
sta Z00+1 sta Z00+1
@@ -49,59 +49,60 @@ COLD_START2:
ldy #>GIVAYF ldy #>GIVAYF
sta GOGIVEAYF sta GOGIVEAYF
sty GOGIVEAYF+1 sty GOGIVEAYF+1
.endif .endif
lda #$4C lda #$4C
.ifdef CONFIG_CBM_ALL .ifdef CONFIG_CBM_ALL
sta JMPADRS sta JMPADRS
sta Z00 sta Z00
.else .else
sta Z00 sta Z00
sta GOWARM sta GOWARM
sta JMPADRS sta JMPADRS
.endif .endif
.ifdef APPLE_MICROTAN .ifdef APPLE
sta L000A sta L000A
.endif .endif
.ifdef CONFIG_SMALL .if .def(CONFIG_SMALL) || .def(MICROTAN)
sta USR sta USR
lda #$88 .endif
ldy #$AE
sta $0B .ifndef KIM
sty $0C .ifdef APPLE
.endif lda #<USR_FUNC
.ifdef CONFIG_CBM_ALL ldy #>USR_FUNC
lda #<IQERR .else
ldy #>IQERR lda #<IQERR
.endif ldy #>IQERR
.ifdef APPLE .endif
lda #<L29D0 sta USR+1
ldy #>L29D0 sty USR+2
.endif .endif
.ifdef CBM_APPLE .ifndef CONFIG_CBM_ALL
sta USR+1 .ifdef APPLE
sty USR+2
.endif
.ifndef CONFIG_CBM_ALL
.ifdef APPLE
lda #$28 lda #$28
.else .else
.ifdef MICROTAN
lda #$50
.else
lda #$48 lda #$48
.endif .endif
.endif
sta Z17 sta Z17
.ifdef APPLE .ifdef APPLE
lda #$0E lda #$0E
.else .else
lda #$38 lda #$38
.endif .endif
sta Z18 sta Z18
.endif .endif
.ifdef CONFIG_2 .ifdef CBM2_KBD
lda #$28 lda #$28
sta $0F sta $0F
lda #$1E lda #$1E
sta $10 sta $10
.endif .endif
.endif .endif /* KBD */
.ifdef CONFIG_SMALL .ifdef CONFIG_SMALL
.ifdef KBD .ifdef KBD
ldx #GENERIC_CHRGET_END-GENERIC_CHRGET+4 ldx #GENERIC_CHRGET_END-GENERIC_CHRGET+4
@@ -179,8 +180,8 @@ L4098:
.endif .endif
ldy #>RAMSTART2 ldy #>RAMSTART2
.ifdef CONFIG_2 .ifdef CONFIG_2
sta $28 sta TXTTAB
sty $29 sty TXTTAB+1
.endif .endif
sta LINNUM sta LINNUM
sty LINNUM+1 sty LINNUM+1
@@ -321,15 +322,18 @@ L4183:
tya tya
sta (TXTTAB),y sta (TXTTAB),y
inc TXTTAB inc TXTTAB
.ifndef CONFIG_2 .ifndef CBM2_KBD
bne L4192 bne L4192
inc TXTTAB+1 inc TXTTAB+1
L4192: L4192:
.endif
.if CONFIG_SCRTCH_ORDER = 1
jsr SCRTCH
.endif .endif
lda TXTTAB lda TXTTAB
ldy TXTTAB+1 ldy TXTTAB+1
jsr REASON jsr REASON
.ifdef CONFIG_2 .ifdef CBM2_KBD
lda #<QT_BASIC lda #<QT_BASIC
ldy #>QT_BASIC ldy #>QT_BASIC
jsr STROUT jsr STROUT
@@ -346,7 +350,7 @@ L4192:
lda #<QT_BYTES_FREE lda #<QT_BYTES_FREE
ldy #>QT_BYTES_FREE ldy #>QT_BYTES_FREE
jsr STROUT jsr STROUT
.ifndef CONFIG_SCRTCH_ORDER .if CONFIG_SCRTCH_ORDER = 2
jsr SCRTCH jsr SCRTCH
.endif .endif
.ifdef CONFIG_CBM_ALL .ifdef CONFIG_CBM_ALL
@@ -356,8 +360,8 @@ L4192:
ldy #>STROUT ldy #>STROUT
sta GOWARM+1 sta GOWARM+1
sty GOWARM+2 sty GOWARM+2
.ifdef CONFIG_SCRTCH_ORDER .if CONFIG_SCRTCH_ORDER = 3
jsr SCRTCH jsr SCRTCH
.endif .endif
lda #<RESTART lda #<RESTART
ldy #>RESTART ldy #>RESTART
@@ -365,7 +369,8 @@ L4192:
sty Z00+2 sty Z00+2
jmp (Z00+1) jmp (Z00+1)
.endif .endif
.ifndef CBM_APPLE
.if .def(KIM) || .def(OSI)
QT_WANT: QT_WANT:
.byte "WANT SIN-COS-TAN-ATN" .byte "WANT SIN-COS-TAN-ATN"
.byte $00 .byte $00
@@ -396,7 +401,7 @@ QT_BYTES_FREE:
.ifndef CBM_APPLE .ifndef CBM_APPLE
.byte $0D,$0A,$0D,$0A .byte $0D,$0A,$0D,$0A
.endif .endif
.ifdef CONFIG_2 .ifdef CBM2_KBD
.byte $0D,$00 .byte $0D,$00
.endif .endif
.ifdef APPLE .ifdef APPLE
@@ -409,6 +414,9 @@ QT_BASIC:
.ifdef KIM .ifdef KIM
.byte "MOS TECH 6502 BASIC V1.1" .byte "MOS TECH 6502 BASIC V1.1"
.endif .endif
.ifdef MICROTAN
.byte "MICROTAN BASIC"
.endif
.ifdef CBM1 .ifdef CBM1
.byte $13 .byte $13
.byte "*** COMMODORE BASIC ***" .byte "*** COMMODORE BASIC ***"
@@ -424,7 +432,11 @@ QT_BASIC:
.endif .endif
.ifndef CONFIG_CBM_ALL .ifndef CONFIG_CBM_ALL
.byte $0D,$0A .byte $0D,$0A
.ifdef MICROTAN
.byte "(C) 1980 MICROSOFT" ; E1F2 28 43 29 20 31 39 38 30 (C) 1980
.else
.byte "COPYRIGHT 1977 BY MICROSOFT CO." .byte "COPYRIGHT 1977 BY MICROSOFT CO."
.endif
.byte $0D,$0A,$00 .byte $0D,$0A,$00
.endif .endif
.endif /* KBD */ .endif /* KBD */