My first personal computer is Altair 8800, so I’m familiar with the front panel, its glamour and its pains. Nowadays I want a front panel that’s relatively easy to enter data via PS2 keyboard and easy to read with 7-segment display. It also has the benefit of being small, the size of a standard RC2014 board. Altair’s front panel electronics is a complex TTL logic board the size of the entire front panel, so some level of complexity and ‘magic’ was already accepted in order to convey the simple concepts of entering program, single stepping, and running program. So I don’t feel too bad using a CPLD for user interface as well as interface to Z80.
Here is rev0 of FPZ80 for RC2014 where PS2 keyboard accepts user inputs and six 7-seg LED show 4 bytes of addresses and 2 bytes of data. It also has a serial input to accept user inputs from a workstation. The advantage of serial inputs is enabling transmission of a large file much like serial file uploading. Serial input function is not implemented right now, but PS2 input seems to work well.
The front panel has two modes of operation; Z80 mode has two commands, ‘s’ for single stepping where every ‘s’ advance the program counter by 1; and ‘r’ command to run the program continuously where another ‘r’ stop the program execution. Second mode of operation is FP mode. ‘Esc’ key toggles between Z80 mode and FP mode. When in FP mode, the decimal points of 7-seg display for 2 data digits are lit. Typing 0-9, a-f enter values in the data field. Carriage return deposit the values in memory and advances to next address and display the contents of memory. Every carriage return advance address by one and display its memory contents. Backspace decreases address by one and display its memory contents. ‘X’ command lit the decimal points of the 4 addresses digit and enables new 4-digit address to be entered. After 4-digit address is entered, the data field will display the contents of new address.
PS2 keyboard allows fairly quick data entry; I can type “00, enter, 00, enter, c3, enter, 00, enter, 00, enter” to input NOP, NOP, JP $0. Then I can type ESC to enter Z80 mode, then ‘s’ to single step or ‘r’ to run. ‘X’ command allows examine and modification of data anywhere in the 64K memory space, but in Z80 mode, the program counter always start from zero after reset; there are no command to force values into Z80’s PC register.
The FPZ80 logic is implemented in state machines in 128-macrocells CPLD which is near 100% utilized.
Bill
--
You received this message because you are subscribed to the Google Groups "RC2014-Z80" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rc2014-z80+...@googlegroups.com.
To view this discussion, visit https://groups.google.com/d/msgid/rc2014-z80/0050a11c-bc8b-4439-a980-b34d1deae736n%40googlegroups.com.
I’m an admirer of Karen Orton, I’ve worked with her on ZX79 prior to her passing. I’ll modify Simple80 to drive a serial port with A15 and interrupt just like Orton 3C so I can follow along the works on Orton 3C. The reason the RAM is on a ZIF socket is because I plan to glue battery and diodes to top of RAM to make it nonvolatile so I can program it on an EPROM programmer. This should save me all the hassles of manual data entry, even with faster FPZ80.
This what I plan to glue on top of a 128Kx8 RAM chip taking advantage of the active high chip select at RAM pin 30. The ~RESET output of MCP130 is connected to active high chip select, so when RAM is removed from ZIF socket, it pulls CS low thus protect the RAM from inadvertent writes nwhile moving between the computer and the programmer.
Bill
This is my RAM backup prototyped. I can verify the RAM contents are retained when powered off and moved to/from programmer. However, the programmer does not recognize it as DS1245, so unable to program it. I think the time delay of reset supervisor (MCP130) in negating ~RESET is preventing the programmer from programming it. Your scheme of diode chain and pass transistor may work better.
Still, having nonvolatile RAM is desirable, and I still can program the nonvolatile RAM in another setup then move the RAM back.