OpenFNXKernal

From F256 Foenix
Revision as of 14:06, 26 December 2023 by Gadget (talk | contribs) (Notes on the OpenFNXKernal.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

OpenFNXKernal github is a work-in-progress implementation of the C64 ABI for the F256. It is a replacement for the original F256 build of OpenKernal github which no longer runs due to massive changes in the FPGA since the initial F256 prototypes were released.

The OpenFNXKernal supports the original C64 kernal vectors and supports code running in either 6502 or 65816 mode. It further uses the MMU to minimize its visible memory footprint to 512 bytes from $fe00-$ffff. This is helpful if you want to use virtually all of the zero page for your own code, but it also means that you can't just dig data out of the kernel by magically knowing where to find the data in the C64's zero page.

The repository above is basically a proof-of-concept. It includes a sample DOS shell and will also run CBM Basic, but it doesn't yet include a full-screen editor. Further, while it adds an additional kernel call for accessing the SD Card, it does not yet implement Commodore's unified I/O system. Many people expressed a desire to have a simple, CBM like kernel option on the F256 and volunteered to help with the more pedestrian features, but to date, only @EMWhite has done so, and his improvements haven't yet been shared.

The blocks of the OpenFNXKernal can be flashed and started with the command 'cbm'. Note, however, that, at preset, if you flash it for auto-start, the PS2 keyboard won't work b/c it will start up before the MicroKernel has finished initializing the ps2 devices. Adding a one-second delay before disabling interrupts and pwning the machine should fix this problem.