fredag 2. juni 2017

RC6502 Apple 1 Replica

Dette er et innlegg relatert til RC6502, mitt forsøk på å bygge en fungerende replika av den første Apple maskinen som ble laget. Det som trengs av tegninger og programvare for bruk av maskinvaren er lagt ut på https://github.com/tebl/RC6502.

Apple 1

(Manual, kilde: archive.org)
Den første Apple maskinen ble lagt ut i salg i 1976, designet og skrudd sammen av Steve Wozniak, med det formål å skape en datamaskinen tilgjengelig for folk flest og til en pris som var oppnåelig. Strengt tatt så var hele den formåls-biten jeg nevnte mer eller mindre rekkevidden av det Steve Jobs la inn i prosjektet - Wozniak har selv i etterkant uttalt at hans største ønske var å selv eie en datamaskin, og da måtte han designe noe han selv hadde råd til basert på de komponentene som var tilgjengelig over disk.

Resultatet var en 8bit datamaskin basert på MOS 6502 prosessoren med en hastighet på hele 1 Mhz, kombinert med 4 KB RAM og en enkel monitor (la oss kalle det en forfar til det vi i dag kaller et operativsystem) integrert i 4 KB ROM. Det ble kuttet i alle ender for å holde kostnadene nede, og derfor går alt som skal ut til skjerm eller leses inn fra tastatur via en enkel integrert krets.

Vil ikke kalle elektronikk-skissene som ligger ute helt forståelig, men så blir det nok litt som å påstå at Russisk er vanskelig å forstå uten at man har brukt noe tid på å lære det - alt som skal til er tid og tålmodighet, så vil det meste åpenbare seg på egen hånd... eller ikke - isåfall, søk hjelp! Lenken under bildet ovenfor til høyre peker til selve manualen, slik det var vanlig på den tiden så er tegningene inkludert i sin helhet.

RC6502 Apple 1 Replica

Over til maskinen jeg holder på med, det vil si en fungerende replika av den første Apple datamaskinen - de originale maskinene koster tusenvis av dollar nå, hvis man er så heldig å finne et eksemplar så det får bli med å lage en replika isteden! Merk at jeg sier replika og ikke klone - tilsynelatende det samme ordet, men skulle man skue hunden på hårene så lager jeg en maskiner som fungerer likt uten å være en tilnærmet identisk gjenskapelse basert på tidsriktige komponenter.

Den allerede nevnte manualen er til stor hjelp når man prøver å fundere ut hvorfor noe eventuelt fungerer, eller ikke gjør det. Dette var en tid da man måtte være i stand til å reparere feil som oppstår, skjema-tegningene av hvordan maskinen fungerte var dermed en absolutt nødvendig og forventet del av produktet man kjøpte - dermed har man det meste man trenger for å, selv i dag gjenskape maskinen i sin helhet.

Personlig så forstår jeg svært lite av slike, men en tid tilbake skrev en dyktig tekniker med navn Tom Owad en lettforståelig bok kalt Apple 1 Replica Creation: Back to the garage. Boken kan lastes ned gratis fra hjemmesiden og anbefales for alle med et ønske om å bygge en datamaskin på egen hånd, uavhengig av om det er basert på Apple 1 eller ikke.

(Forside, kilde: applefritter.com)

Har brukt noen ukers ledige ettermiddager til å lese gjennom boken samt den originale dokumentasjonen for så å sette dette sammen til en helhet, boken ble tross alt skrevet som et utgangspunkt for å forstå og ikke nødvendigvis gjenskape maskinen helt direkte. Underveis har jeg delt opp maskinen i selvstendige moduler tilsvarende slik det var gjort med RC2014-maskinen, på den måten blir det langt enklere å holde oversikten over hva man arbeider med og hvordan den kommuniserer med resten av maskinen.

Som allerede nevnt i ingressen, så er alt det jeg har laget av skisser og tilhørende kode tilgjengelig på https://github.com/tebl/RC6502. Til forskjell fra programvaren Fritzing benyttet i innlegget Fra breadboard til PCB, så har jeg nå gått over til å bruke programvaren KiCAD for design av kretser og kretskort - langt enklere i bruk når man skal tegne opp andre ting enn små Arduino-prosjekter!

I skrivende øyeblikk så er jeg kommet såpass langt at det første utkastet av PCB-ene allerede er levert, og jeg tror jeg mest trolig kommer til å ta en separat gjennomgang av hver av modulene senere og i egne separate innlegg (ingen som har tålmodighet til lange tekster lenger uansett).

Utrolig å  fascinerende å se noe man har tegnet bli til noe håndfast!

5 kommentarer:

  1. Hello Tor Eirik,

    I would like to build your BE6502. I have a question regarding the Bill Of Material:
    https://github.com/tebl/BE6502-Build-a-65c02-computer/tree/master/BE6502%20SBC#bom

    When looking at the photo's in your BE6502 GitHub repo I noticed there is a blue multi-turn trimmer in the corner opposite to the power barrel. However, I can't seem to find it in the BOM. Is it perhaps a 1 MOhm trimmer (just like the one on the clock module)?

    And do you by any chance have a link to a suitable tactile switch, or is the spacing between the four pins the same for most models?

    Thanks, I like your projects!

    Kind Regards,
    Johan

    SvarSlett
  2. Hello,
    Since a long time I wanted to play with an Apple 1, just for fun. I've build one myself using breadboards and wires connections.
    I was in plan to design a board with Kicad, started a couple of times and then stopped because of other important things to do...
    Anyway, I've found your project (RC6502); I've cloned the git repo and ordered your various boards from my usual pcb manufacturer (jlcpcb); I've received the board a couple of days ago and started to build them.
    I'm busy with the "RC6502 Terminal" but couldn't find the firmwares for the atmega328 (both keyboard and video generator).
    Can you provide it, please ? with the source code it would be a must ;-)

    I hope you will get the message as I didn't find any email of you in the sources or schematics document on github.

    With best regards,

    Pascal

    SvarSlett
  3. Hello:
    Little help?
    I bought an assembled system on Ebay.
    I have the system running and talking to putty.
    I get the Apple 1 banner and the \ prompt.
    I can enter this program from the Apple 1 manual:

    FIRST: Hit the RESET button to enter the system monitor. A backslash should be displayed, and the cursor should drop to the next line.
    SECOND: 4Y Type-0 :A9 b 0 b AA b 20 b EF b FF b E8 b 8A b 4C b'2 bib-(RE~) (0 is a zero, NOT an alpha "0"; b means blank or space; and (RET) hit the "return" key on the keyboard)
    THIRD: Type-0 . A (RET) (This should print out, on the display, program you have just entered. )
    FOURTH: Type-R (RET) (R means run the program.
    THE PROGRAM SHOULD THEN PRINT OUT ON THE DISPLAY A CONTINUOUS STREAM OF ASCII CHARACTERS. TO STOP THE PRO- GRAM AND RETURN TO THE SYSTEM MONITOR, HIT THE "RESET" BUTTON. TO RUN AGAIN, TYPE : R (RET).

    The program enters fine, lists out fine, but upon running it I get no output at all.
    Hitting reset returns the \ prompt.

    Should that program run as in the Apple 1 manual?
    If so, what could be wrong? Is it going to the wrong output routine?
    I'm brand new to the Apple 1, but 60yr old 6502 guy...

    Documentation seems sketchy on this- the github and blog doesn't talk too much about how you intended this to be used unless I've missed something.
    Have any more extensive user documentation?

    Thanks!

    SvarSlett
  4. That's douglas.c.crawford AT outlook DOT com

    SvarSlett
  5. Seems the monitor needs the address and R not just R. So "0 R" works.
    -DC

    SvarSlett