gardners / c65gs

FPGA-based C64 Accelerator / C65 like computer
83 stars 23 forks source link

Need C65 ROMs to be able to boot from C65 C64-mode kernel #27

Closed gardners closed 10 years ago

gardners commented 10 years ago

Fairly self explanatory. Need to add C65 interface ROM @ $C000 and DOS ROM as the minimum to boot into C64 mode. Need to consider mapping the C65 ROMs to $0020000 - $003FFFF to make it easier to implement MAP instruction.

gardners commented 10 years ago

Commit c1d3955 above builds fine. Realised it still has the hesmon rom instead of C65 interface ROM.

gardners commented 10 years ago

MAP instruction (Issue #25) needs to check contents of CPU port after mapping memory to make sure that IO and ROMs are mapped as appropriate.

gardners commented 10 years ago

Confirmed working to this point (with C64 kernel). Next step, add missing C65 ROMs, and then start trying to boot from C65 kernel and see what breaks (will be able to use monitor to gfce2 to force C64 mode and run CPU tests).

gardners commented 10 years ago

Adding mapping all those ROMs killed synthesis. New plan is to use Slow Ram (Issue #13) to hold the C65 ROMs after loading them from the SD card (Issue #24). This means that we are moving to a KickStart style boot process. Nicely the Slow RAM holds data for a number of seconds, so a brief power-off need not retrigger the kickstart process, provided the checksum still matches.

gardners commented 10 years ago

The c65roms branch has been making steady progress on this front, but I have forgotten to add the issue number to the commits.

VIC-IV now supports 80 column through H640 bit in VIC-III control registers. Borders move and character scaling is reset whenever any of the relevant VIC-II or VIC-III registers are modified. VIC-IV custom settings can still be done through the direct VIC-IV registers that get updated whenever the VIC-II or VIC-III registers are modified.

A number of missing instructions have been added and addressing mode bugs for INW/DEW corrected, allowing the ROM to progress further through the boot process.

Latest relevant commit is db765449ffd84ec668af06d1149ba6dad9137ffa, which begins implementation of DMAgic, which it turns out is necessary for booting the C65 ROMs, as the screen drawing/clearing seems to (sensibly) use DMA to make it faster.

gardners commented 10 years ago

Long since fixed. Machine boots 910111 ROM in 64 and 65 modes, and DOS works for read-only access.