This commit is contained in:
Michael Steil 2008-10-13 08:07:53 +00:00
parent 91e3811751
commit 3c270eded7
5 changed files with 109 additions and 82 deletions

51
cbm1_patches.s Normal file
View File

@ -0,0 +1,51 @@
.segment "INIT"
PATCH1:
clc
jmp CONTROL_C_TYPED
PATCH2:
bit $B4
bpl LE1AA
cmp #$54
bne LE1AA
jmp LCE3B
LE1AA:
rts
PATCH3:
bit $B4
bmi LE1B2
jmp LCE90
LE1B2:
cmp #$54
beq LE1B9
jmp LCE82
LE1B9:
jmp LCE69
PATCH4:
sta CHARAC
inx
jmp LE1D9
PATCH5:
bpl LE1C9
lda $8E
ldy $8F
rts
LE1C9:
ldy #$FF
rts
PATCH6:
bne LE1D8
LE1CE:
inc $05
bne LE1D8
lda $E2
sta $05
bne LE1CE
LE1D8:
rts
LE1D9:
stx $C9
pla
pla
tya
jmp L2B1C

View File

@ -4,7 +4,25 @@ CONFIG_CBM1_PATCHES := 1 ; ** don't turn off! **
CBM1_APPLE := 1
CBM_APPLE := 1
CONFIG_DATAFLAG := 1
CONFIG_BUG_GET_ERROR := 1; treat GET error like READ error
.else
CONFIG_CBM_ALL := 1
CONFIG_11 := 1
CONFIG_11_NOAPPLE := 1
CBM2_KBD := 1
CBM2_KIM := 1
CBM2_APPLE := 1
CBM2_KIM_APPLE := 1 ; OUTDO difference
CBM_APPLE := 1
CONFIG_DATAFLAG := 1
; INPUTBUFFER > $0100
.endif
; common:
CONFIG_FILE := 1; support PRINT#, INPUT#, GET#, CMD
.ifdef CBM1
ZP_START = $65
JMPADRS = DSCLEN + 1
@ -40,16 +58,6 @@ CPRMASK := $0063
Z14 := $0064 ; Ctrl+O flag
Z96 := $020C
.else
CONFIG_CBM_ALL := 1
CONFIG_11 := 1
CONFIG_11_NOAPPLE := 1
CBM2_KBD := 1
CBM2_KIM := 1
CBM2_APPLE := 1
CBM2_KIM_APPLE := 1 ; OUTDO difference
CBM_APPLE := 1
CONFIG_DATAFLAG := 1
; INPUTBUFFER > $0100
ZP_START = $13

View File

@ -41,7 +41,6 @@ LOWTRX := $0094;AA ; $AB also EXPSGN?
L0207 := $0207
L020A := $020A
;L2A13 := $2A0A
MONRDKEY := $FFEB
MONCOUT := $FDFA
MONISCNTC := $FFF1

55
init.s
View File

@ -592,57 +592,14 @@ RAMSTART2:
.byte $08,$29,$25,$20,$60,$2A,$E5,$E4
.byte $20,$66,$24,$65,$AC,$04,$A4
.endif /* KIM */
.ifdef CONFIG_CBM1_PATCHES
PATCH1:
clc
jmp CONTROL_C_TYPED
PATCH2:
bit $B4
bpl LE1AA
cmp #$54
bne LE1AA
jmp LCE3B
LE1AA:
rts
PATCH3:
bit $B4
bmi LE1B2
jmp LCE90
LE1B2:
cmp #$54
beq LE1B9
jmp LCE82
LE1B9:
jmp LCE69
PATCH4:
sta CHARAC
inx
jmp LE1D9
PATCH5:
bpl LE1C9
lda $8E
ldy $8F
rts
LE1C9:
ldy #$FF
rts
PATCH6:
bne LE1D8
LE1CE:
inc $05
bne LE1D8
lda $E2
sta $05
bne LE1CE
LE1D8:
rts
LE1D9:
stx $C9
pla
pla
tya
jmp L2B1C
.include "cbm1_patches.s"
.endif
.ifdef KBD
stx SHIFTSIGNEXT
stx $0800

56
input.s
View File

@ -7,13 +7,15 @@
; ----------------------------------------------------------------------------
INPUTERR:
lda INPUTFLG
beq RESPERR
.ifdef CBM2_KIM_APPLE
bmi L2A63
ldy #$FF
beq RESPERR ; INPUT
.ifndef CONFIG_SMALL
.ifndef CONFIG_BUG_GET_ERROR
bmi L2A63 ; READ
ldy #$FF ; GET
bne L2A67
L2A63:
.endif
.endif
.ifdef CONFIG_CBM1_PATCHES
jsr PATCH5
nop
@ -43,19 +45,20 @@ LCA8F:
sty TXTPTR+1
LE920:
rts
.ifndef CONFIG_SMALL
; ----------------------------------------------------------------------------
; "GET" STATEMENT
; ----------------------------------------------------------------------------
.ifndef CONFIG_SMALL
GET:
jsr ERRDIR
.ifdef CONFIG_CBM_ALL
cmp #$23
; CBM: if GET#, then switch input
.ifdef CONFIG_FILE
cmp #'#'
bne LCAB6
jsr CHRGET
jsr GETBYT
lda #$2C
lda #','
jsr SYNCHR
jsr CHKIN
stx Z03
@ -71,13 +74,18 @@ LCAB6:
.endif
lda #$40
jsr PROCESS_INPUT_LIST
.ifdef CONFIG_CBM_ALL
; CBM: if GET#, then switch input back
.ifdef CONFIG_FILE
ldx Z03
bne LCAD8
.endif
rts
.endif
.ifdef CONFIG_CBM_ALL
; ----------------------------------------------------------------------------
; "INPUT#" STATEMENT
; ----------------------------------------------------------------------------
.ifdef CONFIG_FILE
INPUTH:
jsr GETBYT
lda #$2C
@ -120,13 +128,10 @@ LCAF8:
.endif
.ifdef KBD
bmi L2ABE
NXIN:
jsr LFDDA
bmi LE920
pla
jmp LE86C
.else
.ifdef CONFIG_CBM_ALL
.endif
.ifndef KBD
.ifdef CONFIG_FILE
lda Z03
beq LCB0C
lda Z96
@ -138,22 +143,29 @@ LCB0C:
.endif
lda INPUTBUFFER
bne L2ABE
.ifdef CONFIG_CBM_ALL
.ifdef CONFIG_FILE
lda Z03
bne LCAF8
.endif
.ifdef CONFIG_CBM1_PATCHES
jmp PATCH1
.else
clc
jmp CONTROL_C_TYPED
.endif
.endif
NXIN:
.ifdef KBD
jsr LFDDA
bmi LE920
pla
jmp LE86C
.endif
.ifndef KBD
.ifdef CONFIG_FILE
lda Z03
bne LCB21
.else
clc
jmp CONTROL_C_TYPED
NXIN:
.endif
jsr OUTQUES
jsr OUTSP