Kernel 0.93

This commit is contained in:
Rémy GIBERT 2019-07-12 16:51:57 +02:00
parent 39d45fa0bf
commit fd63f01d30
11 changed files with 137 additions and 178 deletions

Binary file not shown.

View File

@ -16,19 +16,11 @@ NEW
K.OpenDir jsr PFT.CheckPathYA
bcs K.ReadDir.RTS
>LDYAI S.FD.DIR
ldx #S.MEM.F.INIT0+S.MEM.F.FD
jsr MEM.GetMem.YAX
ldx #1
jsr IO.MkFD
bcs K.ReadDir.RTS
>STYA pFD
stx IO.hFD
lda #S.FD.T.DIR
sta (pFD)
ldy #1
lda K.Buf256,y One char ("/") ?
lda K.Buf256+1 One char ("/") ?
beq .8 No, Go open dir....
>MLICALL MLIGETFILEINFO

View File

@ -463,7 +463,7 @@ ENV.ExpandSysVar
bne .4
lda ENV.VarName
jsr MEM.IsDigit $0...$9 ??
jsr IsDigit $0...$9 ??
bcs .1
and #$0F

View File

@ -113,18 +113,10 @@ IO.OPEN.REG >MLICALL MLIGETFILEINFO
jsr IO.MLI.CREATE
bcs IO.OPEN.RTS
IO.OPEN.REG.E >LDYAI S.FD.REG
ldx #S.MEM.F.INIT0+S.MEM.F.FD
jsr MEM.GetMem.YAX
IO.OPEN.REG.E ldx #0
jsr IO.MkFD
bcs IO.OPEN.RTS
>STYA pFD
stx IO.hFD
* ldy #S.FD.T Done by GetMem0
* lda #S.FD.T.REG
* sta (pFD),y
jsr IO.MLIOPEN
bcs IO.OPEN.ERR
@ -833,6 +825,31 @@ IO.EOF.FALSE lda #0
* clc
rts
*--------------------------------------
* X = 0 > REG
* X = 1 > DIR
* X = 2 > PIPE
*--------------------------------------
IO.MkFD stx .8+1
ldy IO.MkFD.Y,x
lda #0
ldx #S.MEM.F.INIT0+S.MEM.F.FD
jsr MEM.GetMem.YAX
bcs .9
>STYA pFD
stx IO.hFD
.8 ldx #$ff SELF MODIFIED
lda IO.MkFD.T,x
sta (pFD) X = hFD, A = T
* clc
.9 rts
IO.MkFD.Y .DA #S.FD.REG,#S.FD.DIR,#S.FD.PIPE
IO.MkFD.T .DA #S.FD.T.REG,#S.FD.T.DIR,#S.FD.T.PIPE
*--------------------------------------
IO.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF
ldx #S.MEM.F.ALIGN+S.MEM.F.NOMOVE
jsr MEM.GetMem.YAX

View File

@ -577,7 +577,7 @@ MATH.Dec2ACC32 jsr MATH.ACC32ZERO
lda (ZPPtr2),y
beq .8
jsr MEM.IsDigit
jsr IsDigit
bcs .8
phy Save Y, pointing to next char

View File

@ -640,19 +640,15 @@ MEM.IsDigitOrUC cmp #'Z'+1
cmp #'A'
bcs MEM.IsDigit.8
MEM.IsDigit cmp #'9'+1
bcs MEM.IsDigit.RTS
cmp #'0'
bcs MEM.IsDigit.8
jmp IsDigit
MEM.IsDigit.9 sec
MEM.IsDigit.RTS rts
rts
MEM.IsDigit.8 clc
rts
MEM.IsDigit.RTS rts
*--------------------------------------
MEM.IsHexDigit jsr MEM.IsDigit
MEM.IsHexDigit jsr IsDigit
bcc .8
cmp #'A'

View File

@ -310,9 +310,6 @@ K.MKFIFO >STYA ZPPtr1 pathname buffer
jsr K.pipe
bcs STAT.Access2Mode.RTS
sta K.S.STAT+S.STAT.DEV hFD
pha
ldy #0
.1 lda STAT.FIFO,y
@ -321,7 +318,7 @@ K.MKFIFO >STYA ZPPtr1 pathname buffer
cpy #9
bne .1
pla
lda IO.hFD
jsr MATH.AToHexAX
sta (ZPPtr1),y
@ -352,7 +349,7 @@ K.MKFIFO >STYA ZPPtr1 pathname buffer
K.MkNod >STYA ZPPtr1 pathname
>PULLW K.S.STAT+S.STAT.MODE
>PULLB K.S.STAT+S.STAT.DEV
>PULLB IO.hFD
K.MkNod.I ldx #2
@ -377,7 +374,7 @@ K.MkNod.I ldx #2
.3 ldx #$ff SELF MODIFIED
sta Nod.Table.hPath-2,x
lda K.S.STAT+S.STAT.DEV
lda IO.hFD
sta Nod.Table.hFD-2,x
txa hNODE
@ -407,17 +404,10 @@ K.Pipe sta .1+1 SIZE HI
stx .8+1 save PIPE buffer
>LDYAI S.FD.PIPE
ldx #S.MEM.F.INIT0+S.MEM.F.FD
jsr MEM.GetMem.YAX
ldx #2
jsr IO.MkFD
bcs .9
>STYA pFD
lda #S.FD.T.PIPE
sta (pFD)
.1 lda #$ff SELF MODIFIED
ldy #S.FD.PIPE.Free+1
sta (pFD),y

View File

@ -310,7 +310,7 @@ K.PrintF.1 stz PrintF.Cnt
sta K.PrintF.PadC no, this is the first 0, so make it K.PrintF.PadC
bra .2
.4 jsr MEM.IsDigit
.4 jsr IsDigit
bcs .7 no TBL1, no digit....abort
.5 and #$0F we have a digit

View File

@ -20,9 +20,7 @@ ZPTmpChar .BS 1
*--------------------------------------
bActive .BS 1
CsiHeader .BS 1
bCsiInNum .BS 1
CsiParamCnt .BS 1
CsiParams .BS 4
.ED
*--------------------------------------
@ -509,7 +507,7 @@ DRV.TERM.CSI ldy #S.DCB.TTY.INBUFFER
cpy #S.DCB.TTY.INBUFFER.MAX-1 buffer full?
bne .8
jmp RESET.MODE
jsr RESET.MODE
.8 clc
rts
@ -517,93 +515,58 @@ DRV.TERM.CSI ldy #S.DCB.TTY.INBUFFER
DRV.TERM.CSI.Exec
stz CsiHeader
stz CsiParamCnt
stz bCsiInNum
ldy #S.DCB.TTY.INBUFFER+1 EscSeq Ptr
lda (ZPDCBPtr),y
dey
lda #S.DCB.TTY.INBUFFER+1 EscSeq Ptr
clc
adc ZPDCBPtr
sta ZPPtr2
lda /S.DCB.TTY.INBUFFER+1
adc ZPDCBPtr+1
sta ZPPtr2+1
lda (ZPPtr2)
cmp #'?'
bne .10
bne .2
sta CsiHeader
iny
.1 jsr MEM.NextCharPtr2
.10 stz ZPTmpWord
stz ZPTmpWord+1
.2 jsr MATH.Dec2ACC32
bcs .5
.1 iny
lda (ZPDCBPtr),y
jsr MEM.AddYToPtr2
cmp #'0'
bcc .2
cmp #'9'+1
bcs .2
dec bCsiInNum
and #$0F
pha
lda ZPTmpWord
ldx ZPTmpWord+1
asl ZPTmpWord param=param*10
rol ZPTmpWord+1
asl ZPTmpWord
rol ZPTmpWord+1
clc
adc ZPTmpWord
sta ZPTmpWord
txa
adc ZPTmpWord+1
sta ZPTmpWord+1
asl ZPTmpWord
rol ZPTmpWord+1
pla
clc
adc ZPTmpWord
sta ZPTmpWord
bcc .1
inc ZPTmpWord+1
bra .1
.2 bit bCsiInNum
bpl .3
stz bCsiInNum
lda #255
ldx ZPTmpWord+1
bne .21
ldx ACC32+1
bne .3
lda ZPTmpWord
.21 ldx CsiParamCnt
lda ACC32
.3 ldx CsiParamCnt
sta CsiParams,x
inc CsiParamCnt
.3 lda (ZPDCBPtr),y
lda (ZPPtr2)
cmp #';'
beq .10
beq .1
pha
.5 jsr RESET.MODE
jsr RESET.MODE
pla
lda (ZPPtr2)
ldx #CsiCodes.Cnt-1
.4 cmp CsiCodes,x
beq .5
.6 cmp CsiCodes,x
beq .7
dex
bne .4
bne .6
clc
rts
.5 txa
.7 txa
asl
tax
jmp (.8,x)
@ -962,15 +925,14 @@ COUT.IAC.EXIT
RESET.MODE lda #0
ldy #S.DCB.TTY.MODE
sta (ZPDCBPtr),y
clc
rts
*--------------------------------------
RESET ldy #1
RESET ldy #S.DCB.TTY.MODE
.1 iny
lda RESET.VALUES-2,y
.1 lda RESET.VALUES-S.DCB.TTY.MODE,y
sta (ZPDCBPtr),y
cpy #S.DCB.TTY.INBUFFER
iny
cpy #S.DCB.TTY.INBUFFER+1
bne .1
jmp DRV.TERM.CLRSCR
@ -1298,6 +1260,61 @@ 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
*--------------------------------------
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.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
*--------------------------------------
KeyRemapped .HS 080A0B15 Left,Down,Up,Right
KeyRemapped.Cnt .EQ *-KeyRemapped
KeyRemapped.Tbl .HS 44424143 esc[D,esc[B,esc[A,esc[C
*--------------------------------------
WILLDO .DA #TELOPT.BINARY,#TELOPT.SGA
WILLDO.CNT .EQ *-WILLDO
WILLDONT .DA #TELOPT.TSPEED,#TELOPT.LINEMODE,#TELOPT.STATUS
WILLDONT.CNT .EQ *-WILLDONT
DOWILL .DA #TELOPT.BINARY,#TELOPT.SGA,#TELOPT.TTYPE,#TELOPT.NAWS
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
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
.DA 80
.DA 24
.DA #IAC,#SE
SB.IS.NAWS.LEN .EQ *-SB.IS.NAWS
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.TERM
LOAD USR/SRC/SYS/KERNEL.S

View File

@ -267,33 +267,7 @@ GetCharAtCurPos ldy #S.DCB.TTY.CV
.9 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
*--------------------------------------
* ` 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
* TEMP
*--------------------------------------
RESET.VALUES .DA #0 S.DCB.TTY.MODE
.DA #0 S.DCB.TTY.CH
@ -317,38 +291,6 @@ RESET.VALUES .DA #0 S.DCB.TTY.MODE
.DA #S.DCB.TTY.OUTBUFFER S.DCB.TTY.OUTHEAD
.DA #S.DCB.TTY.INBUFFER S.DCB.TTY.INBUFFER
*--------------------------------------
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.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
*--------------------------------------
KeyRemapped .HS 080A0B15 Left,Down,Up,Right
KeyRemapped.Cnt .EQ *-KeyRemapped
KeyRemapped.Tbl .HS 44424143 esc[D,esc[B,esc[A,esc[C
*--------------------------------------
WILLDO .DA #TELOPT.BINARY,#TELOPT.SGA
WILLDO.CNT .EQ *-WILLDO
WILLDONT .DA #TELOPT.TSPEED,#TELOPT.LINEMODE,#TELOPT.STATUS
WILLDONT.CNT .EQ *-WILLDONT
DOWILL .DA #TELOPT.BINARY,#TELOPT.SGA,#TELOPT.TTYPE,#TELOPT.NAWS
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
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
.DA 80
.DA 24
.DA #IAC,#SE
SB.IS.NAWS.LEN .EQ *-SB.IS.NAWS
*--------------------------------------
DRV.TERM.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
.DA #0,#0,#0
>PSTR "A2osX VT100 TERM"
@ -356,6 +298,11 @@ DRV.TERM.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
.DA #0
.DA K.VER
*--------------------------------------
* ` 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
.DA #160

View File

@ -47,6 +47,7 @@ A2osX.D1 .PH $D000
.INB USR/SRC/SYS/KERNEL.S.STDLIB
.INB USR/SRC/SYS/KERNEL.S.DEV
.INB USR/SRC/SYS/KERNEL.S.FIO
.INB USR/SRC/SYS/KERNEL.S.PFT
.EP
A2osX.D2 .PH $D000
.DA #RRAMWRAMBNK2
@ -64,7 +65,6 @@ A2osX.E0 .PH $E000
.INB USR/SRC/SYS/KERNEL.S.MATH
.INB USR/SRC/SYS/KERNEL.S.TERMLC
********* TMP ***** go to A2osX.D1
.INB USR/SRC/SYS/KERNEL.S.PFT
.INB USR/SRC/SYS/KERNEL.S.IO
********* TMP ***** go to A2osX.D2
.INB USR/SRC/SYS/KERNEL.S.PWD