mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-18 00:30:40 +00:00
Kernel 0.93+
This commit is contained in:
parent
b6155f20db
commit
55e11e5b0e
Binary file not shown.
@ -107,7 +107,7 @@ CS.QUIT clc
|
|||||||
CS.END
|
CS.END
|
||||||
MSG.USAGE .AS "Usage : KILL <signal> PID\r\n"
|
MSG.USAGE .AS "Usage : KILL <signal> PID\r\n"
|
||||||
.AS " -0 : No Signal\r\n"
|
.AS " -0 : No Signal\r\n"
|
||||||
.AZ " -1 : SIGQUIT\r\n"
|
.AS " -1 : SIGQUIT\r\n"
|
||||||
.AZ " -2 : SIGKILL\r\n"
|
.AZ " -2 : SIGKILL\r\n"
|
||||||
SSCANF.PID .AZ "%d"
|
SSCANF.PID .AZ "%d"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
105
BIN/SH.S.CMD.txt
105
BIN/SH.S.CMD.txt
@ -84,7 +84,7 @@ CMD.CD.YA >SYSCALL realpath
|
|||||||
bcs CMD.POPD.RTS
|
bcs CMD.POPD.RTS
|
||||||
|
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
stx M32.TMP Save hMem
|
stx ZPTmpW Save hMem
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
@ -96,7 +96,6 @@ CMD.CD.YA >SYSCALL realpath
|
|||||||
.12 >PUSHEA.G StatBuf
|
.12 >PUSHEA.G StatBuf
|
||||||
>LDYA ZPPtr1
|
>LDYA ZPPtr1
|
||||||
>SYSCALL STAT
|
>SYSCALL STAT
|
||||||
|
|
||||||
bcs .19
|
bcs .19
|
||||||
|
|
||||||
.10 >LDA.G StatBuf+S.STAT.P.TYPE
|
.10 >LDA.G StatBuf+S.STAT.P.TYPE
|
||||||
@ -106,7 +105,7 @@ CMD.CD.YA >SYSCALL realpath
|
|||||||
lda #MLI.E.INVPATH
|
lda #MLI.E.INVPATH
|
||||||
|
|
||||||
.19 pha
|
.19 pha
|
||||||
lda M32.TMP
|
lda ZPTmpW
|
||||||
>SYSCALL freemem
|
>SYSCALL freemem
|
||||||
pla
|
pla
|
||||||
sec
|
sec
|
||||||
@ -119,7 +118,7 @@ CMD.CD.YA >SYSCALL realpath
|
|||||||
cmp #'/'
|
cmp #'/'
|
||||||
bne .14
|
bne .14
|
||||||
|
|
||||||
lda M32.TMP
|
lda ZPTmpW
|
||||||
jmp CMD.SetPrefixA already ends with a /
|
jmp CMD.SetPrefixA already ends with a /
|
||||||
|
|
||||||
.14 iny
|
.14 iny
|
||||||
@ -129,19 +128,17 @@ CMD.CD.YA >SYSCALL realpath
|
|||||||
bcs .19
|
bcs .19
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
|
|
||||||
ldy #$ff
|
jsr StrCpyPtr1Ptr2
|
||||||
|
|
||||||
.2 iny
|
|
||||||
lda (ZPPtr2),y
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
iny
|
|
||||||
sta (ZPPtr2),y
|
|
||||||
dey
|
|
||||||
lda #'/'
|
lda #'/'
|
||||||
sta (ZPPtr2),y
|
sta (ZPPtr2),y
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda #0
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
|
||||||
phx
|
phx
|
||||||
lda M32.TMP
|
lda ZPTmpW
|
||||||
>SYSCALL freemem
|
>SYSCALL freemem
|
||||||
pla
|
pla
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -597,12 +594,12 @@ CMD.CALL >LDA.G hFuncList
|
|||||||
>SYSCALL SListLookup
|
>SYSCALL SListLookup
|
||||||
bcs CMD.CALL.UNDEF
|
bcs CMD.CALL.UNDEF
|
||||||
|
|
||||||
>STYA M32.TMP KeyID
|
>STYA ZPTmpW KeyID
|
||||||
|
|
||||||
>PUSHWZ From Start
|
>PUSHWZ From Start
|
||||||
>PUSHWI $ffff all
|
>PUSHWI $ffff all
|
||||||
>PUSHWZ Allocate..
|
>PUSHWZ Allocate..
|
||||||
>PUSHW M32.TMP KeyID
|
>PUSHW ZPTmpW KeyID
|
||||||
>LDA.G hFuncList
|
>LDA.G hFuncList
|
||||||
>SYSCALL SListGetData
|
>SYSCALL SListGetData
|
||||||
bcs CMD.CALL.RTS
|
bcs CMD.CALL.RTS
|
||||||
@ -756,7 +753,7 @@ CMD.EXIT.POPX lda (pData)
|
|||||||
CMD.EXIT.POP0 clc
|
CMD.EXIT.POP0 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.BREAK jsr CORE.StkGetCtx Get context in CORE.Test
|
CMD.BREAK jsr CORE.StkGetCtx Get context in CORE.TestResult
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
tax
|
tax
|
||||||
@ -794,7 +791,7 @@ CMD.SWITCH jsr CORE.StkGetCtx
|
|||||||
jsr CORE.StkPush Push EXP hVALUE
|
jsr CORE.StkPush Push EXP hVALUE
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDA.G CORE.Test
|
lda CORE.TestResult
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
ora #$80
|
ora #$80
|
||||||
@ -804,7 +801,7 @@ CMD.SWITCH jsr CORE.StkGetCtx
|
|||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.CASE jsr CORE.StkGetCtx Get context in CORE.Test
|
CMD.CASE jsr CORE.StkGetCtx Get context in CORE.TestResult
|
||||||
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
@ -841,13 +838,13 @@ CMD.CASE jsr CORE.StkGetCtx Get context in CORE.Test
|
|||||||
ror CS if !=
|
ror CS if !=
|
||||||
and #$80
|
and #$80
|
||||||
eor #$80
|
eor #$80
|
||||||
>ORA.G CORE.Test
|
ora CORE.TestResult
|
||||||
ora #C.CASE
|
ora #C.CASE
|
||||||
jmp CORE.StkPush
|
jmp CORE.StkPush
|
||||||
|
|
||||||
.9 jmp CMD.Exec.CSYN
|
.9 jmp CMD.Exec.CSYN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.DEFAULT jsr CORE.StkGetCtx Get context in CORE.Test
|
CMD.DEFAULT jsr CORE.StkGetCtx Get context in CORE.TestResult
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
and #$3F
|
and #$3F
|
||||||
@ -866,7 +863,7 @@ CMD.DEFAULT jsr CORE.StkGetCtx Get context in CORE.Test
|
|||||||
|
|
||||||
.9 jmp CMD.Exec.CSYN
|
.9 jmp CMD.Exec.CSYN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.END jsr CORE.StkGetCtx Get context in CORE.Test
|
CMD.END jsr CORE.StkGetCtx Get context in CORE.TestResult
|
||||||
bcs CMD.END.CSYN
|
bcs CMD.END.CSYN
|
||||||
|
|
||||||
and #$3F
|
and #$3F
|
||||||
@ -923,23 +920,23 @@ CMD.FOR jsr CORE.StkGetCtx
|
|||||||
|
|
||||||
lda (ZPArgVBufPtr)
|
lda (ZPArgVBufPtr)
|
||||||
cmp #'('
|
cmp #'('
|
||||||
beq FOR.FILE
|
beq CMD.FOR.FILE
|
||||||
|
|
||||||
cmp #'`'
|
cmp #'`'
|
||||||
bne FOR.LIST
|
bne CMD.FOR.LIST
|
||||||
|
|
||||||
jmp FOR.EXEC
|
jmp CMD.FOR.EXEC
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FOR.LIST >LDYA ZPArgVBufPtr
|
CMD.FOR.LIST >LDYA ZPArgVBufPtr
|
||||||
>SYSCALL strdup
|
>SYSCALL strdup
|
||||||
bcs .9
|
bcs FOR.FILE.9
|
||||||
|
|
||||||
jsr CORE.StkPushYAX Push listPtr,hList
|
jsr CORE.StkPushYAX Push listPtr,hList
|
||||||
|
|
||||||
>LDYA ZPVarNamePtr
|
>LDYA ZPVarNamePtr
|
||||||
>SYSCALL strdup
|
>SYSCALL strdup
|
||||||
bcs .9
|
bcs FOR.FILE.9
|
||||||
|
|
||||||
txa
|
txa
|
||||||
jsr CORE.StkPush Push hVARNAME
|
jsr CORE.StkPush Push hVARNAME
|
||||||
@ -951,21 +948,11 @@ FOR.LIST >LDYA ZPArgVBufPtr
|
|||||||
jsr CORE.StkPush
|
jsr CORE.StkPush
|
||||||
|
|
||||||
jsr CMD.NEXT.LIST.1
|
jsr CMD.NEXT.LIST.1
|
||||||
bcs .9
|
bcs FOR.FILE.9
|
||||||
|
|
||||||
>ORA.G CORE.Test
|
jmp CMD.FOR.LOOP
|
||||||
ora #C.FOR Push FOR
|
|
||||||
pha
|
|
||||||
lda (pData)
|
|
||||||
tay
|
|
||||||
pla
|
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
* clc
|
|
||||||
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FOR.FILE jsr CORE.ArgV.NextChar skip "("
|
CMD.FOR.FILE jsr CORE.ArgV.NextChar skip "("
|
||||||
|
|
||||||
>PUSHWZ Aux type
|
>PUSHWZ Aux type
|
||||||
>PUSHBI S.FI.T.TXT
|
>PUSHBI S.FI.T.TXT
|
||||||
@ -992,27 +979,19 @@ FOR.FILE jsr CORE.ArgV.NextChar skip "("
|
|||||||
jsr CMD.NEXT.LINE
|
jsr CMD.NEXT.LINE
|
||||||
bcs FOR.FILE.9
|
bcs FOR.FILE.9
|
||||||
|
|
||||||
>ORA.G CORE.Test
|
bra CMD.FOR.LOOP
|
||||||
ora #C.FOR Push FOR
|
|
||||||
pha
|
|
||||||
lda (pData)
|
|
||||||
tay
|
|
||||||
pla
|
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
* clc
|
|
||||||
|
|
||||||
FOR.FILE.9 rts
|
FOR.FILE.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FOR.EXEC jsr CORE.ArgV.NextChar skip "`"
|
CMD.FOR.EXEC jsr CORE.ArgV.NextChar skip "`"
|
||||||
|
|
||||||
jsr IO.Pipe.Out
|
jsr IO.Pipe.Out
|
||||||
bcs .9
|
bcs FOR.FILE.9
|
||||||
|
|
||||||
>PUSHB.G CORE.PSFlags
|
>PUSHB.G CORE.PSFlags
|
||||||
>LDYA ZPArgVBufPtr
|
>LDYA ZPArgVBufPtr
|
||||||
>SYSCALL execl
|
>SYSCALL execl
|
||||||
bcs .9
|
bcs FOR.FILE.9
|
||||||
|
|
||||||
>LDA.G IO.hOut
|
>LDA.G IO.hOut
|
||||||
ldy #S.PS.hStdOut
|
ldy #S.PS.hStdOut
|
||||||
@ -1025,13 +1004,13 @@ FOR.EXEC jsr CORE.ArgV.NextChar skip "`"
|
|||||||
>PUSHBI O.RDONLY+O.TEXT
|
>PUSHBI O.RDONLY+O.TEXT
|
||||||
>LEA.G IO.FIFO
|
>LEA.G IO.FIFO
|
||||||
>SYSCALL fopen
|
>SYSCALL fopen
|
||||||
bcs .9
|
bcs FOR.FILE.9
|
||||||
|
|
||||||
jsr CORE.StkPush push hPIPE
|
jsr CORE.StkPush push hPIPE
|
||||||
|
|
||||||
>LDYA ZPVarNamePtr
|
>LDYA ZPVarNamePtr
|
||||||
>SYSCALL strdup
|
>SYSCALL strdup
|
||||||
bcs .9
|
bcs FOR.FILE.9
|
||||||
|
|
||||||
txa
|
txa
|
||||||
jsr CORE.StkPush Push hVARNAME
|
jsr CORE.StkPush Push hVARNAME
|
||||||
@ -1043,9 +1022,9 @@ FOR.EXEC jsr CORE.ArgV.NextChar skip "`"
|
|||||||
jsr CORE.StkPush
|
jsr CORE.StkPush
|
||||||
|
|
||||||
jsr CMD.NEXT.LINE
|
jsr CMD.NEXT.LINE
|
||||||
bcs .9
|
bcs FOR.FILE.9
|
||||||
|
|
||||||
>ORA.G CORE.Test
|
CMD.FOR.LOOP ora CORE.TestResult
|
||||||
ora #C.FOR Push FOR
|
ora #C.FOR Push FOR
|
||||||
pha
|
pha
|
||||||
lda (pData)
|
lda (pData)
|
||||||
@ -1053,9 +1032,7 @@ FOR.EXEC jsr CORE.ArgV.NextChar skip "`"
|
|||||||
pla
|
pla
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
* clc
|
rts
|
||||||
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.NEXT jsr CORE.StkGet Y = StkPtr
|
CMD.NEXT jsr CORE.StkGet Y = StkPtr
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -1293,7 +1270,7 @@ CMD.IF jsr CORE.StkGetCtx
|
|||||||
jsr EXP.TEST
|
jsr EXP.TEST
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.3 >LDA.G CORE.IntCmd
|
.3 lda CORE.IntCmd
|
||||||
cmp #C.WHILE
|
cmp #C.WHILE
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
@ -1301,10 +1278,12 @@ CMD.IF jsr CORE.StkGetCtx
|
|||||||
jsr CORE.StkPushYA Push BEFORE WHILE/IF
|
jsr CORE.StkPushYA Push BEFORE WHILE/IF
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.8 >LDA.G CORE.Test
|
.8 lda CORE.TestResult
|
||||||
>ORA.G CORE.IntCmd
|
ora CORE.IntCmd
|
||||||
jmp CORE.StkPush
|
jsr CORE.StkPush
|
||||||
|
|
||||||
|
clc
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.LOOP jsr CORE.StkPull
|
CMD.LOOP jsr CORE.StkPull
|
||||||
|
@ -16,12 +16,12 @@ CORE.Quit >LDA.G CORE.hArgVBuf
|
|||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
CORE.FUNCRESET >LDA.G hFuncList
|
CORE.FUNCRESET >LDA.G hFuncList
|
||||||
beq CORE.Quit.9
|
beq .8
|
||||||
|
|
||||||
>SYSCALL SListFree
|
>SYSCALL SListFree
|
||||||
>STZ.G hFuncList
|
>STZ.G hFuncList
|
||||||
|
|
||||||
CORE.Quit.9 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* http://heirloom.sourceforge.net/sh/sh.1.html
|
* http://heirloom.sourceforge.net/sh/sh.1.html
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -65,7 +65,7 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping
|
|||||||
|
|
||||||
lda #$ff
|
lda #$ff
|
||||||
|
|
||||||
>STA.G CORE.IntCmd assume external
|
sta CORE.IntCmd assume external
|
||||||
|
|
||||||
jsr CORE.GetCharNB
|
jsr CORE.GetCharNB
|
||||||
bcc .11
|
bcc .11
|
||||||
@ -125,14 +125,13 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping
|
|||||||
|
|
||||||
.41 jsr CORE.SkipCharsA
|
.41 jsr CORE.SkipCharsA
|
||||||
|
|
||||||
txa
|
stx CORE.IntCmd
|
||||||
>STA.G CORE.IntCmd
|
|
||||||
|
|
||||||
.42 jsr CORE.StkGet
|
.42 jsr CORE.StkGet
|
||||||
bcs CORE.Run.7 no particular context, exec...
|
bcs CORE.Run.7 no particular context, exec...
|
||||||
tax
|
tax
|
||||||
|
|
||||||
>LDA.G CORE.IntCmd
|
lda CORE.IntCmd
|
||||||
bmi .45
|
bmi .45
|
||||||
|
|
||||||
and #$3F
|
and #$3F
|
||||||
@ -202,8 +201,9 @@ CORE.ExecCmd.1 lda #0
|
|||||||
>LDYA ZPArgVBuf
|
>LDYA ZPArgVBuf
|
||||||
>STYA ZPArgVBufPtr
|
>STYA ZPArgVBufPtr
|
||||||
|
|
||||||
>LDA.G CORE.IntCmd
|
lda CORE.IntCmd
|
||||||
bmi CORE.ExecExtCmd
|
bmi CORE.ExecExtCmd
|
||||||
|
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
jmp (J.CMD,x)
|
jmp (J.CMD,x)
|
||||||
@ -330,16 +330,12 @@ CORE.Lookup >STYA ZPPtr2
|
|||||||
clc
|
clc
|
||||||
.8 rts
|
.8 rts
|
||||||
|
|
||||||
.4 inc ZPPtr1
|
.4 jsr IncPtr1
|
||||||
bne .5
|
|
||||||
inc ZPPtr1+1
|
|
||||||
|
|
||||||
.5 lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
inc ZPPtr1
|
jsr IncPtr1
|
||||||
bne .6
|
|
||||||
inc ZPPtr1+1
|
|
||||||
|
|
||||||
.6 inx
|
.6 inx
|
||||||
|
|
||||||
@ -389,12 +385,7 @@ CORE.ArgV.Dup >STYA ZPPtr1
|
|||||||
inc
|
inc
|
||||||
pha
|
pha
|
||||||
|
|
||||||
ldy #0
|
jsr StrCpyPtr1Ptr2
|
||||||
|
|
||||||
.6 iny
|
|
||||||
lda (ZPPtr1),y
|
|
||||||
sta (ZPPtr2),y
|
|
||||||
bne .6
|
|
||||||
|
|
||||||
jsr CORE.ArgV.DupNextY
|
jsr CORE.ArgV.DupNextY
|
||||||
bra .5
|
bra .5
|
||||||
@ -418,38 +409,38 @@ CORE.ArgV.Add >LDYA ZPArgVBufPtr
|
|||||||
>STYA ZPArgVBufPrev Save String start of Expand
|
>STYA ZPArgVBufPrev Save String start of Expand
|
||||||
|
|
||||||
lda #C.SPACE
|
lda #C.SPACE
|
||||||
sta M32.TMP
|
sta ZPTmpW
|
||||||
|
|
||||||
jsr CORE.GetCharNB
|
jsr CORE.GetCharNB
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
cmp #'"'
|
cmp #'"'
|
||||||
bne .10
|
bne .10
|
||||||
sta M32.TMP
|
sta ZPTmpW
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.10 cmp #'('
|
.10 cmp #'('
|
||||||
bne .11
|
bne .11
|
||||||
ldx #')'
|
ldx #')'
|
||||||
stx M32.TMP
|
stx ZPTmpW
|
||||||
|
|
||||||
bra .12
|
bra .12
|
||||||
|
|
||||||
.11 cmp #'`'
|
.11 cmp #'`'
|
||||||
bne .12
|
bne .12
|
||||||
sta M32.TMP
|
sta ZPTmpW
|
||||||
|
|
||||||
.12 jsr CORE.ArgV.PutChar
|
.12 jsr CORE.ArgV.PutChar
|
||||||
|
|
||||||
.1 jsr CORE.GetNextChar
|
.1 jsr CORE.GetNextChar
|
||||||
bcs .5
|
bcs .5
|
||||||
|
|
||||||
.2 cmp M32.TMP
|
.2 cmp ZPTmpW
|
||||||
bne .3
|
bne .3
|
||||||
jsr CORE.GetNextChar
|
jsr CORE.GetNextChar
|
||||||
bra .5
|
bra .5
|
||||||
|
|
||||||
.3 ldy M32.TMP
|
.3 ldy ZPTmpW
|
||||||
cpy #C.SPACE
|
cpy #C.SPACE
|
||||||
bne .40
|
bne .40
|
||||||
jsr CORE.IsEndCmd
|
jsr CORE.IsEndCmd
|
||||||
@ -682,7 +673,7 @@ CORE.StkGetCtx jsr CORE.StkGet
|
|||||||
|
|
||||||
.1 lda #$40 ...set Parent = true
|
.1 lda #$40 ...set Parent = true
|
||||||
|
|
||||||
.2 >STA.G CORE.Test
|
.2 sta CORE.TestResult
|
||||||
|
|
||||||
txa
|
txa
|
||||||
rts
|
rts
|
||||||
|
@ -17,8 +17,7 @@ EXP.GET jsr CORE.ArgV.Next
|
|||||||
jsr CORE.LookupArgVBuf
|
jsr CORE.LookupArgVBuf
|
||||||
bcs .94
|
bcs .94
|
||||||
|
|
||||||
txa
|
stx CORE.Operator
|
||||||
>STA.G CORE.Operator
|
|
||||||
|
|
||||||
jsr CORE.ArgV.Next get next argument
|
jsr CORE.ArgV.Next get next argument
|
||||||
beq .94
|
beq .94
|
||||||
@ -48,10 +47,8 @@ EXP.GET jsr CORE.ArgV.Next
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
EXP.FPU.EXEC >LDA.G CORE.Operator
|
EXP.FPU.EXEC ldy CORE.Operator
|
||||||
tax
|
ldx EXP.OP.MATH.FPU,y
|
||||||
lda EXP.OP.MATH.FPU,x
|
|
||||||
tax
|
|
||||||
|
|
||||||
jmp A2osX.FpuCall
|
jmp A2osX.FpuCall
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -59,7 +56,7 @@ EXP.TEST lda (ZPArgVBufPtr)
|
|||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
lda #$80
|
lda #$80
|
||||||
>STA.G CORE.TestOp No Op
|
sta CORE.LogicOp No Op
|
||||||
|
|
||||||
.10 >LDYA L.EXP.BEGIN
|
.10 >LDYA L.EXP.BEGIN
|
||||||
jsr CORE.LookupArgVBuf
|
jsr CORE.LookupArgVBuf
|
||||||
@ -71,11 +68,11 @@ EXP.TEST lda (ZPArgVBufPtr)
|
|||||||
asl in C
|
asl in C
|
||||||
php
|
php
|
||||||
|
|
||||||
>LDA.G CORE.Test get parent
|
lda CORE.TestResult get parent
|
||||||
asl discard true/false
|
asl discard true/false
|
||||||
plp get new
|
plp get new
|
||||||
ror set ctx and parent
|
ror set ctx and parent
|
||||||
>STA.G CORE.Test
|
sta CORE.TestResult
|
||||||
|
|
||||||
jsr CORE.ArgV.Next
|
jsr CORE.ArgV.Next
|
||||||
beq .9
|
beq .9
|
||||||
@ -85,13 +82,12 @@ EXP.TEST lda (ZPArgVBufPtr)
|
|||||||
|
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
txa
|
stx CORE.Operator
|
||||||
>STA.G CORE.Operator
|
|
||||||
|
|
||||||
jsr EXP.TEST.UNARY
|
jsr EXP.TEST.UNARY
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>EOR.G CORE.Test
|
eor CORE.TestResult
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
lda (ZPArgVBufPtr)
|
lda (ZPArgVBufPtr)
|
||||||
bra .8 go check ]
|
bra .8 go check ]
|
||||||
@ -106,13 +102,13 @@ EXP.TEST lda (ZPArgVBufPtr)
|
|||||||
>LDYA L.EXP.OP.BINARY -eq -ne .... ?
|
>LDYA L.EXP.OP.BINARY -eq -ne .... ?
|
||||||
jsr CORE.LookupArgVBuf
|
jsr CORE.LookupArgVBuf
|
||||||
bcs .9
|
bcs .9
|
||||||
txa
|
|
||||||
>STA.G CORE.Operator
|
stx CORE.Operator
|
||||||
|
|
||||||
jsr EXP.TEST.BINARY
|
jsr EXP.TEST.BINARY
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>EOR.G CORE.Test
|
eor CORE.TestResult
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
jsr CORE.ArgV.Next
|
jsr CORE.ArgV.Next
|
||||||
@ -132,31 +128,31 @@ EXP.TEST lda (ZPArgVBufPtr)
|
|||||||
jsr CORE.LookupArgVBuf
|
jsr CORE.LookupArgVBuf
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
txa 0 = AND, 1 = OR
|
stx CORE.LogicOp 0 = AND, 1 = OR
|
||||||
>STA.G CORE.TestOp
|
|
||||||
txa
|
txa
|
||||||
beq .84
|
beq .84
|
||||||
>lda.G CORE.Test OR : prev test is true, exit
|
|
||||||
|
lda CORE.TestResult OR : prev test is true, exit
|
||||||
bmi .88
|
bmi .88
|
||||||
bra .85
|
bra .85
|
||||||
|
|
||||||
.84 >lda.G CORE.Test AND : prev test is false, exit
|
.84 lda CORE.TestResult AND : prev test is false, exit
|
||||||
bpl .88
|
bpl .88
|
||||||
|
|
||||||
.85 >LDA.G CORE.Test
|
.85 lda CORE.TestResult
|
||||||
>STA.G CORE.TestArg
|
sta CORE.PrevTestResult
|
||||||
|
|
||||||
jsr CORE.ArgV.Next
|
jsr CORE.ArgV.Next
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
jmp .10
|
jmp .10
|
||||||
|
|
||||||
.80 >LDA.G CORE.TestOp
|
.80 lda CORE.LogicOp
|
||||||
bne .88 NONE, or OR : exit with last result
|
bne .88 NONE, or OR : exit with last result
|
||||||
|
|
||||||
>LDA.G CORE.TestArg AND : stop if false
|
lda CORE.PrevTestResult AND : stop if false
|
||||||
>AND.G CORE.Test
|
and CORE.TestResult
|
||||||
>STA.G CORE.Test
|
sta CORE.TestResult
|
||||||
|
|
||||||
.88 clc
|
.88 clc
|
||||||
rts
|
rts
|
||||||
@ -164,7 +160,7 @@ EXP.TEST lda (ZPArgVBufPtr)
|
|||||||
EXP.TEST.UNARY jsr CORE.ArgV.Next
|
EXP.TEST.UNARY jsr CORE.ArgV.Next
|
||||||
beq EXP.OP.UNARY.ESYN we need one arg or ]
|
beq EXP.OP.UNARY.ESYN we need one arg or ]
|
||||||
|
|
||||||
>LDA.G CORE.Operator
|
lda CORE.Operator
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
jmp (J.EXP.OP.UNARY,x)
|
jmp (J.EXP.OP.UNARY,x)
|
||||||
@ -230,7 +226,7 @@ EXP.OP.UNARY.Z lda (ZPArgVBufPtr) [ -Z ] ?
|
|||||||
beq EXP.OP.UNARY.ESYN
|
beq EXP.OP.UNARY.ESYN
|
||||||
bra EXP.OP.UNARY.DEF.9 FALSE
|
bra EXP.OP.UNARY.DEF.9 FALSE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EXP.TEST.BINARY >LDA.G CORE.Operator
|
EXP.TEST.BINARY lda CORE.Operator
|
||||||
cmp #6 =, !=, <= <, >=, >
|
cmp #6 =, !=, <= <, >=, >
|
||||||
bcs EXP.TEST.BINARY.NUM
|
bcs EXP.TEST.BINARY.NUM
|
||||||
|
|
||||||
@ -299,21 +295,14 @@ EXP.TEST.BINARY.NUM
|
|||||||
.5 lda #%001 001 ACC < ARG
|
.5 lda #%001 001 ACC < ARG
|
||||||
|
|
||||||
EXP.TEST.BINARY.END
|
EXP.TEST.BINARY.END
|
||||||
pha
|
clc
|
||||||
|
ldx CORE.Operator
|
||||||
>LDA.G CORE.Operator
|
|
||||||
tax
|
|
||||||
pla
|
|
||||||
and EXP.OP.BINARY.BITS,x
|
and EXP.OP.BINARY.BITS,x
|
||||||
beq .80
|
beq .8 false
|
||||||
|
|
||||||
lda #$80 true
|
lda #$80 true
|
||||||
clc
|
|
||||||
rts
|
.8 rts
|
||||||
|
|
||||||
.80 lda #0 false
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/BIN/SH.S.EXP
|
SAVE USR/SRC/BIN/SH.S.EXP
|
||||||
|
@ -61,13 +61,9 @@ HIS.Add >LDA.G HIS.hBuf
|
|||||||
|
|
||||||
bra .10 retry....
|
bra .10 retry....
|
||||||
|
|
||||||
.2 clc A = ending O offset
|
.2 jsr AddAPtr1 A = ending O offset
|
||||||
adc ZPPTR1
|
|
||||||
sta ZPPTR1
|
ldy #$ff
|
||||||
bcc .3
|
|
||||||
inc ZPPTR1+1
|
|
||||||
|
|
||||||
.3 ldy #$ff
|
|
||||||
|
|
||||||
.4 iny
|
.4 iny
|
||||||
lda (ZPCLBuf),y
|
lda (ZPCLBuf),y
|
||||||
@ -126,13 +122,9 @@ HIS.GetNext >LDA.G HIS.hBuf
|
|||||||
HIS.SetA jsr HIS.GetA
|
HIS.SetA jsr HIS.GetA
|
||||||
|
|
||||||
tya
|
tya
|
||||||
clc
|
jsr AddAPtr1
|
||||||
adc ZPPTR1
|
|
||||||
sta ZPPTR1
|
|
||||||
bcc .1
|
|
||||||
inc ZPPTR1+1
|
|
||||||
|
|
||||||
.1 jsr CL.CLR
|
jsr CL.CLR
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
|
@ -145,12 +145,12 @@ IO.PrintBatchErrMsg
|
|||||||
|
|
||||||
.11 >STYA ZPPtr2
|
.11 >STYA ZPPtr2
|
||||||
|
|
||||||
stz M32.TMP Line Count
|
stz ZPTmpW Line Count
|
||||||
stz M32.TMP+1
|
stz ZPTmpW+1
|
||||||
|
|
||||||
.1 inc M32.TMP
|
.1 inc ZPTmpW
|
||||||
bne .2
|
bne .2
|
||||||
inc M32.TMP+1
|
inc ZPTmpW+1
|
||||||
|
|
||||||
.2 ldy #$ff
|
.2 ldy #$ff
|
||||||
|
|
||||||
@ -210,7 +210,7 @@ IO.PrintBatchErrMsg
|
|||||||
sta (ZPCLBuf),y
|
sta (ZPCLBuf),y
|
||||||
bra .7
|
bra .7
|
||||||
|
|
||||||
.8 >PUSHW M32.TMP
|
.8 >PUSHW ZPTmpW
|
||||||
>PUSHW ZPCLBuf
|
>PUSHW ZPCLBuf
|
||||||
>PUSHBI 4
|
>PUSHBI 4
|
||||||
>PUSHW L.MSG.BATCHERR
|
>PUSHW L.MSG.BATCHERR
|
||||||
@ -245,11 +245,7 @@ IO.PrintErrMsg pha Save EC for PrintF
|
|||||||
bmi .8
|
bmi .8
|
||||||
|
|
||||||
lda (ZPPTR1)
|
lda (ZPPTR1)
|
||||||
sec
|
jsr AddAp1Ptr1
|
||||||
adc ZPPTR1
|
|
||||||
sta ZPPTR1
|
|
||||||
bcc .3
|
|
||||||
inc ZPPTR1+1
|
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.8 >PUSHW ZPPTR1
|
.8 >PUSHW ZPPTR1
|
||||||
|
57
BIN/SH.S.txt
57
BIN/SH.S.txt
@ -76,11 +76,17 @@ ZPArgVBufPrev .BS 2
|
|||||||
ZPArgVBufPtr .BS 2
|
ZPArgVBufPtr .BS 2
|
||||||
ZPVarNamePtr .BS 2
|
ZPVarNamePtr .BS 2
|
||||||
|
|
||||||
|
CORE.IntCmd .BS 1
|
||||||
|
CORE.Operator .BS 1
|
||||||
|
CORE.LogicOp .BS 1
|
||||||
|
CORE.TestResult .BS 1
|
||||||
|
CORE.PrevTestResult .BS 1
|
||||||
|
|
||||||
M32.ACC .BS 4
|
M32.ACC .BS 4
|
||||||
M32.TMP .BS 4
|
|
||||||
|
|
||||||
ZPPtr1 .BS 2
|
ZPPtr1 .BS 2
|
||||||
ZPPtr2 .BS 2
|
ZPPtr2 .BS 2
|
||||||
|
ZPTmpW .BS 2
|
||||||
|
|
||||||
ZS.END .ED
|
ZS.END .ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -531,12 +537,7 @@ RemoveStrFromArgV
|
|||||||
|
|
||||||
.2 jsr AddYp1Ptr1
|
.2 jsr AddYp1Ptr1
|
||||||
|
|
||||||
ldy #$ff
|
jsr StrCpyPtr1Ptr2
|
||||||
|
|
||||||
.4 iny
|
|
||||||
lda (ZPPtr1),y
|
|
||||||
sta (ZPPtr2),y
|
|
||||||
bne .4
|
|
||||||
|
|
||||||
tya
|
tya
|
||||||
beq .8
|
beq .8
|
||||||
@ -551,11 +552,12 @@ RemoveStrFromArgV
|
|||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GetPtr1Next lda (ZPPtr1)
|
GetPtr1Next lda (ZPPtr1)
|
||||||
beq .8
|
beq IncPtr1.8
|
||||||
inc ZPPtr1
|
|
||||||
bne .8
|
IncPtr1 inc ZPPtr1
|
||||||
|
bne IncPtr1.8
|
||||||
inc ZPPtr1+1
|
inc ZPPtr1+1
|
||||||
.8 rts
|
IncPtr1.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GetPtr1Len ldy #$ff
|
GetPtr1Len ldy #$ff
|
||||||
|
|
||||||
@ -565,13 +567,24 @@ GetPtr1Len ldy #$ff
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
AddYp1Ptr1 tya
|
AddYp1Ptr1 tya
|
||||||
sec
|
AddAp1Ptr1 sec
|
||||||
|
.HS 90 BCC
|
||||||
|
AddAPtr1 clc
|
||||||
adc ZPPtr1
|
adc ZPPtr1
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
bcc .8
|
bcc .8
|
||||||
inc ZPPtr1+1
|
inc ZPPtr1+1
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
StrCpyPtr1Ptr2 ldy #$ff
|
||||||
|
|
||||||
|
.1 iny
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
ToUpperCase cmp #'a'
|
ToUpperCase cmp #'a'
|
||||||
bcc .8
|
bcc .8
|
||||||
cmp #'z'+1
|
cmp #'z'+1
|
||||||
@ -602,13 +615,18 @@ MSG.PRINTENV .AZ "%s = %s\r\n"
|
|||||||
MSG.PID .AZ "PID=%d\r\n"
|
MSG.PID .AZ "PID=%d\r\n"
|
||||||
FMT.DATE .AZ "%A (%w), %B %d %Y"
|
FMT.DATE .AZ "%A (%w), %B %d %Y"
|
||||||
FMT.TIME .AZ "%H:%M:%S (%I:%M:%S%p)"
|
FMT.TIME .AZ "%H:%M:%S (%I:%M:%S%p)"
|
||||||
FMT.GETKEY .AZ "%d"
|
FMT.GETKEY .AZ "%d"
|
||||||
|
M32.Printf .AZ "%L"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HOME .AZ "${HOME}"
|
HOME .AZ "${HOME}"
|
||||||
HOME.PROFILE .AZ "${HOME}PROFILE"
|
HOME.PROFILE .AZ "${HOME}PROFILE"
|
||||||
PS1 .AZ "${PS1}"
|
PS1 .AZ "${PS1}"
|
||||||
.HS 00 To Make It ArgV
|
.HS 00 To Make It ArgV
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
EscChars .AS 'DBAC'
|
||||||
|
EscChars.Cnt .EQ *-EscChars
|
||||||
|
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#C.FS
|
||||||
|
*--------------------------------------
|
||||||
IN .AZ "IN"
|
IN .AZ "IN"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD .AZ ".."
|
CMD .AZ ".."
|
||||||
@ -707,11 +725,6 @@ EXP.OP.LOGIC .AZ "AND"
|
|||||||
.HS 00
|
.HS 00
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB USR/SRC/SHARED/X.ERRORS.S
|
.INB USR/SRC/SHARED/X.ERRORS.S
|
||||||
*--------------------------------------
|
|
||||||
EscChars .AS 'DBAC'
|
|
||||||
EscChars.Cnt .EQ *-EscChars
|
|
||||||
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#C.FS
|
|
||||||
M32.Printf .AZ "%L"
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
@ -743,15 +756,9 @@ CL.Ptr .BS 1
|
|||||||
CL.Len .BS 1
|
CL.Len .BS 1
|
||||||
CL.bReady .BS 1
|
CL.bReady .BS 1
|
||||||
|
|
||||||
CORE.IntCmd .BS 1
|
|
||||||
CORE.hArgVBuf .BS 1
|
CORE.hArgVBuf .BS 1
|
||||||
|
|
||||||
CORE.PSFlags .BS 1
|
CORE.PSFlags .BS 1
|
||||||
CORE.ArgIndex .BS 1
|
|
||||||
CORE.Test .BS 1
|
|
||||||
CORE.TestOp .BS 1
|
|
||||||
CORE.TestArg .BS 1
|
|
||||||
CORE.Operator .BS 1
|
|
||||||
|
|
||||||
HIS.hBuf .BS 1
|
HIS.hBuf .BS 1
|
||||||
HIS.Count .BS 1
|
HIS.Count .BS 1
|
||||||
@ -761,7 +768,7 @@ IO.hIn .BS 1
|
|||||||
IO.hOut .BS 1
|
IO.hOut .BS 1
|
||||||
IO.hErr .BS 1
|
IO.hErr .BS 1
|
||||||
|
|
||||||
*M32.BUF .BS 12 -1234567890\0
|
*M32.BUF .BS 12 -1234567890\0
|
||||||
M32.BUF .EQ *
|
M32.BUF .EQ *
|
||||||
IO.FIFO .BS 12 /DEV/FIFOxx\0
|
IO.FIFO .BS 12 /DEV/FIFOxx\0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -124,7 +124,7 @@ CORE.Events jsr CORE.GetEvents
|
|||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
>PUSHWZ Param
|
>PUSHWZ Param
|
||||||
>PUSHBI IOCTL.CONTROL request
|
>PUSHBI IOCTL.CONTROL request
|
||||||
pla
|
pla
|
||||||
|
|
||||||
|
@ -1,24 +1,6 @@
|
|||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.OPEN.CDEV
|
|
||||||
IO.OPEN.BDEV jsr K.IOCTL.GetPDrv
|
|
||||||
|
|
||||||
ldx #IOCTL.OPEN
|
|
||||||
lda IO.hDev
|
|
||||||
jsr K.IOCTL.pDrvJmp
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
lda IO.hDev
|
|
||||||
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
IO.OPEN.DSOCK
|
|
||||||
*--------------------------------------
|
|
||||||
IO.OPEN.SSOCK lda IO.hFD
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
IO.CLOSE.REG
|
IO.CLOSE.REG
|
||||||
IO.CLOSE.DIR ldy #S.FD.REG.REF
|
IO.CLOSE.DIR ldy #S.FD.REG.REF
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
@ -35,47 +17,6 @@ IO.CLOSE.DIR ldy #S.FD.REG.REF
|
|||||||
.2 lda IO.hFD
|
.2 lda IO.hFD
|
||||||
jmp K.FreeMem
|
jmp K.FreeMem
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.CLOSE.CDEV
|
|
||||||
IO.CLOSE.BDEV
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
IO.CLOSE.DSOCK
|
|
||||||
IO.CLOSE.SSOCK
|
|
||||||
ldy #S.FD.SSOCK.CLOSE
|
|
||||||
lda (pFD),y
|
|
||||||
tax Function Offset in LIB
|
|
||||||
|
|
||||||
ldy #S.FD.SSOCK.IOHANDLER
|
|
||||||
lda (pFD),y
|
|
||||||
jsr K.GetMemPtr
|
|
||||||
>STYA .1+1
|
|
||||||
|
|
||||||
lda IO.hFD
|
|
||||||
|
|
||||||
.1 jmp $FFFF SELF MODIFIED
|
|
||||||
*--------------------------------------
|
|
||||||
IO.CLOSE.NOD ldx #2
|
|
||||||
|
|
||||||
lda IO.hFD
|
|
||||||
|
|
||||||
.1 cmp Nod.Table.hFD-2,x
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
stz Nod.Table.hFD-2,x
|
|
||||||
|
|
||||||
lda Nod.Table.hPath-2,x
|
|
||||||
stz Nod.Table.hPath-2,x
|
|
||||||
jmp K.FreeMem
|
|
||||||
|
|
||||||
.2 inx
|
|
||||||
cpx #K.Nod.MAX+2
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
lda #E.INVH
|
|
||||||
* sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
IO.READ.REG ldx #MLIREAD
|
IO.READ.REG ldx #MLIREAD
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -93,6 +34,23 @@ IO.WRITE.REG ldx #MLIWRITE
|
|||||||
>LDYA K.MLI.PARAMS+6
|
>LDYA K.MLI.PARAMS+6
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
IO.OPEN.CDEV
|
||||||
|
IO.OPEN.BDEV jsr K.IOCTL.GetPDrv
|
||||||
|
|
||||||
|
ldx #IOCTL.OPEN
|
||||||
|
lda IO.hDev
|
||||||
|
jsr K.IOCTL.pDrvJmp
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
lda IO.hDev
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
IO.CLOSE.CDEV
|
||||||
|
IO.CLOSE.BDEV
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
IO.READ.CDEV ldx #IOCTL.READ
|
IO.READ.CDEV ldx #IOCTL.READ
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -110,11 +68,15 @@ IO.WRITE.CDEV ldx #IOCTL.WRITE
|
|||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE
|
IO.OPEN.DSOCK
|
||||||
.HS 2C BIT ABS
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.READ.SSOCK ldy #S.FD.SSOCK.READ
|
IO.OPEN.SSOCK lda IO.hFD
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
IO.CLOSE.DSOCK
|
||||||
|
IO.CLOSE.SSOCK
|
||||||
|
ldy #S.FD.SSOCK.CLOSE
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
tax Function Offset in LIB
|
tax Function Offset in LIB
|
||||||
|
|
||||||
@ -127,6 +89,22 @@ IO.READ.SSOCK ldy #S.FD.SSOCK.READ
|
|||||||
|
|
||||||
.1 jmp $FFFF SELF MODIFIED
|
.1 jmp $FFFF SELF MODIFIED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
IO.READ.SSOCK ldy #S.FD.SSOCK.READ
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
*--------------------------------------
|
||||||
|
IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE
|
||||||
|
|
||||||
|
lda (pFD),y
|
||||||
|
tax Function Offset in LIB
|
||||||
|
|
||||||
|
ldy #S.FD.SSOCK.IOHANDLER
|
||||||
|
lda (pFD),y
|
||||||
|
jsr K.GetMemPtr
|
||||||
|
>STYA .1+1
|
||||||
|
|
||||||
|
lda IO.hFD
|
||||||
|
|
||||||
|
.1 jmp $FFFF SELF MODIFIED
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # IOCTL
|
* # IOCTL
|
||||||
* ## C
|
* ## C
|
||||||
@ -166,19 +144,6 @@ K.IOCTL.GetPDrv ldy #S.FD.DEV.DRVPTR
|
|||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
sta pDRV+1
|
sta pDRV+1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
|
||||||
IO.EOF lda (pFD)
|
|
||||||
tax
|
|
||||||
jmp (.1,x)
|
|
||||||
|
|
||||||
.1 .DA IO.EOF.REG
|
|
||||||
.DA STDIO.IOERR DIR
|
|
||||||
.DA IO.EOF.CDEV
|
|
||||||
.DA STDIO.IOERR BDEV
|
|
||||||
.DA STDIO.IOERR LNK
|
|
||||||
.DA STDIO.IOERR DSOCK
|
|
||||||
.DA IO.EOF.SSOCK
|
|
||||||
.DA IO.EOF.PIPE
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.EOF.REG >MLICALL MLIGETMARK
|
IO.EOF.REG >MLICALL MLIGETMARK
|
||||||
bcs IO.EOF.REG.RTS
|
bcs IO.EOF.REG.RTS
|
||||||
@ -226,11 +191,6 @@ IO.EOF.FALSE lda #0
|
|||||||
* clc
|
* clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.GetPFD sta IO.hFD
|
|
||||||
jsr K.GetMemPtr
|
|
||||||
>STYA pFD
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
* X = 0 > REG
|
* X = 0 > REG
|
||||||
* X = 1 > DIR
|
* X = 1 > DIR
|
||||||
* X = 2 > PIPE
|
* X = 2 > PIPE
|
||||||
@ -293,6 +253,27 @@ IO.MLI.OPEN >LDYAI 1024 get a ProDOS IOBUF
|
|||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
IO.CLOSE.NOD ldx #2
|
||||||
|
|
||||||
|
lda IO.hFD
|
||||||
|
|
||||||
|
.1 cmp Nod.Table.hFD-2,x
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
stz Nod.Table.hFD-2,x
|
||||||
|
|
||||||
|
lda Nod.Table.hPath-2,x
|
||||||
|
stz Nod.Table.hPath-2,x
|
||||||
|
jmp K.FreeMem
|
||||||
|
|
||||||
|
.2 inx
|
||||||
|
cpx #K.Nod.MAX+2
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
lda #E.INVH
|
||||||
|
* sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
IO.DEV.FIFO .AS "/DEV/FIFO"
|
IO.DEV.FIFO .AS "/DEV/FIFO"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
@ -100,7 +100,7 @@ MEM.GetMem.YAX stx MEM.ReqFlags
|
|||||||
|
|
||||||
.4 cpx Mem.LastSlot any other slot to check?
|
.4 cpx Mem.LastSlot any other slot to check?
|
||||||
bne .1 last one, create a new slot
|
bne .1 last one, create a new slot
|
||||||
|
|
||||||
lda MEM.BestSlot
|
lda MEM.BestSlot
|
||||||
beq .5
|
beq .5
|
||||||
|
|
||||||
|
@ -385,16 +385,15 @@ PS.LoadBIN jsr BIN.Load K.Buf256= "${ROOT}BIN/SHELL\0", K.IOBuf=/.../SCRIPT
|
|||||||
lda (ZPPtr4),y Load SS.SIZE
|
lda (ZPPtr4),y Load SS.SIZE
|
||||||
|
|
||||||
ldy #S.PS.ZP.STACK
|
ldy #S.PS.ZP.STACK
|
||||||
sta (PS.NewPSPtr),y save pStack LO...
|
sta (PS.NewPSPtr),y save pStack LO...
|
||||||
|
|
||||||
tay
|
tay
|
||||||
|
|
||||||
beq .3 SS.SIZE.LO=0, set as default $100
|
beq .3 SS.SIZE.LO=0, set as default $100
|
||||||
|
|
||||||
lda #1 SS.SIZE.HI
|
lda #$ff SS.SIZE.HI
|
||||||
|
|
||||||
.HS 2C bit abs
|
.3 inc
|
||||||
.3 lda #1
|
|
||||||
|
|
||||||
ldx #S.MEM.F.ALIGN+S.MEM.F.STACK
|
ldx #S.MEM.F.ALIGN+S.MEM.F.STACK
|
||||||
jsr MEM.GetMem.YAX
|
jsr MEM.GetMem.YAX
|
||||||
@ -410,16 +409,8 @@ PS.LoadBIN jsr BIN.Load K.Buf256= "${ROOT}BIN/SHELL\0", K.IOBuf=/.../SCRIPT
|
|||||||
ldy #S.PS.hSS
|
ldy #S.PS.hSS
|
||||||
sta (PS.NewPSPtr),y save SS hMem in S.PS
|
sta (PS.NewPSPtr),y save SS hMem in S.PS
|
||||||
|
|
||||||
jsr Mem.SetOwner Set Ownership
|
jmp Mem.SetOwner Set Ownership
|
||||||
|
|
||||||
* ldy #H.BIN.ZP.SIZE
|
|
||||||
* lda (ZPPtr4),y
|
|
||||||
* clc
|
|
||||||
* adc #10 Add room for 5 saved PTR
|
|
||||||
* ldy #S.PS.ZP.SIZE
|
|
||||||
* sta (PS.NewPSPtr),y
|
|
||||||
|
|
||||||
* clc
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PS.LoadGetHeader
|
PS.LoadGetHeader
|
||||||
|
@ -1199,7 +1199,18 @@ K.FSeek.RTS
|
|||||||
K.FEOF jsr PFT.CheckNodeA
|
K.FEOF jsr PFT.CheckNodeA
|
||||||
bcs K.FSeek.RTS
|
bcs K.FSeek.RTS
|
||||||
|
|
||||||
jmp IO.EOF
|
IO.EOF lda (pFD)
|
||||||
|
tax
|
||||||
|
jmp (.1,x)
|
||||||
|
|
||||||
|
.1 .DA IO.EOF.REG
|
||||||
|
.DA STDIO.IOERR DIR
|
||||||
|
.DA IO.EOF.CDEV
|
||||||
|
.DA STDIO.IOERR BDEV
|
||||||
|
.DA STDIO.IOERR LNK
|
||||||
|
.DA STDIO.IOERR DSOCK
|
||||||
|
.DA IO.EOF.SSOCK
|
||||||
|
.DA IO.EOF.PIPE
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # FTell
|
* # FTell
|
||||||
* Return the current value of the file-position indicator
|
* Return the current value of the file-position indicator
|
||||||
|
@ -66,7 +66,7 @@ UNISTD.Open ldx #5 /DEV/
|
|||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
lda Nod.Table.hFD-2,x return hFD
|
lda Nod.Table.hFD-2,x return hFD
|
||||||
jsr IO.GetPFD
|
jsr UNISTD.GetPFD
|
||||||
|
|
||||||
bra .71
|
bra .71
|
||||||
|
|
||||||
@ -168,7 +168,7 @@ IO.OPEN.ERR pha Save Error Code
|
|||||||
* `lda fd`
|
* `lda fd`
|
||||||
* `>SYSCALL close`
|
* `>SYSCALL close`
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Close jsr IO.GetPFD
|
K.Close jsr UNISTD.GetPFD
|
||||||
|
|
||||||
UNISTD.Close lda (pFD) #S.FD.T
|
UNISTD.Close lda (pFD) #S.FD.T
|
||||||
tax
|
tax
|
||||||
@ -196,7 +196,7 @@ UNISTD.Close lda (pFD) #S.FD.T
|
|||||||
* CC: Y,A = bytes read
|
* CC: Y,A = bytes read
|
||||||
* CS: A = EC
|
* CS: A = EC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Read jsr IO.GetPFD
|
K.Read jsr UNISTD.GetPFD
|
||||||
|
|
||||||
UNISTD.Read lda (pFD) #S.FD.T
|
UNISTD.Read lda (pFD) #S.FD.T
|
||||||
tax
|
tax
|
||||||
@ -224,7 +224,7 @@ UNISTD.Read lda (pFD) #S.FD.T
|
|||||||
* CC: Y,A = bytes written
|
* CC: Y,A = bytes written
|
||||||
* CS: A = EC
|
* CS: A = EC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Write jsr IO.GetPFD
|
K.Write jsr UNISTD.GetPFD
|
||||||
|
|
||||||
UNISTD.Write lda (pFD) #S.FD.T
|
UNISTD.Write lda (pFD) #S.FD.T
|
||||||
tax
|
tax
|
||||||
@ -239,6 +239,11 @@ UNISTD.Write lda (pFD) #S.FD.T
|
|||||||
.DA IO.WRITE.SSOCK
|
.DA IO.WRITE.SSOCK
|
||||||
.DA IO.WRITE.PIPE
|
.DA IO.WRITE.PIPE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
UNISTD.GetPFD sta IO.hFD
|
||||||
|
jsr K.GetMemPtr
|
||||||
|
>STYA pFD
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/SYS/KERNEL.S.UNISTD
|
SAVE USR/SRC/SYS/KERNEL.S.UNISTD
|
||||||
LOAD USR/SRC/SYS/KERNEL.S
|
LOAD USR/SRC/SYS/KERNEL.S
|
||||||
|
Loading…
x
Reference in New Issue
Block a user