Apple I on FPGA (iCE40HX8K-EVB & iCE40-IO)

Started by mobluse, March 11, 2018, 02:05:19 PM

Previous topic - Next topic


great project!
I will give it try and blog about it.

I do wonder if it's possible to make Apple ][ also? iCE40HX8K has 512KB SRAM which will be enough to hold Apple ][ RAM and ROM.

The reason we made iCE40-IO was hoping someone will be able to implement computer with display and keyboard with RISC-V core, but it's great that Apple 1 prove the concept is working.


Here are the developer's answers to me:
Apple I for the iCE40-IO system is not as updated as for some other boards. It works, but clear screen button and color change commands doesn't work.

They are working on VIC20 now, but I think it would be easier to make Apple II or PET 2001, and there are more software for those. Apple II has color and so is more interesting than PET 2001.

I think iCE-40 is rather great, since you can have a more stable system than a lot of loose connectors, but it would be even better if the PS/2 port was fully connected as in an old laptop PS/2 port for both mouse and keyboard using Y-splitter cable, and if the VGA-port also had the I2C-port for identifying screens.
iCE40HX8K-EVB w/ iCE40-IO, DuinoMite-Mini, DuinoMite w/ DuinoMite-IO, Olimexino-32U4


Video demonstrating the latest Apple One clone with color from:
Runs on FPGA: iCE40HX8K-EVB with iCE40-IO for VGA screen and PS/2 keyboard.
Tests all fonts, background (paper) colors and foreground (ink) colors. Tests the clear screen button.

The color code in this Apple 1 clone is the same as in GWBASIC/QBASIC/MMBASIC (RGB), but different from Apple II BASIC (GBR), ZX Spectrum BASIC (GRB) and VT100/ANSI/xterm (BGR). There are 6 possible color codes and all mentioned are different. The Apple II colors are more complicated than just GBR. Why could the computer industry not standardize color codes for 3-bit graphics? I think the ANSI color code is the most sensible, because the colors are in spectral order corresponding to the energy of photons, and the same goes for the electronic color code.

Book mentioned: Carlson, Per & Johansson, Staffan (2003). Digitalteknik: teori och praktik. 2., [uppdaterade uppl.] Stockholm: Liber , but there are newer editions of this, but I don't know if they say anything about FPGA.

Popular article on Reddit:
iCE40HX8K-EVB w/ iCE40-IO, DuinoMite-Mini, DuinoMite w/ DuinoMite-IO, Olimexino-32U4