1 ;*****************************************************************************/
5 ;* TGI kernel interface */
9 ;* (C) 2002-2009, Ullrich von Bassewitz */
10 ;* Roemerstrasse 52 */
11 ;* D-70794 Filderstadt */
12 ;* EMail: uz@cc65.org */
15 ;* This software is provided 'as-is', without any expressed or implied */
16 ;* warranty. In no event will the authors be held liable for any damages */
17 ;* arising from the use of this software. */
19 ;* Permission is granted to anyone to use this software for any purpose, */
20 ;* including commercial applications, and to alter it and redistribute it */
21 ;* freely, subject to the following restrictions: */
23 ;* 1. The origin of this software must not be misrepresented; you must not */
24 ;* claim that you wrote the original software. If you use this software */
25 ;* in a product, an acknowledgment in the product documentation would be */
26 ;* appreciated but is not required. */
27 ;* 2. Altered source versions must be plainly marked as such, and must not */
28 ;* be misrepresented as being the original software. */
29 ;* 3. This notice may not be removed or altered from any source */
32 ;*****************************************************************************/
36 ;------------------------------------------------------------------------------
40 ID .byte 3 ; Contains 0x74, 0x67, 0x69 ("tgi")
41 VERSION .byte 1 ; Interface version
43 XRES .word 1 ; X resolution
44 YRES .word 1 ; Y resolution
45 COLORCOUNT .byte 1 ; Number of available colors
46 PAGECOUNT .byte 1 ; Number of screens available
47 FONTWIDTH .byte 1 ; System font width
48 FONTHEIGHT .byte 1 ; System font height
49 ASPECTRATIO .word 1 ; Fixed point 8.8 format
52 INSTALL .addr ; INSTALL routine
53 UNINSTALL .addr ; UNINSTALL routine
54 INIT .addr ; INIT routine
55 DONE .addr ; DONE routine
56 GETERROR .addr ; GETERROR routine
57 CONTROL .addr ; CONTROL routine
58 CLEAR .addr ; CLEAR routine
59 SETVIEWPAGE .addr ; SETVIEWPAGE routine
60 SETDRAWPAGE .addr ; SETDRAWPAGE routine
61 SETCOLOR .addr ; SETCOLOR routine
62 SETPALETTE .addr ; SETPALETTE routine
63 GETPALETTE .addr ; GETPALETTE routine
64 GETDEFPALETTE .addr ; GETDEFPALETTE routine
65 SETPIXEL .addr ; SETPIXEL routine
66 GETPIXEL .addr ; GETPIXEL routine
67 LINE .addr ; LINE routine
68 BAR .addr ; BAR routine
69 TEXTSTYLE .addr ; TEXTSTYLE routine
70 OUTTEXT .addr ; OUTTEXT routine
71 IRQ .addr ; IRQ routine
75 ;------------------------------------------------------------------------------
76 ; The TGI API version, stored at TGI_HDR_VERSION
80 ;------------------------------------------------------------------------------
81 ; Color and text constants
89 TGI_TEXT_HORIZONTAL = 0
92 ;------------------------------------------------------------------------------
95 .global _tgi_drv ; Pointer to driver
96 .global _tgi_error ; Last error code
97 .global _tgi_gmode ; Flag: graphics mode active
98 .global _tgi_curx ; Current drawing cursor X
99 .global _tgi_cury ; Current drawing cursor Y
100 .global _tgi_color ; Current drawing color
101 .global _tgi_font ; Which font to use
102 .global _tgi_textdir ; Current text direction
103 .global _tgi_textscalew ; Text magnification for the width
104 .global _tgi_textscaleh ; Text magnification for the height
105 .global _tgi_charwidth ; Width of scaled system font char
106 .global _tgi_charheight ; Height of scaled system font char
107 .global _tgi_xres ; X resolution of the current mode
108 .global _tgi_yres ; Y resolution of the current mode
109 .global _tgi_colorcount ; Number of available colors
110 .global _tgi_pagecount ; Number of available screen pages
111 .global _tgi_fontwidth ; System font width
112 .global _tgi_fontheight ; System font height
113 .global _tgi_aspectratio ; Aspect ratio, fixed point 8.8
115 ;------------------------------------------------------------------------------
116 ; Driver entry points
119 .global tgi_uninstall
125 .global tgi_setviewpage
126 .global tgi_setdrawpage
128 .global tgi_setpalette
129 .global tgi_getpalette
130 .global tgi_getdefpalette
135 .global tgi_textstyle
138 ;------------------------------------------------------------------------------
150 ;------------------------------------------------------------------------------
151 ; C callable functions
154 .global _tgi_load_driver
157 .global _tgi_uninstall
161 .global _tgi_geterror
162 .global _tgi_geterrormsg
164 .global _tgi_getpagecount
165 .global _tgi_setviewpage
166 .global _tgi_setdrawpage
167 .global _tgi_getcolorcount
168 .global _tgi_getmaxcolor
169 .global _tgi_setcolor
170 .global _tgi_getcolor
171 .global _tgi_setpalette
172 .global _tgi_getpalette
173 .global _tgi_getdefpalette
178 .global _tgi_getpixel
179 .global _tgi_setpixel
185 .global _tgi_textscale
186 .global _tgi_textstyle
187 .global _tgi_textwidth
188 .global _tgi_textheight
190 .global _tgi_outtextxy