mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-07 17:29:34 +00:00
Kernel 0.94
This commit is contained in:
parent
014bc70ed7
commit
7eefe84082
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -364,8 +364,9 @@ CS.RUN.LL.DISKII
|
|||
sec
|
||||
rts
|
||||
|
||||
.8 ldx #0
|
||||
jsr CS.RUN.SeekToX
|
||||
.8
|
||||
* ldx #0
|
||||
* jsr CS.RUN.SeekToX
|
||||
|
||||
>PUSHW L.MSG.CRLF
|
||||
>PUSHBI 0
|
||||
|
@ -434,8 +435,8 @@ CS.RUN.LL.DISKII.V
|
|||
dec Counter
|
||||
bne .1
|
||||
|
||||
ldx #0
|
||||
jsr CS.RUN.SeekToX
|
||||
* ldx #0
|
||||
* jsr CS.RUN.SeekToX
|
||||
|
||||
>PUSHW L.MSG.CRLF
|
||||
>PUSHBI 0
|
||||
|
|
|
@ -6,12 +6,14 @@ TCP.PORT.CIFS .EQ 445
|
|||
S.SMB.HEADER.PROTO .EQ 0 \xFF 'SMB'
|
||||
S.SMB.HEADER.CMD .EQ 4
|
||||
S.SMB.HEADER.CMD.NEGOTIATE .EQ $72
|
||||
S.SMB.HEADER.CMD.SESSION.SETUP.ANDX .EQ $73
|
||||
S.SMB.HEADER.CMD.TREE.CONNECT.ANDX .EQ $75
|
||||
S.SMB.HEADER.STATUS .EQ 5
|
||||
S.SMB.HEADER.FLAGS .EQ 9
|
||||
S.SMB.HEADER.FLAGS.LOCKANDREADOK .EQ 1
|
||||
S.SMB.HEADER.FLAGS.REPLY .EQ 128
|
||||
S.SMB.HEADER.FLAGS2 .EQ 10
|
||||
S.SMB.HEADER.FLAGS2.LONGNAMES .EQ %00000000.00000001
|
||||
S.SMB.HEADER.FLAGS2.LONGNAMES .EQ %00000000.01000001
|
||||
S.SMB.HEADER.FLAGS2.EAS .EQ %00000000.00000010
|
||||
S.SMB.HEADER.FLAGS2.SECSIGN .EQ %00000000.00000100
|
||||
S.SMB.HEADER.FLAGS2.DFS .EQ %00010000.00000000
|
||||
|
@ -30,4 +32,3 @@ S.SMB.HEADER .EQ 32
|
|||
*--------------------------------------
|
||||
MAN
|
||||
SAVE INC/NET.SMB.I
|
||||
|
||||
|
|
|
@ -2,12 +2,6 @@ NEW
|
|||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
* prodos universal boot loader. this is the second stage boot
|
||||
* for all apple manufactured apple ii disk drives.
|
||||
* it is located at block zero (0) of a prodos or sos formatted
|
||||
* disk(ette). if booted in apple /// native mode, the regular
|
||||
* sos boot will be attempted.
|
||||
*--------------------------------------
|
||||
dcmd .EQ $42 disk command (=1 for read)
|
||||
unit .EQ $43 (16*slot)+(128*(drive-1))
|
||||
buff .EQ $44 ram address
|
||||
|
@ -20,7 +14,7 @@ idxp .EQ $4e index byte pointer
|
|||
iobuff .EQ $60
|
||||
* the following are for disk ii only
|
||||
dbuf .EQ $26
|
||||
slotz .EQ $2b
|
||||
BB.Slotn0 .EQ $2b
|
||||
oddbits .EQ $3c
|
||||
sector .EQ $3d
|
||||
|
||||
|
@ -116,8 +110,9 @@ modboot ldy mods-1,x
|
|||
cpx #8
|
||||
bcs .1
|
||||
|
||||
lda endcode-1,x
|
||||
sta zzzend-1,x
|
||||
lda endcode-1,x
|
||||
sta zzzend-1,x
|
||||
|
||||
.1 dex
|
||||
bne modboot
|
||||
|
||||
|
@ -125,9 +120,9 @@ modboot ldy mods-1,x
|
|||
sta BB.HdrPtr
|
||||
stx BB.HdrPtr+1 X=0
|
||||
|
||||
lda /d2io reset device entry
|
||||
lda /BB.ReadBlock reset device entry
|
||||
sta dent+1 to point at disk ii routines.
|
||||
lda #d2io get low addr (must be <$80)
|
||||
lda #BB.ReadBlock get low addr (must be <$80)
|
||||
*--------------------------------------
|
||||
ndsk2 ldy #0 make sure y=0 again.
|
||||
cmp #$f9
|
||||
|
@ -183,22 +178,23 @@ nxdent1 clc
|
|||
|
||||
nxdent2 sty idxl
|
||||
|
||||
ldy #0
|
||||
ldy #6
|
||||
|
||||
lookpro lda (idxl),y look for matching name.
|
||||
cmp BB.ProDOS,y
|
||||
bne nxdent branch if no match.
|
||||
|
||||
iny
|
||||
cpy #7
|
||||
bne lookpro
|
||||
dey
|
||||
bpl lookpro
|
||||
|
||||
ldy #$10 get file type & index block addr.
|
||||
* ldy #$10 get file type & index block addr.
|
||||
* lda (idxl),y
|
||||
* cmp #S.FI.T.SYS is it a system file?
|
||||
* bne booterr
|
||||
|
||||
iny
|
||||
* iny
|
||||
|
||||
ldy #$11
|
||||
|
||||
lda (idxl),y
|
||||
sta blok
|
||||
iny
|
||||
|
@ -252,7 +248,7 @@ mods .DA #mod1,#mod2,#mod3,#mod4,#mod5,#mod6,#mod7,#mod8,#mod8+1,#mod9
|
|||
mods.cnt .EQ *-mods
|
||||
chgs .DA #chg1,#chg2,#chg3,#chg4,#chg5,#chg6,#chg7,#$91,#BB.HdrPtr,#BB.HdrTrk
|
||||
|
||||
endcode ldx slotz
|
||||
endcode ldx BB.Slotn0
|
||||
clc
|
||||
rts
|
||||
|
||||
|
@ -263,7 +259,7 @@ endcode ldx slotz
|
|||
BB.ProDOS .DA #$26 $20 = storage type + 6 = "PRODOS" len
|
||||
.AS "PRODOS"
|
||||
*--------------------------------------
|
||||
d2io lda blok figure out track & sector.
|
||||
BB.ReadBlock lda blok figure out track & sector.
|
||||
and #7 strip track for now.
|
||||
cmp #4
|
||||
and #3
|
||||
|
@ -284,19 +280,20 @@ d2io lda blok figure out track & sector.
|
|||
lda buff+1
|
||||
sta dbuf+1
|
||||
|
||||
ldx slotz
|
||||
ldx BB.Slotn0
|
||||
lda IO.D2.DrvOn,x
|
||||
lda IO.D2.Ph0Off,x
|
||||
|
||||
jsr BB.Seek go read sector.
|
||||
|
||||
inc dbuf+1 bump address
|
||||
inc sector
|
||||
inc sector and sector #
|
||||
bcs quitrd branch if error.
|
||||
bcs .9 branch if error.
|
||||
|
||||
jsr BB.Seek
|
||||
|
||||
quitrd ldy IO.D2.DrvOff,x
|
||||
.9 ldy IO.D2.DrvOff,x
|
||||
rts return error status in carry.
|
||||
*--------------------------------------
|
||||
BB.Seek lda BB.HdrTrk get track we're on
|
||||
|
@ -342,7 +339,7 @@ BB.Seek lda BB.HdrTrk get track we're on
|
|||
.4 sta BB.CurrentQTrack
|
||||
|
||||
and #6
|
||||
ora slotz
|
||||
ora BB.Slotn0
|
||||
tax
|
||||
pha
|
||||
tya
|
||||
|
@ -353,8 +350,7 @@ BB.Seek lda BB.HdrTrk get track we're on
|
|||
.5 lda IO.D2.Ph0On,x
|
||||
ply
|
||||
|
||||
lda #114
|
||||
jsr BB.Wait100usecA
|
||||
jsr BB.WaitPh
|
||||
bra .1
|
||||
|
||||
* Last QTrack
|
||||
|
@ -375,34 +371,36 @@ BB.Seek lda BB.HdrTrk get track we're on
|
|||
lda IO.D2.Ph0On,x
|
||||
|
||||
phx
|
||||
lda #104
|
||||
jsr BB.Wait100usecA
|
||||
jsr BB.WaitPh
|
||||
|
||||
jsr BB.Wait25600usec
|
||||
.80 jsr BB.Wait25600usec
|
||||
|
||||
plx
|
||||
lda IO.D2.Ph0Off,x
|
||||
.80 lda IO.D2.Ph0Off,y
|
||||
lda IO.D2.Ph0Off,y
|
||||
bra BB.Read
|
||||
|
||||
.8 tya
|
||||
beq BB.Read
|
||||
|
||||
jsr D2.Wait25600usec
|
||||
pha
|
||||
|
||||
bra .80
|
||||
*--------------------------------------
|
||||
BB.WaitPh lda #204
|
||||
.HS 2C BIT ABS
|
||||
BB.Wait25600usec
|
||||
lda #0
|
||||
BB.Wait100usecA sec (6) JSR (2)
|
||||
|
||||
sec (6) JSR (2)
|
||||
|
||||
.1 ldx #19 (2)
|
||||
|
||||
.2 dex (2) delay 86 usec.
|
||||
bne .2 (2+) 2 + 5x16 + 2 + 2
|
||||
|
||||
* ldx slotz (3)
|
||||
* bit IO.D2.RData,x (4) Slow down ACC boards
|
||||
ldx BB.Slotn0 (3)
|
||||
bit IO.D2.RData,x (4) Slow down ACC boards
|
||||
|
||||
sbc #1 (2)
|
||||
bne .1 (2+)
|
||||
|
@ -420,7 +418,7 @@ BB.Trk2Qtrk asl x2
|
|||
.1 adc #$ff SELF MODIFIED
|
||||
BB.Trk2Qtrk.RTS rts
|
||||
*--------------------------------------
|
||||
BB.Read ldx slotz
|
||||
BB.Read ldx BB.Slotn0
|
||||
|
||||
ldy #$7f allow 127 mistakes.
|
||||
sty BB.RetryCnt
|
||||
|
@ -431,6 +429,7 @@ tryread plp fix stack.
|
|||
rdhead sec anticipate error.
|
||||
dec BB.RetryCnt if = 0 then give up!
|
||||
beq BB.Trk2Qtrk.RTS branch if can't fine/read sector.
|
||||
|
||||
clc indicate reading header.
|
||||
rddata php carry set if reading sector.
|
||||
|
||||
|
@ -482,13 +481,13 @@ rdhd1 ldy #3 read in trk,sect,&volume #.
|
|||
mod8 .EQ *-zzstart
|
||||
rdhd2 sta (BB.HdrPtr),y save last result in .. , BB.HdrTrk , BB.HdrVol , ..
|
||||
|
||||
rdhd3 lda IO.D2.RData,x
|
||||
rdhd3 lda IO.D2.RData,x
|
||||
bpl rdhd3
|
||||
|
||||
rol
|
||||
sta oddbits save odd bits (7,5,3,1)
|
||||
|
||||
rdhd4 lda IO.D2.RData,x
|
||||
rdhd4 lda IO.D2.RData,x
|
||||
bpl rdhd4
|
||||
|
||||
and oddbits combine even and odd to form value.
|
||||
|
@ -562,7 +561,7 @@ twobit dex all done with this group?
|
|||
iny
|
||||
bne twobit
|
||||
*--------------------------------------
|
||||
zzzend ldx slotz
|
||||
zzzend ldx BB.Slotn0
|
||||
clc indicate good read.
|
||||
rts
|
||||
|
||||
|
|
|
@ -25,25 +25,30 @@ D2Recalibrate >PULLB DrvSlt
|
|||
jsr CheckDiskII
|
||||
bcs .9
|
||||
|
||||
stz MoveTo
|
||||
lda #162
|
||||
sta MoveFrom
|
||||
|
||||
jsr D2MoveHead.1
|
||||
|
||||
jsr D2.Wait25600usec
|
||||
jsr D2.Wait25600usec
|
||||
|
||||
ldx Slotn0
|
||||
lda IO.D2.Ph0On,x
|
||||
jsr D2.Wait25600usec
|
||||
jsr D2.Wait25600usec
|
||||
|
||||
ldy #166
|
||||
|
||||
.1 lda IO.D2.Ph0Off,x
|
||||
tya
|
||||
|
||||
and #6
|
||||
ora Slotn0
|
||||
tax
|
||||
lda IO.D2.Ph0On,x
|
||||
|
||||
phx
|
||||
lda #204
|
||||
jsr D2.Wait100usecA
|
||||
plx
|
||||
dey
|
||||
dey
|
||||
cpy #$fe
|
||||
bne .1
|
||||
|
||||
ldx Slotn0
|
||||
lda IO.D2.Ph0Off,x
|
||||
jsr D2.Wait25600usec
|
||||
jsr D2.Wait25600usec
|
||||
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*/--------------------------------------
|
||||
|
@ -104,7 +109,7 @@ D2MoveHead.1 ldy #0
|
|||
.5 lda IO.D2.Ph0On,x
|
||||
ply
|
||||
|
||||
lda #54
|
||||
lda #204
|
||||
jsr D2.Wait100usecA
|
||||
bra .1
|
||||
|
||||
|
@ -126,10 +131,10 @@ D2MoveHead.1 ldy #0
|
|||
lda IO.D2.Ph0On,x
|
||||
|
||||
phx
|
||||
lda #154
|
||||
lda #204
|
||||
jsr D2.Wait100usecA
|
||||
|
||||
* jsr D2.Wait25600usec
|
||||
jsr D2.Wait25600usec
|
||||
|
||||
plx
|
||||
lda IO.D2.Ph0Off,x
|
||||
|
@ -148,7 +153,7 @@ D2.Wait25600usec
|
|||
lda #0
|
||||
D2.Wait100usecA sec (2)
|
||||
|
||||
.1 ldx #18 (2)
|
||||
.1 ldx #19 (2)
|
||||
|
||||
.2 dex (2)
|
||||
bne .2 (3)
|
||||
|
@ -183,6 +188,13 @@ D2TrkWrite16s >PULLW ZPPtr1
|
|||
jsr CheckDiskII
|
||||
bcs .9
|
||||
|
||||
ldx Slotn0
|
||||
|
||||
lda IO.D2.Ph0Off,x
|
||||
lda IO.D2.Ph1Off,x
|
||||
lda IO.D2.Ph2Off,x
|
||||
lda IO.D2.Ph3Off,x
|
||||
|
||||
>LDYAI TRACK16.LEN+1
|
||||
>SYSCALL2 getmem
|
||||
bcs .9
|
||||
|
|
|
@ -18,11 +18,11 @@ TRACK16.LEN .EQ 6400
|
|||
TRACK16.GAP1 .EQ 80 800 bits
|
||||
* 16 * (
|
||||
*Address field = D5AA96 + 4x2 + DEAAEB = 14 112 bits
|
||||
TRACK16.GAP2 .EQ 5 60 bits
|
||||
TRACK16.GAP2 .EQ 6 60 bits
|
||||
*Data field = D5AAAD + 342 + CS + DEAAEB = 349 2792 bits
|
||||
TRACK16.GAP3 .EQ 17 170 bits
|
||||
* )
|
||||
* 80 + 16 * (14 + 6 + 349 + 17) = 6256 49984 bits
|
||||
* 80 + 16 * (14 + 6 + 349 + 17) = 6256 50144 bits
|
||||
*--------------------------------------
|
||||
TRACK9.LEN .EQ 6511
|
||||
*--------------------------------------
|
||||
|
@ -537,6 +537,39 @@ ProDOS.Boot .HS 01.38.b0.03.4c.32.a1.86.43.c9.03.08.8a.29.70.4a
|
|||
.HS d0.e3.a0.7f.84.52.08.28.38.c6.52.f0.ce.18.08.88
|
||||
.HS f0.f5.bd.8c.c0.10.fb.00.00.00.00.00.00.00.00.00
|
||||
*--------------------------------------
|
||||
SOS.Boot .HS 4c.6e.a0.53.4f.53.20.42.4f.4f.54.20.20.31.2e.31
|
||||
.HS 20.0a.53.4f.53.2e.4b.45.52.4e.45.4c.20.20.20.20
|
||||
.HS 20.53.4f.53.20.4b.52.4e.4c.49.2f.4f.20.45.52.52
|
||||
.HS 4f.52.08.00.46.49.4c.45.20.27.53.4f.53.2e.4b.45
|
||||
.HS 52.4e.45.4c.27.20.4e.4f.54.20.46.4f.55.4e.44.25
|
||||
.HS 00.49.4e.56.41.4c.49.44.20.4b.45.52.4e.45.4c.20
|
||||
.HS 46.49.4c.45.3a.00.00.0c.00.1e.0e.1e.04.a4.78.d8
|
||||
.HS a9.77.8d.df.ff.a2.fb.9a.2c.10.c0.a9.40.8d.ca.ff
|
||||
.HS a9.07.8d.ef.ff.a2.00.ce.ef.ff.8e.00.20.ad.00.20
|
||||
.HS d0.f5.a9.01.85.e0.a9.00.85.e1.a9.00.85.85.a9.a2
|
||||
.HS 85.86.20.be.a1.e6.e0.a9.00.85.e6.e6.86.e6.86.e6
|
||||
.HS e6.20.be.a1.a0.02.b1.85.85.e0.c8.b1.85.85.e1.d0
|
||||
.HS ea.a5.e0.d0.e6.ad.6c.a0.85.e2.ad.6d.a0.85.e3.18
|
||||
.HS a5.e3.69.02.85.e5.38.a5.e2.ed.23.a4.85.e4.a5.e5
|
||||
.HS e9.00.85.e5.a0.00.b1.e2.29.0f.cd.11.a0.d0.21.a8
|
||||
.HS b1.e2.d9.11.a0.d0.19.88.d0.f6.a0.00.b1.e2.29.f0
|
||||
.HS c9.20.f0.3e.c9.f0.f0.08.ae.64.a0.a0.13.4c.d4.a1
|
||||
.HS 18.a5.e2.6d.23.a4.85.e2.a5.e3.69.00.85.e3.a5.e4
|
||||
.HS c5.e2.a5.e5.e5.e3.b0.bc.18.a5.e4.6d.23.a4.85.e2
|
||||
.HS a5.e5.69.00.85.e3.c6.e6.d0.95.ae.4f.a0.a0.1b.4c
|
||||
.HS d4.a1.a0.11.b1.e2.85.e0.c8.b1.e2.85.e1.ad.66.a0
|
||||
.HS 85.85.ad.67.a0.85.86.20.be.a1.ad.68.a0.85.85.ad
|
||||
.HS 69.a0.85.86.ad.00.0c.85.e0.ad.00.0d.85.e1.20.be
|
||||
.HS a1.a2.07.bd.00.1e.dd.21.a0.f0.08.ae.64.a0.a0.13
|
||||
.HS 4c.d4.a1.ca.10.ed.a9.00.85.e7.e6.e7.e6.86.e6.86
|
||||
.HS a6.e7.bd.00.0c.85.e0.bd.00.0d.85.e1.a5.e0.d0.04
|
||||
.HS a5.e1.f0.06.20.be.a1.4c.8a.a1.18.ad.6a.a0.6d.08
|
||||
.HS 1e.85.e8.ad.6b.a0.6d.09.1e.85.e9.6c.e8.00.a9.01
|
||||
.HS 85.87.a5.e0.a6.e1.20.79.f4.b0.01.60.ae.32.a0.a0
|
||||
.HS 09.4c.d4.a1.84.e7.38.a9.28.e5.e7.4a.18.65.e7.a8
|
||||
.HS bd.29.a0.99.a7.05.ca.88.c6.e7.d0.f4.ad.40.c0.4c
|
||||
.HS ef.a1.00.00.00.00.00.00.00.00.00.00.00.00.00.00
|
||||
*--------------------------------------
|
||||
ProDOSFX.Boot .INB usr/src/lib/libblkdev.s.bb
|
||||
*--------------------------------------
|
||||
* Block 2 : First DIR block
|
||||
|
|
|
@ -563,7 +563,7 @@ XRW.Wait100usec lda #1
|
|||
XRW.Wait100usecA
|
||||
sec (2)
|
||||
|
||||
.1 ldx #16 (2)
|
||||
.1 ldx #17 (2)
|
||||
|
||||
.2 dex (2)
|
||||
bne .2 (3)
|
||||
|
@ -792,7 +792,7 @@ XRW.Seek pha save target track
|
|||
.5 lda IO.D2.Ph0On,x
|
||||
ply
|
||||
|
||||
lda #94
|
||||
lda #204
|
||||
jsr XRW.Wait100usecA
|
||||
bra .1
|
||||
|
||||
|
@ -812,11 +812,11 @@ XRW.Seek pha save target track
|
|||
lda IO.D2.Ph0On,x
|
||||
|
||||
phx
|
||||
lda #154
|
||||
lda #204
|
||||
jsr XRW.Wait100usecA
|
||||
|
||||
* lda #0 wait 25.6 ms
|
||||
* jsr XRW.Wait100usecA
|
||||
lda #0 wait 25.6 ms
|
||||
jsr XRW.Wait100usecA
|
||||
|
||||
plx
|
||||
lda IO.D2.Ph0Off,x
|
||||
|
|
191
SBIN/CIFSD.S.txt
191
SBIN/CIFSD.S.txt
|
@ -3,15 +3,16 @@ NEW
|
|||
.LIST OFF
|
||||
.OP 65C02 Target CPU, must match CPU level in header
|
||||
.OR $2000 usualy $2000, but any value > $100 allowed
|
||||
.TF SBIN/CIFSD
|
||||
.TF sbin/cifsd
|
||||
*--------------------------------------
|
||||
.INB INC/MACROS.I
|
||||
.INB INC/A2OSX.I
|
||||
.INB INC/ETH.I
|
||||
.INB INC/LIBTCPIP.I
|
||||
.INB INC/NET.SMB.I
|
||||
.INB inc/macros.i
|
||||
.INB inc/a2osx.i
|
||||
.INB inc/mli.e.i
|
||||
.INB inc/eth.i
|
||||
.INB inc/libtcpip.i
|
||||
.INB inc/net.smb.i
|
||||
*--------------------------------------
|
||||
TIMEOUT.MAX .EQ 100 10 sec.
|
||||
TIMEOUT.MAX .EQ 100 20 sec.
|
||||
*--------------------------------------
|
||||
* Zero Page Segment, up to 32 bytes
|
||||
*--------------------------------------
|
||||
|
@ -19,6 +20,8 @@ TIMEOUT.MAX .EQ 100 10 sec.
|
|||
.OR ZPBIN
|
||||
ZS.START
|
||||
ZPIPCfgPtr .BS 2
|
||||
hResp .BS 1
|
||||
ZPRespPtr .BS 2
|
||||
TimeOut .BS 1
|
||||
ZS.END
|
||||
.ED
|
||||
|
@ -44,9 +47,12 @@ CS.START cld
|
|||
.DA CS.DOEVENT
|
||||
.DA CS.QUIT
|
||||
L.LIBTCPIP .DA LIBTCPIP
|
||||
L.MSG.TCPIPERR .DA MSG.TCPIPERR
|
||||
L.MSG.USAGE .DA MSG.USAGE
|
||||
L.MSG.UNKNOWN .DA MSG.UNKNOWN
|
||||
L.SMB.Negotiate .DA SMB.Negotiate
|
||||
L.SMB.NegReq .DA SMB.NegReq
|
||||
L.SMB.SessSetup .DA SMB.SessSetup
|
||||
L.SMB.TreeConnReq .DA SMB.TreeConnReq
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Called once at process creation
|
||||
|
@ -56,31 +62,44 @@ CS.INIT >LDYA L.LIBTCPIP
|
|||
>SYSCALL LoadLib
|
||||
bcs .9
|
||||
sta hLIBTCPIP
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
|
||||
bcs .9
|
||||
>STYA ZPIPCfgPtr
|
||||
lda (ZPIPCfgPtr) Configured ?
|
||||
bmi .8
|
||||
lda #E.SYN
|
||||
sec
|
||||
rts
|
||||
|
||||
.8 clc
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
* Called until exit with CS
|
||||
* if RUN exits with CC, RUN entered again
|
||||
*--------------------------------------
|
||||
CS.RUN jsr CS.RUN.CheckArgs
|
||||
CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
|
||||
bcs .9
|
||||
|
||||
>STYA ZPIPCfgPtr
|
||||
lda (ZPIPCfgPtr) Configured ?
|
||||
bmi .1
|
||||
|
||||
>LDYA L.MSG.TCPIPERR
|
||||
>SYSCALL PutS
|
||||
|
||||
lda #E.SYN
|
||||
sec
|
||||
rts
|
||||
|
||||
.1 jsr CS.RUN.CheckArgs
|
||||
bcs .90
|
||||
|
||||
jsr CS.RUN.Connect
|
||||
>DEBUG
|
||||
bcs .9
|
||||
|
||||
>SLEEP
|
||||
|
||||
jsr CS.RUN.Negotiate
|
||||
bcs .9
|
||||
|
||||
jsr CS.RUN.SessSetup
|
||||
bcs .9
|
||||
|
||||
lda #0
|
||||
sec
|
||||
clc
|
||||
.9 rts
|
||||
|
||||
.90 >LDYA L.MSG.USAGE
|
||||
>SYSCALL PutS
|
||||
lda #E.SYN
|
||||
|
@ -95,38 +114,45 @@ CS.RUN.CheckArgs
|
|||
|
||||
lda #TIMEOUT.MAX
|
||||
sta TimeOut
|
||||
|
||||
.1 >PUSHEA.G SA.REMOTE+S.SOCKADDR.ADDR
|
||||
lda #1
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
||||
bcc .2
|
||||
|
||||
>SLEEP
|
||||
lda TimeOut
|
||||
bne .1
|
||||
|
||||
>PUSHW L.MSG.UNKNOWN
|
||||
lda #1
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHBI 2
|
||||
>LDYA L.MSG.UNKNOWN
|
||||
>SYSCALL PrintF
|
||||
sec
|
||||
.9 rts
|
||||
|
||||
.2 lda #AF.INET
|
||||
>STA.G SA.LOCAL
|
||||
>STA.G SA.REMOTE
|
||||
ldy #S.IPCFG.IP+3
|
||||
|
||||
.3 lda (ZPIPCfgPtr),y
|
||||
pha
|
||||
dey
|
||||
cpy #S.IPCFG.IP-1
|
||||
bne .3
|
||||
|
||||
ldy #SA.REMOTE+S.SOCKADDR.PORT
|
||||
.4 pla
|
||||
sta (pData),y
|
||||
iny
|
||||
cpy #SA.REMOTE+S.SOCKADDR.PORT+4
|
||||
bne .4
|
||||
|
||||
lda #TCP.PORT.CIFS
|
||||
>STA.G SA.REMOTE+S.SOCKADDR.PORT
|
||||
iny
|
||||
|
@ -138,7 +164,7 @@ CS.RUN.CheckArgs
|
|||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.Connect >PUSHBI 0 no protocol
|
||||
lda #S.SOCKET.T.SEQPACKET
|
||||
lda #S.SOCKET.T.SEQPKT
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||
bcs .9
|
||||
|
||||
|
@ -148,20 +174,70 @@ CS.RUN.Connect >PUSHBI 0 no protocol
|
|||
>LDA.G hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||
bcs .9
|
||||
|
||||
>PUSHEA.G SA.REMOTE
|
||||
>LDA.G hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.Negotiate
|
||||
>PUSHWI SMB.Negotiate.end-SMB.Negotiate
|
||||
>PUSHW L.SMB.Negotiate
|
||||
lda #TIMEOUT.MAX
|
||||
sta TimeOut
|
||||
|
||||
.1 >PUSHWI SMB.NegReq.end-SMB.NegReq
|
||||
>PUSHW L.SMB.NegReq
|
||||
>LDA.G hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
||||
bcc .2
|
||||
|
||||
>SLEEP
|
||||
ldx TimeOut
|
||||
bne .1
|
||||
|
||||
bra .99
|
||||
|
||||
.2 >SLEEP
|
||||
|
||||
>LDA.G hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
|
||||
bcc .3
|
||||
|
||||
tay
|
||||
beq .2
|
||||
|
||||
bra .99
|
||||
|
||||
.3 stx hResp
|
||||
>STYA ZPRespPtr
|
||||
|
||||
ldy #$3f
|
||||
lda (ZPRespPtr),y
|
||||
iny
|
||||
ora (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
|
||||
*--------------------------------------
|
||||
* Called if option S.PS.F.EVENT enabled in Header
|
||||
* Timer Event : every 10th seconds
|
||||
CS.RUN.SessSetup
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.DOEVENT lda (pEvent)
|
||||
bpl .9 is it a TIMER event?
|
||||
|
@ -174,7 +250,10 @@ CS.DOEVENT lda (pEvent)
|
|||
* Called once, when RUN exited with CS
|
||||
* Put code for unloading LIB here
|
||||
*--------------------------------------
|
||||
CS.QUIT lda hLIBTCPIP
|
||||
CS.QUIT >LDA.G hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
||||
|
||||
lda hLIBTCPIP
|
||||
beq .8
|
||||
>SYSCALL UnloadLib
|
||||
|
||||
|
@ -185,18 +264,22 @@ CS.END
|
|||
*--------------------------------------
|
||||
* Initialized DATA
|
||||
*--------------------------------------
|
||||
LIBTCPIP .AZ "LIBTCPIP"
|
||||
LIBTCPIP .AZ "libtcpip"
|
||||
hLIBTCPIP .BS 1
|
||||
MSG.TCPIPERR .AZ "HTTPD:TCP/IP Not initialized properly."
|
||||
MSG.USAGE .AZ "Usage : CIFSD <ip|host> sharename mountpoint"
|
||||
MSG.UNKNOWN .AZ "%s: Unknown host\r\n"
|
||||
*--------------------------------------
|
||||
SMB.Negotiate .DA #$FF
|
||||
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.HEADER.CMD.NEGOTIATE
|
||||
.HS 00000000
|
||||
.DA #0 S.SMB.HEADER.FLAGS
|
||||
.DA /S.SMB.HEADER.FLAGS2.LONGNAMES
|
||||
.DA #S.SMB.HEADER.FLAGS2.LONGNAMES
|
||||
.DA S.SMB.HEADER.FLAGS2.LONGNAMES
|
||||
.DA 0 PIDHI
|
||||
.HS 0000000000000000 SECFEAT
|
||||
.DA 0 RSVD
|
||||
|
@ -205,13 +288,45 @@ SMB.Negotiate .DA #$FF
|
|||
.DA 0 UID
|
||||
.DA 0 MID
|
||||
.DA #0 WORD COUNT
|
||||
.DA /SMB.Negotiate.end-*
|
||||
.DA #SMB.Negotiate.end-*
|
||||
.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"
|
||||
SMB.Negotiate.end .EQ *
|
||||
.DA #2
|
||||
.AZ "SMB 2.002"
|
||||
.DA #2
|
||||
.AZ "SMB 2.???"
|
||||
SMB.NegReq.end .EQ *
|
||||
*--------------------------------------
|
||||
* Per Process DATA segement (0 filled before INIT)
|
||||
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.HEADER.CMD.SESSION.SETUP.ANDX
|
||||
|
||||
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.HEADER.CMD.TREE.CONNECT.ANDX
|
||||
|
||||
SMB.TreeConnReq.end .EQ *
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
|
@ -229,5 +344,5 @@ DS.END
|
|||
.ED
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/SBIN/CIFSD
|
||||
SAVE usr/src/sbin/cifsd
|
||||
ASM
|
||||
|
|
|
@ -250,9 +250,9 @@ CS.RUN >PUSHB DevID
|
|||
|
||||
lda (pBuf)
|
||||
cmp #$ff
|
||||
beq .8
|
||||
beq .23
|
||||
cmp #1
|
||||
beq .8
|
||||
beq .23
|
||||
|
||||
>PUSHW L.MSG.DBG
|
||||
|
||||
|
@ -265,7 +265,7 @@ CS.RUN >PUSHB DevID
|
|||
|
||||
>PUSHBI 50
|
||||
>SYSCALL printf
|
||||
.FIN
|
||||
.23 .FIN
|
||||
|
||||
ldx #0
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user