From 569b8d0e77d46d65168b97cf74ce0670c15971ce Mon Sep 17 00:00:00 2001 From: uz Date: Fri, 11 Sep 2009 18:47:33 +0000 Subject: [PATCH] Separated tgi_load and tgi_load_driver. git-svn-id: svn://svn.cc65.org/cc65/trunk@4152 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- libsrc/tgi/Makefile | 3 +- libsrc/tgi/tgi_load.c | 57 ++++------------------- libsrc/tgi/tgi_load_driver.c | 88 ++++++++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+), 48 deletions(-) create mode 100644 libsrc/tgi/tgi_load_driver.c diff --git a/libsrc/tgi/Makefile b/libsrc/tgi/Makefile index bc3da9092..ad9737cc4 100644 --- a/libsrc/tgi/Makefile +++ b/libsrc/tgi/Makefile @@ -29,7 +29,8 @@ CFLAGS = -Osir -g -T -t $(SYS) --forget-inc-paths -I . -I ../../include #-------------------------------------------------------------------------- # Object files -C_OBJS = tgi_load.o +C_OBJS = tgi_load.o \ + tgi_load_driver.o S_OBJS = tgi-kernel.o \ tgi_bar.o \ diff --git a/libsrc/tgi/tgi_load.c b/libsrc/tgi/tgi_load.c index 657f42194..99959ca95 100644 --- a/libsrc/tgi/tgi_load.c +++ b/libsrc/tgi/tgi_load.c @@ -6,10 +6,10 @@ /* */ /* */ /* */ -/* (C) 2002-2003 Ullrich von Bassewitz */ -/* Römerstrasse 52 */ -/* D-70794 Filderstadt */ -/* EMail: uz@cc65.org */ +/* (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 */ @@ -33,15 +33,17 @@ -#include -#include -#include -#include #include #include +/*****************************************************************************/ +/* 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. @@ -59,42 +61,3 @@ void __fastcall__ tgi_load (unsigned char mode) -void __fastcall__ tgi_load_driver (const char* name) -/* Install the given driver. This function is identical to tgi_load with the - * only difference that the name of the driver is specified explicitly. You - * should NOT use this function in most cases, use tgi_load() instead. - */ -{ - static struct mod_ctrl ctrl = { - read /* Read from disk */ - }; - unsigned Res; - - /* Check if we do already have a driver loaded. If so, remove it. */ - if (tgi_drv != 0) { - tgi_unload (); - } - - /* Now open the file */ - ctrl.callerdata = open (name, O_RDONLY); - if (ctrl.callerdata >= 0) { - - /* Load the module */ - Res = mod_load (&ctrl); - - /* Close the input file */ - close (ctrl.callerdata); - - /* Check the return code */ - if (Res == MLOAD_OK) { - - /* Check the driver signature, install the driver */ - tgi_install (ctrl.module); - return; - - } - } - - /* Error loading the driver */ - tgi_error = TGI_ERR_CANNOT_LOAD; -} diff --git a/libsrc/tgi/tgi_load_driver.c b/libsrc/tgi/tgi_load_driver.c new file mode 100644 index 000000000..e4319e00f --- /dev/null +++ b/libsrc/tgi/tgi_load_driver.c @@ -0,0 +1,88 @@ +/*****************************************************************************/ +/* */ +/* tgi_load_driver.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 +#include +#include +#include +#include + + + +/*****************************************************************************/ +/* Code */ +/*****************************************************************************/ + + + +void __fastcall__ tgi_load_driver (const char* name) +/* Install the given driver. This function is identical to tgi_load with the + * only difference that the name of the driver is specified explicitly. You + * should NOT use this function in most cases, use tgi_load() instead. + */ +{ + static struct mod_ctrl ctrl = { + read /* Read from disk */ + }; + unsigned Res; + + /* Check if we do already have a driver loaded. If so, remove it. */ + if (tgi_drv != 0) { + tgi_unload (); + } + + /* Now open the file */ + ctrl.callerdata = open (name, O_RDONLY); + if (ctrl.callerdata >= 0) { + + /* Load the module */ + Res = mod_load (&ctrl); + + /* Close the input file */ + close (ctrl.callerdata); + + /* Check the return code */ + if (Res == MLOAD_OK) { + + /* Check the driver signature, install the driver */ + tgi_install (ctrl.module); + return; + + } + } + + /* Error loading the driver */ + tgi_error = TGI_ERR_CANNOT_LOAD; +}