;Assembly language include file for Handspring extensions ;Created 9/27/99 AJD ; HsCreators.h ; Apps hsFileCAdvCalculator equ 'HsPr' hsFileCCardSetup equ 'HsCd' hsFileCSampleCardWelcome equ 'CWel' hsFileCHandTerminal equ 'HTrm' hsFileCFileMover equ 'FlMv' hsFileCFileInstaller equ 'FlIn' hsFileCDateBook3H equ 'HsDB' hsFileCBackup equ 'HsBk' ; ------- Types hsFileTCardSetup equ 'HsSU' ; Patches ; ------- Types hsFileTHandspringHal equ 'HwAl' hsFileTHandspringPatch equ 'HsPt' hsFileTHandspringUIObj equ 'HsUi' ; Extensions hsFileCHandspringExt equ 'HsEx' ; Libraries hsFileCSampleSerLib equ 'HsCs' hsFileCUsbLib equ 'HsUs' hsFileCFfsCSegLib equ 'FfMg' hsFileCLdbMgr equ 'Hsm' ; ------- Types hsFileTCodeSeg equ 'CSeg' ; ROM tokens hsFileCFFSInfoTok1 equ 'Ffs1' hsFileCFfsCrType equ 'Ffs2' hsFileCCardAccessTime equ 'HsAT' hsFileCCardWelcomeDuringReset equ 'HsWR' ; HsErrorClasses.h hsAppErrorClass equ appErrorClass hsFfsErrorClass equ appErrorClass|$0100 hsFlmErrorClass equ appErrorClass|$0200 hsFlashErrorClass equ appErrorClass|$0300 hsFttErrorClass equ appErrorClass|$0400 hsFtcErrorClass equ appErrorClass|$0500 ; HsExt.h ; Handspring API Equates hsFtrCreator equ 'hsEx' hsFtrIDVersion equ 0 hsFtrIDModDate equ 1 hsFtrIDLdbMgrLibRefNum equ 2 hsFtrIDNoMemSemaphore equ 3 ; Error codes hsErrorClass equ appErrorClass+$0100 hsErrNotSupported equ hsErrorClass|1 hsErrInvalidCardNum equ hsErrorClass|2 hsErrReadOnly equ hsErrorClass|3 hsErrInvalidParam equ hsErrorClass|4 hsErrBufferTooSmall equ hsErrorClass|5 hsErrInvalidCardHdr equ hsErrorClass|6 hsErrCardPatchAlreadyInstalled equ hsErrorClass|7 hsErrCardPatchNotInstalled equ hsErrorClass|8 ; Key codes and events hsMaxCardEvent equ $07 hsMaxAppEvent equ $03 hsChrRangeMin equ $1600 hsChrRangeMax equ $16FF hsChrMidLeftDot equ hsChrRangeMin hsChrMidRightDot equ hsChrRangeMin+1 hsChrBotLeftDot equ hsChrRangeMin+2 hsChrBotRightDot equ hsChrRangeMin+3 hsChrCradle2OnChr equ hsChrRangeMin+4 hsChrCradle2OffChr equ hsChrRangeMin+5 hsChrCardStatusChg equ hsChrRangeMin+6 hsChrCardUserFirst equ hsChrRangeMin+$80 hsChrCardUserLast equ hsChrCardUserFirst+hsMaxCardEvent hsChrAppUserFirst equ hsChrCardUserLast+1 hsChrAppUserLast equ hsChrAppUserFirst+hsMaxAppEvent ; Special Databases that can be present on a card hsSysAppLaunchCmdInstall equ sysAppLaunchCmdCustomBase+0 hsSysAppLaunchCmdRemove equ sysAppLaunchCmdCustomBase+1 struct HsSysAppLaunchCmdInstallType cardNo.w isReset.b reserved.b setupCardNo.w setupDbID.l endstruct struct HsSysAppLaunchCmdRemoveType cardNo.w endstruct ;hsWelcomeAppName dc.b 'CardWelcome',0 ;hsLibAliasDefault dc.b 'Serial Library',0 ;hsLibAliasHotSyncLocal dc.b '*HsLoc SerLib',0 ;hsLibAliasHotSyncModem dc.b '*HsMdm SerLib',0 ;hsLibAliasIrda dc.b '*Irda SerLib',0 ;hsLibAliasConsole dc.b '*Cons SerLib',0 ;hsLibNameBuiltInSerial dc.b 'BuiltIn SerLib',0 hsDbCopyFlagPreserveCrDate equ $0001 hsDbCopyFlagPreserveModDate equ $0002 hsDbCopyFlagPreserveModNum equ $0004 hsDbCopyFlagPreserveBckUpDate equ $0008 hsDbCopyFlagOKToOverwrite equ $0010 hsDbCopyFlagDeleteFirst equ $0020 hsDbCopyFlagPreserveUniqueIDSeed equ $0040 hsDmGetNextDBFlagOneCard equ $00001 ; HsCardPwrDownEnum hsCardPwrDownNormal equ 0 hsCardPwrDownLowVoltage equ 1 ;// Prototypes for the various handlers that can be installed for a card ;typedef void (*HsCardIntHandlerPtr) (DWord cardParam, Boolean* sysAwakeP); ;typedef void (*HsCardPwrHandlerPtr) (DWord cardParam, Boolean sleep,Word /*HsCardPwrDownEnum*/ reason); ;typedef Boolean (*HsCardEvtHandlerPtr) (DWord cardParam, Word evtNum, ; HsCardAttrEnum hsCardAttrRemovable equ 0 hsCardAttrHwInstalled equ 1 hsCardAttrSwInstalled equ 2 hsCardAttrCsBase equ 3 hsCardAttrCsSize equ 4 hsCardAttrAccessTime equ 5 hsCardAttrReset equ 6 hsCardAttrIntEnable equ 7 hsCardAttrCardParam equ 8 hsCardAttrIntHandler equ 9 hsCardAttrPwrHandler equ 10 hsCardAttrEvtHandler equ 11 hsCardAttrLogicalBase equ 12 hsCardAttrLogicalSize equ 13 hsCardAttrHdrOffset equ 14 hsCardAttrLast equ 15 ; HsPrefEnum hsPrefSerialLibDef equ 0 hsPrefSerialLibHotSyncLocal equ 1 hsPrefSerialLibHotSyncModem equ 2 hsPrefSerialLibIrda equ 3 hsPrefSerialLibConsole equ 4 hsPrefLast equ 5 ;// ------------------------------------------------------------------------------ ;// Prototype of the App Event Handler that can be setup using ;// HsAppEventHandlerSet() and triggered using HsAppEventPost(). The ;// evtRefCon is a copy of evtRefCon passed to HsAppEventHandlerSet() ;// ;// This routine should not rely on globals since it may be called ;// while in the context of another app's action code. ;// ------------------------------------------------------------------------------ ;typedef Boolean (*HsAppEvtHandlerPtr) (DWord evtRefcon, Word evtNum, Word evtParam); sysTrapHsSelector equ sysTrapSysReserved4 hsSelectorBase equ 0 ; HsSelEnum hsSelInfo equ hsSelectorBase hsSelPrvInit equ hsSelectorBase+1 hsSelPrvCallSafely equ hsSelectorBase+2 hsSelPrvCallSafelyNewStack equ hsSelectorBase+3 hsSelDatabaseCopy equ hsSelectorBase+4 hsSelExtKeyboardEnable equ hsSelectorBase+5 hsSelCardAttrGet equ hsSelectorBase+6 hsSelCardAttrSet equ hsSelectorBase+7 hsSelCardEventPost equ hsSelectorBase+8 hsSelPrvErrCatchListP equ hsSelectorBase+9 hsSelPrefGet equ hsSelectorBase+10 hsSelPrefSet equ hsSelectorBase+11 hsSelDmGetNextDBByTypeCreator equ hsSelectorBase+12 hsSelDmGetNextDBInit equ hsSelectorBase+13 hsSelCardHdrUpdate equ hsSelectorBase+14 hsSelAppEventHandlerSet equ hsSelectorBase+15 hsSelAppEventPost equ hsSelectorBase+16 hsSelUsbCommStatePtr equ hsSelectorBase+17 hsSelCardPatchInstall equ hsSelectorBase+18 hsSelCardPatchRemove equ hsSelectorBase+19 hsSelEvtResetAutoOffTimer equ hsSelectorBase+20 hsSelDmDatabaseUniqueIDSeed equ hsSelectorBase+21 hsSelAboutHandspringApp equ hsSelectorBase+22 hsSelDmDatabaseIsOpen equ hsSelectorBase+23 hsSelDmDatabaseIsProtected equ hsSelectorBase+24 hsSelDlkForceSlowSync equ hsSelectorBase+25 hsSelLast equ hsSelectorBase+26 ;hsNumSels equ hsSelLast-hsSelBase hsNumSels equ hsSelLast-hsSelectorBase ;SYS_SEL_TRAP(trapNum, selector) = (0x3f3c, selector, m68kTrapInstr+sysDispatchTrapNum,trapNum) ; move.w #selector,-(sp) ; trap #15 ; dc.w sysTrapHsSelector ;trapNum ;//============================================================================= ;// HsCardErrTry / Catch / support ;// ;// --------------------------------------------------------------------- ;// ;// Typical Use: ;// x = 0; ;// HsCardErrTry ;// { ;// // access card in some manner that may fail ;// value = cardBaseP[0] ;// ;// // do other stuff too ;// x = 1; // Set local variable in Try ;// ;// // access card again ;// value = cardBaseP[1] ;// ;// } ;// ;// HsCardErrCatch ;// { ;// // Recover or cleanup after a failure in above Try block ;// // The code in this block does NOT execute if the above ;// // try block completes without a card removal ;// if (x > 1) ;// SysBeep(1); ;// ;// } HsCardErrEnd ;// ;//============================================================================= ; ;// Try & Catch macros ;#define HsCardErrTry \ ; { \ ; ErrExceptionType _tryObject; \ ; Ptr* _listP; \ ; _listP = HsPrvErrCatchListP(); \ ; _tryObject.err = 0; \ ; _tryObject.nextP = (ErrExceptionPtr)*_listP; \ ; *_listP = (Ptr)&_tryObject; \ ; if (ErrSetJump(_tryObject.state) == 0) \ ; { ; ; ;// NOTE: All variables referenced in and after the ErrCatch must ;// be declared volatile. Here's how for variables and pointers: ;// volatile Word oldMode; ;// ShlDBHdrTablePtr volatile hdrTabP = nil; ;// ;// If you have many local variables after the ErrCatch you may ;// opt to put the ErrTry and ErrCatch in a separate enclosing function. ;#define HsCardErrCatch \ ; *_listP = (Ptr)_tryObject.nextP; \ ; } \ ; else \ ; { \ ; *_listP = (Ptr)_tryObject.nextP; ; ; ;#define HsCardErrEnd \ ; } \ ; } ;============================================================================= ; Prototypes ;============================================================================= ;DWord HsInfo (Word item, Word paramSize, void* paramP) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelInfo); proc HsInfo(item.w,paramSize.w,paramP.l) beginproc move.l paramP(a6),-(sp) move.w paramSize(a6),-(sp) move.w item(a6),-(sp) move.w #hsSelInfo,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsDatabaseCopy (Word srcCardNo, LocalID srcDbID, Word dstCardNo, char* dstNameP, DWord hsDbCopyFlags, char* tmpNameP, LocalID* dstDbIDP) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelDatabaseCopy); proc HsDatabaseCopy(srcCardNo.w,srcDbID.l,dstCardNo.w,dstNameP.l,hsDbCopyFlags.l,tmpNameP.l,dstDbIDP.l) beginproc move.l dstDbIDP(a6),-(sp) move.l tmpNameP(a6),-(sp) move.l hsDbCopyFlags(a6),-(sp) move.l dstNameP(a6),-(sp) move.w dstCardNo(a6),-(sp) move.l srcDbID(a6),-(sp) move.w srcCardNo(a6),-(sp) move.w #hsSelDatabaseCopy,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsExtKeyboardEnable (Boolean enable) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelExtKeyboardEnable); proc HsExtKeyboardEnable(enable.b) beginproc move.w enable(a6),-(sp) move.w #hsSelExtKeyboardEnable,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsCardAttrGet (Word cardNo, Word /*HsCardAttrEnum*/ attr, void* valueP) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelCardAttrGet); proc HsCardAttrGet(cardNo.w,attr.w,valueP.l) beginproc move.l valueP(a6),-(sp) move.w attr(a6),-(sp) move.w cardNo(a6),-(sp) move.w #hsSelCardAttrGet,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsCardAttrSet (Word cardNo, Word /*HsCardAttrEnum*/ attr, void* valueP) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelCardAttrSet); proc HsCardAttrSet(cardNo.w,attr.w,valueP.l) beginproc move.l valueP(a6),-(sp) move.w attr(a6),-(sp) move.w cardNo(a6),-(sp) move.w #hsSelCardAttrSet,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsCardEventPost (Word cardNo, Word evtNum, Word evtParam) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelCardEventPost); proc HsCardEventPost(cardNo.w,evtNum.w,evtParam.w) beginproc move.w evtParam(a6),-(sp) move.w evtNum(a6),-(sp) move.w cardNo(a6),-(sp) move.w #hsSelCardEventPost,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Ptr* HsPrvErrCatchListP (void) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelPrvErrCatchListP); proc HsPrvErrCatchListP() beginproc move.w #hsSelPrvErrCatchListP,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsPrefGet (Word /*HsPrefEnum*/ pref, void* bufP, DWord* prefSizeP) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelPrefGet); proc HsPrefGet(pref.w,bufP.l,prefSizeP.l) beginproc move.l prefSizeP(a6),-(sp) move.l bufP(a6),-(sp) move.w pref(a6),-(sp) move.w #hsSelPrefGet,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsPrefSet (Word /*HsPrefEnum*/ pref, void* bufP, DWord prefSize) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelPrefSet); proc HsPrefSet(pref.w,bufP.l,prefSize.l) beginproc move.l prefSize(a6),-(sp) move.l bufP(a6),-(sp) move.w pref(a6),-(sp) move.w #hsSelPrefSet,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsDmGetNextDBByTypeCreator (Boolean newSearch, DmSearchStatePtr stateInfoP, ULong type, ULong creator, Boolean onlyLatestVers, UIntPtr cardNoP, LocalID* dbIDP) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelDmGetNextDBByTypeCreator); proc HsDmGetNextDBByTypeCreator(newSearch.b,stateInfoP.l,type.l,creator.l,onlyLatestVers.b,cardNoP.l,dbIDP.l) beginproc move.l dbIDP(a6),-(sp) move.l cardNoP(a6),-(sp) move.w onlyLatestVers(a6),-(sp) move.l creator(a6),-(sp) move.l type(a6),-(sp) move.l stateInfoP(a6),-(sp) move.w newSearch(a6),-(sp) move.w #hsSelDmGetNextDBByTypeCreator,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsDmGetNextDBInit (DmSearchStatePtr stateInfoP, DWord flags, Word cardNo) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelDmGetNextDBInit); proc HsDmGetNextDBInit(stateInfoP.l,flags.l,cardNo.w) beginproc move.w cardNo(a6),-(sp) move.l flags(a6),-(sp) move.l stateInfoP(a6),-(sp) move.w #hsSelDmGetNextDBInit,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsCardHdrUpdate (Word cardNo, void* newCardHdrP) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelCardHdrUpdate); proc HsCardHdrUpdate(cardNo.w,newCardHdrP.l) beginproc move.w cardNo(a6),-(sp) move.l newCardHdrP(a6),-(sp) move.w #hsSelCardHdrUpdate,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsAppEventHandlerSet (HsAppEvtHandlerPtr procP, DWord evtRefCon) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelAppEventHandlerSet); proc HsAppEventHandlerSet(procP.l,evtRefCon.l) beginproc move.l evtRefCon(a6),-(sp) move.l procP(a6),-(sp) move.w #hsSelAppEventHandlerSet,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsAppEventPost (Word evtNum, Word evtParam) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelAppEventPost); proc HsAppEventPost(evtNum.w,evtParam.w) beginproc move.w evtParam(a6),-(sp) move.w evtNum(a6),-(sp) move.w #hsSelAppEventPost,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;DWord* HsUsbCommStatePtr (void) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelUsbCommStatePtr); proc HsUsbCommStatePtr() beginproc move.w #hsSelUsbCommStatePtr,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsCardPatchInstall (Word trapNum, void* procP) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelCardPatchInstall); proc HsCardPatchInstall(trapNum.w,procP.l) beginproc move.l procP(a6),-(sp) move.w trapNum(a6),-(sp) move.w #hsSelCardPatchInstall,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsCardPatchRemove (Word trapNum) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelCardPatchRemove); proc HsCardPatchRemove(trapNum.w) beginproc move.w trapNum(a6),-(sp) move.w #hsSelCardPatchRemove,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;// Macro to get the old routine address of a trap patched using ;// HsCardPatchInstall() ;#define HsCardPatchPrevProc(trapNum,oldProcPP) \ ; FtrGet (hsFileCCardSetup, trapNum, (DWord*)oldProcPP) ;Err HsEvtResetAutoOffTimer (SDWord stayAwakeTicks, Boolean userOn) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelEvtResetAutoOffTimer); proc HsEvtResetAutoOffTimer(stayAwakeTicks.l,userOn.b) beginproc move.w userOn(a6),-(sp) move.l stayAwakeTicks(a6),-(sp) move.w trapNum(a6),-(sp) move.w #hsSelEvtResetAutoOffTimer,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Err HsDmDatabaseUniqueIDSeed (Word cardNo, LocalID dbID, Boolean set, DWord* uniqueIDSeed) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelDmDatabaseUniqueIDSeed); proc HsDmDatabaseUniqueIDSeed(cardNo.w,dbID.l,set.b,uniqueIDSeed.l) beginproc move.l uniqueIDSeed(a6),-(sp) move.w set(a6),-(sp) move.l dbID(a6),-(sp) move.w cardNo(a6),-(sp) move.w trapNum(a6),-(sp) move.w #hsSelDmDatabaseUniqueIDSeed,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;void HsAboutHandspringApp (UInt16 appCardNo, LocalID appDbId, Char* copyrightYearStrP, Char* extraCreditsStrP) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelAboutHandspringApp); proc HsAboutHandspringApp(appCardNo.w,appDbId.l,copyrightYearStrP.l,extraCreditsStrP.l) beginproc move.l extraCreditsStrP(a6),-(sp) move.l copyrightYearStrP(a6),-(sp) move.l appDbId(a6),-(sp) move.w appCardNo(a6),-(sp) move.w trapNum(a6),-(sp) move.w #hsSelAboutHandspringApp,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;// Defined macros to make about box easier to call. ;#define HsAboutHandspringAppWithYearId(yearId) \ ; do \ ; { \ ; UInt16 appCardNo; \ ; LocalID appDbId; \ ; VoidHand yearStrH; \ ; Char* yearStrP; \ ; \ ; yearStrH = DmGetResource (strRsc, yearId); \ ; yearStrP = MemHandleLock (yearStrH); \ ; SysCurAppDatabase(&appCardNo, &appDbId); \ ; HsAboutHandspringApp (appCardNo, appDbId, yearStrP, NULL); \ ; MemPtrUnlock (yearStrP); \ ; DmReleaseResource (yearStrH); \ ; } \ ; while (0) ; ;#define HsAboutHandspringAppWithYearCredId(yearId, creditsId) \ ; do \ ; { \ ; UInt16 appCardNo; \ ; LocalID appDbId; \ ; VoidHand yearStrH, extraStrH; \ ; Char* yearStrP; \ ; Char* extraStrP; \ ; \ ; yearStrH = DmGetResource (strRsc, yearId); \ ; yearStrP = MemHandleLock (yearStrH); \ ; extraStrH = DmGetResource (strRsc, creditsId); \ ; extraStrP = MemHandleLock (extraStrH); \ ; SysCurAppDatabase(&appCardNo, &appDbId); \ ; HsAboutHandspringApp (appCardNo, appDbId, yearStrP, extraStrP); \ ; MemPtrUnlock (extraStrP); \ ; DmReleaseResource (extraStrH); \ ; MemPtrUnlock (yearStrP); \ ; DmReleaseResource (yearStrH); \ ; } \ ; while (0) ;Byte HsDmDatabaseIsOpen (UInt16 cardNo, LocalID dbID) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelDmDatabaseIsOpen); proc HsDmDatabaseIsOpen(cardNo.w,dbID.l) beginproc move.l dbID(a6),-(sp) move.w cardNo(a6),-(sp) move.w trapNum(a6),-(sp) move.w #hsSelDmDatabaseIsOpen,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;Byte HsDmDatabaseIsProtected (UInt16 cardNo, LocalID dbID) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelDmDatabaseIsProtected); proc HsDmDatabaseIsProtected(cardNo.w,dbID.l) beginproc move.l dbID(a6),-(sp) move.w cardNo(a6),-(sp) move.w trapNum(a6),-(sp) move.w #hsSelDmDatabaseIsProtected,-(sp) trap #15 dc.w sysTrapHsSelector endproc ;// ===================================================================== ;// The following API calls are only available for versions 0x02000000 ;// and greater ;// ===================================================================== ;Err HsDlkForceSlowSync (Boolean clearLastPCIID, Boolean clearAllSyncPrefs, BooleanPtr didAnythingP, DWordPtr lastSyncDateP) ; SYS_SEL_TRAP (sysTrapHsSelector, hsSelDlkForceSlowSync); proc HsDlkForceSlowSync(clearLastPCIID.b,clearAllSyncPrefs.b,didAnythingP.l,lastSyncDateP.l) beginproc move.l lastSyncDateP(a6),-(sp) move.l didAnythingP(a6),-(sp) move.w clearAllSyncPrefs(a6),-(sp) move.w clearLastPCIID(a6),-(sp) move.w trapNum(a6),-(sp) move.w #hsSelDlkForceSlowSync,-(sp) trap #15 dc.w sysTrapHsSelector endproc ; UsbMgr.h ;USB_SYS_TRAP equ SYS_TRAP ;usbLibName dc.b 'USB Library',0 usbLibEndpoint1 equ $01 usbLibEndpoint2 equ $02 usbLibFunctionGeneric equ $00 usbLibFunctionDebugger equ $01 usbLibFunctionHotsync equ $02 usbLibFunctionConsole equ $03 usbLibFunctionRemoteFileSys equ $04 usbLibEndpointMask equ $00FF usbLibFunctionMask equ $FF00 usbLibPortDefault equ 0 usbLibPort1 equ 1 usbLibPort2 equ 2 usbLibPortHotsync equ usbLibEndpoint2|(usbLibFunctionHotsync<<8) usbLibPortDebugger equ usbLibEndpoint1|(usbLibFunctionDebugger<<8) usbLibPortConsole equ usbLibEndpoint1|(usbLibFunctionConsole<<8) usbLibPortRemoteFileSys equ usbLibEndpoint2|(usbLibFunctionRemoteFileSys<<8) ;Err UsbLibOpen(UInt16 refNum, UInt16 port, UInt32 baud) ; USB_SYS_TRAP(sysLibTrapOpen); ;Err UsbLibDbgAssureOpen (UInt refNum, UInt port, ULong baud); ;Err UsbLibClose(UInt16 refNum) ; USB_SYS_TRAP(sysLibTrapClose); ;Err UsbLibSleep(UInt16 refNum) ; USB_SYS_TRAP(sysLibTrapSleep); ;Err UsbLibWake(UInt16 refNum) ; USB_SYS_TRAP(sysLibTrapWake); ;Err UsbLibGetSettings(UInt16 refNum, SerSettingsPtr settingsP) ; USB_SYS_TRAP(sysLibTrapCustom); ;Err UsbLibSetSettings(UInt16 refNum, SerSettingsPtr settingsP) ; USB_SYS_TRAP(sysLibTrapCustom+1); ;UInt16 UsbLibGetStatus(UInt16 refNum, BooleanPtr ctsOnP, BooleanPtr dsrOnP) ; USB_SYS_TRAP(sysLibTrapCustom+2); ;Err UsbLibClearErr(UInt16 refNum) ; USB_SYS_TRAP(sysLibTrapCustom+3); ;Err UsbLibSend10(UInt16 refNum, VoidPtr bufP, UInt32 size) ; USB_SYS_TRAP(sysLibTrapCustom+4); ;Err UsbLibSendWait(UInt16 refNum, Long timeout) ; USB_SYS_TRAP(sysLibTrapCustom+5); ;Err UsbLibSendCheck(UInt16 refNum, UInt32* numBytesP) ; USB_SYS_TRAP(sysLibTrapCustom+6); ;Err UsbLibSendFlush(UInt16 refNum) ; USB_SYS_TRAP(sysLibTrapCustom+7); ;Err UsbLibReceive10(UInt16 refNum, VoidPtr bufP, UInt32 bytes, Long timeout) ; USB_SYS_TRAP(sysLibTrapCustom+8); ;Err UsbLibReceiveWait(UInt16 refNum, UInt32 bytes, Long timeout) ; USB_SYS_TRAP(sysLibTrapCustom+9); ;Err UsbLibReceiveCheck(UInt16 refNum, UInt32* numBytesP) ; USB_SYS_TRAP(sysLibTrapCustom+10); ;void UsbLibReceiveFlush(UInt16 refNum, Long timeout) ; USB_SYS_TRAP(sysLibTrapCustom+11); ;Err UsbLibSetReceiveBuffer(UInt16 refNum, VoidPtr bufP, UInt16 bufSize) ; USB_SYS_TRAP(sysLibTrapCustom+12); ;Err UsbLibReceiveWindowOpen(UInt16 refNum, BytePtr* bufPP, UInt32* sizeP) ; USB_SYS_TRAP(sysLibTrapCustom+13); ;Err UsbLibReceiveWindowClose(UInt16 refNum, UInt32 bytesPulled) ; USB_SYS_TRAP(sysLibTrapCustom+14); ;Err UsbLibSetWakeupHandler(UInt16 refNum, SerWakeupHandler procP, UInt32 refCon) ; USB_SYS_TRAP(sysLibTrapCustom+15); ;Err UsbLibPrimeWakeupHandler(UInt16 refNum, UInt16 minBytes) ; USB_SYS_TRAP(sysLibTrapCustom+16); ;Err UsbLibControl(UInt16 refNum, UInt16 op, VoidPtr valueP, UInt16* valueLenP) ; USB_SYS_TRAP(sysLibTrapCustom+17); ;UInt32 UsbLibSend(UInt16 refNum, VoidPtr bufP, UInt32 count, Err* errP) ; USB_SYS_TRAP(sysLibTrapCustom+18); ;UInt32 UsbLibReceive(UInt16 refNum, VoidPtr bufP, UInt32 count, Long timeout, Err* errP) ; USB_SYS_TRAP(sysLibTrapCustom+19); ;ULong UsbLibBlockReceive (UInt16 refNum, VoidPtr dest, ULong bytesToRead, Boolean fixedDest, Boolean destWidth, Long timeout) ; USB_SYS_TRAP(sysLibTrapCustom+20); ;ULong UsbLibBlockReceiveProtected (UInt16 refNum, BytePtr recordP, Word offset, ULong bytesToRead, Long timeout) ; USB_SYS_TRAP(sysLibTrapCustom+21); ;ULong UsbLibBlockSend (UInt16 refNum, VoidPtr src, ULong bytesToSend, Boolean fixedSrc, Byte scrWidth, Long timeout) ; USB_SYS_TRAP(sysLibTrapCustom+22); ;void UsbLibBlockModeEnabled (UInt16 refNum, Boolean enabled) ; USB_SYS_TRAP(sysLibTrapCustom+23);