1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-07 07:29:33 +00:00

Removed tgi_load() and all corresponding infrastructure. The idea behind tgi_load() was to be able to describe a TGI mode in a target-neutral way by resolution and colordepth. However it turned out that there arn't any cc65 targets sharing any resolution. As a result the only working target-independent approach for a TGI program is to call tgi_loaddriver(tgi_stddrv); and then look up the resolution provided - and to adapt to that resolution.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5016 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
ol.sc 2011-05-02 10:38:48 +00:00
parent 97b950b8d8
commit 4aa00e84e1
48 changed files with 78 additions and 422 deletions

View File

@ -204,7 +204,6 @@ TGI_CLIP_TOP = $08
.global _tgi_ioctl
.global _tgi_line
.global _tgi_lineto
.global _tgi_load
.global _tgi_load_driver
.global _tgi_outtext
.global _tgi_outtextxy

View File

@ -1,65 +0,0 @@
;*****************************************************************************/
;* */
;* tgi-mode.inc */
;* */
;* TGI mode definitions */
;* */
;* */
;* */
;* (C) 2002-2003 Ullrich von Bassewitz */
;* Römerstraße 52 */
;* D-70794 Filderstadt */
;* EMail: uz@cc65.org */
;* */
;* */
;* This software is provided 'as-is', without any expressed or implied */
;* warranty. In no event will the authors be held liable for any damages */
;* arising from the use of this software. */
;* */
;* Permission is granted to anyone to use this software for any purpose, */
;* including commercial applications, and to alter it and redistribute it */
;* freely, subject to the following restrictions: */
;* */
;* 1. The origin of this software must not be misrepresented; you must not */
;* claim that you wrote the original software. If you use this software */
;* in a product, an acknowledgment in the product documentation would be */
;* appreciated but is not required. */
;* 2. Altered source versions must be plainly marked as such, and must not */
;* be misrepresented as being the original software. */
;* 3. This notice may not be removed or altered from any source */
;* distribution. */
;* */
;*****************************************************************************/
; Graphics modes. Zero may not be used as a mode number.
.enum
TGI_MODE_INVALID
TGI_MODE_320_200_2 ; 320x200, 2 colors (b/w)
TGI_MODE_160_200_4 ; 160x200, 4 colors
TGI_MODE_640_200_2 ; 640x200, 2 colors (b/w)
TGI_MODE_640_480_2 ; 640x480, 2 colors (b/w)
TGI_MODE_280_192_8 ; 280x192, 8 colors
TGI_MODE_40_48_16 ; 40x48, 16 colors
TGI_MODE_320_192_2
TGI_MODE_160_192_4
TGI_MODE_160_192_2
TGI_MODE_160_96_4
TGI_MODE_160_96_2
TGI_MODE_80_48_4
TGI_MODE_80_48_2
TGI_MODE_40_24_4
TGI_MODE_80_192_16b ; 80x192, 16 shades of the same color
TGI_MODE_80_192_9
TGI_MODE_80_192_16h ; 80x192, 16 colors with the same brightness
TGI_MODE_320_192_2_2p
TGI_MODE_80_192_16b_2p
TGI_MODE_160_192_4_2p
TGI_MODE_80_192_9_2p
TGI_MODE_160_102_16 ; 160x102, 16 colors
TGI_MODE_240_200_2 ; 240x200, 2 colors (b/w)
.endenum

View File

@ -531,7 +531,6 @@ communication.
<item><ref id="tgi_ioctl" name="tgi_ioctl">
<item><ref id="tgi_line" name="tgi_line">
<item><ref id="tgi_lineto" name="tgi_lineto">
<item><ref id="tgi_load" name="tgi_load">
<item><ref id="tgi_load_driver" name="tgi_load_driver">
<item><ref id="tgi_outtext" name="tgi_outtext">
<item><ref id="tgi_outtextxy" name="tgi_outtextxy">
@ -5750,34 +5749,11 @@ be used in presence of a prototype.
</quote>
<sect1>tgi_load<label id="tgi_load"><p>
<quote>
<descrip>
<tag/Function/Load and install the matching driver for the given mode.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_load (unsigned char mode);/
<tag/Description/Load and install the matching driver for the given mode.
Will just load the driver and check if loading was successul.
Will not switch to graphics mode.
<tag/Limits/<itemize>
<item>The function is only available as fastcall function, so it may only
be used in presence of a prototype.
</itemize>
<tag/Availability/cc65
<tag/See also/Other tgi functions.
<tag/Example/None.
</descrip>
</quote>
<sect1>tgi_load_driver<label id="tgi_load_driver"><p>
<quote>
<descrip>
<tag/Function/Load and install the given driver. This function is identical
to tgi_load with the only difference that the name of the driver is specified
explicitly.
<tag/Function/Load and install the given driver.
<tag/Header/<tt/<ref id="tgi.h" name="tgi.h">/
<tag/Declaration/<tt/void __fastcall__ tgi_load_driver (const char *name);/
<tag/Description/Load and install the driver by name.

View File

@ -38,9 +38,6 @@
#ifndef _TGI_MODE_H
#include <tgi/tgi-mode.h>
#endif
#ifndef _TGI_ERROR_H
#include <tgi/tgi-error.h>
#endif
@ -64,9 +61,6 @@
/* The name of the standard tgi driver for a platform */
extern const char tgi_stddrv[];
/* The default tgi mode for a platform */
extern const unsigned char tgi_stdmode;
/* A vector font definition */
typedef struct tgi_vectorfont tgi_vectorfont;
@ -78,17 +72,8 @@ typedef struct tgi_vectorfont tgi_vectorfont;
void __fastcall__ tgi_load (unsigned char mode);
/* Load and install the matching driver for the given mode. Will just load
* the driver and check if loading was successul. Will not switch to gaphics
* mode.
*/
void __fastcall__ tgi_load_driver (const char* name);
/* Load and install the given driver. This function is identical to tgi_load
* with the only difference that the name of the driver is specified
* explicitly.
*/
/* Load and install the given driver. */
void __fastcall__ tgi_unload (void);
/* Uninstall, then unload the currently loaded driver. Will call tgi_done if

View File

@ -1,61 +0,0 @@
/*****************************************************************************/
/* */
/* tgi-mode.h */
/* */
/* TGI mode definitions */
/* */
/* */
/* */
/* (C) 2002-2003 Ullrich von Bassewitz */
/* Römerstraße 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#ifndef _TGI_MODE_H
#define _TGI_MODE_H
/*****************************************************************************/
/* Constants */
/*****************************************************************************/
/* Graphics modes. Zero may not be used as a mode number. */
#define TGI_MODE_320_200_2 1U /* 320x200, 2 colors (b/w) */
#define TGI_MODE_160_200_4 2U /* 160x200, 4 colors */
#define TGI_MODE_640_200_2 3U /* 640x200, 2 colors (b/w) */
#define TGI_MODE_640_480_2 4U /* 640x480, 2 colors (b/w) */
#define TGI_MODE_280_192_8 5U /* 280x192, 8 colors */
#define TGI_MODE_40_48_16 6U /* 40x48, 16 colors */
/* End of tgi-mode.h */
#endif

View File

@ -104,7 +104,7 @@ S_OBJS= _scrsize.o \
systime.o \
sysuname.o \
tgi_colors.o \
tgi_mode_table.o\
tgi_stddrv.o \
toascii.o \
vtabz.o \
wherex.o \

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.include "apple2.inc"

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.include "apple2.inc"

View File

@ -1,28 +0,0 @@
;
; Ullrich von Bassewitz, 31.05.2002
;
; Apple II mode table for tgi_map_mode
;
.export _tgi_mode_table
.include "tgi-mode.inc"
;----------------------------------------------------------------------------
; Mode table. Contains entries of mode and driver name, the driver name being
; null terminated. A mode with code zero terminates the list. The first entry
; defines also the default mode and driver for the system.
; BEWARE: The current implementation of tgi_map_mode does not work with tables
; larger that 255 bytes!
.rodata
_tgi_mode_table:
.ifdef __APPLE2ENH__
.byte TGI_MODE_280_192_8, "A2E.HI.TGI", 0
.byte TGI_MODE_40_48_16, "A2E.LO.TGI", 0
.else
.byte TGI_MODE_280_192_8, "A2.HI.TGI", 0
.byte TGI_MODE_40_48_16, "A2.LO.TGI", 0
.endif
.byte 0 ; End marker

View File

@ -0,0 +1,18 @@
;
; Name of the standard tgi driver
;
; Oliver Schmidt, 2011-05-02
;
; const char tgi_stddrv[];
;
.export _tgi_stddrv
.rodata
_tgi_stddrv:
.ifdef __APPLE2ENH__
.asciiz "A2E.HI.TGI"
.else
.asciiz "A2.HI.TGI"
.endif

View File

@ -108,7 +108,7 @@ S_OBJS= _scrsize.o \
sysuname.o \
textframe.o \
tgi_colors.o \
tgi_mode_table.o\
tgi_stddrv.o \
toascii.o \
videomode.o \
vtabz.o \

View File

@ -114,7 +114,7 @@ OBJS = _scrsize.o \
systime.o \
sysuname.o \
tgi_colors.o \
tgi_mode_table.o\
tgi_stddrv.o \
toascii.o \
tvtype.o \
ucase_fn.o \

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -8,7 +8,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.macpack generic

View File

@ -1,38 +0,0 @@
;
; Atari mode table for tgi_map_mode
;
.export _tgi_mode_table
.include "tgi-mode.inc"
;----------------------------------------------------------------------------
; Mode table. Contains entries of mode and driver name, the driver name being
; null terminated. A mode with code zero terminates the list. The first entry
; defines also the default mode and driver for the system.
; BEWARE: The current implementation of tgi_map_mode does not work with tables
; larger that 255 bytes!
.rodata
_tgi_mode_table:
.byte TGI_MODE_320_192_2, "ATARI8.TGI", 0
.byte TGI_MODE_160_192_4, "ATARI15.TGI", 0
.byte TGI_MODE_160_192_2, "ATARI14.TGI", 0
.byte TGI_MODE_160_96_4, "ATARI7.TGI", 0
.byte TGI_MODE_160_96_2, "ATARI6.TGI", 0
.byte TGI_MODE_80_48_4, "ATARI5.TGI", 0
.byte TGI_MODE_80_48_2, "ATARI4.TGI", 0
.byte TGI_MODE_40_24_4, "ATARI3.TGI", 0
.byte TGI_MODE_80_192_16b, "ATARI9.TGI", 0
.byte TGI_MODE_80_192_9, "ATARI10.TGI", 0
.byte TGI_MODE_80_192_16h, "ATARI11.TGI", 0
; Double paged drivers
.byte TGI_MODE_320_192_2_2p, "ATR8P2.TGI", 0
.byte TGI_MODE_80_192_16b_2p, "ATR9P2.TGI", 0
.byte TGI_MODE_160_192_4_2p, "ATR15P2.TGI", 0
.byte TGI_MODE_80_192_9_2p, "ATR10P2.TGI", 0
.byte 0 ; End marker

13
libsrc/atari/tgi_stddrv.s Normal file
View File

@ -0,0 +1,13 @@
;
; Name of the standard tgi driver
;
; Oliver Schmidt, 2011-05-02
;
; const char tgi_stddrv[];
;
.export _tgi_stddrv
.rodata
_tgi_stddrv: .asciiz "atari8.tgi"

View File

@ -7,7 +7,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.include "atmos.inc"

View File

@ -68,7 +68,7 @@ OBJS = _scrsize.o \
systime.o \
sysuname.o \
tgi_colors.o \
tgi_mode_table.o \
tgi_stddrv.o \
toggle_videomode.o \
videomode.o

View File

@ -23,7 +23,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"

View File

@ -24,7 +24,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"

View File

@ -1,23 +0,0 @@
;
; Ullrich von Bassewitz, 03.10.2002
;
; C128 mode table for tgi_map_mode
;
.export _tgi_mode_table
.include "tgi-mode.inc"
;----------------------------------------------------------------------------
; Mode table. Contains entries of mode and driver name, the driver name being
; null terminated. A mode with code zero terminates the list. The first entry
; defines also the default mode and driver for the system.
; BEWARE: The current implementation of tgi_map_mode does not work with tables
; larger that 255 bytes!
.rodata
_tgi_mode_table:
.byte TGI_MODE_640_200_2, "c128-vdc.tgi", 0
.byte TGI_MODE_640_480_2, "c128-vdc2.tgi", 0
.byte 0 ; End marker

13
libsrc/c128/tgi_stddrv.s Normal file
View File

@ -0,0 +1,13 @@
;
; Name of the standard tgi driver
;
; Oliver Schmidt, 2011-05-02
;
; const char tgi_stddrv[];
;
.export _tgi_stddrv
.rodata
_tgi_stddrv: .asciiz "c128-vdc.tgi"

View File

@ -67,7 +67,7 @@ OBJS = _scrsize.o \
systime.o \
sysuname.o \
tgi_colors.o \
tgi_mode_table.o
tgi_stddrv.o
#--------------------------------------------------------------------------
# Drivers

View File

@ -7,7 +7,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"

View File

@ -1,24 +0,0 @@
;
; Ullrich von Bassewitz, 31.05.2002
;
; C64 mode table for tgi_map_mode
;
.export _tgi_mode_table
.include "tgi-mode.inc"
;----------------------------------------------------------------------------
; Mode table. Contains entries of mode and driver name, the driver name being
; null terminated. A mode with code zero terminates the list. The first entry
; defines also the default mode and driver for the system.
; BEWARE: The current implementation of tgi_map_mode does not work with tables
; larger that 255 bytes!
.rodata
_tgi_mode_table:
.byte TGI_MODE_320_200_2, "c64-hi.tgi", 0
.byte 0 ; End marker

13
libsrc/c64/tgi_stddrv.s Normal file
View File

@ -0,0 +1,13 @@
;
; Name of the standard tgi driver
;
; Oliver Schmidt, 2011-05-02
;
; const char tgi_stddrv[];
;
.export _tgi_stddrv
.rodata
_tgi_stddrv: .asciiz "c64-hi.tgi"

View File

@ -33,7 +33,7 @@ S_OBJS = crt0.o \
oserrlist.o \
randomize.o \
tgi_colors.o \
tgi_mode_table.o
tgi_stddrv.o
#--------------------------------------------------------------------------
# Drivers

View File

@ -6,7 +6,6 @@
.include "zeropage.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.include "../inc/const.inc"

View File

@ -1,24 +0,0 @@
;
; Maciej 'YTM/Elysium' Witkowiak <ytm@elysium.pl>
; 28.12.2002
;
; GEOS mode table for tgi_map_mode
;
.export _tgi_mode_table
.include "tgi-mode.inc"
;----------------------------------------------------------------------------
; Mode table. Contains entries of mode and driver name, the driver name being
; null terminated. A mode with code zero terminates the list. The first entry
; defines also the default mode and driver for the system.
; BEWARE: The current implementation of tgi_map_mode does not work with tables
; larger that 255 bytes!
.rodata
_tgi_mode_table:
.byte TGI_MODE_320_200_2, "GEOS-TGI.TGI", 0
.byte TGI_MODE_640_200_2, "GEOS-TGI.TGI", 0
.byte 0 ; End marker

View File

@ -0,0 +1,13 @@
;
; Name of the standard tgi driver
;
; Oliver Schmidt, 2011-05-02
;
; const char tgi_stddrv[];
;
.export _tgi_stddrv
.rodata
_tgi_stddrv: .asciiz "geos-tgi.tgi"

View File

@ -11,7 +11,6 @@
.include "extzp.inc"
.include "tgi-kernel.inc"
.include "tgi-mode.inc"
.include "tgi-error.inc"
.include "lynx.inc"

View File

@ -30,7 +30,6 @@ CFLAGS = -Osir -g -T -t $(SYS) --forget-inc-paths -I . -I ../../include
# Object files
C_OBJS = tgi_arc.o \
tgi_load.o \
tgi_load_driver.o \
tgi_load_vectorfont.o \
tgi_pieslice.o
@ -79,8 +78,6 @@ S_OBJS = tgi-kernel.o \
tgi_setpalette.o \
tgi_setpixel.o \
tgi_setviewpage.o \
tgi_stddrv.o \
tgi_stdmode.o \
tgi_textheight.o \
tgi_textwidth.o \
tgi_textstyle.o \

View File

@ -1,63 +0,0 @@
/*****************************************************************************/
/* */
/* tgi_load.c */
/* */
/* Loader module for TGI drivers */
/* */
/* */
/* */
/* (C) 2002-2009, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#include <tgi.h>
#include <tgi/tgi-kernel.h>
/*****************************************************************************/
/* Code */
/*****************************************************************************/
void __fastcall__ tgi_load (unsigned char mode)
/* Install the matching driver for the given mode. Will just load the driver
* and check if loading was successul. Will not switch to gaphics mode.
*/
{
const char* name = tgi_map_mode (mode);
if (name == 0) {
/* No driver for this mode */
tgi_error = TGI_ERR_NO_DRIVER;
} else {
/* Load the driver */
tgi_load_driver (name);
}
}

View File

@ -1,11 +0,0 @@
;
; Name of the standard tgi driver
;
; Ullrich von Bassewitz, 2009-09-11
;
; const char tgi_stddrv[];
;
.import _tgi_mode_table
.export _tgi_stddrv = _tgi_mode_table + 1

View File

@ -1,11 +0,0 @@
;
; Standard tgi mode
;
; Ullrich von Bassewitz, 2009-09-11
;
; const unsigned char tgi_stdmode[];
;
.import _tgi_mode_table
.export _tgi_stdmode = _tgi_mode_table