;__________________________________________________________________________________________________ ; ; File: IntModemMgrPrivEqu.a ; ; Contains: Private equates for the internal modem manager ; ; Written by: Steven Swenson ; ; Copyright © 1993-1993 by Apple Computer, Inc. All rights reserved. ; ; Change History (most recent first): ; ; <1> 4/8/93 SES first checked in ;__________________________________________________________________________________________________ ;---------------------------------------------------------------------- ; internal modem manager version number. Change this when you rev the manager! ;---------------------------------------------------------------------- immgVersion EQU $110 ; version 1.10 ;---------------------------------------------------------------------- ; internal modem manager useful equates ;---------------------------------------------------------------------- UnimplTrap EQU $A89F IntMdmMgrTrap EQU $ABEA ;---------------------------------------------------------------------- ; internal modem manager private routine selectors ;---------------------------------------------------------------------- selIModemInit EQU 0 selIModemInfo EQU 11 selIModemClose EQU 12 ;---------------------------------------------------------------------- ; internal modem manager modem primitive routine selectors ;---------------------------------------------------------------------- selMPType EQU 0 selMPPower EQU 1 selMPWakeUp EQU 2 selMPStatus EQU 3 selMPPrime EQU 4 selMPSndCtl EQU 5 selMPExists EQU 6 selMPSetUp EQU 7 selMPTearDown EQU 8 selMPName EQU 9 selMPSndVol EQU 10 selMPSndHW EQU 11 ;---------------------------------------------------------------------- ; internal modem manager routine macros ;---------------------------------------------------------------------- MACRO _IModemInit move.w #selIModemInit,d0 _IntModemDispatch ENDM MACRO _IModemInfo move.w #selIModemInfo,d0 _IntModemDispatch ENDM MACRO _IModemClose move.w #selIModemClose,d0 _IntModemDispatch ENDM ;---------------------------------------------------------------------------------------- ; Internal modem manager dispatch table structure ;---------------------------------------------------------------------------------------- immgDispTable RECORD 0 dispFlags DS.W 1 ; flags reserved for Apple use numDisp DS.W 1 ; number of dispatch functions in table ; if you add any more private storage fields to this record, add them above here. ; Make sure you update the ImmgInit function to set up the private storage correctly. ; if you add any more dispatch functions, add them to the end of the table. dispOffset EQU *-immgDispTable ; offset to this point mdmInit DS.L 1 ; modem init routine mdmPower DS.L 1 ; modem power routine mdmWakeUp DS.L 1 ; modem wake up routine mdmStatus DS.L 1 ; modem status routine mdmPrime DS.L 1 ; modem prime routine mdmSndCtl DS.L 1 ; modem sound control routine mdmGetInd DS.L 1 ; modem get indexed routine mdmFind DS.L 1 ; modem find routine mdmInstall DS.L 1 ; modem install routine mdmRemove DS.L 1 ; modem remove routine mdmGetName DS.L 1 ; modem name routine mdmInfo DS.L 1 ; modem version info routine mdmClose DS.L 1 ; modem close routine mdmSndVol DS.L 1 ; modem sound volume routine mdmSndHW DS.L 1 ; modem sound HW arbitration routine size EQU *-immgDispTable ; size of record ENDR ;---------------------------------------------------------------------------------------- ; Internal modem manager modem queue element structure ;---------------------------------------------------------------------------------------- immgQEl RECORD 0 qLink DS.L 1 ; next queue element qType DS.W 1 ; type of queue element (0) qMdmID DS.W 1 ; ID of the installed modem qMdmPrimPtr DS.L 1 ; pointer to the primitives table optionalA1 DS.L 1 ; pointer passed to prims in A1 size EQU *-immgQEl ; size of record ENDR ;---------------------------------------------------------------------------------------- ; Internal modem manager global storage data structure ;---------------------------------------------------------------------------------------- immgGlobals RECORD 0 dispTable DS.L 1 ; pointer to dispatch table mdmQ DS.L 1 ; pointer to modem queue header ;primStorage DS.L 1 ; private storage for machine primitives lastMdmID DS.W 1 ; last modem ID used version DS.W 1 ; version of the modem manager size EQU *-immgGlobals ; size of record ENDR ;•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• ;•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• ; These next two structures are for setting up the modem manager primitives in the ROM. ; The product info record holds an offset to the immgRootTable for the machine. From ; that offset, the modem manager initializes all of its structures. All tables in ROM ; hold offsets from the beginning of the table. ; ; Both the immgDispTable and any immgPrimTables used are copied into RAM at modem ; manager init time, and their offsets are converted into absolute addresses. ; IModemInstall is called once for each mdmList element found in the ROM. ; ; The structure of all of this is as follows. ; ; ---------------- ; product info rec ; ... ; +------ ImmgPrimPtr ; | ... ; | ---------------- ; | ; | +----> immgPrimTable (from IntModemMgrEqu.a) ; | ---------------- | primFlags ; +-> immgMdmList | ... ; primTable ------+ mdmName ; +------ mdmListPtr ---------------- ; | ---------------- ; | ---------------- ; | +----> immgPrimTable ; | ---------------- | primFlags ; +-> immgMdmList | ... ; primTable ------+ mdmName ; NULL ---------------- ; ---------------- ; ;•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• ;•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• ;---------------------------------------------------------------------------------------- ; Internal modem manager modem list data structure ;---------------------------------------------------------------------------------------- immgMdmList RECORD 0 primTable DS.L 1 ; offset to modem primitives table mdmListPtr DS.L 1 ; offset to next modem primitives element size EQU *-immgMdmList ; size of record ENDR