
; Intuition-Interface

   INCLUDE  "lvo/intuition.i"

   XREF  _IntuitionBase





CREATE MACRO Name,Registermaske,Registeranzahl,Satz1,Anzahl1,Satz2,Anzahl2...

   IFD   \1
   XDEF  _\1

_\1
  IFEQ   \3-1        ; ein Register ?
   move.l   \2,-(SP)
  ELSE
   movem.l  \2,-(SP)
  ENDC

TIEFE SET   4+4*\3
  IFNC   '\4',''
   SATZ  \4,\5,\6,\7,\8,\9,\a,\b,\c,\d,\e,\f,\g,\h,\i,\j
  ENDC

   move.l   _IntuitionBase,a6
   jsr      _LVO\1(a6)
  IFEQ   \3-1        ; ein Register ?
   move.l   (SP)+,\2
  ELSE
   movem.l  (SP)+,\2
  ENDC
   rts

   ENDC

   ENDM





SATZ  MACRO Satz1,Anzahl1,Satz2,Anzahl2...
  IFEQ   \2-1        ; ein Register ?
   move.l   TIEFE(SP),\1
  ELSE
   movem.l  TIEFE(SP),\1
  ENDC
TIEFE SET   TIEFE+4*\2
  IFNC   '\3',''
   SATZ  \3,\4,\5,\6,\7,\8,\9,\a,\b,\c,\d,\e,\f,\g,\h,\i
  ENDC
   ENDM





; OpenIntuition()()
   CREATE   OpenIntuition,a6,1

; Intuition(ievent)(A0)
   CREATE   Intuition,a6,1,a0,1

; AddGadget(AddPtr,Gadget,Position)(A0/A1,D0)
   CREATE   AddGadget,a6,1,a0-a1,2,d0,1

; ClearDMRequest(Window)(A0)
   CREATE   ClearDMRequest,a6,1,a0,1

; ClearMenuStrip(Window)(A0)
   CREATE   ClearMenuStrip,a6,1,a0,1

; ClearPointer(Window)(A0)
   CREATE   ClearPointer,a6,1,a0,1

; CloseScreen(Screen)(A0)
   CREATE   CloseScreen,a6,1,a0,1

; CloseWindow(Window)(A0)
   CREATE   CloseWindow,a6,1,a0,1

; CloseWorkBench()()
   CREATE   CloseWorkBench,a6,1

; CurrentTime(Seconds,Micros)(A0/A1)
   CREATE   CurrentTime,a6,1,a0-a1,2

; DisplayAlert(AlertNumber,String,Height)(D0/A0,D1)
   CREATE   DisplayAlert,a6,1,d0/a0,2,d1,1

; DisplayBeep(Screen)(A0)
   CREATE   DisplayBeep,a6,1,a0,1

; DoubleClick(sseconds,smicros,cseconds,cmicros)(D0/D1/D2/D3)
   CREATE   DoubleClick,d2-d3/a6,3,d0-d3,4

; DrawBorder(RPort,Border,LeftOffset,TopOffset)(A0/A1,D0/D1)
   CREATE   DrawBorder,a6,1,a0-a1,2,d0-d1,2

; DrawImage(RPort,Image,LeftOffset,TopOffset)(A0/A1,D0/D1)
   CREATE   DrawImage,a6,1,a0-a1,2,d0-d1,2

; EndRequest(requester,window)(A0/A1)
   CREATE   EndRequest,a6,1,a0-a1,2

; GetDefPrefs(preferences,size)(A0,D0)
   CREATE   GetDefPrefs,a6,1,a0,1,d0,1

; GetPrefs(preferences,size)(A0,D0)
   CREATE   GetPrefs,a6,1,a0,1,d0,1

; InitRequester(req)(A0)
   CREATE   InitRequester,a6,1,a0,1

; ItemAddress(MenuStrip,MenuNumber)(A0,D0)
   CREATE   ItemAddress,a6,1,a0,1,d0,1

; ModifyIDCMP(Window,Flags)(A0,D0)
   CREATE   ModifyIDCMP,a6,1,a0,1,d0,1

; ModifyProp(Gadget,Ptr,Req,Flags,HPos,VPos,HBody,VBody)(A0/A1/A2,D0/D1/D2/D3/D4)
   CREATE   ModifyProp,d2-d4/a2/a6,5,a0-a2,3,d0-d4,5

; MoveScreen(Screen,dx,dy)(A0,D0/D1)
   CREATE   MoveScreen,a6,1,a0,1,d0-d1,2

; MoveWindow(window,dx,dy)(A0,D0/D1)
   CREATE   MoveWindow,a6,1,a0,1,d0-d1,2

; OffGadget(Gadget,Ptr,Req)(A0/A1/A2)
   CREATE   OffGadget,a2/a6,2,a0-a2,3

; OffMenu(Window,MenuNumber)(A0,D0)
   CREATE   OffMenu,a6,1,a0,1,d0,1

; OnGadget(Gadget,Ptr,Req)(A0/A1/A2)
   CREATE   OnGadget,a2/a6,2,a0-a2,3

; OnMenu(Window,MenuNumber)(A0,D0)
   CREATE   OnMenu,a6,1,a0,1,d0,1

; OpenScreen(OSargs)(A0)
   CREATE   OpenScreen,a6,1,a0,1

; OpenWindow(OWargs)(A0)
   CREATE   OpenWindow,a6,1,a0,1

; OpenWorkBench()()
   CREATE   OpenWorkBench,a6,1

; PrintIText(rp,itext,left,top)(A0/A1,D0/D1)
   CREATE   PrintIText,a6,1,a0-a1,2,d0-d1,2

; RefreshGadgets(Gadgets,Ptr,Req)(A0/A1/A2)
   CREATE   RefreshGadgets,a2/a6,2,a0-a2,3

; RemoveGadget(RemPtr,Gadget)(A0/A1)
   CREATE   RemoveGadget,a6,1,a0-a1,2

; ReportMouse(Boolean,Window)(D0/A0)
   CREATE   ReportMouse,a6,1,d0/a0,2

; Request(Requester,Window)(A0/A1)
   CREATE   Request,a6,1,a0-a1,2

; ScreenToBack(Screen)(A0)
   CREATE   ScreenToBack,a6,1,a0,1

; ScreenToFront(Screen)(A0)
   CREATE   ScreenToFront,a6,1,a0,1

; SetDMRequest(Window,req)(A0/A1)
   CREATE   SetDMRequest,a6,1,a0-a1,2

; SetMenuStrip(Window,Menu)(A0/A1)
   CREATE   SetMenuStrip,a6,1,a0-a1,2

; SetPointer(Window,Pointer,Height,Width,Xoffset,Yoffset)(A0/A1,D0/D1/D2/D3)
   CREATE   SetPointer,d2-d3/a6,3,a0-a1,2,d0-d3,4

; SetWindowTitles(window,windowtitle,screentitle)(A0/A1/A2)
   CREATE   SetWindowTitles,a2/a6,2,a0-a2,3

; ShowTitle(Screen,ShowIt)(A0,D0)
   CREATE   ShowTitle,a6,1,a0,1,d0,1

; SizeWindow(window,dx,dy)(A0,D0/D1)
   CREATE   SizeWindow,a6,1,a0,1,d0-d1,2

; ViewAddress()()
   CREATE   ViewAddress,a6,1

; ViewPortAddress(window)(A0)
   CREATE   ViewPortAddress,a6,1,a0,1

; WindowToBack(window)(A0)
   CREATE   WindowToBack,a6,1,a0,1

; WindowToFront(window)(A0)
   CREATE   WindowToFront,a6,1,a0,1

; WindowLimits(window,minwidth,minheight,maxwidth,maxheight)(A0,D0/D1/D2/D3)
   CREATE   WindowLimits,d2-d3/a6,3,a0,1,d0-d3,4

; SetPrefs(preferences,size,flag)(A0,D0/D1)
   CREATE   SetPrefs,a6,1,a0,1,d0-d1,2

; IntuiTextLength(itext)(A0)
   CREATE   IntuiTextLength,a6,1,a0,1

; WBenchToBack()()
   CREATE   WBenchToBack,a6,1

; WBenchToFront()()
   CREATE   WBenchToFront,a6,1

; AutoRequest(Window,Body,PText,NText,PFlag,NFlag,W,H)(A0,A1,A2,A3,D0,D1,D2,D3)
   CREATE   AutoRequest,d2-d3/a2-a3/a6,5,a0-a3,4,d0-d3,4

; BeginRefresh(Window)(A0)
   CREATE   BeginRefresh,a6,1,a0,1

; BuildSysRequest(Window,Body,PosText,NegText,Flags,W,H)(A0,A1,A2,A3,D0,D1,D2)
   CREATE   BuildSysRequest,d2/a2-a3/a6,4,a0-a3,4,d0-d2,3

; EndRefresh(Window,Complete)(A0,D0)
   CREATE   EndRefresh,a6,1,a0,1,d0,1

; FreeSysRequest(Window)(A0)
   CREATE   FreeSysRequest,a6,1,a0,1

; MakeScreen(Screen)(A0)
   CREATE   MakeScreen,a6,1,a0,1

; RemakeDisplay()()
   CREATE   RemakeDisplay,a6,1

; RethinkDisplay()()
   CREATE   RethinkDisplay,a6,1

; AllocRemember(RememberKey,Size,Flags)(A0,D0,D1)
   CREATE   AllocRemember,a6,1,a0,1,d0-d1,2

; AlohaWorkbench(wbport)(A0)
   CREATE   AlohaWorkbench,a6,1,a0,1

; FreeRemember(RememberKey,ReallyForget)(A0,D0)
   CREATE   FreeRemember,a6,1,a0,1,d0,1

; LockIBase(dontknow)(D0)
   CREATE   LockIBase,a6,1,d0,1

; UnlockIBase(IBLock)(A0)
   CREATE   UnlockIBase,a6,1,a0,1

; GetScreenData(buffer,size,type,screen)(A0,D0,D1,A1)
   CREATE   GetScreenData,a6,1,a0,1,d0-d1/a1,3

; RefreshGList(Gadgets,Ptr,Req,NumGad)(A0/A1/A2,D0)
   CREATE   RefreshGList,a2/a6,2,a0-a2,3,d0,1

; AddGList(AddPtr,Gadget,Position,NumGad,Requester)(A0/A1,D0/D1/A2)
   CREATE   AddGList,a2/a6,2,a0-a1,2,d0-d1/a2,3

; RemoveGList(RemPtr,Gadget,NumGad)(A0/A1,D0)
   CREATE   RemoveGList,a6,1,a0-a1,2,d0,1

; ActivateWindow(Window)(A0)
   CREATE   ActivateWindow,a6,1,a0,1

; RefreshWindowFrame(Window)(A0)
   CREATE   RefreshWindowFrame,a6,1,a0,1

; ActivateGadget(Gadgets,Window,Req)(A0/A1/A2)
   CREATE   ActivateGadget,a2/a6,2,a0-a2,3

; NewModifyProp(Gadget,Ptr,Req,Flags,HPos,VPos,HBody,VBody,NumGad)(A0/A1/A2,D0/D1/D2/D3/D4/D5)
   CREATE   NewModifyProp,d2-d5/a2/a6,6,a0-a2,3,d0-d5,6





; Offsets

   IFD   OFFSETS

   XDEF  _LVOOpenIntuition
   XDEF  _LVOIntuition
   XDEF  _LVOAddGadget
   XDEF  _LVOClearDMRequest
   XDEF  _LVOClearMenuStrip
   XDEF  _LVOClearPointer
   XDEF  _LVOCloseScreen
   XDEF  _LVOCloseWindow
   XDEF  _LVOCloseWorkBench
   XDEF  _LVOCurrentTime
   XDEF  _LVODisplayAlert
   XDEF  _LVODisplayBeep
   XDEF  _LVODoubleClick
   XDEF  _LVODrawBorder
   XDEF  _LVODrawImage
   XDEF  _LVOEndRequest
   XDEF  _LVOGetDefPrefs
   XDEF  _LVOGetPrefs
   XDEF  _LVOInitRequester
   XDEF  _LVOItemAddress
   XDEF  _LVOModifyIDCMP
   XDEF  _LVOModifyProp
   XDEF  _LVOMoveScreen
   XDEF  _LVOMoveWindow
   XDEF  _LVOOffGadget
   XDEF  _LVOOffMenu
   XDEF  _LVOOnGadget
   XDEF  _LVOOnMenu
   XDEF  _LVOOpenScreen
   XDEF  _LVOOpenWindow
   XDEF  _LVOOpenWorkBench
   XDEF  _LVOPrintIText
   XDEF  _LVORefreshGadgets
   XDEF  _LVORemoveGadget
   XDEF  _LVOReportMouse
   XDEF  _LVORequest
   XDEF  _LVOScreenToBack
   XDEF  _LVOScreenToFront
   XDEF  _LVOSetDMRequest
   XDEF  _LVOSetMenuStrip
   XDEF  _LVOSetPointer
   XDEF  _LVOSetWindowTitles
   XDEF  _LVOShowTitle
   XDEF  _LVOSizeWindow
   XDEF  _LVOViewAddress
   XDEF  _LVOViewPortAddress
   XDEF  _LVOWindowToBack
   XDEF  _LVOWindowToFront
   XDEF  _LVOWindowLimits
   XDEF  _LVOSetPrefs
   XDEF  _LVOIntuiTextLength
   XDEF  _LVOWBenchToBack
   XDEF  _LVOWBenchToFront
   XDEF  _LVOAutoRequest
   XDEF  _LVOBeginRefresh
   XDEF  _LVOBuildSysRequest
   XDEF  _LVOEndRefresh
   XDEF  _LVOFreeSysRequest
   XDEF  _LVOMakeScreen
   XDEF  _LVORemakeDisplay
   XDEF  _LVORethinkDisplay
   XDEF  _LVOAllocRemember
   XDEF  _LVOAlohaWorkbench
   XDEF  _LVOFreeRemember
   XDEF  _LVOLockIBase
   XDEF  _LVOUnlockIBase
   XDEF  _LVOGetScreenData
   XDEF  _LVORefreshGList
   XDEF  _LVOAddGList
   XDEF  _LVORemoveGList
   XDEF  _LVOActivateWindow
   XDEF  _LVORefreshWindowFrame
   XDEF  _LVOActivateGadget
   XDEF  _LVONewModifyProp

   ENDC





   END

