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