mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-21 06:29:08 +00:00
Kernel 0.9.1 : MemMgr & MEMDUMP enhancement, TCPIP bugfix
This commit is contained in:
parent
4c5584db40
commit
98c99b0ad2
Binary file not shown.
Binary file not shown.
@ -26,7 +26,7 @@ CS.START cld
|
|||||||
.DA 0
|
.DA 0
|
||||||
.DA CS.END-CS.START CS
|
.DA CS.END-CS.START CS
|
||||||
.DA DS.END-DS.START DS
|
.DA DS.END-DS.START DS
|
||||||
.DA #16 SS
|
.DA #32 SS
|
||||||
.DA #4 ZP
|
.DA #4 ZP
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -37,6 +37,7 @@ CS.START cld
|
|||||||
.DA CS.DOEVENT
|
.DA CS.DOEVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.MSG0 .DA MSG0
|
L.MSG0 .DA MSG0
|
||||||
|
L.MSG1.INV .DA MSG1.INV
|
||||||
L.MSG1 .DA MSG1
|
L.MSG1 .DA MSG1
|
||||||
L.MSG1.BIN .DA MSG1.BIN
|
L.MSG1.BIN .DA MSG1.BIN
|
||||||
L.MSG1.STR .DA MSG1.STR
|
L.MSG1.STR .DA MSG1.STR
|
||||||
@ -48,17 +49,14 @@ L.MSG5 .DA MSG5
|
|||||||
L.MSG.FREE .DA MSG.FREE
|
L.MSG.FREE .DA MSG.FREE
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT ldy #MEM.COUNT Skip SLOT0
|
CS.INIT >INC.G MEM.COUNT Skip SLOT0
|
||||||
lda (pData),y
|
|
||||||
inc
|
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
>LEA.G MemStat
|
>LEA.G MemStat
|
||||||
>SYSCALL GetMemStat.YA
|
>SYSCALL GetMemStat.YA
|
||||||
|
|
||||||
lda (pPs)
|
* lda (pPs)
|
||||||
ora #S.PS.F.EVENT Now accept events
|
* ora #S.PS.F.EVENT Now accept events
|
||||||
sta (pPs)
|
* sta (pPs)
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -96,24 +94,17 @@ CS.RUN >SYSCALL GetChar
|
|||||||
>LDYA L.MSG0
|
>LDYA L.MSG0
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
.1 ldy #MEM.COUNT
|
.1 >LDA.G MEM.COUNT
|
||||||
lda (pData),y
|
|
||||||
>SYSCALL GetMemByID.A
|
>SYSCALL GetMemByID.A
|
||||||
>STYA ZPPTR1
|
>STYA ZPPTR1
|
||||||
lda (ZPPTR1)
|
lda (ZPPTR1)
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
ldy #USED.COUNT
|
>INC.G USED.COUNT
|
||||||
lda (pData),y
|
|
||||||
inc
|
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
.2 jsr CS.RUN.PRINTMEM
|
.2 jsr CS.RUN.PRINTMEM
|
||||||
|
|
||||||
ldy #MEM.COUNT
|
>INC.G MEM.COUNT
|
||||||
lda (pData),y
|
|
||||||
inc
|
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
@ -175,21 +166,19 @@ CS.RUN >SYSCALL GetChar
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.PRINTMEM ldy #S.MEM.LEN
|
CS.RUN.PRINTMEM ldy #S.MEM.LEN+1
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
pha
|
>PUSHA
|
||||||
iny
|
dey
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
ply
|
>PUSHA
|
||||||
>PUSHYA
|
|
||||||
|
|
||||||
ldy #S.MEM.PTR
|
ldy #S.MEM.PTR+1
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
pha
|
>PUSHA
|
||||||
iny
|
dey
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
ply
|
>PUSHA
|
||||||
>PUSHYA
|
|
||||||
|
|
||||||
ldy #S.MEM.REFCNT
|
ldy #S.MEM.REFCNT
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
@ -199,43 +188,70 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN
|
|||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
>PUSHA
|
>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
|
>PUSHA
|
||||||
|
|
||||||
ldy #MEM.COUNT
|
lda (ZPPTR1) Get flags
|
||||||
lda (pData),y
|
bpl .12
|
||||||
>PUSHA
|
|
||||||
|
|
||||||
>LDYA L.MSG1
|
ldy #S.MEM.OWNERPID
|
||||||
|
lda (ZPPTR1),y
|
||||||
|
>SYSCALL GetPSStatus.A
|
||||||
|
bcc .12
|
||||||
|
|
||||||
|
>LDYA L.MSG1.INV
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
lda (ZPPTR1) Free ? assume raw data...
|
.12 >LDYA L.MSG1
|
||||||
bpl .10
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
ldy #S.MEM.BIN
|
ldy #S.MEM.BIN
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
bne .7
|
bne .7
|
||||||
****** DATA
|
****** DATA
|
||||||
.10 ldy #S.MEM.PTR
|
ldy #S.MEM.PTR
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
sta ZPPTR2
|
sta ZPPTR2
|
||||||
iny
|
iny
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
sta ZPPTR2+1
|
sta ZPPTR2+1
|
||||||
|
|
||||||
lda (ZPPTR2)
|
ldy #$0
|
||||||
tay
|
|
||||||
|
|
||||||
.1 lda (ZPPTR2),y Check if it looks like a printable string
|
.1 lda (ZPPTR2),y Check if it looks like a printable string
|
||||||
|
beq .11
|
||||||
|
bmi .2
|
||||||
cmp #$20
|
cmp #$20
|
||||||
bcc .2 not printable....->hex
|
bcc .2 not printable....->hex
|
||||||
dey
|
iny
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
|
.11 tya
|
||||||
|
beq .2 Startig with 0...assume BIN
|
||||||
|
|
||||||
>PUSHW ZPPTR2 String
|
>PUSHW ZPPTR2 String
|
||||||
>PUSHB (ZPPTR2) Len
|
tya Len
|
||||||
|
>PUSHA
|
||||||
>LDYA L.MSG1.STR
|
>LDYA L.MSG1.STR
|
||||||
>SYSCALL PrintF.YA
|
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.2 ldy #15
|
.2 ldy #15
|
||||||
@ -245,31 +261,25 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN
|
|||||||
bpl .3
|
bpl .3
|
||||||
|
|
||||||
>LDYA L.MSG1.HEX
|
>LDYA L.MSG1.HEX
|
||||||
>SYSCALL PrintF.YA
|
|
||||||
|
|
||||||
bra .8
|
bra .8
|
||||||
****** BIN
|
****** BIN
|
||||||
.7 >SYSCALL GetMemPtr.A
|
.7 >SYSCALL GetMemPtr.A
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA L.MSG1.BIN
|
>LDYA L.MSG1.BIN
|
||||||
>SYSCALL PrintF.YA
|
.8 >SYSCALL PrintF.YA
|
||||||
|
|
||||||
.8 ldy #LINE.COUNT
|
>INC.G LINE.COUNT
|
||||||
lda (pData),y
|
|
||||||
inc
|
|
||||||
sta (pData),y
|
|
||||||
cmp #PAGELEN
|
cmp #PAGELEN
|
||||||
bne .9
|
beq .9
|
||||||
|
rts
|
||||||
|
|
||||||
lda #$FF
|
.9 lda #$FF
|
||||||
ldy #bSTOP
|
>STA.G bSTOP
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
ldy #LINE.COUNT
|
inc
|
||||||
lda #0
|
>STA.G LINE.COUNT
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
.9 rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT sec
|
CS.DOEVENT sec
|
||||||
rts
|
rts
|
||||||
@ -279,15 +289,17 @@ CS.QUIT clc
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG0 >CSTR " # Flags PID REF PTR LEN BINPATH/DATA\r\n"
|
MSG0 >CSTR " # Flags PID REF PTR LEN BINPATH/DATA\r\n"
|
||||||
MSG1 >CSTR "%03d %b %03d %03d $%H %05D "
|
MSG1.INV >CSTR "\e[7m"
|
||||||
MSG1.BIN >CSTR "!BIN:%41s\r\n"
|
MSG1 >CSTR "%03d %s %03d %03d $%H %05D "
|
||||||
MSG1.STR >CSTR "[%02h]:%41s\r\n"
|
MSG1.BIN >CSTR "{BIN:%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\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"
|
MSG2 >CSTR "\r\nAllocated hMem:%d, Total:%d\r\n"
|
||||||
MSG3 >CSTR "High Memory: $%H\r\n"
|
MSG3 >CSTR "High Memory: $%H\r\n"
|
||||||
MSG4 >CSTR "Free ULimit: $%H\r\n"
|
MSG4 >CSTR "Free ULimit: $%H\r\n"
|
||||||
MSG5 >CSTR "Low Memory: $%H\r\n"
|
MSG5 >CSTR "Low Memory: $%H\r\n"
|
||||||
MSG.FREE >CSTR "\r\nFree Memory: %D Bytes.\r\n"
|
MSG.FREE >CSTR "\r\nFree Memory: %D Bytes.\r\n"
|
||||||
|
MSG.FLAGS .AS "UZCNA--"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
@ -297,6 +309,7 @@ MEM.COUNT .BS 1
|
|||||||
USED.COUNT .BS 1
|
USED.COUNT .BS 1
|
||||||
bSTOP .BS 1
|
bSTOP .BS 1
|
||||||
MemStat .BS S.MEMSTAT
|
MemStat .BS S.MEMSTAT
|
||||||
|
MEM.FLAGS .BS 9
|
||||||
DS.END
|
DS.END
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
48
BIN/PS.S.txt
48
BIN/PS.S.txt
@ -10,8 +10,9 @@ AUTO 6
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB /A2OSX.BUILD/INC/MACROS.I
|
.INB /A2OSX.BUILD/INC/MACROS.I
|
||||||
.INB /A2OSX.BUILD/INC/A2OSX.I
|
.INB /A2OSX.BUILD/INC/A2OSX.I
|
||||||
|
.INB /A2OSX.BUILD/INC/KERNEL.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPTR1 .EQ ZPBIN
|
ZPPtr .EQ ZPBIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -45,43 +46,56 @@ CS.RUN >LDYA pData
|
|||||||
>LDYA L.MSG0
|
>LDYA L.MSG0
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
lda (pData) PS.COUNT
|
>LDA.G PS.Count
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
.1 >LDA.G PS.Index
|
.1 >INC.G PS.Index
|
||||||
inc
|
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
tay
|
tay
|
||||||
lda (pData),y PID
|
lda (pData),y PID
|
||||||
|
|
||||||
>SYSCALL GetMemPtr.A
|
>SYSCALL GetMemPtr.A
|
||||||
>STYA ZPPTR1
|
>STYA ZPPtr
|
||||||
|
|
||||||
ldy #S.PS.hARGS
|
ldy #S.PS.hARGS
|
||||||
lda (ZPPTR1),y
|
lda (ZPPtr),y
|
||||||
>SYSCALL GetMemPtr.A
|
>SYSCALL GetMemPtr.A
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
ldy #S.PS.PPID
|
ldy #S.PS.PPID
|
||||||
lda (ZPPTR1),y
|
lda (ZPPtr),y
|
||||||
>PUSHA Parent PID
|
>PUSHA Parent PID
|
||||||
|
|
||||||
lda (ZPPTR1) push flags
|
lda (ZPPtr) Get flags
|
||||||
>PUSHA
|
|
||||||
|
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
|
ldy #S.PS.PID
|
||||||
lda (ZPPTR1),y
|
lda (ZPPtr),y
|
||||||
>PUSHA PID
|
>PUSHA PID
|
||||||
>LDYA L.MSG1
|
>LDYA L.MSG1
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
.7 lda (pData) PS.COUNT
|
.7 >DEC.G PS.COUNT
|
||||||
dec
|
|
||||||
sta (pData)
|
|
||||||
bne .1
|
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
|
sec we do not want to stay in memory
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -93,7 +107,8 @@ CS.QUIT clc
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG0 >CSTR "ID Flags PID Command Line\r\n"
|
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
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
@ -101,6 +116,7 @@ DS.START
|
|||||||
PS.COUNT .BS 1
|
PS.COUNT .BS 1
|
||||||
PS.DATA .BS K.PS.MAX
|
PS.DATA .BS K.PS.MAX
|
||||||
PS.Index .BS 1
|
PS.Index .BS 1
|
||||||
|
PS.FLAGS .BS 9
|
||||||
DS.END
|
DS.END
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -191,7 +191,7 @@ SYS.CreateProcessNewEnvYA .EQ $A4
|
|||||||
SYS.CreateProcessYA .EQ $A6
|
SYS.CreateProcessYA .EQ $A6
|
||||||
* .EQ $A8
|
* .EQ $A8
|
||||||
* .EQ $AA
|
* .EQ $AA
|
||||||
* .EQ $AC
|
SYS.GetPSStatus.A .EQ $AC
|
||||||
SYS.GetPSList.YA .EQ $AE
|
SYS.GetPSList.YA .EQ $AE
|
||||||
|
|
||||||
*SYS.GetArgC .EQ $B0
|
*SYS.GetArgC .EQ $B0
|
||||||
@ -244,12 +244,12 @@ SYSMGR.ERRFTB .EQ $CC File Too Big Error
|
|||||||
* MEM STRUCT
|
* MEM STRUCT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.MEM.F .EQ 0
|
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.INIT0 .EQ %01000000 Fill with "0"
|
||||||
S.MEM.F.CODE .EQ %00100000
|
S.MEM.F.CODE .EQ %00100000
|
||||||
S.MEM.F.NOMOVE .EQ %00010000
|
S.MEM.F.NOMOVE .EQ %00010000
|
||||||
S.MEM.F.ALIGN .EQ %00001000
|
S.MEM.F.ALIGN .EQ %00001000
|
||||||
S.MEM.F.INUSE .EQ %10000000 (Internal Flag)
|
|
||||||
S.MEM.REFCNT .EQ 1
|
S.MEM.REFCNT .EQ 1
|
||||||
S.MEM.OWNERPID .EQ 2
|
S.MEM.OWNERPID .EQ 2
|
||||||
S.MEM.BIN .EQ 3
|
S.MEM.BIN .EQ 3
|
||||||
@ -369,12 +369,11 @@ S.DEVSTAT .EQ 25
|
|||||||
* PS STRUCT
|
* PS STRUCT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.PS.F .EQ 0
|
S.PS.F .EQ 0
|
||||||
S.PS.F.INUSE .EQ %10000000
|
|
||||||
S.PS.F.INIT .EQ %01000000
|
S.PS.F.INIT .EQ %01000000
|
||||||
S.PS.F.HOLD .EQ %00100000
|
S.PS.F.HOLD .EQ %00100000
|
||||||
S.PS.F.SLEEP .EQ %00010000
|
S.PS.F.SLEEP .EQ %00010000
|
||||||
S.PS.F.EVENT .EQ %00001000
|
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.PPID .EQ 1
|
||||||
S.PS.PID .EQ 2
|
S.PS.PID .EQ 2
|
||||||
S.PS.CPID .EQ 3
|
S.PS.CPID .EQ 3
|
||||||
|
@ -128,9 +128,10 @@ AUTO 6
|
|||||||
.EM
|
.EM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.MA PUSHW.G
|
.MA PUSHW.G
|
||||||
>LDA.G ]1+1
|
ldy #]1+1
|
||||||
|
lda (pData),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>LDA.G ]1
|
dey
|
||||||
>PUSHA
|
>PUSHA
|
||||||
.EM
|
.EM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -86,13 +86,13 @@ ARP.ADD.I sta ARP.TmpCache
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # ARP.GetC.Ache
|
* # ARP.GetCAche
|
||||||
* Return a Ptr to ARP Cache Table
|
* Return a Ptr to ARP Cache Table
|
||||||
* ## In:
|
* ## In:
|
||||||
* ## Out:
|
* ## Out:
|
||||||
* Y,A = PTR to ARP.CACHE
|
* Y,A = PTR to ARP.CACHE
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
ARP.GetC.Ache >LDYA L.ARP.CACHE
|
ARP.GetCAche >LDYA L.ARP.CACHE
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -175,13 +175,13 @@ DNS.ADD.I sta DNS.TmpCache
|
|||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # DNS.GetC.Ache
|
* # DNS.GetCAche
|
||||||
* Return a Ptr to DNS Cache Table
|
* Return a Ptr to DNS Cache Table
|
||||||
* ## In:
|
* ## In:
|
||||||
* ## Out:
|
* ## Out:
|
||||||
* Y,A = PTR to DNS.CACHE
|
* Y,A = PTR to DNS.CACHE
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
DNS.GetC.Ache >LDYA L.DNS.CACHE
|
DNS.GetCAche >LDYA L.DNS.CACHE
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -63,12 +63,12 @@ CS.START cld
|
|||||||
.DA ARP.CLEAR
|
.DA ARP.CLEAR
|
||||||
.DA ARP.QUERY
|
.DA ARP.QUERY
|
||||||
.DA ARP.ADD
|
.DA ARP.ADD
|
||||||
.DA ARP.GetC.ACHE
|
.DA ARP.GetCACHE
|
||||||
|
|
||||||
.DA DNS.CLEAR
|
.DA DNS.CLEAR
|
||||||
.DA DNS.QUERY
|
.DA DNS.QUERY
|
||||||
.DA DNS.ADD
|
.DA DNS.ADD
|
||||||
.DA DNS.GetC.ACHE
|
.DA DNS.GetCACHE
|
||||||
|
|
||||||
.DA HST.GETBYNAME
|
.DA HST.GETBYNAME
|
||||||
.DA HST.GETBYADDR
|
.DA HST.GETBYADDR
|
||||||
@ -143,7 +143,7 @@ POLL ldx #DEVMGR.READBLOCK
|
|||||||
stx hFrameIn
|
stx hFrameIn
|
||||||
>STYA ZPFrameInPtr
|
>STYA ZPFrameInPtr
|
||||||
|
|
||||||
lda (ZPFrameInPtr) Get Frame Len
|
lda (ZPFrameInPtr) Get Frame Len
|
||||||
sta ZPFrameInLen
|
sta ZPFrameInLen
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (ZPFrameInPtr),y
|
lda (ZPFrameInPtr),y
|
||||||
|
@ -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
|
|
221
SBIN/TCPIP.S.txt
221
SBIN/TCPIP.S.txt
@ -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
|
|
@ -10,63 +10,33 @@ CFG.Read >PUSHW L.HOSTNAME
|
|||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
jsr CFG.Read.HOSTNAME
|
jsr CFG.Read.HOSTNAME
|
||||||
bcc .1
|
jsr CFG.Read.Result
|
||||||
>PUSHA
|
|
||||||
>LDYA L.MSG.CFG.KO
|
|
||||||
bra .2
|
|
||||||
.1 >LDYA L.MSG.CFG.OK
|
|
||||||
.2 >SYSCALL PrintF.YA
|
|
||||||
|
|
||||||
>PUSHW L.TCPIP.CONF
|
>PUSHW L.TCPIP.CONF
|
||||||
>LDYA L.MSG.CFG
|
>LDYA L.MSG.CFG
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
jsr CFG.Read.TCPIP.CONF
|
jsr CFG.Read.TCPIP.CONF
|
||||||
bcc .3
|
jsr CFG.Read.Result
|
||||||
>PUSHA
|
|
||||||
>LDYA L.MSG.CFG.KO
|
|
||||||
bra .4
|
|
||||||
.3 >LDYA L.MSG.CFG.OK
|
|
||||||
.4 >SYSCALL PrintF.YA
|
|
||||||
|
|
||||||
>PUSHW L.HOSTS
|
>PUSHW L.HOSTS
|
||||||
>LDYA L.MSG.CFG
|
>LDYA L.MSG.CFG
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
rts
|
||||||
jsr CFG.Read.HOSTS
|
jsr CFG.Read.HOSTS
|
||||||
bcc .5
|
*--------------------------------------
|
||||||
|
CFG.Read.Result bcc .1
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>LDYA L.MSG.CFG.KO
|
>LDYA L.MSG.CFG.KO
|
||||||
bra .6
|
bra .2
|
||||||
.5 >SYSCALL PrintF.YA
|
.1 >LDYA L.MSG.CFG.OK
|
||||||
.6 >LDYA L.MSG.CFG.OK
|
.2 >SYSCALL PrintF.YA
|
||||||
>SYSCALL PrintF.YA
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CFG.Read.HOSTNAME
|
CFG.Read.HOSTNAME
|
||||||
stz CFG.hCfgFile
|
|
||||||
stz CFG.hCfgPath
|
|
||||||
|
|
||||||
>LDYA L.HOSTNAME
|
>LDYA L.HOSTNAME
|
||||||
>SYSCALL ExpandStr.YA
|
jsr CFG.Read.LoadFile
|
||||||
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
|
bcs .9
|
||||||
stx CFG.hCfgFile
|
|
||||||
>STYA CFG.FileLen
|
|
||||||
|
|
||||||
txa
|
|
||||||
>SYSCALL GetMemPtr.A
|
|
||||||
>STYA ZPIPCfgPtr
|
|
||||||
|
|
||||||
* read 15 chars MAX, until CR or EOF
|
* read 15 chars MAX, until CR or EOF
|
||||||
|
|
||||||
@ -96,31 +66,12 @@ CFG.Read.HOSTNAME
|
|||||||
|
|
||||||
.9 jsr CFG.Read.CleanUp
|
.9 jsr CFG.Read.CleanUp
|
||||||
sec
|
sec
|
||||||
.99 rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CFG.Read.TCPIP.CONF
|
CFG.Read.TCPIP.CONF
|
||||||
stz CFG.hCfgFile
|
|
||||||
stz CFG.hCfgPath
|
|
||||||
|
|
||||||
>LDYA L.TCPIP.CONF
|
>LDYA L.TCPIP.CONF
|
||||||
>SYSCALL ExpandStr.YA
|
jsr CFG.Read.LoadFile
|
||||||
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
|
bcs .9
|
||||||
stx CFG.hCfgFile
|
|
||||||
>STYA CFG.FileLen
|
|
||||||
txa
|
|
||||||
>SYSCALL GetMemPtr.A
|
|
||||||
>STYA ZPIPCfgPtr
|
|
||||||
|
|
||||||
.1 jsr CFG.GetLine
|
.1 jsr CFG.GetLine
|
||||||
bcs .8
|
bcs .8
|
||||||
@ -150,7 +101,7 @@ CFG.Read.TCPIP.CONF
|
|||||||
|
|
||||||
.9 jsr CFG.Read.CleanUp
|
.9 jsr CFG.Read.CleanUp
|
||||||
sec
|
sec
|
||||||
.99 rts
|
rts
|
||||||
|
|
||||||
.3 jsr CFG.ScanIP
|
.3 jsr CFG.ScanIP
|
||||||
bcs .1
|
bcs .1
|
||||||
@ -177,23 +128,41 @@ CFG.Read.TCPIP.CONF
|
|||||||
clc
|
clc
|
||||||
rts
|
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 4 S.FILEINFO.TYPE.TXT
|
||||||
>PUSHBI SYS.FOpen.R
|
>PUSHBI SYS.FOpen.R
|
||||||
>PUSHW L.HOSTS
|
pla
|
||||||
|
>PUSHYA
|
||||||
>SYSCALL LoadFile
|
>SYSCALL LoadFile
|
||||||
bcs .99
|
bcs .9
|
||||||
|
|
||||||
stx CFG.hCfgFile
|
stx CFG.hCfgFile
|
||||||
>STYA CFG.FileLen
|
>STYA CFG.FileLen
|
||||||
|
|
||||||
txa
|
txa
|
||||||
>SYSCALL GetMemPtr.A
|
>SYSCALL GetMemPtr.A
|
||||||
>STYA ZPIPCfgPtr
|
>STYA ZPIPCfgPtr
|
||||||
|
.9 rts
|
||||||
.89 lda CFG.hCfgFile
|
|
||||||
>SYSCALL FreeMem.A
|
|
||||||
clc
|
|
||||||
.99 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CFG.Read.CleanUp
|
CFG.Read.CleanUp
|
||||||
pha
|
pha
|
||||||
|
@ -141,7 +141,6 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.POLL
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT lda (pEvent)
|
CS.DOEVENT lda (pEvent)
|
||||||
bpl .9
|
bpl .9
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.PULSEA
|
>LIBCALL hLIBTCPIP,LIBTCPIP.PULSEA
|
||||||
|
|
||||||
.9 sec never discard TIME event
|
.9 sec never discard TIME event
|
||||||
@ -186,7 +185,7 @@ LIBTCPIP >CSTR "libtcpip.o"
|
|||||||
DEVNAME >CSTR "ETH1"
|
DEVNAME >CSTR "ETH1"
|
||||||
MSG.DEV.KO >CSTR "TCPIPD:No Device Found, exiting.\r\n"
|
MSG.DEV.KO >CSTR "TCPIPD:No Device Found, exiting.\r\n"
|
||||||
MSG.DEV.OK >CSTR "TCPIPD:Bound To Device : %s\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.KO >CSTR "Failed!!! [%h]\r\n"
|
||||||
MSG.CFG.OK >CSTR "OK.\r\n"
|
MSG.CFG.OK >CSTR "OK.\r\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -25,7 +25,7 @@ CORE.Run lda CORE.PSCount
|
|||||||
|
|
||||||
ldy #S.PS.CPID
|
ldy #S.PS.CPID
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
jsr CORE.GetPSByID.A
|
jsr CORE.GetPSStatus.A
|
||||||
bcc .8 yes, still running....
|
bcc .8 yes, still running....
|
||||||
|
|
||||||
lda (pPs) get S.PS.F again
|
lda (pPs) get S.PS.F again
|
||||||
@ -301,7 +301,7 @@ CORE.PSFree.A sta .1+1 Save PS ID
|
|||||||
jsr .8
|
jsr .8
|
||||||
|
|
||||||
lda (ZPPtr1) get S.PS.F
|
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
|
beq .1
|
||||||
|
|
||||||
ldy #S.PS.hENV
|
ldy #S.PS.hENV
|
||||||
@ -331,11 +331,17 @@ CORE.PSFree.A sta .1+1 Save PS ID
|
|||||||
* X unmodofied
|
* X unmodofied
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.GetPSByID.A
|
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
|
ldy CORE.PSCount
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
.1 cmp PS.Table.PID-1,y
|
.1 cmp PS.Table.PID-1,y
|
||||||
beq .2
|
beq .8
|
||||||
dey
|
dey
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
@ -343,8 +349,8 @@ CORE.GetPSByID.A
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.2 lda PS.TABLE.hMem-1,y
|
.8 clc
|
||||||
jmp K.GetMemPtr.A
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.DumpEvent ldy #S.EVT-1
|
CORE.DumpEvent ldy #S.EVT-1
|
||||||
|
|
||||||
|
21
SYS/KERNEL.S.CTRL.txt
Normal file
21
SYS/KERNEL.S.CTRL.txt
Normal file
@ -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
|
@ -106,7 +106,7 @@ K.SYSCALL.JMP .DA 0 $00
|
|||||||
.DA K.CreateProcess.YA
|
.DA K.CreateProcess.YA
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA K.GetPSStatus.A
|
||||||
.DA K.GetPSList.YA
|
.DA K.GetPSList.YA
|
||||||
|
|
||||||
.DA * $B0
|
.DA * $B0
|
||||||
|
@ -14,13 +14,13 @@ AUTO 6
|
|||||||
* A = Child PSID
|
* A = Child PSID
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.ExecProcessNewEnv.YA
|
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
|
.HS 2C bit abs
|
||||||
K.ExecProcess.YA
|
K.ExecProcess.YA
|
||||||
ldx #S.PS.F.HOLD
|
ldx #S.PS.F.HOLD
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
K.CreateProcessNewEnv.YA
|
K.CreateProcessNewEnv.YA
|
||||||
ldx #S.PS.F.ENV
|
ldx #S.PS.F.DUPENV
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
K.CreateProcess.YA
|
K.CreateProcess.YA
|
||||||
ldx #0
|
ldx #0
|
||||||
@ -104,7 +104,7 @@ PS.CreateChild ldx #0
|
|||||||
lda CORE.LastPSID
|
lda CORE.LastPSID
|
||||||
sta (ZPPtr3),y
|
sta (ZPPtr3),y
|
||||||
|
|
||||||
lda #S.PS.F.ENV
|
lda #S.PS.F.DUPENV
|
||||||
bit K.CreateProcess.Flags need to create ENV & Prefix ?
|
bit K.CreateProcess.Flags need to create ENV & Prefix ?
|
||||||
beq .6 no...
|
beq .6 no...
|
||||||
|
|
||||||
@ -116,6 +116,10 @@ PS.CreateChild ldx #0
|
|||||||
jsr K.NewStr.YA
|
jsr K.NewStr.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
lda CORE.LastPSID Set this copy ownership
|
||||||
|
ldy #S.MEM.OWNERPID
|
||||||
|
sta (ZPMEMMGR),y
|
||||||
|
|
||||||
txa
|
txa
|
||||||
ldy #S.PS.hPREFIX
|
ldy #S.PS.hPREFIX
|
||||||
sta (ZPPtr3),y
|
sta (ZPPtr3),y
|
||||||
@ -158,7 +162,7 @@ PS.CreateChild ldx #0
|
|||||||
ora (pPs)
|
ora (pPs)
|
||||||
sta (pPs) HOLD parent PS if ExecProcess
|
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)
|
ora (ZPPtr3)
|
||||||
sta (ZPPtr3) Make this PS Init....
|
sta (ZPPtr3) Make this PS Init....
|
||||||
|
|
||||||
@ -337,6 +341,10 @@ PS.DupEnv.A jsr K.GetMemPtr.A
|
|||||||
|
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
|
|
||||||
|
lda CORE.LastPSID Set this copy ownership
|
||||||
|
ldy #S.MEM.OWNERPID
|
||||||
|
sta (ZPMEMMGR),y
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 lda (ZPPtr1),y
|
.1 lda (ZPPtr1),y
|
||||||
@ -358,10 +366,17 @@ PS.DupEnv.A jsr K.GetMemPtr.A
|
|||||||
inc ZPPtr2+1
|
inc ZPPtr2+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 txa
|
.8 txa hMem
|
||||||
|
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
K.GetPSStatus.A jsr CORE.GetPSByID.A
|
||||||
|
bcs .9
|
||||||
|
>STYA ZPPtr1
|
||||||
|
lda (ZPPtr1)
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
K.GetPSList.YA >STYA ZPPtr1
|
K.GetPSList.YA >STYA ZPPtr1
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
@ -48,18 +48,7 @@ A2osX.E0 .PH $E000
|
|||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.D01
|
.INB /A2OSX.SRC/SYS/KERNEL.S.D01
|
||||||
.EP
|
.EP
|
||||||
A2osX.E0.E .EQ *
|
A2osX.E0.E .EQ *
|
||||||
* CONTROL SECTION :
|
.INB /A2OSX.SRC/SYS/KERNEL.S.CTRL
|
||||||
.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
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S
|
SAVE /A2OSX.SRC/SYS/KERNEL.S
|
||||||
ASM
|
ASM
|
||||||
|
Loading…
x
Reference in New Issue
Block a user