mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-12 20:29:41 +00:00
KERNEL:Fixed many memleaks & MEM related problems, FILEENUM BINs: fixes around wildcards search
This commit is contained in:
parent
25c601906e
commit
3007637129
Binary file not shown.
Binary file not shown.
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
*--------------------------------------
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -13,6 +13,7 @@ DCLK.START php
|
|||
lda $C400
|
||||
|
||||
stz $C0C0
|
||||
stz $C0C1
|
||||
|
||||
ldy #8
|
||||
stz $C0C2
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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...
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
|
|
@ -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 ?
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user