mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-07-05 09:29:00 +00:00
90 lines
2.0 KiB
Plaintext
90 lines
2.0 KiB
Plaintext
|
;
|
|||
|
; File: BTreecGlue.a
|
|||
|
;
|
|||
|
; Contains: This is the C glue file for BTree Manager using Pascal calling convention.
|
|||
|
;
|
|||
|
; Written by: Kenny SC. Tung
|
|||
|
;
|
|||
|
; Copyright: <09> 1989-1990 by Apple Computer, Inc., all rights reserved.
|
|||
|
;
|
|||
|
; Change History (most recent first):
|
|||
|
;
|
|||
|
; <2> 2/6/90 KST Adding a new call, BTUpdateKD.
|
|||
|
; <1> 2/6/90 KST Checking into BBS for the first time.
|
|||
|
;
|
|||
|
; To Do:
|
|||
|
;
|
|||
|
|
|||
|
INCLUDE 'traps.a'
|
|||
|
INCLUDE 'BTreeEqu.a'
|
|||
|
|
|||
|
btmain PROC
|
|||
|
EXPORT BTINIT, BTOPEN, BTClose, BTGETINFO, BTInsRec, BTSearch
|
|||
|
EXPORT BTGetRec, BTDelete, BTSetRec, BTReplRec, BTFlush ; <7/6/89 KSCT>
|
|||
|
EXPORT BTCleanUp, BTRsrvAccess, BTRelAccess, BTGetUid, BTUpdateKD
|
|||
|
|
|||
|
BTINIT MOVEQ #btInitN,D0 ; 0
|
|||
|
BRA.S GCommon
|
|||
|
|
|||
|
BTOPEN MOVEQ #btOpenN,D0 ; 1
|
|||
|
BRA.S GCommon
|
|||
|
|
|||
|
BTClose MOVEQ #btCloseN,D0 ; 2
|
|||
|
BRA.S GCommon
|
|||
|
|
|||
|
BTInsRec MOVEQ #btInsertN,D0 ; 3
|
|||
|
BRA.S GCommon
|
|||
|
|
|||
|
BTSetRec MOVEQ #btSetRecN,D0 ; 4
|
|||
|
BRA.S GCommon
|
|||
|
|
|||
|
BTReplRec MOVEQ #btReplRecN,D0 ; 5
|
|||
|
BRA.S GCommon
|
|||
|
|
|||
|
BTSearch MOVEQ #btSearchN,D0 ; 6
|
|||
|
BRA.S GCommon ; set up A0 and D1
|
|||
|
|
|||
|
BTGetRec MOVEQ #btGetRecN,D0 ; 7
|
|||
|
BRA.S GCommon
|
|||
|
|
|||
|
BTDelete MOVEQ #btDeleteN,D0 ; 8
|
|||
|
BRA.S GCommon ; set up A0 and D1
|
|||
|
|
|||
|
BTGetInfo MOVEQ #btGetInfoN,D0 ; 9
|
|||
|
BRA.S GCommon
|
|||
|
|
|||
|
BTFlush MOVEQ #btFlushN,D0 ; 10 <7/6/89 KSCT>
|
|||
|
BRA.S GCommon
|
|||
|
|
|||
|
BTCleanUp MOVEQ #BTCleanUpN,D0 ; 11
|
|||
|
BRA.S GCommon
|
|||
|
|
|||
|
BTRsrvAccess MOVEQ #BTRsrvAccessN,D0 ; 12
|
|||
|
BRA.S GCommon
|
|||
|
|
|||
|
BTRelAccess MOVEQ #BTRelAccessN,D0 ; 13
|
|||
|
BRA.S GCommon
|
|||
|
|
|||
|
BTGetUid MOVEQ #BTGetUidN,D0 ; 14
|
|||
|
BRA.S GCommon
|
|||
|
|
|||
|
BTUpdateKD MOVEQ #BTUpdateKDN,D0 ; 15
|
|||
|
|
|||
|
GCommon ;; (A7) = return address of main
|
|||
|
;; Input: 4(A7)=async, 6(SP).L= param, 10(SP)=status. D0 = index
|
|||
|
MOVE.L 6(A7),A0 ; ioParam
|
|||
|
; boolean and char are all 32 bits long in C
|
|||
|
TST.W 4(A7) ; but only 16 bits long in Pascal
|
|||
|
BEQ.S @sync ; sync call
|
|||
|
_BtreeDispatch ,Async
|
|||
|
BRA.S @ret
|
|||
|
@sync
|
|||
|
_BtreeDispatch ; Btree Manager trap
|
|||
|
|
|||
|
@ret MOVEA.L (SP)+,A0 ; return address
|
|||
|
ADDA.L #6,SP ; pop parameters
|
|||
|
MOVE D0,(SP) ; stuff error code
|
|||
|
JMP (A0) ; and return
|
|||
|
ENDP
|
|||
|
END
|