mac-rom/OS/HFS/Extensions/BTreeMgr/BTreeGlue.a

90 lines
2.0 KiB
Plaintext
Raw Normal View History

;
; 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