home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / bbs / dev / tbsource.lha / TBSource / Questions / QuePrefs.S < prev    next >
Text File  |  1993-12-21  |  31KB  |  1,549 lines

  1. *************************************************
  2. *                        *
  3. *         (C)opyright 1991        *
  4. *                        *
  5. *        by  Tomi Blinnikka        *
  6. *                        *
  7. *    Don´t try to understand the code    *
  8. *                        *
  9. * Version: See info from main source code    *
  10. *                        *
  11. *************************************************
  12.  
  13.     INCLUDE    "JMPLibs.i"
  14.     INCLUDE    "exec/types.i"
  15.     INCLUDE    "libraries/reqbase.i"
  16.  
  17.     INCLUDE    "XREF:intuition.xref"
  18.     INCLUDE    "XREF:2.0.xref"
  19.     INCLUDE    "XREF:dos.xref"
  20.     INCLUDE    "XREF:exec.xref"
  21.     INCLUDE    "XREF:gfx.xref"
  22.  
  23.     XDEF    Prefs20
  24.     XDEF    SToW5
  25.     XDEF    PrefsWin1
  26.     XDEF    NoPrefsWin1
  27.     XDEF    glist2
  28.     XDEF    mlist2
  29.     XDEF    GadMagic2
  30.     XDEF    MenuMagic2
  31.     XDEF    DefPrefs
  32.     XDEF    Talk
  33.     XDEF    TalkSys
  34.     XDEF    TalkDes
  35.     XDEF    TalkQue
  36.     XDEF    TalkAns
  37.     XDEF    TalkScore
  38.     XDEF    IHandler
  39.     XDEF    FileRequest2
  40.     XDEF    SpeakName
  41.     XDEF    SpeakName2
  42.     XDEF    PrefsFile
  43.     XDEF    SpeakFile
  44.     XDEF    SpeakFile2
  45.     XDEF    FRPathName2
  46.     XDEF    Colors
  47.     XDEF    ColorsBuf
  48.     XDEF    P1CheckFile
  49.     XDEF    PrefsBuf
  50.     XDEF    CurrentPrefs
  51.     XDEF    PrefsSize
  52.  
  53.     XREF    SysPrefsBuf
  54.     XREF    LoadCommKey
  55.     XREF    SaveCommKey
  56.     XREF    SaveAsCommKey
  57.     XREF    QuitCommKey
  58.     XREF    QuitMenu1I2Text
  59.     XREF    PrefsM2Text
  60.     XREF    PrefsM3Text
  61.     XREF    PrefsM4Text
  62.     XREF    Speaker
  63.     XREF    vi
  64.     XREF    Window1
  65.     XREF    Screen1
  66.     XREF    ViewPort1
  67.     XREF    SS_Font1
  68.     XREF    SS_Load3
  69.     XREF    SS_Save2
  70.     XREF    SS_SaveAs2
  71.     XREF    SS_Prefs
  72.     XREF    SS_Colors
  73.     XREF    SS_On
  74.     XREF    SS_Done
  75.     XREF    SS_Quit
  76.     XREF    SS_Use
  77.     XREF    SS_Default
  78.     XREF    SS_ERR_Win1
  79.     XREF    SS_ERR_File1
  80.     XREF    SS_ERR_File2
  81.     XREF    SS_ERR_File3
  82.     XREF    SS_ERR_Font1
  83.     XREF    AskReplace
  84.     XREF    ClockPointer1
  85.     XREF    SimpleRequest
  86.     XREF    TwoGadRequest
  87.     XREF    FileError
  88.     XREF    SetActivation
  89.     XREF    OthActivation
  90.     XREF    OthActivation1
  91.     XREF    MenusOff
  92.     XREF    MenusOn
  93.     XREF    SleepPointer
  94.     XREF    NormalPointer
  95.     XREF    MenuNull
  96.     XREF    CheckIDCMP
  97.     XREF    ClearMSGs
  98.     XREF    OKTxt
  99.     XREF    _GadToolsBase
  100.     XREF    _IntuitionBase
  101.     XREF    _DosBase
  102.     XREF    _GfxBase
  103.     XREF    _ReqBase
  104.     XREF    _stdout
  105.     XREF    Window1IDCMP
  106.     XREF    ShutDown
  107.     XREF    QName
  108.     XREF    Topaz
  109.     XREF    TopazName
  110.     XREF    PrefTop
  111.     XREF    MainMGad1
  112.     XREF    MainMenu
  113.     XREF    Mode
  114.     XREF    NumQ
  115.  
  116. PrefWinYSize:    EQU    150
  117. ;PrefsSize:    at the end...
  118.  
  119.  
  120. TRUE:        EQU    $1
  121.  
  122. DGadTools:    set    1
  123. DReq:        set    1
  124.  
  125.     INCLUDE    "FH0:Language/Include2.0/Utility/tagitem.i"
  126.     INCLUDE    "FH0:Language/Include2.0/Libraries/gadtools.i"
  127.  
  128.         ds.l    0
  129.  
  130. NoPrefsWin1:    print    <"Couldn't open Preferences-Window1!",13,10>,_stdout
  131.         move.l    Screen1,a0
  132.         lib    Intuition,DisplayBeep
  133.         lea.l    SS_ERR_Win1,a0
  134.         jsr    Speaker
  135.         jmp    ShutDown
  136.  
  137. Prefs20:    jsr    SleepPointer
  138.  
  139.         cmp.w    #$00,Mode
  140.         bne    Prefs20Cont1
  141.         move.l    Window1,a0
  142.         lea.l    MainMGad1,a1
  143.         move.l    #-1,d0
  144.         lib    Intuition,RemoveGList
  145.         jmp    Prefs20Cont2
  146.  
  147. Prefs20Cont1:    cmp.w    #$02,Mode
  148.         bne    Prefs20Cont2
  149.  
  150.         move.w    NumQ,d6
  151.         clr.w    NumQ
  152.         jsr    SetActivation
  153.         jsr    OthActivation
  154.         move.w    d6,NumQ
  155.  
  156. Prefs20Cont2:    jsr    MenusOff
  157.         lea.l    SS_Prefs,a0
  158.         jsr    Speaker
  159.  
  160.         tst.b    GadMagic2
  161.         bne    Prefs20.1
  162.         lea.l    glist2,a0
  163.         lib    GadTools,CreateContext
  164.         move.l    d0,ContextGad2
  165.         beq    Prefs20.1
  166.  
  167.         move.l    glist2,a0
  168.         lea.l    NGTalkGad0,a1
  169.         move.l    #TEXT_KIND,d0
  170.         move.l    vi,gng_VisualInfo(a1)
  171.         move.l    #$00,a2
  172. ;        lea.l    TalkGadTagList1,a2
  173.         lib    GadTools,CreateGadgetA
  174.  
  175.         move.l    d0,a0
  176.         add.w    #GRELBOTTOM,$c(a0)
  177.  
  178.         lea.l    NGTalkGad1,a1
  179.         move.l    #CHECKBOX_KIND,d0
  180.         move.l    vi,gng_VisualInfo(a1)
  181.         move.l    #$00,a2
  182.         lib    GadTools,CreateGadgetA
  183.  
  184.         move.l    d0,TalkGad1
  185.         move.l    d0,a0
  186.         add.w    #GRELBOTTOM,$c(a0)
  187.  
  188.         lea.l    NGTalkGad2,a1
  189.         move.l    #CHECKBOX_KIND,d0
  190.         move.l    vi,gng_VisualInfo(a1)
  191.         lea.l    GadTagList,a2
  192.         lib    GadTools,CreateGadgetA
  193.  
  194.         move.l    d0,TalkGad2
  195.         move.l    d0,a0
  196.         add.w    #GRELBOTTOM,$c(a0)
  197.  
  198.         lea.l    NGTalkGad3,a1
  199.         move.l    #CHECKBOX_KIND,d0
  200.         move.l    vi,gng_VisualInfo(a1)
  201.         lea.l    GadTagList,a2
  202.         lib    GadTools,CreateGadgetA
  203.  
  204.         move.l    d0,TalkGad3
  205.         move.l    d0,a0
  206.         add.w    #GRELBOTTOM,$c(a0)
  207.  
  208.         lea.l    NGTalkGad4,a1
  209.         move.l    #CHECKBOX_KIND,d0
  210.         move.l    vi,gng_VisualInfo(a1)
  211.         lea.l    GadTagList,a2
  212.         lib    GadTools,CreateGadgetA
  213.  
  214.         move.l    d0,TalkGad4
  215.         move.l    d0,a0
  216.         add.w    #GRELBOTTOM,$c(a0)
  217.  
  218.         lea.l    NGTalkGad5,a1
  219.         move.l    #CHECKBOX_KIND,d0
  220.         move.l    vi,gng_VisualInfo(a1)
  221.         lea.l    GadTagList,a2
  222.         lib    GadTools,CreateGadgetA
  223.  
  224.         move.l    d0,TalkGad5
  225.         move.l    d0,a0
  226.         add.w    #GRELBOTTOM,$c(a0)
  227.  
  228.         lea.l    NGTalkGad6,a1
  229.         move.l    #CHECKBOX_KIND,d0
  230.         move.l    vi,gng_VisualInfo(a1)
  231.         lea.l    GadTagList,a2
  232.         lib    GadTools,CreateGadgetA
  233.  
  234.         move.l    d0,TalkGad6
  235.         move.l    d0,a0
  236.         add.w    #GRELBOTTOM,$c(a0)
  237.  
  238.         lea.l    NGTalkGad7,a1
  239.         move.l    #CHECKBOX_KIND,d0
  240.         move.l    vi,gng_VisualInfo(a1)
  241.         lea.l    GadTagList,a2
  242.         lib    GadTools,CreateGadgetA
  243.  
  244.         move.l    d0,TalkGad7
  245.         move.l    d0,a0
  246.  
  247.         add.w    #GADGDISABLED!GRELBOTTOM,$c(a0)
  248.  
  249.         lea.l    NGTalkGad8,a1
  250.         move.l    #CHECKBOX_KIND,d0
  251.         move.l    vi,gng_VisualInfo(a1)
  252.         lea.l    GadTagList,a2
  253.         lib    GadTools,CreateGadgetA
  254.  
  255.         move.l    d0,TalkGad8
  256.         move.l    d0,a0
  257.  
  258.         add.w    #GADGDISABLED+GRELBOTTOM,$c(a0)
  259.  
  260.         lea.l    NGStringGad0,a1
  261.         move.l    #TEXT_KIND,d0
  262.         move.l    vi,gng_VisualInfo(a1)
  263.         move.l    #$00,a2
  264. ;        lea.l    TalkGadTagList1,a2
  265.         lib    GadTools,CreateGadgetA
  266.  
  267.         move.l    d0,a0
  268.         add.w    #GRELRIGHT!GRELBOTTOM,$c(a0)
  269.  
  270.         lea.l    NGSpeakGad1,a1
  271.         move.l    #STRING_KIND,d0
  272.         move.l    vi,gng_VisualInfo(a1)
  273.         lea.l    SpeakGadTagList,a2
  274.         lib    GadTools,CreateGadgetA
  275.  
  276.         move.l    d0,SpeakGad1
  277.         move.l    d0,a0
  278.         move.l    $22(a0),a1
  279.         move.l    (a1),SpeakGadBuf
  280.         add.w    #GRELRIGHT!GRELBOTTOM,$c(a0)
  281.  
  282.         lea.l    NGSpeakGad2,a1
  283.         move.l    #STRING_KIND,d0
  284.         move.l    vi,gng_VisualInfo(a1)
  285.         lea.l    SpeakGadTagList2,a2
  286.         lib    GadTools,CreateGadgetA
  287.  
  288.         move.l    d0,SpeakGad2
  289.         move.l    d0,a0
  290.         move.l    $22(a0),a1
  291.         move.l    (a1),SpeakGadBuf2
  292.         add.w    #GRELRIGHT!GRELBOTTOM!GADGDISABLED,$c(a0)
  293.  
  294.         lea.l    NGMiscGad0,a1
  295.         move.l    #TEXT_KIND,d0
  296.         move.l    vi,gng_VisualInfo(a1)
  297.         move.l    #$00,a2
  298. ;        lea.l    TalkGadTagList1,a2
  299.         lib    GadTools,CreateGadgetA
  300.  
  301.         move.l    d0,a0
  302.         add.w    #GRELBOTTOM,$c(a0)
  303.  
  304.         lea.l    NGIHandlerGad1,a1
  305.         move.l    #CHECKBOX_KIND,d0
  306.         move.l    vi,gng_VisualInfo(a1)
  307.         lea.l    GadTagList,a2
  308.         lib    GadTools,CreateGadgetA
  309.  
  310.         move.l    d0,IHandlerGad1
  311.         move.l    d0,a0
  312.         add.w    #GRELBOTTOM,$c(a0)
  313.  
  314.         lea.l    NGColorGad,a1
  315.         move.l    #BUTTON_KIND,d0
  316.         move.l    vi,gng_VisualInfo(a1)
  317.         lea.l    GadTagList,a2
  318.         lib    GadTools,CreateGadgetA
  319.         move.l    d0,a0
  320.  
  321.         add.w    #GRELBOTTOM+GRELRIGHT,$c(a0)
  322.  
  323.         lea.l    NGDefaultsGad,a1
  324.         move.l    #BUTTON_KIND,d0
  325.         move.l    vi,gng_VisualInfo(a1)
  326.         lea.l    GadTagList,a2
  327.         lib    GadTools,CreateGadgetA
  328.         move.l    d0,a0
  329.  
  330.         add.w    #GRELBOTTOM+GRELRIGHT,$c(a0)
  331.  
  332.         lea.l    NGSaveGad,a1
  333.         move.l    #BUTTON_KIND,d0
  334.         move.l    vi,gng_VisualInfo(a1)
  335.         lea.l    GadTagList,a2
  336.         lib    GadTools,CreateGadgetA
  337.         move.l    d0,a0
  338.  
  339.         add.w    #GRELBOTTOM,$c(a0)
  340.  
  341.         lea.l    NGUseGad,a1
  342.         move.l    #BUTTON_KIND,d0
  343.         move.l    vi,gng_VisualInfo(a1)
  344.         lea.l    GadTagList,a2
  345.         lib    GadTools,CreateGadgetA
  346.         move.l    d0,a0
  347.  
  348.         add.w    #GRELBOTTOM,$c(a0)
  349.  
  350.         lea.l    NGQuitGad,a1
  351.         move.l    #BUTTON_KIND,d0
  352.         move.l    vi,gng_VisualInfo(a1)
  353.         lea.l    GadTagList,a2
  354.         lib    GadTools,CreateGadgetA
  355.         move.l    d0,a0
  356.  
  357.         add.w    #GRELBOTTOM+GRELRIGHT,$c(a0)
  358.  
  359.         move.b    #1,GadMagic2
  360.  
  361. Prefs20.1:    tst.b    MenuMagic2
  362.         bne    Prefs20.2
  363.         lea.l    MNP1PrefsMenu1,a0
  364.         lea.l    P1MenuTagList,a1
  365.         lib    GadTools,CreateMenusA
  366.         move.l    d0,mlist2
  367.  
  368.         move.l    mlist2,a0
  369.         move.l    vi,a1
  370.         lea.l    P1MenuTagList,a2
  371.         lib    GadTools,LayoutMenusA
  372.         move.b    #1,MenuMagic2
  373.  
  374. Prefs20.2:    lea.l    NewPrefsWin1,a0
  375.         lea.l    PrefsWinTagList,a1
  376.         lib    Intuition,OpenWindowTagList
  377.         move.l    d0,PrefsWin1
  378.         beq    NoPrefsWin1
  379.  
  380.         move.l    PrefsWin1,a0
  381.         move.l    mlist2,a1
  382.         lib    Intuition,SetMenuStrip
  383.  
  384.         move.l    PrefsWin1,a0
  385.         move.l    glist2,a1
  386.         move.l    #-1,d0
  387.         move.l    #-1,d1
  388.         move.l    #$00,a2
  389.         lib    Intuition,AddGList
  390.  
  391.         move.l    glist2,a0
  392.         move.l    PrefsWin1,a1
  393.         move.l    #$00,a2
  394.         move.l    #-1,d0
  395.         lib    Intuition,RefreshGList
  396.  
  397.         move.l    PrefsWin1,a0
  398.         move.l    #$00,a1
  399.         lib    GadTools,GT_RefreshWindow
  400.  
  401.         move.l    #$01,d2
  402.         jsr    SetPrefs
  403.  
  404. P120IDCMP:    move.l    PrefsWin1,a0
  405.         jsr    CheckIDCMP
  406.         cmp.l    #CLOSEWINDOW,d2
  407.         beq    Prefs20Quit
  408.         cmp.l    #REFRESHWINDOW,d2
  409.         beq    P1Refresh20
  410.         cmp.l    #VANILLAKEY,d2
  411.         beq    P1VKeys20
  412.         cmp.l    #GADGETUP,d2
  413.         beq    P1GSelect20
  414.         cmp.l    #MENUPICK,d2
  415.         beq    P1Menus20
  416.         cmp.l    #RAWKEY,d2
  417.         beq    P1RKeys20
  418.         jmp    P120IDCMP
  419.  
  420. P1Refresh20:    move.l    PrefsWin1,a0
  421.         lib    GadTools,GT_BeginRefresh
  422.         move.l    PrefsWin1,a0
  423.         move.l    #TRUE,d0
  424.         lib    GadTools,GT_EndRefresh
  425.         jmp    P120IDCMP
  426.  
  427. P1Menus20:    jsr    MenuNull
  428.         cmp.l    #$00,d6
  429.         beq    P1Menus20.1
  430.         cmp.l    #$01,d6
  431.         beq    P1Menus20.2
  432.         jmp    P120IDCMP
  433. P1Menus20.1:    cmp.l    #$00,d5
  434.         beq    P1Load
  435.         cmp.l    #$01,d5
  436.         beq    P1Save
  437.         cmp.l    #$02,d5
  438.         beq    P1SaveAs
  439.         cmp.l    #$04,d5
  440.         beq    P1Default
  441.         cmp.l    #$06,d5
  442.         beq    Prefs20Us