diff --git a/.Floppies/A2OSX.BOOT.po b/.Floppies/A2OSX.BOOT.po index 58e38177..d21221aa 100644 Binary files a/.Floppies/A2OSX.BOOT.po and b/.Floppies/A2OSX.BOOT.po differ diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index a3e89789..8a80a470 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 42904d3d..a5dc0914 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/BIN/DNSINFO.S.txt b/BIN/DNSINFO.S.txt index 916d3346..d172137c 100644 --- a/BIN/DNSINFO.S.txt +++ b/BIN/DNSINFO.S.txt @@ -52,7 +52,7 @@ CS.RUN ldy #S.PS.ARGC lda (pPs),y bne CS.RUN.ADD jmp CS.RUN.DUMP - +*-------------------------------------- CS.RUN.ADD cmp #2 beq .1 jmp .9 @@ -82,7 +82,7 @@ CS.RUN.ADD cmp #2 .9 lda #K.E.SYN sec .99 rts - +*-------------------------------------- CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GetCache >STYA ZPPTR1 >LDYA L.MSG0 diff --git a/BIN/RPCDUMP.S.txt b/BIN/RPCDUMP.S.txt index 275444cf..ab4078e4 100644 --- a/BIN/RPCDUMP.S.txt +++ b/BIN/RPCDUMP.S.txt @@ -24,7 +24,8 @@ CS.START cld .DA 0 .DA CS.END-CS.START Code Length To Relocate .DA DS.END-DS.START Data Segment to Allocate - .DA 0 + .DA #16 SS + .DA #4 ZP .DA 0 *-------------------------------------- .1 .DA CS.INIT diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index f50060b1..6895b992 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -27,7 +27,7 @@ A2osX.ATKCALL .EQ $BD06 A2osX.ROMCALL .EQ $BD09 A2osX.BADCALL .EQ $BD0C *-------------------------------------- -A2osx.SLEEP .EQ $BD10 +A2osX.SLEEP .EQ $BD10 *-------------------------------------- * $BEE0->$BEEF : Public Variables *-------------------------------------- diff --git a/LIB/LIBTCPIP.S.ARP.txt b/LIB/LIBTCPIP.S.ARP.txt index 199d40ec..ba89d237 100644 --- a/LIB/LIBTCPIP.S.ARP.txt +++ b/LIB/LIBTCPIP.S.ARP.txt @@ -166,8 +166,7 @@ ARP.IN.REQ ldy #S.ARP.SPA+3 bpl .2 >LDYA L.ARP.REP - ldx #DEVMGR.WRITEBLOCK - jsr NetDevJmp + jsr FRM.Send.YA bra ARP.IN.EXIT ARP.IN.REP lda #K.ARP.TTL @@ -222,9 +221,7 @@ ARP.QUERY.I jsr ARP.FIND.BY.IP bpl .4 >LDYA L.ARP.REQ - ldx #DEVMGR.WRITEBLOCK - jsr NetDevJmp - + jsr FRM.Send.YA bcs .99 lda #K.ARP.PENDING.TTL diff --git a/LIB/LIBTCPIP.S.CFG.txt b/LIB/LIBTCPIP.S.CFG.txt index 4ca1eebc..763ce3b8 100644 --- a/LIB/LIBTCPIP.S.CFG.txt +++ b/LIB/LIBTCPIP.S.CFG.txt @@ -34,12 +34,7 @@ SET.IPCFG >PULLW ZPTmpPtr1 bpl .3 lda IPCFG+S.IPCFG.HDEV - - >SYSCALL GetDevByID.A - >STYA NetDevJmp+1 - - ldx #DEVMGR.STATUS - jsr NetDevJmp + >SYSCALL GetDevStatus.A >STYA ZPTmpPtr2 ldy #S.DSTAT.NIC.FLAGS @@ -48,9 +43,10 @@ SET.IPCFG >PULLW ZPTmpPtr1 and #S.DSTAT.NIC.FLAGS.ARPOFFLOAD beq .4 - >LDYA ZPTmpPtr1 - ldx #DEVMGR.CONTROL - jsr NetDevJmp + >PUSHB IPCFG+S.IPCFG.HDEV + >PUSHBI DEVMGR.CONTROL + >PUSHW ZPTmpPtr1 + >SYSCALL IOCTL .4 lda hDNSSocket1 beq .41 diff --git a/LIB/LIBTCPIP.S.DNS.txt b/LIB/LIBTCPIP.S.DNS.txt index 85191188..3a3506d2 100644 --- a/LIB/LIBTCPIP.S.DNS.txt +++ b/LIB/LIBTCPIP.S.DNS.txt @@ -131,7 +131,7 @@ DNS.REQUEST lda hDNSSocket1 *\-------------------------------------- DNS.Add >PULLW ZPPtrDNS Get host string >PULLW ZPPtrIP Get host IP address - + ldy #3 .1 lda (ZPPtrIP),y @@ -164,6 +164,7 @@ DNS.ADD.I sta DNS.TmpCache sta (ZPCachePtr) ldy #S.DNSCACHE.ID + .3 lda DNS.TmpCache,y sta (ZPCachePtr),y iny @@ -271,7 +272,8 @@ DNS.FIND.FREE >LDYA L.DNS.CACHE .1 lda (ZPCachePtr) beq .8 empty DNS cache entry? - bpl .6 pending.....skip + bit #S.DNSCACHE.STATUS.STATIC+S.DNSCACHE.STATUS.PENDING + bne .6 Static/Pending.....skip ldy #S.DNSCACHE.TTL ldx #3 @@ -319,6 +321,8 @@ DNS.EXPIRE >LDYA L.DNS.CACHE .1 lda (ZPCachePtr) beq .7 empty DNS cache entry? + bit #S.DNSCACHE.STATUS.STATIC + bne .7 ldy #S.DNSCACHE.TTL ldx #4 diff --git a/LIB/LIBTCPIP.S.FRM.txt b/LIB/LIBTCPIP.S.FRM.txt index 98bfc130..fe83030b 100644 --- a/LIB/LIBTCPIP.S.FRM.txt +++ b/LIB/LIBTCPIP.S.FRM.txt @@ -224,8 +224,8 @@ FRM.SendIP ldx #3 Copy SRC.IP even if IP offload bcs FRM.Queue .6 >LDYA ZPFrameOutPtr - ldx #DEVMGR.WRITEBLOCK - jsr NetDevJmp + jsr FRM.Send.YA + bcs FRM.Queue lda hFrameOut @@ -274,9 +274,8 @@ FRM.Retry ldx FRM.QUEUE.Tail jsr IP.SetDestMAC Err is ARP or higher, retry getting MAC bcs .2 still error getting dest MAC -.1 >LDYA ZPFrameOutPtr try sending again to DRV - ldx #DEVMGR.WRITEBLOCK - jsr NetDevJmp +.1 >LDYA ZPFrameOutPtr + jsr FRM.Send.YA try sending again to DRV bcc .3 .2 ldx FRM.QUEUE.Tail save error... @@ -298,6 +297,14 @@ FRM.Retry ldx FRM.QUEUE.Tail .8 rts *-------------------------------------- +FRM.Send.YA pha + >PUSHB IPCFG+S.IPCFG.HDEV + >PUSHBI DEVMGR.WRITEBLOCK + pla + >PUSHYA + >SYSCALL IOCTL try sending again to DRV + rts +*-------------------------------------- MAN SAVE /A2OSX.SRC/LIB/LIBTCPIP.S.FRM LOAD /A2OSX.SRC/LIB/LIBTCPIP.S diff --git a/LIB/LIBTCPIP.S.HST.txt b/LIB/LIBTCPIP.S.HST.txt index 4dc1e3bf..bed927a8 100644 --- a/LIB/LIBTCPIP.S.HST.txt +++ b/LIB/LIBTCPIP.S.HST.txt @@ -6,7 +6,34 @@ AUTO 4,1 HST.GetByName >PULLW ZPPtrDNS >PULLW ZPPtrIP - jsr HST.ScanIP + lda ZPPtrIP + clc + adc #3 + tay + lda ZPPtrIP+1 + adc #0 + >PUSHYA + + lda ZPPtrIP + clc + adc #2 + tay + lda ZPPtrIP+1 + adc #0 + >PUSHYA + + >LDYA ZPPtrIP + iny + bne .1 + inc +.1 >PUSHYA + + >PUSHW ZPPtrIP + + >PUSHW L.HST.SSScanF + >LDYA ZPPtrDNS + >SYSCALL SScanF.YA + bcc .9 jmp DNS.QUERY.I .9 rts @@ -18,102 +45,6 @@ HST.GetByAddr >PULLW ZPPtrIP sec rts *-------------------------------------- -HST.ScanIP stz HST.IP - - lda (ZPPtrDNS) - beq .9 - - ldy #$ff - -.1 ldx #0 - stx HST.DecStr - -.2 iny - lda (ZPPtrDNS),y - beq .4 - - cmp #'.' - beq .3 - - cmp #'0' - bcc .9 - cmp #'9'+1 - bcs .9 - cpx #3 - beq .9 - inx - sta HST.DecStr,x - bra .2 - -.3 stx HST.DecStr - phy - jsr HST.Dec2Hex - ply - bcc .1 - rts - -.4 txa - beq .5 - - stx HST.DecStr - jsr HST.Dec2Hex - bcs .9 - -.5 ldx HST.IP - cpx #4 - bne .9 - - ldy #3 -.6 lda HST.IP,x - sta (ZPPtrIP),y - dex - dey - bpl .6 - clc - rts - -.9 sec - rts -*-------------------------------------- -HST.Dec2Hex ldy HST.DecStr - beq .9 - - ldx HST.IP - cpx #4 - beq .9 - inx - - lda HST.DecStr+1 - and #$0f - sta HST.IP,x - - ldy #1 - -.1 cpy HST.DecStr - beq .8 - iny - lda HST.IP,x - asl HST.IP,x - bcs .9 - asl HST.IP,x - bcs .9 - adc HST.IP,x - bcs .9 - asl - bcs .9 - sta HST.IP,x - lda HST.DecStr,y - and #$0f - adc HST.IP,x - sta HST.IP,x - bcc .1 -.9 sec - rts - -.8 stx HST.IP - clc - rts -*-------------------------------------- MAN SAVE /A2OSX.SRC/LIB/LIBTCPIP.S.HST LOAD /A2OSX.SRC/LIB/LIBTCPIP.S diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index 4f10d7b2..2594b6a1 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -94,6 +94,7 @@ L.DNS.MSG .DA DNS.MSG L.ARP.CACHE .DA ARP.CACHE L.DNS.CACHE .DA DNS.CACHE L.SKT.Template .DA SKT.Template +L.HST.SSScanF .DA HST.SSScanF L.TmpByte .DA TmpByte L.TCP.IN.JMP .DA TCP.IN.JMP.CLOSED .DA TCP.IN.JMP.LISTEN @@ -108,8 +109,9 @@ L.TCP.IN.JMP .DA TCP.IN.JMP.CLOSED .DA TCP.IN.JMP.TIMEWT .DA 0 *-------------------------------------- -LIB.LOAD ldx bFirstLoad +LIB.LOAD ldx RefCount bne .8 + sta NODE.SSOCK+S.NODE.HANDLER jsr ARP.CLEAR jsr DNS.CLEAR @@ -120,12 +122,14 @@ LIB.LOAD ldx bFirstLoad stx hSocketTable - inc bFirstLoad - -.8 clc +.8 inc RefCount + clc .9 rts *-------------------------------------- -LIB.UNLOAD lda hSocketTable +LIB.UNLOAD dec RefCount + bne .8 + + lda hSocketTable beq .8 >SYSCALL FreeMem.A @@ -133,8 +137,10 @@ LIB.UNLOAD lda hSocketTable .8 clc rts *-------------------------------------- -POLL ldx #DEVMGR.READBLOCK - jsr NetDevJmp +POLL >PUSHB IPCFG+S.IPCFG.HDEV + >PUSHBI DEVMGR.READBLOCK + >PUSHW 0 + >SYSCALL IOCTL bcs .99 No Frame stx hFrameIn @@ -201,8 +207,6 @@ GetDynPort inc DYNPORT.LAST ldx DYNPORT.LAST+1 clc rts -*-------------------------------------- -NetDevJmp jmp * *-------------------------------------- .INB /A2OSX.SRC/LIB/LIBTCPIP.S.ARP .INB /A2OSX.SRC/LIB/LIBTCPIP.S.CFG @@ -268,7 +272,7 @@ FRM.QUEUE.hMem .BS K.FRMQUEUE.SIZE FRM.QUEUE.State .BS K.FRMQUEUE.SIZE FRM.QUEUE.Retry .BS K.FRMQUEUE.SIZE *-------------------------------------- -bFirstLoad .DA #0 +RefCount .DA #0 hSocketTable .BS 1 DevFlags .BS 1 DYNPORT.LAST .DA K.DYNPORT.START @@ -285,8 +289,7 @@ TmpOffset .BS 2 hFrameIn .BS 1 hFrameOut .BS 1 bTextMode .BS 1 -HST.DecStr .BS 4 -HST.IP .BS 5 +HST.SSScanF .AZ "%d.%d.%d.%d" IP.ID .BS 2 IP.CHECKSUM .BS 4 NODE.SSOCK .BS 1 S.NODE.HANDLER diff --git a/README.md b/README.md index 8abbaf31..423ebb34 100644 --- a/README.md +++ b/README.md @@ -161,8 +161,8 @@ OApple+1,OApple+2,OApple+3 to switch between screens : Kernel Log, text, DHGR. | SHELL | Working | (See Internal Shell commands) | 0.9.1 | | KCONFIG | Working | Kernel Configuration Utility | 0.9.1 | | ---- | ------ | ------- | ----- | -| TCPIPD | Working | Socket API.ARP,IP,ICMP,UDP & TCP ok | 0.9 | -| DHCPCLNT| Working | rewritten to use new Socket API | 0.9 | +| TCPIPD | Working | Socket API.ARP,IP,ICMP,UDP & TCP ok | 0.9.1 | +| DHCPCLNT| Working | rewritten to use new Socket API | 0.9.1 | | TELNETD | In Progress | | 0.9 | | HTTPD | In Progress | | 0.9 | @@ -253,11 +253,11 @@ note : '$VAR' does NOT expand Variable | EDIT | Working | still missing : find/replace | 0.9.1 | | NSCUTIL | Working | Tool for setting time in NSC/DL1216E | 0.9 | | ---- | ------ | ------- | ----- | -| ARP | Working | dump ARP cache, setup a static ARP entry | 0.9 | -| PING | Working | | 0.9 | -| DNSINFO | Working | dump DNS cache, setup a static DNS entry | 0.9 | -| IPCONFIG | Working | renamed from NETINFO | 0.9 | -| NETSTAT | Working | | 0.9 | +| ARP | Working | dump ARP cache, setup a static ARP entry | 0.9.1 | +| PING | Working | | 0.9.1 | +| DNSINFO | Working | dump DNS cache, setup a static DNS entry | 0.9.1 | +| IPCONFIG | Working | renamed from NETINFO | 0.9.1 | +| NETSTAT | Working | | 0.9.1 | ## BIN,External DEV Shell commands: | Name | Status | Comment | K.Ver | @@ -265,7 +265,7 @@ note : '$VAR' does NOT expand Variable | ASM | In Progress | S-C MASM based multi CPU assembler | 0.9.1 | | MEMDUMP | Working | | 0.9.1 | | ---- | ------ | ------- | ----- | -| RPCDUMP | Working | tool based on UDP socket API, renamed from RPCINFO | 0.9 | +| RPCDUMP | Working | tool based on UDP socket API, renamed from RPCINFO | 0.9.1 | ## Misc diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index 07b656e1..9a2edba6 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -20,7 +20,7 @@ CORE.Run lda CORE.PSCount ldy #S.PS.CPID lda (pPs),y - jsr CORE.GetPSStatus.A + jsr CORE.GetPS.A bcc .8 yes, still running.... lda (pPs) get S.PS.F again @@ -338,15 +338,20 @@ CORE.PSFree.A sta .1+1 Save PS ID * X unmodofied *-------------------------------------- CORE.GetPSByID.A - jsr CORE.GetPSStatus.A + tay + bne .1 + >LDYAI CORE.S.PS0 Select PS0 + clc + rts + +.1 jsr CORE.GetPS.A bcs .9 lda PS.TABLE.hMem-1,y beq * jmp K.GetMemPtr.A .9 rts *-------------------------------------- -CORE.GetPSStatus.A - ldy CORE.PSCount +CORE.GetPS.A ldy CORE.PSCount beq .9 .1 cmp PS.Table.PID-1,y diff --git a/SYS/KERNEL.S.IRQ.txt b/SYS/KERNEL.S.IRQ.txt index b753b31d..45b22e1a 100644 --- a/SYS/KERNEL.S.IRQ.txt +++ b/SYS/KERNEL.S.IRQ.txt @@ -104,9 +104,9 @@ K.IrqHAuxLC.3 pla Must keep Carry lda $103,x get IRQ pushed P sta $101,x down 2 bytes - lda #CORE.PSSleep make a RTI like "jsr CORE.Sleep" + lda #A2osX.SLEEP make a RTI like "jsr A2osX.SLEEP" sta $102,x - lda /CORE.PSSleep with RTS=PC IRQ-1 + lda /A2osX.SLEEP with RTS=PC IRQ-1 sta $103,x lda #$A0+'S diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index b9a3ad1e..d46ec339 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -682,13 +682,6 @@ K.SScanF.YA >STYA ZPPtr2 String to Scan rts .4 jsr .5 - - tya - clc - adc ZPPtr2 - sta ZPPtr2 - bcc .1 - inc ZPPtr2+1 bra .1 @@ -696,8 +689,8 @@ K.SScanF.YA >STYA ZPPtr2 String to Scan rts *-------------------------------------- .5 >PULLW ZPPtr3 get VAR Ptr - - lda K.SScanFTBL+1,x Get VAR Byte count + + lda K.SScanFTBL+1,x Get VAR size jmp (K.SScanFJMP,x) *-------------------------------------- K.SScanFTBL .DA #'i,#1,#'d,#1,#'I,#2,#'D,#2,#'l,#4,#'u,#4 @@ -713,20 +706,23 @@ K.SScanF.D K.SScanF.II K.SScanF.DD K.SScanF.L -K.SScanF.U pha Save Byte count +K.SScanF.U pha Save VAL size jsr STDLIB.Dec2Hex - pla - phy - tay + tya Y=char count parsed + clc + adc ZPPtr2 + sta ZPPtr2 + bcc .1 + inc ZPPtr2+1 -.1 lda STDLIB.32-1,y +.1 ply get back VAL size + +.2 lda STDLIB.32-1,y dey sta (ZPPtr3),y - bpl .1 - - ply + bpl .2 .9 rts */--------------------------------------