mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-21 06:29:08 +00:00
ProDOS.FX:XCLK support, PM.VEDRIVE
This commit is contained in:
parent
d249f0c0b9
commit
afc4e61dc9
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -900,7 +900,7 @@ LA021 jsr BS.KW.FRE
|
|||||||
|
|
||||||
lda #$00
|
lda #$00
|
||||||
sta BS.MEMSIZE
|
sta BS.MEMSIZE
|
||||||
jmp LA089 Z
|
bra LA089 Z
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BS.KW.FRE stz BS.TXTTAB
|
BS.KW.FRE stz BS.TXTTAB
|
||||||
|
|
||||||
@ -937,7 +937,7 @@ LA07D lda AS.HIMEM+1
|
|||||||
lda AS.HIMEM
|
lda AS.HIMEM
|
||||||
sta BS.MEMSIZE
|
sta BS.MEMSIZE
|
||||||
sta AS.STRINGSTART
|
sta AS.STRINGSTART
|
||||||
|
*--------------------------------------
|
||||||
LA089 clc
|
LA089 clc
|
||||||
beq LA08D
|
beq LA08D
|
||||||
|
|
||||||
@ -999,7 +999,7 @@ LA0E0 sta XBBDA
|
|||||||
|
|
||||||
LA0F8 lda #BS.E.NOBUFFER
|
LA0F8 lda #BS.E.NOBUFFER
|
||||||
LA0FA rts
|
LA0FA rts
|
||||||
|
*--------------------------------------
|
||||||
LA0FB clc
|
LA0FB clc
|
||||||
|
|
||||||
LA0FC lda ZP.A2L
|
LA0FC lda ZP.A2L
|
||||||
@ -1039,7 +1039,7 @@ LA10E ldy #$00
|
|||||||
|
|
||||||
LA12F clc
|
LA12F clc
|
||||||
rts
|
rts
|
||||||
|
*--------------------------------------
|
||||||
LA131 jsr LA160
|
LA131 jsr LA160
|
||||||
bcs LA12F
|
bcs LA12F
|
||||||
|
|
||||||
@ -1119,15 +1119,15 @@ LA199 lda XBBD7
|
|||||||
ldx XBBD9
|
ldx XBBD9
|
||||||
inx
|
inx
|
||||||
|
|
||||||
LA1AD lda (ZP.PCL),y
|
.1 lda (ZP.PCL),y
|
||||||
sta (ZP.A1L),y
|
sta (ZP.A1L),y
|
||||||
iny
|
iny
|
||||||
bne LA1AD
|
bne .1
|
||||||
|
|
||||||
inc ZP.A1H
|
inc ZP.A1H
|
||||||
inc ZP.PCH
|
inc ZP.PCH
|
||||||
dex
|
dex
|
||||||
bne LA1AD
|
bne .1
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -321,7 +321,7 @@ LA3F2 cmp XBBDC
|
|||||||
bne LA3E1
|
bne LA3E1
|
||||||
|
|
||||||
beq LA3DB
|
beq LA3DB
|
||||||
|
*--------------------------------------
|
||||||
LA3FD lda (ZP.A2L),y
|
LA3FD lda (ZP.A2L),y
|
||||||
beq LA410
|
beq LA410
|
||||||
|
|
||||||
|
@ -967,7 +967,7 @@ LB481 inx
|
|||||||
dec ZP.PCL
|
dec ZP.PCL
|
||||||
bne LB481
|
bne LB481
|
||||||
|
|
||||||
BS.KW.NOMON clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BS.CheckFilename
|
BS.CheckFilename
|
||||||
@ -1582,7 +1582,7 @@ BS.KW.ONLINE jsr MON.CROUT
|
|||||||
pla
|
pla
|
||||||
sta MLI.DEVNUM
|
sta MLI.DEVNUM
|
||||||
|
|
||||||
clc
|
BS.KW.NOMON clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BS.Expand2.P .DA #1
|
BS.Expand2.P .DA #1
|
||||||
|
1374
BASIC.FX/BASIC.S.X.txt
Normal file
1374
BASIC.FX/BASIC.S.X.txt
Normal file
File diff suppressed because it is too large
Load Diff
131
BIN/IRC.S.TLS.txt
Normal file
131
BIN/IRC.S.TLS.txt
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
NEW
|
||||||
|
AUTO 3,1
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.TLS jsr CS.RUN.TLS.init
|
||||||
|
|
||||||
|
>PUSHB hSocket
|
||||||
|
>PUSHW L.TLS.CHELLO
|
||||||
|
>PUSHWI TLS.CHELLO.L
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Write
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
lda #TIMEOUT.MAX
|
||||||
|
sta TimeOut
|
||||||
|
|
||||||
|
.1 jsr CS.RUN.TLS.Read
|
||||||
|
bcc .2
|
||||||
|
|
||||||
|
ldx TimeOut
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
lda #MLI.E.IO
|
||||||
|
bra .9
|
||||||
|
|
||||||
|
.2
|
||||||
|
>DEBUG
|
||||||
|
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.9 pha
|
||||||
|
>LDYA L.MSG.TLSKO
|
||||||
|
>SYSCALL PutS
|
||||||
|
pla
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.TLS.init >LDYA L.MSG.TLS
|
||||||
|
>SYSCALL PutS
|
||||||
|
|
||||||
|
lda A2osX.RANDOM16
|
||||||
|
sta ZPPtr1
|
||||||
|
lda A2osX.RANDOM16+1
|
||||||
|
and #$7F
|
||||||
|
sta ZPPtr1+1
|
||||||
|
|
||||||
|
>LDYA L.TLS.CHELLO.UT
|
||||||
|
>STYA ZPPtr2
|
||||||
|
|
||||||
|
ldy #31
|
||||||
|
|
||||||
|
.10 lda (ZPPtr1),y
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
dey
|
||||||
|
bpl .10
|
||||||
|
|
||||||
|
lda #50
|
||||||
|
sta TimeOut
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.TLS.Read >SLEEP
|
||||||
|
|
||||||
|
>PUSHB hSocket
|
||||||
|
>PUSHW ZPBufPtr
|
||||||
|
>PUSHWI 11
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Read
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
cpy #11
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
ldy #TLS.HDR.L-1
|
||||||
|
|
||||||
|
.1 lda (ZPBufPtr),y
|
||||||
|
cmp TLS.HDR,y
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
dey
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
>PUSHW L.MSG.TLS.HDR
|
||||||
|
ldy #TLS.LENGTH
|
||||||
|
lda (ZPBufPtr),y
|
||||||
|
>PUSHA
|
||||||
|
iny
|
||||||
|
lda (ZPBufPtr),y
|
||||||
|
>PUSHA
|
||||||
|
|
||||||
|
ldy #TLS.HS.MT
|
||||||
|
lda (ZPBufPtr),y
|
||||||
|
>PUSHA
|
||||||
|
|
||||||
|
>PUSHBI 3
|
||||||
|
>SYSCALL PrintF
|
||||||
|
|
||||||
|
>SLEEP
|
||||||
|
|
||||||
|
>PUSHB hSocket
|
||||||
|
>PUSHW ZPBufPtr
|
||||||
|
ldy #TLS.LENGTH+1
|
||||||
|
lda (ZPBufPtr),y
|
||||||
|
sec
|
||||||
|
sbc #6
|
||||||
|
tax
|
||||||
|
|
||||||
|
dey
|
||||||
|
lda (ZPBufPtr),y
|
||||||
|
sbc #0
|
||||||
|
>PUSHA
|
||||||
|
|
||||||
|
txa
|
||||||
|
>PUSHA
|
||||||
|
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Read
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
>STYA ZPPtr2 RCVD len
|
||||||
|
|
||||||
|
.99 rts
|
||||||
|
|
||||||
|
.9 lda #MLI.E.IO
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE usr/src/bin/irc.s.tls
|
||||||
|
LOAD usr/src/bin/irc.s
|
||||||
|
ASM
|
@ -5,11 +5,12 @@ NEW
|
|||||||
.OR $2000
|
.OR $2000
|
||||||
.TF bin/irc
|
.TF bin/irc
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TLS .EQ 0
|
TLS .EQ 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB inc/macros.i
|
.INB inc/macros.i
|
||||||
.INB inc/a2osx.i
|
.INB inc/a2osx.i
|
||||||
.INB inc/mli.i
|
.INB inc/mli.i
|
||||||
|
.INB inc/mli.e.i
|
||||||
.INB inc/eth.i
|
.INB inc/eth.i
|
||||||
.INB inc/libtcpip.i
|
.INB inc/libtcpip.i
|
||||||
.DO TLS=1
|
.DO TLS=1
|
||||||
@ -120,7 +121,7 @@ J.ESC .DA CS.RUN.CHARIN.LEFT
|
|||||||
.DA CS.RUN.CHARIN.RIGHT
|
.DA CS.RUN.CHARIN.RIGHT
|
||||||
.DO TLS=1
|
.DO TLS=1
|
||||||
L.MSG.TLS .DA MSG.TLS
|
L.MSG.TLS .DA MSG.TLS
|
||||||
L.MSG.TLS.1 .DA MSG.TLS.1
|
L.MSG.TLS.HDR .DA MSG.TLS.HDR
|
||||||
L.MSG.TLSKO .DA MSG.TLSKO
|
L.MSG.TLSKO .DA MSG.TLSKO
|
||||||
L.TLS.CHELLO .DA TLS.CHELLO
|
L.TLS.CHELLO .DA TLS.CHELLO
|
||||||
L.TLS.CHELLO.UT .DA TLS.CHELLO.UT
|
L.TLS.CHELLO.UT .DA TLS.CHELLO.UT
|
||||||
@ -283,7 +284,7 @@ CS.RUN.CheckArgs
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetBuffers
|
CS.RUN.GetBuffers
|
||||||
>LDYAI 2048
|
>LDYAI 5120
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
@ -353,73 +354,6 @@ CS.RUN.Connect >PUSHBI S.SOCKET.T.STREAM
|
|||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
|
||||||
.DO TLS=1
|
|
||||||
CS.RUN.TLS jsr CS.RUN.TLS.init
|
|
||||||
|
|
||||||
>PUSHB hSocket
|
|
||||||
>PUSHW L.TLS.CHELLO
|
|
||||||
>PUSHWI TLS.CHELLO.L
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Write
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
lda #TIMEOUT.MAX
|
|
||||||
sta TimeOut
|
|
||||||
|
|
||||||
.1 >SLEEP
|
|
||||||
|
|
||||||
>PUSHB hSocket
|
|
||||||
>PUSHW ZPBufPtr
|
|
||||||
>PUSHWI 2048
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Read
|
|
||||||
bcc .2
|
|
||||||
|
|
||||||
ldx TimeOut
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
bra .9
|
|
||||||
|
|
||||||
.2 >STYA ZPPtr2 RCVD len
|
|
||||||
>PUSHW L.MSG.TLS.1
|
|
||||||
>PUSHW ZPPtr2
|
|
||||||
>PUSHBI 2
|
|
||||||
>SYSCALL PrintF
|
|
||||||
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 pha
|
|
||||||
>LDYA L.MSG.TLSKO
|
|
||||||
>SYSCALL PutS
|
|
||||||
pla
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.RUN.TLS.init >LDYA L.MSG.TLS
|
|
||||||
>SYSCALL PutS
|
|
||||||
|
|
||||||
lda A2osX.RANDOM16
|
|
||||||
sta ZPPtr1
|
|
||||||
lda A2osX.RANDOM16+1
|
|
||||||
and #$7F
|
|
||||||
sta ZPPtr1+1
|
|
||||||
|
|
||||||
>LDYA L.TLS.CHELLO.UT
|
|
||||||
>STYA ZPPtr2
|
|
||||||
|
|
||||||
ldy #31
|
|
||||||
|
|
||||||
.10 lda (ZPPtr1),y
|
|
||||||
sta (ZPPtr2),y
|
|
||||||
dey
|
|
||||||
bpl .10
|
|
||||||
|
|
||||||
lda #50
|
|
||||||
sta TimeOut
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
.FIN
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.Register >LDYA L.MSG.REGISTER
|
CS.RUN.Register >LDYA L.MSG.REGISTER
|
||||||
jsr CS.RUN.STATUSMSG
|
jsr CS.RUN.STATUSMSG
|
||||||
@ -1091,6 +1025,10 @@ CS.QUIT ldy #hOutputBuf
|
|||||||
|
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
.8 rts
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
.DO TLS=1
|
||||||
|
.INB usr/src/bin/irc.s.tls
|
||||||
|
.FIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
LIBTCPIP .AZ "libtcpip"
|
LIBTCPIP .AZ "libtcpip"
|
||||||
@ -1104,7 +1042,7 @@ MSG.SKTOK .AZ "Connected\r\n(Exit key is Ctrl-T)\r\n"
|
|||||||
MSG.SKTERR .AZ "Socket Error : $%h\r\n"
|
MSG.SKTERR .AZ "Socket Error : $%h\r\n"
|
||||||
.DO TLS=1
|
.DO TLS=1
|
||||||
MSG.TLS .AZ "TLS:Negociation..."
|
MSG.TLS .AZ "TLS:Negociation..."
|
||||||
MSG.TLS.1 .AZ "TLS:Received %D bytes.\r\n"
|
MSG.TLS.HDR .AZ "TLS:Received %D bytes, Message Type:%h.\r\n"
|
||||||
MSG.TLSKO .AZ "TLS:Negotiation failed."
|
MSG.TLSKO .AZ "TLS:Negotiation failed."
|
||||||
.FIN
|
.FIN
|
||||||
MSG.REGISTER .AZ "Registering User..."
|
MSG.REGISTER .AZ "Registering User..."
|
||||||
@ -1184,6 +1122,11 @@ TLS.CHELLO.L .EQ *-TLS.CHELLO
|
|||||||
TLS.CHELLO.L1 .EQ *-TLS.CHELLO.1
|
TLS.CHELLO.L1 .EQ *-TLS.CHELLO.1
|
||||||
TLS.CHELLO.L2 .EQ *-TLS.CHELLO.2
|
TLS.CHELLO.L2 .EQ *-TLS.CHELLO.2
|
||||||
TLS.CHELLO.LE .EQ *-TLS.CHELLO.E
|
TLS.CHELLO.LE .EQ *-TLS.CHELLO.E
|
||||||
|
*--------------------------------------
|
||||||
|
TLS.HDR .DA #TLS.CT.HS
|
||||||
|
.DA TLS.LV.TLS12
|
||||||
|
TLS.HDR.L .EQ *-TLS.HDR
|
||||||
|
*--------------------------------------
|
||||||
.FIN
|
.FIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
|
@ -2,10 +2,10 @@ NEW
|
|||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.D2.SeekTimeR .EQ 45 LIBBLKDEV Recalibration
|
IO.D2.SeekTimeR .EQ 45 LIBBLKDEV Recalibration
|
||||||
IO.D2.SeekTimeF .EQ 30 LIBBLKDEV Track Formatter
|
IO.D2.SeekTimeF .EQ 56 LIBBLKDEV Track Formatter
|
||||||
IO.D2.SeekTimeB .EQ 30 LIBBLKDEV Boot Block
|
IO.D2.SeekTimeB .EQ 56 LIBBLKDEV Boot Block
|
||||||
IO.D2.SeekTimeP .EQ 30 ProDOS.FX initial
|
IO.D2.SeekTimeP .EQ 28 ProDOS.FX initial
|
||||||
IO.D2.SeekTimeI .EQ 10 ProDOS.FX increment -> until > 128
|
IO.D2.SeekTimeI .EQ 14 ProDOS.FX increment -> until > 128
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.D2.Ph0Off .EQ $C080
|
IO.D2.Ph0Off .EQ $C080
|
||||||
IO.D2.Ph0On .EQ $C081
|
IO.D2.Ph0On .EQ $C081
|
||||||
|
@ -393,12 +393,11 @@ BB.Seek lda BB.HdrTrk get track we're on
|
|||||||
lda #0
|
lda #0
|
||||||
jsr BB.Wait100usecA
|
jsr BB.Wait100usecA
|
||||||
|
|
||||||
|
lda IO.D2.Ph0Off,y
|
||||||
bcc .11
|
bcc .11
|
||||||
|
|
||||||
lda IO.D2.Ph0Off,x
|
lda IO.D2.Ph0Off,x
|
||||||
nop
|
.11
|
||||||
nop
|
|
||||||
.11 lda IO.D2.Ph0Off,y
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BB.Read ldx BB.Slotn0
|
BB.Read ldx BB.Slotn0
|
||||||
|
|
||||||
|
@ -136,14 +136,12 @@ D2.MoveHead.SEI lda D2.CurrentQTrack
|
|||||||
|
|
||||||
jsr D2.Wait25600usec
|
jsr D2.Wait25600usec
|
||||||
|
|
||||||
|
lda IO.D2.Ph0Off,y
|
||||||
bcc .90
|
bcc .90
|
||||||
|
|
||||||
lda IO.D2.Ph0Off,x
|
lda IO.D2.Ph0Off,x
|
||||||
nop
|
|
||||||
nop
|
.90 rts
|
||||||
.90 lda IO.D2.Ph0Off,y
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
D2.SeekPhOnY and #6
|
D2.SeekPhOnY and #6
|
||||||
ora D2.Slotn0
|
ora D2.Slotn0
|
||||||
|
@ -24,7 +24,7 @@ LDR.MSG.IIe .AT "//e"
|
|||||||
LDR.MSG.IIc .AT "//c"
|
LDR.MSG.IIc .AT "//c"
|
||||||
LDR.MSG.IIgs .AT "IIgs"
|
LDR.MSG.IIgs .AT "IIgs"
|
||||||
LDR.MSG.Unknown .AT "Unknown"
|
LDR.MSG.Unknown .AT "Unknown"
|
||||||
LDR.MSG.CLK .AT "XClk"
|
LDR.MSG.CLK .AT "?Clk"
|
||||||
LDR.MSG.RAM .AT "/RAM"
|
LDR.MSG.RAM .AT "/RAM"
|
||||||
LDR.MSG.ROOTERR .AT "ERR reading CATALOG"
|
LDR.MSG.ROOTERR .AT "ERR reading CATALOG"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -430,7 +430,7 @@ LDR.ClkDevDCLK php
|
|||||||
ldy PAKME.DCLK+1
|
ldy PAKME.DCLK+1
|
||||||
jmp LDR.SetupCLK
|
jmp LDR.SetupCLK
|
||||||
|
|
||||||
.9 cld
|
.9 cld
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LDR.ClkDevNCLK php
|
LDR.ClkDevNCLK php
|
||||||
sei
|
sei
|
||||||
@ -520,7 +520,7 @@ LDR.ClkDevNCLK php
|
|||||||
bra LDR.SetupCLK
|
bra LDR.SetupCLK
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LDR.ClkDevTCLK jsr LDR.IsIIc
|
LDR.ClkDevTCLK jsr LDR.IsIIc
|
||||||
bcs .9
|
bcs LDR.ClkDevXCLK
|
||||||
|
|
||||||
stz idxl
|
stz idxl
|
||||||
lda #$C1
|
lda #$C1
|
||||||
@ -532,11 +532,6 @@ LDR.ClkDevTCLK jsr LDR.IsIIc
|
|||||||
.1 jsr LDR.CheckTClkID
|
.1 jsr LDR.CheckTClkID
|
||||||
bcs .7
|
bcs .7
|
||||||
|
|
||||||
* sta SETPAGE2
|
|
||||||
* stz $478,x
|
|
||||||
* stz $7f8,x
|
|
||||||
|
|
||||||
* sta CLRPAGE2
|
|
||||||
stz $478,x
|
stz $478,x
|
||||||
stz $7f8,x
|
stz $7f8,x
|
||||||
|
|
||||||
@ -568,8 +563,31 @@ LDR.ClkDevTCLK jsr LDR.IsIIc
|
|||||||
lda idxl+1
|
lda idxl+1
|
||||||
cmp #$C8
|
cmp #$C8
|
||||||
bne .1
|
bne .1
|
||||||
|
*--------------------------------------
|
||||||
|
LDR.ClkDevXCLK bit RROMBNK2
|
||||||
|
sta $C070
|
||||||
|
bit $FACA
|
||||||
|
bit $FACA
|
||||||
|
bit $FAFE
|
||||||
|
|
||||||
|
lda $DFFE
|
||||||
|
cmp #$4A
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
lda $DFFF
|
||||||
|
cmp #$CD
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
lda $D8F0
|
||||||
|
bit $F851
|
||||||
|
cmp #$AD
|
||||||
|
beq .1
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
|
.1 lda #'X'
|
||||||
|
ldx PAKME.XCLK
|
||||||
|
ldy PAKME.XCLK+1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LDR.SetupCLK stx ZPInBufPtr
|
LDR.SetupCLK stx ZPInBufPtr
|
||||||
sty ZPInBufPtr+1
|
sty ZPInBufPtr+1
|
||||||
|
100
ProDOS.FX/ProDOS.S.XCLK.txt
Normal file
100
ProDOS.FX/ProDOS.S.XCLK.txt
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
NEW
|
||||||
|
AUTO 3,1
|
||||||
|
*--------------------------------------
|
||||||
|
* Driver For ROMXce Clock
|
||||||
|
*--------------------------------------
|
||||||
|
* we can safely use $200, PCL/H, AIL/H (used by TCLK)
|
||||||
|
*--------------------------------------
|
||||||
|
XCLK.API.RTCBUF .EQ $2B0
|
||||||
|
XCLK.API.WRCLK .EQ $C803
|
||||||
|
XCLK.API.RDCLK .EQ $C806
|
||||||
|
*--------------------------------------
|
||||||
|
XCLK.START php
|
||||||
|
sei
|
||||||
|
ldx #XCLK.START2xx.L
|
||||||
|
|
||||||
|
.1 lda XCLK.START2xx,X
|
||||||
|
sta XCLK.CODE2xx,X
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
jsr XCLK.CODE2xx
|
||||||
|
* Minutes
|
||||||
|
lda XCLK.API.RTCBUF+1
|
||||||
|
and #%01111111 59
|
||||||
|
jsr XCLK.BCD2BIN
|
||||||
|
sta TIMELO
|
||||||
|
* Hour
|
||||||
|
lda XCLK.API.RTCBUF+2
|
||||||
|
and #%00111111 23
|
||||||
|
jsr XCLK.BCD2BIN
|
||||||
|
sta TIMELO+1
|
||||||
|
* Day
|
||||||
|
lda XCLK.API.RTCBUF+4
|
||||||
|
and #%00111111 31
|
||||||
|
jsr XCLK.BCD2BIN
|
||||||
|
sta DATELO
|
||||||
|
* Year
|
||||||
|
lda XCLK.API.RTCBUF+6 99
|
||||||
|
jsr XCLK.BCD2BIN
|
||||||
|
sta DATELO+1
|
||||||
|
* Month
|
||||||
|
lda XCLK.API.RTCBUF+5
|
||||||
|
and #%00011111 12
|
||||||
|
jsr XCLK.BCD2BIN
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
tsb DATELO
|
||||||
|
rol DATELO+1
|
||||||
|
|
||||||
|
plp
|
||||||
|
rts
|
||||||
|
|
||||||
|
XCLK.BCD2BIN tax
|
||||||
|
and #$F0
|
||||||
|
lsr CC
|
||||||
|
sta PCL temp location
|
||||||
|
lsr CC
|
||||||
|
lsr CC
|
||||||
|
adc PCL
|
||||||
|
sta PCL
|
||||||
|
|
||||||
|
txa
|
||||||
|
* clc
|
||||||
|
and #$0F
|
||||||
|
adc PCL
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
XCLK.START2xx bit RROMBNK2
|
||||||
|
sta $C070
|
||||||
|
bit $FACA
|
||||||
|
bit $FACA
|
||||||
|
bit $FAFE
|
||||||
|
jsr XCLK.API.RDCLK
|
||||||
|
bit $F851
|
||||||
|
bit RRAMWRAMBNK1
|
||||||
|
bit RRAMWRAMBNK1
|
||||||
|
rts
|
||||||
|
|
||||||
|
XCLK.START2xx.L .EQ *-XCLK.START2xx
|
||||||
|
*--------------------------------------
|
||||||
|
XCLK.CODE2xx .EQ XCLK.API.RTCBUF-XCLK.START2xx.L
|
||||||
|
*--------------------------------------
|
||||||
|
.LIST ON
|
||||||
|
XCLK.LEN .EQ *-XCLK.START
|
||||||
|
.LIST OFF
|
||||||
|
*--------------------------------------
|
||||||
|
* CONTROL SECTION :
|
||||||
|
*--------------------------------------
|
||||||
|
.DO XCLK.LEN>125
|
||||||
|
ERROR:XCLK Driver too big
|
||||||
|
.FIN
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE usr/src/prodos.fx/prodos.s.xclk
|
||||||
|
LOAD usr/src/prodos.fx/prodos.s
|
||||||
|
ASM
|
@ -568,7 +568,7 @@ XRW.Wait100usec lda #1
|
|||||||
XRW.Wait100usecA
|
XRW.Wait100usecA
|
||||||
phx
|
phx
|
||||||
|
|
||||||
.1 ldx #18 (2)
|
.1 ldx #20 (2)
|
||||||
|
|
||||||
.2 dex (2)
|
.2 dex (2)
|
||||||
bne .2 (3)
|
bne .2 (3)
|
||||||
@ -836,15 +836,13 @@ XRW.SeekYA sta XRW.D2Trk-1,x will be current track at the end
|
|||||||
|
|
||||||
jsr XRW.Wait25600usec
|
jsr XRW.Wait25600usec
|
||||||
|
|
||||||
|
lda IO.D2.Ph0Off,y
|
||||||
bcc .90
|
bcc .90
|
||||||
|
|
||||||
lda IO.D2.Ph0Off,x
|
lda IO.D2.Ph0Off,x
|
||||||
nop
|
|
||||||
clc Exit wit CC (recalibrate)
|
clc Exit wit CC (recalibrate)
|
||||||
|
|
||||||
.90 lda IO.D2.Ph0Off,y
|
.90 rts
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
XRW.SeekPhOnY and #6
|
XRW.SeekPhOnY and #6
|
||||||
ora A2L
|
ora A2L
|
||||||
|
@ -220,6 +220,7 @@ PAKME.RAMX .DA RAMX.PAK
|
|||||||
PAKME.DCLK .DA DCLK.PAK
|
PAKME.DCLK .DA DCLK.PAK
|
||||||
PAKME.NCLK .DA NCLK.PAK
|
PAKME.NCLK .DA NCLK.PAK
|
||||||
PAKME.TCLK .DA TCLK.PAK
|
PAKME.TCLK .DA TCLK.PAK
|
||||||
|
PAKME.XCLK .DA XCLK.PAK
|
||||||
PAKME.CCLK .DA CCLK.PAK
|
PAKME.CCLK .DA CCLK.PAK
|
||||||
PAKME.SEL1 .DA SEL1.PAK
|
PAKME.SEL1 .DA SEL1.PAK
|
||||||
PAKME.SEL2 .DA SEL2.PAK
|
PAKME.SEL2 .DA SEL2.PAK
|
||||||
@ -289,6 +290,12 @@ TCLK.PAK .DA #0
|
|||||||
.INB usr/src/prodos.fx/prodos.s.tclk
|
.INB usr/src/prodos.fx/prodos.s.tclk
|
||||||
.EP
|
.EP
|
||||||
|
|
||||||
|
XCLK.PAK .DA #0
|
||||||
|
.DA XCLK.LEN
|
||||||
|
.PH XDOS.ClockDrv
|
||||||
|
.INB usr/src/prodos.fx/prodos.s.xclk
|
||||||
|
.EP
|
||||||
|
|
||||||
CCLK.PAK .DA #0
|
CCLK.PAK .DA #0
|
||||||
.DA CCLK.LEN
|
.DA CCLK.LEN
|
||||||
.PH XDOS.ClockDrv
|
.PH XDOS.ClockDrv
|
||||||
@ -309,7 +316,7 @@ SEL2.PAK .DA #0
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.AS "PAKME" TAG
|
.AS "PAKME" TAG
|
||||||
.DA $2000 BIN ORG
|
.DA $2000 BIN ORG
|
||||||
.DA #13 Chunk Count
|
.DA #14 Chunk Count
|
||||||
.DA PAKME.Table Chunks
|
.DA PAKME.Table Chunks
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
408
SYS/PM.VEDRIVE.S.BK.txt
Normal file
408
SYS/PM.VEDRIVE.S.BK.txt
Normal file
@ -0,0 +1,408 @@
|
|||||||
|
NEW
|
||||||
|
AUTO 3,1
|
||||||
|
*--------------------------------------
|
||||||
|
* Drivers
|
||||||
|
*--------------------------------------
|
||||||
|
* OP = 2 : Write drv1
|
||||||
|
* OP = 3 : Read drv1
|
||||||
|
* OP = 4 : Write drv2
|
||||||
|
* OP = 5 : Read drv2
|
||||||
|
* CMD = $C5+OP+BLKLO+BLKHI+CHKSUM
|
||||||
|
* DO NOT trash DRV.COMMAND...DRV.BLKNUM as ProDOS
|
||||||
|
* reuses them after Block operation
|
||||||
|
* A1,A2 are used by Disk II Driver,
|
||||||
|
* so we use it safely as Tmp Ptr
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.A1L .EQ $3C
|
||||||
|
DRV.A1H .EQ $3D
|
||||||
|
DRV.A2L .EQ $3E
|
||||||
|
DRV.A2H .EQ $3F
|
||||||
|
DRV.COMMAND .EQ $42
|
||||||
|
DRV.UNITNUM .EQ $43
|
||||||
|
DRV.BUFF .EQ $44
|
||||||
|
DRV.BLKNUM .EQ $46
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.BLK .PH DRV.BLK.START Main LC Bnk 2 $D001->$DFFF
|
||||||
|
|
||||||
|
DRV.BLK.1 lda DRV.COMMAND S=0,R=1,W=2,F=3
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
bit DRV.UNITNUM return Status
|
||||||
|
bmi .3
|
||||||
|
|
||||||
|
ldx DRV.D1TotalBlks
|
||||||
|
ldy DRV.D1TotalBlks+1
|
||||||
|
bra .8
|
||||||
|
|
||||||
|
.3 ldx DRV.D2TotalBlks
|
||||||
|
ldy DRV.D2TotalBlks+1
|
||||||
|
|
||||||
|
.8 lda #0
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 cmp #3
|
||||||
|
beq .8 Format ....
|
||||||
|
|
||||||
|
bcs DRV.BLK.CMD.ERR more....IO error
|
||||||
|
|
||||||
|
ora #2 W=2,R=3
|
||||||
|
ldy DRV.UNITNUM
|
||||||
|
bpl .2
|
||||||
|
|
||||||
|
adc #2 CC from bcs
|
||||||
|
|
||||||
|
.2 sta DRV.UDPBuf.Cmd store cmd
|
||||||
|
eor #ADT.CMD.VSD
|
||||||
|
eor DRV.BLKNUM
|
||||||
|
eor DRV.BLKNUM+1
|
||||||
|
sta DRV.UDPBuf.Sum Compute & store CheckSum
|
||||||
|
|
||||||
|
lda DRV.BLKNUM
|
||||||
|
sta DRV.UDPBuf.BlkL
|
||||||
|
lda DRV.BLKNUM+1
|
||||||
|
sta DRV.UDPBuf.BlkH
|
||||||
|
*--------------------------------------
|
||||||
|
lda DRV.COMMAND
|
||||||
|
dec 1-1=0 if read
|
||||||
|
bne DRV.BLK.CMD.W go write
|
||||||
|
*--------------------------------------
|
||||||
|
* Read block
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.BLK.CMD.R >LDYAI S.UDP+5
|
||||||
|
jsr DRV.NIC.SendUDP
|
||||||
|
bcs DRV.BLK.CMD.ERR
|
||||||
|
|
||||||
|
jsr DRV.BLK.GetFrame
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
ldy #DRV.R200.L
|
||||||
|
|
||||||
|
.6 lda DRV.R200-1,y
|
||||||
|
sta $200-1,y
|
||||||
|
dey
|
||||||
|
bne .6
|
||||||
|
|
||||||
|
inc DRV.BUFF+1
|
||||||
|
|
||||||
|
jsr $200
|
||||||
|
|
||||||
|
dec DRV.R200.DEC
|
||||||
|
dec DRV.BUFF+1
|
||||||
|
|
||||||
|
jsr $200
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
|
|
||||||
|
DRV.BLK.CMD.ERR lda #MLI.E.IO
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
* Write Block
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.BLK.CMD.W ldy #DRV.W200.L
|
||||||
|
|
||||||
|
.1 lda DRV.W200-1,y
|
||||||
|
sta $200-1,y
|
||||||
|
dey
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
inc DRV.BUFF+1
|
||||||
|
|
||||||
|
stz DRV.UDPBuf.Data+512
|
||||||
|
|
||||||
|
jsr $200
|
||||||
|
|
||||||
|
dec DRV.W200.DEC
|
||||||
|
dec DRV.BUFF+1
|
||||||
|
|
||||||
|
jsr $200
|
||||||
|
|
||||||
|
>LDYAI S.UDP+5+512+1
|
||||||
|
jsr DRV.NIC.SendUDP
|
||||||
|
|
||||||
|
bcs DRV.BLK.CMD.ERR
|
||||||
|
|
||||||
|
jsr DRV.BLK.GetFrame
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.BLK.GetFrame
|
||||||
|
stz DRV.TimeOut
|
||||||
|
|
||||||
|
.1 lda VBL
|
||||||
|
|
||||||
|
.2 pha
|
||||||
|
jsr DRV.NIC.Rcvd
|
||||||
|
pla
|
||||||
|
bcc .3
|
||||||
|
|
||||||
|
eor VBL
|
||||||
|
bpl .2
|
||||||
|
|
||||||
|
dec DRV.TimeOut
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
lda #MLI.E.IO
|
||||||
|
* sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.3 jsr DRV.BLK.CheckFrame
|
||||||
|
bcs .1
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.BLK.CheckFrame
|
||||||
|
lda DRV.InBuf+S.ETH.EII.TYPE
|
||||||
|
cmp /S.ETH.EII.TYPE.IP
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
lda DRV.InBuf+S.ETH.EII.TYPE+1
|
||||||
|
cmp #S.ETH.EII.TYPE.IP
|
||||||
|
beq .4
|
||||||
|
|
||||||
|
cmp #S.ETH.EII.TYPE.ARP
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
lda DRV.InBuf+S.ARP.OPERATION+1
|
||||||
|
|
||||||
|
cmp #S.ARP.OPERATION.REQ
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
|
||||||
|
.1 lda DRV.InBuf+S.ARP.SPA,x
|
||||||
|
cmp DRV.UDPBuf+S.IP.DST,x
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
jsr DRV.NIC.SendARP
|
||||||
|
|
||||||
|
.9 sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.4 lda DRV.InBuf+S.IP.PROTOCOL
|
||||||
|
cmp #S.IP.PROTOCOL.UDP
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
|
||||||
|
.5 lda DRV.InBuf+S.IP.SRC,x
|
||||||
|
cmp DRV.UDPBuf+S.IP.DST,x
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
lda DRV.InBuf+S.IP.DST,x
|
||||||
|
cmp DRV.UDPBuf+S.IP.SRC,x
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
dex
|
||||||
|
bpl .5
|
||||||
|
|
||||||
|
lda DRV.InBuf+S.TCPUDP.SRCPORT
|
||||||
|
cmp DRV.UDPBuf+S.TCPUDP.DSTPORT
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
lda DRV.InBuf+S.TCPUDP.SRCPORT+1
|
||||||
|
cmp DRV.UDPBuf+S.TCPUDP.DSTPORT+1
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.BLK.IPUDPCheksum
|
||||||
|
stz DRV.UDPBuf+S.IP.HDR.CHECKSUM
|
||||||
|
stz DRV.UDPBuf+S.IP.HDR.CHECKSUM+1
|
||||||
|
|
||||||
|
stz DRV.CheckSum
|
||||||
|
stz DRV.CheckSum+1
|
||||||
|
|
||||||
|
lda DRV.FrameSize
|
||||||
|
sec
|
||||||
|
sbc #S.ETH.EII
|
||||||
|
sta DRV.UDPBuf+S.IP.TOTAL.LENGTH+1
|
||||||
|
|
||||||
|
lda DRV.FrameSize+1
|
||||||
|
sbc /S.ETH.EII
|
||||||
|
sta DRV.UDPBuf+S.IP.TOTAL.LENGTH
|
||||||
|
|
||||||
|
clc
|
||||||
|
|
||||||
|
ldy #S.IP.V.IHL
|
||||||
|
|
||||||
|
ldx #10 10 words for IP Header
|
||||||
|
|
||||||
|
.1 lda DRV.UDPBuf,y
|
||||||
|
adc DRV.CheckSum
|
||||||
|
sta DRV.CheckSum
|
||||||
|
iny
|
||||||
|
lda DRV.UDPBuf,y
|
||||||
|
adc DRV.CheckSum+1
|
||||||
|
sta DRV.CheckSum+1
|
||||||
|
iny
|
||||||
|
dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
lda DRV.CheckSum
|
||||||
|
adc #0
|
||||||
|
eor #$FF
|
||||||
|
sta DRV.UDPBuf+S.IP.HDR.CHECKSUM
|
||||||
|
|
||||||
|
lda DRV.CheckSum+1
|
||||||
|
adc #0
|
||||||
|
eor #$FF
|
||||||
|
sta DRV.UDPBuf+S.IP.HDR.CHECKSUM+1
|
||||||
|
*--------------------------------------
|
||||||
|
stz DRV.UDPBuf+S.UDP.CHECKSUM
|
||||||
|
stz DRV.UDPBuf+S.UDP.CHECKSUM+1
|
||||||
|
|
||||||
|
lda DRV.FrameSize
|
||||||
|
sec
|
||||||
|
sbc #S.IP
|
||||||
|
sta DRV.UDPBuf+S.UDP.LENGTH+1
|
||||||
|
|
||||||
|
pha
|
||||||
|
|
||||||
|
eor #$ff
|
||||||
|
sta DRV.nCnt
|
||||||
|
|
||||||
|
lda DRV.FrameSize+1
|
||||||
|
sbc /S.IP
|
||||||
|
sta DRV.UDPBuf+S.UDP.LENGTH
|
||||||
|
|
||||||
|
tax
|
||||||
|
|
||||||
|
eor #$ff
|
||||||
|
sta DRV.nCnt+1
|
||||||
|
|
||||||
|
clc
|
||||||
|
|
||||||
|
pla A,X = UDP Len
|
||||||
|
adc #S.IP.PROTOCOL.UDP
|
||||||
|
sta DRV.CheckSum+1
|
||||||
|
|
||||||
|
txa
|
||||||
|
adc /S.IP.PROTOCOL.UDP (all zero)
|
||||||
|
sta DRV.CheckSum
|
||||||
|
|
||||||
|
ldy #S.IP.SRC
|
||||||
|
ldx #4 4 words for SRC & DST IP
|
||||||
|
|
||||||
|
.2 lda DRV.UDPBuf,y
|
||||||
|
adc DRV.CheckSum
|
||||||
|
sta DRV.CheckSum
|
||||||
|
iny
|
||||||
|
lda DRV.UDPBuf,y
|
||||||
|
adc DRV.CheckSum+1
|
||||||
|
sta DRV.CheckSum+1
|
||||||
|
iny
|
||||||
|
dex
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
>LDYAI DRV.UDPBuf
|
||||||
|
>STYA DRV.A1L
|
||||||
|
|
||||||
|
ldy #S.IP
|
||||||
|
|
||||||
|
.3 inc DRV.nCnt
|
||||||
|
bne .4
|
||||||
|
|
||||||
|
inc DRV.nCnt+1
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
.4 lda (DRV.A1L),y
|
||||||
|
adc DRV.CheckSum
|
||||||
|
sta DRV.CheckSum
|
||||||
|
|
||||||
|
iny
|
||||||
|
bne .5
|
||||||
|
|
||||||
|
inc DRV.A1H
|
||||||
|
|
||||||
|
.5 inc DRV.nCnt
|
||||||
|
bne .6
|
||||||
|
|
||||||
|
inc DRV.nCnt+1
|
||||||
|
beq .7
|
||||||
|
|
||||||
|
.6 lda (DRV.A1L),y
|
||||||
|
adc DRV.CheckSum+1
|
||||||
|
sta DRV.CheckSum+1
|
||||||
|
iny
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
inc DRV.A1H
|
||||||
|
bra .3
|
||||||
|
|
||||||
|
.7 lda #0
|
||||||
|
adc DRV.CheckSum+1
|
||||||
|
sta DRV.CheckSum+1
|
||||||
|
|
||||||
|
.8 lda DRV.CheckSum
|
||||||
|
adc #0 Don't forget to add last carry!!!
|
||||||
|
eor #$FF
|
||||||
|
sta DRV.UDPBuf+S.UDP.CHECKSUM
|
||||||
|
|
||||||
|
lda DRV.CheckSum+1
|
||||||
|
adc #0 Don't forget to add last carry!!!
|
||||||
|
eor #$FF
|
||||||
|
sta DRV.UDPBuf+S.UDP.CHECKSUM+1
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.R200 lda DRV.InBuf+S.UDP+10+256,y
|
||||||
|
DRV.R200.DEC .EQ *-DRV.R200+$1ff
|
||||||
|
bit RRAMWRAMBNK1
|
||||||
|
sta (DRV.BUFF),y
|
||||||
|
bit RRAMWRAMBNK2
|
||||||
|
iny
|
||||||
|
bne DRV.R200
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
DRV.R200.L .EQ *-DRV.R200
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.W200 bit RRAMWRAMBNK1
|
||||||
|
lda (DRV.BUFF),y
|
||||||
|
bit RRAMWRAMBNK2
|
||||||
|
sta DRV.UDPBuf.Data+256,y
|
||||||
|
DRV.W200.DEC .EQ *-DRV.W200+$1ff
|
||||||
|
eor DRV.UDPBuf.Data+512
|
||||||
|
sta DRV.UDPBuf.Data+512
|
||||||
|
iny
|
||||||
|
bne DRV.W200
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
DRV.W200.L .EQ *-DRV.W200
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.D1TotalBlks .BS 2
|
||||||
|
DRV.D2TotalBlks .BS 2
|
||||||
|
DRV.BLK.Slotn0 .BS 1 SELF MODIFIED slot 0n
|
||||||
|
DRV.TimeOut .BS 1
|
||||||
|
DRV.FrameSize .BS 2
|
||||||
|
DRV.nCnt .BS 2
|
||||||
|
DRV.CheckSum .BS 2
|
||||||
|
*--------------------------------------
|
||||||
|
.EP
|
||||||
|
*--------------------------------------
|
||||||
|
.LIST ON
|
||||||
|
DRV.BLK.SIZE .EQ *-DRV.BLK
|
||||||
|
.LIST OFF
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE usr/src/sys/pm.vedrive.s.bk
|
||||||
|
LOAD usr/src/sys/pm.vedrive.s
|
||||||
|
ASM
|
@ -4,12 +4,54 @@ NEW
|
|||||||
GS.Init sec
|
GS.Init sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.GS .EQ *
|
GS.Read php
|
||||||
.PH $D400
|
sei
|
||||||
|
|
||||||
|
ldx Slotn0
|
||||||
|
*--------------------------------------
|
||||||
|
GS.READWRITE.9 plp
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
GS.Write php
|
||||||
|
sei
|
||||||
|
|
||||||
|
ldx Slotn0
|
||||||
|
|
||||||
|
plp
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
GS.Name >PSTR "LanCEgs"
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.GS .PH DRV.NIC.START
|
||||||
|
|
||||||
|
jmp DRV.GS.Write
|
||||||
|
|
||||||
|
DRV.GS.Read php
|
||||||
|
sei
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.GS.9 plp
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.GS.Write php
|
||||||
|
sei
|
||||||
|
|
||||||
|
|
||||||
|
plp
|
||||||
|
sec
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.EP
|
.EP
|
||||||
|
|
||||||
|
.LIST ON
|
||||||
|
DRV.GS.SIZE .EQ *-DRV.GS
|
||||||
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/pm.vedrive.s.gs
|
SAVE usr/src/sys/pm.vedrive.s.gs
|
||||||
|
@ -4,15 +4,21 @@ NEW
|
|||||||
VEDRIVE.MACInit ldx #5
|
VEDRIVE.MACInit ldx #5
|
||||||
|
|
||||||
.1 lda CONF.SRCMAC,x
|
.1 lda CONF.SRCMAC,x
|
||||||
|
|
||||||
sta DHCP.DISC.SRCMAC,x
|
sta DHCP.DISC.SRCMAC,x
|
||||||
sta DHCP.REQ.SRCMAC,x
|
sta DHCP.REQ.SRCMAC,x
|
||||||
|
|
||||||
sta DHCP.DISC.CHADDR,x
|
sta DHCP.DISC.CHADDR,x
|
||||||
sta DHCP.REQ.CHADDR,x
|
sta DHCP.REQ.CHADDR,x
|
||||||
|
|
||||||
sta ARP.REQ.SRCMAC,x
|
sta ARP.REQ.SRCMAC,x
|
||||||
sta ARP.REQ.SHA,x
|
sta ARP.REQ.SHA,x
|
||||||
|
|
||||||
sta ARP.REP.SRCMAC,x
|
sta ARP.REP.SRCMAC,x
|
||||||
sta ARP.REP.SHA,x
|
sta ARP.REP.SHA,x
|
||||||
|
|
||||||
sta ADT.REQ.SRCMAC,x
|
sta ADT.REQ.SRCMAC,x
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
@ -21,13 +27,17 @@ VEDRIVE.MACInit ldx #5
|
|||||||
VEDRIVE.IPInit ldx #3
|
VEDRIVE.IPInit ldx #3
|
||||||
|
|
||||||
.1 lda CONF.ADDRESS,x
|
.1 lda CONF.ADDRESS,x
|
||||||
|
|
||||||
sta ARP.REQ.SPA,x
|
sta ARP.REQ.SPA,x
|
||||||
sta ARP.REP.TPA,x
|
sta ARP.REP.SPA,x
|
||||||
sta ADT.REQ.IP.SRC,x
|
sta ADT.REQ.IP.SRC,x
|
||||||
|
|
||||||
lda CONF.SERVER,x
|
lda CONF.SERVER,x
|
||||||
sta ARP.REQ.TPA,x
|
sta ARP.REQ.TPA,x
|
||||||
sta ADT.REQ.IP.DST,x
|
sta ADT.REQ.IP.DST,x
|
||||||
|
|
||||||
|
sta ARP.REP.TPA,x
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
@ -143,9 +153,22 @@ VEDRIVE.UDPChecksum
|
|||||||
|
|
||||||
dey
|
dey
|
||||||
lda (ZPBufPtr),y
|
lda (ZPBufPtr),y
|
||||||
adc /S.IP.PROTOCOL.UDP (all zero)
|
adc /S.IP.PROTOCOL.UDP (all zero)
|
||||||
sta ZPCheckSum
|
sta ZPCheckSum
|
||||||
jsr VEDRIVE.AddSrcDstIPToChecksum
|
|
||||||
|
ldy #S.IP.SRC
|
||||||
|
ldx #4 4 words for SRC & DST IP
|
||||||
|
|
||||||
|
.1 lda (ZPBufPtr),y
|
||||||
|
adc ZPCheckSum
|
||||||
|
sta ZPCheckSum
|
||||||
|
iny
|
||||||
|
lda (ZPBufPtr),y
|
||||||
|
adc ZPCheckSum+1
|
||||||
|
sta ZPCheckSum+1
|
||||||
|
iny
|
||||||
|
dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
ldy #S.UDP.LENGTH+1
|
ldy #S.UDP.LENGTH+1
|
||||||
lda (ZPBufPtr),y
|
lda (ZPBufPtr),y
|
||||||
@ -223,23 +246,6 @@ VEDRIVE.ComputeChecksum
|
|||||||
sta (ZPBufPtr),y
|
sta (ZPBufPtr),y
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
VEDRIVE.AddSrcDstIPToChecksum
|
|
||||||
ldy #S.IP.SRC
|
|
||||||
ldx #4 4 words for SRC & DST IP
|
|
||||||
|
|
||||||
.1 lda (ZPBufPtr),y
|
|
||||||
adc ZPCheckSum
|
|
||||||
sta ZPCheckSum
|
|
||||||
iny
|
|
||||||
lda (ZPBufPtr),y
|
|
||||||
adc ZPCheckSum+1
|
|
||||||
sta ZPCheckSum+1
|
|
||||||
iny
|
|
||||||
dex
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
VEDRIVE.CheckDHCPOffer
|
VEDRIVE.CheckDHCPOffer
|
||||||
>LDYAI FRAMEBUF
|
>LDYAI FRAMEBUF
|
||||||
>STYA ZPBufPtr
|
>STYA ZPBufPtr
|
||||||
@ -459,7 +465,6 @@ VEDRIVE.CheckARPFrame
|
|||||||
|
|
||||||
ldy #S.ARP.OPERATION+1
|
ldy #S.ARP.OPERATION+1
|
||||||
lda (ZPBufPtr),y
|
lda (ZPBufPtr),y
|
||||||
|
|
||||||
cmp #S.ARP.OPERATION.REP
|
cmp #S.ARP.OPERATION.REP
|
||||||
bne .5
|
bne .5
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -479,6 +484,8 @@ VEDRIVE.CheckARPFrame
|
|||||||
|
|
||||||
.2 lda (ZPBufPtr),y
|
.2 lda (ZPBufPtr),y
|
||||||
sta ADT.REQ.DSTMAC,x
|
sta ADT.REQ.DSTMAC,x
|
||||||
|
sta ARP.REP.DSTMAC,x
|
||||||
|
sta ARP.REP.THA,x
|
||||||
dey
|
dey
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
|
@ -234,10 +234,154 @@ U1.WRITE php
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
U1.Name >PSTR "Uthernet V1"
|
U1.Name >PSTR "Uthernet V1"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.U1 .EQ *
|
DRV.U1 .PH DRV.NIC.START
|
||||||
.PH $D400
|
|
||||||
|
|
||||||
|
jmp DRV.U1.SendARP
|
||||||
|
jmp DRV.U1.SendUDP
|
||||||
|
|
||||||
|
DRV.U1.Rcvd php
|
||||||
|
sei
|
||||||
|
|
||||||
|
ldx DRV.BLK.Slotn0
|
||||||
|
|
||||||
|
lda /PP.RxEvent
|
||||||
|
sta PacketPagePTR+1,x
|
||||||
|
lda #PP.RxEvent
|
||||||
|
sta PacketPagePTR,x
|
||||||
|
|
||||||
|
lda PacketPageDATA+1,x
|
||||||
|
ldy PacketPageDATA,x
|
||||||
|
and /PP.RxEvent.RxOK+PP.RxEvent.IA+PP.RxEvent.Brdcast+PP.RxEvent.Runt
|
||||||
|
beq DRV.U1.9
|
||||||
|
|
||||||
|
lda RTDATA+1,x discard RxStatus
|
||||||
|
lda RTDATA,x
|
||||||
|
|
||||||
|
lda RTDATA+1,x get RxLength
|
||||||
|
sta DRV.FrameSize+1
|
||||||
|
eor #$ff
|
||||||
|
sta DRV.nCnt+1
|
||||||
|
|
||||||
|
lda RTDATA,x
|
||||||
|
sta DRV.FrameSize
|
||||||
|
eor #$ff
|
||||||
|
sta DRV.nCnt
|
||||||
|
|
||||||
|
>LDYAI DRV.InBuf
|
||||||
|
>STYA DRV.A1L
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.2 inc DRV.nCnt
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
inc DRV.nCnt+1
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
.3 lda RTDATA,x
|
||||||
|
sta (DRV.A1L),y
|
||||||
|
iny
|
||||||
|
|
||||||
|
inc DRV.nCnt
|
||||||
|
bne .4
|
||||||
|
|
||||||
|
inc DRV.nCnt+1
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
.4 lda RTDATA+1,x
|
||||||
|
sta (DRV.A1L),y
|
||||||
|
iny
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
inc DRV.A1L+1
|
||||||
|
bra .2
|
||||||
|
|
||||||
|
.8 plp
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.U1.9 plp
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.U1.SendARP >LDYAI S.ARP
|
||||||
|
>STYA DRV.FrameSize
|
||||||
|
>LDYAI DRV.ARPBuf
|
||||||
|
bra DRV.U1.Send
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.U1.SendUDP >STYA DRV.FrameSize
|
||||||
|
|
||||||
|
jsr DRV.BLK.IPUDPCheksum
|
||||||
|
|
||||||
|
>LDYAI DRV.UDPBuf
|
||||||
|
|
||||||
|
DRV.U1.Send >STYA DRV.A1L
|
||||||
|
|
||||||
|
php
|
||||||
|
sei
|
||||||
|
|
||||||
|
ldx DRV.BLK.Slotn0
|
||||||
|
|
||||||
|
lda /PP.TxCMD.LID+PP.TxCMD.TxStartFULL
|
||||||
|
sta TxCMD+1,x
|
||||||
|
lda #PP.TxCMD.LID+PP.TxCMD.TxStartFULL
|
||||||
|
sta TxCMD,x
|
||||||
|
|
||||||
|
lda DRV.FrameSize+1
|
||||||
|
sta TxLength+1,x
|
||||||
|
eor #$ff
|
||||||
|
sta DRV.nCnt+1
|
||||||
|
|
||||||
|
lda DRV.FrameSize
|
||||||
|
sta TxLength,x
|
||||||
|
eor #$ff
|
||||||
|
sta DRV.nCnt
|
||||||
|
|
||||||
|
lda /PP.BusST
|
||||||
|
sta PacketPagePTR+1,x
|
||||||
|
lda #PP.BusST
|
||||||
|
sta PacketPagePTR,x
|
||||||
|
|
||||||
|
lda PacketPageDATA+1,x
|
||||||
|
ldy PacketPageDATA,x
|
||||||
|
bit /PP.BusST.Rdy4TxNOW
|
||||||
|
beq DRV.U1.9
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.1 inc DRV.nCnt
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
inc DRV.nCnt+1
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
.2 lda (DRV.A1L),y
|
||||||
|
sta RTDATA,x
|
||||||
|
iny
|
||||||
|
|
||||||
|
inc DRV.nCnt
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
inc DRV.nCnt+1
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
.3 lda (DRV.A1L),y
|
||||||
|
sta RTDATA+1,x
|
||||||
|
iny
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
inc DRV.A1H
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.8 plp
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
.EP
|
.EP
|
||||||
|
|
||||||
|
.LIST ON
|
||||||
|
DRV.U1.SIZE .EQ *-DRV.U1
|
||||||
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/pm.vedrive.s.u1
|
SAVE usr/src/sys/pm.vedrive.s.u1
|
||||||
|
@ -250,15 +250,15 @@ U2.Name >PSTR "Uthernet II"
|
|||||||
Offset .BS 2
|
Offset .BS 2
|
||||||
TotalSize .BS 2
|
TotalSize .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.U2 .EQ *
|
DRV.U2 .PH DRV.NIC.START
|
||||||
.PH DRV.NIC.START
|
|
||||||
|
|
||||||
DRV.U2.START jmp DRV.U2.Write
|
jmp DRV.U2.SendARP
|
||||||
|
jmp DRV.U2.SendUDP
|
||||||
|
|
||||||
DRV.U2.Read php
|
DRV.U2.Rcvd php
|
||||||
sei
|
sei
|
||||||
|
|
||||||
ldx DRV.START
|
ldx DRV.BLK.Slotn0
|
||||||
|
|
||||||
>AR.SELECT S0.RX.RSR
|
>AR.SELECT S0.RX.RSR
|
||||||
lda W5100.DR,x get the received size HI
|
lda W5100.DR,x get the received size HI
|
||||||
@ -289,18 +289,18 @@ DRV.U2.Read php
|
|||||||
* lda DRV.TotalSize
|
* lda DRV.TotalSize
|
||||||
sec
|
sec
|
||||||
sbc #2 MACRAW:strip 2 bytes Header from Size
|
sbc #2 MACRAW:strip 2 bytes Header from Size
|
||||||
sta DRV.BufSize
|
sta DRV.FrameSize
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta DRV.nCnt
|
sta DRV.nCnt
|
||||||
|
|
||||||
lda DRV.TotalSize+1
|
lda DRV.TotalSize+1
|
||||||
sbc #0
|
sbc #0
|
||||||
sta DRV.BufSize+1
|
sta DRV.FrameSize+1
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta DRV.nCnt+1
|
sta DRV.nCnt+1
|
||||||
|
|
||||||
>LDYA DRV.InBuf
|
>LDYAI DRV.InBuf
|
||||||
>STYA .4+1
|
>STYA DRV.A1L
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
@ -311,11 +311,12 @@ DRV.U2.Read php
|
|||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
.3 lda W5100.DR,x
|
.3 lda W5100.DR,x
|
||||||
.4 sta $FFFF,y SELF MODIFIED
|
|
||||||
|
sta (DRV.A1L),y
|
||||||
iny
|
iny
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
inc .4+2
|
inc DRV.A1H
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.8 >AR.SELECT S0.RX.RD
|
.8 >AR.SELECT S0.RX.RD
|
||||||
@ -343,30 +344,39 @@ DRV.U2.9 plp
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.U2.Write php
|
DRV.U2.SendARP >LDYAI S.ARP
|
||||||
sei
|
>STYA DRV.FrameSize
|
||||||
|
>LDYAI DRV.ARPBuf
|
||||||
|
bra DRV.U2.Send
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.U2.SendUDP >STYA DRV.FrameSize
|
||||||
|
|
||||||
>STYA DRV.BufSize
|
jsr DRV.BLK.IPUDPCheksum
|
||||||
|
|
||||||
|
>LDYAI DRV.UDPBuf
|
||||||
|
|
||||||
|
DRV.U2.Send >STYA DRV.A1L
|
||||||
|
|
||||||
|
lda DRV.FrameSize+1
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta DRV.nCnt+1
|
sta DRV.nCnt+1
|
||||||
|
|
||||||
tya
|
lda DRV.FrameSize
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta DRV.nCnt
|
sta DRV.nCnt
|
||||||
|
|
||||||
>LDYA DRV.OutBuf
|
php
|
||||||
>STYA .3+1
|
sei
|
||||||
|
|
||||||
ldx DRV.START
|
ldx DRV.BLK.Slotn0
|
||||||
|
|
||||||
>AR.SELECT S0.TX.FSR
|
>AR.SELECT S0.TX.FSR
|
||||||
lda W5100.DR,x get send size HI
|
lda W5100.DR,x get send size HI
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
ldy W5100.DR,x LO
|
ldy W5100.DR,x LO
|
||||||
cpy DRV.BufSize
|
cpy DRV.FrameSize
|
||||||
sbc DRV.BufSize+1
|
sbc DRV.FrameSize+1
|
||||||
bcc DRV.U2.9
|
bcc DRV.U2.9
|
||||||
|
|
||||||
>AR.SELECT S0.TX.WR
|
>AR.SELECT S0.TX.WR
|
||||||
@ -390,21 +400,21 @@ DRV.U2.Write php
|
|||||||
inc DRV.nCnt+1
|
inc DRV.nCnt+1
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
.3 lda $FFFF,y SELF MODIFIED
|
.3 lda (DRV.A1L),y
|
||||||
sta W5100.DR,x
|
sta W5100.DR,x
|
||||||
iny
|
iny
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
inc .3+2
|
inc DRV.A1H
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.8 >AR.SELECT S0.TX.WR
|
.8 >AR.SELECT S0.TX.WR
|
||||||
lda DRV.Offset
|
lda DRV.Offset
|
||||||
clc
|
clc
|
||||||
adc DRV.BufSize
|
adc DRV.FrameSize
|
||||||
pha save LO
|
pha save LO
|
||||||
lda DRV.Offset+1
|
lda DRV.Offset+1
|
||||||
adc DRV.BufSize+1
|
adc DRV.FrameSize+1
|
||||||
sta W5100.DR,x write HI
|
sta W5100.DR,x write HI
|
||||||
pla
|
pla
|
||||||
sta W5100.DR,x write LO
|
sta W5100.DR,x write LO
|
||||||
@ -418,9 +428,7 @@ DRV.U2.Write php
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.Offset .BS 2
|
DRV.Offset .BS 2
|
||||||
DRV.BufSize .BS 2
|
|
||||||
DRV.TotalSize .BS 2
|
DRV.TotalSize .BS 2
|
||||||
DRV.nCnt .BS 2
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.EP
|
.EP
|
||||||
|
|
||||||
|
@ -12,9 +12,9 @@ NEW
|
|||||||
.INB inc/mli.i
|
.INB inc/mli.i
|
||||||
.INB inc/mli.e.i
|
.INB inc/mli.e.i
|
||||||
.INB inc/nic.i
|
.INB inc/nic.i
|
||||||
|
.INB inc/nic.91c96.i
|
||||||
.INB inc/nic.8900a.i
|
.INB inc/nic.8900a.i
|
||||||
.INB inc/nic.w5100.i
|
.INB inc/nic.w5100.i
|
||||||
.INB inc/nic.91c96.i
|
|
||||||
.INB inc/eth.i
|
.INB inc/eth.i
|
||||||
.INB inc/net.tcpip.i
|
.INB inc/net.tcpip.i
|
||||||
.INB inc/net.dhcp.i
|
.INB inc/net.dhcp.i
|
||||||
@ -33,16 +33,33 @@ timerC .EQ 17
|
|||||||
bRemoteMac .EQ 18
|
bRemoteMac .EQ 18
|
||||||
Slotn0 .EQ 19
|
Slotn0 .EQ 19
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ADT.CMD.VSD .EQ $C5 "E": Virtual Drive Command Envelope
|
|
||||||
ADT.CMD.PING .EQ $D9 "Y": PING
|
|
||||||
DRV.EntryPoint .EQ $BF41
|
|
||||||
DRV.NIC.START .EQ $D500
|
|
||||||
*--------------------------------------
|
|
||||||
CONF.FBUF .EQ $4000
|
CONF.FBUF .EQ $4000
|
||||||
CONF.LBUF .EQ $4400
|
CONF.LBUF .EQ $4400
|
||||||
CONF.FILEPATH .EQ $4500
|
CONF.FILEPATH .EQ $4500
|
||||||
FRAMEBUF .EQ $4600
|
FRAMEBUF .EQ $4600
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
ADT.CMD.VSD .EQ $C5 "E": Virtual Drive Command Envelope
|
||||||
|
ADT.CMD.PING .EQ $D9 "Y": PING
|
||||||
|
DRV.EntryPoint .EQ $BF41
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.BLK.START .EQ $D400
|
||||||
|
DRV.NIC.START .EQ $D800
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.NIC.SendARP .EQ DRV.NIC.START
|
||||||
|
DRV.NIC.SendUDP .EQ DRV.NIC.START+3
|
||||||
|
DRV.NIC.Rcvd .EQ DRV.NIC.START+6
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.ARPBuf .EQ $DA00-S.UDP-5-S.ARP
|
||||||
|
DRV.UDPBuf .EQ $DA00-S.UDP-5 Frame Buffer = S.UDP+5+512+1 bytes
|
||||||
|
DRV.UDPBuf.Env .EQ DRV.UDPBuf+S.UDP
|
||||||
|
DRV.UDPBuf.Cmd .EQ DRV.UDPBuf+S.UDP+1
|
||||||
|
DRV.UDPBuf.BlkL .EQ DRV.UDPBuf+S.UDP+2
|
||||||
|
DRV.UDPBuf.BlkH .EQ DRV.UDPBuf+S.UDP+3
|
||||||
|
DRV.UDPBuf.Sum .EQ DRV.UDPBuf+S.UDP+4
|
||||||
|
DRV.UDPBuf.Data .EQ DRV.UDPBuf+S.UDP+5
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.InBuf .EQ $DA00 Frame Buffer = 1536 bytes
|
||||||
|
*--------------------------------------
|
||||||
VEDRIVE.Init >LDYAI VEDRIVE.MSG0
|
VEDRIVE.Init >LDYAI VEDRIVE.MSG0
|
||||||
jsr PrintFYA
|
jsr PrintFYA
|
||||||
|
|
||||||
@ -111,8 +128,7 @@ VEDRIVE.Init >LDYAI VEDRIVE.MSG0
|
|||||||
.7 >LDYAI VEDRIVE.SRVOK
|
.7 >LDYAI VEDRIVE.SRVOK
|
||||||
jsr PrintFYA
|
jsr PrintFYA
|
||||||
|
|
||||||
* jsr VEDRIVE.SetSlot
|
jsr VEDRIVE.SetSlot
|
||||||
sec
|
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
>LDYAI VEDRIVE.NOSLOT
|
>LDYAI VEDRIVE.NOSLOT
|
||||||
@ -124,7 +140,7 @@ VEDRIVE.Init >LDYAI VEDRIVE.MSG0
|
|||||||
>LDYAI VEDRIVE.DEVOK
|
>LDYAI VEDRIVE.DEVOK
|
||||||
jsr PrintFYA
|
jsr PrintFYA
|
||||||
|
|
||||||
* jsr VEDRIVE.Install
|
jsr VEDRIVE.Install
|
||||||
bcc .9
|
bcc .9
|
||||||
|
|
||||||
>LDYAI VEDRIVE.DRVIKO
|
>LDYAI VEDRIVE.DRVIKO
|
||||||
@ -133,6 +149,7 @@ VEDRIVE.Init >LDYAI VEDRIVE.MSG0
|
|||||||
|
|
||||||
.9 >LDYAI VEDRIVE.DRVIOK
|
.9 >LDYAI VEDRIVE.DRVIOK
|
||||||
jsr PrintFYA
|
jsr PrintFYA
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
VEDRIVE.CheckDRV
|
VEDRIVE.CheckDRV
|
||||||
@ -177,11 +194,17 @@ VEDRIVE.Ping lda CONF.PORT
|
|||||||
|
|
||||||
.4 jsr VEDRIVE.CheckADTRep
|
.4 jsr VEDRIVE.CheckADTRep
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
jsr VEDRIVE.CheckARPFrame
|
jsr VEDRIVE.CheckARPFrame
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.8
|
.8 ldy #S.UDP+$29
|
||||||
|
lda (ZPBufPtr),y
|
||||||
|
sta CONF.D1TOTALBLK
|
||||||
|
iny
|
||||||
|
lda (ZPBufPtr),y
|
||||||
|
sta CONF.D1TOTALBLK+1
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -198,7 +221,7 @@ VEDRIVE.SendUDP jsr VEDRIVE.IPChecksum
|
|||||||
VEDRIVE.SendARP ldx CONF.NIC
|
VEDRIVE.SendARP ldx CONF.NIC
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
|
|
||||||
.1 .DA U1.WRITE
|
.1 .DA GS.WRITE
|
||||||
.DA U1.WRITE
|
.DA U1.WRITE
|
||||||
.DA U2.WRITE
|
.DA U2.WRITE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -208,7 +231,7 @@ VEDRIVE.READ >LDYAI FRAMEBUF
|
|||||||
ldx CONF.NIC
|
ldx CONF.NIC
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
|
|
||||||
.1 .DA U1.READ
|
.1 .DA GS.READ
|
||||||
.DA U1.READ
|
.DA U1.READ
|
||||||
.DA U2.READ
|
.DA U2.READ
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -294,22 +317,26 @@ VEDRIVE.Install ldx #PATCH.SIZE
|
|||||||
bit RRAMWRAMBNK2
|
bit RRAMWRAMBNK2
|
||||||
bit RRAMWRAMBNK2
|
bit RRAMWRAMBNK2
|
||||||
|
|
||||||
ldy #DRV.SIZE-1
|
>LDYAI DRV.BLK
|
||||||
|
>STYA ZPPtr1
|
||||||
|
|
||||||
.2 lda DRV,y
|
lda #DRV.BLK.START
|
||||||
sta DRV.START,y
|
sta ZPPtr2
|
||||||
dey
|
lda /DRV.BLK.START
|
||||||
bne .2
|
sta ZPPtr2+1
|
||||||
|
|
||||||
|
lda #DRV.BLK.SIZE
|
||||||
|
eor #$ff
|
||||||
|
sta ZPnCnt
|
||||||
|
|
||||||
|
lda /DRV.BLK.SIZE
|
||||||
|
eor #$ff
|
||||||
|
sta ZPnCnt+1
|
||||||
|
|
||||||
|
jsr VEDRIVE.Move
|
||||||
|
|
||||||
lda Slotn0
|
lda Slotn0
|
||||||
sta DRV.START
|
sta DRV.BLK.Slotn0
|
||||||
|
|
||||||
ldy #DRV.IP.SIZE-1
|
|
||||||
|
|
||||||
.3 lda DRV.IP,y
|
|
||||||
sta DRV.IP.START,y
|
|
||||||
dey
|
|
||||||
bne .3
|
|
||||||
|
|
||||||
ldx CONF.NIC
|
ldx CONF.NIC
|
||||||
lda .10,x
|
lda .10,x
|
||||||
@ -317,7 +344,7 @@ VEDRIVE.Install ldx #PATCH.SIZE
|
|||||||
|
|
||||||
lda .10+1,x
|
lda .10+1,x
|
||||||
sta ZPPtr1+1
|
sta ZPPtr1+1
|
||||||
|
|
||||||
lda .20,x
|
lda .20,x
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta ZPnCnt
|
sta ZPnCnt
|
||||||
@ -325,49 +352,68 @@ VEDRIVE.Install ldx #PATCH.SIZE
|
|||||||
lda .20+1,x
|
lda .20+1,x
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta ZPnCnt+1
|
sta ZPnCnt+1
|
||||||
|
|
||||||
lda #DRV.NIC.START
|
lda #DRV.NIC.START
|
||||||
sta ZPPtr2
|
sta ZPPtr2
|
||||||
lda /DRV.NIC.START
|
lda /DRV.NIC.START
|
||||||
sta ZPPtr2+1
|
sta ZPPtr2+1
|
||||||
|
|
||||||
ldy #0
|
|
||||||
|
|
||||||
.4 inc ZPnCnt
|
|
||||||
bne .5
|
|
||||||
|
|
||||||
inc ZPnCnt+1
|
|
||||||
beq .6
|
|
||||||
|
|
||||||
.5 lda (ZPPtr1),y
|
|
||||||
sta (ZPPtr2),y
|
|
||||||
iny
|
|
||||||
bne .4
|
|
||||||
|
|
||||||
inc ZPPtr1+1
|
|
||||||
inc ZPPtr2+1
|
|
||||||
bra .4
|
|
||||||
|
|
||||||
.6 ldy #S.UDP
|
jsr VEDRIVE.Move
|
||||||
|
|
||||||
.7 lda ADT.REQ-1,y
|
ldx #S.ARP
|
||||||
sta DRV.OutBuf-1,y
|
|
||||||
dey
|
.7 lda ARP.REP-1,x
|
||||||
|
sta DRV.ARPBuf-1,x
|
||||||
|
dex
|
||||||
bne .7
|
bne .7
|
||||||
|
|
||||||
|
ldx #S.UDP
|
||||||
|
|
||||||
|
.8 lda ADT.REQ-1,x
|
||||||
|
sta DRV.UDPBuf-1,x
|
||||||
|
dex
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
lda #ADT.CMD.VSD
|
||||||
|
sta DRV.UDPBuf.Env
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
|
||||||
|
.80 lda CONF.D1TOTALBLK,x
|
||||||
|
sta DRV.D1TotalBlks,x
|
||||||
|
dex
|
||||||
|
bpl .80
|
||||||
|
|
||||||
bit RROMBNK1
|
bit RROMBNK1
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.10 .DA DRV.U2
|
.10 .DA DRV.GS
|
||||||
.DA DRV.U2
|
.DA DRV.U1
|
||||||
.DA DRV.U2
|
.DA DRV.U2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.20 .DA DRV.U2.SIZE
|
.20 .DA DRV.GS.SIZE
|
||||||
.DA DRV.U2.SIZE
|
.DA DRV.U1.SIZE
|
||||||
.DA DRV.U2.SIZE
|
.DA DRV.U2.SIZE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB usr/src/shared/x.printf.s
|
VEDRIVE.Move ldy #0
|
||||||
|
|
||||||
|
.1 inc ZPnCnt
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
inc ZPnCnt+1
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
.2 lda (ZPPtr1),y
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
iny
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
inc ZPPtr1+1
|
||||||
|
inc ZPPtr2+1
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* ProDOS $BE41->$BE4B Patch for switching to BANK2 (10 bytes)
|
* ProDOS $BE41->$BE4B Patch for switching to BANK2 (10 bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -375,287 +421,20 @@ COPYRIGHT .AS "(C)APPLE "
|
|||||||
COPYRIGHT.LEN .EQ *-COPYRIGHT
|
COPYRIGHT.LEN .EQ *-COPYRIGHT
|
||||||
PATCH .PH DRV.EntryPoint
|
PATCH .PH DRV.EntryPoint
|
||||||
bit RRAMWRAMBNK2
|
bit RRAMWRAMBNK2
|
||||||
jsr $D002
|
jsr DRV.BLK.START
|
||||||
bit RRAMWRAMBNK1
|
bit RRAMWRAMBNK1
|
||||||
rts
|
rts
|
||||||
.EP
|
.EP
|
||||||
PATCH.SIZE .EQ *-PATCH
|
PATCH.SIZE .EQ *-PATCH
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Drivers
|
.INB usr/src/shared/x.printf.s
|
||||||
*--------------------------------------
|
|
||||||
* OP = 2 : Write drv1
|
|
||||||
* OP = 3 : Read drv1
|
|
||||||
* OP = 4 : Write drv2
|
|
||||||
* OP = 5 : Read drv2
|
|
||||||
* CMD = $C5+OP+BLKLO+BLKHI+CHKSUM
|
|
||||||
* DO NOT trash DRV.COMMAND...DRV.BLKNUM as ProDOS
|
|
||||||
* reuses them after Block operation
|
|
||||||
* A1,A2 are used by Disk II Driver,
|
|
||||||
* so we use it safely as Tmp Ptr
|
|
||||||
*--------------------------------------
|
|
||||||
DRV.A1L .EQ $3C
|
|
||||||
DRV.A1H .EQ $3D
|
|
||||||
DRV.A2L .EQ $3E
|
|
||||||
DRV.A2H .EQ $3F
|
|
||||||
DRV.COMMAND .EQ $42
|
|
||||||
DRV.UNITNUM .EQ $43
|
|
||||||
DRV.BUFF .EQ $44
|
|
||||||
DRV.BLKNUM .EQ $46
|
|
||||||
*--------------------------------------
|
|
||||||
DRV.Write .EQ DRV.NIC.START
|
|
||||||
DRV.Read .EQ DRV.NIC.START+3
|
|
||||||
*--------------------------------------
|
|
||||||
DRV.OutBuf .EQ $D800-S.UDP-6 Frame Buffer = S.UDP+5+512+1 bytes
|
|
||||||
DRV.OutBuf.Env .EQ DRV.OutBuf+S.UDP
|
|
||||||
DRV.OutBuf.Cmd .EQ DRV.OutBuf+S.UDP+1
|
|
||||||
DRV.OutBuf.BlkL .EQ DRV.OutBuf+S.UDP+2
|
|
||||||
DRV.OutBuf.BlkH .EQ DRV.OutBuf+S.UDP+3
|
|
||||||
DRV.OutBuf.Sum .EQ DRV.OutBuf+S.UDP+4
|
|
||||||
DRV.OutBuf.Data .EQ DRV.OutBuf+S.UDP+5
|
|
||||||
*--------------------------------------
|
|
||||||
DRV.InBuf .EQ $DA00 Frame Buffer = 1536 bytes
|
|
||||||
*--------------------------------------
|
|
||||||
DRV .PH $D001 Main LC Bnk 2 $D001->$DFFF
|
|
||||||
|
|
||||||
DRV.START .BS 1 SELF MODIFIED slot 0n
|
|
||||||
>DEBUG
|
|
||||||
lda DRV.COMMAND S=0,R=1,W=2,F=3
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
ldx #$ff return Status
|
|
||||||
ldy #$ff
|
|
||||||
|
|
||||||
.8 lda #0
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.1 cmp #3
|
|
||||||
beq .8 Format ....
|
|
||||||
|
|
||||||
bcs DRV.DO.CMD.ERR more....IO error
|
|
||||||
|
|
||||||
ora #2 W=2,R=3
|
|
||||||
ldy DRV.UNITNUM
|
|
||||||
bpl .2
|
|
||||||
|
|
||||||
adc #2 CC from bcs
|
|
||||||
|
|
||||||
.2 sta DRV.OutBuf.Cmd store cmd
|
|
||||||
eor #ADT.CMD.VSD
|
|
||||||
eor DRV.BLKNUM
|
|
||||||
eor DRV.BLKNUM+1
|
|
||||||
sta DRV.OutBuf.Sum Compute & store CheckSum
|
|
||||||
|
|
||||||
lda DRV.BLKNUM
|
|
||||||
sta DRV.OutBuf.BlkL
|
|
||||||
lda DRV.BLKNUM+1
|
|
||||||
sta DRV.OutBuf.BlkH
|
|
||||||
*--------------------------------------
|
|
||||||
lda DRV.COMMAND
|
|
||||||
dec 1-1=0 if read
|
|
||||||
bne DRV.DO.CMD.W go write
|
|
||||||
*--------------------------------------
|
|
||||||
* Read block
|
|
||||||
*--------------------------------------
|
|
||||||
DRV.DO.CMD.R ldy #S.UDP+5
|
|
||||||
lda /S.UDP+5
|
|
||||||
|
|
||||||
jsr DRV.Write
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DRV.DO.CMD.ERR
|
|
||||||
lda #MLI.E.IO
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
* Write Block
|
|
||||||
*--------------------------------------
|
|
||||||
DRV.DO.CMD.W lda #$B1 lda (),y
|
|
||||||
|
|
||||||
lda #MLI.E.IO
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
DRV.RWBYTE bit RRAMWRAMBNK1
|
|
||||||
sta (DRV.BUFF),y
|
|
||||||
bit RRAMWRAMBNK2
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
.EP
|
|
||||||
*--------------------------------------
|
|
||||||
.LIST ON
|
|
||||||
DRV.SIZE .EQ *-DRV
|
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
|
||||||
DRV.IP .PH $D400
|
|
||||||
|
|
||||||
DRV.IP.START ldy #S.IP.TOTAL.LENGTH+1
|
|
||||||
lda ZPBufCnt
|
|
||||||
sec
|
|
||||||
sbc #S.ETH.EII
|
|
||||||
sta (ZPBufPtr),y
|
|
||||||
dey
|
|
||||||
lda ZPBufCnt+1
|
|
||||||
sbc /S.ETH.EII
|
|
||||||
sta (ZPBufPtr),y
|
|
||||||
lda #0
|
|
||||||
ldy #S.IP.HDR.CHECKSUM
|
|
||||||
sta (ZPBufPtr),y
|
|
||||||
iny
|
|
||||||
sta (ZPBufPtr),y
|
|
||||||
|
|
||||||
stz ZPCheckSum RESET IP CHECKSUM
|
|
||||||
stz ZPCheckSum+1
|
|
||||||
|
|
||||||
clc
|
|
||||||
|
|
||||||
ldy #S.IP.V.IHL
|
|
||||||
|
|
||||||
ldx #10 10 words for IP Header
|
|
||||||
|
|
||||||
.1 lda (ZPBufPtr),y
|
|
||||||
adc ZPCheckSum
|
|
||||||
sta ZPCheckSum
|
|
||||||
iny
|
|
||||||
lda (ZPBufPtr),y
|
|
||||||
adc ZPCheckSum+1
|
|
||||||
sta ZPCheckSum+1
|
|
||||||
iny
|
|
||||||
dex
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
ldy #S.IP.HDR.CHECKSUM
|
|
||||||
lda ZPCheckSum
|
|
||||||
adc #0
|
|
||||||
eor #$FF
|
|
||||||
sta (ZPBufPtr),y
|
|
||||||
iny
|
|
||||||
lda ZPCheckSum+1
|
|
||||||
adc #0
|
|
||||||
eor #$FF
|
|
||||||
sta (ZPBufPtr),y
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
clc
|
|
||||||
|
|
||||||
ldy #S.UDP.LENGTH+1
|
|
||||||
lda (ZPBufPtr),y
|
|
||||||
adc #S.IP.PROTOCOL.UDP
|
|
||||||
sta ZPCheckSum+1
|
|
||||||
|
|
||||||
dey
|
|
||||||
lda (ZPBufPtr),y
|
|
||||||
adc /S.IP.PROTOCOL.UDP (all zero)
|
|
||||||
sta ZPCheckSum
|
|
||||||
|
|
||||||
ldy #S.IP.SRC
|
|
||||||
ldx #4 4 words for SRC & DST IP
|
|
||||||
|
|
||||||
.2 lda (ZPBufPtr),y
|
|
||||||
adc ZPCheckSum
|
|
||||||
sta ZPCheckSum
|
|
||||||
iny
|
|
||||||
lda (ZPBufPtr),y
|
|
||||||
adc ZPCheckSum+1
|
|
||||||
sta ZPCheckSum+1
|
|
||||||
iny
|
|
||||||
dex
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
ldy #S.UDP.LENGTH+1
|
|
||||||
lda (ZPBufPtr),y
|
|
||||||
eor #$ff
|
|
||||||
tax
|
|
||||||
|
|
||||||
dey
|
|
||||||
lda (ZPBufPtr),y
|
|
||||||
eor #$ff
|
|
||||||
ldy #S.UDP.CHECKSUM
|
|
||||||
|
|
||||||
phy Save Offset
|
|
||||||
pha Save !ByteCount.HI
|
|
||||||
|
|
||||||
lda #0 Reset Checksum
|
|
||||||
sta (ZPBufPtr),y
|
|
||||||
iny
|
|
||||||
sta (ZPBufPtr),y
|
|
||||||
|
|
||||||
>LDYA ZPBufPtr
|
|
||||||
>STYA ZPPtr1
|
|
||||||
|
|
||||||
ldy #S.IP
|
|
||||||
|
|
||||||
.3 inx
|
|
||||||
bne .4
|
|
||||||
|
|
||||||
pla
|
|
||||||
inc
|
|
||||||
beq .8
|
|
||||||
|
|
||||||
pha
|
|
||||||
.4 lda (ZPPtr1),y
|
|
||||||
adc ZPCheckSum
|
|
||||||
sta ZPCheckSum
|
|
||||||
|
|
||||||
iny
|
|
||||||
bne .5
|
|
||||||
|
|
||||||
inc ZPPtr1+1
|
|
||||||
.5 inx
|
|
||||||
bne .6
|
|
||||||
|
|
||||||
pla
|
|
||||||
inc
|
|
||||||
beq .7
|
|
||||||
|
|
||||||
pha
|
|
||||||
|
|
||||||
.6 lda (ZPPtr1),y
|
|
||||||
|
|
||||||
adc ZPCheckSum+1
|
|
||||||
sta ZPCheckSum+1
|
|
||||||
iny
|
|
||||||
bne .3
|
|
||||||
|
|
||||||
inc ZPPtr1+1
|
|
||||||
bra .3
|
|
||||||
|
|
||||||
.7 adc ZPCheckSum+1 A=0 from beq .7
|
|
||||||
sta ZPCheckSum+1
|
|
||||||
|
|
||||||
.8 ply
|
|
||||||
lda ZPCheckSum
|
|
||||||
adc #0 Don't forget to add last carry!!!
|
|
||||||
eor #$FF
|
|
||||||
sta (ZPBufPtr),y
|
|
||||||
iny
|
|
||||||
lda ZPCheckSum+1
|
|
||||||
adc #0 Don't forget to add last carry!!!
|
|
||||||
eor #$FF
|
|
||||||
sta (ZPBufPtr),y
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
.EP
|
|
||||||
*--------------------------------------
|
|
||||||
.LIST ON
|
|
||||||
DRV.IP.SIZE .EQ *-DRV.IP
|
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
|
||||||
* CONTROL SECTION :
|
|
||||||
*--------------------------------------
|
|
||||||
.DO DRV.SIZE>255
|
|
||||||
ERROR:DRV.SIZE too big
|
|
||||||
.FIN
|
|
||||||
*--------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB usr/src/sys/pm.vedrive.s.cf
|
.INB usr/src/sys/pm.vedrive.s.cf
|
||||||
|
.INB usr/src/sys/pm.vedrive.s.bk
|
||||||
.INB usr/src/sys/pm.vedrive.s.ip
|
.INB usr/src/sys/pm.vedrive.s.ip
|
||||||
|
.INB usr/src/sys/pm.vedrive.s.gs
|
||||||
.INB usr/src/sys/pm.vedrive.s.u1
|
.INB usr/src/sys/pm.vedrive.s.u1
|
||||||
.INB usr/src/sys/pm.vedrive.s.u2
|
.INB usr/src/sys/pm.vedrive.s.u2
|
||||||
.INB usr/src/sys/pm.vedrive.s.gs
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
VEDRIVE.MSG0 .AZ "VEDRIVE (ADTPro Virtual Ethernet HD) Driver\n"
|
VEDRIVE.MSG0 .AZ "VEDRIVE (ADTPro Virtual Ethernet HD) Driver\n"
|
||||||
VEDRIVE.DRVKO .AZ "VEDRIVE (Or other custom Driver) Already Installed.\n"
|
VEDRIVE.DRVKO .AZ "VEDRIVE (Or other custom Driver) Already Installed.\n"
|
||||||
@ -703,6 +482,8 @@ CONF.MASK .HS 00000000
|
|||||||
CONF.GATEWAY .HS 00000000
|
CONF.GATEWAY .HS 00000000
|
||||||
CONF.SERVER .HS 00000000
|
CONF.SERVER .HS 00000000
|
||||||
CONF.PORT .DA /1977,#1977
|
CONF.PORT .DA /1977,#1977
|
||||||
|
CONF.D1TOTALBLK .DA $FFFF
|
||||||
|
CONF.D2TOTALBLK .DA $FFFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MLIGETPREFIX.P .DA #1
|
MLIGETPREFIX.P .DA #1
|
||||||
.DA CONF.FILEPATH
|
.DA CONF.FILEPATH
|
||||||
@ -829,7 +610,7 @@ DHCP.REQ.OPT.SVRIP .BS 4
|
|||||||
DHCP.REQ.END .EQ *
|
DHCP.REQ.END .EQ *
|
||||||
DHCP.REQ.LEN .EQ *-DHCP.REQ
|
DHCP.REQ.LEN .EQ *-DHCP.REQ
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ADT.REQ
|
ADT.REQ
|
||||||
ADT.REQ.DSTMAC .BS 6 DST MAC
|
ADT.REQ.DSTMAC .BS 6 DST MAC
|
||||||
ADT.REQ.SRCMAC .BS 6
|
ADT.REQ.SRCMAC .BS 6
|
||||||
.DA /S.ETH.EII.TYPE.IP
|
.DA /S.ETH.EII.TYPE.IP
|
||||||
|
@ -370,8 +370,8 @@ PATCH.LEN .EQ *-PATCH
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*DRV.PCL .EQ $3A
|
*DRV.PCL .EQ $3A
|
||||||
*DRV.PCH .EQ $3B
|
*DRV.PCH .EQ $3B
|
||||||
*DRV.A1L .EQ $3C
|
DRV.A1L .EQ $3C
|
||||||
*DRV.A1H .EQ $3D
|
DRV.A1H .EQ $3D
|
||||||
*DRV.A2L .EQ $3E
|
*DRV.A2L .EQ $3E
|
||||||
*DRV.A2H .EQ $3F
|
*DRV.A2H .EQ $3F
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user