*
*  Source machine generated by GadToolsBox V2.0b
*  which is (c) Copyright 1991-1993 Jaba Development
*
*  GUI Designed by : Christian Bauer
*

    include 'exec/types.i'
    include 'intuition/intuition.i'
    include 'intuition/classes.i'
    include 'intuition/classusr.i'
    include 'intuition/imageclass.i'
    include 'intuition/gadgetclass.i'
    include 'libraries/gadtools.i'
    include 'graphics/displayinfo.i'
    include 'graphics/gfxbase.i'

    XREF    _GadToolsBase
    XREF    _IntuitionBase
    XREF    _GfxBase
    XREF    _SysBase
    XREF    _UtilityBase

    XREF    _LVOOpenScreenTagList
    XREF    _LVOOpenWindowTagList
    XREF    _LVOCloseScreen
    XREF    _LVOCloseWindow
    XREF    _LVOPrintIText
    XREF    _LVOLockPubScreen
    XREF    _LVOUnlockPubScreen
    XREF    _LVOSetMenuStrip
    XREF    _LVOClearMenuStrip
    XREF    _LVOGetVisualInfoA
    XREF    _LVOFreeVisualInfo
    XREF    _LVOCreateContext
    XREF    _LVOCreateGadgetA
    XREF    _LVOGT_RefreshWindow
    XREF    _LVOFreeGadgets
    XREF    _LVOCreateMenusA
    XREF    _LVOLayoutMenusA
    XREF    _LVOFreeMenus
    XREF    _LVOOpenDiskFont
    XREF    _LVOCloseFont
    XREF    _LVODrawBevelBoxA
    XREF    _LVOFreeClass
    XREF    _LVONewObjectA
    XREF    _LVODisposeObject
    XREF    _LVOTextLength
    XREF    _LVOCopyMem
    XREF    _LVOFindTagItem
    XREF    _LVOIntuiTextLength
    XREF    _LVOForbid
    XREF    _LVOPermit

GD_OK                                  EQU    0
GD_Cancel                              EQU    1
GD_Save                                EQU    2
GD_Joystick1On                         EQU    3
GD_Joystick2On                         EQU    4
GD_JoystickSwap                        EQU    5
GD_GetDisplayID                        EQU    6
GD_DisplayID                           EQU    7
GD_ScreenType                          EQU    8
GD_NormalCycles                        EQU    9
GD_BadLineCycles                       EQU    10
GD_CIACycles                           EQU    11
GD_Dir8                                EQU    12
GD_Dir9                                EQU    13
GD_Dir10                               EQU    14
GD_Dir11                               EQU    15
GD_UseSIDCard                          EQU    16
GD_Drv8IsIEC                           EQU    17
GD_Drv9IsIEC                           EQU    18
GD_Drv10IsIEC                          EQU    19
GD_Drv11IsIEC                          EQU    20
GD_GetDir8                             EQU    21
GD_GetDir9                             EQU    22
GD_GetDir10                            EQU    23
GD_GetDir11                            EQU    24
GD_OtherIEC                            EQU    25
GD_KeyboardYZ                          EQU    26

Prefs_CNT    EQU    27

    XDEF    Scr
    XDEF    VisualInfo
    XDEF    PubScreenName
    XDEF    PrefsWnd
    XDEF    PrefsGList
    XDEF    PrefsGadgets
    XDEF    getClass
    XDEF    getImage
    XREF    initGet
    XDEF    PrefsLeft
    XDEF    PrefsTop
    XDEF    PrefsWidth
    XDEF    PrefsHeight
    XDEF    Font
    XDEF    Attr
    XDEF    FontX
    XDEF    FontY
    XDEF    OffX
    XDEF    OffY

Scr:
    DC.L    0
VisualInfo:
    DC.L    0
PubScreenName:
    DC.L    WBName
WBName:
    DC.B    'Workbench',0
    CNOP  0,2
PrefsWnd:
    DC.L    0
PrefsGList:
    DC.L    0
PrefsGadgets:
    DCB.L    27,0
BufNewGad:
    DC.W    0,0,0,0
    DC.L    0,0
    DC.W    0
    DC.L    0,0,0
TD:
    DC.L    TAG_DONE
getClass:
    DC.L    0
getImage:
    DC.L    0
CL:
    DC.L    GT_VisualInfo,0,TAG_DONE
PrefsLeft:
    DC.W    0
PrefsTop:
    DC.W    11
PrefsWidth:
    DC.W    632
PrefsHeight:
    DC.W    197
Font:
    DC.L    0
FontX:
    DC.W    0
FontY:
    DC.W    0
OffX:
    DC.W    0
OffY:
    DC.W    0
Attr:
    DC.L    0
    DC.W    0
    DC.B    0,0
TopazName:
    DC.B    'topaz.font',0
    CNOP    0,2

PrefsGTypes:
    DC.W    BUTTON_KIND
    DC.W    BUTTON_KIND
    DC.W    BUTTON_KIND
    DC.W    CHECKBOX_KIND
    DC.W    CHECKBOX_KIND
    DC.W    CHECKBOX_KIND
    DC.W    BUTTON_KIND
    DC.W    TEXT_KIND
    DC.W    CYCLE_KIND
    DC.W    INTEGER_KIND
    DC.W    INTEGER_KIND
    DC.W    INTEGER_KIND
    DC.W    STRING_KIND
    DC.W    STRING_KIND
    DC.W    STRING_KIND
    DC.W    STRING_KIND
    DC.W    CHECKBOX_KIND
    DC.W    CHECKBOX_KIND
    DC.W    CHECKBOX_KIND
    DC.W    CHECKBOX_KIND
    DC.W    CHECKBOX_KIND
    DC.W    GENERIC_KIND
    DC.W    GENERIC_KIND
    DC.W    GENERIC_KIND
    DC.W    GENERIC_KIND
    DC.W    CHECKBOX_KIND
    DC.W    CHECKBOX_KIND

PrefsNGads:
    DC.W    84,174,101,16
    DC.L    OKText,0
    DC.W    GD_OK
    DC.L    PLACETEXT_IN,0,0
    DC.W    443,174,101,16
    DC.L    CancelText,0
    DC.W    GD_Cancel
    DC.L    PLACETEXT_IN,0,0
    DC.W    263,174,101,16
    DC.L    SaveText,0
    DC.W    GD_Save
    DC.L    PLACETEXT_IN,0,0
    DC.W    188,56,26,11
    DC.L    Joystick1OnText,0
    DC.W    GD_Joystick1On
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    188,69,26,11
    DC.L    Joystick2OnText,0
    DC.W    GD_Joystick2On
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    188,82,26,11
    DC.L    JoystickSwapText,0
    DC.W    GD_JoystickSwap
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    188,124,193,14
    DC.L    GetDisplayIDText,0
    DC.W    GD_GetDisplayID
    DC.L    PLACETEXT_IN,0,0
    DC.W    188,138,193,14
    DC.L    DisplayIDText,0
    DC.W    GD_DisplayID
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    188,154,129,14
    DC.L    ScreenTypeText,0
    DC.W    GD_ScreenType
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    188,7,81,14
    DC.L    NormalCyclesText,0
    DC.W    GD_NormalCycles
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    188,23,81,14
    DC.L    BadLineCyclesText,0
    DC.W    GD_BadLineCycles
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    188,39,81,14
    DC.L    CIACyclesText,0
    DC.W    GD_CIACycles
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    377,19,193,14
    DC.L    Dir8Text,0
    DC.W    GD_Dir8
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    377,35,193,14
    DC.L    Dir9Text,0
    DC.W    GD_Dir9
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    377,51,193,14
    DC.L    Dir10Text,0
    DC.W    GD_Dir10
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    377,67,193,14
    DC.L    Dir11Text,0
    DC.W    GD_Dir11
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    188,96,26,11
    DC.L    UseSIDCardText,0
    DC.W    GD_UseSIDCard
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    594,19,26,11
    DC.L    Drv8IsIECText,0
    DC.W    GD_Drv8IsIEC
    DC.L    PLACETEXT_ABOVE,0,0
    DC.W    594,35,26,11
    DC.L    Drv9IsIECText,0
    DC.W    GD_Drv9IsIEC
    DC.L    0,0,0
    DC.W    594,51,26,11
    DC.L    Drv10IsIECText,0
    DC.W    GD_Drv10IsIEC
    DC.L    0,0,0
    DC.W    594,67,26,11
    DC.L    Drv11IsIECText,0
    DC.W    GD_Drv11IsIEC
    DC.L    0,0,0
    DC.W    570,19,20,14
    DC.L    GetDir8Text,0
    DC.W    GD_GetDir8
    DC.L    0,0,0
    DC.W    570,35,20,14
    DC.L    GetDir9Text,0
    DC.W    GD_GetDir9
    DC.L    0,0,0
    DC.W    570,51,20,14
    DC.L    GetDir10Text,0
    DC.W    GD_GetDir10
    DC.L    0,0,0
    DC.W    570,67,20,14
    DC.L    GetDir11Text,0
    DC.W    GD_GetDir11
    DC.L    0,0,0
    DC.W    594,88,26,11
    DC.L    OtherIECText,0
    DC.W    GD_OtherIEC
    DC.L    PLACETEXT_LEFT,0,0
    DC.W    188,110,26,11
    DC.L    KeyboardYZText,0
    DC.W    GD_KeyboardYZ
    DC.L    PLACETEXT_LEFT,0,0

PrefsGTags:
    DC.L    GT_Underscore,'_'
    DC.L    TAG_DONE
    DC.L    GT_Underscore,'_'
    DC.L    TAG_DONE
    DC.L    GT_Underscore,'_'
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    GTTX_Border,1
    DC.L    TAG_DONE
    DC.L    GTCY_Labels,ScreenTypeLabels
    DC.L    TAG_DONE
    DC.L    GTIN_Number,0
    DC.L    GTIN_MaxChars,10
    DC.L    TAG_DONE
    DC.L    GTIN_Number,0
    DC.L    GTIN_MaxChars,10
    DC.L    TAG_DONE
    DC.L    GTIN_Number,0
    DC.L    GTIN_MaxChars,10
    DC.L    TAG_DONE
    DC.L    GTST_MaxChars,256
    DC.L    TAG_DONE
    DC.L    GTST_MaxChars,256
    DC.L    TAG_DONE
    DC.L    GTST_MaxChars,256
    DC.L    TAG_DONE
    DC.L    GTST_MaxChars,256
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    TAG_DONE
    DC.L    TAG_DONE


OKText:
    DC.B    '_OK',0

CancelText:
    DC.B    'Abbre_chen',0

SaveText:
    DC.B    '_Sichern',0

Joystick1OnText:
    DC.B    'Joystick an Port 1',0

Joystick2OnText:
    DC.B    'Joystick an Port 2',0

JoystickSwapText:
    DC.B    'Joysticks vertauschen',0

GetDisplayIDText:
    DC.B    'Auswählen...',0

DisplayIDText:
    DC.B    'Bildschirmmodus',0

ScreenTypeText:
    DC.B    'Bildschirmtyp',0

NormalCyclesText:
    DC.B    'Zyklen/Zeile (CPU)',0

BadLineCyclesText:
    DC.B    'Zyklen/Bad Line (CPU)',0

CIACyclesText:
    DC.B    'Zyklen/Zeile (CIA)',0

Dir8Text:
    DC.B    'Laufwerk 8',0

Dir9Text:
    DC.B    'Laufwerk 9',0

Dir10Text:
    DC.B    'Laufwerk 10',0

Dir11Text:
    DC.B    'Laufwerk 11',0

UseSIDCardText:
    DC.B    'SID-Karte benutzen',0

Drv8IsIECText:
    DC.B    'IEC',0

Drv9IsIECText:
    DC.B    '',0

Drv10IsIECText:
    DC.B    '',0

Drv11IsIECText:
    DC.B    '',0

GetDir8Text:
    DC.B    '',0

GetDir9Text:
    DC.B    '',0

GetDir10Text:
    DC.B    '',0

GetDir11Text:
    DC.B    '',0

OtherIECText:
    DC.B    'IEC für andere Geräte verwenden',0

KeyboardYZText:
    DC.B    'Amerik. Tastatur',0

    CNOP    0,2

    XDEF    ScreenTypeLabels

ScreenTypeLabels:
    DC.L    ScreenTypeLab0
    DC.L    ScreenTypeLab1
    DC.L    ScreenTypeLab2
    DC.L    0

ScreenTypeLab0:    DC.B    'EGS',0
ScreenTypeLab1:    DC.B    'Picasso',0
ScreenTypeLab2:    DC.B    'Amiga',0

    CNOP    0,2

    XDEF    PrefsWindowTags

PrefsWindowTags:
PrefsL:
    DC.L    WA_Left,0
PrefsT:
    DC.L    WA_Top,0
PrefsW:
    DC.L    WA_Width,0
PrefsH:
    DC.L    WA_Height,0
    DC.L    WA_IDCMP
	dc.l	BUTTONIDCMP!CHECKBOXIDCMP!TEXTIDCMP!CYCLEIDCMP!INTEGERIDCMP!STRINGIDCMP!IDCMP_GADGETUP!IDCMP_VANILLAKEY!IDCMP_REFRESHWINDOW
    DC.L    WA_Flags,WFLG_DRAGBAR!WFLG_DEPTHGADGET!WFLG_SMART_REFRESH!WFLG_SIMPLE_REFRESH!WFLG_ACTIVATE
PrefsWG:
    DC.L    WA_Gadgets,0
    DC.L    WA_Title,PrefsWTitle
    DC.L    WA_ScreenTitle,PrefsSTitle
    DC.L    WA_AutoAdjust,1
    DC.L    TAG_DONE

PrefsWTitle:
    DC.B    'Frodo Einstellungen',0
    CNOP    0,2

PrefsSTitle:
    DC.B    'Frodo C64 Emulator V1.0 (C)1994-1995 Christian Bauer. Freely distributable.',0
    CNOP    0,2

ComputeX:
    move.l  d1,-(sp)
    move.w  FontX,d1
    bra.s   ComputeItX
ComputeY:
    move.l  d1,-(sp)
    move.w  FontY,d1
    mulu    d1,d0
    addq.w  #4,d0
    divu    #8,d0
    move.l  (sp)+,d1
    rts

ComputeItX:
    mulu    d1,d0
    addq.w  #4,d0
    divu    #8,d0
    move.l  (sp)+,d1
    rts

ComputeFont:
    lea.l   Attr,a0
    move.l  a0,Font
    move.l  Scr,a1
    lea.l   sc_RastPort(a1),a1
    move.l  rp_Font(a1),a1
    move.l  LN_NAME(a1),ta_Name(a0)
    move.w  tf_YSize(a1),ta_YSize(a0)
    move.w  tf_XSize(a1),FontX
    move.w  tf_YSize(a1),FontY
    move.l  Scr,a0
    move.b  sc_WBorLeft(a0),d0
    ext.w   d0
    move.w  d0,OffX
    move.l  sc_Font(a0),a1
    move.w  ta_YSize(a1),d0
    addq.w  #1,d0
    move.b  sc_WBorTop(a0),d1
    ext.w   d1
    add.w   d1,d0
    move.w  d0,OffY
    tst.w   d2
    beq.s   CompDone
    tst.w   d3
    beq.s   CompDone
    move.w  d2,d0
    jsr     ComputeX
    add.w   OffX,d0
    move.b  sc_WBorRight(a0),d1
    ext.w   d1
    add.w   d1,d0
    cmp.w   sc_Width(a0),d0
    bhi.s   UseTopaz
    move.w  d3,d0
    jsr     ComputeY
    add.w   OffY,d0
    move.b  sc_WBorBottom(a0),d1
    ext.w   d1
    add.w   d1,d0
    cmp.w   sc_Height(a0),d0
    bhi.s   UseTopaz
CompDone:
    rts
UseTopaz:
    move.l  Font,a0
    move.l  #TopazName,ta_Name(a0)
    move.w  #8,FontY
    move.w  #8,FontX
    move.w  #8,ta_YSize(a0)
    rts

    XDEF    SetupScreen

SetupScreen
    movem.l d1-d3/a0-a2/a6,-(sp)
    move.l  _IntuitionBase,a6
    move.l  PubScreenName,a0
    jsr     _LVOLockPubScreen(a6)
    move.l  d0,Scr
    tst.l   d0
    beq     SError
    moveq   #0,d2
    moveq   #0,d3
    jsr     ComputeFont
    move.l  Scr,a0
    move.l  _GadToolsBase,a6
    lea.l   TD,a1
    jsr     _LVOGetVisualInfoA(a6)
    move.l  d0,VisualInfo
    move.l  d0,CL+4
    tst.l   d0
    beq     VError
    jsr     initGet
    move.l  d0,getClass
    tst.l   d0
    beq     CError
    move.l  _IntuitionBase,a6
    move.l  d0,a0
    suba.l  a1,a1
    lea.l   CL,a2
    jsr     _LVONewObjectA(a6)
    move.l  d0,getImage
    tst.l   d0
    beq     OError
    moveq   #0,d0
SDone:
    movem.l (sp)+,d1-d3/a0-a2/a6
    rts
SError:
    moveq   #1,d0
    bra.s   SDone
VError:
    moveq   #2,d0
    bra.s   SDone
CError:
    moveq   #4,d0
    bra.s   SDone
OError:
    moveq   #5,d0
    bra.s   SDone

    XDEF    CloseDownScreen

CloseDownScreen:
    movem.l d0-d1/a0-a1/a6,-(sp)
    move.l  _IntuitionBase,a6
    move.l  getImage,a0
    cmpa.l  #0,a0
    beq.s   NoObj
    jsr     _LVODisposeObject(a6)
NoObj:
    move.l  getClass,a0
    cmpa.l  #0,a0
    beq.s   NoCls
    jsr     _LVOFreeClass(a6)
NoCls:
    move.l  _GadToolsBase,a6
    move.l  VisualInfo,a0
    cmpa.l  #0,a0
    beq.s   NoVis
    jsr     _LVOFreeVisualInfo(a6)
    move.l  #0,VisualInfo
NoVis:
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    move.l  Scr,a1
    cmpa.l  #0,a1
    beq.s   NoScr
    jsr     _LVOUnlockPubScreen(a6)
    move.l  #0,Scr
NoScr:
    movem.l (sp)+,d0-d1/a0-a1/a6
    rts

    XDEF    OpenPrefsWindow

OpenPrefsWindow:
    movem.l d1-d4/a0-a4/a6,-(sp)
    move.l  Scr,a0
    moveq   #0,d3
    moveq   #0,d2
    move.w  PrefsWidth,d2
    move.w  PrefsHeight,d3
    jsr     ComputeFont
    move.l  Scr,a0
    move.l  d2,d0
    jsr     ComputeX
    move.l  d0,d4
    move.w  PrefsLeft,d2
    add.w   d2,d0
    add.w   OffX,d0
    move.b  sc_WBorRight(a0),d1
    ext.w   d1
    add.w   d1,d0
    cmp.w   sc_Width(a0),d0
    bls.s   PrefsWOk
    move.w  sc_Width(a0),d0
    sub.w   d4,d0
    move.w  d0,d2
PrefsWOk:
    move.l  d3,d0
    jsr     ComputeY
    move.l  d0,d4
    move.w  PrefsTop,d3
    add.w   d3,d0
    add.w   OffY,d0
    move.b  sc_WBorBottom(a0),d1
    ext.w   d1
    add.w   d1,d0
    cmp.w   sc_Height(a0),d0
    bls.s   PrefsHOk
    move.w  sc_Height(a0),d0
    sub.w   d4,d0
    move.w  d0,d3
PrefsHOk:
    move.l  _GadToolsBase,a6
    lea.l   PrefsGList,a0
    jsr     _LVOCreateContext(a6)
    move.l  d0,a3
    tst.l   d0
    beq     PrefsCError
    movem.w d2-d3,-(sp)
    moveq   #0,d3
    lea.l   PrefsGTags,a4
PrefsGL:
    move.l  _SysBase,a6
    lea.l   PrefsNGads,a0
    move.l  d3,d0
    mulu    #gng_SIZEOF,d0
    add.l   d0,a0
    lea.l   BufNewGad,a1
    moveq   #gng_SIZEOF,d0
    jsr     _LVOCopyMem(a6)
    lea.l   BufNewGad,a0
    move.l  VisualInfo,gng_VisualInfo(a0)
    move.l  Font,gng_TextAttr(a0)
    move.w  gng_LeftEdge(a0),d0
    jsr     ComputeX
    add.w   OffX,d0
    move.w  d0,gng_LeftEdge(a0)
    move.w  gng_TopEdge(a0),d0
    jsr     ComputeY
    add.w   OffY,d0
    move.w  d0,gng_TopEdge(a0)
    move.w  gng_Width(a0),d0
    jsr     ComputeX
    move.w  d0,gng_Width(a0)
    move.w  gng_Height(a0),d0
    jsr     ComputeY
    move.w  d0,gng_Height(a0)
    move.l  _GadToolsBase,a6
    lea.l   PrefsGTypes,a0
    moveq   #0,d0
    move.l  d3,d1
    asl.l   #1,d1
    add.l   d1,a0
    move.w  (a0),d0
    move.l  a3,a0
    lea.l   BufNewGad,a1
    move.l  a4,a2
    jsr     _LVOCreateGadgetA(a6)
    tst.l   d0
    bne.s    PrefsCOK
    movem.w (sp)+,d2-d3
    bra     PrefsGError
PrefsCOK:
    move.l  d0,a3
    move.l  d3,d0
    asl.l   #2,d0
    lea.l   PrefsGadgets,a0
    add.l   d0,a0
    move.l  a3,(a0)
    move.l  a3,a0
    move.l  d3,d0
    asl.l   #1,d0
    lea.l   PrefsGTypes,a1
    add.l   d0,a1
    cmp.w   #GENERIC_KIND,(a1)
    bne.s   PrefsNoGen1
    or.w    #GFLG_GADGIMAGE!GFLG_GADGHIMAGE,gg_Flags(a0)
    or.w    #GACT_RELVERIFY,gg_Activation(a0)
    move.l  getImage,gg_GadgetRender(a0)
    move.l  getImage,gg_SelectRender(a0)
PrefsNoGen1:
PrefsTL:
    tst.l   (a4)
    beq.s   PrefsDN
    addq.w  #8,a4
    bra.s   PrefsTL
PrefsDN:
    addq.w  #4,a4
    addq.w  #1,d3
    cmp.w   #Prefs_CNT,d3
    bmi     PrefsGL
    movem.w (sp)+,d2-d3
    move.l  PrefsGList,PrefsWG+4
    ext.l   d2
    ext.l   d3
    move.l  d2,PrefsL+4
    move.l  d3,PrefsT+4
    move.l  Scr,a0
    move.w  PrefsWidth,d0
    jsr     ComputeX
    add.w   OffX,d0
    move.b  sc_WBorRight(a0),d1
    ext.w   d1
    add.w   d1,d0
    move.l  d0,PrefsW+4
    move.w  PrefsHeight,d0
    jsr     ComputeY
    add.w   OffY,d0
    move.b  sc_WBorBottom(a0),d1
    ext.w   d1
    add.w   d1,d0
    move.l  d0,PrefsH+4
    move.l  _IntuitionBase,a6
    suba.l  a0,a0
    lea.l   PrefsWindowTags,a1
    jsr     _LVOOpenWindowTagList(a6)
    move.l  d0,PrefsWnd
    tst.l   d0
    beq     PrefsWError
    move.l  _GadToolsBase,a6
    move.l  PrefsWnd,a0
    suba.l  a1,a1
    jsr     _LVOGT_RefreshWindow(a6)
    moveq   #0,d0
PrefsDone:
    movem.l (sp)+,d1-d4/a0-a4/a6
    rts
PrefsCError:
    moveq   #1,d0
    bra.s   PrefsDone
PrefsGError:
    moveq   #2,d0
    bra.s   PrefsDone
PrefsWError:
    moveq   #4,d0
    bra.s   PrefsDone

    XDEF    ClosePrefsWindow

ClosePrefsWindow:
    movem.l d0-d1/a0-a2/a6,-(sp)
    move.l  _IntuitionBase,a6
    move.l  PrefsWnd,a0
    cmpa.l  #0,a0
    beq     PrefsNWnd
    jsr     _LVOCloseWindow(a6)
    move.l  #0,PrefsWnd
PrefsNWnd:
    move.l  _GadToolsBase,a6
    move.l  PrefsGList,a0
    cmpa.l  #0,a0
    beq     PrefsNGad
    jsr     _LVOFreeGadgets(a6)
    move.l  #0,PrefsGList
PrefsNGad:
    movem.l (sp)+,d0-d1/a0-a2/a6
    rts


    end
