Hallo Besucher, der Thread wurde 3,5k mal aufgerufen und enthält 24 Antworten

letzter Beitrag von ThomBraxton am

in SEQ schreiben (auf device #9)

  • hallo zusammen :D


    ich möchte auf device #9 (nicht acht)
    speichern in die datei: "1.SEQ"


    in basic wäre das:
    open 2,9,4,"1,seq,w"
    print #2, "text"
    close 2


    in asm kommt auf dem (sonst funktionieren) device #9 nichts an - warum nicht?
    bin gerade total betriebsblind und deshalb echt dankbar für jede hilfe/korrektur!


    wahrscheinliche fehlerquellen:
    1. ab zeile #19 beim setzen des filenames
    2. und/oder: in zeile #6 stimmt der filename selber / die syntax stimmt dort noch nicht ganz um damit ein SEQ-file anlegen zu können


    DANKE!




  • Ich würde noch die Länge des Dateinamens berechnen lassen (lda #filename_end - filename_start), dann kann man das Anpassen nicht vergessen. Außerdem gibt es keinen Grund für eine Nullterminierung des Namens.

  • Könnte es daran liegen?

    Code
    1. fname
    2. .null "1,seq,w"
    3. [...]
    4. setfile
    5. lda #8

    Ich zähle hier nur 7 Zeichen in fname. Was macht .null? einen 0-terminierten string? Wenn ja wird so das 0-byte Teil des Dateinamens...


    Am besten gar nie Längen hartcodieren, immer mit weiteren Labels / Differenzen arbeiten. (Überschneidet sich jetzt etwas mit Mac Bacon's Antwort, die war beim schreiben noch nicht da :o)

  • (falls das ".null" irritiert hat: heisst in turbo macro pro nichts anderes als 'text, der mit 0 endet')


    danke, aber filenamestring nach hinten setzen war es nicht


    hatte mit der filenameLÄNGE auch so meine probs und hab einfach mal alles durchprobiert - aber ohne erfolg - jetzt lasse ich mir die länge (auch) errechnen...


    AHA! das erklärt einiges:
    "hört sich gut einen 0-terminierten string? Wenn ja wird so das 0-byte Teil des Dateinamens"


    DANKE!



    edit: nö - geht trotzdem nicht
    - es wird einfach immer noch keine datei "1.seq" angelegt - stimmt denn der command-string (also fname) dazu überhaupt?

  • genau das beides hatte ich bereits gemacht - nix
    auch fname ändern in "name,s,w" brachte nichts


    irgendwo (lokal.pdf) hatte ich heute mal etwas gelesen von:
    "0:name,s,w" - kann das sein?


    also für #9: "9:name,s,w" oder wie?
    ich muss gleich nochmal gucken

  • irgendwo (lokal.pdf) hatte ich heute mal etwas gelesen von:
    "0:name,s,w" - kann das sein?

    Nein. Die Angabe der Laufwerksnummer Null ist optional, das siehst Du ja auch daran, dass Du sie in Basic auch nicht brauchst.

    also für #9: "9:name,s,w" oder wie?

    Jetzt verwechselst Du die Laufwerksnummer (bzw. Partitionsnummer bei CMD-Geräten) mit der Geräteadresse.


    Bevor Du wild mit Shotgun Debugging anfängst, kannst Du auch versuchen, das Problem schrittweise zu vereinfachen: Erstmal eine Datei in Assembler erzeugen (d.h. PRG auf Gerät 8), dann auf Gerät 9, dann zu SEQ wechseln, usw. usf.

  • bei mir klappt's. Sourcecode ACME

  • Ich lehne mich mal weit aus dem Fenster und halte die Stringkodierung des Assemblers für den Schuldigen. Das ",s,w" wird ja nur dann korrekt vom Laufwerk interpretiert, wenn es PetSCII ist: "1,seq,w" muss also zu 31 2c 53 45 51 2c 57 werden. Überprüf das mal - bei einer falschen Kodierung wird das Laufwerk einen Lesezugriff auf die Datei "1" versuchen und dann wird natürlich keine Datei erstellt.

  • Falls Dein Assembler erlaubt, ein Listing anzufertigen, überprüf doch mal anhand der Übersetzung, ob z. B. der String tatsächlich nach PETSCII konvertiert wurde und nicht vielleicht versehentlich in Screencodes. Ansonsten kannst Du es Dir den Code auch im Monitor angucken.
    Edit: Mac Bacon war schneller. ^^

  • Ich lehne mich mal weit aus dem Fenster und halte die Stringkodierung des Assemblers für den Schuldigen. Das ",s,w" wird ja nur dann korrekt vom Laufwerk interpretiert, wenn es PetSCII ist: "1,seq,w" muss also zu 31 2c 53 45 51 2c 57 werden. Überprüf das mal - bei einer falschen Kodierung wird das Laufwerk einen Lesezugriff auf die Datei "1" versuchen und dann wird natürlich keine Datei erstellt.

    @Mac Bacon : +1 habs grad mal bei mir ohne codewandlung probiert und dann funktioniert es nicht. -> File not found!

  • ... ich konnte an der letzten version zwar sehen, dass es die labels waren, die zu falschen ergebnissen führten, konnte es aber nicht repaieren - manchmal denke ich ich bin NICHT die einzige mögliche fehlerquelle die einfluss auf meinen code hat obwohl ich alleine vor dem rechner sitze...


    so, also alles (zurück auf) so einfach wie möglich:



    und: funktioniert NICHT


    hä?