diff --git a/.A2osX Issue List.xlsx b/.A2osX Issue List.xlsx
index 1cfa2104..612f48b2 100644
Binary files a/.A2osX Issue List.xlsx and b/.A2osX Issue List.xlsx differ
diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po
index cf803eeb..ced1b2c3 100644
Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ
diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt
index ba79bbf4..1936d026 100644
--- a/BIN/LS.S.txt
+++ b/BIN/LS.S.txt
@@ -52,6 +52,7 @@ L.MSG.ENTER .DA MSG.ENTER
L.MSG.DIREXT .DA MSG.DIREXT
L.MSG.FILE .DA MSG.FILE
L.MSG.FILEEXT .DA MSG.FILEEXT
+L.MSG.CRLF .DA MSG.CRLF
L.PRODOS.FT.TXT .DA PRODOS.FT.TXT
L.FMT.DateTime .DA FMT.DateTime
.DA 0
@@ -229,12 +230,20 @@ CS.RUN.PRINT.DIR
lda (ZPFileName)
cmp #'.'
- beq .5
+ bne .10
+ jmp .5
.10 >LDA.G bLong
bmi .4
- >PUSHW ZPFileName
+ >LDA.G bColumn
+ bpl .22
+
+ >LDYA ZPFileName
+ >SYSCALL puts
+ rts
+
+.22 >PUSHW ZPFileName
>PUSHBI 2
>LDYA L.MSG.DIR
>SYSCALL printf
@@ -297,7 +306,14 @@ CS.RUN.PRINT.FILE
lda (pData),y
bmi .1
- >PUSHW ZPFileName
+ >LDA.G bColumn
+ bpl .22
+
+ >LDYA ZPFileName
+ >SYSCALL puts
+ rts
+
+.22 >PUSHW ZPFileName
>PUSHBI 2
>LDYA L.MSG.FILE
>SYSCALL printf
@@ -404,10 +420,9 @@ CS.RUN.UpdateColCnt
CS.RUN.NewLine >LDA.G ColCount
beq CS.RUN.NewLine.8
CS.RUN.NewLine.1
- lda #13
- >SYSCALL PutChar
- lda #10
- >SYSCALL PutChar
+ >PUSHBI 0
+ >LDYA L.MSG.CRLF
+ >SYSCALL printf
rts
CS.RUN.NewLine.8
clc
@@ -523,15 +538,16 @@ Mod2CSTR ldy #S.STAT.MODE+1
*--------------------------------------
CS.END
*--------------------------------------
-OptionList >PSTR "ALRalr"
-OptionVars .DA #bAllmostAll,#bLong,#bRecurse,#bAllmostAll,#bLong,#bRecurse
+OptionList >PSTR "ACLRalr"
+OptionVars .DA #bAllmostAll,#bColumn,#bLong,#bRecurse,#bAllmostAll,#bColumn,#bLong,#bRecurse
*--------------------------------------
MSG.DEVEXT .AZ "/%15s S%dD%d Blocks Used:%5D Total:%5D\r\n"
MSG.DIR .AZ "\e[32m%s/\e[0m"
MSG.ENTER .AZ "Directory:%s\r\n"
MSG.DIREXT .AZ "\e[32m%16s\e[0m
%s %s %s\r\n"
MSG.FILE .AZ "%19s"
-MSG.FILEEXT .AZ "%15s %S $%H %s %10u %s %s\r\n"
+MSG.FILEEXT .AS "%15s %S $%H %s %10u %s %s"
+MSG.CRLF .AZ "\r\n"
*--------------------------------------
PRODOS.FT.HEX .HS 0406FAFCFDE2CBCCFF
PRODOS.FT.TXT >PSTR "TXT"
@@ -561,6 +577,7 @@ TIME.Mod .BS 20
hFilter .BS 1
bPause .BS 1
bAllmostAll .BS 1
+bColumn .BS 1
bLong .BS 1
bRecurse .BS 1
diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt
index 17c686cd..e0447da6 100644
--- a/BIN/SH.S.CMD.txt
+++ b/BIN/SH.S.CMD.txt
@@ -778,7 +778,7 @@ FOR.FILE sec
jsr CORE.StkPush
bcs .99
- jsr CMD.NEXT.FILE.1
+ jsr CMD.NEXT.LINE
bcs .99
>ORA.G CORE.Test
@@ -817,9 +817,9 @@ FOR.EXEC sec
>PUSHBI 0 type
>PUSHBI O.RDONLY+O.TEXT
>LEA.G IO.NodBuf
-
>SYSCALL fopen
.9 bcs .99
+
jsr CORE.StkPush push hPIPE
bcs .99
@@ -839,7 +839,7 @@ FOR.EXEC sec
jsr CORE.StkPush
bcs .99
- jsr CMD.NEXT.EXEC.1
+ jsr CMD.NEXT.LINE
bcs .99
>ORA.G CORE.Test
@@ -1007,85 +1007,7 @@ CMD.NEXT.LIST.1 lda (pData)
* stack-1 FOR SUB TOKEN
* stack FOR TOKEN
*--------------------------------------
-CMD.NEXT.FILE lda (pData),y Y = StkPtr
-
- bpl .1
-
- jsr CMD.NEXT.FILE.1
- bcs .9
- bpl .1
-
- lda (pData)
- sec
- sbc #4
- tay
-
- lda (pData),y
- sta ZPInputBufPtr+1
- dey
- lda (pData),y
- sta ZPInputBufPtr
-
- clc
- rts
-
-.1 lda (pData)
- tay
- sec
- sbc #6
- sta (pData)
-
- dey
- dey
- lda (pData),y hVARNAME
- pha
- dey
- lda (pData),y hFILE
- >SYSCALL fclose
- pla
- >SYSCALL freemem
-
-* clc
-.9 rts
-*--------------------------------------
-CMD.NEXT.FILE.1 lda (pData)
- dec skip FOR
- dec skip SUB TOKEN
-
- tay
- lda (pData),y
- phy
- >SYSCALL GetMemPtr hVARNAME
- >STYA ZPVarNamePtr
- ply
-
-
- dey
- lda (pData),y hFILE
- pha
- >PUSHWI 256
- >PUSHW ZPCLBuf
- pla
-
- >SYSCALL fgets
- bcs .8
-
- >PUSHW ZPCLBuf
- >LDYA ZPVarNamePtr
- >SYSCALL SetEnv
- bcs .9
-
- lda #$80
-* clc
- rts
-
-.8 >LDYA ZPVarNamePtr
- >SYSCALL UnSetEnv
- bcs .9
-
- lda #0
-* clc
-.9 rts
+CMD.NEXT.FILE
*--------------------------------------
* stack-4 CmdPtr
* stack-3 hPIPE
@@ -1097,7 +1019,7 @@ CMD.NEXT.EXEC lda (pData),y Y = StkPtr
bpl .1
- jsr CMD.NEXT.FILE.1
+ jsr CMD.NEXT.LINE
bcs .9
bpl .1
@@ -1126,14 +1048,14 @@ CMD.NEXT.EXEC lda (pData),y Y = StkPtr
lda (pData),y hVARNAME
pha
dey
- lda (pData),y hPIPE
+ lda (pData),y hFILE/hPIPE
>SYSCALL fclose
pla
>SYSCALL freemem
* clc
.9 rts
*--------------------------------------
-CMD.NEXT.EXEC.1 lda (pData)
+CMD.NEXT.LINE lda (pData)
dec skip FOR
dec skip SUB TOKEN
diff --git a/BIN/SH.S.EXP.txt b/BIN/SH.S.EXP.txt
index d743cd5e..cb7e0c02 100644
--- a/BIN/SH.S.EXP.txt
+++ b/BIN/SH.S.EXP.txt
@@ -196,52 +196,56 @@ EXP.OP.UNARY.Z lda (ZPArgVBufPtr) [ -Z ] ?
bra EXP.OP.UNARY.DEF.9 FALSE
*--------------------------------------
EXP.TEST.BINARY >LDA.G CORE.Operator
- beq .1 =
-
- cmp #2 !=
- bne EXP.TEST.BINARY.NUM
- lda #$80
-
-.1 >STA.G CORE.Operator
+ cmp #12 =, !=, <= <, >=, >
+ bcs EXP.TEST.BINARY.NUM
>LDYA ZPArgVBufPrev
>STYA ZPPtr1
jsr CORE.ArgV.Next
- beq .9
+ beq EXP.TEST.BINARY.ESYN
>PUSHW ZPPtr1
>LDYA ZPArgVBufPtr
>SYSCALL strcmp
-
- ror CS if !=
- and #$80
- eor #$80
- >EOR.G CORE.Operator
- clc
- rts
+ bcs .1 CS if !=
-.9 lda #E.ESYN
+ lda #%010 010 str1 = str2
+ bra EXP.TEST.BINARY.END
+
+.1 asl CS if <
+ bcs .2
+
+ lda #%100 010 str1 < str2
+ bra EXP.TEST.BINARY.END
+
+.2 lda #%001 010 str1 > str2
+ bra EXP.TEST.BINARY.END
+
+EXP.TEST.BINARY.ESYN
+ lda #E.ESYN
sec
rts
*--------------------------------------
EXP.TEST.BINARY.NUM
>LDYA ZPArgVBufPrev
>SYSCALL AToL
- bcs .9
+ bcs EXP.TEST.BINARY.ESYN
>PULLL.G M32.ACC
jsr CORE.ArgV.Next
- beq .9
+ beq EXP.TEST.BINARY.ESYN
>LDYA ZPArgVBufPtr
>SYSCALL AToL
- bcs .9
+ bcs EXP.TEST.BINARY.ESYN
>PULLL.G M32.ARG
jsr M32.Cmp
+
+EXP.TEST.BINARY.END
pha
>LDA.G CORE.Operator
@@ -257,11 +261,7 @@ EXP.TEST.BINARY.NUM
.80 lda #0 false
clc
- rts
-
-.9 lda #E.ESYN
- sec
- rts
+ rts
*--------------------------------------
MAN
SAVE USR/SRC/BIN/SH.S.EXP
diff --git a/BIN/SH.S.IO.txt b/BIN/SH.S.IO.txt
index 6b0d8469..3faed7fd 100644
--- a/BIN/SH.S.IO.txt
+++ b/BIN/SH.S.IO.txt
@@ -73,7 +73,7 @@ IO.Pipe.Out >SYSCALL pipe
>SYSCALL fopen
bcc IO.Set.Out
-
+
.99 pha
>LDA.G IO.hPipe
>SYSCALL close
diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt
index a94134da..a54d6d94 100644
--- a/BIN/SH.S.txt
+++ b/BIN/SH.S.txt
@@ -639,6 +639,10 @@ EXP.OP.UNARY .AZ "-D"
.HS 00
EXP.OP.BINARY .AZ "="
.AZ "!="
+ .AZ ".<"
+ .AZ "<="
+ .AZ ".>"
+ .AZ ">="
.AZ "-EQ"
.AZ "-NE"
.AZ "-LT"
@@ -647,8 +651,13 @@ EXP.OP.BINARY .AZ "="
.AZ "-GE"
.HS 00
EXP.OP.BINARY.BITS
- .DA #%000
- .DA #%000
+ .DA #%010
+ .DA #%101
+ .DA #%100
+ .DA #%110
+ .DA #%001
+ .DA #%011
+
.DA #%010
.DA #%101
.DA #%100
diff --git a/README.md b/README.md
index 91611901..3c473515 100644
--- a/README.md
+++ b/README.md
@@ -274,6 +274,10 @@ OApple+1,OApple+2,OApple+3 to switch between screens : Kernel Log, text, DHGR.
| | | [ -z $VAR variable is empty ] |
| | | [ string1 = string2 ] |
| | | [ string1 != string2 ] |
+| | | [ string1 .< string2 ] |
+| | | [ string1 <= string2 ] |
+| | | [ string1 .> string2 ] |
+| | | [ string1 >= string2 ] |
| | | [ int32 -eq int32 ] |
| | | [ int32 -ne int32 ] |
| | | [ int32 -lt int32 ] |
@@ -330,7 +334,7 @@ note : '$VAR' does NOT expand Variable
| ---- | ------ | ------- |
| . | Working | use same env |
| & | Working | start proc |
-| \| | | pipe |
+| \| | Working | pipe |
| < | Working | StdIn redirection |
| > | Working | StdOut redirection |
| >> | Working | Append StdOut |
@@ -380,6 +384,7 @@ note : '$VAR' does NOT expand Variable
| | | -0 : No Signal | |
| | | -1 : SIGQUIT | |
| LS | Working | -A : Print . & .. | 0.92 |
+| | | -C : Single column listing | |
| | | -L : long listing with size/date... | |
| | | -R : Recurse subdirectories | |
| LSDEV | Working | Dump device Drivers | 0.92 |
diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt
index d5a204cf..199d923c 100644
--- a/SYS/KERNEL.S.CORE.txt
+++ b/SYS/KERNEL.S.CORE.txt
@@ -544,11 +544,11 @@ CORE.PSFree sta .10+1 Save PS ID
ldy #S.PS.hStdOut
lda (ZPPtr1),y
tax
- lda OF.Table.hFD-1,x
- bit #1 hDev ?
- bne .10
+ lda OF.Table.hPath-1,x
+ beq .10 hDEV
- jsr K.GetMemPtr hNod, get FD
+ lda OF.Table.hFD-1,x hNod
+ jsr K.GetMemPtr get FD
>STYA pFD
lda (pFD)
cmp #S.FD.T.PIPE
diff --git a/SYS/KERNEL.S.TERM.txt b/SYS/KERNEL.S.TERM.txt
index 49db53c2..b01d1f84 100644
--- a/SYS/KERNEL.S.TERM.txt
+++ b/SYS/KERNEL.S.TERM.txt
@@ -930,10 +930,11 @@ CLRLINE ldy #0 Start
ldx #80 End
bra CLR
-CLRSOL ldy #0
- ldy #S.DCB.TTY.CH
- lda (ZPDCBPtr),y Start
+CLRSOL ldy #S.DCB.TTY.CH
+ lda (ZPDCBPtr),y
tax End
+ ldy #0 Start
+
bra CLR
CLREOL ldy #S.DCB.TTY.CH