mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-21 05:24:15 +00:00
Kernel 0.92
This commit is contained in:
parent
a54459d486
commit
883cbc6f55
@ -141,7 +141,19 @@ H.BIN.EXE.REL.TABLE .EQ 16
|
|||||||
H.BIN.DRV.REL.TABLE .EQ 2 Including main jmp
|
H.BIN.DRV.REL.TABLE .EQ 2 Including main jmp
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.TTY.DEVID .EQ 0
|
S.TTY.DEVID .EQ 0
|
||||||
S.TTY.STATUS .EQ 0
|
S.TTY.STATUS .EQ 1
|
||||||
|
S.TTY.MODE .EQ 2
|
||||||
|
S.TTY.MODE.ESC .EQ 2
|
||||||
|
S.TTY.MODE.CSI .EQ 4
|
||||||
|
S.TTY.MODE.IAC .EQ 6
|
||||||
|
S.TTY.CH .EQ 3
|
||||||
|
S.TTY.CV .EQ 4
|
||||||
|
S.TTY.SCROLLTOP .EQ 5
|
||||||
|
S.TTY.SCROLLBOT .EQ 6
|
||||||
|
S.TTY.bCURON .EQ 7
|
||||||
|
S.TTY.CURCHAR .EQ 8
|
||||||
|
S.TTY.bINVERSE .EQ 9
|
||||||
|
S.TTY.bLINEWRAP .EQ 10
|
||||||
|
|
||||||
S.TTY.TITLE .EQ 48
|
S.TTY.TITLE .EQ 48
|
||||||
S.TTY.SCRBUF .EQ 128 24x80=1920 bytes
|
S.TTY.SCRBUF .EQ 128 24x80=1920 bytes
|
||||||
|
@ -3,32 +3,33 @@ PREFIX
|
|||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CURSOR.BLINK.SPEED .EQ 2
|
CURSOR.BLINK.SPEED .EQ 2
|
||||||
ESCSEQ.MAXLEN .EQ 16
|
INBUF.MAXLEN .EQ 32
|
||||||
OUTBUF.MAXLEN .EQ 32
|
OUTBUF.MAXLEN .EQ 32
|
||||||
IACBUF.MAXLEN .EQ 32
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPIOCTL .EQ ZPDRV
|
ZPIOCTL .EQ ZPDRV
|
||||||
ZPTTYPtr .EQ ZPDRV+2
|
ZPTTYEnvPtr .EQ ZPDRV+2
|
||||||
ZPTmpWord .EQ ZPDRV+4
|
ZPTTYBufPtr .EQ ZPDRV+4
|
||||||
ZPTmpBool .EQ ZPDRV+6
|
ZPBufPtr .EQ ZPDRV+10
|
||||||
ZPBufPtr .EQ ZPDRV+8
|
ZPCount .EQ ZPDRV+12
|
||||||
ZPCount .EQ ZPDRV+10
|
ZPBufBaseL1 .EQ ZPDRV+14
|
||||||
ZPBufBaseL1 .EQ ZPDRV+12
|
ZPBufBaseL2 .EQ ZPDRV+16
|
||||||
ZPBufBaseL2 .EQ ZPDRV+14
|
ZPScrBaseL1 .EQ ZPDRV+18
|
||||||
ZPScrBaseL1 .EQ ZPDRV+16
|
ZPScrBaseL2 .EQ ZPDRV+20
|
||||||
ZPScrBaseL2 .EQ ZPDRV+18
|
ZPTmpWord .EQ ZPDRV+22
|
||||||
|
ZPTmpBool .EQ ZPDRV+24
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM cld
|
DRV.TERM cld
|
||||||
>STYA pIOCTL
|
>STYA pIOCTL
|
||||||
|
|
||||||
ldy #S.FD.DEV.BUFPTR
|
ldy #S.FD.DEV.BUFPTR
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
sta ZPTTYPtr
|
sta ZPTTYEnvPtr
|
||||||
iny
|
iny
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
sta ZPTTYPtr+1
|
sta ZPTTYEnvPtr+1
|
||||||
|
|
||||||
lda (ZPTTYPtr) S.TTY.DEVID
|
ldy #S.TTY.DEVID
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
cmp A2osX.ASCREEN
|
cmp A2osX.ASCREEN
|
||||||
beq .1 CS
|
beq .1 CS
|
||||||
|
|
||||||
@ -47,28 +48,31 @@ DRV.TERM cld
|
|||||||
.DA DRV.TERM.READ
|
.DA DRV.TERM.READ
|
||||||
.DA DRV.TERM.WRITE
|
.DA DRV.TERM.WRITE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM.STATUS ldy #S.IOCTL.STATCODE
|
DRV.TERM.STATUS ldy #S.IOCTL.BUFPTR
|
||||||
|
lda (ZPIOCTL),y
|
||||||
|
sta ZPBufPtr
|
||||||
|
iny
|
||||||
|
lda (ZPIOCTL),y
|
||||||
|
sta ZPBufPtr+1
|
||||||
|
|
||||||
|
ldy #S.IOCTL.STATCODE
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.STATCODE.GETDIB
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
ldx #S.DIB-1
|
ldy #S.DIB-1
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
.1 ldx #3
|
.1 ldy #3
|
||||||
|
|
||||||
ldy #S.IOCTL.BUFPTR
|
.2 lda DRV.TERM.DIB,y
|
||||||
lda (ZPIOCTL),y
|
.3 sta (ZPBufPtr),y SELF MODIFIED
|
||||||
sta .3+1
|
dey
|
||||||
iny
|
bne .2
|
||||||
lda (ZPIOCTL),y
|
|
||||||
sta .3+2
|
|
||||||
|
|
||||||
.2 lda DRV.TERM.DIB,x
|
ldy #S.TTY.STATUS
|
||||||
.3 sta $ffff,x SELF MODIFIED
|
lda (ZPTTYEnvPtr),y
|
||||||
dex
|
|
||||||
bpl .2
|
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
@ -95,16 +99,17 @@ DRV.TERM.OPEN ldx #0
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
.2 sta A2osX.SCRNDEVS,x DEV.ID in A
|
.2 sta A2osX.SCRNDEVS,x DEV.ID in A
|
||||||
sta (ZPTTYPtr)
|
ldy #S.TTY.DEVID
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
ldy #S.TTY.STATUS
|
ldy #S.TTY.STATUS
|
||||||
|
|
||||||
lda (ZPTTYPtr),y
|
lda (ZPTTYEnvPtr),y
|
||||||
bit #S.DIB.S.OPENED
|
bit #S.DIB.S.OPENED
|
||||||
bne .9
|
bne .9
|
||||||
ora #S.DIB.S.OPENED
|
ora #S.DIB.S.OPENED
|
||||||
ora DRV.TERM.DIB+S.DIB.S
|
ora DRV.TERM.DIB+S.DIB.S
|
||||||
sta (ZPTTYPtr),y
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
stz OutPtr
|
stz OutPtr
|
||||||
stz OutCnt
|
stz OutCnt
|
||||||
@ -117,24 +122,26 @@ DRV.TERM.CONTROL
|
|||||||
sta SET80DISP
|
sta SET80DISP
|
||||||
sta CLR80STORE
|
sta CLR80STORE
|
||||||
sta CLRPAGE2
|
sta CLRPAGE2
|
||||||
lda (ZPTTYPtr)
|
ldy #S.TTY.DEVID
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
sta A2osX.ASCREEN
|
sta A2osX.ASCREEN
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM.CLOSE ldy #S.TTY.STATUS
|
DRV.TERM.CLOSE ldy #S.TTY.STATUS
|
||||||
lda (ZPTTYPtr),y
|
lda (ZPTTYEnvPtr),y
|
||||||
bit #S.DIB.S.OPENED
|
bit #S.DIB.S.OPENED
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
lda DRV.TERM.DIB+S.DIB.S
|
lda DRV.TERM.DIB+S.DIB.S
|
||||||
sta (ZPTTYPtr),y
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
ldy #S.TTY.DEVID
|
||||||
|
|
||||||
.1 lda A2osX.SCRNDEVS,x
|
.1 lda A2osX.SCRNDEVS,x
|
||||||
cmp (ZPTTYPtr)
|
cmp (ZPTTYEnvPtr),y
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
stz A2osX.SCRNDEVS,x
|
stz A2osX.SCRNDEVS,x
|
||||||
@ -150,14 +157,15 @@ DRV.TERM.CLOSE ldy #S.TTY.STATUS
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM.READ lda A2osX.ASCREEN
|
DRV.TERM.READ bit bActive is screen active?
|
||||||
cmp (ZPTTYPtr) is screen active?
|
bpl .6 no....go check flush...
|
||||||
bne .6 no....go check flush...
|
|
||||||
|
|
||||||
lda A2osX.TIMER16
|
lda A2osX.TIMER16
|
||||||
and #CURSOR.BLINK.SPEED
|
and #CURSOR.BLINK.SPEED
|
||||||
eor CURON
|
ldy #S.TTY.bCURON
|
||||||
|
eor (ZPTTYEnvPtr),y
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
jsr CURBLNK
|
jsr CURBLNK
|
||||||
|
|
||||||
.1 lda OPENAPPLE
|
.1 lda OPENAPPLE
|
||||||
@ -222,35 +230,39 @@ DRV.TERM.READ lda A2osX.ASCREEN
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM.WRITE jsr GetPtrsAndCnt
|
DRV.TERM.WRITE jsr GetPtrsAndCnt
|
||||||
|
|
||||||
.2 inc ZPCount
|
.1 inc ZPCount
|
||||||
bne .3
|
bne .2
|
||||||
inc ZPCount+1
|
inc ZPCount+1
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
.3 lda (ZPBufPtr)
|
.2 ldy #S.TTY.MODE
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
|
tax
|
||||||
|
|
||||||
|
jsr .3
|
||||||
|
|
||||||
inc ZPBufPtr
|
inc ZPBufPtr
|
||||||
bne .4
|
bne .1
|
||||||
inc ZPBufPtr+1
|
inc ZPBufPtr+1
|
||||||
|
bra .1
|
||||||
|
|
||||||
.4 jsr DRV.TERM.WRITE.COUT
|
.3 jmp (.4,x)
|
||||||
|
.4 .DA DRV.TERM.COUT
|
||||||
bra .2
|
.DA DRV.TERM.ESC
|
||||||
|
.DA DRV.TERM.CSI
|
||||||
|
.DA DRV.TERM.IAC
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM.WRITE.COUT
|
DRV.TERM.COUT lda (ZPBufPtr)
|
||||||
bit bEscMode
|
|
||||||
bmi COUT.EscMode
|
|
||||||
bit bIACMode
|
|
||||||
bpl .10
|
|
||||||
|
|
||||||
jmp COUT.IAC
|
cmp #IAC
|
||||||
|
|
||||||
.10 cmp #IAC
|
|
||||||
bne .1
|
bne .1
|
||||||
sta bIACMode
|
|
||||||
stz IACBuf
|
lda #S.TTY.MODE.IAC
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
stz InBuffer
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -262,38 +274,52 @@ DRV.TERM.WRITE.COUT
|
|||||||
cmp #C.SPACE
|
cmp #C.SPACE
|
||||||
bcc COUT.Ctrl
|
bcc COUT.Ctrl
|
||||||
|
|
||||||
ora INVFLG
|
ldy #S.TTY.bINVERSE
|
||||||
|
ora (ZPTTYEnvPtr),y
|
||||||
jsr SetCharAtCurPos
|
jsr SetCharAtCurPos
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FS ldx CH
|
FS ldy #S.TTY.CH
|
||||||
cpx #79
|
lda (ZPTTYEnvPtr),y
|
||||||
|
cmp #79
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
bit LWFLG
|
ldy #S.TTY.bLINEWRAP
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
bpl FS.8
|
bpl FS.8
|
||||||
|
|
||||||
stz CH
|
ldy #S.TTY.CH
|
||||||
|
lda #0
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
jmp LF
|
jmp LF
|
||||||
|
|
||||||
.1 inc CH
|
.1 inc
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
FS.8 clc
|
FS.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEL ldx CH
|
DEL ldy #S.TTY.CH
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
beq .1
|
beq .1
|
||||||
dec CH
|
dec
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.1 ldy CV
|
.1 iny S.TTY.CV
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
beq FS.8
|
beq FS.8
|
||||||
|
|
||||||
|
dec
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
|
dey
|
||||||
lda #79
|
lda #79
|
||||||
sta CH
|
sta (ZPTTYEnvPtr),y S.TTY.CH
|
||||||
dec CV
|
|
||||||
|
|
||||||
.3 lda #$20
|
.3 lda #$20
|
||||||
ora INVFLG
|
ldy #S.TTY.bINVERSE
|
||||||
|
ora (ZPTTYEnvPtr),y
|
||||||
jmp SetCharAtCurPos
|
jmp SetCharAtCurPos
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT.Ctrl ldx #CtrlChars.Cnt-1
|
COUT.Ctrl ldx #CtrlChars.Cnt-1
|
||||||
@ -310,25 +336,19 @@ COUT.Ctrl ldx #CtrlChars.Cnt-1
|
|||||||
tax
|
tax
|
||||||
jmp (J.CtrlChars,x)
|
jmp (J.CtrlChars,x)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
J.CtrlChars .DA ENQ 5
|
DRV.TERM.ESC lda (ZPBufPtr)
|
||||||
.DA BS 8
|
|
||||||
.DA LF 10
|
|
||||||
.DA CLRSCR 12
|
|
||||||
.DA CROUT 13
|
|
||||||
.DA FS 21
|
|
||||||
.DA ESC 27
|
|
||||||
*--------------------------------------
|
|
||||||
COUT.EscMode bit bEscModeCSI
|
|
||||||
bmi COUT.EscModeCSI
|
|
||||||
cmp #'['
|
cmp #'['
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
dec bEscModeCSI
|
lda #S.TTY.MODE.CSI
|
||||||
stz EscSeq
|
sta (ZPTTYEnvPtr),y
|
||||||
|
stz InBuffer
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 stz bEscMode
|
.1 lda #0
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
ldx #EscCodes.Cnt-1
|
ldx #EscCodes.Cnt-1
|
||||||
|
|
||||||
@ -349,16 +369,21 @@ J.EscCodes .DA Scroll.Dn M
|
|||||||
.DA Scroll.Up D
|
.DA Scroll.Up D
|
||||||
.DA RESET c
|
.DA RESET c
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT.EscModeCSI inc EscSeq
|
DRV.TERM.CSI inc InBuffer
|
||||||
ldx EscSeq
|
ldx InBuffer
|
||||||
sta EscSeq,x
|
|
||||||
|
lda (ZPBufPtr)
|
||||||
|
sta InBuffer,x
|
||||||
cmp #64 End of Seq ?
|
cmp #64 End of Seq ?
|
||||||
bcs COUT.ExecEscSeq
|
bcs COUT.ExecEscSeq
|
||||||
cpx #ESCSEQ.MAXLEN too long?
|
|
||||||
bne .1
|
cpx #INBUF.MAXLEN too long?
|
||||||
stz bEscModeCSI
|
bne .8
|
||||||
stz bEscMode
|
|
||||||
.1 clc
|
lda #0
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
COUT.ExecEscSeq stz EscSeqParamCnt
|
COUT.ExecEscSeq stz EscSeqParamCnt
|
||||||
@ -370,7 +395,7 @@ COUT.ExecEscSeq stz EscSeqParamCnt
|
|||||||
stz ZPTmpWord+1
|
stz ZPTmpWord+1
|
||||||
|
|
||||||
.1 inx
|
.1 inx
|
||||||
lda EscSeq,x
|
lda InBuffer,x
|
||||||
|
|
||||||
cmp #'0'
|
cmp #'0'
|
||||||
bcc .2
|
bcc .2
|
||||||
@ -416,12 +441,13 @@ COUT.ExecEscSeq stz EscSeqParamCnt
|
|||||||
sta EscSeqParam,y
|
sta EscSeqParam,y
|
||||||
inc EscSeqParamCnt
|
inc EscSeqParamCnt
|
||||||
|
|
||||||
.3 lda EscSeq,x
|
.3 lda InBuffer,x
|
||||||
cmp #';'
|
cmp #';'
|
||||||
beq .10
|
beq .10
|
||||||
|
|
||||||
stz bEscModeCSI
|
lda #0
|
||||||
stz bEscMode
|
ldy #S.TTY.MODE
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
ldx #EscSeqCmds.Cnt-1
|
ldx #EscSeqCmds.Cnt-1
|
||||||
|
|
||||||
@ -446,16 +472,18 @@ J.EscSequences .DA Esc.LWEnable h
|
|||||||
.DA Esc.Erase K
|
.DA Esc.Erase K
|
||||||
.DA Esc.Home H
|
.DA Esc.Home H
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT.IAC inc IACBuf
|
DRV.TERM.IAC inc InBuffer
|
||||||
ldx IACBuf
|
ldx InBuffer
|
||||||
cpx #IACBUF.MAXLEN
|
cpx #INBUF.MAXLEN
|
||||||
beq *
|
beq *
|
||||||
sta IACBuf,x
|
|
||||||
|
lda (ZPBufPtr)
|
||||||
|
sta InBuffer,x
|
||||||
|
|
||||||
cpx #1 CMD ?
|
cpx #1 CMD ?
|
||||||
beq .8 yes, wait for additional bytes
|
beq .8 yes, wait for additional bytes
|
||||||
|
|
||||||
ldy IACBuf+1 get back CMD
|
ldy InBuffer+1 get back CMD
|
||||||
cpy #SB
|
cpy #SB
|
||||||
bne .1 not a SB/SE....stop with CMD/SUBCMD
|
bne .1 not a SB/SE....stop with CMD/SUBCMD
|
||||||
|
|
||||||
@ -471,13 +499,13 @@ COUT.IAC inc IACBuf
|
|||||||
bcc .9
|
bcc .9
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
lda IACBuf+2 Get SUBCMD in A
|
lda InBuffer+2 Get SUBCMD in A
|
||||||
|
|
||||||
cpx #10
|
cpx #10
|
||||||
bcs *
|
bcs *
|
||||||
jmp (J.COUT.IAC.CMDS,x)
|
jmp (J.COUT.IAC.CMDS,x)
|
||||||
|
|
||||||
.9 stz bIACMode
|
.9 bra RESET.MODE
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
@ -492,7 +520,7 @@ J.COUT.IAC.CMDS .DA COUT.IAC.SB
|
|||||||
COUT.IAC.SB cmp #TELOPT.TTYPE
|
COUT.IAC.SB cmp #TELOPT.TTYPE
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
lda IACBuf+3
|
lda InBuffer+3
|
||||||
cmp #SB.SEND
|
cmp #SB.SEND
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
@ -504,10 +532,7 @@ COUT.IAC.SB cmp #TELOPT.TTYPE
|
|||||||
cpy #SB.IS.TTYPE.LEN
|
cpy #SB.IS.TTYPE.LEN
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.9 stz bIACMode
|
.9 bra RESET.MODE
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT.IAC.WILL ldx #WILLDO.CNT-1
|
COUT.IAC.WILL ldx #WILLDO.CNT-1
|
||||||
|
|
||||||
@ -532,16 +557,10 @@ COUT.IAC.WILL ldx #WILLDO.CNT-1
|
|||||||
|
|
||||||
bra COUT.IAC.SendAX
|
bra COUT.IAC.SendAX
|
||||||
|
|
||||||
.9 stz bIACMode
|
.9 bra RESET.MODE
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT.IAC.WONT
|
COUT.IAC.WONT
|
||||||
.9 stz bIACMode
|
bra RESET.MODE
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT.IAC.DO ldx #DOWILL.CNT-1
|
COUT.IAC.DO ldx #DOWILL.CNT-1
|
||||||
|
|
||||||
@ -575,40 +594,50 @@ COUT.IAC.SendAX
|
|||||||
jsr Char.Out.Put
|
jsr Char.Out.Put
|
||||||
|
|
||||||
COUT.IAC.SendAX.9
|
COUT.IAC.SendAX.9
|
||||||
stz bIACMode
|
bra RESET.MODE
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT.IAC.DONT
|
COUT.IAC.DONT
|
||||||
.9 stz bIACMode
|
bra RESET.MODE
|
||||||
|
*--------------------------------------
|
||||||
|
RESET.MODE lda #0
|
||||||
|
|
||||||
|
ldy #S.TTY.MODE
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RESET stz CURON
|
RESET jsr RESET.MODE
|
||||||
|
|
||||||
stz bEscMode
|
ldy #S.TTY.bCURON
|
||||||
stz bEscModeCSI
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
|
dec
|
||||||
|
ldy #S.TTY.bLINEWRAP
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
ldy #S.TTY.SCROLLTOP
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda #23
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
jsr CLRSCR
|
jsr CLRSCR
|
||||||
|
|
||||||
lda #23
|
|
||||||
sta SCROLLBOT
|
|
||||||
lda #0
|
|
||||||
sta SCROLLTOP
|
|
||||||
dec
|
|
||||||
sta LWFLG
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RESETATTR lda #$80
|
RESETATTR lda #$80
|
||||||
sta INVFLG
|
ldy #S.TTY.bINVERSE
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ESC lda #$80
|
J.CtrlChars .DA ENQ 5
|
||||||
sta bEscMode
|
.DA BS 8
|
||||||
clc
|
.DA LF 10
|
||||||
rts
|
.DA CLRSCR 12
|
||||||
|
.DA CROUT 13
|
||||||
|
.DA FS 21
|
||||||
|
.DA ESC 27
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENQ ldy #0
|
ENQ ldy #0
|
||||||
|
|
||||||
@ -621,73 +650,59 @@ ENQ ldy #0
|
|||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BS ldx CH
|
BS ldy #S.TTY.CH
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
beq .1
|
beq .1
|
||||||
dec CH
|
|
||||||
bra .3
|
|
||||||
|
|
||||||
.1 ldy CV
|
dec
|
||||||
bne .2
|
sta (ZPTTYEnvPtr),y
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.2 lda #79
|
.1 ldy #S.TTY.CV
|
||||||
sta CH
|
lda (ZPTTYEnvPtr),y
|
||||||
dec CV
|
beq .2
|
||||||
|
|
||||||
.3 clc
|
dec
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
|
lda #79
|
||||||
|
dey
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
|
.2 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ClrScr ldx #23
|
CROUT lda #0
|
||||||
|
ldy #S.TTY.CH
|
||||||
.1 jsr SETUP.L1X
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
lda #" "
|
|
||||||
|
|
||||||
bit bActive
|
|
||||||
bpl .4
|
|
||||||
|
|
||||||
sta SETWRITEAUX
|
|
||||||
|
|
||||||
ldy #39
|
|
||||||
|
|
||||||
.2 sta (ZPScrBaseL1),y
|
|
||||||
dey
|
|
||||||
bpl .2
|
|
||||||
|
|
||||||
sta CLRWRITEAUX
|
|
||||||
|
|
||||||
ldy #39
|
|
||||||
|
|
||||||
.3 sta (ZPScrBaseL1),y
|
|
||||||
dey
|
|
||||||
bpl .3
|
|
||||||
|
|
||||||
.4 sta SETWRITEAUX
|
|
||||||
|
|
||||||
ldy #79
|
|
||||||
|
|
||||||
.5 sta (ZPBufBaseL1),y
|
|
||||||
dey
|
|
||||||
bpl .5
|
|
||||||
|
|
||||||
dex
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
stz CV
|
|
||||||
*--------------------------------------
|
|
||||||
CROUT stz CH
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LF ldy CV
|
LF ldy #S.TTY.CV
|
||||||
cpy SCROLLBOT
|
lda (ZPTTYEnvPtr),y
|
||||||
|
ldy #S.TTY.SCROLLBOT
|
||||||
|
cmp (ZPTTYEnvPtr),y
|
||||||
beq SCROLL.UP
|
beq SCROLL.UP
|
||||||
inc CV
|
|
||||||
|
inc
|
||||||
|
ldy #S.TTY.CV
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCROLL.UP ldx SCROLLTOP
|
ESC lda #S.TTY.MODE.ESC
|
||||||
|
ldy #S.TTY.MODE
|
||||||
|
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
SCROLL.UP ldy #S.TTY.SCROLLTOP
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
|
tax
|
||||||
|
|
||||||
.1 jsr SETUP.L1X
|
.1 jsr SETUP.L1X
|
||||||
|
|
||||||
@ -695,10 +710,14 @@ SCROLL.UP ldx SCROLLTOP
|
|||||||
|
|
||||||
jsr COPY.XtoL1
|
jsr COPY.XtoL1
|
||||||
|
|
||||||
cpx SCROLLBOT
|
txa
|
||||||
|
ldy #S.TTY.SCROLLBOT
|
||||||
|
cmp (ZPTTYEnvPtr),y
|
||||||
bne .1
|
bne .1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CLREOL ldy CH Start
|
CLREOL ldy #S.TTY.CH
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
|
tay Start
|
||||||
ldx #80 End
|
ldx #80 End
|
||||||
bra CLR
|
bra CLR
|
||||||
|
|
||||||
@ -706,26 +725,37 @@ CLRLINE ldy #0 Start
|
|||||||
ldx #80 End
|
ldx #80 End
|
||||||
bra CLR
|
bra CLR
|
||||||
|
|
||||||
CLRSOL ldy #0 Start
|
CLRSOL ldy #0
|
||||||
ldx CH End
|
ldy #S.TTY.CH
|
||||||
|
lda (ZPTTYEnvPtr),y Start
|
||||||
CLR stx .2+1
|
tax End
|
||||||
|
|
||||||
ldx CV
|
|
||||||
|
|
||||||
.1 lda #" "
|
|
||||||
|
|
||||||
|
CLR stx .3+1 Save End
|
||||||
phy
|
phy
|
||||||
|
|
||||||
|
ldy #S.TTY.CV
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
|
tax
|
||||||
|
|
||||||
|
ply
|
||||||
|
|
||||||
|
.1 phy
|
||||||
|
|
||||||
|
lda #" "
|
||||||
jsr SetCharAtYX X unmodified
|
jsr SetCharAtYX X unmodified
|
||||||
|
|
||||||
ply
|
ply
|
||||||
iny
|
iny
|
||||||
.2 cpy #$ff Self Modified
|
.3 cpy #$ff Self Modified
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCROLL.DN ldx SCROLLBOT
|
SCROLL.DN ldy #S.TTY.SCROLLBOT
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
|
tax
|
||||||
|
|
||||||
.1 jsr SETUP.L1X
|
.1 jsr SETUP.L1X
|
||||||
|
|
||||||
@ -733,7 +763,9 @@ SCROLL.DN ldx SCROLLBOT
|
|||||||
|
|
||||||
jsr COPY.XtoL1
|
jsr COPY.XtoL1
|
||||||
|
|
||||||
cpx SCROLLTOP
|
txa
|
||||||
|
ldy #S.TTY.SCROLLTOP
|
||||||
|
cmp (ZPTTYEnvPtr),y
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
clc
|
clc
|
||||||
@ -752,7 +784,9 @@ Esc.LWDisable clc
|
|||||||
eor #7
|
eor #7
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
ror LWFLG
|
ror
|
||||||
|
ldy #S.TTY.bLINEWRAP
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
@ -765,9 +799,11 @@ Esc.DispAttr ldx EscSeqParamCnt
|
|||||||
jsr RESETATTR
|
jsr RESETATTR
|
||||||
bra .7
|
bra .7
|
||||||
|
|
||||||
.2 cmp #7
|
.2 eor #7
|
||||||
bne .8
|
bne .8
|
||||||
stz INVFLG
|
|
||||||
|
ldy #S.TTY.bINVERSE
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
.7 dex
|
.7 dex
|
||||||
bne .1
|
bne .1
|
||||||
@ -786,39 +822,50 @@ Esc.Query ldx EscSeqParamCnt
|
|||||||
|
|
||||||
lda #C.ESC
|
lda #C.ESC
|
||||||
jsr Char.Out.Put
|
jsr Char.Out.Put
|
||||||
|
|
||||||
lda #'['
|
lda #'['
|
||||||
jsr Char.Out.Put
|
jsr Char.Out.Put
|
||||||
lda CV
|
|
||||||
|
ldy #S.TTY.CV
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
inc
|
inc
|
||||||
jsr Decimal.Out
|
jsr Decimal.Out
|
||||||
|
|
||||||
lda #';'
|
lda #';'
|
||||||
jsr Char.Out.Put
|
jsr Char.Out.Put
|
||||||
lda CH
|
|
||||||
|
ldy #S.TTY.CH
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
inc
|
inc
|
||||||
jsr Decimal.Out
|
jsr Decimal.Out
|
||||||
|
|
||||||
lda #'R'
|
lda #'R'
|
||||||
jsr Char.Out.Put
|
jsr Char.Out.Put
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Esc.Scroll ldx EscSeqParamCnt
|
Esc.Scroll ldy EscSeqParamCnt
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
ldy #23
|
ldx #23
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.1 cpx #2
|
.1 cpy #2
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
lda EscSeqParam
|
lda EscSeqParam
|
||||||
dec
|
dec
|
||||||
ldy EscSeqParam+1
|
ldx EscSeqParam+1
|
||||||
dey
|
dex
|
||||||
|
|
||||||
|
.8 ldy #S.TTY.SCROLLTOP
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
iny S.TTY.SCROLLBOT
|
||||||
|
txa
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
.8 sta SCROLLTOP
|
|
||||||
sty SCROLLBOT
|
|
||||||
.9 clc
|
.9 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -839,10 +886,13 @@ Esc.Erase ldx EscSeqParamCnt
|
|||||||
.9 clc
|
.9 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Esc.Home ldx EscSeqParamCnt
|
Esc.Home lda EscSeqParamCnt
|
||||||
bne .1
|
bne .1
|
||||||
stz CH
|
|
||||||
stz CV
|
ldy #S.TTY.CH
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
iny
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -857,7 +907,9 @@ Esc.Home ldx EscSeqParamCnt
|
|||||||
tax
|
tax
|
||||||
|
|
||||||
.2 dex
|
.2 dex
|
||||||
stx CV
|
txa
|
||||||
|
ldy #S.TTY.CV
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
dec EscSeqParamCnt
|
dec EscSeqParamCnt
|
||||||
beq .8
|
beq .8
|
||||||
@ -874,135 +926,48 @@ Esc.Home ldx EscSeqParamCnt
|
|||||||
tax
|
tax
|
||||||
|
|
||||||
.3 dex
|
.3 dex
|
||||||
stx CH
|
txa
|
||||||
|
ldy #S.TTY.CH
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CUROFF lda CURON
|
CUROFF ldy #S.TTY.bCURON
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
beq CUREXIT.RTS
|
beq CUREXIT.RTS
|
||||||
|
|
||||||
CURBLNK lda A2osX.ASCREEN
|
CURBLNK bit bActive
|
||||||
cmp (ZPTTYPtr)
|
bpl CURBLNK1
|
||||||
beq CURBLNK1
|
|
||||||
|
|
||||||
lda CURON
|
ldy #S.TTY.bCURON
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
bne CURBLNK.OFF
|
bne CURBLNK.OFF
|
||||||
rts do not Light if screen is not active
|
rts do not Light if screen is not active
|
||||||
|
|
||||||
CURBLNK1 lda CURON
|
CURBLNK1 ldy #S.TTY.bCURON
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
bne CURBLNK.OFF
|
bne CURBLNK.OFF
|
||||||
|
|
||||||
jsr GetCharAtCurPos
|
jsr GetCharAtCurPos
|
||||||
sta CURCHAR
|
ldy #S.TTY.CURCHAR
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
and #$80
|
and #$80
|
||||||
eor #" "
|
eor #" "
|
||||||
bra CUREXIT
|
bra CUREXIT
|
||||||
|
|
||||||
CURBLNK.OFF lda CURCHAR
|
CURBLNK.OFF ldy #S.TTY.CURCHAR
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
|
|
||||||
CUREXIT jsr SetCharAtCurPos
|
CUREXIT jsr SetCharAtCurPos
|
||||||
|
|
||||||
lda CURON
|
ldy #S.TTY.bCURON
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
eor #CURSOR.BLINK.SPEED
|
eor #CURSOR.BLINK.SPEED
|
||||||
sta CURON
|
sta (ZPTTYEnvPtr),y
|
||||||
CUREXIT.RTS rts
|
CUREXIT.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SetCharAtCurPos ldy CH
|
|
||||||
ldx CV
|
|
||||||
*--------------------------------------
|
|
||||||
SetCharAtYX cmp #$40
|
|
||||||
bcc .10
|
|
||||||
cmp #$5F
|
|
||||||
bcs .10
|
|
||||||
and #$3F
|
|
||||||
|
|
||||||
.10 pha
|
|
||||||
|
|
||||||
jsr SETUP.L1X
|
|
||||||
|
|
||||||
tya
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
pla
|
|
||||||
bcs .1
|
|
||||||
|
|
||||||
sta SETWRITEAUX
|
|
||||||
.1 sta (ZPScrBaseL1),y
|
|
||||||
sta CLRWRITEAUX
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
GetCharAtCurPos ldy CH
|
|
||||||
ldx CV
|
|
||||||
*--------------------------------------
|
|
||||||
GetCharAtYX jsr SETUP.L1X
|
|
||||||
|
|
||||||
tya
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
bcs .1
|
|
||||||
|
|
||||||
sta SETREADAUX
|
|
||||||
.1 lda (ZPScrBaseL1),y
|
|
||||||
sta CLRREADAUX
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
SETUP.L1X lda SCR.BASEL,x
|
|
||||||
clc
|
|
||||||
adc ZPTTYPtr
|
|
||||||
sta ZPBufBaseL1
|
|
||||||
lda SCR.BASEH,x
|
|
||||||
adc ZPTTYPtr+1
|
|
||||||
sta ZPBufBaseL1+1
|
|
||||||
|
|
||||||
bit bActive
|
|
||||||
bpl .8
|
|
||||||
|
|
||||||
lda SCR.BASEL,x
|
|
||||||
sta ZPScrBaseL1
|
|
||||||
lda SCR.BASEH,x
|
|
||||||
sta ZPScrBaseL1+1
|
|
||||||
.8 rts
|
|
||||||
*--------------------------------------
|
|
||||||
COPY.XtoL1 ldy #79
|
|
||||||
|
|
||||||
sta SETWRITEAUX
|
|
||||||
sta SETREADAUX
|
|
||||||
|
|
||||||
.1 lda (ZPBufBaseL2),y
|
|
||||||
sta (ZPBufBaseL1),y
|
|
||||||
dey
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
sta CLRWRITEAUX
|
|
||||||
sta CLRREADAUX
|
|
||||||
|
|
||||||
bit bActive
|
|
||||||
bpl .8
|
|
||||||
|
|
||||||
lda SCR.BASEL,x
|
|
||||||
sta ZPScrBaseL2
|
|
||||||
lda SCR.BASEH,x
|
|
||||||
sta ZPScrBaseL2+1
|
|
||||||
|
|
||||||
sta SETWRITEAUX
|
|
||||||
sta SETREADAUX
|
|
||||||
|
|
||||||
jsr .6
|
|
||||||
|
|
||||||
sta CLRWRITEAUX
|
|
||||||
sta CLRREADAUX
|
|
||||||
|
|
||||||
.6 ldy #39
|
|
||||||
|
|
||||||
.7 lda (ZPScrBaseL2),y
|
|
||||||
sta (ZPScrBaseL1),y
|
|
||||||
dey
|
|
||||||
bpl .7
|
|
||||||
.8 rts
|
|
||||||
*--------------------------------------
|
|
||||||
Decimal.Out stz ZPTmpWord
|
Decimal.Out stz ZPTmpWord
|
||||||
stz ZPTmpWord+1
|
stz ZPTmpWord+1
|
||||||
|
|
||||||
@ -1189,26 +1154,14 @@ SB.IS.NAWS .DA #IAC,#SB,#TELOPT.NAWS,#SB.IS
|
|||||||
SB.IS.NAWS.LEN .EQ *-SB.IS.NAWS
|
SB.IS.NAWS.LEN .EQ *-SB.IS.NAWS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
bActive .BS 1
|
bActive .BS 1
|
||||||
|
bEscSeqInNum .BS 1
|
||||||
|
EscSeqParamCnt .BS 1
|
||||||
|
EscSeqParam .BS 4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CH .BS 1
|
InBuffer .BS INBUF.MAXLEN+1
|
||||||
CV .BS 1
|
|
||||||
LWFLG .BS 1
|
|
||||||
INVFLG .BS 1
|
|
||||||
SCROLLTOP .BS 1
|
|
||||||
SCROLLBOT .BS 1
|
|
||||||
CURON .BS 1
|
|
||||||
CURCHAR .BS 1
|
|
||||||
OutBuffer .BS OUTBUF.MAXLEN
|
OutBuffer .BS OUTBUF.MAXLEN
|
||||||
OutPtr .BS 1
|
OutPtr .BS 1
|
||||||
OutCnt .BS 1
|
OutCnt .BS 1
|
||||||
bIACMode .BS 1
|
|
||||||
IACBuf .BS OUTBUF.MAXLEN+1
|
|
||||||
bEscMode .BS 1
|
|
||||||
bEscModeCSI .BS 1
|
|
||||||
bEscSeqInNum .BS 1
|
|
||||||
EscSeq .BS ESCSEQ.MAXLEN+1
|
|
||||||
EscSeqParamCnt .BS 1
|
|
||||||
EscSeqParam .BS 4
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.TERM.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
|
DRV.TERM.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
|
||||||
.DA #0,#0,#0
|
.DA #0,#0,#0
|
||||||
|
156
SYS/KERNEL.S.TERMLC.txt
Normal file
156
SYS/KERNEL.S.TERMLC.txt
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
NEW
|
||||||
|
PREFIX
|
||||||
|
AUTO 4,1
|
||||||
|
*--------------------------------------
|
||||||
|
ClrScr ldx #23
|
||||||
|
|
||||||
|
.1 jsr SETUP.L1X
|
||||||
|
|
||||||
|
lda #" "
|
||||||
|
|
||||||
|
bit bActive
|
||||||
|
bpl .4
|
||||||
|
|
||||||
|
sta SETWRITEAUX
|
||||||
|
|
||||||
|
ldy #39
|
||||||
|
|
||||||
|
.2 sta (ZPScrBaseL1),y
|
||||||
|
dey
|
||||||
|
bpl .2
|
||||||
|
|
||||||
|
sta CLRWRITEAUX
|
||||||
|
|
||||||
|
ldy #39
|
||||||
|
|
||||||
|
.3 sta (ZPScrBaseL1),y
|
||||||
|
dey
|
||||||
|
bpl .3
|
||||||
|
|
||||||
|
.4 sta SETWRITEAUX
|
||||||
|
|
||||||
|
ldy #79
|
||||||
|
|
||||||
|
.5 sta (ZPBufBaseL1),y
|
||||||
|
dey
|
||||||
|
bpl .5
|
||||||
|
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
ldy #S.TTY.CV
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
dey
|
||||||
|
sta (ZPTTYEnvPtr),y
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
SetCharAtCurPos pha
|
||||||
|
ldy #S.TTY.CV
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
|
tax
|
||||||
|
dey
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
|
tay
|
||||||
|
pla
|
||||||
|
*--------------------------------------
|
||||||
|
SetCharAtYX cmp #$40
|
||||||
|
bcc .10
|
||||||
|
cmp #$5F
|
||||||
|
bcs .10
|
||||||
|
and #$3F
|
||||||
|
|
||||||
|
.10 pha
|
||||||
|
|
||||||
|
jsr SETUP.L1X
|
||||||
|
|
||||||
|
tya
|
||||||
|
lsr
|
||||||
|
tay
|
||||||
|
|
||||||
|
pla
|
||||||
|
bcs .1
|
||||||
|
|
||||||
|
sta SETWRITEAUX
|
||||||
|
.1 sta (ZPScrBaseL1),y
|
||||||
|
sta CLRWRITEAUX
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
GetCharAtCurPos ldy #S.TTY.CV
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
|
tax
|
||||||
|
dey
|
||||||
|
lda (ZPTTYEnvPtr),y
|
||||||
|
tay
|
||||||
|
|
||||||
|
jsr SETUP.L1X
|
||||||
|
|
||||||
|
tya
|
||||||
|
lsr
|
||||||
|
tay
|
||||||
|
|
||||||
|
bcs .1
|
||||||
|
|
||||||
|
sta SETREADAUX
|
||||||
|
.1 lda (ZPScrBaseL1),y
|
||||||
|
sta CLRREADAUX
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
SETUP.L1X lda SCR.BASEL,x
|
||||||
|
clc
|
||||||
|
adc ZPTTYBufPtr
|
||||||
|
sta ZPBufBaseL1
|
||||||
|
lda SCR.BASEH,x
|
||||||
|
adc ZPTTYBufPtr+1
|
||||||
|
sta ZPBufBaseL1+1
|
||||||
|
|
||||||
|
bit bActive
|
||||||
|
bpl .8
|
||||||
|
|
||||||
|
lda SCR.BASEL,x
|
||||||
|
sta ZPScrBaseL1
|
||||||
|
lda SCR.BASEH,x
|
||||||
|
sta ZPScrBaseL1+1
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
COPY.XtoL1 ldy #79
|
||||||
|
|
||||||
|
sta SETWRITEAUX
|
||||||
|
sta SETREADAUX
|
||||||
|
|
||||||
|
.1 lda (ZPBufBaseL2),y
|
||||||
|
sta (ZPBufBaseL1),y
|
||||||
|
dey
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
sta CLRWRITEAUX
|
||||||
|
sta CLRREADAUX
|
||||||
|
|
||||||
|
bit bActive
|
||||||
|
bpl .8
|
||||||
|
|
||||||
|
lda SCR.BASEL,x
|
||||||
|
sta ZPScrBaseL2
|
||||||
|
lda SCR.BASEH,x
|
||||||
|
sta ZPScrBaseL2+1
|
||||||
|
|
||||||
|
sta SETWRITEAUX
|
||||||
|
sta SETREADAUX
|
||||||
|
|
||||||
|
jsr .6
|
||||||
|
|
||||||
|
sta CLRWRITEAUX
|
||||||
|
sta CLRREADAUX
|
||||||
|
|
||||||
|
.6 ldy #39
|
||||||
|
|
||||||
|
.7 lda (ZPScrBaseL2),y
|
||||||
|
sta (ZPScrBaseL1),y
|
||||||
|
dey
|
||||||
|
bpl .7
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE USR/SRC/SYS/KERNEL.S.TERMLC
|
||||||
|
LOAD USR/SRC/SYS/KERNEL.S
|
||||||
|
ASM
|
@ -54,6 +54,7 @@ A2osX.E0 .PH $E000
|
|||||||
.INB USR/SRC/SYS/KERNEL.S.IRQ
|
.INB USR/SRC/SYS/KERNEL.S.IRQ
|
||||||
.INB USR/SRC/SYS/KERNEL.S.MEM
|
.INB USR/SRC/SYS/KERNEL.S.MEM
|
||||||
.INB USR/SRC/SYS/KERNEL.S.TERM
|
.INB USR/SRC/SYS/KERNEL.S.TERM
|
||||||
|
.INB USR/SRC/SYS/KERNEL.S.TERMLC
|
||||||
********* TMP ***** go to A2osX.D1
|
********* TMP ***** go to A2osX.D1
|
||||||
.INB USR/SRC/SYS/KERNEL.S.PFT
|
.INB USR/SRC/SYS/KERNEL.S.PFT
|
||||||
.INB USR/SRC/SYS/KERNEL.S.FIO
|
.INB USR/SRC/SYS/KERNEL.S.FIO
|
||||||
|
Loading…
Reference in New Issue
Block a user