C64 Eprom mit PC brennen, aber wie?

Es gibt 18 Antworten in diesem Thema, welches 6.376 mal aufgerufen wurde. Der letzte Beitrag (13. März 2008 um 19:47) ist von jackdaniels.

  • hi zusammen

    es gab mal nen thread hier der sich auch damit befasst hat glaube ich, finde ihn aber nicht mehr


    ich hab hier nen batronix eprommer 3.3 und würde damit gerne am pc eproms mit OS und pla für den cevi brennen


    kann mir einer sagen was und wie ich das mache?
    bin auf dem gebiet absolut NEU und UNERFAHREN!

    zudem weiß ich nie WAS ich genau drauf brennen soll, c64 alt und neu unterscheiden sich da wohl. bei einem muß das basic char noch mit rein und beim anderen nicht oder sowas
    zudem, wenn ich mehrere systeme (speeddos joffy etc) auf ein eprom knalle, welche beinchen muß ich wie abknicken bzw mit schaltern wie versehen? da blicke ich leider auch nie durch.

    hoffe ihr helft mir ein wenig!

    danke

  • Also mit dem Batronix ist das kein Problem.

    Allerdings muss man beachten wo die Dateien her kommen, die man brennen will. Bei ROM Images (z.B. Kernal), die mit dem 64er geschrieben und dann auf den PC transferiert wurden, steht höchstwahrscheinlich noch die Startadresse vorne in der Datei, so dass sie 2 Bytes zu lang ist (z.B. 16386 statt 16384 für ein C64II Basic+Kernal oder 8194 statt 8192 für ein Kernal des alten C64). Die muss erst wieder entfernt werden. Das kann man mit einem Hexeditor o.ä. erledigen. Ich hab mir dafür allerdings ein kleines Java Programm geschrieben (siehe weiter unten). Das kann man wie folgt nutzen:

    javac c64topc.java (kompilieren)
    java -cp . c64topc c:/kernal.prg

    In diesem Beispiel wird aus dem kernal.prg eine eine Datei Kernal.prg.raw geschrieben, die die Loader-Adresse nicht mehr enthält. Die kannst Du dann brennen.

    Wegen Deiner anderen Fragen schaust Du am besten mal auf den Projektseiten zur jeweiligen Hardware nach, z.B.:

    Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.

    Da ist doch eigentlich alles beschrieben.

    Viele Grüße,
    Sascha

    import java.util.*;
    import java.io.*;

    public class c64topc
    {
    public c64topc()
    {
    }
    public static void main(String[] args)
    {
    c64topc c64topc1 = new c64topc();
    c64topc1.convert(args[0]);
    }


    public void convert(String inName)
    {
    try
    {
    File f = new File(inName);
    long len = f.length();

    FileInputStream is = new FileInputStream(inName);
    FileOutputStream os = new FileOutputStream(inName+".raw");

    byte[] buffer = new byte[(int)len];
    is.read(buffer);

    os.write(buffer,2,(int)len-2);

    is.close();
    os.close();

    }
    catch (Exception x)
    {
    System.out.println("Exception x="+x);
    }
    }
    }


    LIFE IS SHORT - Break the rules, do more, need less, smile often, be brave, stay true, dream big, forgive quickley, kiss slowly, love truly, laugh uncontrollably and never regret anything that made you smile.

  • das kann man so ja nicht stehen lassen :)

    unter Unix: dd bs=1 skip=2 if=file.prg of=file.bin

    Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.

  • hi zusammen

    also hab einige kernel hier! bzw files für PLA

    nun meine frage zum brennen.

    wie brenne ich basic + kernel hintereinander mit dem batronix am pc?

    und: wo bekomm ich das basic her? finds nirgends.

    muß ich beim brennen bereiche angeben? wenn ja welche?
    oder muß ich die beiden files erst "zusammenfügen" und dann als ganzes brennen?

    danke für hilfe

  • Kannst du das basic nicht einfach ausm Emulator ziehen?
    Z.B. in CCS Alt+M drücken, bank 7 eingeben (falls nicht eh schon eingestellt) und dann
    s "basic.rom" a000 c000 für mit ohne startadresse, oder
    sp "basic.rom" a000 c000 um mit startadresse zu speichern.

    oder suchst du nach nem gepimpten basic?

    Edit: Stelle gerade fest, das die Roms schon als Einzelfiles bei CCS beiliegen :) Kannst dir das Abspeichern also sparen :)

  • Am PC brennen geht wenn das File ohne Startadresse gespeichert wurde. Sieht man leicht an der Länge. Im Bedarfsfall die ersten beiden Bytes abschneiden.

    LIFE IS SHORT - Break the rules, do more, need less, smile often, be brave, stay true, dream big, forgive quickley, kiss slowly, love truly, laugh uncontrollably and never regret anything that made you smile.

  • Gerade noch mal geschaut, bei vice gibbet auch separate kernal und basic rom-files, ebenfalls ohne Startadresse. Sehr praktisch...

  • jo hab das basic aus vice auch genommen


    leider scheint es aber nicht zu klappen!

    ich brenne zuerst das basic... dann das kernel.

    das eprom ist nun voll bis 16382/3FFE

    es ist ein 256er eprom. oder muß ich nun nen umschalter nutzen? aber ich will ja nur dieses eine kernel haben, habe aber kein 128er eprom mehr

  • jackdaniels
    Welches Kernal brauchst du denn,901227-01 -02 -03 oder das 251913-01 (Kernal+Basic)?
    Das 03er und das 251913-01 hätt ich hier,selbst mit PC-Eprommer ausgelesen. :)

  • Hallo jackdaniels,


    leider scheint es aber nicht zu klappen!

    ich brenne zuerst das basic... dann das kernel.

    das eprom ist nun voll bis 16382/3FFE


    Wenn das kein Tippfehler ist, dann ist da etwas schiefgelaufen. Ein Basic oder Kernal ist jeweils 8192 Bytes gross, daraus ergibt sich Basic von 0 - 8191 ($0000-$1FFF) und Kernal von 8192-16383 ($2000-$2FFF).

    Aber vorsicht:

    Zitat


    es ist ein 256er eprom. oder muß ich nun nen umschalter nutzen? aber ich will ja nur dieses eine kernel haben, habe aber kein 128er eprom mehr


    Ein '256 Eprom hat eine Adressleitung mehr, deren Pin beim '128 auf High liegen muss, so daß der Rechner dann die obere Hälfte des Eproms anspricht. Du müsstest also das Basic ab 16384 = $4000 und das Kernal ab 24576 = $6000 ins Eprom brennen. Oder wenn Du ganz sicher gehen willst, alles zweimal - also Basic ab 0 und ab 16384 und Kernal ab 8192 und 24576. Dann ist es egal, auf welchem Pegel A14 liegt.

  • Oder einfach Pin 27 hochbiegen und mit Masse (Pin 14) verbinden, dann wählst Du immer die untere Hälfte.

    KI-Verwendung in diesem Posting: Rechtschreibkontrolle des Browsers.
    Abweichungen aufgrund des technischen Fortschritts oder individueller Vorlieben vorbehalten.

  • ok werde das mal testen! vielen dank für die tips

    morgen mal sehn ob ichs hinbekomme! wäre doch gelacht HA

    ansich ist der batronix echt ne gute wahl für mich. ich müsste halt nur was von der materie verstehen :D (welchen pin hochbiegen etc)

    es ist ein C64 II , somit basic+kernel

    kernel will ich nen fastloader nutzen. hab einige hier, basic ausm vice genommen

    morgen gehts weiter jungs

    vielen dank! habt mir schonmal sehr geholfen

  • mhhh

    grade nocohmals versucht

    zuerst basic mit 8192 bytes

    beschrieben von 0-1FFF

    dann kernel rein (welches 8192 bytes hat)

    aber da meldet er nur beschrieben bis 16382 / 3FFE

    er sagt auch vor dem brennen, daß er nur 8191 bytesa brennt soweit ich das richtig sehe...

    kann mir mal einer verraten woran das liegt?

    kann mir jemand vielleicht ein basic+speeddos bin geben? dann versuche ichs mal mit nem fertigen file


    oder wie kann ich die files vorher zusammenkopieren? zb basic+kernel oder gar basic+kernel+basic+kernel?

  • dann kernel rein (welches 8192 bytes hat)
    aber da meldet er nur beschrieben bis 16382 / 3FFE
    er sagt auch vor dem brennen, daß er nur 8191 bytesa brennt soweit ich das richtig sehe...


    Theorie: Die Brennersoftware erkennt, dass das letzte Byte vom Kernal 0xff ist und wirft es weg - da das der Wert einer unbeschriebenen EPROM-Zelle ist braucht das Byte nicht geschrieben zu werden. Lies den Chip doch nach dem Brennen aus und schau mittels Hexeditor nach, ob die Daten am Ende des gebrannten Bereiches (ab 0x3ff8) mit denen im Kernal-File (ab 0x1ff8) übereinstimmen.

    Zitat

    oder wie kann ich die files vorher zusammenkopieren? zb basic+kernel oder gar basic+kernel+basic+kernel?


    Das sollte problemlos funktionieren - zB mit COPY /B basic+kernal zieldatei

    10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    20 forj=1to5:printchr$(rnd(1)*16+70);:next
    30 printint(rnd(1)*328)-217

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Keine Ahnung, aber du könntest die Binaries doch zur Not auch mit nem Hexeditor aneinanderhängen (und dann gleich noch z.B. die ganzen Fehler- und Einschaltmeldungen zum Spass modifizieren :D ).

  • wie lautet denn der befehl unter linux? weiß das jemand?


    cat basic kernal > ziel

    10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    20 forj=1to5:printchr$(rnd(1)*16+70);:next
    30 printint(rnd(1)*328)-217

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • leute das scheint GEKLAPPT zu haben mit dem zusammenkopieren

    hab einfach 2x basic+kernel hintereinander kopiert, das ganze nun ins eprom geklatscht und der cevi rennt :D

    ich DANKE euch vielmals! nun kanns weitergehn