Another new target, unfortunately this one isn't very good.
* Z80 @ 4 Mhz + uPD7801G @ 2MHz
* 64k RAM, 36k ROM + ~12k sub cpu ROM
* VDP: HD46505 (m6845 clone), 48K VRAM total via the uPD7801G
On paper this machine looks like it should be similar to the Multi8 and so have some capable graphics. However, the z80 doesn't have access to the graphics chip - it's controlled by the uPD7801G - the z80 just sends down commands (slowly) and the sub cpu handles the display.
There's apparently 32 different commands, I've discovered 15 of them, unfortunately none of them have anything to do with graphics so the port is text only (with 40x25 and 80x25 screenmodes), colour is supported though!
The keyboard is also disappointing - a rather annoying beep is raised whenever a key is pressed, again this is controlled by the sub CPU so if you're not reading a key you'll get a beep at inopportune times.
Again, on paper, the memory looks pretty promising, however the ROM does the "HuBasic" trick and copies itself into RAM, and then bags a bit more memory for its own variables/buffers etc.
There's a wiki page: https://github.com/z88dk/z88dk/wiki/Pla ... sio-FP1000
If someone can find some documentation on the subcpu commands I'll happily add graphics and UDG support, but for the present this target will remain distinctly unsatisfactory.
(classic) New target: Casio FP-1100
I've started to make this target slightly less rubbish, it's still fairly bad, but I've just added:
- Super lores graphics (80x24,40x24)
- Custom fonts and UDGs in gencon
- I've disabled the keypress beep!
Additionally the CP/M target can now create discs in the right format.
I think I should be able to add high res graphics now I've figured out some more of the subcpu commands - I've got one more mandatory call to find out (POINT) and possibly some option high-level ones (circle, box etc)
- Super lores graphics (80x24,40x24)
- Custom fonts and UDGs in gencon
- I've disabled the keypress beep!
Additionally the CP/M target can now create discs in the right format.
I think I should be able to add high res graphics now I've figured out some more of the subcpu commands - I've got one more mandatory call to find out (POINT) and possibly some option high-level ones (circle, box etc)
The hardware isn't too unusual, just the way it's put together is definitely unorthodox.
Anyway, I've figured out enough of the sub-cpu to get high resolution plotting to work.
As expected, it's horrendously slow and for @RobertK's use case I think it's fairly unusable. So. Stealing his idea, I've implemented lores graphics by writing modified characters - in a similar way to what was done on the Lynx.
In summary:
Mode 0,1 = hires graphics at 320,640x200
Mode 2,3 = lores graphics at 80,160x48
With all this code, memory is going to be short so I'm going to create a CP/M library which contains all this stuff.
Anyway, I've figured out enough of the sub-cpu to get high resolution plotting to work.
As expected, it's horrendously slow and for @RobertK's use case I think it's fairly unusable. So. Stealing his idea, I've implemented lores graphics by writing modified characters - in a similar way to what was done on the Lynx.
In summary:
Mode 0,1 = hires graphics at 320,640x200
Mode 2,3 = lores graphics at 80,160x48
With all this code, memory is going to be short so I'm going to create a CP/M library which contains all this stuff.
I'm proud that you call it "my idea", I thought that my invention had already been invented before!dom wrote:So. Stealing his idea, I've implemented lores graphics by writing modified characters

Anyway, hires plotting is indeed very slow, but "Mode 3 UDG plotting" works great. So we have H-Tron running on one more target:

But can the last screen really not be used? On the platform list, the system is listed with 40x25 and 80x25 gencon resolutions.

When c_plotting in hires mode 0, the full 80x25 screen is of course available:

Ha, I was a bit stuck on this target until I remembered what you'd suggested. We've done it for other ports in the past: Lynx and Sorcerer spring to mind, but this is the first time I've done it outside of the character set: the block characters can't be printed normally.
Unfortunately I had to reduce the size of the screen from 25 rows to 24 rows - printing in the bottom right corner causes the subcpu to scroll the screen - you can try it yourself, edit the CONSOLE_ROWS definition in lib/target/fp1100/classic/fp1100_crt0.asm and run plottest
Unfortunately I had to reduce the size of the screen from 25 rows to 24 rows - printing in the bottom right corner causes the subcpu to scroll the screen - you can try it yourself, edit the CONSOLE_ROWS definition in lib/target/fp1100/classic/fp1100_crt0.asm and run plottest
I meant of course the last screen *row*, but you still understood my question. :-)RobertK wrote:But can the last screen really not be used?
No problem, 80x48 is still a good resolution for my game.
I have just released a new version of H-Tron supporting the new targets Casio FP-1100, Hanimex Pencil II and Nichibutsu My Vision.
Now my game has reached the 50 targets mark (49 z88dk targets and the original DOS version).