Kernel 0.93

This commit is contained in:
Rémy GIBERT 2019-05-14 18:04:16 +02:00
parent d1a8e08a0a
commit a4e5c65711
4 changed files with 129 additions and 47 deletions

View File

@ -166,9 +166,11 @@ S.DCB.TTY.bCURON .EQ 7
S.DCB.TTY.bINVERSE .EQ 8 S.DCB.TTY.bINVERSE .EQ 8
S.DCB.TTY.bLINEWRAP .EQ 9 S.DCB.TTY.bLINEWRAP .EQ 9
S.DCB.TTY.bTITLE .EQ 10 S.DCB.TTY.bTITLE .EQ 10
*
* S.DCB.TTY.bG0G1 .EQ 11
* S.DCB.TTY.bG0ALT .EQ 12
S.DCB.TTY.bG1ALT .EQ 13
S.DCB.TTY.OUTTAIL .EQ 14 S.DCB.TTY.OUTTAIL .EQ 14
S.DCB.TTY.OUTHEAD .EQ 15 S.DCB.TTY.OUTHEAD .EQ 15
S.DCB.TTY.INBUFFER .EQ 16 S.DCB.TTY.INBUFFER .EQ 16

View File

@ -759,11 +759,11 @@ IO.EOF.REG >MLICALL MLIGETMARK
.2 lda K.MLI.PARAMS+2,y .2 lda K.MLI.PARAMS+2,y
eor K.EOF.MARK,y eor K.EOF.MARK,y
bne IO.EOF.CDEV.80 MARK != EOF -> false bne IO.EOF.FALSE
dey dey
bpl .2 bpl .2
IO.EOF.REG.88 lda #$ff IO.EOF.TRUE lda #$ff
* clc * clc
IO.EOF.REG.RTS rts IO.EOF.REG.RTS rts
*-------------------------------------- *--------------------------------------
@ -777,9 +777,9 @@ IO.EOF.CDEV >LDYAI K.IOBuf
lda K.IOBuf lda K.IOBuf
ora K.IOBuf+1 ora K.IOBuf+1
beq IO.EOF.REG.88 beq IO.EOF.TRUE
IO.EOF.CDEV.80 lda #0 IO.EOF.FALSE lda #0
* clc * clc
rts rts
*-------------------------------------- *--------------------------------------
@ -797,19 +797,13 @@ IO.EOF.SSOCK ldy #S.FD.SSOCK.EOF
.1 jmp $FFFF SELF MODIFIED .1 jmp $FFFF SELF MODIFIED
*-------------------------------------- *--------------------------------------
IO.EOF.PIPE ldy #S.FD.PIPE.Used IO.EOF.PIPE clc
ldy #S.FD.PIPE.Used
lda (pFD),y lda (pFD),y
iny iny
ora (pFD),y ora (pFD),y
bne .8 Data, EOF = false beq IO.EOF.TRUE
bne IO.EOF.FALSE
lda #$ff
clc
rts
.8 lda #0
clc
rts
*-------------------------------------- *--------------------------------------
IO.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF IO.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF
ldx #S.MEM.F.ALIGN+S.MEM.F.NOMOVE ldx #S.MEM.F.ALIGN+S.MEM.F.NOMOVE

View File

@ -14,6 +14,7 @@ ZPBufBaseL1 .BS 2
ZPBufBaseL2 .BS 2 ZPBufBaseL2 .BS 2
ZPScrBaseL1 .BS 2 ZPScrBaseL1 .BS 2
ZPScrBaseL2 .BS 2 ZPScrBaseL2 .BS 2
ZPTmpWord .BS 2 ZPTmpWord .BS 2
ZPTmpBool .BS 1 ZPTmpBool .BS 1
*-------------------------------------- *--------------------------------------
@ -402,9 +403,21 @@ DRV.TERM.COUT.ESC
DRV.TERM.ESC lda (ZPBufPtr) DRV.TERM.ESC lda (ZPBufPtr)
cmp #'[' cmp #'['
bne DRV.TERM.ESC1 bne .1
lda #S.DCB.TTY.MODE.CSI lda #S.DCB.TTY.MODE.CSI
bra DRV.TERM.SETMODE
.1 cmp #'('
bne .2
lda #S.DCB.TTY.MODE.G0
bra DRV.TERM.SETMODE
.2 cmp #')'
bne DRV.TERM.ESC1
lda #S.DCB.TTY.MODE.G1
DRV.TERM.SETMODE DRV.TERM.SETMODE
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
@ -436,8 +449,6 @@ DRV.TERM.ESC1 lda #0 y = #S.DCB.TTY.MODE
.4 .DA Scroll.Dn M .4 .DA Scroll.Dn M
.DA Scroll.Up D .DA Scroll.Up D
.DA RESET c .DA RESET c
.DA G0 (
.DA G1 )
*-------------------------------------- *--------------------------------------
DRV.TERM.CSI ldy #S.DCB.TTY.INBUFFER DRV.TERM.CSI ldy #S.DCB.TTY.INBUFFER
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
@ -548,7 +559,8 @@ DRV.TERM.CSI.Exec
.DA Csi.DispAttr m .DA Csi.DispAttr m
.DA Csi.Query n .DA Csi.Query n
.DA Csi.Scroll r .DA Csi.Scroll r
.DA Csi.Erase K .DA Csi.EraseScreen J
.DA Csi.EraseLine K
.DA Csi.Home H .DA Csi.Home H
*-------------------------------------- *--------------------------------------
Csi.LWEnable sec Csi.LWEnable sec
@ -652,7 +664,24 @@ Csi.Scroll ldy CsiParamCnt
.9 clc .9 clc
rts rts
*-------------------------------------- *--------------------------------------
Csi.Erase ldx CsiParamCnt Csi.EraseScreen ldx CsiParamCnt
bne .1
jmp DRV.TERM.CLRSCR.DN
.1 lda CsiParams
cmp #1
bne .2
jmp DRV.TERM.CLRSCR.UP
.2 cmp #2
bne .9
jmp DRV.TERM.CLRSCR
.9 clc
rts
*--------------------------------------
Csi.EraseLine ldx CsiParamCnt
bne .1 bne .1
jmp CLREOL jmp CLREOL
@ -716,10 +745,19 @@ Csi.Home lda CsiParamCnt
Csi.Home.8 clc Csi.Home.8 clc
rts rts
*-------------------------------------- *--------------------------------------
DRV.TERM.G0 DRV.TERM.G0 ldy #S.DCB.TTY.bG0ALT
DRV.TERM.G1 .HS 2C BIT ABS
DRV.TERM.G1 ldy #S.DCB.TTY.bG1ALT
jmp RESET.MODE lda (ZPBufPtr)
cmp #'0'
beq .1
clc
.1 ror
sta (ZPDCBPtr),y
clc
rts
*-------------------------------------- *--------------------------------------
DRV.TERM.IAC ldy #S.DCB.TTY.INBUFFER DRV.TERM.IAC ldy #S.DCB.TTY.INBUFFER
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
@ -846,7 +884,7 @@ COUT.IAC.DONT
COUT.IAC.EXIT COUT.IAC.EXIT
*-------------------------------------- *--------------------------------------
RESET.MODE lda #0 RESET.MODE lda #0
SET.MODE ldy #S.DCB.TTY.MODE ldy #S.DCB.TTY.MODE
sta (ZPDCBPtr),y sta (ZPDCBPtr),y
clc clc
rts rts
@ -867,11 +905,15 @@ RESETATTR lda #$80
clc clc
rts rts
*-------------------------------------- *--------------------------------------
G0 lda #S.DCB.TTY.MODE.G0 SI clc
.HS 2C BIT ABS .HS 2C BIT ABS
*-------------------------------------- *--------------------------------------
G1 lda #S.DCB.TTY.MODE.G1 SO sec
bra SET.MODE ldy #S.DCB.TTY.bG0G1
ror
sta (ZPDCBPtr),y
clc
rts
*-------------------------------------- *--------------------------------------
ENQ ldx #0 ENQ ldx #0
@ -1261,7 +1303,7 @@ RESET.VALUES .DA #0 S.DCB.TTY.MODE
.DA #$80 S.DCB.TTY.bINVERSE .DA #$80 S.DCB.TTY.bINVERSE
.DA #$80 S.DCB.TTY.bLINEWRAP .DA #$80 S.DCB.TTY.bLINEWRAP
.DA #0 S.DCB.TTY.bTITLE .DA #0 S.DCB.TTY.bTITLE
.DA #0 .DA #0 S.DCB.TTY.bALTFONT
.DA #0 .DA #0
.DA #0 .DA #0
.DA #S.DCB.TTY.OUTBUFFER S.DCB.TTY.OUTTAIL .DA #S.DCB.TTY.OUTBUFFER S.DCB.TTY.OUTTAIL
@ -1271,9 +1313,9 @@ RESET.VALUES .DA #0 S.DCB.TTY.MODE
CtrlChars .HS 05080A0C0D151B CtrlChars .HS 05080A0C0D151B
CtrlChars.Cnt .EQ *-CtrlChars CtrlChars.Cnt .EQ *-CtrlChars
*-------------------------------------- *--------------------------------------
EscCodes .AZ "MDc()" EscCodes .AZ "MDc"
EscCodes.Cnt .EQ *-EscCodes EscCodes.Cnt .EQ *-EscCodes
CsiCodes .AS "hlmnrKH" CsiCodes .AS "hlmnrJKH"
CsiCodes.Cnt .EQ *-CsiCodes CsiCodes.Cnt .EQ *-CsiCodes
ENQ.String .AZ "xterm" ENQ.String .AZ "xterm"
*-------------------------------------- *--------------------------------------

View File

@ -2,10 +2,33 @@ NEW
PREFIX PREFIX
AUTO 4,1 AUTO 4,1
*-------------------------------------- *--------------------------------------
DRV.TERM.CLRSCR ldx #23 DRV.TERM.CLRSCR.DN
ldy #S.DCB.TTY.CV
sta (ZPDCBPtr),y
tax
bra DRV.TERM.CLRSCR.1
DRV.TERM.CLRSCR.UP
ldx #0
ldy #S.DCB.TTY.CV
sta (ZPDCBPtr),y
tay
bra DRV.TERM.CLRSCR.2
DRV.TERM.CLRSCR ldx #0
DRV.TERM.CLRSCR.1
ldy #24
DRV.TERM.CLRSCR.2
sty .1+1
sta SET80STORE sta SET80STORE
.1 jsr DRV.TERM.SETUP.L1X .1 cpx #$ff SELF MODIFIED
beq .9
jsr DRV.TERM.SETUP.L1X
lda #" " lda #" "
@ -13,11 +36,9 @@ DRV.TERM.CLRSCR ldx #23
bpl .4 bpl .4
sta SETPAGE2 sta SETPAGE2
jsr .7 jsr .7
sta CLRPAGE2 sta CLRPAGE2
jsr .7 jsr .7
.4 sta SETWRITEAUX .4 sta SETWRITEAUX
@ -30,17 +51,15 @@ DRV.TERM.CLRSCR ldx #23
sta CLRWRITEAUX sta CLRWRITEAUX
dex inx
bpl .1 bra .1
rts
.7 ldy #39 .7 ldy #39
.8 sta (ZPScrBaseL1),y .8 sta (ZPScrBaseL1),y
dey dey
bpl .8 bpl .8
rts .9 rts
*-------------------------------------- *--------------------------------------
DRV.TERM.LINE0CPY DRV.TERM.LINE0CPY
ldx #0 ldx #0
@ -167,9 +186,26 @@ SetCharAtCurPos.SCR
pla pla
bra SetCharAtY.SCR bra SetCharAtY.SCR
SetCharAtCurPos ldy #S.DCB.TTY.bINVERSE SetCharAtCurPos pha
ldy #S.DCB.TTY.bALTFONT
lda (ZPDCBPtr),y
bpl .1
pla
bmi .2
cmp #96
bcc .2
and #$1F
bra .3
.1 pla
.2 ldy #S.DCB.TTY.bINVERSE
ora (ZPDCBPtr),y ora (ZPDCBPtr),y
pha
.3 pha
ldy #S.DCB.TTY.CV ldy #S.DCB.TTY.CV
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
tax tax
@ -191,11 +227,19 @@ SetCharAtYX pha
bit bActive bit bActive
bpl SetCharAtYX.8 bpl SetCharAtYX.8
SetCharAtY.SCR cmp #$40 SetCharAtY.SCR cmp #$20
bcs .10
phx
tax
lda REMAP.96.127,x
plx
.10 cmp #$40 Remap inverse UPPRECASE
bcc .1 bcc .1
cmp #$5F cmp #$5F
bcs .1 bcs .1
and #$3F and #$1F
.1 pha .1 pha
@ -228,7 +272,7 @@ GetCharAtCurPos ldy #S.DCB.TTY.CV
rts rts
*-------------------------------------- *--------------------------------------
REMAP.95.126 .HS 404142434445464748494a4b4c4d4e4f REMAP.96.127 .HS 404142434445464748494a4b4c4d4e4f
.HS 505152535455565758595a5b5c5d5e5f .HS 505152535455565758595a5b5c5d5e5f
*-------------------------------------- *--------------------------------------
BUF.BASEL .DA #0 BUF.BASEL .DA #0