Hallo Besucher, der Thread wurde 3,3k mal aufgerufen und enthält 45 Antworten

letzter Beitrag von LogicDeLuxe am

Welches Programm wird mit "*" gestartet

  • * lädt das erste File


    ,8 = an den Basicanfang
    ,8,1 = an die im File angegebene Ladeadresse


    Run = Basicstart (da kann dann SYS... stehen)


    SYS xxxx = Start an Speicheradresse xxxx


    Alle Basicbefehle können mit erster Buchstabe normal und SHIFT zweiter Buchstabe abgekürzt werden. z.B. rU für RUN. Print wird mit ? abgekürzt.

  • Mit Load "*",8,1 wird das erste Programm auf der Diskette geladen.


    Load ... ,8 lädt ein Programm and den Beginn des Basic speichers ($0801)
    Load ... ,8,1 lädt das Programm an dieStelle im Speicher, von welcher es auch abgespeichert wurde.


    Das bedeutet, du kannst ein BASIC programm auch mit ,8,1 laden. Ein Maschinenspracheprogramm aber nicht mit ,8
    (bzw. man kann schon, es funktioniert dann aber nicht)


    Mit RUN wird ein Basic Programm gestartet. SYS ist ein Sprungbefehl, (führe aus was ab Adresse irgendwas im Speicher ist). Das heisst ein Maschinenspracheprogramm steht ab einer betimmten Adresse im Speicher, z.B. 49152 (Hex C000)
    Das bedeutet, du lädst das Programm mit LOAD "BlaBlaBla",8,1 vom Floppylaufwerk and die Adresse 49152 und startest
    das Programm dann mit SYS49152.
    Mit RUN startest du nur Basic programme

  • Welches Programm wird mit dem Befehl LOAD"*",8,1 gestartet
    Das erste oder das grösste im Listing?

    Das zuletzt geladene Programm. Falls (nach dem Einschalten oder Reset des Laufwerks) noch nichts geladen wurde, wird die erste Datei im Directory geladen. Bzw. wird versucht, diese zu laden. Manche Directorys sind ja auch mit PETSCII-Artwork u.ä. versehen. Da kann es dann sein, dass mit Sternchen nichts geladen werden kann, sofern solche Directoryeinträge nicht auf eine ladbare Datei verlinkt wurden.


    LOAD":*",8 (also mit Doppelpunkt vor dem Sternchen) lädt immer die erste Datei - kein störendes PETSCII-Artwork vorausgesetzt. ;)



    Was ist der Unterschied zwischen ,8 und ,8,1?

    Eine Datei wird entweder an den BASIC-Anfang geladen (mit ,8) oder an die explizit in der Datei angegebene Adresse (die ersten beiden Bytes der Datei auf Disk). Programme, die mit RUN startbar sind, haben beim C64 i.d.R. die Startadresse $0801. Das ist der BASIC-Anfang und der ist dann auch in der Datei als Ladeadresse zu finden.



    Manche Spiele werden nicht mit RUN gestartet sondern mit SYS irgendwas. Wozu ist das so?

    RUN startet ein BASIC-Programm. Innerhalb eines BASIC-Programms kann man Maschinenspracheprogramme mit SYS aufrufen. Diese SYS-Zeile ist bei Maschinenspracheprogrammen oder auch compilierten BASIC-Programmen also einfach nur dazu da, die Datei bequem per RUN starten zu können.



    elche Abkürzungen werden generell bei den Befehlen genutzt?

    Die meisten BASIC-Befehle werden abgekürzt, indem der erste Buchstabe normal eingegeben wird und der zweite dann mit SHIFT - fertig ist die Abkürzung. Aber natürlich gibt es soeinige Ausnahmen wie bspw. '?' für Print. '?#' für 'PRINT#'' (bei Dateioperationen) funktioniert aber bspw. nicht.



    Edit: Da war ich wohl zu langsam beim tippen. Aber zumindest hatte vorher noch keiner das mit dem Sternchen beim Laden richtig erklärt... :P




    Und woher weiß ich wie ich was starten muss? Bisher war das bei mit try n error.

    Die meisten C64-Programme dürften per RUN startbar sein oder haben einen Autostart. Bei Maschinenspracheprogrammen, die an eine explizite Adresse geladen und direkt gestartet werden müssen, ist die Ladeadresse ein heißer Kandidat. Aber natürlich nicht zwangsläufig richtig. Wenn du keine Doku zum Programm hast, musst du halt selbst in den Speicher schauen und versuchen es rauszukriegen.

  • Das zuletzt geladene Programm.

    Alter Falter, Du hast Recht! Mensch, da lernt man auf seine alten Tage glatt noch was neues über die Grundlagen hier :thumbup:

  • Trotzdem ergänze ich da immer einen Doppelpunkt: LOAD":*",8,1 - so wird wirklich die erste Datei von der Disk geladen.

  • Und woher weiß ich wie ich was starten muss? Bisher war das bei mit try n error.

    Steht in der Anleitung, und bei Originalen in der Regel auch auf dem Etikett.


    Das zuletzt geladene Programm. Falls (nach dem Einschalten oder Reset des Laufwerks) noch nichts geladen wurde, wird die erste Datei im Directory geladen. Bzw. wird versucht, diese zu laden. Manche Directorys sind ja auch mit PETSCII-Artwork u.ä. versehen. Da kann es dann sein, dass mit Sternchen nichts geladen werden kann, sofern solche Directoryeinträge nicht auf eine ladbare Datei verlinkt wurden.


    LOAD":*",8 (also mit Doppelpunkt vor dem Sternchen) lädt immer die erste Datei - kein störendes PETSCII-Artwork vorausgesetzt.

    Das ist so die geläufige Beschreibung, aber da muß es noch ein weiteres Detail geben. Ich hab schon Disketten gesehen, da konnte man direkt nach dem Einschalten mit LOAD"*",8,1 laden, aber mit LOAD":*",8,1 klappte es nicht.

  • Alter Falter, Du hast Recht! Mensch, da lernt man auf seine alten Tage glatt noch was neues über die Grundlagen hier :thumbup:

    [klugscheiß]Genau genommen ist "*" nicht mal das zuletzt geladene Programm, sondern die zuletzt vom Laufwerk referenzierte Datei. Direkt nachdem man z.B. einen Scratch-Befehl ans Laufwerk geschickt hat, kann man mit LOAD"*",8,1 sogar die gerade gelöschte Datei in den Rechner laden.[/klugscheiß]

  • Manche Spiele werden nicht mit RUN gestartet sondern mit SYS irgendwas. Wozu ist das so?

    Häng mal ein Beispiel an. Eine Möglichkeit sind simple Dumps von Modulen wie z.B. Gorf oder Commodore Soccer. Modulspiele blenden ihr ROM in den Adressraum ein und werden vom Kernal automatisch gestartet (bzw. ersetzen den Kernal komplett, je nach Bauart). Daher haben diese Spiele keine Basic-Startzeile.
    Liest man den Modulspeicher aus und schreibt den Inhalt in eine Datei, kann man das Spiel von Disk in den Speicher laden, muss es dann aber per SYS starten. Das kann man aber mit einem kleinen Wrapper-Programm beheben, so dass das fertige Programm wieder mit RUN gestartet werden kann.

  • Das ist so die geläufige Beschreibung, aber da muß es noch ein weiteres Detail geben. Ich hab schon Disketten gesehen, da konnte man direkt nach dem Einschalten mit LOAD"*",8,1 laden, aber mit LOAD":*",8,1 klappte es nicht.


    Wenn ich mich recht entsinne schränkt * die Suche auf PRG-Dateien ein, während :* immer die erste Datei im Verzeichnis nimmt. Aber ich müsste im ROM-Listing wühlen um sicher zu sein.


    (ausserdem fordere ich einen persistente Checkbox für "Darstellung von Smileys deaktivieren"!)

  • [klugscheiß]Genau genommen ist "*" nicht mal das zuletzt geladene Programm, sondern die zuletzt vom Laufwerk referenzierte Datei. Direkt nachdem man z.B. einen Scratch-Befehl ans Laufwerk geschickt hat, kann man mit LOAD"*",8,1 sogar die gerade gelöschte Datei in den Rechner laden.[/klugscheiß]

    Hier hat das eben nicht funktioniert (mit Retro Replay und originalem 1541-II-DOS). Interessehalber habe ich auch gleich mal getestet, ob das Laden mit "*" nach einem Rename-Befehl noch korrekt geht. Antwort: Ja.

  • Nein "*" versucht, den ersten Eintrag im Dir zu laden. Wenn das kein PRG ist, dann wird das mit Fehlergeblinke quittiert.

    Da bin ich mir ziemlich sicher, dass das nicht stimmt - schon alleine weil du es behauptest.


    Interessehalber habe ich auch gleich mal getestet, ob das Laden mit "*" nach einem Rename-Befehl noch korrekt geht. Antwort: Ja.

    Es merkt sich ja auch nur Track und Sektor des Dateianfangs und nicht den Dateinamen.