SuperH-based fx calculators
fx legacy: datatable

0x136: unsigned char *GetCharacterGlyph(short character);

Returns a pointer to the character bitmap (glyph) for the provided character. (simple 8x8 glyph)

The high byte of character defines the table, where the glyph will be fetched from.
0x00: table entry returned by syscall 0x01b7 (returned glyph depends on low byte of character)
0x7F: table entry returned by syscall 0x01bc (returned glyph depends on low byte of character)
0xE5: table entry returned by syscall 0x01bb (returned glyph depends on low byte of character)
0xE6: table entry returned by syscall 0x01ba (returned glyph depends on low byte of character)
0xE7: table entry returned by syscall 0x01b8 (returns one empty glyph, independent of low byte of character)
0xF7: table entry returned by syscall 0x01bd (returns one empty glyph, independent of low byte of character)
0xF9: table entry returned by syscall 0x01b9 (returns one empty glyph, independent of low byte of character)

 

0x137: unsigned char *GetCharacterMiniGlyph(short character, short*width);

Returns a pointer to the character bitmap data for the provided character. Stores the width of the character in width.
- If width is <=4, the character data consists of 5 nibbles (3 bytes), each corresponding to a row.
- If width > 4, the 'encoding' is like with bigger characters, but only 5 rows in height.

E.g.: A call to 0x137 gives you width=6 and points you to these (5) bytes (binary view, '_' means 0):
_1_1____
11111___
_1_1____
11111___
_1_1____
Which simply is the bitmap data for '#' ('#' was the provided character).

Another call to 0x137 might give width=3 and points you to these (3) bytes (binary):
11__1___
1___1___
11______

If you then split the nibbles in the byte on each separate line:
11__
1___
1___
1___
11__
____
You get a glyph for '['.

0x01B7: unsigned char*Get8x8BitmapPtr1( int bitmapno );

bitmapno can be 0..255.
returns a selected pointer to a 8x8 bitmap out of the font-/symbol-table 1

0x01B8: unsigned char*Get8x8BitmapPtr01( void );

returns a pointer to a 8x8 bitmap which is actually empty (clear)

 

0x01B9: unsigned char*Get8x8BitmapPtr02( void );

returns a pointer to a 8x8 bitmap which is actually empty (clear)

 

0x01BA: unsigned char*Get8x8BitmapPtr2( int bitmapno );

bitmapno can be 0..255.
returns a selected pointer to a 8x8 bitmap out of the font-/symbol-table 2

 

0x01BB: unsigned char*Get8x8BitmapPtr3( int bitmapno );

bitmapno can be 0..255.
returns a selected pointer to a 8x8 bitmap out of the font-/symbol-table 3

 

0x01BC: unsigned char*Get8x8BitmapPtr4( int bitmapno );

bitmapno can be 0..255.
returns a selected pointer to a 8x8 bitmap out of the font-/symbol-table 4

 

0x01BD: unsigned char*Get8x8BitmapPtr03( void );

returns a pointer to a 8x8 bitmap which is actually empty (clear)

 

0x0486: int*GetDisplayRessourcesPtr( int mode, unsigned char*buffer );

With buffer=0 and mode=0 the function returns the address of sycall-table-entry 0x0175.
With buffer=0 and mode!=0 the function returns the address of sycall-table-entry 0x03EA.
With buffer!=0 the function returns some info concerning non-English language data. Details will be figured out later.

The system-table 0x0175 defines the English messages.
Offset 0x0C defines count-1 of messages (short).
At offset 0x0D an according list of short offsets is positioned. These short-offsets point to the actual messages, relative from after the end of this short-offset-list.

The system-table 0x03EA defines the function-key icon bitmaps.
Offset 0x0C defines count-1 of bitmaps (short).
At offset 0x0D an according list of short offsets is positioned. These short-offsets point to the actual bitmaps, relative from after the end of this short-offset-list.
Some of these bitmaps might be appropriate to use in self-written programs.

SysCall-table entry 0x03EA contains the address of a datatable. Starting with offset 0x0822 (OS 1.03) inside this table the F-key-display-bitmaps are stored.
Those bitmaps consist of 24 bytes. The first 21 bits of three adjacent bytes define a horizontal line.

 

(19.03.2011 12:14:54)