| 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 |