mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-16 15:29:38 +00:00
This commit is contained in:
parent
3e60ff3064
commit
3c12891610
BIN
A2OSX.BOOT.DSK
BIN
A2OSX.BOOT.DSK
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
|
@ -66,6 +66,7 @@ CS.INIT >LDYA L.LIBSTR
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LIBCALL hLIBSTR,LIBSTR.SSCANF
|
>LIBCALL hLIBSTR,LIBSTR.SSCANF
|
||||||
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
stz bCTRLC
|
stz bCTRLC
|
||||||
|
@ -133,6 +134,8 @@ CS.RUN lda #ARP.TIMEOUT
|
||||||
>PUSHW L.DST.MAC
|
>PUSHW L.DST.MAC
|
||||||
>PUSHW L.DST.IP
|
>PUSHW L.DST.IP
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.ARP.QUERY
|
>LIBCALL hLIBTCPIP,LIBTCPIP.ARP.QUERY
|
||||||
|
bra *
|
||||||
|
|
||||||
bcc .2 success, print & exit
|
bcc .2 success, print & exit
|
||||||
|
|
||||||
lda TimeOut
|
lda TimeOut
|
||||||
|
|
428
BIN/MOUNT.S.txt
428
BIN/MOUNT.S.txt
|
@ -0,0 +1,428 @@
|
||||||
|
PR#3
|
||||||
|
PREFIX /A2OSX.SRC
|
||||||
|
NEW
|
||||||
|
INC 1
|
||||||
|
AUTO 6
|
||||||
|
.LIST OFF
|
||||||
|
.OP 65C02
|
||||||
|
.OR $2000
|
||||||
|
.TF /A2OSX.BOOT/BIN/MOUNT
|
||||||
|
*--------------------------------------
|
||||||
|
.INB INC/MACROS.I
|
||||||
|
.INB INC/A2OSX.I
|
||||||
|
.INB INC/A2OSX.API.I
|
||||||
|
.INB INC/KERNEL.I
|
||||||
|
.INB INC/LIBSTR.I
|
||||||
|
.INB INC/LIBTCPIP.I
|
||||||
|
*--------------------------------------
|
||||||
|
ZPFrameBase1 .EQ ZPBIN
|
||||||
|
ZPFrameLen1 .EQ ZPBIN+2
|
||||||
|
ZPFramePtr1 .EQ ZPBIN+4
|
||||||
|
*--------------------------------------
|
||||||
|
* File Header (16 Bytes)
|
||||||
|
*--------------------------------------
|
||||||
|
CS.START cld
|
||||||
|
jmp (.1,x)
|
||||||
|
.DA #$61 6502,Level 1 (65c02)
|
||||||
|
.DA #1 BIN Layout Version 1
|
||||||
|
.DA 0
|
||||||
|
.DA CS.END-CS.START Code Length To Relocate
|
||||||
|
.DA DS.END-DS.START Data Segment to Allocate
|
||||||
|
.DA 0
|
||||||
|
.DA 0
|
||||||
|
*--------------------------------------
|
||||||
|
.1 .DA CS.INIT
|
||||||
|
.DA CS.RUN
|
||||||
|
.DA CS.DOEVENT
|
||||||
|
.DA CS.QUIT
|
||||||
|
L.LIBSTR .DA LIBSTR
|
||||||
|
L.LIBTCPIP .DA LIBTCPIP
|
||||||
|
L.SSCANF.IP .DA SSCANF.IP
|
||||||
|
L.MSG0 .DA MSG0
|
||||||
|
L.MSG1 .DA MSG1
|
||||||
|
L.MSG2 .DA MSG2
|
||||||
|
L.MSG3 .DA MSG3
|
||||||
|
.DA 0
|
||||||
|
*--------------------------------------
|
||||||
|
CS.INIT ldy #S.PS.hARGS
|
||||||
|
lda (pPs),y
|
||||||
|
bne .1
|
||||||
|
lda #SYSMGR.ERRSYN
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 >LDYA L.LIBSTR
|
||||||
|
>LOADLIBYA
|
||||||
|
sta hLIBSTR
|
||||||
|
|
||||||
|
>LDYA L.LIBTCPIP
|
||||||
|
>LOADLIBYA
|
||||||
|
sta hLIBTCPIP
|
||||||
|
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ?
|
||||||
|
bcs .9
|
||||||
|
>STYA ZPQuickPtr1
|
||||||
|
|
||||||
|
lda (ZPQuickPtr1) Configured ?
|
||||||
|
bpl .9
|
||||||
|
|
||||||
|
ldy #S.IPCFG.HDEV
|
||||||
|
lda (ZPQuickPtr1),y
|
||||||
|
sta hDev
|
||||||
|
|
||||||
|
lda A2OSX.RANDOM16
|
||||||
|
ldy #Identifier
|
||||||
|
sta (pData),y
|
||||||
|
lda A2OSX.RANDOM16+1
|
||||||
|
iny
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
ldy #Sequence
|
||||||
|
sta (pData),y
|
||||||
|
iny
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
lda (pPs)
|
||||||
|
ora #S.PS.F.EVENT Now accept events
|
||||||
|
sta (pPs)
|
||||||
|
clc
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN >PUSHW pData DST.IP
|
||||||
|
>PUSHW L.SSCANF.IP
|
||||||
|
ldy #S.PS.hARGS
|
||||||
|
lda (pPs),y
|
||||||
|
>SYSCALL SYS.GetMemPtrA
|
||||||
|
>PUSHYA
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.SSCANF
|
||||||
|
bcc CS.RUN.IPOK
|
||||||
|
|
||||||
|
lda #PING.TIMEOUT
|
||||||
|
ldy #TimeOut
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
CS.RUN.DNSQUERY >PUSHW pData DST.IP
|
||||||
|
ldy #S.PS.hARGS
|
||||||
|
lda (pPs),y
|
||||||
|
>PUSHA
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.DNS.QUERY
|
||||||
|
bcc CS.RUN.IPOK
|
||||||
|
|
||||||
|
jsr A2osX.SLEEP
|
||||||
|
ldy #TimeOut
|
||||||
|
lda (pData),y
|
||||||
|
bne CS.RUN.DNSQUERY
|
||||||
|
|
||||||
|
ldy #S.PS.hARGS
|
||||||
|
lda (pPs),y
|
||||||
|
>SYSCALL SYS.GetMemPtrA
|
||||||
|
>PUSHYA
|
||||||
|
>PUSHW L.MSG0
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
sec
|
||||||
|
CS.RUN.RTS rts
|
||||||
|
|
||||||
|
CS.RUN.IPOK ldy #S.PS.hARGS
|
||||||
|
lda (pPs),y
|
||||||
|
>SYSCALL SYS.GetMemPtrA
|
||||||
|
>PUSHYA
|
||||||
|
ldy #3
|
||||||
|
>PUSHB (pData),y DST.IP+3
|
||||||
|
dey
|
||||||
|
>PUSHB (pData),y DST.IP+2
|
||||||
|
dey
|
||||||
|
>PUSHB (pData),y DST.IP+1
|
||||||
|
>PUSHB (pData) DST.IP
|
||||||
|
>PUSHW L.MSG1
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
CS.RUN.ECHO >LIBCALL hLIBTCPIP,LIBTCPIP.NEW.ICMP.FRAME
|
||||||
|
bcs CS.RUN.RTS
|
||||||
|
>STYA ZPFrameBase1
|
||||||
|
txa
|
||||||
|
ldy #hFrame
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
ldy #0
|
||||||
|
.10 lda (pData),y
|
||||||
|
pha
|
||||||
|
iny
|
||||||
|
dex
|
||||||
|
bpl .10
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
ldy #S.IP.DST+3
|
||||||
|
.1 pla
|
||||||
|
sta (ZPFrameBase1),y
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
ldy #S.ICMP.TYPE
|
||||||
|
lda #S.ICMP.TYPE.ECHOREQ
|
||||||
|
sta (ZPFrameBase1),y
|
||||||
|
|
||||||
|
ldy #Identifier
|
||||||
|
lda (pData),y
|
||||||
|
tax
|
||||||
|
iny
|
||||||
|
lda (pData),y
|
||||||
|
|
||||||
|
ldy #S.ICMP.IDENTIFIER+1
|
||||||
|
sta (ZPFrameBase1),y
|
||||||
|
dey
|
||||||
|
txa
|
||||||
|
sta (ZPFrameBase1),y
|
||||||
|
|
||||||
|
ldy #Sequence+1
|
||||||
|
lda (pData),y
|
||||||
|
tax
|
||||||
|
dey
|
||||||
|
lda (pData),y
|
||||||
|
inc
|
||||||
|
sta (pData),y
|
||||||
|
bne .2
|
||||||
|
pha
|
||||||
|
inx
|
||||||
|
txa
|
||||||
|
sta (pData),y
|
||||||
|
pla
|
||||||
|
|
||||||
|
.2 ldy #S.ICMP.SEQUENCE
|
||||||
|
sta (ZPFrameBase1),y
|
||||||
|
iny
|
||||||
|
txa
|
||||||
|
sta (ZPFrameBase1),y
|
||||||
|
|
||||||
|
lda #PING.TIMEOUT
|
||||||
|
ldy #TimeOut
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
.3 >PUSHWI S.ICMP+32
|
||||||
|
ldy #hFrame
|
||||||
|
lda (pData),y
|
||||||
|
>SYSCALL SYS.GetMemPtrA
|
||||||
|
>PUSHYA
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SEND.ICMP.FRAME
|
||||||
|
bcc .4
|
||||||
|
jsr A2osX.SLEEP
|
||||||
|
ldy #TimeOut
|
||||||
|
lda (pData),y
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
.4 ldy #hFrame
|
||||||
|
lda (pData),y
|
||||||
|
>SYSCALL SYS.FreeMemA
|
||||||
|
|
||||||
|
ldy #bReply
|
||||||
|
lda #0
|
||||||
|
sta (pData),y
|
||||||
|
lda #PING.TIMEOUT
|
||||||
|
ldy #TimeOut
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
CS.RUN.WAIT jsr A2osX.SLEEP
|
||||||
|
ldy #bReply
|
||||||
|
lda (pData),y
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
ldy #bCTRLC
|
||||||
|
lda (pData),y
|
||||||
|
bne CS.RUN.ERROR
|
||||||
|
ldy #TimeOut
|
||||||
|
lda (pData),y
|
||||||
|
bne CS.RUN.WAIT
|
||||||
|
|
||||||
|
ldy #3
|
||||||
|
>PUSHB (pData),y DST.IP+3
|
||||||
|
dey
|
||||||
|
>PUSHB (pData),y DST.IP+2
|
||||||
|
dey
|
||||||
|
>PUSHB (pData),y DST.IP+1
|
||||||
|
>PUSHB (pData) DST.IP
|
||||||
|
>PUSHW L.MSG2
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
.1 ldy #bCTRLC
|
||||||
|
lda (pData),y
|
||||||
|
bne CS.RUN.ERROR
|
||||||
|
ldy #TimeOut
|
||||||
|
lda (pData),y
|
||||||
|
beq .2
|
||||||
|
|
||||||
|
jsr A2osX.SLEEP
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.2 jmp CS.RUN.ECHO
|
||||||
|
|
||||||
|
CS.RUN.ERROR sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.DOEVENT lda (pEvent)
|
||||||
|
and #S.EVT.F.TIMER is it a TIMER event?
|
||||||
|
beq .1 no....
|
||||||
|
|
||||||
|
ldy #TimeOut
|
||||||
|
lda (pData),y
|
||||||
|
beq .10
|
||||||
|
|
||||||
|
dec
|
||||||
|
sta (pData),y
|
||||||
|
.10 sec do not discard TIMER event
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 lda (pEvent)
|
||||||
|
and #S.EVT.F.KEY is it a KEY event?
|
||||||
|
beq .2
|
||||||
|
|
||||||
|
ldy #S.EVT.hDEV is Event from active IN device?
|
||||||
|
lda (pEvent),y
|
||||||
|
ldy #S.PS.hINDEV
|
||||||
|
cmp (pPs),y
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
ldy #S.EVT.DATAHI is it an O or SAPPLE key ?
|
||||||
|
lda (pEvent),y
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
ldy #S.EVT.DATALO
|
||||||
|
lda (pEvent),y
|
||||||
|
cmp #$03 Ctrl-C
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
lda #$FF
|
||||||
|
ldy #bCTRLC
|
||||||
|
sta (pData),y
|
||||||
|
bra .8
|
||||||
|
|
||||||
|
.2 lda (pEvent)
|
||||||
|
and #S.EVT.F.NET
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
ldy #S.EVT.hDEV
|
||||||
|
lda (pEvent),y
|
||||||
|
cmp hDev
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
ldy #S.EVT.DATALO Get Frame hMem
|
||||||
|
lda (pEvent),y
|
||||||
|
>SYSCALL SYS.GetMemPtrA
|
||||||
|
>STYA ZPFrameBase1
|
||||||
|
|
||||||
|
ldy #S.IP.PROTOCOL
|
||||||
|
lda (ZPFrameBase1),y
|
||||||
|
cmp #S.IP.PROTOCOL.ICMP
|
||||||
|
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
ldy #S.ICMP.TYPE
|
||||||
|
lda (ZPFrameBase1),y
|
||||||
|
cmp #S.ICMP.TYPE.ECHOREP
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
ldy #S.ICMP.IDENTIFIER
|
||||||
|
lda (ZPFrameBase1),y
|
||||||
|
tax
|
||||||
|
iny
|
||||||
|
lda (ZPFrameBase1),y
|
||||||
|
ldy #Identifier+1
|
||||||
|
cmp (pData),y
|
||||||
|
bne .9
|
||||||
|
dey
|
||||||
|
txa
|
||||||
|
cmp (pData),y
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
jsr CS.EVENT.REPLY
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.EVENT.REPLY lda #PING.TIMEOUT
|
||||||
|
sec
|
||||||
|
sbc TimeOut
|
||||||
|
|
||||||
|
stz TimeOut.ms
|
||||||
|
stz TimeOut.ms+1
|
||||||
|
|
||||||
|
tay
|
||||||
|
beq .3
|
||||||
|
|
||||||
|
.1 lda TimeOut.ms
|
||||||
|
clc
|
||||||
|
adc #K.TIMER16RESOLUTION*20
|
||||||
|
sta TimeOut.ms
|
||||||
|
bcc .2
|
||||||
|
inc TimeOut
|
||||||
|
.2 dey
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
.3 >PUSHW TimeOut.ms
|
||||||
|
ldy #S.IP.TTL
|
||||||
|
>PUSHB (ZPFrameBase1),y
|
||||||
|
|
||||||
|
ldy #S.ICMP.SEQUENCE+1
|
||||||
|
>PUSHB (ZPFrameBase1),y
|
||||||
|
dey
|
||||||
|
>PUSHB (ZPFrameBase1),y
|
||||||
|
|
||||||
|
ldy #S.IP.SRC+3
|
||||||
|
>PUSHB (ZPFrameBase1),y
|
||||||
|
dey
|
||||||
|
>PUSHB (ZPFrameBase1),y
|
||||||
|
dey
|
||||||
|
>PUSHB (ZPFrameBase1),y
|
||||||
|
dey
|
||||||
|
>PUSHB (ZPFrameBase1),y
|
||||||
|
|
||||||
|
>PUSHW L.MSG3
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
ldy #bReply
|
||||||
|
lda (pData),y
|
||||||
|
inc
|
||||||
|
sta (pData),y
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.QUIT lda hLIBTCPIP
|
||||||
|
>SYSCALL SYS.UnloadLibA
|
||||||
|
lda hLIBSTR
|
||||||
|
>SYSCALL SYS.UnloadLibA
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.END
|
||||||
|
LIBSTR >PSTRING "libstr.o"
|
||||||
|
LIBTCPIP >PSTRING "libtcpip.o"
|
||||||
|
SSCANF.IP >PSTRING "%d.%d.%d.%d"
|
||||||
|
MSG0 >CSTRING "%S: Unknown host\n"
|
||||||
|
MSG1 >CSTRING "PING %d.%d.%d.%d (%S)\n"
|
||||||
|
MSG2 >CSTRING "%d.%d.%d.%d: TimeOut/Host unreachable\n"
|
||||||
|
MSG3 >CSTRING "32 bytes from %d.%d.%d.%d, icmp_seq=%D, ttl=%d, time=%D ms\n"
|
||||||
|
hLIBSTR .BS 1
|
||||||
|
hLIBTCPIP .BS 1
|
||||||
|
hDev .BS 1
|
||||||
|
TimeOut.ms .BS 2
|
||||||
|
*--------------------------------------
|
||||||
|
.DUMMY
|
||||||
|
.OR 0
|
||||||
|
DS.START
|
||||||
|
DST.IP .BS 4
|
||||||
|
hFrame .BS 1
|
||||||
|
TimeOut .BS 1
|
||||||
|
Identifier .BS 2
|
||||||
|
Sequence .BS 2
|
||||||
|
bCTRLC .BS 1
|
||||||
|
bReply .BS 1
|
||||||
|
DS.END
|
||||||
|
.ED
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE BIN/MOUNT.S
|
||||||
|
ASM
|
|
@ -17,95 +17,47 @@ ZPTmpPTR .EQ ZPDRV
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEVID .EQ $630E
|
DEVID .EQ $630E
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* CS8900A IO Registers
|
* WIZnet W5100 IO Registers
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RTDATA .EQ $C080 Receive/Transmit Data (DWORD)
|
W5100.MR .EQ $C084 Mode Register
|
||||||
TxCMD .EQ $C084 Transmit Command
|
W5100.MR.RST .EQ %10000000
|
||||||
TxLength .EQ $C086 Transmission Length
|
W5100.MR.PB .EQ %00010000
|
||||||
IntStatusQueue .EQ $C088 Interrupt Status Queue
|
W5100.MR.PPPOE .EQ %00001000
|
||||||
PacketPagePTR .EQ $C08A PacketPage Pointer
|
W5100.MR.AI .EQ %00000010
|
||||||
PacketPageDATA .EQ $C08C PacketPage Data (DWORD)
|
W5100.MR.IND .EQ %00000001
|
||||||
*--------------------------------------
|
W5100.AR .EQ $C085 Memory Pointer
|
||||||
TxCMD.LID .EQ %00000000.00001001
|
W5100.AR.GAR .EQ $0001
|
||||||
TxCMD.TxStart5 .EQ %00000000.00000000 00 = start after 5 Bytes
|
W5100.AR.SUBR .EQ $0005
|
||||||
TxCMD.TxStart381 .EQ %00000000.01000000 01 = start after 381 Bytes
|
W5100.AR.SHAR .EQ $0009
|
||||||
TxCMD.TxStart1021 .EQ %00000000.10000000 10 = start after 1021 Bytes
|
W5100.AR.IR .EQ $0015
|
||||||
TxCMD.TxStartFULL .EQ %00000000.11000000 11 = start after ENTIRE Frame
|
W5100.AR.IMR .EQ $0016
|
||||||
TxCMD.Force .EQ %00000001.00000000
|
W5100.AR.RTR .EQ $0017
|
||||||
TxCMD.OneColl .EQ %00000010.00000000
|
W5100.AR.RCR .EQ $0019
|
||||||
TxCMD.InhibitCRC .EQ %00010000.00000000
|
W5100.AR.RMSR .EQ $001A
|
||||||
TxCMD.TxPadDis .EQ %00100000.00000000
|
W5100.AR.TMSR .EQ $001B
|
||||||
*--------------------------------------
|
W5100.AR.PATR .EQ $001C
|
||||||
* PacketPage Offsets & Masks
|
W5100.AR.PTIMER .EQ $0028
|
||||||
*--------------------------------------
|
W5100.AR.PMAGIC .EQ $0029
|
||||||
PP.ID .EQ $0000 Product ID code (RO)
|
W5100.AR.UIPR .EQ $002A
|
||||||
PP.RFBCNT .EQ $0050 Received Frame Byte Counter (RO)
|
W5100.AR.UPORT .EQ $002E
|
||||||
PP.RxCFG .EQ $0102 Receiver Configuration (RW)
|
W5100.AR.S0.MR .EQ $0400
|
||||||
PP.RxCFG.LID .EQ %00000000.00000011
|
W5100.AR.S0.CR .EQ $0401
|
||||||
PP.RxCTL .EQ $0104 Receiver Control (RW)
|
W5100.AR.S0.IR .EQ $0402
|
||||||
PP.RxCTL.LID .EQ %00000000.00000101
|
W5100.AR.S0.SR .EQ $0403
|
||||||
PP.RxCTL.IAHashA .EQ %00000000.01000000
|
W5100.AR.S0.PORT .EQ $0404
|
||||||
PP.RxCTL.PromisA .EQ %00000000.10000000
|
W5100.AR.S0.DHAR .EQ $0406
|
||||||
PP.RxCTL.RxOKA .EQ %00000001.00000000
|
W5100.AR.S0.DIPR .EQ $040C
|
||||||
PP.RxCTL.MulticastA .EQ %00000010.00000000
|
W5100.AR.S0.DPORT .EQ $0410
|
||||||
PP.RxCTL.IA .EQ %00000100.00000000
|
W5100.AR.S0.MSSR .EQ $0412
|
||||||
PP.RxCTL.BroadcastA .EQ %00001000.00000000
|
W5100.AR.S0.PROTO .EQ $0414
|
||||||
PP.RxCTL.CRCerrorA .EQ %00010000.00000000
|
W5100.AR.S0.TOS .EQ $0415
|
||||||
PP.RxCTL.RuntA .EQ %00100000.00000000
|
W5100.AR.S0.TTL .EQ $0416
|
||||||
PP.RxCTL.ExtradataA .EQ %01000000.00000000
|
W5100.AR.S0.TX.FSR .EQ $0420
|
||||||
PP.TxCFG .EQ $0106 Transmit Configuration (RW)
|
W5100.AR.S0.TX.RD .EQ $0422
|
||||||
PP.TxCMD .EQ $0108 Receiver Control (RW)
|
W5100.AR.S0.TX.WR .EQ $0424
|
||||||
PP.BufCFG .EQ $010A
|
W5100.AR.S0.RX.RSR .EQ $0426
|
||||||
PP.LineCTL .EQ $0112 Line Control (RW)
|
W5100.AR.S0.RX.RD .EQ $0428
|
||||||
PP.LineCTL.LID .EQ %00000000.00010011
|
W5100.DR .EQ $C087
|
||||||
PP.LineCTL.SerRxOn .EQ %00000000.01000000
|
|
||||||
PP.LineCTL.SerTxOn .EQ %00000000.10000000
|
|
||||||
PP.LineCTL.AUIonly .EQ %00000001.00000000
|
|
||||||
PP.LineCTL.Auto .EQ %00000010.00000000
|
|
||||||
PP.SelfCTL .EQ $0114 Self Control (RW)
|
|
||||||
PP.SelfCTL.LID .EQ %00000000.00010101
|
|
||||||
PP.SelfCTL.RESET .EQ %00000000.01000000
|
|
||||||
PP.SelfCTL.SWSuspnd .EQ %00000000.10000000
|
|
||||||
PP.SelfCTL.HWSleepE .EQ %00000001.00000000
|
|
||||||
PP.SelfCTL.HWStndby .EQ %00000010.00000000
|
|
||||||
PP.BufCTL .EQ $0116
|
|
||||||
PP.TestCTL .EQ $0118
|
|
||||||
PP.TestCTL.LID .EQ %00000000.00011001
|
|
||||||
PP.TestCTL.DisLT .EQ %00000000.10000000
|
|
||||||
PP.TestCTL.FDX .EQ %01000000.00000000
|
|
||||||
PP.ISQ .EQ $0120
|
|
||||||
PP.RxEvent .EQ $0124 Receiver Event (RO)
|
|
||||||
PP.RxEvent.LID .EQ %00000000.00000100
|
|
||||||
PP.RxEvent.RxOK .EQ %00000001.00000000
|
|
||||||
PP.RxEvent.IA .EQ %00000100.00000000
|
|
||||||
PP.RxEvent.Brdcast .EQ %00001000.00000000
|
|
||||||
PP.RxEvent.CRCerror .EQ %00010000.00000000
|
|
||||||
PP.RxEvent.Runt .EQ %00100000.00000000
|
|
||||||
PP.RxEvent.Xtradata .EQ %01000000.00000000
|
|
||||||
PP.TxEvent .EQ $0128 Transmitter Event (RO)
|
|
||||||
PP.TxEvent.LID .EQ %00000000.00001000
|
|
||||||
PP.BufEvent .EQ $012C
|
|
||||||
PP.RxMISS .EQ $0130
|
|
||||||
PP.TxCOL .EQ $0132
|
|
||||||
PP.LineST .EQ $0134 Line Status (RO)
|
|
||||||
PP.LineST.LID .EQ %00000000.00010100
|
|
||||||
PP.LineST.LinkOK .EQ %00000000.10000000
|
|
||||||
PP.LineST.AUI .EQ %00000001.00000000
|
|
||||||
PP.LineST.10BT .EQ %00000010.00000000
|
|
||||||
PP.LineST.PolOK .EQ %00010000.00000000
|
|
||||||
PP.LineST.CRS .EQ %01000000.00000000
|
|
||||||
PP.SelfST .EQ $0136 Self Status (RO)
|
|
||||||
PP.SelfST.INITD .EQ %00000000.10000000
|
|
||||||
PP.BusST .EQ $0138 Bus Status (RO)
|
|
||||||
PP.BusST.LID .EQ %00000000.00011000
|
|
||||||
PP.BusST.TxBidErr .EQ %00000000.10000000
|
|
||||||
PP.BusST.Rdy4TxNOW .EQ %00000001.00000000
|
|
||||||
PP.TDR .EQ $013C
|
|
||||||
PP.MAC .EQ $0158 MAC Address (RW)
|
|
||||||
PP.RxStatus .EQ $0400
|
|
||||||
PP.RxLength .EQ $0402
|
|
||||||
PP.RxFrame .EQ $0404
|
|
||||||
PP.TxFrame .EQ $0A00
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ERRTNOFRAME .EQ 0
|
ERRTNOFRAME .EQ 0
|
||||||
ERRNOBUFFER .EQ 1
|
ERRNOBUFFER .EQ 1
|
||||||
|
|
|
@ -42,6 +42,7 @@ TCP.PORT.TELNETS .EQ 23
|
||||||
UDP.PORT.DNS .EQ 53
|
UDP.PORT.DNS .EQ 53
|
||||||
UDP.PORT.DHCPC .EQ 68
|
UDP.PORT.DHCPC .EQ 68
|
||||||
UDP.PORT.DHCPS .EQ 67
|
UDP.PORT.DHCPS .EQ 67
|
||||||
|
UDP.PORT.PMAP .EQ 111
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.IPCFG.STATUS .EQ 0
|
S.IPCFG.STATUS .EQ 0
|
||||||
S.IPCFG.STATUS.OFF .EQ %00000000 TCPIP Unconfigured
|
S.IPCFG.STATUS.OFF .EQ %00000000 TCPIP Unconfigured
|
||||||
|
@ -209,6 +210,16 @@ S.DNS.QTYPE.SRV .EQ 33
|
||||||
S.DNS.QTYPE.ANY .EQ 255
|
S.DNS.QTYPE.ANY .EQ 255
|
||||||
S.DNS.QCLASS.IN .EQ 1
|
S.DNS.QCLASS.IN .EQ 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
S.RPC.XID .EQ S.UDP+0
|
||||||
|
S.RPC.C.RPCVERS .EQ S.UDP+4
|
||||||
|
S.RPC.C.PROG .EQ S.UDP+8
|
||||||
|
S.RPC.C.VERS .EQ S.UDP+12
|
||||||
|
S.RPC.C.PROC .EQ S.UDP+16
|
||||||
|
S.RPC.C.CRED .EQ S.UDP+20
|
||||||
|
S.RPC.C.VERF .EQ S.UDP+24
|
||||||
|
*
|
||||||
|
S.RPC .EQ 28
|
||||||
|
*--------------------------------------
|
||||||
S.TCP.SRCPORT .EQ S.IP+0
|
S.TCP.SRCPORT .EQ S.IP+0
|
||||||
S.TCP.DSTPORT .EQ S.IP+2
|
S.TCP.DSTPORT .EQ S.IP+2
|
||||||
S.TCP.SEQ.NUMBER .EQ S.IP+4
|
S.TCP.SEQ.NUMBER .EQ S.IP+4
|
||||||
|
|
|
@ -144,6 +144,7 @@ ARP.QUERY.I ldx #0
|
||||||
|
|
||||||
jsr NEW.ARP.FRAME nothing in ARP cache, send ARP request
|
jsr NEW.ARP.FRAME nothing in ARP cache, send ARP request
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
phx
|
phx
|
||||||
ldy #S.ARP.OPERATION+1
|
ldy #S.ARP.OPERATION+1
|
||||||
lda #S.ARP.OPERATION.REQ
|
lda #S.ARP.OPERATION.REQ
|
||||||
|
@ -185,7 +186,10 @@ ARP.QUERY.I ldx #0
|
||||||
cpy #S.ETH.DSTMAC+6
|
cpy #S.ETH.DSTMAC+6
|
||||||
bne .75
|
bne .75
|
||||||
|
|
||||||
|
>DEBUG
|
||||||
|
|
||||||
jsr SEND.ARP.FRAME.I
|
jsr SEND.ARP.FRAME.I
|
||||||
|
|
||||||
bcs .76
|
bcs .76
|
||||||
|
|
||||||
jsr ARP.ADD.PENDING ZPARPIP still pointing IP
|
jsr ARP.ADD.PENDING ZPARPIP still pointing IP
|
||||||
|
|
|
@ -77,7 +77,7 @@ L.DNS.CACHE .DA DNS.CACHE
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LIB.LOAD lda bFirstLoad
|
LIB.LOAD lda bFirstLoad
|
||||||
bne .8
|
bne *
|
||||||
jsr ARP.CLEAR
|
jsr ARP.CLEAR
|
||||||
jsr DNS.CLEAR
|
jsr DNS.CLEAR
|
||||||
inc bFirstLoad
|
inc bFirstLoad
|
||||||
|
|
Loading…
Reference in New Issue
Block a user