home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / bbs / dev / tbsource.lha / TBSource / Questions / QueHelp.S < prev    next >
Text File  |  1993-12-21  |  40KB  |  1,580 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.  
  14.     INCLUDE "JMPLibs.i"
  15.     INCLUDE "exec/types.i"
  16.     INCLUDE "libraries/reqbase.i"
  17.     INCLUDE "libraries/gadtools.i"
  18.  
  19.     INCLUDE "XREF:2.0.xref"
  20.     INCLUDE "XREF:dos.xref"
  21.     INCLUDE "XREF:exec.xref"
  22.     INCLUDE "XREF:gfx.xref"
  23.     INCLUDE "XREF:intuition.xref"
  24.  
  25.     XDEF    Help
  26.     XDEF    HWin1
  27.     XDEF    SToW7
  28.     XDEF    glist3
  29.     XDEF    mlist3
  30.     XDEF    GadMagic3
  31.     XDEF    MenuMagic3
  32.  
  33.     XREF    Screen1
  34.     XREF    _DosBase
  35.     XREF    MenuNull
  36.     XREF    _IntuitionBase
  37.     XREF    _GfxBase
  38.     XREF    _GadToolsBase
  39.     XREF    MenusOff
  40.     XREF    MenusOn
  41.     XREF    SleepPointer
  42.     XREF    NormalPointer
  43.     XREF    Topaz
  44.     XREF    NoHelpWin1
  45.     XREF    CheckIDCMP
  46.     XREF    ClearMSGs
  47.     XREF    Window1IDCMP
  48.     XREF    vi
  49.     XREF    Window1
  50.     XREF    Speaker
  51.     XREF    SetActivation
  52.     XREF    OthActivation
  53.     XREF    OthActivation1
  54.     XREF    SS_Help
  55.     XREF    SS_HelpHelp
  56.     XREF    SS_Next2
  57.     XREF    SS_Prev2
  58.     XREF    SS_Quit
  59.     XREF    SS_Page1
  60.     XREF    SS_Page2
  61.     XREF    SS_Page3
  62.     XREF    SS_Page4
  63.     XREF    SS_Page5
  64.     XREF    SS_Page6
  65.     XREF    SS_Page7
  66.     XREF    SS_Page8
  67.     XREF    SS_Page9
  68.     XREF    SS_Page10
  69.     XREF    SS_Page11
  70.     XREF    SS_Page12
  71.     XREF    SS_Page13
  72.     XREF    SS_Page14
  73.     XREF    SS_Page15
  74.     XREF    SS_Page16
  75.     XREF    SS_Page17
  76.     XREF    SS_Page18
  77.     XREF    SS_Page19
  78.     XREF    SS_Page20
  79.     XREF    MainMGad1
  80.     XREF    MainMenu
  81.     XREF    Mode
  82.     XREF    NumQ
  83.  
  84. Help:        jsr    SleepPointer
  85.  
  86.         cmp.w    #$00,Mode
  87.         bne    HelpCont0.01
  88.         move.l    Window1,a0
  89.         lea.l    MainMGad1,a1
  90.         move.l    #-1,d0
  91.         lib    Intuition,RemoveGList
  92.         jmp    HelpCont0.1
  93.  
  94. HelpCont0.01:    cmp.w    #$02,Mode
  95.         bne    HelpCont0.1
  96.         move.w    NumQ,d6
  97.         clr.w    NumQ
  98.  
  99.         jsr    SetActivation
  100.         jsr    OthActivation
  101.         move.w    d6,NumQ
  102.  
  103. HelpCont0.1:    jsr    MenusOff
  104.         lea.l    SS_Help,a0
  105.         jsr    Speaker
  106.  
  107.         tst.b    GadMagic3
  108.         bne    HelpCont0.2
  109.  
  110.         lea.l    glist3,a0
  111.         lib    GadTools,CreateContext
  112.         move.l    d0,ContextGad3
  113.         beq    HelpCont0.2
  114.  
  115.         move.b    #1,GadMagic3
  116.  
  117.         move.l    glist3,a0
  118.         lea.l    NGPrevGad,a1
  119.         move.l    #BUTTON_KIND,d0
  120.         move.l    vi,gng_VisualInfo(a1)
  121.         lea.l    GadgetTagList1,a2
  122.         lib    GadTools,CreateGadgetA
  123.         move.l    d0,a0
  124.  
  125.         add.w    #GRELBOTTOM,$c(a0)
  126.  
  127.         lea.l    NGQuitGad,a1
  128.         move.l    #BUTTON_KIND,d0
  129.         move.l    vi,gng_VisualInfo(a1)
  130.         lea.l    GadgetTagList1,a2
  131.         lib    GadTools,CreateGadgetA
  132.         move.l    d0,a0
  133.  
  134.         add.w    #GRELBOTTOM,$c(a0)
  135.  
  136.         lea.l    NGNextGad,a1
  137.         move.l    #BUTTON_KIND,d0
  138.         move.l    vi,gng_VisualInfo(a1)
  139.         lea.l    GadgetTagList1,a2
  140.         lib    GadTools,CreateGadgetA
  141.         move.l    d0,a0
  142.  
  143.         add.w    #GRELBOTTOM+GRELRIGHT,$c(a0)
  144.  
  145. HelpCont0.2:    tst.b    MenuMagic3
  146.         bne    HelpCont
  147.         lea.l    MNMainMenu1,a0
  148.         lea.l    HMenuTagList,a1
  149.         lib    GadTools,CreateMenusA
  150.         move.l    d0,mlist3
  151.  
  152.         move.l    mlist3,a0
  153.         move.l    vi,a1
  154.         lea.l    HMenuTagList,a2
  155.         lib    GadTools,LayoutMenusA
  156.         move.b    #1,MenuMagic3
  157.  
  158. HelpCont:    lea.l    NewHelpWin1,a0
  159.         lea.l    NHelpTL,a1
  160.         lib    Intuition,OpenWindowTagList
  161.         move.l    d0,HWin1
  162.         beq    NoHelpWin1
  163.  
  164.         move.l    d0,a0
  165.         move.l    $32(a0),HWin1RP
  166.  
  167.         move.l    HWin1,a0
  168.         move.l    mlist3,a1
  169.         lib    Intuition,SetMenuStrip
  170.  
  171.         move.l    HWin1,a0
  172.         move.l    glist3,a1
  173.         move.l    #-1,d0
  174.         move.l    #-1,d1
  175.         move.l    #$00,a2
  176.         lib    Intuition,AddGList
  177.  
  178.         move.l    glist3,a0
  179.         move.l    HWin1,a1
  180.         move.l    #$00,a2
  181.         move.l    #-1,d0
  182.         lib    Intuition,RefreshGList
  183.  
  184.         move.l    HWin1,a0
  185.         move.l    #$00,a1
  186.         lib    GadTools,GT_RefreshWindow
  187.  
  188. HelpCont1:    cmp.w    #00,HelpPage
  189.         beq    HelpHelp
  190.         cmp.w    #01,HelpPage
  191.         beq    HelpPage1
  192.         cmp.w    #02,HelpPage
  193.         beq    HelpPage2
  194.         cmp.w    #03,HelpPage
  195.         beq    HelpPage3
  196.         cmp.w    #04,HelpPage
  197.         beq    HelpPage4
  198.         cmp.w    #05,HelpPage
  199.         beq    HelpPage5
  200.         cmp.w    #06,HelpPage
  201.         beq    HelpPage6
  202.         cmp.w    #07,HelpPage
  203.         beq    HelpPage7
  204.         cmp.w    #08,HelpPage
  205.         beq    HelpPage8
  206.         cmp.w    #09,HelpPage
  207.         beq    HelpPage9
  208.         cmp.w    #10,HelpPage
  209.         beq    HelpPage10
  210.         cmp.w    #11,HelpPage
  211.         beq    HelpPage11
  212. ;        cmp.w    #12,HelpPage
  213. ;        beq    HelpPage12
  214. ;        cmp.w    #13,HelpPage
  215. ;        beq    HelpPage13
  216. ;        cmp.w    #14,HelpPage
  217. ;        beq    HelpPage14
  218.         move.w    #$00,HelpPage
  219.                         ;Change
  220. HelpWinIDCMP:    move.l    HWin1,a0
  221.         jsr    CheckIDCMP
  222.         cmp.l    #CLOSEWINDOW,d2
  223.         beq    HelpQuit
  224.         cmp.l    #VANILLAKEY,d2
  225.         beq    HelpVKeys
  226.         cmp.l    #RAWKEY,d2
  227.         beq    HelpRKeys
  228.         cmp.l    #GADGETUP,d2
  229.         beq    HGads
  230.         cmp.l    #MENUPICK,d2
  231.         beq    HMenus
  232.         jmp    HelpWinIDCMP
  233.  
  234. HMenus:        jsr    MenuNull
  235.         cmp.l    #$00,d6
  236.         beq    HMenus1
  237.         cmp.l    #$01,d6
  238.         beq    HMenus2
  239.         jmp    HelpWinIDCMP
  240. HMenus1:    cmp.l    #$00,d5
  241.         beq    HelpHelp
  242.         cmp.l    #$02,d5            ;01 is a sep-bar
  243.         beq    HelpQuit
  244.         jmp    HelpWinIDCMP
  245. HMenus2:    cmp.l    #$00,d5
  246.         beq    SubPage
  247.         cmp.l    #$01,d5
  248.         beq    AddPage
  249.         jmp    HelpWinIDCMP
  250.  
  251. HelpVKeys:    cmp.w    #$1b,d3
  252.         beq    HelpQuit
  253.         cmp.w    #"p",d3
  254.         beq    SubPage
  255.         cmp.w    #"P",d3
  256.         beq    SubPage
  257.         cmp.w    #"n",d3
  258.         beq    AddPage
  259.         cmp.w    #"N",d3
  260.         beq    AddPage
  261.         cmp.w    #"q",d3
  262.         beq    HelpQuit
  263.         cmp.w    #"Q",d3
  264.         beq    HelpQuit
  265.         cmp.w    #"?",d3
  266.         beq    HelpHelp
  267.         jmp    HelpWinIDCMP
  268.  
  269. HelpRKeys:    cmp.w    #$5f,d3        ;help
  270.         beq    HelpHelp
  271.         cmp.w    #$4f,d3        ;arrow back
  272.         beq    SubPage
  273.         cmp.w    #$4e,d3        ;arrow forward
  274.         beq    AddPage
  275.         cmp.w    #$4d,d3        ;arrow down
  276.         beq    SubPage
  277.         cmp.w    #$4c,d3        ;arrow up
  278.         beq    AddPage
  279.         jmp    HelpWinIDCMP
  280.  
  281. HelpQuit:    lea.l    SS_Quit,a0
  282.         jsr    Speaker
  283.  
  284.         move.l    HWin1,a0
  285.         lib    Intuition,ClearMenuStrip
  286.         move.l    HWin1,a0
  287.         jsr    ClearMSGs
  288.         move.l    #$00,HWin1
  289.         jsr    MenusOn
  290.         jsr    NormalPointer
  291.  
  292.         cmp.w    #$00,Mode
  293.         bne    HelpQuit1
  294.         jsr    MainMenu
  295.         jmp    Window1IDCMP
  296. HelpQuit1:    cmp.w    #$02,Mode
  297.         bne    Window1IDCMP
  298.         jsr    SetActivation
  299.         jsr    OthActivation1
  300.         jmp    Window1IDCMP
  301.  
  302. HelpHelp:    lea.l    SS_HelpHelp,a0
  303.         jsr    Speaker
  304.         move.w    #$00,HelpPage
  305.         lea.l    HelpPage0Txts,a1
  306.         move.l    #$00,d0
  307.         move.l    #-10,d1
  308.         lea.l    HelpTitle0,a2
  309.         jsr    DoPage
  310.         jmp    HelpWinIDCMP
  311.  
  312. HelpPage1:    lea.l    SS_Page1,a0
  313.         jsr    Speaker
  314.         lea.l    HelpPage1Txts,a1
  315.         move.l    #$00,d0
  316.         move.l    #-10,d1
  317.         lea.l    HelpTitle1,a2
  318.         jsr    DoPage
  319.         jmp    HelpWinIDCMP
  320.  
  321. HelpPage2:    lea.l    SS_Page2,a0
  322.         jsr    Speaker
  323.         lea.l    HelpPage2Txts,a1
  324.         move.l    #$00,d0
  325.         move.l    #-10,d1
  326.         lea.l    HelpTitle2,a2
  327.         jsr    DoPage
  328.         jmp    HelpWinIDCMP
  329.  
  330. HelpPage3:    lea.l    SS_Page3,a0
  331.         jsr    Speaker
  332.         lea.l    HelpPage3Txts,a1
  333.         move.l    #$00,d0
  334.         move.l    #-10,d1
  335.         lea.l    HelpTitle3,a2
  336.         jsr    DoPage
  337.         jmp    HelpWinIDCMP
  338.  
  339. HelpPage4:    lea.l    SS_Page4,a0
  340.         jsr    Speaker
  341.         lea.l    HelpPage4Txts,a1
  342.         move.l    #$00,d0
  343.         move.l    #-10,d1
  344.         lea.l    HelpTitle4,a2
  345.         jsr    DoPage
  346.         jmp    HelpWinIDCMP
  347.  
  348. HelpPage5:    lea.l    SS_Page5,a0
  349.         jsr    Speaker
  350.         lea.l    HelpPage5Txts,a1
  351.         move.l    #$00,d0
  352.         move.l    #-10,d1
  353.         lea.l    HelpTitle5,a2
  354.         jsr    DoPage
  355.         jmp    HelpWinIDCMP
  356.  
  357. HelpPage6:    lea.l    SS_Page6,a0
  358.         jsr    Speaker
  359.         lea.l    HelpPage6Txts,a1
  360.         move.l    #$00,d0
  361.         move.l    #-10,d1
  362.         lea.l    HelpTitle6,a2
  363.         jsr    DoPage
  364.         jmp    HelpWinIDCMP
  365.  
  366. HelpPage7:    lea.l    SS_Page7,a0
  367.         jsr    Speaker
  368.         lea.l    HelpPage7Txts,a1
  369.         move.l    #$00,d0
  370.         move.l    #-10,d1
  371.         lea.l    HelpTitle7,a2
  372.         jsr    DoPage
  373.         jmp    HelpWinIDCMP
  374.  
  375. HelpPage8:    lea.l    SS_Page8,a0
  376.         jsr    Speaker
  377.         lea.l    HelpPage8Txts,a1
  378.         move.l    #$00,d0
  379.         move.l    #-10,d1
  380.         lea.l    HelpTitle8,a2
  381.         jsr    DoPage
  382.         jmp    HelpWinIDCMP
  383.  
  384. HelpPage9:    lea.l    SS_Page9,a0
  385.         jsr    Speaker
  386.         lea.l    HelpPage9Txts,a1
  387.         move.l    #$00,d0
  388.         move.l    #-10,d1
  389.         lea.l    HelpTitle9,a2
  390.         jsr    DoPage
  391.         jmp    HelpWinIDCMP
  392.  
  393. HelpPage10:    lea.l    SS_Page10,a0
  394.         jsr    Speaker
  395.         lea.l    HelpPage10Txts,a1
  396.         move.l    #$00,d0
  397.         move.l    #-10,d1
  398.         lea.l    HelpTitle10,a2
  399.         jsr    DoPage
  400.         jmp    HelpWinIDCMP
  401.  
  402. HelpPage11:    lea.l    SS_Page11,a0
  403.         jsr    Speaker
  404.         lea.l    HelpPage11Txts,a1
  405.         move.l    #$00,d0
  406.         move.l    #-10,d1
  407.         lea.l    HelpTitle11,a2
  408.         jsr    DoPage
  409.         jmp    HelpWinIDCMP
  410.  
  411. HelpPage12:    lea.l    SS_Page12,a0
  412.         jsr    Speaker
  413. ;        lea.l    HelpPage12Txts,a1
  414.         move.l    #$00,d0
  415.         move.l    #-10,d1
  416.         lea.l    HelpTitle12,a2
  417.         jsr    DoPage
  418.         jmp    HelpWinIDCMP
  419.  
  420. HelpPage13:    lea.l    SS_Page13,a0
  421.         jsr    Speaker
  422. ;        lea.l    HelpPage13Txts,a1
  423.         move.l    #$00,d0
  424.         move.l    #-10,d1
  425.         lea.l    HelpTitle13,a2
  426.         jsr    DoPage
  427.         jmp    HelpWinIDCMP
  428.  
  429. HelpPage14:    lea.l    SS_Page14,a0
  430.         jsr    Speaker
  431. ;        lea.l    HelpPage14Txts,a1
  432.         move.l    #$00,d0
  433.         move.l    #-10,d1
  434.         lea.l    HelpTitle14,a2
  435.         jsr    DoPage
  436.         jmp    HelpWinIDCMP
  437.  
  438. HGads:        cmp.w    #98,$26(a5)
  439.         beq    HelpQuit
  440.         cmp.w    #20,$26(a5)
  441.         beq    SubPage
  442.         cmp.w    #30,$26(a5)
  443.         beq    AddPage
  444.         jmp    HelpWinIDCMP
  445.  
  446. SubPage:    lea.l    SS_Prev2,a0
  447.         jsr    Speaker
  448.         sub.w    #1,HelpPage
  449.         bmi    SubPage1
  450.         jmp    HelpCont1
  451. SubPage1:    move.w    #11,HelpPage        ;change to max page
  452.         jmp    HelpCont1
  453. AddPage:    lea.l    SS_Next2,a0
  454.         jsr    Speaker
  455.         add.w    #1,HelpPage
  456.         cmp.w    #12,HelpPage        ;change to max page +1
  457.         beq    AddPage1
  458.         jmp    HelpCont1
  459. AddPage1:    move.w    #$00,HelpPage
  460.         jmp    HelpCont1
  461.  
  462.  
  463. ;d0 = xOffSet
  464. ;a1 = pointer to Text
  465. ;a2 = pointer WinTitle
  466.  
  467. DoPa