home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Programmierung / SOURCE.mdf / programm / msdos / c / playfli / playfli.doc < prev    next >
Text File  |  1994-06-29  |  6KB  |  159 lines

  1. The source code and executables for both the MODEX and VESA fli players are
  2. in the public domain. (As well as all the MODEX routines(Written by Matt
  3. Pritchard) and the Miscellaneous routines (Written by the author, Dean Beeler).
  4.  
  5. It's that simple.....
  6.  
  7. Ok, the program PLAYFLI6.BAS or PLAYFLI6.EXE is a 320x200x256 fli player.
  8. (Done in MODEX)
  9. I made the program much more efficient, and fixed a few bugs....
  10.  
  11. The program PLAYFLI8.BAS or PLAYFLI8.EXE is a 640x400x256 fli player.
  12. (Done in VESA)
  13. The VESA routines are as fast as I could get them in QB4.5, but if you have
  14. any faster routines, (even if they are in or for C or ASM or Pascal), send
  15. them to me, I would appreciate it a lot.
  16. My address is:
  17. Dean Beeler
  18. 4308 Landsdowne North
  19. Owensboro, KY 42303
  20.  
  21. The routines contained in MENULIB.BAS or MENULIB.OBJ or MENULIB.LIB or
  22. MENULIB.QLB do the following things:
  23.  
  24. SUB Writedot (x, y, c)
  25. x - the horizontal coordinate for the pixel to be drawn
  26. y - the vertical coordinate for the pixel to be drawn
  27. c - the color for the pixel to be drawn
  28. NOTE:  You must first use the sub SETVESA(This sub does not check for VESA
  29. compatibility) and you must DEF SEG = &HA000 .
  30.  
  31. SUB Setvesa (Mode)
  32. Mode - a number 0 - 3 representing the mode wanted, you can also use the
  33. constants that I have in the .BI:
  34. Vesa640x400  = 0 =  640x400x256
  35. Vesa640x480  = 1 =  640x480x256
  36. Vesa800x600  = 2 =  800x600x256
  37. Vesa1024x768 = 3 = 1024x768x256
  38.  
  39. Delay (Times!)
  40. A sort of improved version of the SLEEP command.
  41.  
  42. FUNCTION Mouseinit%
  43. Sets up the mouse in the current video mode
  44.  
  45. FUNCTION Getvect& (Interrup%)
  46. Returns a 32-bit(LONG integer) pointer for the specified interrupt
  47.  
  48. FUNCTION Findfirst% (Filename$, Attr%, Buf as ANY)
  49. Returns if the specified file was found.
  50. The Buf is a type defined in the MENULIB.BI:
  51. TYPE Filefind
  52.         Internal AS STRING * 21
  53.         Attr AS STRING * 1
  54.         Ftime AS INTEGER
  55.         Fdate AS INTEGER
  56.         Size AS LONG
  57.         Namext AS STRING * 13
  58. END TYPE
  59. The Namext is the full name of the file found
  60.  
  61. FUNCTION Findnext% (Buf as ANY)
  62. Generally the same as Findfirst%, but the only parameter is the TYPEd array
  63. of Buf.  (DOS already knows what your looking for from the first call to
  64. Findfirst%)
  65. NOTE: Findfirst% must be called before this routine in order for DOS
  66. to know what you are looking for.
  67.  
  68. FUNCTION Offp% (Pntr&)
  69. Returns the offset of a 32-bit(LONG integer) pointer.
  70. Imagine that, I gave BASIC pointers!!!  The operate just as the do in C,
  71. except that they are just normal LONG integers.  The pointers only work
  72. when using my routines.
  73.  
  74. FUNCTION Segp% (Pntr&)
  75. Returns the segment of a 32-bit(LONG integer) pointer.
  76.  
  77. FUNCTION Ptr&(Array%())
  78. Returns a 32-bit(LONG integer) pointer to an array.
  79.  
  80. FUNCTION Long2int% (Number&)
  81. Forces a 32-bit LONG integer into a 16-bit integer.
  82. NOTE:  This truncates the most significant 16 bits.
  83.  
  84. FUNCTION Sbinit%(Port%, Irq%, Dmach%, Version%)
  85. Returns if a Sound Blaster exists in a machine and the Port, Irq, Dma Channel,
  86. and Version number.
  87. NOTE: This uses the BLASTER environment variable.
  88. (If it can not find it, it will only return the correct Port if a SB exists!)
  89.  
  90. FUNCTION Dmastat% (Dmach%)
  91. Returns and UNSIGNED integer the current offset of a DMA transfer on a
  92. specific channel.
  93.  
  94. FUNCTION Int2Long&(Integ%)
  95. Forces a 16-bit integer into a 32-bit LONG integer.
  96. You might say, why don't just use Long& = int%.  My reason is that when you
  97. do that, if the integer is > than 0x8000 (&H8000) it will make the LONG int
  98. negative as well.  This function doesn't do that, it gives the unsigned
  99. value of the integer to the LONG integer.  For example.  If set the LONG int
  100. to 0x8000 just by using an equal sign, the value of the LONG integer would be
  101. -32767. But with this function, it would be 32768!
  102.  
  103. FUNCTION Dosread% (Pnt&, Size%, Handle%)
  104. This returns the number of bytes actually read from the file.(Which is
  105. less than the specified size of the read if the EOF is reached.)  The handle
  106. of a file opened with BASIC can be found if use the FILEATTR function. (This
  107. is a BASIC function)
  108. The Pnt& is a 32-bit pointer created with the Ptr& function (My function).
  109.  
  110. FUNCTION Doswrite% (Pnt&, Size%, Handle%)
  111. This is generally the same as Dosread% except that it writes to a file
  112. and returns the number of bytes written.
  113.  
  114. SUB Hidemouse
  115. This hides the mouse's cursor so that screen writes may be done without errors.
  116. (If the mouse is hidden multiple times without reshowing it, it will require
  117. the same number of calls to the Showmouse routine to make it reappear.)
  118.  
  119. SUB Showmouse
  120. This Shows the mouse's cursor after it has been hid or the mouse has be
  121. initialized.
  122. NOTE: The mouse driver's automatic cursor won't work in MODEX or VESA.
  123. (It must be done manually)
  124.  
  125. SUB Mousestat (x%, y%, b%)
  126. This returns the mouse's x and y coordinate and the button status in their
  127. respective variables. The first bit of b% if set if the left button is press,
  128. the second bit if the right button is pressed, and the third bit if the
  129. middle button is pressed.
  130.  
  131. SUB MaxMousex (Minx%, Maxx%)
  132. This sets the Minimal and Maximum horizontal coordinate of the mouse.
  133.  
  134. SUB MaxMousey (Miny%, Maxy%)
  135. This sets the Minimal and Maximum vertical coordinate of the mouse.
  136.  
  137. SUB Outsb (Baseport%, Writeval%)
  138. This sends a command to the Baseport + 0x0C (or &H0C) of the Sound Blaster.
  139. Baseport + 0x0C is used to control the SB.
  140. For any more specific information write to me via MAIL or my Compuserve
  141. address. (The BASEPORT is a number line 0x220 or 0x240!)
  142.  
  143. SUB ResetSB (Baseport%)
  144. This resets the Sound Blaster.
  145.  
  146.  
  147. Well that's it...
  148. Obviously, you can see a skeleton for many different type of programs.
  149. (A VOC player, VESA graphics, MOUSE control, etc.)
  150. If you want the specifics, just write to me... My address is:
  151. Dean Beeler
  152. 4308 Landsdowne North
  153. Owensboro, KY 42303
  154.  
  155. Or my COMPUSERVE address.
  156. I use it under my dad's name (GERALD W. BEELER):
  157. 73223, 3130.
  158.  
  159.