C 64
64'er Extra

64'er Extra

Adresse dez Beschreibung
Seite 0 (Zeropage): $0000 bis S00FF
$00 0 Datenrichtungsregister
$01 1 Ein-/Ausgabe-Port
$02 2 (nicht verwendet)
$03/$04 3/4 Vektor auf die Routine zur Umwandlung einer Gleitkommazahl in eine ganze Zahl mit Vorzeichen (gewöhnlich $B1AA)
$05/$06 5/6 Vektor auf die Routine zur Umwandlung einer ganzen Zahl in eine Gleitkommazahl (gewöhnlich $B391)
$07 7 Suchzeichen zur Prüfung von Texteingaben. Zusammen mit Adresse auch als Zwischenspeicher für Ganzzahlen verwendet
$08 8 Suchzeichen, speziell für Befehlsende und Anführungszeichen
$09 9 Spaltenposition des Cursors vor dem letzten TAB- oder SPC-Befehl
$0A 10 Flag für LOAD (0) oder VERIFY (1)
$0B 11 Zeitweise als Zeiger in Eingabepuffer verwendet. Auch Anzahl der Feldvariablen
$0C 12 Flag für Standard-Felddimensionierung
$0D 13 Flag für aktuellen Variablentyp (0=Zahl, $FF=String)
$0E 14 Flag für Zahlentyp (0=Fließkomma, $80=Ganzzahl)
$0F 15 Flag bei LIST, Garbage Collection und Textumwandlung
$10 16 Flag für Variablenfeld oder selbstdefinierte Funktion
$11 17 Flag für INPUT ($00), GET ($40) oder READ ($98)
$12 18 Flag für Vorzeichen des Ergebnisses bei SIN, COS und TAN
$13 19 Flag für aktuelles I/O-Gerät. Bildschirmmeldungen werden unterdrückt, falls nicht 0
$14/$15 20/21 Zeilennummer für LIST, GOTO, GOSUB und ON.
$16 22 Adressenzeiger bei PEEK, POKE, WAIT und SYS
$17/$18 23/24 Index für nächsten Eintrag in String Descriptor Stack
$19-$21 25-33 Temporärer String Descriptor Stack
$22-$25 34-37 Verschiedene Zwischenspeicher
$26-$2A 38-42 Arbeitsspeicher für Arithmetik
$2B/$2C 43/44 Zeiger auf Anfang Basic-Programm (gewöhnlich 2049)
$2D/$2E 45/46 Zeiger auf Anfang Variablenbereich (erstes Byte hinter Basic-Programm)
$2F/$30 47/48 Zeiger auf Anfang der Feldvariablen
$31/$32 49/50 Zeiger auf untere Grenze des Stringbereichs
$33/$34 51/52 Zeiger auf aktuelle Stringbereichsgrenze
$35/$36 53/54 Zeiger auf die Adresse des zuletzt eingegebenen Strings
$37/$38 55/56 Zeiger auf Ende des Basic-Speichers (gewöhnlich 40960)
$39/$3A 57/58 Nummer der laufenden Basic-Zeile
$3B/$3C 59/60 Zeilennummer der letzten Programmunterbrechung
$3D/$3E 61/62 Zeiger auf den Anfang der aktuellen Basic-Zeile für CONT
$3F/$40 63/64 Zeilennummer der aktuellen DATA-Anweisung
$41/$42 65/66 Zeiger auf das Byte hinter der zuletzt durch READ gelesenen DATA-Anweisung
$43/$44 67/68 Zeiger auf die Adresse, aus der INPUT, GET und READ die Zeichen/Zahlen holen
$45/46 69/70 Name der gerade aktuellen Variablen
$47/48 71/72 Zeiger auf die Adresse des Wertes der gerade aktuellen Variablen
$49/$4A 73/74 Zwischenspeicher für diverse Basic-Befehle
$4B/$4C 75/76 Zwischenspeicher für Zeiger bei READ und mathematischen Operatoren
$4D 77 Hilfsspeicher für Vergleichsoperationen
$4E/$4F 78/79 Zeiger auf Variable in Funktionsdefinition
$50-$52 80-82 Temporärer Zeiger für Adresse und Länge eines Strings
$53 83 Länge der Stringvariablen während Garbage Collection
$54-$56 84-86 Sprungbefehl auf die Adresse der gerade aktuellen Basic-Funktion
$57-$60 87-96 Arbeitsspeicher für diverse Arithmetik-Routinen
$61-$66 97-102 Fließkomma-Akkumulator # 1 (FAC 1)
$67 103 Zwischenspeicher und Zählregister
$68 104 Bit-Überlauf-Bereich für FAC 1
$69-$6E 105-110 Fließkomma-Akkumulator # 2 (FAC 2)
$6F 111 Flagge bei Vorzeichenvergleich FAC 1,2
$70 112 Rundungs-Speicher für FAC 1
$71/$72 113/114 Zwischenspeicher für verschiedene Routinen
$73-$8A 115-138 CHRGET-Routine (nächstes Zeichen aus Basic-Text holen)
$79 121 CHRGOT-Einsprung in die CHRGET-Routine
$7A/$7B 122/123 Zeiger in Basic-Text (benutzt von CHRGET und CHRGOT)
$8B-$8F 139-143 Wert der RND-Funktion als Fließkommazahl
$90 144 Statusbyte (ST) für I/O-Geräte
$91 145 Zwischenspeicher für Abfrage der Stop-Taste (enthält $7F, falls Stop gedrückt)
$92 146 Zeitkonstante beim Lesen von Band
$93 147 Flag für LOAD (0) oder VERIFY (1)
$94 148 Flag für seriellen Bus
$95 149 Nächstes Zeichen in Ausgabepuffer
$96 150 Flag für Ende des vom Band gelesenen Datenblocks
$97 151 Zwischenspeicher für X und Y
$98 152 Anzahl der offenen Files
$99 153 Nummer des aktuellen Eingabe-Gerätes
$9A 154 Nummer des aktuellen Ausgabe-Gerätes
$9B 155 Parität des letzten auf Band geschriebenen Bytes
$9C 156 Flag für Byte korrekt vom Band gelesen
$9D 157 Flag für Programm- (0) und Direktmodus (128)
$9E 158 Band-Lesefehler Durchlauf 1
$9F 159 Band-Lesefehler Durchlauf 2
$A0-$A2 160-162 Interne Uhr für TI und TI$
$A3 163 Lesen/Schreiben mit Band: Bitzähler
$A4 164 Lesen/Schreiben mit Band: Impulszähler
$A5 165 Bit-Zähler für Band-Synchronisation
$A6 166 Zähler für bearbeitete Bytes im Kassettenpuffer
$A7 167 Zwischenspeicher für Kassetten- und RS232-Operationen
$A8 168 Bitzähler für Kassetten- und RS232-Operationen
$A9 169 RS232-Flagge für Startbit-Prüfung
$AA 170 RS232-Eingabe, Zwischenspeicher für Kassetten-Routinen
$AB 171 Quersummenprüfung und Zähler für Band-Header bei RS232- und Kassetten-Operationen
$AC/$AD 172/173 Startadresse für LOAD/SAVE, Zwischenspeicher für Screeneditor
$AE/$AF 174/175 Zeiger auf Endadresse für LOAD/SAVE, Zwischenspeicher für Screeneditor
$B0/$B1 176/177 Zeitkonstanten für Taktsteuerung Band
$B2/$B3 178/179 Zeiger auf Kassettenpuffer (gewöhnlich 828)
$B4 180 RS232-Bit-Zähler, Zwischenspeicher für Kassettenoperationen
$B5 181 RS232-Anzeige für nächstes Bit, Flag für End-of-Tape
$B6 182 RS232: nächstes Byte, Flag für Bandlesefehler
$B7 183 Länge des aktuellen Filenamens
$B8 184 Aktuelle logische Filenummer
$B9 185 Aktuelle Sekundäradresse
$BA 186 Aktuelle Gerätenummer
$BB/$BC 187/188 Zeiger auf aktuellen Filenamen
$BD 189 Parität der RS232-Ausgabe, Zwischenspeicher für Kassettenoperationen
$BE 190 Blockzähler für Kassettenein-/Ausgabe
$BF 191 Zwischenspeicher für LOAD vom Band
$C0 192 Steuerflag für Datassettenmotor
$C1/$C2 193/194 Startadresse für LOAD und SAVE auf Band
$C3/$C4 195/196 Zeiger auf Anfang des Programms hinter dem Tape-Header
$C5 197 Matrixwert des letzten Tastendrucks (64=keine Taste gedrückt)
$C6 198 Anzahl der Zeichen im Tastaturpuffer
$C7 199 Flag für reverse (18) oder normale (0) Zeichendarstellung
$C8 200 Zähler für Anzahl der Zeichen in der vom Bildschirm eingelesenen Zeile
$C9 201 Y-Wert (Zeile) des Cursors bei INPUT
$CA 202 X-Wert (Spalte) des Cursors bei INPUT
$CB 203 Kopie des von der Interrupt-Routine ermittelten letzten Tastendrucks
$CC 204 Flag für Cursormodus (0=blinkend, 1=nicht blinkend)
$CD 205 Blinkzeitzähler
$CE 206 Bildschirmcode des Zeichens an der Cursorposition
$CF 207 Flag für Blinkphase (1=Cursor ist an, 0=Cursor ist aus)
$D0 208 Eingabeflag (0=Tastatur, 3=Bildschirm)
$D1/$D2 209/210 Anfang der aktuellen Bildschirmzeile
$D3 211 X-Wert der Cursorposition in der aktuellen Zeile
$D4 212 Flag für Quote-Modus (0=Cursor bewegen etc., 1=inverses Zeichen ausgeben)
$D5 213 Länge der aktuellen Bildschirmzeile
$D6 214 Nummer der Cursorzeile
$D7 215 Wert des letzten Zeichens, das vom Bildschirm geholt oder dort ausgegeben wurde. Auch temporärer Speicherfür Kassettenoperationen
$D8 216 Zahl der noch fehlenden Einfügungen von der Tastatur (nach Verwendung der INST-Taste)
$D9-$F2 217-242 Tabelle von 25 höherwertigen Bytes der Zeiger auf den Anfang der Bildschirmzeilen im RAM (die niederwertigen Bytes stehen im ROM ab Adresse $ECF0). Bei logischen Zeilen, die über eine Bildschirmzeile hinausgehen, ist Bit 7 gesetzt
$F3/$F4 243/244 Zeiger auf das Byte im Farb-RAM, das zum Anfang der aktuellen Bildschirmzeile gehört
$F5/$F6 245/246 Adresse der aktuellen Decodiertabelle der Tastatur
$F7/$F8 247/248 RS232: Zeiger auf Anfang des Empfangspuffers
$F9/$FA 249/250 RS232: Zeiger auf Anfang des Sendepuffers
$FB-$FE 251-254 (nicht verwendet)
Seite 1 (Stackbereich): $0100 bis S01FF
$0FF-$10A 255-266 Bereich für die Umwandlung von Zahlen in ASCII-Strings zur Ausgabe
$100-$13E 256-319 Tabelle der Bandlesefehler
$140-$1FF 320-511 Basic-Stapelspeicherbereich
Seite 2: $200 bis $2FF
$200-$258 512-600 System-Eingabepuffer. Alle Tastatureingaben werden hier abgelegt
$259-$262 601-610 Tabelle von bis zu 10 aktiven logischen Dateinummern
$263-$26C 611-620 Tabelle der zugehörigen Gerätenummern
$26D-$276 621-630 Tabelle der zugehörigen Sekundäradressen
$277-$280 631-640 Tastaturpuffer (bis zu 10 Zeichen)
$281/$282 641/642 Zeiger auf das niedrigste Byte des Basic-RAM (gewöhnlich $800)
$283/$284 643/644 Zeiger auf das höchste verfügbare Byte des Basic-RAM (gewöhnlich $A000)
$285 645 Timeout-Flag für seriellen Bus
$286 646 Aktueller Farbcode für PRINT
$287 647 Farbe des Zeichens unter Cursor (niederwertiges Nibble)
$288 648 Höherwertiges Byte der Bildschirmspeicher-Adresse
$289 649 Höchstzahl der Zeichen, die der Tastaturpuffer aufnehmen kann (gewöhnlich 10)
$28A 650 Tastenfunktionsflag (0=Dauerfunktion nur für Cursorbewegung und Leertaste, 128=Dauerfunktion für alle Tasten, 64=keine Dauerfunktionen)
$28B 651 Verzögerung für Einsetzen der Dauerfunktion (wird vom System stets neu gesetzt)
$28C 652 Geschwindigkeit der Dauerfunktion
$28D 653 Flag für die Tasten SHIFT (1), C= (2), CTRL (4). Addition möglich, zum Beispiel bedeutet 5 SHIFT und CTRL zusammen
$28E 654 Letztes für Entprellung verwendetes Shifttasten-Muster
$28F/$290 655/656 Vektor zur Routine zur Prüfung des Shifttasten-Musters
$291 657 Flag: 0=Umschaltung Groß-/Kleinbuchstaben mittels SHIFT/C= aktivierbar, 128=nicht aktivierbar
$292 658 Flag für Scrollen bei Eingabe (0=kein Scrollen)
$293 659 RS232:Abbild des 6551-Steuerregisters
$294 660 RS232:Abbild des 6551-Befehlsregisters
$295/$296 661/662 RS232:Nicht-Standardwerte für Übertragungsrate (nicht verwendet)
$297 663 RS232-Statusregister (ST)
$298 664 RS232:Anzahl der zu sendenden/zu empfangenden Bits
$299/$29A 665/666 RS232:Konstante zur Taktsteuerung der Baudrate
$29B 667 RS232:Zeiger auf Ende Eingabepuffer
$29C 668 RS232:Zeiger auf Anfang Eingabepuffer
$29D 669 RS232:Zeiger auf Ende Ausgangspuffer
$29E 670 RS232:Zeiger auf Anfang Ausgabepuffer
$29F/$2A0 671/672 Zwischenspeicher für IRQ-Vektor während Bandbetrieb
$2A1-$2A5 673-677 Zwischenspeicher CIA-Flags während Bandbetrieb
$2A6 678 Flag für PAL- (1) oder NTSC-(0)-Version
$2A7-$2FF 679-767 (nicht verwendet)
Seite 3: $0300 bis $03FF
$300/$301 768/769 Vektor zu Ausgabe der Basic-Fehlermeldungen ($E38B)
$302/$303 770/771 Vektor zu Routine zum Einlesen oder Ausführen einer Basic-Zeile ($A483)
$304/$305 772/773 Vektor zu Routine zur Umwandlung einer Eingabezeile in Interpretercode ($A57C)
$306/$307 774/775 Vektor zur LIST-Routine ($A71A)
$308/$309 776/777 Vektor zur Basic-Befehlsausführung ($A7E4)
$30A/30B 778/779 Vektor zur Auswertung von Ausdrücken ($AE86)
$30C 780 Akku bei SYS-Befehl
$30D 781 X-Register bei SYS-Befehl
$30E 782 Y-Register bei SYS-Befehl
$30F 783 Prozessorstatus bei SYS-Befehl
$310 784 JMP-Befehl für USR-Funktion ($4C)
$311/$312 785/786 USR-Vektor (Adresse der USR-Funktion)
$313 787 (nicht verwendet)
$314/$315 788/789 IRQ-Vektor ($EA31)
$316/$317 790/791 BRK-Vektor ($FE66)
$318/$319 792/793 NMI-Vektor ($FE47)
$31A/$31B 794/795 OPEN-Vektor ($F34A)
$31C/$31D 796/797 CLOSE-Vektor ($F291)
$31E/$31F 798/799 CHKIN-Vektor ($F20E)
$320/$321 800/801 CHKOUT-Vektor ($F250)
$322/$323 802/803 CLRCH-Vektor ($F333)
$324/$325 804/805 CHRIN-Vektor ($F157)
$326/$327 806/807 CHROUT-Vektor ($F1CA)
$328/$329 808/809 STOP-Vektor ($F6ED)
$32A/$32B 810/811 GETIN-Vektor ($F13E)
$32C/$32D 812/813 CALL-Vektor ($F32F)
$32E/$32F 814/815 USER-Vektor (wird nicht verwendet, kann vom Benutzer definiert werden)
$330/$331 816/817 LOAD-Vektor ($F4A5)
$332/$333 818/819 SAVE-Vektor ($F5ED)
$334-$33B 820-827 (nicht verwendet)
$33C-$3FB 828-1019 Kassettenpuffer
$3FC-$3FF 1020-1023 (nicht verwendet)
Der Speicherbereich $0400 bis $FFFF
$0400-$07E7 1024-2023 Normaler Speicherbereich für den Bildschirm
$07F8-$07FF 2040-2047 Zeiger auf Datenblocks für Sprites (falls Bildschirm ab $400 beginnt)
$0800-$9FFF 2048-40959 Basic-Programm und Variable
$A000-$BFFF 40960-49151 Basic-ROM oder RAM oder Modul-ROM
$C000-$CFFF 49152-53247 Freies RAM für Maschinenroutinen etc.
$D000-$DFFF 53248-57343 I/O-Bereich und Farb-RAM oder Zeichengenerator oder RAM
$E000-$FFFF 57344-65535 Kernal-ROM oder RAM oder Modul-ROM
Der I/O- und Zeichengenerator-Bereich
$D000-$D02E 53248-53294 VIC-Chip
$D400-$D41C 54272-54300 SID-Chip
$D800-$DBE7 55296-56295 Farb-RAM
$DC00-$DC0F 56320-56335 CIA #1
$DD00-$DD0F 56576-56591 CIA #2
$D000-$D7FF 53248-55295 Zeichengenerator Großschrift
$D800-$DFFF 55296-57343 Zeichengenerator Kleinschrift
Die Speicheraufteilung des C 64
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →