mirror of
https://github.com/A2osX/A2osX.git
synced 2025-03-20 13:32:23 +00:00
Kernel 0.92+
This commit is contained in:
parent
b27bf6eb51
commit
8aabef1410
Binary file not shown.
@ -103,7 +103,9 @@ CS.RUN lda #1
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.DUMP lda PS.Table.hPS,x
|
||||
CS.RUN.DUMP phx
|
||||
|
||||
lda PS.Table.hPS,x
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPPSPtr
|
||||
|
||||
@ -119,8 +121,7 @@ CS.RUN.DUMP lda PS.Table.hPS,x
|
||||
|
||||
>PUSHEA.G PS.FLAGS
|
||||
|
||||
>LDA.G PS.Index
|
||||
tax
|
||||
plx
|
||||
lda PS.Table.Stats,x
|
||||
|
||||
>PUSHA CPU%
|
||||
|
@ -87,7 +87,7 @@ CMD.CD.1
|
||||
bcs CMD.POPD.RTS
|
||||
|
||||
>STYA ZPPtr1
|
||||
stx ZPPtr3 Save hMem
|
||||
stx TmpByte Save hMem
|
||||
|
||||
ldy #1
|
||||
lda (ZPPtr1),y
|
||||
@ -109,7 +109,7 @@ CMD.CD.1
|
||||
lda #MLI.E.INVPATH
|
||||
|
||||
.19 pha
|
||||
lda ZPPtr3
|
||||
lda TmpByte
|
||||
>SYSCALL freemem
|
||||
pla
|
||||
sec
|
||||
@ -126,7 +126,7 @@ CMD.CD.1
|
||||
cmp #'/'
|
||||
bne .14
|
||||
|
||||
lda ZPPtr3
|
||||
lda TmpByte
|
||||
jmp CMD.SetPrefixA already ends with a /
|
||||
|
||||
.14 iny
|
||||
@ -149,7 +149,7 @@ CMD.CD.1
|
||||
lda #'/'
|
||||
sta (ZPPtr2),y
|
||||
phx
|
||||
lda ZPPtr3
|
||||
lda TmpByte
|
||||
>SYSCALL freemem
|
||||
pla
|
||||
*--------------------------------------
|
||||
@ -261,6 +261,9 @@ CMD.SET.1
|
||||
jsr CORE.ArgV.Next
|
||||
beq CMD.SET.UNSET
|
||||
|
||||
cmp #'`'
|
||||
beq CMD.SET.EXEC
|
||||
|
||||
jsr EXP.GET
|
||||
bcs .99
|
||||
|
||||
@ -293,6 +296,24 @@ CMD.SET.PRINT >PUSHBI 4
|
||||
>SYSCALL printf
|
||||
rts
|
||||
*--------------------------------------
|
||||
CMD.SET.EXEC jsr CORE.ArgV.NextChar skip "`"
|
||||
|
||||
jsr IO.Pipe.Out
|
||||
bcs .9
|
||||
|
||||
>PUSHBI S.PS.F.DUPENV
|
||||
>LDYA ZPArgVBufPtr
|
||||
>SYSCALL execl
|
||||
bcs .9
|
||||
|
||||
jsr IO.Pipe.In
|
||||
bcs .9
|
||||
|
||||
lda #$ff
|
||||
>STA.G bReadMode
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CMD.DATE sec
|
||||
.HS 90 bcc
|
||||
CMD.TIME clc
|
||||
@ -316,7 +337,7 @@ CMD.TIME clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CMD.ECHO stz ZPPtr1 echo -N
|
||||
stz ZPPtr1+1
|
||||
stz ZPPtr1+1 Token Cnt
|
||||
|
||||
lda (ZPArgVBufPtr)
|
||||
beq .8
|
||||
@ -412,15 +433,17 @@ CMD.READ lda (ZPArgVBufPtr)
|
||||
bra .7
|
||||
|
||||
.4 >STYA ZPVarNamePtr
|
||||
>SYSCALL strdup
|
||||
txa
|
||||
>STA.G hVarName
|
||||
|
||||
>LDA.G bReadMode
|
||||
bne .9
|
||||
lda #$ff
|
||||
>STA.G bReadMode
|
||||
|
||||
.7 jsr CORE.ArgV.Next
|
||||
lda (ZPArgVBufPtr)
|
||||
bne .1
|
||||
|
||||
>LDA.G hVarName
|
||||
>LDA.G bReadMode
|
||||
beq .9
|
||||
clc
|
||||
.99 rts
|
||||
|
@ -171,15 +171,16 @@ CORE.ExecCmd.1 lda #0
|
||||
>LDA.G CORE.IntCmd
|
||||
bmi CORE.ExecExtCmd
|
||||
tax
|
||||
|
||||
jmp (J.CMD,x)
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
CORE.ExecExtCmd >PUSHB.G CORE.PSFlags
|
||||
>LDYA ZPArgVBuf
|
||||
>LDYA ZPArgVBuf
|
||||
>SYSCALL execv
|
||||
|
||||
CORE.ExecExtCmd.Exit
|
||||
bcs .9
|
||||
|
||||
tax CPID
|
||||
@ -275,33 +276,35 @@ CORE.Lookup >STYA ZPPtr2
|
||||
CORE.ArgV.Add >LDYA ZPArgVBufPtr
|
||||
>STYA ZPArgVBufPrev Save String start of Expand
|
||||
|
||||
lda #C.SPACE
|
||||
sta TmpByte
|
||||
|
||||
jsr CORE.GetCharNB
|
||||
bcs .9
|
||||
|
||||
ldx #0 reset "" mode
|
||||
|
||||
.1 cmp #'"'
|
||||
bne .2
|
||||
|
||||
txa
|
||||
eor #$ff toggle "" mode
|
||||
tax
|
||||
bra .4
|
||||
cmp #'"'
|
||||
bne .10
|
||||
sta TmpByte
|
||||
bra .1
|
||||
|
||||
.2 cmp #C.SPACE
|
||||
bne .3
|
||||
txa between "" ?
|
||||
beq .5 no...exit
|
||||
lda #C.SPACE
|
||||
bra .31
|
||||
.10 cmp #'`'
|
||||
bne .11
|
||||
sta TmpByte
|
||||
|
||||
.3 jsr CORE.IsEndCmd
|
||||
.11 jsr CORE.ArgV.PutChar
|
||||
|
||||
.1 jsr CORE.GetNextChar
|
||||
bcs .5
|
||||
|
||||
.2 jsr CORE.IsEndCmd
|
||||
bcc .5
|
||||
cmp TmpByte
|
||||
beq .5
|
||||
|
||||
.31 jsr CORE.ArgV.PutChar
|
||||
jsr CORE.ArgV.PutChar
|
||||
|
||||
.4 jsr CORE.GetNextChar
|
||||
bcc .1
|
||||
bcc .2
|
||||
|
||||
.5 lda #0
|
||||
jsr CORE.ArgV.PutChar
|
||||
@ -317,11 +320,11 @@ CORE.ArgV.Add >LDYA ZPArgVBufPtr
|
||||
|
||||
ldy #$ff
|
||||
|
||||
.6 iny
|
||||
.7 iny
|
||||
lda (ZPPtr1),y
|
||||
jsr CORE.ArgV.PutChar
|
||||
lda (ZPPtr1),y
|
||||
bne .6
|
||||
bne .7
|
||||
|
||||
pla
|
||||
>SYSCALL freemem
|
||||
|
@ -8,15 +8,13 @@ IO.Reset jsr IO.Reset.In
|
||||
jsr IO.Reset.Err
|
||||
rts
|
||||
*--------------------------------------
|
||||
IO.Pipe.In clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
IO.Pipe.Out >SYSCALL pipe
|
||||
bcs .9
|
||||
IO.Pipe.In ldy #S.PS.hStdOut
|
||||
lda (pPS),y
|
||||
pha
|
||||
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
jsr IO.Reset.Out
|
||||
|
||||
pla
|
||||
*--------------------------------------
|
||||
IO.Set.In pha
|
||||
jsr IO.Reset.In
|
||||
@ -42,7 +40,31 @@ IO.Reset.In >LDA.G IO.hIn
|
||||
sta (pPS),y
|
||||
|
||||
>STZ.G IO.hIn
|
||||
.8 rts
|
||||
.8 clc
|
||||
IO.Reset.In.RTS rts
|
||||
*--------------------------------------
|
||||
IO.Pipe.Out >SYSCALL pipe
|
||||
bcs IO.Reset.In.RTS
|
||||
>STA.G IO.hPipe
|
||||
|
||||
>PUSHA
|
||||
>PUSHBI 1
|
||||
>PUSHW L.NOD.Template
|
||||
>LEA.G IO.NodBuf
|
||||
>SYSCALL sprintf
|
||||
|
||||
>PUSHB.G IO.hPipe
|
||||
>PUSHW 0
|
||||
>LEA.G IO.NodBuf
|
||||
>SYSCALL mknod
|
||||
bcc IO.Set.Out
|
||||
|
||||
pha
|
||||
>LDA.G IO.hPipe
|
||||
>SYSCALL close
|
||||
pla
|
||||
dec
|
||||
rts
|
||||
*--------------------------------------
|
||||
IO.Set.Out pha
|
||||
jsr IO.Reset.Out
|
||||
|
35
BIN/SH.S.txt
35
BIN/SH.S.txt
@ -57,9 +57,6 @@ E.BADFTYPE .EQ $C8
|
||||
.DUMMY
|
||||
.OR ZPBIN
|
||||
ZS.START
|
||||
ZPPtr1 .BS 2
|
||||
ZPPtr2 .BS 2
|
||||
ZPPtr3 .BS 2
|
||||
ZPCLBuf .BS 2
|
||||
ZPInputBuf .BS 2
|
||||
ZPInputBufPtr .BS 2
|
||||
@ -68,6 +65,9 @@ ZPArgVBuf .BS 2
|
||||
ZPArgVBufPrev .BS 2
|
||||
ZPArgVBufPtr .BS 2
|
||||
ZPVarNamePtr .BS 2
|
||||
ZPPtr1 .BS 2
|
||||
ZPPtr2 .BS 2
|
||||
TmpByte .BS 1
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
@ -166,6 +166,7 @@ L.HOME.PROFILE .DA HOME.PROFILE
|
||||
L.M32.Printf .DA M32.Printf
|
||||
L.ERR.Codes .DA ERR.Codes
|
||||
L.ERR.Messages .DA ERR.Messages
|
||||
L.NOD.Template .DA NOD.Template
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT clc
|
||||
@ -221,7 +222,7 @@ CS.RUN jsr CL.Init
|
||||
>SYSCALL execl
|
||||
>SLEEP
|
||||
*--------------------------------------
|
||||
CS.RUN.LOOP jsr IO.Reset
|
||||
CS.RUN.LOOP
|
||||
|
||||
.1 jsr CheckSleep
|
||||
beq .3
|
||||
@ -270,7 +271,7 @@ CS.RUN.LOOP jsr IO.Reset
|
||||
.61 >STZ.G bPause
|
||||
bra .62
|
||||
|
||||
.6 >LDA.G hVarName read mode ?
|
||||
.6 >LDA.G bReadMode read mode ?
|
||||
bne .7
|
||||
|
||||
.62 >LDA.G bBatchMode batch mode ?
|
||||
@ -283,6 +284,7 @@ CS.RUN.LOOP jsr IO.Reset
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.INTERACTIVE
|
||||
jsr IO.Reset
|
||||
jsr CL.Reset
|
||||
jsr CL.PrintPrompt
|
||||
bcs .9
|
||||
@ -335,24 +337,19 @@ CS.RUN.READ jsr CL.RESET
|
||||
lda (ZPCLBuf)
|
||||
bne .2
|
||||
|
||||
>LDA.G hVarName
|
||||
>SYSCALL GetMemPtr
|
||||
>LDYA ZPVarNamePtr
|
||||
>SYSCALL UnSetEnv
|
||||
bra .7
|
||||
|
||||
.2 >PUSHW ZPCLBuf
|
||||
|
||||
>LDA.G hVarName
|
||||
>SYSCALL GetMemPtr
|
||||
>LDYA ZPVarNamePtr
|
||||
>SYSCALL SetEnv
|
||||
|
||||
.7 php
|
||||
pha
|
||||
|
||||
>LDA.G hVarName
|
||||
>SYSCALL freemem
|
||||
|
||||
>STZ.G hVarName
|
||||
>STZ.G bReadMode
|
||||
>STA.G bREAD.S
|
||||
|
||||
pla
|
||||
@ -360,7 +357,9 @@ CS.RUN.READ jsr CL.RESET
|
||||
|
||||
.8 jmp CS.RUN.LOOP.END
|
||||
*--------------------------------------
|
||||
CS.RUN.BATCH >SYSCALL GetChar
|
||||
CS.RUN.BATCH jsr IO.Reset
|
||||
|
||||
>SYSCALL GetChar
|
||||
bcs .2
|
||||
|
||||
cmp #3 test Ctrl-c
|
||||
@ -618,6 +617,7 @@ EXP.OP.MATH .AZ "+"
|
||||
*--------------------------------------
|
||||
EscChars .AS 'DBAC'
|
||||
EscChars.Cnt .EQ *-EscChars
|
||||
NOD.Template .AZ "/DEV/PIPE%h"
|
||||
M32.Printf .AZ "%L"
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
@ -626,9 +626,9 @@ DS.START
|
||||
CORE.STACK .BS CORE.STACK.MAX+1 pData (0 = Stack Ptr)
|
||||
PUSHD.STACK .BS PUSHD.STACK.MAX+1
|
||||
|
||||
hInputBuf .BS 1 batch mode
|
||||
hVarName .BS 1 read mode
|
||||
hInputBuf .BS 1
|
||||
|
||||
bReadMode .BS 1
|
||||
bBatchMode .BS 1
|
||||
|
||||
bEscMode .BS 1
|
||||
@ -664,6 +664,9 @@ HIS.Index .BS 1
|
||||
IO.hIn .BS 1
|
||||
IO.hOut .BS 1
|
||||
IO.hErr .BS 1
|
||||
IO.hPipe .BS 1
|
||||
IO.NodBuf
|
||||
* .BS 12 /DEV/PIPExx\0
|
||||
*--------------------------------------
|
||||
M32.BUF .BS 12 -1234567890\0
|
||||
M32.ACC .BS 4
|
||||
|
@ -361,62 +361,87 @@ IO.READ.SSOCK ldy #S.FD.SSOCK.READ
|
||||
|
||||
.1 jmp $FFFF SELF MODIFIED
|
||||
*--------------------------------------
|
||||
IO.READ.PIPE >PULLW K.S.IOCTL+S.IOCTL.BUFPTR
|
||||
IO.READ.PIPE >PULLW .3+1 S.IOCTL.BUFPTR
|
||||
>PULLW K.S.IOCTL+S.IOCTL.BYTECNT
|
||||
|
||||
ldy #S.FD.PIPE.S
|
||||
lda (pFD),y
|
||||
bit #S.FD.PIPE.S.WOpened
|
||||
beq .9 Remote PS did not opened yet the pipe
|
||||
bit #S.FD.PIPE.S.WClosed
|
||||
beq .99 Remote PS closed the Pipe
|
||||
* ldy #S.FD.PIPE.S
|
||||
* lda (pFD),y
|
||||
* bit #S.FD.PIPE.S.WOpened
|
||||
* beq .9 Remote PS did not opened yet the pipe
|
||||
* bit #S.FD.PIPE.S.WClosed
|
||||
* beq .99 Remote PS closed the Pipe
|
||||
|
||||
ldy #S.FD.PIPE.hMem
|
||||
lda (pFD),y
|
||||
jsr K.GetMemPtr
|
||||
>STYA .2+1
|
||||
|
||||
ldx #0
|
||||
|
||||
.1 ldy #S.FD.PIPE.Tail
|
||||
lda (pFD),y
|
||||
|
||||
iny #S.FD.PIPE.Head
|
||||
cmp (pFD),y
|
||||
beq .9 PIPE is empty
|
||||
|
||||
.2 lda $ffff,x SELF MODIFIED
|
||||
.3 sta $ffff,x SELF MODIFIED
|
||||
inx
|
||||
bne .1
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 lda #MLI.E.VOLFULL
|
||||
.9 lda #0
|
||||
sec
|
||||
rts
|
||||
|
||||
.99 lda #MLI.E.EOF
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
IO.WRITE.PIPE >PULLW K.S.IOCTL+S.IOCTL.BUFPTR
|
||||
IO.WRITE.PIPE >PULLW .2+1 S.IOCTL.BUFPTR
|
||||
>PULLW K.S.IOCTL+S.IOCTL.BYTECNT
|
||||
|
||||
ldy #S.FD.PIPE.S
|
||||
lda (pFD),y
|
||||
bit #S.FD.PIPE.S.ROpened
|
||||
beq .9 Remote PS did not opened yet the pipe
|
||||
bit #S.FD.PIPE.S.RClosed
|
||||
beq .99 Remote PS closed the Pipe
|
||||
* ldy #S.FD.PIPE.S
|
||||
* lda (pFD),y
|
||||
* bit #S.FD.PIPE.S.ROpened
|
||||
* beq .9 Remote PS did not opened yet the pipe
|
||||
* bit #S.FD.PIPE.S.RClosed
|
||||
* beq .99 Remote PS closed the Pipe
|
||||
|
||||
ldy #S.FD.PIPE.hMem
|
||||
lda (pFD),y
|
||||
jsr K.GetMemPtr
|
||||
>STYA .1+2
|
||||
>STYA .3+1
|
||||
|
||||
ldy #S.FD.PIPE.Head
|
||||
ldx #0
|
||||
|
||||
.1 ldy #S.FD.PIPE.Head
|
||||
lda (pFD),y
|
||||
inc
|
||||
dey #S.FD.PIPE.Tail
|
||||
cmp (pFD),y
|
||||
beq .9 PIPE is full
|
||||
|
||||
iny
|
||||
sta (pFD),y
|
||||
tay
|
||||
lda K.IOBuf
|
||||
.1 sta $ffff,y
|
||||
clc
|
||||
|
||||
.2 lda $ffff,x SELF MODIFIED
|
||||
.3 sta $ffff,x SELF MODIFIED
|
||||
|
||||
inx
|
||||
bne .1
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 lda #MLI.E.VOLFULL
|
||||
sec
|
||||
rts
|
||||
|
||||
.99 lda #MLI.E.EOF
|
||||
sec
|
||||
rts
|
||||
|
@ -210,7 +210,7 @@ K.MkNod >STYA ZPPtr1 pathname
|
||||
>PULLW K.S.STAT+S.STAT.MODE
|
||||
>PULLB K.S.STAT+S.STAT.DEV
|
||||
|
||||
ldx #0
|
||||
K.MkNod.I ldx #0
|
||||
|
||||
.1 lda Nod.Table.hFD,x
|
||||
beq .2
|
||||
@ -243,17 +243,33 @@ K.MkNod >STYA ZPPtr1 pathname
|
||||
* # MKFIFO
|
||||
* return a hFILE to a new FIFO
|
||||
* ## C
|
||||
* `hFILE mkfifo(const char *pathname, int mode);`
|
||||
* `hFILE mkfifo();`
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* `>PUSHW mode`
|
||||
* `>LDYA pathname`
|
||||
* `>SYSCALL mkfifo`
|
||||
* ## RETURN VALUE
|
||||
* CC = OK, CS = ERROR
|
||||
* A = hFILE
|
||||
*\--------------------------------------
|
||||
K.MKFIFO sec
|
||||
K.MKFIFO
|
||||
* jsr K.pipe
|
||||
* bcs .9
|
||||
|
||||
* sta K.S.STAT+S.STAT.DEV
|
||||
* stz K.S.STAT+S.STAT.MODE
|
||||
* stz K.S.STAT+S.STAT.MODE+1
|
||||
|
||||
* >LDYA STAT.PipeFn
|
||||
* >STYA ZPPtr1
|
||||
* jsr K.MkNod.I
|
||||
* bcc .9
|
||||
|
||||
* pha
|
||||
* lda K.S.STAT+S.STAT.DEV
|
||||
* jsr K.Close
|
||||
* pla
|
||||
sec
|
||||
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # pipe
|
||||
@ -287,7 +303,7 @@ K.Pipe >LDYAI K.PIPE.SIZE
|
||||
.1 lda #$ff Self Modified
|
||||
sta (pFD),y
|
||||
txa
|
||||
clc
|
||||
* clc
|
||||
rts
|
||||
|
||||
.9 pha save error code
|
||||
@ -298,6 +314,8 @@ K.Pipe >LDYAI K.PIPE.SIZE
|
||||
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
*STAT.PipeFn .AZ "/DEV/PIPE00"
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/SYS/KERNEL.S.STAT
|
||||
LOAD USR/SRC/SYS/KERNEL.S
|
||||
|
Loading…
x
Reference in New Issue
Block a user