There is also an interesting product called Dazzler which is an HDMI version of Gameduino programmable video device designed for Arduino and actually any computer/microcontroller/cpu
https://www.excamera.com/sphinx/gameduino/index.html
Gameduino has matured to version GD3:
https://www.excamera.com/sphinx/gameduino3/index.html
Now the HDMI Dazzler version looks like it is set to be released very soon.
http://tinyletter.com/jamesbowman/letters/dazzler-first-demos
What it amounts to is an SPI peripheral graphics card/hardware graphics engine/video co-processor/audio player/synth. Your computer device controls it with SPI reads/writes. If hooked up to the BASIC Engine for example it would still output to video/TV but would have the Dazzler/Gameduino as a peripheral output device so dual screen NTSC and HDMI. It has crossed my mind that it might detract from Uli's original intent of the BASIC Engine but toys are quite fun. Since there is the option of adding features to open source projects such as Uli's BASIC Engine it could be really cool to include the Gameduino libraries into the firmware and extend Engine BASIC with more commands to control the Gameduino/Dazzler. Heck, it is actually very easy to access and control Gameduino from BASIC anyway so people could translate the Gameduino libraries by way of BASIC subroutines, procedures or functions to copy and paste into our Engine BASIC programs. Since our Engine BASIC is so fast I think it would be a great experience. Programming on the BASIC Engine has become my favorite language/dialect so I hope to carry the user experience along with me as hardware advances anyway so maybe the addition of a peripheral hardware graphics engine wouldn't really detract? 🙂
Here are instructions from the designer of the Gameduino in order to control it from any computer and tips on translating the libraries: https://excamera.com/sphinx/gameduino/porting.html
The following is some dialect of BASIC which can bring up the Gameduino hardware and print an ascii character on VGA screen.
'gameduino1
SetPin 32, Dout:'mosi on pin 11 TX D11
SetPin 33, Din:'miso on pin 12 RX D12
Pin(34) = 1:SetPin 34, Dout:'clk D13
Pin(30) = 1:SetPin 30, Dout:'sel D9
Pin(30) = 1😛ause 5
Pin(30) = 0
Pause 500:'wait for gameduino to boot
junk = SPI(33, 32, 34, &H28, , 0, 8)
junka = SPI(33, 32, 34, &H00, , 0, 8)
byte = SPI(33, 32, 34)
Print byte:'should get back dec 109 which is &H6d (0x6d)
'now lets print an A on the screen
Pin(30) = 1😛ause 5
Pin(30) = 0
junk = SPI(33, 32, 34, &H80, , 0, 8)
junka = SPI(33, 32, 34, &H00, , 0, 8)
'junkb = SPI(33, 32, 34, &H41, , 0, 8)
'Pause 500
junkb = SPI(33, 32, 34, &H42, , 0, 8)
Pin(30)=1
'now lets read the B back from it's location
Pin(30) = 1😛ause 5
Pin(30) = 0
junka = SPI(33, 32, 34, &H00, , 0, 8)
junka = SPI(33, 32, 34, &H00, , 0, 8)
byte = SPI(33, 32, 34)
Print byte:'should be 65 for A and 66 for B
'Print junkb
Pin(30)=1