Retrocomputing on A Chip

تسمح لنا عناصر كهربائية جديدة بإعادة بناء الأسلاك القديمة بكثير بكثير. خاصة، يمكن الوصول إليها بسهولة وكذلك مجموعات FPGA بأسعار معقولة والتي توفر إمكانية تجميع الأسلاك من الكثير من أجهزة الكمبيوتر القديمة كحل “على A-A-Chip”.

عندما تعاملت مع تعليق شاشة LED قديمة قديمة بالإضافة إلى لوحة مفاتيح مصفوفة ميكانيكية للغاية، اتخذت قرارا بتطوير نسخة طبق الأصل من كمبيوتر لوحة واحدة قديم. بدا أن الخيارات العقلانية هي تطوير إما كيم – 1 أو هيثكيت ET-3400. النسخ المتماثلة من KIM-1 موجودة بالفعل، حتى بالنسبة لاردوينو، لذلك سيتم تقليل مهمتي لربط لوحة المفاتيح وكذلك عرض. ومع ذلك، أخبرت نفسي أنني سأستخدم الحقيقة التي تحتوي عليها شاشة الفقاعات الخاصة بي 9 وظائف كسبب لتطوير الكمبيوتر المجلس الأسطوري Czechoslovak Single PMI-80 الذي استخدم نفس العرض بالضبط. بلدي النسخة المتماثلة هي FPGA، أو بدلا من محاكي FPGA لهذا الكمبيوتر للغاية.

PMI-80.

PMI-80 الأصلي [المصدر: مدونة DLW] على الأرجح ليس هناك الكثير من الناس بين زوار Hackaday الذين يفهمون هذا الكمبيوتر، والذي صنع في الثمانينيات في تشيكوسلوفاكيا السابقة. محرر Hackaday [Brian Benchoff] قد يكون هو القراءة الوحيدة التي لديها مثل هذه العينة. ومع ذلك، إذا كان لديك واحدة خاصة بك، فنحن نود أن نسمع كذلك في التعليقات أدناه. بالنسبة لأولئك الذين لا يعرفون الريمي، دعونا نقدمها أولا.

PMI-80 هو كمبيوتر مؤسسة لوحية واحدة يعتمد على معالج Intel 8080. بالنظر إلى أنه تم إنتاجه في الثمانينات وراء الستار الحديدي المزعوم، استخدم رقائق تشيكوسلوفاكية Tesla بدلا من إنتل الأصلي، على الرغم من أنها كانت متطابقة بشكل عام، بما في ذلك الترقيم (كان لدى 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) بالإضافة إلى رقائق RAM (2x 2114). عرضت حفلة موسيقية على عنوان 0000 دولار – $ 03FF، وكان ذاكرة الوصول العشوائي عند 1C00 $ – $ 1FFF. كان من الممكن إضافة ذاكرة إضافية 2708 (0400 دولار – 07 $) إلى اللوحة.

شاشة VAD30 [مصدر الصورة: Nostalcomp.cz] تضمن الكمبيوتر بالإضافة إلى شاشة VQD30، التي تم إنتاجها في ألمانيا السابقة (Deutsche Demokratische Republik). كان هذا معادلا عمليا للشاشات NSA1198 أو CQUP95 – 9 شاشات تعرض الكاثود النموذجي المقدم من سبعة. تم توفير بيانات الإدخال بواسطة لوحة مفاتيح تم تطويرها كصفوفة 3 × 9. كانت كل من هذه الأجهزة الطرفية مدفوعة بالدائرة بناء على PIO 8255. ميناء المنافذ المدارة (PA0-PA6) المدارة (ANODES) مع الترانزستورات محرك الأقراص. تم فك تشفير أربعة أجزاء من الميناء C من الدائرة MH1082 (أي ما يعادل 74145) لرمز 1-من-9، والتي تم استخدامها لاختيار المواقف، بالإضافة إلى تنشيط أعمدة لوحة المفاتيح بشكل متزامن. كانت خطوط لوحة المفاتيح مرتبطة ب BITS PC4-PC6.

تم الاحتفاظ البرامج على الشريط بطريقة أساسية للغاية، والتي تم إدارتها بالمثل عن طريق PIO 8255. كان لكل إدخال بداية جديدة (1)، ثم القيمة الفعلية، وكذلك بتوقف قليلا (0). أثناء تسجيل برنامج أنتجت دورة تردد مزود تبلغ 0.2 مللي ثانية على منفذ PA6، فضلا عن صعدته باستخدام PIN PA7. أثناء قراءة المعلومات عرضت في PC7 بت.

تم ربط PIO 8255 كحرفي في العناوين F8- $ FB. تمكين لوحة الكمبيوتر من إدراج دائرة PIO أخرى، والتي تم ربطها بعد ذلك بالعناوين $ F4- $ F7 بالإضافة إلى تقديم الطلبات بالكامل.

عملية

تم تأكون لوحة المفاتيح من 25 أسرارا تم إعدادها في مصفوفة 5 × 5. في الداخل، ومع ذلك، فقد سلكي بشكل مختلف. أدت أسرار (إعادة وكذلك I) مباشرة إلى مدخلات المعالج (إعادة تعيين، على التوالي). أسرار البقاء (0-9، A-F، EX، R، BR، R، 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