This commit is contained in:
Michael Steil 2008-10-18 06:23:05 +00:00
parent 8000398d19
commit 19e6867e20
8 changed files with 39 additions and 18 deletions

View File

@ -1,9 +1,9 @@
Name Release MS Version ROM 9digit extensions comment
Commodore BASIC 1 1977 Y Y CBM
OSI BASIC 1977 1.0 REV 3.2 Y N -
AppleSoft I 1977 1.1 N Y Apple CONFIG_11
KIM BASIC 1977 1.1 N Y - CONFIG_11A
AppleSoft II 1978 Y Y Apple CONFIG_2
Commodore BASIC 2 1979 Y Y CBM CONFIG_2A
KBD BASIC 1980 Y N KBD CONFIG_2B
MicroTAN 1979 Y Y -
Name Release MS Version ROM 9digit INPUTBUFFER extensions comment
Commodore BASIC 1 1977 Y Y ZP CBM
OSI BASIC 1977 1.0 REV 3.2 Y N ZP - CONFIG_10A
AppleSoft I 1977 1.1 N Y $0200 Apple CONFIG_11
KIM BASIC 1977 1.1 N Y ZP - CONFIG_11A
AppleSoft II 1978 Y Y $0200 Apple CONFIG_2
Commodore BASIC 2 1979 Y Y $0200 CBM CONFIG_2A
KBD BASIC 1980 Y N $0700 KBD CONFIG_2B
MicroTAN 1979 Y Y ZP - CONFIG_2C

View File

@ -21,8 +21,8 @@ L2FAF:
NEG32768:
.byte $90,$80,$00,$00
.ifdef MICROTAN
.byte 0
.ifdef CONFIG_2C
.byte $00; bugfix: short number
.endif
; ----------------------------------------------------------------------------

View File

@ -1,6 +1,7 @@
; http://apple2.org.za/gswv/a2zine/GS.WorldView/Resources/GS.TECH.INFO/AppleSoft/
; configuration
CONFIG_10A := 1
CONFIG_11 := 1
CONFIG_IO_MSB := 1 ; all I/O has bit #7 set
CONFIG_PRINT_CR := 1 ; print CR when line end reached

View File

@ -11,10 +11,10 @@ CONFIG_SCRTCH_ORDER := 2
CONFIG_BUG_GET_ERROR := 1; treat GET error like READ error
CONFIG_CBM1_PATCHES := 1 ; ** don't turn off! **
CONFIG_DATAFLAG := 1
CONFIG_INPUTBUFFER_ORDER := 1 ; ldx/ldy or ldy/ldx
CONFIG_PRINTNULLS := 1; whether PRINTNULLS does anything
CONFIG_SPC_IS_CRSR_RIGHT := 1; always print CRSR RIGHT for SPC() (otherwise only for screen output)
.else
CONFIG_10A := 1
CONFIG_11 := 1
CONFIG_11A := 1
CONFIG_2 := 1

View File

@ -1,4 +1,5 @@
; configuration
CONFIG_10A := 1
CONFIG_11 := 1
CONFIG_11A := 1
CONFIG_2 := 1

View File

@ -1,4 +1,5 @@
; configuration
CONFIG_10A := 1
CONFIG_11 := 1
CONFIG_11A := 1

View File

@ -1,9 +1,11 @@
; configuration
CONFIG_10A := 1
CONFIG_11 := 1
CONFIG_11A := 1
CONFIG_2 := 1
CONFIG_2A := 1
CONFIG_2B := 1
CONFIG_2C := 1
CONFIG_NULL := 1
CONFIG_MONCOUT_DESTROYS_Y := 1

28
input.s
View File

@ -236,19 +236,35 @@ PROCESS_INPUT_ITEM:
and #$7F
.endif
sta INPUTBUFFER
.ifdef CONFIG_INPUTBUFFER_ORDER
; the order is about whether
; the beq/bne is taken or not
; BUG: The beq/bne L2AF8 below is supposed
; to be always taken. For this to happen,
; the last load must be a 0 for beq
; and != 0 for bne. The original Microsoft
; code had ldx/ldy/bne here, which was only
; correct for a non-ZP INPUTBUFFER. Commodore
; fixed it in CBMBASIC V1 by swapping the
; ldx and the ldy. It was broken on OSI and
; KIM, and okay on APPLE and CBM2, because
; these used a non-ZP INPUTBUFFER.
; Microsoft fixed this somewhere after KIM
; and before MICROTAN, by using beq instead
; of bne in the ZP case.
.ifdef CBM1
ldy #>(INPUTBUFFER-1)
ldx #<(INPUTBUFFER-1)
.else
ldx #<(INPUTBUFFER-1)
ldy #>(INPUTBUFFER-1)
.endif
.ifdef MICROTAN
beq L2AF8
.ifndef CONFIG_NO_INPUTBUFFER_ZP
.ifdef CONFIG_2
__BEQ = 1
.endif
.endif
.ifdef __BEQ
beq L2AF8 ; always
.else
bne L2AF8
bne L2AF8 ; always
.endif
L2AF0:
.endif