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
@ -64,8 +65,8 @@ CS.RUN lda #C.SPACE
cmp #'-'
beq .1
lda ArgCount
sta ArgIndex
lda ArgIndex
sta ArgFile
bra .10
.1 ldy #1
@ -75,10 +76,18 @@ CS.RUN lda #C.SPACE
.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
@ -108,22 +118,15 @@ CS.RUN lda #C.SPACE
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
.8 >LDYAI 256
>SYSCALL GetMem
bcs .9
>STYA ZPBuf
>STYA ZPBufPtr
stx hBuf
lda ArgIndex
lda ArgFile
beq .80
>PUSHW ZPBufPtr
@ -147,7 +150,7 @@ 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
@ -158,8 +161,12 @@ 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
@ -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

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,8 +376,9 @@ LDR.ClkDevScan jsr LDR.IsIIc
ldx #8
.2 sta $C0C3
stz $C0C0
.2 stz $C0C0
sta $C0C3
lsr
dex
@ -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
.8 lda ZPhFile
clc
.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
>LDYAI 64
>SYSCALL GetMem
bcs .99
>STYA pBuf
stx hBuf
>STYA IOCTL+S.IOCTL.BUFPTR for CS.INIT.DEV
jsr CS.INIT.DEV
bcs .9
bcs .90
jsr CS.INIT.LIBS
bcs .9
lda LibCnt
jsr CS.INIT.CONF
.9 rts
.1 inc
>SYSCALL ArgV
bcs .2
.99 >LDYA L.MSG.RUNNING
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
*--------------------------------------
CS.RUN >PUSHB DevID
>PUSHBI IOCTL.READ
>PUSHW L.IOCTL
>SYSCALL IOCTL
.9 rts
*--------------------------------------
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

@ -342,6 +342,9 @@ 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
@ -325,7 +353,7 @@ PS.Load ldy #$ff
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
lda PS.ArgSize
clc
adc #2 Add 2 for ending \0\0
tay
.5 iny Add ONE MORE ?????!!!!
bne .51
inc
lda PS.ArgSize+1
adc #0
.51 jsr K.GetMem
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

@ -159,7 +159,7 @@ 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
@ -315,8 +315,11 @@ K.RealPath.RemoveAtX
* `>PUSHW expanded`
* `>SYSCALL expand`
* ## RETURN VALUE
* if expanded == null
* Y,A = PTR to Expanded String
* X = hMem to Expanded String (C-String)
* X = hMem to Expanded String
* if expanded != null
* Y,A = strlen
*\--------------------------------------
K.Expand ldy #2
lda (pStack),y
@ -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
bit ENV.bExp Did we expand something ?
bpl .81
jsr STRING.DupBuf256
bcs .9
bit ENV.bExp Did we expand something ?
bpl .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 ?

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