KERNEL:Fixed many memleaks & MEM related problems, FILEENUM BINs: fixes around wildcards search

This commit is contained in:
burniouf 2021-08-01 15:45:15 +02:00
parent 25c601906e
commit 3007637129
20 changed files with 472 additions and 368 deletions

Binary file not shown.

Binary file not shown.

View File

@ -15,9 +15,10 @@ NEW
.OR ZPBIN
ZS.START
ZPPtr1 .BS 2
ZPBuf .BS 2
ZPBufPtr .BS 2
ArgCount .BS 1
ArgIndex .BS 1
ArgFile .BS 1
OptionIdx .BS 1
hBuf .BS 1
FieldNum .BS 1
@ -45,7 +46,7 @@ CS.START cld
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.DOEVENT
.DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE
L.MSG.CRLF .DA MSG.CRLF
@ -64,21 +65,29 @@ CS.RUN lda #C.SPACE
cmp #'-'
beq .1
lda ArgCount
sta ArgIndex
lda ArgIndex
sta ArgFile
bra .10
.1 ldy #1
.1 ldy #1
lda (ZPPtr1),y
ldx #OptionList.Cnt-1
.2 cmp OptionList,x
beq .3
dex
bpl .2
bra .97
.97 lda #E.SYN
.98 pha
>PUSHW L.MSG.USAGE
>PUSHBI 0
>SYSCALL PrintF
pla
sec
.9 rts
.3 txa
lsr
@ -89,6 +98,7 @@ CS.RUN lda #C.SPACE
jsr CS.RUN.NextArg
bcs .97
lda (ZPPtr1)
sta Separator
bra .10
@ -106,24 +116,17 @@ CS.RUN lda #C.SPACE
tya
ldx OptionIdx
sta FieldNum-1,x
bra .10 scan for any other args
.97 lda #E.SYN
.98 pha
>PUSHW L.MSG.USAGE
>PUSHBI 0
>SYSCALL PrintF
pla
sec
.9 rts
bra .10 scan for any other args
.8 >LDYAI 256
>SYSCALL GetMem
bcs .9
>STYA ZPBuf
>STYA ZPBufPtr
stx hBuf
lda ArgIndex
lda ArgFile
beq .80
>PUSHW ZPBufPtr
@ -133,7 +136,7 @@ CS.RUN lda #C.SPACE
jsr CS.RUN.OUT
bcs .9
lda #0 Exit with no Error
sec
rts
@ -147,34 +150,38 @@ CS.RUN lda #C.SPACE
lda (ZPPtr1)
cmp #S.FD.T.PIPE
bne .97
bne CS.RUN.LOOP
ldy #S.PS.hStdIn
lda (pPS),y
sta hToClose
*--------------------------------------
CS.RUN.LOOP >SLEEP
ldy #S.PS.hStdIn
lda (pPS),y
>PUSHA
>PUSHW ZPBufPtr
>PUSHWI 256
>LDYA ZPBuf
>STYA ZPBufPtr
>PUSHYA
>PUSHWI 255
>SYSCALL FGetS
bcs .8
lda (ZPBufPtr)
beq CS.RUN.LOOP
jsr CS.RUN.OUT
bcc CS.RUN.LOOP
.8 cmp #MLI.E.EOF
bne .90
lda #0
.90 sec
.9 rts
.9 rts
*--------------------------------------
CS.RUN.OUT ldx FieldNum
beq CS.RUN.OUT.MN
@ -244,12 +251,12 @@ CS.RUN.OUT.MN ldy #0
cpy EndChar
beq .4
iny
bra .3
.4 lda #0
sta (ZPBufPtr),y
sta (ZPBufPtr),y
.8 ldy StartChar
beq .80
@ -262,10 +269,11 @@ CS.RUN.OUT.MN ldy #0
rts
*--------------------------------------
CS.RUN.NextArg inc ArgCount
lda ArgCount
CS.RUN.NextArg inc ArgIndex
lda ArgIndex
>SYSCALL ArgV
bcs .9
>STYA ZPPtr1
.9 rts
@ -283,7 +291,7 @@ CS.QUIT lda hToClose
beq .1
>SYSCALL FClose Close the pipe
.1 lda hBuf
beq .8

View File

@ -186,7 +186,7 @@ CS.RUN.LOOP stz bPass2
bcs .6
jsr FilterMatch
bcs .8 no match, skip....
bcs .5 no match, skip....
bit bAllmostAll
bmi .4
@ -820,7 +820,7 @@ OptionList .AS "ACFLRacflr"
OptionVars .DA #bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse,#bAllmostAll,#bColumn,#bFullPath,#bLong,#bRecurse
*--------------------------------------
MSG.USAGE .AS "Usage : LS [-A] [-C] [-F] [-L] [-R] [filespec]\r\n"
.AS " -A : Show dot files\r\n"
.AS " -A : Show all files\r\n"
.AS " -C : List in multiple columns\r\n"
.AS " -F : Show full paths\r\n"
.AS " -L : Use long listing format\r\n"

View File

@ -17,6 +17,7 @@ ZPPTR1 .BS 2
ZPPTR2 .BS 2
MEM.COUNT .BS 1
USED.COUNT .BS 1
LINE.COUNT .BS 1
bSTOP .BS 1
ZPReadAux sta SETREADAUX
@ -35,7 +36,7 @@ CS.START cld
.DA #0
.DA CS.END-CS.START Code Size (without Constants)
.DA DS.END-DS.START Data SegmentSize
.DA #32 Stack Size
.DA #64 Stack Size
.DA #ZS.END-ZS.START Zero Page Size
.DA 0
*--------------------------------------
@ -48,10 +49,10 @@ CS.START cld
L.MSG0 .DA MSG0
L.MSG1.INV .DA MSG1.INV
L.MSG1 .DA MSG1
L.MSG1X .DA MSG1X
L.MSG1.BIN .DA MSG1.BIN
L.MSG1.STR .DA MSG1.STR
L.MSG1.HEX .DA MSG1.HEX
L.MSG1X .DA MSG1X
L.MSG2 .DA MSG2
L.MSG3 .DA MSG3
.DA 0
@ -73,18 +74,9 @@ CS.RUN ldx #ZPCodeLen-1
CS.RUN.LOOP inc MEM.COUNT skip slot 0
lda bSTOP
beq .1
.10 >SYSCALL GetChar
jsr CS.RUN.CheckStop
bcs CS.INIT.RTS
cmp #3 Ctrl-C
beq CS.INIT.RTS
cmp #$13 Ctrl-S
stz bSTOP
.1 lda (ZPPTR1)
bpl .2
@ -102,26 +94,15 @@ CS.RUN.LOOP inc MEM.COUNT skip slot 0
>CMP.G MemStat+S.MSTAT.MLast
bne CS.RUN.LOOP
jsr CS.RUN.MSTAT
jsr CS.RUN.SUMMARY
jsr CS.RUN.INIT
CS.RUN.LOOPX inc MEM.COUNT skip slot 0
lda bSTOP
beq .1
.10 >SYSCALL GetChar
jsr CS.RUN.CheckStop
bcs CS.INIT.RTS
cmp #3 Ctrl-C ?
beq CS.INIT.RTS
cmp #$13 Ctrl-S
bne .10
stz bSTOP
.1 ldy #S.MEM.F
jsr ZPReadAux
bpl .2
@ -141,39 +122,33 @@ CS.RUN.LOOPX inc MEM.COUNT skip slot 0
>CMP.G MemStat+S.MSTAT.XLast
bne CS.RUN.LOOPX
CS.RUN.XSTAT >PUSHW L.MSG2
>PUSHB USED.COUNT
>PUSHB MEM.COUNT
>PUSHBI 2
>SYSCALL PrintF
jsr CS.RUN.SUMMARY
>PUSHW L.MSG3
>PUSHW.G MemStat+S.MSTAT.XH
>PUSHW.G MemStat+S.MSTAT.XF
>PUSHW.G MemStat+S.MSTAT.XL
>LDA.G MemStat+S.MSTAT.XF
sec
>SBC.G MemStat+S.MSTAT.XL
pha
>LDA.G MemStat+S.MSTAT.XF+1
>SBC.G MemStat+S.MSTAT.XL+1
ply
>PUSHYA
>PUSHBI 8
>SYSCALL PrintF
jsr CS.RUN.MSTAT
jsr CS.RUN.XSTAT
lda #0
sec
rts
*--------------------------------------
CS.RUN.MSTAT >PUSHW L.MSG2
CS.RUN.INIT >LDYAI Mem.Table+S.MEM skip slot 0
>STYA ZPPTR1
>PUSHW L.MSG0
>PUSHBI 0
jsr CS.RUN.PrintF
stz MEM.COUNT
stz USED.COUNT
rts
*--------------------------------------
CS.RUN.SUMMARY >PUSHW L.MSG2
>PUSHB USED.COUNT
>PUSHB MEM.COUNT
>PUSHBI 2
>SYSCALL PrintF
>PUSHW L.MSG3
jmp CS.RUN.PrintF
*--------------------------------------
CS.RUN.MSTAT >PUSHW L.MSG3
>PUSHW.G MemStat+S.MSTAT.MH
>PUSHW.G MemStat+S.MSTAT.MF
>PUSHW.G MemStat+S.MSTAT.ML
@ -186,21 +161,22 @@ CS.RUN.MSTAT >PUSHW L.MSG2
ply
>PUSHYA
>PUSHBI 8
>SYSCALL PrintF
lda #0
sec
rts
jmp CS.RUN.PrintF
*--------------------------------------
CS.RUN.INIT >LDYAI Mem.Table+S.MEM skip slot 0
>STYA ZPPTR1
>LDYA L.MSG0
>SYSCALL PutS
stz MEM.COUNT
stz USED.COUNT
rts
CS.RUN.XSTAT >PUSHW L.MSG3
>PUSHW.G MemStat+S.MSTAT.XH
>PUSHW.G MemStat+S.MSTAT.XF
>PUSHW.G MemStat+S.MSTAT.XL
>LDA.G MemStat+S.MSTAT.XF
sec
>SBC.G MemStat+S.MSTAT.XL
pha
>LDA.G MemStat+S.MSTAT.XF+1
>SBC.G MemStat+S.MSTAT.XL+1
ply
>PUSHYA
>PUSHBI 8
jmp CS.RUN.PrintF
*--------------------------------------
CS.RUN.PRINTMEM >PUSHW L.MSG1
@ -255,9 +231,7 @@ CS.RUN.PRINTMEM >PUSHW L.MSG1
jsr CS.RUN.CHECKPS
bcc .12
>PUSHW L.MSG1.INV
>PUSHBI 0
>SYSCALL PrintF
jsr CS.RUN.PrintINV
.12 >PUSHBI 9
>SYSCALL PrintF
@ -296,7 +270,7 @@ CS.RUN.PRINTMEM.DATA
>PUSHW ZPPTR2 String
>PUSHBI 3
>SYSCALL PrintF
jsr CS.RUN.PrintF
rts
.2 >PUSHW L.MSG1.HEX
@ -310,7 +284,7 @@ CS.RUN.PRINTMEM.DATA
>PUSHBI 16
>SYSCALL PrintF
jsr CS.RUN.PrintF
rts
CS.RUN.PRINTMEM.BIN
@ -321,7 +295,7 @@ CS.RUN.PRINTMEM.BIN
>SYSCALL GetMemPtr
>PUSHYA
>PUSHBI 2
>SYSCALL PrintF
jsr CS.RUN.PrintF
rts
*--------------------------------------
CS.RUN.PRINTMEMX
@ -381,12 +355,10 @@ CS.RUN.PRINTMEMX
jsr CS.RUN.CHECKPS
bcc .12
>PUSHW L.MSG1.INV
>PUSHBI 0
>SYSCALL PrintF
jsr CS.RUN.PrintINV
.12 >PUSHBI 9
>SYSCALL PrintF
jsr CS.RUN.PrintF
rts
*--------------------------------------
CS.RUN.CHECKPS ldx #0
@ -403,6 +375,63 @@ CS.RUN.CHECKPS ldx #0
.8 clc
rts
*--------------------------------------
CS.RUN.CheckStop
lda bSTOP
beq .2
.1 >SLEEP
>SYSCALL GetChar
bcs .9
cmp #3 Ctrl-C
beq .9 CS
stz bSTOP
clc
rts
.2 ldy #S.PS.hStdIn
lda (pPS),y
>SYSCALL FEOF
bcs .9
tay
bne .8 no char
>SYSCALL GetChar
bcs .9
cmp #3 Ctrl-C
beq .9 CS
cmp #$13 Ctrl-S
bne .8
dec bSTOP
.8 clc
.9 rts
*--------------------------------------
CS.RUN.PrintINV >PUSHW L.MSG1.INV
>PUSHBI 0
>SYSCALL PrintF
rts
*--------------------------------------
CS.RUN.PrintF >SYSCALL PrintF
bcs .9
inc LINE.COUNT
lda LINE.COUNT
cmp #23
bcc .8
dec bSTOP
stz LINE.COUNT
.8
.9 rts
*--------------------------------------
CS.DOEVENT sec
rts
*--------------------------------------
@ -416,18 +445,18 @@ ZPCode sta SETREADAUX
rts
ZPCodeLen .EQ *-ZPCode
*--------------------------------------
MSG0 .AZ "hMem Flags PID REF PTR LEN BINPATH/DATA"
MSG0 .AZ "hMem Flags PID REF PTR LEN BINPATH/DATA\r\n"
MSG1.INV .AZ "\e[7m"
MSG1 .AZ "$%h %s %3d %3d $%H %5D "
MSG1X .AZ "$%h %s %3d %3d $%H %5D\e[0m\r\n"
MSG1.BIN .AZ "{%s}\e[0m\r\n"
MSG1.STR .AZ "[%03d:%s]\e[0m\r\n"
MSG1.HEX .AZ "?HEX:%h%h.%h%h.%h%h.%h%h.%h%h.%h%h.%h%h.%h%h\e[0m\r\n"
MSG2 .AZ "\r\nAllocated hMem:%d, Total:%d\r\n"
MSG3 .AS "High Memory: $%H\r\n"
MSG1X .AZ "$%h %s %3d %3d $%H %5D\e[0m\r\n"
MSG2 .AZ "Allocated hMem:%d, Total:%d\r\n"
MSG3 .AS "\r\nHigh Memory: $%H\r\n"
.AS "Free ULimit: $%H\r\n"
.AS "Low Memory: $%H\r\n"
.AZ "\r\nFree Memory: %D Bytes.\r\n\r\n"
.AZ "Free Memory: %D Bytes.\r\n\r\n"
MSG.FLAGS .AS "UZXAfcds"
MSG.FLAGSX .AS "UZXAidep"
*--------------------------------------

View File

@ -442,47 +442,37 @@ CORE.ArgV.Add lda #C.SPACE
iny
.1 jsr CORE.GetNextChar
bcs .5
bcs .7
.2 cmp ZPTmpW
bne .3
jsr CORE.GetNextChar
bra .5
bra .7
.3 ldx ZPTmpW
cpx #C.SPACE
bne .40
bne .6
jsr CORE.IsEndCmd
bcc .5
bcc .7
.40 sta (ZPArgVBufPtr),y
.6 sta (ZPArgVBufPtr),y
iny
.4 jsr CORE.GetNextChar
jsr CORE.GetNextChar
bcc .2
.5 lda #0
.7 lda #0
sta (ZPArgVBufPtr),y
>LDYA ZPArgVBufPtr
>STYA ZPArgVBufPrev
>PUSHYA
>PUSHWZ
>PUSHW ZPArgVBufPtr
>SYSCALL Expand
bcs .9
phx
>STYA ZPPtr1
ldy #$ff
.7 iny
lda (ZPPtr1),y
sta (ZPArgVBufPtr),y
bne .7
tya
beq .8 Empty string....
@ -492,9 +482,9 @@ CORE.ArgV.Add lda #C.SPACE
bcc .8
inc ZPArgVBufPtr+1
clc
.8 pla
>SYSCALL FreeMem
.8
.9 rts
*--------------------------------------
CORE.ArgV.Next lda (ZPArgVBufPtr)

View File

@ -226,7 +226,8 @@ CS.RUN.DUMP lda ArgFile
>PUSHW.G StatBuf+S.STAT.GID
>PUSHL.G StatBuf+S.STAT.SIZE
>PUSHL.G StatBuf+S.STAT.BLOCKS
>PUSHBI 12
>PUSHW.G StatBuf+S.STAT.BLKSIZE
>PUSHBI 14
>SYSCALL PrintF
>PUSHW L.MSG.CMATimes
@ -421,7 +422,7 @@ MSG.Mod .AZ "Mod : %s\r\n"
MSG.UIDGIDSIZE .AS "UID : %10D\r\n"
.AS "GID : %10D\r\n"
.AS "Size : %10u\r\n"
.AZ "Blocks : %10u\r\n"
.AZ "Blocks : %10u (%D)\r\n"
MSG.CMATimes .AS "Created : %s\r\n"
.AS "Modified : %s\r\n"
.AZ "Accessed : %s\r\n"

View File

@ -13,6 +13,7 @@ DCLK.START php
lda $C400
stz $C0C0
stz $C0C1
ldy #8
stz $C0C2

View File

@ -330,7 +330,9 @@ LDR.ReadRoot lda LDR.MLIOL.P+1 place boot devnum in globals
bcc .1 if ok, read next block.
.FIN
.8 jmp $800 jmp to "load interpreter" code
.8
* >DEBUG
jmp $800 jmp to "load interpreter" code
.9 ldx #LDR.MSG.ROOTERR
jsr LDR.PrintX
@ -354,9 +356,9 @@ DS121x.DATA1 .EQ idxl
DS121x.DATA2 .EQ A1L
*--------------------------------------
LDR.ClkDevScan jsr LDR.IsIIc
bcc LDR.ClkDevNCLK
bcc LDR.ClkDevNCLK //c only
php
LDR.ClkDevDCLK php
sei
lda $CFFF
@ -374,9 +376,10 @@ LDR.ClkDevScan jsr LDR.IsIIc
ldx #8
.2 sta $C0C3
stz $C0C0
.2 stz $C0C0
sta $C0C3
lsr
dex
bne .2
@ -388,6 +391,8 @@ LDR.ClkDevScan jsr LDR.IsIIc
.4 ldy #8
stz $C0C0
.5 lda $C0C3
lsr
@ -398,6 +403,7 @@ LDR.ClkDevScan jsr LDR.IsIIc
dex
bne .4
stz $C0C0
pla
sta $C0C3
@ -408,12 +414,12 @@ LDR.ClkDevScan jsr LDR.IsIIc
.6 lda DS121x.DATA1-1,x
cmp DS121x.ValidLO-1,x
bcc LDR.ClkDevNCLK
bcc .9
cmp DS121x.ValidHI-1,x
bcc .7
bne LDR.ClkDevNCLK
bne .9
.7 dex
bne .6
@ -424,10 +430,10 @@ LDR.ClkDevScan jsr LDR.IsIIc
ldx PAKME.DCLK
ldy PAKME.DCLK+1
jmp LDR.SetupCLK
*--------------------------------------
LDR.ClkDevNCLK cld
php
.9 cld
*--------------------------------------
LDR.ClkDevNCLK php
sei
lda RDCXROM

View File

@ -275,46 +275,43 @@ CS.RUN.DumpFile >PUSHYA
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL FOpen
bcs .9
bcs .99
stx ZPhFile
>LDYAI 256
>SYSCALL GetMem
bcs .99
bcs .9
>STYA ZPBufPtr
stx ZPhBuf
.1 >PUSHB ZPhFile
>PUSHW ZPBufPtr
>PUSHWI 256
>PUSHWI 255
>SYSCALL FGetS
bcs .7
bcs .8
>PUSHW ZPBufPtr
>PUSHWZ
>PUSHW ZPBufPtr
>SYSCALL Expand
bcc .2
.99 php
pha
jsr .8
pla
plp
.9 rts
.2 phx
>LDYA ZPBufPtr
>SYSCALL PutS
pla
>SYSCALL FreeMem
bra .1
.7 lda ZPhBuf
.8 lda ZPhBuf
>SYSCALL FreeMem
clc
.8 lda ZPhFile
.9 php
pha
lda ZPhFile
>SYSCALL FClose
rts
pla
plp
.99 rts
*--------------------------------------
CS.DOEVENT sec
rts

View File

@ -6,7 +6,7 @@ NEW
.TF sbin/networkd
*--------------------------------------
LIB.MAX .EQ 4
DBG .EQ 2
DBG .EQ 0
*--------------------------------------
.INB inc/macros.i
.INB inc/a2osx.i
@ -21,10 +21,10 @@ DBG .EQ 2
.DUMMY
.OR ZPBIN
ZS.START
pNETCFG .BS 2
pBuf .BS 2
pNETCFG .BS 2
hEtcNetwork .BS 1
hLineBuf .BS 1
hBuf .BS 1
hFrameIn .BS 1
ZS.END .ED
*--------------------------------------
@ -41,7 +41,7 @@ CS.START cld
.DO DBG=1
.DA #128 Stack Size
.ELSE
.DA #64 Stack Size
.DA #32 Stack Size
.FIN
.DA #ZS.END-ZS.START Zero Page Size
.DA 0
@ -61,7 +61,6 @@ L.MSG.OK .DA MSG.OK
L.MSG.ERR .DA MSG.ERR
L.DEVNAME .DA DEVNAME
L.IOCTL .DA IOCTL
L.DCB.NIC .DA DCB.NIC
L.ETCNETWORK .DA ETCNETWORK
.DO DBG=1
L.MSG.DBG .DA MSG.DBG
@ -70,18 +69,46 @@ L.MSG.DBG.REJECT .DA MSG.DBG.REJECT
.DA 0
*--------------------------------------
CS.INIT lda DevID
bne .99
bne .8
jsr CS.INIT.DEV
bcs .9
>LDYAI 64
>SYSCALL GetMem
bcs .99
jsr CS.INIT.LIBS
bcs .9
>STYA pBuf
stx hBuf
jsr CS.INIT.CONF
.9 rts
>STYA IOCTL+S.IOCTL.BUFPTR for CS.INIT.DEV
jsr CS.INIT.DEV
bcs .90
.99 >LDYA L.MSG.RUNNING
lda LibCnt
.1 inc
>SYSCALL ArgV
bcs .2
jsr CS.INIT.LIB
bcs .90
inc LibCnt
lda LibCnt
cmp #LIB.MAX
bne .1
.2 jsr CS.INIT.CONF
.90 php
pha
lda hBuf
>SYSCALL FreeMem
pla
plp
.99 rts
.8 >LDYA L.MSG.RUNNING
>SYSCALL PutS
lda #0
sec
@ -110,24 +137,22 @@ CS.INIT.DEV >PUSHW L.DEVNAME
>PUSHBI 2
>SYSCALL PrintF
>LDYA L.DCB.NIC
>STYA IOCTL+S.IOCTL.BUFPTR
lda #S.IOCTL.S.GETDCB
sta IOCTL+S.IOCTL.S
>PUSHB DevID
>PUSHBI IOCTL.STATUS
ldx #IOCTL.STATUS
*--------------------------------------
CS.IOCTL lda DevID
>PUSHA
txa
>PUSHA
>PUSHW L.IOCTL
>SYSCALL IOCTL
rts
*--------------------------------------
CS.INIT.LIBS lda LibCnt
.1 inc
>SYSCALL ArgV
bcs .8
phy
* pBuf = DCB.NIC
*--------------------------------------
CS.INIT.LIB phy
pha
>PUSHW L.MSG.LIB
pla
@ -141,18 +166,44 @@ CS.INIT.LIBS lda LibCnt
>SYSCALL LoadLib
jsr CS.RUN.CheckErr
bcs CS.INIT.LIBS.9
bcs .9
ldy LibCnt
sta hLIBs,y
tay
ldx #LIBNET.GETCFG
jsr A2osX.LIBCALL
bcs CS.INIT.LIBS.9
bcs .9
>STYA pNETCFG
jsr CS.INIT.SETUP.NETCFG
lda DevID
ldy #S.NETCFG.DevID
sta (pNETCFG),y
ldy #S.DCB.NIC.FLAGS
lda (pBuf),y
ldy #S.NETCFG.DevFlags
sta (pNETCFG),y
ldx #6
ldy #S.DCB.NIC.MAC
.2 lda (pBuf),y
pha
iny
dex
bne .2
ldx #6
ldy #S.NETCFG.MAC+5
.3 pla
sta (pNETCFG),y
dey
dex
bne .3
>PUSHW pNETCFG
@ -161,59 +212,25 @@ CS.INIT.LIBS lda LibCnt
ldx #LIBNET.SETCFG
jsr A2osX.LIBCALL
bcs CS.INIT.LIBS.9
inc LibCnt
lda LibCnt
cmp #LIB.MAX
bne .1
* clc
.8 clc
CS.INIT.LIBS.9 rts
.9 rts
*--------------------------------------
CS.INIT.SETUP.NETCFG
lda DevID
ldy #S.NETCFG.DevID
sta (pNETCFG),y
iny S.NETCFG.DevFlags
lda DCB.NIC+S.DCB.NIC.FLAGS
sta (pNETCFG),y
ldx #5
ldy #S.NETCFG.MAC+5
.2 lda DCB.NIC+S.DCB.NIC.MAC,x
sta (pNETCFG),y
dey
dex
bpl .2
rts
*--------------------------------------
CS.INIT.CONF >LDYAI 64
>SYSCALL GetMem
bcs CS.INIT.LIBS.9
>STYA pBuf
stx hLineBuf
>PUSHW L.ETCNETWORK
CS.INIT.CONF >PUSHW L.ETCNETWORK
>PUSHBI O.RDONLY+O.TEXT
>PUSHBI S.FI.T.TXT
>PUSHWZ
>SYSCALL FOpen
bcs .98
bcs .9
sta hEtcNetwork
.1 >PUSHB hEtcNetwork
>PUSHW pBuf
>PUSHWI 64
>PUSHWI 63
>SYSCALL FGetS
bcs .80
bcs .8
>PUSHW L.MSG.EXEC
>PUSHW pBuf
@ -227,25 +244,15 @@ CS.INIT.CONF >LDYAI 64
>SLEEP
bra .1
.98 pha
jsr .81
pla
sec
rts
.80 lda hEtcNetwork
.8 lda hEtcNetwork
>SYSCALL FClose
.81 lda hLineBuf
>SYSCALL FreeMem
* clc
rts
.9 rts
*--------------------------------------
CS.RUN >PUSHB DevID
>PUSHBI IOCTL.READ
>PUSHW L.IOCTL
>SYSCALL IOCTL
CS.RUN ldx #IOCTL.READ
jsr CS.IOCTL
bcs .8 No Frame
sta hFrameIn
@ -288,12 +295,12 @@ CS.RUN >PUSHB DevID
.2 .DO DBG=1
jsr CS.RUN.FILTER
bcs .33
>LDYA L.MSG.DBG.REJECT
>SYSCALL puts
.33 .FIN
lda hFrameIn
>SYSCALL FreeMem
jmp CS.RUN
@ -305,8 +312,10 @@ CS.RUN >PUSHB DevID
CS.RUN.FILTER lda (pBuf)
cmp #$ff
beq .9
dec
beq .9
ldy #S.ETH.EII.TYPE+1
lda (pBuf),y
bne .9
@ -370,10 +379,8 @@ CS.QUIT ldx #0
.7 lda DevID
beq .8
>PUSHA
>PUSHBI IOCTL.CLOSE
>PUSHWZ
>SYSCALL IOCTL
ldx #IOCTL.CLOSE
jsr CS.IOCTL
.8 clc
rts
@ -385,8 +392,10 @@ MSG.DEV.KO .AZ "NETWORKD:No Device Found, exiting."
MSG.DEV.OK .AZ "NETWORKD:Bound To Device : %s\r\n"
MSG.LIB .AZ "NETWORKD:Loading %s..."
MSG.EXEC .AZ "NETWORKD:Running %s..."
*--------------------------------------
MSG.OK .AZ "[OK]"
MSG.ERR .AZ "[%h]\r\n"
*--------------------------------------
ETCNETWORK .AZ "${BOOT}etc/network"
.DO DBG=1
MSG.DBG .AS "FRM ETH:%h%h%h%h%h%h.%h%h%h%h%h%h.%h%h\r\n"
@ -400,7 +409,6 @@ LibCnt .BS 1
hLIBs .BS LIB.MAX+1 for ending 0 if MAX libs
DEVNAME .AZ "/dev/eth1"
IOCTL .BS S.IOCTL
DCB.NIC .BS S.DCB.NIC
*--------------------------------------
.DUMMY
.OR 0

View File

@ -36,20 +36,22 @@ ExcludeMatch sec
tax
beq FilterMatch.RTS No filter....exit with CS excluded
beq FilterMatch.RTS No filter....exit with passed carry
>SYSCALL GetMemPtr
>STYA ZPPtr2
ldy #S.STAT.FSID
lda (ZPFileStat),y
tax if 0, Regular ProDOS....
lda (ZPFileStat),y if 0, Regular ProDOS....
pha save FSID for comapring later
bne .10
>LDYA ZPPtr2 ... so CI compare
>SYSCALL StrUpr
.10 lda (ZPPtr2) Get first pattern byte
.10 plx get back FSID
lda (ZPPtr2) Get first pattern byte
beq .8 Match always if empty
ldy #0
@ -216,7 +218,7 @@ InitSrcDirYA >PUSHYA
>STA.G hFilter
lda #0
sta (ZPPtr2)
sta (ZPPtr2) cut path at last '/' to remove wildcards
.5 >LDYAI 256
>SYSCALL GetMem Get a 256 buffer to store BasePath

View File

@ -61,8 +61,10 @@ K.ArgV tax save requested arg#
.1 lda (ZPPtr2) end of ARGV[] ?
beq .9 yes, not found....
dex
bmi .7
.3 jsr SHARED.GetCP2 skip str
bne .3
@ -115,6 +117,7 @@ K.Arg2ArgV >PULLW ZPPtr2 Get target buffer
.3 cmp #C.SPACE
bne .6 regular char ...store...
tya
bmi .4 between quotes... store space...

View File

@ -202,8 +202,7 @@ BIN.Load.1 >PUSHWI K.Buf256
jsr BIN.CompCSEndYA
jsr BIN.RelExe
>LDYAI K.Buf256 get back bin path
jsr K.strdup make a copy of this string
jsr STRING.DupBuf256 get back bin path & jsr K.strdup make a copy of this string
bcs BIN.Load.Free
jsr Mem.SetOwnerPS0 Make BINPATH owned by PS0

View File

@ -270,7 +270,7 @@ DEV.MkFDy sta .8+1 A = S.FD.T
>STYA pFD
stx IO.hFD
pha
jsr Mem.SetOwnerPS0
txa
@ -282,7 +282,7 @@ DEV.MkFDy sta .8+1 A = S.FD.T
.8 lda #$ff SELF MODIFIED
sta (pFD)
pla Y,A = pFD, X = hFILE
>LDYA pFD Y,A = pFD, X = hFILE
* clc
.9 rts
@ -292,14 +292,14 @@ DEV.GetFreeFD lda #0
DEV.GetFD ldx #1
.1 cmp hFDs-1,x
beq .8
beq DEV.GetFD.8
inx
cpx #K.hFD.MAX+1
bne .1
tax
beq .9
beq DEV.GetFD.8
lda #E.INVH
.HS 2C BIT ABS
@ -307,16 +307,13 @@ DEV.GetFD ldx #1
* sec
rts
.8 clc
DEV.GetFD.8 clc
rts
*--------------------------------------
DEV.hFDFree lda IO.hFD
beq .8
beq DEV.GetFD.8
jmp K.FreeMem
.8 clc
rts
*--------------------------------------
MAN
SAVE usr/src/sys/kernel.s.dev

View File

@ -341,7 +341,10 @@ FS.ClrStat ldx #S.STAT-1
lda A2osX.FSID
sta K.S.STAT+S.STAT.FSID
lda #2
sta K.S.STAT+S.STAT.BLKSIZE+1 = 512 bytes
rts
*--------------------------------------
FS.GFI.Src .DA #S.FI.T,#S.FI.AUXTYPE,#S.FI.AUXTYPE+1

View File

@ -291,7 +291,9 @@ MEM.NextSlot lda ZPMemMgrSPtr
adc #S.MEM
sta ZPMemMgrSPtr
bcc .8
inc ZPMemMgrSPtr+1
.8 rts
*--------------------------------------
MEM.Init0 phx
@ -351,6 +353,7 @@ K.FreeMem.ERR >PUSHWI .1
*--------------------------------------
K.FreeMem tay
beq K.FreeMem.ERR Slot=0, reserved by Kernel
cmp Mem.LastSlot
bcc .10

View File

@ -11,26 +11,8 @@ NEW
* ## RETURN VALUE
* A = Child PSID
*\--------------------------------------
K.ExecL >PULLB PS.Flags
>LDYAI 256
jsr K.GetMem
bcs .99
stx .90+1
>STYA PS.ArgV
>PUSHYA
jsr K.Arg2ArgV cmdline on stack, push buffer
bcs .9
jsr PS.Exec
.9 php
pha
.90 lda #$ff SELF MODIFIED
jsr K.FreeMem
pla
plp
.99 rts
K.ExecL clc
.HS B0 BCS
*/--------------------------------------
* # ExecV
* ## C / CSH
@ -42,11 +24,58 @@ K.ExecL >PULLB PS.Flags
* ## RETURN VALUE
* A = Child PSID
*\--------------------------------------
K.ExecV >PULLB PS.Flags
>PULLW PS.ArgV
K.ExecV sec
php
>PULLB PS.Flags
>LDYAI 256
jsr K.GetMem
bcs .99
stx .90+1
>STYA PS.ArgV
plp
bcc .2
>PULLW ZPPtr1 pull arg[] from stack
ldy #$FF copy to target buffer
.1 iny
lda (ZPPtr1),y
sta (PS.ArgV),y
bne .1
iny
lda (ZPPtr1),y
sta (PS.ArgV),y
bne .1
bra .8
.2 >PUSHW PS.ArgV
jsr K.Arg2ArgV cmdline on stack, push target buffer
bcs .9
.8 jsr PS.Exec
.9 php
pha
.90 lda #$ff SELF MODIFIED
jsr K.FreeMem
pla
plp
rts
.99 plp
sec
>RET 2
*--------------------------------------
PS.Exec jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem
bcs .9
sta .8+1
stz K.IOBuf If !=0 after PS.Load, it's a script
@ -141,14 +170,10 @@ K.Fork jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem
ldy #S.PS.hARGV
sta (PS.NewPSPtr),y
dey
lda (ZPPtr1),y S.PS.ARGC
sta (PS.NewPSPtr),y
ldy #S.PS.ARGC
sta (PS.NewPSPtr),y
iny S.PS.hARGV
txa
dey S.PS.ARGC
lda (ZPPtr1),y
sta (PS.NewPSPtr),y
ldy #S.PS.A
@ -228,6 +253,7 @@ PS.CreateChild ldx #0
lda CORE.LastPSID
ldy #S.PS.PID
sta (PS.NewPSPtr),y
lda #S.PS.F.NOHUP
bit PS.Flags
beq .5
@ -244,7 +270,7 @@ PS.CreateChild ldx #0
dey #S.PS.PPID
sta (PS.NewPSPtr),y
ldy #S.PS.hCWD copy hPREFIX...
ldy #S.PS.hCWD copy hPREFIX...
lda (ZPPtr1),y
jsr K.GetMemPtr
@ -290,8 +316,10 @@ PS.CreateChild ldx #0
lda #S.PS.F.HOLD
bit PS.Flags
beq .8
ora (ZPPtr1)
sta (ZPPtr1) HOLD parent PS
lda CORE.LastPSID
ldy #S.PS.CPID
sta (ZPPtr1),y
@ -324,8 +352,8 @@ PS.Load ldy #$ff
>LDYA PS.ArgV found /, some path specified, no search
jsr PS.STAT.YA
bcc .6 REAL path in K.Buf256
.99 rts
rts file not found
.2 >LDYA PS.ArgV
@ -334,7 +362,7 @@ PS.Load ldy #$ff
>LDYA PS.ArgV
jsr PS.Find.CWD
bcs .99
bcs PS.RTS
.6 lda K.S.STAT+S.STAT.P.TYPE
cmp #S.FI.T.BIN
@ -358,7 +386,7 @@ PS.Load ldy #$ff
>LDYAI PS.SHUTDOWN
jsr PS.Find.PATH
bcs .99
bcs PS.RTS
.8 jmp PS.LoadBIN
*--------------------------------------
@ -389,6 +417,7 @@ PS.Load.SCRIPT jsr PS.Buf2IO
.3 lda K.IOBuf+128,y Check HEADER= "#!/"
cmp PS.Load.HEADER,y
bne PS.Load.IBIN
iny
cpy #3
bne .3
@ -404,14 +433,12 @@ PS.Load.SCRIPT jsr PS.Buf2IO
sta K.Buf256-1,x K.Buf256 = "${ROOT}BIN/SHELL\0"
.5 >LDYAI K.Buf256
jsr PS.STAT.YA
.5 jsr PS.STAT.256
bcs PS.RTS
lda K.S.STAT+S.STAT.P.TYPE
cmp #S.FI.T.BIN
beq PS.LoadBIN
jmp PS.Load.IBIN
bne PS.Load.IBIN
*--------------------------------------
PS.LoadBIN jsr BIN.Load K.Buf256= "${ROOT}BIN/SH\0", K.IOBuf=/.../SCRIPT
bcs .9
@ -420,13 +447,13 @@ PS.LoadBIN jsr BIN.Load K.Buf256= "${ROOT}BIN/SH\0", K.IOBuf=/.../SCRIPT
phy
ldy #S.PS.ZP.CODE+1
sta (PS.NewPSPtr),y save pCode HI...
sta (PS.NewPSPtr),y save pCode HI...
dey
pla
sta (PS.NewPSPtr),y save pCode LO...
sta (PS.NewPSPtr),y save pCode LO...
txa
ldy #S.PS.hCS
sta (PS.NewPSPtr),y save CS hMem in S.PS
sta (PS.NewPSPtr),y save CS hMem in S.PS
* jsr MEM.GetMemByID
* jsr Mem.SetOwner Set Ownership
@ -434,6 +461,7 @@ PS.LoadBIN jsr BIN.Load K.Buf256= "${ROOT}BIN/SH\0", K.IOBuf=/.../SCRIPT
ldy #H.BIN.F Get Bin S.PS.F
lda (ZPPtr4),y
beq .1
ldy #S.PS.F update PS S.PS.F
ora (PS.NewPSPtr),y
sta (PS.NewPSPtr),y
@ -443,7 +471,6 @@ PS.LoadBIN jsr BIN.Load K.Buf256= "${ROOT}BIN/SH\0", K.IOBuf=/.../SCRIPT
tax
dey
ora (ZPPtr4),y
beq .2 DS.SIZE=0...
lda (ZPPtr4),y
@ -510,9 +537,7 @@ PS.LoadGetHeader
>SYSCALL2 fopen
bcs .9
sta .1+1
>PUSHA
>PUSHA a = hFILE
>PUSHWI K.IOBuf+128
>PUSHWI 128
@ -520,7 +545,7 @@ PS.LoadGetHeader
php
pha
.1 lda #$FF SELF MODIFIED
lda IO.hFILE set by fopen / fread
>SYSCALL2 fclose
pla
plp
@ -590,16 +615,15 @@ PS.AddArgV ldy #$ff In both cases, remove ARGV[0]
ldy #S.PS.ARGC
sta (PS.NewPSPtr),y
>LDYA PS.ArgSize Add 1 for ending 0
iny
bne .5
inc
.5 iny Add ONE MORE ?????!!!!
bne .51
inc
.51 jsr K.GetMem
lda PS.ArgSize
clc
adc #2 Add 2 for ending \0\0
tay
lda PS.ArgSize+1
adc #0
jsr K.GetMem
bcs .9
>STYA ZPPtr2 Target Buffer
@ -607,6 +631,8 @@ PS.AddArgV ldy #$ff In both cases, remove ARGV[0]
ldy #S.PS.hARGV
sta (PS.NewPSPtr),y
jsr Mem.SetOwner Set Ownership
>LDYAI K.Buf256
jsr PS.AddYAToStrV
lda K.IOBuf
@ -716,7 +742,9 @@ K.Kill.2 ldy #S.PS.hSession
lda (ZPPtr1),y
beq .12
phx
jsr K.FreeMem
plx
.12 dex
bpl .11
@ -738,7 +766,9 @@ K.Kill.2 ldy #S.PS.hSession
inx
cpx CORE.PSCount
bne .2
bra *
.3 stz PS.Table.PID,x
lda PS.TABLE.hPS,x
stz PS.TABLE.hPS,x
@ -957,9 +987,8 @@ PS.Find.CWD >STYA PS.Find.4+1 filename to find
>STYA PS.Find.2+1
stz PS.Find.98+1
bra PS.Find
*--------------------------------------
PS.Find.LIB ldx #0
.HS 2C BIT ABS
PS.Find.DRV ldx #2
@ -1009,8 +1038,7 @@ PS.Find.4 lda $ffff,y Self Modified, Append Filename...
inx
bra PS.Find.4
PS.Find.5 >LDYAI K.Buf256
jsr PS.STAT.YA
PS.Find.5 jsr PS.STAT.256
bcs PS.Find.1 Failed...retry next path...
lda K.S.STAT+S.STAT.MODE+1
@ -1022,7 +1050,7 @@ PS.Find.5 >LDYAI K.Buf256
clc
PS.Find.RTS rts
PS.Find.98 lda #$ff SELF MODIFIED : Discard Search list
PS.Find.98 lda #$ff SELF MODIFIED : Discard Search list
beq .1
jsr K.FreeMem
@ -1040,6 +1068,8 @@ PS.Buf2IO ldx #$ff
rts
*--------------------------------------
PS.STAT.256 >LDYAI K.Buf256
PS.STAT.YA >PUSHYA
>PUSHWI K.S.STAT
>SYSCALL2 Stat

View File

@ -69,8 +69,8 @@ K.StrToUL clc Unsigned
jsr K.AToL.I
bcs K.StrToUL.rts
* clc
* clc
adc ZPPtr2
sta (ZPPtr1)
lda #0
@ -103,7 +103,7 @@ K.AToL.I jsr MATH.Dec2ACC32
dex
bpl .3
tya Y = A = Count processed
tya Y = A = Count processed
* clc
.9
rts
@ -159,8 +159,8 @@ K.realpath ldy #3
>STYA ZPPtr1
stx .99+1 save expanded buffer hMem
>PULLW K.realpath.DST resolvedpath
>PULLW K.realpath.DST resolved path
inc pStack discard path
inc pStack
@ -200,7 +200,7 @@ K.realpath ldy #3
* X=LEN, K.Buf256 = /dir1/./../file(/)\0
*--------------------------------------
ldx #0 will skip leading /
.5 ldy #0 reset dot counter=0
.6 inx
@ -228,7 +228,7 @@ K.realpath ldy #3
bra .80
.9 dey "/.." ?
bne .99 "/..." ??!!...syntax error
bne .99 "/..." ??!!...syntax error
dex
dex
@ -239,7 +239,7 @@ K.realpath ldy #3
jsr K.RealPath.RemoveAtX remove "/.."
.10 dex
lda K.Buf256,x go to "/dir"
lda K.Buf256,x go to "/dir"
cmp #'/'
bne .10
@ -257,11 +257,11 @@ K.realpath ldy #3
>LDYAI MLI.MAXPATH+1
jsr K.getmem
bcs .90
.85 >STYA ZPPtr1
ldy #$ff
.83 iny
lda K.Buf256,y
sta (ZPPtr1),y
@ -315,8 +315,11 @@ K.RealPath.RemoveAtX
* `>PUSHW expanded`
* `>SYSCALL expand`
* ## RETURN VALUE
* Y,A = PTR to Expanded String
* X = hMem to Expanded String (C-String)
* if expanded == null
* Y,A = PTR to Expanded String
* X = hMem to Expanded String
* if expanded != null
* Y,A = strlen
*\--------------------------------------
K.Expand ldy #2
lda (pStack),y
@ -324,12 +327,12 @@ K.Expand ldy #2
iny
lda (pStack),y
ply
jsr K.strdup
bcc .1
jmp .9
.1 phx Save temp string...
>STYA TXTPTR
@ -341,7 +344,7 @@ K.Expand ldy #2
beq .80
jsr SHARED.TXTPTRn
.11 cmp #'''
bne .21
@ -364,8 +367,8 @@ K.Expand ldy #2
lda #'$' End of string, output $
bra .22
.24
.24
* sec
ror ENV.bExp Toggle Expanded flag
stz ENV.VarEndChar
@ -382,7 +385,7 @@ K.Expand ldy #2
.35 jsr SHARED.TXTPTRn skip $x
bra .10
.40 jsr ENV.ExpandStrVar
bcc .70
@ -395,14 +398,14 @@ K.Expand ldy #2
bcs .70
ldx ENV.BufPtr
.51 lda K.Buf256,x
beq .52
inx
bra .51
.52 stx ENV.BufPtr
.70 lda (TXTPTR)
beq .72
@ -411,7 +414,7 @@ K.Expand ldy #2
jsr SHARED.TXTPTRn
bra .70
.72 lda ENV.VarEndChar
.72 lda ENV.VarEndChar
bne .35 skip "}" and loop
bra .10
@ -422,14 +425,35 @@ K.Expand ldy #2
pla discard temp string
jsr K.FreeMem
>LDYAI K.Buf256 dup in case of '' processing
jsr K.strdup
bcs .9
bit ENV.bExp Did we expand something ?
bpl .9
bpl .81
jsr STRING.DupBuf256
bcs .9
jmp .1
.81 ldy #1
lda (pStack),y
beq .83
sta ZPPtr1+1
lda (pStack)
sta ZPPtr1
ldy #$ff
.82 iny
lda K.Buf256,y
sta (ZPPtr1),y
bne .82
* Y = len, A = 0
bra .9
.83 jsr STRING.DupBuf256
.9 >RET 4
*--------------------------------------
ENV.SysVar jsr ZP.IsDigit $0 ... $9 ?
@ -451,7 +475,7 @@ ENV.SysVar jsr ZP.IsDigit $0 ... $9 ?
beq .3
dex
bpl .2
sec
rts
@ -464,14 +488,14 @@ ENV.SysVar jsr ZP.IsDigit $0 ... $9 ?
ENV.SysVarsNum jsr MATH.A2STR10NP
ldy #0
.1 lda FOUTBuf,y
beq ENV.SysVarsNum.8
iny
jsr ENV.AddAToBuf
bra .1
ENV.SysVarsNum.8
clc
rts
@ -544,15 +568,15 @@ ENV.AddYAToBuf >STYA ZPPtr3
*--------------------------------------
ENV.AddP3ToBuf ldx ENV.BufPtr
ldy #$ff
dex
.1 iny
inx
lda (ZPPtr3),y
sta K.Buf256,x
bne .1
stx ENV.BufPtr
rts
*--------------------------------------
@ -562,7 +586,7 @@ ENV.AddAToBuf ldx ENV.BufPtr
rts
*--------------------------------------
ENV.NextEnvP3 jsr ENV.GetP3LenY
tya
sec
adc ZPPtr3

View File

@ -91,6 +91,9 @@ K.StrCpy clc
* CS : error
* A = SYS error code
*\--------------------------------------
STRING.DupBuf256
>LDYAI K.Buf256
K.StrDup >STYA .1+1
>STYA .4+1