Kernel 0.93

This commit is contained in:
Rémy GIBERT
2019-05-15 17:30:46 +02:00
parent 37a3333319
commit aa16022baa
8 changed files with 183 additions and 158 deletions
Binary file not shown.
+1 -2
View File
@@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
.LIST OFF
*--------------------------------------
SSCIRQ .EQ 0
+1 -2
View File
@@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
.LIST OFF
*--------------------------------------
SSCIRQ .EQ 1
+40 -5
View File
@@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
.OP 65C02
.OR $2000
*--------------------------------------
@@ -238,7 +237,7 @@ STATUS jsr STATUS.CONTROL.Init
rts
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
bne STATUS.9
bne .3
ldy #S.DCB.COM-1
@@ -250,6 +249,32 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
clc
rts
.3 cmp #S.IOCTL.STATCODE.GETRC
bne STATUS.9
lda DIB+S.DIB.S
and #S.DIB.S.OPENED
beq .8
.DO SSCIRQ=1
lda INBUF.TAIL
eor INBUF.HEAD
beq .4 NO DATA? eof + TRUE
lda #1
.4 dec
clc
rts
.ELSE
.FIN
.8 clc
rts
STATUS.9 lda #MLI.E.BADCTL
sec
rts
@@ -268,7 +293,15 @@ CONTROL jsr STATUS.CONTROL.Init
dey
bpl .2
*--------------------------------------
OPEN php
OPEN lda DIB+S.DIB.S
bit #S.DIB.S.OPENED
beq .1
lda #MLI.E.OPEN
sec
rts
.1 php
sei
ldx DEVSLOTn08F
@@ -392,8 +425,10 @@ READ php
rts
.9 lda #C.EOF
.HS 2C BIT ABS
.99 plp
lda #E.NODATA
sec
rts
*--------------------------------------
@@ -470,7 +505,7 @@ WRITE php
clc
rts
.90 lda #0
.90 lda #E.NODATA
.HS 2C BIT ABS
.9 lda #C.EOF
plp
+2 -2
View File
@@ -130,9 +130,9 @@ C.LF .EQ 10
C.VT .EQ 11
C.FF .EQ 12
C.CR .EQ 13
C.SO .EQ 14
C.SI .EQ 15
C.FS .EQ 21
C.S0 .EQ 24
C.S1 .EQ 25
C.ESC .EQ 27
C.SPACE .EQ 32
C.COLON .EQ 58
+1 -1
View File
@@ -162,7 +162,7 @@ S.DCB.TTY.CV .EQ 4
S.DCB.TTY.SCROLLTOP .EQ 5
S.DCB.TTY.SCROLLBOT .EQ 6
S.DCB.TTY.bCURON .EQ 7
S.DCB.TTY.bINVERSE .EQ 8
S.DCB.TTY.bNORMAL .EQ 8
S.DCB.TTY.bLINEWRAP .EQ 9
S.DCB.TTY.bTITLE .EQ 10
+68 -83
View File
@@ -16,6 +16,7 @@ ZPScrBaseL2 .BS 2
ZPTmpWord .BS 2
ZPTmpBool .BS 1
ZPTmpChar .BS 1
*--------------------------------------
bActive .BS 1
bCsiInNum .BS 1
@@ -326,11 +327,13 @@ DRV.TERM.COUT lda (ZPBufPtr)
tax
jmp (.4,x)
.4 .DA ENQ 5
.DA BS 8
.DA LF 10
.4 .DA ENQ
.DA BS
.DA LF
.DA DRV.TERM.COUT.FF
.DA DRV.TERM.COUT.CR
.DA DRV.TERM.COUT.SO
.DA DRV.TERM.COUT.SI
.DA DRV.TERM.COUT.FS
.DA DRV.TERM.COUT.ESC
@@ -395,59 +398,61 @@ DRV.TERM.COUT.CR
clc
rts
*--------------------------------------
DRV.TERM.COUT.SO
sec
.HS 90 BCC
*--------------------------------------
DRV.TERM.COUT.SI
clc
ldy #S.DCB.TTY.bG0G1
ror
sta (ZPDCBPtr),y
clc
rts
*--------------------------------------
DRV.TERM.COUT.ESC
lda #S.DCB.TTY.MODE.ESC
bra DRV.TERM.SETMODE
*--------------------------------------
DRV.TERM.ESC lda (ZPBufPtr)
DRV.TERM.ESC lda (ZPBufPtr) y = #S.DCB.TTY.MODE
cmp #'['
bne .1
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
sta (ZPDCBPtr),y
ldy #S.DCB.TTY.INBUFFER
lda #S.DCB.TTY.INBUFFER
sta (ZPDCBPtr),y
clc
rts
DRV.TERM.ESC1 lda #0 y = #S.DCB.TTY.MODE
sta (ZPDCBPtr),y
ldx #EscCodes.Cnt-1
lda (ZPBufPtr)
.2 cmp EscCodes,x
beq .3
dex
bpl .2
clc
rts
lda #0
bra DRV.TERM.SETMODE
.3 txa
.3 phx
jsr .4
plx
lda EscModes,x
bra DRV.TERM.SETMODE
.4 txa
asl
tax
jmp (.4,x)
jmp (.5,x)
.4 .DA Scroll.Dn M
.5 .DA Scroll.Dn M
.DA Scroll.Up D
.DA RESET c
.DA DRV.TERM.SETMODE.RTS [
.DA DRV.TERM.SETMODE.RTS (
.DA DRV.TERM.SETMODE.RTS )
*--------------------------------------
DRV.TERM.SETMODE
ldy #S.DCB.TTY.MODE
sta (ZPDCBPtr),y
ldy #S.DCB.TTY.INBUFFER
lda #S.DCB.TTY.INBUFFER
sta (ZPDCBPtr),y
clc
DRV.TERM.SETMODE.RTS
rts
*--------------------------------------
DRV.TERM.CSI ldy #S.DCB.TTY.INBUFFER
lda (ZPDCBPtr),y
@@ -596,7 +601,7 @@ Csi.DispAttr ldx CsiParamCnt
.2 eor #7
bne .7
.3 ldy #S.DCB.TTY.bINVERSE
.3 ldy #S.DCB.TTY.bNORMAL
sta (ZPDCBPtr),y
.7 dex
@@ -899,17 +904,7 @@ RESET ldy #1
jmp DRV.TERM.CLRSCR
*--------------------------------------
RESETATTR lda #$80
ldy #S.DCB.TTY.bINVERSE
sta (ZPDCBPtr),y
clc
rts
*--------------------------------------
SI clc
.HS 2C BIT ABS
*--------------------------------------
SO sec
ldy #S.DCB.TTY.bG0G1
ror
ldy #S.DCB.TTY.bNORMAL
sta (ZPDCBPtr),y
clc
rts
@@ -917,9 +912,10 @@ SO sec
ENQ ldx #0
.1 lda ENQ.String,x
beq .8
jsr Char.Out.Put
inx
cpx ENQ.String.Len
bne .1
.8 clc
@@ -1066,7 +1062,18 @@ DRV.TERM.CURBLNK.OFF
jsr GetCharAtCurPos
DRV.TERM.CURBLNK.SET
jsr SetCharAtCurPos.SCR
pha
ldy #S.DCB.TTY.CV
lda (ZPDCBPtr),y
tax
dey
lda (ZPDCBPtr),y
tay CH
jsr DRV.TERM.SETUP.L1X.SCR
pla
jsr SetCharAtY.SCR
ldy #S.DCB.TTY.bCURON
lda (ZPDCBPtr),y
@@ -1270,53 +1277,30 @@ DRV.TERM.Title.OFF
sta (ZPDCBPtr),y
jmp DRV.TERM.LINE0CPY
*--------------------------------------
DRV.TERM.SETUP.L1X
ldy #S.FD.DEV.BUFPTR
lda (pFD),y
clc
adc BUF.BASEL,x
sta ZPBufBaseL1
iny
lda (pFD),y
adc BUF.BASEH,x
sta ZPBufBaseL1+1
bit bActive
bpl DRV.TERM.SETUP.L1X.8
DRV.TERM.SETUP.L1X.SCR
lda SCR.BASEL,x
sta ZPScrBaseL1
lda SCR.BASEH,x
sta ZPScrBaseL1+1
DRV.TERM.SETUP.L1X.8
rts
*--------------------------------------
RESET.VALUES .DA #0 S.DCB.TTY.MODE
.DA #0 S.DCB.TTY.CH
.DA #0 S.DCB.TTY.CV
.DA #0 S.DCB.TTY.SCROLLTOP
.DA #23 S.DCB.TTY.SCROLLBOT
.DA #0 S.DCB.TTY.bCURON
.DA #$80 S.DCB.TTY.bINVERSE
.DA #$80 S.DCB.TTY.bNORMAL
.DA #$80 S.DCB.TTY.bLINEWRAP
.DA #0 S.DCB.TTY.bTITLE
.DA #0 S.DCB.TTY.bALTFONT
.DA #0
.DA #0
.DA #0 S.DCB.TTY.bG0G1
.DA #0 S.DCB.TTY.bG0ALT
.DA #$80 S.DCB.TTY.bG1ALT
.DA #S.DCB.TTY.OUTBUFFER S.DCB.TTY.OUTTAIL
.DA #S.DCB.TTY.OUTBUFFER S.DCB.TTY.OUTHEAD
.DA #S.DCB.TTY.INBUFFER S.DCB.TTY.INBUFFER
*--------------------------------------
CtrlChars .HS 05080A0C0D151B
CtrlChars .DA #C.ENQ,#C.BS,#C.LF,#C.FF,#C.CR,#C.SO,#C.SI,#C.FS,#C.ESC
CtrlChars.Cnt .EQ *-CtrlChars
*--------------------------------------
EscCodes .AZ "MDc"
EscCodes .AZ "MDc[()"
EscCodes.Cnt .EQ *-EscCodes
EscModes .DA #0,#0,#0,#S.DCB.TTY.MODE.CSI,#S.DCB.TTY.MODE.G0,#S.DCB.TTY.MODE.G1
CsiCodes .AS "hlmnrJKH"
CsiCodes.Cnt .EQ *-CsiCodes
ENQ.String .AZ "xterm"
*--------------------------------------
KeyRemapped .HS 05080A0B0D15 L,D,U,CR,R
KeyRemappedIdx .HS 050004080C0F
@@ -1336,7 +1320,8 @@ DOWILL.CNT .EQ *-DOWILL
DOWONT .DA #TELOPT.ECHO,#TELOPT.NEWENVIRON,#TELOPT.XDISPLOC,#TELOPT.TSPEED,#TELOPT.LFLOW
DOWONT.CNT .EQ *-DOWONT
SB.IS.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.IS
.AS "xterm"
ENQ.String .AS "xterm"
ENQ.String.Len .EQ *-ENQ.String
.DA #IAC,#SE
SB.IS.TTYPE.LEN .EQ *-SB.IS.TTYPE
SB.IS.NAWS .DA #IAC,#SB,#TELOPT.NAWS,#SB.IS
+70 -63
View File
@@ -109,11 +109,6 @@ DRV.TERM.SCRCPY ldx #23
.8 ldy #39
.80 lda $ffff,x SELF MODIFIED
cmp #$40
bcc .81
cmp #$5F
bcs .81
and #$3F
.81 sta (ZPScrBaseL1),y
dex
@@ -171,44 +166,7 @@ DRV.TERM.COPY.XtoL1
.8 rts
*--------------------------------------
SetCharAtCurPos.SCR
pha
ldy #S.DCB.TTY.CV
lda (ZPDCBPtr),y
tax
dey
lda (ZPDCBPtr),y
tay CH
jsr DRV.TERM.SETUP.L1X.SCR
pla
bra SetCharAtY.SCR
SetCharAtCurPos pha
ldy #S.DCB.TTY.bG0G1
lda (ZPDCBPtr),y
bpl .10
iny
.10 iny
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
.3 pha
ldy #S.DCB.TTY.CV
lda (ZPDCBPtr),y
tax
@@ -217,12 +175,44 @@ SetCharAtCurPos pha
tay
pla
*--------------------------------------
SetCharAtYX pha
phy
jsr DRV.TERM.SETUP.L1X
SetCharAtYX cmp #$40
bcc .1
cmp #$60
bcs .1
and #$1F remap UPPERCASE
.1 phy
ldy #S.DCB.TTY.bNORMAL
ora (ZPDCBPtr),y
sta ZPTmpChar
ldy #S.DCB.TTY.bG0G1 Select Active Font
lda (ZPDCBPtr),y
bpl .2
iny
.2 iny
lda (ZPDCBPtr),y
bpl .3 not Graphic mode
lda ZPTmpChar
cmp #$E0 Normal lowercase ?
bcc .3
tay
lda REMAP.E0.FF-$E0,y
sta ZPTmpChar
.3 jsr DRV.TERM.SETUP.L1X
ply
pla
lda ZPTmpChar
sta SETWRITEAUX
sta (ZPBufBaseL1),y
sta CLRWRITEAUX
@@ -230,21 +220,7 @@ SetCharAtYX pha
bit bActive
bpl SetCharAtYX.8
SetCharAtY.SCR cmp #$20
bcs .10
phx
tax
lda REMAP.96.127,x
plx
.10 cmp #$40 Remap inverse UPPRECASE
bcc .1
cmp #$5F
bcs .1
and #$1F
.1 pha
SetCharAtY.SCR pha
tya
lsr
@@ -273,10 +249,41 @@ GetCharAtCurPos ldy #S.DCB.TTY.CV
lda (ZPBufBaseL1),y
sta CLRREADAUX
cmp #$20
bcs .8
* clc
adc #40 remap $00-$1F uppercase
.8 rts
*--------------------------------------
DRV.TERM.SETUP.L1X
ldy #S.FD.DEV.BUFPTR
lda (pFD),y
clc
adc BUF.BASEL,x
sta ZPBufBaseL1
iny
lda (pFD),y
adc BUF.BASEH,x
sta ZPBufBaseL1+1
bit bActive
bpl DRV.TERM.SETUP.L1X.8
DRV.TERM.SETUP.L1X.SCR
lda SCR.BASEL,x
sta ZPScrBaseL1
lda SCR.BASEH,x
sta ZPScrBaseL1+1
DRV.TERM.SETUP.L1X.8
rts
*--------------------------------------
REMAP.96.127 .HS 404142434445464748494a4b4c4d4e4f
.HS 505152535455565758595a5b5c5d5e5f
* ` a b c d e f g h i j k l m n o
REMAP.E0.FF .HS 5B4142434445464748495FA0DF544e4f
* p q r s t u v w x y z { | } ~ DEL
.HS 50DF5253545556575F595a5b5c5d5e5f
*--------------------------------------
BUF.BASEL .DA #0
.DA #80