mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-28 03:55:01 +00:00
Kernel 0.92
This commit is contained in:
parent
abe29c162d
commit
dfa2b31ab7
@ -9,11 +9,11 @@ CL.Init >LDYAI 256
|
|||||||
>STYA ZPCLBuf
|
>STYA ZPCLBuf
|
||||||
|
|
||||||
txa
|
txa
|
||||||
>STA.G CMD.hCLBuf
|
>STA.G CL.hCLBuf
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.Quit >LDA.G CMD.hCLBuf
|
CL.Quit >LDA.G CL.hCLBuf
|
||||||
beq .9
|
beq .9
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ CMD.Init >LDYAI 256
|
|||||||
bcs .9
|
bcs .9
|
||||||
>STYA ZPArgVBuf
|
>STYA ZPArgVBuf
|
||||||
txa
|
txa
|
||||||
>STA.G CMD.hArgVBuf
|
>STA.G CORE.hArgVBuf
|
||||||
|
|
||||||
lda #PUSHD.STACK
|
lda #PUSHD.STACK
|
||||||
tay
|
tay
|
||||||
@ -16,7 +16,7 @@ CMD.Init >LDYAI 256
|
|||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.Quit ldy #CMD.hArgVBuf
|
CMD.Quit ldy #CORE.hArgVBuf
|
||||||
jsr .8
|
jsr .8
|
||||||
|
|
||||||
ldy #hFileBuf
|
ldy #hFileBuf
|
||||||
@ -106,10 +106,10 @@ CMD.Get >LDYA ZPInputBufPtr
|
|||||||
* - or -
|
* - or -
|
||||||
* intcmd\0 arg1\0 arg2\0 ... \0
|
* intcmd\0 arg1\0 arg2\0 ... \0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.Parse >STZ.G CMD.IntCmd
|
CL.Parse >STZ.G CORE.IntCmd
|
||||||
|
|
||||||
lda #S.PS.F.HOLD+S.PS.F.DUPENV
|
lda #S.PS.F.HOLD+S.PS.F.DUPENV
|
||||||
>STA.G CMD.PSFlags
|
>STA.G CORE.PSFlags
|
||||||
|
|
||||||
>PUSHW ZPCLBuf
|
>PUSHW ZPCLBuf
|
||||||
>LDYA ZPCLBuf
|
>LDYA ZPCLBuf
|
||||||
@ -126,7 +126,7 @@ CL.Parse >STZ.G CMD.IntCmd
|
|||||||
.1 cmp #'#' comment ?
|
.1 cmp #'#' comment ?
|
||||||
beq .8 yes, ignore remaining
|
beq .8 yes, ignore remaining
|
||||||
|
|
||||||
>LDA.G CMD.IntCmd
|
>LDA.G CORE.IntCmd
|
||||||
bne .3 we already have Cmd, go check args
|
bne .3 we already have Cmd, go check args
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
@ -137,7 +137,7 @@ CL.Parse >STZ.G CMD.IntCmd
|
|||||||
cmp #'.' leading dot ?
|
cmp #'.' leading dot ?
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
>LDA.G CMD.PSFlags yes, child process will run in same ENV
|
>LDA.G CORE.PSFlags yes, child process will run in same ENV
|
||||||
and #$ff^S.PS.F.DUPENV
|
and #$ff^S.PS.F.DUPENV
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
bra .6 and skip this token
|
bra .6 and skip this token
|
||||||
@ -176,7 +176,7 @@ CL.CheckCmd ldy #$ff
|
|||||||
bra .4
|
bra .4
|
||||||
|
|
||||||
.2 >PUSHW ZPCLBufPtr
|
.2 >PUSHW ZPCLBufPtr
|
||||||
>LDYA L.CMD.INT
|
>LDYA L.CORE.INT
|
||||||
jsr Lookup no / found, search internal...
|
jsr Lookup no / found, search internal...
|
||||||
bcs .4 not internal, search PATH
|
bcs .4 not internal, search PATH
|
||||||
|
|
||||||
@ -184,7 +184,7 @@ CL.CheckCmd ldy #$ff
|
|||||||
plx
|
plx
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
>LDA.G CMD.PSFlags if STARTPROC, skip keyword...
|
>LDA.G CORE.PSFlags if STARTPROC, skip keyword...
|
||||||
and #$ff^S.PS.F.HOLD
|
and #$ff^S.PS.F.HOLD
|
||||||
sta (pData),y ...and toggle S.PS.F.HOLD flag
|
sta (pData),y ...and toggle S.PS.F.HOLD flag
|
||||||
clc
|
clc
|
||||||
@ -194,7 +194,7 @@ CL.CheckCmd ldy #$ff
|
|||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
txa
|
txa
|
||||||
>STA.G CMD.IntCmd
|
>STA.G CORE.IntCmd
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
@ -203,7 +203,7 @@ CL.CheckCmd ldy #$ff
|
|||||||
jsr CL.AddYAToArgV
|
jsr CL.AddYAToArgV
|
||||||
|
|
||||||
lda #$ff
|
lda #$ff
|
||||||
>STA.G CMD.IntCmd
|
>STA.G CORE.IntCmd
|
||||||
clc
|
clc
|
||||||
|
|
||||||
CL.CheckCmd.RTS
|
CL.CheckCmd.RTS
|
||||||
@ -223,7 +223,7 @@ CL.CheckIO >PUSHW ZPCLBufPtr
|
|||||||
.9 lda #0
|
.9 lda #0
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.IO.AMP >LDA.G CMD.PSFlags
|
CL.IO.AMP >LDA.G CORE.PSFlags
|
||||||
and #$ff^S.PS.F.HOLD
|
and #$ff^S.PS.F.HOLD
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
clc
|
clc
|
||||||
|
@ -3,7 +3,31 @@ PREFIX
|
|||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Input : CMD.IntCmd,ZPArgVBuf
|
* From hCLBuf or hFileBuf
|
||||||
|
* Get Line from buf until ;, CR, \0 (EOL / EOF)
|
||||||
|
* :LOOP
|
||||||
|
* if previous | :
|
||||||
|
* set hStdIn = hStdOut
|
||||||
|
* set hStdOut = Std
|
||||||
|
* GetCmd from line until | or EOL
|
||||||
|
* if | :
|
||||||
|
* create PIPE
|
||||||
|
* set hStdOut -> PIPE
|
||||||
|
* CORE.Exec &
|
||||||
|
* :LOOP
|
||||||
|
* else CORE.Exec
|
||||||
|
*--------------------------------------
|
||||||
|
* SET VAR = `cmd args`, FOR VAR IN `cmd args`
|
||||||
|
* create PIPE
|
||||||
|
* set hStdOut -> PIPE
|
||||||
|
* CORE.Exec `cmd args` &
|
||||||
|
* set READMODE
|
||||||
|
* set hStdIn = hStdOut
|
||||||
|
* set hStdOut = Std
|
||||||
|
*--------------------------------------
|
||||||
|
CORE.Run
|
||||||
|
*--------------------------------------
|
||||||
|
* Input : CORE.IntCmd,ZPArgVBuf
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.Exec jsr CORE.StkGet IF,WHILE,FOR ?
|
CORE.Exec jsr CORE.StkGet IF,WHILE,FOR ?
|
||||||
bcs .3 no particular context, exec...
|
bcs .3 no particular context, exec...
|
||||||
@ -21,7 +45,7 @@ CORE.Exec jsr CORE.StkGet IF,WHILE,FOR ?
|
|||||||
asl
|
asl
|
||||||
bpl .8 parent context is FALSE, skip line
|
bpl .8 parent context is FALSE, skip line
|
||||||
|
|
||||||
.3 >LDA.G CMD.IntCmd
|
.3 >LDA.G CORE.IntCmd
|
||||||
bpl .80 Internal
|
bpl .80 Internal
|
||||||
|
|
||||||
>PUSHB.G CORE.PSFlags
|
>PUSHB.G CORE.PSFlags
|
||||||
@ -31,7 +55,7 @@ CORE.Exec jsr CORE.StkGet IF,WHILE,FOR ?
|
|||||||
|
|
||||||
tax CPID
|
tax CPID
|
||||||
|
|
||||||
>LDA.G CMD.PSFlags
|
>LDA.G CORE.PSFlags
|
||||||
and #S.PS.F.HOLD
|
and #S.PS.F.HOLD
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
@ -106,7 +130,7 @@ CORE.INT.POPD.RTS
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
CORE.INT.POPD.CSYN
|
CORE.INT.POPD.CSYN
|
||||||
jmp Cmd.Exec.CSYN
|
jmp CORE.Exec.CSYN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.INT.CD ldx #1
|
CORE.INT.CD ldx #1
|
||||||
jsr CORE.GetArgX
|
jsr CORE.GetArgX
|
||||||
@ -135,13 +159,13 @@ CORE.INT.CD.1 >SYSCALL realpath
|
|||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
beq CORE.SetPrefixPHA we have '/'
|
beq CORE.SetPrefixPHA we have '/'
|
||||||
|
|
||||||
>PUSHEA.G CMD.Stat
|
>PUSHEA.G StatBuf
|
||||||
>LDYA ZPPtr1
|
>LDYA ZPPtr1
|
||||||
>SYSCALL STAT
|
>SYSCALL STAT
|
||||||
|
|
||||||
bcs CORE.INT.CD.1.9
|
bcs CORE.INT.CD.1.9
|
||||||
|
|
||||||
>LDA.G CMD.Stat+S.STAT.P.TYPE
|
>LDA.G StatBuf+S.STAT.P.TYPE
|
||||||
cmp #S.FI.T.DIR
|
cmp #S.FI.T.DIR
|
||||||
bne CORE.INT.CD.1.9
|
bne CORE.INT.CD.1.9
|
||||||
|
|
||||||
@ -356,10 +380,10 @@ CORE.INT.DATE sec
|
|||||||
.HS 90 bcc
|
.HS 90 bcc
|
||||||
CORE.INT.TIME clc
|
CORE.INT.TIME clc
|
||||||
php
|
php
|
||||||
>LEA.G CORE.Time
|
>LEA.G TimeBuf
|
||||||
>SYSCALL Time
|
>SYSCALL Time
|
||||||
|
|
||||||
>PUSHEA.G CORE.Time
|
>PUSHEA.G TimeBuf
|
||||||
|
|
||||||
plp
|
plp
|
||||||
bcc .1
|
bcc .1
|
||||||
@ -460,7 +484,7 @@ CORE.INT.GETKEY ldx #1
|
|||||||
>PUSHEA.G M32.BUF
|
>PUSHEA.G M32.BUF
|
||||||
|
|
||||||
ldx #1
|
ldx #1
|
||||||
jsr Cmd.GetArgX
|
jsr CORE.GetArgX
|
||||||
>SYSCALL SetEnv
|
>SYSCALL SetEnv
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
@ -501,9 +525,9 @@ CORE.INT.READ lda #1
|
|||||||
txa
|
txa
|
||||||
>STA.G hVarName
|
>STA.G hVarName
|
||||||
|
|
||||||
.7 >INC.G CMD.ArgIndex
|
.7 >INC.G CORE.ArgIndex
|
||||||
tax
|
tax
|
||||||
jsr Cmd.GetArgX
|
jsr CORE.GetArgX
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
>LDA.G hVarName
|
>LDA.G hVarName
|
||||||
@ -579,13 +603,13 @@ CORE.INT.RD ldx #1
|
|||||||
bcs .9
|
bcs .9
|
||||||
phy
|
phy
|
||||||
pha
|
pha
|
||||||
>PUSHEA.G CORE.Stat
|
>PUSHEA.G StatBuf
|
||||||
pla
|
pla
|
||||||
ply
|
ply
|
||||||
>SYSCALL STAT
|
>SYSCALL STAT
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>LDA.G CORE.Stat+S.STAT.P.TYPE
|
>LDA.G StatBuf+S.STAT.P.TYPE
|
||||||
cmp #S.FI.T.DIR
|
cmp #S.FI.T.DIR
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
@ -790,7 +814,7 @@ CORE.Eval.UNARY ldx #3
|
|||||||
|
|
||||||
CORE.Eval.D jsr CORE.Eval.DEF.7
|
CORE.Eval.D jsr CORE.Eval.DEF.7
|
||||||
bcs CORE.Eval.DEF.9
|
bcs CORE.Eval.DEF.9
|
||||||
>LDA.G CORE.Stat+S.STAT.P.TYPE
|
>LDA.G StatBuf+S.STAT.P.TYPE
|
||||||
cmp #S.FI.T.DIR
|
cmp #S.FI.T.DIR
|
||||||
bne CORE.Eval.DEF.9
|
bne CORE.Eval.DEF.9
|
||||||
bra CORE.Eval.DEF.8
|
bra CORE.Eval.DEF.8
|
||||||
@ -802,12 +826,12 @@ CORE.Eval.E jsr CORE.Eval.DEF.7
|
|||||||
CORE.Eval.F jsr CORE.Eval.DEF.7
|
CORE.Eval.F jsr CORE.Eval.DEF.7
|
||||||
bcs CORE.Eval.DEF.9
|
bcs CORE.Eval.DEF.9
|
||||||
|
|
||||||
>LDA.G CORE.Stat+S.STAT.P.TYPE
|
>LDA.G StatBuf+S.STAT.P.TYPE
|
||||||
cmp #S.FI.T.DIR
|
cmp #S.FI.T.DIR
|
||||||
beq CORE.Eval.DEF.9
|
beq CORE.Eval.DEF.9
|
||||||
bra CORE.Eval.DEF.8
|
bra CORE.Eval.DEF.8
|
||||||
|
|
||||||
CORE.Eval.DEF.7 >PUSHEA.G CORE.Stat
|
CORE.Eval.DEF.7 >PUSHEA.G StatBuf
|
||||||
ldx #3
|
ldx #3
|
||||||
jsr CORE.GetArgX
|
jsr CORE.GetArgX
|
||||||
>SYSCALL STAT
|
>SYSCALL STAT
|
||||||
|
@ -4,11 +4,11 @@ AUTO 4,1
|
|||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF BIN/SHELL2
|
.TF BIN/SHELL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.MAX .EQ 159
|
CL.MAX .EQ 159
|
||||||
History.MAX .EQ 256
|
History.MAX .EQ 256
|
||||||
CMD.STACK.MAX .EQ 64
|
CORE.STACK.MAX .EQ 64
|
||||||
PUSHD.STACK.MAX .EQ 8
|
PUSHD.STACK.MAX .EQ 8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
C.STARTPROC .EQ 0
|
C.STARTPROC .EQ 0
|
||||||
@ -192,7 +192,7 @@ CS.RUN jsr CMD.Init
|
|||||||
|
|
||||||
bra CS.RUN.LOOP
|
bra CS.RUN.LOOP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1 jsr Cmd.INT.CD.HOME
|
.1 jsr CORE.INT.CD.HOME
|
||||||
jsr CL.Init
|
jsr CL.Init
|
||||||
jsr HIS.Init
|
jsr HIS.Init
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
@ -203,7 +203,7 @@ CS.RUN jsr CMD.Init
|
|||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
|
|
||||||
>PUSHEA.G CMD.Stat
|
>PUSHEA.G StatBuf
|
||||||
>LDYA L.HOME.PROFILE
|
>LDYA L.HOME.PROFILE
|
||||||
>SYSCALL STAT
|
>SYSCALL STAT
|
||||||
bcs CS.RUN.LOOP
|
bcs CS.RUN.LOOP
|
||||||
@ -358,7 +358,7 @@ CS.RUN.BATCH >SYSCALL GetChar
|
|||||||
clc
|
clc
|
||||||
jmp CS.RUN.LOOP.END
|
jmp CS.RUN.LOOP.END
|
||||||
|
|
||||||
.2 jsr CL.GetCmd
|
.2 jsr CMD.Get
|
||||||
bcc .7
|
bcc .7
|
||||||
|
|
||||||
cmp #C.EOF
|
cmp #C.EOF
|
||||||
@ -394,7 +394,7 @@ CS.RUN.Exec jsr CL.Parse
|
|||||||
|
|
||||||
lda (ZPArgVBuf)
|
lda (ZPArgVBuf)
|
||||||
beq CS.RUN.LOOP.8
|
beq CS.RUN.LOOP.8
|
||||||
jsr CMD.Exec
|
jsr CORE.Exec
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.LOOP.END ldy #S.PS.RC
|
CS.RUN.LOOP.END ldy #S.PS.RC
|
||||||
sta (pPs),y
|
sta (pPs),y
|
||||||
@ -543,9 +543,10 @@ Lookup >STYA ZPPtr2
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB USR/SRC/BIN/SHELL.S.CL
|
.INB USR/SRC/BIN/SHELL.S.CL
|
||||||
|
.INB USR/SRC/BIN/SHELL.S.HIS
|
||||||
|
.INB USR/SRC/BIN/SHELL.S.CORE
|
||||||
.INB USR/SRC/BIN/SHELL.S.CMD
|
.INB USR/SRC/BIN/SHELL.S.CMD
|
||||||
.INB USR/SRC/BIN/SHELL.S.IO
|
.INB USR/SRC/BIN/SHELL.S.IO
|
||||||
.INB USR/SRC/BIN/SHELL.S.HIS
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -580,7 +581,7 @@ CL.IO .AZ "&"
|
|||||||
.AZ "2>"
|
.AZ "2>"
|
||||||
.HS 00
|
.HS 00
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.INT .AZ "STARTPROC"
|
CORE.INT .AZ "STARTPROC"
|
||||||
.AZ "CD"
|
.AZ "CD"
|
||||||
.AZ "DATE"
|
.AZ "DATE"
|
||||||
.AZ "ECHO"
|
.AZ "ECHO"
|
||||||
@ -609,14 +610,17 @@ CMD.INT .AZ "STARTPROC"
|
|||||||
.AZ "FI"
|
.AZ "FI"
|
||||||
.HS 00
|
.HS 00
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CMD.Eval.TOKEN1 .AZ "!["
|
CORE.Eval.TOKEN1
|
||||||
|
.AZ "!["
|
||||||
.AZ "["
|
.AZ "["
|
||||||
.HS 00
|
.HS 00
|
||||||
CMD.Eval.TOKEN2 .AZ "-d"
|
CORE.Eval.TOKEN2
|
||||||
|
.AZ "-d"
|
||||||
.AZ "-e"
|
.AZ "-e"
|
||||||
.AZ "-f"
|
.AZ "-f"
|
||||||
.HS 00
|
.HS 00
|
||||||
CMD.Eval.TOKEN3 .AZ "="
|
CORE.Eval.TOKEN3
|
||||||
|
.AZ "="
|
||||||
.AZ "!="
|
.AZ "!="
|
||||||
.AZ "-eq"
|
.AZ "-eq"
|
||||||
.AZ "-ne"
|
.AZ "-ne"
|
||||||
@ -625,7 +629,7 @@ CMD.Eval.TOKEN3 .AZ "="
|
|||||||
.AZ "-gt"
|
.AZ "-gt"
|
||||||
.AZ "-ge"
|
.AZ "-ge"
|
||||||
.HS 00
|
.HS 00
|
||||||
CMD.Eval.TOKEN3.BITS
|
CORE.Eval.TOKEN3.BITS
|
||||||
.DA #%000
|
.DA #%000
|
||||||
.DA #%000
|
.DA #%000
|
||||||
.DA #%010
|
.DA #%010
|
||||||
@ -634,7 +638,8 @@ CMD.Eval.TOKEN3.BITS
|
|||||||
.DA #%110
|
.DA #%110
|
||||||
.DA #%001
|
.DA #%001
|
||||||
.DA #%011
|
.DA #%011
|
||||||
CMD.Eval.TOKEN4 .AZ "+"
|
CORE.Eval.TOKEN4
|
||||||
|
.AZ "+"
|
||||||
.AZ "-"
|
.AZ "-"
|
||||||
.AZ "*"
|
.AZ "*"
|
||||||
.AZ "div"
|
.AZ "div"
|
||||||
@ -651,7 +656,7 @@ M32.Printf .AZ "%L"
|
|||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
CMD.STACK .BS CMD.STACK.MAX+1 pData (0 = Stack Ptr)
|
CORE.STACK .BS CORE.STACK.MAX+1 pData (0 = Stack Ptr)
|
||||||
PUSHD.STACK .BS PUSHD.STACK.MAX+1
|
PUSHD.STACK .BS PUSHD.STACK.MAX+1
|
||||||
|
|
||||||
hFileBuf .BS 1 batch mode
|
hFileBuf .BS 1 batch mode
|
||||||
@ -672,17 +677,17 @@ CL.Ptr .BS 1
|
|||||||
CL.Len .BS 1
|
CL.Len .BS 1
|
||||||
CL.bExec .BS 1
|
CL.bExec .BS 1
|
||||||
|
|
||||||
CMD.IntCmd .BS 1
|
CORE.IntCmd .BS 1
|
||||||
CMD.hArgVBuf .BS 1
|
CORE.hArgVBuf .BS 1
|
||||||
|
|
||||||
CMD.ArgIndex .BS 1
|
CORE.ArgIndex .BS 1
|
||||||
CMD.Varname .BS 1
|
CORE.Varname .BS 1
|
||||||
CMD.Test .BS 1
|
CORE.Test .BS 1
|
||||||
CMD.Operator .BS 1
|
CORE.Operator .BS 1
|
||||||
|
|
||||||
CMD.PSFlags .BS 1
|
CORE.PSFlags .BS 1
|
||||||
CMD.Stat .BS S.STAT
|
StatBuf .BS S.STAT
|
||||||
CMD.Time .BS S.TIME
|
TimeBuf .BS S.TIME
|
||||||
|
|
||||||
HIS.hBuf .BS 1
|
HIS.hBuf .BS 1
|
||||||
HIS.Count .BS 1
|
HIS.Count .BS 1
|
||||||
|
@ -431,8 +431,6 @@ S.FD.REG.IOBUF .EQ 3
|
|||||||
*
|
*
|
||||||
S.FD.REG .EQ 4
|
S.FD.REG .EQ 4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.FD.DIR.REF .EQ 2
|
|
||||||
S.FD.DIR.IOBUF .EQ 3
|
|
||||||
S.FD.DIR.EL .EQ 4
|
S.FD.DIR.EL .EQ 4
|
||||||
S.FD.DIR.EPB .EQ 5
|
S.FD.DIR.EPB .EQ 5
|
||||||
S.FD.DIR.FC .EQ 6 word
|
S.FD.DIR.FC .EQ 6 word
|
||||||
|
@ -14,14 +14,12 @@ K.GetDevByName >STYA ZPPtr1 requested dev name
|
|||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.1 lda Dev.Table,x
|
.1 lda Dev.Table,x
|
||||||
sta .3+1
|
|
||||||
clc
|
clc
|
||||||
adc #S.FD.DEV
|
adc #S.FD.DEV
|
||||||
sta ZPPtr2
|
sta ZPPtr2
|
||||||
|
|
||||||
lda Dev.Table+1,x
|
lda Dev.Table+1,x
|
||||||
beq K.GetDev.NODEV
|
beq K.GetDev.NODEV
|
||||||
sta .4+1
|
|
||||||
adc /S.FD.DEV
|
adc /S.FD.DEV
|
||||||
sta ZPPtr2+1
|
sta ZPPtr2+1
|
||||||
|
|
||||||
@ -35,8 +33,8 @@ K.GetDevByName >STYA ZPPtr1 requested dev name
|
|||||||
ora (ZPPtr2),y Both char are 0 ?
|
ora (ZPPtr2),y Both char are 0 ?
|
||||||
bne .2 no....loop
|
bne .2 no....loop
|
||||||
|
|
||||||
.3 ldy #$ff SELF MODIFIED
|
.3 ldy Dev.Table,x
|
||||||
.4 lda #$ff SELF MODIFIED
|
.4 lda Dev.Table+1,x
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -39,17 +39,9 @@ K.OpenDir jsr PFT.CheckPathYA
|
|||||||
cmp #$0F Directory ?
|
cmp #$0F Directory ?
|
||||||
bne .98
|
bne .98
|
||||||
|
|
||||||
jsr STDIO.SetIOBUF
|
jsr IO.MLIOPEN
|
||||||
|
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
>MLICALL MLIOPEN
|
|
||||||
bcs .98
|
|
||||||
|
|
||||||
lda K.MLI.PARAMS+5 get ref_num
|
|
||||||
ldy #S.FD.DIR.REF
|
|
||||||
sta (pFD),y
|
|
||||||
|
|
||||||
.8 lda #$ff Self Modified
|
.8 lda #$ff Self Modified
|
||||||
jsr STDIO.NewHFile
|
jsr STDIO.NewHFile
|
||||||
|
|
||||||
@ -90,7 +82,7 @@ K.ReadDir.EC .BS 2
|
|||||||
K.ReadDir jsr PFT.CheckNodeA
|
K.ReadDir jsr PFT.CheckNodeA
|
||||||
bcs K.ReadDir.RTS
|
bcs K.ReadDir.RTS
|
||||||
|
|
||||||
ldy #S.FD.DIR.REF
|
ldy #S.FD.REG.REF
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
beq K.ReadDir.ROOT
|
beq K.ReadDir.ROOT
|
||||||
jmp K.ReadDir.DIR
|
jmp K.ReadDir.DIR
|
||||||
|
@ -181,11 +181,11 @@ Kernel.Init3C >LDYAI MSG.Init3
|
|||||||
>LDYAI MSG.Prefix
|
>LDYAI MSG.Prefix
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
|
|
||||||
lda KBD
|
* lda KBD
|
||||||
bpl .7
|
* bpl .7
|
||||||
sta KBDSTROBE
|
* sta KBDSTROBE
|
||||||
cmp #146 CTRL-R for ROOT mode
|
* cmp #146 CTRL-R for ROOT mode
|
||||||
bne .7
|
* bne .7
|
||||||
|
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>LDYAI MSG.CTRLR
|
>LDYAI MSG.CTRLR
|
||||||
|
@ -121,18 +121,9 @@ IO.OPEN.REG.E >LDYAI S.FD.REG
|
|||||||
* lda #S.FD.T.REG
|
* lda #S.FD.T.REG
|
||||||
* sta (pFD),y
|
* sta (pFD),y
|
||||||
|
|
||||||
jsr STDIO.SetIOBUF
|
jsr IO.MLIOPEN
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>MLICALL MLIOPEN
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
lda K.MLI.PARAMS+5 get ref_num
|
|
||||||
ldy #S.FD.REG.REF
|
|
||||||
sta (pFD),y
|
|
||||||
|
|
||||||
sta K.MLI.PARAMS+1 Next MLI Calls are REF_NUM based
|
|
||||||
|
|
||||||
lda K.Open.FLAGS
|
lda K.Open.FLAGS
|
||||||
bit #O.WRONLY
|
bit #O.WRONLY
|
||||||
beq .20 Write mode ?
|
beq .20 Write mode ?
|
||||||
@ -479,6 +470,28 @@ K.Pipe
|
|||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
IO.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF
|
||||||
|
ldx #S.MEM.F.ALIGN+S.MEM.F.NOMOVE
|
||||||
|
jsr MEM.GetMem.YAX
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>STYA K.MLI.PARAMS+3 Save Ptr to IOBUF for MLIOPEN call
|
||||||
|
txa
|
||||||
|
ldy #S.FD.REG.IOBUF
|
||||||
|
sta (pFD),y
|
||||||
|
|
||||||
|
>MLICALL MLIOPEN
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
lda K.MLI.PARAMS+5 get ref_num
|
||||||
|
ldy #S.FD.REG.REF
|
||||||
|
sta (pFD),y
|
||||||
|
|
||||||
|
sta K.MLI.PARAMS+1 Next MLI Calls are REF_NUM based
|
||||||
|
|
||||||
|
* clc
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
IO.DEVDIR >PSTR "/DEV/"
|
IO.DEVDIR >PSTR "/DEV/"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
@ -2,7 +2,7 @@ NEW
|
|||||||
PREFIX
|
PREFIX
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
X.SLIST jmp (.1-SYS.SListAdd,x)
|
X.SLIST jmp (.1-SYS.SListAddData,x)
|
||||||
.1 .DA SLIST.Add
|
.1 .DA SLIST.Add
|
||||||
.DA SLIST.Lookup
|
.DA SLIST.Lookup
|
||||||
.DA SLIST.GetByID
|
.DA SLIST.GetByID
|
||||||
|
@ -974,7 +974,7 @@ K.SScanF.Fwd tya Y=char count parsed
|
|||||||
* CS : A = EC
|
* CS : A = EC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.FOpen jsr PFT.CheckPathYA
|
K.FOpen jsr PFT.CheckPathYA
|
||||||
bcs .99
|
bcs K.FOpen.RET4
|
||||||
|
|
||||||
>PULLB K.Open.FLAGS
|
>PULLB K.Open.FLAGS
|
||||||
>PULLB K.Open.TYPE
|
>PULLB K.Open.TYPE
|
||||||
@ -995,7 +995,7 @@ K.FOpen jsr PFT.CheckPathYA
|
|||||||
sec
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
.99 >RET 4
|
K.FOpen.RET4 >RET 4
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # FClose
|
* # FClose
|
||||||
* Close a file
|
* Close a file
|
||||||
@ -1042,7 +1042,7 @@ K.FClose jsr PFT.CheckNodeA
|
|||||||
* Y,A = Bytes Read
|
* Y,A = Bytes Read
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.FRead jsr PFT.CheckNodeA
|
K.FRead jsr PFT.CheckNodeA
|
||||||
bcs K.FWrite.9
|
bcs K.FOpen.RET4
|
||||||
|
|
||||||
jmp IO.Read.I
|
jmp IO.Read.I
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
@ -1060,10 +1060,9 @@ K.FRead jsr PFT.CheckNodeA
|
|||||||
* Y,A = Bytes Written
|
* Y,A = Bytes Written
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.FWrite jsr PFT.CheckNodeA
|
K.FWrite jsr PFT.CheckNodeA
|
||||||
bcs K.FWrite.9
|
bcs K.FOpen.RET4
|
||||||
|
|
||||||
jmp IO.Write.I
|
jmp IO.Write.I
|
||||||
K.FWrite.9 >RET 4
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # FFlush
|
* # FFlush
|
||||||
* ## C
|
* ## C
|
||||||
@ -1318,17 +1317,6 @@ STDIO.NewHFile sta .4+1 Store hFD
|
|||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STDIO.SetIOBUF >LDYAI 1024 get a ProDOS IOBUF
|
|
||||||
ldx #S.MEM.F.ALIGN+S.MEM.F.NOMOVE
|
|
||||||
jsr MEM.GetMem.YAX
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>STYA K.MLI.PARAMS+3 Save Ptr to IOBUF for MLIOPEN call
|
|
||||||
txa
|
|
||||||
ldy #S.FD.REG.IOBUF
|
|
||||||
sta (pFD),y
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
STDIO.IOERR lda #MLI.E.IO
|
STDIO.IOERR lda #MLI.E.IO
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
Loading…
Reference in New Issue
Block a user