home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / RODENT_3.ZIP / TBRODENT.BAS < prev    next >
Encoding:
BASIC Source File  |  1989-12-16  |  2.8 KB  |  112 lines

  1. DEFINT a-z
  2.  
  3. DATA &H0001: REM  0000000000000001
  4. DATA &H0001: REM  0000000000000001
  5. DATA &H8003: REM  1000000000000011
  6. DATA &HC7C7: REM  1100011111000111
  7. DATA &HE38F: REM  1110001110001111
  8. DATA &HF11F: REM  1111000100011111
  9. DATA &HF83F: REM  1111100000111111
  10. DATA &HFC7F: REM  1111110001111111
  11. DATA &HF83F: REM  1111100000111111
  12. DATA &HF11F: REM  1111000100011111
  13. DATA &HE38F: REM  1110001110001111
  14. DATA &HC7C7: REM  1100011111000111
  15. DATA &H8003: REM  1000000000000011
  16. DATA &H0001: REM  0000000000000001
  17. DATA &H0001: REM  0000000000000001
  18. DATA &H0000: REM  0000000000000000
  19.    
  20. DATA &H0000: REM  0000000000000000
  21. DATA &H7FFC: REM  0111111111111100
  22. DATA &H2008: REM  0010000000001000
  23. DATA &H1010: REM  0001000000010000
  24. DATA &H0820: REM  0000100000100000
  25. DATA &H0440: REM  0000010001000000
  26. DATA &H0280: REM  0000001010000000
  27. DATA &H0100: REM  0000000100000000
  28. DATA &H0280: REM  0000001010000000
  29. DATA &H0440: REM  0000010001000000
  30. DATA &H0820: REM  0000100000100000
  31. DATA &H1010: REM  0001000000010000
  32. DATA &H2008: REM  0010000000001000
  33. DATA &H7FFC: REM  0111111111111100
  34. DATA &H0000: REM  0000000000000000
  35. DATA &H0000  0000000000000000
  36.  
  37. ' Read cursor data into MCursor$
  38. MCursor$ = ""
  39. FOR i=1 to 32
  40.   READ w
  41.   MCursor$ = MCursor$ + MKI$(w)
  42. NEXT i
  43.  
  44. SCREEN 2
  45. REG 1, 0
  46. CALL INTERRUPT &H33
  47. IF NOT REG(1) THEN
  48.   SCREEN 0
  49.   PRINT "No mouse detected."
  50.   END
  51. END IF
  52. Buttons = REG(2)
  53. PRINT "╔════╗                    ┌───┐  ┌───┐"
  54. PRINT "║Quit║  x = xxx  y = yyy  │   │  │   │"
  55. PRINT "╚════╝                    └───┘  └───┘"
  56. IF Buttons = 3 THEN
  57.   RightButton = 42
  58.   LOCATE 1, 41
  59.   PRINT "┌───┐"
  60.   LOCATE 2, 41
  61.   PRINT "│   │"
  62.   LOCATE 3, 41
  63.   PRINT "└───┘"
  64. ELSE
  65.   RightButton = 35
  66. END IF
  67.       
  68. ' Set up cursor
  69. DEF SEG
  70. HiByte = PEEK(1)  'Find the string segment
  71. LoByte = PEEK(0)
  72. z! = CSNG(LoByte) + 256 * CSNG(HiByte)
  73. IF z! > 32767 THEN z! = z! -65536
  74. StrSeg = INT(z!)
  75. DEF SEG = VARSEG(MCursor$)
  76. StrDescriptor = VARPTR(MCursor$)
  77. HiByte = PEEK(StrDescriptor + 3)
  78. LoByte = PEEK(StrDescriptor + 2)
  79. z! = CSNG(LoByte) + 256 * CSNG(HiByte)
  80. IF z! > 32767 THEN z! = z! - 65536
  81. Offset = INT(z!)
  82. REG 1, 9
  83. REG 2, 7
  84. REG 3, 7
  85. REG 4, Offset
  86. REG 9, StrSeg
  87. CALL INTERRUPT &H33
  88.  
  89. REG 1, 1 'Show cursor
  90. CALL INTERRUPT &H33
  91. DO
  92.   REG 1, 3
  93.   CALL INTERRUPT &H33
  94.   MouseButton = REG(2)
  95.   MouseX = REG(3)
  96.   MouseY = REG(4)
  97.   LOCATE 2, 13
  98.   PRINT USING "###"; MouseX;
  99.   LOCATE 2, 22
  100.   PRINT USING "###"; MouseY;
  101.   CALL ShowButton(28, MouseButton AND 1)
  102.   CALL ShowButton(RightButton, MouseButton AND 2)
  103.   IF Buttons = 3 THEN CALL ShowButton(35, MouseButton AND 4)
  104. LOOP UNTIL MouseButton = 1 AND MouseX < 48 AND MouseY < 24
  105. REG 1, 1
  106. CALL INTERRUPT &H33
  107. SCREEN 0
  108.  
  109. SUB ShowButton (ScreenLoc, Condition)
  110.   LOCATE 2, ScreenLoc
  111.   IF Condition THEN PRINT "███"; ELSE PRINT "   ";
  112. END SUB