Wie man Apple 1 baut und ein Spiel dafür schreibt

    Wie man Apple 1 baut und ein Spiel dafür schreibt




    Seit der Markteinführung des Apple 1-Computers sind 40 Jahre vergangen , und seine Fähigkeiten erreichen heute nicht einmal einfache Mikroprozessorgeräte oder Mikrocontroller. Aber 1976 machte diese Neuheit viel Lärm, es wurde sogar von der Revolution in der Computerwelt gesprochen. Ich empfehle dem Leser, Apple 1 zusammenzustellen, um herauszufinden, was darin interessant war, und ein Programm zu schreiben.

    Sofort sage ich, ich habe es nicht sofort gesammelt. Es dauerte drei Jahre, um nach Komponenten zu suchen, in der Freizeit zu bauen und zu debuggen, ungefähr so ​​viel wie zu debuggen, und schließlich diesen Artikel zusammen zu schreiben.
     

    Apple 1 Spezifikationen


    Typ: Personal Computer
    Produktionsjahr: Juli 1976 - März 1977
    Prozessor: MOS 6502
    Taktfrequenz: 1 MHz
    Speicher: ROM 256 Bytes, RAM 4kB, erweiterbar auf bis zu 8 kB
    Video: 40x24 Zeichen
    Hergestellt: ca. 200 Teile

    Ein bisschen Geschichte


    Der Schöpfer von Apple 1 ist Stephen Wozniak. Zum Zeitpunkt der Erstellung hieß es eigentlich noch nicht Apple 1. Und Apple selbst war noch nicht da. 

    Steve hat schon sehr früh elektronische Geräte entworfen. Sein erster Computer war ein "Sodawasser", das auf integrierten Schaltungen ohne Verwendung eines zentralen Prozessors entwickelt wurde und einfache mathematische Operationen ausführen konnte. Leider konnte ich keine Fotos oder Beschreibungen dieses Computers finden, sondern nur wenige Informationen von Steve selbst, die in seinem Buch beschrieben werden. Das Schicksal von "Cream-Soda" ist auch traurig - es brannte und es gab keine Versuche, es wieder herzustellen. Später, als Steve an Rechnern bei HP arbeitete, lud ihn sein Bekannter Allen Baum zu einem Treffen des Computer Fans Club in Palo Alto, Kalifornien, ein. Steve wurde informiert, dass dieses Treffen Terminals und Videogeräten gewidmet war. Zu dieser Zeit hatte er bereits ein eigenes Terminal für die Arbeit im ARPANET erstellt und hatte eine Idee über die Terminaltechnik. nur deshalb stimmte er zu gehen. Steve war ein bescheidener Typ, und wenn er wusste, dass es sich um Computer handeln würde, sagte er, er würde nicht dorthin gehen.
    Bei dem Treffen fühlte er sich unwohl, da die Anwesenden über seltsame Mikroprozessoren und den Altair 8800-Computer diskutierten. 

    Nach dem Treffen erhielt er ein Blatt mit dem Mikroprozessor i8080A. Er beschloss, es in Ruhe zu studieren, und stellte fest, dass es genau das war, was er in seinem ersten PC "Cremesoda" getan hatte und wie es einfacher gemacht werden konnte. Am selben Tag wurde ihm die Architektur des zukünftigen Apple 1 geboren. Die Montage erfolgte jedoch nur wenige Monate später, in der die Spezifikationen neuer Chips und die Suche nach Komponenten untersucht wurden. Tatsache ist, dass in den 70er Jahren Mikroprozessoren und Speicher sehr teuer und knapp waren. Das Problem mit dem Prozessor wurde gelöst, als die Firma MOS Technology einen Budget-Prozessor 6500 und bald 6502 einen analogen 6500 veröffentlichte, der jedoch ein großes Potenzial aufwies und nur 25 US-Dollar kostete. Es war der legendäre 6502, der Steve zuerst in die Hände fiel. 

    Das nächste Problem dieser Zeit war die Vorbereitung des Computers für den Start. In diesen Jahren wurde das Boot-Programm in der Regel manuell oder von Band in Computer eingegeben, es dauerte bis zu einer halben Stunde und erst danach war es möglich, etwas mit ihnen zu tun. Das Startvideo für BASIC und das darauf geschriebene Spielprogramm sind auf dem Altair 8800 über den zweiten Link am Ende des Artikels verfügbar. Steve löste dieses Problem, indem er einen permanenten Speicherchip (ROM) in seinem PC installierte, in den ein Steuerungsprogramm geschrieben wurde, das er "Monitor" nannte. Der Name spiegelte den Zweck wider - meistens überwachte sie die Tastatureingaben, übertrug sie zum Terminal und erlaubte es auch, Werte in Speicherzellen anzuzeigen und das Programm von einem bestimmten Ort aus zu starten. Überwachen Sie Wozniak in 253 Bytes.
    Er hatte jedoch immer noch nicht genügend RAM zum Starten des Computers. Die erste Version seines PCs wurde auf einem langsamen statischen Speicher erstellt. Später ersetzte er ihn durch einen dynamischen, wodurch die Anzahl der Mikroschaltkreise auf der Platine reduziert wurde und sich positiv auf die Arbeitsgeschwindigkeit auswirkte.
    Steve zeigte seinen PC der Öffentlichkeit und sein Freund Steve Jobs, der dabei half, den Monitor zum Club zu tragen, bot an, Leiterplatten für diesen PC zu produzieren und seine eigene Firma zu gründen, die Apple hieß. 

    In iWoz erfahren Sie mehr über dieses und viele andere Dinge.

    Apple-Hauptplatine 1




    PC-Architektur


    Ein PC besteht aus mehreren Knoten. 


    ( Seite Quelle )

    Formationsblock und Ausgabe des Bildes (Terminal)




    Eigentlich ist dies das gleiche Terminal für Steve ARPANET. Am Eingang befindet sich ein 7-Bit-Bus, der Daten zur Anzeige auf dem Fernsehbildschirm empfängt. 

    Es hat keine Schemata für den direkten Zugriff auf den Videospeicher (PDU), es verwendet jedoch eine zyklische Speicheraktualisierung von 1024 Zellen mit jeweils 7 Bits (außerdem werden 64 Zellen nicht verwendet). Aufgrund des Fehlens von PDP funktioniert dieses Terminal wie eine Schreibmaschine. Sie gibt der Eingabe ein Symbol, zeigt es auf dem Bildschirm an, bewegt den Cursor für das nächste Zeichen und keine Grafiken. Aufgrund der ständigen Aktualisierung dieses Speichers ist der Betrieb des Terminals ziemlich langsam. Alle Zeichen werden nacheinander angezeigt. Sie können nicht einfach das falsch eingegebene Zeichen korrigieren. Zum Bearbeiten müssen Sie den Monitor-Befehl eingeben, der den Inhalt der Speicherzelle ändert, in der der Fehler aufgetreten ist, und dann den anderen Befehl verwenden, um den Byte-Wert aus der geänderten Speicherzelle anzuzeigen.

    Wenn wir in unserem Programm den Bildschirm löschen möchten, müssen wir den Wagen 24-mal auf eine neue Zeile umstellen. Übrigens, wenn Sie auf Return klicken (die aktuelle Bezeichnung ist Enter), wird ein Generator gestartet, der bis zum Ende der Zeile das Leerzeichen druckt.

    Es gibt keinen Grafikmodus, und der Zeichensatz ist auf einen Standardsatz von ASCII-Codes mit Werten von 1 bis 127 beschränkt (auf dem Bildschirm werden nur Zeichen aus dem Intervall 32-126 angezeigt, andere werden als Controller verwendet, z. B. 13 ist ein Zeilenvorschub), daher der Sieben-Bit-Bus. und die höchste Ordnung ist immer auf Eins gesetzt.

    Layouts aller angezeigten Zeichen werden im Nur-Lese-Speicher (ROM) aufgezeichnet. Nachdem ein Zeichen am Terminaleingang ankommt, wird es zunächst in einem kleinen Speicher (analog zu einem modernen Videospeicher) aufgezeichnet, und dann werden die Zähler des Zeichengenerators, die das Layout des Ausgangssymbols enthalten, durch das Zählersystem ausgewählt und diese Daten werden über die Schieberegister mit den erzeugten Synchronimpulsen gemischt Monitor-Eingang (oder Niederfrequenz-Eingang des Fernsehgeräts).

    Um die Helligkeit des Bildes anzupassen, verfügt die Platine über einen Trimmerwiderstand. Ich habe es durch einen einfachen Teiler in zwei Hälften ersetzt.

    Es sollte auch beachtet werden, dass es aufgrund von Fehlern im Bildgebungsschema auf den meisten modernen digitalen Fernsehgeräten oder Monitoren nicht korrekt angezeigt werden kann. Analoge Fernsehgeräte verzichten auf diese Fehler. Am Ende des Artikels ein dreiminütiges Video mit meiner Qual auf einem solchen Monitor.

    Mikroprozessoreinheit



    Enthält einen Mikroprozessor 6502, einen ROM, einen Eingangs-Ausgangs-Port (PIA), Pufferverstärker, einen Geräteadressendecoder, einen RAM und einige kleine Logikchips.

    E / A-Einheit und arbeiten mit externen Geräten




    Der E / A-Controller (PIA) 6520 befasst sich mit dem Abfragen der Tastatur und dem Übertragen des eingegebenen Zeichens auf den Datenbus, stattdessen habe ich die 6821 installiert.

    Die Arbeit mit externen Geräten erfolgt wie bei Speicherzellen. Jedes Gerät verfügt über einen eigenen Speicherbereich. Die Aufnahme von E / A von einem bestimmten Gerät wird von einem Portdecoder übernommen. Seine Eingangsleitungen sind mit den Adressleitungen des Mikroprozessors verbunden. Wenn die erforderliche Adresse eingestellt ist, wird das benötigte Gerät an den Datenbus angeschlossen. Was und wie Sie damit umgehen können, bestimmt das Programm und das Gerät selbst.
    Da in diesem PC keine Interrupts implementiert sind, übernimmt der zentrale Prozessor den gesamten Datenfluss (Tastatureingabe, Zeichenausgabe, Datenaustausch mit externen Geräten usw.).

    Um ein externes Gerät anzuschließen, befindet sich auf der Hauptplatine ein Anschluss. Das einzige mir bekannte Gerät, das in den 70er Jahren für diesen PC entwickelt wurde, ist eine Schnittstellenkarte für das Arbeiten mit einem externen Datenspeichergerät - einem Kassettenrecorder.



    Netzteil




    Alles ist einfach. Zur Stromversorgung des Computers sind vier Spannungen erforderlich. + 5 V, -5 V, + 12 V und -12 V. Die Stromversorgung wurde vom Käufer selbstständig vorgenommen. Dazu mussten zwei Abwärtstransformatoren separat erworben und an die Hauptplatine angeschlossen werden, auf der sich bereits die Gleichrichter und Stabilisatoren befanden. Es gibt einen Stabilisator für + 5V am Kühler und es heizt sich beträchtlich auf, so dass viele Benutzer einen Lüfter darauf installiert haben, ich habe das Rad nicht neu erfunden und das Gleiche getan.

    Natürlich war es möglich, ein modernes Schaltnetzteil einzusetzen, aber ich wollte ein warmes Röhrchen bei 50 Hertz.

    Bauteilsuche, Montage und Inbetriebnahme


    Wie ich oben schrieb, hat es fast 3 Jahre gedauert, Komponenten zu suchen, wenn auch nur zeitweise. Die erste war eine Leiterplatte gekauft worden, nachdem sie etwa ein Jahr im Regal gelegen hatte, und sie begann allmählich mit Komponenten zu wachsen. Zuerst habe ich die Mikrochip-Sockel und Anschlüsse für Strom und Monitor gelötet. Dann alle passiven Elemente - Widerstände, Kondensatoren und Dioden. Es war zwar nicht möglich, die Original-Sprague-Kondensatoren sofort zu beziehen, und stattdessen war das erste Halbjahr ein normaler moderner Elektrolyt.

    Die meisten Chips waren sofort verfügbar, und die meisten von ihnen haben sowjetische Analoga der 155. Serie. Ich musste für solche Mikroschaltungen laufen:

    Video-ROM - eine bestimmte Firmware sollte darin aufgezeichnet sein, sonst wird kein ausreichendes Bild angezeigt.
    2504V - sieben Register, in denen das auf dem Bildschirm angezeigte Bild gespeichert wird.
    2519B ist ein Zähler, der zum Erstellen eines Bildes ohne Analoge verwendet wird.
    8T97 - Datenbuspuffer, die eine Überlastung des Mikroprozessor-Datenbusses verhindern, bei anderen wurde später ein sowjetischer Ersatz gefunden - K155LP11.
    ROM mit dem Steuerungsprogramm "Monitor".

    Nachdem alle Komponenten gefunden, versiegelt oder in der Hauptplatine installiert wurden, begann der interessante Teil selbst - das Debugging.

    Beim ersten Einschalten - klicken Sie auf den Ein / Aus-Schalter, 5 Sekunden, schalten Sie ihn aus - es gibt keinen Rauch, Staus in der Wohnung sind intakt, nichts ist in Brand geraten. Ich schalte ein, schaue auf das Bild - zufällige Zeichen liegen auf dem Bildschirm. Ich drücke RESET und dahinter CLEAR SCREEN (ja, ja, es gibt eine solche Taste - die Benutzer wurden nicht durch modische Dinge verdorben, und die Designer dachten, dass der Benutzer den Bildschirm löscht, wenn er braucht), nichts passiert - der gleiche zufällige Müll. 
    Darüber hinaus beginnt der Stabilisator auf + 5V bereits zu backen, das warme Röhrchenaroma von frisch gebranntem Lacklack, Farbtupen aus diesem Stabilisator sind im Raum verbreitet. Ich schalte aus, warte 5 Minuten bis zur vollständigen Abkühlung, und ich versuche, während der gesamten Fehlersuche in so kurzen Serien weiter zu debuggen. Daher wird diese Tatsache nicht weiter angegeben.

    Wenn alles funktioniert hat, erscheint nach dem Einschalten des Computers der Willkommensbildschirm auf dem Bildschirm in Form abwechselnder, blinkender "@_" - Zeichen im gesamten Monitor-Arbeitsbereich. Nach dem Drücken von RESET und CS sollte der Bildschirm gelöscht werden und nur der Cursor für die Eingabe des Befehls verbleiben Steuerungsprogramm "Monitor".

    Sichtprüfung und Wahl der Bildungs- und Machtbildungsketten gaben nichts. Und nach mehreren Tagen der Qual fand ich heraus, dass mir der Verkäufer die falschen Analoga von Videospeicherchips geschickt hatte. Ich stand 1403A, obwohl Analoga 1404A sind. Ich habe diese Register aus den Panels gezogen und auf dem Bildschirm hat sich nichts geändert. Der Verkäufer erkannte seinen Fehler an und bat darum, diese Register ihm zurückzuschicken, aber da sie nicht teuer waren, machte ich mir nichts daraus. Die Originalregister haben mich etwa 80 Dollar gekostet. Sie mussten drei Wochen warten. 

    Nach dem Ersetzen der Register erschienen schließlich die lang erwarteten blinkenden Hunde (oder Äpfel, je nach Wunsch), dh der Videospeicher und damit der gesamte Videoblock.

    Wenn Sie RESET, CS drücken, wird der Bildschirm gelöscht, der Cursor wird jedoch nicht angezeigt. Die Mikroprozessoreinheit funktioniert also nicht. Hier gibt es nicht viele Problemquellen - entweder den Prozessor oder das ROM oder eine kleine Logik in ihrer Bindung.

    Die erste Komponente, die Gegenstand der Untersuchung war, war ein ROM mit dem „Monitor“, da sich einer der Mikroschaltkreise warm fühlte.

    Etwas abgelenkt möchte ich sagen, dass das Steuerprogramm in zwei Speicherchips aufgezeichnet wird, von denen jeder 255 Speicherzellen hat und jeder Chip nur 4 Bits am Ausgang hat. Um den Acht-Bit-Prozessor zu steuern, legte Wozniak 2 solcher Chips parallel auf, erhielt am Ausgang die notwendigen 8 Datenbits. Und sein gesamtes Steuerprogramm passt in 253 Bytes (2 Bytes bleiben frei). 



    Um den Inhalt dieses Speichers zu lesen, habe ich ein Arduino-basiertes Gerät auf einem Steckbrett montiert. 

    Der Controller durchlaufte nacheinander die Adressen dieser ROMs, leitete 4-Bit-Daten in 8-Bit- und in hexadezimaler Ausgabe zum Monitor des Kommunikationskanals des Computers. Beim Überprüfen des ROM-Inhalts habe ich keine Fehler gefunden. 

    Das Ersetzen der Feinlogik führte auch nicht zu Ergebnissen, so dass der Verdacht auf die Respektierbarkeit der Jahre des Hauptverarbeiters und dessen Ausscheiden aus dem Boden fiel. 

    Ich habe keinen weiteren 6502-basierten Computer, also habe ich ihn auf einem Mockup installiert, ihn von Arduinka mit Strom versorgt, den 1-MHz-Generatortakt (vom zukünftigen Spezialist-PC), die NOP-Befehlsjumper auf dem Datenbus oder dem Boden installiert und Wenn Sie auf eine leere Aktion warten, erhöht sich der Wert des Adresszählers. Das ist aber nicht geschehen. Es ist überhaupt nichts passiert. Es sieht aus wie ein Stein ist jetzt genau ein Stein. Bestellte ein anderes, wie es sich für einen Produktions-MOS gehört. Während er fuhr, gelang es mir, Urlaub zu machen und im Meer zu schwimmen.



    Testen des 6502-Prozessors: Ja, es war möglich, 1 MHz von Mega-Timern zu beziehen , ja, es war überhaupt möglich, darauf zu verzichten, ich kann alles, aber dann wollte ich genau das.

    Nach der Installation des neuen Prozessors, der Inklusion - Hallo, Hunde - RESET - CS - Hallo Befehlszeile! Die Prozessoreinheit funktioniert nicht einmal ein halbes Jahr! 

    Das nächste Problem ist, dass ich keine Befehle und Code eingeben konnte, es gab keine Tastatur.

    Tastatur


    Die Tastatur dieses PCs besteht aus einem Leitergitter, dessen Knoten Schaltflächen haben. Dieser Fall ist mit dem Decoder der gedrückten Tasten verbunden, der am Ausgang den Tastencode für die gedrückte Taste entlang der 7-Bit-ASCII-Zeile und einen Kurzzeit-Strobe-Impuls entlang der separaten Zeile generiert. Wenn dieser Impuls an den Steuerbus geleitet wird, beginnt der Prozessor mit der Verarbeitung des eingegebenen Zeichens.


     
    Um eine solche Tastatur zu erhalten, ist die Angelegenheit im Allgemeinen noch gelöst, aber dies ist normalerweise eine Zahl mit zwei Nullen und nicht in Hausrubel. Daher begann ich zu überlegen, wie ich eine PS / 2-Tastatur an einen Computer anschließen kann. 

    Nichts interessanter als der Arduino Nano, kam nicht vor. Während des Abends habe ich einen Adapter zwischen einer PS / 2- und einer ASCII-Schnittstelle mit einer installierten Installation montiert und die Firmware dafür geschrieben. Da Apple 1 nicht über die Tasten PgUp und PgDown verfügt, habe ich sie als RESET- und CLEAR SCREEN-Taste verwendet. Von diesem Tag an musste ich die Beine auf dem Brett nicht mehr mit einer Pinzette schließen, was sehr erfreulich war.

    Die getippten Zeichen wurden bekanntermaßen auf dem Bildschirm gedruckt, und sogar das Testprogramm aus der Dokumentation für diesen Computer funktionierte. Alles, was Sie tun müssen, ist, alle auf diesem Computer angezeigten Zeichen in einer Schleife anzuzeigen.


    Draufsicht


    Ansicht von unten

    Eine lustige Geschichte ist auf der Tastatur passiert. Anfangs war die Return-Taste nur halb so groß - sie gab Befehle richtig in den Speicher ein und gab Anweisungen für ihre Ausführung, aber die Übertragung in eine neue Zeile fand nicht statt. Aufgrund der Besonderheiten des Terminals bereitete dies im Allgemeinen keine großen Probleme. Aber ich entschied mich dafür, das herauszufinden. Ich studierte zunächst das Konzept eines PCs, der Benutzer Mdesk mit zx-pk.ru hatte dabei eine große Hilfe. Als ich die Schaltung studierte, hatte ich keine einzige Frage mehr in der Arbeit der Hardware-Wagenübergabeeinheit. Ich setzte mich an den Tester und das Oszilloskop. Die Auswahl der Dirigenten hat nichts gegeben - alle sind vollständig. Dann trat das Oszilloskop in Aktion. Ich klingelte die Eingangssignale des PIA - sie waren normal, das Signal ging irgendwo auf der 7451N verloren, ich versuchte es auf 7450 zu ändern, und die sowjetischen Analoga (155LR1 und 155LR11) funktionierten nicht. Kette weiter entwirren Ich bekam die 74123 One-Shot, ich musste die Verzögerungen überprüfen, die sie verursachte. Mein Adapter schließt ihn jedoch physisch, was das Zifferblatt unangenehm macht.

    Dann schrieb ich das Testprogramm
    280: A9 8D 20 EF FF A9 31 20 EF FF 4C 80 02
    Es wird nur die Sequenz Return-1-Return-1 (Einheiten mit nach unten scrollen) angezeigt.

    Gestartet, gingen die Einheiten wie erwartet zur Leitung. Dann nahm ich den Adapter aus dem Panel heraus, die Geräte liefen sofort ab. Der Grund liegt also im Adapter. Danach beschleunigte er das Problem schnell. Die Tasten PgUp und PgDown verwende ich zum Zurücksetzen und Löschen des Bildschirms. Das Reinigen des Bildschirms (CLR) hing an einem der Beine von Arduin, zum Zeitpunkt der Reinigung gab ich eine Einheit dort ab, nachdem sie losgelassen wurde, sank sie auf 0. Und diese 0 löschte die gesamte CLR-Linie aus und tatsächlich verwendete sie auch die Zeilenvorschubeinheit. Die Lösung ist einfach - ich habe eine Diode zwischen Arduinka und CLR eingefügt, und alles hat funktioniert!

    Da es mühsam und nicht immer genau wäre, ein Kilobyte-Hand-zu-Hand-Programm einzugeben, habe ich mir vorgenommen, eine SD-Karte an dieselbe Arduinka anzuschließen, mit der Sie die Programme eingeben können. Es funktioniert folgendermaßen: Ich lade eine Datei mit dem Namen dump.hex in das Stammverzeichnis hoch, und wenn ich die TAB-Taste drücke, liest der Controller den Inhalt der Datei und drückt die entsprechenden Tasten. 

    Software


    Für Apple 1 werden viele Programme nicht geschrieben. Ich verbinde dies mit dem bevorstehenden Auftauchen eines fortschrittlicheren Computers - Apple 2. Und dennoch gibt es mehrere Spiele und Systemprogramme dafür. Anlässlich des 30-jährigen Jubiläums von Apple 1 haben Enthusiasten sogar eine ziemlich große Demo (Link unten) geschrieben. 

    Ich habe alles angefangen und gesucht, aber ich wollte etwas eigenes schreiben. Ich entschied mich für ein Spiel für ihn 2048 zu schreiben. Um den Algorithmus zu schreiben, das Codieren (zuvor unter 6502 konnte ich nicht schreiben) und das Debuggen dauerten 14 Uhr. Die Größe des Programms betrug 1679 Bytes. Sie können es auf der Originalhardware sowie in Emulatoren ausführen.

    Das Programm
    280: 4C F8 08 20 20 20 20 20
    288:20 20 32 20 20 20 34 20
    290:20 20 38 20 20 31 36 20
    298:20 33 32 20 20 36 34 20
    2A0:31 32 38 20 32 35 36 20
    2A8:35 31 32 31 30 32 34 32
    2B0:30 34 38 01 00 00 00 00
    2B8:00 00 00 00 00 00 00 00
    2C0:00 00 00 2B 2D 2D 2D 2D
    2C8:2D 2D 2B 2D 2D 2D 2D 2D
    2D0:2D 2B 2D 2D 2D 2D 2D 2D
    2D8:2B 2D 2D 2D 2D 2D 2D 2B
    2E0:8D 00 A2 00 A9 8D E8 20
    2E8:EF FF E0 24 F0 03 4C E6
    2F0:02 60 A9 2B 20 EF FF A9
    2F8:20 20 EF FF 60 A9 8D 20
    300:EF FF 60 0A 2A A8 A9 00
    308:79 83 02 20 EF FF C8 A9
    310:00 79 83 02 20 EF FF C8
    318:A9 00 79 83 02 20 EF FF
    320:C8 A9 00 79 83 02 20 EF
    328:FF A9 20 20 EF FF 20 F2
    330:02 60 20 FD 02 A2 00 BD
    338:C3 02 20 EF FF E8 E0 1E
    340:F0 03 4C 37 03 60 20 32
    348:03 20 F2 02 AD B3 02 20
    350:03 03 AD B4 02 20 03 03
    358:AD B5 02 20 03 03 AD B6
    360:02 20 03 03 20 32 03 20
    368:F2 02 AD B7 02 20 03 03
    370:AD B8 02 20 03 03 AD B9
    378:02 20 03 03 AD BA 02 20
    380:03 03 20 32 03 20 F2 02
    388:AD BB 02 20 03 03 AD BC
    390:02 20 03 03 AD BD 02 20
    398:03 03 AD BE 02 20 03 03
    3A0:20 32 03 20 F2 02 AD BF
    3A8:02 20 03 03 AD C0 02 20
    3B0:03 03 AD C1 02 20 03 03
    3B8:AD C2 02 20 03 03 20 32
    3C0:03 60 32 30 34 38 8D 8D
    3C8:57 2D 55 50 8D 41 2D 4C
    3D0:45 46 54 8D 44 2D 52 49
    3D8:47 48 54 8D 53 2D 44 4F
    3E0:57 4E 8D 8D 43 4F 44 45
    3E8:3A 20 44 45 4E 49 53 20
    3F0:50 41 52 59 53 48 45 56
    3F8:8D 8D 50 52 45 53 53 20
    400:41 4E 59 20 4B 45 59 A2
    408:00 BD C2 03 20 EF FF E8
    410:E0 45 F0 03 4C 09 04 AD
    418:11 D0 10 FB AD 10 D0 8D
    420:E1 02 60 47 41 4D 45 20
    428:4F 56 45 52 59 4F 55 20
    430:57 49 4E 20 E2 02 A2 00
    438:BD 23 04 20 EF FF E8 E0
    440:09 F0 03 4C 38 04 A2 34
    448:BD C2 03 20 EF FF E8 E0
    450:43 F0 03 4C 48 04 AD 11
    458:D0 10 FB AD 10 D0 4C F8
    460:08 A0 00 AD E1 02 29 0F
    468:AA C8 C0 11 F0 C5 BD B3
    470:02 C9 00 F0 0A E8 E0 10
    478:D0 EF A2 00 4C 69 04 A9
    480:01 9D B3 02 8E E1 02 60
    488:A2 00 A9 00 9D B3 02 E8
    490:E0 10 D0 F8 A9 01 8D B3
    498:02 60 00 00 00 00 00 00
    4A0:AE 9F 04 BD 9A 04 C9 00
    4A8:D0 14 AE 9E 04 BD 9A 04
    4B0:AE 9F 04 9D 9A 04 A9 00
    4B8:AE 9E 04 9D 9A 04 60 A9
    4C0:03 8D 9F 04 A9 02 8D 9E
    4C8:04 20 A0 04 A9 02 8D 9F
    4D0:04 A9 01 8D 9E 04 20 A0
    4D8:04 A9 01 8D 9F 04 A9 00
    4E0:8D 9E 04 20 A0 04 A9 03
    4E8:8D 9F 04 A9 02 8D 9E 04
    4F0:20 A0 04 A9 02 8D 9F 04
    4F8:A9 01 8D 9E 04 20 A0 04
    500:A9 03 8D 9F 04 A9 02 8D
    508:9E 04 20 A0 04 60 20 E2
    510:02 A2 00 BD 2C 04 20 EF
    518:FF E8 E0 07 F0 03 4C 13
    520:05 A2 34 BD C2 03 20 EF
    528:FF E8 E0 43 F0 03 4C 23
    530:05 AD 11 D0 10 FB AD 10
    538:D0 4C F8 08 AE 9E 04 BD
    540:9A 04 C9 00 F0 1D AE 9F
    548:04 DD 9A 04 D0 15 A8 C8
    550:98 AE 9F 04 9D 9A 04 C9
    558:0B F0 B3 A9 00 AE 9E 04
    560:9D 9A 04 60 A9 02 8D 9E
    568:04 A9 03 8D 9F 04 20 3C
    570:05 A9 01 8D 9E 04 A9 02
    578:8D 9F 04 20 3C 05 A9 00
    580:8D 9E 04 A9 01 8D 9F 04
    588:20 3C 05 60 20 BF 04 20
    590:64 05 20 BF 04 60 AD B3
    598:02 8D 9D 04 AD B7 02 8D
    5A0:9C 04 AD BB 02 8D 9B 04
    5A8:AD BF 02 8D 9A 04 20 8C
    5B0:05 AD 9A 04 8D BF 02 AD
    5B8:9B 04 8D BB 02 AD 9C 04
    5C0:8D B7 02 AD 9D 04 8D B3
    5C8:02 AD B4 02 8D 9D 04 AD
    5D0:B8 02 8D 9C 04 AD BC 02
    5D8:8D 9B 04 AD C0 02 8D 9A
    5E0:04 20 8C 05 AD 9A 04 8D
    5E8:C0 02 AD 9B 04 8D BC 02
    5F0:AD 9C 04 8D B8 02 AD 9D
    5F8:04 8D B4 02 AD B5 02 8D
    600:9D 04 AD B9 02 8D 9C 04
    608:AD BD 02 8D 9B 04 AD C1
    610:02 8D 9A 04 20 8C 05 AD
    618:9A 04 8D C1 02 AD 9B 04
    620:8D BD 02 AD 9C 04 8D B9
    628:02 AD 9D 04 8D B5 02 AD
    630:B6 02 8D 9D 04 AD BA 02
    638:8D 9C 04 AD BE 02 8D 9B
    640:04 AD C2 02 8D 9A 04 20
    648:8C 05 AD 9A 04 8D C2 02
    650:AD 9B 04 8D BE 02 AD 9C
    658:04 8D BA 02 AD 9D 04 8D
    660:B6 02 60 AD B3 02 8D 9A
    668:04 AD B7 02 8D 9B 04 AD
    670:BB 02 8D 9C 04 AD BF 02
    678:8D 9D 04 20 8C 05 AD 9D
    680:04 8D BF 02 AD 9C 04 8D
    688:BB 02 AD 9B 04 8D B7 02
    690:AD 9A 04 8D B3 02 AD B4
    698:02 8D 9A 04 AD B8 02 8D
    6A0:9B 04 AD BC 02 8D 9C 04
    6A8:AD C0 02 8D 9D 04 20 8C
    6B0:05 AD 9D 04 8D C0 02 AD
    6B8:9C 04 8D BC 02 AD 9B 04
    6C0:8D B8 02 AD 9A 04 8D B4
    6C8:02 AD B5 02 8D 9A 04 AD
    6D0:B9 02 8D 9B 04 AD BD 02
    6D8:8D 9C 04 AD C1 02 8D 9D
    6E0:04 20 8C 05 AD 9D 04 8D
    6E8:C1 02 AD 9C 04 8D BD 02
    6F0:AD 9B 04 8D B9 02 AD 9A
    6F8:04 8D B5 02 AD B6 02 8D
    700:9A 04 AD BA 02 8D 9B 04
    708:AD BE 02 8D 9C 04 AD C2
    710:02 8D 9D 04 20 8C 05 AD
    718:9D 04 8D C2 02 AD 9C 04
    720:8D BE 02 AD 9B 04 8D BA
    728:02 AD 9A 04 8D B6 02 60
    730:AD B6 02 8D 9A 04 AD B5
    738:02 8D 9B 04 AD B4 02 8D
    740:9C 04 AD B3 02 8D 9D 04
    748:20 8C 05 AD 9D 04 8D B3
    750:02 AD 9C 04 8D B4 02 AD
    758:9B 04 8D B5 02 AD 9A 04
    760:8D B6 02 AD BA 02 8D 9A
    768:04 AD B9 02 8D 9B 04 AD
    770:B8 02 8D 9C 04 AD B7 02
    778:8D 9D 04 20 8C 05 AD 9D
    780:04 8D B7 02 AD 9C 04 8D
    788:B8 02 AD 9B 04 8D B9 02
    790:AD 9A 04 8D BA 02 AD BE
    798:02 8D 9A 04 AD BD 02 8D
    7A0:9B 04 AD BC 02 8D 9C 04
    7A8:AD BB 02 8D 9D 04 20 8C
    7B0:05 AD 9D 04 8D BB 02 AD
    7B8:9C 04 8D BC 02 AD 9B 04
    7C0:8D BD 02 AD 9A 04 8D BE
    7C8:02 AD C2 02 8D 9A 04 AD
    7D0:C1 02 8D 9B 04 AD C0 02
    7D8:8D 9C 04 AD BF 02 8D 9D
    7E0:04 20 8C 05 AD 9D 04 8D
    7E8:BF 02 AD 9C 04 8D C0 02
    7F0:AD 9B 04 8D C1 02 AD 9A
    7F8:04 8D C2 02 60 AD B6 02
    800:8D 9D 04 AD B5 02 8D 9C
    808:04 AD B4 02 8D 9B 04 AD
    810:B3 02 8D 9A 04 20 8C 05
    818:AD 9A 04 8D B3 02 AD 9B
    820:04 8D B4 02 AD 9C 04 8D
    828:B5 02 AD 9D 04 8D B6 02
    830:AD BA 02 8D 9D 04 AD B9
    838:02 8D 9C 04 AD B8 02 8D
    840:9B 04 AD B7 02 8D 9A 04
    848:20 8C 05 AD 9A 04 8D B7
    850:02 AD 9B 04 8D B8 02 AD
    858:9C 04 8D B9 02 AD 9D 04
    860:8D BA 02 AD BE 02 8D 9D
    868:04 AD BD 02 8D 9C 04 AD
    870:BC 02 8D 9B 04 AD BB 02
    878:8D 9A 04 20 8C 05 AD 9A
    880:04 8D BB 02 AD 9B 04 8D
    888:BC 02 AD 9C 04 8D BD 02
    890:AD 9D 04 8D BE 02 AD C2
    898:02 8D 9D 04 AD C1 02 8D
    8A0:9C 04 AD C0 02 8D 9B 04
    8A8:AD BF 02 8D 9A 04 20 8C
    8B0:05 AD 9A 04 8D BF 02 AD
    8B8:9B 04 8D C0 02 AD 9C 04
    8C0:8D C1 02 AD 9D 04 8D C2
    8C8:02 60 AD 11 D0 10 FB AD
    8D0:10 D0 8D E1 02 C9 D7 D0
    8D8:04 20 96 05 60 C9 D3 D0
    8E0:04 20 63 06 60 C9 C1 D0
    8E8:04 20 30 07 60 C9 C4 D0
    8F0:04 20 FD 07 60 4C CA 08
    8F8:20 88 04 20 E2 02 20 07
    900:04 20 E2 02 20 61 04 20
    908:46 03 20 CA 08 4C 01 09




    Videoarbeit auf YouTube.

    Was weiter?


    Vor allem den Körper, ich möchte es schön machen.

    Adapter für Tastatur und SD-Karte. Es ist notwendig, die montierte Installation loszuwerden, ich plane, eine Leiterplatte dafür in China zu entwickeln und zu bestellen.

    Arbeiten Sie mit mehreren Dateien. Ich plane, einen Dateimanager für Arduinka zu schreiben, mit dem Sie eine Datei von der Karte auswählen und ausführen können.

    Ich habe auch einen Anschluss für Erweiterungskarten gekauft. Ich möchte ihm eine Audioplatine für den K580VI53 anlöten (einfach weil dieser Timer im Haus liegt) und eine kleine Demo mit Sound zeichnen.
    Dies ist wahrscheinlich der nächste Artikel.
     

    Fazit


    Zu sagen, dass ich große Freude beim Zusammenstellen, Debuggen und Schreiben eines Programms für Apple 1 hatte, ist fast nichts zu sagen. 

    Vielen Dank an den Benutzer Mdesk und an alle Leute von zx-pk.ru für ihre Hilfe bei der Erklärung der Feinheiten der Architektur und für hilfreiche Tipps zum Einrichten dieses PCs.

    Nun, der größte Dank geht an Steve Wozniak für diesen wundervollen PC !!!

    Nützliche Links


    Apple 1 auf Wiki
    Laden Sie BASIC auf Altair 8800 herunter
    Apple 1 und moderner Monitor (dreieinhalb Minuten Schmerzen und Leiden)
    30 Jahre Apple 1 (Demo)
    Online Apple 1-Emulator
    Online-Assembler / Disassembler / Debugger 6502

    Russische Websites für Apple 1:
    mdesk. ru
    zx-pk.ru

    Jetzt auch beliebt: