mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-26 13:49:18 +00:00
Updates Related to new Soket API (coming soon!)
This commit is contained in:
parent
56e98b1fa3
commit
b63c884fbd
271
BIN/IPCONFIG.S.txt
Normal file
271
BIN/IPCONFIG.S.txt
Normal file
@ -0,0 +1,271 @@
|
|||||||
|
PR#3
|
||||||
|
PREFIX /A2OSX.SRC
|
||||||
|
NEW
|
||||||
|
INC 1
|
||||||
|
AUTO 6
|
||||||
|
.LIST OFF
|
||||||
|
.OP 65C02
|
||||||
|
.OR $2000
|
||||||
|
.TF /A2OSX.BOOT/BIN/IPCONFIG
|
||||||
|
*--------------------------------------
|
||||||
|
.INB INC/MACROS.I
|
||||||
|
.INB INC/A2OSX.I
|
||||||
|
.INB INC/LIBSTR.I
|
||||||
|
.INB INC/LIBTCPIP.I
|
||||||
|
*--------------------------------------
|
||||||
|
ZPIPCfgPtr .EQ ZPBIN
|
||||||
|
ZPDevPtr .EQ ZPBIN+2
|
||||||
|
ZPDevInfoPtr .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 0 Data Segment to Allocate
|
||||||
|
.DA 0
|
||||||
|
.DA 0
|
||||||
|
*--------------------------------------
|
||||||
|
* Relocation Table
|
||||||
|
*--------------------------------------
|
||||||
|
.1 .DA CS.INIT
|
||||||
|
.DA CS.RUN
|
||||||
|
.DA CS.DOEVENT
|
||||||
|
.DA CS.QUIT
|
||||||
|
L.LIBSTR .DA LIBSTR
|
||||||
|
L.LIBTCPIP .DA LIBTCPIP
|
||||||
|
L.MSG0 .DA MSG0
|
||||||
|
L.MSG0.NL .DA MSG0.NL
|
||||||
|
L.MSG0.L .DA MSG0.L
|
||||||
|
L.MSG1.DEV .DA MSG1.DEV
|
||||||
|
L.MSG1.DEV.ARP .DA MSG1.DEV.ARP
|
||||||
|
L.MSG1.LINK .DA MSG1.LINK
|
||||||
|
L.MSG1.LINK.OK .DA MSG1.LINK.OK
|
||||||
|
L.MSG1.LINK.KO .DA MSG1.LINK.KO
|
||||||
|
L.MSG1.LINKSPEED .DA MSG1.LINKSPEED
|
||||||
|
L.MSG1.DPLX.FD .DA MSG1.DPLX.FD
|
||||||
|
L.MSG1.DPLX.HD .DA MSG1.DPLX.HD
|
||||||
|
L.MSG2 .DA MSG2
|
||||||
|
L.MSG2.C .DA MSG2.C
|
||||||
|
L.MSG2.U .DA MSG2.U
|
||||||
|
L.MSG2.DHCPSRVR .DA MSG2.DHCPSRVR
|
||||||
|
L.MSG2.IP .DA MSG2.IP
|
||||||
|
L.MSG2.GW .DA MSG2.GW
|
||||||
|
L.MSG2.DNS .DA MSG2.DNS
|
||||||
|
L.MSG2.HOSTNAME .DA MSG2.HOSTNAME
|
||||||
|
.DA 0
|
||||||
|
*--------------------------------------
|
||||||
|
CS.INIT >LDYA L.LIBSTR
|
||||||
|
>SYSCALL SYS.LoadLibYA
|
||||||
|
sta hLIBSTR
|
||||||
|
|
||||||
|
>LDYA L.LIBTCPIP
|
||||||
|
>SYSCALL SYS.LoadLibYA
|
||||||
|
sta hLIBTCPIP
|
||||||
|
|
||||||
|
>PUSHW L.MSG0
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG
|
||||||
|
>STYA ZPIPCfgPtr
|
||||||
|
|
||||||
|
ldy #S.IPCFG.HDEV
|
||||||
|
lda (ZPIPCfgPtr),y
|
||||||
|
bne CS.INIT.DUMPDEV
|
||||||
|
|
||||||
|
>PUSHW L.MSG0.NL
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
jmp CS.INIT.DONE
|
||||||
|
|
||||||
|
CS.INIT.DUMPDEV sta DevID
|
||||||
|
>SYSCALL SYS.GetDevByIDA
|
||||||
|
>STYA ZPDevPtr
|
||||||
|
|
||||||
|
lda DevID
|
||||||
|
>SYSCALL SYS.GetDevInfoA
|
||||||
|
>STYA ZPDevInfoPtr
|
||||||
|
|
||||||
|
>PUSHW L.MSG0.L
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
ldy #S.DEVINFO.NET.MAC+6
|
||||||
|
.1 dey
|
||||||
|
>PUSHB (ZPDevInfoPtr),y
|
||||||
|
cpy #S.DEVINFO.NET.MAC
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
lda ZPDevPtr
|
||||||
|
clc
|
||||||
|
adc #S.DEV.NAME
|
||||||
|
tay
|
||||||
|
lda ZPDevPtr+1
|
||||||
|
adc #0
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
|
>PUSHB DevID
|
||||||
|
|
||||||
|
>PUSHW L.MSG1.DEV
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
ldy #S.DEVINFO.FLAGS
|
||||||
|
lda (ZPDevInfoPtr),y
|
||||||
|
and #S.DEVINFO.NET.FLAGS.ARPOFFLOAD
|
||||||
|
beq .2
|
||||||
|
lda #1
|
||||||
|
.2 >PUSHA
|
||||||
|
>PUSHW L.MSG1.DEV.ARP
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
ldy #S.DEVINFO.NET.STATUS
|
||||||
|
lda (ZPDevInfoPtr),y
|
||||||
|
and #S.DEVINFO.NET.STATUS.OK
|
||||||
|
bne CS.INIT.LINK
|
||||||
|
>PUSHW L.MSG1.LINK.KO
|
||||||
|
>PUSHW L.MSG1.LINK
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
bra CS.INIT.DUMPIP
|
||||||
|
|
||||||
|
CS.INIT.LINK >PUSHW L.MSG1.LINK.OK
|
||||||
|
>PUSHW L.MSG1.LINK
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
>PUSHW L.MSG1.LINKSPEED
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
ldy #S.DEVINFO.NET.STATUS
|
||||||
|
lda (ZPDevInfoPtr),y
|
||||||
|
and #$0F
|
||||||
|
tax
|
||||||
|
|
||||||
|
.4 phx
|
||||||
|
lda #'0'
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
|
plx
|
||||||
|
dex
|
||||||
|
bne .4
|
||||||
|
|
||||||
|
ldy #S.DEVINFO.NET.STATUS
|
||||||
|
lda (ZPDevInfoPtr),y
|
||||||
|
and #S.DEVINFO.NET.STATUS.FD
|
||||||
|
bne .5
|
||||||
|
>PUSHW L.MSG1.DPLX.HD
|
||||||
|
bra .6
|
||||||
|
.5 >PUSHW L.MSG1.DPLX.FD
|
||||||
|
.6 >LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
CS.INIT.DUMPIP >PUSHW L.MSG2
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
lda (ZPIPCfgPtr)
|
||||||
|
and #S.IPCFG.STATUS.OK
|
||||||
|
beq .11
|
||||||
|
>LDYA L.MSG2.C
|
||||||
|
bra .10
|
||||||
|
.11 >LDYA L.MSG2.U
|
||||||
|
|
||||||
|
.10 >PUSHYA
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
ldy #S.IPCFG.DHCPSRVR+3
|
||||||
|
ldx #4
|
||||||
|
.2 >PUSHB (ZPIPCfgPtr),y
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bne .2
|
||||||
|
>PUSHW L.MSG2.DHCPSRVR
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
ldy #S.IPCFG.IP+7 IP/MASK
|
||||||
|
ldx #8
|
||||||
|
.3 >PUSHB (ZPIPCfgPtr),y
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bne .3
|
||||||
|
>PUSHW L.MSG2.IP
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
ldy #S.IPCFG.GW+3
|
||||||
|
ldx #4
|
||||||
|
.4 >PUSHB (ZPIPCfgPtr),y
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bne .4
|
||||||
|
>PUSHW L.MSG2.GW
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
ldy #S.IPCFG.DNS1+7
|
||||||
|
ldx #8
|
||||||
|
.5 >PUSHB (ZPIPCfgPtr),y
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bne .5
|
||||||
|
>PUSHW L.MSG2.DNS
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
lda ZPIPCfgPtr
|
||||||
|
clc
|
||||||
|
adc #S.IPCFG.DOMAIN
|
||||||
|
tay
|
||||||
|
lda ZPIPCfgPtr+1
|
||||||
|
adc #0
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
|
lda ZPIPCfgPtr
|
||||||
|
clc
|
||||||
|
adc #S.IPCFG.HOSTNAME
|
||||||
|
tay
|
||||||
|
lda ZPIPCfgPtr+1
|
||||||
|
adc #0
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
|
>PUSHW L.MSG2.HOSTNAME
|
||||||
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
|
CS.INIT.DONE lda #0 tell TSKMGR that all done ok, but
|
||||||
|
sec we do not want to stay in memory
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN
|
||||||
|
CS.DOEVENT clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.QUIT lda hLIBTCPIP
|
||||||
|
>SYSCALL SYS.FreeMemA
|
||||||
|
lda hLIBSTR
|
||||||
|
>SYSCALL SYS.FreeMemA
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.END
|
||||||
|
LIBSTR >PSTRING "libstr.o"
|
||||||
|
LIBTCPIP >PSTRING "libtcpip.o"
|
||||||
|
*--------------------------------------
|
||||||
|
MSG0 >CSTRING "TCP/IP Status : "
|
||||||
|
MSG0.L >CSTRING "Loaded\n"
|
||||||
|
MSG0.NL >CSTRING "Not Loaded\n"
|
||||||
|
*--------------------------------------
|
||||||
|
MSG1.DEV >CSTRING "\nDevice Configuration :\n DevID : $%h\n Device Name : %s\n HW Address : %02h:%02h:%02h:%02h:%02h:%02h\n"
|
||||||
|
MSG1.DEV.ARP >CSTRING " ARP Offload : %d\n"
|
||||||
|
MSG1.LINK >CSTRING " Link Status : %s\n"
|
||||||
|
MSG1.LINK.OK >CSTRING "OK"
|
||||||
|
MSG1.LINK.KO >CSTRING "Media Disconnected"
|
||||||
|
MSG1.LINKSPEED >CSTRING " Link Speed : 1"
|
||||||
|
MSG1.DPLX.FD >CSTRING " Mbit/s,Full Duplex\n"
|
||||||
|
MSG1.DPLX.HD >CSTRING " Mbit/s,Half Duplex\n"
|
||||||
|
*--------------------------------------
|
||||||
|
MSG2 >CSTRING "\nIP Configuration : "
|
||||||
|
MSG2.C >CSTRING "Configured\n"
|
||||||
|
MSG2.U >CSTRING "Not Configured\n"
|
||||||
|
MSG2.DHCPSRVR >CSTRING " DHCP Server : %d.%d.%d.%d\n"
|
||||||
|
MSG2.IP >CSTRING " IP/Mask : %d.%d.%d.%d/%d.%d.%d.%d\n"
|
||||||
|
MSG2.GW >CSTRING " Gateway : %d.%d.%d.%d\n"
|
||||||
|
MSG2.DNS >CSTRING " DNS : %d.%d.%d.%d,%d.%d.%d.%d\n"
|
||||||
|
MSG2.HOSTNAME >CSTRING " Hostname : %s.%s\n"
|
||||||
|
hLIBSTR .BS 1
|
||||||
|
hLIBTCPIP .BS 1
|
||||||
|
DevID .BS 1
|
||||||
|
MAN
|
||||||
|
SAVE BIN/IPCONFIG.S
|
||||||
|
ASM
|
@ -1,187 +0,0 @@
|
|||||||
PR#3
|
|
||||||
PREFIX /A2OSX.SRC
|
|
||||||
NEW
|
|
||||||
INC 1
|
|
||||||
AUTO 6
|
|
||||||
.LIST OFF
|
|
||||||
.OP 65C02
|
|
||||||
.OR $2000
|
|
||||||
.TF /A2OSX.BOOT/BIN/NETINFO
|
|
||||||
*--------------------------------------
|
|
||||||
.INB INC/MACROS.I
|
|
||||||
.INB INC/A2OSX.I
|
|
||||||
.INB INC/LIBSTR.I
|
|
||||||
.INB INC/LIBTCPIP.I
|
|
||||||
*--------------------------------------
|
|
||||||
ZPIPCfgPtr .EQ ZPBIN
|
|
||||||
ZPDevInfoPtr .EQ ZPBIN+2
|
|
||||||
*--------------------------------------
|
|
||||||
* 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 0 Data Segment to Allocate
|
|
||||||
.DA 0
|
|
||||||
.DA 0
|
|
||||||
*--------------------------------------
|
|
||||||
* Relocation Table
|
|
||||||
*--------------------------------------
|
|
||||||
.1 .DA CS.INIT
|
|
||||||
.DA CS.RUN
|
|
||||||
.DA CS.DOEVENT
|
|
||||||
.DA CS.QUIT
|
|
||||||
L.LIBSTR .DA LIBSTR
|
|
||||||
L.LIBTCPIP .DA LIBTCPIP
|
|
||||||
L.MSG0 .DA MSG0
|
|
||||||
L.MSG0.C .DA MSG0.C
|
|
||||||
L.MSG0.U .DA MSG0.U
|
|
||||||
L.MSG1.DEV .DA MSG1.DEV
|
|
||||||
L.MSG1.DHCPSRVR .DA MSG1.DHCPSRVR
|
|
||||||
L.MSG1.IP .DA MSG1.IP
|
|
||||||
L.MSG1.GW .DA MSG1.GW
|
|
||||||
L.MSG1.DNS .DA MSG1.DNS
|
|
||||||
L.MSG1.HOSTNAME .DA MSG1.HOSTNAME
|
|
||||||
L.MSG1.DOMAIN .DA MSG1.DOMAIN
|
|
||||||
.DA 0
|
|
||||||
*--------------------------------------
|
|
||||||
CS.INIT >LDYA L.LIBSTR
|
|
||||||
>SYSCALL SYS.LoadLibYA
|
|
||||||
sta hLIBSTR
|
|
||||||
|
|
||||||
>LDYA L.LIBTCPIP
|
|
||||||
>SYSCALL SYS.LoadLibYA
|
|
||||||
sta hLIBTCPIP
|
|
||||||
|
|
||||||
>PUSHW L.MSG0
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG
|
|
||||||
>STYA ZPIPCfgPtr
|
|
||||||
|
|
||||||
lda (ZPIPCfgPtr)
|
|
||||||
and #S.IPCFG.STATUS.OK
|
|
||||||
beq .11
|
|
||||||
>LDYA L.MSG0.C
|
|
||||||
bra .10
|
|
||||||
.11 >LDYA L.MSG0.U
|
|
||||||
|
|
||||||
.10 >PUSHYA
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
|
||||||
|
|
||||||
CS.INIT.PRINT ldy #S.IPCFG.MAC+6
|
|
||||||
.1 dey
|
|
||||||
>PUSHB (ZPIPCfgPtr),y
|
|
||||||
cpy #S.IPCFG.MAC
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
ldy #S.IPCFG.hDEV
|
|
||||||
lda (ZPIPCfgPtr),y
|
|
||||||
>SYSCALL SYS.GetDevInfoA
|
|
||||||
>STYA ZPDevInfoPtr
|
|
||||||
ldy #S.DEVINFO.NET.STATUS
|
|
||||||
>PUSHB (ZPDevInfoPtr),y
|
|
||||||
|
|
||||||
ldy #S.IPCFG.hDEV
|
|
||||||
>PUSHB (ZPIPCfgPtr),y
|
|
||||||
|
|
||||||
>PUSHW L.MSG1.DEV
|
|
||||||
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
|
||||||
|
|
||||||
ldy #S.IPCFG.DHCPSRVR+3
|
|
||||||
ldx #4
|
|
||||||
.2 >PUSHB (ZPIPCfgPtr),y
|
|
||||||
dey
|
|
||||||
dex
|
|
||||||
bne .2
|
|
||||||
>PUSHW L.MSG1.DHCPSRVR
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
|
||||||
|
|
||||||
ldy #S.IPCFG.IP+7 IP/MASK
|
|
||||||
ldx #8
|
|
||||||
.3 >PUSHB (ZPIPCfgPtr),y
|
|
||||||
dey
|
|
||||||
dex
|
|
||||||
bne .3
|
|
||||||
>PUSHW L.MSG1.IP
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
|
||||||
|
|
||||||
ldy #S.IPCFG.GW+3
|
|
||||||
ldx #4
|
|
||||||
.4 >PUSHB (ZPIPCfgPtr),y
|
|
||||||
dey
|
|
||||||
dex
|
|
||||||
bne .4
|
|
||||||
>PUSHW L.MSG1.GW
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
|
||||||
|
|
||||||
ldy #S.IPCFG.DNS1+7
|
|
||||||
ldx #8
|
|
||||||
.5 >PUSHB (ZPIPCfgPtr),y
|
|
||||||
dey
|
|
||||||
dex
|
|
||||||
bne .5
|
|
||||||
>PUSHW L.MSG1.DNS
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
|
||||||
|
|
||||||
lda ZPIPCfgPtr
|
|
||||||
clc
|
|
||||||
adc #S.IPCFG.HOSTNAME
|
|
||||||
tay
|
|
||||||
lda ZPIPCfgPtr+1
|
|
||||||
adc #0
|
|
||||||
>PUSHYA
|
|
||||||
>PUSHW L.MSG1.HOSTNAME
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
|
||||||
|
|
||||||
ldy #S.IPCFG.DOMAIN
|
|
||||||
lda (ZPIPCfgPtr),y
|
|
||||||
beq CS.INIT.DONE
|
|
||||||
|
|
||||||
lda ZPIPCfgPtr
|
|
||||||
clc
|
|
||||||
adc #S.IPCFG.DOMAIN
|
|
||||||
tay
|
|
||||||
lda ZPIPCfgPtr+1
|
|
||||||
adc #0
|
|
||||||
>PUSHYA
|
|
||||||
>PUSHW L.MSG1.DOMAIN
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
|
||||||
|
|
||||||
CS.INIT.DONE lda #0 tell TSKMGR that all done ok, but
|
|
||||||
sec we do not want to stay in memory
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.RUN
|
|
||||||
CS.DOEVENT clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.QUIT lda hLIBTCPIP
|
|
||||||
>SYSCALL SYS.FreeMemA
|
|
||||||
lda hLIBSTR
|
|
||||||
>SYSCALL SYS.FreeMemA
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.END
|
|
||||||
LIBSTR >PSTRING "libstr.o"
|
|
||||||
LIBTCPIP >PSTRING "libtcpip.o"
|
|
||||||
MSG0 >CSTRING "TCP/IP Status: "
|
|
||||||
MSG0.C >CSTRING "Configured.\n"
|
|
||||||
MSG0.U >CSTRING "Not Configured.\n"
|
|
||||||
MSG1.DEV >CSTRING " DeviceID : %h,%b,MAC=%02h:%02h:%02h:%02h:%02h:%02h\n"
|
|
||||||
MSG1.DHCPSRVR >CSTRING " DHCP Server : %d.%d.%d.%d\n"
|
|
||||||
MSG1.IP >CSTRING " IP/Mask : %d.%d.%d.%d/%d.%d.%d.%d\n"
|
|
||||||
MSG1.GW >CSTRING " Gateway : %d.%d.%d.%d\n"
|
|
||||||
MSG1.DNS >CSTRING " DNS : %d.%d.%d.%d,%d.%d.%d.%d\n"
|
|
||||||
MSG1.HOSTNAME >CSTRING " Hostname : %s"
|
|
||||||
MSG1.DOMAIN >CSTRING ".%s\n"
|
|
||||||
hLIBSTR .BS 1
|
|
||||||
hLIBTCPIP .BS 1
|
|
||||||
MAN
|
|
||||||
SAVE BIN/NETINFO.S
|
|
||||||
ASM
|
|
108
BIN/PING.S.txt
108
BIN/PING.S.txt
@ -13,7 +13,7 @@ AUTO 6
|
|||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
.INB INC/LIBTCPIP.I
|
.INB INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PING.TIMEOUT .EQ 40 40*100ms = 4 sec.
|
TIMEOUT.MAX .EQ 50 5 sec.
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPFrameBase1 .EQ ZPBIN
|
ZPFrameBase1 .EQ ZPBIN
|
||||||
ZPFrameLen1 .EQ ZPBIN+2
|
ZPFrameLen1 .EQ ZPBIN+2
|
||||||
@ -38,7 +38,6 @@ CS.START cld
|
|||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.LIBSTR .DA LIBSTR
|
L.LIBSTR .DA LIBSTR
|
||||||
L.LIBTCPIP .DA LIBTCPIP
|
L.LIBTCPIP .DA LIBTCPIP
|
||||||
L.SSCANF.IP .DA SSCANF.IP
|
|
||||||
L.MSG0 .DA MSG0
|
L.MSG0 .DA MSG0
|
||||||
L.MSG1 .DA MSG1
|
L.MSG1 .DA MSG1
|
||||||
L.MSG2 .DA MSG2
|
L.MSG2 .DA MSG2
|
||||||
@ -91,31 +90,18 @@ CS.INIT ldy #S.PS.hARGS
|
|||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >PUSHW pData DST.IP
|
CS.RUN jsr Init.Timeout
|
||||||
>PUSHW L.SSCANF.IP
|
|
||||||
|
.1 >PUSHW pData DST.IP
|
||||||
ldy #S.PS.hARGS
|
ldy #S.PS.hARGS
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LIBCALL hLIBSTR,LIBSTR.SSCANF
|
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
||||||
bcc CS.RUN.IPOK
|
bcc .2
|
||||||
|
|
||||||
lda #PING.TIMEOUT
|
|
||||||
ldy #TimeOut
|
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
CS.RUN.DNSQUERY >PUSHW pData DST.IP
|
|
||||||
ldy #S.PS.hARGS
|
|
||||||
lda (pPs),y
|
|
||||||
>SYSCALL SYS.GetMemPtrA
|
|
||||||
>PUSHYA
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.DNS.QUERY
|
|
||||||
bcc CS.RUN.IPOK
|
|
||||||
|
|
||||||
>SYSCALL SYS.Sleep
|
>SYSCALL SYS.Sleep
|
||||||
ldy #TimeOut
|
jsr Wait.Timeout
|
||||||
lda (pData),y
|
bcc .1
|
||||||
bne CS.RUN.DNSQUERY
|
|
||||||
|
|
||||||
ldy #S.PS.hARGS
|
ldy #S.PS.hARGS
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
@ -123,14 +109,15 @@ CS.RUN.DNSQUERY >PUSHW pData DST.IP
|
|||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHW L.MSG0
|
>PUSHW L.MSG0
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
lda #1
|
||||||
sec
|
sec
|
||||||
CS.RUN.RTS rts
|
rts
|
||||||
|
|
||||||
CS.RUN.IPOK ldy #S.PS.hARGS
|
.2 ldy #S.PS.hARGS
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
ldy #3
|
ldy #3
|
||||||
>PUSHB (pData),y DST.IP+3
|
>PUSHB (pData),y DST.IP+3
|
||||||
dey
|
dey
|
||||||
@ -142,12 +129,17 @@ CS.RUN.IPOK ldy #S.PS.hARGS
|
|||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
|
|
||||||
CS.RUN.ECHO >LIBCALL hLIBTCPIP,LIBTCPIP.NEW.ICMP.FRAME
|
CS.RUN.ECHO >LIBCALL hLIBTCPIP,LIBTCPIP.NEW.ICMP.FRAME
|
||||||
bcs CS.RUN.RTS
|
|
||||||
>STYA ZPFrameBase1
|
>STYA ZPFrameBase1
|
||||||
txa
|
txa
|
||||||
ldy #hFrame
|
ldy #hFrame
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
|
lda #S.ICMP+32-2
|
||||||
|
sta (ZPFrameBase1)
|
||||||
|
lda /S.ICMP+32-2
|
||||||
|
ldy #1
|
||||||
|
sta (ZPFrameBase1),y
|
||||||
|
|
||||||
ldx #3
|
ldx #3
|
||||||
ldy #0
|
ldy #0
|
||||||
.10 lda (pData),y
|
.10 lda (pData),y
|
||||||
@ -200,21 +192,28 @@ CS.RUN.ECHO >LIBCALL hLIBTCPIP,LIBTCPIP.NEW.ICMP.FRAME
|
|||||||
txa
|
txa
|
||||||
sta (ZPFrameBase1),y
|
sta (ZPFrameBase1),y
|
||||||
|
|
||||||
lda #PING.TIMEOUT
|
ldx #31
|
||||||
ldy #TimeOut
|
ldy #S.ICMP+31
|
||||||
sta (pData),y
|
.21 txa
|
||||||
|
and #$0f
|
||||||
|
ora #$60
|
||||||
|
sta (ZPFrameBase1),y
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bpl .21
|
||||||
|
|
||||||
.3 >PUSHWI S.ICMP+32
|
jsr Init.Timeout
|
||||||
ldy #hFrame
|
|
||||||
|
.3 ldy #hFrame
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SEND.ICMP.FRAME
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SEND.ICMP.FRAME
|
||||||
bcc .4
|
bcc .4
|
||||||
>SYSCALL SYS.Sleep
|
>SYSCALL SYS.Sleep
|
||||||
ldy #TimeOut
|
|
||||||
lda (pData),y
|
jsr Wait.Timeout
|
||||||
bne .3
|
bcc .3
|
||||||
|
|
||||||
.4 ldy #hFrame
|
.4 ldy #hFrame
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
@ -223,9 +222,8 @@ CS.RUN.ECHO >LIBCALL hLIBTCPIP,LIBTCPIP.NEW.ICMP.FRAME
|
|||||||
ldy #bReply
|
ldy #bReply
|
||||||
lda #0
|
lda #0
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
lda #PING.TIMEOUT
|
|
||||||
ldy #TimeOut
|
jsr Init.Timeout
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
CS.RUN.WAIT >SYSCALL SYS.Sleep
|
CS.RUN.WAIT >SYSCALL SYS.Sleep
|
||||||
ldy #bReply
|
ldy #bReply
|
||||||
@ -235,9 +233,9 @@ CS.RUN.WAIT >SYSCALL SYS.Sleep
|
|||||||
ldy #bCTRLC
|
ldy #bCTRLC
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
bne CS.RUN.ERROR
|
bne CS.RUN.ERROR
|
||||||
ldy #TimeOut
|
|
||||||
lda (pData),y
|
jsr Wait.Timeout
|
||||||
bne CS.RUN.WAIT
|
bcc CS.RUN.WAIT
|
||||||
|
|
||||||
ldy #3
|
ldy #3
|
||||||
>PUSHB (pData),y DST.IP+3
|
>PUSHB (pData),y DST.IP+3
|
||||||
@ -265,16 +263,15 @@ CS.RUN.ERROR sec
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT lda (pEvent)
|
CS.DOEVENT lda (pEvent)
|
||||||
and #S.EVT.F.TIMER is it a TIMER event?
|
bpl .1 is it a TIMER event?
|
||||||
beq .1 no....
|
|
||||||
|
|
||||||
ldy #TimeOut
|
ldy #TimeOut
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
beq .10
|
beq .9
|
||||||
|
|
||||||
dec
|
dec
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
.10 sec do not discard TIMER event
|
sec do not discard TIMER event
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 lda (pEvent)
|
.1 lda (pEvent)
|
||||||
@ -346,9 +343,10 @@ CS.DOEVENT lda (pEvent)
|
|||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.EVENT.REPLY lda #PING.TIMEOUT
|
CS.EVENT.REPLY lda #TIMEOUT.MAX
|
||||||
sec
|
sec
|
||||||
sbc TimeOut
|
ldy #TimeOut
|
||||||
|
sbc (pData),y
|
||||||
|
|
||||||
stz TimeOut.ms
|
stz TimeOut.ms
|
||||||
stz TimeOut.ms+1
|
stz TimeOut.ms+1
|
||||||
@ -358,7 +356,7 @@ CS.EVENT.REPLY lda #PING.TIMEOUT
|
|||||||
|
|
||||||
.1 lda TimeOut.ms
|
.1 lda TimeOut.ms
|
||||||
clc
|
clc
|
||||||
adc #K.TIMER16RESOLUTION*20
|
adc #100
|
||||||
sta TimeOut.ms
|
sta TimeOut.ms
|
||||||
bcc .2
|
bcc .2
|
||||||
inc TimeOut
|
inc TimeOut
|
||||||
@ -399,10 +397,24 @@ CS.QUIT lda hLIBTCPIP
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
Init.Timeout ldy #TimeOut
|
||||||
|
lda #TIMEOUT.MAX
|
||||||
|
sta (pData),y
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
Wait.TimeOut sec
|
||||||
|
ldy #TimeOut
|
||||||
|
lda (pData),y
|
||||||
|
beq .9
|
||||||
|
ldy #bCTRLC
|
||||||
|
lda (pData),y
|
||||||
|
bmi .9
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
CS.END
|
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"
|
|
||||||
MSG0 >CSTRING "%S: Unknown host\n"
|
MSG0 >CSTRING "%S: Unknown host\n"
|
||||||
MSG1 >CSTRING "PING %d.%d.%d.%d (%S)\n"
|
MSG1 >CSTRING "PING %d.%d.%d.%d (%S)\n"
|
||||||
MSG2 >CSTRING "%d.%d.%d.%d: TimeOut/Host unreachable\n"
|
MSG2 >CSTRING "%d.%d.%d.%d: TimeOut/Host unreachable\n"
|
||||||
|
@ -6,7 +6,7 @@ AUTO 6
|
|||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF /A2OSX.BOOT/BIN/RPCINFO
|
.TF /A2OSX.BOOT/BIN/RPCDUMP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
@ -135,7 +135,7 @@ CS.RUN jsr Init.Timeout
|
|||||||
|
|
||||||
.5 ldy #hSocket
|
.5 ldy #hSocket
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.RCVD
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.RCVDA
|
||||||
bcc .6
|
bcc .6
|
||||||
|
|
||||||
>SYSCALL SYS.Sleep
|
>SYSCALL SYS.Sleep
|
||||||
@ -168,8 +168,7 @@ CS.RUN jsr Init.Timeout
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT lda (pEvent)
|
CS.DOEVENT lda (pEvent)
|
||||||
bit #S.EVT.F.TIMER is it a TIMER event?
|
bpl .1 is it a TIMER event?
|
||||||
beq .1 no....
|
|
||||||
|
|
||||||
ldy #TimeOut
|
ldy #TimeOut
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
@ -321,5 +320,5 @@ DS.END
|
|||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE BIN/RPCINFO.S
|
SAVE BIN/RPCDUMP.S
|
||||||
ASM
|
ASM
|
150
BIN/TEST.S.txt
150
BIN/TEST.S.txt
@ -12,6 +12,8 @@ AUTO 6
|
|||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/LIBSTR.I
|
.INB INC/LIBSTR.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
ZPPTR1 .EQ ZPBIN
|
||||||
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.START cld
|
CS.START cld
|
||||||
@ -20,7 +22,7 @@ CS.START cld
|
|||||||
.DA #1 BIN Layout Version 1
|
.DA #1 BIN Layout Version 1
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA CS.END-CS.START Code Length To Relocate
|
.DA CS.END-CS.START Code Length To Relocate
|
||||||
.DA 0
|
.DA DS.END-DS.START Data Segment to Allocate
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -28,19 +30,13 @@ CS.START cld
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1 .DA CS.INIT
|
.1 .DA CS.INIT
|
||||||
.DA CS.RUN
|
.DA CS.RUN
|
||||||
.DA CS.EVENT
|
.DA CS.DOEVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.LIBSTR .DA LIBSTR
|
L.LIBSTR .DA LIBSTR
|
||||||
L.MSG0 .DA MSG0
|
L.MSG0 .DA MSG0
|
||||||
L.MSG1 .DA MSG1
|
L.MSG1 .DA MSG1
|
||||||
L.MSG2 .DA MSG2
|
L.MSG2 .DA MSG2
|
||||||
L.MSG3 .DA MSG3
|
L.MSG3 .DA MSG3
|
||||||
L.SSCANF.IP .DA SSCANF.IP
|
|
||||||
L.PRINTF.IP .DA PRINTF.IP
|
|
||||||
L.DST.IP .DA DST.IP
|
|
||||||
L.TEST1 .DA TEST1
|
|
||||||
L.TEST2 .DA TEST2
|
|
||||||
L.TEST3 .DA TEST3
|
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBSTR
|
CS.INIT >LDYA L.LIBSTR
|
||||||
@ -57,9 +53,9 @@ CS.INIT >LDYA L.LIBSTR
|
|||||||
ldy #S.PS.hCS
|
ldy #S.PS.hCS
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
>SYSCALL SYS.GetMemByIDA
|
>SYSCALL SYS.GetMemByIDA
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPPTR1
|
||||||
ldy #S.MEM.BIN
|
ldy #S.MEM.BIN
|
||||||
lda (ZPQuickPtr1),y
|
lda (ZPPTR1),y
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHW L.MSG1
|
>PUSHW L.MSG1
|
||||||
@ -79,63 +75,67 @@ CS.INIT >LDYA L.LIBSTR
|
|||||||
ldy #S.PS.hENV
|
ldy #S.PS.hENV
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
>SYSCALL SYS.GetMemPtrA
|
>SYSCALL SYS.GetMemPtrA
|
||||||
>STYA ZPBIN
|
>STYA ZPPTR1
|
||||||
|
|
||||||
.1 lda (ZPBIN)
|
.1 lda (ZPPTR1)
|
||||||
beq .2
|
beq .2
|
||||||
>PUSHW ZPBIN
|
>PUSHW ZPPTR1
|
||||||
>PUSHW L.MSG3
|
>PUSHW L.MSG3
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
||||||
lda (ZPBIN)
|
lda (ZPPTR1)
|
||||||
sec
|
sec
|
||||||
adc ZPBIN
|
adc ZPPTR1
|
||||||
sta ZPBIN
|
sta ZPPTR1
|
||||||
bcc .1
|
bcc .1
|
||||||
inc ZPBIN+1
|
inc ZPPTR1+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 >PUSHW L.DST.IP
|
.2 ldy #bCTRLC
|
||||||
>PUSHW L.SSCANF.IP
|
lda #0
|
||||||
>PUSHW L.TEST1
|
sta (pData),y
|
||||||
>LIBCALL hLIBSTR,LIBSTR.SSCANF
|
|
||||||
|
|
||||||
>PUSHB DST.IP+3
|
clc
|
||||||
>PUSHB DST.IP+2
|
|
||||||
>PUSHB DST.IP+1
|
|
||||||
>PUSHB DST.IP
|
|
||||||
>PUSHW L.PRINTF.IP
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
|
||||||
|
|
||||||
>PUSHW L.DST.IP
|
|
||||||
>PUSHW L.SSCANF.IP
|
|
||||||
>PUSHW L.TEST2
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.SSCANF
|
|
||||||
|
|
||||||
>PUSHB DST.IP+3
|
|
||||||
>PUSHB DST.IP+2
|
|
||||||
>PUSHB DST.IP+1
|
|
||||||
>PUSHB DST.IP
|
|
||||||
>PUSHW L.PRINTF.IP
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
|
||||||
|
|
||||||
>PUSHW L.DST.IP
|
|
||||||
>PUSHW L.SSCANF.IP
|
|
||||||
>PUSHW L.TEST3
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.SSCANF
|
|
||||||
|
|
||||||
>PUSHB DST.IP+3
|
|
||||||
>PUSHB DST.IP+2
|
|
||||||
>PUSHB DST.IP+1
|
|
||||||
>PUSHB DST.IP
|
|
||||||
>PUSHW L.PRINTF.IP
|
|
||||||
>LIBCALL hLIBSTR,LIBSTR.PRINTF
|
|
||||||
|
|
||||||
lda #0 tell TSKMGR that all done ok, but
|
|
||||||
sec we do not want to stay in memory
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN
|
CS.RUN ldy #bCTRLC
|
||||||
CS.EVENT clc
|
lda (pData),y
|
||||||
|
beq .1
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.DOEVENT lda (pEvent)
|
||||||
|
|
||||||
|
>DEBUG
|
||||||
|
|
||||||
|
bpl .1 is it a TIMER event?
|
||||||
|
|
||||||
|
ora #'T'
|
||||||
|
>SYSCALL SYS.COutA
|
||||||
|
bra .9
|
||||||
|
|
||||||
|
.1 bit #S.EVT.F.KEY is it a KEY event?
|
||||||
|
beq .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
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT lda hLIBSTR
|
CS.QUIT lda hLIBSTR
|
||||||
@ -143,34 +143,6 @@ CS.QUIT lda hLIBSTR
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRBYTE pha
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
ora #$B0
|
|
||||||
cmp #$BA
|
|
||||||
bcc .1
|
|
||||||
adc #6
|
|
||||||
.1 jsr COUT
|
|
||||||
pla
|
|
||||||
PRHEX and #$0F
|
|
||||||
ora #$B0
|
|
||||||
cmp #$BA
|
|
||||||
bcc COUT
|
|
||||||
adc #6
|
|
||||||
bra COUT
|
|
||||||
*--------------------------------------
|
|
||||||
CROUT lda #13
|
|
||||||
*--------------------------------------
|
|
||||||
COUT phx
|
|
||||||
phy
|
|
||||||
ldx #DEVMGR.COUT
|
|
||||||
jsr pDevJmp
|
|
||||||
ply
|
|
||||||
plx
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.END
|
CS.END
|
||||||
hLIBSTR .BS 1
|
hLIBSTR .BS 1
|
||||||
LIBSTR >PSTRING "libstr.o"
|
LIBSTR >PSTRING "libstr.o"
|
||||||
@ -178,12 +150,10 @@ MSG0 >CSTRING "PREFIX=%S\n"
|
|||||||
MSG1 >CSTRING "BIN={%S}\n"
|
MSG1 >CSTRING "BIN={%S}\n"
|
||||||
MSG2 >CSTRING "CMD={%S},ARGS={%S}\nENV:\n"
|
MSG2 >CSTRING "CMD={%S},ARGS={%S}\nENV:\n"
|
||||||
MSG3 >CSTRING " %S\n"
|
MSG3 >CSTRING " %S\n"
|
||||||
TEST1 >PSTRING "198.168.1.1"
|
*--------------------------------------
|
||||||
TEST2 >PSTRING "198.168.1.23"
|
DS.START
|
||||||
TEST3 >PSTRING "198.168.1.4"
|
bCTRLC .BS 1
|
||||||
SSCANF.IP >PSTRING "%d.%d.%d.%d"
|
DS.END
|
||||||
PRINTF.IP >CSTRING "IP=%d.%d.%d.%d\n"
|
|
||||||
DST.IP .BS 4
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE BIN/TEST.S
|
SAVE BIN/TEST.S
|
||||||
|
Loading…
Reference in New Issue
Block a user