home *** CD-ROM | disk | FTP | other *** search
/ The Best of the Best / _.img / 01037 / readme.txt < prev    next >
Text File  |  1992-11-20  |  5KB  |  165 lines

  1.  
  2.         Tandy Gryphon Audio drivers            19.10.92
  3.  
  4.     (c) 1992 Tony Williams / Sound Images
  5.  
  6.  
  7.             LEMMINGS
  8.             --------
  9.  
  10.  
  11. David ,
  12.     I have tried to make the drivers for the Gryphon version identical to
  13. the ordinary PC ones , but there are some major differences - CD audio for
  14. instance . This means that I have allowed for any audio CD to be inserted ,
  15. and tracks played from it . The problem with this is that the CD-rom device
  16. driver ( I wish I could do it at low level , but I can't ) takes a pretty
  17. hefty amount of processor time to read the Table of Contents from the disk .
  18. This is where the start of each track is stored , and I read them into a
  19. table and calculate the lengths . It is obvuiously nice for the punter to
  20. be able to put his favourite CD in to accompany the game , but there are some
  21. drawbacks - The Lemmings tunes all loop after about one or two minutes , so
  22. when the track ends , I have to start it again . This will also happen on any
  23. other audio CD . Also , there are two versions of the Lemmings title tune on
  24. the disc , and I only use one of them , making it necessary to use a lookup
  25. table ( especially as the title tune wasn't used on the Adlib+Tandy versions .)
  26.  
  27. I decided to add a function whereby you could pass the driver a lookup table if
  28. necessary , so Motorhead or The Carpenters could be played if the punter desired .
  29. The will mean a small menu program , asking the player which track should
  30. accompany each level , and whether it should loop .
  31.  
  32.  
  33. before calling the functions ( blindingly obvious ) , load the driver -
  34. gryphsnd.dat at offset 0 within a segment . The entry point is at 0 and
  35. Russell preferred to use a software interrupt , so all routines end with an
  36. IRET instruction . The sample file - lemsamp.bin also needs to be loaded at
  37. offset zero within a segment , and that segment address is passed to the driver .
  38.  
  39.  
  40. There now follows a list of the driver functions . You will notice ( I hope )
  41. that the first six functions correspond to those in the Adlib/Tandy drivers
  42. and the rest are added just for the CD audio .
  43.  
  44.  
  45. WARNINGS :-
  46.  
  47. Do not try and start a sound effect before 1) initialising the driver or
  48. 2) loading the sample file , which is a separate file . The sample file needs
  49. to be loaded at offset 0 within any segment , the address of which is passed
  50. to the driver on initialisation .
  51.  
  52.  
  53. In all cases , expect ax to be corrupt , except where values are returned .
  54.  
  55. Function 0 - Refresh
  56. --------------------
  57. entry    :    ah = 0
  58.  
  59. exit    :    nothing much of importance
  60.  
  61.  
  62. On most drivers , this function needs to be called by a vbl or timer , but due
  63. to the CD audio and samples , an irregular call at any reasonable rate should
  64. suffice ( 50-60 hz maybe ) The refresh handles looping of tunes and a perculiar
  65. twist to the sample playback which is needed where a sample crosses a 64k page .
  66. Most processing is done within this routine , and in the case of the Gryphon ,
  67. it can take a hell of a long time , because it has to be done via the device
  68. drivers .
  69.  
  70.  
  71. Function 1 - Initialise
  72. -----------------------
  73.  
  74. entry    :    ah = 1
  75.         dx = segment address at which samples file is loaded(offset 0)
  76.  
  77. exit    :    al = 1 if CD audio present , else 0
  78.         ah = 1 if sample playback available , else 0
  79.  
  80.  
  81. Function 2 - Kill all sound
  82. ---------------------------
  83.  
  84. entry    :    ah = 2
  85.  
  86. exit    :    none
  87.  
  88.  
  89. Function 3 - Start a tune
  90. -------------------------
  91.  
  92. entry    :    ah = 3
  93.         al = tune number 1-22 ( corresponding to keys a-v on demo )
  94.  
  95. exit    :    none
  96.  
  97. This function only 'cues up' a tune to start , the processing is done during
  98. the next refresh .
  99.  
  100.  
  101. Function 4 - Start an effect
  102. ----------------------------
  103.  
  104. entry    :    ah = 4
  105.         al = effect number 1-21 ( corresponding to keys A-U on demo )
  106.  
  107. exit    :    none
  108.  
  109. This function only 'cues up' an effect to start , the processing is done during
  110. the next refresh .
  111.  
  112. Function 5 - Get tune
  113. ---------------------
  114.  
  115. entry    :    ah = 5
  116.  
  117. exit    :    al = number of current tune
  118.  
  119.  
  120. Function 6 - Get effect
  121. -----------------------
  122.  
  123. entry    :    ah = 6
  124.  
  125. exit    :    al = number of current effect
  126.  
  127.  
  128. Function 7 - Set track table
  129. ----------------------------
  130.  
  131. entry    :    ah = 7
  132.         ds:si = segment:offset of track table
  133.  
  134.             format of track table is simple :
  135.             db    CD track number for each tune number
  136.                 as used by the driver ( e.g. tune 1 - awesome )
  137.                 bit 7 is set if tune needs to be looped
  138.  
  139.             N.B.    entry zero is NEVER USED
  140.  
  141.  
  142. exit    :    not a lot
  143.  
  144.  
  145. Function 8 - Play next track
  146. ----------------------------
  147.  
  148. entry    :    ah = 8
  149.  
  150. exit    :    nothing
  151.  
  152.  
  153.  
  154. This function has been added after today's conversation ( Mon 19th ) and all
  155. track play lengths have been extended , so basically they will play until the
  156. end or until you stop them . The device driver function which is supposed to
  157. read the current track number and CD play position randomly gives back crap
  158. and if the track number is greater than the number of tracks , I go back to
  159. the beginning . As usual this isn't desirable , but it's getting late and I've
  160. arrange for the machine to be picked up in the morning ............
  161.  
  162.  
  163.  
  164.  
  165.