Beiträge von siehart

    Hallo Blume,

    ich habe grad mal in meinem Fundus gestöbert. Im Markt & Technik-Buch "C64/C128 Alles über Maschinensprache" (ISBN: 3-89090-571-6) wird die Anwendung von Fließkommazahlen in Assembler in einem Kapitel von 28 Seiten sehr ausführlich beschrieben. Unter anderem sind zwei Assemblerbeispiele für die von dir erwähnten Routinen ($E059 / $E043) vorhanden. Die beiden allein umfassen mit Erläuterung allerdings schon 4 Seiten.

    Vielleicht findest du ja dieses Buch irgendwo.

    Gruß aus der (ziemlich) sonnigen Pfalz

    Siggi

    Nun, P 04 steht nicht für Printer4, den vierten Drucker.

    P steht für das Kommando "PRINT" (Drucke) und 04 ist die Adresse, an die die Ausgabe geschickt werden soll. Hier sollte dann ein Drucker erreichbar sein. Auch über die Adresse 05 lässt sich ein Drucker ansteuern.

    Hallo zusammen,

    ich möchte ein altes BASIC-Programm (1986) mittels cc65 neu schreiben. Allein die Bildschirmmaske benötigt auf der Original-Diskette 20 Blöcke. Sie besteht aus vielen, zum großen Teil redundanten, Strings.

    Ich erhoffe mir von cc65 insgesamt eine Geschwindigkeitssteigerung, obwohl das Programm keine wirklich zeitkritischen Funktionen hat. Die Strings der Maske sollen auch nicht mehr mehrfach vorgehalten werden. Damit spare ich immens Speicherplatz. Allerdings muss die Maske dann über Funktionen programmiert werden, was ja auch wieder Speicher kostet.

    Meine Frage nun: Wie kann ich die Größe der von cc65 erstellten Datei (in Byte) mit der Datei auf Diskette (in Blöcken) vergleichen? Kann mich jemand in die richtige Richtung schubsen?

    Vielen Dank

    Die Solo-Regeln gibts für Advanced Hero Quest und Space Hulk, die beiden "erwachsenen" Spiele zu Hero Quest und Space Crusade. Ob die beiden deutschen Entsprechungen (->Herr des Schwertes und ->Space Hulk) allerdings direkt die Soloregeln beinhalten weiß ich jetzt nicht. Bei den Originalen sind sie jeweils Teil der Erweiterungsboxen.

    Dann schau dir mal die SSI-Rollenspiele an. Titel wie "Pool of Radiance", "Curse of the Azure Bonds" und fünf oder sechs weitere sollten für die nächsten zwei Jahre ausreichend Spielspaß bieten.

    Ach, und natürlich DDD - Die Dunkle Dimension im Stil der Ultima-Reihe.

    Gruß aus der (überhaupt nicht) sonnigen Pfalz

    @spider-j: Nee, da hab ich aufgepasst. Obwohl - ob da evtl. Daten abgelegt werden ??? Schau ich mal.

    1570: Hm, so ists beschrieben. Nur hab ich nach dem Druck von ALT-H kein VICE mehr, weil komplett aus dem Speicher entfernt. Aber ich starte auch nicht über die Konsole. Muss ich nachher mal probieren, vielleicht seh ich dann auch ne Fehlermeldung.

    Vielen Dank, das waren zwei sehr schnelle Antworten, die mich evtl. ein Stück weiterbringen.

    Hallo zusammen,

    ich habe in einem Assemblerbuch eine schicke Routine gefunden, die ich mir gerne näher anschauen würde. Leider wird die Routine nicht mit Assembler-Source besprochen. Allerdings wird sie mittels eines BASIC-Loaders über DATA-Zeilen ins RAM gepoked und liegt dann ab $C000 im Speicher. Nach einem NEW kann man sie dann von einem eigenen nachgeladenen BASIC-Programm aus per SYS 49152 benutzt werden.

    Meine Frage nun: Wie komm ich an den Source-Code? Die dezimalen DATA-Statements in Hex umwandeln und dann von Hand die Assembler-Mnemonics raussuchen? Das erscheint mir zu aufwändig. Wenn ich zuerst den BASIC-Loader starte, dann NEW eingebe und einen Monitor lade, steht ab $C000 nur noch Müll. Lad ich zuerst den Monitor, dann das BASIC-Programm, kann ich den Monitor nicht mehr aufrufen. Versuche ich den Monitor von VICE zu starten, stürzt VICE ab (VICE 1.22 unter Debian Linux). Verzwickt! Gibt es ein Programm, welches aus DATA-Zeilen direkt wieder Source-Code erstellen kann?

    Kann mir jemand einen Tipp geben?

    Vielen Dank

    Siggi

    :winke: Vielen Dank an alle.

    Die Version von Bastet Furry scheint mir am wenigsten Speicher zu verbraten und hat alles was ich brauche. Ich bin alle anderen Vorschläge auch durchgegangen und hab heut viel gelernt. Jetzt schau ich mir noch mal in Ruhe die Adressierungsarten an und experimentiere weiter. Als ich damals (kurz nach dem Krieg, Die Freundin würde jetzt wieder Fragen: Dem 30jährigen?) auf dem C64 rumhackte, war selbst modifizierender Code noch nicht so In. Sieht aber schick aus.

    Gruß aus der (ziemlich) sonnigen Pfalz

    Siggi

    Gleich mal ausprobiert:

    ;cursor positionieren
    jsr cpos

    ;textausgabe vorbereiten
    lda <t_aus1
    sta $fa
    lda >t_aus1
    sta $fb
    jsr write
    ...
    ...
    ...
    ;text ausgeben
    write
    ldy #$00
    .schleife
    lda ($fa),y
    beq end_write
    jsr BSOUT
    iny
    jmp .schleife
    end_write
    rts

    ;--- DATA ---

    text1 !by "A",0
    text2 !by "B",0

    Leider kein Erfolg. An der richtigen Stelle wird jetzt nur "/7" ausgegeben. Im übrigen, ich nutze im Moment acme in VICE.