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

letzter Beitrag von RKSoft am

Fastloader welcher einen Loader vor das eigentliche Programm schreibt

  • Hallo zusammen, nachdem mein Kopf nun brummt, möchte ich doch ein eigenständiges Thema dazu aufmachen.


    KURZ und KNAPP: Ich suche einen Fastloader bzw. ein Tool und am Besten eine kleine Anleitung wie ich einen Fastloader direkt vor das eigentliche Programm schreiben kann und nicht zuerst extra ein Fastloader Programm laden zu müssen. Z.B. wie bei dem Spiel "Vegas Jackpot", welches den Nova Loader verwendet, dazu unten mehr.
    Ich möchte einfach eine Kassette einlegen und LOAD eingeben können und dann startet der Fastloader und lädt das Spiel nach. Ich muss auch nicht unzählige Spiele auf einer Kassette haben, 1 Spiel pro Kassette reicht aus.


    Ich muss dazusagen, ich habe mich nun erstmals damit beschäftigt, Daten bzw. Spiele von Kassetten zu laden, wobei Spiele übertrieben ist, denn ich habe nur eines und zwar Vegas Jackpot für C16.
    Leider konnte ich dieses Spiel nicht komplett ordentlich laden, habe zwei 1531 Datasetten dazu verwendet aber irgendwie scheinen die Daten im hinteren Bereich des Bandes defekt zu sein. Ein eigenes Basic Programm auf Kassette schreiben und laden geht mit beiden Datasetten problemlos!


    Dieses Spiel "Vegas Jackpot" benutzt den Nova Loader. Ein einfaches "LOAD" genügt um den ganzen Vorgang anzustoßen. Der Loader wird geladen und lädt dann das eigentliche Spiel.
    Da dieses Band aber defekt zu sein scheint, habe ich das Spiel erneut als TAP file heruntergeladen und dann mit AudioTap in eine WAV konvertiert. Diese WAV habe ich dann mit mehreren Kassettenrecodern (Stereo Anlage) versucht auf ein Band zu schreiben aber leider konnte keine der Datasetten die Bänder lesen. Die Datasetten möchte ich aber auch ungerne auf den Kassettenrecoder justieren.


    Also kam mir die sensationelle Idee, einfach die PRG Datei auf Diskette zu spielen, im C16 / C64 zu laden und mit "SAVE" auf das Band zu spielen. Soweit hat das auch einwandfrei funktioniert :D .


    Ich konnte auch mit Turbo Tape C16 (ist für den C16) die Daten komprimiert auf das Band schreiben.
    -Turbo Tape C16 von Diskette laden und ausführen:
    LOAD"TURBO TAPE C16",8,1
    RUN
    RETURN drücken
    -Nun das Spiel von Diskette laden
    LOAD"VEGAS JACKPOT",8,1
    -Und das ganze mit Turbo Tape C16 auf Band spielen
    :@S"VEGAS JACKPOT"
    PLAY+RECORD Taste an der Datasette drücken


    -Laden erfolgt ähnlich, zuerst Turbo Tape von Diskette laden:
    LOAD"TURBO TAPE C16",8,1
    RUN
    RETURN drücken
    -nun jedoch den Load Befehl von Turbo Tape C16 benutzen
    :@L"VEGAS JACKPOT"


    Nun würde ich gerne für ein paar Spiele einen Loader vorschalten aber die Flut an Informationen im Internet zu Fastloadern und FastLoader Modulen verwirrt mich total.
    Gibt es ein Programm für den C64/C16 mit dem ich eine PRG Datei von Diskette laden kann und dann mit vorgeschaltetem FastLoader z.B: Nova Loader auf Band spielen kann, so wie es bei dem original Spiel "Vegas Jackpot" der Fall ist.


    Ich habe auch einen alten MS-DOS (XP Rechner) an dem ich 3.5" Laufwerke und 5.25" Laufwerke Per Parallel-Port anschließe um direkt Daten auf Commodore Disketten zu schreiben. Falls es also ein MSDOS oder Windows Programm gitb welches eine PRG entgegen nimmt und dann das Programm inklusive Fastloader auf Band schreiben kann (z.B: mt X1530/X1531 Kabel) dann wäre das auch eine Möglichkeit.


    Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
    Vielen Dank schonmal für eure Antworten.

  • Ich habe damals selbst auf dem +4 mit Turbo Tape gearbeitet. Ist es eigentlich nicht so, wenn man ein Programm via Turbo Tape abspeichert, es dann als Fastloader schon so optimiert ist? Man muss doch keinen Fastloader vorher dann laden, nur um das eigentliche Programm schnell laden zu können. Oder bringen meine Kindheitserinnerungen mich da jetzt durcheinander?

  • Doch @RKSoft, man machte es damals[tm] so:


    load


    press play on tape
    searching
    found Turbo Tape
    loading


    Ready.
    run


    ... jetzt Kassette hinspulen wo das Spiel sinnvolle Anwendungsprogramm gespreichert wurde....


    <-L
    searching
    found Sinvolle Anwendung
    loading
    [pfeif blinki blinki blinki pfeif]


    Ready.
    run


    Was @zumili moechte ist, dass man sich das erste "run und "<-L" tippen sparen kann und er gleich "durchlaedt". Das erreicht man mit einem Autostart, bei dem ich nur noch rudimentaer weiss, wie es geht: Irgendwie so, dass das TurboTape Programm in den Bereich des Tastaturpuffers geladen wird und dort dann nach dem Laden der RUN-Befehl steht. Oder so in der Art.

  • Bei dem oben genannten Nova Turbo ist es genau so, man kann das abgespeicherte Programm dann ohne vorher den Turbo Loader laden zu müssen laden. Da gab es viele Loader die das so gemacht haben. Es gab aber auch andere, da musste immer zuerst der Turbo Loader geladen werden.
    Also deine Kindheitserinnerungen liegen absolut richtig.

  • @andi6510
    Das von dir beschriebene Verhalten ist doch, wenn du mal richtig darüber nachdenkst, totaler Quatsch (soll nicht beleidigend sein!). Die Datasette durchläuft das Band doch immer in der gleichen Geschwindigkeit. Man mußte Turbo Tape erst laden, dann mit RUN starten, so daß es im Speicher liegt. Dann das BASIC Programm laden. Danach einfach via SAVE das BASIC Programm speichern, fertig. Erst jetzt liegt das Programm im Turboformat auf der Kassette. Die Unterschiede hört man doch, wenn man selbige auf einer Anlage oder Kassettenrekorder (oh man, lange nicht mehr das Wort geschrieben) abspielt.


    @xpconnection
    Korrekt, und ich denke so möchte das @zumili auch haben. Einfach das gewünschte Programm normal via LOAD laden, und es soll gleich mit einem Fastloader versehen sein.

  • Das von dir beschriebene Verhalten ist doch, wenn du mal richtig darüber nachdenkst, totaler Quatsch (soll nicht beleidigend sein!).

    Nein, nein, das war im Gegenteil eigentlich die übliche Vorgehensweise für eine normale "Turbo Tape Erweiterung" des Betriebssystems.
    Üblicherweise packe man als erstes Programm auf jede Kassette seine Lieblingsversion eines Tape-Speeders. Dieser wurde dann zuerst geladen (oder er war sogar Teil einer Basic-Erweiterung oder gar ein eigenes Modul, wie das Hypra-Tape Modul - dieses stand dann natürlich direkt nach dem Einschalten zur Verfügung).
    Sobald der Tape-Speeder geladen war, spulte man (je nach Genauigkeit des Datasettenzählwerks) bis kurz vor die Stelle des gewünschten Programms (welches natürlich vorher mit Hilfe des Tape-Speeders "ge-saved" wurde).
    Dann wurde das gewünschte Programm durch den Tape-Speeder in den Speicher geschaufelt.


    Und dann gab es eben andere schnuckelige Lösungen, z.B. Novaload. Diese Tape-Speeder waren autostartend und luden nach dem eigentlichen Laden des Speeders das nächste Programm direkt im Turbo-Modus nach.
    Außerdem gab's noch Speeder mit Sound und sogar welche, bei denen man während des Ladens direkt ein Spiel spielen konnte, z.B. Invade-A-Load.


    Aber die ersten Speeder damals "für den Hausgebrauch" mussten wirklich erstmal vorgeladen und gestartet werden, damit man überhaupt in den Genuss der der Schnelllade- und Schnellspeicher-Routinen kam.

  • Nein, andi6510 hat schon recht. So hat man das damals[tm] tatsächlich zumeist gemacht. Erst Turboloader laden und dann das eigentliche Programm.
    Möchte man einem Programm den Turboloader voranstellen, so wird der so geladen, daß beim Laden wichtige Vektoren überschrieben werden, so daß entweder direkt beim Laden oder nach Beendigung nicht ins Basic zurückgekehrt, sondern direkt der Lader angesprungen wird. Das bedeutet: Der Lader selbst ist auf herkömmliche Weise gespeichert und wird noch ganz normal langsam geladen, verhält sich aber wie ein Computervirus, kapert das System und lädt dann die restlichen Daten (das Programm) in seinem gepackten Format.


    Edit: Mmmmist. Zweiter. ^^

  • Üblicherweise gibt es zwei Möglichkeiten, einen Autostart hinzubiegen:
    Entweder lädt man das Programm in den Bereich der Systemvektoren ab $0300 und überschreibt z.B. CHROUT (dieser Vektor wird nach dem Laden für die Ausgabe von "Ready" angesprungen).
    Oder man nutzt den Stack-Bereich von $0100 bis $01ff.


    In jedem Fall ist nicht besonders viel Platz vorhanden. Man muss sich also gut überlegen, wie man da vorgeht.

  • Das heisst also, daß bei einem gewöhnlichem LOAD in einem Rutsch erst das Miniprogramm für den Turbo geladen wird und danach automatisch das mit Turbo-gespeicherte Programm?

    Jap.


    Hier zusehen ab ca. 0:30:


    Hier ab ca. 0:20:


    Da gibt's noch viel mehr Beispiele. Für C16, Plus/4, C64, VIC20 usw.


    Hier gibt es einige schöne Hintergrundinfos zu dem Thema:
    http://c64tapes.org/dokuwiki/doku.php?id=analyzing_loaders

  • Hallo zusammen,


    ihr seid meine Helden für den heutigen Tag :D
    Habe es nun mit Nova Turbo hinbekommen und bin begeistert davon. Anstatt 7 Minuten für die normaler Version von Vegas Jackpot werden nun nur noch 37 Sekunden benötigt.


    Vorgegangen bin ich wie folgt:
    Nova Turbo mit PRGMover und XP PC mit Paralellport auf eine Diskette schreiben und dann am Plus/4 laden:
    {SHIFT + CLEAR HOME}
    LOAD"NOVA TURBO",8,1
    {F1}
    X
    {Return}
    [Ready erscheint auf Bildschirm, anschließend das Spiel von Diskette laden]
    LOAD"VEGAS-JACKPOT",8
    [Ready erscheint auf Bildschirm, anschließend das Spiel auf Tape schreiben, Device 7 angeben]
    SAVE"VEGAS-JACKPOT",7
    [PRESS RECORD & PLAY ON TAPE Meldung erscheint]
    {Play und Record auf Datasette drücken}


    Dann gehts los und der Bildschirm fängt an zu flimmern und die Daten werden auf die Kassette geschrieben.


    Das Laden erfolgt nun mit dem einfachen Befehl "LOAD" mehr ist nicht mehr nötigt und das Spiel von TAPE mit dem Nova Turbo zu laden, wunderbar.
    Vielen Dank an euch für eure Infos.


    Grüßle Thomas

  • Jo doch ich war auch überrascht, aber hab das nun mal mit 3 Spielen ausprobiert und hat jedesmal funktioniert.
    Die Umwandlung und das aufspielen der mittels Nova Turbo beschleunigten Spiele auf das Band habe ich mit einem 4/plus gemacht, die Spiele laufen aber auch einwandfrei auf einem C16, heute nach gerade noch getestet.

  • Wenn du nun ein Turbo Tape nemen würdest, was auch einigermaßen flott ist, dann geht das wesentlich schneller. Autostartroutinen einbauen nicht vergessen, dann startet es auch automatisch.


    Das Originalspiel Aliens wurde nur ohne Fastload geliefert anno 1987. Hatte mir mal aus Spaß ein tap gebastelt mit Novaload und dem originalen Loading Screen, den man ja im Original nicht mal ne halbe Sekunde sieht.

  • Für den C16/Plus4 gibt es ein Kopierprogramm, welches in einen Rutsch mehrere Programme von einer Disk 'auf Turbo konvertiert' auf Kasette schreibt.
    Da wird jedem der Programme der 'Turbo-Loader' vorangestellt, d.h. man muss nicht jedes mal an den Anfang der Kassette spuelen, um Turbo Tape zu laden, sondern kann das gewählte Porgramm direkt von seiner Position auf der Kasette laden.
    Es dauert dann ein paar Sekunden, bis der 'Turbo-Teil' geladen ist, anschließend wird das eigentliche Programm im Turbo-Modus weitergeladen (es erscheinen dann Streifen im Aussenrand)

  • Ich habe damals selbst auf dem +4 mit Turbo Tape gearbeitet. Ist es eigentlich nicht so, wenn man ein Programm via Turbo Tape abspeichert, es dann als Fastloader schon so optimiert ist? Man muss doch keinen Fastloader vorher dann laden, nur um das eigentliche Programm schnell laden zu können. Oder bringen meine Kindheitserinnerungen mich da jetzt durcheinander?

    Dann hast du garantiert das Turbo Tape von Kingsoft verwendet, welches bei fast jeder Rechneranlage mit Datasettenbetrieb irgendwannzu finden war. Nachdem du das Turbo Tape geladen hast, konntest du entweder Programme eintippen oder irgendwelche Programme laden, die dann im Turbo-Format gespeichert wurden. Der Grund ist da recht einfach: es wird an 2 Stellen im Speicher abgelegt, die erst mal nicht überschrieben werden, und zwar bei §1018 oder auch bei $7D00. Die zweite Adresse wird meist eher genutzt, weil dann hat man noch fast den gesamten Speicher der ersten 32 KB frei, und das genügte für viele Basic-Sachen. Schwieriger wurde es halt, wenn man die gesamten 64 KB speichern wollte, dafür war das Programm nicht gedacht, gibt aber genug Lösungen wie es trotzdem geht.


    Beim Speichern wird im Tapeheader dann die gesamte Autostartroutine im Kassettenpuffer geschrieben und mitgespeichert.


    Es gibt allerdings noch ein Fasttape, welches noch wesentlich schneller ist. Da hatte ich allerdings noch nicht die Parameter gefunden, um es zu nutzen.