Next Previous Contents

7. Loadable drivers

7.1 Graphics drivers


This driver features a resolution of 40×48 with 16 colors.


This driver features a resolution of 280×192 with 8 colors and two hires pages. Note that programs using this driver will have to be linked with --start-addr $4000 to reserve the first hires page or with --start-addr $6000 to reserve both hires pages.

In memory constrained situations the memory from $803 to $1FFF can be made available to a program by calling _heapadd ((void *) 0x0803, 0x17FD); at the beginning of main(). Doing so is beneficial even if the program doesn't use the the heap explicitly because loading the driver (and in fact already opening the driver file) uses the heap implicitly.

7.2 Extended memory drivers


Gives access to 47,5 KB RAM (190 pages of 256 bytes each) on an Extended 80-Column Text Card.

Note that this driver doesn't check for the actual existence of the memory and that it doesn't check for ProDOS 8 RAM disk content!

7.3 Joystick drivers

Supports up to two standard analog joysticks connected to the game port of the Apple ][.

7.4 Mouse drivers


Driver for the AppleMouse II Card. Searches all Apple II slots for an AppleMouse II Card compatible firmware. The default bounding box is [0..279,0..191].

Programs using this driver will have to be linked with --start-addr $4000 to reserve the first hires page if they are intended to run on an Apple ][ (in contrast to an Apple //e) because the AppleMouse II Card firmware writes to the hires page when initializing on that machine.

Note that the Apple ][ default mouse callbacks support text mode only.

7.5 RS232 device drivers


Driver for the Apple II Super Serial Card. Supports up to 19200 baud, hardware flow control (RTS/CTS) and interrupt driven receives. Note that because of the peculiarities of the 6551 chip transmits are not interrupt driven, and the transceiver blocks if the receiver asserts flow control because of a full buffer.

The driver defaults to slot 2. Call ser_ioctl(0, <slot>) prior to ser_open() in order to select a different slot. ser_ioctl() succeeds for all Apple II slots, but ser_open() fails with SER_ERR_NO_DEVICE if there's no SSC firmware found in the selected slot.

Next Previous Contents