RAM-DISK 64 (64'er 02/1994)

Es gibt 73 Antworten in diesem Thema, welches 11.924 mal aufgerufen wurde. Der letzte Beitrag (15. Januar 2024 um 10:22) ist von Claus.

  • Kein !basic? :)

    Das moderne Teufelszeug überlasse ich dem geneigten Leser zum Selbststudium :P.

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Mit dem reinen Verschieben des Codes ist es ja nicht getan. Es sind etliche absolute Sprünge im Programm, die dann nicht mehr stimmen würden.

    Ich überlege noch, wie ich das am besten mache. Aber ein BASIC-Stumpen ist durchaus geplant - vorausgesetzt, es sind keine Bugs mehr im Programm.

    Bitte melde dich an, um diesen Link zu sehen. - Ratespiel • Bitte melde dich an, um diesen Link zu sehen. - BASIC-Erweiterung • Bitte melde dich an, um diesen Link zu sehen. - Sprite-Editor • Bitte melde dich an, um diesen Link zu sehen. - Zeichensatz-Editor Bitte melde dich an, um diesen Link zu sehen. - 2048 Blöcke

  • Mit dem reinen Verschieben des Codes ist es ja nicht getan. Es sind etliche absolute Sprünge im Programm, die dann nicht mehr stimmen würden.

    Das habe ich in meiner Weisheit natürlich mitbedacht :-)!. Daher das etwas verwirrende *= Statement. Es ist alles für die richtige Adresse assembliert und funktioniert erst nach dem Kopieren.

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Coole Idee.

    Ideal wäre natürlich ...

    • wenn man keinen C64 RAM verwenden würde (Kompatibilität)
    • wenn man etwas mehr RAM Speicher hätte


    Sowas könnte man erreichen

    • GEO RAM Cartridge (2 MB - 12 Disketten)
    • UC-2, UC-1.5 Cartridge (512 KB - 3 Disketten)

    Bei der UC hätte man zwar "nur" drei Disketten Platz, aber dafür könnte man das Programm selbst auch im Modul unterbringen.

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Coole Idee.

    Ideal wäre natürlich ...

    • wenn man keinen C64 RAM verwenden würde (Kompatibilität)
    • wenn man etwas mehr RAM Speicher hätte


    Sowas könnte man erreichen

    • GEO RAM Cartridge (2 MB - 12 Disketten)

    Dafür gibt es doch schon Bitte melde dich an, um diesen Link zu sehen. oder sehe ich das falsch :gruebel ?

    "Werter Pöbel, wertes Gesocks ... aus dem Arsche zieht euch den Stock ..."

  • Dafür gibt es doch schon Neoramdrive v0.40 oder sehe ich das falsch :gruebel ?

    Ah kannte ich noch nicht, danke! :)

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Daher das etwas verwirrende *= Statement.

    Verwirrend in der Tat! Diesen "Trick" kannte ich noch nicht. Irgendwann wurde mir dann klar, dass das Starten mit RUN nur funktioniert, wenn das Programm tatsächlich mit ",8" geladen wird - und nicht mit ",8,1". Nicht schlecht! Update kommt. :)

    Bitte melde dich an, um diesen Link zu sehen. - Ratespiel • Bitte melde dich an, um diesen Link zu sehen. - BASIC-Erweiterung • Bitte melde dich an, um diesen Link zu sehen. - Sprite-Editor • Bitte melde dich an, um diesen Link zu sehen. - Zeichensatz-Editor Bitte melde dich an, um diesen Link zu sehen. - 2048 Blöcke

  • UPDATE auf Version 2.3

    Die schönste RAM-DISK aller Zeiten entwickelt sich langsam zu einem ernstzunehmenden Tool!

    Mir wurden Hinweise zugespielt, nach denen das Programm auch ohne großen Aufwand mit "RUN" gestartet werden kann. Ich dachte zuerst an einen Scherz, aber es stimmt tatsächlich! Kryptische SYS-Befehle hassen diesen Trick!

    Außerdem ist mir aufgefallen, dass Commodore-Fehlermeldungen nur echt sind mit doppeltem Space vor dem Wort "ERROR". Ich weiß zwar nicht, wozu das gut sein soll, aber ich ehre diesen jahrzehntealten Standard und habe aus dem plumpen FILE EXISTS ERROR ein täuschend echt wirkendes FILE EXISTS  ERROR gemacht! Wahnsinn, was so ein Leerzeichen ausmachen kann.

    Anyway... Screenshot:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Kurzanleitung:

    PRG und Source im Anhang.

    Viel Spaß mit dem Programm! :)

  • Kurzanleitung:

    Code
    ; +=------------------------------------------------=+
    ; ! STARTEN  : LOAD "RAMDISK",8 und RUN              !
    ; ! NEUAUFRUF nach Deaktivierung: SYS39968           !
    ; +=------------------------------------------------=+

    Oh, vertippt. Muss korrekt heißen:

    NEUAUFRUF nach Deaktivierung: SYS39936

    Bitte melde dich an, um diesen Link zu sehen. - Ratespiel • Bitte melde dich an, um diesen Link zu sehen. - BASIC-Erweiterung • Bitte melde dich an, um diesen Link zu sehen. - Sprite-Editor • Bitte melde dich an, um diesen Link zu sehen. - Zeichensatz-Editor Bitte melde dich an, um diesen Link zu sehen. - 2048 Blöcke

  • Könnte man bei File exits error eine Abfrage einbauen, ob man überschreiben möchte.

    Wie fändet ihr die gute alte "@:"-Syntax? Habe das schon mal testweise eingebaut:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Link zu sehen. - Ratespiel • Bitte melde dich an, um diesen Link zu sehen. - BASIC-Erweiterung • Bitte melde dich an, um diesen Link zu sehen. - Sprite-Editor • Bitte melde dich an, um diesen Link zu sehen. - Zeichensatz-Editor Bitte melde dich an, um diesen Link zu sehen. - 2048 Blöcke

  • Könnte man bei File exits error eine Abfrage einbauen, ob man überschreiben möchte.

    Wie fändet ihr die gute alte "@:"-Syntax? Habe das schon mal testweise eingebaut:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Vielen Dank.

    "Ich bin das Schwert, ich bin die Flamme." (Heinrich Heine)

    „Lerne leiden, ohne zu klagen!“ (Friedrich III.)

  • UPDATE auf Version 2.5

    Puh, bei der schönsten RAM-DISK aller Zeiten gab es tatsächlich noch massiv Luft nach oben. Die wichtigsten Änderungen:

    • NEUE FEATURES:
      • Mit £SV "@:DATEINAME" wird eine ggf. schon vorhandene Datei - ohne weiteres Nachfragen - ersetzt.
    • PERFORMANCE:
      • Das "Formatieren" beschränkt sich jetzt auf das Zurücksetzen von 2 Zeigern. Geht in null komma nichts.
      • Beim Löschen wird jetzt nur noch so viel Speicher wie nötig herumgeschoben. Geht im Schnitt natürlich auch viel schneller.
    • BUGFIXES
      • Ja, da waren noch 2 fiese Bugs drin! Erstens: £LD "TESTZULANG" führte dazu, dass die Datei "TEST" geladen wurde. HA HA! Ist jetzt behoben. :bia
      • Zweitens: Der letzte Block konnte nicht benutzt werden. So lustig... BEHOBEN! :bia

    Noch etwas: Das Binärfile (PRG) habe ich so umgemodelt, dass man es jetzt sowohl mit ",8" als auch mit ",8,1" laden kann. Das war mir wichtig. Starten weiterhin ganz einfach mit RUN.

    Die Source-Datei erzeugt ein Programm, das man nur mit ",8" laden kann (deshalb das Anhängsel "RL" = relativ laden).

    Nach intensiven Tests habe ich jetzt keine Bugs mehr gefunden. Aber vielleicht habt ihr ja mehr "Glück".

    Zum Abschluss die Kurzanleitung:

    Screenshot:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Viel Spaß mit dem Programm! :)

  • Der Grund warum ich die Ladeadresse so gelassen hatte, dass man das Programm mit ,8,1 an das Ende des Basicspeichers lädt war, dass man es evtl. auch im Nachhinein (wenn man schon ein wichtiges Basicprogramm geschrieben hat) laden und starten kann. Tatsächlich weiß ich aber gar nicht, ob das so überhaupt funktioniert, oder ob das Basicprogramm dann eh weg ist. Deine Entscheidung :)

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Dafür würde sich wohl Autostart anbieten (mit ,8,1 laden => lädt sich nach oben in den Speicher, setzt eigene Vektoren, setzt BASIC-Vektoren wieder korrekt). Ist aber etwas frickelig, das dann so zu machen, dass auch ,8 noch funktioniert, plus Autostart ist etwas nervig, weil alternative naive LOAD-Implementierungen (die einfach immer linear in den Speicher "laden", siehe diverse Module) damit nicht funktionieren.

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Übrigens: die Lösung mit dem @: finde ich gut! Wo stammt die Idee denn her?

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Übrigens: die Lösung mit dem @: finde ich gut! Wo stammt die Idee denn her?

    kommt von "@0". Diesen Ausdruck musste du beim Überschreiben auf Diskette nutzen, da es ansonsten zu Datenfehlern kommt (schon selbst leidvoll erfahren)

    "Ich bin das Schwert, ich bin die Flamme." (Heinrich Heine)

    „Lerne leiden, ohne zu klagen!“ (Friedrich III.)

  • Übrigens: die Lösung mit dem @: finde ich gut! Wo stammt die Idee denn her?

    Das steht so im 1541-Handbuch:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Allerdings soll diese Funktion bei der 1541 nicht benutzt werden, da sie nach zahlreichen Berichten buggy ist.

    gibt es einen Grund die load save open vektoren nicht zu nutzen?

    Keine Ahnung! :nixwiss:

    Aber wenn du ein Beispiel bringst, wie man das in diesem Fall einsetzen könnte, gucke ich mir das sehr gerne an.

    Bitte melde dich an, um diesen Link zu sehen. - Ratespiel • Bitte melde dich an, um diesen Link zu sehen. - BASIC-Erweiterung • Bitte melde dich an, um diesen Link zu sehen. - Sprite-Editor • Bitte melde dich an, um diesen Link zu sehen. - Zeichensatz-Editor Bitte melde dich an, um diesen Link zu sehen. - 2048 Blöcke

  • open geht nach ffco holt sich dort aus der Zeropage die Adresse.

    Diese Adresse kann man umbiegen und dann eigenen code laufen lassen und danach zur richtigen Adresse Springen die zuvor in der Zeropage stand.

    Das Gleiche kann man mit Load ffd5 save ffd8 close ffc3 getin ffe4....