Kernel 0.94+

This commit is contained in:
Rémy GIBERT 2021-01-17 22:48:54 +01:00
parent 5939ec4615
commit cfa13a36bb
16 changed files with 315 additions and 241 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -68,14 +68,14 @@ CS.RUN.GetInfo >LEA.G P.GetInfo
bcs .9 bcs .9
>PUSHW L.MSG.GETINFO >PUSHW L.MSG.GETINFO
>PUSHB.G P.GetInfo+$09 THIS-NET
>PUSHB.G P.GetInfo+$08 THIS-NET >PUSHB.G P.GetInfo+$08 THIS-NET
>PUSHB.G P.GetInfo+$09 THIS-NET
>PUSHB.G P.GetInfo+$0E NODE >PUSHB.G P.GetInfo+$0E NODE
>PUSHB.G P.GetInfo+$0A BRIDGE >PUSHB.G P.GetInfo+$0A BRIDGE
>PUSHB.G P.GetInfo+$0D HARDWARE ID
>PUSHB.G P.GetInfo+$0C HARDWARE ID >PUSHB.G P.GetInfo+$0C HARDWARE ID
>PUSHB.G P.GetInfo+$0D HARDWARE ID
>PUSHB.G P.GetInfo+$0B ROM VERSION >PUSHB.G P.GetInfo+$0B ROM VERSION
>PUSHBI 7 >PUSHBI 7
@ -226,9 +226,9 @@ CS.QUIT lda hBuf
CS.END CS.END
MSG.NOATK .AZ "AppleTalk Not Loaded." MSG.NOATK .AZ "AppleTalk Not Loaded."
MSG.ATKERR .AZ "AppleTalk Call %h, ERR:%H\r\n" MSG.ATKERR .AZ "AppleTalk Call %h, ERR:%H\r\n"
MSG.GETINFO .AS "Network/Node:%h%h/%h\r\n" MSG.GETINFO .AS "Network/Node:%H/%h\r\n"
.AS "Bridge : %h\r\n" .AS "Bridge : %h\r\n"
.AZ "HWID/ROMVER :%h%h/%h\r\n" .AZ "HWID/ROMVER :%H/%h\r\n"
MSG.MYZONE .AZ "Zone Name :%S\r\n" MSG.MYZONE .AZ "Zone Name :%S\r\n"
SEARCH.STRING >PSTR "=" SEARCH.STRING >PSTR "="
>PSTR "=" >PSTR "="

View File

@ -42,10 +42,14 @@ CS.START cld
.DA CS.RUN .DA CS.RUN
.DA CS.DOEVENT .DA CS.DOEVENT
.DA CS.QUIT .DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE
L.MSG.NOATK .DA MSG.NOATK L.MSG.NOATK .DA MSG.NOATK
L.MSG.ATKERR .DA MSG.ATKERR L.MSG.ATKERR .DA MSG.ATKERR
L.MSG.USAGE .DA MSG.USAGE
L.MSG.GETINFO .DA MSG.GETINFO L.MSG.GETINFO .DA MSG.GETINFO
L.MSG.NETNODPORT .DA MSG.NETNODPORT
L.MSG.NOTFOUND .DA MSG.NOTFOUND
L.MSG.SRVINFO .DA MSG.SRVINFO
L.FPLogin .DA FPLogin
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
CS.INIT clc CS.INIT clc
@ -64,6 +68,9 @@ CS.RUN ldy #S.PS.ARGC
jsr CS.RUN.GetParms jsr CS.RUN.GetParms
bcs .9 bcs .9
jsr CS.RUN.GetStatus
bcs .9
jsr CS.RUN.FILogin jsr CS.RUN.FILogin
bcs .9 bcs .9
@ -85,14 +92,14 @@ CS.RUN.GetInfo >LEA.G P.GetInfo
bcs .9 bcs .9
>PUSHW L.MSG.GETINFO >PUSHW L.MSG.GETINFO
>PUSHB.G P.GetInfo+$09 THIS-NET
>PUSHB.G P.GetInfo+$08 THIS-NET >PUSHB.G P.GetInfo+$08 THIS-NET
>PUSHB.G P.GetInfo+$09 THIS-NET
>PUSHB.G P.GetInfo+$0E NODE >PUSHB.G P.GetInfo+$0E NODE
>PUSHB.G P.GetInfo+$0A BRIDGE >PUSHB.G P.GetInfo+$0A BRIDGE
>PUSHB.G P.GetInfo+$0D HARDWARE ID
>PUSHB.G P.GetInfo+$0C HARDWARE ID >PUSHB.G P.GetInfo+$0C HARDWARE ID
>PUSHB.G P.GetInfo+$0D HARDWARE ID
>PUSHB.G P.GetInfo+$0B ROM VERSION >PUSHB.G P.GetInfo+$0B ROM VERSION
>PUSHBI 7 >PUSHBI 7
@ -115,11 +122,6 @@ CS.RUN.LookupName
>STYA ZPPTR2 >STYA ZPPTR2
>STYA.G P.LookupName+$08 >STYA.G P.LookupName+$08
lda #1
jsr CS.RUN.PutPtr2
lda #'='
jsr CS.RUN.PutPtr2
ldy #$ff ldy #$ff
.1 iny .1 iny
@ -138,18 +140,23 @@ CS.RUN.LookupName
dex dex
bne .3 bne .3
lda #1 ldx #SEARCH.STRING.Len
jsr CS.RUN.PutPtr2 ldy #0
lda #'*'
.4 lda SEARCH.STRING,y
jsr CS.RUN.PutPtr2 jsr CS.RUN.PutPtr2
iny
dex
bne .4
lda #4 lda #4
>STA.G P.LookupName+$C RetInt >STA.G P.LookupName+$C RetInt
>STA.G P.LookupName+$D RetCnt >STA.G P.LookupName+$D RetCnt
>LDYAI 64
>LDYAI 5+99
>STYA.G P.LookupName+$10 BufLen >STYA.G P.LookupName+$10 BufLen
>LDYA.G LookupBuf
>LEA.G LookupBuf
>STYA.G P.LookupName+$12 BufPtr >STYA.G P.LookupName+$12 BufPtr
lda #1 lda #1
@ -157,7 +164,33 @@ CS.RUN.LookupName
>LEA.G P.LookupName >LEA.G P.LookupName
ldx #AT.LookupName ldx #AT.LookupName
jmp CS.RUN.GOATLK jsr CS.RUN.GOATLK
bcs .9
>LDA.G P.LookupName+$17
beq .99
>PUSHW L.MSG.NETNODPORT
ldy #LookupBuf
ldx #4
.5 lda (pData),y
>PUSHA
iny
dex
bne .5
>PUSHBI 4
>SYSCALL PrintF
.9 rts
.99 >LDYA L.MSG.NOTFOUND
>SYSCALL PutS
lda #MLI.E.IO
sec
rts
*-------------------------------------- *--------------------------------------
CS.RUN.GetParms >LEA.G P.GetParms CS.RUN.GetParms >LEA.G P.GetParms
ldx #AT.GetParms ldx #AT.GetParms
@ -180,6 +213,47 @@ CS.RUN.GetParms >LEA.G P.GetParms
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.RUN.GetStatus
>LDYA.G LookupBuf
>STYA ZPPTR1
>LEA.G P.GetStatus+$8
>STYA ZPPTR2
ldy #3
.1 lda (ZPPTR1),y copy NETWORK/NODE/SOCKET
sta (ZPPTR2),y
dey
bpl .1
>LDYA.G P.GetParms+$6
>STYA.G P.GetStatus+$C Reply buffer length
>LDYA ZPReplyBuf
>STYA.G P.GetStatus+$E
>LEA.G P.GetStatus
ldx #AT.GetStatus
jsr CS.RUN.GOATLK
bcs .9
>PUSHW L.MSG.SRVINFO
lda (ZPReplyBuf) Offset to Machine Type
clc
adc ZPReplyBuf
tay
lda #0
adc ZPReplyBuf+1
>PUSHYA
>PUSHBI 2
>SYSCALL PrintF
.9 rts
*--------------------------------------
CS.RUN.FILogin >LDYA.G LookupBuf CS.RUN.FILogin >LDYA.G LookupBuf
>STYA ZPPTR1 >STYA ZPPTR1
>LEA.G P.FILogin+$4 >LEA.G P.FILogin+$4
@ -192,10 +266,10 @@ CS.RUN.FILogin >LDYA.G LookupBuf
dey dey
bpl .1 bpl .1
>LDYA.G P.GetParms+$4 >LDYAI FPLogin.Len
>STYA.G P.FILogin+$8 Cmd buffer length >STYA.G P.FILogin+$8 Cmd buffer length
>LDYA ZPCmdBuf >LDYA L.FPLogin
>STYA.G P.FILogin+$A >STYA.G P.FILogin+$A
>LDYA.G P.GetParms+$6 >LDYA.G P.GetParms+$6
@ -243,6 +317,7 @@ CS.RUN.GOATLK >STYA ZPAtlkParams
CS.RUN.PutPtr2 sta (ZPPTR2) CS.RUN.PutPtr2 sta (ZPPTR2)
inc ZPPTR2 inc ZPPTR2
bne .8 bne .8
inc ZPPTR2+1 inc ZPPTR2+1
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
@ -263,12 +338,26 @@ CS.QUIT lda hReplyBuf
rts rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
MSG.USAGE .AZ "Usage : ATLOGON <SERVER> [USER] [PASSWORD]"
MSG.NOATK .AZ "AppleTalk Not Loaded." MSG.NOATK .AZ "AppleTalk Not Loaded."
MSG.ATKERR .AZ "AppleTalk Call %h, ERR:%H\r\n" MSG.ATKERR .AZ "AppleTalk Call %h, ERR:%H\r\n"
MSG.GETINFO .AS "Network/Node:%h%h/%h\r\n" MSG.GETINFO .AS "Network/Node:%H/%h\r\n"
.AS "Bridge : %h\r\n" .AS "Bridge : %h\r\n"
.AZ "HWID/ROMVER :%h%h/%h\r\n" .AZ "HWID/ROMVER :%H/%h\r\n"
MSG.USAGE .AZ "Usage : ATLOGON <SERVER> [USER] [PASSWORD]" MSG.NETNODPORT .AZ "Server Address : %H/%h:%h\r\n"
MSG.NOTFOUND .AZ "Server not found"
MSG.SRVINFO .AS "Server Type : %S\r\n"
.DA #0
SEARCH.STRING >PSTR "AFPServer"
>PSTR "*"
SEARCH.STRING.Len .EQ *-SEARCH.STRING
*--------------------------------------
FPLogin .DA #12
.DA #0
>PSTR "AFPVersion 1.1"
>PSTR "No User Authent"
.DA #0
FPLogin.Len .EQ *-FPLogin
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR 0 .OR 0
@ -276,6 +365,7 @@ DS.START
P.GetInfo .BS $0F P.GetInfo .BS $0F
P.LookupName .BS $17 P.LookupName .BS $17
P.GetParms .BS $07 P.GetParms .BS $07
P.GetStatus .BS $14
P.FILogin .BS $19 P.FILogin .BS $19
NameBuf .BS 36 NameBuf .BS 36
lookupBuf .BS 5+99 lookupBuf .BS 5+99

View File

@ -576,6 +576,7 @@ CS.RUN.BuildCat jsr .7
.1 sta (ZPPtr1),y .1 sta (ZPPtr1),y
iny iny
bne .1 bne .1
inc ZPPtr1+1 inc ZPPtr1+1
dex dex
bne .1 bne .1

View File

@ -39,7 +39,6 @@ pStack .EQ $DC
pBase .EQ $DE 8 Bytes pBase .EQ $DE 8 Bytes
ZPBIN .EQ $E0 32 bytes ZPBIN .EQ $E0 32 bytes
ZPBIN.SIZE .EQ 32
PSCTX.SIZE .EQ $100-pCode PSCTX.SIZE .EQ $100-pCode
*-------------------------------------- *--------------------------------------
A2osX.ZCALL .EQ $0000 A2osX.ZCALL .EQ $0000

View File

@ -10,6 +10,7 @@ AT.GetMyZone .EQ $1A
AT.GetZoneList .EQ $1B AT.GetZoneList .EQ $1B
AT.GetParms .EQ $1C AT.GetParms .EQ $1C
AT.GetStatus .EQ $1D
AT.FILogin .EQ $2B AT.FILogin .EQ $2B
AT.FILoginCont .EQ $2C AT.FILoginCont .EQ $2C
@ -21,4 +22,3 @@ AT.FIGetSVersion .EQ $3A
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE inc/appletalk.i SAVE inc/appletalk.i

View File

@ -305,9 +305,10 @@ BB.Seek lda BB.HdrTrk get track we're on
ldx BB.Slotn0 will do a ph0 off ldx BB.Slotn0 will do a ph0 off
ldy BB.Slotn0 ldy BB.Slotn0
.1 sta IO.D2.Ph0Off,x .1 pha
sta IO.D2.Ph0Off,x
sta IO.D2.Ph0Off,y sta IO.D2.Ph0Off,y
bcs .2 bcs .2
* Current < Target, must move in * Current < Target, must move in
@ -322,8 +323,6 @@ BB.Seek lda BB.HdrTrk get track we're on
sta BB.CurrentQTrack sta BB.CurrentQTrack
pha
and #6 and #6
ora BB.Slotn0 ora BB.Slotn0
tax tax
@ -333,27 +332,13 @@ BB.Seek lda BB.HdrTrk get track we're on
bcs .3 bcs .3
* Current < Target, must move in * Current < Target, must move in
inc inc
inc
.HS B0 BCS
.3 and #6
* Current > Target, must move out
.3 dec
and #6
ora BB.Slotn0 ora BB.Slotn0
tay
bcc .4
* move out : invert 2 phases
phx
tax
pla
.4 tay
sta IO.D2.Ph0On,x sta IO.D2.Ph0On,x
sta IO.D2.Ph0On,y sta IO.D2.Ph0On,y
@ -363,7 +348,6 @@ BB.Seek lda BB.HdrTrk get track we're on
.6 lda BB.CurrentQTrack .6 lda BB.CurrentQTrack
cmp BB.TargetQTrack cmp BB.TargetQTrack
bne .1 bne .1
lda #0 lda #0

View File

@ -83,8 +83,10 @@ D2MoveHead.SEI ldx Slotn0
cmp MoveTo cmp MoveTo
beq .8 beq .8
sta IO.D2.Ph0Off,y pha
sta IO.D2.Ph0Off,x sta IO.D2.Ph0Off,x
sta IO.D2.Ph0Off,y
bcs .2 bcs .2
* Current < Target, must move in * Current < Target, must move in
@ -99,8 +101,6 @@ D2MoveHead.SEI ldx Slotn0
sta MoveFrom sta MoveFrom
pha
and #6 and #6
ora Slotn0 ora Slotn0
tax tax
@ -110,30 +110,17 @@ D2MoveHead.SEI ldx Slotn0
bcs .3 bcs .3
* Current < Target, must move in * Current < Target, must move in
inc
inc inc
.HS B0 BCS .3 and #6
* Current > Target, must move out
.3 dec
and #6
ora Slotn0 ora Slotn0
tay
bcc .4
* move out : invert 2 phases
phx
tax
pla
.4 tay
sta IO.D2.Ph0On,x sta IO.D2.Ph0On,x
sta IO.D2.Ph0On,y sta IO.D2.Ph0On,y
lda #IO.D2.SeekTimeF lda #IO.D2.SeekTimeF
jsr D2.Wait100usecA jsr D2.Wait100usecA
@ -141,8 +128,8 @@ D2MoveHead.SEI ldx Slotn0
.8 jsr D2.Wait25600usec .8 jsr D2.Wait25600usec
sta IO.D2.Ph0Off,y
sta IO.D2.Ph0Off,x sta IO.D2.Ph0Off,x
sta IO.D2.Ph0Off,y
rts rts
*-------------------------------------- *--------------------------------------
D2.Wait25600usec D2.Wait25600usec

View File

@ -48,6 +48,8 @@ CS.START cld
.DA CIFS.Mount .DA CIFS.Mount
.DA CIFS.UMount .DA CIFS.UMount
*-------------------------------------- *--------------------------------------
L.CALLBACK .DA CIFS.CallBack
*--------------------------------------
J.CIFS .DA CIFS.ChTyp J.CIFS .DA CIFS.ChTyp
.DA CIFS.ChMod .DA CIFS.ChMod
.DA CIFS.FStat .DA CIFS.FStat
@ -69,17 +71,17 @@ L.SMB.TRANSPORT .DA SMB.TRANSPORT
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
LIB.LOAD >LDYA L.LIBTCPIP LIB.LOAD >LDYA L.LIBTCPIP
>SYSCALL LoadLib >SYSCALL2 LoadLib
bcs .9 bcs .9
sta hLIBTCPIP sta hLIBTCPIP
>SYSCALL GetMemPtr >SYSCALL2 GetMemPtr
>STYA aLIBTCPIP >STYA pLIBTCPIP
>LDYAI 256 >LDYAI 256
>SYSCALL GetMem >SYSCALL2 GetMem
bcs .9 bcs .9
stx hReq stx hReq
* clc * clc
@ -87,25 +89,25 @@ LIB.LOAD >LDYA L.LIBTCPIP
*-------------------------------------- *--------------------------------------
LIB.UNLOAD lda hReq LIB.UNLOAD lda hReq
beq .1 beq .1
>SYSCALL FreeMem >SYSCALL2 FreeMem
.1 lda hLIBTCPIP .1 lda hLIBTCPIP
beq .8 beq .8
>SYSCALL UnloadLib >SYSCALL2 UnloadLib
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
* >PUSHB hSocket * >PUSHB hSocket
* >PUSHB 0 * >PUSHBI 0
* >LIBCALL Negotiate * >LIBCALL Negotiate
* A = hSMBContext * A = hSMBContext
*-------------------------------------- *--------------------------------------
CIFS.Negotiate lda (pStack) CIFS.Negotiate lda (pStack)
bne .1 bne .1
dec dec
sta (pStack) sta (pStack)
@ -115,8 +117,7 @@ CIFS.Negotiate lda (pStack)
lda (pStack),y lda (pStack),y
ldx #LIBTCPIP.Send ldx #LIBTCPIP.Send
jsr GO.LIBTCPIP jsr GO.LIBTCPIP
bcs .99 bcs .99
lda #0 lda #0
@ -131,7 +132,7 @@ CIFS.Negotiate lda (pStack)
lda (pStack),y lda (pStack),y
ldx #LIBTCPIP.Recv ldx #LIBTCPIP.Recv
jsr GO.LIBTCPIP jsr GO.LIBTCPIP
bcc .3 bcc .3
cmp #E.NODATA cmp #E.NODATA
@ -140,24 +141,24 @@ CIFS.Negotiate lda (pStack)
rts rts
.3 jsr GetRespData .3 jsr GetRespData
ldy #S.NETBIOS+S.SMB.H.STATUS ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y lda (ZPRespPtr),y
bne .97 bne .97
ldy #3 ldy #3
lda (ZPRespPtr),y lda (ZPRespPtr),y
clc clc
adc #4 + NETBIOS header adc #4 + NETBIOS header
sta ZPPtr1 sta ZPPtr1
tay tay
lda #0 lda #0
>SYSCALL GetMem
bcs .99
>STYA ZPCtxPtr
>SYSCALL2 GetMem
bcs .99
>STYA ZPCtxPtr
ldy ZPPtr1 ldy ZPPtr1
.4 dey .4 dey
@ -170,17 +171,17 @@ CIFS.Negotiate lda (pStack)
sta (ZPCtxPtr),y sta (ZPCtxPtr),y
phx phx
lda hResp lda hResp
>SYSCALL FreeMem >SYSCALL2 FreeMem
pla pla
clc clc
>RET 2 >RET 2
.97 lda hResp .97 lda hResp
>SYSCALL FreeMem >SYSCALL2 FreeMem
.98 lda #MLI.E.IO .98 lda #MLI.E.IO
@ -190,40 +191,23 @@ CIFS.Negotiate lda (pStack)
* >PUSHB hSMBContext * >PUSHB hSMBContext
* >PUSHW username * >PUSHW username
* >PUSHW password * >PUSHW password
* >PUSHB 0 * >PUSHBI 0
* >LIBCALL SessionSetup * >LIBCALL SessionSetup
* (SMBContext updated with UID) * (SMBContext updated with UID)
*-------------------------------------- *--------------------------------------
CIFS.SessionSetup CIFS.SessionSetup
lda (pStack) lda (pStack)
beq .10 bne .5
jmp .5
.10 dec dec
sta (pStack) sta (pStack)
ldy #5 hSMBContext
jsr GetSMBCtx
lda hReq ldy #5 hSMBContext
>SYSCALL GetMemPtr jsr GetSMBContext
>STYA ZPReqPtr
ldx #S.SMB.H.CMD.SESSION.SETUP.ANDX ldx #S.SMB.H.CMD.SESSION.SETUP.ANDX
jsr RequestSetupX
ldy #0
.1 lda (ZPCtxPtr),y
cpy #S.NETBIOS+S.SMB.H.CMD
bne .11
txa
.11 sta (ZPReqPtr),y
iny
cpy #S.NETBIOS+S.SMB.H
bne .1
ldx #0 ldx #0
.2 lda SMB.SessionSetup.H,x .2 lda SMB.SessionSetup.H,x
@ -232,20 +216,20 @@ CIFS.SessionSetup
inx inx
cpx #SMB.SessionSetup.H.Len cpx #SMB.SessionSetup.H.Len
bne .2 bne .2
phy save Y = LEN phy save Y = LEN
iny iny
iny iny
ldx #0 ldx #0
.3 lda SMB.SessionSetup.Guest,x .3 lda SMB.SessionSetup.Guest,x
sta (ZPReqPtr),y sta (ZPReqPtr),y
iny iny
inx inx
cpx #SMB.SessionSetup.Guest.Len cpx #SMB.SessionSetup.Guest.Len
bne .3 bne .3
ldx #0 ldx #0
.4 lda SMB.SessionSetup.T,x .4 lda SMB.SessionSetup.T,x
@ -254,9 +238,9 @@ CIFS.SessionSetup
inx inx
cpx #SMB.SessionSetup.T.Len cpx #SMB.SessionSetup.T.Len
bne .4 bne .4
pla pla
jsr SetReqLenYAtA jsr SetReqLenYAtA
>PUSHYA >PUSHYA
@ -265,12 +249,12 @@ CIFS.SessionSetup
lda (pStack),y lda (pStack),y
ldx #LIBTCPIP.Send ldx #LIBTCPIP.Send
jsr GO.LIBTCPIP jsr GO.LIBTCPIP
bcs .99 bcs .99
lda #0 lda #0
sec sec
rts rts
.5 dec .5 dec
sta (pStack) sta (pStack)
@ -279,7 +263,7 @@ CIFS.SessionSetup
ldy #6 hSocket ldy #6 hSocket
lda (pStack),y lda (pStack),y
ldx #LIBTCPIP.Recv ldx #LIBTCPIP.Recv
jsr GO.LIBTCPIP jsr GO.LIBTCPIP
bcc .6 bcc .6
cmp #E.NODATA cmp #E.NODATA
@ -292,51 +276,43 @@ CIFS.SessionSetup
ldy #S.NETBIOS+S.SMB.H.STATUS ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y lda (ZPRespPtr),y
bne .97 bne .97
ldy #5 hSMBContext ldy #5 hSMBContext
jsr GetSMBCtx jsr GetSMBContext
ldy #S.NETBIOS+S.SMB.H.UID ldy #S.NETBIOS+S.SMB.H.UID
lda (ZPRespPtr),y lda (ZPRespPtr),y
sta (ZPCtxPtr),y sta (ZPCtxPtr),y
iny iny
lda (ZPRespPtr),y lda (ZPRespPtr),y
sta (ZPCtxPtr),y sta (ZPCtxPtr),y
.8 lda hResp .8 lda hResp
>SYSCALL FreeMem >SYSCALL2 FreeMem
clc clc
>RET 7 >RET 7
.97 lda hResp .97 lda hResp
>SYSCALL FreeMem >SYSCALL2 FreeMem
.98 lda #MLI.E.IO .98 lda #MLI.E.IO
sec sec
.99 >RET 7 .99 >RET 7
*-------------------------------------- *--------------------------------------
* >PUSHB hSocket * >PUSHB hSocket
* >PUSHB hSMBContext * >PUSHB hSMBContext
* >PUSHW pathname * >PUSHW pathname
* >PUSHB 0 * >PUSHBI 0
* >LIBCALL TreeConnect * >LIBCALL TreeConnect
* (SMBContext updated with TID) * (SMBContext updated with TID)
*-------------------------------------- *--------------------------------------
CIFS.TreeConnect CIFS.TreeConnect
lda (pStack) lda (pStack)
beq .10 bne .5
jmp .5
.10 dec dec
sta (pStack) sta (pStack)
ldy #3 hSMBContext
jsr GetSMBCtx
lda hReq
>SYSCALL GetMemPtr
>STYA ZPReqPtr
ldy #1 pathname ldy #1 pathname
lda (pStack),y lda (pStack),y
@ -345,49 +321,40 @@ CIFS.TreeConnect
lda (pStack),y lda (pStack),y
sta ZPPtr1+1 sta ZPPtr1+1
iny hSMBContext
jsr GetSMBContext
ldx #S.SMB.H.CMD.TREE.CONNECT.ANDX ldx #S.SMB.H.CMD.TREE.CONNECT.ANDX
jsr RequestSetupX
ldy #0
.1 lda (ZPCtxPtr),y
cpy #S.NETBIOS+S.SMB.H.CMD
bne .11
txa
.11 sta (ZPReqPtr),y
iny
cpy #S.NETBIOS+S.SMB.H
bne .1
ldx #0 ldx #0
.2 lda SMB.TreeConnect.H,x .1 lda SMB.TreeConnect.H,x
sta (ZPReqPtr),y sta (ZPReqPtr),y
iny iny
inx inx
cpx #SMB.TreeConnect.H.Len cpx #SMB.TreeConnect.H.Len
bne .2 bne .1
phy save Y = LEN phy save Y = LEN
iny iny
iny iny
lda #0 lda #0
sta (ZPReqPtr),y PASSWORD = "\0" sta (ZPReqPtr),y PASSWORD = "\0"
iny iny
.3 lda (ZPPtr1) .2 lda (ZPPtr1)
inc ZPPtr1 inc ZPPtr1
bne .31 bne .3
inc ZPPtr1+1 inc ZPPtr1+1
.31 sta (ZPReqPtr),y .3 sta (ZPReqPtr),y
iny iny
tax tax
bne .3 bne .2
ldx #0 ldx #0
.4 lda SMB.TreeConnect.T,x .4 lda SMB.TreeConnect.T,x
@ -396,9 +363,9 @@ CIFS.TreeConnect
inx inx
cpx #SMB.TreeConnect.T.Len cpx #SMB.TreeConnect.T.Len
bne .4 bne .4
pla pla
jsr SetReqLenYAtA jsr SetReqLenYAtA
>PUSHYA >PUSHYA
@ -407,12 +374,12 @@ CIFS.TreeConnect
lda (pStack),y lda (pStack),y
ldx #LIBTCPIP.Send ldx #LIBTCPIP.Send
jsr GO.LIBTCPIP jsr GO.LIBTCPIP
bcs .99 bcs .99
lda #0 lda #0
sec sec
rts rts
.5 dec .5 dec
sta (pStack) sta (pStack)
@ -421,6 +388,7 @@ CIFS.TreeConnect
ldy #4 hSocket ldy #4 hSocket
lda (pStack),y lda (pStack),y
ldx #LIBTCPIP.Recv ldx #LIBTCPIP.Recv
jsr GO.LIBTCPIP
bcc .6 bcc .6
cmp #E.NODATA cmp #E.NODATA
@ -433,36 +401,64 @@ CIFS.TreeConnect
ldy #S.NETBIOS+S.SMB.H.STATUS ldy #S.NETBIOS+S.SMB.H.STATUS
lda (ZPRespPtr),y lda (ZPRespPtr),y
bne .97 bne .97
ldy #3 hSMBContext ldy #3 hSMBContext
jsr GetSMBCtx jsr GetSMBContext
ldy #S.NETBIOS+S.SMB.H.TID ldy #S.NETBIOS+S.SMB.H.TID
lda (ZPRespPtr),y lda (ZPRespPtr),y
sta (ZPCtxPtr),y sta (ZPCtxPtr),y
iny iny
lda (ZPRespPtr),y lda (ZPRespPtr),y
sta (ZPCtxPtr),y sta (ZPCtxPtr),y
.8 lda hResp .8 lda hResp
>SYSCALL FreeMem >SYSCALL2 FreeMem
clc clc
>RET 5 >RET 5
.97 lda hResp .97 lda hResp
>SYSCALL FreeMem >SYSCALL2 FreeMem
.98 lda #MLI.E.IO .98 lda #MLI.E.IO
sec sec
.99 >RET 5 .99 >RET 5
*-------------------------------------- *--------------------------------------
CIFS.Mount * >PUSHB hSocket
* >PUSHB hSMBContext
* >PUSHW MountPoint
* >LIBCALL Mount
*--------------------------------------
CIFS.Mount ldy #1
lda (pStack),y MP HI
>PUSHA
lda (pStack),y MP LO
>PUSHA
>PUSHW L.CALLBACK
>SYSCALL2 Mount
bcs .9
pha hMount
ldx #0
.1 >PULLB MountTable,x
inx
cpx #4
bne .1
clc
pla
.9 >RET 4
*-------------------------------------- *--------------------------------------
CIFS.UMount clc CIFS.UMount clc
rts rts
*-------------------------------------- *--------------------------------------
CS.CALLBACK jmp (J.CIFS,x) CIFS.CallBack jmp (J.CIFS,x)
*-------------------------------------- *--------------------------------------
CIFS.ChTyp CIFS.ChTyp
*-------------------------------------- *--------------------------------------
@ -470,9 +466,13 @@ CIFS.ChMod
*-------------------------------------- *--------------------------------------
CIFS.FStat CIFS.FStat
*-------------------------------------- *--------------------------------------
CIFS.Stat >PULLW ZPPtr2 S.STAT CIFS.Stat pha
>PULLW ZPPtr2 S.STAT
>PULLW ZPPtr1 PATH >PULLW ZPPtr1 PATH
pla
>SYSCALL2 PutS
.99 lda #MLI.E.INVPATH .99 lda #MLI.E.INVPATH
sec sec
@ -511,20 +511,43 @@ CIFS.ChOwn
sec sec
rts rts
*-------------------------------------- *--------------------------------------
GetSMBCtx lda (pStack),y GetSMBContext lda (pStack),y
>SYSCALL GetMemPtr >SYSCALL2 GetMemPtr
>STYA ZPCtxPtr >STYA ZPCtxPtr
rts rts
*-------------------------------------- *--------------------------------------
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
*--------------------------------------
* Y = LEN from S.NETBIOS.TYPE * Y = LEN from S.NETBIOS.TYPE
* A = Ptr to LEN Word * A = Ptr to LEN Word
*-------------------------------------- *--------------------------------------
SetReqLenYAtA sty ZPReqLen SetReqLenYAtA sty ZPReqLen
stz ZPReqLen+1 stz ZPReqLen+1
sta ZPPtr1 sta ZPPtr1
pha pha
tya tya
dec dec
dec dec
@ -536,7 +559,7 @@ SetReqLenYAtA sty ZPReqLen
iny iny
lda #0 lda #0
sta (ZPReqPtr),y sta (ZPReqPtr),y
lda ZPReqLen lda ZPReqLen
sec sec
sbc #S.NETBIOS sbc #S.NETBIOS
@ -544,16 +567,16 @@ SetReqLenYAtA sty ZPReqLen
sta (ZPReqPtr),y sta (ZPReqPtr),y
lda ZPReqLen+1 lda ZPReqLen+1
sec sec
sbc /S.NETBIOS sbc /S.NETBIOS
dey dey
sta (ZPReqPtr),y sta (ZPReqPtr),y
>LDYA ZPReqLen >LDYA ZPReqLen
rts rts
*-------------------------------------- *--------------------------------------
GetRespData sta hResp GetRespData sta hResp
>SYSCALL GetMemPtr >SYSCALL2 GetMemPtr
pha pha
tya tya
* clc * clc
@ -564,17 +587,21 @@ GetRespData sta hResp
sta ZPRespPtr+1 sta ZPRespPtr+1
rts rts
*-------------------------------------- *--------------------------------------
GO.LIBTCPIP jmp (aLIBTCPIP) GO.LIBTCPIP jmp (pLIBTCPIP)
*-------------------------------------- *--------------------------------------
CS.END CS.END
*-------------------------------------- *--------------------------------------
LIBTCPIP .AZ "libtcpip" LIBTCPIP .AZ "libtcpip"
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
aLIBTCPIP .BS 2 pLIBTCPIP .BS 2
hSocket .BS 1 hSocket .BS 1
hReq .BS 1 hReq .BS 1
hResp .BS 1 hResp .BS 1
*-------------------------------------- *--------------------------------------
MountTable .BS 2 pMountPoint
.BS 1 hSMBContext
.BS 1 hSocket
*--------------------------------------
SMB.TRANSPORT .DA #0 DIRECT TCP TRANSPORT SMB.TRANSPORT .DA #0 DIRECT TCP TRANSPORT
.DA #0 24 BITS LENGTH .DA #0 24 BITS LENGTH
.DA /SMB.NegReq.end-SMB.H .DA /SMB.NegReq.end-SMB.H

View File

@ -874,6 +874,7 @@ SKT.Recv clc
.3 cmp #S.IP.PROTOCOL.TCP .3 cmp #S.IP.PROTOCOL.TCP
beq .6 beq .6
cmp #S.IP.PROTOCOL.UDP cmp #S.IP.PROTOCOL.UDP
bne .8 bne .8

View File

@ -261,6 +261,9 @@ TCP.IN.JMP.LASTACK
lda (ZPFrameInPtr),y lda (ZPFrameInPtr),y
bit #S.TCP.OPTIONS.ACK bit #S.TCP.OPTIONS.ACK
beq .8 beq .8
lda #S.TCP.OPTIONS.ACK
jsr TCP.OUT.SendOptA
ldy #S.SOCKET.TCP.S ldy #S.SOCKET.TCP.S
lda #S.SOCKET.TCP.S.TIMEWT lda #S.SOCKET.TCP.S.TIMEWT
@ -287,7 +290,8 @@ TCP.IN.JMP.FINWT1
.1 jsr TCP.IN.ACKTheFIN FIN/ACK .1 jsr TCP.IN.ACKTheFIN FIN/ACK
lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK * lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
lda #S.TCP.OPTIONS.ACK
jsr TCP.OUT.SendOptA FIN received, Send ACK jsr TCP.OUT.SendOptA FIN received, Send ACK
bcs TCP.IN.JMP.TIMEWT.RTS bcs TCP.IN.JMP.TIMEWT.RTS
@ -330,6 +334,7 @@ TCP.IN.JMP.TIMEWT.RTS
rts rts
*-------------------------------------- *--------------------------------------
TCP.IN.ACKTheSYN TCP.IN.ACKTheSYN
TCP.IN.ACKTheFIN
ldy #S.TCP.SEQNUM+3 Get Remote SEQ ldy #S.TCP.SEQNUM+3 Get Remote SEQ
ldx #3 ldx #3
@ -344,7 +349,7 @@ TCP.IN.ACKTheSYN
rts rts
*-------------------------------------- *--------------------------------------
TCP.IN.ACKTheFIN TCP.IN.ACKTheFIN.OLD
ldx #3 ldx #3
.1 inc SKT.Cache+S.SOCKET.TCP.INSEQNUM,x .1 inc SKT.Cache+S.SOCKET.TCP.INSEQNUM,x

View File

@ -364,9 +364,7 @@ XRW.SectorIO lda #2
bne .3 no, try another sector. bne .3 no, try another sector.
bit XRW.bWrite bit XRW.bWrite
* bpl .7 branch if write
bmi XRW.Write bmi XRW.Write
* jmp XRW.Write
.7 jsr XRW.Read .7 jsr XRW.Read
bcs .3 if bad read bcs .3 if bad read
@ -387,7 +385,7 @@ XRW.SectorIO lda #2
XRW.Write lda IO.D2.ReadProt,x PREWRITE MODE XRW.Write lda IO.D2.ReadProt,x PREWRITE MODE
.LIST OFF .LIST OFF
lda IO.D2.ReadMode,x * lda IO.D2.ReadMode,x
lda nbuf2 lda nbuf2
sta pcl sta pcl
@ -521,13 +519,11 @@ wrefd5 ldx #$60 (2) restore slot. warning: modified by prenib
clc (2) clc (2)
jsr XRW.Write.RTS (6+6) lda #$FF (2)
* lda #$FF (2)
nop (2) nop (2)
nop (2) nop (2)
* jsr wnibl (15,6) write turn off byte. jsr wnibl (15,6) write turn off byte.
XRW.ReadMode lda IO.D2.ReadMode,x out of write mode XRW.ReadMode lda IO.D2.ReadMode,x out of write mode
lda IO.D2.WShift,x to read mode. lda IO.D2.WShift,x to read mode.
@ -730,8 +726,10 @@ XRW.Seek ldx XRW.UnitIndex
cmp XRW.TargetQTrack cmp XRW.TargetQTrack
beq .8 beq .8
sta IO.D2.Ph0Off,y pha
sta IO.D2.Ph0Off,x sta IO.D2.Ph0Off,x
sta IO.D2.Ph0Off,y
bcs .2 bcs .2
* Current < Target, must move in * Current < Target, must move in
@ -746,8 +744,6 @@ XRW.Seek ldx XRW.UnitIndex
sta XRW.CurrentQTrack sta XRW.CurrentQTrack
pha
and #6 and #6
ora A2L ora A2L
tax tax
@ -759,38 +755,22 @@ XRW.Seek ldx XRW.UnitIndex
* Current < Target, must move in * Current < Target, must move in
inc inc
inc
.HS B0 BCS .3 and #6
* Current > Target, must move out
.3 dec
and #6
ora A2L ora A2L
tay
bcc .4
* move out : invert 2 phases
phx
tax
pla
.4 tay
sta IO.D2.Ph0On,x sta IO.D2.Ph0On,x
lda $C0EC
sta IO.D2.Ph0On,y sta IO.D2.Ph0On,y
lda $C0EC
jsr XRW.WaitSeekTime jsr XRW.WaitSeekTime
bra .1 bra .1
.8 jsr XRW.Wait25600usec .8 jsr XRW.Wait25600usec
sta IO.D2.Ph0Off,y
sta IO.D2.Ph0Off,x sta IO.D2.Ph0Off,x
sta IO.D2.Ph0Off,y
rts rts
*-------------------------------------- *--------------------------------------
XRW.WaitSeekTime XRW.WaitSeekTime

View File

@ -96,7 +96,7 @@ CS.RUN lda hSocket
>PUSHB hSocket >PUSHB hSocket
>PUSHBI 0 >PUSHBI 0
>LIBCALL hLIBCIFS,LIBCIFS.Negotiate >LIBCALL hLIBCIFS,LIBCIFS.Negotiate
bcs .9 bcs CS.INIT.RTS
sta hSMBContext sta hSMBContext
@ -117,18 +117,16 @@ CS.RUN lda hSocket
>LIBCALL hLIBCIFS,LIBCIFS.TreeConnect >LIBCALL hLIBCIFS,LIBCIFS.TreeConnect
bcs .9 bcs .9
* lda #3 >PUSHB hSocket
* >SYSCALL ArgV >PUSHB hSMBContext
* >PUSHYA lda #3
>SYSCALL ArgV
>PUSHYA
>LIBCALL hLIBCIFS,LIBCIFS.Mount
* >PUSHW L.CS.CALLBACK sta hMount
* >SYSCALL Mount lda #0
* bcs .9
* sta hMount
.8 lda #0
clc clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------

View File

@ -405,6 +405,7 @@ CORE.PSLeave ldx #PSCTX.SIZE-1
dey dey
dex dex
bpl .1 bpl .1
rts rts
*-------------------------------------- *--------------------------------------
CORE.PSExec lda (pPS) CORE.PSExec lda (pPS)
@ -439,6 +440,7 @@ CORE.PSResume sei
inx inx
bne .1 bne .1
.2 ldy #S.PS.PC+1 .2 ldy #S.PS.PC+1
lda (pPS),y lda (pPS),y
pha pha