mirror of
https://github.com/A2osX/A2osX.git
synced 2025-01-11 10:29:46 +00:00
Kernel 0.9.2
This commit is contained in:
parent
bab7203c10
commit
563d695a1b
Binary file not shown.
Binary file not shown.
@ -245,10 +245,7 @@ CS.RUN.PRINTNUM clc
|
||||
>SYSCALL printf
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.OPEN >SYSCALL RealPath
|
||||
bcs .9
|
||||
stx hFullPath
|
||||
pha
|
||||
CS.RUN.OPEN pha
|
||||
|
||||
>PUSHWI 0 Aux type
|
||||
>PUSHBI S.FI.T.TXT
|
||||
@ -257,10 +254,8 @@ CS.RUN.OPEN >SYSCALL RealPath
|
||||
pla
|
||||
|
||||
>SYSCALL FOpen
|
||||
bcs .99
|
||||
bcs .9
|
||||
|
||||
jsr .99
|
||||
|
||||
pha
|
||||
|
||||
lda #0
|
||||
@ -268,14 +263,7 @@ CS.RUN.OPEN >SYSCALL RealPath
|
||||
|
||||
pla
|
||||
clc
|
||||
rts
|
||||
|
||||
.99 pha
|
||||
lda hFullPath
|
||||
>SYSCALL FreeMem
|
||||
pla
|
||||
.9 sec
|
||||
rts
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.QUIT >LDA.G hBuf
|
||||
beq CS.RUN.CLOSE
|
||||
@ -339,7 +327,6 @@ ASCII >PSTR "NULL"
|
||||
>PSTR "RS"
|
||||
>PSTR "US"
|
||||
*--------------------------------------
|
||||
hFullPath .BS 1
|
||||
BytesRead .BS 1
|
||||
ByteIndex .BS 1
|
||||
*--------------------------------------
|
||||
|
@ -274,7 +274,7 @@ CS.QUIT clc
|
||||
CS.END
|
||||
MSG0 .AZ " # Flags PID REF PTR LEN BINPATH/DATA"
|
||||
MSG1.INV .AZ "\e[7m"
|
||||
MSG1 .AZ "%03d %s %03d %03d $%H %05D "
|
||||
MSG1 .AZ "%03d %s %03d %03d $%H %5D "
|
||||
MSG1.BIN .AZ "{%s}\e[0m\r\n"
|
||||
MSG1.STR .AZ "[%03d:%s]\e[0m\r\n"
|
||||
MSG1.HEX .AZ "?HEX:%h%h.%h%h.%h%h.%h%h.%h%h.%h%h.%h%h.%h%h\e[0m\r\n"
|
||||
|
@ -175,19 +175,13 @@ CS.RUN.LOOP >SLEEP
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.OPEN >SYSCALL RealPath
|
||||
bcs .9
|
||||
phy
|
||||
pha
|
||||
txa
|
||||
>STA.G hFullPath
|
||||
CS.RUN.OPEN pha
|
||||
|
||||
>PUSHWI 0 Aux type
|
||||
>PUSHBI S.FI.T.TXT
|
||||
>PUSHBI O.RDONLY+O.TEXT
|
||||
|
||||
pla
|
||||
ply
|
||||
>SYSCALL FOpen
|
||||
bcs .9
|
||||
>STA.G hFile
|
||||
@ -215,11 +209,7 @@ CS.QUIT >LDA.G hBuf
|
||||
|
||||
>SYSCALL FClose
|
||||
|
||||
.2 >LDA.G hFullPath
|
||||
beq .8
|
||||
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.2
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
@ -242,7 +232,6 @@ MSG.Pause .AZ "\e[7m --- More --- \e[0m\r"
|
||||
.OR 0
|
||||
DS.START
|
||||
ArgCount .BS 1
|
||||
hFullPath .BS 1
|
||||
hFile .BS 1
|
||||
LineCount .BS 1
|
||||
LineNum .BS 2
|
||||
|
15
README.md
15
README.md
@ -286,6 +286,21 @@ OApple+1,OApple+2,OApple+3 to switch between screens : Kernel Log, text, DHGR.
|
||||
|
||||
note : '$VAR' does NOT expand Variable
|
||||
|
||||
## Shell I/O control/redirection:
|
||||
|
||||
| Token | Status | Comment |
|
||||
| ---- | ------ | ------- |
|
||||
| . | Working | use same env |
|
||||
| & | Working | start proc |
|
||||
| \| | | pipe |
|
||||
| < | Working | StdIn redirection |
|
||||
| >> | Working | StdOut redirection |
|
||||
| > | Working | |
|
||||
| 1>> | Working | |
|
||||
| 1> | Working | |
|
||||
| 2>> | Working | StdErr redirection |
|
||||
| 2>> | Working | |
|
||||
|
||||
## DRV,Drivers:
|
||||
|
||||
| Name | Status | Comment | K.Ver |
|
||||
|
@ -657,46 +657,72 @@ CMD.CheckIO >LDYA L.CMD.IO
|
||||
jsr CMD.NextCmdBufToken skip this IO token
|
||||
|
||||
plx
|
||||
|
||||
jmp (J.CMD.IO,x)
|
||||
|
||||
.9 lda #0
|
||||
rts
|
||||
*--------------------------------------
|
||||
CMD.IO.AMP
|
||||
CMD.IO.AMP >LDA.G CMD.PSFlags
|
||||
and #$ff^S.PS.F.HOLD
|
||||
sta (pData),y
|
||||
clc
|
||||
rts
|
||||
|
||||
CMD.IO.PIPE
|
||||
clc
|
||||
rts
|
||||
CMD.IO.IN
|
||||
clc
|
||||
rts
|
||||
|
||||
CMD.IO.OUTA
|
||||
CMD.IO.1OUTA lda #O.WRONLY+O.APPEND+O.CREATE
|
||||
CMD.IO.OUT
|
||||
CMD.IO.1OUT lda #O.WRONLY+O.TRUNC+O.CREATE
|
||||
|
||||
lda (ZPCMDBuf)
|
||||
beq .99 no arg left....
|
||||
|
||||
>LDYA ZPCMDBuf
|
||||
>SYSCALL realpath
|
||||
CMD.IO.IN lda #O.RDONLY+O.TEXT
|
||||
jsr CMD.IO.Open
|
||||
bcs .9
|
||||
|
||||
jsr IO.Set.In
|
||||
|
||||
jsr CMD.NextCmdBufToken skip arg
|
||||
clc
|
||||
rts
|
||||
.9 rts
|
||||
|
||||
.99 lda #E.SYN
|
||||
sec
|
||||
CMD.IO.OUTA
|
||||
CMD.IO.1OUTA lda #O.WRONLY+O.APPEND+O.CREATE+O.TEXT
|
||||
bra CMD.IO.OUT.1
|
||||
CMD.IO.OUT
|
||||
CMD.IO.1OUT lda #O.WRONLY+O.TRUNC+O.CREATE+O.TEXT
|
||||
|
||||
CMD.IO.OUT.1 jsr CMD.IO.Open
|
||||
bcs .9
|
||||
jsr IO.Set.Out
|
||||
|
||||
jsr CMD.NextCmdBufToken skip arg
|
||||
clc
|
||||
.9 rts
|
||||
|
||||
CMD.IO.2OUTA lda #O.WRONLY+O.APPEND+O.CREATE
|
||||
CMD.IO.2OUT lda #O.WRONLY+O.TRUNC+O.CREATE
|
||||
CMD.IO.2OUTA lda #O.WRONLY+O.APPEND+O.CREATE+O.TEXT
|
||||
bra CMD.IO.2OUT.1
|
||||
CMD.IO.2OUT lda #O.WRONLY+O.TRUNC+O.CREATE+O.TEXT
|
||||
|
||||
CMD.IO.2OUT.1 jsr CMD.IO.Open
|
||||
bcs .9
|
||||
jsr IO.Set.Err
|
||||
|
||||
jsr CMD.NextCmdBufToken skip arg
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CMD.IO.Open pha
|
||||
lda (ZPCMDBuf)
|
||||
beq .9 no arg left....
|
||||
|
||||
>PUSHWI 0 Aux type
|
||||
>PUSHBI S.FI.T.TXT ftype
|
||||
pla
|
||||
>PUSHA flags
|
||||
>LDYA ZPCMDBuf
|
||||
>SYSCALL fopen
|
||||
rts
|
||||
|
||||
.9 pla
|
||||
lda #E.SYN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CMD.NextCmdBufToken
|
||||
lda (ZPCMDBuf)
|
||||
|
@ -3,6 +3,89 @@ PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
IO.Reset jsr IO.Reset.In
|
||||
jsr IO.Reset.Out
|
||||
jsr IO.Reset.Err
|
||||
rts
|
||||
*--------------------------------------
|
||||
IO.Set.In pha
|
||||
jsr IO.Reset.In
|
||||
ldy #S.PS.hStdIn
|
||||
lda (pPS),y
|
||||
>STA.G IO.hIn
|
||||
pla
|
||||
ldy #S.PS.hStdIn
|
||||
sta (pPS),y
|
||||
rts
|
||||
*--------------------------------------
|
||||
IO.Reset.In >LDA.G IO.hIn
|
||||
beq .8
|
||||
|
||||
pha
|
||||
|
||||
ldy #S.PS.hStdIn
|
||||
lda (pPS),y
|
||||
>SYSCALL fclose
|
||||
|
||||
pla
|
||||
ldy #S.PS.hStdIn
|
||||
sta (pPS),y
|
||||
|
||||
>STZ.G IO.hIn
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
IO.Set.Out pha
|
||||
jsr IO.Reset.Out
|
||||
ldy #S.PS.hStdOut
|
||||
lda (pPS),y
|
||||
>STA.G IO.hOut
|
||||
pla
|
||||
ldy #S.PS.hStdOut
|
||||
sta (pPS),y
|
||||
rts
|
||||
*--------------------------------------
|
||||
IO.Reset.Out >LDA.G IO.hOut
|
||||
beq .8
|
||||
|
||||
pha
|
||||
|
||||
ldy #S.PS.hStdOut
|
||||
lda (pPS),y
|
||||
>SYSCALL fclose
|
||||
|
||||
pla
|
||||
ldy #S.PS.hStdOut
|
||||
sta (pPS),y
|
||||
|
||||
>STZ.G IO.hOut
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
IO.Set.Err pha
|
||||
jsr IO.Reset.Err
|
||||
ldy #S.PS.hStdErr
|
||||
lda (pPS),y
|
||||
>STA.G IO.hErr
|
||||
pla
|
||||
ldy #S.PS.hStdErr
|
||||
sta (pPS),y
|
||||
rts
|
||||
*--------------------------------------
|
||||
IO.Reset.Err >LDA.G IO.hErr
|
||||
beq .8
|
||||
|
||||
pha
|
||||
|
||||
ldy #S.PS.hStdErr
|
||||
lda (pPS),y
|
||||
>SYSCALL fclose
|
||||
|
||||
pla
|
||||
ldy #S.PS.hStdErr
|
||||
sta (pPS),y
|
||||
|
||||
>STZ.G IO.hErr
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
IO.PrintErrMsg pha Save EC for PrintF
|
||||
|
||||
ldx L.ERR.Codes
|
||||
|
@ -185,6 +185,8 @@ CS.RUN >LDA.G bReadMode READ Command ?
|
||||
jmp CS.RUN.BATCH
|
||||
*--------------------------------------
|
||||
.10 jsr CL.RESET reset CmdBuf
|
||||
jsr IO.Reset
|
||||
|
||||
>STZ.G bSecureRead Clear password mode
|
||||
|
||||
jsr CL.PrintPrompt
|
||||
@ -237,6 +239,7 @@ CS.RUN >LDA.G bReadMode READ Command ?
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.READ jsr CL.RESET reset CmdBuf
|
||||
jsr IO.Reset
|
||||
|
||||
.1 >SLEEP
|
||||
>SYSCALL GetChar
|
||||
|
@ -102,19 +102,23 @@ IO.OPEN.REG >MLICALL MLIGETFILEINFO
|
||||
|
||||
lda #S.FI.A.FULL Yes, Create...
|
||||
sta K.MLI.PARAMS+3 Access
|
||||
lda K.Open.TYPE
|
||||
sta K.MLI.PARAMS+4 File type
|
||||
>LDYA K.Open.AUXTYPE
|
||||
>STYA K.MLI.PARAMS+5 Aux type
|
||||
|
||||
ldx #2
|
||||
|
||||
.1 lda K.Open.TYPE,x
|
||||
sta K.MLI.PARAMS+4,x File type,Aux type
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
lda #S.FI.ST.STD
|
||||
sta K.MLI.PARAMS+7
|
||||
|
||||
ldx #3
|
||||
|
||||
.1 lda DATELO,x
|
||||
.2 lda DATELO,x
|
||||
sta K.MLI.PARAMS+8,x
|
||||
dex
|
||||
bpl .1
|
||||
bpl .2
|
||||
|
||||
>MLICALL MLICREATE
|
||||
bcs IO.OPEN.RTS
|
||||
@ -173,13 +177,12 @@ K.IO.OPEN.REG.E >LDYAI S.FD.REG
|
||||
>MLICALL MLINEWLINE
|
||||
bcs .9
|
||||
|
||||
.8 lda #$ff
|
||||
.8 lda #$ff SELF MODIFIED
|
||||
rts
|
||||
|
||||
.9 pha
|
||||
.9 pha Save Error Code
|
||||
lda .8+1
|
||||
pha
|
||||
jsr IO.Close.I
|
||||
jsr K.Close
|
||||
pla
|
||||
sec
|
||||
rts
|
||||
@ -217,7 +220,7 @@ K.Close pha save hFD
|
||||
jsr K.GetMemPtr
|
||||
>STYA pFD
|
||||
|
||||
IO.Close.I lda (pFD) #S.FD.T
|
||||
lda (pFD) #S.FD.T
|
||||
tax
|
||||
pla
|
||||
jmp (.1,x)
|
||||
|
@ -19,7 +19,29 @@ K.FStat jsr PFT.CheckNodeA
|
||||
|
||||
lda Nod.Table.hPath,x
|
||||
jsr K.GetMemPtr
|
||||
bra K.Stat.I
|
||||
jsr K.Stat.I
|
||||
bcs K.Stat.9
|
||||
|
||||
jsr STDIO.GetHFileREG.I
|
||||
bcs K.Stat.BLK2SIZE
|
||||
|
||||
>MLICALL MLIGETEOF
|
||||
bcs K.Stat.BLK2SIZE
|
||||
|
||||
ldy #S.STAT.SIZE+3
|
||||
lda #0
|
||||
sta (ZPPtr1),y
|
||||
|
||||
ldx #2
|
||||
|
||||
.1 lda K.MLI.PARAMS+2,x
|
||||
dey
|
||||
sta (ZPPtr1),y
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
* clc
|
||||
rts
|
||||
|
||||
.9 >RET 2 discard statbuf
|
||||
*/--------------------------------------
|
||||
@ -35,6 +57,34 @@ K.FStat jsr PFT.CheckNodeA
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
K.Stat jsr PFT.CheckPathYA
|
||||
jsr K.Stat.I
|
||||
bcs K.Stat.9
|
||||
K.Stat.BLK2SIZE
|
||||
ldy #S.STAT.SIZE
|
||||
lda #0
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda K.MLI.PARAMS+S.FI.UBLKS
|
||||
asl
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda K.MLI.PARAMS+S.FI.UBLKS+1
|
||||
rol
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda #0
|
||||
rol
|
||||
sta (ZPPtr1),y
|
||||
|
||||
* clc
|
||||
K.Stat.9 rts
|
||||
|
||||
K.Stat.I jsr STDIO.SetMLIPathYA
|
||||
|
||||
>PULLW ZPPtr1
|
||||
@ -66,28 +116,6 @@ K.Stat.I jsr STDIO.SetMLIPathYA
|
||||
dex
|
||||
bne .3
|
||||
|
||||
ldy #S.STAT.SIZE
|
||||
lda #0
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda K.MLI.PARAMS+S.FI.UBLKS
|
||||
asl
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda K.MLI.PARAMS+S.FI.UBLKS+1
|
||||
rol
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda #0
|
||||
rol
|
||||
sta (ZPPtr1),y
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
|
@ -970,30 +970,32 @@ K.SScanF.Fwd tya Y=char count parsed
|
||||
* CC : A = hFILE
|
||||
* CS : A = EC
|
||||
*\--------------------------------------
|
||||
K.FOpen.PATH .BS 2
|
||||
*--------------------------------------
|
||||
K.FOpen jsr PFT.CheckPathYA
|
||||
K.FOpen jsr K.realpath.I
|
||||
bcc .1
|
||||
|
||||
>RET 4
|
||||
|
||||
.1 >LDYAI K.Buf256
|
||||
jsr PFT.CheckPathYA
|
||||
|
||||
>STYA K.FOpen.PATH
|
||||
pha
|
||||
>PULLB K.Open.FLAGS
|
||||
>PULLB K.Open.TYPE
|
||||
>PULLW K.Open.AUXTYPE
|
||||
|
||||
pla
|
||||
>LDYAI K.Buf256
|
||||
jsr IO.Open.I
|
||||
bcs K.FOpen.RTS
|
||||
|
||||
sta .1+1 save hFD
|
||||
sta .2+1 save hFD
|
||||
tax
|
||||
|
||||
>LDYA K.FOpen.PATH
|
||||
>LDYAI K.Buf256
|
||||
|
||||
jsr STDIO.NewHFileYAX
|
||||
bcc K.FOpen.RTS
|
||||
|
||||
pha save MLI error
|
||||
.1 lda #$ff SELF MODIFIED
|
||||
.2 lda #$ff SELF MODIFIED
|
||||
jsr K.Close
|
||||
pla get back MLI error
|
||||
sec
|
||||
@ -1308,15 +1310,16 @@ STDIO.NewHFileYAX
|
||||
*--------------------------------------
|
||||
STDIO.GetHFileREG
|
||||
jsr STDIO.GetHFile
|
||||
bcs .9
|
||||
|
||||
bcs STDIO.GetHFileREG.9
|
||||
STDIO.GetHFileREG.I
|
||||
lda (pFD) #S.FD.T
|
||||
bne STDIO.GetHFile.9
|
||||
|
||||
ldy #S.FD.REG.REF
|
||||
lda (pFD),y
|
||||
sta K.MLI.PARAMS+1
|
||||
.9 rts
|
||||
STDIO.GetHFileREG.9
|
||||
rts
|
||||
*--------------------------------------
|
||||
STDIO.GetHFile tay
|
||||
lda Nod.Table.hFD,y
|
||||
|
@ -292,7 +292,12 @@ STDLIB.32.Clear ldx #3
|
||||
* X = hMem of Full Path
|
||||
* CS : A = Error Code
|
||||
*\--------------------------------------
|
||||
K.realpath >STYA ZPPtr1
|
||||
K.realpath sec
|
||||
.HS 90 BCC
|
||||
K.realpath.I clc
|
||||
ror .89+1
|
||||
|
||||
>STYA ZPPtr1
|
||||
|
||||
ldx #$ff
|
||||
|
||||
@ -384,12 +389,17 @@ K.realpath >STYA ZPPtr1
|
||||
dex
|
||||
bra .5
|
||||
|
||||
.89 >LDYAI K.Buf256
|
||||
.89 lda #$ff SELF MODIFIED
|
||||
bpl .98
|
||||
>LDYAI K.Buf256
|
||||
jmp K.NewStr
|
||||
|
||||
.90 lda #E.SYN
|
||||
sec
|
||||
rts
|
||||
|
||||
.98 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
K.RealPath.RemoveAtX
|
||||
txa X = "/something"
|
||||
|
@ -53,8 +53,8 @@ A2osX.E0 .PH $E000
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.IRQ
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.MEM
|
||||
********* TMP ***** go to A2osX.D1
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.IO
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.FIO
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.IO
|
||||
DevMgr.FreeMem .EQ *
|
||||
.EP
|
||||
A2osX.E0.E .EQ *
|
||||
|
Loading…
x
Reference in New Issue
Block a user