GS/OS #14
The Console Driver Technical Note

Written by Matt Deatherage (May 1992)

This Technical Note discusses the GS/OS Console Driver and related issues.

New 6.0 Character Features Don't Work in Version 3.2

The System Software 6.0 documentation (as of this writing, the GS/OS ERS) refers to a new Console Driver feature. The Console Driver now has the capability to return direct character-in and character-out vectors for improved throughput (gained by bypassing most of GS/OS's overhead). The vectors are obtained through new DStatus device-specific call $8007, GetVectors.

Unfortunately, in version 3.2 of the Console Driver (which ships with System Software 6.0), this call returns addresses which are almost the correct ones (in other words, they're wrong). If DInfo says the Console Driver is version 3.2 or earlier, don't try to use the GetVectors feature.

No-Wait Mode and User Input Mode Conflict

When you read from a GS/OS driver in no-wait mode, the driver is supposed to return as quickly as possible, reading as much information as possible and returning as soon as the request is filled or no more information is instantly available. This is the opposite of wait mode, where the driver waits until the read can be finished even if it takes forever.

This philosophy directly conflicts with the Console Driver's user input routine (UIR) mode, where standard human interface editing functions are available. For example, if you want to read seven characters from the Console Driver in UIR mode, the user should be able to type four characters and hit three backspaces and not worry that the read request will end since he pressed seven keys. The entire concept of UIR mode is that the user can take his time and edit his input until he's happy with it, then press a terminator key to end editing.

This is how the Console Driver works, in fact, even in no-wait mode. If you ask for even one character in UIR mode and no-wait mode, the Console Driver will let the user edit the one character until he presses a terminator.

If you want instant feedback, you must use raw input mode.

Further Reference

This and all of the other Apple II Technical Notes have been converted to HTML by Aaron Heiss as a public service to the Apple II community, with permission by Apple Computer, Inc. Any and all trademarks, registered and otherwise, are properties of their owners.