mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-21 05:24:15 +00:00
Kernel 0.93
This commit is contained in:
parent
39d45fa0bf
commit
fd63f01d30
Binary file not shown.
@ -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
|
||||
|
@ -463,7 +463,7 @@ ENV.ExpandSysVar
|
||||
bne .4
|
||||
|
||||
lda ENV.VarName
|
||||
jsr MEM.IsDigit $0...$9 ??
|
||||
jsr IsDigit $0...$9 ??
|
||||
bcs .1
|
||||
|
||||
and #$0F
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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'
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
.10 stz ZPTmpWord
|
||||
stz ZPTmpWord+1
|
||||
.1 jsr MEM.NextCharPtr2
|
||||
|
||||
.1 iny
|
||||
lda (ZPDCBPtr),y
|
||||
.2 jsr MATH.Dec2ACC32
|
||||
bcs .5
|
||||
|
||||
cmp #'0'
|
||||
bcc .2
|
||||
cmp #'9'+1
|
||||
bcs .2
|
||||
jsr MEM.AddYToPtr2
|
||||
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user