mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-20 11:29:29 +00:00
Kernel 0.94
This commit is contained in:
parent
a0bd61e71c
commit
eb1f631ce9
Binary file not shown.
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -78,6 +78,12 @@ CSH.BOPS.SUBf >FPU FSUB
|
|||
*--------------------------------------
|
||||
CSH.BOPS.MUL cmp #CSH.T.FLOAT
|
||||
beq .8
|
||||
|
||||
>FPU MUL32
|
||||
|
||||
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
130
BIN/LS.S.txt
130
BIN/LS.S.txt
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
*--------------------------------------
|
||||
|
|
|
@ -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
|
||||
*--------------------------------------
|
||||
|
|
61
BIN/PS.S.txt
61
BIN/PS.S.txt
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
*--------------------------------------
|
||||
|
|
17
BIN/SH.S.txt
17
BIN/SH.S.txt
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:**
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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...
|
||||
|
||||
|
|
|
@ -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
|
||||
*--------------------------------------
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user