home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 335.lha / MouseCoords / MouseCoords.s < prev    next >
Text File  |  1990-01-10  |  5KB  |  314 lines

  1. ****************************************************************************
  2. *
  3. * MouseCoords © Copyright 1989 by Jonathan Potter
  4. *
  5. * Freely redistributable, not public domain
  6. *
  7. * Assembled with DevPac v2.14
  8. *
  9. ****************************************************************************
  10.  
  11.     opt c+
  12.     incdir "devinclude:"
  13.     include exec/exec_lib.i
  14.     include exec/memory.i
  15.     include intuition/intuition.i
  16.     include intuition/intuitionbase.i
  17.     include intuition/intuition_lib.i
  18.     include graphics/graphics_lib.i
  19.     include libraries/dos_lib.i
  20.     include libraries/dos.i
  21.  
  22.     move.l #0,d0
  23.     lea intname,a1
  24.     CALLEXEC OpenLibrary
  25.     move.l d0,_IntuitionBase
  26.  
  27.     move.l #0,d0
  28.     lea grafname,a1
  29.     CALLEXEC OpenLibrary
  30.     move.l d0,_GfxBase
  31.  
  32.     move.l #0,d0
  33.     lea dosname,a1
  34.     CALLEXEC OpenLibrary
  35.     move.l d0,_DOSBase
  36.  
  37.     move.l #80,d0
  38.     move.l #MEMF_CHIP,d1
  39.     CALLEXEC AllocMem
  40.     move.l d0,NextImageData_chip
  41.     move.l NextImageData_chip,NextImage+10
  42.     lea NextImageData,a0
  43.     move.l NextImageData_chip,a1
  44.     move.l #80,d0
  45.     CALLEXEC CopyMem
  46.  
  47.     move.l _IntuitionBase,a0
  48.     move.l ib_FirstScreen(a0),newwindow+30
  49.  
  50. openup:
  51.     lea newwindow,a0
  52.     CALLINT OpenWindow
  53.     tst.l d0
  54.     beq exit
  55.     move.l d0,MyWindow
  56.  
  57.     move.l MyWindow,a0
  58.     lea NextGadget,a1
  59.     move.l #1,d0
  60.     move.l #1,d1
  61.     move.l 0,a2
  62.     CALLINT AddGList
  63.     lea NextGadget,a0
  64.     move.l MyWindow,a1
  65.     move.l 0,a2
  66.     move.l #1,d0
  67.     CALLINT RefreshGList
  68.  
  69.     move.l MyWindow,a2
  70.     move.l wd_RPort(a2),rp
  71.     move.l wd_WScreen(a2),a2
  72.     move.l a2,MyScreen
  73.     move.l rp,a1
  74.     move.l #1,d0
  75.     CALLGRAF SetAPen
  76.     move.l #RP_JAM2,d0
  77.     CALLGRAF SetDrMd
  78.  
  79. forever:
  80.     move.l #1,d1
  81.     CALLDOS Delay
  82.  
  83.     move.l rp,a1
  84.     move.l #30,d0
  85.     move.l #7,d1
  86.     CALLGRAF Move
  87.     lea xstring,a0
  88.     move.l #2,d0
  89.     CALLGRAF Text
  90.     move.l rp,a1
  91.     move.l #70,d0
  92.     move.l #7,d1
  93.     CALLGRAF Move
  94.     lea ystring,a0
  95.     move.l #3,d0
  96.     CALLGRAF Text
  97.  
  98.     move.l MyScreen,a2
  99.     move.l sc_MouseX(a2),d0
  100.     cmp.l ox,d0
  101.     beq doy
  102.     move.l d0,ox
  103.     lea sc_MouseX(a2),a1
  104.     lea string,a3
  105.     jsr sprintf
  106.     move.l rp,a1
  107.     move.l #46,d0
  108.     move.l #7,d1
  109.     CALLGRAF Move
  110.     lea string,a0
  111.     move.l #3,d0
  112.     CALLGRAF Text
  113.  
  114. doy:
  115.     move.l MyScreen,a2
  116.     move.l sc_MouseY(a2),d0
  117.     cmp.l oy,d0
  118.     beq checkport
  119.     move.l d0,oy
  120.     lea sc_MouseY(a2),a1
  121.     lea string,a3
  122.     jsr sprintf
  123.     move.l rp,a1
  124.     move.l #94,d0
  125.     move.l #7,d1
  126.     CALLGRAF Move
  127.     lea string,a0
  128.     move.l #3,d0
  129.     CALLGRAF Text    
  130.  
  131. checkport:
  132.     move.l MyWindow,a0
  133.     move.l wd_UserPort(a0),a0
  134.     CALLEXEC GetMsg
  135.     tst.l d0
  136.     beq forever
  137.     move.l d0,Msg
  138.     move.l d0,a1
  139.     CALLEXEC ReplyMsg
  140.     move.l Msg,a1
  141.     move.l im_Class(a1),d1
  142.     cmp.l #CLOSEWINDOW,d1
  143.     beq exit
  144.  
  145.     move.l MyScreen,a0
  146.     move.l (a0),newsc
  147.     tst.l newsc
  148.     beq forever
  149.  
  150.     move.l sc_Width(a0),d0
  151.     cmp.l #196,d0
  152.     blt forever
  153.  
  154.     move.l MyScreen,a0
  155.     CALLINT ScreenToBack
  156.  
  157.     move.l newsc,MyScreen
  158.     move.l MyScreen,a0
  159.     CALLINT ScreenToFront
  160.  
  161.     move.l MyScreen,newwindow+30
  162.     move.l MyWindow,a0
  163.     CALLINT CloseWindow
  164.     bra openup
  165.  
  166. exit:
  167.     move.l MyWindow,d0
  168.     tst.l d0
  169.     beq exit1
  170.     move.l MyWindow,a0
  171.     CALLINT CloseWindow
  172. exit1:
  173.     move.l NextImageData_chip,a1
  174.     move.l #80,d0
  175.     CALLEXEC FreeMem
  176.     move.l _DOSBase,a1
  177.     CALLEXEC CloseLibrary
  178.     move.l _GfxBase,a1
  179.     CALLEXEC CloseLibrary
  180.     move.l _IntuitionBase,a1
  181.     CALLEXEC CloseLibrary
  182.     rts
  183.  
  184. sprintf:
  185.     lea formstring,a0
  186.     lea.l stuffChar(pc),a2
  187.     CALLEXEC RawDoFmt
  188.     rts
  189.  
  190. stuffChar:
  191.     move.b d0,(a3)+
  192.     rts
  193.  
  194. _IntuitionBase
  195.     dc.l 0
  196. _GfxBase
  197.     dc.l 0
  198. _DOSBase
  199.     dc.l 0
  200. MyWindow
  201.     dc.l 0
  202. MyScreen
  203.     dc.l 0
  204. newsc
  205.     dc.l 0
  206. rp
  207.     dc.l 0
  208. intname
  209.     INTNAME
  210. grafname
  211.     GRAFNAME
  212. dosname
  213.     DOSNAME
  214. string
  215.     dc.b 0,0,0,0,0
  216. formstring
  217.     dc.b '%03d',0,0
  218. ox
  219.     dc.l 0
  220. oy
  221.     dc.l 0
  222. xstring
  223.     dc.b 'X:'
  224. ystring
  225.     dc.b ' Y:',0
  226.  
  227. ; Image-Ed Image generation
  228.  
  229. ; Start of Image data
  230.  
  231. NextImageData:
  232.  
  233.         ; Plane 0
  234.  
  235.         dc.w        $ffff
  236.         dc.w        $ff00
  237.         dc.w        $82d0
  238.         dc.w        $4100
  239.         dc.w        $eed5
  240.         dc.w        $5d00
  241.         dc.w        $eed5
  242.         dc.w        $5d00
  243.         dc.w        $eed5
  244.         dc.w        $4100
  245.         dc.w        $eed7
  246.         dc.w        $5f00
  247.         dc.w        $eed7
  248.         dc.w        $5f00
  249.         dc.w        $aed7
  250.         dc.w        $5f00
  251.         dc.w        $8e17
  252.         dc.w        $5f00
  253.         dc.w        $ffff
  254.         dc.w        $ff00
  255.  
  256.         ; Plane 1
  257.  
  258.         dc.w        $0000
  259.         dc.w        $0000
  260.         dc.w        $7d2f
  261.         dc.w        $be00
  262.         dc.w        $112a
  263.         dc.w        $a200
  264.         dc.w        $112a
  265.         dc.w        $a200
  266.         dc.w        $112a
  267.         dc.w        $be00
  268.         dc.w        $1128
  269.         dc.w        $a000
  270.         dc.w        $1128
  271.         dc.w        $a000
  272.         dc.w        $5128
  273.         dc.w        $a000
  274.         dc.w        $71e8
  275.         dc.w        $a000
  276.         dc.w        $0000
  277.         dc.w        $0000
  278.  
  279.  
  280. ; End of Image data
  281.  
  282. NextImageData_chip
  283.     dc.l 0
  284.  
  285. NextImage
  286.         dc.w        0,0    ; LeftEdge, TopEdge
  287.         dc.w        24,10    ; Width, Height
  288.         dc.w        2    ; Depth
  289.         dc.l        NextImageData    ; ImageData
  290.         dc.b        3,0    ; PlanePick, PlaneOnOff
  291.         dc.l        0    ; Next Image
  292.  
  293. ; End of Image-Ed Image generation
  294.  
  295. NextGadget
  296.     dc.l 0
  297.     dc.w 119,0,24,10
  298.     dc.w GADGHCOMP|GADGIMAGE,RELVERIFY|TOPBORDER,BOOLGADGET
  299.     dc.l NextImage,0,0,0,0,1,0
  300.  
  301. newwindow
  302.     dc.w 0,0,196,10
  303.     dc.b 0,1
  304.     dc.l CLOSEWINDOW|GADGETUP
  305.     dc.l RMBTRAP|SMART_REFRESH|NOCAREREFRESH|WINDOWCLOSE|WINDOWDEPTH|WINDOWDRAG
  306.     dc.l 0,0,windowtitle,0,0
  307.     dc.w 0,0,0,0,CUSTOMSCREEN
  308.  
  309. windowtitle
  310.     dc.b 'MouseCoords',0
  311.  
  312. Msg
  313.     dc.l 0
  314.