boot3/Libs/InterfaceSrcs/FILES.a
Elliot Nunn 5b0f0cc134 Bring in CubeE sources
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.
2017-12-26 10:02:57 +08:00

894 lines
25 KiB
Plaintext

include 'macintosh.a'
;-------------------------------------------------------------------------------
;
; Files.a
;
; Implements the C interface for file manager register based traps.
; Note: routines appear in same order as "Inside Macintosh"
;
; Copyright Apple Computer, Inc. 1984 - 1989
; All rights reserved.
; Written by Dan Smith 15-Nov-84 (converted version of the pascal interface)
;
; Modifications:
; June 19,1986: MikeS: changed pbhsetvinfo to pbsetvinfo
; Feb 20,1986 Dan Smith & Mike Shannon changed GetWDInfo to get around rom bug
; May 2, 1986 Mike Shannon changed PBGetCatInfo to get around rom bug
; May 12,1986 Mike Shannon: save & restore d2 in FInitQueue
; *** MPW 2.0 ***
; 11 Feb 88 KLH Changed C headers to work with new C compiler:
; Changed to using standard glue in Interface.o, so
; much glue removed from CInterface.o.
; *** MPW 3.0d4 ***
; 8 Mar 88 KLH rename changed to fsrename to avoid ANSI conflict
; *** MPW 3.0a2 ***
; 4 Dec 89 JAL moved fsrename, fsdelete, StringIn, and StringOut to runtime.o
* ******************************************************************************
;
; High-level Routines
;
; Interface for file system and IO functions which do not require
; a parameter block
;
* ******************************************************************************
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; Accessing Volumes
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; short getvinfo(drvNum,volName,vRefNum,freeBytes)
; short drvNum;
; char *volName;
; short *vRefNum;
; int *freeBytes;
BLANKS ON
STRING ASIS
getvinfo func EXPORT
import StringOut
link a6,#-IOVQElSize ; get space for Control p-block
lea -IOVQElSize(a6),a0 ; Point a0 at the block
move.l 12(a6),IOVNPtr(a0) ; volume name pointer
move.w 10(a6),IOVDrvNum(a0) ; drive number
clr.w IOVolIndex(a0) ; no volume queue index
_GetVolInfo ; result in d0
move.l 16(a6),a1 ; pointer to vRefNum
move.w IOVRefNum(a0),(a1) ; return volume ref num
; now calculate the number of free bytes on the volume by multiplying
; allocation block size * free allocation blocks
; would ideally like to multiply long * integer but since mulu only
; multiplies two ints, to allow for a larger than 16 bit allocation
; block size we shift it right by 9 (since we know it to be a multiple
; of 512 and then shift the result back.
move.l IOVAlBlkSiz(a0),d1 ; num bytes in an allocation block
asr.l #8,d1 ; shift over by 8
asr.l #1,d1 ; and one more
mulu IOVFrBlk(a0),d1 ; multiply by number of free blocks
asl.l #1,d1 ; shift back to the left
asl.l #8,d1
move.l 20(a6),a1 ; pointer to free bytes
move.l d1,(a1) ; return the value
jmp StringOut ; convert name to c string
;-------------------------------------------------------------------------------
;
; short getvol(volName,vRefNum)
; char *volName;
; short *vRefNum;
;
getvol func EXPORT
import StringOut
link a6,#-IOVQElSize ; get space for Control p-block
lea -IOVQElSize(a6),a0 ; Point a0 at the block
move.l 8(a6),IOVNPtr(a0) ; pointer to volume name
_GetVol
move.l 12(a6),a1 ; pointer to drive number
move.w IOVRefNum(a0),(a1) ; return drive number
jmp StringOut ; convert name to c string
;-------------------------------------------------------------------------------
;
; short setvol(volName,vRefNum)
; char *volName;
; short *vRefNum;
setvol func EXPORT
import StringIn
import StringOut
jsr StringIn ; convert name to pascal string
link a6,#-IOVQElSize ; get space for Control p-block
lea -IOVQElSize(a6),a0 ; Point a0 at the block
move.l 8(a6),IOVNPtr(a0) ; Ptr to desired volume name
move.w 14(a6),IOVRefNum(a0) ; desired default drive number
_SetVol
jmp StringOut ; convert name to c string
;-------------------------------------------------------------------------------
;
; short flushvol(volName,vRefNum)
; char *volName;
; short *vRefNum;
;
flushvol func EXPORT
import StringIn
import StringOut
jsr StringIn ; convert name to pascal string
link a6,#-IOVQElSize ; get space for Control p-block
lea -IOVQElSize(a6),a0 ; Point a0 at the block
move.w 14(a6),IOVRefNum(a0) ; drive to be unmounted
move.l 8(a6),IOVNPtr(a0) ; volume name pointer
_FlushVol
jmp StringOut ; convert name to c string
;-------------------------------------------------------------------------------
;
; short unmountvol(volName,vRefNum)
; char *volName;
; short *vRefNum;
;
unmountvol func EXPORT
import StringIn
import StringOut
jsr StringIn ; convert name to pascal string
link a6,#-IOVQElSize ; get space for Control p-block
lea -IOVQElSize(a6),a0 ; Point a0 at the block
move.w 14(a6),IOVRefNum(a0) ; drive to be unmounted
move.l 8(a6),IOVNPtr(a0) ; volume name pointer
_UnmountVol
jmp StringOut ; convert name to c string
;-------------------------------------------------------------------------------
;
; short eject(volName,vRefNum)
; char *volName;
; short *vRefNum;
;
eject func EXPORT
import StringIn
import StringOut
jsr StringIn ; convert name to pascal string
link a6,#-IOVQElSize ; get space for Control p-block
lea -IOVQElSize(a6),a0 ; Point a0 at the block
move.w 14(a6),IOVRefNum(a0) ; drive to be unmounted
move.l 8(a6),IOVNPtr(a0) ; volume name pointer
_Eject
jmp StringOut ; convert name to c string
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; Changing File Contents
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; short create(fileName,vRefNum,creator,fileType)
; char *fileName;
; short vRefNum;
; int creator,fileType;
;
create func EXPORT
import StringIn
import StringOut
jsr StringIn ; convert name to pascal string
link a6,#-IOFQELSIZE ; make room on stack for cmd block
lea -IOFQELSIZE(a6),a0 ; address of cmd block
move.l 8(a6),IOFileName(a0) ; set Ptr to filename
move.w 14(a6),IOVRefNum(a0) ; set volume ref num
clr.b IOFileType(a0) ; clear type, permissions (version field)
_Create
tst.w d0 ; error?
bne.s crDone ; yes, don't bother setting type
clr.w IOFDirIndex(a0) ; clear directory index
_GetFileInfo ; get the previous info
; transfer the user defined finder info words (16 bytes)
move.l a0,d0 ; save Ptr to param block
lea IOFlUsrWds(a0),a1 ; where to copy user words
move.l 20(a6),(a1)+ ; enter in the new file type
move.l 16(a6),(a1) ; enter in the new file creator
_SetFileInfo
crDone
jmp StringOut ; convert name to c string
;-------------------------------------------------------------------------------
;
; short fsopen(fileName,vRefNum,refNum)
; char *fileName;
; short vRefNum,*refNum;
;
fsopen func EXPORT
import StringIn
import StringOut
jsr StringIn ; convert name to pascal string
link a6,#-IOQELSIZE ; make room on stack for cmd block
lea -IOQELSIZE(a6),a0 ; address of cmd block
move.l 8(a6),IOFileName(a0) ; set Ptr to filename
move.w 14(a6),IODrvNum(a0) ; drive number
clr.b IOFileType(a0) ; file type
clr.b IOPermssn(a0) ; open for read/write
clr.l IOOwnBuf(a0) ; use system buffer
_Open
move.l 16(a6),a1 ; return the refnum
move.w IORefNum(a0),(a1)
jmp StringOut ; convert name to c string
;-------------------------------------------------------------------------------
;
; short openrf(fileName,vRefNum,refNum)
; char *fileName;
; short vRefNum,*refNum;
;
;
openrf func EXPORT
import StringIn
import StringOut
jsr StringIn ; convert name to pascal string
link a6,#-IOQELSIZE ; make room on stack for cmd block
lea -IOQELSIZE(a6),a0 ; address of cmd block
move.l 8(a6),IOFileName(a0) ; set Ptr to filename
move.w 14(a6),IOVRefNum(a0) ; set volume ref num
clr.b IOFileType(a0) ; clear type (version field)
clr.b IOPermssn(a0) ; open for read/write
clr.l IOOwnBuf(a0) ; use system buffer
_OpenRF
move.l 16(a6),a1 ; Ptr to refNum
move.w IORefNum(a0),(a1) ; return the refNum
jmp StringOut ; convert name to c string
;-------------------------------------------------------------------------------
;
; short FSRead(refNum,count,buffPtr)
; short refNum;
; int *count;
; Ptr buffPtr;
;
; short FSWrite(refNum,count,buffPtr)
; short refNum;
; int *count;
; Ptr buffPtr;
;
;;
;;FSRead func EXPORT
;; export FSWrite
;;
;; SF d1 ; set up read
;; bra.s DoBlk
;;
;;FSWrite
;; ST d1 ; set up write
;;
;;DoBlk
;; link a6,#-IOQELSIZE ; make room on stack for cmd block
;; lea -IOQELSIZE(a6),a0 ; address of cmd block
;;
;; move.l 16(a6),IOBuffer(a0) ; buffer address
;; move.w 10(a6),IORefNum(a0) ; refnum
;; move.l 12(a6),a1 ; address of the count
;; move.l (a1),IOByteCount(a0) ; read count
;; clr.w IOPosMode(a0) ; no special mode
;; clr.l IOPosOffset(a0) ; clear offset
;;
;; tst.b d1 ; look for read or write
;; bne.s @1
;; _READ
;; bra.s @2
;;@1 _WRITE
;;@2
;;
;; move.l 12(a6),a1 ; address of the count
;; move.l IONumDone(a0),(a1) ; return count read
;;
;; ext.l d0 ; sign extend error code
;; unlk a6
;; rts
;-------------------------------------------------------------------------------
;
; short GetFPos(refNum,filePos)
; short refNum;
; int *filePos;
;
;;GetFPos func EXPORT
;;
;; link a6,#-IOQELSIZE ; make room on stack for cmd block
;; lea -IOQELSIZE(a6),a0 ; address of cmd block
;; move.w 10(a6),IORefNum(a0) ; set refnum
;; _GetFPos
;; move.l 12(a6),a1 ; Ptr to logical length variable
;; move.l IOPosOffset(a0),(a1) ; return logical end of file
;; ext.l d0 ; sign extend error code
;; unlk a6
;; rts
;-------------------------------------------------------------------------------
;
; short SetFPos(refNum,posMode,posOff)
; short refNum,posMode;
; int posOff;
;
;;SetFPos func EXPORT
;;
;; link a6,#-IOQELSIZE ; make room on stack for cmd block
;; lea -IOQELSIZE(a6),a0 ; address of cmd block
;; move.w 10(a6),IORefNum(a0) ; set refnum
;; move.w 14(a6),IOPosMode(a0) ; positioning information
;; move.l 16(a6),IOPosOffset(a0) ; new file position
;; _SetFPos
;; ext.l d0 ; sign extend error code
;; unlk a6
;; rts
;-------------------------------------------------------------------------------
;
; short GetEOF(refNum,logEOF)
; short refNum;
; int *logEOF;
;
;;GetEOF func EXPORT
;;
;; link a6,#-IOQELSIZE ; make room on stack for cmd block
;; lea -IOQELSIZE(a6),a0 ; address of cmd block
;; move.w 10(a6),IORefNum(a0) ; set refnum
;; _GetEOF
;; move.l 12(a6),a1 ; Ptr to logical length variable
;; move.l IOLEOF(a0),(a1) ; return logical end of file
;; ext.l d0 ; sign extend error code
;; unlk a6
;; rts
;-------------------------------------------------------------------------------
;
; short SetEOF(refNum,logEOF)
; short refNum;
; int logEOF;
;
;;SetEOF func EXPORT
;;
;; link a6,#-IOQELSIZE ; make room on stack for cmd block
;; lea -IOQELSIZE(a6),a0 ; address of cmd block
;; move.w 10(a6),IORefNum(a0) ; set refnum
;; move.l 12(a6),IOLEOF(a0) ; the desired end of file
;; _SetEOF
;; ext.l d0 ; sign extend error code
;; unlk a6
;; rts
;-------------------------------------------------------------------------------
;
; short Allocate(refNum,count)
; short refNum;
; int *count;
;
;;Allocate func EXPORT
;;
;; link a6,#-IOQELSIZE ; make room on stack for cmd block
;; lea -IOQELSIZE(a6),a0 ; address of cmd block
;; move.l 12(a6),a1 ; Ptr to requested byte count
;; move.l (a1),IOReqCount(a0) ;
;; move.w 10(a6),IORefNum(a0) ; set refnum
;; _Allocate
;; move.l IOActCount(a0),(a1) ; return actual byte count
;; ext.l d0 ; sign extend error code
;; unlk a6
;; rts
;-------------------------------------------------------------------------------
;
;
; OSErr GetVRefNum(pathRefNum,vRefNum)
; short pathRefNum;
; short *vRefNum;
;;
;;GetVRefNum func EXPORT
;; move.l 4(sp),d0 ; get the fileRefNum
;; move.l d0,d1 ; duplicate
;; move.l FCBSPtr,a0 ; ptr to file-control-block buffer
;; cmp.w (a0),d1 ; is refNum too large?
;; bcc.s endError ; br if so
;; move.l FCBVPtr(a0,d1),a0 ; get ptr to volume control block
;; move.w VCBVRefNum(a0),d1 ; return vRefNum
;; moveq #0,d0 ; no err
;; bra.s endG
;;endError moveq #0,d1 ; default refum
;; move.w #rfNumErr,d0 ; ref num error
;;endG move.l 8(sp),a0 ; get vRefNum address
;; move.w d1,(a0) ; put it there
;; rts ; return
;-------------------------------------------------------------------------------
;
; short FSClose(refNum)
; short refNum;
;
;;FSClose func EXPORT
;;
;; link a6,#-IOQELSIZE ; make room on stack for cmd block
;; lea -IOQELSIZE(a6),a0 ; address of cmd block
;; move.w 10(a6),IORefNum(a0) ; get the refnum param
;; _CLOSE ; result returned in d0
;; ext.l d0 ; sign extend error code
;; unlk a6
;; rts
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; Changing Information About Files
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; short getfinfo(fileName,vRefNum,fndrInfo)
; char *fileName;
; short vRefNum;
; FInfo *fndrInfo;
;
getfinfo func EXPORT
import StringIn
import StringOut
jsr StringIn ; convert name to pascal string
link a6,#-IOFQELSIZE ; make room on stack for cmd block
lea -IOFQELSIZE(a6),a0 ; address of cmd block
move.l 8(a6),IOFileName(a0) ; set Ptr to filename
move.w 14(a6),IOVRefNum(a0) ; set volume ref num
clr.b IOFileType(a0) ; (version field)
clr.w IOFDirIndex(a0) ; clear directory index
_GetFileInfo
move.w d0,-(sp) ; save result
; transfer the user defined finder info words (16 bytes) into result
lea IOFlUsrWds(a0),a0 ; where to copy from
move.l 16(a6),a1 ; where to copy to
moveq #16,d0 ; 16 bytes of information
_BlockMove
lea -IOFQELSIZE(a6),a0 ; address of cmd block
move.w (sp)+,d0 ; short result in d0
jmp StringOut ; convert name to c string
;-------------------------------------------------------------------------------
;
; short setfinfo(fileName,vRefNum,fndrInfo)
; char *fileName;
; short vRefNum;
; FInfo *fndrInfo;
;
setfinfo func EXPORT
import StringIn
import StringOut
jsr StringIn ; convert name to pascal string
link a6,#-IOFQELSIZE ; make room on stack for cmd block
lea -IOFQELSIZE(a6),a0 ; restore a0
move.l 8(a6),IOFileName(a0) ; set Ptr to filename
move.w 14(a6),IOVRefNum(a0) ; set volume ref num
clr.b IOFileType(a0) ; (version field)
clr.w IOFDirIndex(a0) ; clear directory index
_GetFileInfo
; transfer the user defined finder info words (16 bytes)
lea IOFlUsrWds(a0),a1 ; where to copy user words
move.l 16(a6),a0 ; where the user words are now
moveq #16,d0 ; 16 bytes of information
_BlockMove
lea -IOFQELSIZE(a6),a0 ; restore a0
_SetFileInfo
jmp StringOut ; convert name to c string
;-------------------------------------------------------------------------------
;
; short setflock(fileName,vRefNum)
; char *fileName;
; short vRefNum;
;
;
setflock func EXPORT
import StringIn
import StringOut
jsr StringIn ; convert name to pascal string
link a6,#-IOQELSIZE ; make room on stack for cmd block
lea -IOQELSIZE(a6),a0 ; address of cmd block
move.l 8(a6),IOFileName(a0) ; set Ptr to filename
move.w 14(a6),IOVRefNum(a0) ; set volume ref num
clr.b IOFileType(a0) ; clear type (version field)
_SetFilLock
jmp StringOut ; convert name to c string
;-------------------------------------------------------------------------------
;
; short rstflock(fileName,vRefNum)
; char *fileName;
; short vRefNum;
;
rstflock func EXPORT
import StringIn
import StringOut
jsr StringIn ; convert name to pascal string
link a6,#-IOQELSIZE ; make room on stack for cmd block
lea -IOQELSIZE(a6),a0 ; address of cmd block
move.l 8(a6),IOFileName(a0) ; set Ptr to filename
move.w 14(a6),IOVRefNum(a0) ; set volume ref num
clr.b IOFileType(a0) ; clear type (version field)
_RstFilLock
jmp StringOut ; convert name to c string
* ******************************************************************************
;
; Low-level Routines
;
* ******************************************************************************
; void FInitQueue()
;;
;;FInitQueue proc EXPORT
;; move.l d2,-(sp) ; Mike Shannon, May 12,1986
;; _FInitQueue
;; move.l (sp)+,d2
;; rts ; return
; void AddDrive(drvrRefNum,drvNum,QEl);
; short drvrRefNum,drvNum;
; drvQElPtr qEL;
;;
;;AddDrive proc EXPORT
;; move.l 12(sp),a0 ; Ptr to memory for queue element
;; move.w 10(sp),d0 ; drive number
;; swap d0 ; put it in high word
;; move.w 6(sp),d0 ; driver ref num
;; _AddDrive
;; rts
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; Accessing Volumes
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; short PBMountVol (paramBlock)
; short PBGetVInfo (paramBlock,async)
; short PBGetVol (paramBlock,async)
; short PBSetVol (paramBlock,async)
; short PBFlushVol (paramBlock,async)
; short PBUnmountVol(paramBlock)
; short PBOffLine (paramBlock)
; short PBEject (paramBlock)
;
; PBMountVol calls can only be made synchronously
;
;;PBMountVol proc EXPORT
;; move.l 4(sp),a0 ; get param pointer.
;; _MountVol ; tell OS to do it synchronously
;; ext.l d0 ; sign extend error code
;; rts ; return to caller
;;PBGetVInfo proc EXPORT
;; OsCall _GetVolInfo
;;PBGetVol proc EXPORT
;; OsCall _GetVol
;;PBSetVol proc EXPORT
;; OsCall _SetVol
;;PBFlushVol proc EXPORT
;; OsCall _FlushVol
;
; PBUnmountVol calls can only be made synchronously
;
;;PBUnmountVol proc EXPORT
;; move.l 4(sp),a0 ; get param pointer.
;; _UnmountVol ; tell OS to do it synchronously
;; ext.l d0 ; sign extend error code
;; rts ; return to caller
;
; PBOffLine calls can only be made synchronously
;
;;PBOffLine proc EXPORT
;; move.l 4(sp),a0 ; get param pointer.
;; _OffLine ; tell OS to do it synchronously
;; ext.l d0 ; sign extend error code
;; rts ; return to caller
;
; PBEject calls can only be made synchronously
;
;;PBEject proc EXPORT
;; move.l 4(sp),a0 ; get param pointer.
;; _Eject ; tell OS to do it synchronously
;; ext.l d0 ; sign extend error code
;; rts ; return to caller
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; Changing File Contents
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; short PBCreate (paramBlock,async)
; short PBOpen (paramBlock,async)
; short PBOpenRF (paramBlock,async)
; short PBRead (paramBlock,async)
; short PBWrite (paramBlock,async)
; short PBGetFPos (paramBlock,async)
; short PBSetFPos (paramBlock,async)
; short PBGetEOF (paramBlock,async)
; short PBSetEOF (paramBlock,async)
; short PBAllocate (paramBlock,async)
; short PBFlushFile (paramBlock,async)
; short PBClose (paramBlock,async)
;;PBCreate proc EXPORT
;; OsCall _Create
;;PBOpen proc EXPORT
;; OsCall _Open
;;PBOpenRF proc EXPORT
;; OsCall _OpenRF
;;PBRead proc EXPORT
;; OsCall _Read
;;PBWrite proc EXPORT
;; OsCall _Write
;;PBGetFPos proc EXPORT
;; OsCall _GetFPos
;;PBSetFPos proc EXPORT
;; OsCall _SetFPos
;;PBGetEOF proc EXPORT
;; OsCall _GetEOF
;;PBSetEOF proc EXPORT
;; OsCall _SetEOF
;;PBAllocate proc EXPORT
;; OsCall _Allocate
;;PBFlushFile proc EXPORT
;; OsCall _FlushFile
;;PBClose proc EXPORT
;; OsCall _Close
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; Changing Information About Files
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; short PBGetFInfo (paramBlock,async)
; short PBSetFInfo (paramBlock,async)
; short PBSetFLock (paramBlock,async)
; short PBRstFLock (paramBlock,async)
; short PBSetFVers (paramBlock,async)
; short PBRename (paramBlock,async)
; short PBDelete (paramBlock,async)
;
;;PBGetFInfo proc EXPORT
;; OsCall _GetFileInfo
;;PBSetFInfo proc EXPORT
;; OsCall _SetFileInfo
;;PBSetFLock proc EXPORT
;; OsCall _SetFilLock
;;PBRstFLock proc EXPORT
;; OsCall _RstFilLock
;;PBSetFVers proc EXPORT
;; OsCall _SetFilType
;;PBRename proc EXPORT
;; OsCall _Rename
;;PBDelete proc EXPORT
;; OsCall _Delete
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; Hierarchical File System Calls
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; OSErr PBOpenWD (paramBlock,aSync)
; OSErr PBCloseWD (paramBlock,aSync)
; OSErr PBHSetVol (paramBlock,aSync)
; OSErr PBHGetVol (paramBlock,aSync)
; OSErr PBCatMove (paramBlock,aSync)
; OSErr PBDirCreate (paramBlock,aSync)
; OSErr PBGetWDInfo (paramBlock,aSync)
; OSErr PBGetFCBInfo (paramBlock,aSync)
; OSErr PBGetCatInfo (paramBlock,aSync)
; OSErr PBSetCatInfo (paramBlock,aSync)
; OSErr PBAllocContig (paramBlock,aSync)
;;PBOpenWD proc EXPORT
;; OSCall _OpenWD
;;PBCloseWD proc EXPORT
;; OSCall _CloseWD
;;PBHSetVol proc EXPORT
;; OSCall _HSetVol
;;PBHGetVol proc EXPORT
;; OSCall _HGetVol
;;PBCatMove proc EXPORT
;; OSCall _CatMove
;;PBDirCreate proc EXPORT
;; OSCall _DirCreate
;;PBGetWDInfo proc EXPORT
;; clr.l d1 ; *** ROM bug fix ***
;; move.l 4(sp),a0 ; get param pointer.
;; move.l 8(sp),d0 ; Get ASync flag.
;; bne.s @1
;; _GetWDInfo ; tell OS to do it Synchronously
;; bra.s @2
;;@1 _GetWDInfo ,ASYNC ; Tell OS to do it Asynchronously
;;@2 ext.l d0 ; sign extend error code
;; rts ; return to caller
;;PBGetFCBInfo proc EXPORT
;; OSCall _GetFCBInfo
;;PBGetCatInfo proc EXPORT
;; MOVE.L 4(sp), A0
;; CLR.B ioFileType(A0)
;; Oscall _GetCatInfo
;;PBSetCatInfo proc EXPORT
;; OSCall _SetCatInfo
;;PBAllocContig proc EXPORT
;; OSCall _AllocContig
;;PBLockRange proc EXPORT
;; OSCall _LockRng
;;PBUnLockRange proc EXPORT
;; OSCall _UnLockRng
; OSErr PBSetVInfo (paramBlock,aSync)
; OSErr PBHGetVInfo (paramBlock,aSync)
; OSErr PBHOpen (paramBlock,aSync)
; OSErr PBHOpenRF (paramBlock,aSync)
; OSErr PBHCreate (paramBlock,aSync)
; OSErr PBHDelete (paramBlock,aSync)
; OSErr PBHRename (paramBlock,aSync)
; OSErr PBHRstFLock (paramBlock,aSync)
; OSErr PBHSetFLock (paramBlock,aSync)
; OSErr PBHGetFInfo (paramBlock,aSync)
; OSErr PBHSetFInfo (paramBlock,aSync)
;;PBSetVInfo proc EXPORT
;; OSCall _SetVolInfo
;;PBHGetVInfo proc EXPORT
;; OSCall _HGETVINFO
;;PBHOpen proc EXPORT
;; OSCall _HOpen
;;PBHOpenRF proc EXPORT
;; OSCall _HOpenRF
;;PBHCreate proc EXPORT
;; OSCall _HCreate
;;PBHDelete proc EXPORT
;; OSCall _HDelete
;;PBHRename proc EXPORT
;; OSCall _HRename
;;PBHRstFLock proc EXPORT
;; OSCall _HRstFLock
;;PBHSetFLock proc EXPORT
;; OSCall _HSetFLock
;;PBHGetFInfo proc EXPORT
;; OSCall _HGetFileInfo
;;PBHSetFInfo proc EXPORT
;; OSCall _HSetFileInfo
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; Accessing Queues
;
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; QHdrPtr GetFSQHdr()
;
;;GetFSQHdr proc EXPORT
;;
;; move.l #FSQHdr,d0
;; rts
;-------------------------------------------------------------------------------
;
; QHdrPtr GetDrvQHdr()
;
;;GetDrvQHdr proc EXPORT
;;
;; move.l #DrvQHdr,d0
;; rts
;-------------------------------------------------------------------------------
;
; QHdrPtr GetVCBQHdr()
;
;;GetVCBQHdr proc EXPORT
;;
;; move.l #VCBQHdr,d0
;; rts
END