mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2025-01-14 21:29:53 +00:00
4325cdcc78
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.
219 lines
6.6 KiB
Plaintext
219 lines
6.6 KiB
Plaintext
;
|
|
; File: dpDispatcher.a
|
|
;
|
|
; Contains: dispatcher for PACK 11 routines
|
|
;
|
|
; Written by: Nick Kledzik
|
|
;
|
|
; Copyright: © 1989-1990 by Apple Computer, Inc., all rights reserved.
|
|
;
|
|
; This file is used in these builds: BigBang
|
|
;
|
|
; Change History (most recent first):
|
|
;
|
|
; <12> 12/14/90 ngk <RC>Removed FindEditionDialog
|
|
; <11> 7/11/90 gbm add an END, so assembler quits bitchin'
|
|
; <10> 5/31/90 ngk add volume notification routine
|
|
; <9> 3/25/90 ngk Change package version.
|
|
; <8> 3/17/90 ngk Add dp_DrawPreview to jump table
|
|
; <7> 3/10/90 ngk Change to use new package dispatcher. 'dlcd' no longer used.
|
|
; Just have a jump table and glue for dialogs.
|
|
; <6> 2/25/90 ngk Make sure pack11 is locked before loading dialog code.
|
|
; <5> 1/26/90 ngk Removed Get, Save, Clone, and Dispose Section
|
|
; <4> 1/8/90 ngk Move get, save, and dispose section to end of table
|
|
; <2+> 1/7/90 ngk Remove get, save, and dispose section, added dp_GetCurrentAppRefNum
|
|
; <2> 1/6/90 ngk Changed selector numbering. Cleaned up include files. Map short
|
|
; version of dialog routines to ext version.
|
|
; <2.1> 11/13/89 ngk Fixed bug when removing parameters from stack because of bad
|
|
; selector
|
|
; <2.0> 10/24/89 ngk Better error handling if 'dlcd' resource not found.
|
|
; <1.9> 10/13/89 ngk Added DialogDispatch and dpLoadDialogCode to put Dialog code in
|
|
; seperate code resource.
|
|
; <1.8> 10/10/89 ngk Bumped version to 10, 'cause of ePPC changes
|
|
; <1.7> 10/2/89 ngk Changed some names, bumped version
|
|
; <1.6> 9/18/89 ngk Added dpDeletePublicationFile
|
|
; <1.5> 8/29/89 ngk Renamed XetEditionPos to XetEditionMark
|
|
; <1.4> 8/8/89 ngk Bumped pack version because of API changes to use PubSpec
|
|
; <1.3> 6/11/89 ngk Added dpHasEditionFormat
|
|
; <1.2> 5/31/89 ngk Removed canonifyFile, bumped package version
|
|
; <1.1> 5/29/89 ngk Added AssociateSection Changed Dispatcher to use D0 for
|
|
; selector, scarfing code from Tecot
|
|
; <1.0> 5/19/89 ngk Submitted for first time
|
|
;
|
|
; To Do:
|
|
;
|
|
|
|
SEG 'Main'
|
|
CASE OFF
|
|
|
|
LOAD 'StandardEqu.d'
|
|
INCLUDE 'dpCompileOptions.inc.a'
|
|
INCLUDE 'EditionsPrivate.a'
|
|
|
|
;---------------------------------------------------------------------------
|
|
;
|
|
; Editions Manager PACK header
|
|
;
|
|
; Uses the package dispatcher. See MiscPatches for details.
|
|
;
|
|
; Following the header is a jump table used by the dispatcher.
|
|
; The order of entries in the table is there respective selector numbers.
|
|
;
|
|
;---------------------------------------------------------------------------
|
|
|
|
PackEntry PROC EXPORT
|
|
|
|
CODEREFS FORCEPC
|
|
STRING ASIS
|
|
|
|
dc.w $A9FF ; package entry point
|
|
dc.b 'PACK' ; resource type
|
|
dc.w 11 ; resource ID
|
|
dc.w 17 ; version
|
|
DispatchTable dc.w 1 ; flags, 1 = selectors are already even
|
|
dc.b minSelector ; first legal selector
|
|
dc.b maxSelector ; last legal selector
|
|
|
|
MACRO
|
|
JT &entry
|
|
IMPORT &entry
|
|
DC.W &entry - DispatchTable
|
|
ENDM
|
|
|
|
EntyrFirst
|
|
JT dp_EditionMgrVolumeNotifier
|
|
JT dp_DrawPreview
|
|
JT dp_GetCurrentAppRefNum
|
|
JT dp_PostSectionEvent
|
|
JT dp_EditionMgrBackGroundTask
|
|
JT dp_QuitEditionPack
|
|
|
|
Entry0 JT dp_InitEditionPack
|
|
|
|
JT dp_NewSection
|
|
JT dp_RegisterSection
|
|
JT dp_UnRegisterSection
|
|
JT dp_IsRegisteredSection
|
|
DC.W 0 ; used to be dp_FindEditionDialog
|
|
JT dp_AssociateSection
|
|
|
|
JT dp_CreateEditionContainerFile
|
|
JT dp_DeleteEditionContainerFile
|
|
|
|
JT dp_OpenEdition
|
|
JT dp_OpenNewEdition
|
|
JT dp_CloseEdition
|
|
JT dp_EditionHasFormat
|
|
JT dp_ReadEdition
|
|
JT dp_WriteEdition
|
|
JT dp_GetEditionFormatMark
|
|
JT dp_SetEditionFormatMark
|
|
|
|
JT dp_GetEditionInfo
|
|
JT dp_GotoPublisherSection
|
|
JT dp_GetLastEditionContainerUsed
|
|
JT dp_GetStandardFormats
|
|
|
|
JT dp_GetEditionOpenerProc
|
|
JT dp_SetEditionOpenerProc
|
|
JT dp_CallEditionOpenerProc
|
|
JT dp_CallFormatIOProc
|
|
|
|
JT jmpTo_NewSubscriberDialog
|
|
JT jmpTo_NewSubscriberExpDialog
|
|
JT jmpTo_NewPublisherDialog
|
|
JT jmpTo_NewPublisherExpDialog
|
|
JT jmpTo_SectionOptionsDialog
|
|
JT jmpTo_SectionOptionsExpDialog
|
|
|
|
|
|
EntyrPastLast
|
|
|
|
minSelector EQU EntyrFirst - Entry0
|
|
maxSelector EQU EntyrPastLast - Entry0 - 2
|
|
|
|
|
|
ENDPROC ; PackEntry
|
|
|
|
|
|
|
|
;---------------------------------------------------------------------------
|
|
;
|
|
; DialogGlue
|
|
;
|
|
; This glue is needed for two reasons.
|
|
; 1) The dialogs come in two forms, simple and expanable
|
|
; the calls to the simple form have the default expandle
|
|
; parameter added, then the expanable form is called.
|
|
; 2) The dialogs are at the end of the package. They are too
|
|
; far to jump through the normal jump table ( > 32K ).
|
|
;
|
|
;
|
|
; Trashes: D0, A0, A1
|
|
;---------------------------------------------------------------------------
|
|
|
|
|
|
DialogGlue PROC
|
|
EXPORT jmpTo_NewSubscriberDialog
|
|
EXPORT jmpTo_NewSubscriberExpDialog
|
|
EXPORT jmpTo_NewPublisherDialog
|
|
EXPORT jmpTo_NewPublisherExpDialog
|
|
EXPORT jmpTo_SectionOptionsDialog
|
|
EXPORT jmpTo_SectionOptionsExpDialog
|
|
IMPORT dp_NewSubscriberExpDialog
|
|
IMPORT dp_NewPublisherExpDialog
|
|
IMPORT dp_SectionOptionsExpDialog
|
|
|
|
|
|
jmpTo_NewSubscriberDialog
|
|
bsr.s AddDefaultExp
|
|
jmpTo_NewSubscriberExpDialog
|
|
move.l NewSubscriberOffset,D0
|
|
bra.s JumpToIt
|
|
|
|
|
|
jmpTo_NewPublisherDialog
|
|
bsr.s AddDefaultExp
|
|
jmpTo_NewPublisherExpDialog
|
|
move.l NewPublisherOffset,D0
|
|
bra.s JumpToIt
|
|
|
|
|
|
jmpTo_SectionOptionsDialog
|
|
bsr.s AddDefaultExp
|
|
jmpTo_SectionOptionsExpDialog
|
|
move.l SectionOptionsOffset,D0
|
|
; bra.s JumpToIt
|
|
|
|
|
|
|
|
JumpToIt lea DialogGlue,A0
|
|
adda.l D0,A0
|
|
jmp (A0)
|
|
|
|
|
|
AddDefaultExp move.l (SP)+,A1 ; pop glue return address
|
|
move.l (SP)+,A0 ; pop real return address
|
|
; added default 'Exp' parameters
|
|
moveq #-1,D0
|
|
move.l D0,-(SP) ; where = -1, -1
|
|
moveq #0,D0
|
|
move.w D0,-(SP) ; extentionDITLresID = 0
|
|
move.l D0,-(SP) ; dlgHook = NIL
|
|
move.l D0,-(SP) ; filterProc = NIL
|
|
move.l D0,-(SP) ; callBackPtr = NIL
|
|
move.l A0,-(SP) ; restore real return address
|
|
jmp (A1) ; return to glue
|
|
|
|
|
|
; The following are 32-bit offsets to the dialog routines.
|
|
; We have to do it this way because 68000 does not support
|
|
; 32-bit branches.
|
|
|
|
NewSubscriberOffset dc.l dp_NewSubscriberExpDialog - DialogGlue
|
|
NewPublisherOffset dc.l dp_NewPublisherExpDialog - DialogGlue
|
|
SectionOptionsOffset dc.l dp_SectionOptionsExpDialog - DialogGlue
|
|
|
|
ENDPROC ; DialogGlue
|
|
|
|
END |