diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 38706461..70ec7756 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index 1aa3fa2e..7868c9a4 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -483,17 +483,12 @@ CMD.EXIT lda (ZPArgVBufPtr) bcs .9 >PULLL.G M32.ACC + >LDA.G M32.ACC +.8 pha lda #$FF >STA.G bExit - - >LDA.G M32.ACC - clc - rts - -.8 lda #$FF - >STA.G bExit - inc + pla clc .9 rts *-------------------------------------- @@ -548,9 +543,6 @@ CMD.CONTINUE CMD.FOR .9 jmp CMD.Exec.CSYN *-------------------------------------- -CMD.NEXT -.9 jmp CMD.Exec.CSYN -*-------------------------------------- CMD.WHILE CMD.IF jsr CORE.StkGet bcs .1 no context... @@ -583,6 +575,29 @@ CMD.IF jsr CORE.StkGet clc .9 rts *-------------------------------------- +CMD.NEXT +.9 jmp CMD.Exec.CSYN +*-------------------------------------- +CMD.LOOP jsr CORE.StkPull + bcs .9 + tax + and #$3F + cmp #C.WHILE + bne .9 + + txa + bpl .1 + + jmp CORE.StkPullPtr + +.1 jsr CORE.StkPull + bcs .99 + jmp CORE.StkPull + +.9 lda #E.NOWHILE + sec +.99 rts +*-------------------------------------- CMD.ELSE jsr CORE.StkGet bcs .9 @@ -618,26 +633,6 @@ CMD.FI jsr CORE.StkPull sec rts *-------------------------------------- -CMD.LOOP jsr CORE.StkPull - bcs .9 - tax - and #$3F - cmp #C.WHILE - bne .9 - - txa - bpl .1 - - jmp CORE.StkPullPtr - -.1 jsr CORE.StkPull - bcs .99 - jmp CORE.StkPull - -.9 lda #E.NOWHILE - sec -.99 rts -*-------------------------------------- CMD.IsSwitch lda (ZPArgVBufPtr) cmp #'-' bne .9 diff --git a/BIN/SH.S.CORE.txt b/BIN/SH.S.CORE.txt index 21359466..cb4860b5 100644 --- a/BIN/SH.S.CORE.txt +++ b/BIN/SH.S.CORE.txt @@ -130,17 +130,22 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping txa >STA.G CORE.IntCmd - cpx #C.FOR - bcs .7 FOR...FI : always execute - -.42 jsr CORE.StkGet IF,WHILE,FOR ? +.42 jsr CORE.StkGet bcs .7 no particular context, exec... + tax + + >LDA.G CORE.IntCmd + bmi .45 + + cmp #C.FOR FOR....FI ? + bcs .7 - asl - bcc .43 context is FALSE, skip line - asl - bcs .7 if CC, parent context is FALSE, skip line - +.45 txa + bpl .43 context is FALSE, skip line + + asl + bmi .7 parent context is true, exec + .43 jsr CORE.GetNextCharNB bcs .44 EOF diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index 4b7a8579..bd9febc2 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -32,10 +32,10 @@ C.BREAK .EQ 36 C.CONTINUE .EQ 38 *-------------------------------------- C.FOR .EQ 40 -C.NEXT .EQ 42 -C.WHILE .EQ 44 -C.LOOP .EQ 46 -C.IF .EQ 48 +C.WHILE .EQ 42 +C.IF .EQ 44 +C.NEXT .EQ 46 +C.LOOP .EQ 48 C.ELSE .EQ 50 C.FI .EQ 52 *-------------------------------------- @@ -134,10 +134,10 @@ J.CMD .DA CMD.NOHUP .DA CMD.BREAK .DA CMD.CONTINUE .DA CMD.FOR - .DA CMD.NEXT .DA CMD.WHILE - .DA CMD.LOOP .DA CMD.IF + .DA CMD.NEXT + .DA CMD.LOOP .DA CMD.ELSE .DA CMD.FI L.CORE.IO .DA CORE.IO @@ -578,10 +578,10 @@ CMD .AZ "NOHUP" .AZ "BREAK" .AZ "CONTINUE" .AZ "FOR" - .AZ "NEXT" .AZ "WHILE" - .AZ "LOOP" .AZ "IF" + .AZ "NEXT" + .AZ "LOOP" .AZ "ELSE" .AZ "FI" .HS 00