To build “UT-88” replica I created an extension board for DE1. I’ve added six 7-segments indicators and 16-keys keypad on it almost like original “UT-88” in minimal configuration had. The board should be connected to GPIO_1 extention header of DE1 to avoid changes in the project. Just in case, I’ve added tape in/out, buzzer and video out on the board. I haven’t test any of those except of tape out, so I’m not sure if it works. If you are going to make the board yourself, you can remove all components except the keypad and indicators – nothing else is used in the final version of the project. Such board can be quite useful for other projects as well. Here is its schematic and board layout in DipTrace format: Schematic and layout.
- 7-segment indicatord can be shown on top of VGA display (use switch SW on DE1 board to turn this function on/off)
- Connected PS/2 keyboard can be switched to keypad mode (use switch SW on DE1 board to turn this function on/off)
The replica uses VGA monitor instead of TV set. It works in 800х600 60Hz mode. The screen resolution of “UT-88” computer is 384×224 pixels. For better fit I double each dot horizontaly and verticaly, making each “UT-88” dot to occupy four VGA pixels. Picture size becomes 768×448 pixels. It is still not enough to cover the whole screen, so there are black borders around.
I used the top border to show six 7-segment indicators for those who don’t have the extension board.
I use LINE IN and LINE OUT connectors on DE1 board as tape in and out. Instead of a tape recorder I use my laptop , connecting it to the corresponding connectors and playing/recording “wav” files. Even MP3 files without strong compression do the trick. Instead of a laptop headphone output of a CD or MP3 player can be used. You just need to tune the volume correctly to avoid reading errors.
Here are some programs in “wav” format that you can load to the replica: Programs for minimal configuration
To make life even easier, I use JTAG interface built in DE1 board for direct reading/writing to SRAM. Because SRAM on DE1 board is 16-bit, I use the lowest 8 bits as “UT-88” RAM and the highest 8 bits as a “RAM-disk” in the project. So, this interface allows to read and write the whole memory dump by “DE1 CONTROL PANEL” utility which comes with DE1 board. You can download an example of such dump which contains OS CP/M and some programs here: Memory dump with CP/M.
HOW TO RUN OUR “UT-88” IN MINIMAL CONFIGURATION
“UT-88” in minimal configuration has the follwing addressing:
0000 – 0FFF – ROM with “MONITOR-0” and math library. This ROM can be replaced by RAM by swithcing SW on DE1 board to “0” position.
2000 – 23FF – ROM with various programs for computer with minimal configuration.Those programs can’t be run straight from the ROM but can be copied to RAM from address C000 and run from there. This ROM also can be switched off and replaced with RAM by turning on SW on DE1 boards to “0” position.The list of programs and instructions I’ll describe in my next post about “MONITOR-0”.
С000 – С3FF – RAM for minimal configuration (1 Kbyte).
In our replica we have access to all RAM in a range from 1000 to FFFF (if “MONITOR-F” ROM is switched off by SW). So, if we switch off ROM with various programs for MONITOR-0 as well (SW to position “0”), we will have acess to 60 Kbytes of RAM. Not bad!
7-segment indicators of the computer display the content of memory cells with addresses 9000, 9001 and 9002. As I mentioned before you can display those indicators on VGA display using switch SW as well as using PS/2 keyboard instead of keypad (switch SW). So you don’t need to solder the extension board to try the computer.
When the keypad on the extension board is used, button “ШН” of the computer is replaced by KEY button on DE1 board, and “RESET” is KEY button. When PS/2 keyboard is used, all numeric and A, B, C, D, E and F buttons work as a keypad. TAB – is used as “ШН” button and ESC – as “RESET”.
So, to run our “UT-88” in minimal configuration we have to use the following positions of DE1 switches:
SW – “0” if you use 7-segment indicators on the extension board or ‘1’ to use VGA display.
SW – “0” if you use a keypad on the extension board or ‘1’ to use PS/2 keyboard instead.
SW – “1” SW – “0” if you are going to use RAM in the range F400-FFFF.
SW – “1” if you want to use additional ROM with programs. You can switch this ROM at any time after you copy a program from there to RAM for use. You can put this switch in “0” position straight away if you don’t need any programs from the ROM.
SW – “1” to switch on 1Hz timer interrupt. You can keep it “0” if you are not going to use it.
SW – “0”. If you put this switch in position “1” the CPU will go to “HOLD” mode. This mode is used for debugging and to read/write memory dumps with “DE1 CONTROL PANEL” program.
SW, SW, SW – position of these switches doesn’t matter in minimal configuration.
In the next post we will learn how to use the computer in minimal configuration.