mirror of
https://github.com/A2osX/A2osX.git
synced 2026-04-24 03:16:46 +00:00
Kernel 0.9.2
This commit is contained in:
+12
-16
@@ -1,6 +1,15 @@
|
||||
*** Auto generated by docgen.cmd ***
|
||||
|
||||
# GetArg
|
||||
# Args2ArgV
|
||||
|
||||
## ASM
|
||||
`>PUSHW argv`
|
||||
`>LDYA args`
|
||||
`>SYSCALL Args2ArgV
|
||||
|
||||
## RETURN VALUE
|
||||
|
||||
# ArgV
|
||||
|
||||
## ASM
|
||||
**In:**
|
||||
@@ -530,23 +539,10 @@ Load a file in AUX memory (Stock Objects)
|
||||
Y,A = File Length
|
||||
X = hMem of Loaded Object in AUX mem
|
||||
|
||||
# ExecL
|
||||
# Exec
|
||||
|
||||
## C
|
||||
`int execl(const char* cmdline, short int flags);`
|
||||
|
||||
## ASM
|
||||
`>PUSHB flags`
|
||||
`>LDYA cmdline`
|
||||
`>SYSCALL execl`
|
||||
|
||||
## RETURN VALUE
|
||||
A = Child PSID
|
||||
|
||||
# ExecV
|
||||
|
||||
## C
|
||||
`int execv(const char* argv[], short int flags);`
|
||||
`int exec(const char* argv[], short int flags);`
|
||||
|
||||
## ASM
|
||||
`>PUSHB flags`
|
||||
|
||||
Binary file not shown.
Binary file not shown.
+2
-2
@@ -64,7 +64,7 @@ CS.RUN ldy #S.PS.ARGC
|
||||
>PUSHEA.G DST.IP
|
||||
>PUSHW L.SSCANF.IP
|
||||
lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
|
||||
>SYSCALL sscanf
|
||||
bcs .9
|
||||
@@ -127,7 +127,7 @@ CS.RUN.ADD >PUSHEA.G DST.MAC+5
|
||||
>PUSHEA.G DST.MAC
|
||||
>PUSHW L.SSCANF.MAC
|
||||
lda #2
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
|
||||
>SYSCALL sscanf
|
||||
bcs .9
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ AUTO 4,1
|
||||
FIO.Init >LDYA L.ASM.6502
|
||||
FIO.LOAD.ASM.T >STYA ZPPtr2
|
||||
|
||||
ldy #S.PS.hARGS
|
||||
ldy #S.PS.hARGV
|
||||
lda (pPS),y
|
||||
>SYSCALL GetMemPtr
|
||||
|
||||
|
||||
+1
-1
@@ -200,7 +200,7 @@ CS.INIT ldy #S.PS.ARGC
|
||||
beq .99
|
||||
|
||||
lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>SYSCALL RealPath
|
||||
|
||||
txa
|
||||
|
||||
+2
-2
@@ -42,7 +42,7 @@ L.ASCII .DA ASCII
|
||||
*--------------------------------------
|
||||
CS.INIT
|
||||
.1 >INC.G ArgCount
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
bcs .7
|
||||
|
||||
>STYA ZPPtr1
|
||||
@@ -111,7 +111,7 @@ CS.RUN >SYSCALL GetChar
|
||||
bne .2
|
||||
|
||||
.1 >INC.G ArgIndex
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
bcs .99 No more arg...the end!
|
||||
|
||||
>STYA ZPPtr1
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ L.PRODOS.FT.TXT .DA PRODOS.FT.TXT
|
||||
*--------------------------------------
|
||||
CS.INIT
|
||||
.1 >INC.G ArgCount
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
bcs .7
|
||||
>STYA ZPPtr1
|
||||
|
||||
|
||||
+2
-2
@@ -65,14 +65,14 @@ CS.RUN.ADD cmp #2
|
||||
>PUSHBI 8 4 PTRs
|
||||
>PUSHW L.SSCANF.IP
|
||||
lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
|
||||
>SYSCALL sscanf
|
||||
bcs .9
|
||||
|
||||
>PUSHEA.G DST.IP
|
||||
lda #2
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.DNS.ADD
|
||||
bcs .99
|
||||
|
||||
+1
-1
@@ -107,7 +107,7 @@ CS.INIT lda #$ff
|
||||
beq .1 No arg, new file....
|
||||
|
||||
lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
|
||||
>SYSCALL RealPath
|
||||
txa
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ CS.INIT ldy #S.PS.ARGC
|
||||
|
||||
.1 >INC.G ArgIndex
|
||||
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
bcc .11
|
||||
jmp .8
|
||||
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ L.FMT.DateTime .DA FMT.DateTime
|
||||
*--------------------------------------
|
||||
CS.INIT
|
||||
.1 >INC.G ArgCount
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
bcs .6
|
||||
>STYA ZPPtr1
|
||||
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ CS.INIT clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
bcs .99
|
||||
|
||||
>SYSCALL RealPath
|
||||
|
||||
+3
-3
@@ -45,7 +45,7 @@ CS.INIT ldy #S.PS.ARGC
|
||||
|
||||
.1 >INC.G ArgIndex
|
||||
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
bcs .8
|
||||
|
||||
>STYA ZPPtr1
|
||||
@@ -101,7 +101,7 @@ CS.RUN >LDA.G bText
|
||||
beq CS.RUN.FILE
|
||||
*--------------------------------------
|
||||
CS.RUN.TEXT >LDA.G Arg
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHEA.G MD5Buf
|
||||
|
||||
@@ -112,7 +112,7 @@ CS.RUN.TEXT >LDA.G Arg
|
||||
CS.RUN.TEXT.RTS rts
|
||||
*--------------------------------------
|
||||
CS.RUN.FILE >LDA.G Arg
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>SYSCALL RealPath
|
||||
bcs CS.RUN.TEXT.RTS
|
||||
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ L.LIBTCPIP .DA LIBTCPIP
|
||||
L.MSG.USAGE .DA MSG.USAGE
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT >SYSCALL GetArgC
|
||||
CS.INIT >SYSCALL ArgVC
|
||||
cmp #1
|
||||
|
||||
beq .99
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ CS.RUN.READ jsr NSC.Init
|
||||
rts
|
||||
|
||||
CS.RUN.SET lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>STYA ZPPtr1
|
||||
|
||||
lda (ZPPtr1)
|
||||
|
||||
+2
-2
@@ -68,7 +68,7 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ?
|
||||
|
||||
CS.RUN.IPOK
|
||||
.1 >INC.G ArgIndex
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
bcs .8
|
||||
>STYA ZPTmpPtr
|
||||
|
||||
@@ -121,7 +121,7 @@ CS.RUN.IPOK
|
||||
rts
|
||||
|
||||
CS.RUN.ARGSOK >LDA.G ArgHostName
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
|
||||
ldy #DST.IP+3
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ CS.RUN >LDYA pData
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPPtr
|
||||
|
||||
ldy #S.PS.hARGS
|
||||
ldy #S.PS.hARGV
|
||||
lda (ZPPtr),y
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
|
||||
+3
-3
@@ -81,7 +81,7 @@ CS.RUN jsr Init.Timeout
|
||||
|
||||
.1 >PUSHW L.Socket.Dst.Addr
|
||||
lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
||||
bcc .2
|
||||
@@ -91,7 +91,7 @@ CS.RUN jsr Init.Timeout
|
||||
bcc .1
|
||||
|
||||
lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
|
||||
>PUSHBI 2
|
||||
@@ -151,7 +151,7 @@ CS.RUN jsr Init.Timeout
|
||||
rts
|
||||
|
||||
.99 lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHBI 2
|
||||
>LDYA L.MSG.TIMEOUT
|
||||
|
||||
+4
-4
@@ -82,7 +82,7 @@ CS.RUN.IPOK ldy #S.PS.ARGC
|
||||
|
||||
.2 >PUSHW L.SA.REMOTE.AD
|
||||
lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
||||
bcc CS.RUN.HOSTOK
|
||||
@@ -91,7 +91,7 @@ CS.RUN.IPOK ldy #S.PS.ARGC
|
||||
bcc .2
|
||||
|
||||
lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHBI 2
|
||||
>LDYA L.MSG.UNKNOWN
|
||||
@@ -111,12 +111,12 @@ CS.RUN.HOSTOK ldy #S.PS.ARGC
|
||||
bcc CS.RUN.PORTOK
|
||||
|
||||
lda #2
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>SYSCALL atoi
|
||||
>STYA SA.REMOTE+S.SOCKADDR.PORT
|
||||
|
||||
CS.RUN.PORTOK lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
|
||||
>PUSHW SA.REMOTE+S.SOCKADDR.PORT
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ L.STAT .DA STAT
|
||||
*--------------------------------------
|
||||
CS.INIT
|
||||
.1 >INC.G ArgCount
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
bcs .7
|
||||
>STYA ZPPtr1
|
||||
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@ L.MSG.DONE .DA MSG.DONE
|
||||
*--------------------------------------
|
||||
CS.INIT
|
||||
.1 >INC.G ArgCount
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
bcs .7
|
||||
|
||||
>STYA ZPPtr1
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ L.MSG.DONE .DA MSG.DONE
|
||||
*--------------------------------------
|
||||
CS.INIT
|
||||
.1 >INC.G Count
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
bcs .7
|
||||
|
||||
>STYA ZPPtr1
|
||||
|
||||
+5
-5
@@ -199,8 +199,8 @@ SYS.UnloadLib .EQ $9A
|
||||
SYS.LoadDrv .EQ $9C
|
||||
SYS.InsDrv .EQ $9E
|
||||
*--------------------------------------
|
||||
SYS.ExecL .EQ $A0
|
||||
SYS.ExecV .EQ $A2
|
||||
SYS.Exec .EQ $A0
|
||||
* .EQ $A2
|
||||
* .EQ $A4
|
||||
* .EQ $A6
|
||||
|
||||
@@ -209,8 +209,8 @@ SYS.GetMemStat .EQ $AA
|
||||
SYS.GetPSStatus .EQ $AC
|
||||
SYS.GetPSStat .EQ $AE
|
||||
|
||||
* .EQ $B0
|
||||
SYS.GetArg .EQ $B2
|
||||
SYS.Args2ArgV .EQ $B0
|
||||
SYS.ArgV .EQ $B2
|
||||
SYS.ExpandStr .EQ $B4
|
||||
SYS.FileSearch .EQ $B6
|
||||
|
||||
@@ -487,7 +487,7 @@ S.PS.hStdOut .EQ 11
|
||||
S.PS.hStdErr .EQ 12
|
||||
S.PS.RC .EQ 13
|
||||
S.PS.ARGC .EQ 14
|
||||
S.PS.hARGS .EQ 15
|
||||
S.PS.hARGV .EQ 15
|
||||
|
||||
* .EQ 16
|
||||
|
||||
|
||||
+2
-2
@@ -53,7 +53,7 @@ CS.RUN ldy #S.PS.ARGC
|
||||
>PUSHBI 0 type
|
||||
>PUSHBI O.RDWR
|
||||
lda #1
|
||||
>SYSCALL GetArg get /dev/xxx
|
||||
>SYSCALL ArgV get /dev/xxx
|
||||
>SYSCALL fopen
|
||||
bcs .9
|
||||
|
||||
@@ -116,7 +116,7 @@ CS.RUN.LOOP1 >SLEEP
|
||||
|
||||
.2 >PUSHBI S.PS.F.DUPENV+S.PS.F.HOLD
|
||||
lda #2
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>SYSCALL Exec
|
||||
bcs CS.RUN.9
|
||||
|
||||
|
||||
+2
-2
@@ -41,7 +41,7 @@ CS.RUN ldy #S.PS.ARGC
|
||||
beq .9
|
||||
|
||||
lda #1 get PTR to ARG[1] (Driver name)
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
|
||||
>PUSHBI 2
|
||||
@@ -49,7 +49,7 @@ CS.RUN ldy #S.PS.ARGC
|
||||
>SYSCALL printf
|
||||
|
||||
lda #1 get PTR to ARG[1] (Driver name)
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
|
||||
>SYSCALL LoadDrv YA = PTR to ARG[1...n]
|
||||
bcs .99
|
||||
|
||||
+96
-28
@@ -31,11 +31,6 @@ Cmd.Parse >LDYA ZPCMDBuf
|
||||
txa
|
||||
>STA.G CMD.hCmdLine
|
||||
|
||||
* SET +X
|
||||
>LDYA ZPPtr1
|
||||
>SYSCALL puts
|
||||
bcs .90
|
||||
|
||||
ldy #0
|
||||
|
||||
lda (ZPPtr1) empty line...quit
|
||||
@@ -105,14 +100,13 @@ CMD.Exec lda #S.PS.F.HOLD+S.PS.F.DUPENV
|
||||
jmp (J.CMD.INT,x) Found an internal Cmd...
|
||||
|
||||
.2 jsr Cmd.NextStrPtr2
|
||||
|
||||
lda (ZPPtr2)
|
||||
beq Cmd.Exec.EXT Array Ending 0, must be an external Cmd....
|
||||
|
||||
>STYA ZPPtr2
|
||||
plx
|
||||
inx
|
||||
inx
|
||||
bra .1
|
||||
|
||||
lda (ZPPtr2) Array Ending 0, must be an external Cmd....
|
||||
bne .1
|
||||
*--------------------------------------
|
||||
Cmd.Exec.EXT ldy #0
|
||||
|
||||
@@ -212,7 +206,7 @@ Cmd.Exec.EXT.Search
|
||||
*--------------------------------------
|
||||
Cmd.Exec.EXT.TXT
|
||||
lda #0
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
ldx #0
|
||||
jsr Cmd.InsertStrYAAtX
|
||||
*--------------------------------------
|
||||
@@ -435,9 +429,42 @@ Cmd.INT.TIME clc
|
||||
>SYSCALL puts
|
||||
rts
|
||||
*--------------------------------------
|
||||
Cmd.INT.ECHO >LDYA ZPCMDBuf
|
||||
>SYSCALL puts
|
||||
Cmd.INT.ECHO >PUSHW ZPCMDBuf
|
||||
ldy #S.PS.hStdOut
|
||||
lda (pPs),y
|
||||
>SYSCALL fputs
|
||||
bcs .9
|
||||
|
||||
ldx #1
|
||||
|
||||
.1 phx
|
||||
jsr Cmd.GetStrAtX
|
||||
bcs .7
|
||||
>PUSHYA
|
||||
|
||||
lda #C.SPACE
|
||||
>SYSCALL putchar
|
||||
|
||||
ldy #S.PS.hStdOut
|
||||
lda (pPs),y
|
||||
>SYSCALL fputs
|
||||
plx
|
||||
inx
|
||||
bcc .1
|
||||
|
||||
rts
|
||||
|
||||
.7 plx
|
||||
>LDA.G bECHO.N
|
||||
bmi .8
|
||||
|
||||
>PUSHBI 0
|
||||
>LDYA L.MSG.ECHOCRLF
|
||||
>SYSCALL printf
|
||||
rts
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
Cmd.INT.READ lda (ZPCMDBuf)
|
||||
beq .9
|
||||
@@ -656,12 +683,13 @@ Cmd.InsertStrYAAtX
|
||||
iny
|
||||
bne .6
|
||||
|
||||
.8 rts
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Cmd.RemoveStrAtX
|
||||
>LDYA ZPCMDBuf
|
||||
>STYA ZPPtr1
|
||||
|
||||
|
||||
.1 dex
|
||||
bmi .2
|
||||
|
||||
@@ -672,27 +700,55 @@ Cmd.RemoveStrAtX
|
||||
.2 jsr Cmd.NextStrPtr1
|
||||
>STYA ZPPtr2
|
||||
|
||||
ldy #0
|
||||
.3 ldy #0
|
||||
|
||||
.3 lda (ZPPtr2),y
|
||||
.4 lda (ZPPtr2),y
|
||||
sta (ZPPtr1),y
|
||||
beq .4
|
||||
beq .5
|
||||
iny
|
||||
bra .3
|
||||
bra .4
|
||||
|
||||
.4 tay we moved the ending \0
|
||||
.5 tya we moved the ending \0
|
||||
beq .8
|
||||
|
||||
jsr Cmd.NextStrPtr2
|
||||
>STYA ZPPtr2
|
||||
|
||||
jsr Cmd.NextStrPtr1
|
||||
>STYA ZPPtr1
|
||||
bra .1
|
||||
sec
|
||||
adc ZPPtr2
|
||||
sta ZPPtr2
|
||||
bcc .6
|
||||
|
||||
inc ZPPtr2+1
|
||||
|
||||
.6 tya
|
||||
|
||||
sec
|
||||
adc ZPPtr1
|
||||
sta ZPPtr1
|
||||
bcc .3
|
||||
|
||||
inc ZPPtr2+1
|
||||
bra .3
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
Cmd.NextStrPtr1 >LDYA ZPPtr1
|
||||
Cmd.GetStrAtX >LDYA ZPCMDBuf
|
||||
|
||||
.1 dex
|
||||
bmi .8
|
||||
|
||||
>STYA ZPPtr1
|
||||
|
||||
jsr Cmd.NextStrPtr1
|
||||
bcc .1
|
||||
rts
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Cmd.NextStrPtr1 lda (ZPPtr1)
|
||||
beq .9
|
||||
|
||||
phx
|
||||
>LDYA ZPPtr1
|
||||
>SYSCALL strlen
|
||||
pha
|
||||
tya
|
||||
@@ -702,9 +758,17 @@ Cmd.NextStrPtr1 >LDYA ZPPtr1
|
||||
|
||||
pla
|
||||
adc ZPPtr1+1
|
||||
plx
|
||||
* clc
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
Cmd.NextStrPtr2 >LDYA ZPPtr2
|
||||
Cmd.NextStrPtr2 lda (ZPPtr2)
|
||||
beq .9
|
||||
|
||||
>LDYA ZPPtr2
|
||||
>SYSCALL strlen
|
||||
pha
|
||||
tya
|
||||
@@ -714,6 +778,10 @@ Cmd.NextStrPtr2 >LDYA ZPPtr2
|
||||
|
||||
pla
|
||||
adc ZPPtr2+1
|
||||
* clc
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
Cmd.NextCharPtr1
|
||||
|
||||
+20
-20
@@ -31,7 +31,7 @@ CSH.Init lda #$0
|
||||
>STA.G CSH.StackPtr
|
||||
|
||||
lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>SYSCALL LoadTxtFile
|
||||
bcs .9
|
||||
|
||||
@@ -67,6 +67,24 @@ CSH.Init lda #$0
|
||||
* clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CSH.Quit >LDA.G CSH.hBuf
|
||||
beq .1
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.1 >LDA.G CSH.hStack
|
||||
beq .2
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.2 >LDA.G CSH.hData
|
||||
beq .3
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.3 >LDA.G CSH.hSymbols
|
||||
beq .8
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
CSH.Run jsr CL.RESET
|
||||
jsr CSH.GetCharNB
|
||||
bcs .9
|
||||
@@ -167,7 +185,7 @@ CSH.Run jsr CL.RESET
|
||||
lda #$ff
|
||||
>STA.G bCmdBufexec
|
||||
|
||||
>LDA.G bEcho
|
||||
>LDA.G bSET.X
|
||||
beq .80
|
||||
|
||||
>PUSHW ZPCMDBuf
|
||||
@@ -178,24 +196,6 @@ CSH.Run jsr CL.RESET
|
||||
.80 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.Quit >LDA.G CSH.hBuf
|
||||
beq .1
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.1 >LDA.G CSH.hStack
|
||||
beq .2
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.2 >LDA.G CSH.hData
|
||||
beq .3
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.3 >LDA.G CSH.hSymbols
|
||||
beq .8
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
CSH.WHILE
|
||||
CSH.IF jsr CSH.GetCharNB
|
||||
bcs .9
|
||||
|
||||
+3
-9
@@ -126,9 +126,7 @@ L.ERR.Codes .DA ERR.Codes
|
||||
L.ERR.Messages .DA ERR.Messages
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT
|
||||
>DEBUG
|
||||
jsr SetPWD
|
||||
CS.INIT jsr SetPWD
|
||||
|
||||
jsr CMD.Init
|
||||
bcs .9
|
||||
@@ -138,10 +136,6 @@ CS.INIT
|
||||
|
||||
beq .1 no arg, continue starting interactive
|
||||
|
||||
lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL puts
|
||||
|
||||
jmp CSH.Init
|
||||
|
||||
.1 jsr HIS.Init
|
||||
@@ -421,8 +415,8 @@ bCmdBufexec .BS 1
|
||||
bEscMode .BS 1
|
||||
bPause .BS 1
|
||||
bExit .BS 1
|
||||
bEcho .BS 1
|
||||
|
||||
bSET.X .BS 1
|
||||
bECHO.N .BS 1
|
||||
bReadMode .BS 1
|
||||
bSecureRead .BS 1
|
||||
|
||||
|
||||
+70
-5
@@ -2,7 +2,63 @@ NEW
|
||||
PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
*/--------------------------------------
|
||||
* # GetArg
|
||||
* # Args2ArgV
|
||||
* ## ASM
|
||||
* `>PUSHW argv`
|
||||
* `>LDYA args`
|
||||
* `>SYSCALL Args2ArgV
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
ARG.bInQuote .BS 1
|
||||
*--------------------------------------
|
||||
K.Args2ArgV jsr MEM.SPtr1PPtr2
|
||||
|
||||
stz ARG.bInQuote
|
||||
|
||||
ldy #$ff
|
||||
ldx #0 Arg Count
|
||||
|
||||
.4 iny
|
||||
lda (ZPPtr1),y
|
||||
beq .7
|
||||
|
||||
cmp #'"' found a quote ?
|
||||
bne .5
|
||||
lda ARG.bInQuote
|
||||
eor #$ff
|
||||
sta ARG.bInQuote
|
||||
bra .4
|
||||
|
||||
.5 cmp #' '
|
||||
bne .6
|
||||
|
||||
bit ARG.bInQuote
|
||||
bmi .6
|
||||
|
||||
inx Found one arg !!!
|
||||
lda #0 set this token End
|
||||
|
||||
.6 sta (ZPPtr2)
|
||||
|
||||
inc ZPPtr2
|
||||
bne .4
|
||||
inc ZPPtr2+1
|
||||
bra .4
|
||||
|
||||
.7 sta (ZPPtr2) set Arg Ending 0
|
||||
|
||||
inc ZPPtr2
|
||||
bne .8
|
||||
inc ZPPtr2+1
|
||||
|
||||
.8 sta (ZPPtr2) set Array Ending 0
|
||||
|
||||
txa X=Arg Count
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*/--------------------------------------
|
||||
* # ArgV
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* A = argument index.
|
||||
@@ -11,9 +67,9 @@ AUTO 4,1
|
||||
* Y,A = PTR To Arg[A]
|
||||
* CS : Out Of Bound
|
||||
*\--------------------------------------
|
||||
K.GetArg pha save requested arg#
|
||||
K.ArgV pha save requested arg#
|
||||
|
||||
ldy #S.PS.hARGS
|
||||
ldy #S.PS.hARGV
|
||||
lda (pPs),y
|
||||
jsr K.GetMemPtr
|
||||
|
||||
@@ -23,7 +79,7 @@ K.GetArg pha save requested arg#
|
||||
|
||||
>STYA ZPPtr1 no, save it
|
||||
|
||||
.1 lda (ZPPtr1) end of ARG[]
|
||||
.1 lda (ZPPtr1) end of ARGV[] ?
|
||||
beq .9 yes, not found....
|
||||
|
||||
.3 inc ZPPtr1 skip next one....
|
||||
@@ -40,16 +96,25 @@ K.GetArg pha save requested arg#
|
||||
.5 dex
|
||||
bne .1 stop here....
|
||||
|
||||
lda (ZPPtr1) at end of ARGS[] ?
|
||||
lda (ZPPtr1) at end of ARGV[] ?
|
||||
beq .9
|
||||
|
||||
>LDYA ZPPtr1
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
ARG.NextChrPtr1 lda (ZPPtr1)
|
||||
beq .8
|
||||
|
||||
inc ZPPtr1
|
||||
bne .8
|
||||
inc ZPPtr1+1 never Z
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.ARG
|
||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||
|
||||
@@ -298,7 +298,7 @@ CORE.PSFree.A sta .1+1 Save PS ID
|
||||
ldy #S.PS.hCS
|
||||
jsr .8
|
||||
|
||||
ldy #S.PS.hARGS
|
||||
ldy #S.PS.hARGV
|
||||
jsr .8
|
||||
|
||||
lda (ZPPtr1) get S.PS.F
|
||||
|
||||
@@ -461,7 +461,7 @@ ENV.ExpandSysVar
|
||||
|
||||
and #$0F
|
||||
|
||||
jsr K.GetArg
|
||||
jsr K.ArgV
|
||||
bcs K.UnsetEnv.I.8 Arg# is undefined, do not append anything
|
||||
|
||||
jmp ENV.AddYAToBuf
|
||||
@@ -491,7 +491,7 @@ ENV.SysVarsJmp .DA ENV.SysVarsArgs
|
||||
.DA ENV.SysVarsCPID
|
||||
*--------------------------------------
|
||||
ENV.SysVarsArgs lda #1
|
||||
jsr K.GetArg
|
||||
jsr K.ArgV
|
||||
bcs .8
|
||||
|
||||
>STYA ZPPtr3
|
||||
|
||||
+13
-3
@@ -149,7 +149,6 @@ Kernel.Init3 sta SETALTZP
|
||||
>LDYAI MSG.MMode
|
||||
>SYSCALL puts
|
||||
|
||||
>PUSHBI 0 PS Flags
|
||||
>LDYAI STARTUP.SHELL
|
||||
bra .8
|
||||
|
||||
@@ -158,10 +157,21 @@ Kernel.Init3 sta SETALTZP
|
||||
>LDYAI MSG.Startup
|
||||
>SYSCALL printf
|
||||
|
||||
>PUSHBI 0 PS Flags
|
||||
>LDYAI STARTUP.CMDLINE
|
||||
|
||||
.8 >SYSCALL ExecL
|
||||
.8 >SYSCALL ExpandStr
|
||||
phx
|
||||
pha
|
||||
>PUSHWI K.Buf256
|
||||
pla
|
||||
>SYSCALL Args2ArgV
|
||||
|
||||
plx
|
||||
jsr K.FreeMem
|
||||
|
||||
>PUSHBI 0 PS Flags
|
||||
>LDYAI K.Buf256
|
||||
>SYSCALL Exec
|
||||
|
||||
bcs .9
|
||||
|
||||
|
||||
@@ -98,8 +98,8 @@ K.SYSCALL.JMP .DA 0 $00
|
||||
.DA K.LoadDrv
|
||||
.DA K.InsDrv
|
||||
|
||||
.DA K.ExecL $A0
|
||||
.DA K.ExecV
|
||||
.DA K.Exec $A0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
@@ -107,8 +107,8 @@ K.SYSCALL.JMP .DA 0 $00
|
||||
.DA K.GetPSStatus
|
||||
.DA K.GetPSStat
|
||||
|
||||
.DA 0 $B0
|
||||
.DA K.GetArg
|
||||
.DA K.Args2ArgV $B0
|
||||
.DA K.ArgV
|
||||
.DA K.ExpandStr
|
||||
.DA K.FileSearch
|
||||
.DA K.PutEnv
|
||||
|
||||
+5
-28
@@ -5,32 +5,9 @@ AUTO 4,1
|
||||
PS.Flags .BS 1
|
||||
PS.Args .BS 2
|
||||
*/--------------------------------------
|
||||
* # ExecL
|
||||
* # Exec
|
||||
* ## C
|
||||
* `int execl(const char* cmdline, short int flags);`
|
||||
* ## ASM
|
||||
* `>PUSHB flags`
|
||||
* `>LDYA cmdline`
|
||||
* `>SYSCALL execl`
|
||||
* ## RETURN VALUE
|
||||
* A = Child PSID
|
||||
*\--------------------------------------
|
||||
K.ExecL jsr ExpandStr
|
||||
bcs .9
|
||||
phx
|
||||
|
||||
jsr
|
||||
|
||||
|
||||
plx
|
||||
jsr FreeMem
|
||||
|
||||
|
||||
.9 >RET 1 discard PS.Args
|
||||
*/--------------------------------------
|
||||
* # ExecV
|
||||
* ## C
|
||||
* `int execv(const char* argv[], short int flags);`
|
||||
* `int exec(const char* argv[], short int flags);`
|
||||
* ## ASM
|
||||
* `>PUSHB flags`
|
||||
* `>LDYA argv`
|
||||
@@ -38,10 +15,10 @@ K.ExecL jsr ExpandStr
|
||||
* ## RETURN VALUE
|
||||
* A = Child PSID
|
||||
*\--------------------------------------
|
||||
K.ExecV >STYA PS.Args
|
||||
K.Exec >STYA PS.Args
|
||||
>PULLB PS.Flags
|
||||
|
||||
K.Exec.I jsr PS.CreateChild Child S.PS at ZPPtr3
|
||||
jsr PS.CreateChild Child S.PS at ZPPtr3
|
||||
bcs .9
|
||||
|
||||
sta .8+1
|
||||
@@ -49,7 +26,7 @@ K.Exec.I jsr PS.CreateChild Child S.PS at ZPPtr3
|
||||
>LDYA PS.Args
|
||||
jsr PS.DupArgs
|
||||
|
||||
ldy #S.PS.hARGS
|
||||
ldy #S.PS.hARGV
|
||||
sta (ZPPtr3),y
|
||||
pha
|
||||
dey S.PS.ARGC
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ CS.RUN.Pak >PUSHWI 0 Aux type
|
||||
>PUSHBI O.RDONLY
|
||||
|
||||
lda #1
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ArgV
|
||||
>SYSCALL RealPath
|
||||
>PUSHYA
|
||||
txa
|
||||
|
||||
Reference in New Issue
Block a user