mirror of
https://github.com/mist64/msbasic.git
synced 2024-12-22 23:31:32 +00:00
166 lines
2.8 KiB
ArmAsm
166 lines
2.8 KiB
ArmAsm
.segment "CODE"
|
|
|
|
.ifndef CONFIG_NO_INPUTBUFFER_ZP
|
|
L2420:
|
|
.ifdef OSI
|
|
jsr OUTDO
|
|
.endif
|
|
dex
|
|
.ifdef AIM65
|
|
bmi L2423
|
|
jsr PSLS
|
|
jmp INLIN2
|
|
LB35F:
|
|
jsr OUTDO
|
|
.else
|
|
bpl INLIN2
|
|
.endif
|
|
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
|
|
ldy #>INPUTBUFFER-1
|
|
rts
|
|
.endif
|
|
|
|
.ifndef APPLE
|
|
ldx #$00
|
|
INLIN2:
|
|
jsr GETLN
|
|
.ifdef AIM65
|
|
cmp #$1A
|
|
bne INLINAIM
|
|
jsr DU13
|
|
jmp INLIN
|
|
INLINAIM:
|
|
.endif
|
|
.ifndef CONFIG_NO_LINE_EDITING
|
|
cmp #$07
|
|
beq L2443
|
|
.endif
|
|
cmp #$0D
|
|
beq L2453
|
|
.ifndef CONFIG_NO_LINE_EDITING
|
|
cmp #$20
|
|
.ifdef AIM65
|
|
bcc L244E
|
|
.else
|
|
bcc INLIN2
|
|
.endif
|
|
.ifdef MICROTAN
|
|
cmp #$80
|
|
.else
|
|
.ifdef AIM65
|
|
cmp #$7F
|
|
beq L2420
|
|
.endif
|
|
cmp #$7D
|
|
.endif
|
|
bcs INLIN2
|
|
cmp #$40 ; @
|
|
.ifdef AIM65
|
|
beq LB35F
|
|
.else
|
|
beq L2423
|
|
.ifdef MICROTAN
|
|
cmp #$7F ; DEL
|
|
.else
|
|
cmp #$5F ; _
|
|
.endif
|
|
beq L2420
|
|
.endif
|
|
L2443:
|
|
.ifdef MICROTAN
|
|
cpx #$4F
|
|
.else
|
|
cpx #$47
|
|
.endif
|
|
bcs L244C
|
|
.endif
|
|
sta INPUTBUFFER,x
|
|
inx
|
|
.if .def(OSI) || .def(AIM65)
|
|
.byte $2C
|
|
.else
|
|
bne INLIN2
|
|
.endif
|
|
L244C:
|
|
.ifndef CONFIG_NO_LINE_EDITING
|
|
lda #$07 ; BEL
|
|
L244E:
|
|
jsr OUTDO
|
|
bne INLIN2
|
|
.endif
|
|
L2453:
|
|
jmp L29B9
|
|
.endif
|
|
.endif
|
|
|
|
.ifndef KBD
|
|
.ifndef APPLE
|
|
GETLN:
|
|
.ifdef CONFIG_FILE
|
|
jsr CHRIN
|
|
ldy CURDVC
|
|
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
|
|
.ifdef APPLE
|
|
RDKEY:
|
|
jsr LFD0C
|
|
and #$7F
|
|
.endif
|
|
.ifdef SYM1
|
|
cmp #$14
|
|
.else
|
|
cmp #$0F
|
|
.endif
|
|
bne L2465
|
|
pha
|
|
lda Z14
|
|
eor #$FF
|
|
sta Z14
|
|
pla
|
|
L2465:
|
|
rts
|
|
.endif
|