The CBM510 runs programs in a non-system memory bank. It has its own zero page. Some things are copied from the system zero page; but, the cursor flags weren't copied. So, the cursor always blinked. That bug sometimes left cursor ghosts (reversed spaces) at the end of lines.
To keep backward compatibility auxtype and the date/time are kept
separated.
A struct similar to the one used in dirent.h is used to access the
create_date and create_time fields.
The mouse reference is a pointer. If it's NULL, the driver uses a default. If it's non-NULL, then it points to a function that the driver can call. That function will adjust the driver's calibration value. It could ask the user to adjust the pen; or, it could read a file that holds a value from a previous calibration.
Application writers can choose how it's done: a function that's provided by the library, a custom function, or nothing.
Originally I used the usual variables (like $(CC) and $(CFLAGS) ) but after
all this doesn't make sense as any predefined values and/or user defined
settings can only be wrong.
Occasionally dynamically drivers suffer from not being to refer to
content in the C library. Therefore I added a mechanism to allow
a C library for a certian target to define a symbol that will be
handed over to dynamic drivers for that target. Then the drivers
can use their refernce to that symbol to access content in the C
library.
The libraries build is prepared to work with binaries not part of the current
working tree. But in this case the default search path surely points to some
other working tree. Even the binaries in this working tree might have been
compiled with non-standard builtin search paths.
Anyway when building the libraries we want always to use the headers from
the current working tree. Therefore we want to set them explicitly. Instead
of setting all in all five paths on the command lines of ca65, cc65 and ld65 I
opted to just set the single environment variable.
They use the mouse driver programming interface.
Added a test program for lightpen drivers. Now, it knows about only those two drivers; it will need updating when others are added.
The mouse driver source code in question was removed two years
ago with commit 6cbbe66c87fc19c322a0dd72a5c8ef094ea90c90.
It seems however desirable to have it around visible in the source
code tree for reference purposes.
The target 'atarixl' is to be used for Atari XL (and better) machines.
It will disable the OS ROM and enable the Shadow RAM available on
those machine.
Note: This commit is only the inital step towards for this goal that just
replicates the target 'atari' as a starting point!
As a preparation for the introduction of the 'atarixl' target it is
necessary that all drivers have a base name...
- no longer than 7 characters
- with a common prefix