From 98c99b0ad25b544a5a8812fc67c781a7cefbd0bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 6 Oct 2017 17:25:14 +0200 Subject: [PATCH] Kernel 0.9.1 : MemMgr & MEMDUMP enhancement, TCPIP bugfix --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/LSDEV.S.txt | 2 +- BIN/MEMDUMP.S.txt | 135 +++++++------- BIN/PS.S.txt | 48 +++-- INC/A2osX.I.txt | 9 +- INC/MACROS.I.txt | 5 +- LIB/LIBTCPIP.S.ARP.txt | 4 +- LIB/LIBTCPIP.S.DNS.txt | 4 +- LIB/LIBTCPIP.S.txt | 6 +- SBIN/TCPIP.S.CFG.txt | 373 --------------------------------------- SBIN/TCPIP.S.txt | 221 ----------------------- SBIN/TCPIPD.S.CFG.txt | 109 ++++-------- SBIN/TCPIPD.S.txt | 5 +- SYS/KERNEL.S.CORE.txt | 16 +- SYS/KERNEL.S.CTRL.txt | 21 +++ SYS/KERNEL.S.JMP.txt | 2 +- SYS/KERNEL.S.PS.txt | 25 ++- SYS/KERNEL.S.txt | 13 +- 19 files changed, 216 insertions(+), 782 deletions(-) delete mode 100644 SBIN/TCPIP.S.CFG.txt delete mode 100644 SBIN/TCPIP.S.txt create mode 100644 SYS/KERNEL.S.CTRL.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 346d915b15af5a6a7a6d49ca7e60f05dd8a88750..d5955913f5a876c9943f678d021b3b0b01b51c04 100644 GIT binary patch delta 10416 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 diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 4dcf0fb4103345fd8c9106aa938577d3db62fb62..f374a99ceccfff89e37273829f1ffc43a2e45594 100644 GIT binary patch delta 14996 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 delta 15875 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 "ID Status Flags Name Addr. Typ/Sub IDString Version MSG1 >CSTR "%03d %s %b %4s $%H " MSG2.B >CSTR "$%h/$%h %16S %03d.%03d %10u" MSG2.C >CSTR "$%h/$%h %16S %03d.%03d n/a" -MSG.SFLAGS .AS "BWRLNEIO" +MSG.SFLAGS .AS "BWRLNEIO" *-------------------------------------- .DUMMY .OR 0 diff --git a/BIN/MEMDUMP.S.txt b/BIN/MEMDUMP.S.txt index e5870a59..a03c5116 100644 --- a/BIN/MEMDUMP.S.txt +++ b/BIN/MEMDUMP.S.txt @@ -26,7 +26,7 @@ CS.START cld .DA 0 .DA CS.END-CS.START CS .DA DS.END-DS.START DS - .DA #16 SS + .DA #32 SS .DA #4 ZP .DA 0 *-------------------------------------- @@ -37,6 +37,7 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.MSG0 .DA MSG0 +L.MSG1.INV .DA MSG1.INV L.MSG1 .DA MSG1 L.MSG1.BIN .DA MSG1.BIN L.MSG1.STR .DA MSG1.STR @@ -48,17 +49,14 @@ L.MSG5 .DA MSG5 L.MSG.FREE .DA MSG.FREE .DA 0 *-------------------------------------- -CS.INIT ldy #MEM.COUNT Skip SLOT0 - lda (pData),y - inc - sta (pData),y +CS.INIT >INC.G MEM.COUNT Skip SLOT0 >LEA.G MemStat >SYSCALL GetMemStat.YA - lda (pPs) - ora #S.PS.F.EVENT Now accept events - sta (pPs) +* lda (pPs) +* ora #S.PS.F.EVENT Now accept events +* sta (pPs) clc rts *-------------------------------------- @@ -96,24 +94,17 @@ CS.RUN >SYSCALL GetChar >LDYA L.MSG0 >SYSCALL PrintF.YA -.1 ldy #MEM.COUNT - lda (pData),y +.1 >LDA.G MEM.COUNT >SYSCALL GetMemByID.A >STYA ZPPTR1 lda (ZPPTR1) bpl .2 - ldy #USED.COUNT - lda (pData),y - inc - sta (pData),y + >INC.G USED.COUNT .2 jsr CS.RUN.PRINTMEM - ldy #MEM.COUNT - lda (pData),y - inc - sta (pData),y + >INC.G MEM.COUNT .8 clc rts @@ -175,21 +166,19 @@ CS.RUN >SYSCALL GetChar sec rts *-------------------------------------- -CS.RUN.PRINTMEM ldy #S.MEM.LEN +CS.RUN.PRINTMEM ldy #S.MEM.LEN+1 lda (ZPPTR1),y - pha - iny + >PUSHA + dey lda (ZPPTR1),y - ply - >PUSHYA + >PUSHA - ldy #S.MEM.PTR + ldy #S.MEM.PTR+1 lda (ZPPTR1),y - pha - iny + >PUSHA + dey lda (ZPPTR1),y - ply - >PUSHYA + >PUSHA ldy #S.MEM.REFCNT lda (ZPPTR1),y @@ -199,43 +188,70 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN lda (ZPPTR1),y >PUSHA - lda (ZPPTR1) + lda (ZPPTR1) Get flags + + ldy #MEM.FLAGS+7 + ldx #7 + +.20 lsr + pha + lda #'-' + bcc .30 + lda MSG.FLAGS,x + +.30 sta (pData),y + pla + dey + dex + bpl .20 + + >PUSHEA.G MEM.FLAGS + + >LDA.G MEM.COUNT >PUSHA - ldy #MEM.COUNT - lda (pData),y - >PUSHA + lda (ZPPTR1) Get flags + bpl .12 - >LDYA L.MSG1 + ldy #S.MEM.OWNERPID + lda (ZPPTR1),y + >SYSCALL GetPSStatus.A + bcc .12 + + >LDYA L.MSG1.INV >SYSCALL PrintF.YA - lda (ZPPTR1) Free ? assume raw data... - bpl .10 +.12 >LDYA L.MSG1 + >SYSCALL PrintF.YA ldy #S.MEM.BIN lda (ZPPTR1),y bne .7 ****** DATA -.10 ldy #S.MEM.PTR + ldy #S.MEM.PTR lda (ZPPTR1),y sta ZPPTR2 iny lda (ZPPTR1),y sta ZPPTR2+1 - lda (ZPPTR2) - tay + ldy #$0 .1 lda (ZPPTR2),y Check if it looks like a printable string + beq .11 + bmi .2 cmp #$20 bcc .2 not printable....->hex - dey + iny bne .1 +.11 tya + beq .2 Startig with 0...assume BIN + >PUSHW ZPPTR2 String - >PUSHB (ZPPTR2) Len + tya Len + >PUSHA >LDYA L.MSG1.STR - >SYSCALL PrintF.YA bra .8 .2 ldy #15 @@ -244,32 +260,26 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN dey bpl .3 - >LDYA L.MSG1.HEX - >SYSCALL PrintF.YA - + >LDYA L.MSG1.HEX bra .8 ****** BIN .7 >SYSCALL GetMemPtr.A >PUSHYA >LDYA L.MSG1.BIN - >SYSCALL PrintF.YA +.8 >SYSCALL PrintF.YA -.8 ldy #LINE.COUNT - lda (pData),y - inc - sta (pData),y + >INC.G LINE.COUNT cmp #PAGELEN - bne .9 + beq .9 + rts - lda #$FF - ldy #bSTOP - sta (pData),y +.9 lda #$FF + >STA.G bSTOP - ldy #LINE.COUNT - lda #0 - sta (pData),y + inc + >STA.G LINE.COUNT -.9 rts + rts *-------------------------------------- CS.DOEVENT sec rts @@ -279,15 +289,17 @@ CS.QUIT clc *-------------------------------------- CS.END MSG0 >CSTR " # Flags PID REF PTR LEN BINPATH/DATA\r\n" -MSG1 >CSTR "%03d %b %03d %03d $%H %05D " -MSG1.BIN >CSTR "!BIN:%41s\r\n" -MSG1.STR >CSTR "[%02h]:%41s\r\n" -MSG1.HEX >CSTR "?HEX:%h%h%h%h.%h%h%h%h.%h%h%h%h.%h%h%h%h\r\n" +MSG1.INV >CSTR "\e[7m" +MSG1 >CSTR "%03d %s %03d %03d $%H %05D " +MSG1.BIN >CSTR "{BIN:%s}\e[0m\r\n" +MSG1.STR >CSTR "[%03d:%s]\e[0m\r\n" +MSG1.HEX >CSTR "?HEX:%h%h.%h%h.%h%h.%h%h.%h%h.%h%h.%h%h.%h%h\e[0m\r\n" MSG2 >CSTR "\r\nAllocated hMem:%d, Total:%d\r\n" MSG3 >CSTR "High Memory: $%H\r\n" MSG4 >CSTR "Free ULimit: $%H\r\n" MSG5 >CSTR "Low Memory: $%H\r\n" MSG.FREE >CSTR "\r\nFree Memory: %D Bytes.\r\n" +MSG.FLAGS .AS "UZCNA--" *-------------------------------------- .DUMMY .OR 0 @@ -297,6 +309,7 @@ MEM.COUNT .BS 1 USED.COUNT .BS 1 bSTOP .BS 1 MemStat .BS S.MEMSTAT +MEM.FLAGS .BS 9 DS.END .ED *-------------------------------------- diff --git a/BIN/PS.S.txt b/BIN/PS.S.txt index 78e24e83..0e4daef8 100644 --- a/BIN/PS.S.txt +++ b/BIN/PS.S.txt @@ -10,8 +10,9 @@ AUTO 6 *-------------------------------------- .INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/A2OSX.I + .INB /A2OSX.BUILD/INC/KERNEL.I *-------------------------------------- -ZPPTR1 .EQ ZPBIN +ZPPtr .EQ ZPBIN *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -45,43 +46,56 @@ CS.RUN >LDYA pData >LDYA L.MSG0 >SYSCALL PrintF.YA - lda (pData) PS.COUNT + >LDA.G PS.Count beq .8 -.1 >LDA.G PS.Index - inc - sta (pData),y +.1 >INC.G PS.Index tay lda (pData),y PID >SYSCALL GetMemPtr.A - >STYA ZPPTR1 + >STYA ZPPtr ldy #S.PS.hARGS - lda (ZPPTR1),y + lda (ZPPtr),y >SYSCALL GetMemPtr.A >PUSHYA ldy #S.PS.PPID - lda (ZPPTR1),y + lda (ZPPtr),y >PUSHA Parent PID - lda (ZPPTR1) push flags - >PUSHA + lda (ZPPtr) Get flags + + ldy #PS.FLAGS+7 + ldx #7 + +.2 lsr + pha + lda #'-' + bcc .3 + lda MSG.FLAGS,x + +.3 sta (pData),y + pla + dey + dex + bpl .2 + + >PUSHEA.G PS.FLAGS ldy #S.PS.PID - lda (ZPPTR1),y + lda (ZPPtr),y >PUSHA PID >LDYA L.MSG1 >SYSCALL PrintF.YA -.7 lda (pData) PS.COUNT - dec - sta (pData) +.7 >DEC.G PS.COUNT bne .1 -.8 lda #0 tell Kernel that all done ok, but +.8 +* lda #0 tell Kernel that all done ok, but sec we do not want to stay in memory rts *-------------------------------------- @@ -93,7 +107,8 @@ CS.QUIT clc *-------------------------------------- CS.END MSG0 >CSTR "ID Flags PID Command Line\r\n" -MSG1 >CSTR "%03d %b %03d %S\r\n" +MSG1 >CSTR "%03d %s %03d %s\r\n" +MSG.FLAGS .AS "-IHSED--" *-------------------------------------- .DUMMY .OR 0 @@ -101,6 +116,7 @@ DS.START PS.COUNT .BS 1 PS.DATA .BS K.PS.MAX PS.Index .BS 1 +PS.FLAGS .BS 9 DS.END .ED *-------------------------------------- diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index e8bdc11c..8b66b9dc 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -191,7 +191,7 @@ SYS.CreateProcessNewEnvYA .EQ $A4 SYS.CreateProcessYA .EQ $A6 * .EQ $A8 * .EQ $AA -* .EQ $AC +SYS.GetPSStatus.A .EQ $AC SYS.GetPSList.YA .EQ $AE *SYS.GetArgC .EQ $B0 @@ -244,12 +244,12 @@ SYSMGR.ERRFTB .EQ $CC File Too Big Error * MEM STRUCT *-------------------------------------- S.MEM.F .EQ 0 -S.MEM.F.AUX .EQ %10000000 Request Stock Object +S.MEM.F.AUX .EQ %10000000 Request Stock Object in AUX mem +S.MEM.F.INUSE .EQ %10000000 (Internal Flag) S.MEM.F.INIT0 .EQ %01000000 Fill with "0" S.MEM.F.CODE .EQ %00100000 S.MEM.F.NOMOVE .EQ %00010000 S.MEM.F.ALIGN .EQ %00001000 -S.MEM.F.INUSE .EQ %10000000 (Internal Flag) S.MEM.REFCNT .EQ 1 S.MEM.OWNERPID .EQ 2 S.MEM.BIN .EQ 3 @@ -369,12 +369,11 @@ S.DEVSTAT .EQ 25 * PS STRUCT *-------------------------------------- S.PS.F .EQ 0 -S.PS.F.INUSE .EQ %10000000 S.PS.F.INIT .EQ %01000000 S.PS.F.HOLD .EQ %00100000 S.PS.F.SLEEP .EQ %00010000 S.PS.F.EVENT .EQ %00001000 -S.PS.F.ENV .EQ %00000100 +S.PS.F.DUPENV .EQ %00000100 S.PS.PPID .EQ 1 S.PS.PID .EQ 2 S.PS.CPID .EQ 3 diff --git a/INC/MACROS.I.txt b/INC/MACROS.I.txt index ba7496a5..8136ab18 100644 --- a/INC/MACROS.I.txt +++ b/INC/MACROS.I.txt @@ -128,9 +128,10 @@ AUTO 6 .EM *-------------------------------------- .MA PUSHW.G - >LDA.G ]1+1 + ldy #]1+1 + lda (pData),y >PUSHA - >LDA.G ]1 + dey >PUSHA .EM *-------------------------------------- diff --git a/LIB/LIBTCPIP.S.ARP.txt b/LIB/LIBTCPIP.S.ARP.txt index 58da8f11..7d6514b1 100644 --- a/LIB/LIBTCPIP.S.ARP.txt +++ b/LIB/LIBTCPIP.S.ARP.txt @@ -86,13 +86,13 @@ ARP.ADD.I sta ARP.TmpCache clc rts */-------------------------------------- -* # ARP.GetC.Ache +* # ARP.GetCAche * Return a Ptr to ARP Cache Table * ## In: * ## Out: * Y,A = PTR to ARP.CACHE *\-------------------------------------- -ARP.GetC.Ache >LDYA L.ARP.CACHE +ARP.GetCAche >LDYA L.ARP.CACHE clc rts *-------------------------------------- diff --git a/LIB/LIBTCPIP.S.DNS.txt b/LIB/LIBTCPIP.S.DNS.txt index 2100d19f..8df14232 100644 --- a/LIB/LIBTCPIP.S.DNS.txt +++ b/LIB/LIBTCPIP.S.DNS.txt @@ -175,13 +175,13 @@ DNS.ADD.I sta DNS.TmpCache clc .9 rts */-------------------------------------- -* # DNS.GetC.Ache +* # DNS.GetCAche * Return a Ptr to DNS Cache Table * ## In: * ## Out: * Y,A = PTR to DNS.CACHE *\-------------------------------------- -DNS.GetC.Ache >LDYA L.DNS.CACHE +DNS.GetCAche >LDYA L.DNS.CACHE clc rts *-------------------------------------- diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index 771fb071..a79230c7 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -63,12 +63,12 @@ CS.START cld .DA ARP.CLEAR .DA ARP.QUERY .DA ARP.ADD - .DA ARP.GetC.ACHE + .DA ARP.GetCACHE .DA DNS.CLEAR .DA DNS.QUERY .DA DNS.ADD - .DA DNS.GetC.ACHE + .DA DNS.GetCACHE .DA HST.GETBYNAME .DA HST.GETBYADDR @@ -143,7 +143,7 @@ POLL ldx #DEVMGR.READBLOCK stx hFrameIn >STYA ZPFrameInPtr - lda (ZPFrameInPtr) Get Frame Len + lda (ZPFrameInPtr) Get Frame Len sta ZPFrameInLen ldy #1 lda (ZPFrameInPtr),y diff --git a/SBIN/TCPIP.S.CFG.txt b/SBIN/TCPIP.S.CFG.txt deleted file mode 100644 index 3587defe..00000000 --- a/SBIN/TCPIP.S.CFG.txt +++ /dev/null @@ -1,373 +0,0 @@ -PR#3 -PREFIX /A2OSX.BUILD -NEW -INC 1 -AUTO 6 - .LIST OFF -*-------------------------------------- -CFG.Read >PUSHW L.HOSTNAME - >LDYA L.MSG.CFG - >SYSCALL PrintF.YA - - jsr CFG.Read.HOSTNAME - bcc .1 - >PUSHA - >LDYA L.MSG.CFG.KO - bra .2 -.1 >LDYA L.MSG.CFG.OK -.2 >SYSCALL PrintF.YA - - >PUSHW L.TCPIP.CONF - >LDYA L.MSG.CFG - >SYSCALL PrintF.YA - - jsr CFG.Read.TCPIP.CONF - bcc .3 - >PUSHA - >LDYA L.MSG.CFG.KO - bra .4 -.3 >LDYA L.MSG.CFG.OK -.4 >SYSCALL PrintF.YA - - >PUSHW L.HOSTS - >LDYA L.MSG.CFG - >SYSCALL PrintF.YA - - jsr CFG.Read.HOSTS - bcc .5 - >PUSHA - >LDYA L.MSG.CFG.KO - bra .6 -.5 >SYSCALL PrintF.YA -.6 >LDYA L.MSG.CFG.OK - >SYSCALL PrintF.YA - rts -*-------------------------------------- -CFG.Read.HOSTNAME - stz CFG.hCfgFile - stz CFG.hCfgPath - - >LDYA L.HOSTNAME - >SYSCALL ExpandStr.YA - bcs .99 - - stx CFG.hCfgPath - pha - - >PUSHWI 0 Aux type - >PUSHBI 4 S.FILEINFO.TYPE.TXT - >PUSHBI SYS.FOpen.R - pla - >PUSHYA - >SYSCALL LoadFile - bcs .9 - stx CFG.hCfgFile - >STYA CFG.FileLen - - txa - >SYSCALL GetMemPtr.A - >STYA ZPIPCfgPtr - -* read 15 chars MAX, until CR or EOF - - ldx #$15 - lda CFG.FileLen+1 - bne .1 File is more than 256....? - - ldx CFG.FileLen - beq .9 len is 0 !!! - -.1 ldy #0 - -.2 lda (ZPIPCfgPtr),y - cmp #13 - beq .8 A CR, end of name - - iny - sta IPCFG+S.IPCFG.HOSTNAME,y - dex - bne .2 - -.8 sty IPCFG+S.IPCFG.HOSTNAME - - jsr CFG.Read.CleanUp - clc - rts - -.9 jsr CFG.Read.CleanUp - sec -.99 rts -*-------------------------------------- -CFG.Read.TCPIP.CONF - stz CFG.hCfgFile - stz CFG.hCfgPath - - >LDYA L.TCPIP.CONF - >SYSCALL ExpandStr.YA - bcs .99 - - stx CFG.hCfgPath - pha - - >PUSHWI 0 Aux type - >PUSHBI 4 S.FILEINFO.TYPE.TXT - >PUSHBI SYS.FOpen.R - pla - >PUSHYA - >SYSCALL LoadFile - bcs .9 - stx CFG.hCfgFile - >STYA CFG.FileLen - txa - >SYSCALL GetMemPtr.A - >STYA ZPIPCfgPtr - -.1 jsr CFG.GetLine - bcs .8 - - jsr CFG.GetKeyword - bcs .1 - - lda CFG.Keyword - bne .3 - - ldy UsrBuf256 - - lda UsrBuf256+1,y - cmp #35 DOMAIN too long!!! - bcs .1 - - sta IPCFG+S.IPCFG.DOMAIN - ldx #0 - -.2 lda UsrBuf256+2,y - sta IPCFG+S.IPCFG.DOMAIN,x - beq .1 - inx - iny - bne .2 - bra .1 - -.9 jsr CFG.Read.CleanUp - sec -.99 rts - -.3 jsr CFG.ScanIP - bcs .1 - - ldy CFG.Keyword - lda CFG.Keyword.Map,y - tax - ldy #0 - -.4 lda CFG.IP+1,y - sta IPCFG,x - inx - iny - cpy #4 - bne .4 - lda CFG.Keyword - cmp #1 - bne .1 - lda #S.IPCFG.STATUS.OK - sta IPCFG - bra .1 - -.8 jsr CFG.Read.CleanUp - clc - rts -*-------------------------------------- -CFG.Read.HOSTS >PUSHWI 0 Aux type - >PUSHBI 4 S.FILEINFO.TYPE.TXT - >PUSHBI SYS.FOpen.R - >PUSHW L.HOSTS - >SYSCALL LoadFile - bcs .99 - stx CFG.hCfgFile - >STYA CFG.FileLen - - txa - >SYSCALL GetMemPtr.A - >STYA ZPIPCfgPtr - -.89 lda CFG.hCfgFile - >SYSCALL FreeMem.A - clc -.99 rts -*-------------------------------------- -CFG.Read.CleanUp - pha - lda CFG.hCfgPath - beq .1 - >SYSCALL FreeMem.A - -.1 lda CFG.hCfgFile - beq .8 - >SYSCALL FreeMem.A - -.8 pla - rts -*-------------------------------------- -CFG.GetLine stz UsrBuf256 - ldx #0 - ldy #0 - -.1 jsr CFG.GetChar - bne .2 end of file? - txa - bne .8 - sec - rts - -.2 cmp #$0D - beq .8 end of line - inx - sta UsrBuf256,x - cmp #'=' - bne .3 - txa - dec - tay -.3 cpx #64 line too long ? - bne .1 - sec - rts - -.8 tya = found ? - beq .9 - - sta UsrBuf256 - txa - sec - sbc UsrBuf256 - sta UsrBuf256+1,y - stz UsrBuf256+1,x End with 0 for ScanIP - clc - rts - -.9 sec - rts -*-------------------------------------- -CFG.GetChar lda CFG.FileLen - bne .1 - lda CFG.FileLen+1 - beq .9 - dec CFG.FileLen+1 -.1 dec CFG.FileLen - lda (ZPIPCfgPtr) - inc ZPIPCfgPtr - bne .9 - inc ZPIPCfgPtr+1 NZ -.9 rts -*-------------------------------------- -CFG.GetKeyword stz CFG.Keyword - - ldx #0 - -.1 phx - ldy #0 - -.2 lda CFG.Keywords,x - cmp UsrBuf256,y - bne .3 - cpy UsrBuf256 - beq .4 - inx - iny - bne .2 - plx - sec - rts - -.3 inc CFG.Keyword - plx - txa - sec - adc CFG.Keywords,x - tax - lda CFG.Keywords,x - bne .1 - sec - rts - -.4 plx - clc - rts -*-------------------------------------- -CFG.ScanIP stz CFG.IP - - ldx UsrBuf256 - -.1 ldy #0 -.11 lda UsrBuf256+2,x - beq .3 - cmp #'0' - bcc .2 - cmp #'9'+1 - bcs .2 - cpy #3 - beq .9 - iny - sta CFG.StrBuf,y - inx - bra .11 - -.2 cmp #'.' - bne .9 - -.3 sty CFG.StrBuf - lda CFG.IP - cmp #4 - beq .9 - jsr CFG.Dec2Hex - bcs .9 - lda CFG.HexByte - inc CFG.IP - ldy CFG.IP - sta CFG.IP,y - inx - lda UsrBuf256+1,x - bne .1 - clc - rts - -.9 sec - rts -*-------------------------------------- -CFG.Dec2Hex sec - ldy CFG.StrBuf - beq .9 - - lda CFG.StrBuf+1 - and #$0f - sta CFG.HexByte - - ldy #1 - -.1 cpy CFG.StrBuf - beq .8 - iny - lda CFG.HexByte - asl CFG.HexByte - bcs .9 - asl CFG.HexByte - bcs .9 - adc CFG.HexByte - bcs .9 - asl - bcs .9 - sta CFG.HexByte - lda CFG.StrBuf,y - and #$0f - adc CFG.HexByte - sta CFG.HexByte - bcc .1 -.9 rts - -.8 clc - rts -*-------------------------------------- -MAN -SAVE /A2OSX.SRC/SBIN/TCPIP.S.CFG -LOAD /A2OSX.SRC/SBIN/TCPIP.S -ASM diff --git a/SBIN/TCPIP.S.txt b/SBIN/TCPIP.S.txt deleted file mode 100644 index 889f51cf..00000000 --- a/SBIN/TCPIP.S.txt +++ /dev/null @@ -1,221 +0,0 @@ -PR#3 -PREFIX /A2OSX.BUILD -NEW -INC 1 -AUTO 6 - .LIST OFF - .OP 65C02 - .OR $2000 - .TF /A2OSX.BUILD/SBIN/TCPIP -*-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I -*-------------------------------------- -ZPIPCfgPtr .EQ ZPBIN -ZPIPDevPtr .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 - .DA 0 - .DA 0 -*-------------------------------------- -* Relocation Table -*-------------------------------------- -.1 .DA CS.INIT - .DA CS.RUN - .DA CS.DOEVENT - .DA CS.QUIT -L.LIBTCPIP .DA LIBTCPIP -L.DEVNAME .DA DEVNAME -L.MSG.DEV.KO .DA MSG.DEV.KO -L.MSG.DEV.OK .DA MSG.DEV.OK -L.MSG.CFG .DA MSG.CFG -L.MSG.CFG.KO .DA MSG.CFG.KO -L.MSG.CFG.OK .DA MSG.CFG.OK -L.HOSTNAME .DA HOSTNAME -L.TCPIP.CONF .DA TCPIP.CONF -L.HOSTS .DA HOSTS -L.IPCFG .DA IPCFG - .DA 0 -*-------------------------------------- -CS.INIT >LDYA L.LIBTCPIP - >SYSCALL LoadLibYA - bcs .99 - sta hLIBTCPIP - - jsr CS.INIT.DEV - bcs .99 - - jsr CFG.Read continue even if error opening CFG file - - lda IPCFG+S.IPCFG.HOSTNAME - bne .4 - - ldy DefaultHostName - -.2 lda DefaultHostName,y - sta IPCFG+S.IPCFG.HOSTNAME,y - dey - bpl .2 - -.3 lda A2osX.TIMER16 - jsr A2CharAX - sta IPCFG+S.IPCFG.HOSTNAME+7 - stx IPCFG+S.IPCFG.HOSTNAME+8 - - lda A2osX.TIMER16+1 - jsr A2CharAX - sta IPCFG+S.IPCFG.HOSTNAME+9 - stx IPCFG+S.IPCFG.HOSTNAME+10 - -.4 >PUSHW L.IPCFG - >LIBCALL hLIBTCPIP,LIBTCPIP.SET.IPCFG - - lda (pPs) - ora #S.PS.F.EVENT Now accept events - sta (pPs) - - clc -.99 rts -*-------------------------------------- -CS.INIT.DEV >LDYA L.DEVNAME - >SYSCALL GetDevByNameYA - bcc .1 - inc DEVNAME+4 - lda DEVNAME+4 - cmp #'8' - bne CS.INIT.DEV - - >LDYA L.MSG.DEV.KO - >SYSCALL PrintF.YA - lda #$28 MLI.ERR.NODEV - sec - rts - -.1 >STYA ZPIPDevPtr - >STYA NetDevJmp+1 - stx hNetDev - stx IPCFG+S.IPCFG.HDEV - - >PUSHW L.DEVNAME - >LDYA L.MSG.DEV.OK - >SYSCALL PrintF.YA - - ldx #DEVMGR.OPEN - jsr NetDevJmp - bcs .9 - - ldx #DEVMGR.STATUS - jsr NetDevJmp - bcs .9 - >STYA ZPIPDevPtr - - ldy #S.DEVSTAT+2 MAC - ldx #S.IPCFG.MAC - -.2 lda (ZPIPDevPtr),y - sta IPCFG,x - iny - inx - cpx #S.IPCFG.MAC+6 - bne .2 - - clc - rts - -.9 sec - rts -*-------------------------------------- -CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.POLL - clc - rts -*-------------------------------------- -CS.DOEVENT lda (pEvent) - bpl .9 - - >LIBCALL hLIBTCPIP,LIBTCPIP.PULSEA - -.9 sec never discard TIME event - rts -*-------------------------------------- -CS.QUIT lda IPCFG+S.IPCFG.HDEV - beq .1 - ldx #DEVMGR.CLOSE - jsr NetDevJmp - -.1 lda hLIBTCPIP - >SYSCALL UnloadLibA - clc - rts -*-------------------------------------- -A2CharAX pha - lsr - lsr - lsr - lsr - and #$0F - ora #$30 - cmp #'9'+1 - bcc .1 - adc #6 -.1 tax - pla - and #$0F - ora #$30 - cmp #'9'+1 - bcc .8 - adc #6 -.8 rts -*-------------------------------------- -NetDevJmp jmp * -*-------------------------------------- - .INB /A2OSX.SRC/SBIN/TCPIP.S.CFG -*-------------------------------------- -CS.END -*-------------------------------------- -LIBTCPIP >PSTR "libtcpip.o" -DEVNAME >PSTR "ETH1" -MSG.DEV.KO >CSTR "TCPIP:No Device Found, exiting.\r\n" -MSG.DEV.OK >CSTR "TCPIP:Bound To Device : %S\r\n" -MSG.CFG >CSTR "TCPIP:Reading %S..." -MSG.CFG.KO >CSTR "Failed!!! [%h]\r\n" -MSG.CFG.OK >CSTR "OK.\r\n" -*-------------------------------------- -HOSTNAME >PSTR "${A2OSX}ETC/HOSTNAME" -TCPIP.CONF >PSTR "${A2OSX}ETC/TCPIP.CONF" -HOSTS >PSTR "${A2OSX}ETC/HOSTS" -DefaultHostName >PSTR "a2osx-XXXX" -CFG.Keywords >PSTR "DOMAIN" - >PSTR "IP" - >PSTR "MASK" - >PSTR "GW" - >PSTR "DNS1" - >PSTR "DNS2" -CFG.Keyword.Map .DA #0 End Of Keyword table and NA Keyword - .DA #S.IPCFG.IP - .DA #S.IPCFG.MASK - .DA #S.IPCFG.GW - .DA #S.IPCFG.DNS1 - .DA #S.IPCFG.DNS2 -hLIBTCPIP .BS 1 -hNetDev .BS 1 -IPCFG .BS S.IPCFG -CFG.hCfgFile .BS 1 -CFG.hCfgPath .BS 1 -CFG.FileLen .BS 2 -CFG.Keyword .BS 1 -CFG.StrBuf .BS 4 -CFG.HexByte .BS 1 -CFG.IP .BS 5 -*-------------------------------------- -MAN -SAVE /A2OSX.SRC/SBIN/TCPIP.S -ASM diff --git a/SBIN/TCPIPD.S.CFG.txt b/SBIN/TCPIPD.S.CFG.txt index 17beb41a..1c1a8291 100644 --- a/SBIN/TCPIPD.S.CFG.txt +++ b/SBIN/TCPIPD.S.CFG.txt @@ -10,63 +10,33 @@ CFG.Read >PUSHW L.HOSTNAME >SYSCALL PrintF.YA jsr CFG.Read.HOSTNAME - bcc .1 - >PUSHA - >LDYA L.MSG.CFG.KO - bra .2 -.1 >LDYA L.MSG.CFG.OK -.2 >SYSCALL PrintF.YA + jsr CFG.Read.Result >PUSHW L.TCPIP.CONF >LDYA L.MSG.CFG >SYSCALL PrintF.YA jsr CFG.Read.TCPIP.CONF - bcc .3 - >PUSHA - >LDYA L.MSG.CFG.KO - bra .4 -.3 >LDYA L.MSG.CFG.OK -.4 >SYSCALL PrintF.YA + jsr CFG.Read.Result >PUSHW L.HOSTS >LDYA L.MSG.CFG >SYSCALL PrintF.YA - + rts jsr CFG.Read.HOSTS - bcc .5 +*-------------------------------------- +CFG.Read.Result bcc .1 >PUSHA >LDYA L.MSG.CFG.KO - bra .6 -.5 >SYSCALL PrintF.YA -.6 >LDYA L.MSG.CFG.OK - >SYSCALL PrintF.YA + bra .2 +.1 >LDYA L.MSG.CFG.OK +.2 >SYSCALL PrintF.YA rts *-------------------------------------- CFG.Read.HOSTNAME - stz CFG.hCfgFile - stz CFG.hCfgPath - >LDYA L.HOSTNAME - >SYSCALL ExpandStr.YA - bcs .99 - - stx CFG.hCfgPath - pha - - >PUSHWI 0 Aux type - >PUSHBI 4 S.FILEINFO.TYPE.TXT - >PUSHBI SYS.FOpen.R - pla - >PUSHYA - >SYSCALL LoadFile + jsr CFG.Read.LoadFile bcs .9 - stx CFG.hCfgFile - >STYA CFG.FileLen - - txa - >SYSCALL GetMemPtr.A - >STYA ZPIPCfgPtr * read 15 chars MAX, until CR or EOF @@ -96,31 +66,12 @@ CFG.Read.HOSTNAME .9 jsr CFG.Read.CleanUp sec -.99 rts + rts *-------------------------------------- CFG.Read.TCPIP.CONF - stz CFG.hCfgFile - stz CFG.hCfgPath - >LDYA L.TCPIP.CONF - >SYSCALL ExpandStr.YA - bcs .99 - - stx CFG.hCfgPath - pha - - >PUSHWI 0 Aux type - >PUSHBI 4 S.FILEINFO.TYPE.TXT - >PUSHBI SYS.FOpen.R - pla - >PUSHYA - >SYSCALL LoadFile + jsr CFG.Read.LoadFile bcs .9 - stx CFG.hCfgFile - >STYA CFG.FileLen - txa - >SYSCALL GetMemPtr.A - >STYA ZPIPCfgPtr .1 jsr CFG.GetLine bcs .8 @@ -150,7 +101,7 @@ CFG.Read.TCPIP.CONF .9 jsr CFG.Read.CleanUp sec -.99 rts + rts .3 jsr CFG.ScanIP bcs .1 @@ -177,23 +128,41 @@ CFG.Read.TCPIP.CONF clc rts *-------------------------------------- -CFG.Read.HOSTS >PUSHWI 0 Aux type +CFG.Read.HOSTS >LDYA L.HOSTS + + jsr CFG.Read.LoadFile + bcs .9 + + + +.9 jsr CFG.Read.CleanUp + sec + rts +*-------------------------------------- +CFG.Read.LoadFile + stz CFG.hCfgFile + stz CFG.hCfgPath + + >SYSCALL ExpandStr.YA + bcs .9 + + stx CFG.hCfgPath + pha + + >PUSHWI 0 Aux type >PUSHBI 4 S.FILEINFO.TYPE.TXT >PUSHBI SYS.FOpen.R - >PUSHW L.HOSTS + pla + >PUSHYA >SYSCALL LoadFile - bcs .99 + bcs .9 + stx CFG.hCfgFile >STYA CFG.FileLen - txa >SYSCALL GetMemPtr.A >STYA ZPIPCfgPtr - -.89 lda CFG.hCfgFile - >SYSCALL FreeMem.A - clc -.99 rts +.9 rts *-------------------------------------- CFG.Read.CleanUp pha diff --git a/SBIN/TCPIPD.S.txt b/SBIN/TCPIPD.S.txt index da9b4978..1df977b2 100644 --- a/SBIN/TCPIPD.S.txt +++ b/SBIN/TCPIPD.S.txt @@ -83,7 +83,7 @@ CS.INIT >LDYA L.LIBTCPIP lda (pPs) ora #S.PS.F.EVENT Now accept events sta (pPs) - + clc .99 rts *-------------------------------------- @@ -141,7 +141,6 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.POLL *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 - >LIBCALL hLIBTCPIP,LIBTCPIP.PULSEA .9 sec never discard TIME event @@ -186,7 +185,7 @@ LIBTCPIP >CSTR "libtcpip.o" DEVNAME >CSTR "ETH1" MSG.DEV.KO >CSTR "TCPIPD:No Device Found, exiting.\r\n" MSG.DEV.OK >CSTR "TCPIPD:Bound To Device : %s\r\n" -MSG.CFG >CSTR "TCPIPD:Reading %S..." +MSG.CFG >CSTR "TCPIPD:Reading %s..." MSG.CFG.KO >CSTR "Failed!!! [%h]\r\n" MSG.CFG.OK >CSTR "OK.\r\n" *-------------------------------------- diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index 0d44d987..e5926a20 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -25,7 +25,7 @@ CORE.Run lda CORE.PSCount ldy #S.PS.CPID lda (pPs),y - jsr CORE.GetPSByID.A + jsr CORE.GetPSStatus.A bcc .8 yes, still running.... lda (pPs) get S.PS.F again @@ -301,7 +301,7 @@ CORE.PSFree.A sta .1+1 Save PS ID jsr .8 lda (ZPPtr1) get S.PS.F - and #S.PS.F.ENV do we have to discard duplicated env & prefix ? + and #S.PS.F.DUPENV do we have to discard duplicated env & prefix ? beq .1 ldy #S.PS.hENV @@ -331,11 +331,17 @@ CORE.PSFree.A sta .1+1 Save PS ID * X unmodofied *-------------------------------------- CORE.GetPSByID.A + jsr CORE.GetPSStatus.A + bcs .9 + lda PS.TABLE.hMem-1,y + jmp K.GetMemPtr.A +.9 rts +CORE.GetPSStatus.A ldy CORE.PSCount beq .9 .1 cmp PS.Table.PID-1,y - beq .2 + beq .8 dey bne .1 @@ -343,8 +349,8 @@ CORE.GetPSByID.A sec rts -.2 lda PS.TABLE.hMem-1,y - jmp K.GetMemPtr.A +.8 clc + rts *-------------------------------------- CORE.DumpEvent ldy #S.EVT-1 diff --git a/SYS/KERNEL.S.CTRL.txt b/SYS/KERNEL.S.CTRL.txt new file mode 100644 index 00000000..f4d19baa --- /dev/null +++ b/SYS/KERNEL.S.CTRL.txt @@ -0,0 +1,21 @@ +PR#3 +PREFIX /A2OSX.BUILD +LOMEM $A00 +INC 1 +AUTO 6 +* CONTROL SECTION : + .LIST ON +A2osX.D1.S .EQ A2osX.D2-A2osX.D1 +A2osX.D2.S .EQ A2osX.E0-A2osX.D2 +A2osX.E0.S .EQ A2osX.E0.E-A2osX.E0 + .DO A2osX.D1.S>$1000 +* ERROR:BNK1 too big + .FIN + .DO A2osX.D2.S>$1000 +* ERROR:BNK2 too big + .FIN + .LIST OFF +MAN +SAVE /A2OSX.SRC/SYS/KERNEL.S.CTRL +LOAD /A2OSX.SRC/SYS/KERNEL.S +ASM diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index cccd9112..ea1dbb2c 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -106,7 +106,7 @@ K.SYSCALL.JMP .DA 0 $00 .DA K.CreateProcess.YA .DA 0 .DA 0 - .DA 0 + .DA K.GetPSStatus.A .DA K.GetPSList.YA .DA * $B0 diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 132ebd10..754b9a2b 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -14,13 +14,13 @@ AUTO 6 * A = Child PSID *\-------------------------------------- K.ExecProcessNewEnv.YA - ldx #S.PS.F.ENV+S.PS.F.HOLD + ldx #S.PS.F.DUPENV+S.PS.F.HOLD .HS 2C bit abs K.ExecProcess.YA ldx #S.PS.F.HOLD .HS 2C bit abs K.CreateProcessNewEnv.YA - ldx #S.PS.F.ENV + ldx #S.PS.F.DUPENV .HS 2C bit abs K.CreateProcess.YA ldx #0 @@ -104,7 +104,7 @@ PS.CreateChild ldx #0 lda CORE.LastPSID sta (ZPPtr3),y - lda #S.PS.F.ENV + lda #S.PS.F.DUPENV bit K.CreateProcess.Flags need to create ENV & Prefix ? beq .6 no... @@ -116,6 +116,10 @@ PS.CreateChild ldx #0 jsr K.NewStr.YA bcs .9 + lda CORE.LastPSID Set this copy ownership + ldy #S.MEM.OWNERPID + sta (ZPMEMMGR),y + txa ldy #S.PS.hPREFIX sta (ZPPtr3),y @@ -158,7 +162,7 @@ PS.CreateChild ldx #0 ora (pPs) sta (pPs) HOLD parent PS if ExecProcess -.82 lda #S.PS.F.INUSE+S.PS.F.INIT +.82 lda #S.PS.F.INIT ora (ZPPtr3) sta (ZPPtr3) Make this PS Init.... @@ -337,6 +341,10 @@ PS.DupEnv.A jsr K.GetMemPtr.A >STYA ZPPtr2 + lda CORE.LastPSID Set this copy ownership + ldy #S.MEM.OWNERPID + sta (ZPMEMMGR),y + ldy #0 .1 lda (ZPPtr1),y @@ -358,10 +366,17 @@ PS.DupEnv.A jsr K.GetMemPtr.A inc ZPPtr2+1 bra .1 -.8 txa +.8 txa hMem + clc .9 rts *-------------------------------------- +K.GetPSStatus.A jsr CORE.GetPSByID.A + bcs .9 + >STYA ZPPtr1 + lda (ZPPtr1) +.9 rts +*-------------------------------------- K.GetPSList.YA >STYA ZPPtr1 ldx #0 diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index ebe6b78a..273f179a 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -48,18 +48,7 @@ A2osX.E0 .PH $E000 .INB /A2OSX.SRC/SYS/KERNEL.S.D01 .EP A2osX.E0.E .EQ * -* CONTROL SECTION : - .LIST ON -A2osX.D1.S .EQ A2osX.D2-A2osX.D1 -A2osX.D2.S .EQ A2osX.E0-A2osX.D2 -A2osX.E0.S .EQ A2osX.E0.E-A2osX.E0 - .DO A2osX.D1.S>$1000 -* ERROR:BNK1 too big - .FIN - .DO A2osX.D2.S>$1000 -* ERROR:BNK2 too big - .FIN - .LIST OFF + .INB /A2OSX.SRC/SYS/KERNEL.S.CTRL MAN SAVE /A2OSX.SRC/SYS/KERNEL.S ASM