home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / MSMOUSE2.ZIP / UTILS.ZIP / BEFUNC.BAS < prev    next >
Encoding:
BASIC Source File  |  1989-02-10  |  3.0 KB  |  74 lines

  1. 20000 '
  2. 20010 ' Interpreted BASIC EGA Shadow Reg Interface library interface subroutines
  3. 20020 '
  4. 20030 ' Copyright (c) 1988-1989 by Microsoft Corp.  All rights reserved.
  5. 20040 '
  6. 20050 ' Author:        Tom Hensel    12/15/88
  7. 20060 '
  8. 20070 ' Use a GOSUB 20000 to call subroutine
  9. 20080 '
  10. 20090 ' Variables are named E1%, E2%, E3%, and E4%.  Only variables affected
  11. 20100 ' need to be passed, the subroutines will take care of the rest.
  12. 20110 '
  13. 20120 '
  14. 20130 DIM EGASRI%(45)
  15. 20140 ' Define temp variables in case the user hasn't defined the EX% variable
  16. 20150 EGATMP1% = E1% : EGATMP2% = E2% : EGATMP3% = E3% : EGATMP4% = E4%
  17. 20160 '
  18. 20170 EGASRI%(0)  = &H8955    ' 55        push    bp
  19. 20180 EGASRI%(1)  = &H06E5    ' 89E5        mov    bp,sp
  20. 20190                ' 06        push    es
  21. 20200 EGASRI%(2)  = &HD88C    ' 8CD8        mov    ax,ds
  22. 20210 EGASRI%(3)  = &HC08E    ' 8EC0        mov    es,ax
  23. 20220 EGASRI%(4)  = &H5E8B    ' 8B5E0C    mov    bx,[bp + 0ch]
  24. 20230 EGASRI%(5)  = &H8A0C    ' 278A        mov    ah,[bx]
  25. 20240 EGASRI%(6)  = &H8B27
  26. 20250 EGASRI%(7)  = &H085E    ' 8B5E08    mov    bx,[bp + 8]
  27. 20260 EGASRI%(8)  = &H0F8B    ' 8B0F        mov    cx,[bx]
  28. 20270 EGASRI%(9)  = &H5E8B    ' 8B5E06    mov    bx,[bp + 6]
  29. 20280 EGASRI%(10) = &H8B06    ' 8B17        mov    dx,[bx]
  30. 20290 EGASRI%(11) = &H8B17
  31. 20300 EGASRI%(12) = &H0A5E    ' 8B5E0A    mov    bx,[bp + 0ah]
  32. 20310 EGASRI%(13) = &H1F8B    ' 8B1F        mov    bx,[bx]
  33. 20320 EGASRI%(14) = &HFC80    ' 80FCF1    cmp    ah,0f1h
  34. 20330 EGASRI%(15) = &H74F1    ' 740D        je    FlipFlop1
  35. 20340 EGASRI%(16) = &H800D
  36. 20350 EGASRI%(17) = &HF3FC    ' 80FCF3    cmp    ah,0f3h
  37. 20360 EGASRI%(18) = &H0874    ' 7408        je    FlipFlop1
  38. 20370 EGASRI%(19) = &HFC80    ' 80FCF5    cmp    ah,0f5h
  39. 20380 EGASRI%(20) = &H75F5    ' 751C        jne    execute_function
  40. 20390 EGASRI%(21) = &H261C    ' 268A17    mov    dl,es:[bx]
  41. 20400 EGASRI%(22) = &H178A    ' FlipFlop1:
  42. 20410 EGASRI%(23) = &HFA80    ' 80FA18    cmp    dl,18h
  43. 20420 EGASRI%(24) = &H7518    ' 7514        jne    execute_function
  44. 20430 EGASRI%(25) = &H5014    ' 50        push    ax
  45. 20440 EGASRI%(26) = &H1E52    ' 52        push    dx
  46. 20450                ' 1E        push    ds
  47. 20460 EGASRI%(27) = &HC031    ' 31C0        xor    ax,ax
  48. 20470 EGASRI%(28) = &HD88E    ' 8ED8        mov    ds,ax
  49. 20480 EGASRI%(29) = &H8B3E    ' 3E8B166304    mov    dx,ds:[463h]
  50. 20490 EGASRI%(30) = &H6316
  51. 20500 EGASRI%(31) = &H1F04    ' 1F        pop    ds
  52. 20510 EGASRI%(32) = &HC280    ' 80C206    add    dl,6
  53. 20520 EGASRI%(33) = &HFA06    ' FA        cli
  54. 20530 EGASRI%(34) = &H5AEC    ' EC        in    al,dx
  55. 20540                ' 5A        pop    dx
  56. 20550 EGASRI%(35) = &HCD58    ' 58        pop    ax
  57. 20560                ' execute_function:
  58. 20570 EGASRI%(36) = &HFB10    ' CD10        int    10h
  59. 20580                ' FB        sti
  60. 20590 EGASRI%(37) = &HD889    ' 89D8        mov    ax,bx
  61. 20600 EGASRI%(38) = &H5E8B    ' 8B5E0A    mov    bx,[bp + 0ah]
  62. 20610 EGASRI%(39) = &H890A    ' 8907        mov    [bx],ax
  63. 20620 EGASRI%(40) = &H8B07
  64. 20630 EGASRI%(41) = &H065E    ' 8B5E06    mov    bx,[bp + 6]
  65. 20640 EGASRI%(42) = &H078C    ' 8C07        mov    [bx],es
  66. 20650 EGASRI%(43) = &H5D07    ' 07        pop    es
  67. 20660                ' 5D        pop    bp
  68. 20670 EGASRI%(44) = &H08CA    ' CA0800    retf    8
  69. 20680 EGASRI%(45) = &H9000
  70. 20690 '
  71. 20700 EGASRISUBRT = VARPTR(EGASRI%(0))
  72. 20710 CALL EGASRISUBRT(EGATMP1%, EGATMP2%, EGATMP3%, EGATMP4%)
  73. 20720 E2% = EGATMP2% : E4% = EGATMP4% : RETURN
  74.