diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index dabb5ccf..9db51a02 100644 Binary files a/A2OSX.BOOT.po and b/A2OSX.BOOT.po differ diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index 06a3f2fa..994fb783 100644 Binary files a/A2OSX.SRC.po and b/A2OSX.SRC.po differ diff --git a/BIN/CHTYP.S.txt b/BIN/CHTYP.S.txt index 612c7358..33614eda 100644 --- a/BIN/CHTYP.S.txt +++ b/BIN/CHTYP.S.txt @@ -50,13 +50,15 @@ CS.INIT ldy #S.PS.hARGS >SYSCALL SYS.PStrGetTkn bcs .99 + >DEBUG + ldy #hArg1 sta (pData),y txa beq .98 ldy #hArg2 sta (pData),y - + jsr GetHexFileTypeA bcs .99 diff --git a/BIN/MOUNT.S.txt b/BIN/MOUNT.S.txt index 8189eb3a..96189fef 100644 --- a/BIN/MOUNT.S.txt +++ b/BIN/MOUNT.S.txt @@ -14,8 +14,6 @@ AUTO 6 .INB INC/LIBTCPIP.I *-------------------------------------- ZPFrameBase1 .EQ ZPBIN -ZPFrameLen1 .EQ ZPBIN+2 -ZPFramePtr1 .EQ ZPBIN+4 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -35,11 +33,6 @@ CS.START cld .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 @@ -56,339 +49,24 @@ CS.INIT ldy #S.PS.hARGS >LDYA L.LIBTCPIP >SYSCALL SYS.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 - >SYSCALL SYS.GetMemPtrA - >PUSHYA - >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 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 +CS.DOEVENT .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 @@ -399,26 +77,13 @@ CS.QUIT lda hLIBTCPIP 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 *--------------------------------------