Hello, Guest the thread was called1.4k times and contains 4 replays

last post from Starbuck at the

Laden in Speicheradressen...

  • Hi!


    Ich friemel seit ein paar Tagen in ASM auf dem 64er rum und nun möchte ich mal einen Schritt weitergehen. Wie kann ich dem 64er verklickern das ich ein Sprite in eine bestimmte Adresse geladen haben will? Vom logischen her würde ich sagen LOAD"sprite",8,1,$adresse aber das scheint nicht zu funktionieren. :( Kann mir einer von euch weiterhelfen? Besten Dank schonmal....

  • Hi!


    So ganz verstehe ich das nun nicht? Den Befehl Load"filename",8,1,$xxxx gibt's natürlich nicht. Wenn Du also, bevor Du das eigentliche Hauptprogram startest, die Sprites an eine bestimmte Stelle laden willst, dann mußt Du entweder ein entsprechendes Modul benutzen. Mit dem Action Replay z.B. wäre das der Befehl <l"filename",8,xxxx>.
    Oder Du mußt das File schon vorher an die entsprechende Stelle speichern. Dann wird's bei einem Load"filename",8,1 auch an diese Stelle geladen.
    So oder so...ein vernünftiges Modul erleichtert bei solchen Sachen die Angelegenheit ungemein! ;)

  • In ASM verwendet man aber keine LOAD Befehle, aber der Trick lässt sich auch mit BASIC erklären: Man verwendet LOAD"bla",8,0 und setzt vorher die BASIC Startadresse dorthin, wo man gerne die Datei hätte. Die Adressen stehen sogar im Anhang des C64 Handbuchs.

    Zuletzt repariert:
    21.2. Logitech M570 Microschalter ausgetauscht - geplante Obsoleszenz durch Billigtaster?
    19.11. Toshiba 3,5" Floppy defekter Elko durch Kerko getauscht auf Motorplatine
    27.11. 1541B Dauerlauf, Elko im Resetschaltkreis defekt, nicht der 7406 wie zuerst verdächtigt!

  • In ASM kann man aber recht bequem die Load-Routine verwenden. Man muß nur die Parameter selber setzen:


    b7 Länge des Filenamens
    bb Adresse des Filenamens l-Byte
    bc Adresse des Filenamens h-Byte (Der Filename muß in ASCII irgendwo abgelegt sein)
    b9 Sekundäradresse (0= lade an angegebene Adresse, 1= lade an Originaladresse des Files)
    ba Gerätenummer Drive
    akku=0 (Laden, 1 wäre Verify)
    x= Ladeadresse l-Byte
    y= Ladeadresse h-Byte
    jsr ffd5 (Kernal-Laderoutine)


    In Basic geht das ebenso, und fast noch einfacher:


    sys 57812 "filename",8 [,1 an Originaladresse laden]
    poke 780,0 [1 wäre Verify]
    poke 781,Ladeadresse l-Byte
    poke 782, Ladeadresse h-Byte
    sys 65493


    Ebenso lassen sich die Betriebssystemroutinen auch zum Sichern bestimmter Speicherbereiche in ASM wie in Basic flexibel einsetzen :) .



    Franz