mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-09 02:30:35 +00:00
Kernel 0.94+
This commit is contained in:
parent
9869d45149
commit
5939ec4615
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -28,8 +28,8 @@ CS.START cld
|
||||
.DA 0
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #64 SS
|
||||
.DA #4 ZP
|
||||
.DA #64 Stack Size
|
||||
.DA #ZS.END-ZS.START Zero Page Size
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Relocation Table
|
||||
|
@ -30,9 +30,10 @@ CS.START cld
|
||||
.DA #$61 6502,Level 1 (65c02)
|
||||
.DA #1 BIN Layout Version 1
|
||||
.DA 0
|
||||
.DA CS.END-CS.START Code Length To Relocate
|
||||
.DA 0 Data Segment to Allocate
|
||||
.DA 0
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #64 Stack Size
|
||||
.DA #ZS.END-ZS.START Zero Page Size
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Relocation Table
|
||||
@ -264,9 +265,9 @@ CS.QUIT lda hReplyBuf
|
||||
CS.END
|
||||
MSG.NOATK .AZ "AppleTalk Not Loaded."
|
||||
MSG.ATKERR .AZ "AppleTalk Call %h, ERR:%H\r\n"
|
||||
MSG.GETINFO .AS "Network/Node:$%h%h/$%h\r\n"
|
||||
.AS "Bridge : $%h\r\n"
|
||||
.AZ "HWID/ROMVER :$%h%h/$%h\r\n"
|
||||
MSG.GETINFO .AS "Network/Node:%h%h/%h\r\n"
|
||||
.AS "Bridge : %h\r\n"
|
||||
.AZ "HWID/ROMVER :%h%h/%h\r\n"
|
||||
MSG.USAGE .AZ "Usage : ATLOGON <SERVER> [USER] [PASSWORD]"
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
|
@ -83,11 +83,8 @@ D2MoveHead.SEI ldx Slotn0
|
||||
cmp MoveTo
|
||||
beq .8
|
||||
|
||||
sta IO.D2.Ph0Off,x
|
||||
nop
|
||||
nop
|
||||
sta IO.D2.Ph0Off,y
|
||||
|
||||
sta IO.D2.Ph0Off,x
|
||||
bcs .2
|
||||
|
||||
* Current < Target, must move in
|
||||
@ -136,10 +133,7 @@ D2MoveHead.SEI ldx Slotn0
|
||||
.4 tay
|
||||
|
||||
sta IO.D2.Ph0On,x
|
||||
nop
|
||||
nop
|
||||
sta IO.D2.Ph0On,y
|
||||
|
||||
lda #IO.D2.SeekTimeF
|
||||
jsr D2.Wait100usecA
|
||||
|
||||
@ -147,10 +141,8 @@ D2MoveHead.SEI ldx Slotn0
|
||||
|
||||
.8 jsr D2.Wait25600usec
|
||||
|
||||
sta IO.D2.Ph0Off,x
|
||||
nop
|
||||
nop
|
||||
sta IO.D2.Ph0Off,y
|
||||
sta IO.D2.Ph0Off,x
|
||||
rts
|
||||
*--------------------------------------
|
||||
D2.Wait25600usec
|
||||
@ -512,7 +504,14 @@ D2WriteTrackPtr2
|
||||
|
||||
jsr $200
|
||||
|
||||
bcs .9
|
||||
|
||||
plp
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 plp
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
|
@ -333,9 +333,9 @@ TrkWriter.Start lda IO.D2.ReadProt,x
|
||||
lda (ZPPtr1),y
|
||||
|
||||
iny
|
||||
bne .10 no chance this happens because mem blocks are $FFF0 aligned....
|
||||
|
||||
inc ZPPtr1+1
|
||||
|
||||
* bne .10 no chance this happens because mem blocks are $FFF0 aligned....
|
||||
* inc ZPPtr1+1
|
||||
|
||||
.10 cmp #$80 if CC, it is a sync byte
|
||||
ora #$80 make sure Bit7 high
|
||||
@ -367,6 +367,7 @@ TrkWriter.Start lda IO.D2.ReadProt,x
|
||||
nop (2) Sync 40us byte : add 8 cycles
|
||||
nop (2)
|
||||
nop (2)
|
||||
|
||||
bra .1 (3)
|
||||
|
||||
* 32us Byte,same page : 5+2 (beq failed) +2+2+5+4+2+3 (bne succeeded) + 2 +2 + 3 (bcs succeeded) = 32
|
||||
@ -379,6 +380,7 @@ TrkWriter.Start lda IO.D2.ReadProt,x
|
||||
nop (2) Sync 40us byte : add 8 cycles
|
||||
nop (2)
|
||||
nop (2)
|
||||
|
||||
bra .1 (3)
|
||||
|
||||
.8 pha (3) make sure 32us elapsed before switching to read mode (beq(3)+pha(3)=beq(2)+cmp(2)+ora(2))
|
||||
|
@ -15,13 +15,10 @@ NEW
|
||||
.DUMMY
|
||||
.OR ZPLIB
|
||||
ZS.START
|
||||
hSocket .BS 1
|
||||
hReq .BS 1
|
||||
ZPReqPtr .BS 2
|
||||
ZPReqLen .BS 2
|
||||
ZPCtxPtr .BS 2
|
||||
|
||||
hResp .BS 1
|
||||
ZPRespPtr .BS 2
|
||||
|
||||
ZPPtr1 .BS 2
|
||||
@ -83,10 +80,8 @@ LIB.LOAD >LDYA L.LIBTCPIP
|
||||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
|
||||
>STYA ZPReqPtr
|
||||
stx hReq
|
||||
|
||||
|
||||
* clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
@ -137,7 +132,6 @@ CIFS.Negotiate lda (pStack)
|
||||
|
||||
ldx #LIBTCPIP.Recv
|
||||
jsr GO.LIBTCPIP
|
||||
|
||||
bcc .3
|
||||
|
||||
cmp #E.NODATA
|
||||
@ -153,6 +147,9 @@ CIFS.Negotiate lda (pStack)
|
||||
|
||||
ldy #3
|
||||
lda (ZPRespPtr),y
|
||||
clc
|
||||
adc #4 + NETBIOS header
|
||||
sta ZPPtr1
|
||||
tay
|
||||
lda #0
|
||||
|
||||
@ -161,10 +158,7 @@ CIFS.Negotiate lda (pStack)
|
||||
|
||||
>STYA ZPCtxPtr
|
||||
|
||||
ldy #3
|
||||
lda (ZPRespPtr),y
|
||||
|
||||
tay
|
||||
ldy ZPPtr1
|
||||
|
||||
.4 dey
|
||||
lda (ZPRespPtr),y
|
||||
@ -172,6 +166,9 @@ CIFS.Negotiate lda (pStack)
|
||||
tya
|
||||
bne .4
|
||||
|
||||
ldy #S.NETBIOS+S.SMB.H.FLAGS
|
||||
sta (ZPCtxPtr),y
|
||||
|
||||
phx
|
||||
|
||||
lda hResp
|
||||
@ -187,8 +184,7 @@ CIFS.Negotiate lda (pStack)
|
||||
|
||||
.98 lda #MLI.E.IO
|
||||
|
||||
.99 >POP 2
|
||||
rts
|
||||
.99 >RET 2
|
||||
*--------------------------------------
|
||||
* >PUSHB hSocket
|
||||
* >PUSHB hSMBContext
|
||||
@ -205,10 +201,14 @@ CIFS.SessionSetup
|
||||
|
||||
.10 dec
|
||||
sta (pStack)
|
||||
|
||||
|
||||
ldy #5 hSMBContext
|
||||
jsr GetSMBCtx
|
||||
|
||||
lda hReq
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPReqPtr
|
||||
|
||||
ldx #S.SMB.H.CMD.SESSION.SETUP.ANDX
|
||||
|
||||
ldy #0
|
||||
@ -257,7 +257,7 @@ CIFS.SessionSetup
|
||||
|
||||
pla
|
||||
|
||||
jsr GetReqLenYAtA
|
||||
jsr SetReqLenYAtA
|
||||
|
||||
>PUSHYA
|
||||
>PUSHW ZPReqPtr
|
||||
@ -314,12 +314,11 @@ CIFS.SessionSetup
|
||||
|
||||
.98 lda #MLI.E.IO
|
||||
sec
|
||||
.99 >POP 7
|
||||
rts
|
||||
.99 >RET 7
|
||||
*--------------------------------------
|
||||
* >PUSHB hSocket
|
||||
* >PUSHB hSMBContext
|
||||
* >PUSHW path
|
||||
* >PUSHW pathname
|
||||
* >PUSHB 0
|
||||
* >LIBCALL TreeConnect
|
||||
* (SMBContext updated with TID)
|
||||
@ -335,6 +334,17 @@ CIFS.TreeConnect
|
||||
ldy #3 hSMBContext
|
||||
jsr GetSMBCtx
|
||||
|
||||
lda hReq
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPReqPtr
|
||||
|
||||
ldy #1 pathname
|
||||
lda (pStack),y
|
||||
sta ZPPtr1
|
||||
iny
|
||||
lda (pStack),y
|
||||
sta ZPPtr1+1
|
||||
|
||||
ldx #S.SMB.H.CMD.TREE.CONNECT.ANDX
|
||||
|
||||
ldy #0
|
||||
@ -367,13 +377,6 @@ CIFS.TreeConnect
|
||||
sta (ZPReqPtr),y PASSWORD = "\0"
|
||||
iny
|
||||
|
||||
ldy #1
|
||||
lda (pStack),y
|
||||
sta ZPPtr1
|
||||
iny
|
||||
lda (pStack),y
|
||||
sta ZPPtr1+1
|
||||
|
||||
.3 lda (ZPPtr1)
|
||||
inc ZPPtr1
|
||||
bne .31
|
||||
@ -396,7 +399,7 @@ CIFS.TreeConnect
|
||||
|
||||
pla
|
||||
|
||||
jsr GetReqLenYAtA
|
||||
jsr SetReqLenYAtA
|
||||
|
||||
>PUSHYA
|
||||
>PUSHW ZPReqPtr
|
||||
@ -452,8 +455,7 @@ CIFS.TreeConnect
|
||||
|
||||
.98 lda #MLI.E.IO
|
||||
sec
|
||||
.99 >POP 5
|
||||
rts
|
||||
.99 >RET 5
|
||||
*--------------------------------------
|
||||
CIFS.Mount
|
||||
*--------------------------------------
|
||||
@ -517,16 +519,19 @@ GetSMBCtx lda (pStack),y
|
||||
* Y = LEN from S.NETBIOS.TYPE
|
||||
* A = Ptr to LEN Word
|
||||
*--------------------------------------
|
||||
GetReqLenYAtA sty ZPReqLen
|
||||
SetReqLenYAtA sty ZPReqLen
|
||||
stz ZPReqLen+1
|
||||
|
||||
sta ZPPtr1
|
||||
pha
|
||||
|
||||
tya
|
||||
dec
|
||||
dec
|
||||
sec
|
||||
sbc ZPPtr1
|
||||
ply
|
||||
|
||||
|
||||
sta (ZPReqPtr),y
|
||||
iny
|
||||
lda #0
|
||||
@ -543,14 +548,7 @@ GetReqLenYAtA sty ZPReqLen
|
||||
dey
|
||||
sta (ZPReqPtr),y
|
||||
|
||||
lda ZPReqLen
|
||||
clc
|
||||
adc #S.TCP
|
||||
tay
|
||||
|
||||
lda ZPReqLen+1
|
||||
adc /S.TCP
|
||||
|
||||
>LDYA ZPReqLen
|
||||
rts
|
||||
*--------------------------------------
|
||||
GetRespData sta hResp
|
||||
@ -573,6 +571,9 @@ CS.END
|
||||
LIBTCPIP .AZ "libtcpip"
|
||||
hLIBTCPIP .BS 1
|
||||
aLIBTCPIP .BS 2
|
||||
hSocket .BS 1
|
||||
hReq .BS 1
|
||||
hResp .BS 1
|
||||
*--------------------------------------
|
||||
SMB.TRANSPORT .DA #0 DIRECT TCP TRANSPORT
|
||||
.DA #0 24 BITS LENGTH
|
||||
@ -623,14 +624,14 @@ SMB.SessionSetup.H
|
||||
.DA 2 MAX MPX COUNT
|
||||
.HS 0000 VC NUMBER
|
||||
.HS 00000000 SESSION KEY
|
||||
.DA 0 CI PASS LEN
|
||||
.DA 0 CS PASS LEN
|
||||
.DA 0 CI PASS LEN (ANSI)
|
||||
.DA 0 CS PASS LEN (UNICODE)
|
||||
.HS 00000000
|
||||
.HS 00000000 CAPABILITIES
|
||||
SMB.SessionSetup.H.Len .EQ *-SMB.SessionSetup.H
|
||||
* .BS 2 ByteCount
|
||||
SMB.SessionSetup.Guest
|
||||
.AZ "" Password
|
||||
* .AZ "" Password
|
||||
.AZ "Guest" Account Name
|
||||
.AZ "?" Primary Domain
|
||||
SMB.SessionSetup.Guest.Len .EQ *-SMB.SessionSetup.Guest
|
||||
|
@ -59,7 +59,7 @@ L59BD lda bloknml
|
||||
|
||||
ldy #$05
|
||||
|
||||
.1 asl
|
||||
.1 asl
|
||||
rol XRW.ReqTrack
|
||||
dey
|
||||
bne .1
|
||||
@ -307,7 +307,7 @@ L596F ldy #$FF index to last byte of data to write.
|
||||
XRW.SectorIO lda #2
|
||||
sta XRW.RecalibrateCnt
|
||||
sta XRW.BadSeek
|
||||
|
||||
jsr XRW.DEBUG
|
||||
bit XRW.bWrite
|
||||
bpl .1
|
||||
|
||||
@ -386,9 +386,9 @@ XRW.SectorIO lda #2
|
||||
.LIST ON
|
||||
XRW.Write lda IO.D2.ReadProt,x PREWRITE MODE
|
||||
.LIST OFF
|
||||
|
||||
|
||||
lda IO.D2.ReadMode,x
|
||||
|
||||
|
||||
lda nbuf2
|
||||
sta pcl
|
||||
|
||||
@ -521,10 +521,11 @@ wrefd5 ldx #$60 (2) restore slot. warning: modified by prenib
|
||||
|
||||
clc (2)
|
||||
|
||||
* jsr XRW.Write.RTS (6+6)
|
||||
jsr XRW.Write.RTS (6+6)
|
||||
|
||||
* lda #$FF (2)
|
||||
* nop (2)
|
||||
nop (2)
|
||||
nop (2)
|
||||
|
||||
* jsr wnibl (15,6) write turn off byte.
|
||||
|
||||
@ -710,7 +711,7 @@ XRW.Read.RTS rts
|
||||
*--------------------------------------
|
||||
XRW.Seek ldx XRW.UnitIndex
|
||||
pha save target track
|
||||
|
||||
|
||||
jsr XRW.Trk2Qtrk
|
||||
sta XRW.TargetQTrack
|
||||
|
||||
@ -729,16 +730,12 @@ XRW.Seek ldx XRW.UnitIndex
|
||||
cmp XRW.TargetQTrack
|
||||
beq .8
|
||||
|
||||
sta IO.D2.Ph0Off,x
|
||||
nop
|
||||
nop
|
||||
sta IO.D2.Ph0Off,y
|
||||
nop
|
||||
nop
|
||||
sta IO.D2.Ph0Off,x
|
||||
bcs .2
|
||||
|
||||
* Current < Target, must move in
|
||||
|
||||
|
||||
inc
|
||||
|
||||
.HS B0 BCS
|
||||
@ -760,7 +757,7 @@ XRW.Seek ldx XRW.UnitIndex
|
||||
bcs .3
|
||||
|
||||
* Current < Target, must move in
|
||||
|
||||
|
||||
inc
|
||||
|
||||
.HS B0 BCS
|
||||
@ -779,27 +776,21 @@ XRW.Seek ldx XRW.UnitIndex
|
||||
phx
|
||||
tax
|
||||
pla
|
||||
|
||||
|
||||
.4 tay
|
||||
|
||||
|
||||
sta IO.D2.Ph0On,x
|
||||
nop
|
||||
nop
|
||||
lda $C0EC
|
||||
sta IO.D2.Ph0On,y
|
||||
nop
|
||||
nop
|
||||
lda $C0EC
|
||||
jsr XRW.WaitSeekTime
|
||||
|
||||
|
||||
bra .1
|
||||
|
||||
.8 jsr XRW.Wait25600usec
|
||||
|
||||
sta IO.D2.Ph0Off,x
|
||||
nop
|
||||
nop
|
||||
sta IO.D2.Ph0Off,y
|
||||
nop
|
||||
nop
|
||||
sta IO.D2.Ph0Off,x
|
||||
rts
|
||||
*--------------------------------------
|
||||
XRW.WaitSeekTime
|
||||
@ -810,7 +801,7 @@ XRW.Wait25600usec
|
||||
lda #0
|
||||
XRW.Wait100usecA
|
||||
phx
|
||||
|
||||
|
||||
.1 ldx #18 (2)
|
||||
|
||||
.2 dex (2)
|
||||
@ -903,7 +894,7 @@ XRW.ReadAddr ldy #$FC
|
||||
|
||||
eor #$DE
|
||||
bne .99
|
||||
|
||||
|
||||
ldy XRW.UnitIndex
|
||||
lda XRW.AddrField.V
|
||||
sta XRW.D2VolNum-1,y
|
||||
@ -949,6 +940,47 @@ XRW.TestWP ldx A2L
|
||||
rol write protect-->carry-->bit 0=1
|
||||
lda IO.D2.RData,x keep in read mode
|
||||
rts
|
||||
*--------------------------------------
|
||||
XRW.DEBUG sta CLRPAGE2
|
||||
lda #"R"
|
||||
bit XRW.bWrite
|
||||
bpl .1
|
||||
|
||||
lda #"W"
|
||||
|
||||
.1 sta $723
|
||||
|
||||
lda XRW.ReqTrack
|
||||
pha
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
jsr .7
|
||||
sta $724
|
||||
pla
|
||||
jsr .7
|
||||
sta $725
|
||||
|
||||
lda XRW.ReqSector
|
||||
pha
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
jsr .7
|
||||
sta $726
|
||||
pla
|
||||
jsr .7
|
||||
sta $727
|
||||
rts
|
||||
|
||||
.7 and #$0F
|
||||
ora #$B0
|
||||
cmp #"9"+1
|
||||
bcc .8
|
||||
adc #6
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
.LIST ON
|
||||
XRW.FREE .EQ $D540-*
|
||||
|
428
SBIN/CIFSD.S.txt
428
SBIN/CIFSD.S.txt
@ -22,13 +22,9 @@ TIMEOUT.MAX .EQ 250 25 sec.
|
||||
ZS.START
|
||||
ZPIPCfgPtr .BS 2
|
||||
hSocket .BS 1
|
||||
hResp .BS 1
|
||||
ZPRespPtr .BS 2
|
||||
TimeOut .BS 1
|
||||
hSMBContext .BS 1
|
||||
hMount .BS 1
|
||||
ZPPtr1 .BS 2
|
||||
ZPPtr2 .BS 2
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
@ -53,15 +49,10 @@ CS.START cld
|
||||
.DA CS.QUIT
|
||||
L.LIBTCPIP .DA LIBTCPIP
|
||||
L.LIBCIFS .DA LIBCIFS
|
||||
L.MSG.TCPIPERR .DA MSG.TCPIPERR
|
||||
L.MSG.USAGE .DA MSG.USAGE
|
||||
L.MSG.TCPIPERR .DA MSG.TCPIPERR
|
||||
L.MSG.UNKNOWN .DA MSG.UNKNOWN
|
||||
L.MSG.SESSION .DA MSG.SESSION
|
||||
L.SMB.NegReq .DA SMB.NegReq
|
||||
L.SMB.SessSetup .DA SMB.SessSetup
|
||||
L.SMB.TreeConnReq .DA SMB.TreeConnReq
|
||||
L.SMB.QueryPathInfo .DA SMB.QueryPathInfo
|
||||
L.SMB.FindFirstReq .DA SMB.FindFirstReq
|
||||
L.MSG.CONNECTED .DA MSG.CONNECTED
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Called once at process creation
|
||||
@ -108,7 +99,7 @@ CS.RUN lda hSocket
|
||||
bcs .9
|
||||
|
||||
sta hSMBContext
|
||||
>DEBUG
|
||||
|
||||
>PUSHB hSocket
|
||||
>PUSHB hSMBContext
|
||||
>PUSHWI 0
|
||||
@ -224,12 +215,13 @@ CS.RUN.CheckArgs
|
||||
>SYSCALL ArgV
|
||||
|
||||
clc
|
||||
CS.RUN.CheckArgs.RTS
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.Connect >PUSHBI 0 no protocol
|
||||
lda #S.SOCKET.T.SEQPKT
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||
bcs .9
|
||||
bcs CS.RUN.CheckArgs.RTS
|
||||
|
||||
sta hSocket
|
||||
|
||||
@ -266,188 +258,14 @@ CS.RUN.Connect >PUSHBI 0 no protocol
|
||||
|
||||
.7 >SYSCALL Freemem
|
||||
|
||||
.8 clc
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.Negotiate
|
||||
lda #TIMEOUT.MAX
|
||||
sta TimeOut
|
||||
|
||||
.1 >PUSHWI SMB.NegReq.end-SMB.NegReq
|
||||
>PUSHW L.SMB.NegReq
|
||||
lda hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
||||
bcc .2
|
||||
|
||||
>SLEEP
|
||||
ldx TimeOut
|
||||
bne .1
|
||||
|
||||
bra .99
|
||||
|
||||
.2 >SLEEP
|
||||
|
||||
lda hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
|
||||
bcc .3
|
||||
|
||||
cmp #E.NODATA
|
||||
beq .2
|
||||
|
||||
bra .99
|
||||
|
||||
.3 sta hResp
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPRespPtr
|
||||
|
||||
ldy #$3f
|
||||
lda (ZPRespPtr),y
|
||||
bne .9
|
||||
|
||||
ldy #$5B
|
||||
lda (ZPRespPtr),y
|
||||
cmp #5
|
||||
bne .9
|
||||
|
||||
|
||||
lda hResp
|
||||
>SYSCALL FreeMem
|
||||
* clc
|
||||
rts
|
||||
|
||||
.9 lda hResp
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.99 lda #MLI.E.INVPATH
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.SessSetup
|
||||
lda #TIMEOUT.MAX
|
||||
sta TimeOut
|
||||
|
||||
.1 >PUSHWI SMB.SessSetup.end-SMB.SessSetup
|
||||
>PUSHW L.SMB.SessSetup
|
||||
lda hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
||||
bcc .2
|
||||
|
||||
>SLEEP
|
||||
ldx TimeOut
|
||||
bne .1
|
||||
|
||||
bra .99
|
||||
|
||||
.2 >SLEEP
|
||||
|
||||
lda hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
|
||||
bcc .3
|
||||
|
||||
cmp #E.NODATA
|
||||
beq .2
|
||||
|
||||
bra .99
|
||||
|
||||
.3 sta hResp
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPRespPtr
|
||||
|
||||
ldy #$3f
|
||||
lda (ZPRespPtr),y
|
||||
bne .9
|
||||
|
||||
ldy #$56
|
||||
lda (ZPRespPtr),y
|
||||
sta SMB.TreeConnReq.UID
|
||||
iny
|
||||
lda (ZPRespPtr),y
|
||||
sta SMB.TreeConnReq.UID+1
|
||||
|
||||
>PUSHW L.MSG.SESSION
|
||||
lda #$63
|
||||
clc
|
||||
adc ZPRespPtr
|
||||
tay
|
||||
lda #0
|
||||
adc ZPRespPtr+1
|
||||
.8 >PUSHW L.MSG.CONNECTED
|
||||
lda #1
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
|
||||
>PUSHBI 2
|
||||
>SYSCALL PrintF
|
||||
|
||||
lda hResp
|
||||
>SYSCALL FreeMem
|
||||
* clc
|
||||
rts
|
||||
|
||||
.9 lda hResp
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.99 lda #MLI.E.INVPATH
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.TreeConn lda #TIMEOUT.MAX
|
||||
sta TimeOut
|
||||
|
||||
.1 >PUSHWI SMB.TreeConnReq.end-SMB.TreeConnReq
|
||||
>PUSHW L.SMB.TreeConnReq
|
||||
lda hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
||||
bcc .2
|
||||
|
||||
>SLEEP
|
||||
ldx TimeOut
|
||||
bne .1
|
||||
|
||||
bra .99
|
||||
|
||||
.2 >SLEEP
|
||||
|
||||
lda hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
|
||||
bcc .3
|
||||
|
||||
cmp #E.NODATA
|
||||
beq .2
|
||||
|
||||
bra .99
|
||||
|
||||
.3 sta hResp
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPRespPtr
|
||||
|
||||
ldy #$3f
|
||||
lda (ZPRespPtr),y
|
||||
bne .9
|
||||
|
||||
ldy #$52
|
||||
lda (ZPRespPtr),y
|
||||
sta SMB.FindFirstReq.TID
|
||||
iny
|
||||
lda (ZPRespPtr),y
|
||||
sta SMB.FindFirstReq.TID+1
|
||||
|
||||
ldy #$56
|
||||
lda (ZPRespPtr),y
|
||||
sta SMB.FindFirstReq.UID
|
||||
iny
|
||||
lda (ZPRespPtr),y
|
||||
sta SMB.FindFirstReq.UID+1
|
||||
|
||||
lda hResp
|
||||
>SYSCALL FreeMem
|
||||
* clc
|
||||
rts
|
||||
|
||||
.9 lda hResp
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.99 lda #MLI.E.INVPATH
|
||||
sec
|
||||
rts
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.DOEVENT lda (pEvent)
|
||||
bpl .9 is it a TIMER event?
|
||||
@ -459,9 +277,6 @@ CS.DOEVENT lda (pEvent)
|
||||
.9 sec do not discard TIMER event
|
||||
rts
|
||||
*--------------------------------------
|
||||
* Called once, when RUN exited with CS
|
||||
* Put code for unloading LIB here
|
||||
*--------------------------------------
|
||||
CS.QUIT lda hMount
|
||||
beq .1
|
||||
|
||||
@ -493,231 +308,10 @@ LIBTCPIP .AZ "libtcpip"
|
||||
hLIBTCPIP .BS 1
|
||||
LIBCIFS .AZ "libcifs"
|
||||
hLIBCIFS .BS 1
|
||||
MSG.TCPIPERR .AZ "CIFSD:TCP/IP Not initialized properly."
|
||||
MSG.USAGE .AZ "Usage : CIFSD <ip|host> sharename mountpoint"
|
||||
MSG.TCPIPERR .AZ "CIFSD:TCP/IP Not initialized properly."
|
||||
MSG.UNKNOWN .AZ "CIFSD:%s: Unknown host\r\n"
|
||||
MSG.SESSION .AZ "CIFSD:Connected to: %s\r\n"
|
||||
*--------------------------------------
|
||||
SMB.NegReq .DA #0 DIRECT TCP TRANSPORT
|
||||
.DA #0 24 BITS LENGTH
|
||||
.DA /SMB.NegReq.end-1-*
|
||||
.DA #SMB.NegReq.end-1-*
|
||||
.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 $FEFF PIDLO
|
||||
.DA 0 UID
|
||||
.DA 0 MID
|
||||
|
||||
.DA #0 WORD COUNT
|
||||
|
||||
.DA #SMB.NegReq.end-2-*
|
||||
.DA /SMB.NegReq.end-2-*
|
||||
|
||||
.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.SessSetup .DA #0 DIRECT TCP TRANSPORT
|
||||
.DA #0 24 BITS LENGTH
|
||||
.DA /SMB.SessSetup.end-1-*
|
||||
.DA #SMB.SessSetup.end-1-*
|
||||
.DA #$FF
|
||||
.AS "SMB"
|
||||
.DA #S.SMB.H.CMD.SESSION.SETUP.ANDX
|
||||
.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 $FEFF PIDLO
|
||||
.DA 0 UID
|
||||
.DA 0 MID
|
||||
|
||||
.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
|
||||
.DA 0 CI PASS LEN
|
||||
.DA 0 CS PASS LEN
|
||||
.HS 00000000
|
||||
.HS 00000000 CAPABILITIES
|
||||
|
||||
.DA #SMB.SessSetup.end-2-*
|
||||
.DA /SMB.SessSetup.end-2-*
|
||||
|
||||
* .AZ "" Password
|
||||
.AZ "Guest" Account Name
|
||||
.AZ "?" Primary Domain
|
||||
.AZ "A2osX" Native OS
|
||||
.AZ "A2osX-CIFSD" Native LANMAN
|
||||
SMB.SessSetup.end .EQ *
|
||||
*--------------------------------------
|
||||
SMB.TreeConnReq .DA #0 DIRECT TCP TRANSPORT
|
||||
.DA #0 24 BITS LENGTH
|
||||
.DA /SMB.TreeConnReq.end-1-*
|
||||
.DA #SMB.TreeConnReq.end-1-*
|
||||
.DA #$FF
|
||||
.AS "SMB"
|
||||
.DA #S.SMB.H.CMD.TREE.CONNECT.ANDX
|
||||
.HS 00000000
|
||||
.DA #0 S.SMB.H.FLAGS
|
||||
.DA S.SMB.H.FLAGS2.LONGNAMES
|
||||
.DA 0 PIDHI
|
||||
.HS 0000000000000000 SECFEAT
|
||||
.DA 0 RSVD
|
||||
SMB.TreeConnReq.TID
|
||||
.DA $FFFF TID
|
||||
.DA $FEFF PIDLO
|
||||
SMB.TreeConnReq.UID
|
||||
.DA 0 UID
|
||||
.DA 0 MID
|
||||
|
||||
.DA #4 WORD COUNT
|
||||
.HS FF000000 NO MORE CMD
|
||||
.DA 0
|
||||
.DA 1 PASSWORD LEN
|
||||
|
||||
.DA #SMB.TreeConnReq.end-2-*
|
||||
.DA /SMB.TreeConnReq.end-2-*
|
||||
|
||||
.AZ "" PASSWORD
|
||||
.AZ "_temp" PATH
|
||||
.AZ "?????"
|
||||
SMB.TreeConnReq.end .EQ *
|
||||
*--------------------------------------
|
||||
* https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cifs/9b171bbf-c6d8-4c88-ac85-23c795cbb5d3
|
||||
*--------------------------------------
|
||||
SMB.QueryPathInfo
|
||||
.DA #0 DIRECT TCP TRANSPORT
|
||||
.DA #0 24 BITS LENGTH
|
||||
.DA /SMB.QueryPathInfo.end-1-*
|
||||
.DA #SMB.QueryPathInfo.end-1-*
|
||||
.DA #$FF
|
||||
.AS "SMB"
|
||||
.DA #S.SMB.H.CMD.TRANSACTION2
|
||||
.HS 00000000
|
||||
.DA #0 S.SMB.H.FLAGS
|
||||
.DA S.SMB.H.FLAGS2.LONGNAMES
|
||||
.DA 0 PIDHI
|
||||
.HS 0000000000000000 SECFEAT
|
||||
.DA 0 RSVD
|
||||
SMB.QueryPathInfo.TID
|
||||
.DA $FFFF TID
|
||||
.DA $FEFF PIDLO
|
||||
SMB.QueryPathInfo.UID
|
||||
.DA 0 UID
|
||||
.DA 0 MID
|
||||
* Trans2
|
||||
.DA #15 WORD COUNT
|
||||
.DA SMB.QueryPathInfo.PrmCnt TotalParamCount
|
||||
.DA 0 TotalDataCount
|
||||
.DA 10 MaxParameterCount
|
||||
.DA 460 MaxDataCount
|
||||
.DA #1 MaxSetupCount
|
||||
.HS 00 Reserved1
|
||||
.DA 0 Flags
|
||||
.HS 00000000 Timeout
|
||||
.HS 0000 Reserved2
|
||||
.DA SMB.QueryPathInfo.PrmCnt ParameterCount
|
||||
.DA 66 ParameterOffset
|
||||
.HS 0000 DataCount
|
||||
.HS 0000 DataOffset
|
||||
|
||||
.DA #1 SetupCount
|
||||
.HS 00 Reserved3
|
||||
* TRANS2_QUERY_PATH_INFORMATION
|
||||
.DA 5 TRANS2_QUERY_PATH_INFORMATION
|
||||
|
||||
.DA SMB.QueryPathInfo.PrmCnt+1 INCLUDING Padding byte below
|
||||
.HS 00 Padding
|
||||
|
||||
SMB.QueryPathInfo.Prm
|
||||
.DA $0001 InformationLevel
|
||||
.HS 00000000 SearchStorageType
|
||||
.AZ "server.met" FileName
|
||||
SMB.QueryPathInfo.PrmCnt .EQ *-SMB.QueryPathInfo.Prm
|
||||
SMB.QueryPathInfo.end
|
||||
*--------------------------------------
|
||||
SMB.FindFirstReq
|
||||
.DA #0 DIRECT TCP TRANSPORT
|
||||
.DA #0 24 BITS LENGTH
|
||||
.DA /SMB.FindFirstReq.end-1-*
|
||||
.DA #SMB.FindFirstReq.end-1-*
|
||||
.DA #$FF
|
||||
.AS "SMB"
|
||||
.DA #S.SMB.H.CMD.TRANSACTION2
|
||||
.HS 00000000
|
||||
.DA #0 S.SMB.H.FLAGS
|
||||
.DA S.SMB.H.FLAGS2.LONGNAMES
|
||||
.DA 0 PIDHI
|
||||
.HS 0000000000000000 SECFEAT
|
||||
.DA 0 RSVD
|
||||
SMB.FindFirstReq.TID
|
||||
.DA $FFFF TID
|
||||
.DA $FEFF PIDLO
|
||||
SMB.FindFirstReq.UID
|
||||
.DA 0 UID
|
||||
.DA 0 MID
|
||||
* Trans2
|
||||
.DA #15 WORD COUNT
|
||||
.DA SMB.FindFirstReq.PrmCnt TotalParamCount
|
||||
.DA 0 TotalDataCount
|
||||
.DA 10 MaxParameterCount
|
||||
.DA 460 MaxDataCount
|
||||
.DA #1 MaxSetupCount
|
||||
.HS 00 Reserved1
|
||||
.DA 0 Flags
|
||||
.HS 00000000 Timeout
|
||||
.HS 0000 Reserved2
|
||||
.DA SMB.FindFirstReq.PrmCnt ParameterCount
|
||||
.DA 66 ParameterOffset
|
||||
.HS 0000 DataCount
|
||||
.HS 0000 DataOffset
|
||||
|
||||
.DA #1 SetupCount
|
||||
.HS 00 Reserved3
|
||||
* FIND_FIRST2
|
||||
.DA 1 TRANS2_FIND_FIRST2
|
||||
|
||||
.DA SMB.FindFirstReq.PrmCnt+1 INCLUDING Padding byte below
|
||||
.HS 00 Padding
|
||||
|
||||
SMB.FindFirstReq.Prm
|
||||
.DA $0016 SearchAttributes
|
||||
.DA 1024 SearchCount
|
||||
.DA 3 Flags
|
||||
.DA $0001 InformationLevel
|
||||
.HS 00000000 SearchStorageType
|
||||
.AZ "\*.*" FileName
|
||||
SMB.FindFirstReq.PrmCnt .EQ *-SMB.FindFirstReq.Prm
|
||||
SMB.FindFirstReq.end
|
||||
MSG.CONNECTED .AZ "CIFSD:Connected to: %s\r\n"
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
|
Loading…
x
Reference in New Issue
Block a user