3 ms·
Hi! Author here, this has been a fun side project for me, It's pretty much finished but I keep coming back to it to do one more thing. This project is a CPU wr
by howerj 8y ago
Hi! Author here, this has been a fun side project for me, It's pretty much finished but I keep coming back to it to do one more thing.
This project is a CPU written in VHDL that executes Forth. It's based on the J1 processor, but with a few new instructions and interrupt handling.
Also included in the project is a VT-100 terminal emulator (emulator is not quite the right word here) written in VHDL, which some of you may find useful. It supports a fairly large subset of the ANSI escape sequence commands.
I originally wrote a smaller compiler for a Forth like language in C, but I've since rewritten the tool chain so the eForth image running on the target is built with a more traditional meta-compiler.
Here's a video https://howerj.github.io/h2/107.mp4 https://howerj.github.io/h2/107.mp4 of the project running (I've since added color support to the VT-100).
If you type 'make gui-run' it should build and run the graphical emulator for the device. (or just 'make run' for the command line simulator).
You can play a little game by typing:
1B 20 thru
you-are-dead
:)
- rbanffy 8y agoI always wonder why so many projects use the MDA/VGA font. Is it that it's readily available in a HDL-friendly format? If that's so, I'd love to translate a couple popular open source fonts. Terminus is my usual default console favorite (mostly because the bitmap x3270 font is not in a friendly format). Yes. I really do hate the VGA font that much. ;-)
- howerj 8y agoHi! Sorry, I've been at work all day... The VGA module on which the VT-100 is built around used that font (I am not sure of its name - I guess "MDA/VGA font" would do). That VGA module came from here: http://www.javiervalcarce.eu/html/vhdl-vga80x40-en.html http://www.javiervalcarce.eu/html/vhdl-vga80x40-en.html. The project actually uses Terminus by default now. That video of the system up and running is quite old, I should make a new one. You can switch between Terminus (8x12, KOI8-R) and VGA Font (Latin-0). There's space for two more fonts in the Block RAM - if you wanted to make a new you're welcome to! The fonts are in 'https://github.com/howerj/forth-cpu/tree/master/fonts' https://github.com/howerj/forth-cpu/tree/master/fonts'.
- rbanffy 8y agoI'm far less urged to translate the 3270 font (I'm a huge fan of it) if you are relying on Terminus. It'd probably be better to support other fonts DEC terminals supported. I'll dig a bit into that. :-)
- howerj 8y agoThat's great, raise or ticket or send me an email if you find anything useful. It's not too much work for me to convert things into a usable format if I have a BDF file (8x12 only - anything else would require hardware changes!) for the font.
- rbanffy 8y agoI'm very fond of double width and height, but the DEC terminals implemented double width by halving the pixel clock rather than a proper font. Minitel did it right.
- ahazred8ta 8y agoCould you clarify "use the lowest bit for character operations" ?