Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-11-07 17:11:02 +01:00
parent bab7203c10
commit 563d695a1b
14 changed files with 247 additions and 100 deletions

Binary file not shown.

Binary file not shown.

View File

@ -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
*--------------------------------------

View File

@ -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"

View File

@ -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

View File

@ -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 |

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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
*--------------------------------------

View File

@ -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

View File

@ -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"

View File

@ -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 *