2017-10-21 23:40:19 +00:00
|
|
|
/********************************************
|
|
|
|
*
|
|
|
|
* Apple Desktop Bus Tool Set
|
|
|
|
*
|
|
|
|
* Copyright Apple Computer, Inc.1986-90
|
|
|
|
* All Rights Reserved
|
|
|
|
*
|
|
|
|
* Copyright 1992, Byte Works, Inc.
|
|
|
|
*
|
|
|
|
********************************************/
|
|
|
|
|
|
|
|
#ifndef __TYPES__
|
|
|
|
#include <TYPES.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __ADB__
|
|
|
|
#define __ADB__
|
|
|
|
|
|
|
|
/* Error Codes */
|
|
|
|
#define cmndIncomplete 0x0910 /* Command not completed. */
|
|
|
|
#define cantSync 0x0911 /* Can't synchronize */
|
|
|
|
#define adbBusy 0x0982 /* Busy (command pending) */
|
|
|
|
#define devNotAtAddr 0x0983 /* Device not present at address */
|
|
|
|
#define srqListFull 0x0984 /* List full */
|
|
|
|
|
|
|
|
/* ReadKeyMicroData Codes */
|
|
|
|
#define readModes 0x000A
|
|
|
|
#define readConfig 0x000B
|
|
|
|
#define readADBError 0x000C
|
|
|
|
#define readVersionNum 0x000D
|
|
|
|
#define readAvailCharSet 0x000E
|
|
|
|
#define readAvailLayout 0x000F
|
|
|
|
|
|
|
|
/* SendInfo Commands */
|
|
|
|
#define abortKbd 0x0001
|
|
|
|
#define resetKbd 0x0002
|
|
|
|
#define flushKbd 0x0003
|
|
|
|
#define setModes 0x0004 /* 2nd param is pointer to mode byte */
|
|
|
|
#define clearModes 0x0005 /* 2nd param is pointer to mode Byte */
|
|
|
|
#define setConfig 0x0006 /* 2nd param is pointer to SetConfigRec */
|
|
|
|
#define synch 0x0007 /* 2nd param is pointer to SynchRec */
|
|
|
|
#define writeMicroMem 0x0008 /* 2nd param is pointer to MicroControlMemRec */
|
|
|
|
#define resetSys 0x0010
|
|
|
|
#define keyCode 0x0011 /* 2nd param is pointer to key code byte. */
|
|
|
|
#define resetADB 0x0040
|
|
|
|
#define transmitADBBytes 0x0047 /* add number of bytes to this */
|
|
|
|
#define enableSRQ 0x0050 /* ADB address in low nibble */
|
|
|
|
#define flushADBDevBuf 0x0060 /* ADB address in low nibble */
|
|
|
|
#define disableSRQ 0x0070 /* ADB address in low nibble */
|
|
|
|
#define transmit2ADBBytes 0x0080 /* add ADB address to this */
|
|
|
|
#define listen 0x0080 /* adbCommand = listen + ( 16 * reg) + (adb address) */
|
|
|
|
#define talk 0x00C0 /* adbCommand = talk + ( 16 * reg) + (adb address) */
|
|
|
|
|
|
|
|
/* Other Constants */
|
|
|
|
#define readMicroMem 0x0009
|
|
|
|
|
|
|
|
struct ReadConfigRec {
|
|
|
|
Byte rcADBAddr; /* Output Byte: ADB address - keyboard and mouse */
|
|
|
|
Byte rcLayoutOrLang; /* Output Byte: Layout / Language */
|
|
|
|
Byte rcRepeatDelay; /* Output Byte: Repeat / Delay */
|
|
|
|
};
|
|
|
|
typedef struct ReadConfigRec ReadConfigRec, *ReadConfigRecPtr;
|
|
|
|
|
|
|
|
struct SetConfigRec {
|
|
|
|
Byte scADBAddr; /* keyboard and mouse */
|
|
|
|
Byte scLayoutOrLang;
|
|
|
|
Byte scRepeatDelay;
|
|
|
|
};
|
|
|
|
typedef struct SetConfigRec SetConfigRec, *SetConfigRecPtr;
|
|
|
|
|
|
|
|
struct SynchRec {
|
|
|
|
Byte synchMode;
|
|
|
|
Byte synchKybdMouseAddr;
|
|
|
|
Byte synchLayoutOrLang;
|
|
|
|
Byte synchRepeatDelay;
|
|
|
|
};
|
|
|
|
typedef struct SynchRec SynchRec, *SynchRecPtr;
|
|
|
|
|
|
|
|
struct ScaleRec {
|
|
|
|
Word xDivide;
|
|
|
|
Word yDivide;
|
|
|
|
Word xOffset;
|
|
|
|
Word yOffset;
|
|
|
|
Word xMultiply;
|
|
|
|
Word yMultiply;
|
|
|
|
} ;
|
|
|
|
typedef struct ScaleRec ScaleRec, *ScaleRecPtr;
|
|
|
|
|
|
|
|
extern pascal void ADBBootInit(void) inline(0x0109,dispatcher);
|
|
|
|
extern pascal void ADBStartUp(void) inline(0x0209,dispatcher);
|
|
|
|
extern pascal void ADBShutDown(void) inline(0x0309,dispatcher);
|
|
|
|
extern pascal Word ADBVersion(void) inline(0x0409,dispatcher);
|
|
|
|
extern pascal void ADBReset(void) inline(0x0509,dispatcher);
|
|
|
|
extern pascal Boolean ADBStatus(void) inline(0x0609,dispatcher);
|
|
|
|
extern pascal void AbsOn(void) inline(0x0F09,dispatcher);
|
|
|
|
extern pascal void AbsOff(void) inline(0x1009,dispatcher);
|
|
|
|
extern pascal void AsyncADBReceive(Pointer, Word) inline(0x0D09,dispatcher);
|
|
|
|
extern pascal void ClearSRQTable(void) inline(0x1609,dispatcher);
|
|
|
|
extern pascal void GetAbsScale(ScaleRecPtr) inline(0x1309,dispatcher);
|
|
|
|
extern pascal Word ReadAbs(void) inline(0x1109,dispatcher);
|
|
|
|
extern pascal void ReadKeyMicroData(Word, Pointer, Word) inline(0x0A09,dispatcher);
|
|
|
|
extern pascal void ReadKeyMicroMemory(Pointer, Pointer, Word) inline(0x0B09,dispatcher);
|
|
|
|
extern pascal void SendInfo(Word, Pointer, Word) inline(0x0909,dispatcher);
|
|
|
|
extern pascal void SetAbsScale(ScaleRecPtr) inline(0x1209,dispatcher);
|
|
|
|
extern pascal void SRQPoll(Pointer, Word) inline(0x1409,dispatcher);
|
|
|
|
extern pascal void SRQRemove(Word) inline(0x1509,dispatcher);
|
|
|
|
extern pascal void SyncADBReceive(Word, Pointer, Word) inline(0x0E09,dispatcher);
|
|
|
|
|
|
|
|
#endif
|