Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino-gebaseerde Altair 8800 Simulator Kit – Bouw & Programmeer een Retrocomputer

Onderdelen en benodigdheden

Onderdeel Aantal Opmerkingen
Arduino Mega 2560 1 Kies Mega of Due, niet beide
Arduino Due 1 Kies Mega of Due, niet beide
LED (standaard) 36 Voor frontpaneel indicatoren
Algemene NPN-transistor 36 LED-stuurschakelingen
Weerstand 10 kΩ 36 Basisweerstanden voor transistors
Weerstand 150 Ω 36 LED-stroombegrenzing
Mini wisselschakelaar SPDT On-On 17 16 adreswisselaars + voedingswisselaar
Drukknop SPDT (On)-Off-(On) 8 Functiewisselaars (RUN/STOP/EXAMINE...)
Metalplaat voor frontpaneel achterkant 1 22 gauge, voor montage switches/LEDs
SparkFun Bluetooth Modem - BlueSMiRF Silver 1 (optioneel) Draadloze seriële terminal verbinding
microSD kaart met adapter 1 (optioneel) Alleen voor disk drive emulatie (Due vereist)

Software en online diensten

  • Arduino IDE – Programmeeromgeving
  • Arduino DueFlashStorage bibliotheek – Data opslaan in flash geheugen (Due heeft geen EEPROM)
  • Arduino Due soft_uart bibliotheek – Software UART implementatie (aangepaste versie in broncode)

Over dit project

Als je dit wilt bouwen maar liever niet volledig vanaf nul begint, bekijk dan Chris Davis' Altair-Duino kit die compleet geleverd wordt met alle componenten, een PCB, behuizing en een voorgeprogrammeerde Arduino Due!

Hier zijn enkele inspirerende builds van anderen:

  • Alan Lowther – Metalen behuizing met Raspberry Pi voor I/O en spraaksynthese
  • Martin Zumr – Mooie houten behuizing
  • Chris Davis (kb0wwp) – Eigen PCB en prachtige behuizing
  • Justin Davis – Altair shield voor Arduino Due

Deel jouw creatie graag – ik post het graag hier!

Motivatie

Lang al wilde ik een Altair 8800 om mee te experimenteren. Echte vintage Altairs zijn zeldzaam en duur ($1500-$2500). Alternatieven als altairclone.com kosten nog steeds $600. Gelukkig maakte Mike Douglas (altairclone.com) alle documentatie en software publiekelijk beschikbaar.

Toen ik keek naar de Arduino Mega 2560 specificaties, realiseerde ik me dat deze precies voldoende I/O-pinnen heeft voor de 36 LEDs en 32 switches van het Altair frontpaneel. De uitdaging was aangenomen!

Arduino-gebaseerde Altair 8800 Simulator Kit – Bouw & Programmeer een Retrocomputer

Mega vs Due: Prestatieverschillen

Kenmerk Arduino Mega 2560 Arduino Due
Emulatie snelheid ~25% van originele Altair ~100% (originele snelheid)
Geëmuleerde RAM 6 KB 64 KB (volledig adresbereik)
Permanente opslag 4 KB EEPROM 32 KB+ in flash geheugen
Disk emulatie Niet ondersteund Ondersteund (via SD kaart op SPI)

Met de Due heb ik nu een simulator die op originele snelheid draait, 64KB RAM biedt, veel Altair software bevat en nog steeds 32KB semi-permanente opslag heeft voor programma's en data.

Authenticiteit en validatie

Mijn doel was het "echte" Altair 8800 gevoel nabootsen. De frontpaneel LEDs weerspiegelen het echte gedrag zoveel mogelijk. Een criterium: het frontpaneel "Kill-the-Bit" spel moet speelbaar zijn – en dat is het!

De simulatie is zelfs zo accuraat dat de Altair 8800 muziekdemo werkt. Let op: dit is gebaseerd op elektromagnetische interferentie die een AM-radio oppikt, net als bij de oorspronkelijke hardware!

Arduino-gebaseerde Altair 8800 Simulator Kit – Bouw & Programmeer een Retrocomputer
Arduino-gebaseerde Altair 8800 Simulator Kit – Bouw & Programmeer een Retrocomputer
Arduino-gebaseerde Altair 8800 Simulator Kit – Bouw & Programmeer een Retrocomputer

Let op: Ik heb geen originele Altair, alle informatie komt uit documentatie en video's. Er kunnen kleine verschillen zijn, maar over het algemeen wordt het originele gedrag goed gereproduceerd. Een bewust verschil: de HLDA status LED toont bij de simulator of een bestand (seriële/tape capture/replay) open is, in plaats van CPU halt acknowledge.

Hoogtepunten

  • Nauwkeurige reproductie van Altair frontpaneel gedrag
  • Draait op originele snelheid (Due) of 25% (Mega)
  • 64KB RAM (Due) of 6KB (Mega)
  • Inclusief Altair programma's: Pong, Altair 4K BASIC (eerste Microsoft product), Extended BASIC, MITS Programming System II (alleen Due), Time Sharing BASIC
  • BASIC en Assembler voorbeeldprogramma's ingebouwd
  • Emuleert 88-SIO, 88-2SIO en 88-ACR (cassette interface) – standaard gemapt op USB seriële poort (115200 baud 8n1)
  • Bluetooth dongle aanbevolen op RX/TX pinnen voor draadloze terminal
  • Op Due: hoofserial (USB) en Serial1 (pinnen 18/19) simultaan bruikbaar
  • Data capture/replay tot 256 bestanden in lokale opslag (EEPROM/FLASH)
  • Cassette interface ondersteunt CSAVE/CLOAD in Extended BASIC (automatisch)
  • Emuleert Cromemco Dazzler graphics (extra hardware/software nodig)
  • Emuleert Processor Technology VDM-1 video terminal (extra hardware/software nodig)
  • Tot 16 88-DCDD disk drives (standaard 4) – optioneel, vereist SD kaart op SPI (alleen Due)
  • Emuleert 88-HDSK harde schijf controller (max 4 units, 4 platters per unit)
  • Emuleert 88-RTC-VI met real-time klok en vector interrupts (voor Time Sharing BASIC)
  • 256-byte geheugenpagina's opslaan/laden naar permanente opslag
  • Veel instellingen aanpasbaar via geïntegreerde configuratie-editor

Belangrijk voor Due gebruikers: Alles wat in de simulator wordt opgeslagen (captured data, programma's) wordt gewist bij het uploaden van een nieuwe sketch, omdat data in flash geheugen wordt opgeslagen dat gewist wordt bij herprogrammeren. Als een SD kaart is aangesloten, blijft data bewaard op de SD kaart.

Documentatie

Omdat de simulator identiek werkt als de echte Altair 8800, is de originele Altair documentatie (makkelijk te vinden via Google) voldoende voor het bedienen van de frontpaneel switches.

De simulator bevat echter extra functies en ingebouwde software toegankelijk via de AUX1/AUX2 switches (op de originele Altair aanwezig maar ongebruikt). Deze functionaliteit wordt uitgelegd in het bestand Documentation.pdf in de broncode repository.

Bouwinstructies

Doel was minimaal ondersteunende elektronica. Zowel Mega als Due hebben voldoende I/O-pinnen voor directe aansluiting van alle frontpaneel elementen. Alleen de transistor/resistor schakelingen voor de 36 LEDs zijn nodig (te veel LEDs direct op Arduino pinnen zou de stroomlimiet overschrijden).

Volledige schema's zijn tedereus en repetitief (36 identieke LED drivers, 32 switches). De schema-documentatie bevat daarom gedetailleerde tabellen met pin-toewijzingen en schema's voor de sub-schakelingen (zoals LED drivers). Een Fritzing bestand toont de stripboard layout voor de LED drivers.

Frontpaneel constructie

  1. Hogekwaliteit scan van Altair frontpaneel (vintage-computer.com) afgedrukt op karton
  2. 22 gauge metalplaat als achterkant, gaten geboord voor LEDs en switches
  3. LED driver schakelingen gesoldeerd op stripboard, direct aan LEDs gesoldeerd die in metalplaat zitten
  4. Eenvoudige houten doos houdt frontpaneel recht (minder diep dan originele Altair)
Arduino-gebaseerde Altair 8800 Simulator Kit – Bouw & Programmeer een Retrocomputer

Voedingsschakelaar

Voedingsconnector (zoals op Arduino) aan behuizing, bedraad naar frontpaneel On/Off switch, daarvandaan naar voedingsplug in Arduino.

SD kaart voor disk emulatie (Due)

Laatste pagina van schema-documentatie toont gedetailleerde wiring voor SD kaart op Due's SPI poort.

Compiler optimalisatie (Due)

Voordat je de sketch uploadt naar de Due, zet de compiler optimalisatie op "performance" (standaard is "size"). Bewerk:

c:\Users\[user]\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\platform.txt

Vervang alle voorkomens van -Os door -O3. Zonder deze stap draait de simulator aanzienlijk langzamer.

Standalone modus (zonder frontpaneel hardware)

De software kan ook draaien op een "blote" Arduino (Mega of Due) zonder frontpaneel. Bewerk config.h en zet #define STANDALONE 1. Raadpleeg de sectie "Debugging capabilities" in de documentatie voor virtuele frontpaneel bediening. Dit is niet het beoogde gebruik – voor pure software emulatie zijn PC-gebaseerde emulators beter. config.h bevat schakelaars om functionaliteit in/uit te schakelen.

Erkenningen

  • Mike Douglas (deramp5113) – Altair 8800 instructievideo's en verzamelde hardware/software handleidingen op altairclone.com
  • Martin Eberhard – ADEXER tool voor low-level debugging harde schijf support; twee bootloaders (CDBL en HDBL)
  • i8080 core model project – Inspiratie voor half-carry berekening en DAA instructie implementatie
  • Mike Douglas – Voor het verzamelen en functioneel maken van alle originele Altair software

Inbegrepen software (selectie):

  • Altair 4K BASIC (MITS 1975)
  • Altair Extended ROM Basic (MITS 1975)
  • Altair Time Sharing Basic (MITS 1977)
  • Kill-the-Bit spel (Dean McDaniel, 1975)
  • Pong spel met frontpaneel (Mike Douglas)
  • 'Daisy, Daisy...' muziek (Steve Dompier, 1975)
  • Music System (Processor Technology 1977)
  • MITS Programming System II (MITS 1976)
  • Altair Turnkey Monitor (MITS 1977)
  • i8080 CPU Diagnostic (Microcosm Associates, 1980)
  • i8080 CPU Exerciser (Frank D. Cringle 1994, Ian Bartholomew 2009)

Disk en harde schijf afbeeldingen (in "disks" subdirectory) afkomstig van altairclone.com en deramp.com – CP/M, disk BASIC versies, Altair DOS (inclusief Fortran) en meer.

Discussieforum

Chris Davis (Altairduino.com) heeft een Google Group opgesteld voor Altair-Duino discussies:

https://groups.google.com/forum/#!forum/altair-duino

Broncode

Arduino Altair 8800 simulator code op GitHub

Schema's

In plaats van volledige schema's (zeer repetitief) beschrijft dit document welke pinnen met welke frontpaneel elementen verbonden worden en geeft schema's voor de sub-schakelingen (zoals LED driver schakelingen).

ledstrip_4OVCpRyKQS.fzz – Fritzing bestand met stripboard layout voor LED componenten. Belangrijk: componenten per LED mogen maximaal 5 plekken op stripboard innemen zodat LEDs dicht genoeg bij elkaar passen voor originele frontpaneel afmetingen.

Productieproces

  1. Arduino Nano Flight Simulator 2020 Bedieningspaneel – LCD & CDI Display
  2. Bluetooth-gecontroleerde Arduino Spybot bouwen
  3. FlickMote: Gebarengecontroleerde IR-afstandsbediening voor Slimme Huizen
  4. DIY Arduino TV-B-Gone: Universele TV-uit-schakelaar
  5. Bouw een Aangepaste LED Hoofdklok met Alarm – Zichtbaar vanaf 12 Meter
  6. Find Me: Slimme Item Locator met Arduino en Bluetooth
  7. Geoptimaliseerde Voedingsoplossingen voor Arduino Projecten
  8. Arduino Boter-Kaas-Eieren met MAX7219 LED Matrix en Kartonnen Behuizing
  9. Bouw een Slimme Arduino Vierpotige Robot: Stap-voor-Stap Handleiding
  10. Bouw een Aangepaste Arduino Joystick Stuurwiel voor Gaming
  11. Bouw een Volledig Functionele CNC-machine met Arduino Nano R3