;MUIBBLib version 0.1
;***** WATCH OUT!!! BETA VERSION!!! *****

#muibblib=xx ;put a free lib number

!libheader {#muibblib,0,0,0,0}

!acommand  {#long}
!repargs   {1,1,#string,#long}
!libs
!subs      {_MUI_NewObject,0,0}
!name      {"MUI_NewObject","(Class$,Tag[,Tag...])"}

!acommand   {#long}
!repargs    {1,1,#long,#long}
!libs
!subs       {_MUI_MakeObject,0,0}
!name       {"MUI_MakeObject","(Type,Tag[,Tag...])"}

!afunction {#long}
!args
!libs
!subs      {_MUI_TRUE,0,0}
!name      {"MUI_TRUE",";Return the TRUE value for MUI"}

!afunction {#long}
!args
!libs
!subs      {_MUIBase,0,0}
!name      {"MUI_Base",";Return the Base of MUIMaster"}

!acommand {#long}
!args     {#long}
!libs
!subs     {_HCenter,0,0}
!name     {"HCenter","(obj) ;MUI HCenter"}

!acommand {#long}
!args     {#long}
!libs
!subs     {_VCenter,0,0}
!name     {"VCenter","(obj) ;MUI VCenter"}

!acommand {#long}
!args     {#string,#long}
!libs
!subs     {_String,0,0}
!name     {"MUIString","(contents$,maxlen) ;MUI String"}

!acommand {#long}
!args     {#string,#long,#string}
!libs
!subs     {_KeyString,0,0}
!name     {"KeyString","(contents$,maxlen,controlchar$) ;MUI KeyString"}

!acommand {#long}
!args     {#long}
!libs
!subs     {_CheckMark,0,0}
!name     {"CheckMark","(selected) ;MUI CheckMark"}

!acommand {#long}
!args     {#long,#string}
!libs
!subs     {_KeyCheckMark,0,0}
!name     {"KeyCheckMark","(selected,control$) ;MUI KeyCheckMark"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_SimpleButton,0,0}
!name     {"SimpleButton","(label$) ;MUI SimpleButton"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_KeyButton,0,0}
!name     {"KeyButton","(name$,key$) ;MUI KeyButton"}

!acommand {#long}
!args     {#long}
!libs
!subs     {_Cycle,0,0}
!name     {"MUI_Cycle","(&*entries(0)) ;MUI Cycle"}

!acommand {#long}
!args     {#long,#string}
!libs
!subs     {_KeyCycle,0,0}
!name     {"KeyCycle","(&*entries(0),key$) ;MUI KeyCycle"}

!acommand {#long}
!args     {#string,#long}
!libs
!subs     {_Radio,0,0}
!name     {"Radio","(name$,&*array(0)) ;MUI Radio"}

!acommand {#long}
!args     {#string,#long,#string}
!libs
!subs     {_KeyRadio,0,0}
!name     {"KeyRadio","(name$,&*array(0),key$) ;MUI KeyRadio"}

!acommand {#long}
!args     {#long,#long,#long}
!libs
!subs     {_Slider,0,0}
!name     {"Slider","(min,max,level) ;MUI Slider"}

!acommand {#long}
!args     {#long,#long,#long,#string}
!libs
!subs     {_KeySlider,0,0}
!name     {"KeySlider","(min,max,level,key$) ;MUI KeySlider"}

!acommand {#long}
!args     {#long}
!libs
!subs     {_PopButton,0,0}
!name     {"PopButton","(img) ;MUI PopButton"}

;***** Labels *****

!acommand {#long}
!args     {#string}
!libs
!subs     {_Label,0,0}
!name     {"Label","(label$) ;MUI Label"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_LabelI,0,0}
!name     {"LabelI","(label$) ;MUI LabelI"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_LabelII,0,0}
!name     {"LabelII","(label$) ;MUI LabelII"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_LLabel,0,0}
!name     {"LLabel","(label$) ;MUI LLabel"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_LLabelI,0,0}
!name     {"LLabelI","(label$) ;MUI LLabelI"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_LLabelII,0,0}
!name     {"LLabelII","(label$) ;MUI LLabelII"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_CLabel,0,0}
!name     {"CLabel","(label$) ;MUI CLabel"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_CLabelI,0,0}
!name     {"CLabelI","(label$) ;MUI CLabelI"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_CLabelII,0,0}
!name     {"CLabelII","(label$) ;MUI CLabelII"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_FreeLabel,0,0}
!name     {"FreeLabel","(label$) ;MUI FreeLabel"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_FreeLabelI,0,0}
!name     {"FreeLabelI","(label$) ;MUI FreeLabelI"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_FreeLabelII,0,0}
!name     {"FreeLabelII","(label$) ;MUI FreeLabelII"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_FreeLLabel,0,0}
!name     {"FreeLLabel","(label$) ;MUI FreeLLabel"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_FreeLLabelI,0,0}
!name     {"FreeLLabelI","(label$) ;MUI FreeLLabelI"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_FreeLLabelII,0,0}
!name     {"FreeLLabelII","(label$) ;MUI FreeLLabelII"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_FreeCLabel,0,0}
!name     {"FreeCLabel","(label$) ;MUI FreeCLabel"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_FreeCLabelI,0,0}
!name     {"FreeCLabelI","(label$) ;MUI FreeCLabelI"}

!acommand {#long}
!args     {#string}
!libs
!subs     {_FreeCLabelII,0,0}
!name     {"FreeCLabelII","(label$) ;MUI FreeCLabelII"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_KeyLabel,0,0}
!name     {"KeyLabel","(label$,key$) ;MUI KeyLabel"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_KeyLabelI,0,0}
!name     {"KeyLabelI","(label$,key$) ;MUI KeyLabelI"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_KeyLabelII,0,0}
!name     {"KeyLabelII","(label$,key$) ;MUI KeyLabelII"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_KeyLLabel,0,0}
!name     {"KeyLLabel","(label$,key$) ;MUI KeyLLabel"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_KeyLLabelI,0,0}
!name     {"KeyLLabelI","(label$,key$) ;MUI KeyLLabelI"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_KeyLLabelII,0,0}
!name     {"KeyLLabelII","(label$,key$) ;MUI KeyLLabelII"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_KeyCLabel,0,0}
!name     {"KeyCLabel","(label$,key$) ;MUI KeyCLabel"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_KeyCLabelI,0,0}
!name     {"KeyCLabelI","(label$,key$) ;MUI KeyCLabelI"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_KeyCLabelII,0,0}
!name     {"KeyCLabelII","(label$,key$) ;MUI KeyCLabelII"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_FreeKeyLabel,0,0}
!name     {"FreeKeyLabel","(label$,key$) ;MUI FreeKeyLabel"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_FreeKeyLabelI,0,0}
!name     {"FreeKeyLabelI","(label$,key$) ;MUI FreeKeyLabelI"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_FreeKeyLabelII,0,0}
!name     {"FreeKeyLabelII","(label$,key$) ;MUI FreeKeyLabelII"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_FreeKeyLLabel,0,0}
!name     {"FreeKeyLLabel","(label$,key$) ;MUI FreeKeyLLabel"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_FreeKeyLLabelI,0,0}
!name     {"FreeKeyLLabelI","(label$,key$) ;MUI FreeKeyLLabelI"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_FreeKeyLLabelII,0,0}
!name     {"FreeKeyLLabelII","(label$,key$) ;MUI FreeKeyLLabelII"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_FreeKeyCLabel,0,0}
!name     {"FreeKeyCLabel","(label$,key$) ;MUI FreeKeyCLabel"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_FreeKeyCLabelI,0,0}
!name     {"FreeKeyCLabelI","(label$,key$) ;MUI FreeKeyCLabelI"}

!acommand {#long}
!args     {#string,#string}
!libs
!subs     {_FreeKeyCLabelII,0,0}
!name     {"FreeKeyCLabelII","(label$,key$) ;MUI FreeKeyCLabelII"}


!astatement
!args     {#long,#long,#long}
!libs     {#intuitionlib,#la6}
!subs     {_MUI_get,0,0}
!name     {"MUI_get","obj,attr,store ;MUI get"}

!astatement
!args     {#long,#long,#long}
!libs     {#intuitionlib,#la6}
!subs     {_set,0,0}
!name     {"MUI_set","obj,attr,value ;MUI set"}

!astatement
!args     {#long,#long,#long}
!libs     {#intuitionlib,#la6}
!subs     {_nnset,0,0}
!name     {"nnset","obj,attr,value ;MUI nnset"}

!astatement
!args     {#long,#long}
!libs     {#intuitionlib,#la6}
!subs     {_setmutex,0,0}
!name     {"setmutex","obj,n ;MUI setmutex"}

!astatement
!args     {#long,#long}
!libs     {#intuitionlib,#la6}
!subs     {_setcycle,0,0}
!name     {"setcycle","obj,n ;MUI setcycle"}

!astatement
!args     {#long,#string}
!libs     {#intuitionlib,#la6}
!subs     {_setstring,0,0}
!name     {"setstring","obj,s ;MUI setstring"}

!astatement
!args     {#long,#long}
!libs     {#intuitionlib,#la6}
!subs     {_setcheckmark,0,0}
!name     {"setcheckmark","obj,b ;MUI setcheckmark"}

!astatement
!args     {#long,#long}
!libs     {#intuitionlib,#la6}
!subs     {_setslider,0,0}
!name     {"setslider","obj,l ;MUI setslider"}

!libfin

XINCLUDE "mui.bb2"

Macro NObject
        MOVE.l  _MUIMasterBase(pc),a6
        JSR     -30(a6)
        MOVE.l  d0,d7
End Macro

Macro MObject
        MOVE.l  _MUIMasterBase(pc),a6
        JSR     -120(a6)
End Macro

._MUI_NewObject:
        MOVEM.l d1/d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        LEA.l   args(pc),a1
        MOVE.l  a1,d1
        SUBQ.l  #1,d7
Loop:   MOVE.l  -(a2),(a1)+
        DBRA    d7,Loop
        BSR     OpenMUI
        MOVE.l  (a7)+,a0
        MOVE.l  d1,a1
        MOVEQ.l #0,d7
        !NObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d1/d7/a0-a1/a6
        RTS

._MUI_MakeObject:
        MOVEM.l a0-a1/a6/d1-d2/d7,-(a7)
        MOVE.l  d0,d2
        LEA.l   args(pc),a1
        MOVE.l  a1,d1
        SUBQ.l  #1,d7
Loop1:  MOVE.l  -(a2),(a1)+
        DBF     d7,Loop1
        BSR     OpenMUI
        MOVE.l  d2,d0
        MOVE.l  d1,a0
        !MObject
        MOVE.l  d0,d7
        BSR     CloseMUI
        MOVE.l  d7,d0
fin1:   MOVEM.l (a7)+,a0-a1/a6/d1-d2/d7
        RTS

._MUI_TRUE:
        MOVEQ   #1,d0
        RTS

._MUIBase
        BSR     OpenMUI
        MOVE.l  #_MUIMasterBase,d7
        BSR     CloseMUI
        MOVE.l  d7,d0
        RTS

._HCenter:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a1
        MOVE.l  a1,d7
        MOVE.l  #MUIA_Group_Horiz,(a1)+
        MOVE.l  #1,(a1)+
        MOVE.l  #MUIA_Group_Spacing,(a1)+
        MOVE.l  #0,(a1)+
        MOVE.l  #Child,(a1)+
        MOVE.l  #MUIO_HSpace,d0
        MOVE.l  #0,a0
        !MObject
        MOVE.l  d0,(a1)+
        MOVE.l  #Child,(a1)+
        MOVE.l  (a7)+,(a1)+
        MOVE.l  #Child,(a1)+
        MOVE.l  #MUIO_HSpace,d0
        MOVE.l  #0,a0
        !MObject
        MOVE.l  d0,(a1)+
        MOVE.l  #0,(a1)
        LEA     MUIC_Group(pc),a0
        MOVE.l  d7,a1
        !NObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._VCenter:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a1
        MOVE.l  a1,d7
        MOVE.l  #MUIA_Group_Spacing,(a1)+
        MOVE.l  #0,(a1)+
        MOVE.l  #Child,(a1)+
        MOVE.l  #MUIO_VSpace,d0
        MOVE.l  #0,a0
        !MObject
        MOVE.l  d0,(a1)+
        MOVE.l  #Child,(a1)+
        MOVE.l  (a7)+,(a1)+
        MOVE.l  #Child,(a1)+
        MOVE.l  #MUIO_VSpace,d0
        MOVE.l  #0,a0
        !MObject
        MOVE.l  d0,(a1)+
        MOVE.l  #0,(a1)
        LEA     MUIC_Group(pc),a0
        MOVE.l  d7,a1
        !NObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._String:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        MOVE.l  d1,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a1
        MOVE.l  a1,d7
        MOVE.l  #MUIA_Frame,(a1)+
        MOVE.l  #MUIV_Frame_String,(a1)+
        MOVE.l  #MUIA_String_MaxLen,(a1)+
        MOVE.l  (a7)+,(a1)+
        MOVE.l  #MUIA_String_Contents,(a1)+
        MOVE.l  (a7)+,(a1)+
        MOVE.l  #0,(a1)
        LEA     MUIC_String(pc),a0
        MOVE.l  d7,a1
        !NObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeyString:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a1
        MOVE.l  a1,d7
        MOVE.l  #MUIA_Frame,(a1)+
        MOVE.l  #MUIV_Frame_String,(a1)+
        MOVE.l  #MUIA_ControlChar,(a1)+
        MOVE.l  d2,(a1)+
        MOVE.l  #MUIA_String_MaxLen,(a1)+
        MOVE.l  d1,(a1)+
        MOVE.l  #MUIA_String_Contents,(a1)+
        MOVE.l  (a7)+,(a1)+
        MOVE.l  #0,(a1)
        LEA     MUIC_String(pc),a0
        MOVE.l  d7,a1
        !NObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._CheckMark:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a1
        MOVE.l  a1,d7
        MOVE.l  #MUIA_Frame,(a1)+
        MOVE.l  #MUIV_Frame_ImageButton,(a1)+
        MOVE.l  #MUIA_InputMode,(a1)+
        MOVE.l  #MUIV_InputMode_Toggle,(a1)+
        MOVE.l  #MUIA_Image_Spec,(a1)+
        MOVE.l  #MUII_CheckMark,(a1)+
        MOVE.l  #MUIA_Image_FreeVert,(a1)+
        MOVE.l  #1,(a1)+
        MOVE.l  #MUIA_Selected,(a1)+
        MOVE.l  (a7)+,(a1)+
        MOVE.l  #MUIA_Background,(a1)+
        MOVE.l  #MUII_ButtonBack,(a1)+
        MOVE.l  #MUIA_ShowSelState,(a1)+
        MOVE.l  #0,(a1)+
        MOVE.l  #0,(a1)
        LEA     MUIC_Image(pc),a0
        MOVE.l  d7,a1
        !NObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeyCheckMark:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a1
        MOVE.l  a1,d7
        MOVE.l  #MUIA_Frame,(a1)+
        MOVE.l  #MUIV_Frame_ImageButton,(a1)+
        MOVE.l  #MUIA_InputMode,(a1)+
        MOVE.l  #MUIV_InputMode_Toggle,(a1)+
        MOVE.l  #MUIA_Image_Spec,(a1)+
        MOVE.l  #MUII_CheckMark,(a1)+
        MOVE.l  #MUIA_Image_FreeVert,(a1)+
        MOVE.l  #1,(a1)+
        MOVE.l  #MUIA_Selected,(a1)+
        MOVE.l  (a7)+,(a1)+
        MOVE.l  #MUIA_Background,(a1)+
        MOVE.l  #MUII_ButtonBack,(a1)+
        MOVE.l  #MUIA_ShowSelState,(a1)+
        MOVE.l  #0,(a1)+
        MOVE.l  #MUIA_ControlChar,(a1)+
        MOVE.l  d1,(a1)+
        MOVE.l  #0,(a1)
        LEA     MUIC_Image(pc),a0
        MOVE.l  d7,a1
        !NObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._SimpleButton:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        MOVE.l  #MUIO_Button,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,a0
        !MObject
        MOVE.l  d0,d7
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeyButton:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a1
        MOVE.l  a1,d7
        MOVE.l  #MUIA_Frame,(a1)+
        MOVE.l  #MUIV_Frame_Button,(a1)+
        MOVE.l  #MUIA_Font,(a1)+
        MOVE.l  #MUIV_Font_Button,(a1)+
        MOVE.l  #MUIA_Text_Contents,(a1)+
        MOVE.l  (a7)+,(a1)+
        MOVE.l  #MUIA_Text_PreParse,(a1)+
        LEA     l_33c(pc),a0
        MOVE.l  a0,(a1)+
        MOVE.l  #MUIA_Text_HiChar,(a1)+
        MOVE.l  d1,(a1)+
        MOVE.l  #MUIA_ControlChar,(a1)+
        MOVE.l  d1,(a1)+
        MOVE.l  #MUIA_InputMode,(a1)+
        MOVE.l  #MUIV_InputMode_RelVerify,(a1)+
        MOVE.l  #MUIA_Background,(a1)+
        MOVE.l  #MUII_ButtonBack,(a1)+
        MOVE.l  #0,(a1)
        LEA     MUIC_Text(pc),a0
        MOVE.l  d7,a1
        !NObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._Cycle:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a1
        MOVE.l  a1,d7
        MOVE.l  #MUIA_Font,(a1)+
        MOVE.l  #MUIV_Font_Button,(a1)+
        MOVE.l  #MUIA_Cycle_Entries,(a1)+
        MOVE.l  (a7)+,(a1)+
        MOVE.l  #0,(a1)
        LEA     MUIC_Cycle(pc),a0
        MOVE.l  d7,a1
        !NObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeyCycle:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a1
        MOVE.l  a1,d7
        MOVE.l  #MUIA_Font,(a1)+
        MOVE.l  #MUIV_Font_Button,(a1)+
        MOVE.l  #MUIA_Cycle_Entries,(a1)+
        MOVE.l  (a7)+,(a1)+
        MOVE.l  #MUIA_ControlChar,(a1)+
        MOVE.l  d1,(a1)+
        MOVE.l  #0,(a1)
        LEA     MUIC_Cycle(pc),a0
        MOVE.l  d7,a1
        !NObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._Radio:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a1
        MOVE.l  a1,d7
        MOVE.l  #MUIA_Frame,(a1)+
        MOVE.l  #MUIV_Frame_Group,(a1)+
        MOVE.l  #MUIA_FrameTitle,(a1)+
        MOVE.l  (a7)+,(a1)+
        MOVE.l  #MUIA_Background,(a1)+
        MOVE.l  #MUII_GroupBack,(a1)+
        MOVE.l  #MUIA_Radio_Entries,(a1)+
        MOVE.l  d1,(a1)+
        MOVE.l  #0,(a1)
        LEA     MUIC_Radio(pc),a0
        MOVE.l  d7,a1
        !NObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeyRadio:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a1
        MOVE.l  a1,d7
        MOVE.l  #MUIA_Frame,(a1)+
        MOVE.l  #MUIV_Frame_Group,(a1)+
        MOVE.l  #MUIA_FrameTitle,(a1)+
        MOVE.l  (a7)+,(a1)+
        MOVE.l  #MUIA_Background,(a1)+
        MOVE.l  #MUII_GroupBack,(a1)+
        MOVE.l  #MUIA_Radio_Entries,(a1)+
        MOVE.l  d1,(a1)+
        MOVE.l  #MUIA_ControlChar,(a1)+
        MOVE.l  d2,(a1)+
        MOVE.l  #0,(a1)
        LEA     MUIC_Radio(pc),a0
        MOVE.l  d7,a1
        !NObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._Slider:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a1
        MOVE.l  a1,d7
        MOVE.l  #MUIA_Numeric_Min,(a1)+
        MOVE.l  (a7)+,(a1)+
        MOVE.l  #MUIA_Numeric_Max,(a1)+
        MOVE.l  d1,(a1)+
        MOVE.l  #MUIA_Numeric_Value,(a1)+
        MOVE.l  d2,(a1)+
        MOVE.l  #0,(a1)
        LEA     MUIC_Slider(pc),a0
        MOVE.l  d7,a1
        !NObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeySlider:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a1
        MOVE.l  a1,d7
        MOVE.l  #MUIA_Numeric_Min,(a1)+
        MOVE.l  (a7)+,(a1)+
        MOVE.l  #MUIA_Numeric_Max,(a1)+
        MOVE.l  d1,(a1)+
        MOVE.l  #MUIA_Numeric_Value,(a1)+
        MOVE.l  d2,(a1)+
        MOVE.l  #MUIA_ControlChar,(a1)+
        MOVE.l  d3,(a1)+
        MOVE.l  #0,(a1)
        LEA     MUIC_Slider(pc),a0
        MOVE.l  d7,a1
        !NObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._PopButton:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        MOVE.l  #MUIO_PopButton,d0
        MOVE.l  (a7)+,a0
        !MObject
        MOVE.l  d0,d7
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._Label:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #0,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._LabelI:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_SingleFrame,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._LabelII:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_DoubleFrame,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._LLabel:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_LeftAligned,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._LLabelI:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_LeftAligned|#MUIO_Label_SingleFrame,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._LLabelII:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_LeftAligned|#MUIO_Label_DoubleFrame,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._CLabel:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_Centered,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._CLabelI:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_Centered|#MUIO_Label_SingleFrame,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._CLabelII:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_Centered|#MUIO_Label_DoubleFrame,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeLabel:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_FreeVert,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeLabelI:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_FreeVert|#MUIO_Label_SingleFrame,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeLabelII:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_FreeVert|#MUIO_Label_DoubleFrame,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeLLabel:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_FreeVert|#MUIO_Label_LeftAligned,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeLLabelI:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_FreeVert|#MUIO_Label_LeftAligned|#MUIO_Label_SingleFrame,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeLLabelII:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_FreeVert|#MUIO_Label_LeftAligned|#MUIO_Label_DoubleFrame,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeCLabel:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_FreeVert|#MUIO_Label_Centered,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeCLabelI:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_FreeVert|#MUIO_Label_Centered|#MUIO_Label_SingleFrame,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeCLabelII:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  #MUIO_Label_FreeVert|#MUIO_Label_Centered|#MUIO_Label_DoubleFrame,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeyLabel:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeyLabelI:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_SingleFrame,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeyLabelII:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_DoubleFrame,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeyLLabel:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_LeftAligned,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeyLLabelI:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_LeftAligned|#MUIO_Label_SingleFrame,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeyLLabelII:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_LeftAligned|#MUIO_Label_DoubleFrame,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeyCLabel:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_Centered,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeyCLabelI:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_Centered|#MUIO_Label_SingleFrame,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._KeyCLabelII:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_Centered|#MUIO_Label_DoubleFrame,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeKeyLabel:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_FreeVert,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeKeyLabelI:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_FreeVert|#MUIO_Label_SingleFrame,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeKeyLabelII:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_FreeVert|#MUIO_Label_DoubleFrame,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeKeyLLabel:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_FreeVert|#MUIO_Label_LeftAligned,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeKeyLLabelI:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_FreeVert|#MUIO_Label_LeftAligned|#MUIO_Label_SingleFrame,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeKeyLLabelII:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_FreeVert|#MUIO_Label_LeftAligned|#MUIO_Label_DoubleFrame,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeKeyCLabel:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_FreeVert|#MUIO_Label_Centered,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeKeyCLabelI:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_FreeVert|#MUIO_Label_Centered|#MUIO_Label_SingleFrame,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._FreeKeyCLabelII:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,-(a7)
        BSR     OpenMUI
        LEA     args(pc),a0
        MOVE.l  a0,d7
        MOVE.l  #MUIO_Label,d0
        LEA     str(pc),a1
        MOVE.l  (a7)+,(a1)
        MOVE.l  a1,(a0)+
        OR.l    #MUIO_Label_FreeVert|#MUIO_Label_Centered|#MUIO_Label_DoubleFrame,d1
        MOVE.l  d1,(a0)
        MOVE.l  d7,a0
        !MObject
        BSR     CloseMUI
        MOVE.l  d7,d0
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._MUI_get:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,a0
        MOVE.l  d2,a1
        MOVE.l  d1,d0
        JSR     -654(a6)
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._set:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,a0
        LEA     args(pc),a1
        MOVE.l  a1,d0
        MOVE.l  d1,(a1)+
        MOVE.l  d2,(a1)+
        MOVE.l  #0,(a1)
        MOVE.l  d0,a1
        JSR     -648(a6)
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._nnset:
        MOVEM.l d7/a0-a1/a6,-(a7)
        MOVE.l  d0,a0
        LEA     args(pc),a1
        MOVE.l  a1,d0
        MOVE.l  #MUIA_NoNotify,(a1)+
        MOVE.l  #1,(a1)+
        MOVE.l  d1,(a1)+
        MOVE.l  d2,(a1)+
        MOVE.l  #0,(a1)
        MOVE.l  d0,a1
        JSR     -648(a6)
        MOVEM.l (a7)+,d7/a0-a1/a6
        RTS

._setmutex:
        MOVE.l  d1,d2
        MOVE.l  #MUIA_Radio_Active,d1
        BRA     _set

._setcycle:
        MOVE.l  d1,d2
        MOVE.l  #MUIA_Cycle_Active,d1
        BRA     _set

._setstring:
        MOVE.l  d1,d2
        MOVE.l  #MUIA_String_Contents,d1
        BRA     _set

._setcheckmark:
        MOVE.l  d1,d2
        MOVE.l  #MUIA_Selected,d1
        BRA     _set

._setslider:
        MOVE.l  d1,d2
        MOVE.l  #MUIA_Numeric_Value,d1
        BRA     _set

OpenMUI:
        LEA     MUIName(pc),a1
        MOVEQ   #0,d0
        MOVE.l  4,a6
        JSR     -552(a6)
        MOVE.l  d0,_MUIMasterBase
        BEQ     MUIErr
        RTS

CloseMUI:
        MOVE.l  _MUIMasterBase(pc),a1
        MOVE.l  4,a6
        JSR     -414(a6)
        RTS

MUIErr:
        MOVE.l  #MUIErrMessage,d0
        TRAP    #0

MUIErrMessage:  Dc.b    "MUILIB ERROR !!!",0
        Even
MUIName:        Dc.b    "muimaster.library",0
_MUIMasterBase: Dc.l    0
args:           Dcb.l   25,0
str:            Dc.l    0

MUIC_Group:     Dc.b    "Group.mui",0
        Even
MUIC_String:    Dc.b    "String.mui",0
        Even
MUIC_Image:     Dc.b    "Image.mui",0
        Even
MUIC_Text:      Dc.b    "Text.mui",0
        Even
MUIC_Cycle:     Dc.b    "Cycle.mui",0
        Even
MUIC_Radio:     Dc.b    "Radio.mui",0
        Even
MUIC_Slider:    Dc.b    "Slider.mui",0
        Even


l_33c:          Dc.b    "\33c"
