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