03-20-2012, 09:19 AM
Hey, didn't know this one! This would be really helpful.
Also I've finally arrived to a conclusion (while trying to port the compiler to the 2.x branch).
Instead of trying to heavily refactor the frontend (as I'm currently doing), it's better to start a new one (derived from ZX BASIC) which parses a MSX BASIC dialect, another for Locomotive BASIC (Amstrad), etc. These (python) modules could be loaded on the fly, when the user issues something like zxb --arch=msx or the like. Otherwise, it would be more likely ZX Basic will be forked in 3 (or more) separated proyects (ZX, MSX, Amstrad).
Also I've finally arrived to a conclusion (while trying to port the compiler to the 2.x branch).
- It's not easy (or even impossible) to port some Sinclair BASIC instruction to other machines (ej. INK, PAPER, BEEP)
- Users on other platforms will want ZX Basic to be more closer to their platform original BASIC (e.g. Locomotive BASIC on Amstrad, or MSX BASIC for MSX, etc).
Instead of trying to heavily refactor the frontend (as I'm currently doing), it's better to start a new one (derived from ZX BASIC) which parses a MSX BASIC dialect, another for Locomotive BASIC (Amstrad), etc. These (python) modules could be loaded on the fly, when the user issues something like zxb --arch=msx or the like. Otherwise, it would be more likely ZX Basic will be forked in 3 (or more) separated proyects (ZX, MSX, Amstrad).