Hello there,
some time ago I stumbled over Grant Searle's MULTICOMP pick-and-mix FPGA computer over at
http://searle.hostei.com/grant/Multicomp/My favorite flavor is the 6502 version (having had some previous adventures with C64 programming). By default MULTICOMP has a Microsoft Basic in ROM, which on my instance is replaced with my own ROM that I develop mostly as an exercise to get more practice with 6502 assembly, which I began to pick up for C64 programming, starting in 2012.
The name of my ROM is SKERNAL (Stupid KERNAL - eventually to morph into Silly KERNAL) and I develop it over at
https://github.com/maikmerten/SKERNALThe main features are:
- Rudimentary command line
- Supports (and requires) the SD card controller on MULTICOMP
- Basic support for the FAT16 file system (currently read-only, only 8.3 file names, only root directory)
- List files in root directory of the FAT16 file system
- Load files into memory (starting at page 8 until end of RAM or EOF)
- Execute files loaded from SD card (JSR to the start of page eight)
- Some facility to inspect and alter memory contents
- Load and execute the file "autoexec.bin" on boot, if present
It's perhaps the last feature that's most useful. On MULTICOMP, the ROM is baked into the FPGA core, so changing the software basically means recompiling the whole computer. By flashing SKERNAL once and just updating autoexec.bin on the SD card one can have the machine boot into custom software without recompiling/reprogramming of the "hardware".
Attachment:
skernal1.png [ 20.64 KiB | Viewed 2220 times ]
Attachment:
skernal2.png [ 27.18 KiB | Viewed 2220 times ]
Attachment:
skernal3.png [ 21.28 KiB | Viewed 2220 times ]
Here's TinyBasic loaded from FAT16 and executed:
Attachment:
skernal-tinybasic.png [ 18.15 KiB | Viewed 2220 times ]
I develop this in Seth Morabito's Symon emulator (
https://github.com/sethm/symon), for which I developed some additions to support the MULTICOMP machine model. I use CA65 as cross-assembler.
Perhaps this is useful for someone. Being a beginner in 6502 assembly clearly the coding style and overall design is quite questionable. For me it's an interesting playground to mess with, so let's see how things develop
Oh, and currently it's not much of a KERNAL, given there's no proper way for external software to find the internal routines.