diff --git a/inline.s b/inline.s new file mode 100644 index 0000000..e8e814f --- /dev/null +++ b/inline.s @@ -0,0 +1,133 @@ +.segment "CODE" + +.ifndef CONFIG_NO_INPUTBUFFER_ZP +L2420: + .ifdef OSI + jsr OUTDO + .endif + dex + bpl INLIN2 +L2423: + .ifdef OSI + jsr OUTDO + .endif + jsr CRDO +.endif + +; ---------------------------------------------------------------------------- +; READ A LINE, AND STRIP OFF SIGN BITS +; ---------------------------------------------------------------------------- +.ifndef KBD +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 + rts + .endif + + .ifndef APPLE + ldx #$00 +INLIN2: + jsr GETLN + .ifndef CONFIG_NO_LINE_EDITING + cmp #$07 + beq L2443 + .endif + cmp #$0D + beq L2453 + .ifndef CONFIG_NO_LINE_EDITING + cmp #$20 + bcc INLIN2 + .ifdef MICROTAN + cmp #$80 + .else + cmp #$7D + .endif + bcs INLIN2 + cmp #$40 ; @ + beq L2423 + .ifdef MICROTAN + cmp #$7F ; DEL + .else + cmp #$5F ; _ + .endif + beq L2420 +L2443: + .ifdef MICROTAN + cpx #$4F + .else + cpx #$47 + .endif + bcs L244C + .endif + sta INPUTBUFFER,x + inx + .ifdef OSI + .byte $2C + .else + bne INLIN2 + .endif +L244C: + .ifndef CONFIG_NO_LINE_EDITING + lda #$07 ; BEL + jsr OUTDO + bne INLIN2 + .endif +L2453: + jmp L29B9 + .endif +.endif + +.ifndef KBD + .ifndef APPLE +GETLN: + .ifdef CONFIG_FILE + jsr CHRIN + ldy Z03 + bne L2465 + .else + jsr MONRDKEY + .endif + .ifdef OSI + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + and #$7F + .endif + .endif /* APPLE */ + .ifdef APPLE +RDKEY: + jsr LFD0C + and #$7F + .endif + cmp #$0F + bne L2465 + pha + lda Z14 + eor #$FF + sta Z14 + pla +L2465: + rts +.endif /* KBD */ diff --git a/print.s b/print.s index 3347225..0d42667 100644 --- a/print.s +++ b/print.s @@ -22,7 +22,7 @@ PRINT2: cmp #',' ; Pre-KIM had no CLC. KIM added the CLC ; here. Post-KIM moved the CLC up... -.ifdef KIM +.if .def(CONFIG_11A) && (!.def(CONFIG_2)) clc .endif beq L29DE @@ -142,9 +142,9 @@ L29D9: pla tax .else - .ifdef APPLE + .ifndef CONFIG_2 lda #$00 - sta $50 + sta POSX .endif eor #$FF .endif @@ -196,7 +196,7 @@ L29F5: plp bcc L2A09 .else - .ifdef APPLE + .ifdef CONFIG_11 beq L1185 jmp SYNERR L1185: @@ -205,7 +205,7 @@ L1185: .endif pla cmp #TOKEN_TAB - .ifdef APPLE + .ifdef CONFIG_11 bne L2A09 .else bne L2A0A diff --git a/program.s b/program.s index b378c9e..792e18c 100644 --- a/program.s +++ b/program.s @@ -315,137 +315,7 @@ RET3: rts .endif -.ifndef CONFIG_NO_INPUTBUFFER_ZP -L2420: - .ifdef OSI - jsr OUTDO - .endif - dex - bpl INLIN2 -L2423: - .ifdef OSI - jsr OUTDO - .endif - jsr CRDO -.endif - -; ---------------------------------------------------------------------------- -; READ A LINE, AND STRIP OFF SIGN BITS -; ---------------------------------------------------------------------------- -.ifndef KBD -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 - rts - .endif - - .ifndef APPLE - ldx #$00 -INLIN2: - jsr GETLN - .ifndef CONFIG_NO_LINE_EDITING - cmp #$07 - beq L2443 - .endif - cmp #$0D - beq L2453 - .ifndef CONFIG_NO_LINE_EDITING - cmp #$20 - bcc INLIN2 - .ifdef MICROTAN - cmp #$80 - .else - cmp #$7D - .endif - bcs INLIN2 - cmp #$40 ; @ - beq L2423 - .ifdef MICROTAN - cmp #$7F ; DEL - .else - cmp #$5F ; _ - .endif - beq L2420 -L2443: - .ifdef MICROTAN - cpx #$4F - .else - cpx #$47 - .endif - bcs L244C - .endif - sta INPUTBUFFER,x - inx - .ifdef OSI - .byte $2C; XXX - .else - bne INLIN2 - .endif -L244C: - .ifndef CONFIG_NO_LINE_EDITING - lda #$07 ; BEL - jsr OUTDO - bne INLIN2 - .endif -L2453: - jmp L29B9 - .endif -.endif - -.ifndef KBD - .ifndef APPLE -GETLN: - .ifdef CONFIG_FILE - jsr CHRIN - ldy Z03 - bne L2465 - .else - jsr MONRDKEY - .endif - .ifdef OSI - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - and #$7F - .endif - .endif /* APPLE */ - .ifdef APPLE -RDKEY: - jsr LFD0C - and #$7F - .endif - cmp #$0F - bne L2465 - pha - lda Z14 - eor #$FF - sta Z14 - pla -L2465: - rts -.endif /* KBD */ +.include "inline.s" ; ---------------------------------------------------------------------------- ; TOKENIZE THE INPUT LINE @@ -666,8 +536,7 @@ SCRTCH: ; ---------------------------------------------------------------------------- SETPTRS: jsr STXTPT -.ifndef APPLE -.ifdef CONFIG_11 +.ifdef CONFIG_11A lda #$00 ; ---------------------------------------------------------------------------- @@ -676,7 +545,6 @@ SETPTRS: CLEAR: bne L256A .endif -.endif CLEARC: .ifdef KBD lda #