2023-03-27 20:52:33 +00:00
|
|
|
|
NEW
|
|
|
|
|
AUTO 3,1
|
|
|
|
|
.LIST OFF
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
IO.GetCh >SYSCALL GetChar
|
|
|
|
|
bcs .9
|
|
|
|
|
|
|
|
|
|
cmp #C.CR
|
|
|
|
|
bne IO.GetCh.1
|
|
|
|
|
|
|
|
|
|
ldy #S.PS.hStdIn Check for any extra LF
|
|
|
|
|
lda (pPS),y
|
|
|
|
|
>SYSCALL FEOF
|
|
|
|
|
bcs .9
|
|
|
|
|
|
|
|
|
|
tay
|
|
|
|
|
bne .8
|
|
|
|
|
|
|
|
|
|
>SYSCALL GetChar
|
|
|
|
|
bcs .9
|
|
|
|
|
|
|
|
|
|
.8 lda #C.CR
|
|
|
|
|
|
|
|
|
|
* clc
|
|
|
|
|
|
|
|
|
|
.9 rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
IO.GetCh.1 tax
|
|
|
|
|
|
|
|
|
|
>LDA.G bEscMode
|
|
|
|
|
bmi .1
|
|
|
|
|
|
|
|
|
|
cpx #C.ESC
|
|
|
|
|
bne .8
|
|
|
|
|
|
|
|
|
|
lda #$ff
|
|
|
|
|
>STA.G bEscMode
|
|
|
|
|
|
|
|
|
|
inc
|
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.1 >LDA.G bCSIMode
|
|
|
|
|
bmi .11
|
|
|
|
|
|
|
|
|
|
cpx #'[' \e[ ?
|
|
|
|
|
bne IO.GetCh.Esc
|
|
|
|
|
|
|
|
|
|
lda #$ff
|
|
|
|
|
>STA.G bCSIMode
|
|
|
|
|
|
|
|
|
|
inc
|
|
|
|
|
|
|
|
|
|
sta (pData) #EscBufferPtr
|
|
|
|
|
|
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
.11 lda (pData) #EscBufferPtr
|
2023-04-22 18:58:37 +00:00
|
|
|
|
cmp #21
|
2023-03-27 20:52:33 +00:00
|
|
|
|
bcc .10
|
|
|
|
|
|
|
|
|
|
.19 >STZ.G bEscMode
|
|
|
|
|
>STA.G bCSIMode
|
|
|
|
|
|
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.10 inc
|
|
|
|
|
sta (pData)
|
|
|
|
|
tay
|
|
|
|
|
|
|
|
|
|
txa
|
|
|
|
|
sta (pData),y
|
|
|
|
|
cmp #64
|
|
|
|
|
|
|
|
|
|
bcs IO.GetCh.CSI
|
|
|
|
|
|
|
|
|
|
ldx #0
|
|
|
|
|
|
|
|
|
|
.8 txa
|
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
IO.GetCh.Esc >STZ.G bEscMode
|
|
|
|
|
|
|
|
|
|
IO.GetCh.Esc1 txa
|
|
|
|
|
|
|
|
|
|
ldx #EscChars.Cnt-1
|
|
|
|
|
|
|
|
|
|
.1 cmp EscChars,x
|
|
|
|
|
beq .2
|
|
|
|
|
|
|
|
|
|
dex
|
|
|
|
|
bpl .1
|
|
|
|
|
|
|
|
|
|
lda #0
|
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.2 lda EscAscii,x
|
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* \e[A UP
|
|
|
|
|
* \e[B DOWN
|
|
|
|
|
* \e[C FOWARD
|
|
|
|
|
* \e[D BACK
|
|
|
|
|
* \e[xxx;yyyR DSR ("\e[I6n" reply)
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
IO.GetCh.CSI >STZ.G bEscMode
|
|
|
|
|
>STA.G bCSIMode
|
|
|
|
|
|
|
|
|
|
cpx #'R' Response to cursor position query?
|
|
|
|
|
beq .3
|
|
|
|
|
|
|
|
|
|
bra IO.GetCh.Esc1
|
|
|
|
|
|
|
|
|
|
.3 stz TmpByte
|
|
|
|
|
|
|
|
|
|
ldy #0
|
|
|
|
|
|
|
|
|
|
.4 iny
|
|
|
|
|
|
|
|
|
|
lda (pData),y
|
|
|
|
|
cmp #';'
|
|
|
|
|
beq .5
|
|
|
|
|
|
|
|
|
|
jsr IO.GetCh.TmpByte10pA
|
|
|
|
|
bra .4
|
|
|
|
|
|
|
|
|
|
.5 phy
|
|
|
|
|
|
|
|
|
|
lda TmpByte
|
|
|
|
|
>STA.G ScreenH
|
|
|
|
|
|
|
|
|
|
dec Remove 2 (top & status bar) for viewportH
|
|
|
|
|
dec
|
|
|
|
|
|
|
|
|
|
>STA.G ViewPortH
|
|
|
|
|
|
|
|
|
|
dec
|
|
|
|
|
|
|
|
|
|
>STA.G ViewPortHm1 Remove 1 more to store offsert to last line of viewport
|
|
|
|
|
|
|
|
|
|
ply
|
|
|
|
|
stz TmpByte
|
|
|
|
|
|
|
|
|
|
.6 iny
|
|
|
|
|
|
|
|
|
|
lda (pData),y
|
|
|
|
|
cmp #'R'
|
|
|
|
|
beq .7
|
|
|
|
|
|
|
|
|
|
jsr IO.GetCh.TmpByte10pA
|
|
|
|
|
bra .6
|
|
|
|
|
|
|
|
|
|
.7 lda TmpByte
|
|
|
|
|
>STA.G ScreenW
|
|
|
|
|
|
|
|
|
|
.8 lda #0
|
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
IO.GetCh.TmpByte10pA
|
|
|
|
|
and #$0f
|
|
|
|
|
pha
|
|
|
|
|
lda TmpByte
|
|
|
|
|
asl
|
|
|
|
|
asl
|
|
|
|
|
clc
|
|
|
|
|
adc TmpByte
|
|
|
|
|
asl
|
|
|
|
|
sta TmpByte
|
|
|
|
|
pla
|
|
|
|
|
clc
|
|
|
|
|
adc TmpByte
|
|
|
|
|
sta TmpByte
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
MAN
|
|
|
|
|
SAVE usr/src/bin/edit.s.io
|
|
|
|
|
LOAD usr/src/bin/edit.s
|
|
|
|
|
ASM
|