Hello, Guest the thread was called107k times and contains 2505 replays

last post from 1404linux at the

Nachbau eines Apple 1

  • Ich habe mir jetzt erstmal den TMS Grafikchip bestellt und mich etwas mit der Software beschäftigt. Das ist ja alles in C - Sourcecode !? Wenn ich das in das 28C256 flashen will, muss das doch erst in "bin" compiliert werden ? Oder gibt es eine fertige Datei zum Herunterladen und ich habe sie nur nicht gefunden ?

    ...hab's nur mal kurz überflogen. Die C-Sourcen sind für KickC geschrieben und am Ende seiner readme auf github beschreibt er sehr kurz den RAM/ROM split und wie man das entsprechende Target auswählt. Ein fertiges bin für den CodeTank gibt's wohl nicht, wahrscheinlich weil man manuell nen Offset braucht.

    Jetzt rächt es sich zwanzig Jahre nix mit Programmieren am Hut gehabt zu haben... ;-)

  • so ordentlich und akkurat beschrieben :thumbsup:

    als eigene Checkliste sicher auch sehr gut...


    was die Bauteilliste komplett angeht.. ist diese doch komplett in der Mike Willegal Aufbauanleitung gelistet... ?!

    http://www.willegal.net/appleii/A1-assembly-v1.0.pdf


    und das dann mit Bauteil-Ortsangabe (LOCATION) auf dem Motherboard ?!



  • Ach ja, und fast vergessen. Hier noch meine "Bauteil-Liste". Falls es jemandem hilft...

    Das ist ja mal sehr schön. So ordentlich und akkurat beschrieben :thumbsup:

    Vielen Dank! Aber der Ursprung der Tabelle ist in der Tat die BOM von Mike Willegal. Ihm gebührt alle Ehre.

    Ich wollte lediglich ein paar zusätzliche Hinweise zu meinen Quellen liefern.

  • So ich habe jetzt die Grafikkarte zusammengelötet:



    Hier die "Code-Tank" Karte:



    Und beide zusammengesetzt:



    Wie man sieht, ist der Sockel für das Ram nicht besetzt - das liegt daran, dass der Adapter für das SMD-IC auf DIL zu breit ist:



    Da werde ich mir noch einen DIL-RAM-Chip besorgen müssen ....


    Zwischenzeitlich habe ich schonmal den Kick-C Compiler heruntergeladen und kann mich mit der Erzeugung des Rom-bin beschäftigen.

  • deine Videobuchsen sehen doch prima aus... habe nur so "billige" gefunden und bestellt..

    ein "Trimm-Kondensator" passend 12-40pF habe ich so leider nicht...


    ich habe nur ein paar "piko" Varianten bestellt , und hoffe, ich komme mit einem Festwert klar...

    das 62257-80 RAM hast du nicht bei Reichelt bestellt ?


    du bist sicher wieder vorher am "testen" ;) :)


    good luck

  • Bei Reichelt haben die das DIP-RAM ja offenbar falsch bezeichnet (jedenfalls in der Bestellnummer), daher dachte ich, es ist ein 80nS Ram und es ist zu langsam.... Bei den Detailangaben steht zwar 70nS, aber weil ich unsicher war, hatte ich dann die SMD-Variante bestellt. Naja ich habe jetzt eins bei Kessler Elektronik (Ebay) eins für 1,99 EUR bestellt.

  • Meine Grafikkarte habe ich leider noch nicht begonnen, mir fehlt noch eine Quelle für den Quarz.

    Bei Reichelt gibt es zwar eine 10,7MHz Version aber die wird wohl nicht genau genug sein.

    geht mir genauso... ich habe aber trotzdem mal den 10,7 bestellt :)


    Bei den Detailangaben steht zwar 70nS,

    ich habe mal darauf vertraut... mal schauen,.. meine Teile kommen erst Anfang nächster Woche :)

  • Ich habe jetzt mal probiert, mit dem Programm für das EEProm weiterzukommen .... zunächst habe ich den kickc - compiler heruntergeladen. Der compiler benötigt java - das habe ich aber ohnehin schon installiert gehabt. Nach der Anleitung zu dem Programm habe ich das Beispielprogramm "helloworld.c" erfolgreich in "helloworld.asm" compiliert .... ich weiß allerdings nicht, ob mir das bei der vorliegenden Problemstellung etwas nützt, ich brauche ja keinen Assemblercode.


    Also habe ich mir die Section "Building the sourcecode" aus der Anleitung zum "Codetank" angeschaut:


    "Building the source code


    To link the library, simply #include the tms9918.h file in your C sources. The recommended way is to add the KickC command

    line switch -includedir=thisrepo/lib to your build script and then include the file with #include <tms9918.h>.


    The the tools/ directory contains a simple build.bat script example (for Windows) that you can customize to your needs.

    Setting a machine target


    There are three configurations you can target with the switches -t target -targetdir thisrepo/kickc of the KickC compiler:


    apple1

    apple1_jukebox

    vic20"


    Das file "tms9918.h" befindet sich bereits im Ordner "lib". Muss ich da trotzdem noch etwas "includen" ?


    Das "build.bat" script sieht so aus:


    @rem === BUILD SCRIPT ===


    @SET TARGET=%1

    @SET TMS9918=..\..


    echo ======================== VIC20 ===================================================

    call kickc -includedir %TMS9918%\lib -targetdir %TMS9918%\kickc\ -t vic20_8k %TARGET%.c -o out\%TARGET%_vic20.prg -e

    copy out\%TARGET%.prg out\%TARGET%_vic20.prg


    echo ======================== APPLE 1 JUKEBOX =================================================

    call kickc -includedir %TMS9918%\lib -targetdir %TMS9918%\kickc\ -t apple1_jukebox %TARGET%.c -o out\%TARGET%_apple1.prg -e

    call node %TMS9918%\tools\mkeprom out out\%TARGET%_apple1.bin


    echo ======================== APPLE 1 =================================================

    call kickc -includedir %TMS9918%\lib -targetdir %TMS9918%\kickc\ -t apple1 %TARGET%.c -o out\%TARGET%_apple1.prg -e

    copy out\%TARGET%.prg out\%TARGET%_apple1.prg


    @rem clean up files

    @del out\apple1_codeseg.bin

    @del out\apple1_dataseg.bin

    @del out\*.vs

    @del out\*.klog

    @del out\*.vs

    @del out\*.dbg

    @del out\%TARGET%.prg


    Wenn ich die Konfiguration "APPLE 1" wählen will, muss ich "VIC20" und "APPLE 1 JUKEBOX" löschen, soviel verstehe ich noch, aber wie mache ich dann weiter ?

  • Ich habe das build-script jetzt einfach mal vom CMD aus gestartet und erhalte die Fehlermeldung "Der Befehl "kickc" ist entweder falsch geschrieben oder konnte nicht gefunden werden." Nachdem ich die Dateien aus dem Ordner "bin" der kickc-Installation in den Ordner der "build.bat" kopiert hatte, war diese Fehlermeldung verschwunden. Jetzt macht er schon wesentlich mehr, jetzt kommt: "Error: Unable to access jarfile 1".

  • Ich habe jetzt auch angefangen, so ein Ding aufzubauen.

    Bin jetzt sogar recht weit mit dem, was ich da hatte.


    Von die ICs habe ich lauter 74LS, warum sollen die nicht gehen?
    Wo bekommt man die 2504 v (Shift Register)her oder was gibt es für alternativen? Der AMD 2804 pc müsste gehen, aber auch nicht leichter zu bekommen.

  • Habe mal im Applefritter Forum nach der fertigen Datei für das EEPROM auf der Tank Card angefragt. Evtl. wird die Datei auf Github freigegeben.


    Original Post:


    Hi,

    thank you for your interest in our projects! :-)

    I've just asked the sw developer (nippur72, also a member of this forum) if it is possible to share on his GitHub repository the binaries you requested.

    It's an ongoing project, so in case they don't show up in a few days I suggest you to contact him directly through this forum.


    Regards,

    C.

  • Ich habe jetzt auch angefangen, so ein Ding aufzubauen.

    Bin jetzt sogar recht weit mit dem, was ich da hatte.


    Von die ICs habe ich lauter 74LS, warum sollen die nicht gehen?
    Wo bekommt man die 2504 v (Shift Register)her oder was gibt es für alternativen? Der AMD 2804 pc müsste gehen, aber auch nicht leichter zu bekommen.

    Laut Applefritter funktionieren folgende Shift-Register: "I can confirm that the Apple-1 works with: AM1404APC, MM1404AN, 2504V, AM2804PC ....". Wichtig ist, dass die Bezeichnungen vollständig übereinstimmen (auch die Buchstaben nach der Zahl). So gibt es z.B. bei Ebay einen MM1404AH sogar aus Deutschland für unter 10 EUR (331806924463) - der funktioniert im A1 aber nicht, weil nur 5 MHz Version ....

  • Besten Dank für die Nachfrage bei den Applefrittern - mal sehen ob die binaries auf Github zur Verfügung gestellt werden. Eine weitere Frage wird dann auch sein, ob dafür ein Standard-A1 mit 8K Ram ausreicht oder ob zusätzliche Ram Erweiterungen (Jukebox oder F-Ram Karte) notwendig sind.

  • Wurde anscheinend schon hochgeladen:



    Nippur72 schrieb:


    Hi, I've released the binaries for the graphic card, you can find them on my Github repo:


    https://github.com/nippur72/ap…e/main/demos/demo/release

    https://github.com/nippur72/ap…main/demos/tetris/release

    https://github.com/nippur72/ap…ain/demos/picshow/release


    *_jukebox.bin are the 16K EPROM files (relocated at $4000)

    *.bin are the plain binary files starting at $0280 in free ram

    *.woz are the binary files in text format for the Woz monitor

    *.prg same as *.bin but with 2 bytes start address header

  • Ich habe gerade mal bei den Applefrittern reingeschaut, nippur72 hat die bin-Dateien schon eingestellt. Er schreibt:


    "Hi, I've released the binaries for the graphic card, you can find them on my Github repo:


    https://github.com/nippur72/ap…e/main/demos/demo/release

    https://github.com/nippur72/ap…main/demos/tetris/release

    https://github.com/nippur72/ap…ain/demos/picshow/release


    *_jukebox.bin are the 16K EPROM files (relocated at $4000)

    *.bin are the plain binary files starting at $0280 in free ram

    *.woz are the binary files in text format for the Woz monitor

    *.prg same as *.bin but with 2 bytes start address header"


    Die jukebox-bins sind für das EEPROM gedacht (wohl so dass sie im Eprom ab $4000 starten ?). Interessant sind auch die *.woz - files. Das ist der entsprechende Code als TXT-File. Somit kann man - ohne Verwendung des Code-Tank Aufsatzes - die Software für die Grafikkarte auf mit dem PIA - Nano Adapter hochladen.

  • Meine Grafikkarte habe ich leider noch nicht begonnen, mir fehlt noch eine Quelle für den Quarz.

    Bei Reichelt gibt es zwar eine 10,7MHz Version aber die wird wohl nicht genau genug sein.

    geht mir genauso... ich habe aber trotzdem mal den 10,7 bestellt :)


    ich habe mal darauf vertraut... mal schauen,.. meine Teile kommen erst Anfang nächster Woche :)

    10.738635 MHz /3 = 3.579545 MHz NTSC im Datenblatt steht dir 10.738635 sollten auf +/-0.005 MHz genau sein. Ein CRT-(Multisync)-Monitor verträgt da vermutlich größere Abweichungen Flat-Monitore eher weniger.

    Keine Ahnung wie weit man die Frequenz mit dem Trimmkondensator beeinflussen kann.


    Mit einem TMS9929A https://www.ebay.de/itm/202821661755 un dein paar Modifikationen sollte man ein PAL Bild bekommen und zwar als Component Signal also 3x Chinch.

  • Keine Ahnung wie weit man die Frequenz mit dem Trimmkondensator beeinflussen kann.

    ich hatte Claudio schon letzte Woche darauf angesprochen -> der richtige Quarz sei wohl "Pflicht"... :zeig:

    (Reichelt liefert morgen meinen bestellten Sachen.. aber da fällt mir ein, dass ausser dem 40pF Trimmer auch der richtige Quarz noch fehlt :wand