mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-16 03:32:13 +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.
@ -189,7 +189,7 @@ MSG0 >CSTR "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
|
||||
|
@ -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
|
||||
*--------------------------------------
|
||||
|
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/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
|
||||
*--------------------------------------
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
*--------------------------------------
|
||||
|
@ -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
|
||||
*--------------------------------------
|
||||
|
@ -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
|
||||
*--------------------------------------
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
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
|
||||
|
@ -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"
|
||||
*--------------------------------------
|
||||
|
@ -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
|
||||
|
||||
|
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 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA K.GetPSStatus.A
|
||||
.DA K.GetPSList.YA
|
||||
|
||||
.DA * $B0
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user