Hello, Guest the thread was called2.1k times and contains 11 replays

last post from Mac Bacon at the

BASIC Script zum booten von GEOS auf HDD

  • Ich möchte mir gerne ein Programm schreiben das mir von einer CMD HDD GEOS128 startet.
    Dafür nutze ich einen C128D mit Jiffy-DOS mit einem SD2IEC als Laufwerk 8 das ein 1581 IMAGE gemoundet hat.


    In etwa hätte ich mir das so vorgestellt:


    10 @"XR:DOS1581.BIN" (Floppy definieren)
    20 @"#13 (wechselt zur HDD ID)
    30 @"CP11 (Partition wechseln)
    40 @"S-9 (HDD die ID 9 zuweisen)
    50 RUN"GEOS128",U9 (GEOS Starten)


    Nur leider tuts das nicht.
    Ich bekomme nur die Fehlermeldung FILE NOT FOUND ERROR IN 50.


    Vermutlich ziehen die befehle alle nicht.

  • Hallo,


    was mir auffällt:


    In Zeile 20 - 40 fehlen die schließenden Anführungsstriche.


    Setze mal vor Zeile 40 und 50 ein REM und lass das Programm laufen. Befindest Du Dich jetzt in der Partition 11 auf der HD, wenn Du jetzt per Hand das Directory aufrufst?


    Dann das Ganze resetten, damit die HD wieder Lfw. 13 wird, das REM bei Zeile 40 entfernen. Das Ganze nochmal probieren. Ist die HD jetzt Laufwerk 9 und bist Du immer noch in Partition 11?


    Gruß
    Werner

  • Ich hab nun verschiedene Varianten probiert.
    Damit läuft es bis zum laden von GEOS:


    Code
    1. 10 @"XR:DOS1581.BIN" (Floppy definieren)
    2. 20 @#13 (wechselt zur HDD ID)
    3. 30 @"CP11" (Partition wechseln)
    4. 40 @"S-9" (HDD die ID 9 zuweisen)
    5. 50 RUN"GEOS128",U9 (GEOS Starten)



    Bei dem letzten Schritt, wo GEOS eigentlich geladen werden soll, friert das System ein. Kann dann nun mehr mittels RUN/STOP RESTORE wieder zurück.

  • Wobei mir noch auffällt das er den Schritt davor (Zeile 40) dann auch nicht mehr durchführt.

    Wie "dann" ???
    Was hat Eine Änderung in Zeile 50 damit zu tun, das Zeile 40 nicht funktioniert? Ich vermute, Zeile 40 macht von Anfang an die Probleme...


    Ändere zum Testen mal Zeile 40 und 50 so um:


    40 OPEN15,13,15
    50 REM ^"GEOS128",9


    (^ ist der Pfeil nach oben auf der Tastatur links neben RESTORE)


    und füge Zeile 45 hinzu:


    45 PRINT#15,"S-9":FORI=1TO500:NEXT:CLOSE15


    Lass das Programm so mal laufen, lege in die 1571 eine Diskette ein und gib dann ein:


    DIRECTORY U9 >RETURN-Taste<


    jetzt sollte das Directory der HD Partition 11 angezeigt werden


    DIRECTORY U13 >RETURN-Taste<


    jetzt sollte das Directory der 1571 angezeigt werden.


    Wenn ja, dann kannst Du das so übernehmen, wenn nein, lies mal das HD-Handbuch. Bei meinem ist es Seite 43 unten und Seite 44 oben.


    Gruß
    Werner

  • Hallo,


    Ja, das funkt so jetzt.

    Sehr gut ;-) .


    Woran lag es???

    Genau weiß ich das auch nicht. Aber ich habe die Änderung aus dem CMD-HD-Handbuch. Wie es aussieht, ist der Jiffy-DOS-Befeht zu schnell fertig.


    Hier mal ein Zitat aus dem CMD-HD-Handbuch:

    Gruß
    Werner


  • Hier mal ein Zitat aus dem CMD-HD-Handbuch:

    Wenn man es weiß, ist es ganz logisch. :whistling:
    Das SWAP-Feature der CMD-Laufwerke ist ja was anderes als würde man nur den Befehl zum Ändern der Laufwerksadresse an z.B. eine 1541 senden - bei SWAP agiert das CMD-Laufwerk kurzzeitig als Buscontroller, um auch das andere Laufwerk umzunumerieren. In dieser Zeit darf der Rechner natürlich nicht selbst als Buscontroller auftreten.

    Quote

    Wir empfehlen daher, Werte um die 500 in der FOR-NEXT-Schleife
    anzuwenden. Dadurch haben diese Befehle genügend Zeit, ihre Aufgaben zu erfüllen.

    Das wiederum geht natürlich sofort schief, wenn irgend eine Art von Turbo verwendet wird. Leerschleifen als Zeitmessung sind denkbar ungeeignet.
    Ich hab es kurz getestet; eine Leerschleife bis 500 entspricht einer TI-Differenz von ungefähr 33. Wenn man es wirklich sicher haben will, sollte man also per TI warten, oder Frames zählen, oderoderoder...

  • Hallo,


    damit das Zitat aus dem CMD-HD-Handbuch hier komplett wird, noch ein Satz daraus:

    Quote from CMD HD Hanbuch

    Die SWAP-Funktionen funktionieren bei geöffneten Dateien -mit der Ausnahme des Befehlskanals - nicht.


    bei SWAP agiert das CMD-Laufwerk kurzzeitig als Buscontroller, um auch das andere Laufwerk umzunumerieren. In dieser Zeit darf der Rechner natürlich nicht selbst als Buscontroller auftreten.

    Ja, ich frage mich nur, warum dann der Befehl für Jiffy-DOS dafür. Offensichtlich wird er zu schnell ausgeführt. Entweder fehlt die Verzögerung völlig, oder sie ist zu kurz ...
    Lt. Handbuch soll im Normalfall die Verzögerung ja vor dem "CLOSE15" erfolgen.


    Würde es eventuell helfen, wenn man nach:

    40 @"S-9" (HDD die ID 9 zuweisen)

    noch eine Verzögerung einbaut?? Wie:


    45 FORI=1TO500:NEXT


    Das müssen aber Leute beantworten, die eine CMD-HD besitzen. Ich habe und hatte nie eine...
    :schande:


    Gruß
    Werner

  • Ja, ich frage mich nur, warum dann der Befehl für Jiffy-DOS dafür.

    Das hat mit Jiffy-DOS nichts zu tun: Da Jiffy diesen Befehl gar nicht kennt, schickt es einfach den String ans Laufwerk (genau wie S0: zum Löschen, N0: zum Formatieren, V0: zum Validieren etc.).
    Der Befehl ist ein CMD-DOS-Befehl und wird vom Laufwerk ausgeführt; die Pause muss aber der Rechner einlegen. Da Jiffy-DOS gar nichts davon weiß, erfolgt auch keine Verzögerung.