mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-22 04:31:30 +00:00
185 lines
7.3 KiB
Plaintext
185 lines
7.3 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
|
|
|
|
|