Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-02-14 08:21:56 +01:00
parent a0bd61e71c
commit eb1f631ce9
60 changed files with 1372 additions and 1107 deletions

Binary file not shown.

View File

@ -209,6 +209,8 @@ CS.INIT ldy #S.PS.ARGC
beq .99
lda #1
>SYSCALL ArgV
>PUSHYA
>PUSHWI 0 Allocate
>SYSCALL RealPath
txa
ldy #SRC.hFILENAME

View File

@ -644,7 +644,7 @@ CSH.ExpEval ldx ZPPtr1
.12 cmp #','
beq .8
cmp #')'
beq .8
beq .85
cmp #';'
beq .8
@ -682,6 +682,8 @@ CSH.ExpEval ldx ZPPtr1
bcs .90
jmp .13 reset BOP & loop
.85
* >DEBUG
.8 ldx ZPPtr2+1
bmi .80
lda ZPPtr2 Var Type

View File

@ -78,6 +78,12 @@ CSH.BOPS.SUBf >FPU FSUB
*--------------------------------------
CSH.BOPS.MUL cmp #CSH.T.FLOAT
beq .8
>FPU MUL32
clc
rts

View File

@ -77,7 +77,8 @@ CS.INIT.RTS rts
* if RUN exits with CC, RN entered again
*--------------------------------------
CS.RUN >PUSHW L.MSG.GREETINGS
>PUSHWI K.VER
>PUSHB #K.VER
>PUSHB /K.VER
>PUSHBI 2
>SYSCALL printf2
bcs CS.INIT.RTS
@ -231,11 +232,13 @@ PrintErrMsg lda ZPhMacro
bne .5
inc ZPPtr3+1
bra .5
.8 >PUSHW ZPPtr2 Line counter
>PUSHBI 2
>PUSHW L.MSG.ERR
ldy #S.PS.hStdErr
.8 ldy #S.PS.hStdErr
lda (pPS),y
>PUSHA
>PUSHW L.MSG.ERR
>PUSHW ZPPtr2 Line counter
>PUSHBI 2
>SYSCALL fprintf
rts
@ -265,10 +268,12 @@ PrintTraceMsg.3 >PUSHBI '>'
>SYSCALL fputc
ply
bra .1
.8 >PUSHBI 0
>PUSHW L.MSG.ECHOCRLF
ldy #S.PS.hStdErr
.8 ldy #S.PS.hStdErr
lda (pPS),y
>PUSHA
>PUSHW L.MSG.ECHOCRLF
>PUSHBI 0
>SYSCALL fprintf
rts

View File

@ -79,8 +79,9 @@ Ctrl.A >STZ.G bUpdateStatus
.8 jsr SCRN.ResetStatusBar
>PUSHBI 0
>PUSHW LineBufPtr
>PUSHW L.MSG.STATUSBAR.H
>PUSHBI 0
jsr SCRN.LineBufSprintf
bcs .9
@ -272,6 +273,9 @@ Ctrl.CR lda #C.CR
>CMP.G ViewPortHm1
beq .6 No scroll needed
>PUSHW LineBufPtr
>PUSHW L.SEQ.SCROLLCURDN
>LDA.G ScreenH
dec
>PUSHA
@ -280,15 +284,15 @@ Ctrl.CR lda #C.CR
inc
>PUSHA
>PUSHBI 2
>PUSHW L.SEQ.SCROLLCURDN
jsr SCRN.LineBufSprintf
.99 bcs .9
>PUSHW LineBufPtr
>PUSHW L.SEQ.SCROLLRGN
>LDA.G ScreenH
dec
>PUSHA
>PUSHBI 1
>PUSHW L.SEQ.SCROLLRGN
jsr SCRN.LineBufSprintf
bcs .9
@ -442,8 +446,9 @@ Ctrl.Q >LDA.G bUnSaved
jsr SCRN.ResetStatusBar
>PUSHBI 0
>PUSHW LineBufPtr
>PUSHW L.MSG.STATUSBAR.U
>PUSHBI 0
jsr SCRN.LineBufSprintf
bcs .9
@ -503,12 +508,13 @@ Ctrl.S >LDYA L.DLG.SAVE
jsr SCRN.ResetStatusBar
>PUSHW LineBufPtr
>PUSHW L.MSG.STATUSBAR.S
>LDA.G hFileName
>SYSCALL GetMemPtr
>PUSHYA
>PUSHBI 2
>PUSHW L.MSG.STATUSBAR.S
.2 jsr SCRN.LineBufSprintf

View File

@ -113,7 +113,7 @@ DLG.Run jsr GetCh
cmp #C.CR
beq .8
cmp #C.TAB
beq DLG.NextFocus
pha
@ -568,16 +568,16 @@ DLG.CTRL.GotoEnd
tay
DLG.CTRL.GotoXY
txa
inc
>PUSHA
>PUSHW LineBufPtr
>PUSHW L.MSG.GOTOXY
tya
inc
inc
>PUSHA
txa
inc
>PUSHA
>PUSHBI 2
>PUSHW L.MSG.GOTOXY
>LDYA LineBufPtr
>SYSCALL sprintf
.2 lda (LineBufPtr)

View File

@ -7,7 +7,9 @@ FILE.New jsr BUF.ResetSel
>LDYA L.MSG.NEWFILE
FILE.New.1 >SYSCALL RealPath
FILE.New.1 >PUSHYA
>PUSHWI 0 Allocate
>SYSCALL RealPath
bcs .9
txa
@ -38,15 +40,16 @@ FILE.New.1 >SYSCALL RealPath
FILE.Load jsr BUF.ResetSel
jsr SCRN.UpdateStatusBar
>PUSHEA.G STATBUF
>LDA.G hFileName
>SYSCALL GetMemPtr
>PUSHYA
>PUSHEA.G STATBUF
>SYSCALL stat
bcc .1
>LDA.G hFileName
>SYSCALL GetMemPtr
bra FILE.New.1
jmp FILE.New.1
.1 >LDYAI 256
>SYSCALL GetMem
@ -93,8 +96,9 @@ FILE.Load.TXT stz FileLen
bcs .99
sta TmpIndex
>PUSHA
>PUSHEA.G STATBUF
lda TmpIndex
>SYSCALL fstat
bcs .99
@ -290,12 +294,14 @@ FILE.Load.ASM.2Buf
ply
rts
*--------------------------------------
FILE.OpenTypeX >PUSHWZ Aux type
txa
>PUSHA
>PUSHBI O.RDONLY
FILE.OpenTypeX tax
>LDA.G hFileName
>SYSCALL GetMemPtr
>PUSHYA
>PUSHBI O.RDONLY
txa
>PUSHA
>PUSHWZ Aux type
>SYSCALL fopen
rts
*--------------------------------------
@ -318,11 +324,12 @@ FILE.Save.CRLF sec
ror TmpIndex+1
stz TmpIndex hFile
>PUSHWZ Aux type
>PUSHBI S.FI.T.TXT
>PUSHBI O.CREATE+O.WRONLY
>LDA.G hFileName
>SYSCALL GetMemPtr
>PUSHYA
>PUSHBI O.CREATE+O.WRONLY
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL FOpen
bcs FILE.Save.9

View File

@ -84,15 +84,16 @@ SCRN.UpdateTopBar.1
lda #C.CR
jsr SCRN.ToLineBuf
>PUSHW LineBufPtr
>PUSHW L.MSG.TOPBAR
>LDA.G hFileName
>SYSCALL GetMemPtr
>PUSHYA
>LDA.G FileType
tax
>PUSHW L.MSG.FILETYPES,x
>LDA.G hFileName
>SYSCALL GetMemPtr
>PUSHYA
>PUSHBI 4
>PUSHW L.MSG.TOPBAR
jsr SCRN.LineBufSprintf
bcs .9
@ -410,6 +411,16 @@ SCRN.UpdateStatusBar
jsr SCRN.ResetStatusBar
>PUSHW LineBufPtr
>PUSHW L.MSG.STATUSBAR
>PUSHW FileLen
>PUSHW BUF.COffset
>LDA.G FileX
inc
>PUSHA
>LDA.G FileY
tax
iny
@ -420,17 +431,11 @@ SCRN.UpdateStatusBar
inc
.2 >PUSHA
txa
>PUSHA
>LDA.G FileX
inc
>PUSHA
>PUSHW BUF.COffset
>PUSHW FileLen
>PUSHBI 7
>PUSHW L.MSG.STATUSBAR
jsr SCRN.LineBufSprintf
bcs .9
@ -581,14 +586,14 @@ SCRN.SEQS.ToLineBuf
rts
*--------------------------------------
SCRN.LineBufGotoLineY
>PUSHBI 1
>PUSHW LineBufPtr
>PUSHW L.MSG.GOTOXY
tya
>PUSHA
>PUSHBI 1
>PUSHBI 2
>PUSHW L.MSG.GOTOXY
*--------------------------------------
SCRN.LineBufSprintf
>LDYA LineBufPtr
>SYSCALL sprintf
bcs .9

View File

@ -166,6 +166,8 @@ CS.RUN >PUSHW L.MSG.DETECT
>SYSCALL ArgV
bcs .2 No arg, new file....
>PUSHYA
>PUSHWI 0 Allocate
>SYSCALL RealPath
bcs CS.INIT.RTS
txa

View File

@ -119,9 +119,9 @@ CS.RUN ldy #S.PS.ARGC
>STYA MediaBlkSize
bra .1
.99 >PUSHBI 0
>LDYA L.MSG.USAGE
>SYSCALL printf
.99 >PUSHW L.MSG.USAGE
>PUSHBI 0
>SYSCALL printf2
lda #E.SYN
sec
.9 rts
@ -156,13 +156,13 @@ CS.RUN ldy #S.PS.ARGC
CS.RUN.Format jsr CS.RUN.GetDevStatus
bcs .9
>PUSHEA.G VolName
>PUSHW MediaBlkSize
>PUSHW L.MSG.INIT
>PUSHW ZPPtrDevName
>PUSHW MediaBlkSize
>PUSHEA.G VolName
>PUSHBI 6
>LDYA L.MSG.INIT
>SYSCALL printf
>SYSCALL printf2
bcs .9
bit bLL
@ -187,10 +187,12 @@ CS.RUN.Format jsr CS.RUN.GetDevStatus
rts
.9 pha
>PUSHW L.MSG.ERR
pla
pha
>PUSHA
>PUSHBI 1
>LDYA L.MSG.ERR
>SYSCALL printf
>SYSCALL printf2
pla
sec
rts
@ -227,9 +229,9 @@ CS.RUN.LL >LDA.G DIB+S.DIB.T
cmp #S.DIB.T.DISKII
beq CS.RUN.LL.DISKII
>PUSHW L.MSG.LL
>PUSHBI 0
>LDYA L.MSG.LL
>SYSCALL printf
>SYSCALL printf2
bcs .9
>PUSHEA.G IOCTL
@ -249,10 +251,10 @@ CS.RUN.LL.DISKII
stz Index
.1 >PUSHB Index
.1 >PUSHW L.MSG.LLDISK2
>PUSHB Index
>PUSHBI 1
>LDYA L.MSG.LLDISK2
>SYSCALL printf
>SYSCALL printf2
bcs .9
@ -263,9 +265,9 @@ CS.RUN.LL.DISKII
cmp #35
bne .1
>PUSHW L.MSG.CRLF
>PUSHBI 0
>LDYA L.MSG.CRLF
>SYSCALL printf
>SYSCALL printf2
.9 rts
*--------------------------------------
CS.RUN.InitCat lda CatSize
@ -277,11 +279,11 @@ CS.RUN.InitCat lda CatSize
.1 >LDA.G VolName
bne .8 Volume name ok
>PUSHEA.G VolName
>PUSHW L.FMT.BLANK
>PUSHW A2osX.TIMER16
>PUSHW A2osX.RANDOM16
>PUSHBI 4
>PUSHW L.FMT.BLANK
>LEA.G VolName
>SYSCALL sprintf
rts
@ -329,9 +331,9 @@ CS.RUN.BuildCat jsr .7
>PUSHB CatOptions
rts
*--------------------------------------
CS.RUN.WriteCat >PUSHBI 0
>LDYA L.MSG.WRITECAT
>SYSCALL printf
CS.RUN.WriteCat >PUSHW L.MSG.WRITECAT
>PUSHBI 0
>SYSCALL printf2
.1 >PUSHEA.G IOCTL
>PUSHBI IOCTL.WRITEBLOCK

View File

@ -109,15 +109,15 @@ CS.RUN.IPOK ldy #S.IPCFG.IP+3
jsr Wait.Timeout
bcc .2
>PUSHW L.MSG.UNKNOWN
>PUSHW ZPHostPtr
>PUSHBI 2
>LDYA L.MSG.UNKNOWN
>SYSCALL printf
>SYSCALL printf2
bra CS.RUN.ESYN
.9 >PUSHBI 0
>LDYA L.MSG.USAGE
>SYSCALL printf
.9 >PUSHW L.MSG.USAGE
>PUSHBI 0
>SYSCALL printf2
CS.RUN.ESYN lda #E.SYN
sec
@ -190,18 +190,19 @@ CS.RUN.HOSTOK >INC.G ArgIndex
>SYSCALL GetMemPtr
>STYA ZPReqBufPtr
CS.RUN.PORTOK >PUSHW ZPHostPtr
>PUSHW SA.REMOTE+S.SOCKADDR.PORT
ldx #3
CS.RUN.PORTOK >PUSHW L.MSG.CONNECT
ldx #0
.1 >PUSHB SA.REMOTE+S.SOCKADDR.ADDR,x
dex
bpl .1
inx
cpx #4
bne .1
>PUSHW SA.REMOTE+S.SOCKADDR.PORT
>PUSHW ZPHostPtr
>PUSHBI 8
>LDYA L.MSG.CONNECT
>SYSCALL printf
>SYSCALL printf2
CS.RUN.OPENSKT >PUSHBI 0 no protocol
lda #S.SOCKET.T.STREAM
@ -270,19 +271,23 @@ CS.RUN.GET jsr CS.RUN.ENCODE
.99 rts
*--------------------------------------
CS.RUN.SKTERR pha
>PUSHW L.MSG.SKTERR
pla
pha
>PUSHA
>PUSHBI 1
>LDYA L.MSG.SKTERR
>SYSCALL printf
>SYSCALL printf2
pla
sec
rts
*--------------------------------------
CS.RUN.IOERR pha
>PUSHW L.MSG.IOERR
pla
pha
>PUSHA
>PUSHBI 1
>LDYA L.MSG.IOERR
>SYSCALL printf
>SYSCALL printf2
pla
sec
rts

View File

@ -79,14 +79,15 @@ DHCP.RUN.ROFFER >SLEEP
lda #S.IPCFG.STATUS.ROFFER
sta IPCFG
DHCP.RUN.SREQ ldx #3
DHCP.RUN.SREQ >PUSHW L.MSG.DHCP.CFG2
ldx #0
.1 >PUSHB IPCFG+S.IPCFG.DHCPSRVR,x
dex
bpl .1
inx
cpx #4
bne .1
>PUSHBI 4
>LDYA L.MSG.DHCP.CFG2
>SYSCALL printf
>SYSCALL printf2
>PUSHW L.SA.DEST
>PUSHWI DHCP.REQ.LEN
@ -106,35 +107,42 @@ DHCP.RUN.RACK >SLEEP
bra DHCP.RUN.KO
.1 jsr CheckDHCPAck
bcs DHCP.RUN.RACK
DHCP.RUN.OK
lda #S.IPCFG.STATUS.OK
DHCP.RUN.OK lda #S.IPCFG.STATUS.OK
sta IPCFG
>PUSHW L.IPCFG
>LIBCALL hLIBTCPIP,LIBTCPIP.SETCFG
ldx #3
>PUSHW L.MSG.DHCP.OK
ldx #0
.1 lda IPCFG+S.IPCFG.MASK,x
.1 lda IPCFG+S.IPCFG.IP,x
>PUSHA
dex
bpl .1
ldx #3
inx
cpx #4
bne .1
ldx #0
.2 lda IPCFG+S.IPCFG.IP,x
>PUSHA
dex
bpl .2
inx
cpx #4
bne .2
>PUSHBI 8
>LDYA L.MSG.DHCP.OK
>SYSCALL printf
>SYSCALL printf2
lda #0 Leave with NO ERROR
sec
rts
DHCP.RUN.KO pha
>PUSHW L.MSG.DHCP.KO
pla
pha
>PUSHA
>PUSHBI 1
>LDYA L.MSG.DHCP.KO
>SYSCALL printf
>SYSCALL printf2
pla
sec
rts

View File

@ -16,11 +16,12 @@ CFG.EtcFiles >LDYAI 256
lda IPCFG+S.IPCFG.HOSTNAME
bne .4
>PUSHW L.IPCFG.HOSTNAME
>PUSHW L.CFG.DefaultHost
>PUSHW A2osX.TIMER16
>PUSHBI 2
>PUSHW L.CFG.DefaultHost
>LDYA L.IPCFG.HOSTNAME
>SYSCALL sprintf
.4 >LDYA L.TCPIP.CONF
jsr CFG.Read.PrintF
jsr CFG.Read.TCPIP.CONF
@ -40,10 +41,12 @@ CFG.EtcFiles >LDYAI 256
>SYSCALL freemem
.9 rts
*--------------------------------------
CFG.Read.PrintF >PUSHYA
CFG.Read.PrintF pha
>PUSHW L.MSG.CFG
pla
>PUSHYA
>PUSHBI 2
>LDYA L.MSG.CFG
>SYSCALL printf
>SYSCALL printf2
rts
*--------------------------------------
CFG.Read.HOSTNAME
@ -154,8 +157,7 @@ CFG.Read.IP ldy #3
dex
dey
bpl .1
>PUSHBI 8
4 PTRs on stack
>PUSHBI 8 4 PTRs on stack
>PUSHW L.CFG.IP.SScanF
lda (ZPTmpPtr2)
sec
@ -267,27 +269,31 @@ CFG.DNS.ADD >STYA ZPTmpPtr1
>LIBCALL hLIBTCPIP,LIBTCPIP.DNS.Add
*--------------------------------------
CFG.Read.Result bcc .1
pha
>PUSHW L.MSG.CFG.KO
pla
>PUSHA
>PUSHBI 1
>LDYA L.MSG.CFG.KO
>SYSCALL printf
>SYSCALL printf2
sec
rts
.1 >LDYA L.MSG.CFG.OK
>SYSCALL puts
rts
*--------------------------------------
CFG.Read.Open stz CFG.hCfgFile
pha
>PUSHWZ
>PUSHBI S.FI.T.TXT
>PUSHYA
>PUSHBI O.RDONLY
pla
>PUSHBI S.FI.T.TXT
>PUSHWZ
>SYSCALL fopen
bcs .9
sta CFG.hCfgFile
* clc
.9 rts*--------------------------------------
.9 rts
*--------------------------------------
CFG.Read.Close php
pha
CFG.Read.Close2 lda CFG.hCfgFile

View File

@ -66,7 +66,7 @@ L.MSG2 .DA MSG2
L.MSG2.C .DA MSG2.C
L.MSG2.U .DA MSG2.U
L.MSG2.DHCPSRVR .DA MSG2.DHCPSRVR
L.MSG2.IP .DA MSG2.IP
L.MSG2.IPMASK .DA MSG2.IPMASK
L.MSG2.GW .DA MSG2.GW
L.MSG2.DNS .DA MSG2.DNS
L.MSG2.HOSTNAME .DA MSG2.HOSTNAME
@ -148,9 +148,9 @@ CS.RUN.SETUP
dex
bpl .2
.99 >PUSHBI 0
>LDYA L.MSG.USAGE
>SYSCALL printf
.99 >PUSHW L.MSG.USAGE
>PUSHBI 0
>SYSCALL printf2
lda #E.SYN
sec
rts
@ -204,15 +204,11 @@ CS.RUN.DUMP >PUSHEA.G DIB
>PUSHBI IOCTL.STATUS
lda IPCFG+S.NETCFG.DevID
>SYSCALL IOCTL
CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5
ldx #6
.1 lda (pData),y
>PUSHA
dey
dex
bne .1
>PUSHEA.G DIB+S.DIB.IDS
CS.RUN.DUMPNIC >PUSHW L.MSG1.DEV
lda IPCFG+S.NETCFG.DevID
>PUSHA
ldx IPCFG+S.NETCFG.DevID
lda Dev.Table-1,x
@ -221,21 +217,35 @@ CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5
tay
lda Dev.Table,x
adc /S.FD.DEV
>PUSHYA
lda IPCFG+S.NETCFG.DevID
>PUSHEA.G DIB+S.DIB.IDS
ldy #DCB.NIC+S.DCB.NIC.MAC
ldx #6
.1 lda (pData),y
>PUSHA
iny
dex
bne .1
>PUSHBI 11
>LDYA L.MSG1.DEV
>SYSCALL printf
>SYSCALL printf2
>PUSHW L.MSG1.DEV.ARP
>LDA.G DCB.NIC+S.DCB.NIC.FLAGS
and #S.DCB.NIC.FLAGS.ARPOFFLOAD
beq .2
lda #1
.2 >PUSHA
>PUSHBI 1
>LDYA L.MSG1.DEV.ARP
>SYSCALL printf
>SYSCALL printf2
>PUSHW L.MSG1.DEV.IP
>LDA.G DCB.NIC+S.DCB.NIC.FLAGS
and #S.DCB.NIC.FLAGS.IPOFFLOAD
@ -245,8 +255,8 @@ CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5
.3
>PUSHA
>PUSHBI 1
>LDYA L.MSG1.DEV.IP
>SYSCALL printf
>SYSCALL printf2
>LDA.G DCB.NIC+S.DCB.NIC.LINK
and #S.DCB.NIC.LINK.OK
@ -254,11 +264,14 @@ CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5
>LDYA L.MSG1.LINK.KO
>SYSCALL puts
bra CS.RUN.DUMPIP
CS.RUN.LINK >LDYA L.MSG1.LINK.OK
>SYSCALL puts
>PUSHW L.MSG1.LINKSPEED
>PUSHBI 0
>LDYA L.MSG1.LINKSPEED
>SYSCALL printf
>SYSCALL printf2
>LDA.G DCB.NIC+S.DCB.NIC.SPEED
and #$0F
tax
@ -276,9 +289,10 @@ CS.RUN.LINK >LDYA L.MSG1.LINK.OK
.5 >LDYA L.MSG1.DPLX.FD
.6 >SYSCALL puts
CS.RUN.DUMPIP >PUSHBI 0
>LDYA L.MSG2
>SYSCALL printf
CS.RUN.DUMPIP >PUSHW L.MSG2
>PUSHBI 0
>SYSCALL printf2
lda IPCFG+S.NETCFG.STATUS
and #S.IPCFG.STATUS.OK
beq .11
@ -287,41 +301,56 @@ CS.RUN.DUMPIP >PUSHBI 0
.11 >LDYA L.MSG2.U
.10 >SYSCALL puts
ldx #3
>PUSHW L.MSG2.DHCPSRVR
ldx #0
.2 >PUSHB IPCFG+S.IPCFG.DHCPSRVR,x
dex
bpl .2
inx
cpx #4
bne .2
>PUSHBI 4
>LDYA L.MSG2.DHCPSRVR
>SYSCALL printf
ldx #7 IP/MASK
>SYSCALL printf2
>PUSHW L.MSG2.IPMASK
ldx #0 IP/MASK
.3 >PUSHB IPCFG+S.IPCFG.IP,x
dex
bpl .3
inx
cpx #8
bne .3
>PUSHBI 8
>LDYA L.MSG2.IP
>SYSCALL printf
ldx #3
>SYSCALL printf2
>PUSHW L.MSG2.GW
ldx #0
.4 >PUSHB IPCFG+S.IPCFG.GW,x
dex
bpl .4
inx
cpx #4
bne .4
>PUSHBI 4
>LDYA L.MSG2.GW
>SYSCALL printf
ldy #7
>SYSCALL printf2
>PUSHW L.MSG2.DNS
ldx #0
.5 >PUSHB IPCFG+S.IPCFG.DNS1,x
dex
bpl .5
inx
cpx #8
bne .5
>PUSHBI 8
>LDYA L.MSG2.DNS
>SYSCALL printf
>PUSHW L.IPCFG.DOMAIN
>SYSCALL printf2
>PUSHW L.MSG2.HOSTNAME
>PUSHW L.IPCFG.HOSTNAME
>PUSHW L.IPCFG.DOMAIN
>PUSHBI 4
>LDYA L.MSG2.HOSTNAME
>SYSCALL printf
>SYSCALL printf2
lda #0 tell TSKMGR that all done ok, but
sec we do not want to stay in memory
rts
@ -385,7 +414,7 @@ MSG2 .AZ "IP Configuration : "
MSG2.C .AZ "Configured"
MSG2.U .AZ "Not Configured"
MSG2.DHCPSRVR .AZ " DHCP Server : %d.%d.%d.%d\r\n"
MSG2.IP .AZ " IP/Mask : %d.%d.%d.%d/%d.%d.%d.%d\r\n"
MSG2.IPMASK .AZ " IP/Mask : %d.%d.%d.%d/%d.%d.%d.%d\r\n"
MSG2.GW .AZ " Gateway : %d.%d.%d.%d\r\n"
MSG2.DNS .AZ " DNS : %d.%d.%d.%d,%d.%d.%d.%d\r\n"
MSG2.HOSTNAME .AZ " Hostname : %s.%s\r\n"

View File

@ -181,23 +181,28 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
CS.RUN.PRINT.DEV
>LDA.G bLong
bpl CS.RUN.PRINT.DIR
ldy #S.STAT.P.DEVBLOCKS+1
>PUSHW L.MSG.DEVEXT
>PUSHW ZPFileName
ldy #S.STAT.P.SLOT
>PUSHB (ZPFileStat),y
dey
iny DRIVE
>PUSHB (ZPFileStat),y
ldy #S.STAT.BLOCKS+1
>PUSHB (ZPFileStat),y
dey
>PUSHB (ZPFileStat),y
ldy #S.STAT.P.DRIVE
ldy #S.STAT.P.DEVBLOCKS+1
>PUSHB (ZPFileStat),y
dey SLOT
dey
>PUSHB (ZPFileStat),y
>PUSHW ZPFileName
>PUSHBI 8
>LDYA L.MSG.DEVEXT
>SYSCALL printf
>SYSCALL printf2
bcs .9
ldy #bRecurse
@ -226,11 +231,9 @@ CS.RUN.PRINT.DIR
bmi .23
>LDA.G bFullPath
bpl .22
>PUSHBI 0
ldy #hSrcBasePath
lda (pData),y
>SYSCALL GetMemPtr
>SYSCALL printf
jsr CS.RUN.PRINT.SRCPATH
.23 >LDYA ZPFileName
>SYSCALL puts
bcs .9
@ -243,43 +246,46 @@ CS.RUN.PRINT.DIR
jmp EnterSubDirYA
.8 clc
.9 rts
.22 >PUSHW ZPFileName
>PUSHBI 2
>LDYA L.MSG.DIR
>SYSCALL printf
.22 >PUSHW L.MSG.DIR
>PUSHW ZPFileName
>PUSHBI 2
>SYSCALL printf2
bcs .9
ldy #0
.1 iny
lda (ZPFileName),y
bne .1
.11 iny
cpy #19
bcs .2
lda #' '
phy
>SYSCALL PutChar
ply
bcc .11
rts
.2 jsr CS.RUN.UpdateColCnt
bcc .5
rts
*--------------------------------------
.4 >PUSHW ZPFileName
.4 >PUSHW L.MSG.DIREXT
jsr CS.RUN.PUSHDATES
jsr CS.RUN.PushGidUid
jsr Mod2CSTR
>PUSHEA.G MOD File Mod
jsr CS.RUN.PushGidUid
jsr CS.RUN.PUSHDATES
>PUSHW ZPFileName
>PUSHBI 12
>LDYA L.MSG.DIREXT
>SYSCALL printf
>SYSCALL printf2
bcs .90
.5 >LDA.G bRecurse
bpl .80
lda (ZPFileName)
@ -303,37 +309,26 @@ CS.RUN.PRINT.FILE
>LDA.G bFullPath
bpl .22
>PUSHBI 0
ldy #hSrcBasePath
lda (pData),y
>SYSCALL GetMemPtr
>SYSCALL printf
jsr CS.RUN.PRINT.SRCPATH
.23 >LDYA ZPFileName
>SYSCALL puts
rts
.22 >PUSHW ZPFileName
.22 >PUSHW L.MSG.FILE
>PUSHW ZPFileName
>PUSHBI 2
>LDYA L.MSG.FILE
>SYSCALL printf
>SYSCALL printf2
bcs .9
jmp CS.RUN.UpdateColCnt
*--------------------------------------
.1 >PUSHW ZPFileName
.1 >PUSHW L.MSG.FILEEXT
ldy #S.STAT.P.AUXTYPE+1
lda (ZPFileStat),y
>PUSHA
dey
lda (ZPFileStat),y
>PUSHA
jsr Mod2CSTR
>PUSHEA.G MOD File Mod
dey Type
lda (ZPFileStat),y
jsr FileType2PSTR
>PUSHYA
jsr CS.RUN.PUSHDATES
jsr CS.RUN.PushGidUid
ldy #S.STAT.SIZE+3
ldx #4
@ -344,17 +339,36 @@ CS.RUN.PRINT.FILE
dex
bne .2
jsr CS.RUN.PushGidUid
jsr CS.RUN.PUSHDATES
jsr Mod2CSTR
>PUSHEA.G MOD File Mod
ldy #S.STAT.P.TYPE
lda (ZPFileStat),y
jsr FileType2PSTR
>PUSHYA
ldy #S.STAT.P.AUXTYPE+1
lda (ZPFileStat),y
>PUSHA
dey
lda (ZPFileStat),y
>PUSHA
>PUSHW ZPFileName
>PUSHBI 20
>LDYA L.MSG.FILEEXT
>SYSCALL printf
>SYSCALL printf2
.9 rts
*--------------------------------------
CS.RUN.PRINT.SRCPATH
ldy #hSrcBasePath
lda (pData),y
>SYSCALL GetMemPtr
>PUSHYA
>PUSHBI 0
>SYSCALL printf2
rts
*--------------------------------------
CS.RUN.PushGidUid
ldy #S.STAT.GID
lda (ZPFileStat),y
@ -377,15 +391,16 @@ CS.RUN.PushGidUid
* clc
rts
.3 ldy #S.STAT.UID+1
.3 >PUSHEA.G UID
>PUSHW L.FMT.int16
ldy #S.STAT.UID+1
lda (ZPFileStat),y
>PUSHA
dey
lda (ZPFileStat),y
>PUSHA
>PUSHBI 2
>PUSHW L.FMT.int16
>LEA.G UID
>SYSCALL sprintf
>PUSHEA.G UID
@ -491,22 +506,23 @@ CS.RUN.UpdateColCnt
CS.RUN.NewLine >LDA.G ColCount
beq CS.RUN.NewLine.8
CS.RUN.NewLine.1
>PUSHW L.MSG.CRLF
>PUSHBI 0
>LDYA L.MSG.CRLF
>SYSCALL printf
>SYSCALL printf2
rts
CS.RUN.NewLine.8
clc
rts
*--------------------------------------
CS.RUN.ENTER.MSG
>PUSHW L.MSG.ENTER
ldy #hSrcBasePath
lda (pData),y
>SYSCALL GetMemPtr
>PUSHYA
>PUSHBI 2
>LDYA L.MSG.ENTER
>SYSCALL printf
>SYSCALL printf2
rts
*--------------------------------------
CS.DOEVENT sec

View File

@ -92,10 +92,13 @@ DumpDev >LDYA L.MSG0
lda Index
>SYSCALL GetDevStatus
bcc .6
pha
>PUSHW L.MSG2.ERR
pla
>PUSHA
>PUSHBI 1
>LDYA L.MSG2.ERR
>SYSCALL printf
>SYSCALL printf2
bcs .9
bra .7
@ -111,11 +114,12 @@ DumpDev >LDYA L.MSG0
.8 clc
.9 rts
*--------------------------------------
DumpDevFD ldy #S.FD.DEV.DRVPTR+1
>PUSHB (ZPFDPtr),y
DumpDevFD >PUSHW L.MSG1
>PUSHB Index
>PUSHB (ZPFDPtr) S.FD.T
dey
>PUSHB (ZPFDPtr),y
lda ZPFDPtr
clc
adc #S.FD.DEV
@ -123,50 +127,66 @@ DumpDevFD ldy #S.FD.DEV.DRVPTR+1
lda ZPFDPtr+1
adc /S.FD.DEV
>PUSHYA
>PUSHB (ZPFDPtr) S.FD.T
ldy #S.FD.DEV.DRVPTR+1
>PUSHB (ZPFDPtr),y
>PUSHB Index
dey
>PUSHB (ZPFDPtr),y
>PUSHBI 6
>LDYA L.MSG1
>SYSCALL printf
>SYSCALL printf2
rts
*--------------------------------------
DumpDevDIB >PUSHB.G DEV.DIB+S.DIB.VERSION+1
>PUSHB.G DEV.DIB+S.DIB.VERSION
>PUSHEA.G DEV.DIB+S.DIB.IDS
>PUSHB.G DEV.DIB+S.DIB.ST
>PUSHB.G DEV.DIB+S.DIB.T
DumpDevDIB >PUSHW L.MSG2
>LDA.G DEV.DIB+S.DIB.S
ldy #DEV.SFLAGS+7
ldx #7
.1 lsr
pha
lda #'-'
bcc .2
lda MSG.SFLAGS,x
.2 sta (pData),y
pla
dey
dex
bpl .1
>PUSHEA.G DEV.SFLAGS
>PUSHB.G DEV.DIB+S.DIB.T
>PUSHB.G DEV.DIB+S.DIB.ST
>PUSHEA.G DEV.DIB+S.DIB.IDS
>PUSHB.G DEV.DIB+S.DIB.VERSION
>PUSHB.G DEV.DIB+S.DIB.VERSION+1
>PUSHBI 8
>LDYA L.MSG2
>SYSCALL printf
>SYSCALL printf2
bcs .9
>LDA.G DEV.DIB+S.DIB.S
bpl .4 char device...
>PUSHW L.MSG2.B
>PUSHBI 0
>PUSHB.G DEV.DIB+S.DIB.SIZE+2
>PUSHB.G DEV.DIB+S.DIB.SIZE+1
>PUSHB.G DEV.DIB+S.DIB.SIZE
>PUSHBI 4
>LDYA L.MSG2.B
bra .8
.4 >PUSHBI 0
>LDYA L.MSG2.C
.8 >SYSCALL printf
.4 >PUSHW L.MSG2.C
>PUSHBI 0
.8 >SYSCALL printf2
.9 rts
*--------------------------------------
DumpNod >LDYA L.MSG3
@ -174,10 +194,19 @@ DumpNod >LDYA L.MSG3
ldx #2
stx Index
.1 lda Nod.Table.hPath-2,x
beq .7
>SYSCALL GetMemPtr
>PUSHYA
>PUSHW L.MSG4
lda Index
>PUSHA
tax
lda Nod.Table.hFD-2,x
>PUSHA
ldx Index
lda Nod.Table.hFD-2,x
>SYSCALL GetMemPtr
@ -185,14 +214,15 @@ DumpNod >LDYA L.MSG3
lda (ZPFDPtr)
tax
>PUSHW L.FD.T,x
ldx Index
lda Nod.Table.hFD-2,x
>PUSHA
txa
>PUSHA
ldx index
lda Nod.Table.hPath-2,x
>SYSCALL GetMemPtr
>PUSHYA
>PUSHBI 6
>LDYA L.MSG4
>SYSCALL printf
>SYSCALL printf2
.7 inc index
ldx index

View File

@ -12,6 +12,7 @@ AUTO 4,1
.INB INC/KERNEL.I
*--------------------------------------
ZPFDPtr .EQ ZPBIN
FILE.ID .EQ ZPBIN+2
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
@ -50,17 +51,27 @@ CS.INIT clc
CS.RUN >LDYA L.MSG0
>SYSCALL puts
lda #1
>STA.G FILE.ID
.1 tax
lda OF.Table.hFD-1,x
ldx #1
stx FILE.ID
.1 lda OF.Table.hFD-1,x
beq .7
>SYSCALL GetMemPtr
>STYA ZPFDPtr
>LDA.G FILE.ID
>PUSHW L.MSG1
lda FILE.ID
tax
>PUSHA
lda OF.Table.hFD-1,x
>PUSHA
ldx FILE.ID
lda OF.Table.hPath-1,x
bne .2
lda OF.Table.hFD-1,x
tax
@ -76,22 +87,22 @@ CS.RUN >LDYA L.MSG0
bra .3
.2 >SYSCALL GetMemPtr
.3 >PUSHYA
.3 pha
lda (ZPFDPtr)
tax
>PUSHW L.FD.T,x
>LDA.G FILE.ID
tax
lda OF.Table.hFD-1,x
>PUSHA
txa
>PUSHA
pla
>PUSHYA
>PUSHBI 6
>LDYA L.MSG1
>SYSCALL printf
.7 >INC.G FILE.ID
cmp #K.OF.MAX+1
>SYSCALL printf2
.7 inc FILE.ID
ldx FILE.ID
cpx #K.OF.MAX+1
bne .1
.8 lda #0
@ -106,7 +117,7 @@ CS.QUIT clc
*--------------------------------------
CS.END
MSG0 .AZ "hFILE hFD Type Filepath"
MSG1 .AZ "%03d $%h %5s %s\r\n"
MSG1 .AZ "%3d %3d %5s %s\r\n"
FD.T.REG .AZ "REG"
FD.T.DIR .AZ "DIR"
FD.T.CDEV .AZ "CDEV"
@ -119,7 +130,6 @@ FD.T.PIPE .AZ "PIPE"
.DUMMY
.OR 0
DS.START
FILE.ID .BS 1
DS.END
.ED
*--------------------------------------

View File

@ -158,11 +158,13 @@ CS.RUN.OPEN pha
.9 rts
*--------------------------------------
CS.RUN.PAUSE >PUSHBI 0
>PUSHW L.MSG.Pause
ldy #S.PS.hStdErr
CS.RUN.PAUSE ldy #S.PS.hStdErr
lda (pPS),y
>PUSHA
>PUSHW L.MSG.Pause
>PUSHBI 0
>SYSCALL fprintf
.10 jsr CS.RUN.GETC
bcs .99
@ -196,10 +198,11 @@ CS.RUN.PAUSE >PUSHBI 0
.99 sec
rts
*--------------------------------------
CS.RUN.ERASE >PUSHBI 0
>PUSHW L.MSG.PauseErase
ldy #S.PS.hStdErr
CS.RUN.ERASE ldy #S.PS.hStdErr
lda (pPS),y
>PUSHA
>PUSHW L.MSG.PauseErase
>PUSHBI 0
>SYSCALL fprintf
rts
*--------------------------------------

View File

@ -76,9 +76,9 @@ CS.RUN lda #1
sec
rts
.10 >PUSHBI 0
>LDYA L.MSG0
>SYSCALL printf
.10 >PUSHW L.MSG0
>PUSHBI 0
>SYSCALL printf2
ldx Index
.1 lda PS.Table.hPS,x
@ -108,37 +108,40 @@ CS.RUN.DUMP >SYSCALL GetMemPtr
lda S.Table.hSession-1,x
>SYSCALL GetMemPtr
>STYA ZPSessionPtr
ldy #S.SESSION.UID
lda (ZPSessionPtr),y
>PUSHW L.MSG1
ldx Index
lda PS.Table.hPS,x
>PUSHA
jsr CS.RUN.DecodeFlags
>PUSHEA.G PS.FLAGS
ldy #S.PS.PPID
.1 lda (ZPPSPtr),y
>PUSHA
iny
cpy #S.PS.CPID+1
bne .1
lda PS.Table.Stats,x
>PUSHA CPU%
ldy #S.PS.S
lda (ZPPSPtr),y
tax
lda L.STATUS+1,x
>PUSHA
lda L.STATUS,x
>PUSHA
ldx Index
lda PS.Table.Stats,x
>PUSHA CPU%
ldy #S.PS.CPID
>PUSHW L.STATUS,x
.1 lda (ZPPSPtr),y
>PUSHA
dey
cpy #S.PS.PPID-1
bne .1
lda PS.Table.hPS,x
jsr CS.RUN.DecodeFlags
>PUSHEA.G PS.FLAGS
ldy #S.SESSION.UID
lda (ZPSessionPtr),y
>PUSHA
>PUSHBI 10
>LDYA L.MSG1
>SYSCALL printf
>SYSCALL printf2
bcs .9
jmp CS.RUN.PrintArgs
.9 rts
@ -169,10 +172,10 @@ CS.RUN.PrintArgs
.1 lda (ZPArgV)
beq .8
>PUSHW L.MSG2
>PUSHW ZPArgV
>PUSHBI 2
>LDYA L.MSG2
>SYSCALL printf
>SYSCALL printf2
bcs .9
.2 inc ZPArgV
bne .3
@ -184,9 +187,9 @@ CS.RUN.PrintArgs
inc ZPArgV+1
bra .1
.8 >PUSHBI 0
>LDYA L.MSG3
>SYSCALL printf
.8 >PUSHW L.MSG3
>PUSHBI 0
>SYSCALL printf2
.9 rts
*--------------------------------------
CS.DOEVENT sec

View File

@ -10,27 +10,32 @@ CL.Init >LDYAI 256
>STA.G CL.hCLBuf
.9 rts
*--------------------------------------
CL.PrintPrompt >LDYA L.PS1
CL.PrintPrompt >PUSHW L.PS1
>PUSHWI 0
>SYSCALL Expand
bcs .9
phx
pha
>PUSHYA
>PUSHBI 0
pla
>SYSCALL printf
>SYSCALL printf2
pla
>SYSCALL FreeMem
.1 >PUSHBI 0
>LDYA L.MSG.PROMPT
>SYSCALL printf
.1 >PUSHW L.MSG.PROMPT
>PUSHBI 0
>SYSCALL printf2
.9 rts
*--------------------------------------
CL.READN0X txa
CL.READN0A >PUSHA
>PUSHBI 1
CL.READN0A tax
CL.READN0X
>PUSHW ZPCLBuf
>PUSHW L.FMT.Byte
>LDYA ZPCLBuf
txa
>PUSHA
>PUSHBI 1
>SYSCALL sprintf
bcs .9

View File

@ -82,10 +82,13 @@ CMD.CD.0 >LDYA ZPArgVBufPtr
CMD.CD.HOME >LDYA L.HOME
CMD.CD.YA >SYSCALL realpath
CMD.CD.YA >PUSHYA
>PUSHWI 0 Allocate
>SYSCALL realpath
bcs CMD.POPD.RTS
>STYA ZPPtr1
stx ZPTmpW Save hMem
ldy #1
lda (ZPPtr1),y
bne .12
@ -330,9 +333,9 @@ CMD.ECHO stz ZPPtr1 echo -N
.7 bit ZPPtr1
bmi .8
>PUSHW L.MSG.ECHOCRLF
>PUSHBI 0
>LDYA L.MSG.ECHOCRLF
>SYSCALL printf
>SYSCALL printf2
.9 rts
.8 clc
@ -459,7 +462,8 @@ CMD.REN lda (ZPArgVBufPtr)
lda (ZPArgVBufPtr)
beq CMD.REN.CSYN
>LDYA ZPArgVBufPrev old path
>PUSHW ZPArgVBufPrev old path
>PUSHWI 0 Allocate
>SYSCALL realpath
bcs CMD.REN.CSYN
@ -1206,9 +1210,9 @@ CMD.IsSwitch lda (ZPArgVBufPtr)
rts
*--------------------------------------
CMD.PrintArgVBufPtr
>PUSHW ZPArgVBufPtr
>PUSHBI 0
>LDYA ZPArgVBufPtr
>SYSCALL printf
>SYSCALL printf2
rts
*--------------------------------------
MAN

View File

@ -290,9 +290,9 @@ CORE.ExecCmd lda #0
jmp (J.CMD,x)
CORE.ExecExtCmd >PUSHB CORE.PSFlags
CORE.ExecExtCmd >PUSHW ZPArgVBuf
>PUSHB CORE.PSFlags
>LDYA ZPArgVBuf
>SYSCALL execv
bcs .9
@ -304,11 +304,16 @@ CORE.ExecExtCmd >PUSHB CORE.PSFlags
>LDA.G CORE.bPipeOut
bmi .4
ldy #S.PS.hStdErr
lda (pPS),y
>PUSHA
>PUSHW L.MSG.PID
txa
>PUSHA
>PUSHBI 1
>PUSHW L.MSG.PID
jmp IO.PrintErr
>SYSCALL fprintf
rts
.4 >SLEEP Suspend this PID
sec
@ -390,6 +395,7 @@ CORE.Lookup >STYA ZPPtr2
jsr CORE.IsSpaceOrEndCmd
bcc .9 end of valid chars
clc
CORE.ArgV.Add.RTS
rts
*--------------------------------------
* ArgV
@ -400,7 +406,7 @@ CORE.ArgV.Add lda #C.SPACE
ldy #0
jsr CORE.GetCharNB
bcs .9
bcs CORE.ArgV.Add.RTS
cmp #'"'
bne .10
@ -450,6 +456,8 @@ CORE.ArgV.Add lda #C.SPACE
>LDYA ZPArgVBufPtr
>STYA ZPArgVBufPrev
>PUSHYA
>PUSHWI 0
>SYSCALL Expand
bcs .9

View File

@ -27,9 +27,9 @@ EXP.GET jsr CORE.ArgV.Next
jsr CORE.ArgV.Next another op ?
bne .2
.8 >PUSHBI 4 ACC on stack
>PUSHEA.G M32.BUF
>PUSHW L.FMT.Long
>LEA.G M32.BUF
>PUSHBI 4 ACC on stack
>SYSCALL sprintf
bcs .9
>LEA.G M32.BUF

View File

@ -7,11 +7,10 @@ IO.Reset jsr IO.Reset.In
jsr IO.Reset.Err
IO.Reset.9 rts
*--------------------------------------
IO.Load pha
>PUSHWZ Aux type
>PUSHBI S.FI.T.TXT
IO.Load >PUSHYA
>PUSHBI O.RDONLY
pla
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL LoadTxtFile
rts
*--------------------------------------
@ -138,20 +137,18 @@ IO.Pipe.OpenR ldx #O.RDONLY+O.TEXT
IO.Pipe.OpenW ldx #O.WRONLY+O.TEXT
>LEA.G IO.FIFO
*--------------------------------------
IO.FOpenYAX pha
>PUSHWZ Aux type
>PUSHBI S.FI.T.TXT
IO.FOpenYAX >PUSHYA
txa
>PUSHA
pla
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL fopen
rts
*--------------------------------------
IO.StatArgVBufPtr
>LDYA ZPArgVBufPtr
IO.StatYA pha
IO.StatYA >PUSHYA
>PUSHW ZPCLBuf
pla
>SYSCALL STAT
bcs .9
@ -219,11 +216,16 @@ IO.PrintBatchErrMsg
bne .5
sta (ZPCLBuf),y
.6 >PUSHW ZPCLBuf
.6 ldy #S.PS.hStdErr
lda (pPS),y
>PUSHA
>PUSHW L.MSG.BATCHLINE
>PUSHW ZPCLBuf
>PUSHBI 2
>PUSHW L.MSG.BATCHLINE
jsr IO.PrintErr
>SYSCALL fprintf
ldy #$ff
ldx #'-'
@ -236,11 +238,15 @@ IO.PrintBatchErrMsg
sta (ZPCLBuf),y
bra .7
.8 >PUSHW ZPTmpW
>PUSHW ZPCLBuf
>PUSHBI 4
.8 ldy #S.PS.hStdErr
lda (pPS),y
>PUSHA
>PUSHW L.MSG.BATCHERR
.80 bra IO.PrintErr
>PUSHW ZPCLBuf
>PUSHW ZPTmpW
>PUSHBI 4
>SYSCALL fprintf
rts
*--------------------------------------
IO.PrintErrMsg ldx L.ERR.Codes
stx ZPPTR1
@ -269,17 +275,19 @@ IO.PrintErrMsg ldx L.ERR.Codes
jsr AddAp1Ptr1
bra .3
.8 >PUSHW ZPPTR1
.8 ldy #S.PS.hStdErr
lda (pPS),y
>PUSHA
>PUSHW L.MSG.ERROR
ldy #S.PS.RC
lda (pPs),y
>PUSHA
>PUSHW ZPPTR1
>PUSHBI 3
>PUSHW L.MSG.ERROR
IO.PrintErr ldy #S.PS.hStdErr
lda (pPS),y
>SYSCALL fprintf
rts
*--------------------------------------

View File

@ -222,10 +222,11 @@ CS.RUN jsr CL.Init
jsr HIS.Init
bcs CS.INIT.RTS
>PUSHWI K.VER
>PUSHW L.MSG.GREETINGS
>PUSHB #K.VER
>PUSHB /K.VER
>PUSHBI 2
>LDYA L.MSG.GREETINGS
>SYSCALL printf
>SYSCALL printf2
bcs CS.INIT.RTS
>LDYA L.HOME.PROFILE
@ -321,9 +322,9 @@ CS.RUN.INTERACTIVE
>LDA.G CL.bReady Something to execute ?
bpl .1
>PUSHW L.MSG.PROMPTCRLF
>PUSHBI 0
>LDYA L.MSG.PROMPTCRLF
>SYSCALL printf
>SYSCALL printf2
bcs .9
lda (ZPCLBuf)
beq .8 Empty line
@ -362,10 +363,10 @@ CS.RUN.BATCH >LDA.G bSET.X
sta (ZPCLBuf),y
.4 >PUSHW ZPCLBuf
.4 >PUSHW L.MSG.TRACE
>PUSHW ZPCLBuf
>PUSHBI 2
>LDYA L.MSG.TRACE
>SYSCALL printf
>SYSCALL printf2
bcs CS.RUN.LOOP.RTS
.5 jsr CORE.Run

View File

@ -99,6 +99,8 @@ CS.RUN.RTS rts
*--------------------------------------
CS.RUN.DUMP lda ArgFile
>SYSCALL ArgV
>PUSHYA
>PUSHWI 0 Allocate
>SYSCALL Realpath
bcs CS.RUN.RTS

View File

@ -74,22 +74,22 @@ CS.INIT clc
CS.RUN >LDYAI S.PW
>SYSCALL getmem
bcs .99
>STYA ZPPWPtr
stx ZPhPW
>LDYAI 256
>SYSCALL getmem
bcs .99
>STYA ZPStrPtr
stx ZPhStr
>PUSHW ZPPWPtr
lda #0
>SYSCALL GetPWUID
bcc .1
jmp CS.RUN.ROOT
.1 ldy #S.PW
@ -115,6 +115,7 @@ CS.RUN >LDYAI S.PW
lda #0
sec
rts
.9 >PUSHBI 0
>LDYA L.MSG.USAGE
>SYSCALL printf

View File

@ -64,9 +64,9 @@ CS.INIT
dex
bpl .2
.99 >PUSHBI 0
>LDYA L.MSG.USAGE
>SYSCALL printf
.99 >PUSHW L.MSG.USAGE
>PUSHBI 0
>SYSCALL printf2
lda #E.SYN
sec
rts
@ -267,13 +267,16 @@ CS.RUN.LEAVE jsr LeaveSubDir exit this sub dir....
.99 ldy #bQuiet
lda (pData),y
bmi .91
>PUSHW L.MSG.DONE
ldy #Count+1
>PUSHB (pData),y
dey
>PUSHB (pData),y
>PUSHBI 2
>LDYA L.MSG.DONE
>SYSCALL printf
>SYSCALL printf2
.91 ldy #RC
lda (pData),y get global RC in case of bContinue
sec
@ -284,13 +287,15 @@ CS.RUN.DIR .DO X.COPY.TO.DEST=1
jsr CS.RUN.DIR.MSG
bcs CS.RUN.LEAVE.RTS
>PUSHW L.STAT
ldy #hDstFullPath
jsr CS.RUN.GetPathY
>PUSHYA
>PUSHW L.STAT
>SYSCALL Stat
bcs .3 File Not exists...go create
ldy #bNoConfirm
lda (pData),y
bmi .21 no prompt, nothing to create, enter subdir
@ -337,9 +342,10 @@ CS.RUN.FILE jsr CS.RUN.FILE.MSG
bcs CS.RUN.DIR.RTS
.DO X.COPY.TO.DEST=1
>PUSHW L.STAT
ldy #hDstFullPath
jsr CS.RUN.GetPathY
>PUSHYA
>PUSHW L.STAT
>SYSCALL Stat
bcs .2 File Not exists...go create
@ -413,30 +419,32 @@ CS.RUN.FILE.MSG clc
>LDA.G bQuiet
bmi .8
php
.DO X.COPY.TO.DEST=1
ldy #hDstFullPath
jsr CS.RUN.GetPathY
>PUSHYA
.FIN
bcc .1
>LDYA L.MSG.DIR
bcs .2
.1 >LDYA L.MSG.FILE
.2 >PUSHYA
ldy #hSrcFullPath
jsr CS.RUN.GetPathY
>PUSHYA
.DO X.COPY.TO.DEST=1
ldy #hDstFullPath
jsr CS.RUN.GetPathY
>PUSHYA
>PUSHBI 4
.ELSE
>PUSHBI 2
.FIN
plp
bcc .1
>LDYA L.MSG.DIR
bcs .2
.1 >LDYA L.MSG.FILE
.2 >SYSCALL printf
>SYSCALL printf2
rts
.8 clc
rts
*--------------------------------------
@ -446,18 +454,18 @@ CS.RUN.OVERWRITE.MSG
bmi .1
jsr CS.RUN.CR
.1 ldy #hDstFullPath
.1 >PUSHW L.MSG.OVERWRITE
ldy #hDstFullPath
jsr CS.RUN.GetPathY
>PUSHYA
>PUSHBI 2
>LDYA L.MSG.OVERWRITE
>SYSCALL printf
>SYSCALL printf2
rts
.FIN
*--------------------------------------
CS.RUN.CR >PUSHBI 0
>LDYA L.MSG.CRLF
>SYSCALL printf
CS.RUN.CR >PUSHW L.MSG.CRLF
>PUSHBI 0
>SYSCALL printf2
rts
*--------------------------------------
.DO X.COPY.TO.DEST=1
@ -508,19 +516,21 @@ CS.RUN.CopyStart
.99 >STA.G CopyRC
rts
*--------------------------------------
CS.RUN.Open phy Save Filename
pha Save open mode
CS.RUN.Open pha Save open mode
jsr CS.RUN.GetPathY
>PUSHYA
pla
>PUSHA
ldy #S.STAT.P.TYPE
>PUSHB (ZPFileStat),y
ldy #S.STAT.P.AUXTYPE+1
>PUSHB (ZPFileStat),y
dey
>PUSHB (ZPFileStat),y
ldy #S.STAT.P.TYPE
>PUSHB (ZPFileStat),y
pla
>PUSHA
ply
jsr CS.RUN.GetPathY
>SYSCALL FOpen
rts
*--------------------------------------
@ -585,10 +595,12 @@ CS.RUN.CheckErr bcs .1
.8 rts
.1 pha
>PUSHW L.MSG.ERR
pla
pha
>PUSHA
>PUSHBI 1
>LDYA L.MSG.ERR
>SYSCALL printf
>SYSCALL printf2
>LDA.G bContinue
eor #$80

View File

@ -116,7 +116,9 @@ FilterMatch.NextPtr2
.1 lda (ZPPtr2)
rts
*--------------------------------------
InitSrcDirYA >SYSCALL RealPath
InitSrcDirYA >PUSHYA
>PUSHWI 0 Allocate
>SYSCALL RealPath
bcs FilterMatch.RTS
>STYA ZPPtr1
@ -127,8 +129,8 @@ InitSrcDirYA >SYSCALL RealPath
lda (ZPPtr1),y
beq .5 we have '/'
>PUSHW ZPPtr1
>PUSHEA.G STAT
>LDYA ZPPtr1
>SYSCALL Stat
bcs .1 File/DIR does not exists, go extract pattern
@ -209,7 +211,7 @@ InitSrcDirYA >SYSCALL RealPath
lda #0
sta (ZPPtr2),y
.7 >LDYA ZPPtr2
.7 >PUSHW ZPPtr2
>SYSCALL OpenDir
bcs .9
@ -233,14 +235,16 @@ InitSrcDirYA.RTS
rts
*--------------------------------------
.DO X.COPY.TO.DEST=1
InitDstDirYA >SYSCALL RealPath
InitDstDirYA >PUSHYA
>PUSHWI 0 Allocate
>SYSCALL RealPath
bcs InitSrcDirYA.RTS
>STYA ZPPtr1
txa
>STA.G hFullPath
>PUSHW ZPPtr1
>PUSHEA.G STAT
>LDYA ZPPtr1
>SYSCALL Stat
bcs .1 File/DIR does not exists, go extract DstFileName
@ -426,7 +430,7 @@ EnterSubDirYA >STYA ZPPtr2 save SUBDIR for StrCat
ldy #hSrcBasePath
jsr EnterSubDirY
>LDYA ZPPtr1
>PUSHW ZPPtr1
>SYSCALL OpenDir
bcs .9

View File

@ -79,10 +79,10 @@ Dev.Detect >STYA ARGS
jsr Dev.ParseArgs
bcs .9
.8 >PUSHW L.FD.DEV.NAME
.8 >PUSHW L.MSG.DETECT.OK
>PUSHW L.FD.DEV.NAME
>PUSHBI 2
>LDYA L.MSG.DETECT.OK
>SYSCALL printf
>SYSCALL printf2
>PUSHWI DRV.END
>PUSHWI DRV.CS.END-DRV.CS.START

View File

@ -88,10 +88,12 @@ Dev.Detect >STYA ARGS
sta DIB+S.DIB.VERSION
jsr Dev.ParseArgs
bcs .99
.8 >PUSHW L.FD.DEV.NAME
.8 >PUSHW L.MSG.DETECT.OK
>PUSHW L.FD.DEV.NAME
>PUSHBI 2
>LDYA L.MSG.DETECT.OK
>SYSCALL printf
>SYSCALL printf2
>PUSHWI DRV.END
>PUSHWI DRV.CS.END-DRV.CS.START
>PUSHWI DRV.CS.START

View File

@ -96,10 +96,12 @@ Dev.Detect >STYA ARGS
sta DEVSLOTn08F
jsr Dev.ParseArgs
bcs .9
.8 >PUSHW L.FD.DEV.NAME
.8 >PUSHW L.MSG.DETECT.OK
>PUSHW L.FD.DEV.NAME
>PUSHBI 2
>LDYA L.MSG.DETECT.OK
>SYSCALL printf
>PUSHWI DRV.END
>PUSHWI DRV.CS.END-DRV.CS.START
>PUSHWI DRV.CS.START

View File

@ -103,10 +103,10 @@ Dev.Detect >STYA ARGS
jsr Dev.ParseArgs
bcs .9
>PUSHW L.MSG.DETECT.OK
>PUSHW L.FD.DEV.NAME
>PUSHBI 2
>LDYA L.MSG.DETECT.OK
>SYSCALL printf
>SYSCALL printf2
>PUSHWI DRV.END
>PUSHWI DRV.CS.END-DRV.CS.START

View File

@ -1,7 +1,7 @@
NEW
AUTO 3,1
*--------------------------------------
K.VER .EQ $5D00 93.0
K.VER .EQ $5E00 94.0
K.ENV.SIZE .EQ 256
*--------------------------------------
K.MEM.ALIGN .EQ 16
@ -79,7 +79,7 @@ A2osX.HZ .EQ $BEF0 5/6 for 50/60Hz
A2osX.TTYDEVS .EQ $BEF1
A2osX.F .EQ $BEF8
A2osX.F.CHROOT .EQ %10000000 ChRooting to /RAMx
A2osX.F.PMODE .EQ %01000000 Preemptive Mode
A2osX.F.PMODE .EQ %01000000 Pre-emptive Mode
A2osX.S .EQ $BEF8 $BEF9->$BEFF, 7 slots
A2osX.S.Z80 .EQ $80
A2osX.S.VSDRIVE .EQ $81
@ -236,7 +236,7 @@ SYS.StrToF .EQ $76
SYS.StrToL .EQ $78
SYS.StrToUL .EQ $7A
SYS.RealPath .EQ $7C
* .EQ $7E
SYS.Expand .EQ $7E
*--------------------------------------
SYS.StrLen .EQ $80
SYS.StrCpy .EQ $82
@ -269,8 +269,8 @@ SYS.GetMemStat .EQ $AE
SYS.Shift .EQ $B0
SYS.ArgV .EQ $B2
SYS.Expand .EQ $B4
SYS.ArgVDup .EQ $B6
SYS.ArgVDup .EQ $B4
* .EQ $B6
SYS.PutEnv .EQ $B8
SYS.SetEnv .EQ $BA

View File

@ -91,9 +91,9 @@ CS.RUN ldy #S.PS.ARGC
sta ArgProg
bra .1
.9 >PUSHBI 0
>LDYA L.MSG.USAGE
>SYSCALL printf
.9 >PUSHW L.MSG.USAGE
>PUSHBI 0
>SYSCALL printf2
lda #E.SYN
sec
.99 rts
@ -107,12 +107,14 @@ CS.RUN ldy #S.PS.ARGC
ldy #S.PS.hStdErr
lda (pPs),y
sta hErr
>PUSHWZ auxtype
>PUSHBI 0 type
>PUSHBI O.RDWR
lda ArgDev
>SYSCALL ArgV
>PUSHYA
>PUSHBI O.RDWR
>PUSHBI 0 type
>PUSHWZ auxtype
>SYSCALL fopen
bcs .99
@ -161,18 +163,13 @@ CS.RUN.LOOP1 >SLEEP
.1 lda TimeOut
bne CS.RUN.LOOP1
lda ArgDev
>SYSCALL ArgV
>PUSHYA
>PUSHWI K.VER
>PUSHBI 4
>LDYA L.MSG.GREETINGS
>SYSCALL printf
jsr CS.RUN.GREETINGS
bcs CS.RUN.EXIT unable to send greetings...
.2 >PUSHBI S.PS.F.HOLD
lda ArgProg
.2 lda ArgProg
>SYSCALL ArgV
>PUSHYA
>PUSHBI S.PS.F.HOLD
>SYSCALL ExecV
>SLEEP
@ -254,7 +251,18 @@ CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND
>SYSCALL SetEnv
.8 jmp CS.RUN.LOOP1
.9 rts
*--------------------------------------
*--------------------------------------
CS.RUN.GREETINGS
>PUSHW L.MSG.GREETINGS
>PUSHB #K.VER
>PUSHB /K.VER
lda ArgDev
>SYSCALL ArgV
>PUSHYA
>PUSHBI 4
>SYSCALL printf2
rts
*--------------------------------------
CS.DOEVENT lda (pEvent)
bpl .9 is it a TIMER event?
@ -303,9 +311,9 @@ CkeckOption lda (ZPPtr1)
CS.END
OptionList .AS "Ee"
OptionVars .DA #bExitOnClose,#bExitOnClose
MSG.GREETINGS .AZ "\r\nA2osX-GeTTY %d.%d on %s\r\n"
MSG.USAGE .AS "Usage : GETTY <DEV> <PROGRAM>\r\n"
.AZ " -E : Exit on disconnect\r\n"
MSG.GREETINGS .AZ "\r\nA2osX-GeTTY %d.%d on %s\r\n"
*--------------------------------------
TELNETOPTS .DA #IAC,#WILL,#TELOPT.BINARY
.DA #IAC,#WILL,#TELOPT.ECHO

View File

@ -138,6 +138,8 @@ CS.RUN.INIT ldx #3
>SYSCALL ArgV
bcs CS.RUN.SYN
>PUSHYA
>PUSHWI 0 Allocate
>SYSCALL realpath
bcs CS.RUN.RTS
@ -166,11 +168,11 @@ CS.RUN.ARGSOK >PUSHBI 0 no protocol
>STYA ZPStrPtr
stx hStr
>PUSHW ZPRootDirPtr
>PUSHW L.MSG.INITOK
>PUSHW SA.LOCAL+S.SOCKADDR.PORT
>PUSHW ZPRootDirPtr
>PUSHBI 4
>LDYA L.MSG.INITOK
>SYSCALL printf
CS.RUN.LOOP >SLEEP
@ -192,19 +194,20 @@ CS.RUN.SERVER lda hSrvSocket
>SYSCALL GetMemPtr
>STYA ZPSktPtr
ldx #3
ldy #S.SOCKET.REM.ADDR+3
>PUSHW L.MSG.INCOMING
.3 >PUSHB (ZPSktPtr),y
dey
dex
bpl .3
ldx #3
ldy #S.SOCKET.REM.ADDR
>PUSHB hClntSocket
.1 >PUSHB (ZPSktPtr),y
iny
dex
bpl .1
>PUSHBI 5
>LDYA L.MSG.INCOMING
>SYSCALL printf
>SYSCALL printf2
jsr CS.RUN.CLIENT
.8 clc

View File

@ -387,12 +387,10 @@ CS.RUN.StrOut >PUSHYA
>SYSCALL printf2
rts
*--------------------------------------
CS.RUN.DumpFile pha
>PUSHWZ Aux type
>PUSHBI S.FI.T.TXT
CS.RUN.DumpFile >PUSHYA
>PUSHBI O.RDONLY+O.TEXT
pla
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL FOpen
bcs .9
@ -410,7 +408,8 @@ CS.RUN.DumpFile pha
>SYSCALL fgets
bcs .7
>LDYA ZPBufPtr
>PUSHW ZPBufPtr
>PUSHWI 0
>SYSCALL Expand
bcc .2

View File

@ -93,10 +93,11 @@ CS.INIT.DEV >PUSHBI 0
.8 sta DevID
>PUSHW L.MSG.DEV.OK
>PUSHW L.DEVNAME
>PUSHBI 2
>LDYA L.MSG.DEV.OK
>SYSCALL printf
>SYSCALL printf2
>LDYA L.DCB.NIC
>STYA IOCTL+S.IOCTL.BUFPTR
lda #S.IOCTL.STATCODE.GETDCB
@ -109,16 +110,20 @@ CS.INIT.DEV >PUSHBI 0
rts
*--------------------------------------
CS.INIT.LIBS lda LibCnt
.1 inc
>SYSCALL ArgV
bcs .8
phy
pha
>PUSHW L.MSG.LIB
pla
pha
>PUSHYA
>PUSHBI 2
>LDYA L.MSG.LIB
>SYSCALL printf
>SYSCALL printf2
pla
ply
>SYSCALL LoadLib
@ -133,22 +138,7 @@ CS.INIT.LIBS lda LibCnt
>STYA pNETCFG
lda DevID
ldy #S.NETCFG.DevID
sta (pNETCFG),y
iny S.NETCFG.DevFlags
lda DCB.NIC+S.DCB.NIC.FLAGS
sta (pNETCFG),y
ldx #5
ldy #S.NETCFG.MAC+5
.2 lda DCB.NIC+S.DCB.NIC.MAC,x
sta (pNETCFG),y
dey
dex
bpl .2
jsr CS.INIT.SETUP.NETCFG
>PUSHW pNETCFG
@ -168,16 +158,38 @@ CS.INIT.LIBS lda LibCnt
CS.INIT.LIBS.9 rts
*--------------------------------------
CS.INIT.SETUP.NETCFG
lda DevID
ldy #S.NETCFG.DevID
sta (pNETCFG),y
iny S.NETCFG.DevFlags
lda DCB.NIC+S.DCB.NIC.FLAGS
sta (pNETCFG),y
ldx #5
ldy #S.NETCFG.MAC+5
.2 lda DCB.NIC+S.DCB.NIC.MAC,x
sta (pNETCFG),y
dey
dex
bpl .2
rts
*--------------------------------------
CS.INIT.CONF >LDYAI 64
>SYSCALL GetMem
bcs CS.INIT.LIBS.9
>STYA pBuf
stx hLineBuf
>PUSHWZ
>PUSHBI S.FI.T.TXT
>PUSHW L.ETCNETWORK
>PUSHBI O.RDONLY+O.TEXT
>LDYA L.ETCNETWORK
>PUSHBI S.FI.T.TXT
>PUSHWZ
>SYSCALL fopen
bcs .98
@ -189,10 +201,10 @@ CS.INIT.CONF >LDYAI 64
>SYSCALL fgets
bcs .80
>PUSHW L.MSG.EXEC
>PUSHW pBuf
>PUSHBI 2
>LDYA L.MSG.EXEC
>SYSCALL printf
>SYSCALL printf2
>PUSHW pBuf
>PUSHBI 0 S.PS.F.HOLD+S.PS.F.NOHUP

View File

@ -171,27 +171,26 @@ CS.RUN.CLIENT >SLEEP give some time for TCPIP SYN/ACK
ldx #3
ldy #S.SOCKET.REM.ADDR
.3 >PUSHB (ZPSktPtr),y
.1 >PUSHB (ZPSktPtr),y
iny
dex
bpl .3
bpl .1
>PUSHBI 5
>SYSCALL printf2
>PUSHEA.G NodBuf
>PUSHW L.NOD.Template
>PUSHB hClientSocket
>PUSHBI 1
>PUSHW L.NOD.Template
>LEA.G NodBuf
>SYSCALL sprintf
>PUSHB hClientSocket
CS.RUN.CLIENT1 >PUSHB hClientSocket
>PUSHW 0
>LEA.G NodBuf
>SYSCALL mknod
bcs .9
* sta hClientFile
>PUSHEA.G NodBuf
>PUSHBI 2
>PUSHW L.CMD.Template

View File

@ -82,19 +82,20 @@ K.ArgV tax save requested arg#
* ## C
* short int arg2argv(char* args, char* argv[])
* ## ASM
* `>PUSHW args`
* `>PUSHW argv`
* `>LDYA args`
* `>SYSCALL Arg2ArgV`
* ## RETURN VALUE
* A = Arg count
*\--------------------------------------
K.Arg2ArgV jsr K.Expand
K.Arg2ArgV >PULLW ZPPtr2 Get target buffer
>PUSHWI 0 allocate a new buffer
jsr K.Expand args on stack
bcs .9
>STYA ZPPtr1
stx .80+1
>PULLW ZPPtr2 Get target buffer
ldx #0 Arg Count
ldy #0 bInQuote
@ -139,8 +140,8 @@ K.Arg2ArgV jsr K.Expand
pla get back Arg Count
* clc
rts
.9 >RET 2 Discard target buffer
.9 rts
*/--------------------------------------
* # ArgVDup
* ## ASM

View File

@ -163,16 +163,15 @@ BIN.Load lda CORE.FSID
* STAT Already called by Filesearch in FindDRV, FindLIB
* STAT Already called by PS.Load (TXT,BIN,SYS)
*--------------------------------------
BIN.Load.1 >LDYA K.S.STAT+S.STAT.P.AUXTYPE
>STYA BIN.R.CS.Start
>PUSHYA Push AUXTYPE
>PUSHBI S.FI.T.BIN
BIN.Load.1 >PUSHWI K.Buf256
>PUSHBI O.RDONLY
>LDYAI K.Buf256
>PUSHBI S.FI.T.BIN
>LDYA K.S.STAT+S.STAT.P.AUXTYPE
>STYA BIN.R.CS.Start
>PUSHYA Push AUXTYPE
jsr K.LoadFile
bcs BIN.Load.Cleanup.RTS Error Loading file
bcs .9 Error Loading file
stx BIN.hMem save hMem
pha YA=CODE+DATA size
@ -199,7 +198,7 @@ BIN.Load.1 >LDYA K.S.STAT+S.STAT.P.AUXTYPE
jsr BIN.RelExe
>LDYAI K.Buf256 get back bin path
>SYSCALL2 strdup make a copy of this string
jsr K.strdup make a copy of this string
bcs .98
lda BIN.hMem Keep X=new string hMem
@ -215,6 +214,7 @@ BIN.Load.1 >LDYA K.S.STAT+S.STAT.P.AUXTYPE
clc
jmp MEM.GetMEMPTR ...and Y,A=PTR to CS
.98 jmp BIN.Load.Cleanup Discard Loaded Code, exits CS
.9 rts
*/--------------------------------------
* # InsDrv
* ## C

View File

@ -25,7 +25,7 @@ A1L .EQ $3C
A2L .EQ $3E
A4L .EQ $42
XFer.JMP .EQ $3ED
*XFer.JMP .EQ $3ED
AuxMove .EQ $C311
XFer .EQ $C314 CS:M->X, VS:Use Aux ZP

View File

@ -5,7 +5,7 @@ NEW
* ## C
* `int hDIR opendir (const char * dirpath);`
* ## ASM
* `>LDYA dirpath`
* `>PUSHW dirpath`
* `>SYSCALL opendir`
* ## RETURN VALUE
* CC : success
@ -13,8 +13,12 @@ NEW
* CS : error
* A = EC
*\--------------------------------------
K.OpenDir jsr PFT.CheckPathYA
K.OpenDir jsr PFT.CheckPath0
bcs K.ReadDir.RTS
inc pStack
inc pStack
ldx #1
jsr IO.MkFD
bcs K.ReadDir.RTS

View File

@ -1,332 +1,9 @@
NEW
AUTO 3,1
*/--------------------------------------
* # Expand
* ## C
* `char *expand(const char *str, char *expanded);`
* ## ASM
* **In:**
* `>PUSHW str`
* `>PUSHW expanded`
* `>SYSCALL expand`
* ## RETURN VALUE
* Y,A = PTR to Expanded String
* X = hMem to Expanded String (C-String)
*\--------------------------------------
.DUMMY
.OR ZPDRV
ENV.BufLen .BS 1
ENV.VarEndChar .BS 1
ENV.bNoExp .BS 1
ENV.bExp .BS 1
.ED
*--------------------------------------
K.Expand jsr K.strdup
bcc .1
rts
.1 phx Save temp string...
>STYA TXTPTR
stz ENV.BufLen init Expanded String len=0
stz ENV.bExp No var found yet
stz ENV.bNoExp Reset no expand flag
.10 lda (TXTPTR) End of CSTR?
beq .80
jsr SHARED.TXTPTR.Next
.11 cmp #'''
bne .21
lda ENV.bNoExp
eor #$ff
sta ENV.bNoExp toggle flag
bra .10
.21 bit ENV.bNoExp
bpl .23
.22 jsr ENV.AddAToBuf
bra .10
.23 cmp #'$' no, found one ?
bne .22 no, store...
lda (TXTPTR)
bne .24
lda #'$' End of string, output $
bra .22
.24
* sec
ror ENV.bExp Toggle Expanded flag
stz ENV.VarEndChar
cmp #'{' "${VAR]"?
bne .31
dec ENV.VarEndChar "}" expected
jsr SHARED.TXTPTR.Next skip "{"
bra .40
.31 jsr ENV.SysVar 0-9 *#?@$!
bcs .40
.35 jsr SHARED.TXTPTR.Next skip $x
bra .10
.40 jsr ENV.ExpandStrVar
bcc .70
.50 ldy ENV.BufLen
lda /K.Buf256
>STYA FORPNT
ldy #S.PS.hENV
lda (pPs),y
ldx #SYS.GetEnv
jsr K.SYSCALL.JMPX
bcs .70
ldx ENV.BufLen
.51 lda K.Buf256,x
beq .52
inx
bra .51
.52 stx ENV.BufLen
.70 lda (TXTPTR)
beq .72
jsr SHARED.IsIDValid
bcs .72
jsr SHARED.TXTPTR.Next
bra .70
.72 lda ENV.VarEndChar
bne .35 skip "}" and loop
bra .10
.80 ldx ENV.BufLen
stz K.Buf256,x
pla discard temp string
jsr K.FreeMem
>LDYAI K.Buf256 dup in case of '' processing
jsr K.strdup
bcs .9
bit ENV.bExp Did we expand something ?
bpl .9
jmp .1
* clc
.9 rts
*--------------------------------------
ENV.SysVar jsr ZP.IsDigit $0 ... $9 ?
bcs .1
and #$0f
jsr K.ArgV
bcs .8 Arg# is undefined, do not append anything
jsr ENV.AddYAToBuf
.8 clc
rts
.1 ldx #ENV.SysVars.Cnt-1
.2 cmp ENV.SysVars,x
beq .3
dex
bpl .2
sec
rts
.3 txa
beq ENV.SysVarsAllArgs
ldy ENV.SysVars.PS-1,x
lda (pPS),y
*--------------------------------------
ENV.SysVarsNum jsr MATH.A2STR10NP
ldy #0
.1 lda A2osX.NumStrBuf,y
beq ENV.SysVarsNum.8
iny
jsr ENV.AddAToBuf
bra .1
ENV.SysVarsNum.8
clc
rts
*--------------------------------------
ENV.SysVarsAllArgs
lda #1
jsr K.ArgV
bcs ENV.SysVarsNum.8
>STYA ZPPtr3
.1 lda (ZPPtr3)
beq ENV.SysVarsNum.8
.2 jsr ENV.AddP3ToBuf
jsr ENV.NextEnvP3
lda (ZPPtr3)
beq ENV.SysVarsNum.8
lda #C.SPACE
jsr ENV.AddAToBuf
bra .2
*--------------------------------------
ENV.SysVars .AS "*#?@$!"
ENV.SysVars.Cnt .EQ *-ENV.SysVars
ENV.SysVars.PS .DA #S.PS.ARGC,#S.PS.RC,#S.PS.PPID,#S.PS.PID,#S.PS.CPID
*--------------------------------------
ENV.ExpandStrVar
>LDYAI ENV.StrVars
>STYA ZPPtr3
ldx #0
.1 lda (ZPPtr3)
beq .9
ldy #$ff
.2 iny
lda (TXTPTR),y
beq .3
jsr SHARED.IsIDValid
bcs .3
cmp (ZPPtr3),y
beq .2
bra .4
.3 lda (ZPPtr3),y
bne .4
jmp (ENV.StrVarsJmp,x)
.4 inx
inx
jsr ENV.NextEnvP3
bra .1
.9 sec
rts
*--------------------------------------
ENV.StrVars .AZ "LOGNAME"
.AZ "GECOS"
.AZ "HOME"
.AZ "SHELL"
.AZ "UID"
.AZ "GID"
.AZ "PWD"
.DA #0
*--------------------------------------
ENV.StrVarsJmp .DA ENV.StrVarsSession
.DA ENV.StrVarsSession
.DA ENV.StrVarsSession
.DA ENV.StrVarsSession
.DA ENV.StrVarsUID
.DA ENV.StrVarsGID
.DA ENV.StrVarsPWD
*--------------------------------------
ENV.StrVarsSession
jsr ENV.GetSession
lda ZPPtr3
clc
adc #S.SESSION.NAME
sta ZPPtr3
lda ZPPtr3+1
adc /S.SESSION.NAME
sta ZPPtr3+1
.1 dex
dex
bmi ENV.AddP3ToBuf
ldy #$ff
.2 iny
lda (ZPPtr3),y
bne .2
jsr ENV.NextEnvP3Y
bra .1
*--------------------------------------
ENV.StrVarsUID ldx #S.SESSION.UID
.HS 2C
ENV.StrVarsGID ldx #S.SESSION.GID
jsr ENV.GetSession
txa
tay
lda (ZPPtr3),y
jmp ENV.SysVarsNum
*--------------------------------------
ENV.StrVarsPWD ldy #S.PS.hCWD
lda (pPS),y
jsr K.GetMemPtr
jmp ENV.AddYAToBuf
*--------------------------------------
ENV.GetSession ldy #S.PS.hSID
lda (pPS),y
tay
lda S.Table.hSession-1,y
jsr K.GetMemPtr
>STYA ZPPtr3
rts
*--------------------------------------
ENV.AddYAToBuf >STYA ZPPtr3
*--------------------------------------
ENV.AddP3ToBuf ldx ENV.BufLen
ldy #$ff
dex
.1 iny
inx
lda (ZPPtr3),y
sta K.Buf256,x
bne .1
stx ENV.BufLen
rts
*--------------------------------------
ENV.AddAToBuf ldx ENV.BufLen
sta K.Buf256,x
inc ENV.BufLen
rts
*--------------------------------------
ENV.NextEnvP3 jsr ENV.GetP3LenY
*--------------------------------------
ENV.NextEnvP3Y tya
sec
adc ZPPtr3
sta ZPPtr3
bcc .8
inc ZPPtr3+1
.8 rts
*--------------------------------------
ENV.GetP3LenY ldy #$ff
.1 iny
lda (ZPPtr3),y
bne .1
rts
*/--------------------------------------
* # SetEnv
* Change or add an environment variable
* ## C
* ## C / CSH
* `int setenv(const char *name, const char *value);`
* ## ASM
* **In:**
@ -347,7 +24,7 @@ K.SetEnv
* # GetEnv
* searches the environment list to find the environment variable name,
* and returns a pointer to the corresponding value string.
* ## C
* ## C / CSH
* `char *getenv(const char *name, char *value);`
* ## ASM
* **In:**
@ -368,7 +45,7 @@ K.GetEnv >PULLW FORPNT value
*/--------------------------------------
* # PutEnv
* Change or add an environment variable, string is 'NAME=VALUE'
* ## C
* ## C / CSH
* `int putenv(char *string);`
* ## ASM
* **In:**
@ -380,7 +57,7 @@ K.PutEnv >PULLW TXTPTR NAME=VALUE
*/--------------------------------------
* # UnsetEnv
* Remove an environment variable
* ## C
* ## C / CSH
* `int unsetenv(const char *name);`
* ## ASM
* **In:**

View File

@ -4,17 +4,21 @@ NEW
* # ChTyp
* Change The type of a ProDOS File
* ## C
* `int chtyp(const char *filepath, const char filetype);`
* `int chtyp(const char *filepath, int filetype);`
* ## ASM
* **In:**
* `>PUSHBI filetype`
* `>LDYA filepath`
* `>PUSHW filepath`
* `>PUSHB filetype`
* `>SYSCALL chtyp`
* ## RETURN VALUE
*\--------------------------------------
K.ChTyp jsr PFT.CheckPathYA
K.ChTyp jsr PFT.CheckPath2
bcs .99
>PULLB .1+1
inc pStack
inc pStack
>MLICALL MLIGETFILEINFO
bcs .9

View File

@ -115,10 +115,10 @@ Kernel.Init3 sta SETALTZP
jsr SysScrInit
bcs *
>PUSHWZ Aux type
>PUSHBI S.FI.T.TXT
>PUSHWI DEV.CONSOLE
>PUSHBI O.RDWR
>LDYAI DEV.CONSOLE
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL2 fopen
bcs *
@ -129,16 +129,16 @@ Kernel.Init3 sta SETALTZP
iny #S.PS.hStdErr
sta (pPs),y
*--------------------------------------
Kernel.Init3C >PUSHBI 0
>LDYAI MSG.Init3
>SYSCALL2 printf
Kernel.Init3C >PUSHWI MSG.Init3
>PUSHBI 0
>SYSCALL2 printf2
jsr HW.Detect
jsr CPU.Init.6502
jsr CPU.Init.Z80
jsr DevMgrInit
jsr IrqMgrInit
@ -157,16 +157,16 @@ Kernel.Init3C >PUSHBI 0
cmp #146 CTRL-R for ROOT mode
bne .7
>PUSHWI MSG.CTRLR
>PUSHBI 0
>LDYAI MSG.CTRLR
>SYSCALL2 printf
>SYSCALL2 printf2
>PUSHWI CTRLR.SHELL
bra .8
.7 >PUSHWI ETCINIT.CMDLINE
.7 >PUSHWI MSG.EtcInit
>PUSHWI ETCINIT.CMDLINE
>PUSHBI 2
>LDYAI MSG.EtcInit
>SYSCALL2 printf
>SYSCALL2 printf2
>PUSHWI ETCINIT.CMDLINE
@ -174,17 +174,19 @@ Kernel.Init3C >PUSHBI 0
>SYSCALL2 ExecL
bcs Kernel.Init3.Err
>PUSHWI MSG.Init3.OK
>PUSHBI 0
>LDYAI MSG.Init3.OK
>SYSCALL2 printf
>SYSCALL2 printf2
>DEBUGOA
jmp CORE.Run
Kernel.Init3.Err
pha
>PUSHWI MSG.StartupErr
pla
>PUSHA
>PUSHBI 1
>LDYAI MSG.StartupErr
>SYSCALL2 printf
>SYSCALL2 printf2
bra * No need to discard Expanded CMDLINE
*--------------------------------------
* INIT2 Subs
@ -368,9 +370,9 @@ SysScrInit.TTYPtrs
* http://www.1000bit.it/support/manuali/apple/technotes/misc/tn.misc.02.html
* https://mirrors.apple2.org.za/apple.cabi.net/FAQs.and.INFO/A2.TECH.NOTES.ETC/A2.CLASSIC.TNTS/a2misc007(1).htm
*--------------------------------------
HW.Detect >PUSHBI 0
>LDYAI MSG.HW
>SYSCALL2 printf
HW.Detect >PUSHWI MSG.HW
>PUSHBI 0
>SYSCALL2 printf2
bit RROMBNK1
@ -416,17 +418,17 @@ HW.Detect >PUSHBI 0
.8 bit RRAMWRAMBNK1
bit RRAMWRAMBNK1
>PUSHB A2osX.HWSubT
>PUSHWI MSG.HW.TypeSubT
>PUSHB A2osX.HWType
>PUSHB A2osX.HWSubT
>PUSHBI 2
>LDYAI MSG.HW.TypeSubT
>SYSCALL2 printf
>SYSCALL2 printf2
rts
*--------------------------------------
CPU.Init.6502 >PUSHBI 0
>LDYAI MSG.CPU
>SYSCALL2 printf
CPU.Init.6502 >PUSHWI MSG.CPU
>PUSHBI 0
>SYSCALL2 printf2
jsr Detect6502 A = CPU type
sta A2osX.CPUTYPE
and #$F
@ -436,9 +438,9 @@ CPU.Init.6502 >PUSHBI 0
lda MSG.CPUTYPE+1,x
>SYSCALL2 puts
>PUSHWI MSG.CPU.SPEED
>PUSHBI 0
>LDYAI MSG.CPU.SPEED
>SYSCALL2 printf
>SYSCALL2 printf2
stz A2osX.RANDOM16
stz A2osX.RANDOM16+1
@ -532,27 +534,30 @@ CPU.Init.6502 >PUSHBI 0
.8 lda A2osX.RANDOM16
sta A2osX.CPUSPEED+1
>PUSHA push CPU speed LO
>PUSHWI MSG.CPU.SPEEDOK
lda A2osX.CPUSPEED
>PUSHA push CPU speed HI
lda A2osX.CPUSPEED+1
>PUSHA push CPU speed LO
>PUSHBI 2
>LDYAI MSG.CPU.SPEEDOK
>SYSCALL2 printf
>SYSCALL2 printf2
rts
*--------------------------------------
CPU.Init.Z80 >PUSHBI 0
>LDYAI MSG.Z80
>SYSCALL2 printf
CPU.Init.Z80 >PUSHWI MSG.Z80
>PUSHBI 0
>SYSCALL2 printf2
jsr DetectZ80
bcs .9
sta A2osX.Z80SLOT
>PUSHA
tax
lda #A2osX.S.Z80
sta A2osX.S,x
>PUSHWI MSG.Z80.OK
lda A2osX.Z80SLOT
>PUSHA
>PUSHBI 1
>LDYAI MSG.Z80.OK
>SYSCALL2 printf
>SYSCALL2 printf2
rts
.9 >LDYAI MSG.Z80.KO
>SYSCALL2 puts
@ -741,12 +746,13 @@ DevMgrInit.RSP ldx #10
DevMgrInit.AddBDev
>LDYA DRV.BLKDEV,x
>STYA FD.BDEV+S.FD.DEV.DRVPTR
>PUSHW MSG.BLKDEV.TBL,x
>PUSHW FD.BDEV+S.FD.DEV.BUSPTR
>PUSHWI MSG.BLKDEV
>PUSHWI FD.BDEV.NAME
>PUSHW FD.BDEV+S.FD.DEV.BUSPTR
>PUSHW MSG.BLKDEV.TBL,x
>PUSHBI 6
>LDYAI MSG.BLKDEV
>SYSCALL2 printf
>SYSCALL2 printf2
>PUSHWI FD.BDEV.NAME
>LDYAI FD.BDEV
@ -1040,10 +1046,11 @@ TskMgrInit >LDYAI MSG.TSK
*--------------------------------------
PwdMgrInit >LDYAI MSG.PWD
>SYSCALL2 puts
>PUSHWZ Aux type
>PUSHBI S.FI.T.TXT
>PUSHWI ETCPASSWD
>PUSHBI O.RDONLY
>LDYAI ETCPASSWD
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL2 LoadStkObj
bcs .1
stx PWD.hDB

View File

@ -5,7 +5,7 @@ NEW
*--------------------------------------
* Bank 1
*--------------------------------------
K.SYSCALL .DA 0 $00
K.SYSCALL .DA 0 $00 : STAT
.DA K.ChMod
.DA K.FStat
.DA K.Stat
@ -14,16 +14,16 @@ K.SYSCALL .DA 0 $00
.DA K.MKFIFO
.DA K.Pipe
.DA K.OpenDir $10
.DA K.OpenDir $10 : DIRENT
.DA K.ReadDir
.DA K.FClose
.DA K.Open
.DA K.Open UNISTD
.DA K.Close
.DA K.Read
.DA K.Write
.DA K.IOCTL
.DA K.FPutC $20
.DA K.FPutC $20 : STDIO
.DA K.PutChar
.DA K.GetC
.DA K.GetChar
@ -46,7 +46,7 @@ K.SYSCALL .DA 0 $00
.DA 0
.DA 0
.DA 0
.DA K.GetDevByName
.DA K.GetDevByName DEV
.DA K.GetDevStatus
.DA K.MKDev
@ -55,8 +55,8 @@ K.SYSCALL .DA 0 $00
.DA 0
.DA K.PrintF2
.DA K.PrintF
.DA K.SPrintF
.DA K.FPrintF
.DA K.SPrintF2
.DA K.FPrintF2
.DA 0
.DA 0 $60
@ -67,19 +67,19 @@ K.SYSCALL .DA 0 $00
.DA 0
.DA K.ChOwn
.DA K.ChGrp
.DA K.AToF $70
*--------------------------------------
* Bank 2
*--------------------------------------
.DA K.AToF $70 : STDLIB
.DA K.AToI
.DA K.AToL
.DA K.StrToF
.DA K.StrToL
.DA K.StrToUL
.DA K.RealPath
.DA 0
*--------------------------------------
* Bank 2
*--------------------------------------
.DA K.StrLen $80
.DA K.Expand
.DA K.StrLen $80 : STRING
.DA K.StrCpy
.DA K.StrCat
.DA K.StrDup
@ -92,12 +92,12 @@ K.SYSCALL .DA 0 $00
.DA 0
.DA 0
.DA 0
.DA K.LoadLib
.DA K.LoadLib BIN
.DA K.UnloadLib
.DA K.LoadDrv
.DA K.InsDrv
.DA K.ExecL $A0
.DA K.ExecL $A0 : PS
.DA K.ExecV
.DA K.Fork
.DA K.Kill
@ -106,16 +106,18 @@ K.SYSCALL .DA 0 $00
.DA K.FileSearch
.DA K.GetMemStat
.DA K.Shift $B0
.DA K.Shift $B0 : ARG
.DA K.ArgV
.DA K.Expand
.DA K.ArgVDup
.DA K.PutEnv
.DA 0
.DA K.PutEnv ENV
.DA K.SetEnv
.DA K.GetEnv
.DA K.UnsetEnv
.DA K.Time $C0
*--------------------------------------
* AUX
*--------------------------------------
.DA K.Time $C0 : TIME
.DA K.StrFTime
.DA K.PTime2Time
.DA K.CTime2Time
@ -124,7 +126,7 @@ K.SYSCALL .DA 0 $00
.DA K.MD5Update
.DA K.MD5Finalize
.DA K.GetPWUID $D0
.DA K.GetPWUID $D0 : PWD
.DA K.GetPWName
.DA K.PutPW
.DA K.FlushEtcPasswd
@ -278,24 +280,24 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1 $70
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
.DA #RRAMWRAMBNK1
.DA #$80
*--------------------------------------
.DA #RRAMWRAMBNK2 $70
.DA #0
.DA #RRAMWRAMBNK2
.DA #0
.DA #RRAMWRAMBNK2
.DA #0
.DA #RRAMWRAMBNK2
.DA #0
.DA #RRAMWRAMBNK2
.DA #0
.DA #RRAMWRAMBNK2
.DA #0
.DA #RRAMWRAMBNK2
.DA #0
.DA #RRAMWRAMBNK2
.DA #0
.DA #RRAMWRAMBNK2 $80
.DA #$80
.DA #RRAMWRAMBNK2
@ -502,6 +504,15 @@ K.SYSCALL.JMPX sta SETREADAUX
.DA MD5X.Init
.DA MD5X.Update
.DA MD5X.Finalize
.DA PWDX.GetPWUID
.DA PWDX.GetPWName
.DA PWDX.PutPW
.DA 0 FlushEtcPasswd
.DA STRVX.StrVShift
.DA STRVX.StrVGet
.DA STRVX.StrVAdd
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.JMP

View File

@ -456,10 +456,10 @@ Mem.DecRefCnt ldy #S.MEM.REFCNT
*/--------------------------------------
* # LoadStkObj
* Load a file in AUX memory (Stock Objects)
* PUSHW = AUXTYPE (Handled by....
* PUSHB = TYPE ...
* PUSHW = PATH (Handled by....
* PUSHB = MODE ...
* LDYA = PATH ...FOpen)
* PUSHB = TYPE ...
* PUSHW = AUXTYPE ...FOpen)
* ## RETURN VALUE
* Y,A = File Length
* X = hMem of Loaded Object in AUX mem

View File

@ -15,14 +15,29 @@ K.PFTRemove
clc
K.PFTRemove.RTS rts
*--------------------------------------
* PFT.CheckPathYA
* PFT.CheckPath
* In :
* Y,A = PATH (C-String)
* (pStack),y = PATH (C-String)
* Out :
*--------------------------------------
PFT.CheckPathYA stx .6+1 Save SYSCALL #
PFT.CheckPath0 ldy #0
.HS 2C BIT ABS
PFT.CheckPath2 ldy #2
.HS 2C BIT ABS
PFT.CheckPath4 ldy #4
jsr STDLIB.realpath.I realpath in K.Buf256
stx .6+1 Save SYSCALL #
lda (pStack),y
pha
iny
lda (pStack),y
>PUSHA
pla
>PUSHA
>PUSHWI K.Buf256
>SYSCALL2 realpath
bcs K.PFTRemove.RTS
ldx #0

View File

@ -10,8 +10,8 @@ PS.NewPSPtr .BS 2
.ED
*/--------------------------------------
* # ExecL
* ## C
* `int execl(const char* cmdline, short int flags);`
* ## C / CSH
* `int execl(const char *cmdline, short int flags);`
* ## ASM
* `>PUSHW cmdline`
* `>PUSHB flags`
@ -20,21 +20,17 @@ PS.NewPSPtr .BS 2
* A = Child PSID
*\--------------------------------------
K.ExecL >PULLB PS.Flags
>PULLB .1+1
>PULLB .2+1
>LDYAI 256
jsr K.GetMem
bcs .99
stx .90+1
>STYA PS.ArgV
>PUSHYA
.1 ldy #$ff SELF MODIFIED
.2 lda #$ff SELF MODIFIED
jsr K.Arg2ArgV
jsr K.Arg2ArgV cmdline on stack, push buffer
bcs .9
jsr PS.Exec
.9 php
pha
@ -45,18 +41,18 @@ K.ExecL >PULLB PS.Flags
.99 rts
*/--------------------------------------
* # ExecV
* ## C
* ## C / CSH
* `int execv(const char* argv[], short int flags);`
* ## ASM
* `>PUSHW argv`
* `>PUSHB flags`
* `>LDYA argv`
* `>SYSCALL execv`
* ## RETURN VALUE
* A = Child PSID
*\--------------------------------------
K.ExecV >STYA PS.ArgV
>PULLB PS.Flags
K.ExecV >PULLB PS.Flags
>PULLW PS.ArgV
PS.Exec jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem
bcs .9
sta .8+1
@ -81,7 +77,7 @@ PS.Exec jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem
*/--------------------------------------
* # Fork
* ## C
* `short nt fork();`
* `short int fork();`
* ## ASM
* `>SYSCALL fork`
* ## RETURN VALUE
@ -219,8 +215,8 @@ PS.Load ldy #$ff
cmp #'/'
bne .1
>PUSHW PS.ArgV found /, some path specified, no search
>PUSHWI K.S.STAT
>LDYA PS.ArgV found /, some path specified, no search
>SYSCALL2 stat
bcc .6 REAL path in K.Buf256
@ -246,9 +242,9 @@ PS.Load ldy #$ff
* cmp #S.FI.T.SYS
* bra *
PS.Load.IBIN lda #E.IBIN
.HS 2C
PS.Load.IPATH lda #E.BADPATH
.HS 2C
PS.Load.IBIN lda #E.IBIN
sec
PS.Load.RTS rts
@ -292,16 +288,17 @@ PS.Load.SCRIPT ldx #$ff
sta K.Buf256-1,x K.Buf256 = "${ROOT}BIN/SHELL\0"
.5 >PUSHWI K.S.STAT
>LDYAI K.Buf256
.5 >PUSHWI K.Buf256
>PUSHWI K.S.STAT
>SYSCALL2 stat
bcs PS.Load.RTS
lda K.S.STAT+S.STAT.P.TYPE
cmp #S.FI.T.BIN
bne PS.Load.IBIN
beq PS.LoadBIN
jmp PS.Load.IBIN
*--------------------------------------
PS.LoadBIN jsr BIN.Load K.Buf256= "${ROOT}BIN/SHELL\0", K.IOBuf=/.../SCRIPT
PS.LoadBIN jsr BIN.Load K.Buf256= "${ROOT}BIN/SH\0", K.IOBuf=/.../SCRIPT
bcs .9
>STYA ZPPtr4 save PTR to Code Segment
@ -391,10 +388,10 @@ PS.LoadBIN jsr BIN.Load K.Buf256= "${ROOT}BIN/SHELL\0", K.IOBuf=/.../SCRIPT
.9 rts
*--------------------------------------
PS.LoadGetHeader
>PUSHWZ Aux type
>PUSHBI S.FI.T.TXT
>PUSHWI K.IOBuf
>PUSHBI O.RDONLY
>LDYAI K.IOBuf
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL2 fopen
bcs .9
@ -587,8 +584,7 @@ K.Kill.2 ldy #S.PS.hSID
ldy #S.PS.hENV
lda (ZPPtr1),y
ldx #SYS.FreeStkObj
jsr K.SYSCALL2.AUX
>SYSCALL2 FreeStkObj
ldx #4
@ -607,8 +603,7 @@ K.Kill.2 ldy #S.PS.hSID
ldy #S.PS.hStdOut
lda (ZPPtr1),y
ldx #SYS.fclose
jsr K.SYSCALL2
>SYSCALL2 fclose
.1 lda K.Kill.PID
@ -670,19 +665,16 @@ K.LoadTxtFile sec
* X = hMem of Loaded File
*\--------------------------------------
K.LoadFile clc
ror FIO.bTXT
ldx #SYS.FOpen
jsr K.SYSCALL2
>SYSCALL2 FOpen
bcs .9
.12 sta FIO.hFILE
pha
>PUSHA
>PUSHWI K.S.Stat
pla
ldx #SYS.FStat
jsr K.SYSCALL2
>SYSCALL2 FStat
bcs .11
lda K.S.Stat+S.STAT.SIZE+3
@ -699,6 +691,7 @@ K.LoadFile clc
bne .1
.10 lda #E.FTB
.11 bra .99
.1 jsr K.GetMem
bcs .99
>STYA FIO.MemPtr
@ -706,8 +699,8 @@ K.LoadFile clc
>PUSHW K.S.Stat+S.STAT.SIZE
>PUSHW FIO.MemPtr
lda FIO.hFILE
ldx #SYS.FRead
jsr K.SYSCALL2
>SYSCALL2 FRead
bcc .2
pha
lda FIO.hMem
@ -715,8 +708,7 @@ K.LoadFile clc
pla
.99 pha
lda FIO.hFILE
ldx #SYS.FClose
jsr K.SYSCALL2
>SYSCALL2 FClose
pla
sec
.9 rts
@ -846,8 +838,8 @@ ENV.Search.4 lda $ffff,y Self Modified, Append Filename...
inx
bra ENV.Search.4
ENV.Search.5 >PUSHWI K.S.STAT
>LDYAI K.Buf256
ENV.Search.5 >PUSHWI K.Buf256
>PUSHWI K.S.STAT
>SYSCALL2 stat
bcs ENV.Search.1 Failed...retry next path...

View File

@ -1,34 +1,60 @@
NEW
AUTO 3,1
*/--------------------------------------
* # GetPWUID
* ## C
* `int getpwuid(short int uid, S.PW* passwd );`
* ## ASM
* `>PUSHW passwd`
* `lda uid`
* `>SYSCALL getpwuid`
* ## RETURN VALUE
*\--------------------------------------
K.GetPWUID sta ZPPtr1+1
>PULLW ZPPtr2
jmp K.SYSCALL.JMPX
*/--------------------------------------
* # GetPWName
* ## C
* `int getpwname(const char* name, S.PW* passwd );`
* ## ASM
* `>PUSHW passwd`
* `>LDYA name`
* `>SYSCALL getpwname`
* ## RETURN VALUE
*\--------------------------------------
K.GetPWName >STYA TXTPTR
>PULLW ZPPtr2
jmp K.SYSCALL.JMPX
*/--------------------------------------
* # PutPW
* ## C
* `int putpw( S.PW* passwd );`
* ## ASM
* `>LDYA passwd`
* `>SYSCALL putpw`
* ## RETURN VALUE
*\--------------------------------------
K.PutPW >STYA ZPPtr2
>STYA TXTPTR
jmp K.SYSCALL.JMPX
*--------------------------------------
K.FlushEtcPasswd
lda PWD.DBPtr
sta A1L
clc
adc PWD.DBSize
sta A2L
lda PWD.DBPtr+1
sta A1L+1
adc PWD.DBSize+1
sta A2L+1
>LDYA PWD.DBSize
>SYSCALL2 GetMem
ldx PWD.hDB
jsr MEM.CopyToMain
bcs .9
stx .8+1
>STYA A4L Save Destination Address in MAIN
clc Aux To Main
jsr AuxMove
>PUSHWZ Aux type
>PUSHBI S.FI.T.TXT
>PUSHWI PWD.FILE
>PUSHBI O.WRONLY+O.CREATE
>LDYAI PWD.FILE
ldx #SYS.FOpen
jsr K.SYSCALL2
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL2 FOpen
bcc .1
pha
@ -44,8 +70,7 @@ K.FlushEtcPasswd
jsr K.getmemptr
>PUSHYA
lda .7+1
ldx #SYS.FWrite
jsr K.SYSCALL2
>SYSCALL2 FWrite
bcc .7
pha
@ -56,8 +81,8 @@ K.FlushEtcPasswd
rts
.7 lda #$ff SELF MODIFIED
ldx #SYS.fclose
jsr K.SYSCALL2
>SYSCALL2 fclose
.8 lda #$ff
jmp K.freemem SELF MODIFIED
*--------------------------------------

View File

@ -8,21 +8,7 @@ NEW
* ....\CR
* \0
*--------------------------------------
*/--------------------------------------
* # GetPWUID
* ## C
* `int getpwuid(short int uid, S.PW* passwd );`
* ## ASM
* `>PUSHW passwd`
* `lda uid`
* `>SYSCALL getpwuid`
* ## RETURN VALUE
*\--------------------------------------
K.GetPWUID sta ZPPtr1+1
jsr SHARED.PullYA
>STYA ZPPtr2
lda PWD.hDB
PWDX.GetPWUID lda PWD.hDB
beq PWD.GetPW.9
jsr K.GetmemPtr
@ -55,21 +41,8 @@ PWD.GetPW.9 lda #E.IPWDDB
PWD.GetPW.99 lda #E.IUSR
sec
PWD.GetPW.RTS rts
*/--------------------------------------
* # GetPWName
* ## C
* `int getpwname(const char* name, S.PW* passwd );`
* ## ASM
* `>PUSHW passwd`
* `>LDYA name`
* `>SYSCALL getpwname`
* ## RETURN VALUE
*\--------------------------------------
K.GetPWName >STYA TXTPTR
jsr SHARED.PullYA
>STYA ZPPtr2
lda PWD.hDB
*--------------------------------------
PWDX.GetPWName lda PWD.hDB
beq PWD.GetPW.9
jsr K.GetmemPtr
@ -105,22 +78,11 @@ K.GetPWName >STYA TXTPTR
.8 iny
jsr PWD.NextString skip PASSWORD
jmp PWD.GetByte get UID
*/--------------------------------------
* # PutPW
* ## C
* `int putpw( S.PW* passwd );`
* ## ASM
* `>LDYA passwd`
* `>SYSCALL putpw`
* ## RETURN VALUE
*\--------------------------------------
K.PutPW >STYA ZPPtr2
>STYA TXTPTR
*--------------------------------------
* ZPPtr2 : pPW (Input)
* ZPPtr3 : pDB
*--------------------------------------
lda PWD.hDB
PWDX.PutPW lda PWD.hDB
bne .1
ldy #S.PW.UID

View File

@ -7,17 +7,21 @@ NEW
* `int chmod(const char *pathname, int mode);`
* ## ASM
* **In:**
* `>PUSHW pathname`
* `>PUSHW mode`
* `>LDYA pathname`
* `>SYSCALL chmod`
* ## RETURN VALUE
*--------------------------------------
* only 777-555
*--------------------------------------
K.ChMod jsr PFT.CheckPathYA
bcs K.ChMod.RET2
K.ChMod jsr PFT.CheckPath2
bcs K.ChMod.RET4
>PULLW K.S.STAT+S.STAT.MODE
inc pStack
inc pStack
lda K.S.STAT+S.STAT.MODE+1
and /S.STAT.MODE.RU
beq .9
@ -58,7 +62,7 @@ K.ChMod jsr PFT.CheckPathYA
.9 lda #E.SYN
sec
.90 rts
K.ChMod.RET2 >RET 2 discard statbuf
K.ChMod.RET4 >RET 4 discard statbuf
*--------------------------------------
* # FStat
* Return information about a hFILE
@ -66,21 +70,21 @@ K.ChMod.RET2 >RET 2 discard statbuf
* `int fstat(short int hFILE, struct stat *statbuf);`
* ## ASM
* **In:**
* `>PUSHB hFILE`
* `>PUSHW statbuf`
* `lda hFILE`
* `>SYSCALL fstat`
* ## RETURN VALUE
*--------------------------------------
K.FStat jsr PFT.CheckNodeA
bcs K.ChMod.RET2
K.FStat >PULLW K.Stat.Store.2+1
>PULLA
jsr PFT.CheckNodeA
bcs K.Stat.Store.RTS
tax
lda OF.Table.hPath-1,x
jsr K.GetMemPtr
jsr PFT.YAToMLIPATH
>PULLW K.Stat.Store.2+1
jsr SHARED.Stat.I
bcs K.Stat.Store.RTS
@ -118,16 +122,19 @@ K.Stat.Store.RTS
* `int stat(const char *pathname, struct stat *statbuf);`
* ## ASM
* **In:**
* `>PUSHW pathname`
* `>PUSHW statbuf`
* `>LDYA pathname`
* `>SYSCALL stat`
* ## RETURN VALUE
*\--------------------------------------
K.Stat jsr PFT.CheckPathYA
bcs K.ChMod.RET2 go discard statbuf
K.Stat jsr PFT.CheckPath2
bcs K.ChMod.RET4 go discard statbuf
>PULLW K.Stat.Store.2+1
inc pStack
inc pStack
jsr SHARED.Stat.I
bcc K.Stat.Store
@ -139,22 +146,27 @@ K.Stat jsr PFT.CheckPathYA
* `int mkdir(const char *pathname, int mode);`
* ## ASM
* **In:**
* `>PUSHW pathname`
* `>PUSHW mode`
* `>LDYA pathname`
* `>SYSCALL mkdir`
* ## RETURN VALUE
* CC : success
* CS : error
* A = EC
*\-------------------------------------
K.MKDir jsr PFT.CheckPathYA
bcs K.Stat.Store.RTS
K.MKDir jsr PFT.CheckPath2
bcs .9
* lda (pStack) TODO : mode
lda #S.FI.T.DIR
sta K.MLI.PARAMS+4
stz K.MLI.PARAMS+5
stz K.MLI.PARAMS+6
lda #S.FI.ST.DIR
jmp IO.MLI.CREATE
jsr IO.MLI.CREATE
.9 >RET 4
*/--------------------------------------
* # MKFIFO
* return a pathname to a new FIFO

View File

@ -172,24 +172,24 @@ K.FPutS jsr PFT.CheckNodeA set IO.hFD
* ## ASM
* **In:**
* PrintF : (example is for printing Y,A as integer : format="%I", 2 bytes)
* `>PUSHYA` #I
* `>PUSHBI 2` #bytecount
* `>PUSHW format`
* `>PUSHW i`
* `...`
* `>LDYAI format`
* `>PUSHBI 2` #bytecount
* `>SYSCALL printf`
* FPrintF :
* `>PUSHYA` #I
* `>PUSHBI 2` #bytecount
* `>PUSHB hFILE`
* `>PUSHW format`
* `>PUSHW i`
* `...`
* `>PUSHWI format`
* `lda hFILE`
* `>PUSHBI 2` #bytecount
* `>SYSCALL fprintf`
* SPrintF :
* `>PUSHYA` #I
* `>PUSHBI 2` #bytecount
* `>PUSHW str`
* `>PUSHW format`
* `>PUSHW i`
* `...`
* `>PUSHWI format`
* `>LDYAI str`
* `>PUSHBI 2` #bytecount
* `>SYSCALL sprintf`
* ## RETURN VALUE
* CC : success, Y,A = bytes sent
@ -894,18 +894,19 @@ K.SScanF.Fwd jmp SHARED.AddYToPtr2 Y=char count parsed
* # FOpen
* Open a file
* ## C
* `hFILE fopen ( const char * filename, short int flags, short int ftype, int auxtype );`
* `short int fopen ( const char *filename, short int flags, short int ftype, int auxtype );`
* **In:**
* ## ASM
* `>PUSHWI auxtype`
* `>PUSHBI ftype`
* `>PUSHBI flags`
* `>PUSHW filename`
* `>PUSHB flags`
* + O.RDONLY : if R and !exists -> ERROR
* + O.WRONLY : if W and !exists -> CREATE
* + O.TRUNC : Reset Size To 0
* + O.APPEND : Append
* + O.TEXT : Open/Append in Text mode
* + O.CREATE : Create if not exists
* `>PUSHB ftype`
* `>PUSHW auxtype`
* TODO: replace flags/ftype/auxtype with mode="w+,t=TYP,x=AUXTYPE"
* + r = O_RDONLY
* + r+ = O_RDWR
@ -915,18 +916,20 @@ K.SScanF.Fwd jmp SHARED.AddYToPtr2 Y=char count parsed
* + a+ = O_RDWR | O_CREAT | O_APPEND
* + ,t=123 or t=$ff or t=TXT
* + ,x=12345 or x=$ffff
* `>LDYAI filename`
* ## RETURN VALUE
* CC : A = hFILE
* CS : A = EC
*\--------------------------------------
K.FOpen jsr PFT.CheckPathYA
K.FOpen jsr PFT.CheckPath4
bcs K.FOpen.RET4
>PULLB IO.Open.FLAGS
>PULLB IO.Open.TYPE
>PULLW IO.Open.AUXTYPE
>PULLB IO.Open.TYPE
>PULLB IO.Open.FLAGS
inc pStack discard filename
inc pStack
jsr UNISTD.Open
bcs K.FClose.RTS
@ -1168,11 +1171,11 @@ K.FTell jsr PFT.CheckNodeA
* int remove(const char *pathname);
* ## ASM
* **In:**
* `>LDYA pathname`
* `>PUSHW pathname`
* `>SYSCALL remove`
* ## RETURN VALUE
*\--------------------------------------
K.Remove jsr PFT.CheckPathYA
K.Remove jsr PFT.CheckPath0
bcs .9
>MLICALL MLIDESTROY
@ -1184,12 +1187,12 @@ K.Remove jsr PFT.CheckPathYA
* `int rename(const char *oldpath, const char *newpath);`
* ## ASM
* **In:**
* `>PUSHW oldpath`
* `>PUSHW newpath`
* `>LDYA oldpath`
* `>SYSCALL rename`
* ## RETURN VALUE
*\--------------------------------------
K.Rename jsr PFT.CheckPathYA
K.Rename jsr PFT.CheckPath2
bcs .9
>PULLW ZPPtr1

View File

@ -36,6 +36,7 @@ K.FPrintf2 >LDYAI K.IOBuf
sta PrintF.hFILE
bra K.PrintF2.1
K.SPrintf2 stz PrintF.hFILE
lda (pStack) Bytecount
inc

View File

@ -123,17 +123,17 @@ K.atoi >STYA ZPPtr2
jsr MATH.Dec2ACC32
bcs .9
>LDYA ACC32
.9
K.atoi.RTS rts
.9 rts
*/--------------------------------------
* # RealPath
* Return the canonicalized absolute pathname
* ## C
* `unsigned short int realpath (const char* str, char *resolvedpath);`
* ## C / CSH
* `char *realpath(const char *path, char *resolvedpath);`
* ## ASM
* **In:**
* `>PUSHWI resolvedpath`
* `>LDYA str`
* `>PUSHW path`
* `>PUSHW resolvedpath`
* `>SYSCALL realpath`
* ## RETURN VALUE
* CC : success
@ -141,18 +141,27 @@ K.atoi.RTS rts
* X = hMem of Full Path
* CS : A = Error Code
*\--------------------------------------
K.realpath sec
.HS 90 BCC
STDLIB.realpath.I
clc
ror .82+1
K.realpath.DST .BS 2
>SYSCALL2 expand
bcs K.atoi.RTS
K.realpath.RET4 >RET 4
K.realpath ldy #3
lda (pStack),y
>PUSHA
lda (pStack),y
>PUSHA
>PUSHWI 0
jsr K.expand
bcs K.realpath.RET4
>STYA ZPPtr1
stx .99+1 save expanded buffer hMem
>PULLW K.realpath.DST resolvedpath
inc pStack discard path
inc pStack
ldx #$ff
lda (ZPPtr1)
@ -163,13 +172,13 @@ STDLIB.realpath.I
.1 ldy #S.PS.hCWD
lda (pPs),y
jsr K.GetMemPtr
>STYA ZPPtr2
>STYA .20+1
ldy #$ff
.2 iny
inx
lda (ZPPtr2),y
.20 lda $ffff,y
sta K.Buf256,x
bne .2
@ -239,14 +248,15 @@ STDLIB.realpath.I
*--------------------------------------
.81 jsr .99
.82 lda #$ff SELF MODIFIED
bpl .88
.82 ldy K.realpath.DST
lda K.realpath.DST+1
bne .85
>LDYAI MLI.MAXPATH+1
jsr K.getmem
bcs .90
>STYA ZPPtr1
.85 >STYA ZPPtr1
ldy #$ff
@ -254,9 +264,10 @@ STDLIB.realpath.I
lda K.Buf256,y
sta (ZPPtr1),y
bne .83
>LDYA ZPPtr1
.88 clc
clc
rts
.99 lda #$ff SELF MODIFIED
@ -293,6 +304,334 @@ K.RealPath.RemoveAtX
.8 plx restore X
rts
*/--------------------------------------
* # Expand
* ## C
* `char *expand(const char *str, char *expanded);`
* ## ASM
* `>PUSHW str`
* `>PUSHW expanded`
* `>SYSCALL expand`
* ## RETURN VALUE
* Y,A = PTR to Expanded String
* X = hMem to Expanded String (C-String)
*\--------------------------------------
.DUMMY
.OR ZPDRV
ENV.BufLen .BS 1
ENV.VarEndChar .BS 1
ENV.bNoExp .BS 1
ENV.bExp .BS 1
.ED
*--------------------------------------
K.Expand ldy #2
lda (pStack),y
pha
iny
lda (pStack),y
ply
jsr K.strdup
bcc .1
>RET 4
.1 phx Save temp string...
>STYA TXTPTR
stz ENV.BufLen init Expanded String len=0
stz ENV.bExp No var found yet
stz ENV.bNoExp Reset no expand flag
.10 lda (TXTPTR) End of CSTR?
beq .80
jsr SHARED.TXTPTR.Next
.11 cmp #'''
bne .21
lda ENV.bNoExp
eor #$ff
sta ENV.bNoExp toggle flag
bra .10
.21 bit ENV.bNoExp
bpl .23
.22 jsr ENV.AddAToBuf
bra .10
.23 cmp #'$' no, found one ?
bne .22 no, store...
lda (TXTPTR)
bne .24
lda #'$' End of string, output $
bra .22
.24
* sec
ror ENV.bExp Toggle Expanded flag
stz ENV.VarEndChar
cmp #'{' "${VAR]"?
bne .31
dec ENV.VarEndChar "}" expected
jsr SHARED.TXTPTR.Next skip "{"
bra .40
.31 jsr ENV.SysVar 0-9 *#?@$!
bcs .40
.35 jsr SHARED.TXTPTR.Next skip $x
bra .10
.40 jsr ENV.ExpandStrVar
bcc .70
.50 ldy ENV.BufLen
lda /K.Buf256
>STYA FORPNT
ldy #S.PS.hENV
lda (pPs),y
ldx #SYS.GetEnv
jsr K.SYSCALL.JMPX
bcs .70
ldx ENV.BufLen
.51 lda K.Buf256,x
beq .52
inx
bra .51
.52 stx ENV.BufLen
.70 lda (TXTPTR)
beq .72
jsr SHARED.IsIDValid
bcs .72
jsr SHARED.TXTPTR.Next
bra .70
.72 lda ENV.VarEndChar
bne .35 skip "}" and loop
bra .10
.80 ldx ENV.BufLen
stz K.Buf256,x
pla discard temp string
jsr K.FreeMem
>LDYAI K.Buf256 dup in case of '' processing
jsr K.strdup
bcs .9
bit ENV.bExp Did we expand something ?
bpl .9
jmp .1
.9 >RET 4
*--------------------------------------
ENV.SysVar jsr ZP.IsDigit $0 ... $9 ?
bcs .1
and #$0f
jsr K.ArgV
bcs .8 Arg# is undefined, do not append anything
jsr ENV.AddYAToBuf
.8 clc
rts
.1 ldx #ENV.SysVars.Cnt-1
.2 cmp ENV.SysVars,x
beq .3
dex
bpl .2
sec
rts
.3 txa
beq ENV.SysVarsAllArgs
ldy ENV.SysVars.PS-1,x
lda (pPS),y
*--------------------------------------
ENV.SysVarsNum jsr MATH.A2STR10NP
ldy #0
.1 lda A2osX.NumStrBuf,y
beq ENV.SysVarsNum.8
iny
jsr ENV.AddAToBuf
bra .1
ENV.SysVarsNum.8
clc
rts
*--------------------------------------
ENV.SysVarsAllArgs
lda #1
jsr K.ArgV
bcs ENV.SysVarsNum.8
>STYA ZPPtr3
.1 lda (ZPPtr3)
beq ENV.SysVarsNum.8
.2 jsr ENV.AddP3ToBuf
jsr ENV.NextEnvP3
lda (ZPPtr3)
beq ENV.SysVarsNum.8
lda #C.SPACE
jsr ENV.AddAToBuf
bra .2
*--------------------------------------
ENV.SysVars .AS "*#?@$!"
ENV.SysVars.Cnt .EQ *-ENV.SysVars
ENV.SysVars.PS .DA #S.PS.ARGC,#S.PS.RC,#S.PS.PPID,#S.PS.PID,#S.PS.CPID
*--------------------------------------
ENV.ExpandStrVar
>LDYAI ENV.StrVars
>STYA ZPPtr3
ldx #0
.1 lda (ZPPtr3)
beq .9
ldy #$ff
.2 iny
lda (TXTPTR),y
beq .3
jsr SHARED.IsIDValid
bcs .3
cmp (ZPPtr3),y
beq .2
bra .4
.3 lda (ZPPtr3),y
bne .4
jmp (ENV.StrVarsJmp,x)
.4 inx
inx
jsr ENV.NextEnvP3
bra .1
.9 sec
rts
*--------------------------------------
ENV.StrVars .AZ "LOGNAME"
.AZ "GECOS"
.AZ "HOME"
.AZ "SHELL"
.AZ "UID"
.AZ "GID"
.AZ "PWD"
.DA #0
*--------------------------------------
ENV.StrVarsJmp .DA ENV.StrVarsSession
.DA ENV.StrVarsSession
.DA ENV.StrVarsSession
.DA ENV.StrVarsSession
.DA ENV.StrVarsUID
.DA ENV.StrVarsGID
.DA ENV.StrVarsPWD
*--------------------------------------
ENV.StrVarsSession
jsr ENV.GetSession
lda ZPPtr3
clc
adc #S.SESSION.NAME
sta ZPPtr3
lda ZPPtr3+1
adc /S.SESSION.NAME
sta ZPPtr3+1
.1 dex
dex
bmi ENV.AddP3ToBuf
ldy #$ff
.2 iny
lda (ZPPtr3),y
bne .2
jsr ENV.NextEnvP3Y
bra .1
*--------------------------------------
ENV.StrVarsUID ldx #S.SESSION.UID
.HS 2C
ENV.StrVarsGID ldx #S.SESSION.GID
jsr ENV.GetSession
txa
tay
lda (ZPPtr3),y
jmp ENV.SysVarsNum
*--------------------------------------
ENV.StrVarsPWD ldy #S.PS.hCWD
lda (pPS),y
jsr K.GetMemPtr
jmp ENV.AddYAToBuf
*--------------------------------------
ENV.GetSession ldy #S.PS.hSID
lda (pPS),y
tay
lda S.Table.hSession-1,y
jsr K.GetMemPtr
>STYA ZPPtr3
rts
*--------------------------------------
ENV.AddYAToBuf >STYA ZPPtr3
*--------------------------------------
ENV.AddP3ToBuf ldx ENV.BufLen
ldy #$ff
dex
.1 iny
inx
lda (ZPPtr3),y
sta K.Buf256,x
bne .1
stx ENV.BufLen
rts
*--------------------------------------
ENV.AddAToBuf ldx ENV.BufLen
sta K.Buf256,x
inc ENV.BufLen
rts
*--------------------------------------
ENV.NextEnvP3 jsr ENV.GetP3LenY
*--------------------------------------
ENV.NextEnvP3Y tya
sec
adc ZPPtr3
sta ZPPtr3
bcc .8
inc ZPPtr3+1
.8 rts
*--------------------------------------
ENV.GetP3LenY ldy #$ff
.1 iny
lda (ZPPtr3),y
bne .1
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.STDLIB

View File

@ -57,12 +57,7 @@ K.StrVGet >PULLW FORPNT ptr
*\--------------------------------------
K.StrVAdd >PULLW TXTPTR str
>PULLA
sta SETREADAUX
sta SETWRITEAUX
jsr STRVX.StrVAdd
sta CLRREADAUX
sta CLRWRITEAUX
rts
jmp K.SYSCALL.JMPX
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.STRV

View File

@ -186,12 +186,11 @@ TERMX.READ bit bActive is screen active?
sta KBDSTROBE
and #$7F
cmp #C.ESC
bne .10
lda #3
.10 ldx #KeyRemapped.cnt-1
.2 cmp KeyRemapped,x

View File

@ -72,9 +72,9 @@ A2osX.D1.B .PH $D000
.INB USR/SRC/SYS/KERNEL.S.DIRENT
.INB USR/SRC/SYS/KERNEL.S.UNISTD
.INB USR/SRC/SYS/KERNEL.S.STDIO
.INB USR/SRC/SYS/KERNEL.S.STDLIB
.INB USR/SRC/SYS/KERNEL.S.DEV
.INB USR/SRC/SYS/KERNEL.S.FIO
.INB USR/SRC/SYS/KERNEL.S.PFT
.EP
A2osX.D1.S .EQ *-A2osX.D1.B
@ -83,6 +83,7 @@ A2osX.D2 .DA #0
A2osX.D2.B .PH $D000
.DA #RRAMWRAMBNK2
.INB USR/SRC/SYS/KERNEL.S.STDLIB
.INB USR/SRC/SYS/KERNEL.S.STRING
.INB USR/SRC/SYS/KERNEL.S.BIN
.INB USR/SRC/SYS/KERNEL.S.PS
@ -98,6 +99,7 @@ A2osX.E0.B .PH $E000
.INB USR/SRC/SYS/KERNEL.S.IRQ
.INB USR/SRC/SYS/KERNEL.S.SHARED
.INB USR/SRC/SYS/KERNEL.S.MATH
.INB USR/SRC/SYS/KERNEL.S.TERM
.INB USR/SRC/SYS/KERNEL.S.ENV
.INB USR/SRC/SYS/KERNEL.S.TIME
@ -109,7 +111,6 @@ A2osX.E0.B .PH $E000
.INB USR/SRC/SYS/KERNEL.S.STDIO2
.INB USR/SRC/SYS/KERNEL.S.IO
.INB USR/SRC/SYS/KERNEL.S.PIPE
.INB USR/SRC/SYS/KERNEL.S.PFT
DevMgr.Timer .BS 1
DevMgr.ASCREEN .BS 1