Hi! May I ask for a pure ZX-based version? The game should be runable also on the ZX-Uno and eLeMeNt ZX computers with simple HiColor graphics turned on (LD A,2: OUT (255),A) instead of using timex-like method of reading the port 255. 3 bytes could be applied in the 2048/AY code at 56092: 0,0,62, Tested with the eLeMeNt ZX :-)
Thanks for pointing this out. I tested it with ZEsarUX in ZX-Uno mode with new graphics modes enabled and it worked. However on a ZX-Go+ it does not. My other game that uses the Timex mode does work on the ZX-Go+ so I guess there is another problem with it. I was not aware of the eLeMeNt ZX is there an emulator for it?
BTW my code was already using:
in a, (0xFF)
or a, 2
out (0xFF), a
Changing this to just:
ld a, 2
out (0xFF), a
did not make any difference.
Hi! The problem is that the port 255 returns various values on ZX machines, e.g. with bit 0 set, leading to non-defined states or simply switching to ZX-like graphics. Setting the mode directly with LD A,2 is safer :-). I do not have the ZX-Go+ but could test with the MB03+ interface which also adds Timex, a graphics part only, to any Speccy model (so the port 255 is ZX on reading and Timex with writing). Both MB and eZX hardware are emulated with the LnxSpectrum: www.ilnx.cz
Hi, many thanks for the eLeMeNt ZX/MB version!
Unfortunately the LnxSpec emulator does not fully reflect some non-ZXi ports. As written above, on the eLeMeNt hardware the port 255 is ZX-based when read (IN), so there is an extra "shadow" port for Timex, timex 0xFF port is writeable only and readable is at port 0x9FFD.
The current beta should be changed, instead of IN A,(255) use LD BC,0x9FFD and IN A,(C).
Another method, without previous reading IN A,..., is simply to write to the 0xFF port a timex graphics mode, value "2".
Please check the page 19 of the ProgRef manual
https://docs.google.com/document/d/1NJB_z3zVorTfmEj2JAS3QtAx_zbpkdCAAptHSnOOzkU/...
And the third solution: the ZXi configuration port will be improved, a setup bit will be added to make the port 255 fully timex readable, but it will take some little time...
Thanks for letting me know. I'll post a new build once I've retested everything.
According to https://worldofspectrum.org/faq/reference/tmxreference.htm bit 7 controls which memory bank is used. However it's only used to to support cartridges on the TS2068. Bit 6 disables interrupts.