Retrocomuting על שבב

אלמנטים חשמליים חדשים מאפשרים לנו לשחזר חיווט ישן הרבה יותר ביעילות. במיוחד, בקלות נגיש כמו גם ערכות FPGA הזולה אשר מציעים את האפשרות להרכיב חיווט של הרבה מחשבים ישנים כמו “על A-Chip” פתרון.

כאשר טיפלתי כדי לקבל אחיזה של מסך הוביל הבועה הישן, כמו גם מקלדת מטריקס מכני למדי, עשיתי החלטה לפתח העתק של מחשב הלוח הישן. הבחירות הגיוניות נראו להתפתח או קים-1 או הית’כיט et-3400. Replicas של קים -1 כבר קיימים, אפילו עבור Arduino, כך המשימה שלי יהיה ממוזער לקשר את המקלדת כמו גם להציג. עם זאת, אז אמרתי לעצמי שאני אשתמש באמת כי מסך הבועה שלי יש 9 עמדות כסיבה לפתח את האגדי Czechoslovak הלוח יחיד מחשב PMI-80 אשר ניצל את אותה תצוגה. העתק שלי הוא FPGA, או ליתר דיוק אמולטור FPGA של מחשב זה מאוד.

PMI-80.

מקורי PMI-80 [מקור: DLW בלוג] יש ככל הנראה הם לא הרבה אנשים בין המבקרים של Hackaday אשר יבינו את המחשב הזה, אשר נעשה בשנות ה -80 בצ’כוסלובקיה לשעבר. העורך Hackaday [Brian Benchoff] עשוי להיות היחיד לקרוא את זה כי יש כזה דגימה. עם זאת, אם יש לך אחד משלך שאנחנו רוצים גם לשמוע על זה בהערות להלן. עבור אלה לא alreay מוכר, בואו להציג את זה קודם.

PMI-80 הוא מחשב מוסד יחיד המבוסס על מעבד Intel 8080. בהתחשב בכך שהוא הופק בשנות השמונים שמאחורי מסך הברזל המכונה, הוא ניצל צ’יפסלובקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאקיאני, אם כי הם היו זהים מבחינה פונקציונלית, כולל מספור (Intel 8080a היה ייעוד MHB8080A, PIO 8255A הוצע כמו MHB8255A וכו.)

הבסיס מורכב משותף “טריניטי קדוש” חיווט (8080A – 8224 – 8228). על הקלט של שרף 8224 מעגל היה קבלים כמו גם דיודה, אספקת איפוס לאחר להיות מופעל על. הגביש היה 10 MHz, כך שהמחשב פועל בתדירות של 10/9 = 1.111 MHz. מעגל Inta Inta 8228 היה מקושר + 12V, אשר הקפידו כי במקרה של בקשת הפרעה, כיוון RST 7 בוצע (כלומר לקפוץ לכתובת $ 0038).

זיכרון פותח מ 1k Prom (8608, 1kx8), כמו גם 1 KB RAM (2x 2114) צ ‘יפס. Prom הוצע בכתובת $ 0000 – $ 03ff, RAM היה ב $ 1C00 – $ 1fff. זה היה אפילו אפשרי להוסיף תוספת 2708 זיכרון ($ 0400 – $ 07FF) ללוח.

VAD30 מסך [תמונה מקור: nostalcomp.cz] כללה גם תצוגת VQD30, המיוצר בגרמניה לשעבר (Deutsche Demokratische Republik). זה היה מקבילה מעשית של מסכי NSA1198 או CQYP95 – 9 שבע-מקוטע מציג טיפודה טיפוס. נתוני הקלט סופקו על ידי מקלדת שפותחה כטריקס של 3 × 9. שני היקפי הללו הונעו על ידי מעגל המבוסס על פיו 8255. יציאות שקעים (PA0-PA6) מנוהלים מקטעים פרטיים (אנודות) עם טרנזיסטורים הכונן. ארבעת פיסות הנמל של הנמוך ביותר היו מפוענקות על ידי מעגל MH1082 (שווה ערך ל -7414) לקוד 1-t-9, אשר נוצלה לבחירת עמדות, וכן במקביל להפעיל את העמודות של המקלדת. קווי מקלדת היו מקושרים לסיביות PC4-PC6.

תוכניות נשמרו על קלטת באופן בסיסי מאוד, אשר היה מנוהל גם באמצעות Pio 8255. כל רשומה היה קצת סיביות (1), ולאחר מכן את הערך בפועל, כמו גם קצת עצירה (0). במהלך ההקלטה של ​​התוכנית הפיקה מחזור תדר ספק של 0.2ms על יציאת PA6, כמו גם strobbed אותו עם PIN PA7. במהלך קריאה המידע הוצע קצת PC7.

Pio 8255 היה מקושר כפריפריה בכתובות $ F8- $ FB. לוח המחשב מאופשר את החדרה של מעגל פיו נוסף, אשר נקשר אז לכתובות $ F4 – $ F7, כמו גם הציע לחלוטין ליישומים.

פעולה

המקלדת היתה מורכבת מ -25 סודות שהוקמו במטריצה ​​של 5 × 5. עם זאת, הוא היה קווי שונה. שני סודות (מחדש, כמו גם אני) הובילו ישירות לתשומות של המעבד (לאפס, בהתאמה int). סודות שהייה (0-9, A-F, EX, R, BR, M, L, S כמו גם =) כבר חוטית ב כבר הצביע 3 × 9 מטריקס כפי שמוצג כאן.

לאחר הפעלתו, מסך המסך נבדק “PMI-80”, כמו גם המחשב המתין עבור כל סוג של עיתונות מכריע. לאחר מכן הוא נכנס למצב מסך ראשי, שנקבע על ידי “?” בצד שמאל של התצוגה. אז המחשב המתין לפקודות המסך.

צג פקודות

M – שינוי / להציג את תוכן הזיכרון. לאחר לחיצה על M אופי M מופיע בצד שמאל, כמו גם מחשב מחכה כניסה לכתובת. לחיצה על = מפעיל את הזנת הנתונים. בכל פעם שאתה לוחץ על תאריך הנחיה של כתובות לפי 1. קלט נתונים הושלמה על ידי לחיצה על סודות מלבד = = כמו גם 0-f.

R – View, כמו גם שינוי התוכן של רושמים. לאחר לחיצה על אופי “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

Leave a Reply

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

Cape Town, South Africa