Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-08-20 15:20:33 +02:00
parent 344cc66bb8
commit 99117310ee
15 changed files with 88 additions and 78 deletions

Binary file not shown.

Binary file not shown.

View File

@ -205,11 +205,15 @@ CL.CLR lda (ZPCLBuf)
*-------------------------------------- *--------------------------------------
CL.Reset lda #0 CL.Reset lda #0
sta (ZPCLBuf) sta (ZPCLBuf)
CL.Reset.1 lda #0
ldy #CL.Ptr
.1 sta (pData),y
iny
cpy #CL.bEscMode+1
bne .1
CL.Reset.1 >STA.G CL.Ptr
>STA.G CL.Len
>STA.G CL.bReady
>STA.G CL.bEscMode
rts rts
*-------------------------------------- *--------------------------------------
CL.BS >LDA.G CL.Ptr CL.BS >LDA.G CL.Ptr

View File

@ -251,9 +251,7 @@ CMD.SET.EXEC jsr CORE.ArgV.NextChar skip "`"
jsr IO.Pipe.Out jsr IO.Pipe.Out
bcs .9 bcs .9
>PUSHW ZPArgVBufPtr jsr IO.Exec
>PUSHBI S.PS.F.CLOSEONX
>SYSCALL ExecL
bcs .9 bcs .9
jsr IO.Pipe.In jsr IO.Pipe.In
@ -610,6 +608,13 @@ CMD.FUNCTION lda (ZPArgVBufPtr)
pla pla
>PUSHYA DataLen >PUSHYA DataLen
>SYSCALL SListAddData >SYSCALL SListAddData
bcs .99
>PUSHB.G hFuncList
>PUSHW ZPTmpW KeyID
>PUSHW L.PtrZero DataPtr
>PUSHWI 1 DataLen
>SYSCALL SListAddData Add Ending \0
rts rts
*-------------------------------------- *--------------------------------------
CMD.CALL jsr CMD.CALL.GETFUNC CMD.CALL jsr CMD.CALL.GETFUNC
@ -693,10 +698,10 @@ CMD.EXIT.FILE jsr CORE.StkPullFree Code buffer
jsr CORE.StkPullInputBufPtr jsr CORE.StkPullInputBufPtr
jsr CORE.StkPull
sta ZPInputBuf+1
jsr CORE.StkPull jsr CORE.StkPull
sta ZPInputBuf sta ZPInputBuf
jsr CORE.StkPull
sta ZPInputBuf+1
ldy #S.PS.RC ldy #S.PS.RC
lda (pPS),y lda (pPS),y
@ -883,9 +888,7 @@ CMD.FOR.EXEC jsr CORE.ArgV.NextChar skip "`"
jsr IO.Pipe.Out jsr IO.Pipe.Out
bcs FOR.FILE.9 bcs FOR.FILE.9
>PUSHW ZPArgVBufPtr jsr IO.Exec
>PUSHBI S.PS.F.CLOSEONX
>SYSCALL ExecL
bcs FOR.FILE.9 bcs FOR.FILE.9
jsr IO.Pop.Out Restore OUT (NO close) jsr IO.Pop.Out Restore OUT (NO close)

View File

@ -245,10 +245,8 @@ CORE.Run.7 jsr CORE.GetCharNB
jsr IO.Pipe.Out jsr IO.Pipe.Out
bcs CORE.Run.Exit bcs CORE.Run.Exit
lda #S.PS.F.HOLD Run in the background... lda #S.PS.F.HOLD+S.PS.F.CLOSEONX Run in the background...
trb CORE.PSFlags tsb CORE.PSFlags ...and close PIPE OUT on exit
lda #S.PS.F.CLOSEONX ...and close PIPE OUT on exit
tsb CORE.PSFlags
jsr CORE.ExecCmd jsr CORE.ExecCmd

View File

@ -8,30 +8,28 @@ EXP.GET jsr CORE.ArgV.Next
clc clc
rts rts
.1 >LDYA ZPArgVBufPrev .1 >PUSHEA.G M32.BUF
jsr EXP.GetInt32YA To Int32 on stack >PUSHW L.FMT.Long
bcs .9
>LDYA ZPArgVBufPrev
jsr EXP.GetInt32YA To Int32 on stack
bcs .94 4 bytes on stack
.2 >LDYA L.EXP.OP.MATH + - .... ? .2 >LDYA L.EXP.OP.MATH + - .... ?
jsr CORE.LookupArgVBuf jsr CORE.LookupArgVBuf
bcs .94 bcs .98
stx CORE.Operator stx CORE.Operator
jsr CORE.ArgV.Next get next argument jsr CORE.ArgV.Next get next argument
beq .94 beq .98
jsr EXP.GetInt32Arg To Int32 on stack jsr EXP.GetInt32Arg To Int32 on stack
bcs .94 bcs .98
jsr EXP.FPU.EXEC jsr EXP.FPU.EXEC
jsr CORE.ArgV.Next another op ? jsr CORE.ArgV.Next another op ?
bne .2 bne .2
>PULLL M32.ACC Value on stack
>PUSHEA.G M32.BUF
>PUSHW L.FMT.Long
>PUSHL M32.ACC
>PUSHBI 4 >PUSHBI 4
>SYSCALL SPrintF >SYSCALL SPrintF
bcs .9 bcs .9
@ -39,6 +37,7 @@ EXP.GET jsr CORE.ArgV.Next
>LEA.G M32.BUF >LEA.G M32.BUF
rts rts
.98 jsr IncPStack4
.94 jsr IncPStack4 .94 jsr IncPStack4
.9 jmp EXP.E.ESYN .9 jmp EXP.E.ESYN

View File

@ -157,6 +157,11 @@ IO.StatYA >PUSHYA
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
IO.Exec >PUSHW ZPArgVBufPtr
>PUSHBI S.PS.F.CLOSEONX
>SYSCALL ExecL
rts
*--------------------------------------
IO.PrintBatchErrMsg IO.PrintBatchErrMsg
>LDYA ZPInputBuf >LDYA ZPInputBuf
>STYA ZPPtr1 >STYA ZPPtr1

View File

@ -174,6 +174,7 @@ L.EXP.OP.BINARY .DA EXP.OP.BINARY
L.EXP.OP.MATH .DA EXP.OP.MATH L.EXP.OP.MATH .DA EXP.OP.MATH
L.EXP.OP.LOGIC .DA EXP.OP.LOGIC L.EXP.OP.LOGIC .DA EXP.OP.LOGIC
L.HOME.PROFILE .DA HOME.PROFILE L.HOME.PROFILE .DA HOME.PROFILE
L.PtrZero .DA PtrZero
L.HOME .DA HOME L.HOME .DA HOME
L.PS1 .DA PS1 L.PS1 .DA PS1
.DA 0 .DA 0
@ -564,7 +565,7 @@ FMT.Long .AZ "%L"
FMT.Byte .AZ "%d" FMT.Byte .AZ "%d"
*-------------------------------------- *--------------------------------------
HOME.PROFILE .AZ "${HOME}profile" HOME.PROFILE .AZ "${HOME}profile"
.HS 00 To Make It ArgV PtrZero .HS 00 To Make It ArgV
PS1 .AZ "${PS1}" PS1 .AZ "${PS1}"
HOME .AZ "${HOME}" HOME .AZ "${HOME}"
*-------------------------------------- *--------------------------------------

View File

@ -129,13 +129,13 @@ CS.RUN ldy #S.PS.ARGC
CS.RUN.LOOP0 >SLEEP CS.RUN.LOOP0 >SLEEP
>PUSHW L.ENV.TERM >PUSHW L.ENV.TERM
>SYSCALL UnSetEnv >SYSCALL UnsetEnv
.1 >PUSHWI TELNETOPTS.LEN .1 >PUSHWI TELNETOPTS.LEN
>PUSHW L.TELNETOPTS >PUSHW L.TELNETOPTS
ldy #S.PS.hStdOut ldy #S.PS.hStdOut
lda (pPS),y lda (pPS),y
>SYSCALL fwrite >SYSCALL FWrite
bcs CS.RUN.EXIT I/O error bcs CS.RUN.EXIT I/O error
lda #TIMEOUT.MAX lda #TIMEOUT.MAX
@ -146,7 +146,7 @@ CS.RUN.LOOP1 >SLEEP
ldy #S.PS.hStdIn ldy #S.PS.hStdIn
lda (pPS),y lda (pPS),y
>SYSCALL feof >SYSCALL FEOF
bcs CS.RUN.9 I/O error bcs CS.RUN.9 I/O error
tay tay
bne .1 no char bne .1 no char
@ -213,7 +213,7 @@ CS.RUN.IAC.CMD cmp #WILL
.7 ldy #S.PS.hStdOut .7 ldy #S.PS.hStdOut
lda (pPS),y lda (pPS),y
>SYSCALL fwrite >SYSCALL FWrite
.8 jmp CS.RUN.LOOP1 .8 jmp CS.RUN.LOOP1
*-------------------------------------- *--------------------------------------
CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND

View File

@ -72,7 +72,7 @@ L.KEYWORDS.CONF .DA KEYWORDS.CONF
J.KEYWORDS.CONF .DA CS.RUN.CONF.SERVERNAME J.KEYWORDS.CONF .DA CS.RUN.CONF.SERVERNAME
.DA CS.RUN.CONF.LISTEN .DA CS.RUN.CONF.LISTEN
.DA CS.RUN.CONF.DOCUMENTROOT .DA CS.RUN.CONF.DOCUMENTROOT
L.SA.Local .DA SA.Local L.SA.LOCAL .DA SA.LOCAL
L.MSG.TCPWAIT .DA MSG.TCPWAIT L.MSG.TCPWAIT .DA MSG.TCPWAIT
L.MSG.TCPIPERR .DA MSG.TCPIPERR L.MSG.TCPIPERR .DA MSG.TCPIPERR
L.MSG.INITCONF .DA MSG.INITCONF L.MSG.INITCONF .DA MSG.INITCONF
@ -118,12 +118,12 @@ CS.RUN >LDYA L.MSG.TCPWAIT
lda (ZPPtr1) Configured ? lda (ZPPtr1) Configured ?
bmi CS.RUN.INIT bmi CS.RUN.INIT
lda Timeout lda TimeOut
bcs .99 bcs .99
ldy #S.PS.hStdIn ldy #S.PS.hStdIn
lda (pPS),y lda (pPS),y
>SYSCALL feof >SYSCALL FEOF
bcs CS.RUN.RTS I/O err bcs CS.RUN.RTS I/O err
tay tay
bne .1 bne .1
@ -216,7 +216,7 @@ CS.RUN.CONF >PUSHW L.ETCHTTPDCONF
.1 >PUSHWI 256 .1 >PUSHWI 256
>PUSHW ZPLinePtr >PUSHW ZPLinePtr
lda hFile lda hFile
>SYSCALL fgets >SYSCALL FGetS
bcs .8 bcs .8
tya tya
@ -298,7 +298,7 @@ CS.RUN.CONF.SERVERNAME
.9 rts .9 rts
CS.RUN.CONF.LISTEN CS.RUN.CONF.LISTEN
>SYSCALL atoi >SYSCALL AToI
bcs .9 bcs .9
>STYA SA.LOCAL+S.SOCKADDR.PORT >STYA SA.LOCAL+S.SOCKADDR.PORT
@ -316,7 +316,7 @@ CS.RUN.CONF.DOCUMENTROOT
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.RUN.SERVER lda hSrvSocket CS.RUN.SERVER lda hSrvSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.accept >LIBCALL hLIBTCPIP,LIBTCPIP.Accept
bcs .8 bcs .8
sta CLN.hSocket sta CLN.hSocket
@ -343,7 +343,7 @@ CS.RUN.SERVER lda hSrvSocket
>PUSHW L.MSG.SKTCLOSE >PUSHW L.MSG.SKTCLOSE
>PUSHB CLN.hSocket >PUSHB CLN.hSocket
>PUSHBI 1 >PUSHBI 1
>SYSCALL printf >SYSCALL PrintF
lda CLN.hSocket lda CLN.hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
@ -422,7 +422,7 @@ CS.RUN.CLIENT >LDYAI 1024
>SYSCALL FreeMem >SYSCALL FreeMem
.99 lda REP.hBuf .99 lda REP.hBuf
>SYSCALL freemem >SYSCALL FreeMem
rts rts
*-------------------------------------- *--------------------------------------
@ -435,7 +435,7 @@ CS.RUN.REQ.GetReq
>PUSHB REQ.hReq >PUSHB REQ.hReq
>PUSHB CLN.hSocket >PUSHB CLN.hSocket
>PUSHBI 2 >PUSHBI 2
>SYSCALL printf >SYSCALL PrintF
ldy #S.IP.TOTAL.LENGTH+1 ldy #S.IP.TOTAL.LENGTH+1
lda (ZPRequestPtr),y lda (ZPRequestPtr),y
@ -504,7 +504,7 @@ CS.RUN.OpenFile >PUSHW L.MSG.FILE
>PUSHB CLN.hSocket >PUSHB CLN.hSocket
>PUSHEA.G REQ.FullPath >PUSHEA.G REQ.FullPath
>PUSHBI 3 >PUSHBI 3
>SYSCALL printf >SYSCALL PrintF
>PUSHEA.G REQ.FullPath >PUSHEA.G REQ.FullPath
>PUSHBI O.RDONLY >PUSHBI O.RDONLY
@ -568,7 +568,7 @@ CS.RUN.SendFile >PUSHW ZPRepPtr
>PUSHL.G REQ.Stat+S.STAT.SIZE >PUSHL.G REQ.Stat+S.STAT.SIZE
>PUSHBI 6 >PUSHBI 6
>SYSCALL SPrintf >SYSCALL SPrintF
bcs .9 bcs .9
jsr CS.RUN.SendBuf Y,A = car count jsr CS.RUN.SendBuf Y,A = car count
@ -576,7 +576,7 @@ CS.RUN.SendFile >PUSHW ZPRepPtr
.1 >PUSHWI 1024 .1 >PUSHWI 1024
>PUSHW ZPRepPtr >PUSHW ZPRepPtr
lda REQ.hFile lda REQ.hFile
>SYSCALL fread >SYSCALL FRead
bcs .8 bcs .8
jsr CS.RUN.SendBuf jsr CS.RUN.SendBuf
@ -640,7 +640,7 @@ CS.RUN.REQ.GET ldy #0
.4 >PUSHW ZPPtr2 .4 >PUSHW ZPPtr2
>PUSHEA.G REQ.FullPath >PUSHEA.G REQ.FullPath
>SYSCALL realpath >SYSCALL RealPath
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.RUN.REQ.Connection CS.RUN.REQ.Connection

View File

@ -60,12 +60,12 @@ CS.RUN ldy #S.PS.PID
ldy #S.PS.hStdIn ldy #S.PS.hStdIn
lda (pPS),y lda (pPS),y
>SYSCALL feof >SYSCALL FEOF
bcs .99 bcs .99
tay tay
bne .1 bne .1
>SYSCALL getchar >SYSCALL GetChar
bcs .99 bcs .99
cmp #18 CTRL-R for Root mode cmp #18 CTRL-R for Root mode
@ -82,7 +82,7 @@ CS.RUN ldy #S.PS.PID
.1 jsr CS.RUN.ETCINIT .1 jsr CS.RUN.ETCINIT
bcs .99 bcs .99
.2 >SYSCALL getchar .2 >SYSCALL GetChar
bcs .99 bcs .99
cmp #C.CR Ctrl.M cmp #C.CR Ctrl.M
@ -136,7 +136,7 @@ CS.RUN.ETCINIT >LDYAI 256
.1 >PUSHWI 256 .1 >PUSHWI 256
>PUSHW BufPtr >PUSHW BufPtr
lda hFile lda hFile
>SYSCALL fgets >SYSCALL FGetS
bcs .80 bcs .80
lda (BufPtr) lda (BufPtr)
@ -205,5 +205,5 @@ DS.START
DS.END .ED DS.END .ED
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE usr/src/sbin/initd SAVE usr/src/sbin/initd.s
ASM ASM

View File

@ -4,10 +4,10 @@ AUTO 4,1
.LIST OFF .LIST OFF
.OP 65C02 .OP 65C02
.OR $2000 .OR $2000
.TF SBIN/INSDRV .TF sbin/insdrv
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB inc/macros.i
.INB INC/A2OSX.I .INB inc/a2osx.i
*-------------------------------------- *--------------------------------------
ZPPTR1 .EQ ZPBIN ZPPTR1 .EQ ZPBIN
ZPPTR2 .EQ ZPBIN+2 ZPPTR2 .EQ ZPBIN+2
@ -80,5 +80,5 @@ MSG.USAGE .AZ "Usage: insdrv file.drv <args>"
MSG.LOAD .AZ "INSDRV:Loading %s...\r\n" MSG.LOAD .AZ "INSDRV:Loading %s...\r\n"
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/SBIN/INSDRV.S SAVE usr/src/sbin/insdrv.s
ASM ASM

View File

@ -5,10 +5,10 @@ NEW
.OR $2000 .OR $2000
.TF sbin/login .TF sbin/login
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB inc/macros.i
.INB INC/A2OSX.I .INB inc/a2osx.i
.INB INC/KERNEL.I .INB inc/kernel.i
.INB INC/MLI.I .INB inc/mli.i
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR ZPBIN .OR ZPBIN
@ -71,7 +71,7 @@ CS.INIT clc
CS.INIT.RTS rts CS.INIT.RTS rts
*-------------------------------------- *--------------------------------------
CS.RUN >LDYA L.ETCISSUE CS.RUN >LDYA L.ETCISSUE
jsr CS.RUN.DUMPFILE jsr CS.RUN.DumpFile
bcs CS.INIT.RTS bcs CS.INIT.RTS
lda #0 lda #0
@ -104,7 +104,7 @@ CS.RUN.AUTH lda #3
jsr CS.RUN.StrOut jsr CS.RUN.StrOut
bcs .9 bcs .9
>LEA.G USername >LEA.G Username
ldx #16 ldx #16
clc clc
jsr CS.RUN.GetLine jsr CS.RUN.GetLine
@ -177,7 +177,7 @@ CS.RUN.EXEC >PUSHEA.G Username
ldy #S.PS.hStdIn ldy #S.PS.hStdIn
lda (pPS),y lda (pPS),y
sta S.Table.hFILE-1,x sta S.Table.hFile-1,x
jsr CS.RUN.EXECPS jsr CS.RUN.EXECPS
@ -189,7 +189,7 @@ CS.RUN.EXEC >PUSHEA.G Username
.8 ldx ZPNewSession .8 ldx ZPNewSession
stz S.Table.hSID-1,x stz S.Table.hSID-1,x
stz S.Table.hFILE-1,x stz S.Table.hFile-1,x
ldy #S.PS.hSession ldy #S.PS.hSession
lda ZPOldSession lda ZPOldSession
@ -205,7 +205,7 @@ CS.RUN.GetLine >STYA ZPGetLinePtr
stz ZPGetLineLen stz ZPGetLineLen
stz ZPbEsc stz ZPbEsc
.1 >SYSCALL getchar .1 >SYSCALL GetChar
bcs .9 bcs .9
bit ZPbEsc bit ZPbEsc
@ -233,7 +233,7 @@ CS.RUN.GetLine >STYA ZPGetLinePtr
bit ZPbGetLineSecret bit ZPbGetLineSecret
bmi .1 bmi .1
>SYSCALL putchar >SYSCALL PutChar
bra .1 bra .1
.2 cmp #3 Ctrl-C .2 cmp #3 Ctrl-C
@ -289,7 +289,7 @@ CS.RUN.DumpFile >PUSHYA
.1 >PUSHWI 256 .1 >PUSHWI 256
>PUSHW ZPBufPtr >PUSHW ZPBufPtr
lda ZPhFile lda ZPhFile
>SYSCALL fgets >SYSCALL FGetS
bcs .7 bcs .7
>PUSHW ZPBufPtr >PUSHW ZPBufPtr
@ -347,5 +347,5 @@ Username .BS 17
DS.END .ED DS.END .ED
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/SBIN/LOGIN.S SAVE usr/src/sbin/login.s
ASM ASM

View File

@ -89,7 +89,7 @@ CS.INIT lda DevID
*-------------------------------------- *--------------------------------------
CS.INIT.DEV >PUSHBI 0 CS.INIT.DEV >PUSHBI 0
>LDYA L.DEVNAME >LDYA L.DEVNAME
>SYSCALL open >SYSCALL Open
bcc .8 bcc .8
inc DEVNAME+8 inc DEVNAME+8
@ -212,7 +212,7 @@ CS.INIT.CONF >LDYAI 64
.1 >PUSHWI 64 .1 >PUSHWI 64
>PUSHW pBuf >PUSHW pBuf
lda hEtcNetwork lda hEtcNetwork
>SYSCALL fgets >SYSCALL FGetS
bcs .80 bcs .80
>PUSHW L.MSG.EXEC >PUSHW L.MSG.EXEC
@ -222,7 +222,7 @@ CS.INIT.CONF >LDYAI 64
>PUSHW pBuf >PUSHW pBuf
>PUSHBI S.PS.F.HOLD >PUSHBI S.PS.F.HOLD
>SYSCALL execL >SYSCALL ExecL
jsr CS.RUN.CheckErr jsr CS.RUN.CheckErr
>SLEEP >SLEEP
bra .1 bra .1
@ -267,7 +267,7 @@ CS.RUN >PUSHB DevID
bne .22 bne .22
>PUSHBI 54 >PUSHBI 54
>SYSCALL printf >SYSCALL PrintF
.23 .FIN .23 .FIN
ldx #0 ldx #0
@ -362,7 +362,7 @@ CS.QUIT ldx #0
beq .7 beq .7
phx phx
>SYSCALL UnLoadLib >SYSCALL UnloadLib
plx plx
inx inx
bra .1 bra .1

View File

@ -77,12 +77,12 @@ CS.RUN lda #TIMEOUT.MAX
lda (ZPIPCfgPtr) Configured ? lda (ZPIPCfgPtr) Configured ?
bmi CS.RUN.INIT bmi CS.RUN.INIT
lda Timeout lda TimeOut
beq .99 beq .99
ldy #S.PS.hStdIn ldy #S.PS.hStdIn
lda (pPS),y lda (pPS),y
>SYSCALL feof >SYSCALL FEOF
bcs .9 I/O err bcs .9 I/O err
tay tay
@ -115,7 +115,7 @@ CS.RUN.INIT ldx #3
lda #1 lda #1
>SYSCALL ArgV >SYSCALL ArgV
bcs CS.RUN.PORTOK bcs CS.RUN.PORTOK
>SYSCALL atoi >SYSCALL AToI
>STYA SA.LOCAL+S.SOCKADDR.PORT >STYA SA.LOCAL+S.SOCKADDR.PORT
CS.RUN.PORTOK >PUSHBI 0 no protocol CS.RUN.PORTOK >PUSHBI 0 no protocol
@ -183,23 +183,23 @@ CS.RUN.CLIENT >SLEEP give some time for TCPIP SYN/ACK
>PUSHW L.NOD.Template >PUSHW L.NOD.Template
>PUSHB hClientSocket >PUSHB hClientSocket
>PUSHBI 1 >PUSHBI 1
>SYSCALL sprintf >SYSCALL SPrintF
CS.RUN.CLIENT1 >PUSHEA.G NodBuf CS.RUN.CLIENT1 >PUSHEA.G NodBuf
>PUSHW 0 >PUSHW 0
>PUSHB hClientSocket >PUSHB hClientSocket
>SYSCALL mknod >SYSCALL MKNod
bcs .9 bcs .9
>PUSHEA.G CmdBuf >PUSHEA.G CmdBuf
>PUSHW L.CMD.Template >PUSHW L.CMD.Template
>PUSHEA.G NodBuf >PUSHEA.G NodBuf
>PUSHBI 2 >PUSHBI 2
>SYSCALL sprintf >SYSCALL SPrintF
>PUSHEA.G CmdBuf >PUSHEA.G CmdBuf
>PUSHBI 0 >PUSHBI 0
>SYSCALL execl >SYSCALL ExecL
bcc .8 bcc .8
pha pha