2014-10-17, 08:50 PM 
		
	
	
		I found an error in ZX BASIC optimizer. Take a look at this test program:
This program produces the expected result if you compile it as follows:
However it will refuse to compile if you use this instead:
In this latter case it will produce this error message:
EDIT: Tested using latest ZX BASIC version 1.4.0s1898.
	
	
	
	
Code:
GO TO 10
sub FASTCALL test(flag AS UBYTE)
    asm
        cp 1
        jp m,45000
        jp 50000
    end asm
end sub
10 POKE 50000,201: POKE 45000,201
   test(1)This program produces the expected result if you compile it as follows:
Code:
zxb.exe -t -O2 prog.basHowever it will refuse to compile if you use this instead:
Code:
zxb.exe -t -O3 prog.basIn this latter case it will produce this error message:
Code:
C:>zxb.exe -t -O3 prog.bas
Traceback (most recent call last):
  File "zxb.py", line 348, in <module>
  File "zxb.py", line 301, in main
  File "optimizer.pyc", line 2287, in optimize
  File "optimizer.pyc", line 1493, in update_goes_and_comes
KeyError: '45000'EDIT: Tested using latest ZX BASIC version 1.4.0s1898.

