; Copyright 2018 faddenSoft. All Rights Reserved.
; See the LICENSE.txt file for distribution terms (Apache 2.0).
;
; Adapted from NiftyList, by Dave Lyons.

*SYNOPSIS IIgs ROM symbols

Toolbox         @ $e1/0000      ;System tool dispatcher
UserTool        @ $e1/0008      ;User tool dispatcher
OSKind          @ $e1/00bc      ;1=GS/OS

; This was converted directly from NList.Data.TXT.
*TAG AppleIIgs-Toolbox-Functions

; === System Tools ===
; === tool locator ===
TLBootInit          = $0101     ;()
TLStartUp           = $0201     ;()
TLShutDown          = $0301     ;()
TLVersion           = $0401     ;():Vers
TLReset             = $0501     ;()
TLStatus            = $0601     ;():ActFlg
GetTSPtr            = $0901     ;(SysFlg,TS#):@FPT
SetTSPtr            = $0A01     ;(SysFlg,TS#,@FPT)
GetFuncPtr          = $0B01     ;(SysFlg,Func):@Func
GetWAP              = $0C01     ;(SysFlg,TS#):@WAP
SetWAP              = $0D01     ;(SysFlg,TS#,@WAP)
LoadTools           = $0E01     ;(@ToolTable)
LoadOneTool         = $0F01     ;(TS#,MinVers)
UnloadOneTool       = $1001     ;(TS#)
TLMountVolume       = $1101     ;(X,Y,@L1,@L2,@B1,@B2):Btn#
TLTextMountVolume   = $1201     ;(@L1,@L2,@B1,@B2):Btn#
SaveTextState       = $1301     ;():StateH
RestoreTextState    = $1401     ;(StateH)
MessageCenter       = $1501     ;(Action,Type,MsgH)
SetDefaultTPT       = $1601     ;()
MessageByName       = $1701     ;(CreateF,@inpRec):Created,Type
StartUpTools        = $1801     ;(MemID,ssDesc,ssRef/4):ssRef/4
ShutDownTools       = $1901     ;(ssDesc,ssRef/4)
GetMsgHandle        = $1A01     ;(Flags,MsgRef/4):H
AcceptRequests      = $1B01     ;(@NameStr,UserID,@ReqProc)
SendRequest         = $1C01     ;(ReqCode,How,Target/4,@In,@Out)
; === memory manager ===
MMBootInit          = $0102     ;()
MMStartUp           = $0202     ;():MemID
MMShutDown          = $0302     ;(MemID)
MMVersion           = $0402     ;():Vers
MMReset             = $0502     ;()
MMStatus            = $0602     ;():ActFlg
NewHandle           = $0902     ;(Size/4,MemID,Attr,@loc):H
ReAllocHandle       = $0A02     ;(Size/4,MemID,Attr,@loc,H)
RestoreHandle       = $0B02     ;(H)
AddToOOMQueue       = $0C02     ;(@header)
RemoveFromOOMQueue  = $0D02     ;(@header)
DisposeHandle       = $1002     ;(H)
DisposeAll          = $1102     ;(MemID)
PurgeHandle         = $1202     ;(H)
PurgeAll            = $1302     ;(MemID)
GetHandleSize       = $1802     ;(H):Size/4
SetHandleSize       = $1902     ;(Size/4,H)
FindHandle          = $1A02     ;(@byte):H
FreeMem             = $1B02     ;():FreeBytes/4
MaxBlock            = $1C02     ;():Size/4
TotalMem            = $1D02     ;():Size/4
CheckHandle         = $1E02     ;(H)
CompactMem          = $1F02     ;()
HLock               = $2002     ;(H)
HLockAll            = $2102     ;(MemID)
HUnlock             = $2202     ;(H)
HUnlockAll          = $2302     ;(MemID)
SetPurge            = $2402     ;(PrgLvl,H)
SetPurgeAll         = $2502     ;(PrgLvl,MemID)
PtrToHand           = $2802     ;(@Src,DestH,Count/4)
HandToPtr           = $2902     ;(SrcH,@Dest,Count/4)
HandToHand          = $2A02     ;(SrcH,DestH,Count/4)
BlockMove           = $2B02     ;(@Source,@Dest,Count/4)
RealFreeMem         = $2F02     ;():Size/4
SetHandleID         = $3002     ;(newMemID,theH):oldMemID
; === misc tools ===
MTBootInit          = $0103     ;()
MTStartUp           = $0203     ;()
MTShutDown          = $0303     ;()
MTVersion           = $0403     ;():Vers
MTReset             = $0503     ;()
MTStatus            = $0603     ;():ActFlg
WriteBRam           = $0903     ;(@Buff)
ReadBRam            = $0A03     ;(@Buff)
WriteBParam         = $0B03     ;(Data,Parm#)
ReadBParam          = $0C03     ;(Parm#):Data
ReadTimeHex         = $0D03     ;():WkDay,Mn&Dy,Yr&Hr,Mn&Sec
WriteTimeHex        = $0E03     ;(Mn&Dy,Yr&Hr,Mn&Sec)
ReadAsciiTime       = $0F03     ;(@Buff)
SetVector           = $1003     ;(Vec#,@x)
GetVector           = $1103     ;(Vec#):@x
SetHeartBeat        = $1203     ;(@Task)
DelHeartBeat        = $1303     ;(@Task)
ClrHeartBeat        = $1403     ;()
SysFailMgr          = $1503     ;(Code,@Msg)
GetAddr             = $1603     ;(Ref#):@Parm
ReadMouse           = $1703     ;():X,Y,Stat&Mode
InitMouse           = $1803     ;(Slot)
SetMouse            = $1903     ;(Mode)
HomeMouse           = $1A03     ;()
ClearMouse          = $1B03     ;()
ClampMouse          = $1C03     ;(Xmn,Xmx,Ymn,Ymx)
GetMouseClamp       = $1D03     ;():Xmn,Xmx,Ymn,Ymx
PosMouse            = $1E03     ;(X,Y)
ServeMouse          = $1F03     ;():IntStat
GetNewID            = $2003     ;(Kind):MemID
DeleteID            = $2103     ;(MemID)
StatusID            = $2203     ;(MemID)
IntSource           = $2303     ;(Ref#)
FWEntry             = $2403     ;(A,X,Y,Address):P,A,X,Y
GetTick             = $2503     ;():Ticks/4
PackBytes           = $2603     ;(@StartPtr,@Sz,@OutBf,OutSz):Size
UnPackBytes         = $2703     ;(@Buff,BfSz,@StartPtr,@Sz):Size
Munger              = $2803     ;(@Dst,@DstL,@t,tL,@Rpl,RplL,@Pad):N
GetIRQEnable        = $2903     ;():IntStat
SetAbsClamp         = $2A03     ;(Xmn,Xmx,Ymn,Ymx)
GetAbsClamp         = $2B03     ;():Xmn,Xmx,Ymn,Ymx
SysBeep             = $2C03     ;()
AddToQueue          = $2E03     ;(@newTask,@queueHeader)
DeleteFromQueue     = $2F03     ;(@task,@queueHeader)
SetInterruptState   = $3003     ;(@stateRec,NumBytes)
GetInterruptState   = $3103     ;(@stateRec,NumBytes)
GetIntStateRecSize  = $3203     ;():Size
ReadMouse2          = $3303     ;():xPos,yPos,StatMode
GetCodeResConverter = $3403     ;():@proc
GetROMResource      = $3503     ;(???,???/4):???H
ReleaseROMResource  = $3603     ;(???,???/4)
ConvSeconds         = $3703     ;(convVerb,Secs/4,@Date):SecondsOut/4
SysBeep2            = $3803     ;(beepKind)
VersionString       = $3903     ;(flags,Version/4,@Buffer)
WaitUntil           = $3A03     ;(WaitFromTime,DelayTime):NewTime
StringToText        = $3B03     ;(flags,@String,StrLen,@Buffer):ResFlags,PrntLen
ShowBootInfo        = $3C03     ;(@String,@Icon)
ScanDevices         = $3D03     ;():DevNum
AlertMessage        = $3E03     ;(@Table,MsgNum,@Subs):Button
DoSysPrefs          = $3F03     ;(bitsToClear,bitsToSet):SysPrefs
; === QuickDraw II ===
QDBootInit          = $0104     ;()
QDStartUp           = $0204     ;(DirPg,MastSCB,MaxWid,MemID)
QDShutDown          = $0304     ;()
QDVersion           = $0404     ;():Vers
QDReset             = $0504     ;()
QDStatus            = $0604     ;():ActFlg
GetAddress          = $0904     ;(what):@Table
GrafOn              = $0A04     ;()
GrafOff             = $0B04     ;()
GetStandardSCB      = $0C04     ;():SCB
InitColorTable      = $0D04     ;(@Table)
SetColorTable       = $0E04     ;(Tab#,@SrcTab)
GetColorTable       = $0F04     ;(Tab#,@DestTbl)
SetColorEntry       = $1004     ;(Tab#,Ent#,NewCol)
GetColorEntry       = $1104     ;(Tab#,Ent#):Color
SetSCB              = $1204     ;(Line#,SCB)
GetSCB              = $1304     ;(Line#):SCB
SetAllSCBs          = $1404     ;(SCB)
ClearScreen         = $1504     ;(Color)
SetMasterSCB        = $1604     ;(SCB)
GetMasterSCB        = $1704     ;():SCB
OpenPort            = $1804     ;(@Port)
InitPort            = $1904     ;(@Port)
ClosePort           = $1A04     ;(@Port)
SetPort             = $1B04     ;(@Port)
GetPort             = $1C04     ;():@Port
SetPortLoc          = $1D04     ;(@LocInfo)
GetPortLoc          = $1E04     ;(@LocInfo)
SetPortRect         = $1F04     ;(@Rect)
GetPortRect         = $2004     ;(@Rect)
SetPortSize         = $2104     ;(w,h)
MovePortTo          = $2204     ;(h,v)
SetOrigin           = $2304     ;(h,v)
SetClip             = $2404     ;(RgnH)
GetClip             = $2504     ;(RgnH)
ClipRect            = $2604     ;(@Rect)
HidePen             = $2704     ;()
ShowPen             = $2804     ;()
GetPen              = $2904     ;(@Pt)
SetPenState         = $2A04     ;(@PenSt)
GetPenState         = $2B04     ;(@PenSt)
SetPenSize          = $2C04     ;(w,h)
GetPenSize          = $2D04     ;(@Pt)
SetPenMode          = $2E04     ;(Mode)
GetPenMode          = $2F04     ;():Mode
SetPenPat           = $3004     ;(@Patt)
GetPenPat           = $3104     ;(@Patt)
SetPenMask          = $3204     ;(@Mask)
GetPenMask          = $3304     ;(@Mask)
SetBackPat          = $3404     ;(@Patt)
GetBackPat          = $3504     ;(@Patt)
PenNormal           = $3604     ;()
SetSolidPenPat      = $3704     ;(Color)
SetSolidBackPat     = $3804     ;(Color)
SolidPattern        = $3904     ;(Color,@Patt)
MoveTo              = $3A04     ;(h,v)
Move                = $3B04     ;(dh,dv)
LineTo              = $3C04     ;(h,v)
Line                = $3D04     ;(dh,dv)
SetPicSave          = $3E04     ;(Val/4)
GetPicSave          = $3F04     ;():Val/4
SetRgnSave          = $4004     ;(Val/4)
GetRgnSave          = $4104     ;():Val/4
SetPolySave         = $4204     ;(Val/4)
GetPolySave         = $4304     ;():Val/4
SetGrafProcs        = $4404     ;(@GrafProcs)
GetGrafProcs        = $4504     ;():@GrafProcs
SetUserField        = $4604     ;(Val/4)
GetUserField        = $4704     ;():Val/4
SetSysField         = $4804     ;(Val/4)
GetSysField         = $4904     ;():Val/4
SetRect             = $4A04     ;(@Rect,left,top,right,bot)
OffsetRect          = $4B04     ;(@Rect,dh,dv)
InsetRect           = $4C04     ;(@Rect,dh,dv)
SectRect            = $4D04     ;(@R1,@R2,@DstR):nonEmptyF
UnionRect           = $4E04     ;(@Rect1,@Rect2,@UnionRect)
PtInRect            = $4F04     ;(@Pt,@Rect):Flag
Pt2Rect             = $5004     ;(@Pt1,@Pt2,@Rect)
EqualRect           = $5104     ;(@Rect1,@Rect2):Flag
NotEmptyRect        = $5204     ;(@Rect):Flag
FrameRect           = $5304     ;(@Rect)
PaintRect           = $5404     ;(@Rect)
EraseRect           = $5504     ;(@Rect)
InvertRect          = $5604     ;(@Rect)
FillRect            = $5704     ;(@Rect,@Patt)
FrameOval           = $5804     ;(@Rect)
PaintOval           = $5904     ;(@Rect)
EraseOval           = $5A04     ;(@Rect)
InvertOval          = $5B04     ;(@Rect)
FillOval            = $5C04     ;(@Rect,@Patt)
FrameRRect          = $5D04     ;(@Rect,OvalW,OvalHt)
PaintRRect          = $5E04     ;(@Rect,OvalW,OvalHt)
EraseRRect          = $5F04     ;(@Rect,OvalW,OvalHt)
InvertRRect         = $6004     ;(@Rect,OvalW,OvalHt)
FillRRect           = $6104     ;(@Rect,OvalW,OvalHt,@Patt)
FrameArc            = $6204     ;(@Rect,Ang1,ArcAng)
PaintArc            = $6304     ;(@Rect,Ang1,ArcAng)
EraseArc            = $6404     ;(@Rect,Ang1,ArcAng)
InvertArc           = $6504     ;(@Rect,Ang1,ArcAng)
FillArc             = $6604     ;(@Rect,Ang1,ArcAng,@Patt)
NewRgn              = $6704     ;():RgnH
DisposeRgn          = $6804     ;(RgnH)
CopyRgn             = $6904     ;(SrcRgnH,DestRgnH)
SetEmptyRgn         = $6A04     ;(RgnH)
SetRectRgn          = $6B04     ;(RgnH,left,top,right,bot)
RectRgn             = $6C04     ;(RgnH,@Rect)
OpenRgn             = $6D04     ;()
CloseRgn            = $6E04     ;(RgnH)
OffsetRgn           = $6F04     ;(RgnH,dh,dv)
InsetRgn            = $7004     ;(RgnH,dh,dv)
SectRgn             = $7104     ;(Rgn1H,Rgn2H,DstRgnH)
UnionRgn            = $7204     ;(Rgn1H,Rgn2H,UnionRgnH)
DiffRgn             = $7304     ;(Rgn1H,Rgn2H,DstRgnH)
XorRgn              = $7404     ;(Rgn1H,Rgn2H,DstRgnH)
PtInRgn             = $7504     ;(@Pt,RgnH):Flag
RectInRgn           = $7604     ;(@Rect,RgnH):Flag
EqualRgn            = $7704     ;(Rgn1H,Rgn2H):Flag
EmptyRgn            = $7804     ;(RgnH):Flag
FrameRgn            = $7904     ;(RgnH)
PaintRgn            = $7A04     ;(RgnH)
EraseRgn            = $7B04     ;(RgnH)
InvertRgn           = $7C04     ;(RgnH)
FillRgn             = $7D04     ;(RgnH,@Patt)
ScrollRect          = $7E04     ;(@Rect,dh,dv,UpdtRgnH)
PaintPixels         = $7F04     ;(@ppParms)
AddPt               = $8004     ;(@SrcPt,@DestPt)
SubPt               = $8104     ;(@SrcPt,@DstPt)
SetPt               = $8204     ;(@Pt,h,v)
EqualPt             = $8304     ;(@Pt1,@Pt2):Flag
LocalToGlobal       = $8404     ;(@Pt)
GlobalToLocal       = $8504     ;(@Pt)
Random              = $8604     ;():N
SetRandSeed         = $8704     ;(Seed/4)
GetPixel            = $8804     ;(Hor,Vert):Pixel
ScalePt             = $8904     ;(@Pt,@SrcRect,@DstRect)
MapPt               = $8A04     ;(@Pt,@SrcRect,@DstRect)
MapRect             = $8B04     ;(@Rect,@SrcRect,@DstRect)
MapRgn              = $8C04     ;(MapRgnH,@SrcRect,@DstRect)
SetStdProcs         = $8D04     ;(@StdProcRec)
SetCursor           = $8E04     ;(@Curs)
GetCursorAdr        = $8F04     ;():@Curs
HideCursor          = $9004     ;()
ShowCursor          = $9104     ;()
ObscureCursor       = $9204     ;()
SetMouseLoc         = $9304     ; ???
SetFont             = $9404     ;(FontH)
GetFont             = $9504     ;():FontH
GetFontInfo         = $9604     ;(@InfoRec)
GetFontGlobals      = $9704     ;(@FGRec)
SetFontFlags        = $9804     ;(Flags)
GetFontFlags        = $9904     ;():Flags
SetTextFace         = $9A04     ;(TextF)
GetTextFace         = $9B04     ;():TextF
SetTextMode         = $9C04     ;(TextM)
GetTextMode         = $9D04     ;():TextM
SetSpaceExtra       = $9E04     ;(SpEx/4f)
GetSpaceExtra       = $9F04     ;():SpEx/4f
SetForeColor        = $A004     ;(Color)
GetForeColor        = $A104     ;():Color
SetBackColor        = $A204     ;(BackCol)
GetBackColor        = $A304     ;():BackCol
DrawChar            = $A404     ;(Char)
DrawString          = $A504     ;(@Str)
DrawCString         = $A604     ;(@cStr)
DrawText            = $A704     ;(@Text,Len)
CharWidth           = $A804     ;(Char):Width
StringWidth         = $A904     ;(@Str):Width
CStringWidth        = $AA04     ;(@cStr):Width
TextWidth           = $AB04     ;(@Text,Len):Width
CharBounds          = $AC04     ;(Char,@Rect)
StringBounds        = $AD04     ;(@Str,@Rect)
CStringBounds       = $AE04     ;(@cStr,@Rect)
TextBounds          = $AF04     ;(@Text,Len,@Rect)
SetArcRot           = $B004     ;(ArcRot)
GetArcRot           = $B104     ;():ArcRot
SetSysFont          = $B204     ;(FontH)
GetSysFont          = $B304     ;():FontH
SetVisRgn           = $B404     ;(RgnH)
GetVisRgn           = $B504     ;(RgnH)
SetIntUse           = $B604     ;(Flag)
OpenPicture         = $B704     ;(@FrameRect):PicH
PicComment          = $B804     ;(Kind,DataSz,DataH)
ClosePicture        = $B904     ;()
DrawPicture         = $BA04     ;(PicH,@DstRect)
KillPicture         = $BB04     ;(PicH)
FramePoly           = $BC04     ;(PolyH)
PaintPoly           = $BD04     ;(PolyH)
ErasePoly           = $BE04     ;(PolyH)
InvertPoly          = $BF04     ;(PolyH)
FillPoly            = $C004     ;(PolyH,@Patt)
OpenPoly            = $C104     ;():PolyH
ClosePoly           = $C204     ;()
KillPoly            = $C304     ;(PolyH)
OffsetPoly          = $C404     ;(PolyH,dh,dv)
MapPoly             = $C504     ;(PolyH,@SrcRect,@DstRect)
SetClipHandle       = $C604     ;(RgnH)
GetClipHandle       = $C704     ;():RgnH
SetVisHandle        = $C804     ;(RgnH)
GetVisHandle        = $C904     ;():RgnH
InitCursor          = $CA04     ;()
SetBufDims          = $CB04     ;(MaxW,MaxFontHt,MaxFBRext)
ForceBufDims        = $CC04     ;(MaxW,MaxFontHt,MaxFBRext)
SaveBufDims         = $CD04     ;(@SizeInfo)
RestoreBufDims      = $CE04     ;(@SizeInfo)
GetFGSize           = $CF04     ;():FGSize
SetFontID           = $D004     ;(FontID/4)
GetFontID           = $D104     ;():FontID/4
SetTextSize         = $D204     ;(TextSz)
GetTextSize         = $D304     ;():TextSz
SetCharExtra        = $D404     ;(ChEx/4f)
GetCharExtra        = $D504     ;():ChEx/4f
PPToPort            = $D604     ;(@SrcLoc,@SrcRect,X,Y,Mode)
InflateTextBuffer   = $D704     ;(NewW,NewHt)
GetRomFont          = $D804     ;(@Rec)
GetFontLore         = $D904     ;(@Rec,RecSize):Size
Get640Colors        = $DA04     ;():@PattTable
Set640Color         = $DB04     ;(color)
; === desk manager ===
DeskBootInit        = $0105     ;()
DeskStartUp         = $0205     ;()
DeskShutDown        = $0305     ;()
DeskVersion         = $0405     ;():Vers
DeskReset           = $0505     ;()
DeskStatus          = $0605     ;():ActFlg
SaveScrn            = $0905     ;()
RestScrn            = $0A05     ;()
SaveAll             = $0B05     ;()
RestAll             = $0C05     ;()
InstallNDA          = $0E05     ;(ndaH)
InstallCDA          = $0F05     ;(cdaH)
ChooseCDA           = $1105     ;()
SetDAStrPtr         = $1305     ;(AltDispH,@StrTbl)
GetDAStrPtr         = $1405     ;():@StrTbl
OpenNDA             = $1505     ;(ItemID):Ref#
CloseNDA            = $1605     ;(Ref#)
SystemClick         = $1705     ;(@EvRec,@Wind,fwRes)
SystemEdit          = $1805     ;(eType):Flag
SystemTask          = $1905     ;()
SystemEvent         = $1A05     ;(Mods,Where/4,When/4,Msg/4,What):F
GetNumNDAs          = $1B05     ;():N
CloseNDAbyWinPtr    = $1C05     ;(@Wind)
CloseAllNDAs        = $1D05     ;()
FixAppleMenu        = $1E05     ;(MenuID)
AddToRunQ           = $1F05     ;(@taskHeader)
RemoveFromRunQ      = $2005     ;(@taskHeader)
RemoveCDA           = $2105     ;(cdaH)
RemoveNDA           = $2205     ;(ndaH)
GetDeskAccInfo      = $2305     ;(flags,daRef/4,BufSize,@Buffer)
CallDeskAcc         = $2405     ;(flags,daRef/4,Action,Data/4):Result
GetDeskGlobal       = $2505     ;(selector):Value/4
; === event manager ===
EMBootInit          = $0106     ;()
EMStartUp           = $0206     ;(DirPg,qSz,Xmn,Xmx,Ymn,Ymx,MemID)
EMShutDown          = $0306     ;()
EMVersion           = $0406     ;():Vers
EMReset             = $0506     ;()
EMStatus            = $0606     ;():ActFlg
DoWindows           = $0906     ;():DirPg
GetNextEvent        = $0A06     ;(evMask,@EvRec):Flag
EventAvail          = $0B06     ;(evMask,@EvRec):Flag
GetMouse            = $0C06     ;(@Pt)
Button              = $0D06     ;(Btn#):DownFlg
StillDown           = $0E06     ;(Btn#):Flag
WaitMouseUp         = $0F06     ;(Btn#):Flag
TickCount           = $1006     ;():Ticks/4
GetDblTime          = $1106     ;():Ticks/4
GetCaretTime        = $1206     ;():Ticks/4
SetSwitch           = $1306     ;()
PostEvent           = $1406     ;(code,Msg/4):Flag
FlushEvents         = $1506     ;(evMask,StopMask):F
GetOSEvent          = $1606     ;(evMask,@EvRec):Flag
OSEventAvail        = $1706     ;(evMask,@EvRec):Flag
SetEventMask        = $1806     ;(evMask)
FakeMouse           = $1906     ;(ChFlg,Mods,X,Y,BtnStat)
SetAutoKeyLimit     = $1A06     ;(NewLimit)
GetKeyTranslation   = $1B06     ;():kTransID
SetKeyTranslation   = $1C06     ;(kTransID)
; === scheduler ===
SchBootInit         = $0107     ;()
SchStartUp          = $0207     ;()
SchShutDown         = $0307     ;()
SchVersion          = $0407     ;():Vers
SchReset            = $0507     ;()
SchStatus           = $0607     ;():ActFlg
SchAddTask          = $0907     ;(@Task):Flag
SchFlush            = $0A07     ;()
; === sound manager ===
SoundBootInit       = $0108     ;()
SoundStartUp        = $0208     ;(DirPg)
SoundShutDown       = $0308     ;()
SoundVersion        = $0408     ;():Vers
SoundReset          = $0508     ;()
SoundToolStatus     = $0608     ;():ActFlg
WriteRamBlock       = $0908     ;(@Src,DOCStart,Count)
ReadRamBlock        = $0A08     ;(@Dest,DOCStart,Count)
GetTableAddress     = $0B08     ;():@JumpTbl
GetSoundVolume      = $0C08     ;(Gen#):Vol
SetSoundVolume      = $0D08     ;(Vol,Gen#)
FFStartSound        = $0E08     ;(GenN&mode,@Parms)
FFStopSound         = $0F08     ;(GenMask)
FFSoundStatus       = $1008     ;():ActFlg
FFGeneratorStatus   = $1108     ;(Gen#):Stat
SetSoundMIRQV       = $1208     ;(@IntHandler)
SetUserSoundIRQV    = $1308     ;(@NewIRQ):@OldIRQ
FFSoundDoneStatus   = $1408     ;(Gen#):Stat
FFSetUpSound        = $1508     ;(ChannelGen,@Parms)
FFStartPlaying      = $1608     ;(GenWord)
SetDocReg           = $1708     ;(@DocRegParms)
ReadDocReg          = $1808     ;(@DocRegParms)
; === desktop bus ===
ADBBootInit         = $0109     ;()
ADBStartUp          = $0209     ;()
ADBShutDown         = $0309     ;()
ADBVersion          = $0409     ;():Vers
ADBReset            = $0509     ;()
ADBStatus           = $0609     ;():ActFlg
SendInfo            = $0909     ;(NumB,@Data,Cmd)
ReadKeyMicroData    = $0A09     ;(NumB,@Data,Cmd)
ReadKeyMicroMemory  = $0B09     ;(@DataOut,@DataIn,Cmd)
; 0C09 [resynch--don't call]
AsyncADBReceive     = $0D09     ;(@CompVec,Cmd)
SyncADBReceive      = $0E09     ;(InputWrd,@CompVec,Cmd)
AbsOn               = $0F09     ;()
AbsOff              = $1009     ;()
RdAbs               = $1109     ;():Flag
SetAbsScale         = $1209     ;(@DataOut)
GetAbsScale         = $1309     ;(@DataIn)
SRQPoll             = $1409     ;(@CompVec,ADBreg)
SRQRemove           = $1509     ;(ADBreg)
ClearSRQTable       = $1609     ;()
; FF09 [OBSOLETE: Use 09FF]
; === SANE ===
SANEBootInit        = $010A     ;()
SANEStartUp         = $020A     ;(DirPg)
SANEShutDown        = $030A     ;()
SANEVersion         = $040A     ;():Vers
SANEReset           = $050A     ;()
SANEStatus          = $060A     ;():ActFlg
FPNum               = $090A     ; (...)
DecStrNum           = $0A0A     ; (...)
ElemNum             = $0B0A     ; (...)
; FF0A [OBSOLETE: USE $0AFF]
; === integer math ===
IMBootInit          = $010B     ;()
IMStartUp           = $020B     ;()
IMShutDown          = $030B     ;()
IMVersion           = $040B     ;():Vers
IMReset             = $050B     ;()
IMStatus            = $060B     ;():ActFlg
Multiply            = $090B     ;(A,B):Prod/4
SDivide             = $0A0B     ;(Num,Den):Rem,Quot
UDivide             = $0B0B     ;(Num,Den):Rem,Quot
LongMul             = $0C0B     ;(A/4,B/4):Prod/8
LongDivide          = $0D0B     ;(Num/4,Denom/4):Rem/4,Quot/4
FixRatio            = $0E0B     ;(Numer,Denom):fxRatio/4
FixMul              = $0F0B     ;(fx1/4,fx2/4):fxProd/4
FracMul             = $100B     ;(fr1/4,fr2/4):frRes/4
FixDiv              = $110B     ;(Quot/4,Divisor/4):fxRes/4
FracDiv             = $120B     ;(Quot/4,Divisor/4):frRes/4
FixRound            = $130B     ;(fxVal/4):Int
FracSqrt            = $140B     ;(frVal/4):frRes/4
FracCos             = $150B     ;(fxAngle/4):frRes/4
FracSin             = $160B     ;(fxAngle/4):frRes/4
FixATan2            = $170B     ;(In1/4,In2/4):fxArcTan/4
HiWord              = $180B     ;(Long/4):Int
LoWord              = $190B     ;(Long/4):Int
Long2Fix            = $1A0B     ;(Long/4):fxRes/4
Fix2Long            = $1B0B     ;(Fix/4):Long/4
Fix2Frac            = $1C0B     ;(fxVal/4):Frac/4
Frac2Fix            = $1D0B     ;(frVal/4):fxRes/4
Fix2X               = $1E0B     ;(Fix/4,@Extended)
Frac2X              = $1F0B     ;(frVal/4,@Extended)
X2Fix               = $200B     ;(@Extended):fxRes/4
X2Frac              = $210B     ;(@Extended):frRes/4
Int2Hex             = $220B     ;(Int,@Str,Len)
Long2Hex            = $230B     ;(Long/4,@Str,Len)
Hex2Int             = $240B     ;(@Str,Len):Int
Hex2Long            = $250B     ;(@Str,Len):Long/4
Int2Dec             = $260B     ;(Int,@Str,Len,SgnFlg)
Long2Dec            = $270B     ;(Long/4,@Str,Len,SgnFlg)
Dec2Int             = $280B     ;(@Str,Len,SgnFlg):Int
Dec2Long            = $290B     ;(@Str,Len,SgnFlg):Long/4
HexIt               = $2A0B     ;(Int):Hex/4
; === text tools ===
TextBootInit        = $010C     ;()
TextStartUp         = $020C     ;()
TextShutDown        = $030C     ;()
TextVersion         = $040C     ;():Vers
TextReset           = $050C     ;()
TextStatus          = $060C     ;():ActFlg
SetInGlobals        = $090C     ;(ANDmsk,ORmsk)
SetOutGlobals       = $0A0C     ;(ANDmsk,ORmsk)
SetErrGlobals       = $0B0C     ;(ANDmsk,ORmsk)
GetInGlobals        = $0C0C     ;():ANDmsk,ORmsk
GetOutGlobals       = $0D0C     ;():ANDmsk,ORmsk
GetErrGlobals       = $0E0C     ;():ANDmsk,ORmsk
SetInputDevice      = $0F0C     ;(Type,@drvr|Slot/4)
SetOutputDevice     = $100C     ;(Type,@drvr|Slot/4)
SetErrorDevice      = $110C     ;(Type,@drvr|Slot/4)
GetInputDevice      = $120C     ;():Type,@drvr|Slot/4
GetOutputDevice     = $130C     ;():Type,@drvr|Slot/4
GetErrorDevice      = $140C     ;():Type,@drvr|Slot/4
InitTextDev         = $150C     ;(dev)
CtlTextDev          = $160C     ;(dev,code)
StatusTextDev       = $170C     ;(dev,request)
WriteChar           = $180C     ;(Char)
ErrWriteChar        = $190C     ;(Char)
WriteLine           = $1A0C     ;(@Str)
ErrWriteLine        = $1B0C     ;(@Str)
WriteString         = $1C0C     ;(@Str)
ErrWriteString      = $1D0C     ;(@Str)
TextWriteBlock      = $1E0C     ;(@Text,Offset,Len)
ErrWriteBlock       = $1F0C     ;(@Text,Offset,Len)
WriteCString        = $200C     ;(@cStr)
ErrWriteCString     = $210C     ;(@cStr)
ReadChar            = $220C     ;(EchoFlg):Char
TextReadBlock       = $230C     ;(@Buff,Offset,Size,EchoFlg)
ReadLine            = $240C     ;(@Buff,Max,EOLch,EchoFlg):Count
; === reserved ===
; === window manager ===
WindBootInit        = $010E     ;()
WindStartUp         = $020E     ;(MemID)
WindShutDown        = $030E     ;()
WindVersion         = $040E     ;():Vers
WindReset           = $050E     ;()
WindStatus          = $060E     ;():ActFlg
NewWindow           = $090E     ;(@Parms):@Wind
CheckUpdate         = $0A0E     ;(@EvRec):Flag
CloseWindow         = $0B0E     ;(@Wind)
Desktop             = $0C0E     ;(Oper,param/4):result/4
SetWTitle           = $0D0E     ;(@Title,@Wind)
GetWTitle           = $0E0E     ;(@Wind):@Title
SetFrameColor       = $0F0E     ;(@NewColTbl,@Wind)
GetFrameColor       = $100E     ;(@Table,@Wind)
SelectWindow        = $110E     ;(@Wind)
HideWindow          = $120E     ;(@Wind)
ShowWindow          = $130E     ;(@Wind)
SendBehind          = $140E     ;(@BehindWho,@Wind)
FrontWindow         = $150E     ;():@Wind
SetInfoDraw         = $160E     ;(@Proc,@Wind)
FindWindow          = $170E     ;(@WindVar,X,Y):Where
TrackGoAway         = $180E     ;(X,Y,@Wind):Flag
MoveWindow          = $190E     ;(X,Y,@Wind)
DragWindow          = $1A0E     ;(Grid,X,Y,Grace,@bRect,@Wind)
GrowWindow          = $1B0E     ;(mnW,mnH,X,Y,@Wind):nSize/4
SizeWindow          = $1C0E     ;(w,h,@Wind)
TaskMaster          = $1D0E     ;(evMask,@TaskRec):Code
BeginUpdate         = $1E0E     ;(@Wind)
EndUpdate           = $1F0E     ;(@Wind)
GetWMgrPort         = $200E     ;():@Port
PinRect             = $210E     ;(X,Y,@Rect):Point/4
HiliteWindow        = $220E     ;(Flag,@Wind)
ShowHide            = $230E     ;(Flag,@Wind)
BringToFront        = $240E     ;(@Wind)
WindNewRes          = $250E     ;()
TrackZoom           = $260E     ;(X,Y,@Wind):Flag
ZoomWindow          = $270E     ;(@Wind)
SetWRefCon          = $280E     ;(Refcon/4,@Wind)
GetWRefCon          = $290E     ;(@Wind):Refcon/4
GetNextWindow       = $2A0E     ;(@Wind):@Wind
GetWKind            = $2B0E     ;(@Wind):Flag
GetWFrame           = $2C0E     ;(@Wind):Frame
SetWFrame           = $2D0E     ;(Frame,@Wind)
GetStructRgn        = $2E0E     ;(@Wind):StructRgnH
GetContentRgn       = $2F0E     ;(@Wind):ContRgnH
GetUpdateRgn        = $300E     ;(@Wind):UpdateRgnH
GetDefProc          = $310E     ;(@Wind):@Proc
SetDefProc          = $320E     ;(@Proc,@Wind)
GetWControls        = $330E     ;(@Wind):CtrlH
SetOriginMask       = $340E     ;(Mask,@Wind)
GetInfoRefCon       = $350E     ;(@Wind):Refcon/4
SetInfoRefCon       = $360E     ;(Val/4,@Wind)
GetZoomRect         = $370E     ;(@Wind):@zRect
SetZoomRect         = $380E     ;(@zRect,@Wind)
RefreshDesktop      = $390E     ;(@Rect)
InvalRect           = $3A0E     ;(@Rect)
InvalRgn            = $3B0E     ;(RgnH)
ValidRect           = $3C0E     ;(@Rect)
ValidRgn            = $3D0E     ;(RgnH)
GetContentOrigin    = $3E0E     ;(@Wind):Origin/4
SetContentOrigin    = $3F0E     ;(X,Y,@Wind)
GetDataSize         = $400E     ;(@Wind):DataSize/4
SetDataSize         = $410E     ;(w,h,@Wind)
GetMaxGrow          = $420E     ;(@Wind):MaxGrow/4
SetMaxGrow          = $430E     ;(maxWidth,maxHeight,@Wind)
GetScroll           = $440E     ;(@Wind):Scroll/4
SetScroll           = $450E     ;(h,v,@Wind)
GetPage             = $460E     ;(@Wind):Page/4
SetPage             = $470E     ;(h,v,@Wind)
GetContentDraw      = $480E     ;(@Wind):@Proc
SetContentDraw      = $490E     ;(@Proc,@Wind)
GetInfoDraw         = $4A0E     ;(@Wind):@Proc
SetSysWindow        = $4B0E     ;(@Wind)
GetSysWFlag         = $4C0E     ;(@Wind):Flag
StartDrawing        = $4D0E     ;(@Wind)
SetWindowIcons      = $4E0E     ;(NewFontH):OldFontH
GetRectInfo         = $4F0E     ;(@InfoRect,@Wind)
StartInfoDrawing    = $500E     ;(@iRect,@Wind)
EndInfoDrawing      = $510E     ;()
GetFirstWindow      = $520E     ;():@Wind
WindDragRect        = $530E     ;(@a,@P,X,Y,@R,@lR,@sR,F):M/4
Private01           = $540E     ;():@func [GetDragRectPtr]
DrawInfoBar         = $550E     ;(@Wind)
WindowGlobal        = $560E     ;(Flags):Flags
SetContentOrigin2   = $570E     ;(ScrollFlag,X,Y,@Wind)
GetWindowMgrGlobals = $580E     ;():@Globals
AlertWindow         = $590E     ;(AlertDesc,@SubArray,AlertRef/4):Btn
StartFrameDrawing   = $5A0E     ;(@Wind)
EndFrameDrawing     = $5B0E     ;()
ResizeWindow        = $5C0E     ;(hidden,@ContRect,@Wind)
TaskMasterContent   = $5D0E     ;
TaskMasterKey       = $5E0E     ;
TaskMasterDA        = $5F0E     ;(evMask,@bigTaskRec):taskCode
CompileText         = $600E     ;(subType,@subs,@text,size):H
NewWindow2          = $610E     ;(@T,RC/4,@draw,@def,pDesc,pRef/4,rType):@W
ErrorWindow         = $620E     ;(subType,@subs,ErrNum):Button
GetAuxWindInfo      = $630E     ;(@Wind):@Info
DoModalWindow       = $640E     ;(@Event,@Update,@EvHook,@Beep,Flags):Result/4
MWGetCtlPart        = $650E     ;():Part
MWSetMenuProc       = $660E     ;(@NewMenuProc):@OldMenuProc
MWStdDrawProc       = $670E     ;()
MWSetUpEditMenu     = $680E     ;()
FindCursorCtl       = $690E     ;(@CtrlH,x,y,@Wind):PartCode
ResizeInfoBar       = $6A0E     ;(flags,newHeight,@Wind)
HandleDiskInsert    = $6B0E     ;(flags,devNum):resFlags,resDevNum
UpdateWindow        = $6C0E     ;(flags,@Wind)
; === menu manager ===
MenuBootInit        = $010F     ;()
MenuStartUp         = $020F     ;(MemID,DirPg)
MenuShutDown        = $030F     ;()
MenuVersion         = $040F     ;():Vers
MenuReset           = $050F     ;()
MenuStatus          = $060F     ;():ActFlg
MenuKey             = $090F     ;(@TaskRec,BarH)
GetMenuBar          = $0A0F     ;():BarH
MenuRefresh         = $0B0F     ;(@RedrawProc)
FlashMenuBar        = $0C0F     ;()
InsertMenu          = $0D0F     ;(MenuH,AfterWhat)
DeleteMenu          = $0E0F     ;(MenuID)
InsertMItem         = $0F0F     ;(@Item,AfterItem,MenuID)
DeleteMItem         = $100F     ;(ItemID)
GetSysBar           = $110F     ;():BarH
SetSysBar           = $120F     ;(BarH)
FixMenuBar          = $130F     ;():Height
CountMItems         = $140F     ;(MenuID):N
NewMenuBar          = $150F     ;(@Wind):BarH
GetMHandle          = $160F     ;(MenuID):MenuH
SetBarColors        = $170F     ;(BarCol,InvCol,OutCol)
GetBarColors        = $180F     ;():Colors/4
SetMTitleStart      = $190F     ;(hStart)
GetMTitleStart      = $1A0F     ;():hStart
GetMenuMgrPort      = $1B0F     ;():@Port
CalcMenuSize        = $1C0F     ;(w,h,MenuID)
SetMTitleWidth      = $1D0F     ;(w,MenuID)
GetMTitleWidth      = $1E0F     ;(MenuID):TitleWidth
SetMenuFlag         = $1F0F     ;(Flags,MenuID)
GetMenuFlag         = $200F     ;(MenuID):Flags
SetMenuTitle        = $210F     ;(@Title,MenuID)
GetMenuTitle        = $220F     ;(MenuID):@Title
MenuGlobal          = $230F     ;(Flags):Flags
SetMItem            = $240F     ;(@Str,ItemID)
GetMItem            = $250F     ;(ItemID):@ItemName
SetMItemFlag        = $260F     ;(Flags,ItemID)
GetMItemFlag        = $270F     ;(ItemID):Flag
SetMItemBlink       = $280F     ;(Count)
MenuNewRes          = $290F     ;()
DrawMenuBar         = $2A0F     ;()
MenuSelect          = $2B0F     ;(@TaskRec,BarH)
HiliteMenu          = $2C0F     ;(Flag,MenuID)
NewMenu             = $2D0F     ;(@MenuStr):MenuH
DisposeMenu         = $2E0F     ;(MenuH)
InitPalette         = $2F0F     ;()
EnableMItem         = $300F     ;(ItemID)
DisableMItem        = $310F     ;(ItemID)
CheckMItem          = $320F     ;(Flag,ItemID)
SetMItemMark        = $330F     ;(MarkCh,ItemID)
GetMItemMark        = $340F     ;(ItemID):MarkChar
SetMItemStyle       = $350F     ;(TextStyle,ItemID)
GetMItemStyle       = $360F     ;(ItemID):TextStyle
SetMenuID           = $370F     ;(New,Old)
SetMItemID          = $380F     ;(New,Old)
SetMenuBar          = $390F     ;(BarH)
SetMItemName        = $3A0F     ;(@Str,ItemID)
GetPopUpDefProc     = $3B0F     ;():@proc
PopUpMenuSelect     = $3C0F     ;(SelID,left,top,flag,MenuH):id
DrawPopUp           = $3D0F     ;(SelID,Flag,right,bottom,left,top,MenuH)]
NewMenu2            = $3E0F     ;(RefDesc,Ref/4):MenuH
InsertMItem2        = $3F0F     ;(RefDesc,Ref/4,After,MenuID)
SetMenuTitle2       = $400F     ;(RefDesc,TitleRef/4,MenuID)
SetMItem2           = $410F     ;(RefDesc,Ref/4,Item)
SetMItemName2       = $420F     ;(RefDesc,Ref/4,Item)
NewMenuBar2         = $430F     ;(RefDesc,Ref/4,@Wind):BarH
HideMenuBar         = $450F     ;()
ShowMenuBar         = $460F     ;()
SetMItemIcon        = $470F     ;(IconDesc,IconRef/4,ItemID)
GetMItemIcon        = $480F     ;(ItemID):IconRef/4
SetMItemStruct      = $490F     ;(Desc,StructRef/4,ItemID)
GetMItemStruct      = $4A0F     ;(ItemID):ItemStruct/4
RemoveMItemStruct   = $4B0F     ;(ItemID)
GetMItemFlag2       = $4C0F     ;(ItemID):ItemFlag2
SetMItemFlag2       = $4D0F     ;(newValue,ItemID)
GetMItemBlink       = $4F0F     ;():Count
InsertPathMItems    = $500F     ;(flags,@Path,devnum,MenuID,AfterID,StartID,@Results)
; === control manager ===
CtlBootInit         = $0110     ;()
CtlStartUp          = $0210     ;(MemID,DirPg)
CtlShutDown         = $0310     ;()
CtlVersion          = $0410     ;():Vers
CtlReset            = $0510     ;()
CtlStatus           = $0610     ;():ActFlg
NewControl          = $0910     ;(@W,@R,@T,F,V,P1,P2,@p,r/4,@C):cH
DisposeControl      = $0A10     ;(CtrlH)
KillControls        = $0B10     ;(@Wind)
SetCtlTitle         = $0C10     ;(@Title,CtrlH)
GetCtlTitle         = $0D10     ;(CtrlH):@Title
HideControl         = $0E10     ;(CtrlH)
ShowControl         = $0F10     ;(CtrlH)
DrawControls        = $1010     ;(@Wind)
HiliteControl       = $1110     ;(Flag,CtrlH)
CtlNewRes           = $1210     ;()
FindControl         = $1310     ;(@CtrlHVar,X,Y,@Wind):Part
TestControl         = $1410     ;(X,Y,CtrlH):Part
TrackControl        = $1510     ;(X,Y,@ActProc,CtrlH):Part
MoveControl         = $1610     ;(X,Y,CtrlH)
DragControl         = $1710     ;(X,Y,@LimR,@slR,Axis,CtrlH)
SetCtlIcons         = $1810     ;(FontH):OldFontH
SetCtlValue         = $1910     ;(Val,CtrlH)
GetCtlValue         = $1A10     ;(CtrlH):Val
SetCtlParams        = $1B10     ;(P2,P1,CtrlH)
GetCtlParams        = $1C10     ;(CtrlH):P1,P2
DragRect            = $1D10     ;(@acPr,@P,X,Y,@drR,@l,@slR,F):M/4
GrowSize            = $1E10     ;():Size/4
GetCtlDpage         = $1F10     ;():DirPg
SetCtlAction        = $2010     ;(@ActProc,CtrlH)
GetCtlAction        = $2110     ;(CtrlH):Action/4
SetCtlRefCon        = $2210     ;(Refcon/4,CtrlH)
GetCtlRefCon        = $2310     ;(CtrlH):Refcon/4
EraseControl        = $2410     ;(CtrlH)
DrawOneCtl          = $2510     ;(CtrlH)
FindTargetCtl       = $2610     ;():CtrlH
MakeNextCtlTarget   = $2710     ;():CtrlH
MakeThisCtlTarget   = $2810     ;(CtrlH)
SendEventToCtl      = $2910     ;(TgtOnly,@Wind,@eTask):Accepted
GetCtlID            = $2A10     ;(CtrlH):CtlID/4
SetCtlID            = $2B10     ;(CtlID/4,CtrlH)
CallCtlDefProc      = $2C10     ;(CtrlH,Msg,Param/4):Result/4
NotifyCtls          = $2D10     ;(Mask,Msg,Param/4,@Wind)
GetCtlMoreFlags     = $2E10     ;(CtrlH):Flags
SetCtlMoreFlags     = $2F10     ;(Flags,CtrlH)
GetCtlHandleFromID  = $3010     ;(@Wind,CtlID/4):CtrlH
NewControl2         = $3110     ;(@Wind,InKind,InRef/4):CtrlH
CMLoadResource      = $3210     ;(rType,rID/4):resH
CMReleaseResource   = $3310     ;(rType,rID/4)
SetCtlParamPtr      = $3410     ;(@SubArray)
GetCtlParamPtr      = $3510     ;():@SubArray
InvalCtls           = $3710     ;(@Wind)
; 3810 [reserved]
FindRadioButton     = $3910     ;(@Wind,FamilyNum):WhichRadio
SetLETextByID       = $3A10     ;(@Wind,leID/4,@PString)
GetLETextByID       = $3B10     ;(@Wind,leID/4,@PString)
SetCtlValueByID     = $3C10     ;(Value,@Wind,CtlID/4)
GetCtlValueByID     = $3D10     ;(@Wind,CtlID/4):Value
InvalOneCtlByID     = $3E10     ;(@Wind,CtlID/4)
HiliteCtlByID       = $3F10     ;(Hilite,@Wind,CtlID/4)
; === loader ===
LoaderBootInit      = $0111     ;()
LoaderStartUp       = $0211     ;()
LoaderShutDown      = $0311     ;()
LoaderVersion       = $0411     ;():Vers
LoaderReset         = $0511     ;()
LoaderStatus        = $0611     ;():ActFlg
InitialLoad         = $0911     ;(MemID,@path,F):dpsSz,dps,@l,MemID
Restart             = $0A11     ;(MemID):dpsSz,dps,@loc,MemID
LoadSegNum          = $0B11     ;(MemID,file#,seg#):@loc
UnloadSegNum        = $0C11     ;(MemID,file#,seg#)
LoadSegName         = $0D11     ;(MemID,@path,@segn):@loc,MemID,file#,sg#
UnloadSeg           = $0E11     ;(@loc):seg#,file#,MemID
GetLoadSegInfo      = $0F11     ;(MemID,file#,seg#,@buff)
GetUserID           = $1011     ;(@Pathname):MemID
LGetPathname        = $1111     ;(MemID,file#):@path
UserShutDown        = $1211     ;(MemID,qFlag):MemID
RenamePathname      = $1311     ;(@path1,@path2)
InitialLoad2        = $2011     ;(MemID,@in,F,Type):dpsSz,dps,@l,MemID
GetUserID2          = $2111     ;(@path):MemID
LGetPathname2       = $2211     ;(MemID,file#):@path
; === QuickDraw Aux ===
QDAuxBootInit       = $0112     ;()
QDAuxStartUp        = $0212     ;()
QDAuxShutDown       = $0312     ;()
QDAuxVersion        = $0412     ;():Vers
QDAuxReset          = $0512     ;()
QDAuxStatus         = $0612     ;():ActFlg
CopyPixels          = $0912     ;(@sLoc,@dLoc,@sRect,@dRct,M,MskH)
WaitCursor          = $0A12     ;()
DrawIcon            = $0B12     ;(@Icon,Mode,X,Y)
SpecialRect         = $0C12     ;(@Rect,FrameColor,FillColor)
SeedFill            = $0D12     ;(@sLoc,@sR,@dLoc,@dR,X,Y,Mode,@Patt,@Leak)
CalcMask            = $0E12     ;(@sLoc,@sR,@dLoc,@dR,Mode,@Patt,@Leak)
GetSysIcon          = $0F12     ;(flags,value,aux/4):@Icon
PixelMap2Rgn        = $1012     ;(@srcLoc,bitsPerPix,colorMask):RgnH
IBeamCursor         = $1312     ;()
WhooshRect          = $1412     ;(flags/4,@smallRect,@bigRect)
DrawStringWidth     = $1512     ;(Flags,Ref/4,Width)
UseColorTable       = $1612     ;(tableNum,@Table,Flags):ColorInfoH
RestoreColorTable   = $1712     ;(ColorInfoH,Flags)
; === print manager ===
PMBootInit          = $0113     ;()
PMStartUp           = $0213     ;(MemID,DirPg)
PMShutDown          = $0313     ;()
PMVersion           = $0413     ;():Vers
PMReset             = $0513     ;()
PMStatus            = $0613     ;():ActFlg
PrDefault           = $0913     ;(PrRecH)
PrValidate          = $0A13     ;(PrRecH):Flag
PrStlDialog         = $0B13     ;(PrRecH):Flag
PrJobDialog         = $0C13     ;(PrRecH):Flag
PrPixelMap          = $0D13     ;(@LocInfo,@SrcRect,colorFlag)
PrOpenDoc           = $0E13     ;(PrRecH,@Port):@Port
PrCloseDoc          = $0F13     ;(@Port)
PrOpenPage          = $1013     ;(@Port,@Frame)
PrClosePage         = $1113     ;(@Port)
PrPicFile           = $1213     ;(PrRecH,@Port,@StatRec)
PrControl           = $1313     ; [obsolete]
PrError             = $1413     ;():Error
PrSetError          = $1513     ;(Error)
PrChoosePrinter     = $1613     ;():DrvFlag
PrGetPrinterSpecs   = $1813     ;():Type,Characteristics
PrDevPrChanged      = $1913     ;(@PrinterName)
PrDevStartup        = $1A13     ;(@PrinterName,@ZoneName)
PrDevShutDown       = $1B13     ;()
PrDevOpen           = $1C13     ;(@compProc,Reserved/4)
PrDevRead           = $1D13     ;(@buffer,reqCount):xferCount
PrDevWrite          = $1E13     ;(@compProc,@buff,bufLen)
PrDevClose          = $1F13     ;()
PrDevStatus         = $2013     ;(@statBuff)
PrDevAsyncRead      = $2113     ;(@compPr,bufLen,@buff):xferCount
PrDevWriteBackground = $2213    ;(@compProc,bufLen,@buff)
PrDriverVer         = $2313     ;():Vers
PrPortVer           = $2413     ;():Vers
PrGetZoneName       = $2513     ;():@ZoneName
PrGetPrinterDvrName = $2813     ;():@Name
PrGetPortDvrName    = $2913     ;():@Name
PrGetUserName       = $2A13     ;():@Name
PrGetNetworkName    = $2B13     ;():@Name
PrDevIsItSafe       = $3013     ;():safeFlag
GetZoneList         = $3113     ;     [obsolete?]
GetMyZone           = $3213     ;       [obsolete?]
GetPrinterList      = $3313     ;  [obsolete?]
PMUnloadDriver      = $3413     ;(whichDriver)
PMLoadDriver        = $3513     ;(whichDriver)
PrGetDocName        = $3613     ;():@pStr
PrSetDocName        = $3713     ;(@pStr)
PrGetPgOrientation  = $3813     ;(PrRecH):Orientation
; === line edit ===
LEBootInit          = $0114     ;()
LEStartUp           = $0214     ;(MemID,DirPg)
LEShutDown          = $0314     ;()
LEVersion           = $0414     ;():Vers
LEReset             = $0514     ;()
LEStatus            = $0614     ;():ActFlg
LENew               = $0914     ;(@DstRect,@ViewRect,MaxL):leH
LEDispose           = $0A14     ;(leH)
LESetText           = $0B14     ;(@Text,Len,leH)
LEIdle              = $0C14     ;(leH)
LEClick             = $0D14     ;(@EvRec,leH)
LESetSelect         = $0E14     ;(Start,End,leH)
LEActivate          = $0F14     ;(leH)
LEDeactivate        = $1014     ;(leH)
LEKey               = $1114     ;(Key,Mods,leH)
LECut               = $1214     ;(leH)
LECopy              = $1314     ;(leH)
LEPaste             = $1414     ;(leH)
LEDelete            = $1514     ;(leH)
LEInsert            = $1614     ;(@Text,Len,leH)
LEUpdate            = $1714     ;(leH)
LETextBox           = $1814     ;(@Text,Len,@Rect,Just)
LEFromScrap         = $1914     ;()
LEToScrap           = $1A14     ;()
LEScrapHandle       = $1B14     ;():ScrapH
LEGetScrapLen       = $1C14     ;():Len
LESetScrapLen       = $1D14     ;(NewL)
LESetHilite         = $1E14     ;(@HiliteProc,leH)
LESetCaret          = $1F14     ;(@CaretProc,leH)
LETextBox2          = $2014     ;(@Text,Len,@Rect,Just)
LESetJust           = $2114     ;(Just,leH)
LEGetTextHand       = $2214     ;(leH):TextH
LEGetTextLen        = $2314     ;(leH):TxtLen
GetLEDefProc        = $2414     ;():@proc
LEClassifyKey       = $2514     ;(@Event):Flag
; === dialog manager ===
DialogBootInit      = $0115     ;()
DialogStartUp       = $0215     ;(MemID)
DialogShutDown      = $0315     ;()
DialogVersion       = $0415     ;():Vers
DialogReset         = $0515     ;()
DialogStatus        = $0615     ;():ActFlg
ErrorSound          = $0915     ;(@SoundProc)
NewModalDialog      = $0A15     ;(@bR,vis,refcon/4):@Dlog
NewModelessDialog   = $0B15     ;(@R,@T,@b,fr,rf/4,@zR):@D
CloseDialog         = $0C15     ;(@Dlog)
NewDItem            = $0D15     ;(@Dlog,dItem,@R,ty,Des/4,V,F,@Col)
RemoveDItem         = $0E15     ;(@Dlog,dItem)
ModalDialog         = $0F15     ;(@FilterProc):Hit
IsDialogEvent       = $1015     ;(@EvRec):Flag
DialogSelect        = $1115     ;(@EvRec,@Dlog,@Hit):Flag
DlgCut              = $1215     ;(@Dlog)
DlgCopy             = $1315     ;(@Dlog)
DlgPaste            = $1415     ;(@Dlog)
DlgDelete           = $1515     ;(@Dlog)
DrawDialog          = $1615     ;(@Dlog)
Alert               = $1715     ;(@AlertTmpl,@FiltProc):Hit
StopAlert           = $1815     ;(@AlertTmpl,@FiltProc):Hit
NoteAlert           = $1915     ;(@AlertTmpl,@FiltProc):Hit
CautionAlert        = $1A15     ;(@AlertTmpl,@FiltProc):Hit
ParamText           = $1B15     ;(@P0,@P1,@P2,@P3)
SetDAFont           = $1C15     ;(FontH)
GetControlDItem     = $1E15     ;(@Dlog,dItem):CtrlH
GetIText            = $1F15     ;(@Dlog,dItem,@Str)
SetIText            = $2015     ;(@Dlog,dItem,@Str)
SelectIText         = $2115     ;(@Dlog,dItem,start,end)
HideDItem           = $2215     ;(@Dlog,dItem)
ShowDItem           = $2315     ;(@Dlog,dItem)
FindDItem           = $2415     ;(@Dlog,Point/4):Hit
UpdateDialog        = $2515     ;(@Dlog,UpdtRgnH)
GetDItemType        = $2615     ;(@Dlog,dItem):type
SetDItemType        = $2715     ;(type,@Dlog,dItem)
GetDItemBox         = $2815     ;(@Dlog,dItem,@Rect)
SetDItemBox         = $2915     ;(@Dlog,dItem,@Rect)
GetFirstDItem       = $2A15     ;(@Dlog):dItem
GetNextDItem        = $2B15     ;(@Dlog,dItem):dItem
ModalDialog2        = $2C15     ;(@FilterProc):HitInfo/4
GetDItemValue       = $2E15     ;(@Dlog,dItem):Val
SetDItemValue       = $2F15     ;(val,@Dlog,dItem)
GetNewModalDialog   = $3215     ;(@DlogTmpl):@Dlog
GetNewDItem         = $3315     ;(@Dlog,@ItemTmpl)
GetAlertStage       = $3415     ;():Stage
ResetAlertStage     = $3515     ;()
DefaultFilter       = $3615     ;(@Dlog,@EvRec,@Hit):Flag
GetDefButton        = $3715     ;(@Dlog):dItem
SetDefButton        = $3815     ;(BtnID,@Dlog)
DisableDItem        = $3915     ;(@Dlog,dItem)
EnableDItem         = $3A15     ;(@Dlog,dItem)
; === scrap manager ===
ScrapBootInit       = $0116     ;()
ScrapStartUp        = $0216     ;()
ScrapShutDown       = $0316     ;()
ScrapVersion        = $0416     ;():Vers
ScrapReset          = $0516     ;()
ScrapStatus         = $0616     ;():ActFlg
UnloadScrap         = $0916     ;()
LoadScrap           = $0A16     ;()
ZeroScrap           = $0B16     ;()
PutScrap            = $0C16     ;(Count/4,Type,@Src)
GetScrap            = $0D16     ;(DestH,Type)
GetScrapHandle      = $0E16     ;(Type):ScrapH
GetScrapSize        = $0F16     ;(Type):Size/4
GetScrapPath        = $1016     ;():@Pathname
SetScrapPath        = $1116     ;(@Pathname)
GetScrapCount       = $1216     ;():Count
GetScrapState       = $1316     ;():State
GetIndScrap         = $1416     ;(Index,@buffer)
ShowClipboard       = $1516     ;(flags,@rect):@Wind
; === standard file ===
SFBootInit          = $0117     ;()
SFStartUp           = $0217     ;(MemID,DirPg)
SFShutDown          = $0317     ;()
SFVersion           = $0417     ;():Vers
SFReset             = $0517     ;()
SFStatus            = $0617     ;():ActFlg
SFGetFile           = $0917     ;(X,Y,@Prmpt,@FPrc,@tL,@Reply)
SFPutFile           = $0A17     ;(X,Y,@Prompt,@DfltName,mxL,@Reply)
SFPGetFile          = $0B17     ;(X,Y,@P,@FPrc,@tL,@dTmp,@dHk,@Rp)
SFPPutFile          = $0C17     ;(X,Y,@P,@Df,mxL,@dTmpl,@dHk,@Rply)
SFAllCaps           = $0D17     ;(Flag)
SFGetFile2          = $0E17     ;(X,Y,prDesc,prRef/4,@fProc,@tList,@rep)
SFPutFile2          = $0F17     ;(X,Y,prDesc,prRef/4,nmDesc,nmRef/4,@rep)
SFPGetFile2         = $1017     ;(X,Y,@draw,prD,prRf/4,@fP,@tL,@d,@hk,@rep)
SFPPutFile2         = $1117     ;(X,Y,@draw,prD,prRf/4,nmD,nmRf/4,@d,@hk,@rep)
SFShowInvisible     = $1217     ;(InvisState):OldState
SFReScan            = $1317     ;(@filterProc,@typeList)
SFMultiGet2         = $1417     ;(X,Y,prDesc,prRef/4,@fP,@tL,@rep)
SFPMultiGet2        = $1517     ;(X,Y,@draw,prD,prRf/4,@fP,@tL,@d,@hk,@rep)
; === note synthesizer ===
NSBootInit          = $0119     ;()
NSStartUp           = $0219     ;(Rate,@UpdProc)
NSShutDown          = $0319     ;()
NSVersion           = $0419     ;():Vers
NSReset             = $0519     ;()
NSStatus            = $0619     ;():ActFlg
AllocGen            = $0919     ;(Priority):Gen#
DeallocGen          = $0A19     ;(Gen#)
NoteOn              = $0B19     ;(Gen#,Semitone,Vol,@Instr)
NoteOff             = $0C19     ;(Gen#,Semitone)
AllNotesOff         = $0D19     ;()
NSSetUpdateRate     = $0E19     ;(NewRate):OldRate
NSSetUserUpdateRtn  = $0F19     ;(@New):@Old
; === note sequencer ===
SeqBootInit         = $011A     ;()
SeqStartUp          = $021A     ;(DirPg,Mode,Rate,Incr)
SeqShutDown         = $031A     ;()
SeqVersion          = $041A     ;():Vers
SeqReset            = $051A     ;()
SeqStatus           = $061A     ;():ActFlg
SetIncr             = $091A     ;(Increment)
ClearIncr           = $0A1A     ;():OldIncr
GetTimer            = $0B1A     ;():Tick
GetLoc              = $0C1A     ;():Phrase,Patt,Level
SeqAllNotesOff      = $0D1A     ;()
SetTrkInfo          = $0E1A     ;(Priority,InstIndex,TrkNum)
StartSeq            = $0F1A     ;(@ErrRtn,@CompRtn,SeqH)
StepSeq             = $101A     ;()
StopSeq             = $111A     ;(NextFlag)
SetInstTable        = $121A     ;(TableH)
StartInts           = $131A     ;()
StopInts            = $141A     ;()
StartSeqRel         = $151A     ;(@errHndlr,@CompRtn,SeqH)
; === font manager ===
FMBootInit          = $011B     ;()
FMStartUp           = $021B     ;(MemID,DirPg)
FMShutDown          = $031B     ;()
FMVersion           = $041B     ;():Vers
FMReset             = $051B     ;()
FMStatus            = $061B     ;():ActFlg
CountFamilies       = $091B     ;(FamSpecs):Count
FindFamily          = $0A1B     ;(Specs,Pos,@Name):FamNum
GetFamInfo          = $0B1B     ;(FamNum,@Name):FamStats
GetFamNum           = $0C1B     ;(@Name):FamNum
AddFamily           = $0D1B     ;(FamNum,@Name)
InstallFont         = $0E1B     ;(ID/4,Scale)
SetPurgeStat        = $0F1B     ;(FontID/4,PrgStat)
CountFonts          = $101B     ;(ID/4,Specs):N
FindFontStats       = $111B     ;(ID/4,Specs,Pos,@FStatRec)
LoadFont            = $121B     ;(ID/4,Specs,Pos,@FStatRec)
LoadSysFont         = $131B     ;()
AddFontVar          = $141B     ;(FontH,NewSpecs)
FixFontMenu         = $151B     ;(MenuID,StartID,FamSpecs)
ChooseFont          = $161B     ;(CurrID/4,Famspecs):NewID/4
ItemID2FamNum       = $171B     ;(ItemID):FamNum
FMSetSysFont        = $181B     ;(FontID/4)
FMGetSysFID         = $191B     ;():SysID/4
FMGetCurFID         = $1A1B     ;():CurID/4
FamNum2ItemID       = $1B1B     ;(FamNum):ItemID
InstallWithStats    = $1C1B     ;(ID/4,Scale,@ResultRec)
; === List Manager ===
ListBootInit        = $011C     ;()
ListStartUp         = $021C     ;()
ListShutDown        = $031C     ;()
ListVersion         = $041C     ;():Vers
ListReset           = $051C     ;()
ListStatus          = $061C     ;():ActFlg
CreateList          = $091C     ;(@Wind,@ListRec):CtrlH
SortList            = $0A1C     ;(@CompareProc,@ListRec)
NextMember          = $0B1C     ;(@Member,@ListRec):@NxtMemVal
DrawMember          = $0C1C     ;(@Member,@ListRec)
SelectMember        = $0D1C     ;(@Member,@ListRec)
GetListDefProc      = $0E1C     ;():@Proc
ResetMember         = $0F1C     ;(@ListRec):NxtMemVal/4
NewList             = $101C     ;(@Member,@ListRec)
DrawMember2         = $111C     ;(itemNum,CtrlH)
NextMember2         = $121C     ;(itemNum,CtrlH):itemNum
ResetMember2        = $131C     ;(CtrlH):itemNum
SelectMember2       = $141C     ;(itemNum,CtrlH)
SortList2           = $151C     ;(@CompareProc,CtrlH)
NewList2            = $161C     ;(@draw,start,ref/4,refKind,size,CtrlH)
ListKey             = $171C     ;(flags,@EventRec,CtrlH)
CompareStrings      = $181C     ;(flags,@String1,@String2):Order
; === Audio Compression/Expansion ===
ACEBootInit         = $011D     ;()
ACEStartUp          = $021D     ;(DirPg)
ACEShutDown         = $031D     ;()
ACEVersion          = $041D     ;():Vers
ACEReset            = $051D     ;()
ACEStatus           = $061D     ;():ActFlg
ACEInfo             = $071D     ;(Code):Value/4
ACECompress         = $091D     ;(SrcH,SrcOff/4,DestH,DestOff/4,Blks,Method)
ACEExpand           = $0A1D     ;(SrcH,SrcOff/4,DestH,DestOff/4,Blks,Method)
ACECompBegin        = $0B1D     ;()
ACEExpBegin         = $0C1D     ;()
GetACEExpState      = $0D1D     ;(@Buffer)
SetACEExpState      = $0E1D     ;(@Buffer)
; === Resource Manager ===
ResourceBootInit    = $011E     ;()
ResourceStartUp     = $021E     ;(MemID)
ResourceShutDown    = $031E     ;()
ResourceVersion     = $041E     ;():Vers
ResourceReset       = $051E     ;()
ResourceStatus      = $061E     ;():ActFlag
CreateResourceFile  = $091E     ;(aux/4,fType,Access,@n)
OpenResourceFile    = $0A1E     ;(reqAcc,@mapAddr,@n):fileID
CloseResourceFile   = $0B1E     ;(fileID)
AddResource         = $0C1E     ;(H,Attr,rType,rID/4)
UpdateResourcefile  = $0D1E     ;(fileID)
LoadResource        = $0E1E     ;(rType,rID/4):H
RemoveResource      = $0F1E     ;(rType,rID/4)
MarkResourceChange  = $101E     ;(changeFlag,rType,rID/4)
SetCurResourceFile  = $111E     ;(fileID)
GetCurResourceFile  = $121E     ;():fileID
SetCurResourceApp   = $131E     ;(MemID)
GetCurResourceApp   = $141E     ;():MemID
HomeResourceFile    = $151E     ;(rType,rID/4):fileID
WriteResource       = $161E     ;(rType,rID/4)
ReleaseResource     = $171E     ;(PurgeLevel,rType,rID/4)
DetachResource      = $181E     ;(rType,rID/4)
UniqueResourceID    = $191E     ;(IDrange,rType):rID/4
SetResourceID       = $1A1E     ;(newID/4,rType,oldID/4)
GetResourceAttr     = $1B1E     ;(rType,rID/4):Attr
SetResourceAttr     = $1C1E     ;(rAttr,rType,rID/4)
GetResourceSize     = $1D1E     ;(rType,rID/4):Size/4
MatchResourceHandle = $1E1E     ;(@buffer,H)
GetOpenFileRefNum   = $1F1E     ;(fileID):RefNum
CountTypes          = $201E     ;():Num
GetIndType          = $211E     ;(tIndex):rType
CountResources      = $221E     ;(rType):Num/4
GetIndResource      = $231E     ;(rType,rIndex/4):rID/4
SetResourceLoad     = $241E     ;(Flag):oldFlag
SetResourceFileDepth = $251E    ;(Depth):oldDepth
GetMapHandle        = $261E     ;(fileID):MapH
LoadAbsResource     = $271E     ;(@loc,MaxSize/4,rType,rID/4):Size/4
ResourceConverter   = $281E     ;(@proc,rType,logFlags)
LoadResource2       = $291E     ;(flag,@AttrBuff,rType,rID/4):H
RMFindNamedResource = $2A1E     ;(rType,@name,@fileID):rID/4
RMGetResourceName   = $2B1E     ;(rType,rID/4,@nameBuffer)
RMLoadNamedResource = $2C1E     ;(rType,@name):H
RMSetResourceName   = $2D1E     ;(rType,rID/4,@name)
OpenResourceFileByID = $2E1E    ;(reqAcc,userID):oldResApp
CompactResourceFile = $2F1E     ;(flags,fileID)
; === MIDI ===
MidiBootInit        = $0120     ;()
MidiStartUp         = $0220     ;(MemID,DirPg)
MidiShutDown        = $0320     ;()
MidiVersion         = $0420     ;():Vers
MidiReset           = $0520     ;()
MidiStatus          = $0620     ;():ActFlg
MidiControl         = $0920     ;(Function,Argument/4)
MidiDevice          = $0A20     ;(Function,@DriverInfo)
MidiClock           = $0B20     ;(Function,Argument/4)
MidiInfo            = $0C20     ;(Function):Info/4
MidiReadPacket      = $0D20     ;(@buff,size):Count
MidiWritePacket     = $0E20     ;(@buff):Count
; === Video Overlay ===
VDBootInit          = $0121     ;()
VDStartUp           = $0221     ;()
VDShutDown          = $0321     ;()
VDVersion           = $0421     ;():Vers
VDReset             = $0521     ;()
VDStatus            = $0621     ;():ActFlg
VDInStatus          = $0921     ;(Selector):Status
VDInSetStd          = $0A21     ;(InStandard)
VDInGetStd          = $0B21     ;():InStandard
VDInConvAdj         = $0C21     ;(Selector,AdjFunction)
VDKeyControl        = $0D21     ;(Selector,KeyerCtrlVal)
VDKeyStatus         = $0E21     ;(Selector):KeyerStatus
VDKeySetKCol        = $0F21     ;(Red,Green,Blue)
VDKeyGetKRCol       = $1021     ;():RedValue
VDKeyGetKGCol       = $1121     ;():GreenValue
VDKeyGetKBCol       = $1221     ;():BlueValue
VDKeySetKDiss       = $1321     ;(KDissolve)
VDKeyGetKDiss       = $1421     ;():KDissolve
VDKeySetNKDiss      = $1521     ;(NKDissolve)
VDKeyGetNKDiss      = $1621     ;():NKDissolve
VDOutSetStd         = $1721     ;(OutStandard)
VDOutGetStd         = $1821     ;():OutStandard
VDOutControl        = $1921     ;(Selector,Value)
VDOutStatus         = $1A21     ;(Selector):OutStatus
VDGetFeatures       = $1B21     ;(Feature):Info
VDInControl         = $1C21     ;(Selector,Value)
VDGGControl         = $1D21     ;(Selector,Value)
VDGGStatus          = $1E21     ;(Selector):Value
; === Text Edit ===
TEBootInit          = $0122     ;()
TEStartUp           = $0222     ;(MemID,DirPg)
TEShutDown          = $0322     ;()
TEVersion           = $0422     ;():Vers
TEReset             = $0522     ;()
TEStatus            = $0622     ;():ActFlg
TENew               = $0922     ;(@parms):teH
TEKill              = $0A22     ;(teH)
TESetText           = $0B22     ;(tDesc,tRef/4,Len/4,stDesc,stRef/4,teH)
TEGetText           = $0C22     ;(bDesc,bRef/4,bLen/4,stDesc,stRef/4,teH):L/4
TEGetTextInfo       = $0D22     ;(@infoRec,parmCount,teH)
TEIdle              = $0E22     ;(teH)
TEActivate          = $0F22     ;(teH)
TEDeactivate        = $1022     ;(teH)
TEClick             = $1122     ;(@eventRec,teH)
TEUpdate            = $1222     ;(teH)
TEPaintText         = $1322     ;(@Port,startLn/4,@R,Flags,teH):NextLn/4
TEKey               = $1422     ;(@eventRec,teH)
; 1522 [not supported]
TECut               = $1622     ;(teH)
TECopy              = $1722     ;(teH)
TEPaste             = $1822     ;(teH)
TEClear             = $1922     ;(teH)
TEInsert            = $1A22     ;(tDesc,tRef/4,tLen/4,stDesc,stRef/4,teH)
TEReplace           = $1B22     ;(tDesc,tRef/4,tLen/4,stDesc,stRef/4,teH)
TEGetSelection      = $1C22     ;(@selStart,@selEnd,teH)
TESetSelection      = $1D22     ;(selStart/4,selEnd/4,teH)
TEGetSelectionStyle = $1E22     ;(@stRec,stH,teH):comFlag
TEStyleChange       = $1F22     ;(flags,@stRec,teH)
TEOffsetToPoint     = $2022     ;(offset/4,@vertPos,@horPos,teH)
TEPointToOffset     = $2122     ;(vertPos/4,horPos/4,teH):textOffset/4
TEGetDefProc        = $2222     ;():@defProc
TEGetRuler          = $2322     ;(rulerDesc,rulerRef/4,teH)
TESetRuler          = $2422     ;(rulerDesc,rulerRef/4,teH)
TEScroll            = $2522     ;(scrDesc,vertAmt/4,horAmt/4,teH):Offset/4
TEGetInternalProc   = $2622     ;():@proc
TEGetLastError      = $2722     ;(clearFlag,teH):lastError
TECompactRecord     = $2822     ;(teH)
; === MIDI Synth ===
MSBootInit          = $0123     ;()
MSStartUp           = $0223     ;()
MSShutDown          = $0323     ;()
MSVersion           = $0423     ;():Vers
MSReset             = $0523     ;()
MSStatus            = $0623     ;():ActFlg
SetBasicChannel     = $0923     ;(Channel)
SetMIDIMode         = $0A23     ;(Mode)
PlayNote            = $0B23     ;(Channel,NoteNum,KeyVel)
StopNote            = $0C23     ;(Channel,NoteNum)
KillAllNotes        = $0D23     ;()
SetRecTrack         = $0E23     ;(TrackNum)
SetPlayTrack        = $0F23     ;(TrackNum,State)
TrackToChannel      = $1023     ;(TrackNum,ChannelNum)
Locate              = $1123     ;(TimeStamp/4,@SeqBuff):@SeqItem
SetVelComp          = $1223     ;(VelocityOffset)
SetMIDIPort         = $1323     ;(EnabInput,EnabOutput)
SetInstrument       = $1423     ;(@InstRec,InstNum)
SeqPlayer           = $1523     ;(@SeqPlayerRec)
SetTempo            = $1623     ;(Tempo)
SetCallBack         = $1723     ;(@CallBackRec)
SysExOut            = $1823     ;(@Msg,Delay,@MonRoutine)
SetBeat             = $1923     ;(BeatDuration)
MIDIMessage         = $1A23     ;(Dest,nBytes,Message,Byte1,Byte2)
LocateEnd           = $1B23     ;(@seqBuffer):@End
Merge               = $1C23     ;(@Buffer1,@Buffer2)
DeleteTrack         = $1D23     ;(TrackNum,@Seq)
SetMetro            = $1E23     ;(Volume,Freq,@Wave)
GetMSData           = $1F23     ;():Reserved/4,@DirPage
ConvertToTime       = $2023     ;(TkPerBt,BtPerMsr,BeatNum,MsrNum):Ticks/4
ConvertToMeasure    = $2123     ;(TkPerBt,BtPerMsr,Ticks/4):Ticks,Beat,Msr
MSSuspend           = $2223     ;()
MSResume            = $2323     ;()
SetTuningTable      = $2423     ;(@Table)
GetTuningTable      = $2523     ;(@Buffer)
SetTrackOut         = $2623     ;(TrackNum,PathVal)
InitMIDIDriver      = $2723     ;(Slot,Internal,UserID,@Driver)
RemoveMIDIDriver    = $2823     ;()
; === Media Controller ===
MCBootInit          = $0126     ;()
MCStartUp           = $0226     ;(MemID)
MCShutDown          = $0326     ;()
MCVersion           = $0426     ;():Vers
MCReset             = $0526     ;()
MCStatus            = $0626     ;():ActFlg
MCGetErrorMsg       = $0926     ;(mcErrorNo,@PStringBuff)
MCLoadDriver        = $0A26     ;(mcChannelNo)
MCUnLoadDriver      = $0B26     ;(mcChannelNo)
MCTimeToBin         = $0C26     ;(mcTimeValue/4):result/4
MCBinToTime         = $0D26     ;(mcBinVal/4):result/4
MCGetTrackTitle     = $0E26     ;(mcDiskID/4,mcTrackNo,@PStringBuff)
MCSetTrackTitle     = $0F26     ;(mcDiskID/4,TrackNum,@title)
MCGetProgram        = $1026     ;(mcDiskID/4,@resultBuff)
MCSetProgram        = $1126     ;(mcDiskID/4,@mcProg)
MCGetDiscTitle      = $1226     ;(mcDiskID/4,@PStringBuff)
MCSetDiscTitle      = $1326     ;(mcDiskID/4,@title)
MCDStartUp          = $1426     ;(mcChannelNo,@portName,userID)
MCDShutDown         = $1526     ;(mcChannelNo)
MCGetFeatures       = $1626     ;(mcChannelNo,mcFeatSel):result/4
MCPlay              = $1726     ;(mcChannelNo)
MCPause             = $1826     ;(mcChannelNo)
MCSendRawData       = $1926     ;(mcChannelNo,@mcNative)
MCGetStatus         = $1A26     ;(mcChannelNo,mcStatusSel):result
MCControl           = $1B26     ;(mcChannelNo,ctlCommand)
MCScan              = $1C26     ;(mcChannelNo,mcDirection)
MCGetSpeeds         = $1D26     ;(mcChannelNo,@PStringBuff)
MCSpeed             = $1E26     ;(mcChannelNo,mcFPS)
MCStopAt            = $1F26     ;(mcChannelNo,mcUnitType,mcStopLoc/4)
MCJog               = $2026     ;(mcChannelNo,mcUnitType,mcNJog/4,mcJogRepeat)
MCSearchTo          = $2126     ;(mcChannelNo,mcUnitType,searchLoc/4)
MCSearchDone        = $2226     ;(mcChannelNo):result
MCSearchWait        = $2326     ;(mcChannelNo)
MCGetPosition       = $2426     ;(mcChannelNo,mcUnitType):result/4
MCSetAudio          = $2526     ;(mcChannelNo,mcAudioCtl)
MCGetTimes          = $2626     ;(mcChannelNo,mctimesSel):result/4
MCGetDiscTOC        = $2726     ;(mcChannelNo,mcTrackNo):result/4
MCGetDiscID         = $2826     ;(mcChannelNo):result/4
MCGetNoTracks       = $2926     ;(mcChannelNo):result
MCRecord            = $2A26     ;(mcChannelNo)
MCStop              = $2B26     ;(mcChannelNo)
MCWaitRawData       = $2C26     ;(mcChannelNo,@result,tickWait,termMask)
MCGetName           = $2D26     ;(mcChannelNo,@PStringBuff)
MCSetVolume         = $2E26     ;(mcChannelNo,mcLeftVol,mcRightVol)
; === Male Voice ===
MaleBootInit        = $0132     ;()
MaleStartUp         = $0232     ;()
MaleShutDown        = $0332     ;()
MaleVersion         = $0432     ;():Vers
MaleReset           = $0532     ;()
MaleStatus          = $0632     ;():ActFlg
MaleSpeak           = $0932     ;(Vol,Speed,Pitch,@PhonStr)
; === Female Voice ===
FemaleBootInit      = $0133     ;()
FemaleStartUp       = $0233     ;()
FemaleShutDown      = $0333     ;()
FemaleVersion       = $0433     ;():Vers
FemaleReset         = $0533     ;()
FemaleStatus        = $0633     ;():ActFlg
FemaleSpeak         = $0933     ;(Vol,Speed,Pitch,@PhonStr)
; === TML Speech Toolkit parser ===
SpeechBootInit      = $0134     ;()
SpeechStartUp       = $0234     ;(MemID)
SpeechShutDown      = $0334     ;()
SpeechVersion       = $0434     ;():Vers
SpeechReset         = $0534     ;()
SpeechStatus        = $0634     ;():ActFlg
Parse               = $0934     ;(@EnglStr,@PhonStr,Start)
DictInsert          = $0A34     ;(@EnglStr,@PhonStr)
DictDelete          = $0B34     ;(@EnglStr)
DictDump            = $0C34     ;(@EnglStr,@PhonStr):@Str;
SetSayGlobals       = $0D34     ;(Gend,Tone,Pitch,Spd,Vol)
DictInit            = $0E34     ;(Flag)
Say                 = $0F34     ;(@EnglishStr)
Activate            = $1034     ;...
; === Finder (error codes only) ===
; === GSBug ===
DebugVersion        = $04FF     ;():Vers
DebugStatus         = $06FF     ;():ActFlg
DebugStr            = $09FF     ;(@PStr)
SetMileStone        = $0AFF     ;(@PStr)
DebugSetHook        = $0BFF     ;(@hook)
DebugGetInfo        = $0CFF     ;(selector):Info/4
DebugControl        = $0DFF     ;(data/4,extraData/4,operation,type)
DebugQuery          = $0EFF     ;(data/4,operation,type):Info/4
