Syscall index: 0x1218
void DisplayMBString2(int select, unsigned char* str, int start, int xpos, int sel_start, int x, int y, int pos_to_clear, int right_margin, int key)
Displays a line of text containing multi-byte characters.
- int select - 1 if a part of the string is selected, 0 if not
- unsigned char* str - Multi-byte string to display
- int start - The position in bytes of the first character to display in str
- int xpos - The absolute position of the cursor in bytes. If select==1 it also means one of the ends of the selection.
- int sel_start - The other start/end of the selection. Absolute position in bytes
- int x - The horizontal position of the first displayed character. It's like in PrintXY
- int y - The vertical position of the top of the displayed text in pixels. 0px is under the header line.
- int pos_to_clear - Printing blocks at this position if the screen. For example if
pos_to_clear==5, characters won't be displayed after the fifth column.
- int right_margin characters (not bytes!) will be cut from the right of the string, fewer characters will be displayed. It has the same effect as you decreased pos_to_clear by this number. Actually this parameter is not usable to anything.
- int key - The exact function of this parameter is unknown. It must be a keycode, the syscall has different behaviour in the case
30000<=key(In the first case the blinking cursor stays at its position, but in the second case, it disappears after a keypress)
DisplayMBString2(1, "(this text is not important)Hello World!-\xE5\x58(not important)", 28, 34, 40, 5, 50, 18, 2, 30000-1);
This code displaysin the centre of the screen.