A2osX-1.00 PREVIEW : bugfix in BASICFX(cd),CUT

CMD Added XARGS,SED,TERM
This commit is contained in:
burniouf 2025-01-26 15:32:10 +01:00
parent 414ee8b8d9
commit 5678e38be0
9 changed files with 168 additions and 221 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -715,7 +715,7 @@ LA80B lda GP.XCNUM
cmp #25 PREFIX
beq .8
cmp #34 CD
cmp #36 CD
beq .8
lda GP.AllowedBITS+1
@ -1282,7 +1282,6 @@ BS.KW.UNLOCK1 sta GP.FIACCESS
*--------------------------------------
BS.KW.PREFIX lda GP.FoundBITS+1
and #CMDBITS1.SD
bne BS.SETPREFIX
lda GP.FoundBITS

View File

@ -16,14 +16,13 @@ ZS.START
ZPPtr1 .BS 2
ZPBuf .BS 2
ZPBufPtr .BS 2
pFILEtoClose .BS 2
pFILE .BS 2
ArgIndex .BS 1
ArgLine .BS 1
OptionIdx .BS 1
FieldNum .BS 1
FieldNum .BS 1
StartChar .BS 1
EndChar .BS 1
Separator .BS 1
@ -51,12 +50,22 @@ CS.START cld
.DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE
L.MSG.CRLF .DA MSG.CRLF
L.MSG.SPACE .DA MSG.SPACE
.DA 0
*--------------------------------------
CS.INIT clc
rts
*--------------------------------------
CS.RUN lda #C.SPACE
CS.RUN >LDYAI 256
>LIBC Malloc
bcs .99
>STYA ZPBuf
lda #0
sta (ZPBuf)
lda #C.SPACE
sta Separator
.1 jsr CS.RUN.NextArg
@ -64,40 +73,38 @@ CS.RUN lda #C.SPACE
lda (ZPPtr1)
cmp #'-'
beq .2
bne .2
lda ArgIndex
sta ArgLine
bra .1
.2 jsr CS.RUN.CheckOp
jsr CS.RUN.CheckOp
bcc .1 scan for any other args
.98 pha
>LDYA L.MSG.USAGE
.98 >LDYA L.MSG.USAGE
>LIBC PutS
pla
lda #E.SYN
sec
.99 rts
*--------------------------------------
.8 >LDYAI 256
>LIBC Malloc
bcs .99
>STYA ZPBuf
>STYA ZPBufPtr
lda ArgLine
beq .80
.2 lda (ZPBuf)
beq .3
>SS
>PUSHW ZPBufPtr
lda ArgLine
>LIBC ArgV
>PUSHYA
>LIBC StrCpy
>PUSHW ZPBuf
>PUSHW L.MSG.SPACE
>LIBC StrCat
>SR
.3 >SS
>PUSHW ZPBuf
>PUSHW ZPPtr1
>LIBC StrCat
>SR
bcc .1
rts
*--------------------------------------
.8 lda (ZPBuf)
beq .80
jsr CS.RUN.OUT
bcs .99
@ -105,18 +112,17 @@ CS.RUN lda #C.SPACE
sec
rts
*--------------------------------------
.80 jsr CS.RUN.CheckPipe
.80 jsr X.IsPipeIn
bcs .98
>STYA pFILE
*--------------------------------------
CS.RUN.LOOP >SLEEP
>LDYA ZPBuf
>STYA ZPBufPtr
>SS
>PUSHW ZPBuf
>PUSHWI 256
>PUSHW pFILEtoClose
>PUSHW pFILE
>LIBC FGetS
>SR
bcs .8
@ -128,13 +134,17 @@ CS.RUN.LOOP >SLEEP
bcc CS.RUN.LOOP
.8 cmp #MLI.E.EOF
bne .90
bne .9
lda #0
.90 sec
.9 rts
.9 sec
rts
*--------------------------------------
CS.RUN.OUT ldx FieldNum
CS.RUN.OUT >LDYA ZPBuf
>STYA ZPBufPtr
ldx FieldNum
beq CS.RUN.OUT.MN
ldy #$ff
@ -155,6 +165,7 @@ CS.RUN.OUT ldx FieldNum
eor Separator
bne .2
bra .1
.4 jsr CS.RUN.AddYToBufPtr
@ -213,8 +224,10 @@ CS.RUN.OUT.MN ldy #0
.8 ldy StartChar
beq .80
dey
beq .80
jsr CS.RUN.AddYToBufPtr
.80 >LDYA ZPBufPtr
@ -222,15 +235,6 @@ CS.RUN.OUT.MN ldy #0
rts
*--------------------------------------
CS.RUN.NextArg inc ArgIndex
lda ArgIndex
>LIBC ArgV
bcs .9
>STYA ZPPtr1
.9 rts
*--------------------------------------
CS.RUN.CheckOp ldy #1
lda (ZPPtr1),y
@ -245,7 +249,7 @@ CS.RUN.CheckOp ldy #1
.98 lda #E.SYN
sec
.99 rts
.3 txa
lsr
beq .98 -H
@ -274,45 +278,18 @@ CS.RUN.CheckOp ldy #1
tya
ldx OptionIdx
sta FieldNum-1,x
clc
rts
*--------------------------------------
CS.RUN.CheckPipe
ldy #S.PS.pStdIn
jsr A2osX.GetPSy
pha
iny
jsr A2osX.GetPSy
ply
CS.RUN.NextArg inc ArgIndex
lda ArgIndex
>LIBC ArgV
bcs .9
>STYA ZPPtr1
>LIBC FileNo
bcs .99
>SS
>PUSHYA
>PUSHEA.G STATBUF
>LIBC FStat
>SR
bcs .99
>LDA.G STATBUF+S.STAT.MODE+1
and #$F0
cmp /S.STAT.MODE.FIFO
bne .98
>LDYA ZPPtr1
>STYA pFILEtoClose
clc
rts
.98 lda #E.SYN
sec
.99 rts
.9 rts
*--------------------------------------
CS.RUN.AddYToBufPtr
tya
@ -324,7 +301,7 @@ CS.RUN.AddYToBufPtr
inc ZPBufPtr+1
.8 rts
*--------------------------------------
CS.QUIT >LDYA pFILEtoClose
CS.QUIT >LDYA pFILE
beq .1
>LIBC FClose Close the pipe
@ -339,6 +316,8 @@ CS.QUIT >LDYA pFILEtoClose
*--------------------------------------
CS.SIG sec
rts
*--------------------------------------
.INB usr/src/shared/x.ispipein.s
*--------------------------------------
CS.END .EQ *
*--------------------------------------
@ -352,6 +331,7 @@ MSG.USAGE .CS 'Usage : CUT "line of text"\r\n'
.CS " -N nn : Output Ending at nn\r\n"
.CS " -S ch : Change default SPACE separator to 'ch'"
MSG.CRLF .CZ "\r\n"
MSG.SPACE .CZ " "
*--------------------------------------
ID.END .EQ *
*--------------------------------------

View File

@ -56,7 +56,7 @@ CS.START cld
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.SIG
.DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE
L.MSG.Init .DA MSG.Init
@ -125,32 +125,9 @@ CS.RUN inc ArgCount
.8 lda pFile+1
bne .80
ldy #S.PS.pStdIn
jsr A2osX.GetPSy
pha
iny
jsr A2osX.GetPSy
ply
>STYA ZPPtr1
>LIBC FileNo
bcs .9
>SS
>PUSHYA
>PUSHEA.G STATBUF
>LIBC FStat
>SR
bcs .9
jsr X.IsPipeIn
bcs .99
>LDA.G STATBUF+S.STAT.MODE+1
and #$F0
cmp /S.STAT.MODE.FIFO
bne .71
>LDYA ZPPtr1
>STYA pFile
.80 >LDYAI 256
@ -324,8 +301,10 @@ CS.QUIT >LDYA ZPBufPtr
CS.INIT clc
rts
*--------------------------------------
CS.DOEVENT sec
CS.SIG sec
rts
*--------------------------------------
.INB usr/src/shared/x.ispipein.s
*--------------------------------------
CS.END .EQ *
*--------------------------------------
@ -345,7 +324,6 @@ ID.END .EQ *
*--------------------------------------
.DUMMY
.OR 0
STATBUF .BS S.STAT
DS.END .ED
*--------------------------------------

View File

@ -18,8 +18,7 @@ ArgPattern .BS 1
ZPPtr1 .BS 2
ZPPatternPtr .BS 2
ZPBufPtr .BS 2
hFile .BS 1
hBuf .BS 1
pFile .BS 2
LineNum .BS 2
char .BS 1
delimiter .BS 1
@ -33,40 +32,36 @@ ZS.END .ED
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA #0 S.PS.F.EVENT
.DA #$61 6502,Level 1 (65c02)
.DA #2 BIN Layout Version 2
.DA #0 S.PS.F.EVENT
.DA #0
.DA CS.END-CS.START Code Size (without Constants)
.DA DS.END-DS.START Data Segment Size
.DA #16 Stack Size
.DA #ZS.END-ZS.START Zero Page Size
.DA 0
.DA CS.END
.DA ID.END
.DA DS.END
.DA #32 Stack Size
.DA #ZS.END-ZS.START Zero Page Size
*--------------------------------------
* Relocation Table
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.SIG
.DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE
L.MSG.CRLF .DA MSG.CRLF
.DA 0
*--------------------------------------
CS.INIT clc
rts
*--------------------------------------
CS.RUN jsr CS.RUN.CheckArgs
bcs CS.RUN.LOOP.RTS
bcs .99
stz LineNum
stz LineNum+1
.1 >SLEEP
CS.RUN.LOOP >SLEEP
>PUSHB hFile
>PUSHW ZPBufPtr
>PUSHWI 256
>PUSHW pFile
>LIBC FGetS
bcs .9
@ -77,16 +72,17 @@ CS.RUN.LOOP >SLEEP
.2 jsr CS.RUN.PRINT
bcc CS.RUN.LOOP
bcc .1
rts
.9 cmp #MLI.E.EOF
bne .99
bne .98
lda #0 Exit with no Error
.99 sec
CS.RUN.LOOP.RTS rts
.98 sec
.99 rts
*--------------------------------------
CS.RUN.CheckArgs
jsr CS.RUN.NextArg
@ -105,16 +101,17 @@ CS.RUN.CheckArgs
>STYA ZPPatternPtr
jsr CS.RUN.SEDParser
bcs .97
bra CS.RUN.CheckArgs
.11 lda hFile
.11 lda pFile+1
bne .97
>LDYA ZPPtr1
jsr CS.RUN.OPEN
bcs .9
sta hFile
>STYA pFile
bra CS.RUN.CheckArgs
.1 ldy #1
@ -139,30 +136,19 @@ CS.RUN.CheckArgs
sta bIgnoreCase-1,x
bra CS.RUN.CheckArgs
.4 lda hFile
.4 lda pFile+1
bne .80
ldy #S.PS.hStdIn
lda (pPS),y
tay
ldx FILEs.hFD-1,y
lda FDs.pLO-1,x
sta ZPPtr1
lda FDs.pHI-1,x
sta ZPPtr1+1
jsr X.IsPipeIn
bcs .97
lda (ZPPtr1)
cmp #S.FD.T.PIPE
bne .97
sty hFile
>STYA pFile
.80 >LDYAI 256
>LIBC GetMem
>LIBC Malloc
bcs .9
>STYA ZPBufPtr
stx hBuf
* clc
@ -171,9 +157,8 @@ CS.RUN.CheckArgs
.97 lda #E.SYN
.98 pha
>PUSHW L.MSG.USAGE
>PUSHBI 0
>LIBC PrintF
>LDYA L.MSG.USAGE
>LIBC PutS
pla
sec
rts
@ -242,7 +227,7 @@ CS.RUN.OPEN >PUSHYA
>LIBC FOpen
bcs .9
sta hFile
>STYA pFile
.9 rts
*--------------------------------------
@ -346,35 +331,38 @@ CS.RUN.toUpper bit bIgnoreCase
.9 rts
*--------------------------------------
CS.QUIT lda hFile
CS.QUIT >LDYA pFile
beq .1
>LIBC FClose
.1 lda hBuf
.1 >LDYA ZPBufPtr
beq .8
>LIBC FreeMem
>LIBC Free
.8 clc
rts
*--------------------------------------
CS.DOEVENT sec
rts
CS.SIG sec
rts
*--------------------------------------
CS.END
.INB usr/src/shared/x.ispipein.s
*--------------------------------------
CS.END .EQ *
*--------------------------------------
OptionList .AS "HhIi"
OptionList.Cnt .EQ *-OptionList
*--------------------------------------
MSG.USAGE .CS "Usage : SED [-I] s/pattern/replacement/ <File>\r\n"
.CS " or : CMD|SED [-I] s/pattern/replacement/\r\n"
.CS " -I : Ignore Case"
MSG.CRLF .CZ "\r\n"
.CZ " -I : Ignore Case"
*--------------------------------------
ID.END .EQ *
*--------------------------------------
.DUMMY
.OR 0
DS.START
STATBUF .BS S.STAT
DS.END .ED
*--------------------------------------
MAN

View File

@ -7,7 +7,6 @@ NEW
*--------------------------------------
.INB inc/macros.i
.INB inc/a2osx.i
.INB inc/kernel.i
.INB inc/mli.i
.INB inc/mli.e.i
*--------------------------------------
@ -18,11 +17,11 @@ ArgIndex .BS 1
ArgPattern .BS 1
ZPPtr1 .BS 2
ZPCommandPtr .BS 2
ZPBufPtr .BS 2
ZPLineBuf .BS 2
ZPCmdBuf .BS 2
hFile .BS 1
hBuf .BS 1
hCmdBuf .BS 1
pFile .BS 2
DashArgs .BS 1
ZS.END .ED
@ -32,20 +31,20 @@ ZS.END .ED
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA #0 S.PS.F.EVENT
.DA #2 BIN Layout Version 2
.DA #0
.DA CS.END-CS.START Code Size (without Constants)
.DA DS.END-DS.START Data Segment Size
.DA #0
.DA CS.END
.DA ID.END
.DA DS.END
.DA #16 Stack Size
.DA #ZS.END-ZS.START Zero Page Size
.DA 0
*--------------------------------------
* Relocation Table
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.SIG
.DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE
L.MSG.CRLF .DA MSG.CRLF
@ -60,10 +59,12 @@ CS.RUN jsr CS.RUN.CheckArgs
CS.RUN.LOOP >SLEEP
>PUSHB hFile
>PUSHW ZPBufPtr
>SS
>PUSHW ZPLineBuf
>PUSHWI 256
>PUSHW pFile
>LIBC FGetS
>SR
bcs .9
.2 jsr CS.RUN.EXEC
@ -96,17 +97,17 @@ CS.RUN.CheckArgs
>STYA ZPCommandPtr
bra CS.RUN.CheckArgs
.11 lda hFile
.11 lda pFile+1
bne .97
>LDYA ZPPtr1
jsr CS.RUN.OPEN
bcs .9
sta hFile
>STYA pFile
bra CS.RUN.CheckArgs
*--------------------------------------
.1 ldy #1
.1 ldy #1
lda (ZPPtr1),y
ldx #OptionList.Cnt-1
@ -125,40 +126,28 @@ CS.RUN.CheckArgs
tax
lda #$80
sta DashArgs-1,x
sta DashArgs-1,x
bra CS.RUN.CheckArgs
*--------------------------------------
.4 lda hFile
.4 lda pFile+1
bne .80
ldy #S.PS.hStdIn
lda (pPS),y
tay
ldx FILEs.hFD-1,y
lda FDs.pLO-1,x
sta ZPPtr1
lda FDs.pHI-1,x
sta ZPPtr1+1
jsr X.IsPipeIn
bcs .97
>STYA pFile
lda (ZPPtr1)
cmp #S.FD.T.PIPE
bne .97
sty hFile
.80 >LDYAI 256
>LIBC GetMem
>LIBC Malloc
bcs .9
>STYA ZPBufPtr
stx hBuf
>STYA ZPLineBuf
>LDYAI 256
>LIBC GetMem
>LIBC Malloc
bcs .9
>STYA ZPCmdBuf
stx hCmdBuf
* clc
@ -182,71 +171,81 @@ CS.RUN.NextArg inc ArgIndex
.9 rts
*--------------------------------------
CS.RUN.OPEN >PUSHYA
CS.RUN.OPEN >SS
>PUSHYA
>PUSHBI O.RDONLY+O.TEXT
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>LIBC FOpen
>SR
bcs .9
sta hFile
>STYA pFile
.9 rts
*--------------------------------------
CS.RUN.EXEC >PUSHW ZPCmdBuf
CS.RUN.EXEC >SS
>PUSHW ZPCmdBuf
>PUSHW ZPCommandPtr
>LIBC StrCpy
>SR
>SS
>PUSHW ZPCmdBuf
>PUSHW L.CMD.SPC
>LIBC StrCat
>SR
>SS
>PUSHW ZPCmdBuf
>LDYA ZPBufPtr
>PUSHYA
>PUSHW ZPLineBuf
>LIBC StrCat
>SR
* >LDYA ZPCmdBuf
* >LIBC PutS
>SS
>PUSHW ZPCmdBuf
>PUSHBI S.PS.F.HOLD
>LIBC ExecL
>SR
bcs .9
>SLEEP
ldy #S.PS.RC
lda (pPS),y
ldy #S.PS.ERRNO
jsr A2osX.GetPSy
beq .9
sec
.9 rts
*--------------------------------------
CS.QUIT lda hFile
CS.QUIT >LDYA pFile
beq .1
>LIBC FClose
.1 lda hBuf
.1 >LDYA ZPLineBuf
beq .2
>LIBC FreeMem
.2 lda hCmdBuf
>LIBC Free
.2 >LDYA ZPCmdBuf
beq .8
>LIBC FreeMem
>LIBC Free
.8 clc
rts
*--------------------------------------
CS.DOEVENT sec
CS.SIG sec
rts
*--------------------------------------
CS.END
.INB usr/src/shared/x.ispipein.s
*--------------------------------------
CS.END .EQ *
*--------------------------------------
OptionList .AS "Hh"
OptionList.Cnt .EQ *-OptionList
@ -255,10 +254,12 @@ MSG.USAGE .CS "Usage : XARGS command <file>\r\n"
.CS " or : CMD|XARGS command"
MSG.CRLF .CZ "\r\n"
CMD.SPC .CZ " "
*--------------------------------------
ID.END .EQ *
*--------------------------------------
.DUMMY
.OR 0
DS.START
STATBUF .BS S.STAT
DS.END .ED
*--------------------------------------
MAN

View File

@ -9,6 +9,7 @@ SSCIRQ .EQ 0
.INB inc/mli.e.i
.INB inc/com.i
.INB inc/com.6551.i
.INB inc/io.i
.INB usr/src/shared/x.ssc.drv.s
*--------------------------------------
MAN