FPGA HP98x6

Some experiments about the fpga emulation of a HP9816 ...

First, the 68000 softcore

- tg68 don't do movep and chk ... needed

- ao68 too large (more than 40KB of microcode ...) I need the onboard ram for other things

- suska core too large (more than 6000 slices)

So I wrote mine :)

- not cycle exact core

- all illegal are ok,

- movep and chk ok,

- mul and div WAY faster

- 32 bits internal alu

- 16 bits external bus

- generally less cycle used

- seem to work up to 16 MHz and use around 3000 slices

still in debug

Then the keyboard and timers

- use a picoblaze to emulate the 8041

- use a ps2 keyboard

- no knob (later with a mouse)

- work rather well

Then the display

- 800x600 vga mode used

- use 98204A fonts (from Tony Duell) with y x2 and all enhancement (half bright, blink, ...)

- 400x300 graphics x and y x2

- debug mode : all is at y x1 and lower half screen is full of informations

Then the HPIB controller

- state machine emulating a TI9114A

- heavy debug needed

Then the 9121 disc unit

- taken from HP 86 fpga

To be able to boot some stuff I used a nice trick of this system:

- use a disk image as an eprom used as a read only disc (see EPROM, 0)

With all this stuff I can now boot and launch HP Basic 5.1 (from HPmuseum)

The small basic program show that my softcore at 8 MHz is roughly a 11 MHz 68000 :)

(and with slow ram, with a 16Mhz internal wait state)

More work to debug the HPIB stuff ...

The 98626 is not functionnal but it will be easy to do later ...

Still close source (and anyway nobody cares for those projects ... just kidding)

The 68000 soft core is now available for download (MC68kods.zip)