Programmierung » ClassPad 300 » MCS-File Spezifikation
MCS-File Spezifikation
UNVOLLSTÄNDIGDas ist das, was ich bis jetzt durch probieren herausgefunden habe. Die Namen werden wahrscheinlich von Casio nicht verwendet.
Der Aufbau der Datei ist folgendermaßen:
| MCS_File_Header |
| MCS_Mem_Image |
MCS_File_Header
Dieser besteht aus 24 (0x18) Bytes:
| Bytes | Name | Bedeutung |
| 16 (0x10) | FileType | ist immer: "CP MCSIMAGEFILE" & 0x00 |
| 4 (0x04) | ||
| 4 (0x04) | ImageBias | (Motorola) Start des Speicher-Images im ClassPad. (=0x01530020) |
MCS_Mem_Image
Dies ist das Eigentliche Image mit den Daten. Es besteht aus 524288 (0x080000) Bytes. Die Offsets im MCS_Mem_Image (und Unter-Daten) beziehen sich nur auf die Daten des Images (also ohne den MCS_File_Header).
| MCS_Mem_Image_Header |
| MCS_Mem_Image_Folder_List |
| MCS_Mem_Image_File_List für Ordner1 |
| Daten für Ordner1 |
| MCS_Mem_Image_File_List für Ordner2 |
| Daten für Ordner2 |
| ... |
MCS_Mem_Image_Header
Dieser besteht aus 256 (0x0100) Bytes und stellt Informationen über das Image bereit.
| Bytes | Name | Bedeutung |
| 4 (0x04) | DataEndOffset | (Intel) Offset vom Ende der Daten im Image |
| 4 (0x04) | MainFolderOffset | (Intel) Offset des Folder-List-Eintrags für main |
| 4 (0x04) | ImageEndOffset1 | (Intel) Offset vom Ende des Images (=0x080000) |
| 4 (0x04) | ImageEndOffset2 | (Intel) Offset vom Ende des Images (=0x080000) |
| 4 (0x04) | ||
| 4 (0x04) | ||
| 16 (0x10) | ImageSeparator | 16 Bytes mit 0xFF |
| 216 (0xD8) | Der Restliche Platz wird mit Null-Bytes gefüllt (0x00). |
MCS_Mem_Image_Folder_List
Dies ist eine Liste, die alle 134 Ordner nach folgendem Schema enthält. Jeder Eintrag hat 16 (0x10) Bytes.
| Bytes | Name | Bedeutung |
| 8 (0x08) | Name | Der Name des Ordners |
| 4 (0x04) | FileListOffset | (Intel) Offset der Datei-Liste dieses Ordners |
| 2 (0x02) | FileCount | (Motorola) Die Anzahl der Dateien |
| 1 (0x01) | LockByte | Verriegelung |
| 1 (0x01) |
LockByte kann folgende Werte annehmen:
| Wert | Bedeutung |
| 0x00 | entriegelt |
| 0x01 | verriegelt |
MCS_Mem_Image_File_List
Dies ist eine Liste mit allen Dateien, die ein Ordner enthält. Jeder Eintrag hat 20 (0x14) Bytes.
| Bytes | Name | Bedeutung |
| 8 (0x08) | Name | Der Name des Ordners |
| 4 (0x04) | DataOffset | (Motorola) Offset (vom Anfang der Datei-Liste) bis zu den Datei-Daten |
| 4 (0x04) | DataSize | (Motorola) Die Größe der Daten |
| 1 (0x01) | DataType | Der Typ der Datei |
| 1 (0x01) | LockByte | Verriegelung |
| 2 (0x02) |
DataType kann folgende Werte annehmen:
| Wert | Datei-Typ |
| 0x01 | EXPR |
| 0x02 | INT |
| 0x03 | EXPR |
| 0x04 | FLT |
| 0x05 | STR |
| 0x06 | EXPR |
| 0x09 | FILE |
| 0x0A | LIST |
| 0x0B | VECT |
| 0x0C | MAT |
| 0x12 | EXPR |
| 0x47 | {TEXT | EXE | PRGM} |
| 0x48 | FUNC |
| 0x4D | PICT |
| 0x4E | MEM |
| 0x4F | EXEC |
| 0x50 | GMEM |
| 0x51 | G3D |
| 0x53 | CONT |
| 0x54 | GEO |
| 0x55 | REG |
LockByte kann folgende Werte annehmen:
| Wert | Bedeutung |
| 0x00 | entriegelt |
| 0x01 | verriegelt |
| 0x04 | verriegelt, "Variable wird verwendet" |
Einige der Daten, auf die in der entsprechenden File-List verwiesen wird, haben einen eigenen Header. In diesem werden Informationen wie Bild-Größe oder Länge des Programms gespeichert.
PICT
16 (0x10) Bytes:
| Bytes | Name | Bedeutung |
| 2 (0x02) | ||
| 2 (0x02) | Width | (Motorola) Breite des Bildes |
| 2 (0x02) | Height | (Motorola) Höhe des Bildes |
| 2 (0x02) | ||
| 2 (0x02) | ||
| 2 (0x02) | ||
| 4 (0x04) |
Anschließend folgen die Bild-Daten. Für jeden Pixel eines Bildes wird 1 Bit verwendet, d.h. 1 Byte repräsentiert einen horizontalen Abschnitt mit 8 Pixel. Wenn das Bit gesetzt ist, dann wird der Pixel gezeichnet. Unsprung des Bildes ist oben links.
TEXT/EXE/PRGM
12 (0x0C) Bytes:
| Bytes | Name | Bedeutung |
| 4 (0x04) | TextSize | (Motorola) Größe (Länge) des Klartextes des Programms |
| 4 (0x04) | CompressedSize | (Motorola) Größe (Länge) des komprimierten Textes des Programms |
| 4 (0x04) | Modif | Ein Modifikator |
Entsprechend der Werte entscheided sich der Datei-Typ. Die mit Stern markierten Typen kommen normalerweise nicht vor, werden aber richtig verarbeitet.
| TextSize | CompressedSize | Modif | Datei-Typ, Speicher-Schema |
| gesetzt | 0x00000000 | 0x00000000 | TEXT Parameter-String & 0x00 & Klar-Text & 0x00FF |
| gesetzt | gesetzt | 0x00000000 | TEXT* Parameter-String & 0x00 & Klar-Text & 0x00FF & Parameter-String & 0x00 & komprimierter Text & 0x00FF |
| 0x00000000 | gesetzt | 0x00000001 | EXE Parameter-String & 0x00 & komprimierter Text & 0x00FF |
| gesetzt | gesetzt | 0x00000001 | PRGM Parameter-String & 0x00 & Klar-Text & 0x00FF & Parameter-String & 0x00 & komprimierter Text & 0x00FF |
| gesetzt | 0x00000000 | 0x00000001 | PRGM* Parameter-String & 0x00 & Klar-Text & 0x00FF |
Die Gesamt-Größe (im Datei-Header) eines Programms muß durch 4 teilbar sein, fehlende Bytes werden aufgefüllt.
Im komprimierten Text werden für die eingebauten Befehle Byte-Codes verwendet. Das Leerzeichen (0x20) am Anfang eines
Terms/Bedingung (wie bei If, ElseIf, Case, ...) wird beibehalten. Adressen haben immer die länge von 4 Bytes.
In dieser Tabelle sind die Befehle und ihr Byte-Code aufgelistet. (Nicht ganz vollständig)
| Befehl | Code | Bemerkung |
| abExpR | 0xE889 | |
| abExpReg | 0xE870 | |
| abs | 0xE020 | |
| absExpand | 0xE021 | |
| and | 0xE004 | |
| andConnect | 0xE022 | |
| angle | 0xE023 | |
| approx | 0xE025 | |
| arcLen | 0xE026 | |
| arg | 0xE027 | |
| arrange | 0xE028 | |
| augment | 0xE029 | |
| BinomialCD | 0xE8B3 | |
| BinomialPD | 0xE8B2 | |
| Box | 0xE8BF | |
| Break | 0xE804 | & {Adresse von IfEnd | Adresse von SwitchEnd | Adresse von WhileEnd + 6 (0x06) | Adresse von LpWhile + 8 (0x08) + Länge von Bedingung} |
| Broken | 0xE881 | |
| CallUndef | 0xE82D | |
| Case | 0xE804 | & {Adresse von sich selbst + 14 (0x0E) + Länge von Term & 0xE808 & Term & 0xE803 & {Adresse von nächsten Case + 6 (0x06) | Adresse von Default}} |
| cExpand | 0xE043 | |
| ChiCD | 0xE8AF | |
| ChiPD | 0xE8AE | |
| ChiTest | 0xE89F | |
| ChrToNum | 0xE8F6 | |
| Circle | 0xE829 | |
| Clear_a_z | 0xE91D | |
| ClearSheet | 0xE859 | |
| ClearSheet3D | 0xE864 | |
| CloseComPort38k | 0xE8DA | |
| ClrGraph | 0xE82A | |
| ClrText | 0xE910 | |
| Cls | 0xE82B | |
| colDim | 0xE02A | |
| collect | 0xE02B | |
| colNorm | 0xE02C | |
| combine | 0xE02D | |
| compToPol | 0xE02E | |
| compToTrig | 0xE02F | |
| conjg | 0xE030 | |
| const | 0xE0A8 | |
| constn | 0xE0A9 | |
| CopyVar | 0xE8F2 | |
| cos | 0xE050 | |
cos![]() |
0xE051 | |
| cosh | 0xE052 | |
cosh![]() |
0xE053 | |
| Cross | 0xE88E | |
| crossP | 0xE035 | |
| CubicR | 0xE885 | |
| CubicReg | 0xE86C | |
| cuml | 0xE036 | |
| Default | Dient nur als "Marke" für die Adresse. (Wagenrücklauf (CR) wird übersetzt!) | |
| DefaultListEditor | 0xE897 | |
| DefaultSetup | 0xE8E2 | |
| Define | 0xE917 | |
| DelFolder | 0xE8E7 | |
| DelVar | 0xE8E8 | |
| denominator | 0xE037 | |
| det | 0xE038 | |
| diag | 0xE039 | |
| diff | 0xE03A | |
| dim | 0xE03B | |
| DispDfrTbl | 0xE865 | |
| DispDQTbl | 0xE8D7 | |
| DispFibTbl | 0xE8E3 | |
| DispFTable | 0xE82E | |
| DispListEditor | 0xE894 | |
| DispQutTbl | 0xE8CC | |
| DispSeqTbl | 0xE82F | |
| DispSmryTbl | 0xE830 | |
| DispStat | 0xE876 | |
| DispText | 0xE911 | |
| Distance | 0xE831 | |
| dms | 0xE092 | |
| Do | Dient nur als "Marke" für die Adresse. (Wagenrücklauf (CR) wird übersetzt!) | |
| Dot | 0xE890 | |
| dotP | 0xE03C | |
| DrawConics | 0xE918 | |
| DrawFTGCon | 0xE833 | |
| DrawFTGPlot | 0xE834 | |
| DrawGraph | 0xE835 | |
| DrawSeqCon | 0xE836 | |
| DrawSeqPlt | 0xE837 | |
| DrawSeqEtrCon | 0xE838 | |
| DrawSeqEtrPlt | 0xE839 | |
| DrawStat | 0xE891 | |
| Draw3D | 0xE862 | |
| dSolve | 0xE03D | |
![]() |
0xE404 | Der Zeichencode dafür ist 0xEE03. |
![]() |
0xE403 | Der Zeichencode dafür ist 0xEE02. |
| eigVc | 0xE03E | |
| eigVl | 0xE03F | |
| eliminate | 0xE040 | |
| Else | 0xE804 | & Adresse von IfEnd |
| ElseIf | 0xE804 | & Adresse von IfEnd & 0xE801 & Bedingung & 0xE803 & Adresse von nächsten Else/ElseIf + 6 (0x06) |
| exchange | 0xE041 | |
| expand | 0xE042 | |
| ExpR | 0xE888 | |
| ExpReg | 0xE86F | |
| ExpToStr | 0xE8F7 | |
| expToTrig | 0xE044 | |
| factor | 0xE045 | |
| factorOut | 0xE0A1 | |
| FCD | 0xE8B1 | |
| fill | 0xE047 | |
| fMax | 0xE049 | |
| fMin | 0xE048 | |
| For | 0xE809 | & Anweisung |
| FPD | 0xE8B0 | |
| frac | 0xE094 | |
| fRound | 0xE0AE | |
| gcd | 0xE04A | |
| GeoCD | 0xE8B7 | |
| GeoPD | 0xE8B6 | |
| GetFolder | 0xE8E9 | |
| GetKey | 0xE909 | |
| getLeft | 0xE0A2 | |
| GetPen | 0xE90A | |
| getRight | 0xE04B | |
| GetType | 0xE8EA | |
| GetVar38k | 0xE920 | |
| Goto | 0xE804 | & (4 Bytes:) Adresse von Lbl |
| GraphType | 0xE83A | |
| GTSelOff | 0xE83B | |
| GTSelOn | 0xE83C | |
| Histogram | 0xE87C | |
| Horizontal | 0xE83D | |
![]() |
0xE405 | Der Zeichencode dafür ist 0xEE01. |
| ident | 0xE058 | |
| If | 0xE801 | & Bedingung & 0xE803 & {Adresse von IfEnd | Adresse von nächsten Else/ElseIf + 6 (0x06)} |
| IfEnd | Dient nur als "Marke" für die Adresse. (Wagenrücklauf (CR) wird übersetzt!) | |
| im | 0xE059 | |
| Input | 0xE90C | |
| InputFunc | 0xE90E | |
| InputStr | 0xE90D | |
| int | 0xE095 | |
| intg | 0xE096 | |
| Inverse | 0xE83E | |
| invert | 0xE05B | |
| InvNorm | 0xE8AB | |
| judge | 0xE0A6 | |
| Lbl | Dient nur als "Marke" für die Adresse. (Wagenrücklauf (CR) wird übersetzt!) | |
| lcm | 0xE05C | |
| Ldot | 0xE88F | |
| lim | 0xE05D | |
| Line | 0xE83F | |
| LinearR | 0xE882 | |
| LinearReg | 0xE869 | |
| LinRegTTest | 0xE89E | |
| listToMat | 0xE05E | |
| ln | 0xE05F | |
| Local | 0xE8EB | |
| Locate | 0xE90B | |
| Lock | 0xE8EC | |
| LockFolder | 0xE8F3 | |
| log | 0xE060 | |
| LogisticR | 0xE88C | |
| LogisticReg | 0xE873 | |
| LogP | 0xE85D | |
| LogR | 0xE887 | |
| LogReg | 0xE86E | |
| LpWhile | 0xE801 | & Bedingung & 0xE802 & Adresse von Do |
| LU | 0xE0B6 | |
| matToList | 0xE061 | |
| max | 0xE062 | |
| mean | 0xE063 | |
| MedBox | 0xE87D | |
| median | 0xE064 | |
| MedMed | 0xE883 | |
| MedMedLine | 0xE86A | |
| Message | 0xE912 | |
| min | 0xE065 | |
| mod | 0xE066 | |
| ModBox | 0xE87E | |
| mode | 0xE09B | |
| MoveVar | 0xE8ED | |
| mRow | 0xE074 | |
| mRowAdd | 0xE075 | |
| MultiSortA | 0xE892 | |
| MultiSortD | 0xE893 | |
| Next | 0xE804 | & Adresse von zugehörigen To |
| nCr | 0xE067 | |
| NDist | 0xE880 | |
| NewFolder | 0xE8EE | |
| norm | 0xE068 | |
| normal | 0xE09E | |
| NormalLine | 0xE840 | |
| NormCD | 0xE8AA | |
| NormPD | 0xE8A9 | |
| not | 0xE091 | |
| NPPlot | 0xE87B | |
| nPr | 0xE069 | |
| numerator | 0xE06A | |
| NumToChr | 0xE8F8 | |
| NumToStr | 0xE903 | |
| Off | 0xE8B8 | |
| On | 0xE8B9 | |
| OnePropZInt | 0xE8A5 | |
| OnePropZTest | 0xE89A | |
| OneSampleTInt | 0xE8A7 | |
| OneSampleTTest | 0xE89C | |
| OneSampleZInt | 0xE8A3 | |
| OneSampleZTest | 0xE898 | |
| OneVariable | 0xE874 | |
| OneWayANOVA | 0xE8A1 | |
| OpenComPort38k | 0xE8D9 | |
| or | 0xE005 | |
| Pause | 0xE827 | |
| percent | 0xE08E | |
| piecewise | 0xE0A7 | |
| Plot | 0xE82C | |
| PlotChg | 0xE841 | |
| PlotOff | 0xE842 | |
| PlotOn | 0xE843 | |
| plotTest | 0xE0A3 | |
| PoissonCD | 0xE8B5 | |
| PoissonPD | 0xE8B4 | |
| polyEval | 0xE06B | |
| PowerR | 0xE88A | |
| PowerReg | 0xE871 | |
| 0xE90F | ||
| PrintNatural | 0xE913 | |
| prod | 0xE06C | |
| propFrac | 0xE0A0 | |
| PTBrokenThck | 0xE848 | |
| PTCross | 0xE844 | |
| PTDot | 0xE845 | |
| PTNormal | 0xE846 | |
| PTSquare | 0xE847 | |
| PTThick | 0xE849 | |
| PxlChg | 0xE84A | |
| PxlOff | 0xE84B | |
| PxlOn | 0xE84C | |
| pxlTest | 0xE0A4 | |
Q![]() |
0xE099 | |
Q Stat |
0xE48E | |
Q![]() |
0xE09A | |
Q Stat |
0xE490 | |
| QR | 0xE0B7 | |
| QuadR | 0xE884 | |
| QuadReg | 0xE86B | |
| QuartR | 0xE886 | |
| QuartReg | 0xE86D | |
| rand | 0xE0AD | |
| randList | 0xE024 | |
| RandSeed | 0xE8F5 | |
| rangeAppoint | 0xE0B8 | |
| RclGMem | 0xE84D | |
| RclPict | 0xE84E | |
| RclVWin | 0xE84F | |
| re | 0xE06E | |
| Receive38k | 0xE91A | |
| ref | 0xE06F | |
| Rename | 0xE8EF | |
| replace | 0xE070 | |
| Return | 0xE825 | |
| rewrite | 0xE071 | |
| rFactor | 0xE046 | |
| rotate | 0xE072 | |
| rowAdd | 0xE073 | |
| rowDim | 0xE076 | |
| rowNorm | 0xE077 | |
| rref | 0xE078 | |
| rSolve | 0xE09F | |
| Scatter | 0xE879 | |
| SelOn3D | 0xE863 | |
| Send38k | 0xE919 | |
| SendVar38k | 0xE91F | |
| seq | 0xE079 | |
| SeqSelOff | 0xE850 | |
| SeqSelOn | 0xE851 | |
| SeqType | 0xE852 | |
| sequence | 0xE09C | |
| SetAxes | 0xE8BC | |
| SetAxes3D | 0xE8BD | |
| SetBG | 0xE8BE | |
| SetCellWidth | 0xE8C0 | |
| SetComplex | 0xE8C1 | |
| SetCoord | 0xE8C2 | |
| SetCoordOff3D | 0xE8C3 | |
| SetCoordPol3D | 0xE8C4 | |
| SetCoordRect3D | 0xE8C5 | |
| SetDecimal | 0xE8C6 | |
| SetDegree | 0xE8C7 | |
| SetDeriv | 0xE8C8 | |
| SetDispGCon | 0xE8BA | |
| SetDrawCon | 0xE81C | |
| SetDrawPlt | 0xE81E | |
| SetFix | 0xE8C9 | |
| SetFolder | 0xE8F0 | |
| SetFunc | 0xE8CA | |
| SetGrid | 0xE8CB | |
| SetLabel | 0xE8CD | |
| SetLabel3D | 0xE8CE | |
| SetLeadCursor | 0xE8CF | |
| SetNormal | 0xE8D0 | |
| SetRadian | 0xE8D1 | |
| SetReal | 0xE8D2 | |
| SetSci | 0xE8D3 | |
| SetSequence | 0xE8D4 | |
| SetSimulGraph | 0xE8D5 | |
| SetSmryTable | 0xE895 | |
| SetSmryTableQD | 0xE81B | |
| SetStandard | 0xE8D6 | |
| SetStatWinAuto | 0xE8BB | |
| SetTVariable | 0xE8E5 | |
Set Disp |
0xE8D8 | |
| SheetActive | 0xE853 | |
| SheetActive3D | 0xE867 | |
| SheetName | 0xE854 | |
| SheetName3D | 0xE866 | |
| shift | 0xE07A | |
| signum | 0xE07B | |
| simplify | 0xE07C | |
| sin | 0xE04C | |
sin![]() |
0xE04D | |
| sinh | 0xE04E | |
sinh![]() |
0xE04F | |
| SinR | 0xE88B | |
| SinReg | 0xE872 | |
| Skip | 0xE804 | & {Adresse von zugehörigem Do | Adresse von zugehörigem While} |
| SmryTSelOn | 0xE85F | |
| solve | 0xE07D | |
| sortA | 0xE07E | |
| sortD | 0xE07F | |
| Square | 0xE88D | |
| sRound | 0xE0AF | |
| StatGraph | 0xE877 | |
| StatGraphSel | 0xE878 | |
| stdDev | 0xE080 | |
| Step | 0xE806 | & Zahl |
| StepDisp | 0xE8E4 | |
| StoGMem | 0xE856 | |
| Stop | 0xE826 | |
| StoPict | 0xE857 | |
| StoVWin | 0xE858 | |
| StrCmp | 0xE8FA | |
| StrInv | 0xE8FB | |
| StrJoin | 0xE8F9 | |
| StrLeft | 0xE8FC | |
| StrLen | 0xE8FD | |
| StrLwr | 0xE901 | |
| StrMid | 0xE902 | |
| StrRight | 0xE904 | |
| StrRotate | 0xE905 | |
| StrShift | 0xE906 | |
| StrSrc | 0xE907 | |
| strToExp | 0xE0A5 | |
| StrUpr | 0xE908 | |
| subList | 0xE081 | |
| subMat | 0xE082 | |
| sum | 0xE083 | |
| sumSeq | 0xE09D | |
| swap | 0xE085 | |
| Switch | 0xE807 | & Term & 0xE804 & Adresse von 1. Case + 6 (0x06) |
| SwitchEnd | 0xE80A | |
| TableInput | 0xE8E6 | |
| tan | 0xE054 | |
tan![]() |
0xE055 | |
| TangentLine | 0xE85A | |
| tanh | 0xE056 | |
tanh![]() |
0xE057 | |
| tanLine | 0xE086 | |
| taylor | 0xE087 | |
| TCD | 0xE8AD | |
| tCollect | 0xE088 | |
| tExpand | 0xE089 | |
| Text | 0xE85B | |
| Then | Dient nur als "Marke" für die Adresse. (Wagenrücklauf (CR) wird übersetzt!) | |
| To | 0xE805 | & Rechte Seite von Anweisung (an " " (=0x02E009) getrennt) & 0x200020 & End-Ausdruck & 0xE803 & Adresse von Next + 6 (0x06) |
| toCyl | 0xE034 | |
| toDMS | 0xE093 | |
| toFrac | 0xE098 | |
| toPol | 0xE032 | |
| toRect | 0xE031 | |
| toSph | 0xE033 | |
| TPD | 0xE8AC | |
| trigToExp | 0xE08A | |
| trn | 0xE08B | |
| TwoPropZInt | 0xE8A6 | |
| TwoPropZTest | 0xE89B | |
| TwoSampleFTest | 0xE8A0 | |
| TwoSampleTInt | 0xE8A8 | |
| TwoSampleTTest | 0xE89D | |
| TwoSampleZInt | 0xE8A4 | |
| TwoSampleZTest | 0xE899 | |
| TwoVariable | 0xE875 | |
| TwoWayANOVA | 0xE8A2 | |
| unitV | 0xE08C | |
| variance | 0xE08D | |
| Vertical | 0xE85C | |
| ViewWindow | 0xE85E | |
| ViewWindow3D | 0xE868 | |
| VWin | 0xE896 | |
| Wait | 0xE828 | |
| While | 0xE801 | & Bedingung & 0xE803 & Adresse von WhileEnd + 6 (0x06) |
| WhileEnd | 0xE804 | & Adresse von While |
| xor | 0xE006 | |
| xyLine | 0xE87A | |
| ZAuto | 0xE832 | |
| ZFactor | 0xE860 | |
![]() |
0xE003 | Der Zeichencode dafür ist 0xEE11. |
![]() |
0xE002 | Der Zeichencode dafür ist 0xEE12. |
![]() |
0xE001 | Der Zeichencode dafür ist 0xEE13. |
![]() |
0x02E009 | Der Zeichencode dafür ist 0xEE0F. |
![]() |
0xE402 | Der Zeichencode dafür ist 0xEE04. |
![]() |
0xE401 | Der Zeichencode dafür ist 0xEE05. |
![]() |
0xE097 | Der Zeichencode dafür ist 0xEE0B. |
![]() |
0xE090 | Der Zeichencode dafür ist 0xEE50. |
![]() |
0xE084 | Der Zeichencode dafür ist 0xEE51. |
![]() |
0xE06D | Der Zeichencode dafür ist 0xEE52. |
![]() |
0xE05A | Der Zeichencode dafür ist 0xEE53. |
| : (Mehrfachanweisung) | 0x013A | Ein Doppelpunkt (:) entspr. Null-Befehl |
| 0x0D (Wagenrücklauf (CR)) | 0x00 | Ein Wagenrücklauf (CR) entspr. Null-Befehl |
Aus der Tabelle mit dem Befehl-Bytes kann man entnehmen, dass einpaar Befehle ähnlich übersetzt werden.
Das folgende sollte das besser erklären.
Wagenrückläufe sind schon eingefügt. (Bei der jeweils letzten Zeile nicht unbedingt notwendig).
If E801 & Bedingung & E803 & Adresse von IfEnd & 00 Then 00 Break E804 & Adresse von IfEnd & 00 IfEnd 00 If E801 & Bedingung & E803 & Adresse von Else + 6 & 00 Then 00 Break E804 & Adresse von IfEnd & 00 Else E804 & Adresse von IfEnd & 00 IfEnd 00 While E801 & Bedingung & E803 & Adresse von WhileEnd + 6 & 00 Break E804 & Adresse von WhileEnd + 6 & 00 WhileEnd E804 & Adresse von While & 00 Do 00 LpWhile E801 & Bedingung & E802 & Adresse von do & 00 Lbl b 00 Goto b E804 & Adresse von Lbl b & 00
00000000 NNNNNNNNCCCCCCCCMMMMMMMM (12 Byte: PRGM_Header) 0000000C 00 (Parameter-Trenner) 0000000D E801 203939 E803 00000020 00 If x<0 00000019 00 Then 0000001A E804 00000021 00 Else 00000021 00 IfEnd 00000022 E82B 00 Cls 00000025 E801 203939 E803 00000037 00 While 99 00000031 E804 00000025 00 WhileEnd 00000038 E82B 00 Cls 0000003B 00 Lbl b 0000003C E804 0000003B 00 Goto b 00000043 E82B 00 Cls 00000046 00 Do 00000047 E801 20783C30 E802 00000046 LpWhile x<0
@REV3:ICONMENU
12 (0x0c) Bytes:
| 1 | Auswahl aus der Liste rechts oben im Hauptmenü (Lehrgebiete (0x00), Zusätzliches (0x01), Alles (0x02)) |
| 3 | 000000 |
| 1 | Scroll-Zustand im Hauptmenü |
| 3 | 000000 |
| 1 | |
| 3 | 000000 |






Disp
" (=0x02E009) getrennt)








