Fe3 und multipart


  • tiger1
  • 960 Views 4 replies

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Fe3 und multipart

    Hallo,

    Wie funktioniert das mit multipart-Programmen genau. Habe hier ein Spiel aus 4 Programmteilen. Wenn ich die im Loader eintrage müßten diese doch dann komplett in den Speicher geladen werden. Somit müßte man doch die Teile in verschiedene Adressen laden. Ist es dann egal wohin oder macht die FE3 das automatisch?

    Gruß
  • Habe jetzt mal alles in eine Loader-Datei gepackt und wies aussieht macht die FE3 die Speicherbelegung automatisch!!

    Habe dann ein zweites Programm getestet das zwar startet aber mit Undef Statement error abbricht. Was bedeutet das?

    Hatte diese Fehlermeldung auch schon bei einem nicht multipart Programm. Wenn ich es direkt ohne loader starte hat es funktioniert und mit loader diese Fehlermeldung.
  • Du schreibst leider nicht, um welches Programm genau, bzw. welche Art von Programm es sich handelt.

    Wenn Du ein Multipart-Programm hat, wo am Anfang von Disk (bzw. *.d64) ein Bootloader geladen und gestartet wird, dann kümmert sich das Programm schon selbst um alles, Du mußt nur die richtige Speicherkonfiguration einstellen so daß zum Schluß alles in den Speicher paßt, und auch an die richtige Stelle geladen wird. Letzteres ist insofern von Belang, da sich die nicht erweiterte, die +3K erweiterte und die +8K (oder mehr) erweiterte Konfiguration schon im BASIC-Start unterscheiden ($1001, $0401 und $1201 in dieser Reihenfolge). Das verhindert schon zuverlässig den Start eines Programms mit SYS-Zeile wenn das nicht paßt. Dazu kommt noch, daß sich der Bildschirmspeicher und Farb-RAM ab 8K oder mehr von $1E00/$9600 nach $1000/$9400 verschieben. In jedem Fall muß im FE3-Loader dann nur der Bootloader eingetragen werden.

    Bei Cartridge-Programmen ist der Fall dann noch anders gelagert. Hier wird im Regelfall gar nichts an RAM hinzugefügt (eine der wenigen Ausnahmen dürfte der Super-Expander sein), aber u.U. gibt es mehr als nur einen ROM-Bereich als Datei. Diese ROM-Bereiche sind adressenmäßig nicht notwendig zusammenhängend, daher in zwei oder mehr Dateien gespeichert und in dem Fall gehen die Cartridges natürlich nicht hin, und laden da irgendwie selbstständig die anderen Teile nach. Das übernimmt in dem Fall der FE3-Loader, der dann im Anschluß durch einen automatischen Reset die Cartridge startet.
  • Laut Beschreibung sind es Basic Programme.

    Bei meinem 2ten multipart Spiel lag der Fehler daran dass ich alle Teile über den Loader geladen habe. Es reichte den ersten Teil mit der richtigen Speicherbelegung über den loader zu laden. Den Rest hat er dann selber nachgeladen. Anscheinend war der Speicher dann schon voll wodurch die Fehlermeldung enstand.

    Aber wodurch wird die Fehlermeldung bei dem Onefiler verursacht? Wenn ich es direkt starte funktionierts nur eben nicht über einen loader.
  • tiger1 wrote:

    Aber wodurch wird die Fehlermeldung bei dem Onefiler verursacht? Wenn ich es direkt starte funktionierts nur eben nicht über einen loader.

    Um das genau herauszufunden, müßtest Du schon den Onefiler oder einen Link, sowie deinen Entwurf der (nicht funktionierenden) FE3-Loaderdatei zur Verfügung stellen. Anhand der angegebenen Fehlermeldung ("?UNDEF'D STATEMENT") lassen sich so keine Rückschlüsse ziehen.

    Anscheinend war der Speicher dann schon voll wodurch die Fehlermeldung enstand.

    Daran wird es nicht direkt gelegen haben. Wenn Maschinencode nachgeladen wird, dann schreibt der zweite Ladevorgang das an die gleiche Stelle, weil sowohl FE3-Loader als auch das Programm selber die Ladeadresse in den ersten zwei Bytes der Datei als Ladeadresse hernehmen (sollten).

    Allerdings ist beim Multiload über den FE3-Loader eine Sache anders: Als "Ende des Programms" wird die Endadresse der letzten Datei hergenommen, und nicht diejenige des ersten Teils, und liegt damit natürlich viel zu weit "hinten". Für Variablen etc. ist damit zuwenig Platz, daher der Speicherfehler.

    Die Mehrzahl der vorgefundenen Programme ist sicherlich nicht im Hinblick auf den Einsatz mit der FE3 entwickelt worden, und geht zunächst bestenfalls einmal von dem Vorhandensein einer bestimmten Speichererweiterung aus. Um das zu automatisieren, sind die Loader-Dateien gedacht. Sie sollen das nachvollziehen, was man normalerweise an Vorbereitung an der echten Hardware ohnehin tun müßte: RAM an der richtigen Stelle zur Verfügung stellen, das erste Programm von Diskette laden, RUN. Oder: RAM einblenden, alle BLöcKe einer Cartridge laden, Schreibschutz einlegen, Reset. So mußt Du die FE3-Loader Dateien sehen: sie sind *nicht* Teil des Programms, sondern automatisieren lediglich Handgriffe, die bei Verwendung normaler Speichererweiterungen und Floppygebrauch ohnehin anfallen.