mac-rom/Internal/Asm/IntModemMgrPrivEqu.a
Elliot Nunn 4325cdcc78 Bring in CubeE sources
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included.

The Tools directory, containing mostly junk, is also excluded.
2017-12-26 09:52:23 +08:00

185 lines
6.6 KiB
Plaintext

;__________________________________________________________________________________________________
;
; 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