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 >
Wrap
Text File
|
1991-09-22
|
25KB
|
1,111 lines
*************************************************
* *
* (C)opyright 1991 *
* *
* by Tomi Blinnikka *
* *
* Don´t try to understand the code *
* *
* Version: See info from main source code *
* *
*************************************************
INCLUDE "JMPLibs.i"
INCLUDE "exec/types.i"
INCLUDE "libraries/reqbase.i"
INCLUDE "FH1:Language/Include2.0/intuition.xref"
INCLUDE "FH1:Language/Include2.0/gadtools.xref"
INCLUDE "dos.xref"
INCLUDE "exec.xref"
INCLUDE "gfx.xref"
INCLUDE "intuition.xref"
XDEF Help
XDEF HWin1
XDEF SToW7
XDEF glist3
XDEF mlist3
XDEF GadMagic3
XDEF MenuMagic3
XREF MenuNull
XREF _IntuitionBase
XREF _GfxBase
XREF _GadToolsBase
XREF MenusOff
XREF MenusOn
XREF SleepPointer
XREF NormalPointer
XREF Topaz
XREF NoHelpWin1
XREF CheckIDCMP
XREF ClearMSGs
XREF Window1IDCMP
XREF vi
XREF Window1
XREF Speaker
XREF SS_Help
XREF SS_HelpHelp
XREF SS_Next2
XREF SS_Prev2
XREF SS_Quit
XREF SS_Page1
XREF SS_Page2
XREF SS_Page3
XREF SS_Page4
XREF SS_Page5
XREF SS_Page6
XREF SS_Page7
XREF SS_Page8
XREF SS_Page9
XREF SS_Page10
XREF SS_Page11
XREF SS_Page12
XREF SS_Page13
XREF SS_Page14
XREF SS_Page15
XREF SS_Page16
XREF SS_Page17
XREF SS_Page18
XREF SS_Page19
XREF SS_Page20
XREF MainMGad1
XREF MainMenu
XREF Mode
INCLUDE "FH1:Language/Include2.0/Utility/tagitem.i"
INCLUDE "FH1:Language/Include2.0/libraries/gadtools.i"
Help: jsr MenusOff
jsr SleepPointer
cmp.w #$00,Mode
bne HelpCont0.1
move.l Window1,a0
lea.l MainMGad1,a1
move.l #-1,d0
lib Intuition,RemoveGList
HelpCont0.1: lea.l SS_Help,a0
jsr Speaker
tst.b GadMagic3
bne HelpCont0.2
lea.l glist3,a0
lib GadTools,CreateContext
move.l d0,ContextGad3
beq HelpCont0.2
move.b #1,GadMagic3
move.l glist3,a0
lea.l NGPrevGad,a1
move.l #BUTTON_KIND,d0
move.l vi,gng_VisualInfo(a1)
lea.l GadgetTagList1,a2
lib GadTools,CreateGadgetA
move.l d0,a0
add.w #GRELBOTTOM,$c(a0)
lea.l NGQuitGad,a1
move.l #BUTTON_KIND,d0
move.l vi,gng_VisualInfo(a1)
lea.l GadgetTagList1,a2
lib GadTools,CreateGadgetA
move.l d0,a0
add.w #GRELBOTTOM,$c(a0)
lea.l NGNextGad,a1
move.l #BUTTON_KIND,d0
move.l vi,gng_VisualInfo(a1)
lea.l GadgetTagList1,a2
lib GadTools,CreateGadgetA
move.l d0,a0
add.w #GRELBOTTOM+GRELRIGHT,$c(a0)
HelpCont0.2: tst.b MenuMagic3
bne HelpCont
lea.l MNMainMenu1,a0
lea.l HMenuTagList,a1
lib GadTools,CreateMenusA
move.l d0,mlist3
move.l mlist3,a0
move.l vi,a1
lea.l HMenuTagList,a2
lib GadTools,LayoutMenusA
move.b #1,MenuMagic3
HelpCont: lea.l NewHelpWin1,a0
move.l #$00,a1
lib Intuition,OpenWindowTagList
move.l d0,HWin1
beq NoHelpWin1
move.l d0,a0
move.l $32(a0),HWin1RP
move.l HWin1,a0
move.l mlist3,a1
lib Intuition,SetMenuStrip
move.l HWin1,a0
move.l glist3,a1
move.l #-1,d0
move.l #-1,d1
move.l #$00,a2
lib Intuition,AddGList
move.l glist3,a0
move.l HWin1,a1
move.l #$00,a2
move.l #-1,d0
lib Intuition,RefreshGList
HelpCont1: cmp.w #$00,HelpPage
beq HelpHelp
cmp.w #$01,HelpPage
beq HelpPage1
cmp.w #$02,HelpPage
beq HelpPage2
cmp.w #$03,HelpPage
beq HelpPage3
cmp.w #$04,HelpPage
beq HelpPage4
cmp.w #$05,HelpPage
beq HelpPage5
cmp.w #$06,HelpPage
beq HelpPage6
cmp.w #$07,HelpPage
beq HelpPage7
cmp.w #$08,HelpPage
beq HelpPage8
; cmp.w #$09,HelpPage
; beq HelpPage9
; cmp.w #10,HelpPage
; beq HelpPage10
move.w #$00,HelpPage
;Change
HelpWinIDCMP: move.l HWin1,a0
jsr CheckIDCMP
cmp.l #CLOSEWINDOW,d2
beq HelpQuit
cmp.l #VANILLAKEY,d2
beq HelpVKeys
cmp.l #RAWKEY,d2
beq HelpRKeys
cmp.l #GADGETUP,d2
beq HGads
cmp.l #MENUPICK,d2
beq HMenus
jmp HelpWinIDCMP
HMenus: jsr MenuNull
cmp.l #$00,d6
beq HMenus1
cmp.l #$01,d6
beq HMenus2
jmp HelpWinIDCMP
HMenus1: cmp.l #$00,d5
beq HelpHelp
cmp.l #$02,d5 ;01 is a sep-bar
beq HelpQuit
jmp HelpWinIDCMP
HMenus2: cmp.l #$00,d5
beq SubPage
cmp.l #$01,d5
beq AddPage
jmp HelpWinIDCMP
HelpVKeys: cmp.w #$1b,d3
beq HelpQuit
cmp.w #"p",d3
beq SubPage
cmp.w #"P",d3
beq SubPage
cmp.w #"n",d3
beq AddPage
cmp.w #"N",d3
beq AddPage
cmp.w #"q",d3
beq HelpQuit
cmp.w #"Q",d3
beq HelpQuit
cmp.w #"?",d3
beq HelpHelp
jmp HelpWinIDCMP
HelpRKeys: cmp.w #$5f,d3 ;help
beq HelpHelp
cmp.w #$4f,d3 ;arrow back
beq SubPage
cmp.w #$4e,d3 ;arrow forward
beq AddPage
cmp.w #$4d,d3 ;arrow down
beq SubPage
cmp.w #$4c,d3 ;arrow up
beq AddPage
jmp HelpWinIDCMP
HelpQuit: lea.l SS_Quit,a0
jsr Speaker
move.l HWin1,a0
lib Intuition,ClearMenuStrip
move.l HWin1,a0
jsr ClearMSGs
move.l #$00,HWin1
jsr MenusOn
jsr NormalPointer
cmp.w #$00,Mode
bne Window1IDCMP
jsr MainMenu
jmp Window1IDCMP
HelpHelp: lea.l SS_HelpHelp,a0
jsr Speaker
move.w #$00,HelpPage
lea.l HelpPage0Txts,a1
move.l #$00,d0
move.l d0,d1
lea.l HelpTitle0,a2
jsr DoPage
jmp HelpWinIDCMP
HelpPage1: lea.l SS_Page1,a0
jsr Speaker
lea.l HelpPage1Txts,a1
move.l #$00,d0
move.l d0,d1
lea.l HelpTitle1,a2
jsr DoPage
jmp HelpWinIDCMP
HelpPage2: lea.l SS_Page2,a0
jsr Speaker
lea.l HelpPage2Txts,a1
move.l #$00,d0
move.l d0,d1
lea.l HelpTitle2,a2
jsr DoPage
jmp HelpWinIDCMP
HelpPage3: lea.l SS_Page3,a0
jsr Speaker
lea.l HelpPage3Txts,a1
move.l #$00,d0
move.l d0,d1
lea.l HelpTitle3,a2
jsr DoPage
jmp HelpWinIDCMP
HelpPage4: lea.l SS_Page4,a0
jsr Speaker
lea.l HelpPage4Txts,a1
move.l #$00,d0
move.l d0,d1
lea.l HelpTitle4,a2
jsr DoPage
jmp HelpWinIDCMP
HelpPage5: lea.l SS_Page5,a0
jsr Speaker
lea.l HelpPage5Txts,a1
move.l #$00,d0
move.l d0,d1
lea.l HelpTitle5,a2
jsr DoPage
jmp HelpWinIDCMP
HelpPage6: lea.l SS_Page6,a0
jsr Speaker
lea.l HelpPage6Txts,a1
move.l #$00,d0
move.l d0,d1
lea.l HelpTitle6,a2
jsr DoPage
jmp HelpWinIDCMP
HelpPage7: lea.l SS_Page7,a0
jsr Speaker
lea.l HelpPage7Txts,a1
move.l #$00,d0
move.l d0,d1
lea.l HelpTitle7,a2
jsr DoPage
jmp HelpWinIDCMP
HelpPage8: lea.l SS_Page8,a0
jsr Speaker
lea.l HelpPage8Txts,a1
move.l #$00,d0
move.l d0,d1
lea.l HelpTitle8,a2
jsr DoPage
jmp HelpWinIDCMP
HelpPage9: lea.l SS_Page9,a0
jsr Speaker
; lea.l HelpPage9Txts,a1
move.l #$00,d0
move.l d0,d1
; lea.l HelpTitle9,a2
; jsr DoPage
jmp HelpWinIDCMP
HelpPage10: lea.l SS_Page10,a0
jsr Speaker
; lea.l HelpPage10Txts,a1
move.l #$00,d0
move.l d0,d1
; lea.l HelpTitle10,a2
; jsr DoPage
jmp HelpWinIDCMP
HGads: cmp.w #98,$26(a5)
beq HelpQuit
cmp.w #20,$26(a5)
beq SubPage
cmp.w #30,$26(a5)
beq AddPage
jmp HelpWinIDCMP
SubPage: lea.l SS_Prev2,a0
jsr Speaker
sub.w #1,HelpPage
bmi SubPage1
jmp HelpCont1
SubPage1: move.w #$08,HelpPage ;change to max page
jmp HelpCont1
AddPage: lea.l SS_Next2,a0
jsr Speaker
add.w #1,HelpPage
cmp.w #$09,HelpPage ;change to max page +1
beq AddPage1
jmp HelpCont1
AddPage1: move.w #$00,HelpPage
jmp HelpCont1
;d0 = xOffSet
;a1 = pointer to Text
;a2 = pointer WinTitle
DoPage: movem.l d0-d1/a0-a2,-(sp)
move.l HWin1RP,a1 ;clear page
move.l #$00,d0
move.l _GfxBase,a6
jsr _LVOSetAPen(a6)
move.l HWin1RP,a1
move.l #$05,d0
move.l #$0b,d1
move.l #615,d2
move.l #166,d3
jsr _LVORectFill(a6)
move.l _IntuitionBase,a6 ;draw image
move.l glist3,a0
move.l HWin1,a1
move.l #$00,a2
jsr _LVORefreshGadgets(a6)
move.l HWin1RP,a0
lea.l HelpImage,a1
move.l #$20,d0
move.l #$42,d1
jsr _LVODrawImage(a6)
movem.l (sp)+,d0-d1/a0-a2
move.l HWin1RP,a0
jsr _LVOPrintIText(a6)
move.l HWin1,a0
move.l a2,a1
move.l #-1,a2
jsr _LVOSetWindowTitles(a6)
rts
;-------------------- STRUCTURES --------------------
HWin1: dc.l 0
HWin1RP: dc.l 0
HelpPage: dc.w 1 ;0=Help help...
;GadTools stuff
mlist3: dc.l 0
ContextGad3: dc.l 0
GadMagic3: dc.b 0
MenuMagic3: dc.b 0
;Gagdet Taglists
GadgetTagList1: dc.l GT_Underscore,'_'
dc.l TAG_DONE,0
;Gadget list header
glist3: dc.l 0 ;Next Gadget
dc.w 0 ;"hit-box" left edge
dc.w 0 ;"hit-box" top edge
dc.w 0 ;"hit-box" Width
dc.w 0 ;"hit-box" Height
dc.w 0 ;flags
dc.w 0 ;act