BugFix: IPCONFIG, STAT, EDIT, CIFS

This commit is contained in:
burniouf 2021-06-30 21:09:07 +02:00
parent a8f84a6e88
commit 45d654382a
13 changed files with 477 additions and 286 deletions

Binary file not shown.

View File

@ -39,7 +39,7 @@ A2osX.QC.Start1 sei
lda #$8C Reset 80 col screen ($0C=FF=HOME) lda #$8C Reset 80 col screen ($0C=FF=HOME)
jsr $C300 jsr $C300
ldx $280 ldx $280 some /PATH/.SYSTEM file passed ?
beq A2osX.QC.Start2 beq A2osX.QC.Start2
.2 dex .2 dex
@ -47,20 +47,34 @@ A2osX.QC.Start1 sei
cmp #'/' cmp #'/'
bne .2 bne .2
stx A2osX.QC.BOOT stx A2osX.QC.BOOT get /PATH/ in QC.BOOT...
.3 lda $280,x .3 lda $280,x
sta A2osX.QC.BOOT,x sta A2osX.QC.BOOT,x
dex dex
bne .3 bne .3
jsr A2osX.QC.SetPFX jsr A2osX.QC.SetPFX cd to QC.BOOT...
bcs A2osX.QC.Start2 bcs A2osX.QC.Start2
jsr A2osX.QC.Load jsr A2osX.QC.Load
bcs A2osX.QC.Start2 bcs A2osX.QC.Start2
jmp $2000 lda $2000
cmp #$4C
bne .8
lda #$EE
cmp $2003
bne .8
cmp $2004
bne .8
.8 jmp $2000
A2osX.QC.Start2 sec A2osX.QC.Start2 sec
>LDYAI MSG.INIT1 >LDYAI MSG.INIT1

View File

@ -129,6 +129,7 @@ BUF.InsertClipboard
sta (BufPtr),y sta (BufPtr),y
iny iny
bne .1 bne .1
inc ClipboardPtr+1 inc ClipboardPtr+1
inc BufPtr+1 inc BufPtr+1
bra .1 bra .1
@ -277,6 +278,7 @@ BUF.CopyAddY tya
adc BufPtr adc BufPtr
sta BufPtr sta BufPtr
bcc .2 bcc .2
inc BufPtr+1 inc BufPtr+1
.2 rts .2 rts
*-------------------------------------- *--------------------------------------
@ -403,6 +405,7 @@ BUF.GetLineAX sta BUF.TmpLine1 Requested Line
cmp #C.CR cmp #C.CR
beq .3 beq .3
iny iny
bne .2 bne .2
@ -419,6 +422,7 @@ BUF.GetLineAX sta BUF.TmpLine1 Requested Line
adc BufPtr adc BufPtr
sta BufPtr sta BufPtr
bcc .5 bcc .5
inc BufPtr+1 inc BufPtr+1
.5 tya .5 tya
@ -426,10 +430,12 @@ BUF.GetLineAX sta BUF.TmpLine1 Requested Line
adc BUF.LOffset adc BUF.LOffset
sta BUF.LOffset sta BUF.LOffset
bcc .6 bcc .6
inc BUF.LOffset+1 inc BUF.LOffset+1
.6 inc BUF.TmpLine2 .6 inc BUF.TmpLine2
bne .1 bne .1
inc BUF.TmpLine2+1 inc BUF.TmpLine2+1
bra .1 bra .1

View File

@ -89,32 +89,29 @@ FILE.Load.TXT stz FileLen
ldx #S.FI.T.TXT ldx #S.FI.T.TXT
jsr FILE.OpenTypeX jsr FILE.OpenTypeX
bcs .99 bcs .9
>PUSHA >PUSHA
>PUSHEA.G STATBUF >PUSHEA.G STATBUF
>SYSCALL FStat >SYSCALL FStat
bcs .99 bcs .9
jsr FILE.GetBuffer jsr FILE.GetBuffer
.99 bcs .9 bcs .9
.1 ldy #254 .1 ldy #0
jsr FILE.ReadY jsr FILE.ReadY read 256
bcs .7 bcs .7
lda #0 sty TmpCount Count read
sta (ZPPTR1),y Y = line len
ldx #0
ldy #0 ldy #0
lda (ZPPTR1) .2 lda (ZPPTR1),y
beq .8
eor #C.LF cmp #C.LF
bne .2 bne .3
phy phy
@ -122,29 +119,27 @@ FILE.Load.TXT stz FileLen
>STA.G FileType >STA.G FileType
ply ply
iny bra .5
.2 lda (ZPPTR1),y .3 sta (BufPtr)
beq .4
sta (BufPtr)
inc BufPtr inc BufPtr
bne .3 bne .4
inc BufPtr+1 inc BufPtr+1
.3 inx .4 cmp #C.CR
iny beq .5
bra .2
.4 txa inc FileLen
clc bne .5
adc FileLen
sta FileLen
bcc .1
inc FileLen+1 inc FileLen+1
bra .1
.5 dec TmpCount
beq .1
iny
bra .2
.7 cmp #MLI.E.EOF .7 cmp #MLI.E.EOF
bne .9 bne .9
@ -153,7 +148,8 @@ FILE.Load.TXT stz FileLen
sta (BufPtr) sta (BufPtr)
clc clc
.HS B0 BCS rts
.9 sec .9 sec
rts rts
*-------------------------------------- *--------------------------------------
@ -194,7 +190,8 @@ FILE.Load.ASM stz FileLen
sta (BufPtr) sta (BufPtr)
clc clc
.HS B0 BCS rts
.9 sec .9 sec
.99 rts .99 rts
*-------------------------------------- *--------------------------------------
@ -249,13 +246,16 @@ FILE.Load.ASM.Decode
FILE.Load.ASM.2Buf FILE.Load.ASM.2Buf
phy phy
phx phx
sta (BufPtr) sta (BufPtr)
inc BufPtr inc BufPtr
bne .1 bne .1
inc BufPtr+1 inc BufPtr+1
.1 inc FileLen .1 inc FileLen
bne .8 bne .8
inc FileLen+1 inc FileLen+1
lda FileLen+1 lda FileLen+1
@ -275,6 +275,7 @@ FILE.Load.ASM.2Buf
sta BufPtr+1 sta BufPtr+1
.8 clc .8 clc
.9 plx .9 plx
ply ply
rts rts
@ -501,9 +502,13 @@ FILE.ReadY phy
>PUSHB TmpIndex >PUSHB TmpIndex
>PUSHW ZPPTR1 >PUSHW ZPPTR1
ply
lda #0 lda #0
>PUSHYA ply
bne .1
inc
.1 >PUSHYA
>SYSCALL FRead >SYSCALL FRead
rts rts
*-------------------------------------- *--------------------------------------

View File

@ -29,7 +29,6 @@ DHCP.INIT lda IPCFG+S.NETCFG.STATUS
.99 >LDYA L.MSG.DHCP.NA .99 >LDYA L.MSG.DHCP.NA
>SYSCALL PutS >SYSCALL PutS
lda #0
sec sec
rts rts
*-------------------------------------- *--------------------------------------
@ -83,6 +82,7 @@ DHCP.RUN.ROFFER jsr DHCP.RUN.SKT.RECV
.1 jsr CheckDHCPOffer .1 jsr CheckDHCPOffer
bcs DHCP.RUN.ROFFER bcs DHCP.RUN.ROFFER
lda #S.IPCFG.STATUS.ROFFER lda #S.IPCFG.STATUS.ROFFER
sta IPCFG sta IPCFG
@ -193,20 +193,6 @@ DHCP.QUIT lda hSocket
CheckDHCPOffer jsr CheckDHCPXID CheckDHCPOffer jsr CheckDHCPXID
bcs .9 bcs .9
lda ZPFrameBase
clc
adc #S.DHCP.OPTIONS
sta ZPFramePtr
lda ZPFrameBase+1
adc /S.DHCP.OPTIONS
sta ZPFramePtr+1
lda (ZPFramePtr)
cmp #S.DHCP.OPTIONS.MSGTYPE
bne .9
ldy #2
lda (ZPFramePtr),y
cmp #S.DHCP.OPTIONS.DHCPOffer cmp #S.DHCP.OPTIONS.DHCPOffer
bne .9 bne .9
@ -263,12 +249,13 @@ CheckDHCPOffer jsr CheckDHCPXID
jsr GetDHCPOption May override SVRIP jsr GetDHCPOption May override SVRIP
bra .5 bra .5
.8 jsr CS.RUN.DISCARD .8 clc
clc .HS B0 BCS
rts .9 sec
php
.9 jsr CS.RUN.DISCARD lda hFrame
sec >SYSCALL FreeMem
plp
rts rts
*-------------------------------------- *--------------------------------------
GetDHCPOption cmp #S.DHCP.OPTIONS.MASK GetDHCPOption cmp #S.DHCP.OPTIONS.MASK
@ -349,33 +336,16 @@ GetDHCPOption.CopyIP
CheckDHCPAck jsr CheckDHCPXID CheckDHCPAck jsr CheckDHCPXID
bcs .9 bcs .9
lda ZPFrameBase
clc
adc #S.DHCP.OPTIONS
sta ZPFramePtr
lda ZPFrameBase+1
adc /S.DHCP.OPTIONS
sta ZPFramePtr+1
lda (ZPFramePtr)
cmp #S.DHCP.OPTIONS.MSGTYPE
bne .9
ldy #2
lda (ZPFramePtr),y
cmp #S.DHCP.OPTIONS.DHCPAck cmp #S.DHCP.OPTIONS.DHCPAck
bne .9 bne .9
jsr CS.RUN.DISCARD .8 clc
clc .HS B0 BCS
rts .9 sec
php
.9 jsr CS.RUN.DISCARD lda hFrame
sec
rts
*--------------------------------------
CS.RUN.DISCARD lda hFrame
>SYSCALL FreeMem >SYSCALL FreeMem
plp
rts rts
*-------------------------------------- *--------------------------------------
CheckDHCPXID ldy #S.DHCP.XID+3 CheckDHCPXID ldy #S.DHCP.XID+3
@ -389,6 +359,22 @@ CheckDHCPXID ldy #S.DHCP.XID+3
dex dex
bpl .1 bpl .1
lda ZPFrameBase
clc
adc #S.DHCP.OPTIONS
sta ZPFramePtr
lda ZPFrameBase+1
adc /S.DHCP.OPTIONS
sta ZPFramePtr+1
lda (ZPFramePtr)
cmp #S.DHCP.OPTIONS.MSGTYPE
bne .9
ldy #2
lda (ZPFramePtr),y
clc clc
rts rts

View File

@ -4,9 +4,12 @@ NEW
ETC.ReadFiles >LDYAI 256 ETC.ReadFiles >LDYAI 256
>SYSCALL GetMem >SYSCALL GetMem
bcc .1 bcc .1
rts rts
.1 >STYA ZPTmpPtr1 .1 >STYA ZPTmpPtr1
stx CFG.hBuf1 stx CFG.hBuf1
>LDYA L.HOSTNAME >LDYA L.HOSTNAME
jsr CFG.Read.PrintF jsr CFG.Read.PrintF
jsr CFG.Read.HOSTNAME jsr CFG.Read.HOSTNAME
@ -55,23 +58,24 @@ CFG.Read.HOSTNAME
jsr CFG.Read.Open jsr CFG.Read.Open
jsr CFG.Read.Result jsr CFG.Read.Result
bcs .9 bcs .9
.1 jsr CFG.Read.GetS .1 jsr CFG.Read.GetS
bcs .8 bcs .8
lda (ZPTmpPtr1)
beq .1 empty line...
cmp #'#
beq .1 comment...
ldy #0 ldy #0
.2 lda (ZPTmpPtr1),y .2 lda (ZPTmpPtr1),y
sta IPCFG+S.IPCFG.HOSTNAME,y sta IPCFG+S.IPCFG.HOSTNAME,y
beq .8 end of name beq .8 end of name
iny iny
cpy #15 cpy #15
bne .2 bne .2
.8 clc .8 clc
.HS B0 BCS .HS B0 BCS
.9 sec .9 sec
jmp CFG.Read.Close jmp CFG.Read.Close
*-------------------------------------- *--------------------------------------
CFG.Read.TCPIP.CONF CFG.Read.TCPIP.CONF
@ -83,12 +87,6 @@ CFG.Read.TCPIP.CONF
.1 jsr CFG.Read.GetS .1 jsr CFG.Read.GetS
bcs .8 bcs .8
lda (ZPTmpPtr1)
beq .1 empty line...
cmp #'#'
beq .1 comment...
ldy #$ff ldy #$ff
.2 iny .2 iny
@ -143,6 +141,7 @@ CFG.Read.TCPIP.CONF
.8 clc .8 clc
.HS B0 BCS .HS B0 BCS
.9 sec .9 sec
jmp CFG.Read.Close jmp CFG.Read.Close
.80 jmp (J.CFG.Keywords,x) .80 jmp (J.CFG.Keywords,x)
@ -202,21 +201,27 @@ CFG.Read.dnsdomain
adc ZPTmpPtr1 adc ZPTmpPtr1
sta ZPTmpPtr1 sta ZPTmpPtr1
bcc .1 bcc .1
inc ZPTmpPtr1+1 inc ZPTmpPtr1+1
.1 ldy #$ff .1 ldy #$ff
.2 iny .2 iny
lda (ZPTmpPtr1),y lda (ZPTmpPtr1),y
sta IPCFG+S.IPCFG.DOMAIN,y sta IPCFG+S.IPCFG.DOMAIN,y
beq .8 beq .8
cpy #K.DNS.MAXLEN cpy #K.DNS.MAXLEN
bne .2 bne .2
lda #0 lda #0
sta IPCFG+S.IPCFG.DOMAIN,y sta IPCFG+S.IPCFG.DOMAIN,y
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
CFG.Read.HOSTS stz CFG.hBuf2 CFG.Read.HOSTS stz CFG.hBuf2
stz CFG.hBuf3 stz CFG.hBuf3
>LDYA L.HOSTS >LDYA L.HOSTS
jsr CFG.Read.Open jsr CFG.Read.Open
jsr CFG.Read.Result jsr CFG.Read.Result
@ -239,12 +244,6 @@ CFG.Read.HOSTS stz CFG.hBuf2
.1 jsr CFG.Read.GetS .1 jsr CFG.Read.GetS
bcs .8 bcs .8
lda (ZPTmpPtr1)
beq .1 empty line...
cmp #'#
beq .1 comment...
jsr CFG.Read.HOSTS.Scan jsr CFG.Read.HOSTS.Scan
bcs .1 bcs .1
@ -267,8 +266,10 @@ CFG.Read.HOSTS stz CFG.hBuf2
pha pha
lda CFG.hBuf3 lda CFG.hBuf3
beq .90 beq .90
>SYSCALL FreeMem >SYSCALL FreeMem
.90 lda CFG.hBuf2 .90 lda CFG.hBuf2
beq .91 beq .91
>SYSCALL FreeMem >SYSCALL FreeMem
@ -350,7 +351,17 @@ CFG.Read.GetS >PUSHB CFG.hCfgFile
>PUSHW ZPTmpPtr1 >PUSHW ZPTmpPtr1
>PUSHWI 255 >PUSHWI 255
>SYSCALL FGetS >SYSCALL FGetS
rts bcs .9
lda (ZPTmpPtr1)
beq CFG.Read.GetS empty line...
cmp #'#'
beq CFG.Read.GetS comment...
clc
.9 rts
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE usr/src/bin/ipconfig.s.etc SAVE usr/src/bin/ipconfig.s.etc

View File

@ -127,6 +127,7 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG
>STYA pIPCFG >STYA pIPCFG
ldy #S.IPCFG-1 ldy #S.IPCFG-1
.1 lda (pIPCFG),y .1 lda (pIPCFG),y
sta IPCFG,y sta IPCFG,y
dey dey
@ -134,11 +135,14 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG
lda IPCFG+S.NETCFG.DevID lda IPCFG+S.NETCFG.DevID
bne CS.RUN.SETUP bne CS.RUN.SETUP
>LDYA L.MSG.NODEV >LDYA L.MSG.NODEV
>SYSCALL PutS >SYSCALL PutS
lda #MLI.E.NODEV lda #MLI.E.NODEV
sec sec
rts rts
*--------------------------------------
CS.RUN.SETUP CS.RUN.SETUP
.1 inc ArgIndex .1 inc ArgIndex
lda ArgIndex lda ArgIndex
@ -189,6 +193,7 @@ CS.RUN.SETUP
lda bETC lda bETC
bpl .6 bpl .6
jsr ETC.ReadFiles jsr ETC.ReadFiles
.6 lda bDHCP .6 lda bDHCP
@ -237,6 +242,7 @@ CS.RUN.DUMPNIC >PUSHW L.MSG1.DEV
ldy #DCB.NIC+S.DCB.NIC.MAC ldy #DCB.NIC+S.DCB.NIC.MAC
ldx #6 ldx #6
.1 lda (pData),y .1 lda (pData),y
>PUSHA >PUSHA
iny iny
@ -252,7 +258,9 @@ CS.RUN.DUMPNIC >PUSHW L.MSG1.DEV
>LDA.G DCB.NIC+S.DCB.NIC.FLAGS >LDA.G DCB.NIC+S.DCB.NIC.FLAGS
and #S.DCB.NIC.FLAGS.ARPOFFLOAD and #S.DCB.NIC.FLAGS.ARPOFFLOAD
beq .2 beq .2
lda #1 lda #1
.2 >PUSHA .2 >PUSHA
>PUSHBI 1 >PUSHBI 1
@ -266,8 +274,8 @@ CS.RUN.DUMPNIC >PUSHW L.MSG1.DEV
beq .3 beq .3
lda #1 lda #1
.3
>PUSHA .3 >PUSHA
>PUSHBI 1 >PUSHBI 1
>SYSCALL PrintF >SYSCALL PrintF
@ -275,10 +283,11 @@ CS.RUN.DUMPNIC >PUSHW L.MSG1.DEV
>LDA.G DCB.NIC+S.DCB.NIC.LINK >LDA.G DCB.NIC+S.DCB.NIC.LINK
and #S.DCB.NIC.LINK.OK and #S.DCB.NIC.LINK.OK
bne CS.RUN.LINK bne CS.RUN.LINK
>LDYA L.MSG1.LINK.KO >LDYA L.MSG1.LINK.KO
>SYSCALL PutS >SYSCALL PutS
bra CS.RUN.DUMPIP bra CS.RUN.DUMPIP
*--------------------------------------
CS.RUN.LINK >LDYA L.MSG1.LINK.OK CS.RUN.LINK >LDYA L.MSG1.LINK.OK
>SYSCALL PutS >SYSCALL PutS
@ -289,18 +298,23 @@ CS.RUN.LINK >LDYA L.MSG1.LINK.OK
>LDA.G DCB.NIC+S.DCB.NIC.SPEED >LDA.G DCB.NIC+S.DCB.NIC.SPEED
and #$0F and #$0F
tax tax
.4 phx .4 phx
lda #'0' lda #'0'
>SYSCALL PutChar >SYSCALL PutChar
plx plx
dex dex
bne .4 bne .4
>LDA.G DCB.NIC+S.DCB.NIC.LINK >LDA.G DCB.NIC+S.DCB.NIC.LINK
and #S.DCB.NIC.LINK.FD and #S.DCB.NIC.LINK.FD
bne .5 bne .5
>LDYA L.MSG1.DPLX.HD >LDYA L.MSG1.DPLX.HD
bra .6 bra .6
.5 >LDYA L.MSG1.DPLX.FD .5 >LDYA L.MSG1.DPLX.FD
.6 >SYSCALL PutS .6 >SYSCALL PutS
CS.RUN.DUMPIP >PUSHW L.MSG2 CS.RUN.DUMPIP >PUSHW L.MSG2
@ -310,14 +324,18 @@ CS.RUN.DUMPIP >PUSHW L.MSG2
lda IPCFG+S.NETCFG.STATUS lda IPCFG+S.NETCFG.STATUS
and #S.IPCFG.STATUS.OK and #S.IPCFG.STATUS.OK
beq .11 beq .11
>LDYA L.MSG2.C >LDYA L.MSG2.C
bra .10 bra .10
.11 >LDYA L.MSG2.U .11 >LDYA L.MSG2.U
.10 >SYSCALL PutS .10 >SYSCALL PutS
>PUSHW L.MSG2.DHCPSRVR >PUSHW L.MSG2.DHCPSRVR
ldx #0 ldx #0
.2 >PUSHB IPCFG+S.IPCFG.DHCPSRVR,x .2 >PUSHB IPCFG+S.IPCFG.DHCPSRVR,x
inx inx
cpx #4 cpx #4
@ -330,10 +348,12 @@ CS.RUN.DUMPIP >PUSHW L.MSG2
>PUSHW L.MSG2.IPMASK >PUSHW L.MSG2.IPMASK
ldx #0 IP/MASK ldx #0 IP/MASK
.3 >PUSHB IPCFG+S.IPCFG.IP,x .3 >PUSHB IPCFG+S.IPCFG.IP,x
inx inx
cpx #8 cpx #8
bne .3 bne .3
>PUSHBI 8 >PUSHBI 8
>SYSCALL PrintF >SYSCALL PrintF
@ -341,20 +361,24 @@ CS.RUN.DUMPIP >PUSHW L.MSG2
>PUSHW L.MSG2.GW >PUSHW L.MSG2.GW
ldx #0 ldx #0
.4 >PUSHB IPCFG+S.IPCFG.GW,x .4 >PUSHB IPCFG+S.IPCFG.GW,x
inx inx
cpx #4 cpx #4
bne .4 bne .4
>PUSHBI 4 >PUSHBI 4
>SYSCALL PrintF >SYSCALL PrintF
>PUSHW L.MSG2.DNS >PUSHW L.MSG2.DNS
ldx #0 ldx #0
.5 >PUSHB IPCFG+S.IPCFG.DNS1,x .5 >PUSHB IPCFG+S.IPCFG.DNS1,x
inx inx
cpx #8 cpx #8
bne .5 bne .5
>PUSHBI 8 >PUSHBI 8
>SYSCALL PrintF >SYSCALL PrintF
@ -365,6 +389,7 @@ CS.RUN.DUMPIP >PUSHW L.MSG2
>PUSHBI 4 >PUSHBI 4
>SYSCALL PrintF >SYSCALL PrintF
lda #0 tell TSKMGR that all done ok, but lda #0 tell TSKMGR that all done ok, but
sec we do not want to stay in memory sec we do not want to stay in memory
rts rts

View File

@ -70,6 +70,7 @@ CS.RUN dec bAll
lda ArgIndex lda ArgIndex
>SYSCALL ArgV >SYSCALL ArgV
bcs .3 bcs .3
>STYA ZPPtr1 >STYA ZPPtr1
lda (ZPPtr1) lda (ZPPtr1)
@ -123,14 +124,14 @@ CS.RUN.RTS rts
CS.RUN.PRINT bit bAccess CS.RUN.PRINT bit bAccess
bpl .1 bpl .1
>LDYA.G ATTR >LEA.G AttrBuf
>SYSCALL PutS >SYSCALL PutS
bcs CS.RUN.RTS bcs CS.RUN.RTS
.1 bit bMod .1 bit bMod
bpl .2 bpl .2
>LDYA.G MOD >LEA.G MOD
>SYSCALL PutS >SYSCALL PutS
bcs CS.RUN.RTS bcs CS.RUN.RTS
@ -211,7 +212,7 @@ CS.RUN.DUMP lda ArgFile
>SYSCALL FreeMem >SYSCALL FreeMem
>PUSHW L.MSG.Access >PUSHW L.MSG.Access
>PUSHEA.G ATTR >PUSHEA.G AttrBuf
>PUSHBI 2 >PUSHBI 2
>SYSCALL PrintF >SYSCALL PrintF
@ -244,7 +245,7 @@ CS.RUN.CONVERT jsr Access2CSTR
Access2CSTR ldy #S.STAT.P.ACCESS Access2CSTR ldy #S.STAT.P.ACCESS
lda (pData),y lda (pData),y
ldy #ATTR+15 ldy #AttrBuf+15
ldx #15 ldx #15
.1 lsr .1 lsr
@ -431,13 +432,12 @@ MSG.U .AZ "%u\r\n"
.OR 0 .OR 0
DS.START DS.START
StatBuf .BS S.STAT StatBuf .BS S.STAT
ATTR .BS 17 AttrBuf .BS 17
MOD .BS 11 drwxrwxrwx + \0 MOD .BS 11 drwxrwxrwx + \0
TIME.Access .BS 20 TIME.Access .BS 20
TIME.Mod .BS 20 TIME.Mod .BS 20
TIME.Create .BS 20 TIME.Create .BS 20
DS.END DS.END .ED
.ED
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE usr/src/bin/stat.s SAVE usr/src/bin/stat.s

View File

@ -15,6 +15,7 @@ S.SMB.H.CMD.FLUSH .EQ $05
S.SMB.H.CMD.DELETE .EQ $06 S.SMB.H.CMD.DELETE .EQ $06
S.SMB.H.CMD.RENAME .EQ $07 S.SMB.H.CMD.RENAME .EQ $07
S.SMB.H.CMD.SEEK .EQ $12 S.SMB.H.CMD.SEEK .EQ $12
S.SMB.H.CMD.OPEN.ANDX .EQ $2D
S.SMB.H.CMD.READ.ANDX .EQ $2E S.SMB.H.CMD.READ.ANDX .EQ $2E
S.SMB.H.CMD.WRITE.ANDX .EQ $2F S.SMB.H.CMD.WRITE.ANDX .EQ $2F
S.SMB.H.CMD.TRANS2 .EQ $32 S.SMB.H.CMD.TRANS2 .EQ $32

View File

@ -327,12 +327,12 @@ CIFS2.ReadDir.GetBuf
jsr AddA2Ptr1 jsr AddA2Ptr1
lda (ZPPtr1) Filename Len lda (ZPPtr1) Filename Len
sec sec +\0
jsr AddA2Ptr2 jsr AddA2Ptr2
lda (ZPPtr1) Filename Len lda (ZPPtr1) Filename Len
inc inc +1 skip Filename Len
sec sec +\0
jsr AddA2Ptr1 jsr AddA2Ptr1
dex dex
@ -363,24 +363,86 @@ CIFS2.ReadDir.FillBuf
.10 lda (ZPRespPtr),y .10 lda (ZPRespPtr),y
tax tax
.1 jsr FileInfo2StatBuf .1 phx
jsr FileInfo2StatBuf
lda #22 lda #22
sec skip Filename Len clc
jsr AddA2Ptr1 jsr AddA2Ptr1
ldy #$ff lda (ZPPtr1)
tax Save Filename Len
inc ZPPtr1 Skip Filename Len
bne .2
inc ZPPtr1+1
.2 ldy #$ff
.3 iny .3 iny
lda (ZPPtr1),y lda (ZPPtr1),y
sta (ZPPtr2),y sta (ZPPtr2),y
bne .3 bne .3
tya txa
sec sec
jsr AddA2Ptr1 jsr AddA2Ptr1
txa
sec
sbc #4 "x.EXT" ?
bcc .7
tay
lda (ZPPtr2),y
cmp #'.'
bne .7
ldx #0
.4 phy Y = '.' offset
phx
.5 lda PRODOS.FT.TXT,x
iny
cmp (ZPPtr2),y
bne .6
inx
txa
and #3
bne .5
pla
lsr
lsr
tax
lda PRODOS.FT.HEX,x
sta StatBuf+S.STAT.P.TYPE
ply
lda #0
sta (ZPPtr2),y
tya tya
tax
bra .7
.6 pla
clc
adc #4
tax
ply
cpx #PRODOS.FT.END
bne .4
.7 txa
sec +\0 sec +\0
jsr AddA2Ptr2 jsr AddA2Ptr2
@ -388,6 +450,7 @@ CIFS2.ReadDir.FillBuf
jsr AddSTAT2Ptr2 jsr AddSTAT2Ptr2
.8 plx
dex dex
bne .1 bne .1
@ -428,6 +491,11 @@ CIFS2.ChOwn
*-------------------------------------- *--------------------------------------
CIFS.FOpen >STYA pPath resolved path CIFS.FOpen >STYA pPath resolved path
ldy #2
lda (pStack),y TYPE
jsr ProDOS2TypeLess
jsr GetCtx jsr GetCtx
ldx #S.SMB.H.CMD.NT.CREATE.ANDX ldx #S.SMB.H.CMD.NT.CREATE.ANDX
@ -457,7 +525,6 @@ CIFS.FOpen >STYA pPath resolved path
sta (ZPReqPtr),y sta (ZPReqPtr),y
lda #0 lda #0
ror
iny ByteCountOfs+1 iny ByteCountOfs+1
sta (ZPReqPtr),y sta (ZPReqPtr),y

View File

@ -557,6 +557,69 @@ CIFS.CallBack bit CIFS.Status
*-------------------------------------- *--------------------------------------
.INB usr/src/lib/libcifs.io.s .INB usr/src/lib/libcifs.io.s
*-------------------------------------- *--------------------------------------
TypeLess2ProDOS
*--------------------------------------
ProDOS2TypeLess tax
beq .8
ldx #0
.1 cmp PRODOS.FT.HEX,x
beq .4
inx
cpx #PRODOS.FT.TXT-PRODOS.FT.HEX
bne .1
pha
lsr
lsr
lsr
lsr
ora #$30
cmp #'9'+1
bcc .2
adc #6
.2 sta PRODOS.FT.DFLT+1
pla
and #$0F
ora #$30
cmp #'9'+1
bcc .3
adc #6
.3 sta PRODOS.FT.DFLT+2
.4 txa
asl
asl
tax
ldy #0
.5 iny
lda (pPath),y
bne .5
lda #'.'
sta (pPath),y
iny
.6 lda PRODOS.FT.TXT,x
sta (pPath),y
beq .8
inx
iny
bra .6
.8 rts
*--------------------------------------
GetPFD tax GetPFD tax
phx phx
@ -913,8 +976,6 @@ FreeRespData.RTS
rts rts
*-------------------------------------- *--------------------------------------
FileInfo2StatBuf FileInfo2StatBuf
phx
ldx #S.STAT-1 ldx #S.STAT-1
.1 stz StatBuf,x .1 stz StatBuf,x
@ -953,9 +1014,7 @@ FileInfo2StatBuf
lda /S.STAT.MODE.DIR lda /S.STAT.MODE.DIR
sta StatBuf+S.STAT.MODE+1 sta StatBuf+S.STAT.MODE+1
.8 plx .8 rts
rts
*-------------------------------------- *--------------------------------------
* YYYYYYYM MMM DDDDD * YYYYYYYM MMM DDDDD
* HHHHHmmm mmm SSSSS * HHHHHmmm mmm SSSSS
@ -1069,6 +1128,19 @@ CIFS.BADCALL lda #MLI.E.BADCALL
rts rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
PRODOS.FT.HEX .HS 0406FAFCFDE2CBCCCFFF
PRODOS.FT.TXT .AZ "txt"
.AZ "bin"
.AZ "asm"
.AZ "bas"
.AZ "var"
.AZ "atk"
.AZ "pix"
.AZ "fon"
.AZ "pak"
.AZ "sys"
PRODOS.FT.END .EQ *-PRODOS.FT.TXT
PRODOS.FT.DFLT .AZ "$ "
*-------------------------------------- *--------------------------------------
SMBERR01 .DA #2,#3,#32 SMBERR01 .DA #2,#3,#32
MLIERR01 .DA #MLI.E.FNOTFND,#MLI.E.PNOTFND,#MLI.E.OPEN MLIERR01 .DA #MLI.E.FNOTFND,#MLI.E.PNOTFND,#MLI.E.OPEN

View File

@ -5,7 +5,6 @@ NEW
ArgCount .BS 1 ArgCount .BS 1
bPause .BS 1 bPause .BS 1
hSrcFile .BS 1
hSrcFullPath .BS 1 hSrcFullPath .BS 1
Count .BS 2 Count .BS 2
RC .BS 1 RC .BS 1
@ -13,8 +12,11 @@ RC .BS 1
.DO X.COPY.TO.DEST=1 .DO X.COPY.TO.DEST=1
hDstFileName .BS 1 hDstFileName .BS 1
hDstFullPath .BS 1 hDstFullPath .BS 1
hDstFile .BS 1
bCopy .BS 1 bCopy .BS 1
hSrcFile .BS 1
hDstFile .BS 1
hCopyBuf .BS 1 hCopyBuf .BS 1
CopyRC .BS 1 CopyRC .BS 1
.FIN .FIN
@ -25,3 +27,5 @@ hToDelete .BS 1
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE usr/src/shared/x.cpmvrm.g SAVE usr/src/shared/x.cpmvrm.g
LOAD usr/src/bin/cp.s
ASM