diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 89d7c8c8..ad61c733 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/CSH.S.CORE.txt b/BIN/CSH.S.CORE.txt index ee27012b..239b6591 100644 --- a/BIN/CSH.S.CORE.txt +++ b/BIN/CSH.S.CORE.txt @@ -41,6 +41,9 @@ CSH.Init >SYSCALL SListNew >STA.G CSH.StackPtr sta (ZPCSHConst) sta (ZPCSHStack) + >DEBUG + >DEC.G bTrace + >DEC.G bDebug * clc .9 rts *-------------------------------------- @@ -575,13 +578,13 @@ CSH.ExpEval ldx ZPPtr1 phx ldx ZPPtr2 local : VarType phx - ldx ZPPtr2+1 local : BOP1 + ldx ZPPtr2+1 local : BOP phx sta ZPPtr2 local : expected type -.13 sec - ror ZPPtr2+1 Reset BOP1 + lda #$ff + pha .10 jsr CSH.GetCharNB bcs .19 @@ -607,9 +610,8 @@ CSH.ExpEval ldx ZPPtr1 bcs .19 jmp .12 - .19 jmp .90 - +*-------------------------------------- .20 jsr CSH.IsLetter define, Fnc or Var ? bcs .2 @@ -629,7 +631,7 @@ CSH.ExpEval ldx ZPPtr1 .1 lda ZPPtr2 var type jsr CSH.fCall X = function index - bcs .99 + bcs .29 stx ZPPtr2 store real var type bra .11 @@ -652,7 +654,7 @@ CSH.ExpEval ldx ZPPtr1 .12 cmp #',' beq .8 cmp #')' - beq .85 + beq .8 cmp #';' beq .8 @@ -662,9 +664,25 @@ CSH.ExpEval ldx ZPPtr1 >LDYA L.CSH.BOPS jsr CSH.LookupOP bcs .90 - lda ZPPtr2+1 X=OP lookup,get previous OP in A - bpl .5 go check precedence - stx ZPPtr2+1 + + stx ZPPtr2+1 save new OP + + pla get previous OP + pha + bmi .13 $ff.... push OP + + cmp ZPPtr2+1 + bcs .13 new OP has precedence, on stack : V1,V2 + + tax Old OP has precedence... + + lda ZPPtr2 Var Type + jsr CSH.BOP.EXEC compute STK=V1 V2 + bcs .99 + + ldx ZPPtr2+1 + +.13 phx push OP on stack jsr CSH.GetCharNB bcc .20 go check for an ARG @@ -677,36 +695,28 @@ CSH.ExpEval ldx ZPPtr1 jmp .11 *-------------------------------------- -.5 cpx ZPPtr2+1 - bcs .6 -* new OP has precedence, on stack : V1,V2 - - jmp .10 -* Old OP has precedence, compute STK=V1 V2 -.6 lda ZPPtr2 Var Type - ldx ZPPtr2+1 BOP - jsr CSH.BOP.EXEC - bcs .99 - jsr CSH.GetCharNB - bcs .90 - jmp .13 reset BOP & loop - -.85 -* >DEBUG -.8 ldx ZPPtr2+1 +.8 plx any BOP on stack ? bmi .80 + lda ZPPtr2 Var Type jsr CSH.BOP.EXEC - bcc .80 + bcc .8 + bcs .99 .90 lda #CSH.E.SYNTAX -.99 sec +.99 tax +.98 pla + bpl .98 + + txa + sec .HS 90 BCC .80 clc ldx ZPPtr2 X = Var Type + ply sty ZPPtr2+1 ply @@ -972,8 +982,8 @@ CSH.SetVarValueFromStack cpy ZPVarSizeOf bne .1 - lda #'>' - jsr DEBUG.VAR +* lda #'>' +* jsr DEBUG.VAR clc rts diff --git a/BIN/CSH.S.EXEC.txt b/BIN/CSH.S.EXEC.txt index b87aea9f..55573f16 100644 --- a/BIN/CSH.S.EXEC.txt +++ b/BIN/CSH.S.EXEC.txt @@ -76,7 +76,8 @@ CSH.BOPS.SUBf >FPU FSUB clc rts *-------------------------------------- -CSH.BOPS.MUL cmp #CSH.T.FLOAT +CSH.BOPS.MUL >DEBUG + cmp #CSH.T.FLOAT beq .8 >FPU MUL32