online: 1
Rekord: 57

Last update:
2005/04/20

Home
Übergeordnete Seite
Search:
Suche starten
In English, please!

CFX Hacking

Das Format von Listen und Matrizen


Listen

Eine Liste ist eine lineare Abfolge von 1 bis 255 Werten im Speicher, die im FP - Format gespeichert sind, ein Listeneintrag benötigt daher 10 Bytes und eine Liste mit n Einträgen n*10B.

Die Listen 1..6 verfügen über keine feste Adresse im Speicher, sondern diese wird ihnen durch die Grow - Up - Pointertabelle zugewiesen. Listen verfügen außerdem über keinen Header im Speicher, da die Listengröße anhand der Pointertabelle berechnet werden kann (= Differenz aus Pointer auf Liste 1..6 und nachfolgendem Pointer; siehe Casio CFX Memory Management), und daraus auch die Anzahl der Listeneinträge (= Listengröße / 10) folgt.

Listen haben im Speicher folgendes Format:

Matrizen

Matrizen können sich als Listen vorgestellt werden, deren Einträge jeweils gleich große Listen sind. Eine Matrix mit n Zeilen und m Spalten benötigt daher n*m*10 Bytes Speicher, wobei die Matrizeneinträge spaltenweise im FP Format direkt hintereinander abgelegt sind. Im Gegensatz zu Listen benötigen Matrizen auch einen Header, da aus der Matrixgröße die Anzahl von Zeilen und Spalten nicht eindeutig bestimmbar ist. Die Header der Matrizen A..Z, Ans befinden sich im Adressbereich 0700..0735 des RAMs und geben jeweils Breite und Höhe der Matrix an (siehe Fixe Daten im Adressbereich 0000..7FFF).

Matrizen haben daher folgende Struktur im RAM:

mit Eintrag[x,y], x = Spalte 0..m-1 und y = Zeile 0..n-1 (Anmerkung: beim Taschenrechner wird statt dessen Eintrag [y,x] angegeben mit x = 1..m und y = 1..n).

Beispiel:

folgende 3x2 - Matrix:
    MAT 012
    0135
    1246
würde im RAM so aussehen:
    Bytes #Inhalt
    00..0900,01,00,00,00,00,00,00,00,01
    0A..1300,01,00,00,00,00,00,00,00,02
    14..1D00,01,00,00,00,00,00,00,00,03
    1E..2700,01,00,00,00,00,00,00,00,04
    28..3100,01,00,00,00,00,00,00,00,05
    32..3B00,01,00,00,00,00,00,00,00,06

Copyright (C) 2004 by Marco Kaufmann