Retokompulování na čipu

Nové elektrické prvky nám umožňují rekonstruovat staré zapojení mnohem efektivněji. Zvláště snadno dostupné, stejně jako cenově dostupné FPGA výstroje, které nabízejí možnost sestavit spoustu starých počítačů jako “on-a-chip” řešení.

Když jsem se zabýval držení staré obrazovky LED bubliny, stejně jako poměrně mechanická matrice klávesnice, rozhodl jsem se rozvíjet repliku starého jednomu deskového počítače. Zdálo se, že racionální možnosti se vyvine buď KIM-1 nebo Heathkit ET-3400. Repliky Kim-1 již existují, a to i pro Arduino, takže můj úkol by byl minimalizován tak, aby propojil klávesnici i displej. Nicméně pak jsem si říkal, že bych použil pravdu, že moje bublina obrazovka má 9 pozic jako důvod k rozvoji legendárního československého počítačového počítače PMI-80, který využil přesně stejný displej. Moje replika je FPGA, nebo spíše emulátor FPGA tohoto extrémně počítače.

PMI-80.

Originální PMI-80 [zdroj: DLW blog] s největší pravděpodobností nejsou spousta lidí mezi návštěvníky hackaday, kteří by pochopili tomuto počítači, který byl vyroben v 80. letech v bývalém Československu. Hackaday editor [Brian Benchoff] může být jediný čtení, které má takový vzor. Pokud však máte jednu z vlastních, rádi bychom o tom slyšeli v komentářích níže. Pro ty, kteří nejsou dobře známí, pojďme to nejprve představit.

PMI-80 je jedno palubní instituce počítač založený na procesoru Intel 8080. Vzhledem k tomu, že byl vyroben v osmdesátých letech za tzv. Železářským závěsem, to využilo československé tesla čipy namísto původních intel o sobě, i když byly funkčně identické, včetně číslování (Intel 8080A měl označení MHB8080A, Pio 8255A byl nabízen jako MHB8255a atd.)

Základ se skládá ze společné “Svaté Trojice” zapojení (8080A – 8224 – 8228). Na vstupu pryskyřice 8224 obvod byl kondenzátor, stejně jako dioda, napájení po zapnutí. Krystal měl 10 MHz, takže počítač běží na frekvenci 10/9 = 1,111 MHz. IntA vstupní obvod 8228 byl spojen s + 12V, což se ujistilo, že v případě požadavku přerušení, směr RST 7 byl proveden (tj. Přejít na adresu $ 0038).

Paměť byla vyvinuta od 1k Prom (8608, 1Kx8), stejně jako 1 kB RAM (2x 2114) čipy. Prom byl nabízen na adrese $ 0000 – $ 03FF, RAM byla na $ 1C00 – $ 1fff. Dokonce bylo možné přidat extra 2708 paměť ($ 0400 – $ 07ff) na tabuli.

Obrazovka VAD30 [Zdroj obrázku: nostalcomp.cz] Počítač navíc zahrnoval displej VQD30, vyrobený v bývalém Německu (Deutsche Demokratische Republik). Jednalo se o praktický ekvivalent obrazovek NSA1198 nebo CQYP95 – 9 sedmi-segmentovaných typických katodových displejů. Vstupní data byla dodávána klávesnicí, která byla vyvinuta jako matice 3 × 9. Oba tyto periferní zařízení byly poháněny obvodem na bázi PIO 8255. port a vývody (PA0-PA6) spravované soukromé segmenty (anody) s tranzistory pohonu. Nejnižší čtyři kousky portů C byly dekódovány okruhem MH1082 (ekvivalentní 74145) kódu 1-od-9, který byl použit pro zvolení poloh, stejně jako současně aktivující sloupy klávesnice. Klávesnice byly spojeny s bity PC4-PC6.

Programy byly uchovávány na pásku v extrémně základním způsobem, který byl rovněž spravován pomocí Pio 8255. Každý záznam měl začátek (1), pak skutečnou hodnotu, stejně jako stop bit (0). Během nahrávání programu vyrobil kódový cyklus poskytovatele 0,2ms na PA6 port, stejně jako ho strobboval s pinem PA7. Během čtení informovanosti byly nabízeny na bitovém PC7.

Pio 8255 byl propojen jako periferní na adrese $ F8- $ FB. Počítačová deska umožnila vložení jednoho dalšího PIO obvodu, který byl pak propojen s adresami $ F4- $ F7, stejně jako zcela nabízené aplikacím.

Úkon

Klávesnice byla složena z 25 tajemství nastavených v matici 5 × 5. Uvnitř však bylo zapojeno jinak. Dvě tajemství (re i I) vedly přímo ke vstupům procesoru (reset, resp. Int). Zůstat tajemství (0-9, A-F, ex, R, Br, M, L, S stejně jako =) byly zapojeny v již uvedeném 3 × 9 matrici, jak je znázorněno na obrázku.

Po zapnutí obrazovky se obrazovka zkontrolovala “PMI-80”, stejně jako počítač čekal na jakýkoliv typ klíčového tisku. Poté to šlo do primárního režimu obrazovky, určeno “?” na levé straně displeje. Pak počítač čekal na příkazy obrazovky.

Sledování příkazů

M – modifikace / zobrazení obsahu paměti. Po stisknutí m se zobrazí znak m na levé straně, stejně jako počítač čeká na položku adresy. stisknutí = aktivuje zadání dat. Pokaždé, když stisknete = pokyny pro adresu Boosts o 1. Datový vstup je dokončen stisknutím tajemství jiné než = stejně jako 0-f.

R – zobrazení i modifikace obsah registrů. Po stisknutí tlačítka R se zobrazí znak “R” vlevo, stejně jako počítač čeká na stisknutí klávesy, který odpovídá dvojomu registru (AF = A, B = BC, D = DE, HL 9 = 8 = SP). Opět je možné přizpůsobit dataStejně jako využití = krok k dalšímu páru.

Ex – spustí program. Počítač čeká na adresu, stiskněte = skoky do programu. Program lze ukončit skákání na adresu 0 nebo adresu 8 (odpovídá přeskočit na monitor).

Br – přesně jako g, nicméně s přerušením. Nejprve jste požadavek jít na adresu, ve které musí být program přerušen, stejně jako další spuštění adresy.

L, S – tun, stejně jako ukládání dat (zde není implementováno)

I – přerušení. Spustí přerušení, stejně jako skoky na adresu $ 0038. Existuje pouze instrukce: JMP $ 1FE6. Na této adrese (v RAM) potřebujete k prvnímu prvním produkci skok do rutiny psovoda.
Znovu resetovat. Během resetu RAM není jasné, takže může být využita jako přerušení programu, stejně jako návrat na monitor.

Na úložišti GIT je nabízena obrazovka s komentáři.

PMI-80 v FPGA

Vybral jsem nízkou cenu FPGA DEV kit, EP2C5 / EP2C6 malá deska, která je stejná, která je stejná grant Searle využívaná pro jeho multicomp (díky za inspiraci!). Má čip Altera Cyclone II, který jsem naprogramoval s využitím VHDL.

Připojil jsem klávesnici jako matrix 5 × 5, ne v originálu 3 × 9; Rozměrování do typu vhodného pro PMI je zpracovávána uvnitř FPGA.

Obrazovka je propojena s odpory přímo na FPGA, stejně jako znovu, všechny logiky, stejně jako přemapování do typu vhodného pro emulaci se provádí uvnitř FPGA.

Chybí rozhraní pro práci s magnetofonem, že jsem to ještě neprovedl. Můžete vidět mou současnou aplikaci v mé GitHub repo.

Využil jsem freeware VHDL aplikace 8080 nazvaného Light8080. Není to “t-perfektní”, nicméně to nebylo nutné stejně. Stejně tak využil složku PIA8255.

Primární kód je v datech RMI.VHD, kde všechny “logiky lepidla” pro každou komponentu: 8080, 8255, RAM, ROM, klávesnice, stejně jako LED.

Archiv rovněž obsahuje testovací prvky, které jsem využíval při práci na emulaci, např. Základní obrazovka zobrazující hexadecimální čísla. Získání emulace pracovat správně byla poněkud nejistá. 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 se základním kódem

Clock generator with a frequency of about 1 Hz

Hexadecimální obrazovka (komponenta okamžitě obnovuje obsah obrazovky, přivedl jsem data do vstupu přímo z dat nebo adresní sběrnice)

ALTERA PROBE – online logická sonda spojená s obvodem, přenáší data přes rozhraní JTAG do křemene 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.

Zdroje

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 *

Related Post