Hallo Besucher, der Thread wurde 937 mal aufgerufen und enthält 3 Antworten

letzter Beitrag von Diddl am

Fragen zur Erstellung von LOADER-Dateien

  • Mit Diddls Hilfe mache ich gerade meine ersten Gehversuche bei der Erstellung von LOADER-Dateien...


    Die Parameter des BLK-Befehls finde ich sehr technisch geraten.
    Diddl, kannst Du vielleicht noch eine alternativ-Syntax implementieren für DAUs wie mich?
    Etwas, was etwas näher an "VC20 unerweitert" oder "VC20 mit 16K-Erweiterung" dran ist?
    Oder vielleicht erst einmal eine Tabelle, welcher BLK-Befehl welcher Konfiguration (d.h. ohne/welche Speichererweiterung) entspricht?


    Ist es richtig, dass der BLK-Befehl für einen unerweiterten VC20 einfach nur BLK heißt?
    Oder muß ich erst mit BLK das unerweiterte RAM aktivieren und danach mit BLKD 0,1,2,3,5 alles andere deaktivieren?


    Gerade versuche ich, die OLD DAYS DEMO (für unerweiterten VC20) laufen zu lassen. Wenn ich alle Befehle manuell eintippe, klappt das auch schon. In der Loader-Datei will das mal wieder nicht...


    Bis jetzt habe ich:
    "Old days demo"
    --Speicherkonfiguration hier--
    +@"cd fe-demo"
    +@"cd olddays"
    +@"cd olddays.d64"
    +"old days demo",0


    Das bleibt beim Aufruf einfach hängen. Wenn ich die gelbe Reset-Taste drücke und danach ein $ gebe, bin ich innerhalb des OLDDAYS.D64, also scheinen meine @cd-Befehle richtig zu sein.


    Wird nach Aufruf eines @-Diskbefehls DS ausgelesen? Wird eine Fehlermeldung ausgegeben, wenn es ungleich 0 ist?


    Als Speicherkonfiguration habe ich folgendes ausprobiert:
    - nichts
    - nur +BLK
    - +BLK gefolgt von +BLKD 0,1,2,3,5
    ...alles hängt, nichts geht.


    Das Demo ist für einen unerweiterten VC20.

  • Hast du mein Mail gelesen? Deine beiden Beispiele laufen. Du hast nur nach dem load befehl ",0" statt ",B" geschrieben. ",B" ist für BASIC



    Ist eigentlich ganz easy mit den Blöcken:


    Blk 0: 3K Erweiterung von $400 bis $FFF (1024 - 4095)


    Blk 1: 8K Erweiterung von $2000 bis $3FFF


    Blk 2: 8K Erweiterung von $4000 bis $5FFF


    Blk 3: 8K Erweiterung von $6000 bis $7FFF


    Blk 5: 8K Erweiterung von $A000 bis $BFFF


    ---------


    Unerweiterter VIC - alle Blöcke aus: BLK 0,1,2,3,5


    3K Erweiterterung - Block 0: BLK 1,2,3,5


    8K Erweiterterung - Block 1: BLK 0,2,3,5


    16K Erweiterterung - Block 1 und 2: BLK 0,3,5


    24K Erweiterterung - Block 1, 2 und 2: BLK 0,5


    -------


    zur 8, 16 und 24 K Erweiterung kannst du natürlich auch zusätzlich Block 0 und 5 einblenden. Bringt aber nix, weil der VIC damit nix anfangen kann. Allerdings für kleine Maschinen Routinen ist die 3K Erweiterung zusätzlich trotzdem fein.


    Der A Bereich (Blk 5) ist eigentlich nur für ROM Cartridges. Das FE3 kann da aber auch RAM einblenden. Stört normal nicht, aber der VIC zeigt es auch nicht als freien Speicher an.


    Das VIC BASIC kann NUR 3,8,16 oder 24 KB erkennen. Also bei 8,16 und 24 zeigt es den 3K BLock nie an. Den Block 5 zeigt es nie als freien speicher an.


    --------------


    >ist es richtig, dass der BLK-Befehl für einen unerweiterten VC20 einfach nur BLK heißt?
    >Oder muß ich erst mit BLK das unerweiterte RAM aktivieren und danach mit BLKD 0,1,2,3,5 alles andere deaktivieren?


    Wenn du den BLK Befehl weg lässt, dann macht die FE3 automatisch überall RAM. Der BLK Befehl schaltet einzelne Blöcke aus.


    Wobei folgende Befehle alle dasselbe machen:


    BLK 0,2
    BLK 0,2,3
    BLK 2
    BLK 0,2,3,5


    In jedem Fall erkennt der VIC eine 8 Erweiterung. Das liegt daran, weil das BASIC das RAM an Blk1 erkennt und Blk2 nicht mehr. Weiter nach oben sucht es nicht mehr. Trotzdem ist natürlich das RAM drüber und drunter vorhanden wenn es im Blk Befehl nicht aufscheint.


    Der BLK befehl blendet also Blöcke aus. Man kann jede Kombination einstellen, BASIC sucht aber nur nach durchgehenden Speicher.


    -----------


    > +@"cd olddays.d64"
    > +"old days demo",0



    was hast du denn nur mit deinem ",0" ???!!!


    Es gibt ",B" für BASIC (LOAD "..",8,0), ",P" für Programme (LOAD"..",8,1) und ",C" für cartridge (LOAD"..",8,2).



    -----------


    >Wird nach Aufruf eines @-Diskbefehls DS ausgelesen? Wird eine Fehlermeldung ausgegeben, wenn es ungleich 0 ist?


    nein, das wäre nur verwirrend für den User.


    Wenn du zb. immer eine Datei löschen willst vor dem Programmstart, dann würde es manchmal Fehler geben und manchmal nicht, je nachdem ob die Datei da ist oder nicht.



    ----------


    sonst noch fragen?

  • sonst noch fragen?


    Die kommen bestimmt noch! :bgdev


    Aber schon mal vielen Dank, jetzt habe ich endlich verstanden, dass BLK das RAM ausschaltet (und nicht einschaltet) und ,B dem ,0 entspricht aber ,0 nicht verwendet werden kann.


    Hier kommt die angedrohte nächste Frage:


    Wenn ich mit BLK einen Block AUSschalte, wo ist dann der Unterschied zwischen BLK und BLKD (disable)?
    In der Beschreibung steht:

    Zitat

    Die Blöcke lassen sich einzeln deaktivieren (BLKD) und gegen überschreiben schützen (BLK, BLKP).

  • Wenn ich mit BLK einen Block AUSschalte, wo ist dann der Unterschied zwischen BLK und BLKD (disable)?
    In der Beschreibung steht:


    BLKP setzt das Bit im register 1, BLKD setzt das Bit im register 2.



    BLKP erwirkt für den Block einen Schreibschutz (P=protect). Man kann noch lesen was man vorher rein geschrieben hat.


    BLKD schaltet den Block aus (D=disable). Man kann weder lesen noch schreiben, einfach total weg.



    Für den VIC läuft es sich auf dasselbe heraus, nicht schreibbar - kein RAM. Disable wäre nur wichtig im Zusammenspiel mit weiteren Cartridges gleichzeitig mit der FE3.


    -------


    Bei der R014 scheint BLKD nicht zu funktionieren. Vielleicht hat es auch noch nie funktioniert. Die Funktion ist neu mit CPLD Design 3.1, bisher habe ich sie nie eingesetzt.