mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-12-29 07:29:15 +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.
426 lines
12 KiB
Plaintext
426 lines
12 KiB
Plaintext
;
|
|
; File: ConnectionMgr.a
|
|
;
|
|
; Contains: Entry to the Connection Manager
|
|
;
|
|
; Written by: Dean Wong, Byron Han, and Jerry Godes
|
|
;
|
|
; Copyright: © 1988-1991, 1993 by Apple Computer, Inc., all rights reserved.
|
|
;
|
|
; Change History (most recent first):
|
|
;
|
|
; <2> 8/12/93 kc <mb>: I deleted all of the "TheFuture" conditionals in all of
|
|
; the CommToolbox files per Mike Bell's instructions. I also had
|
|
; to delete some old code that was compiled under the "CubeE"
|
|
; conditional.
|
|
; <11> 11/5/91 DTY Add __ to the front of the routines brought back for CubeE to
|
|
; keep the build warningless.
|
|
; <10> 10/2/91 DTY Conditionalise <7> out of CubeE.
|
|
; <9> 6/26/91 BH forgot to change import declarations of extension routines to
|
|
; include __Õs
|
|
; <8> 6/26/91 BH change extensions to use __ to distinguish from glue
|
|
; <7> 6/18/91 BH remove new calls for open/close
|
|
; <6> 1/14/91 CP ;Removed CMConnectPrep and added CMListenPrep and CMOpenPrep.
|
|
; ;Removed param block from CMPBAccept, CMPBListen, CMPBClose,
|
|
; CMPBOpen, and CMConnectCleanup.
|
|
; ;Renamed CMFreeIORec to CMDisposeIOPB.
|
|
; ;Renamed CMAllocateIORec to CMNewIOPB.
|
|
; ;Added async, completor, and timeout parameters to CMListenPrep
|
|
; and CMOpenPrep.
|
|
; ;Renamed CMIORec to CMIOPB <BBH>
|
|
; <5> 11/27/90 kaz Renaming CMHCalls to CMPBCalls; Added CMPBOpen, etc <jng>
|
|
; <4> 8/27/90 kaz Use an offset table instead of a BRA table.
|
|
; <3> 7/10/90 dba add __ to distinguish glue from actual routines
|
|
; <2> 3/15/90 BBH fix names of included files
|
|
; <1> 2/22/90 BBH first checked in to BBS
|
|
;
|
|
; To Do:
|
|
;
|
|
; Pre-BBS HISTORY :
|
|
; 2/15/90 BBH CMGetErrorString moved to core
|
|
; 1/26/90 BBH Added CMHRead/Write/IOKill
|
|
; 8/14/89 BBH Added curCMversion. Renamed CMStatus to _CMStatus
|
|
; 6/28/89 JNG Removed preflight/postflight from status.
|
|
; 6/26/89 BBH Added CMPChoose
|
|
; 6/2/89 JNG Finished Glue changes.
|
|
; 5/24/89 JNG Glue routines now don't change the order of the parameters.
|
|
; 4/29/89 JNG Converted CMStatus to assembler.
|
|
; 4/24/89 BBH Added CMGetConnEnvirons
|
|
; 4/24/89 JNG Removed CMResume CMMenu CMEvent CMActivate CMReset CMIdle
|
|
; CMAbort to CTBCore
|
|
; 4/18/89 JNG Removed CMGetProcID, CMSetupXXX to CTBCore
|
|
; 4/17/89 JNG Removed CMValidate, CMDefault to CTBCore
|
|
; 4/12/89 JNG Removed CMGetToolName to CTBCore
|
|
; 4/11/89 JNG Removed CMGetRefCon, CMSetRefCon, CMSetUserData, CMGetUserData,
|
|
; and CMGetVersion these are now in the CTBCore routines.
|
|
; 4/7/89 JNG Changed CMGetConnName to CMGetToolName
|
|
|
|
INCLUDE 'Traps.a'
|
|
|
|
INCLUDE 'Connections.a' ; need curCMversion here
|
|
INCLUDE 'CTBUtilities.a' ;
|
|
INCLUDE 'ConnectionTools.a' ; Status needs the messages defined here
|
|
INCLUDE 'CommToolboxPriv.a' ; for core routines
|
|
|
|
ENTRY _CMStatus
|
|
|
|
MACRO
|
|
_ExternalCore &selector
|
|
_RealExternalCore &selector,#CMSel
|
|
ENDM
|
|
;------------------------------------------------------------------------------------
|
|
;
|
|
; A0.L -> pointer to the routine selector record
|
|
;
|
|
; D0.L -> function result
|
|
;
|
|
CMEntry MAIN EXPORT
|
|
IMPORT __InitCM, __CMNew, __CMDispose, __CMOpen, __CMListen, __CMAccept,\
|
|
__CMClose, __CMRead, __CMWrite, __CMBreak, __CMGetConnEnvirons, \
|
|
__CMAddSearch, __CMRemoveSearch, __CMClearSearch, __CMIOKill, \
|
|
__CMNewIOPB, __CMDisposeIOPB, __CMPBRead, __CMPBWrite, \
|
|
__CMPBIOKill
|
|
|
|
|
|
BRA.S start
|
|
version DC.W curCMversion ; version
|
|
|
|
start MOVE.W (A0), D1 ; routine selector
|
|
ANDI.W #$FF, D1 ; bump the high byte
|
|
SUB.W #1, D1 ; make it 0 based
|
|
ADD.W D1, D1 ; 2 bytes per offset
|
|
LEA CMStart, A1 ; point to offset table
|
|
ADD.W 0(A1,D1.W), A1 ; add the offset
|
|
JMP (A1) ; go there
|
|
|
|
; ASL.W #2, D1 ; multiply by 4
|
|
;TABLE JMP TABLE(D1)
|
|
|
|
CMStart
|
|
DC.W @InitCM - CMStart; 1
|
|
DC.W @CMSetRefCon - CMStart; 2
|
|
DC.W @CMGetRefCon - CMStart; 3
|
|
DC.W @CMSetUserData - CMStart; 4
|
|
DC.W @CMGetUserData - CMStart; 5
|
|
DC.W @CMGetToolName - CMStart; 6
|
|
DC.W @CMGetProcID - CMStart; 7
|
|
DC.W @CMNew - CMStart; 8
|
|
DC.W @CMDispose - CMStart; 9
|
|
DC.W @CMIdle - CMStart; A
|
|
DC.W @CMOpen - CMStart; B
|
|
DC.W @CMListen - CMStart; C
|
|
DC.W @CMAccept - CMStart; D
|
|
DC.W @CMClose - CMStart; E
|
|
DC.W @CMAbort - CMStart; F
|
|
DC.W _CMStatus - CMStart; 10
|
|
DC.W @CMRead - CMStart; 11
|
|
DC.W @CMWrite - CMStart; 12
|
|
DC.W @CMActivate - CMStart; 13
|
|
DC.W @CMResume - CMStart; 14
|
|
DC.W @CMMenu - CMStart; 15
|
|
DC.W @CMReset - CMStart; 16
|
|
DC.W @CMValidate - CMStart; 17
|
|
DC.W @CMDefault - CMStart; 18
|
|
DC.W @CMSetupSetup - CMStart; 19
|
|
DC.W @CMSetupItem - CMStart; 1A
|
|
DC.W @CMSetupCleanup - CMStart; 1B
|
|
DC.W @CMGetConfig - CMStart; 1C
|
|
DC.W @CMSetConfig - CMStart; 1D
|
|
DC.W @CMIntlToEnglish - CMStart; 1E
|
|
DC.W @CMEnglishToIntl - CMStart; 1F
|
|
DC.W @CMGetVersion - CMStart; 20
|
|
DC.W @CMGetCMVersion - CMStart; 21
|
|
DC.W @CMSetupFilter - CMStart; 22
|
|
DC.W @CMSetupPreflight - CMStart; 23
|
|
DC.W @CMChoose - CMStart; 24
|
|
DC.W @CMBreak - CMStart; 25
|
|
DC.W @CMAddSearch - CMStart; 26
|
|
DC.W @CMRemoveSearch - CMStart; 27
|
|
DC.W @CMClearSearch - CMStart; 28
|
|
DC.W @CMIOKill - CMStart; 29
|
|
DC.W @CMEvent - CMStart; 2A
|
|
DC.W @CMSetupPostflight - CMStart; 2B
|
|
DC.W @CMGetConnEnvirons - CMStart; 2C
|
|
DC.W @CMPChoose - CMStart; 2D
|
|
DC.W @CMSetupXCleanup - CMStart; 2E
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; below this line are extensions
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
DC.W @CMGetErrorString - CMStart; 2F
|
|
DC.W @CMNewIOPB - CMStart; 30
|
|
DC.W @CMDisposeIOPB - CMStart; 31
|
|
DC.W @CMPBRead - CMStart; 32
|
|
DC.W @CMPBWrite - CMStart; 33
|
|
DC.W @CMPBIOKill - CMStart; 34
|
|
|
|
@CMSetRefCon ; 258
|
|
_ExternalCore #$40A
|
|
@CMGetRefCon ; 259
|
|
_ExternalCore #$40B
|
|
@CMSetUserData ; 260
|
|
_ExternalCore #$40C
|
|
@CMGetUserData ; 261
|
|
_ExternalCore #$40D
|
|
@CMGetVersion
|
|
_ExternalCore #$40E
|
|
@CMGetToolName ; 262
|
|
_ExternalCore #$40F
|
|
@CMValidate ; 279
|
|
_ExternalCore #$410
|
|
@CMDefault ; 280
|
|
_ExternalCore #$411
|
|
@CMSetupPreflight
|
|
_ExternalCore #$412
|
|
@CMSetupSetup
|
|
_ExternalCore #$413
|
|
@CMSetupFilter
|
|
_ExternalCore #$415
|
|
@CMSetupItem
|
|
_ExternalCore #$414
|
|
@CMSetupCleanup
|
|
_ExternalCore #$416
|
|
@CMSetupXCleanup
|
|
_ExternalCore #$427
|
|
@CMSetupPostflight ; 299
|
|
_ExternalCore #$417
|
|
@CMGetConfig
|
|
_ExternalCore #$418
|
|
@CMSetConfig
|
|
_ExternalCore #$419
|
|
@CMIntlToEnglish
|
|
_ExternalCore #$41A
|
|
@CMEnglishToIntl
|
|
_ExternalCore #$41B
|
|
@CMChoose
|
|
_ExternalCore #$41C
|
|
@CMPChoose
|
|
_ExternalCore #$426
|
|
@CMGetProcID ; 263
|
|
_ExternalCore #$41D
|
|
@CMResume
|
|
_ExternalCore #$41E
|
|
@CMMenu
|
|
_ExternalCore #$41F
|
|
@CMEvent ; 298
|
|
_ExternalCore #$420
|
|
@CMActivate
|
|
_ExternalCore #$421
|
|
@CMIdle
|
|
_ExternalCore #$422
|
|
@CMAbort
|
|
_ExternalCore #$423
|
|
@CMReset
|
|
_ExternalCore #$424
|
|
|
|
@CMGetErrorString
|
|
_ExternalCore #$428
|
|
|
|
|
|
@InitCM CLR.W -(SP) ; make room
|
|
JSR __InitCM
|
|
MOVE.W (SP)+,D0 ; return it
|
|
RTS
|
|
|
|
@CMNew CLR.L -(SP) ; make room
|
|
MOVE.W 18(A0), -(SP) ; theProcID
|
|
MOVE.L 14(A0), -(SP) ; theFlags
|
|
MOVE.L 10(A0), -(SP) ; desiredSizes
|
|
MOVE.L 6(A0), -(SP) ; theRefCon
|
|
MOVE.L 2(A0), -(SP) ; theUserData
|
|
JSR __CMNew
|
|
MOVE.L (SP)+, D0
|
|
RTS
|
|
|
|
@CMDispose MOVE.L 2(A0), -(SP) ; hConn
|
|
JSR __CMDispose
|
|
RTS
|
|
|
|
@CMOpen CLR.W -(SP) ; make room
|
|
MOVE.L 12(A0), -(SP) ; hConn
|
|
MOVE.W 10(A0), -(SP) ; theAsync
|
|
MOVE.L 6(A0), -(SP) ; completor
|
|
MOVE.L 2(A0), -(SP) ; timeout
|
|
JSR __CMOpen
|
|
MOVE.W (SP)+, D0
|
|
RTS
|
|
|
|
@CMListen CLR.W -(SP) ; make room
|
|
MOVE.L 12(A0), -(SP) ; hConn
|
|
MOVE.W 10(A0), -(SP) ; theAsync
|
|
MOVE.L 6(A0), -(SP) ; completor
|
|
MOVE.L 2(A0), -(SP) ; timeout
|
|
JSR __CMListen
|
|
MOVE.W (SP)+, D0
|
|
RTS
|
|
|
|
@CMAccept CLR.W -(SP) ; make room
|
|
MOVE.L 4(A0), -(SP) ; hConn
|
|
MOVE.W 2(A0), -(SP) ; accept
|
|
JSR __CMAccept
|
|
MOVE.W (SP)+, D0
|
|
RTS
|
|
|
|
@CMClose CLR.W -(SP) ; make room
|
|
MOVE.L 14(A0), -(SP) ; hConn
|
|
MOVE.W 12(A0), -(SP) ; theAsync
|
|
MOVE.L 8(A0), -(SP) ; completor
|
|
MOVE.L 4(A0), -(SP) ; timeout
|
|
MOVE.W 2(A0), -(SP) ; now
|
|
JSR __CMClose
|
|
MOVE.W (SP)+, D0
|
|
RTS
|
|
|
|
@CMRead CLR.W -(SP) ; make room
|
|
MOVE.L 26(A0), -(SP) ; hConn
|
|
MOVE.L 22(A0), -(SP) ; theBuffer
|
|
MOVE.L 18(A0), -(SP) ; toRead
|
|
MOVE.W 16(A0), -(SP) ; theChannel
|
|
MOVE.W 14(A0), -(SP) ; theAsync
|
|
MOVE.L 10(A0), -(SP) ; completor
|
|
MOVE.L 6(A0), -(SP) ; timeout
|
|
MOVE.L 2(A0), -(SP) ; flags (VAR)
|
|
JSR __CMRead
|
|
MOVE.W (SP)+, D0
|
|
RTS
|
|
|
|
@CMWrite CLR.W -(SP) ; make room
|
|
MOVE.L 24(A0), -(SP) ; hConn
|
|
MOVE.L 20(A0), -(SP) ; theBuffer
|
|
MOVE.L 16(A0), -(SP) ; toWrite
|
|
MOVE.W 14(A0), -(SP) ; theChannel
|
|
MOVE.W 12(A0), -(SP) ; theAsync
|
|
MOVE.L 8(A0), -(SP) ; completor
|
|
MOVE.L 4(A0), -(SP) ; timeout
|
|
MOVE.W 2(A0), -(SP) ; flags
|
|
JSR __CMWrite
|
|
MOVE.W (SP)+, D0
|
|
RTS
|
|
|
|
@CMGetCMVersion LEA Version, A0
|
|
MOVE.W (A0), D0 ; put version number
|
|
RTS
|
|
|
|
@CMBreak ; 293
|
|
MOVE.L 12(A0), -(SP) ; hConn
|
|
MOVE.L 8(A0), -(SP) ; duration
|
|
MOVE.W 6(A0), -(SP) ; async
|
|
MOVE.L 2(A0), -(SP) ; completor
|
|
JSR __CMBreak
|
|
RTS
|
|
|
|
@CMAddSearch ; 294
|
|
CLR.L -(SP) ; make room
|
|
MOVE.L 12(A0), -(SP) ; hConn
|
|
MOVE.L 8(A0), -(SP) ; theString
|
|
MOVE.W 6(A0), -(SP) ; flags
|
|
MOVE.L 2(A0), -(SP) ; callBack
|
|
JSR __CMAddSearch
|
|
MOVE.L (SP)+, D0 ; return point
|
|
RTS
|
|
|
|
@CMRemoveSearch ; 295
|
|
MOVE.L 6(A0), -(SP) ; hConn
|
|
MOVE.L 2(A0), -(SP) ; refnum
|
|
JSR __CMRemoveSearch
|
|
RTS
|
|
|
|
@CMClearSearch ; 296
|
|
MOVE.L 2(A0), -(SP) ; hConn
|
|
JSR __CMClearSearch
|
|
RTS
|
|
|
|
@CMIOKill ; 297
|
|
CLR.W -(SP) ; make room
|
|
MOVE.L 4(A0), -(SP) ; hConn
|
|
MOVE.W 2(A0), -(SP) ; refnum
|
|
JSR __CMIOKill
|
|
MOVE.W (SP)+, D0 ; return point
|
|
RTS
|
|
|
|
@CMGetConnEnvirons CLR.W -(SP) ; make room
|
|
MOVE.L 6(A0), -(SP) ; hConn
|
|
MOVE.L 2(A0), -(SP) ; (ptr to) environs
|
|
JSR __CMGetConnEnvirons
|
|
MOVE.W (SP)+, D0
|
|
RTS
|
|
|
|
@CMNewIOPB
|
|
CLR.W -(SP) ; make room
|
|
MOVE.L 6(A0), -(SP) ; hConn
|
|
MOVE.L 2(A0), -(SP) ; (ptr to) CMIOPBPtr
|
|
JSR __CMNewIOPB
|
|
MOVE.W (SP)+, D0
|
|
RTS
|
|
@CMDisposeIOPB
|
|
CLR.W -(SP) ; make room
|
|
MOVE.L 6(A0), -(SP) ; hConn
|
|
MOVE.L 2(A0), -(SP) ; CMIOPBPtr
|
|
JSR __CMDisposeIOPB
|
|
MOVE.W (SP)+, D0
|
|
RTS
|
|
|
|
@CMPBRead
|
|
CLR.W -(SP) ; make room
|
|
MOVE.L 8(A0), -(SP) ; hConn
|
|
MOVE.L 4(A0), -(SP) ; CMIOPBPtr
|
|
MOVE.B 2(A0), -(SP) ; async
|
|
JSR __CMPBRead
|
|
MOVE.W (SP)+, D0
|
|
RTS
|
|
|
|
@CMPBWrite
|
|
CLR.W -(SP) ; make room
|
|
MOVE.L 8(A0), -(SP) ; hConn
|
|
MOVE.L 4(A0), -(SP) ; CMIOPBPtr
|
|
MOVE.B 2(A0), -(SP) ; async
|
|
JSR __CMPBWrite
|
|
MOVE.W (SP)+, D0
|
|
RTS
|
|
|
|
|
|
@CMPBIOKill
|
|
CLR.W -(SP) ; make room
|
|
MOVE.L 6(A0), -(SP) ; hConn
|
|
MOVE.L 2(A0), -(SP) ; CMIOPBPtr
|
|
JSR __CMPBIOKill
|
|
MOVE.W (SP)+, D0
|
|
RTS
|
|
|
|
|
|
;pascal CMErr CMStatus( hConn, sizes, flags)
|
|
|
|
|
|
_CMStatus FUNC
|
|
|
|
hConn EQU 10
|
|
sizes EQU 6
|
|
flags EQU 2
|
|
LINK A6,#0
|
|
MOVEM.L D2/A1,-(SP)
|
|
|
|
CLR.L -(SP) ; Call the defproc
|
|
|
|
MOVE.L hConn(A0),A1 ; Get the core handle
|
|
|
|
MOVE.L A1,-(SP) ; hCore
|
|
MOVE.W #CMStatusMsg,-(SP) ; msg
|
|
MOVE.L sizes(A0),-(SP) ; p1
|
|
MOVE.L flags(A0),-(SP) ; p2
|
|
CLR.L -(SP) ; p3
|
|
|
|
MOVE.L (A1),A1 ; Dereference core handle
|
|
MOVE.L CTBDefProc(A1),A3 ; Finally call it
|
|
JSR (A3)
|
|
|
|
MOVE.L (SP)+,D0 ; Give 'em the return value
|
|
|
|
MOVEM.L (SP)+,A1 ; Restore the world
|
|
UNLK A6
|
|
RTS
|
|
|
|
ENDFUNC
|
|
|
|
END
|