     NOLIST
GetPrefs    MACRO              ; 14 Jan 88
*------------------------------; Start of GetPrefs macro.
     NOLIST
     IFC '\1','D'              ; If <BufferStartAddr> is specified, then
     LIST
                               ; Make A0 point to the start of the buffer.
     MOVE.L \2,A0
     NOLIST
     IFEQ NARG-2               ; If <BufferSize> is given, then
     LIST
                               ; Put <BufferSize> in D0.
     MOVE.L #\3,D0
     NOLIST
     ENDC
     IFEQ NARG-2               ; If there is no third argument, then
     LIST
                               ; Calculate buffer size as
                               ;  <BufferStartAddr>End minus
                               ;  <BufferStartAddr>. Put it in D0.
     MOVE.L \2End-\2,D0
     NOLIST
     ENDC
     IFNC '\1','I'             ; If <MemBlockName> is specified, then
     LIST
                               ; Get the buffer start address from
                               ;  <MemBlockName>.Adr
     MOVE.L \2.Adr,A0
                               ; Get the buffer size from <MemBlockName>.Size
     MOVE.L \2.Size,D0
     NOLIST
     ENDC
     LIST
                               ; Call GetPrefs.
     CallLib GetPrefs,intuition
*------------------------------; End of GetPrefs macro.
     ENDM
     LIST
