For the most part, this is in service of bringing support to the ZX Spectrum. The main bulk of work here is:
Replacing a bunch of magic numbers with per-platform constants
Approximating the Model 100's screen interface with ZX Spectrum wrappers
Reworking the build system to accommodate
This also makes one more big breaking change in that the Model 100's start address has been moved back to AB00 (A900 for ldhx). I didn't originally plan on making that move with this branch, but it already pushed mol just over the size limit for the old start address. This is about as far back as I can seem to push it to maintain compatibility with my limited physical setup, since it needs space to load up the BASIC loader first.
The Spectrum build is also a little broken. It does produce the required artifacts with repeated invocations of waf, though. Since this branch has diverged so far from main and I want to release the spectrum artifact for mol, I'm just disabling the build by default for now and merging for sake of continuous integration.
For the most part, this is in service of bringing support to the ZX Spectrum. The main bulk of work here is:
This also makes one more big breaking change in that the Model 100's start address has been moved back to
AB00
(A900
forldhx
). I didn't originally plan on making that move with this branch, but it already pushedmol
just over the size limit for the old start address. This is about as far back as I can seem to push it to maintain compatibility with my limited physical setup, since it needs space to load up theBASIC
loader first.The Spectrum build is also a little broken. It does produce the required artifacts with repeated invocations of
waf
, though. Since this branch has diverged so far frommain
and I want to release the spectrum artifact formol
, I'm just disabling the build by default for now and merging for sake of continuous integration.