diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index c7f8fee6..07d46aec 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/SHELL.S.CMD.txt b/BIN/SHELL.S.CMD.txt index d885261d..71cf0960 100644 --- a/BIN/SHELL.S.CMD.txt +++ b/BIN/SHELL.S.CMD.txt @@ -541,14 +541,13 @@ Cmd.INT.IF ldx #1 jsr CMD.IF.UNARY bcs .9 - >LDA.G CMD.Test - eor #$80 + >EOR.G CMD.Test sta (pData),y ldx #4 go check ] bra .8 -.9 lda #E.SYN +.9 lda #E.SYNTAX sec .99 rts @@ -566,6 +565,9 @@ Cmd.INT.IF ldx #1 jsr CMD.IF.BINARY bcs .9 + >EOR.G CMD.Test + sta (pData),y + ldx #5 go check ] .8 jsr Cmd.GetArgX @@ -602,7 +604,7 @@ CMD.IF.UNARY ldx #3 tax jmp (J.CMD.IF.TOKEN2,x) -.9 lda #E.SYN +.9 lda #E.SYNTAX sec rts @@ -631,11 +633,11 @@ CMD.IF.DEF.7 >PUSHEA.G CMD.Stat >SYSCALL STAT rts -CMD.IF.DEF.8 ldx #$80 true +CMD.IF.DEF.8 lda #$80 true clc rts -CMD.IF.DEF.9 ldx #0 false +CMD.IF.DEF.9 lda #0 false clc rts *-------------------------------------- @@ -662,16 +664,15 @@ CMD.IF.BINARY ldx #2 jsr Cmd.GetArgX >SYSCALL strcmp lsr CS if != + and #$80 >EOR.G CMD.Operator - sta (pData),y - tax clc rts .9 lda #E.SYN sec rts - +*-------------------------------------- CMD.IF.BINARY.NUM ldx #2 jsr Cmd.GetArgX @@ -691,48 +692,8 @@ CMD.IF.BINARY.NUM >PULLL.G M32.ARG - ldx #4 - ldy #M32.ARG+3 - -.1 lda (pData),y + jsr M32.Cmp pha - dey - dex - bne .1 - - ldx #4 - ldy #M32.ACC - - sec - -.2 pla - sbc (pData),y - sta (pData),y - iny - dex - bne .2 - - bcc .5 CC if Arg1 < Arg2 - - ldy #M32.ACC - - lda (pData),y - iny - ora (pData),y - iny - ora (pData),y - iny - ora (pData),y Z if Arg1 = Arg2 - - bne .4 - -.3 lda #%001 001 arg1 = arg2 - bra .6 -.4 lda #%010 010 arg1 > arg2 - bra .6 -.5 lda #%100 100 Arg1 < Arg2 - -.6 pha >LDA.G CMD.Operator lsr @@ -741,15 +702,15 @@ CMD.IF.BINARY.NUM eor CMD.IF.TOKEN3.BITS,x bne .80 - ldx #$80 true + lda #$80 true clc rts -.80 ldx #0 false +.80 lda #0 false clc rts -.9 lda #E.SYN +.9 lda #E.SYNTAX sec rts *-------------------------------------- @@ -769,7 +730,7 @@ Cmd.INT.ELSE jsr CMD.StkGet rts .9 pla - lda #E.SYN + lda #E.SYNTAX sec rts *-------------------------------------- @@ -783,7 +744,7 @@ Cmd.INT.FI jsr CMD.StkPull clc rts -.9 lda #E.SYN +.9 lda #E.SYNTAX sec rts *-------------------------------------- @@ -881,17 +842,6 @@ Cmd.GetEXP.GetNext jsr Cmd.GetArgX rts *-------------------------------------- -Cmd.GetValue tax - jsr Cmd.GetArgX - >STYA ZPPtr1 - - lda (ZPPtr1) - cmp #'$' - bne .2 - - -.2 >SYSCALL AToL -*-------------------------------------- Cmd.GetArgX >LDYA ZPArgVBuf dex diff --git a/X.M32.S.txt b/X.M32.S.txt index 7705e172..1ddc6f9e 100644 --- a/X.M32.S.txt +++ b/X.M32.S.txt @@ -34,7 +34,7 @@ M32.Add ldy #M32.ARG+4 ARG+ACC->ACC rts if CS, Overflow *--------------------------------------- -M32.Sub ldy #M32.ARG+4 ARG+ACC->ACC +M32.Sub ldy #M32.ARG+4 ARG-ACC->ACC .1 dey lda (pData),y @@ -93,5 +93,49 @@ M32.ACC2ARG ldy #M32.ACC+4 ACC->ARG rts *-------------------------------------- +M32.Cmp ldx #4 + ldy #M32.ARG+3 + +.1 lda (pData),y + pha + dey + dex + bne .1 + + ldx #4 + ldy #M32.ACC + + sec + +.2 pla + sbc (pData),y + sta (pData),y + iny + dex + bne .2 + + bcc .5 CC if ACC < ARG + + ldy #M32.ACC + + lda (pData),y + iny + ora (pData),y + iny + ora (pData),y + iny + ora (pData),y Z if ACC = ARG + + bne .4 + + lda #%001 001 ACC = ARG + rts + +.4 lda #%010 010 ACC > ARG + rts + +.5 lda #%100 100 ACC < ARG + rts +*-------------------------------------- MAN SAVE USR/SRC/X.M32.S