Next Previous Contents

## 7. Loadable drivers

## 7.1 Graphics drivers

`a2.lo.tgi`

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

`a2.hi.tgi`

  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

`a2.auxmem.emd`

  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

`a2.stdjoy.joy`

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

## 7.4 Mouse drivers

`a2.stdmou.mou`

  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

`a2.ssc.ser`

  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