mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-28 03:55:01 +00:00
LBTCPIP:ARP/DNS debugging session #1
This commit is contained in:
parent
bb490f0347
commit
cf685a7b5b
BIN
A2OSX.BOOT.DSK
BIN
A2OSX.BOOT.DSK
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
@ -218,7 +218,7 @@ LIBSTR >PSTRING "libstr.o"
|
|||||||
LIBTCPIP >PSTRING "libtcpip.o"
|
LIBTCPIP >PSTRING "libtcpip.o"
|
||||||
SSCANF.IP >PSTRING "%d.%d.%d.%d"
|
SSCANF.IP >PSTRING "%d.%d.%d.%d"
|
||||||
MSG0 >CSTRING "STS TTL MAC Address IP Address\n"
|
MSG0 >CSTRING "STS TTL MAC Address IP Address\n"
|
||||||
MSG1 >CSTRING "$%h %5d %h:%h:%h:%h:%h:%h %d.%d.%d.%d\n"
|
MSG1 >CSTRING "$%h %5D %h:%h:%h:%h:%h:%h %d.%d.%d.%d\n"
|
||||||
MSG2 >CSTRING "%d.%d.%d.%d is at %h:%h:%h:%h:%h:%h\n"
|
MSG2 >CSTRING "%d.%d.%d.%d is at %h:%h:%h:%h:%h:%h\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DS.START
|
DS.START
|
||||||
|
@ -40,7 +40,6 @@ L.SSCANF.IP .DA SSCANF.IP
|
|||||||
L.IP .DA IP
|
L.IP .DA IP
|
||||||
L.MSG0 .DA MSG0
|
L.MSG0 .DA MSG0
|
||||||
L.MSG1 .DA MSG1
|
L.MSG1 .DA MSG1
|
||||||
L.DNSNAME .DA DNSNAME
|
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT stz hHostName
|
CS.INIT stz hHostName
|
||||||
@ -103,19 +102,12 @@ CS.INIT.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GETCACHE
|
|||||||
>PUSHW L.MSG0
|
>PUSHW L.MSG0
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
ldx #K.DNSCACHE.SIZE
|
lda #K.DNSCACHE.SIZE
|
||||||
|
sta EntryCount
|
||||||
|
|
||||||
.1 phx
|
.1 lda (ZPPTR1)
|
||||||
lda (ZPPTR1)
|
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
ldy #S.DNSCACHE.RDATA+4
|
|
||||||
.5 dey
|
|
||||||
lda (ZPPTR1),y
|
|
||||||
>PUSHA
|
|
||||||
cpy #S.DNSCACHE.RDATA
|
|
||||||
bne .5
|
|
||||||
|
|
||||||
ldy #S.DNSCACHE.TTL+4
|
ldy #S.DNSCACHE.TTL+4
|
||||||
.6 dey
|
.6 dey
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
@ -123,31 +115,18 @@ CS.INIT.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GETCACHE
|
|||||||
cpy #S.DNSCACHE.TTL
|
cpy #S.DNSCACHE.TTL
|
||||||
bne .6
|
bne .6
|
||||||
|
|
||||||
|
ldy #S.DNSCACHE.IP+4
|
||||||
|
.5 dey
|
||||||
|
lda (ZPPTR1),y
|
||||||
|
>PUSHA
|
||||||
|
cpy #S.DNSCACHE.IP
|
||||||
|
bne .5
|
||||||
|
|
||||||
ldy #S.DNSCACHE.hNAME
|
ldy #S.DNSCACHE.hNAME
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>STYA ZPPTR2
|
>PUSHYA
|
||||||
|
|
||||||
ldy #0 convert DNS-style string to PSTR
|
|
||||||
.10 lda (ZPPTR2),y
|
|
||||||
tax
|
|
||||||
beq .12
|
|
||||||
|
|
||||||
lda #'.'
|
|
||||||
sta DNSNAME,y
|
|
||||||
|
|
||||||
.11 iny
|
|
||||||
lda (ZPPTR2),y
|
|
||||||
sta DNSNAME,y
|
|
||||||
dex
|
|
||||||
bne .11
|
|
||||||
iny
|
|
||||||
bne .10
|
|
||||||
|
|
||||||
.12 dey
|
|
||||||
sty DNSNAME
|
|
||||||
|
|
||||||
>PUSHW L.DNSNAME
|
|
||||||
>PUSHB (ZPPTR1) Entry Status
|
>PUSHB (ZPPTR1) Entry Status
|
||||||
|
|
||||||
>PUSHW L.MSG1
|
>PUSHW L.MSG1
|
||||||
@ -160,10 +139,8 @@ CS.INIT.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GETCACHE
|
|||||||
bcc .3
|
bcc .3
|
||||||
inc ZPPTR1+1
|
inc ZPPTR1+1
|
||||||
|
|
||||||
.3 plx
|
.3 dec EntryCount
|
||||||
dex
|
bne .1
|
||||||
beq .8
|
|
||||||
jmp .1
|
|
||||||
|
|
||||||
.8 lda #0 tell TSKMGR that all done ok, but
|
.8 lda #0 tell TSKMGR that all done ok, but
|
||||||
sec we do not want to stay in memory
|
sec we do not want to stay in memory
|
||||||
@ -190,14 +167,14 @@ CS.END
|
|||||||
LIBSTR >PSTRING "libstr.o"
|
LIBSTR >PSTRING "libstr.o"
|
||||||
LIBTCPIP >PSTRING "libtcpip.o"
|
LIBTCPIP >PSTRING "libtcpip.o"
|
||||||
SSCANF.IP >PSTRING "%d.%d.%d.%d"
|
SSCANF.IP >PSTRING "%d.%d.%d.%d"
|
||||||
MSG0 >CSTRING "STS Hostname TTL IP Address\n"
|
MSG0 >CSTRING "STS Hostname IP Address TTL\n"
|
||||||
MSG1 >CSTRING "$%h %32S %h%h%h%h %d.%d.%d.%d\n"
|
MSG1 >CSTRING "$%h %32S %03d.%03d.%03d.%03d %L\n"
|
||||||
hLIBSTR .BS 1
|
hLIBSTR .BS 1
|
||||||
hLIBTCPIP .BS 1
|
hLIBTCPIP .BS 1
|
||||||
hHostName .BS 1
|
hHostName .BS 1
|
||||||
hIP .BS 1
|
hIP .BS 1
|
||||||
IP .BS 4
|
IP .BS 4
|
||||||
DNSNAME .BS K.DNS.MAXLEN+1
|
EntryCount .BS 1
|
||||||
MAN
|
MAN
|
||||||
SAVE BIN/DNSINFO.S
|
SAVE BIN/DNSINFO.S
|
||||||
ASM
|
ASM
|
||||||
|
211
LIB/LIBSTR.S.txt
211
LIB/LIBSTR.S.txt
@ -31,27 +31,27 @@ CS.START cld
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1 .DA LIB.LOAD
|
.1 .DA LIB.LOAD
|
||||||
.DA LIB.UNLOAD
|
.DA LIB.UNLOAD
|
||||||
.DA PRINTF
|
.DA PrintF
|
||||||
.DA PRINTC
|
.DA PrintC
|
||||||
.DA PRINTP
|
.DA PrintP
|
||||||
.DA STRMATCHP
|
.DA STRMATCHP
|
||||||
.DA STRCPYP
|
.DA STRCPYP
|
||||||
.DA STRCATP
|
.DA STRCATP
|
||||||
.DA UCASEP
|
.DA UCASEP
|
||||||
.DA LCASEP
|
.DA LCASEP
|
||||||
.DA PRINTDATE
|
.DA PrintDATE
|
||||||
.DA PRINTTIME
|
.DA PrintTIME
|
||||||
.DA SSCANF
|
.DA SSCANF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRINTFJMP1 .DA PRINTFA
|
PrintFJMP1 .DA PrintFA
|
||||||
.DA PRINTFB,PRINTFBB
|
.DA PrintFB,PrintFBB
|
||||||
.DA PRINTFD,PRINTFDD,PRINTFL
|
.DA PrintFD,PrintFDD,PrintFL
|
||||||
.DA PRINTFE,PRINTFEE
|
.DA PrintFE,PrintFEE
|
||||||
.DA PRINTFH,PRINTFHH
|
.DA PrintFH,PrintFHH
|
||||||
.DA PRINTFI,PRINTFII
|
.DA PrintFI,PrintFII
|
||||||
.DA PRINTFSC,PRINTFSP
|
.DA PrintFSC,PrintFSP
|
||||||
.DA PRINTFT,PRINTFTT
|
.DA PrintFT,PrintFTT
|
||||||
PRINTFJMP2 .DA PRINTFESC,PRINTFCR,PRINTFBKSLH,PRINTFPERCENT
|
PrintFJMP2 .DA PrintFESC,PrintFCR,PrintFBKSLH,PrintFPERCENT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -59,28 +59,27 @@ LIB.LOAD
|
|||||||
LIB.UNLOAD clc
|
LIB.UNLOAD clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PRINTF :
|
* PrintF :
|
||||||
* Prints C-Style String
|
* Prints C-Style String
|
||||||
* PULLW Pointer to Sting,Last Byte negative
|
* PULLW Pointer to Sting,Last Byte negative
|
||||||
* %a pull 1 byte to print ATTRIB String
|
* %a pull 1 byte to Print ATTRIB String
|
||||||
* %b pull 1 byte to print BIN
|
* %b pull 1 byte to Print BIN
|
||||||
* %B pull 2 byte to print BIN
|
* %B pull 2 byte to Print BIN
|
||||||
* %d pull 1 byte to print unsigned DEC
|
* %d pull 1 byte to Print unsigned DEC
|
||||||
* %D pull 2 bytes to print unsigned DEC
|
* %D pull 2 bytes to Print unsigned DEC
|
||||||
* %L pull 4 bytes to print unsigned DEC
|
* %L pull 4 bytes to Print unsigned DEC
|
||||||
* %n pull 1 byte to print low Nibble HEX
|
* %n pull 1 byte to Print low Nibble HEX
|
||||||
* %N pull 1 byte to print high Nibble HEX
|
* %N pull 1 byte to Print high Nibble HEX
|
||||||
* %h pull 1 byte to print HEX
|
* %h pull 1 byte to Print HEX
|
||||||
* %H pull 2 bytes to print HEX
|
* %H pull 2 bytes to Print HEX
|
||||||
* %i pull 1 byte to print signed DEC
|
* %i pull 1 byte to Print signed DEC
|
||||||
* %I pull 2 bytes to print signed DEC
|
* %I pull 2 bytes to Print signed DEC
|
||||||
* %s pull 2 bytes ptr to C-Style String
|
* %s pull 2 bytes ptr to C-Style String
|
||||||
* %S pull 2 bytes ptr to P-Style String
|
* %S pull 2 bytes ptr to P-Style String
|
||||||
* \e print 'ESC' ($1B,27)
|
* \e Print 'ESC' ($1B,27)
|
||||||
* \n print CR=13
|
* \n Print CR=13
|
||||||
* \\ print \
|
* \\ Print \
|
||||||
* \% print %
|
* \% Print %
|
||||||
|
|
||||||
* padding :
|
* padding :
|
||||||
* %d '9' '12'
|
* %d '9' '12'
|
||||||
* %2d ' 9' '12'
|
* %2d ' 9' '12'
|
||||||
@ -88,31 +87,31 @@ LIB.UNLOAD clc
|
|||||||
* %16s 'ABCDEFGHIjkl '
|
* %16s 'ABCDEFGHIjkl '
|
||||||
* %011s 'ABCDEFGH000'
|
* %011s 'ABCDEFGH000'
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRINTF >PULLW ZPTmpPtr1
|
PrintF >PULLW ZPTmpPtr1
|
||||||
ldy #0
|
ldy #0
|
||||||
PRINTFCOUT lda (ZPTmpPtr1),y
|
PrintFCOUT lda (ZPTmpPtr1),y
|
||||||
beq .1
|
beq .1
|
||||||
cmp #'%'
|
cmp #'%'
|
||||||
beq PRINTFESC1
|
beq PrintFESC1
|
||||||
cmp #'\'
|
cmp #'\'
|
||||||
beq PRINTFESC2
|
beq PrintFESC2
|
||||||
jsr COUT
|
jsr COUT
|
||||||
iny
|
iny
|
||||||
bne PRINTFCOUT
|
bne PrintFCOUT
|
||||||
.1 rts
|
.1 rts
|
||||||
PRINTFEXIT ply
|
PrintFEXIT ply
|
||||||
iny
|
iny
|
||||||
bne PRINTFCOUT
|
bne PrintFCOUT
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRINTFESC1 stz PADLEN
|
PrintFESC1 stz PADLEN
|
||||||
lda #' '
|
lda #' '
|
||||||
sta PADCHAR
|
sta PADCHAR
|
||||||
.1 ldx #PRINTFTBL1.END-PRINTFTBL1-1
|
.1 ldx #PrintFTBL1.END-PrintFTBL1-1
|
||||||
iny
|
iny
|
||||||
lda (ZPTmpPtr1),y
|
lda (ZPTmpPtr1),y
|
||||||
beq .9
|
beq .9
|
||||||
.2 cmp PRINTFTBL1,x do we have a %x command?
|
.2 cmp PrintFTBL1,x do we have a %x command?
|
||||||
beq .8 yes, jmp to it!
|
beq .8 yes, jmp to it!
|
||||||
dex
|
dex
|
||||||
bpl .2 no valid letter...
|
bpl .2 no valid letter...
|
||||||
@ -146,14 +145,14 @@ PRINTFESC1 stz PADLEN
|
|||||||
txa
|
txa
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
jmp (PRINTFJMP1,x)
|
jmp (PrintFJMP1,x)
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRINTFESC2 ldx #PRINTFTBL2.END-PRINTFTBL2-1
|
PrintFESC2 ldx #PrintFTBL2.END-PrintFTBL2-1
|
||||||
iny
|
iny
|
||||||
lda (ZPTmpPtr1),y
|
lda (ZPTmpPtr1),y
|
||||||
beq .9
|
beq .9
|
||||||
.2 cmp PRINTFTBL2,x
|
.2 cmp PrintFTBL2,x
|
||||||
beq .3
|
beq .3
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
@ -162,23 +161,23 @@ PRINTFESC2 ldx #PRINTFTBL2.END-PRINTFTBL2-1
|
|||||||
txa
|
txa
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
jmp (PRINTFJMP2,x)
|
jmp (PrintFJMP2,x)
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRINTFA >PULLA
|
PrintFA >PULLA
|
||||||
ldx #0
|
ldx #0
|
||||||
.1 asl
|
.1 asl
|
||||||
pha
|
pha
|
||||||
lda #'-'
|
lda #'-'
|
||||||
bcc .2
|
bcc .2
|
||||||
lda PRINTF.ATTRIB,x
|
lda PrintF.ATTRIB,x
|
||||||
.2 jsr COUT
|
.2 jsr COUT
|
||||||
pla
|
pla
|
||||||
inx
|
inx
|
||||||
cpx #8
|
cpx #8
|
||||||
bne .1
|
bne .1
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFB ldx #8
|
PrintFB ldx #8
|
||||||
>PULLA
|
>PULLA
|
||||||
.1 asl
|
.1 asl
|
||||||
pha
|
pha
|
||||||
@ -189,26 +188,26 @@ PRINTFB ldx #8
|
|||||||
pla
|
pla
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFBB >PULLA
|
PrintFBB >PULLA
|
||||||
>PULLA
|
>PULLA
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFD >PULLA
|
PrintFD >PULLA
|
||||||
sta HEXBUF
|
sta HEXBUF
|
||||||
stz HEXBUF+1
|
stz HEXBUF+1
|
||||||
stz HEXBUF+2
|
stz HEXBUF+2
|
||||||
stz HEXBUF+3
|
stz HEXBUF+3
|
||||||
jsr HEX2DEC
|
jsr HEX2DEC
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFDD >PULLA
|
PrintFDD >PULLA
|
||||||
sta HEXBUF
|
sta HEXBUF
|
||||||
>PULLA
|
>PULLA
|
||||||
sta HEXBUF+1
|
sta HEXBUF+1
|
||||||
stz HEXBUF+2
|
stz HEXBUF+2
|
||||||
stz HEXBUF+3
|
stz HEXBUF+3
|
||||||
jsr HEX2DEC
|
jsr HEX2DEC
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFL >PULLA
|
PrintFL >PULLA
|
||||||
sta HEXBUF
|
sta HEXBUF
|
||||||
>PULLA
|
>PULLA
|
||||||
sta HEXBUF+1
|
sta HEXBUF+1
|
||||||
@ -217,56 +216,56 @@ PRINTFL >PULLA
|
|||||||
>PULLA
|
>PULLA
|
||||||
sta HEXBUF+3
|
sta HEXBUF+3
|
||||||
jsr HEX2DEC
|
jsr HEX2DEC
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFE >PULLA
|
PrintFE >PULLA
|
||||||
jsr PRHEX
|
jsr PRHEX
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFEE >PULLA
|
PrintFEE >PULLA
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
jsr PRHEX
|
jsr PRHEX
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFH >PULLA
|
PrintFH >PULLA
|
||||||
jsr PRBYTE
|
jsr PRBYTE
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFHH >PULLA
|
PrintFHH >PULLA
|
||||||
pha
|
pha
|
||||||
>PULLA
|
>PULLA
|
||||||
jsr PRBYTE
|
jsr PRBYTE
|
||||||
pla
|
pla
|
||||||
jsr PRBYTE
|
jsr PRBYTE
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFI >PULLA
|
PrintFI >PULLA
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFII >PULLA
|
PrintFII >PULLA
|
||||||
>PULLA
|
>PULLA
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFSC >PULLYA
|
PrintFSC >PULLYA
|
||||||
jsr PRINTYA
|
jsr PrintYA
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFSP >PULLYA
|
PrintFSP >PULLYA
|
||||||
jsr PRINTYAP
|
jsr PrintYAP
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFT jsr PRINTTIME
|
PrintFT jsr PrintTIME
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFTT jsr PRINTDATE
|
PrintFTT jsr PrintDATE
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRINTFESC lda #$1B ESC
|
PrintFESC lda #$1B ESC
|
||||||
jsr COUT
|
jsr COUT
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFCR jsr CROUT
|
PrintFCR jsr CROUT
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFBKSLH lda #'\'
|
PrintFBKSLH lda #'\'
|
||||||
jsr COUT
|
jsr COUT
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
PRINTFPERCENT lda #'%'
|
PrintFPERCENT lda #'%'
|
||||||
jsr COUT
|
jsr COUT
|
||||||
jmp PRINTFEXIT
|
jmp PrintFEXIT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRINTC >PULLW ZPTmpPtr2
|
PrintC >PULLW ZPTmpPtr2
|
||||||
ldy #0
|
ldy #0
|
||||||
.1 lda (ZPTmpPtr2),y
|
.1 lda (ZPTmpPtr2),y
|
||||||
beq .8
|
beq .8
|
||||||
@ -275,7 +274,7 @@ PRINTC >PULLW ZPTmpPtr2
|
|||||||
bne .1
|
bne .1
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRINTP >PULLW ZPTmpPtr2
|
PrintP >PULLW ZPTmpPtr2
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (ZPTmpPtr2),y
|
lda (ZPTmpPtr2),y
|
||||||
tax
|
tax
|
||||||
@ -386,7 +385,7 @@ LCASEP phx
|
|||||||
* PULLW = DATE in ProDOS Format
|
* PULLW = DATE in ProDOS Format
|
||||||
* A = year, Y = month/day
|
* A = year, Y = month/day
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRINTDATE stz HEXBUF+1
|
PrintDATE stz HEXBUF+1
|
||||||
stz HEXBUF+2
|
stz HEXBUF+2
|
||||||
stz HEXBUF+3
|
stz HEXBUF+3
|
||||||
ldx #'0'
|
ldx #'0'
|
||||||
@ -437,7 +436,7 @@ PRINTDATE stz HEXBUF+1
|
|||||||
* PULLW = TIME in ProDOS Format
|
* PULLW = TIME in ProDOS Format
|
||||||
* A = hours, Y = minutes
|
* A = hours, Y = minutes
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRINTTIME stz HEXBUF+1
|
PrintTIME stz HEXBUF+1
|
||||||
stz HEXBUF+2
|
stz HEXBUF+2
|
||||||
stz HEXBUF+3
|
stz HEXBUF+3
|
||||||
ldx #'0'
|
ldx #'0'
|
||||||
@ -553,11 +552,11 @@ SSCANF.IsDigit cmp #'0'
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
********** PRIVATE FUNCTIONS **********
|
********** PRIVATE FUNCTIONS **********
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PRINTYAC :
|
* PrintYAC :
|
||||||
* Prints C-Style String
|
* Prints C-Style String
|
||||||
* Y,A=Pointer to Sting, Last Byte 0
|
* Y,A=Pointer to Sting, Last Byte 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRINTYA >STYA ZPTmpPtr2
|
PrintYA >STYA ZPTmpPtr2
|
||||||
ldy #0
|
ldy #0
|
||||||
.1 lda (ZPTmpPtr2),y
|
.1 lda (ZPTmpPtr2),y
|
||||||
beq .2
|
beq .2
|
||||||
@ -566,11 +565,11 @@ PRINTYA >STYA ZPTmpPtr2
|
|||||||
bne .1
|
bne .1
|
||||||
.2 rts
|
.2 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PRINTYAP :
|
* PrintYAP :
|
||||||
* Prints Pascal-Style String
|
* Prints Pascal-Style String
|
||||||
* Y,A=Pointer to Sting, LEN=1st Byte
|
* Y,A=Pointer to Sting, LEN=1st Byte
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRINTYAP phx
|
PrintYAP phx
|
||||||
>STYA ZPTmpPtr2
|
>STYA ZPTmpPtr2
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (ZPTmpPtr2),y
|
lda (ZPTmpPtr2),y
|
||||||
@ -644,19 +643,19 @@ HEX2DEC phx
|
|||||||
lda PADLEN any Len format ?
|
lda PADLEN any Len format ?
|
||||||
beq .5 no
|
beq .5 no
|
||||||
lda #10
|
lda #10
|
||||||
sec yes, print only digits starting at pos 10-padlen
|
sec yes, Print only digits starting at pos 10-padlen
|
||||||
sbc PADLEN
|
sbc PADLEN
|
||||||
.5 tax x=0 if no padlen, or x=10-padlen
|
.5 tax x=0 if no padlen, or x=10-padlen
|
||||||
.6 lda ASCBUF,x
|
.6 lda ASCBUF,x
|
||||||
cmp #'0' a zero?
|
cmp #'0' a zero?
|
||||||
beq .7
|
beq .7
|
||||||
inc PADLEN found a non zero, print all digits, even if 0, next time
|
inc PADLEN found a non zero, Print all digits, even if 0, next time
|
||||||
ldy #'0'
|
ldy #'0'
|
||||||
sty PADCHAR
|
sty PADCHAR
|
||||||
bra .8
|
bra .8
|
||||||
.7 cpx #9 last digit ?
|
.7 cpx #9 last digit ?
|
||||||
beq .8 print always
|
beq .8 Print always
|
||||||
ldy PADLEN no pad to fill, do not print 0
|
ldy PADLEN no pad to fill, do not Print 0
|
||||||
beq .9
|
beq .9
|
||||||
lda PADCHAR fill with PADCHAR
|
lda PADCHAR fill with PADCHAR
|
||||||
.8 jsr COUT
|
.8 jsr COUT
|
||||||
@ -768,11 +767,11 @@ COUT phx
|
|||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
PRINTFTBL1 .AS "abBdDLnNhHiIsStT"
|
PrintFTBL1 .AS "abBdDLnNhHiIsStT"
|
||||||
PRINTFTBL1.END
|
PrintFTBL1.END
|
||||||
PRINTFTBL2 .AS "en\%"
|
PrintFTBL2 .AS "en\%"
|
||||||
PRINTFTBL2.END
|
PrintFTBL2.END
|
||||||
PRINTF.ATTRIB .AS "dnb+++wr"
|
PrintF.ATTRIB .AS "dnb+++wr"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PADCHAR .BS 1
|
PADCHAR .BS 1
|
||||||
PADLEN .BS 1
|
PADLEN .BS 1
|
||||||
|
@ -105,7 +105,7 @@ ARP.QUERY.I jsr ARP.FIND.BY.IP
|
|||||||
|
|
||||||
lda ZPCachePtr
|
lda ZPCachePtr
|
||||||
clc
|
clc
|
||||||
adc S.ARPCACHE.MAC
|
adc #S.ARPCACHE.MAC
|
||||||
sta ZPCachePtr
|
sta ZPCachePtr
|
||||||
bcc .1
|
bcc .1
|
||||||
inc ZPCachePtr+1
|
inc ZPCachePtr+1
|
||||||
@ -246,49 +246,49 @@ ARP.RESOLVE ldy #S.IP.DST
|
|||||||
lda ZPFrameBase1+1
|
lda ZPFrameBase1+1
|
||||||
adc /S.ETH.DSTMAC
|
adc /S.ETH.DSTMAC
|
||||||
sta ZPPtrMAC+1
|
sta ZPPtrMAC+1
|
||||||
|
jmp ARP.QUERY.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ARP.FIND.BY.IP >LDYA L.ARP.CACHE
|
ARP.FIND.BY.IP >LDYA L.ARP.CACHE
|
||||||
>STYA ZPCachePtr
|
>STYA ZPCachePtr
|
||||||
|
|
||||||
lda #K.ARPCACHE.SIZE
|
ldx #K.ARPCACHE.SIZE
|
||||||
sta TmpOffset
|
|
||||||
|
|
||||||
.1 lda (ZPCachePtr)
|
.1 lda (ZPCachePtr)
|
||||||
beq .7
|
beq .2
|
||||||
|
|
||||||
ldy #S.ARPCACHE.IP+3
|
ldy #S.ARPCACHE.IP
|
||||||
ldx #3
|
|
||||||
lda (ZPCachePtr),y
|
lda (ZPCachePtr),y
|
||||||
cmp (ZPPtrIP)
|
cmp (ZPPtrIP)
|
||||||
bne .7
|
bne .2
|
||||||
|
|
||||||
ldy #S.ARPCACHE.IP+1
|
ldy #S.ARPCACHE.IP+1
|
||||||
lda (ZPCachePtr),y
|
lda (ZPCachePtr),y
|
||||||
ldy #1
|
ldy #1
|
||||||
cmp (ZPPtrIP),y
|
cmp (ZPPtrIP),y
|
||||||
bne .7
|
bne .2
|
||||||
|
|
||||||
ldy #S.ARPCACHE.IP+2
|
ldy #S.ARPCACHE.IP+2
|
||||||
lda (ZPCachePtr),y
|
lda (ZPCachePtr),y
|
||||||
ldy #2
|
ldy #2
|
||||||
cmp (ZPPtrIP),y
|
cmp (ZPPtrIP),y
|
||||||
bne .7
|
bne .2
|
||||||
|
|
||||||
ldy #S.ARPCACHE.IP+3
|
ldy #S.ARPCACHE.IP+3
|
||||||
lda (ZPCachePtr),y
|
lda (ZPCachePtr),y
|
||||||
ldy #3
|
ldy #3
|
||||||
cmp (ZPPtrIP),y
|
cmp (ZPPtrIP),y
|
||||||
bne .7
|
bne .2
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.7 lda ZPCachePtr
|
.2 lda ZPCachePtr
|
||||||
clc
|
clc
|
||||||
adc #S.ARPCACHE
|
adc #S.ARPCACHE
|
||||||
sta ZPCachePtr
|
sta ZPCachePtr
|
||||||
bcc .8
|
bcc .8
|
||||||
inc ZPCachePtr+1
|
inc ZPCachePtr+1
|
||||||
|
|
||||||
.8 dec TmpOffset
|
.8 dex
|
||||||
bne .1
|
bne .1
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
@ -227,6 +227,48 @@ DNS.FIND.BY.NAME
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
DNS.UPDATE.BY.ID
|
||||||
|
>LDYA L.DNS.CACHE
|
||||||
|
>STYA ZPCachePtr
|
||||||
|
|
||||||
|
ldx #K.DNSCACHE.SIZE
|
||||||
|
|
||||||
|
.1 lda (ZPCachePtr)
|
||||||
|
beq .6 empty DNS cache entry?
|
||||||
|
|
||||||
|
ldy #S.DNSCACHE.ID
|
||||||
|
lda (ZPCachePtr),y
|
||||||
|
cmp DNS.TmpCache+S.DNSCACHE.ID
|
||||||
|
bne .6
|
||||||
|
iny
|
||||||
|
lda (ZPCachePtr),y
|
||||||
|
cmp DNS.TmpCache+S.DNSCACHE.ID+1
|
||||||
|
bne .6
|
||||||
|
|
||||||
|
ldy #S.DNSCACHE-1
|
||||||
|
.2 lda DNS.TmpCache,y
|
||||||
|
sta (ZPCachePtr),y
|
||||||
|
dey
|
||||||
|
cpy #S.DNSCACHE.hNAME
|
||||||
|
bne .2
|
||||||
|
lda #S.DNSCACHE.STATUS.RESOLVED
|
||||||
|
sta (ZPCachePtr)
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.6 lda ZPCachePtr
|
||||||
|
clc
|
||||||
|
adc #S.DNSCACHE
|
||||||
|
sta ZPCachePtr
|
||||||
|
bcc .7
|
||||||
|
inc ZPCachePtr+1
|
||||||
|
|
||||||
|
.7 dex
|
||||||
|
bne .1
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
DNS.FIND.FREE >LDYA L.DNS.CACHE
|
DNS.FIND.FREE >LDYA L.DNS.CACHE
|
||||||
>STYA ZPCachePtr
|
>STYA ZPCachePtr
|
||||||
|
|
||||||
@ -339,11 +381,20 @@ DNS.DecodeMsg sta hFrame1
|
|||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>STYA ZPFrameBase1
|
>STYA ZPFrameBase1
|
||||||
|
|
||||||
|
>DEBUG
|
||||||
|
|
||||||
ldy #S.DNS.F+1
|
ldy #S.DNS.F+1
|
||||||
lda (ZPFrameBase1),y
|
lda (ZPFrameBase1),y
|
||||||
and /S.DNS.F.QR
|
and /S.DNS.F.QR
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
|
ldy #S.DNS.ID
|
||||||
|
lda (ZPFrameBase1),y
|
||||||
|
sta DNS.TmpCache+S.DNSCACHE.ID+1
|
||||||
|
iny
|
||||||
|
lda (ZPFrameBase1),y
|
||||||
|
sta DNS.TmpCache+S.DNSCACHE.ID
|
||||||
|
|
||||||
ldy #S.DNS.ANCOUNT+1
|
ldy #S.DNS.ANCOUNT+1
|
||||||
lda (ZPFrameBase1),y
|
lda (ZPFrameBase1),y
|
||||||
beq .9
|
beq .9
|
||||||
@ -366,8 +417,37 @@ DNS.DecodeMsg sta hFrame1
|
|||||||
dex skip another QUERY ?
|
dex skip another QUERY ?
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.3 iny skip high byte of offset
|
.3 iny Skip Pointer or labels....
|
||||||
iny skip lo byte of offset
|
lda (ZPFrameBase1),y
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
iny skip S.DNS.QTYPE HIGH
|
||||||
|
iny
|
||||||
|
lda (ZPFrameBase1),y
|
||||||
|
cmp #S.DNS.QTYPE.A
|
||||||
|
bne .9
|
||||||
|
iny skip QCLASS
|
||||||
|
iny
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
.4 iny
|
||||||
|
lda (ZPFrameBase1),y
|
||||||
|
sta DNS.TmpCache+S.DNSCACHE.TTL,x
|
||||||
|
dex
|
||||||
|
bpl .4
|
||||||
|
|
||||||
|
iny skip DATALEN
|
||||||
|
iny
|
||||||
|
ldx #0
|
||||||
|
|
||||||
|
.5 iny
|
||||||
|
lda (ZPFrameBase1),y
|
||||||
|
sta DNS.TmpCache+S.DNSCACHE.IP,x
|
||||||
|
inx
|
||||||
|
cpx #4
|
||||||
|
bne .5
|
||||||
|
|
||||||
|
jsr DNS.UPDATE.BY.ID
|
||||||
|
|
||||||
.9 lda hFrame1
|
.9 lda hFrame1
|
||||||
>SYSCALL SYS.FreeMemA
|
>SYSCALL SYS.FreeMemA
|
||||||
|
Loading…
Reference in New Issue
Block a user