home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 6 / Sonderheft_6-96.iso / pd / libraries / dfunc_library / sources / asm / selector.s < prev    next >
Text File  |  1996-11-03  |  6KB  |  320 lines

  1.     *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  2.     * Title        : Game selector
  3.     * Usage        : Private
  4.     * Function  :
  5.     * Note        : 
  6.     * Bugs        : 
  7.     * Created   : 5.4.95
  8.     * Last add  : 5.4.95
  9.     *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  10.  
  11. Version    =    0
  12.  
  13.     Incdir    Inc:
  14.     Include    Digital.i
  15.     Include    Digital.macs
  16.     Include    dfunc/dfunc.i
  17. ;    Include    Startup.i
  18.     Incdir
  19.     Include    lvo:dfunc.lvo
  20. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  21. Start    movem.l    d0-a6,-(sp)
  22.  
  23. ;init libraries:
  24.  
  25.     move.l    $4.w,a6
  26.  
  27.     OpenLib    Int,Version
  28.     beq.w    Close
  29.     OpenLib    DFunc,Version
  30.     beq.w    Close
  31.     OpenLib    Dos,Version
  32.     beq.w    Close
  33.  
  34. ;init screen and window:
  35.  
  36.     move.l    IntB(pc),a6
  37.     lea    Window(pc),a0
  38.     jsr    -204(a6)        OpenWindow()
  39.     move.l    d0,WinB
  40.     beq.w    Close
  41.  
  42.     move.l    d0,a0
  43.     move.l    86(a0),Port        IDCMP port of window
  44.     move.l    50(a0),Rast        rastport of window
  45.  
  46.     move.l    46(a0),a0
  47.     jsr    -252(a6)        ScreenToFront()
  48. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  49.     move.l    DFuncB(pc),a6
  50.  
  51.     move.l    Rast(pc),a0
  52.     lea    TextAtt(pc),a1
  53.     moveq    #DGF_Force,d0
  54.     DCall    SetFont            SetFont()
  55.  
  56.     move.l    Rast(pc),a0
  57.     moveq    #7,d0
  58.     DCall    SetPen            SetPen()
  59.  
  60.     move.l    WinB(pc),a0
  61.     moveq    #CLR_Ghosted,d0
  62.     DCall    FillWindow        FillWindow()
  63.  
  64.     move.l    Rast(pc),a0
  65.     lea    Gads(pc),a1
  66.     DCall    RenderGadgets        RenderGadgets()
  67.  
  68.     move.l    WinB(pc),a0
  69.     lea    Gads(pc),a1
  70.     DCall    InitScale        InitScale()
  71.     move.l    d0,Scale
  72.  
  73. MAIN    move.l    Rast(pc),a0
  74.     move.l    Port(pc),a1
  75.     lea    Gads(pc),a2
  76.     DCall    WaitGad            WaitGad()
  77.  
  78.     move.l    20(a0),d1
  79.     cmp.b    #$2,d1            new size?
  80.     beq.b    .scale
  81.  
  82.     lea    Gads(pc),a1
  83.     DCall    GetID
  84.  
  85.     cmp.b    #99,d0
  86.     beq.w    Exit
  87.  
  88.     cmp.b    #1,d0
  89.     beq.w    Load1
  90.  
  91.     cmp.b    #2,d0
  92.     beq.w    Load2
  93.  
  94.     cmp.b    #3,d0
  95.     beq.w    Load3
  96.  
  97.     cmp.b    #4,d0
  98.     beq.w    Load4
  99.  
  100.     cmp.b    #5,d0
  101.     beq.w    Load5
  102.  
  103.     cmp.b    #6,d0
  104.     beq.w    Load6
  105.  
  106.     cmp.b    #7,d0
  107.     beq.w    Load7
  108.  
  109.     cmp.b    #8,d0
  110.     beq.w    Load8
  111.  
  112.     cmp.b    #9,d0
  113.     beq.w    Load9
  114.  
  115.     cmp.b    #10,d0
  116.     beq.w    Load10
  117.  
  118.     bra.b    MAIN
  119.  
  120. .scale    move.l    Scale(pc),d0
  121.     DCall    ScaleGads        ScaleGads()
  122.  
  123.     move.l    Rast(pc),a0
  124.     moveq    #0,d0
  125.     DCall    SetPen            SetPen()
  126.     move.l    WinB(pc),a0
  127.     moveq    #CLR_Normal,d0
  128.     DCall    FillWindow        FillWindow()
  129.  
  130.     move.l    Rast(pc),a0
  131.     moveq    #7,d0
  132.     DCall    SetPen            SetPen()
  133.     move.l    WinB(pc),a0
  134.     moveq    #CLR_Ghosted,d0
  135.     DCall    FillWindow        FillWindow()
  136.  
  137.     move.l    Rast(pc),a0
  138.     lea    Gads(pc),a1
  139.     DCall    RenderGadgets        RenderGadgets()
  140.  
  141.     bra.w    Main
  142.  
  143. Load1    move.l    #GLoad1,d1
  144.     bra.w    Load
  145.  
  146. Load2    move.l    #GLoad2,d1
  147.     bra.w    Load
  148.  
  149. Load3    move.l    #GLoad3,d1
  150.     bra.w    Load
  151.  
  152. Load4    move.l    #GLoad4,d1
  153.     bra.w    Load
  154.  
  155. Load5    move.l    #GLoad5,d1
  156.     bra.w    Load
  157.  
  158. Load6    move.l    #GLoad6,d1
  159.     bra.w    Load
  160.  
  161. Load7    move.l    #GLoad7,d1
  162.     bra.w    Load
  163.  
  164. Load8    move.l    #GLoad8,d1
  165.     bra.w    Load
  166.  
  167. Load9    move.l    #GLoad9,d1
  168.     bra.w    Load
  169.  
  170. Load10    move.l    #GLoad10,d1
  171.  
  172. Load    move.l    DosB(pc),a6
  173.     moveq    #0,d2
  174.     moveq    #0,d3
  175.     jsr    -222(a6)        Execute()
  176.     move.l    DFuncB(pc),a6
  177.     bra.w    Main
  178.  
  179. Exit    move.l    Scale(pc),d0
  180.     DCall    RemScale        RemScale()
  181.  
  182.     move.l    GadB(pc),a0
  183.     DCall    FreeGadList        FreeGadList()
  184. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  185. Close    move.l    IntB(pc),a6
  186.     move.l    WinB(pc),d0
  187.     beq.b    .noWin
  188.     move.l    d0,a0
  189.     jsr    -72(a6)            CloseWindow()
  190.  
  191. .noWin    move.l    $4.w,a6
  192.  
  193.     CloseLib DFunc
  194.     CloseLib Int
  195.  
  196.     movem.l    (sp)+,d0-a6
  197.     rts
  198. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  199. Window    dc.w    150,5,330,255,$10
  200.     dc.l    IMouseMove!IMouseButtons!IVanillaKey!INewSize
  201.     dc.l    WSizeBottom!WWindowSizing!WNocareRefresh!WActivate!WRmbTrap!WReportMouse!WWindowdrag
  202.     dc.l    0,0,Name
  203.     dc.l    0,0
  204.     dc.w    180,170,-1,-1,$1
  205. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  206. WinSz    dc.l    0,0
  207. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  208. TextAtt    dc.l    FontN
  209.     dc.w    11
  210.     dc.w    0
  211. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  212. DosB    dc.l    0
  213. IntB    dc.l    0
  214. WinB    dc.l    0
  215. GadB    dc.l    0
  216. DFuncB    dc.l    0
  217. Scale    dc.l    0
  218. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  219. Rast    dc.l    0
  220. Port    dc.l    0
  221. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  222. Gads    dc.w    10,225,210,19,99
  223.     dc.l    GExit,0,0,0
  224.     dc.l    $21101245
  225.     dc.l    dg_HotKey!dg_DblBorderV!dg_Insensitive
  226.     dc.l    TextAtt,0
  227.  
  228.     dc.w    10,20,310,19,1
  229.     dc.l    Game1,0,0,0
  230.     dc.l    $21471213
  231.     dc.l    dg_TextLeft!dg_HotKey!dg_DblBorderV
  232.     dc.l    TextAtt,0
  233.  
  234.     dc.w    10,40,310,19,2
  235.     dc.l    Game2,0,0,0
  236.     dc.l    $21471213
  237.     dc.l    dg_TextLeft!dg_HotKey!dg_DblBorderV
  238.     dc.l    TextAtt,0
  239.  
  240.     dc.w    10,60,310,19,3
  241.     dc.l    Game3,0,0,0
  242.     dc.l    $21471213
  243.     dc.l    dg_TextLeft!dg_HotKey!dg_DblBorderV
  244.     dc.l    TextAtt,0
  245.  
  246.     dc.w    10,80,310,19,4
  247.     dc.l    Game4,0,0,0
  248.     dc.l    $21471213
  249.     dc.l    dg_TextLeft!dg_HotKey!dg_DblBorderV
  250.     dc.l    TextAtt,0
  251.  
  252.     dc.w    10,100,310,19,5
  253.     dc.l    Game5,0,0,0
  254.     dc.l    $21471213
  255.     dc.l    dg_TextLeft!dg_HotKey!dg_DblBorderV
  256.     dc.l    TextAtt,0
  257.  
  258.     dc.w    10,120,310,19,6
  259.     dc.l    Game6,0,0,0
  260.     dc.l    $21471213
  261.     dc.l    dg_TextLeft!dg_HotKey!dg_DblBorderV
  262.     dc.l    TextAtt,0
  263.  
  264.     dc.w    10,140,310,19,7
  265.     dc.l    Game7,0,0,0
  266.     dc.l    $21471213
  267.     dc.l    dg_TextLeft!dg_HotKey!dg_DblBorderV
  268.     dc.l    TextAtt,0
  269.  
  270.     dc.w    10,160,310,19,8
  271.     dc.l    Game8,0,0,0
  272.     dc.l    $21471213
  273.     dc.l    dg_TextLeft!dg_HotKey!dg_DblBorderV
  274.     dc.l    TextAtt,0
  275.  
  276.     dc.w    10,180,310,19,9
  277.     dc.l    Game9,0,0,0
  278.     dc.l    $21471213
  279.     dc.l    dg_TextLeft!dg_HotKey!dg_DblBorderV
  280.     dc.l    TextAtt,0
  281.  
  282.     dc.w    10,200,310,19,10
  283.     dc.l    Game10,0,0,0
  284.     dc.l    $21471213
  285.     dc.l    dg_TextLeft!dg_HotKey!dg_DblBorderV
  286.     dc.l    TextAtt,0
  287.  
  288.     dc.l    -1            end tag
  289. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  290. GExit    dc.b    'RqQUIT',0
  291. Game1    dc.b    '11 > Stepz',0
  292. Game2    dc.b    '22 > Dilemma',0
  293. Game3    dc.b    '33 > Up and down',0
  294. Game4    dc.b    '44 > Amigatration',0
  295. Game5    dc.b    '55 > Master Mind',0
  296. Game6    dc.b    '66 > Amiga Q',0
  297. Game7    dc.b    '77 > Pesten',0
  298. Game8    dc.b    '88 > Squigs',0
  299. Game9    dc.b    '99 > PacMan',0
  300. Game10    dc.b    '00 > ASokoban',0
  301. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  302. GLoad1    dc.b    'Games:Stepz',0
  303. GLoad2    dc.b    'Games:Dilemma',0
  304. GLoad3    dc.b    'Games:Up&Down',0
  305. GLoad4    dc.b    'Games:Amigatration',0
  306. GLoad5    dc.b    'Games:MasterMind',0
  307. GLoad6    dc.b    'Games:AmigaQ',0
  308. GLoad7    dc.b    'Games:Pesten',0
  309. GLoad8    dc.b    'Games:Squigs',0
  310. GLoad9    dc.b    'Games:PacMan',0
  311. GLoad10    dc.b    'Games:Asokoban',0
  312. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  313. FontN    dc.b    'topaz.font',0
  314. IntN    dc.b    'intuition.library',0
  315. DFuncN    dc.b    'dfunc.library',0
  316. DosN    dc.b    'dos.library',0
  317. Name    dc.b    'SELECTOR 1.0 - © 1995, Digital Surface',0
  318.     even
  319. *»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»*
  320.