mirror of
https://github.com/elliotnunn/supermario.git
synced 2025-02-26 02:29:04 +00:00
365 lines
9.6 KiB
Plaintext
365 lines
9.6 KiB
Plaintext
;
|
|
; File: TerminalMgr.a
|
|
;
|
|
; Written by: Byron Han
|
|
;
|
|
; Copyright: © 1988-1990 by Apple Computer, Inc., all rights reserved.
|
|
;
|
|
; Change History (most recent first):
|
|
;
|
|
; <3> 8/23/90 kaz Changed BRA table to an offset table
|
|
; <2> 7/10/90 dba change names of routines so they do not conflict with glue to
|
|
; call the same routines
|
|
; <1> 3/14/90 BBH first checked in
|
|
;
|
|
; MODIFICATION HISTORY :
|
|
; 8/1/88 1.0D1
|
|
;
|
|
; 4/6/89 BBH renamed TMGetTermName to TMGetToolName
|
|
; 4/11/89 JNG Removed TMGetRefCon, TMSetRefCon, TMSetUserData, TMGetUserData,
|
|
; and TMGetVersion these are now in the CTBCore routines.
|
|
; 4/17/89 JNG Moved TMDefault and TMValidate into Core.
|
|
; 4/20/89 BBH Moved scripting, localization, and choose, and setup code into core
|
|
; 4/24/89 JNG Moved TMResume TMMenu TMEvent TMActivate TMReset TMIdle to CTBCore
|
|
; BBH Changed TMGetTermEnvirons to return short
|
|
; Added environsProc to TMNew
|
|
; 3 May 1989 BBH Changed TMGetSelect to pass back length as function result
|
|
; 9 May 1989 BBH Changed TMStream to take flags as parameter
|
|
; Bug in TMAddSearch was a missing RTS instruction
|
|
; 31 May 1989 JNG New Glue/Entry interface
|
|
; 2 June 1989 JNG Finished Glue
|
|
; 6/7/89 kaz Made TMGetLine a procedure instead of a function
|
|
; 6/26/89 BBH Added TMPChoose, TMPeekLine routines
|
|
; 8/14/89 BBH Added constant curTMversion
|
|
;
|
|
|
|
INCLUDE 'Traps.a'
|
|
INCLUDE 'Terminals.a'
|
|
INCLUDE 'CommToolboxPriv.a'
|
|
|
|
MACRO
|
|
_ExternalCore &selector
|
|
_RealExternalCore &selector,#TMSel
|
|
ENDM
|
|
|
|
;
|
|
; A0.L -> pointer to the routine selector record
|
|
; D0.L -> function result
|
|
;
|
|
|
|
TMEntry MAIN EXPORT
|
|
IMPORT __InitTM, __TMNew, __TMDispose, __TMKey, __TMUpdate, __TMPaint,\
|
|
__TMActivate, __TMClick, __TMStream,\
|
|
__TMReset, __TMClear, __TMResize, __TMGetSelect, __TMGetLine, \
|
|
__TMPeekLine, \
|
|
__TMSetSelection, __TMScroll, __TMIdle,\
|
|
__TMGetTMVersion, __TMAddSearch, __TMRemoveSearch, \
|
|
__TMClearSearch, __TMGetCursor, __TMGetTermEnvirons,\
|
|
__TMDoTermKey, __TMCountTermKeys, __TMGetIndTermKey, \
|
|
__TMGetErrorString;
|
|
|
|
BRA.S RealEntry
|
|
Version
|
|
DC.W curTMversion ; version 1
|
|
RealEntry
|
|
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 TMStart, A1 ; point to offset table
|
|
ADD.W 0(A1,D1.W), A1 ; add the offset
|
|
JMP (A1) ; go there
|
|
|
|
TMStart
|
|
DC.W @InitTM - TMStart; 1
|
|
DC.W @TMNew - TMStart; 2
|
|
DC.W @TMDispose - TMStart; 3
|
|
DC.W @TMKey - TMStart; 4
|
|
DC.W @TMUpdate - TMStart; 5
|
|
DC.W @TMPaint - TMStart; 6
|
|
DC.W @TMActivate - TMStart; 7
|
|
DC.W @TMResume - TMStart; 8
|
|
DC.W @TMClick - TMStart; 9
|
|
DC.W @TMStream - TMStart; A
|
|
DC.W @TMMenu - TMStart; B
|
|
DC.W @TMReset - TMStart; C
|
|
DC.W @TMClear - TMStart; D
|
|
DC.W @TMResize - TMStart; E
|
|
DC.W @TMGetSelect - TMStart; F
|
|
DC.W @TMGetLine - TMStart; 10
|
|
DC.W @TMSetSelection - TMStart; 11
|
|
DC.W @TMScroll - TMStart; 12
|
|
DC.W @TMIdle - TMStart; 13
|
|
DC.W @TMValidate - TMStart; 14
|
|
DC.W @TMDefault - TMStart; 15
|
|
DC.W @TMSetupPreflight - TMStart; 16
|
|
DC.W @TMSetupSetup - TMStart; 17
|
|
DC.W @TMSetupFilter - TMStart; 18
|
|
DC.W @TMSetupItem - TMStart; 19
|
|
DC.W @TMSetupCleanup - TMStart; 1A
|
|
DC.W @TMGetConfig - TMStart; 1B
|
|
DC.W @TMSetConfig - TMStart; 1C
|
|
DC.W @TMIntlToEnglish - TMStart; 1D
|
|
DC.W @TMEnglishToIntl - TMStart; 1E
|
|
DC.W @TMGetProcID - TMStart; 1F
|
|
DC.W @TMGetToolName - TMStart; 20
|
|
DC.W @TMSetRefCon - TMStart; 21
|
|
DC.W @TMGetRefCon - TMStart; 22
|
|
DC.W @TMSetUserData - TMStart; 23
|
|
DC.W @TMGetUserData - TMStart; 24
|
|
DC.W @TMGetVersion - TMStart; 25
|
|
DC.W @TMGetTMVersion - TMStart; 26
|
|
DC.W @TMAddSearch - TMStart; 27
|
|
DC.W @TMRemoveSearch - TMStart; 28
|
|
DC.W @TMClearSearch - TMStart; 29
|
|
DC.W @TMGetCursor - TMStart; 2A
|
|
DC.W @TMGetTermEnvirons - TMStart; 2B
|
|
DC.W @TMChoose - TMStart; 2C
|
|
DC.W @TMEvent - TMStart; 2D
|
|
DC.W @TMDoTermKey - TMStart; 2E
|
|
DC.W @TMCountTermKeys - TMStart; 2F
|
|
DC.W @TMGetIndTermKey - TMStart; 30
|
|
DC.W @TMSetupPostflight - TMStart; 31
|
|
DC.W @TMPeekLine - TMStart; 32
|
|
DC.W @TMPChoose - TMStart; 33
|
|
DC.W @TMSetupXCleanup - TMStart; 34
|
|
DC.W @TMGetErrorString - TMStart; 35
|
|
|
|
|
|
@InitTM CLR.W -(SP) ; 0x01
|
|
JSR __InitTM
|
|
MOVE.W (SP)+,D0
|
|
RTS
|
|
|
|
@TMSetRefCon ; 258
|
|
_ExternalCore #$40A
|
|
@TMGetRefCon ; 259
|
|
_ExternalCore #$40B
|
|
@TMSetUserData ; 260
|
|
_ExternalCore #$40C
|
|
@TMGetUserData ; 261
|
|
_ExternalCore #$40D
|
|
@TMGetVersion ; 0x25
|
|
_ExternalCore #$40E
|
|
@TMGetToolName ; 0x20
|
|
_ExternalCore #$40F
|
|
@TMValidate ; 0x14
|
|
_ExternalCore #$410
|
|
@TMDefault ; 0x15
|
|
_ExternalCore #$411
|
|
@TMSetupPreflight
|
|
_ExternalCore #$412
|
|
@TMSetupSetup
|
|
_ExternalCore #$413
|
|
@TMSetupFilter
|
|
_ExternalCore #$415
|
|
@TMSetupItem
|
|
_ExternalCore #$414
|
|
@TMSetupCleanup
|
|
_ExternalCore #$416
|
|
@TMSetupXCleanup
|
|
_ExternalCore #$427
|
|
@TMSetupPostflight
|
|
_ExternalCore #$417
|
|
@TMGetConfig
|
|
_ExternalCore #$418
|
|
@TMSetConfig
|
|
_ExternalCore #$419
|
|
@TMIntlToEnglish
|
|
_ExternalCore #$41A
|
|
@TMEnglishToIntl
|
|
_ExternalCore #$41B
|
|
@TMChoose
|
|
_ExternalCore #$41C
|
|
@TMPChoose
|
|
_ExternalCore #$426
|
|
@TMGetProcID
|
|
_ExternalCore #$41D
|
|
@TMResume
|
|
_ExternalCore #$41E
|
|
@TMMenu
|
|
_ExternalCore #$41F
|
|
@TMEvent
|
|
_ExternalCore #$420
|
|
@TMActivate
|
|
_ExternalCore #$421
|
|
@TMIdle
|
|
_ExternalCore #$422
|
|
@TMReset
|
|
_ExternalCore #$424
|
|
@TMGetErrorString
|
|
_ExternalCore #$428
|
|
|
|
@TMNew ; 0x02
|
|
CLR.L -(SP) ; make room
|
|
MOVE.L 44(A0), -(SP) ; termRect
|
|
MOVE.L 40(A0), -(SP) ; viewRect
|
|
MOVE.L 36(A0), -(SP) ; flags
|
|
MOVE.W 34(A0), -(SP) ; procID
|
|
MOVE.L 30(A0), -(SP) ; owner
|
|
MOVE.L 26(A0), -(SP) ; sendProc
|
|
MOVE.L 22(A0), -(SP) ; cacheProc
|
|
MOVE.L 18(A0), -(SP) ; breakProc
|
|
MOVE.L 14(A0), -(SP) ; clikLoop
|
|
MOVE.L 10(A0), -(SP) ; environsProc
|
|
MOVE.L 6(A0), -(SP) ; refCon
|
|
MOVE.L 2(A0), -(SP) ; userData
|
|
|
|
JSR __TMNew
|
|
MOVE.L (SP)+, D0
|
|
RTS
|
|
|
|
@TMDispose ; 0x03
|
|
MOVE.L 2(A0), -(SP) ; hTerm
|
|
JSR __TMDispose
|
|
RTS
|
|
|
|
@TMKey ; 0x04
|
|
MOVE.L 6(A0), -(SP) ; hTerm
|
|
MOVE.L 2(A0), -(SP) ; theEvent
|
|
JSR __TMKey
|
|
RTS
|
|
|
|
@TMUpdate ; 0x05
|
|
MOVE.L 6(A0), -(SP) ; hTerm
|
|
MOVE.L 2(A0), -(SP) ; visRgn
|
|
JSR __TMUpdate
|
|
RTS
|
|
|
|
@TMPaint ; 0x06
|
|
MOVE.L 10(A0), -(SP) ; hTerm
|
|
MOVE.L 6(A0), -(SP) ; theLine
|
|
MOVE.L 2(A0), -(SP) ; theRect
|
|
JSR __TMPaint
|
|
RTS
|
|
|
|
@TMClick ; 0x09
|
|
MOVE.L 6(A0), -(SP) ; hTerm
|
|
MOVE.L 2(A0), -(SP) ; theEvent
|
|
JSR __TMClick
|
|
RTS
|
|
|
|
@TMStream ; 0x0A
|
|
CLR.L -(SP) ; make room
|
|
MOVE.L 12(A0), -(SP) ; hTerm
|
|
MOVE.L 8(A0), -(SP) ; theBuffer
|
|
MOVE.L 4(A0), -(SP) ; length
|
|
MOVE.W 2(A0), -(SP) ; flags
|
|
JSR __TMStream
|
|
MOVE.L (SP)+,D0 ; return value
|
|
RTS
|
|
|
|
@TMClear ; 0x0D
|
|
MOVE.L 2(A0), -(SP) ; hTerm
|
|
JSR __TMClear
|
|
RTS
|
|
|
|
@TMResize ; 0x0E
|
|
MOVE.L 6(A0), -(SP) ; hTerm
|
|
MOVE.L 2(A0), -(SP) ; newViewRect
|
|
JSR __TMResize
|
|
RTS
|
|
|
|
@TMGetSelect ; 0x0F
|
|
CLR.L -(SP) ; make room
|
|
MOVE.L 10(A0), -(SP) ; hTerm
|
|
MOVE.L 6(A0), -(SP) ; theData
|
|
MOVE.L 2(A0), -(SP) ; theType (VAR)
|
|
JSR __TMGetSelect
|
|
MOVE.L (SP)+, D0 ; function result
|
|
RTS
|
|
|
|
@TMGetLine ; 0x10
|
|
MOVE.L 8(A0), -(SP) ; hTerm
|
|
MOVE.W 6(A0), -(SP) ; lineNo
|
|
MOVE.L 2(A0), -(SP) ; theLine (VAR)
|
|
JSR __TMGetLine
|
|
RTS
|
|
|
|
@TMSetSelection ; 0x11
|
|
MOVE.L 8(A0), -(SP) ; hTerm
|
|
MOVE.L 4(A0), -(SP) ; theRect
|
|
MOVE.W 2(A0), -(SP) ; selType
|
|
JSR __TMSetSelection
|
|
RTS
|
|
|
|
@TMScroll ; 0x12
|
|
MOVE.L 6(A0), -(SP) ; hTerm
|
|
MOVE.W 4(A0), -(SP) ; dH
|
|
MOVE.W 2(A0), -(SP) ; dV
|
|
JSR __TMScroll
|
|
RTS
|
|
|
|
@TMGetTMVersion ; 0x26
|
|
LEA Version, A0 ; get version
|
|
MOVE.W (A0), D0 ; return
|
|
RTS ; and return
|
|
|
|
@TMAddSearch ; 0x27
|
|
clr.W -(SP) ; make room for refnum
|
|
move.L 16(A0), -(SP) ; hTerm
|
|
move.L 12(A0), -(SP) ; theString
|
|
move.L 8(A0), -(SP) ; theRect
|
|
move.W 6(A0), -(SP) ; searchType
|
|
move.L 2(A0), -(SP) ; callBack
|
|
JSR __TMAddSearch
|
|
MOVE.W (SP)+, D0 ; return point
|
|
RTS ; return please
|
|
|
|
@TMRemoveSearch ; 0x28
|
|
MOVE.L 4(A0), -(SP) ; hTerm
|
|
MOVE.W 2(A0), -(SP) ; refnum
|
|
JSR __TMRemoveSearch
|
|
RTS
|
|
|
|
@TMClearSearch ; 0x29
|
|
MOVE.L 2(A0), -(SP) ; hTerm
|
|
JSR __TMClearSearch
|
|
RTS
|
|
|
|
@TMGetCursor ; 0x2A
|
|
CLR.L -(SP) ; make room
|
|
MOVE.L 4(A0), -(SP) ; hTerm
|
|
MOVE.W 2(A0), -(SP) ; cursType
|
|
JSR __TMGetCursor
|
|
MOVE.L (SP)+, D0 ; return point
|
|
RTS
|
|
|
|
@TMGetTermEnvirons ; 0x2B
|
|
CLR.W -(SP) ; make room
|
|
MOVE.L 6(A0), -(SP) ; hTerm
|
|
MOVE.L 2(A0), -(SP) ; (pointer to) theEnvirons
|
|
JSR __TMGetTermEnvirons
|
|
MOVE.W (SP)+, D0 ; return point
|
|
RTS
|
|
|
|
@TMDoTermKey ; 0x2E
|
|
CLR.W -(SP) ; make room
|
|
MOVE.L 6(A0), -(SP) ; hTerm
|
|
MOVE.L 2(A0), -(SP) ; theKey
|
|
JSR __TMDoTermKey
|
|
MOVE.W (SP)+, D0 ; return point
|
|
RTS
|
|
|
|
@TMCountTermKeys ; 0x2F
|
|
CLR.W -(SP) ; make room
|
|
MOVE.L 2(A0), -(SP) ; hTerm
|
|
JSR __TMCountTermKeys
|
|
MOVE.W (SP)+, D0 ; return point
|
|
RTS
|
|
|
|
@TMGetIndTermKey ; 0x30
|
|
MOVE.L 8(A0), -(SP) ; hTerm
|
|
MOVE.W 6(A0), -(SP) ; id
|
|
MOVE.L 2(A0), -(SP) ; theKey (pointer to)
|
|
JSR __TMGetIndTermKey
|
|
RTS
|
|
|
|
@TMPeekLine ; 0x32
|
|
MOVE.L 8(A0), -(SP) ; hTerm
|
|
MOVE.W 6(A0), -(SP) ; lineNo
|
|
MOVE.L 2(A0), -(SP) ; theLine (VAR)
|
|
JSR __TMPeekLine
|
|
RTS
|
|
|
|
END |