1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-23 19:29:37 +00:00

New versions that match the current TGI API by Karri Kaksonen.

git-svn-id: svn://svn.cc65.org/cc65/trunk@4888 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz 2010-12-20 07:20:49 +00:00
parent 0d5267fc1a
commit a3493d5e72
2 changed files with 1 additions and 71 deletions

View File

@ -78,11 +78,6 @@
void __fastcall__ lynx_change_framerate (unsigned char rate);
/* Change the framerate, in Hz. Recognized values are 50, 60 and 75. */
/*****************************************************************************/ /*****************************************************************************/
/* Accessing the EEPROM */ /* Accessing the EEPROM */
/*****************************************************************************/ /*****************************************************************************/

View File

@ -4,11 +4,6 @@
; All the drawing functions are simply done by sprites as the sprite ; All the drawing functions are simply done by sprites as the sprite
; engine is the only way to do fast graphics on a Lynx. ; engine is the only way to do fast graphics on a Lynx.
; ;
; So the code is not really based on any algorithms done by somebody.
; I have looked at other routines in the cc65 libs to see what kind of
; entry points we need. And I have looked at the old cc65 libs by
; Bastian Schick to see how things worked in the past.
;
; This code is written by Karri Kaksonen, 2004 for the cc65 compiler. ; This code is written by Karri Kaksonen, 2004 for the cc65 compiler.
; ;
@ -39,7 +34,7 @@
.byte 2 ; Number of screens available .byte 2 ; Number of screens available
.byte 8 ; System font X size .byte 8 ; System font X size
.byte 8 ; System font Y size .byte 8 ; System font Y size
.res 4, $00 ; Reserved for future extensions .word $0100 ; Aspect ratio
; Next comes the jump table. Currently all entries must be valid and may point ; Next comes the jump table. Currently all entries must be valid and may point
; to an RTS for test versions (function not implemented). A future version may ; to an RTS for test versions (function not implemented). A future version may
@ -64,7 +59,6 @@
.addr GETPIXEL .addr GETPIXEL
.addr LINE .addr LINE
.addr BAR .addr BAR
.addr CIRCLE
.addr TEXTSTYLE .addr TEXTSTYLE
.addr OUTTEXT .addr OUTTEXT
.addr IRQ .addr IRQ
@ -790,65 +784,6 @@ BAR: lda X1
ldx #>bar_sprite ldx #>bar_sprite
jmp draw_sprite jmp draw_sprite
; ------------------------------------------------------------------------
; CIRCLE: Draw a circle around the center X1/Y1 (= ptr1/ptr2) with the
; radius in tmp1 and the current drawing color.
;
; Must set an error code: NO
;
; There is no sensible way of drawing a circle on a Lynx. As I would
; have to use line elements to do the circle I rather do it in C than
; create it here in the driver.
; To do a circle please add this to your C program
;int sintbl[9] = {
; 0, // 0 degrees
; 3196, // 11.25 degrees
; 6270, // 22.5 degrees
; 9102, // 33.75 degrees
; 11585, // 45 degrees
; 13623, // 56.25 degrees
; 15137, // 67.5 degrees
; 16069, // 78.75 degrees
; 16384 // 90 degrees
;};
;int sin(char d)
;{
; char neg;
; d = d & 31;
; neg = d > 16;
; d = d & 15;
; if (d > 8)
; d = 16 - d;
; if (neg)
; return -sintbl[d];
; else
; return sintbl[d];
;}
;void tgi_Circle(int x0, int y0, unsigned char r)
;{
; char i;
; int x1, y1, x2, y2;
;
; x1 = ((long)sin(0) * r + 8192) / 16384 + x0;
; y1 = ((long)sin(8) * r + 8192) / 16384 + y0;
; for (i = 1; i <= 32; i++) {
; x2 = ((long)sin(i) * r + 8192) / 16384 + x0;
; y2 = ((long)sin(i+8) * r + 8192) / 16384 + y0;
; tgi_line(x1, y1, x2, y2);
; x1 = x2;
; y1 = y2;
; }
;}
;#define tgi_circle tgi_Circle
CIRCLE:
rts
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------
; TEXTSTYLE: Set the style used when calling OUTTEXT. Text scaling in X and Y ; TEXTSTYLE: Set the style used when calling OUTTEXT. Text scaling in X and Y
; direction is passend in X/Y, the text direction is passed in A. ; direction is passend in X/Y, the text direction is passed in A.