новые электрические элементы позволяют нам восстановить старое проводку намного более эффективно. Особенно легко доступны, а также доступные наборы FPGA, которые предлагают возможность объединять проводку много старых компьютеров в виде решения «On-A-Chip».
Когда я обрабатывал, чтобы получить удержание старого светодиода пузыря, а также довольно механическую матричную клавиатуру, я принял решение о разработке реплики старого одного доска компьютера. Рациональный выбор, казалось, разрабатывал либо KIM-1 или Heathkit ET-3400. Реплики KIM-1 уже существуют даже для Arduino, поэтому моя задача будет минимизирована для связи клавиатуры, а также дисплея. Однако тогда я сказал себе, что я буду использовать правду, что мой пузырьковый экран имеет 9 позиций в качестве причины разработки легендарного чехословацкого одноразового компьютера PMI-80, который использовал тот же самый дисплей. Моя реплика – это FPGA или, скорее, эмулятор FPGA этого чрезвычайно компьютера.
PMI-80.
Оригинал PMI-80 [Источник: Блог DLW] Там, скорее всего, нет многих людей среди посетителей Хатадая, который бы понял этот компьютер, который был сделан в 80-х годах в бывшей Чехословакии. Редактор HackAday [Brian Skesoff] может быть единственным чтением этого, который имеет такой образец. Однако, если у вас есть один из ваших собственных, мы хотели бы, чтобы слышать об этом в комментариях ниже. Для тех, которые не знакомы, давайте представим это первым.
PMI-80 – это компьютерное учреждение, основанное на процессоре Intel 8080. Учитывая, что он был произведен в восьмидесятых позади так называемого железного занавеса, он использовал чехословацкие чипы Tesla вместо оригинальных Intel, хотя они были функционально идентичными, включая нумерацию (Intel 8080A имел обозначение MHB8080A, PIO 8255A было предложено как MHB8255A так далее.)
База состоит из общей «святой троицы» проводки (8080A – 8224 – 8228). На входе монтажа моделей 8224 года был конденсатор, а также диод, снабжающий сброс после включения. У кристалла было 10 МГц, поэтому компьютер работает на частоте 10/9 = 1,111 МГц. INTA Входная схема 8228 была связана с + 12 В, что убедилось, что в случае запроса прерываний направление RST 7 было проведено (то есть перейти к адресу $ 0038).
Память была разработана с 1K PROM (8608, 1KX8), а также 1 КБ ОЗУ (2x 2114) чипсов. Выпускной, был предложен по адресу $ 0000 – $ 03FF, RAM составил 1 млрд долларов – $ 1fff. Еще можно было добавить дополнительную 2708 памяти ($ 0400 – $ 07FF) на доску.
VAD30 экран [Источник изображения: nostalcomp.cz] Компьютер дополнительно включал в себя дисплей VQD30, произведенный в бывшей Германии (Deutsche Demokratische Republik). Это был практичный эквивалент экранов NSA1198 или CQYP95 – 9 семисементных типичных отображений катода. Входные данные были предоставлены клавиатурой, которая была разработана в виде матрицы 3 × 9. Обе эти периферии приводили в движение схемой на основе Pio 8255. Порт-розетки (PA0-PA6) управляемые частными сегментами (анодами) с приводными транзисторами. Самые низкие четыре бита порта C были декодированы с помощью цепи MH1082 (эквивалентной 74145) к коду 1-от-9, который использовался для выбора позиций, а также одновременно активируя колонны клавиатуры. Линии клавиатуры были связаны с битами PC4-PC6.
Программы удерживались на ленту чрезвычайно основным образом, что также управляется с помощью PIO 8255. Каждая запись имела стартовый бит (1), а затем фактическое значение, а также менструации (0). Во время записи программы производится частотный цикл провайдера на 0,2 мс на порт PA6, а также затруднил его с помощью PA PA7. Во время чтения информации было предложено на бит PC7.
PIO 8255 был связан в виде периферизации на адресах $ F8- $ FB. Компьютерная плата включила вставку еще одной цепи PIO, которая затем связывала с адресами $ F4- $ F7, а также полностью предложенным приложениям.
Эксплуатация
Клавиатура состояла из 25 секретов, установленных в матрице 5 × 5. Внутри, однако, это было проводно по-другому. Две секреты (Re, как и i) привели непосредственно к входам процессора (сброс, соответственно INT). Секреты пребывания (0-9, A-F, Ex, R, BR, M, L, S, а также =) были проводны в уже указанном матрице 3 × 9, как показано здесь.
После включения экран экрана проверил «PMI-80», а также компьютер ждал любого типа важной прессы. После этого он вошел в режим основного экрана, определяемый «?» на левой стороне дисплея. Затем компьютер ждал команд экрана.
Команды монитора
M – модификация / Просмотр содержимого памяти. После нажатия M символ m появляется слева, а также компьютер ждет для записи адреса. Нажатие = активирует запись данных. Каждый раз, когда вы нажимаете = ориентирован на рекомендации адреса на 1. Ввод данных завершен, нажав секреты, отличные от =, а также 0-F.
R – Просмотр, а также модификация содержимого регистров. После нажатия r символ «R» появляется слева, а также компьютер ждет нажатия клавиш, который соответствует регистрации для регистрации (AF = A, B = BC, D = DE, HL 9 = 8 = SP). Опять же, можно настроить данныеas 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.
Ресурсы
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