Kernel 0.93++

This commit is contained in:
Rémy GIBERT 2020-01-27 16:09:00 +01:00
parent 272c301bc2
commit 5cbd146a65
3 changed files with 68 additions and 65 deletions

Binary file not shown.

View File

@ -82,13 +82,7 @@ SCRN.UpdateTopBarAsync
lda #C.CR
jsr SCRN.ToLineBuf
>LDA.G bUnSaved
beq .2
lda #'!'
jsr SCRN.ToLineBuf
.2 >LDA.G FileType
>LDA.G FileType
tax
>PUSHW L.MSG.FILETYPES,x
@ -101,7 +95,13 @@ SCRN.UpdateTopBarAsync
jsr SCRN.LineBufSprintf
bcs .9
ldx #SEQ.CURRESTORE-SEQS
>LDA.G bUnSaved
beq .2
lda #'!'
jsr SCRN.ToLineBuf
.2 ldx #SEQ.CURRESTORE-SEQS
jsr SCRN.SEQS.ToLineBuf
jmp SCRN.LineBufOut
@ -562,14 +562,6 @@ SCRN.LineBufInitBut
SCRN.LineBufInitEdit
phx
ldx #SEQ.EDIT-SEQS
bra SCRN.LineBufInit
SCRN.LineBufInitNorm
phx
ldx #SEQ.NORM-SEQS
bra SCRN.LineBufInit
SCRN.LineBufInitInv
phx
ldx #SEQ.INV-SEQS
SCRN.LineBufInit
>LDYA.G LineBuf

View File

@ -259,42 +259,48 @@ CS.QUIT ldy #hLineBuf
CharIn tax
>LDA.G bEscMode
bpl .1 Not in ESC mode
asl
txa
bcc .1 Not in ESC mode
cmp #'['
beq .8
lda (pData) #EscBuffer
inc
sta (pData)
cmp #32
bne .10
>DEBUG
>STZ.G bEscMode
cpx #'[' \e[ ?
bne .11
lda (pData) #EscBufferPtr
bne .19 buffer not empty...bad SEQ
clc
rts
.10 tay
.11 lda (pData) #EscBufferPtr
cmp #16
bne .10
.19 >STZ.G bEscMode
clc
rts
.10 inc
sta (pData)
tay
txa
sta (pData),y
cmp #64
bcc .8
bcc .8 not a letter...SEQ is incomplete
jsr CharIn.Esc
bcs .8 Not translated, exit
.1 cmp #C.ESC
.HS B0 BCS
*--------------------------------------
.1 txa
cmp #C.ESC
bne .2
lda #$ff
>STA.G bEscMode
inc
sta (pData) #EscBuffer
sta (pData) #EscBufferPtr
.8 clc
.9 rts
@ -321,17 +327,28 @@ CharIn tax
*--------------------------------------
CharIn.Esc >STZ.G bEscMode
lda (pData) #EscBuffer
lda (pData) #EscBufferPtr
tay
lda #0
sta (pData)
lda (pData),y
cpy #1
bne .10
ldx #EscChars.Cnt-1
.1 cmp EscChars,x
beq .2
dex
bpl .1
sec
rts
cmp #'R' Response to cursor position query?
.10 cmp #'R' Response to cursor position query?
beq .3
sec
@ -340,29 +357,20 @@ CharIn.Esc >STZ.G bEscMode
.2 lda EscAscii,x
clc
rts
*--------------------------------------
* \e[xx;yyR
*--------------------------------------
.3 stz TmpByte
ldy #1
ldy #0
.4 lda (pData),y
.4 iny
lda (pData),y
cmp #';'
beq .5
and #$0f
pha
lda TmpByte
asl
asl
clc
adc TmpByte
asl
sta TmpByte
pla
clc
adc TmpByte
sta TmpByte
iny
jsr CharIn.TmpByte10pA
bra .4
.5 phy
@ -382,12 +390,22 @@ CharIn.Esc >STZ.G bEscMode
ply
stz TmpByte
iny
.6 iny
.6 lda (pData),y
lda (pData),y
cmp #'R'
beq .7
jsr CharIn.TmpByte10pA
bra .6
.7 lda TmpByte
>STA.G ScreenW
sec
rts
*--------------------------------------
CharIn.TmpByte10pA
and #$0f
pha
lda TmpByte
@ -401,13 +419,6 @@ CharIn.Esc >STZ.G bEscMode
clc
adc TmpByte
sta TmpByte
iny
bra .6
.7 lda TmpByte
>STA.G ScreenW
sec
rts
*--------------------------------------
.INB USR/SRC/BIN/EDIT.S.BUF
@ -415,8 +426,8 @@ CharIn.Esc >STZ.G bEscMode
.INB USR/SRC/BIN/EDIT.S.DLG
.INB USR/SRC/BIN/EDIT.S.FILE
.INB USR/SRC/BIN/EDIT.S.SCRN
CS.END
*--------------------------------------
CS.END
SEQS .EQ *
SEQ.BAR .AZ "\e[7m\e[37;40m"
SEQ.DLG .AS "\e[30;46m"
@ -600,7 +611,7 @@ DLG.FIND.LEN .EQ *-DLG.FIND
.DUMMY
.OR 0
DS.START
EscBuffer .BS 33
EscBuffer .BS 16
bEscMode .BS 1
bExit .BS 1