OSHintosh: Een Open Source Hardware Diskloze 68000 Macintosh

Wat is de OSHintosh?

In essentie is de OSHintosh een Macintosh 512Ke logic board, met een aantal specifieke wijzigingen:

  • Hij start op vanaf een schijf die in de ROM is "gebakken".
  • De stroomvoorziening wordt verzorgd door een ATX-voeding.
  • Er is een geïntegreerde Pico Scan Converter aanwezig.
  • Een SCHWIM vervangt de IWM.

De ROM-schijf is gebaseerd op de originele ROMinator. Daarnaast heeft de OSHintosh de optie om extra bestanden te benaderen via een LocalTalk-server. Omdat er geen SCSI, geen floppy-drive of andere massageheugens aanwezig zijn, fungeert het apparaat effectief als een Diskless Workstation.

Het project kan worden beschouwd als de spirituele opvolger van de Macintosh XO (ook bekend als de Macintosh Classic).

Technische details van het ontwerp

  • PCB: Het board is ontworpen met slechts twee lagen, wat de productiekosten aanzienlijk verlaagt.
  • Geheugen: Er is gekozen voor 41256 RAM om het probleem van de huidige schaarste en hoge kosten van 30-pins RAM-sockets te omzeilen. Hierdoor is het geheel een DIP THT Macintosh. Dit is de eerste Macintosh die op een twee-laags PCB is ontworpen sinds het "SCC Word Wide" prototype uit 1982.
  • Vormfactor: Het board heeft ongeveer de vorm van ATX, hoewel de montagegaten niet ATX-conform zijn. Het is bedoeld om qua positionering tussen de ITX Plus (van Max1zzz) en de PicoMac (van evansm7) in te zitten.
  • Functionaliteit: Het RAM is beperkt tot 512K en er is geen massageheugen, maar het beschikt over "echte" LocalTalk-poorten voor communicatie met een AppleTalk-netwerk, en het ondersteunt geluid.

Hardware-opmerkingen en Disclaimer

De initiële VDEV1-printplaat vereiste een aanzienlijk aantal ad-hoc aanpassingen (bodges) om operationeel te worden:

  • Ontbrekende track toegevoegd tussen pin 1 van de 74ls161s en pin 8 van de 74ls04-inverter.
  • Ontbrekende 47R-weerstand (TSEN2) toegevoegd van pin 11 van de TSG en ASG naar ground.
  • Vier ontbrekende 2k2 pull-up weerstanden toegevoegd op adreslijnen A9, A10, A11 en A12.
  • Twee ontbrekende 3k3 pull-up weerstanden toegevoegd op !AS en !VIAIRQ.
  • Pin 4 van IC43 moet verbonden worden met -12V in plaats van GND.
  • Pin 12 van IC18 moet verbonden worden met track VA11 in plaats van track VA12.
  • Pin 8 van IC43 moet verbonden worden met +12V in plaats van 5V.
  • Fouten in de zeefdruk voor R68, R69, R70 en R71 (het schema en de BOM zijn correct, de zeefdruk is onjuist).
  • Fouten in de zeefdruk voor R40 en R43 (het schema en de BOM zijn correct, de zeefdruk is onjuist).

VDEV2 is voltooid en geüpload. Deze versie zou alle problemen van de VDEV1-printplaat moeten oplossen, maar is nog niet getest.

Vereisten voor Programmering

Een Ti866-programmeur of een vergelijkbaar model wordt aanbevolen. In totaal moeten negen programmeerbare IC's worden geconfigureerd:

  • 6 x 16V8 GALs
  • 2 x 39F040 EEPROMs
  • 1 x ATTINY85 (RTC)

Moeilijk verkrijgbare componenten

Let op dat de volgende IC's mogelijk lastig te vinden zijn:

  • 15.6672mhz oscillator (eventueel via eBay of op maat besteld).
  • Zilog Z8530 SCC.
  • 6522 VIA (de W65C22N6TPG zou een geschikt alternatief moeten zijn en wordt nog steeds geproduceerd).
  • 41256 DRAM (x16!).

Daarnaast gaat dit project ervan uit dat u toegang heeft tot originele Macintosh-periferie of zelf adapters toevoegt. De OSHintosh maakt gebruik van de originele quadrature 9-pins muis en het originele RJ-toetsenbord.

Instructies voor Programmering

GAL JED-bestanden

De GALs zijn afkomstig uit het PLD-archief. De programmering kan worden uitgevoerd met minipro via het volgende commando:

minipro -p GAL16V8* -w (GAL)16V8.jed

De ATTINY85 programmeren

De ATTINY85 RTC-firmware (ontwikkeld door pgreenland) kan met een Ti866 onder minipro als volgt worden geprogrammeerd:

  1. Wis de ATTINY85:

minipro -p ATTINY85 -E

  1. Flash de fuses zoals gedefinieerd in het bestand attiny_RTC.fuses:

minipro -p ATTINY85 -c config -w attiny_RTC.fuses -e

  1. Flash de firmware naar de ATTINY:

minipro -p ATTINY85 -e -c code -f ihex -w ATtinyRTC.hex

Het maken van nieuwe ROMinator-schijven

Normaal gesproken wordt de ROMinator geprogrammeerd met de BMOW-flasher tool op een Macintosh. Omdat de OSHintosh geen massageheugen heeft, is dit niet mogelijk. In plaats daarvan kan een modded ROM als volgt worden gemaakt:

  1. Gebruik Mini vMac (of een andere emulator) om een kopie van het schijmimage rominator-disk.dsk aan te passen met de gewenste bestanden en programma's. Het wordt aangeraden om ongewenste bestanden te verwijderen in plaats van de schijf te wissen, om corruptie te voorkomen.
  2. Voeg het "raw" ROMinator-binairbestand (de ROM zonder het schijmimage) en de nieuwe schijf samen. Op een Unix-machine kan dit met cat:

cat ROMINATORRAW.bin oshintoshdisk.dsk > OSHINTOSH_COMBINED.bin

  1. Splits het gecombineerde .bin-bestand in twee images (high en low) voor de OSHintosh.

Voor de HIGH ROM: sreccat -o HIGH.bin -binary OSHINTOSHCOMBINED.bin -binary -split 2 0

Voor de LOW ROM: sreccat -o LOW.bin -binary OSHINTOSHCOMBINED.bin -binary -split 2 1

  1. Flash de resulterende images naar de EEPROMs:

minipro -p SST39SF040 -w OSHINTOSHLOW.bin minipro -p SST39SF040 -w OSHINTOSHHIGH.bin

Bij succes zal de OSHintosh een "ping" geven in plaats van het gebruikelijke startgeluid. Wanneer de "R"-toets wordt ingedrukt, start de OSHintosh op vanaf de ROM.

AppleShare, Chooser en Seriële Poorten

Voor het gebruik van AppleShare om programma's op de OSHintosh uit te voeren, is het aanbevolen om de OSHintosh Disk.dsk-bestanden als uitgangspunt te gebruiken. De variant van Chooser op deze opstartschijf is namelijk hersteld uit de Macintosh Classic ROM-schijf. Normaal start Chooser niet op een vergrendelde schijf, maar de variant van de Macintosh Classic werkt wel op vergrendelde opstartschijven. Gebruik daarom het systeembestand uit OSHintosh Disk.dsk of OSHintosh Disk 6.0.8.dsk.

Poortconfiguratie:

  • Connector CN3 (middelste connector): Printerpoort / AppleShare.
  • Connector CN2 (meest linkse connector): Modemconnector.

Erkenningen

Veel dank aan: AlextheCat, Bitsavers, Bolle, Daniel Kottke, Demik, GuruThree, HKZ, Mattmos, Max1zzz, Pgreenland, The PLD Archive, en vele anderen.