mirror of
https://github.com/cc65/cc65.git
synced 2024-12-22 12:30:41 +00:00
TGI Implementation
git-svn-id: svn://svn.cc65.org/cc65/trunk@1314 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
2614d20153
commit
7fc24b058a
@ -48,7 +48,7 @@ TGI_HDR_JUMPTAB = 16
|
|||||||
TGI_HDR_INSTALL = TGI_HDR_JUMPTAB+0 ; INSTALL routine
|
TGI_HDR_INSTALL = TGI_HDR_JUMPTAB+0 ; INSTALL routine
|
||||||
TGI_HDR_DEINSTALL = TGI_HDR_JUMPTAB+2 ; DEINSTALL routine
|
TGI_HDR_DEINSTALL = TGI_HDR_JUMPTAB+2 ; DEINSTALL routine
|
||||||
TGI_HDR_INIT = TGI_HDR_JUMPTAB+4 ; INIT routine
|
TGI_HDR_INIT = TGI_HDR_JUMPTAB+4 ; INIT routine
|
||||||
TGI_HDR_POST = TGI_HDR_JUMPTAB+6 ; POST routine
|
TGI_HDR_DONE = TGI_HDR_JUMPTAB+6 ; DONE routine
|
||||||
TGI_HDR_CONTROL = TGI_HDR_JUMPTAB+8 ; CONTROL routine
|
TGI_HDR_CONTROL = TGI_HDR_JUMPTAB+8 ; CONTROL routine
|
||||||
TGI_HDR_CLEAR = TGI_HDR_JUMPTAB+10 ; CLEAR routine
|
TGI_HDR_CLEAR = TGI_HDR_JUMPTAB+10 ; CLEAR routine
|
||||||
TGI_HDR_SETCOLOR = TGI_HDR_JUMPTAB+12 ; SETCOLOR routine
|
TGI_HDR_SETCOLOR = TGI_HDR_JUMPTAB+12 ; SETCOLOR routine
|
||||||
@ -65,6 +65,7 @@ TGI_HDR_JUMPCOUNT = 12 ; Number of jump vectors
|
|||||||
|
|
||||||
.global _tgi_drv ; Pointer to driver
|
.global _tgi_drv ; Pointer to driver
|
||||||
.global _tgi_error ; Last error code
|
.global _tgi_error ; Last error code
|
||||||
|
.global _tgi_mode ; Graphics mode or zero
|
||||||
|
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
; Driver entry points
|
; Driver entry points
|
||||||
@ -72,7 +73,7 @@ TGI_HDR_JUMPCOUNT = 12 ; Number of jump vectors
|
|||||||
.global tgi_install
|
.global tgi_install
|
||||||
.global tgi_deinstall
|
.global tgi_deinstall
|
||||||
.global tgi_init
|
.global tgi_init
|
||||||
.global tgi_post
|
.global tgi_done
|
||||||
.global tgi_control
|
.global tgi_control
|
||||||
.global tgi_clear
|
.global tgi_clear
|
||||||
.global tgi_setcolor
|
.global tgi_setcolor
|
||||||
|
@ -88,7 +88,9 @@ void __fastcall__ tgi_done (void);
|
|||||||
/* End graphics mode, switch back to text mode. Will NOT unload the driver! */
|
/* End graphics mode, switch back to text mode. Will NOT unload the driver! */
|
||||||
|
|
||||||
unsigned char __fastcall__ tgi_geterror (void);
|
unsigned char __fastcall__ tgi_geterror (void);
|
||||||
/* Return the error code for the last operation. */
|
/* Return the error code for the last operation. This will also clear the
|
||||||
|
* error.
|
||||||
|
*/
|
||||||
|
|
||||||
void __fastcall__ tgi_clear (void);
|
void __fastcall__ tgi_clear (void);
|
||||||
/* Clear the screen */
|
/* Clear the screen */
|
||||||
@ -140,7 +142,7 @@ void __fastcall__ tgi_lineto (int x2, int y2);
|
|||||||
* new end point.
|
* new end point.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void __fastcall__ tgi_circle (int x, int y, unsigned radius);
|
void __fastcall__ tgi_circle (int x, int y, unsigned char radius);
|
||||||
/* Draw a circle in the current drawing color */
|
/* Draw a circle in the current drawing color */
|
||||||
|
|
||||||
void __fastcall__ tgi_outtext (int x, int y, const char* text);
|
void __fastcall__ tgi_outtext (int x, int y, const char* text);
|
||||||
|
@ -62,7 +62,7 @@ typedef struct {
|
|||||||
void* install; /* INSTALL routine */
|
void* install; /* INSTALL routine */
|
||||||
void* deinstall; /* DEINSTALL routine */
|
void* deinstall; /* DEINSTALL routine */
|
||||||
void* init; /* INIT routine */
|
void* init; /* INIT routine */
|
||||||
void* post; /* POST routine */
|
void* done; /* DONE routine */
|
||||||
void* control; /* CONTROL routine */
|
void* control; /* CONTROL routine */
|
||||||
void* clear; /* CLEAR routine */
|
void* clear; /* CLEAR routine */
|
||||||
void* setcolor; /* SETCOLOR routine */
|
void* setcolor; /* SETCOLOR routine */
|
||||||
@ -79,6 +79,7 @@ typedef struct {
|
|||||||
/* TGI kernel variables */
|
/* TGI kernel variables */
|
||||||
extern tgi_drv_header tgi_drv; /* Pointer to driver */
|
extern tgi_drv_header tgi_drv; /* Pointer to driver */
|
||||||
extern unsigned char tgi_error; /* Last error code */
|
extern unsigned char tgi_error; /* Last error code */
|
||||||
|
extern unsigned char tgi_mode; /* Graphics mode or zero */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -98,3 +99,4 @@ const char* __fastcall__ tgi_map_mode (unsigned char mode);
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,17 +14,21 @@
|
|||||||
C_OBJS =
|
C_OBJS =
|
||||||
|
|
||||||
S_OBJS = tgi-kernel.o \
|
S_OBJS = tgi-kernel.o \
|
||||||
|
tgi_bar.o \
|
||||||
tgi_circle.o \
|
tgi_circle.o \
|
||||||
tgi_clear.o \
|
tgi_clear.o \
|
||||||
tgi_done.o \
|
tgi_done.o \
|
||||||
tgi_geterror.o \
|
tgi_geterror.o \
|
||||||
tgi_getmaxx.o \
|
tgi_getmaxx.o \
|
||||||
tgi_getmaxy.o \
|
tgi_getmaxy.o \
|
||||||
|
tgi_getpixel.o \
|
||||||
tgi_getxres.o \
|
tgi_getxres.o \
|
||||||
tgi_getyres.o \
|
tgi_getyres.o \
|
||||||
tgi_init.o \
|
tgi_init.o \
|
||||||
tgi_line.o \
|
tgi_line.o \
|
||||||
tgi_map_mode.o \
|
tgi_map_mode.o \
|
||||||
|
tgi_setcolor.o \
|
||||||
|
tgi_setpixel.o \
|
||||||
tgi_unload.o
|
tgi_unload.o
|
||||||
|
|
||||||
|
|
||||||
|
29
libsrc/tgi/tgi_bar.s
Normal file
29
libsrc/tgi/tgi_bar.s
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
;
|
||||||
|
; Ullrich von Bassewitz, 21.06.2002
|
||||||
|
;
|
||||||
|
; void __fastcall__ tgi_bar (int x1, int y1, int x2, int y2);
|
||||||
|
; /* Draw a bar (a filled rectangle) using the current color */
|
||||||
|
|
||||||
|
|
||||||
|
.include "tgi-kernel.inc"
|
||||||
|
|
||||||
|
.import popax
|
||||||
|
.importzp ptr1, ptr2, ptr3, ptr4
|
||||||
|
.export _tgi_bar
|
||||||
|
|
||||||
|
_tgi_bar:
|
||||||
|
sta ptr4 ; Get the coordinates
|
||||||
|
stx ptr4+1
|
||||||
|
jsr popax
|
||||||
|
sta ptr3
|
||||||
|
stx ptr3+1
|
||||||
|
jsr popax
|
||||||
|
sta ptr2
|
||||||
|
stx ptr2+1
|
||||||
|
jsr popax
|
||||||
|
sta ptr1
|
||||||
|
stx ptr1+1
|
||||||
|
|
||||||
|
jmp tgi_line ; Call the driver
|
||||||
|
|
||||||
|
|
24
libsrc/tgi/tgi_getpixel.s
Normal file
24
libsrc/tgi/tgi_getpixel.s
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
;
|
||||||
|
; Ullrich von Bassewitz, 21.06.2002
|
||||||
|
;
|
||||||
|
; unsigned char __fastcall__ tgi_getpixel (int x, int y);
|
||||||
|
; /* Get the color value of a pixel */
|
||||||
|
|
||||||
|
|
||||||
|
.include "tgi-kernel.inc"
|
||||||
|
|
||||||
|
.import popax
|
||||||
|
.importzp ptr1, ptr2
|
||||||
|
.export _tgi_getpixel
|
||||||
|
|
||||||
|
_tgi_getpixel:
|
||||||
|
sta ptr2 ; Get the coordinates
|
||||||
|
stx ptr2+1
|
||||||
|
jsr popax
|
||||||
|
sta ptr1
|
||||||
|
stx ptr1+1
|
||||||
|
|
||||||
|
jmp tgi_getpixel ; Call the driver
|
||||||
|
|
||||||
|
|
||||||
|
|
14
libsrc/tgi/tgi_setcolor.s
Normal file
14
libsrc/tgi/tgi_setcolor.s
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
;
|
||||||
|
; Ullrich von Bassewitz, 21.06.2002
|
||||||
|
;
|
||||||
|
; void __fastcall__ tgi_setcolor (unsigned char color);
|
||||||
|
; /* Set the current drawing color */
|
||||||
|
|
||||||
|
|
||||||
|
.include "tgi-kernel.inc"
|
||||||
|
|
||||||
|
.export _tgi_setcolor
|
||||||
|
|
||||||
|
_tgi_setcolor = tgi_setcolor ; Call the driver
|
||||||
|
|
||||||
|
|
22
libsrc/tgi/tgi_setpixel.s
Normal file
22
libsrc/tgi/tgi_setpixel.s
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
;
|
||||||
|
; Ullrich von Bassewitz, 21.06.2002
|
||||||
|
;
|
||||||
|
; void __fastcall__ tgi_setpixel (int x, int y);
|
||||||
|
; /* Plot a point in the current drawing color */
|
||||||
|
|
||||||
|
|
||||||
|
.include "tgi-kernel.inc"
|
||||||
|
|
||||||
|
.import popax
|
||||||
|
.importzp ptr1, ptr2
|
||||||
|
.export _tgi_setpixel
|
||||||
|
|
||||||
|
_tgi_setpixel:
|
||||||
|
sta ptr2 ; Get the coordinates
|
||||||
|
stx ptr2+1
|
||||||
|
jsr popax
|
||||||
|
sta ptr1
|
||||||
|
stx ptr1+1
|
||||||
|
|
||||||
|
jmp tgi_setpixel ; Call the driver
|
||||||
|
|
Loading…
Reference in New Issue
Block a user