チップ


新しい電気素子上の逆転写により、古い配線をより効率的に再構築することができます。特に、アクセス可能な手頃な価格のFPGAキットだけでなく、「オンチップ」ソリューションとして多数の古いコンピュータの配線をまとめる可能性を提供します。

私が古いバブルLEDスクリーンを握るために取り扱われたとき、そしてかなりの機械的なマトリックスのキーボードは、古い単一ボードコンピュータのレプリカを開発することを決定しました。合理的な選択は、KIM-1またはHeathkit ET-3400のどちらかを開発するように思われました。 KIM-1のレプリカは、Arduinoでもすでに存在しているので、私のタスクはキーボードと表示をリンクするために最小化されます。しかし、私は私のバブルスクリーンが正確な同じディスプレイを利用した伝説のCzechoSlovakシングルボードコンピューターPMI-80を開発する理由として9つの位置を持っているという真実を使うだろうと私自身に言った。私のレプリカはFPGA、むしろこの非常にコンピュータのFPGAエミュレータです。

PMI-80

オリジナルPMI-80 [出典:DLW Blog]このコンピュータを理解しているハッカデイの訪問者の中で多くの人がたくさんあります。 Hackaday Editor [Brian Benchoff]は、このような標本を持っている唯一のものです。しかし、あなたがあなた自身のものを持っているならば、私たちは以下のコメントでそれについて聞くのが好きです。それでもなじみのない人のために、それを最初に紹介しましょう。

PMI-80は、Intel 8080プロセッサに基づく単一のボードイン機関コンピュータです。いわゆる鉄のカーテンの後ろに80年代に生産されたことを考えると、それはオリジナルのIntel 1の代わりにチェコスロバキアのTeslaチップを利用しましたが、ナンバーリングを含めて機能的に同一でしたが(Intel 8080AはMHB8080Aを持っていた、PIO 8255AはMHB8255Aとして提供されました。等。)

基本は一般的な「聖三位位」の配線(8080A – 8224 – 8228)で構成されています。樹脂8224回路の入力には、ダイオード、電源投入後のリセットを供給してください。結晶は10 MHzを有しているので、コンピュータは10/9 = 1.111MHzの周波数で動作していました。 INTA入力回路8228は、割り込み要求が発生した場合には、方向RST 7が実行されたことを確認した(すなわち、アドレス0038)。

メモリは、1K PROM(8608,1kx8)および1kbのRAM(2倍2114)チップから開発されました。 PROMは$ 0000 – $ 03ffで提供された、RAMは1cm $ 1FFFであった。ボードに余分な2708メモリ($ 0400 – 07FF)を追加することさえ可能でした。

VAD30スクリーン[画像ソース:NostalComp.cz]コンピュータは、前者のドイツで生産されたVQD30ディスプレイ(Deutsche Demokratische Republik)を追加しました。これは、スクリーンNSA1198またはCQYP95 – 9 7セグメント化された典型的な陰極ディスプレイの実用的な同等のものでした。入力データは、3×9行列として開発されたキーボードによって供給されました。これらの周辺機器は両方とも、PIO 8255に基づく回路によって駆動されました。駆動トランジスタを持つコンセント(PA0-PA6)管理されたプライベートセグメント(アノード)。最低4ビットのポートCを回路MH1082(74145に相当)で復号して、1から9を符号化し、ポジションの選択とキーボードの列を同時にアクティブにします。キーボード線はビットPC4-PC6にリンクされていました。

プログラムは非常に基本的な方法でテープに保持され、それは同様にPIO 8255によって管理されていました。すべてのエントリはスタートビット(1)、そして実際の値、およびストップビット(0)を持っていました。記録中は、PA6ポート上で0.2msのプロバイダ周波数サイクルを作成し、ピンPA7でストロボを作成しました。読み取り中に情報はビットPC7で提供されました。

PIO 8255はアドレス$ F8- $ FBの周辺機器としてリンクされていました。コンピュータボードはもう1つのPIO回路を挿入可能にしました。

手術

キーボードは5×5行列で設定された25個の秘密で構成されていました。しかし、それは違って配線されました。 2つの秘密(Iと同様にI)がプロセッサの入力に直接LED(リセット、それぞれINT)に導いています。ここに示されているように、滞在秘密(0~9、a – f、ex、r、br、m、l、sおよび=)は既に指摘されている3×9行列に配線されている。

それをオンにした後、画面画面は「PMI-80」とコンピュータを任意の種類の重要なプレスを待っていました。その後、それは「?」によって決定されたプライマリスクリーンモードに入りましたディスプレイの左側に。その後、コンピュータは画面コマンドを待っていました。

コマンドを監視します

m – 修正/メモリコンテンツを表示します。 Mを押した後、左側に文字Mが表示され、コンピュータはアドレスエントリを待ちます。 PRESHING =データエントリをアクティブにします。 =を押すたびに、アドレスガイドラインは1でブーストします。

R – レジスタの内容を変更するだけでなく、表示。 Rを押すと、レジスタ対に対応するキーストローク(AF = A、B = BC、D = DE、HL 9 = 8 = 8 = 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

Leave a Reply

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