Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
8622 | Boppan | 1 | /* |
2 | |||
3 | This is adapded thunk for console.obj sys library |
||
4 | Only for internal use in stdio.h |
||
5 | |||
6 | Adapted for tcc by Siemargl, 2016 |
||
7 | |||
8 | */ |
||
9 | #ifndef _CONIO_H_ |
||
10 | #define _CONIO_H_ |
||
11 | |||
12 | #define cdecl __attribute__ ((cdecl)) |
||
13 | #define stdcall __attribute__ ((stdcall)) |
||
14 | |||
15 | extern void stdcall (*__con_write_asciiz)(const char* str); |
||
16 | /* Display ASCIIZ-string to the console at the current position, shifting |
||
17 | the current position. */ |
||
18 | |||
19 | extern void stdcall (*__con_write_string)(const char* str, unsigned length); |
||
20 | /* Similar to __con_write_asciiz, but length of the string must be given as a |
||
21 | separate parameter */ |
||
22 | |||
23 | extern int stdcall (*__con_getch)(void); |
||
24 | /* Get one character from the keyboard. |
||
25 | |||
26 | For normal characters function returns ASCII-code. For extended |
||
27 | characters (eg, Fx, and arrows), first function call returns 0 |
||
28 | and second call returns the extended code (similar to the DOS-function |
||
29 | input). Starting from version 7, after closing the console window, |
||
30 | this function returns 0. */ |
||
31 | |||
32 | extern short stdcall (*__con_getch2)(void); |
||
33 | /* Reads a character from the keyboard. Low byte contains the ASCII-code |
||
34 | (0 for extended characters), high byte - advanced code (like in BIOS |
||
35 | input functions). Starting from version 7, after closing the console |
||
36 | window, this function returns 0. */ |
||
37 | |||
38 | extern int stdcall (*__con_kbhit)(void); |
||
39 | /* Returns 1 if a key was pressed, 0 otherwise. To read pressed keys use |
||
40 | __con_getch and __con_getch2. Starting from version 6, after closing |
||
41 | the console window, this function returns 1. */ |
||
42 | |||
43 | extern char* stdcall (*__con_gets)(char* str, int n); |
||
44 | /* Reads a string from the keyboard. Reading is interrupted when got |
||
45 | "new line" character, or after reading the (n-1) characters (depending on |
||
46 | what comes first). In the first case the newline is also recorded in the |
||
47 | str. The acquired line is complemented by a null character. |
||
48 | Starting from version 6, the function returns a pointer to the entered |
||
49 | line if reading was successful, and NULL if the console window was closed. */ |
||
50 | |||
51 | typedef int (stdcall * __con_gets2_callback)(int keycode, char** pstr, int* pn, |
||
52 | int* ppos); |
||
53 | |||
54 | extern char* stdcall (*__con_gets2)(__con_gets2_callback callback, char* str, int n); |
||
55 | /* Con_gets completely analogous, except that when the user |
||
56 | press unrecognized key, it calls the specified callback-procedure |
||
57 | (which may, for example, handle up / down for history and tab to enter |
||
58 | autocompletion). You should pass to the procedure: key code and three pointers |
||
59 | - to the string, to the maximum length and to the current position. |
||
60 | function may change the contents of string and may change the string |
||
61 | itself (for example, to reallocate memory for increase the limit), |
||
62 | maximum length, and position of the line - pointers are passed for it. |
||
63 | Return value: 0 = line wasn't changed 1 = line changed, you should |
||
64 | remove old string and display new, 2 = line changed, it is necessary |
||
65 | to display it; 3 = immediately exit the function. |
||
66 | Starting from version 6, the function returns a pointer to the entered |
||
67 | line with the successful reading, and NULL if the console window was closed. */ |
||
68 | |||
69 | extern int __con_is_load; |
||
70 | extern unsigned *__con_dll_ver; |
||
71 | |||
72 | extern int __con_init(void); |
||
73 | extern int __con_init_opt(int wnd_width, int wnd_height, int scr_width, int scr_height, const char* title); |
||
74 | extern void stdcall (*__con_exit)(int status); |
||
75 | |||
76 | #endif |