]> git.sur5r.net Git - cc65/blobdiff - include/geos/ggraph.h
fixed optimization bug where array index is 16-bit, e.g. arr16[i & 0x7f7f]
[cc65] / include / geos / ggraph.h
index a2c6b00625e9248830fa5fb91b2dec59b27955bb..ec9fb0fa170ddd5f4690cf99f9d2e66c362fae88 100644 (file)
 /*
   GEOS graphic (non icon/menu/sprite) functions
 
-  ported to small C on 29.10.1999
-  by Maciej 'YTM/Alliance' Witkowiak
-  10,11.03.2000 - updates
+  by Maciej 'YTM/Elysium' Witkowiak
 */
 
-#ifndef        _GGRAPH_H
+#ifndef _GGRAPH_H
 #define _GGRAPH_H
 
-#ifndef _GSTRUCT_H
 #include <geos/gstruct.h>
-#endif
-
-void __fastcall__ cpputs(char *s);
-void __fastcall__ cpputsxy(int x, int y, char *s);
 
 void __fastcall__ SetPattern(char newpattern);
 
-void __fastcall__ HorizontalLine(char pattern, char y, int xstart, int xend);
-void __fastcall__ InvertLine(char y, int xstart, int xend);
-void __fastcall__ RecoverLine(char y, int xstart, int xend);
-void __fastcall__ VerticalLine(char pattern, char ystart, char yend, int x);
+void __fastcall__ HorizontalLine(char pattern, char y, unsigned xstart, unsigned xend);
+void __fastcall__ InvertLine(char y, unsigned xstart, unsigned xend);
+void __fastcall__ RecoverLine(char y, unsigned xstart, unsigned xend);
+void __fastcall__ VerticalLine(char pattern, char ystart, char yend, unsigned x);
 
 void __fastcall__ InitDrawWindow(struct window *myRectangle);
-void __fastcall__ Rectangle(void);
+void Rectangle(void);
 void __fastcall__ FrameRectangle(char pattern);
-void __fastcall__ InvertRectangle(void);
-void __fastcall__ ImprintRectangle(void);
-void __fastcall__ RecoverRectangle(void);
+void InvertRectangle(void);
+void ImprintRectangle(void);
+void RecoverRectangle(void);
 
-void __fastcall__ DrawLine(struct window *topBotCoords);
+void __fastcall__ DrawLine(char mode, struct window *topBotCoords);
 
-void __fastcall__ DrawPoint(struct pixel *myPixel);
+void __fastcall__ DrawPoint(char mode, struct pixel *myPixel);
 char __fastcall__ TestPoint(struct pixel *myPixel);
 
-void __fastcall__ PutChar(char character, char y, int x);
-void __fastcall__ PutString(char *myString, char y, int x);
-void __fastcall__ PutDecimal(char style, int value, char y, int x);
+void __fastcall__ PutChar(char character, char y, unsigned x);
+void __fastcall__ PutString(char *myString, char y, unsigned x);
+void __fastcall__ PutDecimal(char style, unsigned value, char y, unsigned x);
 
 char __fastcall__ GetCharWidth(char character);
 void __fastcall__ LoadCharSet(struct fontdesc *myFont);
-void __fastcall__ UseSystemFont(void);
+void UseSystemFont(void);
 
 void __fastcall__ BitmapUp(struct iconpic *myIcon);
-void __fastcall__ BitmapClip(char skipl, char skipr, int skiptop,
-                            struct iconpic *myIcon);
+void __fastcall__ BitmapClip(char skipl, char skipr, unsigned skiptop,
+                             struct iconpic *myIcon);
 void __fastcall__ BitOtherClip(void *proc1, void *proc2, char skipl,
-                              char skipr, int skiptop,
-                              struct iconpic *myIcon);
+                               char skipr, unsigned skiptop,
+                               struct iconpic *myIcon);
 
 void __fastcall__ GraphicsString(char *myGfxString);
 
+#ifdef __GEOS_CBM__
+void SetNewMode(void);
+#endif
+
 /* VIC colour constants */
-#define        BLACK           0
-#define        WHITE           1
-#define        RED             2
-#define        CYAN            3
-#define        PURPLE          4
-#define        GREEN           5
-#define        BLUE            6
-#define        YELLOW          7
-#define        ORANGE          8
-#define        BROWN           9
-#define        LTRED           10
-#define        DKGREY          11
-#define        GREY            12
-#define        MEDGREY         12
-#define        LTGREEN         13
-#define        LTBLUE          14
-#define        LTGREY          15
-/* VIC memory banks */
-#define        GRBANK0         3
-#define        GRBANK1         2
-#define        GRBANK2         1
-#define        GRBANK3         0
+#define BLACK           0
+#define WHITE           1
+#define RED             2
+#define CYAN            3
+#define PURPLE          4
+#define GREEN           5
+#define BLUE            6
+#define YELLOW          7
+#define ORANGE          8
+#define BROWN           9
+#define LTRED           10
+#define DKGREY          11
+#define GREY            12
+#define MEDGREY         12
+#define LTGREEN         13
+#define LTBLUE          14
+#define LTGREY          15
+/* VIC memory banks - lowest 2 bits of cia2base+0 */
+#define GRBANK0         3
+#define GRBANK1         2
+#define GRBANK2         1
+#define GRBANK3         0
 /* VIC screen sizes */
-#define        VIC_X_POS_OFF   24
-#define        VIC_Y_POS_OFF   50
-#define        SC_BYTE_WIDTH   40
-#define        SC_PIX_HEIGHT   200
-#define        SC_PIX_WIDTH    320
-#define        SC_SIZE         8000
-/* VDC screen constants        */
-#define        SCREENBYTEWIDTH         80
-#define        SCREENPIXELWIDTH        640
-/* control characters for use as numbers, not chars */
-#define        BACKSPACE       8
-#define        FORWARDSPACE    9
-#define        TAB             9
-#define        LF              10
-#define        HOME            11
-#define        PAGE_BREAK      12
-#define        UPLINE          12
-#define        CR              13
-#define        ULINEON         14
-#define        ULINEOFF        15
-#define        ESC_GRAPHICS    16
-#define        ESC_RULER       17
-#define        REV_ON          18
-#define        REV_OFF         19
-#define        GOTOX           20
-#define        GOTOY           21
-#define        GOTOXY          22
-#define        NEWCARDSET      23
-#define        BOLDON          24
-#define        ITALICON        25
-#define        OUTLINEON       26
-#define        PLAINTEXT       27
+#define VIC_X_POS_OFF   24
+#define VIC_Y_POS_OFF   50
+#ifdef __GEOS_CBM__
+#define SC_BYTE_WIDTH   40
+#define SC_PIX_HEIGHT   200
+#define SC_PIX_WIDTH    320
+#define SC_SIZE         8000
+#else
+#define SC_BYTE_WIDTH   70
+#define SC_PIX_HEIGHT   192
+#define SC_PIX_WIDTH    560
+#define SC_SIZE         13440
+#endif
+/* VDC screen constants */
+#define SCREENBYTEWIDTH         80
+#define SCREENPIXELWIDTH        640
+/* control characters for use as numbers, not characters */
+#define BACKSPACE       8
+#define FORWARDSPACE    9
+#define TAB             9
+#define LF              10
+#define HOME            11
+#define PAGE_BREAK      12
+#define UPLINE          12
+#define CR              13
+#define ULINEON         14
+#define ULINEOFF        15
+#define ESC_GRAPHICS    16
+#define ESC_RULER       17
+#define REV_ON          18
+#define REV_OFF         19
+#define GOTOX           20
+#define GOTOY           21
+#define GOTOXY          22
+#define NEWCARDSET      23
+#define BOLDON          24
+#define ITALICON        25
+#define OUTLINEON       26
+#define PLAINTEXT       27
 /* control characters for use in
-   strings: eg: str[10]=BOLD "Hello";  */
-#define CCR            "\015"
-#define CULINEON       "\016"
-#define CULINEOFF      "\017"
-#define CREV_ON                "\022"
-#define CREV_OFF       "\023"
-#define CBOLDON                "\030"
-#define CITALICON      "\031"
-#define COUTLINEON     "\032"
-#define CPLAINTEXT     "\033"
-
-/*values of currentMode        */
+   strings: eg: str[10]=CBOLDON "Hello"; */
+#define CCR             "\015"
+#define CULINEON        "\016"
+#define CULINEOFF       "\017"
+#define CREV_ON         "\022"
+#define CREV_OFF        "\023"
+#define CBOLDON         "\030"
+#define CITALICON       "\031"
+#define COUTLINEON      "\032"
+#define CPLAINTEXT      "\033"
+
+/*values of currentMode */
 /* bitNumbers */
-#define        UNDERLINE_BIT   7
-#define        BOLD_BIT        6
-#define        REVERSE_BIT     5
-#define        ITALIC_BIT      4
-#define        OUTLINE_BIT     3
-#define        SUPERSCRIPT_BIT 2
-#define        SUBSCRIPT_BIT   1
+#define UNDERLINE_BIT   7
+#define BOLD_BIT        6
+#define REVERSE_BIT     5
+#define ITALIC_BIT      4
+#define OUTLINE_BIT     3
+#define SUPERSCRIPT_BIT 2
+#define SUBSCRIPT_BIT   1
 /* bitMasks */
-#define        SET_UNDERLINE   0x80
-#define        SET_BOLD        0x40
-#define        SET_REVERSE     0x20
-#define        SET_ITALIC      0x10
-#define        SET_OUTLINE     0x08
-#define        SET_SUPERSCRIPT 0x04
-#define        SET_SUBSCRIPT   0x02
-#define        SET_PLAINTEXT   0
+#define SET_UNDERLINE   0x80
+#define SET_BOLD        0x40
+#define SET_REVERSE     0x20
+#define SET_ITALIC      0x10
+#define SET_OUTLINE     0x08
+#define SET_SUPERSCRIPT 0x04
+#define SET_SUBSCRIPT   0x02
+#define SET_PLAINTEXT   0
 /* values of dispBufferOn */
-#define        ST_WRGS_FORE    0x20
-#define        ST_WR_BACK      0x40
-#define        ST_WR_FORE      0x80
+#define ST_WRGS_FORE    0x20
+#define ST_WR_BACK      0x40
+#define ST_WR_FORE      0x80
 /* PutDecimal parameters */
-/* leading 0s? */
-#define        SET_NOSURPRESS  0
-#define        SET_SURPRESS    0x40
+/* leading zeros? */
+#define SET_NOSURPRESS  0
+#define SET_SURPRESS    0x40
 /* justification */
-#define        SET_RIGHTJUST   0
-#define        SET_LEFTJUST    0x80
-/* C128 x flags */
-#define        ADD1_W          0x2000
-#define        DOUBLE_B        0x80
-#define        DOUBLE_W        0x8000
+#define SET_RIGHTJUST   0
+#define SET_LEFTJUST    0x80
+/* C128 x-extension flags */
+#define ADD1_W          0x2000
+#define DOUBLE_B        0x80
+#define DOUBLE_W        0x8000
+/* DrawLine/DrawPoint mode values */
+#define DRAW_ERASE      0x00
+#define DRAW_DRAW       0x40
+#define DRAW_COPY       0x80
 
 typedef void graphicStr;