appreciation of clothing category

appreciation of clothing category

RETROCOMPUTING ON A CHIP

new electrical elements allow us to reconstruct old wiring a lot more efficiently. Especially, the easily accessible as well as affordable FPGA kits which offer the possibility to put together wiring of lots of old computers as an “on-a-chip” solution.

When I handled to get a hold of an old bubble LED screen as well as a quite mechanical matrix keyboard, I made a decision to develop a replica of an old single board computer. rational choices seemed to be to develop either KIM-1 or Heathkit ET-3400. Replicas of KIM-1 already exist, even for Arduino, so my task would be minimized to link the keyboard as well as display. however then I told myself that I would use the truth that my bubble screen has 9 positions as an reason to develop the legendary Czechoslovak single Board computer PMI-80 which utilized the exact same display. My replica is an FPGA, or rather an FPGA emulator of this extremely computer.

PMI-80

Original PMI-80 [Source: DLW blog]There most likely aren’t lots of people among the visitors of Hackaday who would understand this computer, which was made in the 80s in the former Czechoslovakia. Hackaday editor [Brian Benchoff] may be the only one reading this that has such a specimen. however if you have one of your own we’d like as well hear about it in the comments below. For those not alreay familiar, let’s introduce it first.

PMI-80 is a single board institution computer based on an Intel 8080 processor. considering that it was produced in the eighties behind the so-called Iron Curtain, it utilized Czechoslovakian Tesla chips instead of original Intel ones, although they were functionally identical, including the numbering (Intel 8080A had a designation MHB8080A, PIO 8255A was offered as MHB8255A etc.)

The base consists of common “Holy Trinity” wiring (8080A – 8224 – 8228). On the input of RESIN 8224 circuit was a capacitor as well as diode, supplying reset after being powered on. The crystal had 10 MHz, so the computer was running at a frequency of 10/9 = 1.111 MHz. INTA input circuit 8228 was linked to +12V, which made sure that in the event of an interruption request, direction RST 7 was carried out (i.e. jump to the address $0038).

Memory was developed from 1K PROM (8608, 1kx8) as well as 1 kB RAM (2x 2114) chips. PROM was offered at an address $0000 – $03FF, RAM was at $1C00 – $1FFF. It was even possible to add extra 2708 memory ($0400 – $07FF) to the board.

VAD30 screen [Image Source: nostalcomp.cz]The computer additionally included a VQD30 display, produced in the former Germany (Deutsche Demokratische Republik). This was a practical equivalent of screens NSA1198 or CQYP95 – 9 seven-segmented typical cathode displays. Input data was supplied by a keyboard which was developed as a 3×9 matrix. Both of these peripherals were driven by a circuit based on the PIO 8255. Port A outlets (PA0-PA6) managed private segments (anodes) with the drive transistors. Lowest four bits of port C were decoded by a circuit MH1082 (equivalent to 74145) to code 1-from-9, which was utilized to choose positions, as well as concurrently activating the columns of the keyboard. Keyboard lines were linked to bits PC4-PC6.

Programs were kept on tape in a extremely basic way, which was likewise managed by means of the PIO 8255. Every entry had a start bit (1), then the actual value, as well as a stop bit (0). during recording a program produced a provider frequency cycle of 0.2ms on PA6 port as well as strobbed it with the pin PA7. during reading the info was offered at bit PC7.

PIO 8255 was linked as a peripheral at addresses $F8-$FB. The computer board enabled insertion of one more PIO circuit, which was then linked to addresses $F4-$F7 as well as completely offered to applications.

Operation

The keyboard was composed of 25 secrets set up in a 5×5 matrix. Inside, however, it was wired differently. two secrets (RE as well as I) have led directly to the inputs of the processor (RESET, respectively INT). The staying secrets (0-9, A-F, EX, R, BR, M, L, S as well as =) have been wired in the already pointed out 3×9 matrix as shown here.

After turning it on, the screen screen checked out “PMI-80” as well as computer waited for any type of crucial press. after that it went into primary screen mode, determined by “?” on the left side of the display. then the computer waited for screen commands.

Monitor commands

M – modification / view the memory content. After pressing M the character M appears on the left as well as computer waits for address entry. pressing = activates the data entry. Each time you press = the address guideline boosts by 1. data input is completed by pressing secrets other than = as well as 0-F.

R – view as well as modification the contents of registers. After pressing R the character “r” appears on the left as well as computer waits for a keystroke which corresponds to register pair (AF = A, B = BC, D = DE, HL 9 = 8 = SP). Again, it is possible to customize dataas well as utilize = step to the next pair.

Ex – runs a program. computer waits for an address, pressing = jumps into the program. The program can be terminated by jumping to the address 0 or address 8 (corresponds to jump to the monitor).

BR – exact same as G, however with a breakpoint. very first you requirement to go into an address at which the program must be discontinued, as well as then the next starting address.

L, S – tons as well as save data (not implemented here)

I – Interruption. triggers interruption as well as jumps to address $0038. There is only instruction: JMP $1FE6. At this address (in RAM), you need to very first produce a jump into your handler routine.
RE – Reset. during reset the RAM does not clear, so it can be utilized as a program interruption as well as return to the monitor.

A screen providing with comments is offered from the Git repository.

PMI-80 in FPGA

I selected an low-cost FPGA dev kit, EP2C5/EP2C6 tiny Board, which is the same one grant Searle utilized for his Multicomp (Thanks for the inspiration!). It has an Altera Cyclone II chip which I programmed utilizing VHDL.

I linked a keyboard as a 5×5 matrix, not in an original 3×9; recoding into a type appropriate for the PMI is being handled inside the FPGA.

The screen is linked with resistors directly to the FPGA, as well as again, all logic as well as remapping into a type appropriate for emulation is being done inside the FPGA.

An interface for working with a tape recorder is missing, I did not carry out this yet. You can see my present application at my Github repo.

I utilized a freeware VHDL application of the 8080 called Light8080. It is not “T-perfect”, however that was not needed anyway. I have likewise utilized a pia8255 component.

The primary code is in the data rmi.vhd, where all the “glue logic” for every component: 8080, 8255, RAM, ROM, keyboard as well as LED.

The archive likewise includes test elements that I utilized when working on the emulation, eg. a basic screen showing hexadecimal numbers. getting the emulation to work properly was somewhat precarious. The original application of the 8080 processor dealt with somewhat non-standard timing, as a result odd specifies appeared on the bus, for example, RAM stopped providing out info before the processor handled to checked out it, etc. A few things assisted me:

Test ROM with a basic code

Clock generator with a frequency of about 1 Hz

Hexadecimal screen (component immediately refreshes the screen content, I brought data into the input directly from data or address bus)

Altera Probe – online logic probe linked to a circuit, it transmits data over a JTAG interface to the Quartus IDE.

Building the hardware as well as composing the emulator was a weekend of work as well as it’s still a “version 0.1”. In the future I would like to prolong the system to emulate other single-board computers (KIM, ET, maybe COSMAC ELF) as well as emulate the tape, maybe as RS-232 interface. Take a look at the quick video demo. inspect out the resources below, as well as leave a comment if you’re thinking about a lot more retro-computing on a chip projects.

Resources

Source codes: https://github.com/maly/fpmi

PMI-80 description in slovak:

http://www.nostalcomp.cz/pdfka/pmi80_popis.pdf

Click to gain access to pmi80_doplnky.pdf

Click to gain access to pmi_prirucka1.pdf

http://www.nostalcomp.cz/pdfka/pmi_prirucka2.pdf

Leave a Reply

Your email address will not be published. Required fields are marked *