(classic) New target: Casio FP-1100

Post Reply
User avatar
dom
Well known member
Posts: 2076
Joined: Sun Jul 15, 2007 10:01 pm

(classic) New target: Casio FP-1100

Post by dom »

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.
User avatar
dom
Well known member
Posts: 2076
Joined: Sun Jul 15, 2007 10:01 pm

Post by dom »

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)
stefano
Well known member
Posts: 2137
Joined: Mon Jul 16, 2007 7:39 pm

Post by stefano »

Wow.. those Japanese systems based on a subcpu (aka "slave cpu") are not easy hacks.
I suppose we have not already covered a system with the same extra hw, (px8, x1..), right?
User avatar
dom
Well known member
Posts: 2076
Joined: Sun Jul 15, 2007 10:01 pm

Post by dom »

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.
User avatar
RobertK
Well known member
Posts: 347
Joined: Mon Feb 26, 2018 12:58 pm

Post by RobertK »

dom wrote:So. Stealing his idea, I've implemented lores graphics by writing modified characters
I'm proud that you call it "my idea", I thought that my invention had already been invented before! :D

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

Image

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

Image

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

Image
User avatar
dom
Well known member
Posts: 2076
Joined: Sun Jul 15, 2007 10:01 pm

Post by dom »

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
User avatar
RobertK
Well known member
Posts: 347
Joined: Mon Feb 26, 2018 12:58 pm

Post by RobertK »

RobertK wrote:But can the last screen really not be used?
I meant of course the last screen *row*, but you still understood my question. :-)

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).
Post Reply