Beiträge von petrus

    Bitte melde dich an, um diesen Link zu sehen. wird nach folgendem Basiswert gerechnet: "The table is based on a 02 = clock of 1.0 Mh".

    Was nicht ganz zutrifft, wie jeder weiß. Ich habe nach den Angaben auf dieser Bitte melde dich an, um diesen Link zu sehen. (und dem original C64-Handbuch, S. 158) gearbeitet und dafür dieses Progrämmchen gebastelt ...

    Die Ergebnisse entsprechen den Werten im C64-Handbuch (mit ein paar Abweichungen im oberen Bereich, der für die Basiswerte aber keine Rolle spielt).

    Danke, jetzt verstehe ich das.

    DS hat also vermutlich seine Werte aus der obigen ("dort") oder einer vergleichbaren Dokumentation bezogen.

    Im Abschnitt Bitte melde dich an, um diesen Link zu sehen. bei Herwig Siebenhofer habe ich eine vergleichende Tabelle (C64 PAL 0.98 MHz / 1 MHz) gefunden.

    Im C64-Wiki-Artikel Bitte melde dich an, um diesen Link zu sehen. könnten wir eine vergleichende Tonfrequenztabelle ergänzen, etwa so:

    Danke für die Updates!

    Die Basistabelle zur Erzeugung der richtigen Tonhöhen im Bitte melde dich an, um diesen Link zu sehen.-Befehl war falsch (da kamen zu tiefe Töne dabei heraus). Behoben.

    Wie bist du darauf gekommen und woher hast du die neuen Werte genommen?

    Die originalen SB-Werte entsprechen denen, die im Bitte melde dich an, um diesen Link zu sehen. aufgeführt sind.

    P.S.: Mit meiner Internet-Verbindung habe ich kein Problem.

    das " könnte natürlich auch eine 2 mit gedrückter Shift Taste sein,

    Ich habe mich noch einmal schlau gemacht und rausgefunden, dass eventuell doch ein CMP mit Anführungszeichen vorkommen kann:

    Code
    10   -          LDA $B0
    20   -          CMP #"X"

    wird von Hypra-Ass akzeptiert und assembliert in

    Code
    .C:c000  A5 B0       LDA $B0
    .C:c002  C9 58       CMP #$58

    Also könnte auch CMP #"1" oder etwas ähnliches gemeint sein.

    Ist das mit dem Anführungszeichen vor der 1 bei CMP#"1 ein Druckfehler oder was soll das.

    Das sieht tatsächlich nach einem Druckfehler aus. CMP erwartet ja einen numerischen Wert, ein Anführungszeichen macht dort überhaupt keinen Sinn.

    Ob hier allerdings "CMP Bitte melde dich an, um diesen Link zu sehen." gemeint ist oder ein anderer Wert (z.B. der Tippfehler CMP Bitte melde dich an, um diesen Link zu sehen.) lässt sich wohl nur aus dem Zusammenhang rekonstruieren.

    hier habe ich Euch nochmal den Spielekurs und den Crashkurs zusammen mit den C64-Studio Quellcode-Files zusammen gepackt.

    Tolle Arbeit, die du hier leistest!
    Ich habe deshalb einen Verweis auf diesen Thread im C64-Wiki-Artikel 64'er ergänzt in der Rubrik Bitte melde dich an, um diesen Link zu sehen., wo bereits mehrere Kurse verlinkt sind.

    ... wer TSB auf Cartridge nutzt ... hat ab sofort defaultmäßig einen Maschinensprache-Monitor an Bord.

    Feine Sache, das!

    Anmerkungen: dies gilt für die TSB-MD.CRT, nicht für die UNIPROM-Version, die ist nach wie vor v2.21022.

    Die Versionsnummer in Bitte melde dich an, um diesen Link zu sehen. muss noch angepasst werden.

    der NMI-Vektor im RAM ($fffa/b) stimmte nicht mehr - wann wird der überhaupt verwendet, da müsste doch beim Eintrittsfall der Kernal ausgeschaltet sein, oder?

    Sieht so aus. Ein Beispiel für einen solchen Fall habe ich mal gesucht und gefunden unter Bitte melde dich an, um diesen Link zu sehen..

    Mit dem Ausdrucken habe ich schon hinbekommen, allerdings so:

    OPEN 1,4,7: CMD 1: PRINT: LIST und PRINTBitte melde dich an, um diesen Link zu sehen.:CLOSE1 und dann habe ich es Tim VICE.OUT

    Nein, nicht so. Das machst du besser mit dem internen List-Befehl ".LI" von Hypra-Ass. Ein Beispiel:

    Diese Textdatei erhält man nach der List-Druckausgabe mit Vice.

    Das ist nun leicht in ACME-Format umzuwandeln. Dazu muss man nur die überflüssigen linken Spalten löschen, was z. B. mit Notepad++ ("Alt" drücken und markieren) geht. Nach wenigen Anpassungen (.OB => !to / .BA => *=) ergibt sich so

    Z.B. wird der Befehl .ap"filename" mit zeilennummer im uellcode eingefügt oder interaktiv eingegeben.

    .ap "filename" wird am Ende der Quelldatei hinter der Zeilennummer eingegeben

    Zum Befehl PAUSE habe ich eine weitere POKE-Möglichkeit gefunden, mit der man in der Bitte melde dich an, um diesen Link zu sehen. und in der Bitte melde dich an, um diesen Link zu sehen.(mit dem PAUSE-Patch) die Abbruchtaste ändern kann. Auf diese Weise ist es sogar möglich, einen PAUSE-Befehl ohne Abbruchoption zu programmieren.

    TSB-Beispiel mit der Abbruchtaste "Pfeil links":

    Code
    10 POKE $A806,36: REM nur eine Abbruchtaste
    20 POKE $A809,95: REM Abbruchtaste CHR$(95) = Pfeil links
    30 PAUSE 5;"PAUSE"
    40 PRINT "FERTIG"

    Nach POKE $A809,255 reagiert PAUSE auf keine Taste mehr.

    Die originalen Werte stellt man in TSB mit POKE $A806, 208 ($D0) und POKE $A809, 13 ($0D) wieder her.

    Im Simons' BASIC ist die Speicherstelle der Abbruchtaste $A81F. Die Modul-Version kann natürlich nicht gepatcht werden.

    Omega : InBitte melde dich an, um diesen Link zu sehen. hatte ich dich um ein Beispiel gebeten, das deine Probleme mit PAUSE dokumentiert. Vielleicht ist das im Diskussionsstrom untergegangen. Deshalb möchte ich die Bitte hier noch einmal wiederholen. Ich würde wirklich gern verstehen, unter welchen Umständen ein Patch auf das alte Verhalten notwendig ist. Eventuell könnte man daraus auch ein Beispiel für den C64-Wiki-Artikel machen, der das zeigt.

    Dreh es doch um: Wer den neuen PAUSE-Befehl haben will, der soll einen PATCH-Poke verwenden, er schreibt ja sein Programm sowieso gerade für das neue TSB. Und Omega und alle anderen müssen garnichts am Programmcode ändern. Weil TSB weiterhin 100% abwärts kompatibel ist.

    Das wäre gegangen, wenn wir die PATCH-Lösung gleich bei der Erweiterung des PAUSE-Befehls gehabt hätten. Jetzt würde eine Rück-Änderung ja gerade deiner Kompatibilitäts-Forderung widersprechen.

    Es gibt sehr wohl schon Programme (nämlich von mir), die mit dem neuen PAUSE arbeiten. Wieso sollten die jetzt geändert werden müssen, nur weil Omega das bei seinem nicht möchte?

    Tobias , Squidward : vielen Dank für eure Vorschläge. Die werde ich ausprobieren (habe aber wohl erst Mitte Februar Zeit dafür).

    berni : Deine .pet-Datei konnte ich laden und anzeigen. Das Format scheint also okay zu sein. Sie sieht aber anders aus, als das Bild in deinem Post. Am besten generierst du eine PRG-Datei. Die kannst du besser zum Download bereitstellen und damit auch das Bild selbst ansehen.

    Wenn man den Screenshot des Videos evtl. in Photoshop o.ä. korrekt skaliert und auf 16 Farben reduziert, vielleicht "frisst Petmate dann das Bild?
    Wenn der Screenshot des Videos "gut" (hpstl. scharf) ist, könnte das evtl. funktionieren.

    Kannst mir gerne 1-3 solcher Screenshot schicken und ich schau mir das mal an.

    Danke, nette Idee. Ich kann das nicht machen, da ich Photoshop nicht besitze.

    Du kannst dir die Screenshots selbst holen von Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. .

    Edit: petrus , was ist mit Abfrage auf $0d? Die kommt dann aber in jedem Fall, oder? Macht das was?

    Nein, das macht nichts:

    Code
    .C:a803  20 E4 FF    JSR $FFE4    ;Holt Zeichen aus Tastaturpuffer; kein Zeichen: Wert 0 in 198=$c6 in Akku
    .C:a806  D0 0B       BNE $A813    ;Nicht leer? Dann PAUSE beenden
    .C:a808  C9 0D       CMP #$0D     ;Wegen 0 in 198 ($c6) und $0D <> $00
    .C:a80a  F0 07       BEQ $A813    ;wird diese Verzweigung nie ausgeführt.
    .C:a80c  AD 17 C5    LDA $C517    ;Also: PAUSE-Zeit zählen
    .C:a80f  C5 14       CMP $14
    .C:a811  D0 F0       BNE $A803
    .C:a813  4C 29 82    JMP $8229

    Die ROM-Routine GETIN = $FFE4 arbeitet bei der Tastaturabfrage so:

    Erst wird die Anzahl der Zeichen im Tastaturpuffer (Speicherstelle 198) geprüft.

    Ist sie Null, also kein Zeichen vorhanden, wird dieser Wert in den Akku geschrieben und die Routine beendet.

    Ist sie nicht Null, so wird ein Zeichen aus dem Tastaturpuffer geholt, dieser dann geleert und das Zeichen in den Akku geschrieben.

    Die letzte gedrückte Taste kann aus der Speicherstelle 197 gelesen werden, da sie dort von der System-Tastaturabfrage (im Interrupt) abgelegt worden ist.