A2osX/LIB/LIBCIFS.S.txt

1579 lines
26 KiB
Plaintext
Raw Normal View History

2021-01-12 21:14:13 +00:00
NEW
AUTO 3,1
.LIST OFF
.OP 65C02
.OR $2000
.TF lib/libcifs
*--------------------------------------
.INB inc/macros.i
.INB inc/a2osx.i
2021-02-11 22:08:22 +00:00
.INB inc/kernel.i
2021-01-12 21:14:13 +00:00
.INB inc/mli.e.i
.INB inc/eth.i
.INB inc/libtcpip.i
.INB inc/net.smb.i
*--------------------------------------
.DUMMY
.OR ZPLIB
ZS.START
ZPReqPtr .BS 2
ZPReqLen .BS 2
ZPCtxPtr .BS 2
2021-02-11 22:08:22 +00:00
pFD .BS 2
2021-02-17 16:15:43 +00:00
pPath .BS 2
2021-01-12 21:14:13 +00:00
ZPPtr1 .BS 2
ZPPtr2 .BS 2
2021-02-11 22:08:22 +00:00
BufPtr .BS 2
hBuf .BS 1
2021-03-11 21:40:55 +00:00
hResp .BS 1
ZPRespPtr .BS 2
2021-02-17 16:15:43 +00:00
bFlag .BS 1
2021-01-12 21:14:13 +00:00
ZS.END .ED
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA 0
.DA CS.END-CS.START
.DA 0
.DA 0
.DA 0
*--------------------------------------
* Relocation Table
*--------------------------------------
.1 .DA LIB.LOAD
.DA LIB.UNLOAD
.DA CIFS.Negotiate
.DA CIFS.SessionSetup
.DA CIFS.TreeConnect
.DA CIFS.Mount
.DA CIFS.UMount
*--------------------------------------
2021-01-17 21:48:54 +00:00
L.CALLBACK .DA CIFS.CallBack
*--------------------------------------
2021-01-12 21:14:13 +00:00
J.CIFS .DA CIFS.ChTyp
.DA CIFS.ChMod
.DA CIFS.FStat
.DA CIFS.Stat
.DA CIFS.MKDir
.DA CIFS.MKNod
.DA CIFS.MKFIFO
.DA CIFS.Pipe
.DA CIFS.OpenDir
.DA CIFS.ReadDir
.DA CIFS.CloseDir
.DA CIFS.Open
.DA CIFS.Close
.DA CIFS.Read
.DA CIFS.Write
.DA CIFS.ChOwn
2021-01-24 19:44:43 +00:00
J.CIFS2 .DA CIFS2.ChTyp
.DA CIFS2.ChMod
.DA CIFS2.FStat
.DA CIFS2.Stat
.DA CIFS2.MKDir
.DA CIFS2.MKNod
.DA CIFS2.MKFIFO
.DA CIFS2.Pipe
.DA CIFS2.OpenDir
.DA CIFS2.ReadDir
.DA CIFS2.CloseDir
.DA CIFS2.Open
.DA CIFS2.Close
.DA CIFS2.Read
.DA CIFS2.Write
2021-02-17 16:15:43 +00:00
.DA CIFS2.ChOwn
2021-01-12 21:14:13 +00:00
L.LIBTCPIP .DA LIBTCPIP
2021-02-11 22:08:22 +00:00
L.NETBIOS .DA NETBIOS
2021-01-12 21:14:13 +00:00
.DA 0
*--------------------------------------
LIB.LOAD >LDYA L.LIBTCPIP
2021-01-17 21:48:54 +00:00
>SYSCALL2 LoadLib
2021-01-12 21:14:13 +00:00
bcs .9
sta hLIBTCPIP
2021-01-17 21:48:54 +00:00
>SYSCALL2 GetMemPtr
>STYA pLIBTCPIP
2021-01-12 21:14:13 +00:00
>LDYAI 256
2021-01-17 21:48:54 +00:00
>SYSCALL2 GetMem
2021-01-12 21:14:13 +00:00
bcs .9
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
stx hReq
* clc
.9 rts
*--------------------------------------
LIB.UNLOAD lda hReq
beq .1
2021-01-17 21:48:54 +00:00
>SYSCALL2 FreeMem
2021-01-12 21:14:13 +00:00
.1 lda hLIBTCPIP
beq .8
2021-01-17 21:48:54 +00:00
>SYSCALL2 UnloadLib
2021-01-12 21:14:13 +00:00
.8 clc
rts
*--------------------------------------
* >PUSHB hSocket
2021-01-17 21:48:54 +00:00
* >PUSHBI 0
2021-01-12 21:14:13 +00:00
* >LIBCALL Negotiate
* A = hSMBContext
*--------------------------------------
CIFS.Negotiate lda (pStack)
bne .1
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
dec
sta (pStack)
2021-02-11 22:08:22 +00:00
>PUSHWI SMB.NegReq.end-NETBIOS
>PUSHW L.NETBIOS
2021-01-12 21:14:13 +00:00
ldy #1+4 hSocket
lda (pStack),y
2021-01-13 16:57:41 +00:00
ldx #LIBTCPIP.Send
2021-01-17 21:48:54 +00:00
jsr GO.LIBTCPIP
2021-01-12 21:14:13 +00:00
bcs .99
2021-01-13 16:57:41 +00:00
2021-01-12 21:14:13 +00:00
lda #0
sec
rts
.1 dec
sta (pStack)
beq .98
ldy #1 hSocket
lda (pStack),y
2021-01-13 16:57:41 +00:00
ldx #LIBTCPIP.Recv
2021-01-17 21:48:54 +00:00
jsr GO.LIBTCPIP
2021-01-12 21:14:13 +00:00
bcc .3
cmp #E.NODATA
bne .99
inc
rts
.3 jsr GetRespData
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
bne .97
2021-02-11 22:08:22 +00:00
ldy #S.NETBIOS.LEN+2
2021-01-12 21:14:13 +00:00
lda (ZPRespPtr),y
2021-01-17 21:48:54 +00:00
2021-01-14 21:39:36 +00:00
clc
2021-02-11 22:08:22 +00:00
adc #S.NETBIOS
2021-01-14 21:39:36 +00:00
sta ZPPtr1
2021-01-12 21:14:13 +00:00
tay
lda #0
2021-01-17 21:48:54 +00:00
>SYSCALL2 GetMem
2021-01-12 21:14:13 +00:00
bcs .99
2021-01-17 21:48:54 +00:00
>STYA ZPCtxPtr
2021-01-14 21:39:36 +00:00
ldy ZPPtr1
2021-01-12 21:14:13 +00:00
.4 dey
lda (ZPRespPtr),y
sta (ZPCtxPtr),y
tya
bne .4
2021-01-14 21:39:36 +00:00
ldy #S.NETBIOS+S.SMB.H.FLAGS
sta (ZPCtxPtr),y
2021-01-12 21:14:13 +00:00
phx
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
lda hResp
2021-01-17 21:48:54 +00:00
>SYSCALL2 FreeMem
2021-01-12 21:14:13 +00:00
pla
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
clc
>RET 2
.97 lda hResp
2021-01-17 21:48:54 +00:00
>SYSCALL2 FreeMem
2021-01-12 21:14:13 +00:00
.98 lda #MLI.E.IO
2021-01-14 21:39:36 +00:00
.99 >RET 2
2021-01-12 21:14:13 +00:00
*--------------------------------------
* >PUSHB hSocket
* >PUSHB hSMBContext
* >PUSHW username
* >PUSHW password
2021-01-17 21:48:54 +00:00
* >PUSHBI 0
2021-01-12 21:14:13 +00:00
* >LIBCALL SessionSetup
* (SMBContext updated with UID)
*--------------------------------------
CIFS.SessionSetup
lda (pStack)
2021-01-17 21:48:54 +00:00
bne .5
2021-01-12 21:14:13 +00:00
2021-01-17 21:48:54 +00:00
dec
2021-01-12 21:14:13 +00:00
sta (pStack)
2021-01-17 21:48:54 +00:00
ldy #5 hSMBContext
jsr GetSMBContext
2021-01-14 21:39:36 +00:00
2021-01-12 21:14:13 +00:00
ldx #S.SMB.H.CMD.SESSION.SETUP.ANDX
2021-01-17 21:48:54 +00:00
jsr RequestSetupX
2021-01-12 21:14:13 +00:00
ldx #0
.2 lda SMB.SessionSetup.H,x
sta (ZPReqPtr),y
iny
inx
cpx #SMB.SessionSetup.H.Len
bne .2
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
phy save Y = LEN
iny
iny
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
ldx #0
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
.3 lda SMB.SessionSetup.Guest,x
sta (ZPReqPtr),y
iny
inx
cpx #SMB.SessionSetup.Guest.Len
bne .3
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
ldx #0
.4 lda SMB.SessionSetup.T,x
sta (ZPReqPtr),y
iny
inx
cpx #SMB.SessionSetup.T.Len
bne .4
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
pla
2021-01-17 21:48:54 +00:00
2021-01-14 21:39:36 +00:00
jsr SetReqLenYAtA
2021-01-12 21:14:13 +00:00
>PUSHYA
>PUSHW ZPReqPtr
ldy #6+4 hSocket
lda (pStack),y
2021-01-13 16:57:41 +00:00
ldx #LIBTCPIP.Send
2021-01-17 21:48:54 +00:00
jsr GO.LIBTCPIP
2021-01-12 21:14:13 +00:00
bcs .99
lda #0
sec
2021-01-17 21:48:54 +00:00
rts
2021-01-12 21:14:13 +00:00
.5 dec
sta (pStack)
beq .98
ldy #6 hSocket
lda (pStack),y
2021-01-13 16:57:41 +00:00
ldx #LIBTCPIP.Recv
2021-01-17 21:48:54 +00:00
jsr GO.LIBTCPIP
2021-01-12 21:14:13 +00:00
bcc .6
cmp #E.NODATA
bne .99
inc
rts
.6 jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
bne .97
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
ldy #5 hSMBContext
2021-01-17 21:48:54 +00:00
jsr GetSMBContext
2021-01-12 21:14:13 +00:00
ldy #S.NETBIOS+S.SMB.H.UID
lda (ZPRespPtr),y
sta (ZPCtxPtr),y
2021-01-17 21:48:54 +00:00
iny
2021-01-12 21:14:13 +00:00
lda (ZPRespPtr),y
sta (ZPCtxPtr),y
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
.8 lda hResp
2021-01-17 21:48:54 +00:00
>SYSCALL2 FreeMem
2021-01-12 21:14:13 +00:00
clc
>RET 7
.97 lda hResp
2021-01-17 21:48:54 +00:00
>SYSCALL2 FreeMem
2021-01-12 21:14:13 +00:00
.98 lda #MLI.E.IO
2021-01-13 16:57:41 +00:00
sec
2021-01-17 21:48:54 +00:00
.99 >RET 7
2021-01-12 21:14:13 +00:00
*--------------------------------------
* >PUSHB hSocket
* >PUSHB hSMBContext
2021-01-14 21:39:36 +00:00
* >PUSHW pathname
2021-01-17 21:48:54 +00:00
* >PUSHBI 0
2021-01-12 21:14:13 +00:00
* >LIBCALL TreeConnect
* (SMBContext updated with TID)
*--------------------------------------
CIFS.TreeConnect
lda (pStack)
2021-01-17 21:48:54 +00:00
bne .5
2021-01-12 21:14:13 +00:00
2021-01-17 21:48:54 +00:00
dec
2021-01-12 21:14:13 +00:00
sta (pStack)
2021-01-14 21:39:36 +00:00
ldy #1 pathname
lda (pStack),y
sta ZPPtr1
iny
lda (pStack),y
sta ZPPtr1+1
2021-01-17 21:48:54 +00:00
iny hSMBContext
jsr GetSMBContext
2021-01-12 21:14:13 +00:00
2021-01-17 21:48:54 +00:00
ldx #S.SMB.H.CMD.TREE.CONNECT.ANDX
jsr RequestSetupX
2021-01-12 21:14:13 +00:00
ldx #0
2021-02-17 16:15:43 +00:00
2021-01-17 21:48:54 +00:00
.1 lda SMB.TreeConnect.H,x
2021-01-12 21:14:13 +00:00
sta (ZPReqPtr),y
iny
inx
cpx #SMB.TreeConnect.H.Len
2021-01-17 21:48:54 +00:00
bne .1
2021-01-12 21:14:13 +00:00
phy save Y = LEN
iny
iny
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
lda #0
sta (ZPReqPtr),y PASSWORD = "\0"
iny
2021-01-17 21:48:54 +00:00
.2 lda (ZPPtr1)
2021-01-12 21:14:13 +00:00
inc ZPPtr1
2021-01-17 21:48:54 +00:00
bne .3
2021-01-12 21:14:13 +00:00
inc ZPPtr1+1
2021-01-17 21:48:54 +00:00
.3 sta (ZPReqPtr),y
2021-01-12 21:14:13 +00:00
iny
tax
2021-01-17 21:48:54 +00:00
bne .2
2021-01-12 21:14:13 +00:00
ldx #0
.4 lda SMB.TreeConnect.T,x
sta (ZPReqPtr),y
iny
inx
cpx #SMB.TreeConnect.T.Len
bne .4
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
pla
2021-01-17 21:48:54 +00:00
2021-01-14 21:39:36 +00:00
jsr SetReqLenYAtA
2021-01-12 21:14:13 +00:00
>PUSHYA
>PUSHW ZPReqPtr
ldy #4+4 hSocket
lda (pStack),y
2021-01-13 16:57:41 +00:00
ldx #LIBTCPIP.Send
2021-01-17 21:48:54 +00:00
jsr GO.LIBTCPIP
2021-01-12 21:14:13 +00:00
bcs .99
lda #0
sec
2021-01-17 21:48:54 +00:00
rts
2021-01-12 21:14:13 +00:00
.5 dec
sta (pStack)
beq .98
ldy #4 hSocket
lda (pStack),y
2021-01-13 16:57:41 +00:00
ldx #LIBTCPIP.Recv
2021-01-17 21:48:54 +00:00
jsr GO.LIBTCPIP
2021-01-12 21:14:13 +00:00
bcc .6
cmp #E.NODATA
bne .99
inc
rts
.6 jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
bne .97
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
ldy #3 hSMBContext
2021-01-17 21:48:54 +00:00
jsr GetSMBContext
2021-01-12 21:14:13 +00:00
ldy #S.NETBIOS+S.SMB.H.TID
lda (ZPRespPtr),y
sta (ZPCtxPtr),y
2021-01-17 21:48:54 +00:00
iny
2021-01-12 21:14:13 +00:00
lda (ZPRespPtr),y
sta (ZPCtxPtr),y
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
.8 lda hResp
2021-01-17 21:48:54 +00:00
>SYSCALL2 FreeMem
2021-01-12 21:14:13 +00:00
clc
>RET 5
.97 lda hResp
2021-01-17 21:48:54 +00:00
>SYSCALL2 FreeMem
2021-01-12 21:14:13 +00:00
.98 lda #MLI.E.IO
2021-01-13 16:57:41 +00:00
sec
2021-01-17 21:48:54 +00:00
.99 >RET 5
2021-01-12 21:14:13 +00:00
*--------------------------------------
2021-01-17 21:48:54 +00:00
* >PUSHB hSocket
* >PUSHB hSMBContext
* >PUSHW MountPoint
* >LIBCALL Mount
*--------------------------------------
CIFS.Mount ldy #1
lda (pStack),y MP HI
>PUSHA
lda (pStack),y MP LO
>PUSHA
2021-02-17 16:15:43 +00:00
2021-01-17 21:48:54 +00:00
>PUSHW L.CALLBACK
>SYSCALL2 Mount
bcs .9
2021-02-17 16:15:43 +00:00
2021-01-17 21:48:54 +00:00
pha hMount
2021-02-17 16:15:43 +00:00
2021-01-17 21:48:54 +00:00
ldx #0
.1 >PULLB MountTable,x
inx
cpx #4
bne .1
2021-02-17 16:15:43 +00:00
2021-01-17 21:48:54 +00:00
pla
2021-02-17 16:15:43 +00:00
clc
rts
2021-01-17 21:48:54 +00:00
.9 >RET 4
2021-01-12 21:14:13 +00:00
*--------------------------------------
CIFS.UMount clc
rts
*--------------------------------------
2021-01-24 19:44:43 +00:00
CIFS.CallBack bit CIFS.Status
2021-02-17 16:15:43 +00:00
bpl .1
phy
pha
ldy #S.PS.PID
2021-01-24 19:44:43 +00:00
lda (pPS),y
cmp CIFS.PID
2021-02-17 16:15:43 +00:00
beq .2
2021-01-24 19:44:43 +00:00
2021-02-17 16:15:43 +00:00
pla
ply
lda #0
2021-01-24 19:44:43 +00:00
sec
2021-02-17 16:15:43 +00:00
rts
.1 jmp (J.CIFS,x)
2021-03-11 21:40:55 +00:00
2021-02-17 16:15:43 +00:00
.2 pla
ply
jmp (J.CIFS2,x)
2021-01-12 21:14:13 +00:00
*--------------------------------------
CIFS.ChTyp
2021-01-24 19:44:43 +00:00
CIFS2.ChTyp
2021-01-12 21:14:13 +00:00
*--------------------------------------
CIFS.ChMod
2021-01-24 19:44:43 +00:00
CIFS2.ChMod
*--------------------------------------
2021-02-17 16:15:43 +00:00
CIFS.FStat
2021-01-12 21:14:13 +00:00
*--------------------------------------
2021-01-24 19:44:43 +00:00
CIFS2.FStat lda #MLI.E.BADCALL
sec
rts
2021-01-12 21:14:13 +00:00
*--------------------------------------
2021-02-17 16:15:43 +00:00
CIFS.Stat >STYA pPath resolved path
2021-02-11 22:08:22 +00:00
jsr MakeTrans2Reg
2021-01-24 19:44:43 +00:00
ldx #0
2021-02-17 16:15:43 +00:00
.1 lda SMB.QueryPathInfo,x
2021-01-24 19:44:43 +00:00
sta (ZPReqPtr),y
iny
inx
cpx #SMB.QueryPathInfo.Len
2021-02-17 16:15:43 +00:00
bne .1
2021-01-24 19:44:43 +00:00
2021-02-17 16:15:43 +00:00
jsr AppendPath
2021-01-24 19:44:43 +00:00
2021-02-17 16:15:43 +00:00
lda #0
sta (ZPReqPtr),y
2021-01-24 19:44:43 +00:00
iny
jsr SetT2ReqLenYA
>PUSHYA
>PUSHW ZPReqPtr
lda MountTable+3 hSocket
ldx #LIBTCPIP.Send
jsr GO.LIBTCPIP
bcs .9
2021-03-11 21:40:55 +00:00
jmp Sleep
2021-01-24 19:44:43 +00:00
.9 >RET 4
*--------------------------------------
CIFS2.Stat lda MountTable+3 hSocket
ldx #LIBTCPIP.Recv
jsr GO.LIBTCPIP
bcs .9
2021-02-17 16:15:43 +00:00
2021-01-24 19:44:43 +00:00
jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
beq .1
2021-02-17 16:15:43 +00:00
2021-01-24 19:44:43 +00:00
lda #MLI.E.FNOTFND
bra .99
2021-01-17 21:48:54 +00:00
2021-02-17 16:15:43 +00:00
.1 >PULLW ZPPtr2 Stat Buffer
inc pStack Skip Filename
2021-01-24 19:44:43 +00:00
inc pStack
2021-02-17 16:15:43 +00:00
jsr GetRespDataOffset
jsr FileInfo2StatBuf
jsr StatBuf2Ptr2
2021-03-11 21:40:55 +00:00
lda hResp
>SYSCALL2 FreeMem
2021-01-24 19:44:43 +00:00
stz CIFS.Status
clc
rts
.9 cmp #E.NODATA
bne .99
2021-01-12 21:14:13 +00:00
2021-01-24 19:44:43 +00:00
dec CIFS.Retries
beq .90
2021-02-17 16:15:43 +00:00
2021-01-24 19:44:43 +00:00
lda #0
2021-01-12 21:14:13 +00:00
sec
rts
2021-02-17 16:15:43 +00:00
2021-01-24 19:44:43 +00:00
.90 lda #MLI.E.IO
2021-03-11 21:40:55 +00:00
2021-01-24 19:44:43 +00:00
.99 sec
stz CIFS.Status
2021-02-17 16:15:43 +00:00
>RET 4
2021-01-12 21:14:13 +00:00
*--------------------------------------
2021-02-17 16:15:43 +00:00
CIFS.MKDir >STYA pPath resolved path
jsr MakeTrans2Reg
ldx #0
.1 lda SMB.CreateDirectory,x
sta (ZPReqPtr),y
iny
inx
cpx #SMB.CreateDirectory.Len
bne .1
jsr AppendPath
lda #0
sta (ZPReqPtr),y
iny
jsr SetT2ReqLenYA
>PUSHYA
>PUSHW ZPReqPtr
lda MountTable+3 hSocket
ldx #LIBTCPIP.Send
jsr GO.LIBTCPIP
bcs .9
2021-03-11 21:40:55 +00:00
jmp Sleep
2021-02-17 16:15:43 +00:00
.9 >RET 4
*--------------------------------------
CIFS2.MKDir lda MountTable+3 hSocket
ldx #LIBTCPIP.Recv
jsr GO.LIBTCPIP
bcs .9
jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
2021-03-11 21:40:55 +00:00
clc
beq .8
2021-02-17 16:15:43 +00:00
lda #MLI.E.DUPFILE
2021-03-11 21:40:55 +00:00
sec
.8 jsr FreeRespData
2021-02-17 16:15:43 +00:00
2021-03-11 21:40:55 +00:00
stz CIFS.Status
2021-02-17 16:15:43 +00:00
>RET 4
.9 cmp #E.NODATA
bne .99
dec CIFS.Retries
2021-03-11 21:40:55 +00:00
beq .98
2021-02-17 16:15:43 +00:00
lda #0
sec
rts
2021-03-11 21:40:55 +00:00
.98 lda #MLI.E.IO
2021-02-17 16:15:43 +00:00
.99 sec
stz CIFS.Status
>RET 4
2021-01-12 21:14:13 +00:00
*--------------------------------------
CIFS.MKNod
2021-01-24 19:44:43 +00:00
CIFS2.MKNod
2021-01-12 21:14:13 +00:00
*--------------------------------------
CIFS.MKFIFO
2021-01-24 19:44:43 +00:00
CIFS2.MKFIFO
2021-01-12 21:14:13 +00:00
*--------------------------------------
2021-01-24 19:44:43 +00:00
CIFS.Pipe
CIFS2.Pipe lda #MLI.E.BADCALL
2021-01-12 21:14:13 +00:00
sec
rts
*--------------------------------------
2021-02-17 16:15:43 +00:00
CIFS.OpenDir >STYA pPath resolved path
2021-01-24 19:44:43 +00:00
>LDYAI S.FD.DIR
>SYSCALL2 GetMem
bcs .9
2021-02-17 16:15:43 +00:00
2021-01-24 19:44:43 +00:00
>STYA ZPPtr2
2021-02-17 16:15:43 +00:00
2021-01-24 19:44:43 +00:00
lda #S.FD.T.DIR
sta (ZPPtr2)
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
lda hHandler
ldy #S.FD.HANDLER
sta (ZPPtr2),y
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
lda #0
2021-02-17 16:15:43 +00:00
ldy #S.FD.DIR.EPB
sta (ZPPtr2),y EOF Flag
iny
2021-02-11 22:08:22 +00:00
sta (ZPPtr2),y
iny
sta (ZPPtr2),y
2021-02-17 16:15:43 +00:00
>PUSHW pPath
2021-01-24 19:44:43 +00:00
>PUSHWI 0
txa
>PUSHA
>SYSCALL2 mknod
2021-02-17 16:15:43 +00:00
.9 rts
*--------------------------------------
2021-01-24 19:44:43 +00:00
CIFS2.OpenDir lda #MLI.E.BADCALL
2021-01-12 21:14:13 +00:00
sec
rts
*--------------------------------------
2021-02-11 22:08:22 +00:00
CIFS.ReadDir jsr GetPFD
2021-02-17 16:15:43 +00:00
ldy #S.FD.DIR.EPB
lda (pFD),y
beq .1
lda #MLI.E.EOF
sec
rts
.1 iny
lda (pFD),y
2021-02-11 22:08:22 +00:00
iny
2021-02-17 16:15:43 +00:00
ora (pFD),y
2021-02-11 22:08:22 +00:00
bne CIFS.ReadDir.Next
jsr MakeTrans2Reg
ldx #0
2021-02-17 16:15:43 +00:00
2021-02-20 10:18:02 +00:00
.2 lda SMB.FindFirst2,x
2021-02-11 22:08:22 +00:00
sta (ZPReqPtr),y
iny
inx
2021-02-20 10:18:02 +00:00
cpx #SMB.FindFirst2.Len
2021-02-11 22:08:22 +00:00
bne .2
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
bra CIFS.ReadDir.Send
2021-02-17 16:15:43 +00:00
CIFS.ReadDir.Next
2021-02-11 22:08:22 +00:00
jsr MakeTrans2Reg
ldx #0
2021-02-17 16:15:43 +00:00
2021-02-20 10:18:02 +00:00
.2 lda SMB.FindNext2,x
2021-02-11 22:08:22 +00:00
sta (ZPReqPtr),y
iny
inx
2021-02-20 10:18:02 +00:00
cpx #SMB.FindNext2.Len
2021-02-11 22:08:22 +00:00
bne .2
phy
ldy #S.FD.DIR.FC+1
2021-02-17 16:15:43 +00:00
lda (pFD),y
2021-02-11 22:08:22 +00:00
tax
dey
2021-02-17 16:15:43 +00:00
lda (pFD),y
ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+7 Search ID
sta (ZPReqPtr),y
2021-02-11 22:08:22 +00:00
txa
iny
2021-02-17 16:15:43 +00:00
sta (ZPReqPtr),y
2021-02-11 22:08:22 +00:00
ply
2021-02-17 16:15:43 +00:00
CIFS.ReadDir.Send
lda (pPath)
beq .1
jsr AppendPath
lda #'\'
sta (ZPReqPtr),y
iny
.1 lda #'*'
sta (ZPReqPtr),y
iny
lda #0
sta (ZPReqPtr),y
iny
2021-02-11 22:08:22 +00:00
jsr SetT2ReqLenYA
>PUSHYA
>PUSHW ZPReqPtr
lda MountTable+3 hSocket
ldx #LIBTCPIP.Send
jsr GO.LIBTCPIP
2021-02-17 16:15:43 +00:00
bcs .9
2021-02-11 22:08:22 +00:00
2021-03-11 21:40:55 +00:00
jmp Sleep
2021-02-11 22:08:22 +00:00
.9 rts
*--------------------------------------
2021-02-17 16:15:43 +00:00
CIFS2.ReadDir jsr GetPFD
lda MountTable+3 hSocket
2021-02-11 22:08:22 +00:00
ldx #LIBTCPIP.Recv
jsr GO.LIBTCPIP
2021-03-11 21:40:55 +00:00
bcs .90
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y
2021-03-11 21:40:55 +00:00
beq .1
2021-02-11 22:08:22 +00:00
2021-03-11 21:40:55 +00:00
.91 sec
lda #MLI.E.IO
bra .9
.1 ldy #S.FD.DIR.FC
2021-02-17 16:15:43 +00:00
lda (pFD),y
iny
ora (pFD),y
sta bFlag
2021-03-11 21:40:55 +00:00
bne .2
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
ldy #S.NETBIOS+S.SMB.H+S.TRANS2.H+1 Search ID
lda (ZPRespPtr),y
tax
dey
2021-03-11 21:40:55 +00:00
ora (ZPRespPtr),y
beq .91
2021-02-17 16:15:43 +00:00
2021-03-11 21:40:55 +00:00
lda (ZPRespPtr),y
2021-02-11 22:08:22 +00:00
ldy #S.FD.DIR.FC
2021-02-17 16:15:43 +00:00
sta (pFD),y
2021-02-11 22:08:22 +00:00
iny
txa
2021-02-17 16:15:43 +00:00
sta (pFD),y
2021-02-11 22:08:22 +00:00
2021-03-11 21:40:55 +00:00
.2 jsr GetRespDataOffset
2021-02-11 22:08:22 +00:00
jsr CIFS2.ReadDir.GetBuf
2021-03-11 21:40:55 +00:00
bcs .9
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
jsr GetRespDataOffset
jsr CIFS2.ReadDir.FillBuf
2021-02-17 16:15:43 +00:00
2021-03-11 21:40:55 +00:00
lda hResp
>SYSCALL2 FreeMem
2021-02-11 22:08:22 +00:00
>LDYA BufPtr
ldx hBuf
2021-03-11 21:40:55 +00:00
2021-02-11 22:08:22 +00:00
stz CIFS.Status
clc
rts
2021-03-11 21:40:55 +00:00
.9 stz CIFS.Status
jmp FreeRespData
2021-02-11 22:08:22 +00:00
2021-03-11 21:40:55 +00:00
.90 cmp #E.NODATA
2021-02-11 22:08:22 +00:00
bne .99
dec CIFS.Retries
2021-03-11 21:40:55 +00:00
beq .98
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
lda #0
2021-01-12 21:14:13 +00:00
sec
rts
2021-02-17 16:15:43 +00:00
2021-03-11 21:40:55 +00:00
.98 lda #MLI.E.IO
2021-02-11 22:08:22 +00:00
.99 stz CIFS.Status
sec
2021-02-17 16:15:43 +00:00
rts
2021-01-12 21:14:13 +00:00
*--------------------------------------
2021-02-11 22:08:22 +00:00
CIFS2.ReadDir.GetBuf
2021-02-17 16:15:43 +00:00
ldy #S.NETBIOS+S.SMB.H+S.TRANS2.H Search Count
lda bFlag
bne .10
iny
iny
.10 iny
iny
lda (ZPRespPtr),y End Of Search
phy
ldy #S.FD.DIR.EPB
sta (pFD),y
ply
dey
dey
lda (ZPRespPtr),y Search Count
beq .99
tax
2021-02-11 22:08:22 +00:00
lda #1 +Ending 0
sta ZPPtr2
stz ZPPtr2+1
.1 lda ZPPtr2
clc
adc #S.STAT
sta ZPPtr2
bcc .2
inc ZPPtr2+1
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
.2 lda ZPPtr1
clc
adc #22
sta ZPPtr1
bcc .3
inc ZPPtr1+1
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
.3 lda (ZPPtr1) Filename Len
pha
sec
adc ZPPtr2
sta ZPPtr2
bcc .4
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
inc ZPPtr2+1
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
.4 pla
inc
sec
adc ZPPtr1
sta ZPPtr1
bcc .5
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
inc ZPPtr1+1
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
.5 dex
bne .1
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
>LDYA ZPPtr2
>SYSCALL2 GetMem
bcs .9
>STYA BufPtr
>STYA ZPPtr2
stx hBuf
.9 rts
2021-02-17 16:15:43 +00:00
.99 lda #MLI.E.EOF
sec
rts
2021-02-11 22:08:22 +00:00
*--------------------------------------
CIFS2.ReadDir.FillBuf
2021-02-17 16:15:43 +00:00
ldy #S.NETBIOS+S.SMB.H+S.TRANS2.H Search Count
lda bFlag
bne .10
iny
iny
.10 lda (ZPRespPtr),y
2021-02-11 22:08:22 +00:00
tax
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
.1 jsr FileInfo2StatBuf
lda ZPPtr1
sec skip Filename Len
adc #22
sta ZPPtr1
bcc .2
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
inc ZPPtr1+1
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
.2 ldy #$ff
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
.3 iny
lda (ZPPtr1),y
sta (ZPPtr2),y
bne .3
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
tya
sec
adc ZPPtr1
sta ZPPtr1
bcc .4
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
inc ZPPtr1+1
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
.4 tya
sec
adc ZPPtr2
sta ZPPtr2
bcc .5
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
inc ZPPtr2+1
2021-02-17 16:15:43 +00:00
.5 jsr StatBuf2Ptr2
2021-02-11 22:08:22 +00:00
lda #S.STAT
clc
adc ZPPtr2
sta ZPPtr2
bcc .7
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
inc ZPPtr2+1
.7 dex
bne .1
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
lda #0
sta (ZPPtr2)
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
rts
*--------------------------------------
2021-02-17 16:15:43 +00:00
CIFS.CloseDir tax
lda Nod.Table.hName-2,x
beq .1
phx
stz Nod.Table.hName-2,x
>SYSCALL2 FreeMem
2021-02-11 22:08:22 +00:00
2021-02-17 16:15:43 +00:00
plx
.1 lda Nod.Table.hFD-2,x
stz Nod.Table.hFD-2,x
>SYSCALL2 FreeMem
stz CIFS.Status
clc
rts
*--------------------------------------
2021-02-11 22:08:22 +00:00
CIFS2.CloseDir lda #MLI.E.INVPATH
sec
rts
2021-01-12 21:14:13 +00:00
*--------------------------------------
CIFS.Open
2021-01-24 19:44:43 +00:00
CIFS2.Open
2021-01-12 21:14:13 +00:00
*--------------------------------------
2021-02-17 16:15:43 +00:00
CIFS.Close
2021-01-24 19:44:43 +00:00
CIFS2.Close
2021-02-11 22:08:22 +00:00
lda #MLI.E.INVPATH
sec
rts
2021-01-12 21:14:13 +00:00
*--------------------------------------
CIFS.Read
2021-01-24 19:44:43 +00:00
CIFS2.Read
2021-01-12 21:14:13 +00:00
*--------------------------------------
CIFS.Write
2021-01-24 19:44:43 +00:00
CIFS2.Write
2021-01-12 21:14:13 +00:00
*--------------------------------------
CIFS.ChOwn
2021-01-24 19:44:43 +00:00
CIFS2.ChOwn
2021-01-12 21:14:13 +00:00
lda #MLI.E.BADCALL
sec
rts
*--------------------------------------
2021-02-17 16:15:43 +00:00
GetPFD tax
phx
lda Nod.Table.hName-2,x
>SYSCALL2 GetMemPtr
>STYA pPath
plx
lda Nod.Table.hFD-2,x
>SYSCALL2 GetMemPtr
>STYA pFD
rts
*--------------------------------------
2021-02-11 22:08:22 +00:00
MakeTrans2Reg lda MountTable+2
>SYSCALL2 GetMemPtr
>STYA ZPCtxPtr
ldx #S.SMB.H.CMD.TRANS2
jsr RequestSetupX
ldx #0
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
.1 lda SMB.Trans2.H,x
sta (ZPReqPtr),y
iny
inx
cpx #SMB.Trans2.H.Len
bne .1
rts
*--------------------------------------
2021-01-17 21:48:54 +00:00
GetSMBContext lda (pStack),y
>SYSCALL2 GetMemPtr
2021-01-12 21:14:13 +00:00
>STYA ZPCtxPtr
rts
*--------------------------------------
2021-01-17 21:48:54 +00:00
RequestSetupX phx
lda hReq
>SYSCALL2 GetMemPtr
>STYA ZPReqPtr
plx
ldy #0
.1 lda (ZPCtxPtr),y
cpy #S.NETBIOS+S.SMB.H.CMD
bne .2
txa
.2 sta (ZPReqPtr),y
iny
cpy #S.NETBIOS+S.SMB.H
bne .1
rts
*--------------------------------------
2021-02-17 16:15:43 +00:00
AppendPath ldx #0
.1 lda (pPath)
beq .4
inc pPath
bne .2
inc pPath+1
.2 cmp #'/'
bne .3
lda #'\'
.3 sta (ZPReqPtr),y
tax
iny
bra .1
.4 cpx #'\'
bne .5
dey
.5 rts
*--------------------------------------
2021-01-12 21:14:13 +00:00
* Y = LEN from S.NETBIOS.TYPE
* A = Ptr to LEN Word
*--------------------------------------
2021-01-14 21:39:36 +00:00
SetReqLenYAtA sty ZPReqLen
2021-01-12 21:14:13 +00:00
stz ZPReqLen+1
2021-01-17 21:48:54 +00:00
2021-01-14 21:39:36 +00:00
sta ZPPtr1
2021-01-12 21:14:13 +00:00
pha
2021-01-17 21:48:54 +00:00
2021-01-12 21:14:13 +00:00
tya
dec
dec
2021-01-14 21:39:36 +00:00
sec
sbc ZPPtr1
2021-01-12 21:14:13 +00:00
ply
2021-01-14 21:39:36 +00:00
2021-01-12 21:14:13 +00:00
sta (ZPReqPtr),y
iny
lda #0
sta (ZPReqPtr),y
2021-01-24 19:44:43 +00:00
bra SetReqLenNETBIOS
*--------------------------------------
SetT2ReqLenYA sty ZPReqLen
stz ZPReqLen+1
2021-02-17 16:15:43 +00:00
2021-01-24 19:44:43 +00:00
tya
sec
sbc #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+7
ldy #S.NETBIOS+S.SMB.H+1
sta (ZPReqPtr),y
ldy #S.NETBIOS+S.SMB.H+19
sta (ZPReqPtr),y
2021-02-17 16:15:43 +00:00
2021-01-24 19:44:43 +00:00
inc
inc
inc
2021-02-17 16:15:43 +00:00
2021-01-24 19:44:43 +00:00
ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+2
sta (ZPReqPtr),y
2021-01-17 21:48:54 +00:00
2021-01-24 19:44:43 +00:00
SetReqLenNETBIOS
2021-01-12 21:14:13 +00:00
lda ZPReqLen
sec
sbc #S.NETBIOS
ldy #S.NETBIOS.LEN+2
sta (ZPReqPtr),y
lda ZPReqLen+1
sec
2021-01-17 21:48:54 +00:00
sbc /S.NETBIOS
2021-01-12 21:14:13 +00:00
dey
sta (ZPReqPtr),y
2021-01-17 21:48:54 +00:00
2021-01-14 21:39:36 +00:00
>LDYA ZPReqLen
2021-01-12 21:14:13 +00:00
rts
*--------------------------------------
2021-03-11 21:40:55 +00:00
Sleep ldy #S.PS.PID
lda (pPS),y
sta CIFS.PID
dec CIFS.Status
stz CIFS.Retries
lda #0
sec
rts
*--------------------------------------
2021-01-12 21:14:13 +00:00
GetRespData sta hResp
2021-01-17 21:48:54 +00:00
>SYSCALL2 GetMemPtr
2021-01-12 21:14:13 +00:00
pha
tya
* clc
adc #S.TCP
sta ZPRespPtr
pla
adc /S.TCP
sta ZPRespPtr+1
rts
*--------------------------------------
2021-02-11 22:08:22 +00:00
GetRespDataOffset
ldy #S.NETBIOS+S.SMB.H+15 Data Offset
lda (ZPRespPtr),y
clc
adc ZPRespPtr
tax
iny
lda (ZPRespPtr),y
adc ZPRespPtr+1
pha
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
txa
clc
adc #S.NETBIOS
sta ZPPtr1
2021-02-17 16:15:43 +00:00
2021-02-11 22:08:22 +00:00
pla
adc /S.NETBIOS
sta ZPPtr1+1
2021-02-17 16:15:43 +00:00
2021-03-11 21:40:55 +00:00
rts
*--------------------------------------
FreeRespData php
pha
lda hResp
>SYSCALL2 FreeMem
pla
plp
2021-02-11 22:08:22 +00:00
rts
2021-01-12 21:14:13 +00:00
*--------------------------------------
2021-02-11 22:08:22 +00:00
FileInfo2StatBuf
phx
ldx #S.STAT-1
.1 stz StatBuf,x
dex
bpl .1
2021-02-17 16:15:43 +00:00
ldy #0 Creation Date/Time
ldx #S.STAT.CTIME
jsr FileInfo2StatBufDT
ldy #4 Last Access Date/Time
ldx #S.STAT.ATIME
jsr FileInfo2StatBufDT
ldy #8 Last Write Date/Time
ldx #S.STAT.MTIME
jsr FileInfo2StatBufDT
ldy #12+3 Data Size
2021-02-11 22:08:22 +00:00
ldx #3
2021-02-17 16:15:43 +00:00
.7 lda (ZPPtr1),y
2021-02-11 22:08:22 +00:00
sta StatBuf+S.STAT.SIZE,x
dey
dex
2021-02-17 16:15:43 +00:00
bpl .7
ldy #20 File Attribute
lda (ZPPtr1),y
and #$10
beq .8
lda /S.STAT.MODE.DIR
sta StatBuf+S.STAT.MODE+1
2021-02-11 22:08:22 +00:00
.8 plx
2021-02-17 16:15:43 +00:00
rts
2021-01-12 21:14:13 +00:00
*--------------------------------------
2021-02-17 16:15:43 +00:00
* YYYYYYYM MMM DDDDD
* HHHHHmmm mmm SSSSS
*--------------------------------------
FileInfo2StatBufDT
iny
lda (ZPPtr1),y
2021-02-11 22:08:22 +00:00
lsr
2021-02-17 16:15:43 +00:00
php
clc
adc #80
sta StatBuf+S.TIME.YEAR,x
lda #19
adc #0
sta StatBuf+S.TIME.CENTURY,x
dey
plp
lda (ZPPtr1),y
ror
lsr
lsr
lsr
lsr
sta StatBuf+S.TIME.MONTH,x
lda (ZPPtr1),y
and #$1F
sta StatBuf+S.TIME.DAY,x
iny
iny
lda (ZPPtr1),y
and #$1F
asl
sta StatBuf+S.TIME.SECOND,x
lda (ZPPtr1),y
and #$E0
sta StatBuf+S.TIME.MINUTE,x
lda (ZPPtr1),y
lsr
ror StatBuf+S.TIME.MINUTE,x
lsr
ror StatBuf+S.TIME.MINUTE,x
lsr
ror StatBuf+S.TIME.MINUTE,x
lsr StatBuf+S.TIME.MINUTE,x
lsr StatBuf+S.TIME.MINUTE,x
sta StatBuf+S.TIME.HOUR,x
2021-02-11 22:08:22 +00:00
rts
2021-02-17 16:15:43 +00:00
* TODO : S.TIME.WDAY
*--------------------------------------
StatBuf2Ptr2 ldy #S.STAT-1
.1 lda StatBuf,y
sta (ZPPtr2),y
dey
bpl .1
rts
*--------------------------------------
2021-02-11 22:08:22 +00:00
GO.LIBTCPIP jmp (pLIBTCPIP)
2021-01-24 19:44:43 +00:00
*--------------------------------------
2021-02-11 22:08:22 +00:00
CS.END
2021-01-17 21:48:54 +00:00
*--------------------------------------
2021-02-11 22:08:22 +00:00
NETBIOS .DA #0 DIRECT TCP TRANSPORT
2021-01-12 21:14:13 +00:00
.DA #0 24 BITS LENGTH
.DA /SMB.NegReq.end-SMB.H
.DA #SMB.NegReq.end-SMB.H
*--------------------------------------
SMB.H .DA #$FF
.AS "SMB"
.DA #S.SMB.H.CMD.NEGOTIATE
.HS 00000000
.DA #0 S.SMB.H.FLAGS
.DA S.SMB.H.FLAGS2.LONGNAMES
.DA 0 PIDHI
.HS 0000000000000000 SECFEAT
.DA 0 RSVD
.DA $FFFF TID
.DA $FFFE PIDLO
.BS 2 UID
.DA 0 MID
*--------------------------------------
SMB.NegReq .DA #0 WORD COUNT
.DA #SMB.NegReq.end-2-* ByteCount
.DA #0
* .DA #2
* .AZ "PC NETWORK PROGRAM 1.0"
* .DA #2
* .AZ "LANMAN1.0"
* .DA #2
* .AZ "Windows for Workgroups 3.1a"
* .DA #2
* .AZ "LM1.2X002"
* .DA #2
* .AZ "LANMAN2.1"
.DA #2
.AZ "NT LM 0.12"
* .DA #2
* .AZ "SMB 2.002"
* .DA #2
* .AZ "SMB 2.???"
SMB.NegReq.end .EQ *
*--------------------------------------
SMB.SessionSetup.H
.DA #13 WORD COUNT
.HS FF000000 NO MORE CMD
.DA 1280 MAX BUFFER
.DA 2 MAX MPX COUNT
.HS 0000 VC NUMBER
.HS 00000000 SESSION KEY
2021-01-14 21:39:36 +00:00
.DA 0 CI PASS LEN (ANSI)
.DA 0 CS PASS LEN (UNICODE)
2021-01-12 21:14:13 +00:00
.HS 00000000
.HS 00000000 CAPABILITIES
SMB.SessionSetup.H.Len .EQ *-SMB.SessionSetup.H
* .BS 2 ByteCount
SMB.SessionSetup.Guest
2021-01-14 21:39:36 +00:00
* .AZ "" Password
2021-01-12 21:14:13 +00:00
.AZ "Guest" Account Name
.AZ "?" Primary Domain
SMB.SessionSetup.Guest.Len .EQ *-SMB.SessionSetup.Guest
SMB.SessionSetup.T
.AZ "A2osX" Native OS
.AZ "A2osX-CIFSD" Native LANMAN
SMB.SessionSetup.T.Len .EQ *-SMB.SessionSetup.T
*--------------------------------------
SMB.TreeConnect.H
.DA #4 WORD COUNT
.HS FF000000 NO MORE CMD
.DA 0
.DA 1 PASSWORD LEN (1 for "\0")
SMB.TreeConnect.H.Len .EQ *-SMB.TreeConnect.H
* .BS 2 ByteCount
* .AZ "" PASSWORD
* .AZ "_temp" PATH
SMB.TreeConnect.T
.AZ "A:" Disk Share
SMB.TreeConnect.T.Len .EQ *-SMB.TreeConnect.T
2021-02-20 10:18:02 +00:00
*-------------------------------------- #$2E
SMB.ComRead.H .DA #10 WORD COUNT
.HS FF000000 NO MORE CMD
.BS 2 FID
.BS 4 Offset
.BS 2 MaxCountOfBytesToReturn
.HS 0000 MinCountOfBytesToReturn
.HS 00000000 Timeout
.HS 0000 Remaining
.HS 0000 ByteCount
SMB.ComRead.H.Len .EQ *-SMB.ComRead.H
*-------------------------------------- #$2F
SMB.ComWrite.H .DA #12 WORD COUNT
.HS FF000000 NO MORE CMD
.BS 2 FID
.BS 4 Offset
.HS 00000000 Timeout
2021-03-11 21:40:55 +00:00
.HS 0001 WriteMode=WritethroughMode
2021-02-20 10:18:02 +00:00
.BS 2 Remaining
.HS 0000 Reserved
.BS 2 DataLength
.BS 2 DataOffset
SMB.ComWrite.H.Len .EQ *-SMB.ComWrite.H
.BS 2 ByteCount
SMB.ComWrite.T
* DATA.....
SMB.ComWrite.T.Len .EQ *-SMB.ComWrite.T
*-------------------------------------- #$04
SMB.ComClose.H .DA #3 WORD COUNT
.BS 2 FID
.HS 00000000 LastTimeModified
.HS 0000 ByteCount
SMB.ComClose.H.Len .EQ *-SMB.ComClose.H
2021-01-12 21:14:13 +00:00
*--------------------------------------
2021-01-24 19:44:43 +00:00
SMB.Trans2.H .DA #15 WORD COUNT
.BS 2 TotalParamCount
2021-01-12 21:14:13 +00:00
.DA 0 TotalDataCount
2021-02-11 22:08:22 +00:00
.DA 10 MaxParameterCount
2021-03-11 21:40:55 +00:00
.DA 450 MaxDataCount
2021-01-24 19:44:43 +00:00
.DA #0 MaxSetupCount
2021-01-12 21:14:13 +00:00
.HS 00 Reserved1
.DA 0 Flags
.HS 00000000 Timeout
.HS 0000 Reserved2
2021-01-24 19:44:43 +00:00
.BS 2 ParameterCount
.DA 68 ParameterOffset
2021-01-12 21:14:13 +00:00
.HS 0000 DataCount
.HS 0000 DataOffset
.DA #1 SetupCount
.HS 00 Reserved3
2021-02-17 16:15:43 +00:00
SMB.Trans2.H.Len .EQ *-SMB.Trans2.H
2021-01-12 21:14:13 +00:00
*--------------------------------------
2021-02-17 16:15:43 +00:00
SMB.Open2 .DA 0 TRANS2_OPEN2
2021-02-20 10:18:02 +00:00
.BS 2 PrmCnt
.HS 000000 Padding
.HS 0000 Flags
.BS 2 Access Mode
.HS 0000 Reserved1
.BS 2 FileAttributes
.HS 00000000 CreationTime
.BS 2 OpenMode
.HS 00000000 AllocationSize
.HS 00000000000000000000 Reserved
* .AZ "filename"
2021-02-17 16:15:43 +00:00
SMB.Open2.Len .EQ *-SMB.Open2
2021-01-12 21:14:13 +00:00
*--------------------------------------
2021-02-20 10:18:02 +00:00
SMB.FindFirst2 .DA 1 TRANS2_FIND_FIRST2
2021-01-24 19:44:43 +00:00
.BS 2 PrmCnt
2021-02-11 22:08:22 +00:00
.HS 000000 Padding
.DA $0037 SearchAttributes
2021-01-12 21:14:13 +00:00
.DA 1024 SearchCount
2021-01-24 19:44:43 +00:00
.DA 2 Flags
.DA SMB_INFO_STANDARD InformationLevel
2021-02-11 22:08:22 +00:00
.HS 00000000 SearchStorageType
2021-02-20 10:18:02 +00:00
* .AZ "path\*"
SMB.FindFirst2.Len .EQ *-SMB.FindFirst2
2021-01-24 19:44:43 +00:00
*--------------------------------------
2021-02-20 10:18:02 +00:00
SMB.FindNext2 .DA 2 TRANS2_FIND_NEXT2
2021-01-24 19:44:43 +00:00
.BS 2 PrmCnt
2021-02-11 22:08:22 +00:00
.HS 000000 Padding
2021-01-24 19:44:43 +00:00
.BS 2 SID
.DA 1024 SearchCount
.DA SMB_INFO_STANDARD InformationLevel
2021-02-17 16:15:43 +00:00
.HS 00000000 ResumeKey
.DA 2+8 Flags
2021-02-20 10:18:02 +00:00
* .AZ "path\*"
SMB.FindNext2.Len .EQ *-SMB.FindNext2
2021-02-11 22:08:22 +00:00
*--------------------------------------
2021-02-17 16:15:43 +00:00
SMB.QueryPathInfo
.DA 5 TRANS2_QUERY_PATH_INFORMATION
.BS 2 PrmCnt
.HS 000000 Padding
.DA SMB_INFO_STANDARD InformationLevel
.HS 00000000 SearchStorageType
2021-02-20 10:18:02 +00:00
* .AZ "filename"
2021-02-17 16:15:43 +00:00
SMB.QueryPathInfo.Len .EQ *-SMB.QueryPathInfo
*--------------------------------------
SMB.CreateDirectory
.DA 13 TRANS2_CREATE_DIRECTORY
.BS 2 PrmCnt
.HS 000000 Padding
.HS 00000000 Reserved
* .AZ "DirName"
SMB.CreateDirectory.Len .EQ *-SMB.CreateDirectory
*--------------------------------------
2021-02-11 22:08:22 +00:00
LIBTCPIP .AZ "libtcpip"
hLIBTCPIP .BS 1
pLIBTCPIP .BS 2
hSocket .BS 1
hReq .BS 1
*--------------------------------------
CIFS.Status .BS 1
CIFS.PID .BS 1
CIFS.Retries .BS 1
*--------------------------------------
MountTable .BS 2 pMountPoint
.BS 1 hSMBContext
.BS 1 hSocket
*--------------------------------------
StatBuf .BS S.STAT
2021-01-12 21:14:13 +00:00
*--------------------------------------
MAN
SAVE usr/src/lib/libcifs.s
ASM