1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-23 04:30:10 +00:00

Moved the lightpen names from <mouse.h> to a new <pen.h>.

Renamed the adjuster pointer.
This commit is contained in:
Greg King 2013-07-25 13:32:40 -04:00
parent 078a1df2f6
commit 3b544613d2
8 changed files with 97 additions and 40 deletions

View File

@ -118,13 +118,6 @@ extern const char mouse_stddrv[];
/* The address of the static standard mouse driver for a platform */
extern const void mouse_static_stddrv[];
/* A program optionally can set this pointer to a function that gives
** a calibration value to a driver. If this pointer isn't NULL,
** then a driver that wants a value can call that function.
** mouse_adjuster must be set before the driver is installed.
*/
extern void __fastcall__ (*mouse_adjuster) (unsigned char *pValue);
/*****************************************************************************/
@ -201,23 +194,6 @@ unsigned char __fastcall__ mouse_ioctl (unsigned char code, void* data);
* NON-PORTABLE!
*/
void __fastcall__ pen_calibrate (unsigned char *XOffset);
/* Ask the user to help to calibrate a lightpen. Changes the screen!
* A pointer to this function can be put into mouse_adjuster.
*/
void __fastcall__ pen_adjust (const char *filename);
/* Get a lightpen calibration value from a file if it exists. Otherwise, call
* pen_calibrate() to create a value; then, write it into a file, so that it
* will be available at the next time that the lightpen is used.
* Might change the screen.
* pen_adjust() is optional; if you want to use its feature,
* then it must be called before a driver is installed.
* Note: This function merely saves the file-name pointer, and sets
* the mouse_adjuster pointer. The file will be read only when a driver
* is installed, and only if that driver wants to be calibrated.
*/
/* End of mouse.h */

78
include/pen.h Normal file
View File

@ -0,0 +1,78 @@
/*****************************************************************************/
/* */
/* pen.h */
/* */
/* Lightpen API */
/* */
/* */
/* 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 marked plainly 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 _PEN_H
#define _PEN_H
/*****************************************************************************/
/* Declarations */
/*****************************************************************************/
/* A program optionally can set this pointer to a function that gives
** a calibration value to a driver. If this pointer isn't NULL,
** then a driver that wants a value can call that function.
** pen_adjuster must be set before the driver is installed.
*/
extern void __fastcall__ (*pen_adjuster) (unsigned char *pValue);
/*****************************************************************************/
/* Functions */
/*****************************************************************************/
void __fastcall__ pen_calibrate (unsigned char *XOffset);
/* Ask the user to help to calibrate a lightpen. Changes the screen!
* A pointer to this function can be put into pen_adjuster.
*/
void __fastcall__ pen_adjust (const char *filename);
/* Get a lightpen calibration value from a file if it exists. Otherwise, call
* pen_calibrate() to create a value; then, write it into a file, so that it
* will be available at the next time that the lightpen is used.
* Might change the screen.
* pen_adjust() is optional; if you want to use its feature,
* then it must be called before a driver is installed.
* Note: This function merely saves the file-name pointer, and sets
* the pen_adjuster pointer. The file will be read only when a driver
* is installed, and only if that driver wants to be calibrated.
*/
/* End of pen.h */
#endif

View File

@ -1,10 +1,10 @@
;
; Pointer for library references by device drivers.
;
; 2013-06-23, Greg King
; 2013-07-25, Greg King
;
.export mouse_libref, _mouse_adjuster
.export mouse_libref, _pen_adjuster
.data
@ -17,7 +17,7 @@ mouse_libref: ; generic label for mouse-kernel
; The function might read a value from a file; or, it might ask the user
; to help calibrate the driver.
;
; void __fastcall__ (*mouse_adjuster)(unsigned char *) = NULL;
; void __fastcall__ (*pen_adjuster)(unsigned char *) = NULL;
;
_mouse_adjuster:
_pen_adjuster:
.addr $0000

View File

@ -1,13 +1,14 @@
/*
** Calibrate lightpen drivers to the current video hardware.
**
** 2013-06-17, Greg King
** 2013-07-25, Greg King
**
*/
#include <conio.h>
#include <mouse.h>
#include <pen.h>
#define COMMAND1 "Adjust by clicking on line."

View File

@ -1,10 +1,10 @@
;
; Pointer for library references by device drivers.
;
; 2013-06-23, Greg King
; 2013-07-25, Greg King
;
.export mouse_libref, _mouse_adjuster
.export mouse_libref, _pen_adjuster
.data
@ -17,7 +17,7 @@ mouse_libref: ; generic label for mouse-kernel
; The function might read a value from a file; or, it might ask the user
; to help calibrate the driver.
;
; void __fastcall__ (*mouse_adjuster)(unsigned char *) = NULL;
; void __fastcall__ (*pen_adjuster)(unsigned char *) = NULL;
;
_mouse_adjuster:
_pen_adjuster:
.addr $0000

View File

@ -1,13 +1,14 @@
/*
** Calibrate lightpen drivers to the current video hardware.
**
** 2013-06-17, Greg King
** 2013-07-25, Greg King
**
*/
#include <conio.h>
#include <mouse.h>
#include <pen.h>
#define COMMAND1 "Adjust by clicking on line."

10
libsrc/cbm/penadjust.c Executable file → Normal file
View File

@ -1,14 +1,14 @@
/*
** Main lightpen driver calibration functions.
**
** 2013-06-23, Greg King
** 2013-07-25, Greg King
*/
#include <stddef.h>
#include <fcntl.h>
#include <unistd.h>
#include <mouse.h>
#include <pen.h>
static const char *name;
@ -40,15 +40,15 @@ static void __fastcall__ adjuster (unsigned char *XOffset)
/* pen_adjust() is optional; if you want to use its feature,
** then it must be called before a driver is installed.
** Note: This function merely saves the file-name pointer, and sets
** the mouse_adjuster pointer. The file will be read only when a driver
** the pen_adjuster pointer. The file will be read only when a driver
** is installed, and only if that driver wants to be calibrated.
*/
void __fastcall__ pen_adjust (const char *filename)
{
if (filename != NULL && filename[0] != '\0') {
name = filename;
mouse_adjuster = adjuster;
pen_adjuster = adjuster;
} else {
mouse_adjuster = pen_calibrate;
pen_adjuster = pen_calibrate;
}
}

View File

@ -3,7 +3,7 @@
** Will work for the C64/C128/CBM510/Atari/Apple2.
**
** 2001-09-13, Ullrich von Bassewitz
** 2013-06-26, Greg King
** 2013-07-25, Greg King
**
*/
@ -13,6 +13,7 @@
#include <stdlib.h>
#include <string.h>
#include <mouse.h>
#include <pen.h>
#include <conio.h>
#include <ctype.h>
#include <dbg.h>