SuperH-based fx calculators
fx legacy Auxiliary functions

legacy syscalls overview

0x0268: void GetFKeyIconPointer( int FKeyNo, unsigned char *pBitmap );
Returns the pointer to the FKey-icon defined by FKeyNo in pBitmap.
0x0465: int GetIntPtrContent( unsigned char*ptr );
The function returns an int based on ptr pointing to a 4-byte sequence. The function is useful, if a non-4-aligned 4-byte-sequence has to be interpreted as int. The fx-9860 file headers contain such sequences sometimes.
F. i.
typedef struct {
char MCS_DirName[8];
char MCS_ItemName[8];
char MCS_DirType;
char MCS_DataLength[4]; // read this int-member using GetIntPtrContent
char align[3];
} TG1MSubItemDef;
MCS_DirType would be automatically aligned by the compiler with three filler-bytes, if MCS_DataLength would be declared as int.
0x04A0: void DisplayErrorMessage( int id );
Like 0x0954. Reboots if id=23.
0x04B0: void DisplayFKeyIcons( void );
Displays the FKey-icons defined with syscall 0x4CB.
0x04D1: void DisplayFKeyIcon( int FKeyPos, unsigned char *pBitmap );
Displays the FKey-icon defined by pBitMap at position FKeyPos.
0x04E6: void HourGlass();
Displays the 4x4 busy-square (top-right). It is written directly to the DD. So the next VRAM to DD automatically clears it (f. i. GetKey).
0x0901: void DisplayMessageBox( int height, unsigned char*message );
Displays message in a box of the height height.
Usually -inside of message- 0xF9C9-sequences are used to set TABs.
0x0905: void DisplayErrorMessage( int id );
Like 0x0954.
0x0954: void DisplayErrorMessage( int id );
Displays a three line error message box depending on id (range: 1..46).
The fourth line is "Press:[EXIT]" always.
The function waits for one of the keys EXIT, QUIT, AC, RIGHT or LEFT.

01: Break, 02: Syntax ERROR, 03: Ma ERROR, 04: Memory ERROR, 05: Go ERROR,
06: Nesting ERROR, 07: Stack ERROR, 08: Argument ERROR, 09: Dimension ERROR, 10: Com ERROR
11: Transmit ERROR, 12: Receive ERROR, 13: Memory Full, 14: Undefined, 15: Overflow ERROR
16: Domain ERROR, 17: Non-Real ERROR, 18: No Solution, 19: Mismatch, 20: No Variable
21: Not Found, 22: Application ERROR, 23: System ERROR, 24: Already Exists, 25: Complex Number In List
26: Complex Number In Matrix, 27: Can't Solve! Adjust initial value or bounds. Then try again.
28: Range ERROR, 29: Time Out, 30: Condition ERROR
31: Syntax ERROR, 32: Syntax ERROR, 33: Range ERROR, 34: Circular ERROR, 35: No Real Roots
36: Version ERROR, 37: Card ERROR, 38: Card is protected, 39: Invalid Card, 40: No Card
41: SD Card Full, 42: Storage Memory Full, 43: Data ERROR, 44: Invalid file name or folder name., 45: Data is protected
46: Too Many Data

id above 46 will display the "Undefinition Error" message together with the error number.
0x0A35: void DisplayMessage( int id1, int id2, int id3, int id4 );
Displays a four line message box depending on id1 to id4. See LocalizeStringID.
An id equal to zero leaves the corresponding line blank.
The function waits for one of the keys EXIT, QUIT, AC, RIGHT or LEFT.
0x0CC4: int InputNumber( unsigned char *heading, int maxlen, int mode );
Displays a simple number input dialog.
heading is used as heading.
maxlen is the max. count of digits.
mode = 0: decimal; 1: hexadecimal
returns the number.

with mode = 0, hexadecimals A..F are allowed to input,
but when hitting EXE, a syntax error is displayed.

0x0CC5: int InputString( unsigned char*buffer, unsigned char *heading, int maxlen );
 

0x0D64: int InputDateDialog( int*day, int*month, int*year, int*P4 );
P4 is a pointer to a two-int array, which must contain the values 0 and 0x7545.
0x0D65: int InputMonthDialog( int*month, int*P2 );
P2 is a pointer to a two-int array, which must contain the values 0 and 0x7545.
0x0D66: int InputDayDialog( int*day, int*P2 );
P2 is a pointer to a two-int array, which must contain the values 0 and 0x7545.
0x0D67: int InputYearDialog( int*year, int*P2 );
P2 is a pointer to a two-int array, which must contain the values 0 and 0x7545.

 

(31.07.2012 06:38:32)