BonnyDos Befehlssyntax

  • Das Handbuch zu BonnyDos ist allen Lobes wert!
    Nachdem ich mich nun näher mit BonnyDos beschäftige,
    tauchen dennoch ein paar Fragen auf.
    Meistens bezieht sich dies auf die genaue Syntax eines Befehls.
    Beispiel



    Wenn ich nun eine Diskette mit Binärdateien(.bin) auf der Diskette
    im Laufwerk |B habe, und möchte den kompletten Inhalt der Diskette
    nach Partition |Part,2 ins Verzeichniss Spiele kopieren.
    Wie mache ich das? Wie lautet die Syntax?


    Zitat

    |DCOPY
    ,Dateiname$
    Keine Besonderheiten
    DCOPY ermöglicht das Kopieren von Diskette auf Festplatte. Es werden alle zu AMSDOS kompatiblen
    Formate unterstützt. Dazu gehören u.A. auch die ROMDOS 720K-Formate, sowie das Systemformat der
    CP/M-Disketten.


    Welche Romdos-Formate? D1, D10 ? Ermöglichen mir die BonnyDos-Roms den Zugriff, oder muss ich ein
    weiteres Rom laden (Parados, Dobbertin?)



    Auch hier: Muss ich ein weiteres Rom laden (Parados, XDos?)
    Wie sieht das mit den Dateinamen aus?
    8.3 als Namensvorschrift? Gibt es "verbotene" Sonderzeichen?
    Zum Beispiel " ~ "?


    Zitat


    |FGET,dateiname$
    |FGET,“dateiname“
    Kopiert eine oder mehrere Dateien (Universalzeichen) von der Diskette auf die Festplatte. Ist nicht die
    Festplatte, sondern eines der beiden Diskettenlaufwerke das Bezugslaufwerk, wird von B: auf A: kopiert,
    wobei das Format der Diskette in Laufwerk A: keine Rolle spielt.


    Auch hier ist meine Frage wie oben. Wie lautet z.B. die Syntax um mehrere Dateien von|B nach |Part,2 - Verz. Spiele
    zu kopieren?
    Beim Versuch dies zu tun, scheitere ich (einzelne Dateien) daran, daß auf der Floppy gerödelt wird,
    der CPC sich mit Ready zurückmeldet, jedoch auch mit "0 Dateien Kopiert" ?


    Nebenbei... Sind die Syntax
    |FGET,dateiname$
    |FGET,“dateiname“
    gleichwertig, also austauschbar?



    Wie stelle ich .SNA files her? Am PC? Wenn ja, welchen Emulator kann man empfehlen?
    Muss man irgendwelche Konventionen beachten?



    Ich würde ja eine Befehls-Kurzübersicht nach Alphabet sortiert
    in Angriff nehmen, ist aber erst sinnvoll, wenn ich es selbst verstanden habe.
    Evtl. kann mir einer unserer CPC Profis weiterhelfen?



    Grüße


    Stefan

  • Offenbar ist mir dann das Handbuch doch nicht gelungen, wenn es nicht eindeutig hervorgeht :)


    Wichtig ist immer: Das Laufwerk muss korrekt konfiguriert sein, damit BDOS etwas damit machen kann - wie z. B. gleich zu Beginn des Handbuches vermerkt, braucht man ein 80-Track-Disk-ROM (z. B. ParaDOS, welches ich auch bei der Entwicklung genutzt habe), wenn man 80-Track-Disks (auch FAT12) lesen möchte. BDOS nutzt nämlich nur das Disk-ROM, nicht jedoch eigene Floppy-Routinen.


    Möchte man also alle Files kopieren, so lautet der Befehl:
    |B
    |DCOPY,"*.*"


    Möchte man nur BAS-Dateien kopieren, so lautet die Anweisung
    |DCOPY,"*.BAS"
    usw.


    (siehe auch "Datenaustausch zwischen Festplatte und Diskette)


    Vorher ist natürlich in das entsprechende Verzeichnis der Festplatte zu wechseln. (z. B. mit |CD,"2:SPIELE")


    Zu den beiden nächsten Fragen zum Disk-Format: Siehe "Datenaustausch zwischen Festplatte und Diskette", sowie die Einleitung "Systemanforderungen".


    Die Syntax von |FGET bzw. der Ablauf ist der selbe, wie bei |DCOPY.


    Snapshots kann man mit jedem Emulator machen - ich hab immer Caprice und WinApe genutzt. Aber eigentlich sollten die SNA-Formate identisch sein, gleich welcher Emulator genutzt wird.
    Es können nur 64K SNAs (Arbeitsspeicher 64K bzw. "save first 64K only" oder 128K SNAs genutzt werden).


    Btw: Die Syntax |FGET,"Dateiname" und |FGET,dateiname$ ist die selbe - das soll nur darauf hinweisen, dass man auch String-Vars anstelle von fixen Zeichenketten nutzen kann - also z. B.


    10 INPUT "FILE-MASKE:",fm$
    20 |FGET,fm$

  • Zum Thema Dateinamen 8.3 - auch dazu gibt es im Handbuch ein Kapitel. Ich nehme an, du hast ggf. schon mal mit CP/M oder MS-DOS gearbeitet und kennst dich mit den Disk-Namen am CPC aus? Die Namensgebung unter BDOS ist identisch - hier und da u.U. etwas "freizügiger".

  • Der Meister selbst ! ^^ Cool !
    Nein, mach Dir mal keinen Kopf. Das Handbuch ist klasse.
    Ich denke mal, der "Fehler" ist, daß ich erst vor etwa 18 Monaten begann,
    mit dem CPC zu arbeiten. Ich bin also auch unter AmsDos nicht Sattelfest.


    Parados Ah jetzt ja! Steht drin.
    Habe mich verwirren lassen durch den Satz:
    DCOPY ermöglicht das Kopieren von Diskette auf Festplatte. Es werden alle zu AMSDOS kompatiblen
    Formate unterstützt. Dazu gehören u.A. auch die ROMDOS 720K-Formate, sowie das Systemformat der
    CP/M-Disketten.
    Das klang in meinen Ohren wie "auch ohne Extras".


    JUHU !!!


    Ich werde heute Nacht Testen, was das Zeug hält!.


    Danke für die Tipps!!! :Meister:


    Stefan

  • Solange Du bei 40-Track-Disketten mit typischen AMSDOS-Formaten bleibst, brauchst du nix anderes. Ich kann ParaDOS empfehlen - denn es hat sogar eine sehr bequeme Möglichkeit, Dateien zu kopieren usw. (|DRIVE), wobei auch eine Speichererweiterung genutzt wird (sehr praktisch beim Kopieren von z. B. A: nach A:).


    Ansonsten probier einfach alles aus - im schlimmsten Fall kommt ein "Bad command", wenn was am Namen nicht passen sollte :D
    Es kann eigentlich nix kaputt gehen. Hast Du trotzdem mal Zweifel, kannst Du ja deine Files auf platte schreib/lösch-schützen. Dann kann wirklich nix passieren (außer ein Format) :D

  • Sooo.... bin dazu gekommen, mich endlich mal länger mit BonnyDos zu beschäftigen.
    Danke für die Tips, bzw. das Übersetzen für einen Deppen.
    Alles funktioniert.


    Ich habe jetzt mehrere One-Filer (Spiele) in ein Verzeichnis kopiert.
    Diese kann ich aufrufen und laufen lassen.
    Die Syntax ist mir noch ungewohnt, ( " ) und ( | ) nicht
    vergessen!!! aber sie ist in der Tat ähnlich wie DOS oder CP/M.


    Beim Versuch CPC-Word zu starten, bin ich leider gescheitert. Ist ja auch kein One-Filer.
    Werde mal versuchen, CPC-Word im Emulatur zu Freezen und dann als SNA unter
    BonnyDos laufen zu lassen.


    Es wäre halt schön, wenn ich den CPC unter Bonny mit allen Dingen die man so braucht
    einrichten könnte. Schreiben, Malen, Rechnen, Spielen halt...


    Werd jetzt mal tüfteln...


    Sacht mal, wie macht man aus einem Spiel/Programm einen One-Filer?



    Stefan

  • Vorab möchte ich mich noch von all dem Distanzieren, was man ggf. so auf dem CPCWiki-Artikel über BonnyDOS findet - ein uns bekannter "Freund" stillt dort gerade seinen "Größenwahn" damit, alle Artikel, die in irgendeine Weise mich betreffen, zu verunstalten... Nun ja, so ist das halt am CPC....


    So, zurück zum Thema :)


    Also grundsätzlich laufen erstmal alle (bis auf wenige Ausnahmen?) Spiele, die 64K brauchen ohne Anpassung. Einfach rüber kopieren und dann wie von Disk auch geladen (z. B. mit RUN"xxxx"). Dabei spielt es auch keine Rolle, ob da was nachgeladen wird. BonnyDOS verhält sich genauso wie das Disk-ROM. Man kriegt auch Spiele wie HANSE oder VERMEER von HD zum laufen - die lesen zwischendrin ja noch ASCII-Files ein.


    Gefährlich wird es, wenn Software 128K RAM braucht: Irgendwo muss BonnyDOS ja seine Daten ablegen. Bei der Entwicklung hatte ich nur zwei möglichkeiten: In Bank 0, also dort wo BASIC z. B. "wohnt" - vorteil: Wenig aufwand, nachteil: Alles, was 64K braucht geht nicht mehr zu 100%, da der freie Speicher runtergesetzt wird. Also habe ich mich für Bank 1 entschieden - genauer gesagt, am Anfang der letzten 16K der zweiten Speicherbank. Dort legt BDOS seine Daten ab.


    Lädt man nun normale 128K-Soft, so wird diese aus zwei gründen nicht starten:
    - Es wird BonnyDOS "platt gemacht" (dank einer CRC-Prüfsumme vor file-Zugriffen wird dann die Platte "abgeschaltet" bzw. BDOS verweigert bis zum Reset den Dienst).
    - Das direkte Laden in Speicherbänke (erkennbar an z. B. OUT &7F00,&C4:LOAD "xXX",&4000) funktioniert nicht. Ein Beispiel habe ich im Handbuch abgedruckt, wie man so etwas umgehen kann (habs leider nicht mehr im Kopf - ist zu lange her).


    Eine Möglichkeit, widerspenstige Software zum Laufen zu kriegen ist der weg über snapshots. Aber: Software, die normal nicht läuft (ich vermute, dazu gehört auch CPC-Word, da es 128K braucht) darf NICHT mehr auf Platte zugreifen, wenn das Programm gestartet wurde - denn das geht dann Schief (Speicherschutz von BonnyDOS).


    Wie man aus Spielen ein Onefiler macht? Es gibt verschiedene Arten von Ladern - BASIC, BINÄR... Pauschal kann man das nicht beantworten.


    Ist der Lader ein BASIC-File: Schau dir den Lader an. Dort siehst Du, welche Datei wohin geladen wird und was am Ende mit CALL angesprungen wird. Mit diesen Daten kannst Du alles notwendige "Extrahieren".


    Binär: Hier wird meistens ein ROM WALK ausgeführt (erkennbar, wenn mitten beim Laden von Disk die Einschaltmeldungen aller ROMS wieder angezeigt werden) - wird am CPC ein BIN-File mit RUN"xxx" gestartet, so "vergisst" das BEtriebssystem nach dem Start des Programmes alle Erweiterungs-ROMs. Daher sorgt ein Lader als erstes dafür, dass er seinen eigenen Ast (Disk-ROM) nicht absägt und initialisiert über KL ROM WALK alle ROMs erneut. Selbstredend, dass dann BonnyDOS ebenso neu initialisiert und wieder auf Disk gewechselt wird.


    Abhilfe: Das Hauptfile per BASIC nachladen und mit CALL starten.


    Der einfachste Weg dürfte dann aber das Erzeugen von SNApshots sein.

  • Die Schwierigkeit ist einfach die, dass es viele Wege gibt, Programme, die nicht sofort mit der Festplatte zusammenarbeiten wollen, anzupassen. Ich könnte Dir jetzt einen vom Wolf erzählen - aber ich habe leider keine Ahnung, wie a) dein Handwerkszeug (Tools am PC/CPC) aussieht und b) dein Wissensstand ist. Daher: Hast Du zweifel, fertige einfach an SNA-File an. Vergesse aber nicht, dass dann nach dem Start mit |SNA ggf. das Disk-ROM wieder eingeblendet wird und ein Programm dann wieder auf Diskette zugreift (dies ist jedoch kein Bug von BDOS, sondern liegt am CPC).

  • Es ist bedauerlich, dass gegen diese Randale seitens der obersten Instanz nichts unternommen wird. Welche Motive dahinterstecken erkennen vermutlich die meisten. Leider ist das alles dem Wiki als objektivem Nachschlagewerk überhaupt nicht zuträglich, weil hier persönliche Animositäten reinspielen. Schade um die ernsthafte Arbeit vieler anderer. Der Wahrnehmung deiner Software wird's vermutlich wenig schaden, weil der tatsächlich Interessierte sich von diesen unqualifizierten Beiträgen kaum wird beeinflussen lassen.

  • Ich finde das auch ganz schlimm. Es vergeht fast kein Tag wo der Kerl nicht seine giftigen Tentakel in den Roman oder BonnyDOS beitrag steckt und das alles verwüstet. Ich verstehe nur nicht, wieso er das macht. Da hat doch kein Mensch etwas von und am wenigsten er selbst. Ein Armutszeugnis und es zeigt seine blinde Wut auf alles was irgendwie mit Timo, mir oder Euch zu tun hat. Im Wiki Forum, spricht er auch nur schlecht über mich, behauptet das ich ihn aus dem Vereinsforum geworfen hätte etc.
    Darauf reagiere ich gar nicht, sonst bekommt er noch mehr Futter. Ich finde es nur schade, denn eigentlich leiden alle unter seinem Verhalten.


    Gruß
    Tom / Pentagon

  • Zitat

    Es vergeht fast kein Tag wo der Kerl nicht seine giftigen Tentakel in den Roman ...


    Momnt mal, in mich steckt keiner seine giftigen... :D

    Viele Grüsse
    Roman
    --------------------------------------------------------------------------------------------------------------
    ...auch das Zukünftige wird ein Morgen haben, das es zum Gestrigen werden lässt...


    Viele Grüsse aus der Schweiz
    https://webnose64.ch

  • Um nochmal auf das Thema "Anpassung von Programmen" zurück zukommen.


    Manchmal reicht es auch aus, nur das Hauptfile auf Platte zu kopieren und mit RUN"xxx zu starten - Dazu muss man prüfen, ob das Programm eine Start-Adresse besitzt. Das kann man mit einem Tool, oder etwas Assembler-Bastelei, oder z. B. mit ROM Pack Professional (2 ROMs mit vielen Befehlen, wie eben der aufgeführte |HEADER-RSX).


    Ist da ein Wert <>$0000 als Execute-Adresse hinterlegt, dann ist die Wahrscheinlichkeit groß, dass es läuft. Starte das File dann (von Disk) einfach mal mit RUN"<dateiname>" - mit etwas Glück klappts - dann kannst Du die Datei auf Platte kopieren.


    Manchmal sind auch falsche Adressen hinterlegt (bei einigen Spielen zum Beispiel $DEAD oder Scherze wie $CAFE) - dann stürzt der Rechner ab oder macht einen Reset - in diesem Fall müsste man im Lader schauen, wo der Einsprung ist und könnte dann (Assembler vorausgesetzt) die BIN-Datei laden und neu, mit den korrekten Daten, abspeichern.


    Bei Bomb Jack z. B. gehts nicht so einfach, da man hier noch manuell ein Mode einfügen muss. Ich hab aber irgendwo ein ganzes Archiv mit HD-Games - also Spiele, die entweder direkt liefen oder ich angepasst habe (z. B. 128K-Software). Damals hatte ich auch mein Container-Format probiert - Bomb JAck 1+2 in einer Datei z. B. (geht aber nur von HD).


    Wenn du konkret Hilfe brauchst, einfach bescheid geben. Viel zeit habe ich zwar nicht, aber wenns im Bereich des Möglichen liegt, dann helfe ich gerne.


    P.S.: Wenn jemand noch einen alten PC (>=80286) hat, der könnte ja mal die 286er Version von BonnyDOS testen - je mehr Rechnerkonfigs, desto besser :)

  • Es ist bedauerlich, dass gegen diese Randale seitens der obersten Instanz nichts unternommen wird.


    Das kann ich so nicht stehen lassen. Die oberste Instanz hat das schon mitbekommen, es geht ihr auch auf den Sack und hat auch schon einiges rückgängig gemacht. Blöderweise taucht das aber nicht in den "Recent Changes" auf. Ich bin nämlich auch darauf reingefallen :P.

  • Moin zusammen.
    Ich würde mir um "Du weißt schon wer", keine Magengeschwüre wachsen lassen.
    Ärgerlich zwar, aber mit genügend Zeit im Rücken erledigen sich die meisten Probleme.
    Man kann sicherlich davon ausgehen, daß die zwischenmenschlichen Probleme sich
    nicht nur auf das Netz beschränken. Der ganz dicke Rückschlag kommt dann meistens.
    Irgendwann.
    Die "CC Regierung" hat doch zum Beispiel recht schnell reagiert?! HIER ist Ruhe.
    Bitte lasst es bitte auch dabei.


    Erst mal Danke für die ausführlichen Tips. Irgendwer hatte mal cpconefiler-bdos.zip
    ins Netz gestellt ^^ . das K Ö N N T E doch was für mich sein. Mei, wenn ich das nur finden würde. :rolleyes:
    Bei deinem Dateianhang kann ich Maxidos und Maxam erkennen. Ist gebongt. Jedoch ROMpack Pro...
    nop. Habe nur die normalen Zusatzroms (1.71oder1.72) Da müsste der |header Befehl aber auch drin sein,
    glaube ich bin schon drüber gestolpert.


    Zitat

    Ist da ein Wert <>$0000 als Execute-Adresse hinterlegt, dann ist die Wahrscheinlichkeit groß, dass es läuft. Starte das File dann (von Disk) einfach mal mit RUN"<dateiname>" - mit etwas Glück klappts - dann kannst Du die Datei auf Platte kopieren.


    Manchmal sind auch falsche Adressen hinterlegt (bei einigen Spielen zum Beispiel $DEAD oder Scherze wie $CAFE) - dann stürzt der Rechner ab oder macht einen Reset - in diesem Fall müsste man im Lader schauen, wo der Einsprung ist und könnte dann (Assembler vorausgesetzt) die BIN-Datei laden und neu, mit den korrekten Daten, abspeichern.


    Das sollte sich bewerkstelligen lassen. Hab mich immer schon für Assembler interessiert. Das wäre
    ja mal ne Aufgabe, die für nen "geübten Archäologen äh Nutzer" die richtige Kragenweite ist.
    Wenn nur der BasicLader zu sehen ist, haben die anderen Daten das Attribut Hidden?
    (Zeigt Parados z.B. die Datei dennoch an? - damit ich das Attribut ändern kann?)


    Statt CPC-Word werde ich, des schnelleren Erfolges wegen, erst mal Context oder ähnliches testen.
    Sollte ich irgendwann mal ein Crack werden, kann ich mich ja mal mit der Speicherverwaltung befassen 8|
    Wahrscheinlich nicht mehr in DIESEM Leben ;)


    Danke für Deine Arbeit!


    Stefan

  • MaxiDOS selbst nutze ich nicht - das war nur im Emulator wegen einiger Tests bezüglich von ROMs :)


    Meine Config war ParaDOS only. Außerdem habe ich immer noch den Turbo-Assembler am CPC genutzt. Ebenfalls war das http://www.cantrell.org.uk/david/tech/cpc/cpc-firmware/ eine gute Anlaufstelle - gehe doch mal ins Kapitel "Cassette/AMSDOS" - da siehst du, wie man an die Lade/Exe-Adressen kommt (IN OPEN z. B.).


    Rompack war eine Art Sammlung aller RSXe, die ich mal im Laufe der Zeit gebastelt habe. Mehr dazu findest Du dort: http://www.forum64.de/wbb3/boa…66-rom-pack-professional/ - da hab ich es mal hochgeladen.


    Ist nur eine Datei auf Disk zu sehen, sind die anderen mit Sicherheit nur versteckt. Mit ParaDOS geht das ganz einfach: |DRIVE wechselt in den Diskmanager (jetzt müsste Pentagon mal weiterhelfen - ab hier schwinden meine Erinnerungen langsam) - dann Glaube ich Log Drive (war glaube ich Shift+L), und dann kannst Du bei den Files die Attribute ändern. Frag mal Pentagon, der hat das ja immer noch im Einsatz :D Ist auf jeden Fall ganz einfach.


    Edit: Und bezüglich "Wie werde ich ein Crack/Profi" - bleib einfach weiterhin am Ball, frag wenn du Fragen hast - nur so geht's :)