neue Version von MacBootMake

  • abraXxl schrieb:

    Wird "X?" in sd2iec stabil sein?

    Das ist der Plan

    Wie verhält sich sd2iec bei @UJ? Wird das Image/Veruzeichnis auf das FAT-Root gesetzt? (kann gerade nicht testen.)

    Alle offenen Dateien werden geschlossen, aber das aktuelle Image und Verzeichnis wird beibehalten. Wenn jemand gute Argumente vorbringt könnte sich das mit dem Verzeichnis evtl. mal ändern, Verlassen des Images aber eher nicht - es gibt mindestens ein Programm welches von sd2iec problemlos aus einem D64 funktioniert, das so ziemlich als erstes ein UJ ans Laufwerk sendet.

    Quellcode

    1. 10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    2. 20 forj=1to5:printchr$(rnd(1)*16+70);:next
    3. 30 printint(rnd(1)*328)-217

    sd2iec Homepage
  • Ich habe mal in mbm v5 gewildert und einen unified patch erstell:

    Quellcode

    1. @@ -118,14 +118,18 @@
    2. 908 :
    3. 1000 rem check disc/partition type
    4. 1002 print "Checking drive/partition format.
    5. - 1004 open 4, ga, 4, "$":get#4, a$:close 4
    6. - 1006 gosub 900:if e then return
    7. - 1008 e = 1:rem assume unrecognized
    8. - 1010 t$ = "unknown
    9. - 1012 if a$ = "a" then e = 0:ty = 18:sy = 0:oy = 5:t$ = "1541/1571
    10. - 1014 if a$ = "d" then e = 0:ty = 40:sy = 1:oy = 17:t$ = "1581
    11. - 1016 if a$ = "h" then e = 0:ty = 0:t$ = "CMD native
    12. - 1018 if a$ = "m" then e = 0:ty = 0:t$ = "CMD extended native
    13. + 1003 t$ = "unknown
    14. + 1004 e = 1:rem assume unrecognized
    15. + 1006 print#15,"x?"
    16. + 1007 input#15, e, e$, t, s
    17. + 1008 if instr(e$, "sd2iec") then e = 0:ty = 0:t$= "sd2iec
    18. + 1009 if e=0 then 1020
    19. + 1014 open 4, ga, 4, "$":get#4, a$:close 4
    20. + 1015 gosub 900:if e then return
    21. + 1016 if a$ = "a" then e = 0:ty = 18:sy = 0:oy = 5:t$ = "1541/1571
    22. + 1017 if a$ = "d" then e = 0:ty = 40:sy = 1:oy = 17:t$ = "1581
    23. + 1018 if a$ = "h" then e = 0:ty = 0:t$ = "CMD native
    24. + 1019 if a$ = "m" then e = 0:ty = 0:t$ = "CMD extended native
    25. 1020 print "Drive/partition has "t$" format.
    26. 1022 if e then print "Sorry.{down}":rem don't mess with unknown formats
    27. 1024 return
    28. @@ -141,7 +145,7 @@
    29. 1116 rem check whether boot block is active:
    30. 1118 print "Reading boot block.
    31. 1120 print#15, "u1 5 0 1 0
    32. - 1122 gosub 900:if e then return
    33. + 1122 gosub 900:if e<>0 and e<>62 then return:else e=0
    34. 1124 get#5, x1$, x2$, x3$
    35. 1126 fl = (x1$ + x2$ + x3$ = "cbm")
    36. 1128 return
    Alles anzeigen


    @Unseen: Zeile 1122 ist extrem seltsam: Ist kein "bootsect.128" vorhanden er gibt eine Block-Read auf 1,0 "62 File not found".
    Zudem möchte er wohl eine RAW-Datei. Zu dem ist ers möglich wenn schon ein PC64-Datei mit dem Namen existiert, zwei Dateien mit selben Namen im der $-Verzeichnis-Liste zu erstellen.
  • abraXxl schrieb:

    @Unseen: Zeile 1122 ist extrem seltsam: Ist kein "bootsect.128" vorhanden er gibt eine Block-Read auf 1,0 "62 File not found".

    Oh, da muss ich noch den Fehler sonderbehandeln.

    Zudem möchte er wohl eine RAW-Datei. Zu dem ist ers möglich wenn schon ein PC64-Datei mit dem Namen existiert, zwei Dateien mit selben Namen im der $-Verzeichnis-Liste zu erstellen.

    Ja, auf die Datei wird direkt über die fatfs-Library zugegriffen und nicht über die ganzen Wrapperfunktionen, mit denen sd2iec sonst auf Dateien zugreift. Im Augenblick halte ich das für unkritisch.

    Quellcode

    1. 10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    2. 20 forj=1to5:printchr$(rnd(1)*16+70);:next
    3. 30 printint(rnd(1)*328)-217

    sd2iec Homepage
  • abraXxl schrieb:

    Ich habe mal in mbm v5 gewildert und einen unified patch erstell:
    Gut zum Testen, aber ein paar Problemchen sehe ich:
    1) Soweit ich den SD2IEC-Source überflogen habe, wird die Methode mit "X?" schiefgehen, wenn sie in einem .d64 angewendet wird, denn dort müsste der 1541-Algo verwendet werden! Bitte teste deshalb auch noch meine Version.
    2) Im Falle eines unbekannten Format Specifiers entfällt jetzt das PRINT"Sorry{down}". :whistling:
    3) "if e=0 then 1020" passt gar nicht zu meinem NO-GOTO-Konzept (ich hab bei dem Programm versucht, direkte Sprünge nur als Ersatz für GOSUBxyz:RETURN zu verwenden). ^^

    abraXxl schrieb:

    @Unseen: Zeile 1122 ist extrem seltsam: Ist kein "bootsect.128" vorhanden er gibt eine Block-Read auf 1,0 "62 File not found".
    Das würde ich ungern in MBM abfangen. Der Fix für SD2IEC ist sicher nicht weit.
    Yes, I'm the guy responsible for the ACME cross assembler
  • Mac Bacon schrieb:


    1) Soweit ich den SD2IEC-Source überflogen habe, wird die Methode mit "X?" schiefgehen, wenn sie in einem .d64 angewendet wird, denn dort müsste der 1541-Algo verwendet werden! Bitte teste deshalb auch noch meine Version.

    Stimmt, guter Punkt.Werde allerding die nächten Tage wieder nicht mehr vor die Kiste kommen. :( Daher erst in eher zwei Wochen.

    Mac Bacon schrieb:


    2) Im Falle eines unbekannten Format Specifiers entfällt jetzt das PRINT"Sorry{down}". :whistling:

    Kollateralschaden ;)

    Mac Bacon schrieb:


    3) "if e=0 then 1020" passt gar nicht zu meinem NO-GOTO-Konzept (ich hab bei dem Programm versucht, direkte Sprünge nur als Ersatz für GOSUBxyz:RETURN zu verwenden). ^^
  • Version 11 von MacBootMake - jetzt in C

    Hi!

    Ich habe in den letzten Tagen das Programm endlich mal zu C konvertiert. Nach diversen Tests ist jetzt der letzte Bug behoben (tm) und es kann veröffentlicht werden.

    Änderungen zu früheren Versionen:
    • Mit CTRL-D kann zum nächsten Laufwerk gewechselt werden (wie bei Jiffy).
    • Bei Fehlern (wie z.B. Device not present) steigt das Programm nicht mehr aus.
    • Mit ESC-X kann der Bildschirm gewechselt werden.
    • Die gewählte Datei wird nun standardmäßig vom Bootlaufwerk geladen und nicht mehr unbedingt von Gerät 8 (ist aber weiterhin einstellbar).
    • Die erzeugten Bootblöcke enthalten am Ende einen Hinweis mit der Versionsnummer.


    Der Source ist auf GitHub verfügbar und kann mit cc65 kompiliert werden.

    Eine richtige Doku fehlt noch, aber wer mit den vorigen Versionen klar kam, wird auch mit der aktuellen zurechtkommen.

    Sollte jemand Fehler entdecken, bitte sofort Bescheid sagen.
    Dateien
    • mbm11.prg

      (7,25 kB, 13 mal heruntergeladen, zuletzt: )
    Yes, I'm the guy responsible for the ACME cross assembler