Beiträge von Korodny im Thema „Bytes aus File und Diskettengröße auslesen“

    Auslesen der ersten zwei Bytes aus der PRG-Datei. Das ist ja die Adresse, an die die Datei mit LOAD"...",8,1 geladen wird.

    Die meisten zu startenden Programme dürften nach $0801 geladen werden, müssen dann aber mit RUN oder SYS20xx gestartet werden - nicht mit SYS2049.

    Von den Programmen, die nicht an den Anfang des BASIC-RAMs geladen werden, startet ein Teil automatisch, andere benötigen wie erwähnt Parameter oder machen nur als Unterprogramm eines BASIC-Programms Sinn. Dann bleiben m.E. nur sehr wenige Anwendungsfälle übrig, wo ein "Laden, dann Sprung an Ladeadresse" tatsächlich Sinn macht?

    Ich würde die Funktionen "RUN" (→Laden nach $0801, dann RUN) oder "Boot" (→LOAD,8,1, dann RTS) anbieten.

    Alle JSRs mit RTSs quittieren (Stack frei machen)

    Was meinst du mit "mit RTSs quittieren"? Überflüssige Rücksprungadressen holt man normalerweise mit PLA vom Stack.

    Noch eine Zusatzfrage: Ist auf einer Diskette irgendwo hinterlegt, wie viele Blocks insgesamt darauf passen? Und wenn ja, wie kann ich das einlesen?

    Wie andere schon gesagt haben: Den Laufwerkstyp identifizieren und dann in einer Tabelle nachsehen, wie viele Blöcke drauf passen.

    Laufwerke musst du sowieso identifizieren - es war ja die Rede von einem Schnelllader, der funktioniert natürlich nur mit bestimmten Laufwerken. Also ein mal zum Programmstart (oder wenn der Nutzer eine Funktion "Laufwerke scannen" aufruft) alle Laufwerke identifizieren und ihre Parameter ("Speeder benutzen J/N", "Größe in Blocks", "maximale Anzahl Dir-Einträge"...) in eine Tabelle schreiben.

    Oder, wenn du wirklich nur 1541 unterstützen willst: alles ausblenden, was keine 1541 ist.