home *** CD-ROM | disk | FTP | other *** search
/ RISC DISC 2 / RISC_DISC_2.iso / pd_share / program / gamesuite / !Stasis / StasisHelp / Technical / Header
Encoding:
Text File  |  1995-01-28  |  4.4 KB  |  226 lines

  1.  
  2. ; This is the header for the Stasis module.  You should be able to gleen
  3. ; what information you need from this.  Note that stasisform illustrates
  4. ; the Stasis sample format.
  5.  
  6. #set Service_PsychoStarting=&80300
  7. #set Service_PsychoDying   =&80301
  8. #set Service_UKStasisFormat=&80310
  9. #set Service_StasisSave    =&80311
  10. #set Service_StasisIdentify=&80312
  11. #set Service_StasisRate    =&80313
  12. #set Service_Amnesia=&80320
  13. #set stasis_alien          =1
  14.  
  15. ; The variable block in the modules workspace
  16.  
  17. struct v {
  18.   .linktab    DBB 8  ; variables
  19.   .slot        DCD 0
  20.   .mastertune    DCD 0
  21.   .samprate    DCD 0
  22.   .newrate    DCD 0
  23.   .oldchan    DCD 0
  24.   .realtune    DCD 0
  25.   .timer    DCD 0
  26.   .logampadr    DCD 0
  27.   .filetype    DCD 0
  28.   .saveslot    DCD 0
  29.   .savename    DCD 0
  30.   .callbacks    DCD 0
  31.   .received    DCD 0
  32.   .textbuf    DBB 16
  33.   .contab       DBB 8*con.sizeof    ; contains the con structures
  34.   .slottab    DBB entries*s.sizeof; contains the slot table
  35.   .sizeof
  36. }
  37.  
  38. ; a slot table entry
  39.  
  40. struct s {             ;data structure for slot table
  41.   .addr         DCD 0
  42.   .length       DCD 0
  43.   .type        DCD 0
  44.   .format    DCD 0
  45.   .alien        DCD 0
  46.   .spare    DBD 3
  47.   .sizeof
  48. }
  49.  
  50. ; the format of the sccb
  51.  
  52. struct sccb {
  53.   .volume    DCB 0
  54.   .index    DCB 0
  55.   .instance    DCB 0
  56.   .control    DCB 0
  57.   .pitch    DCD 0
  58.   .timbre    DCD 0
  59.   .duration    DCD 0
  60.   .sizeof
  61. }
  62.  
  63. ; the id block format for an alien format handler
  64.  
  65. struct alien {
  66.   .id        DCD 0
  67.   .getinfo    DCD 0
  68.   .putinfo    DCD 0
  69.   .release    DCD 0
  70.   .zero        DCD 0
  71.   .reserved1    DCD 0
  72.   .reserved2    DCD 0
  73.   .name        DCD 0
  74.   .formatname    DCD 0
  75.   .filetype    DCD 0
  76.   .modname    DCD 0
  77.   .sizeof
  78.   
  79. }
  80.  
  81. ; the structure of the control block used by the fill code
  82.  
  83. struct con {       
  84.   .buf1        DCD 0;don't touch the first few
  85.   .buf2        DCD 0;they're loaded by an LDM
  86.   .addr        DCD 0
  87.   .length    DCD 0
  88.   .acc        DCD 0
  89.   .replen    DCD 0
  90.   .pitch    DCD 0
  91.   .status    DCD 0
  92.   .repofs    DCD 0
  93.   .slot        DCD 0
  94.   .volume    DCD 0
  95.   .finetune    DCD 0
  96.   .lastbuf    DCD 0
  97.   .rawpitch    DCD 0
  98.   .logampadr    DCD 0
  99.   .slowbufs     DCD 0
  100.   .fastbufs    DCD 0
  101.   .flashbufs    DCD 0
  102.   .fixedbufs    DCD 0
  103.   .flushes    DCD 0
  104.   .kicks    DCD 0;intentional gap below
  105.   .slides
  106.   .volslide    DCD 0
  107.   .volrate    DCD 0
  108.   .pitchslide    DCD 0
  109.   .pitchrate    DCD 0
  110.   .ratechange    DCD 0
  111.   .states    DCD 0
  112.   .prevstate    DCD 0
  113.   .laststate    DCD 0
  114.   .samprate    DCD 0
  115.   .spare    DBD 2
  116.   .sizeof
  117. }
  118. #set stac_shift=7    ;con_shift
  119.  
  120. #set s_shift=5
  121.  
  122. ; flags in the con.status word
  123.  
  124. #set status_gated = 1<<0
  125.  
  126. #set status_q1    = 1<<3
  127. #set status_q2    = 1<<4
  128. #set status_live  = 1<<5
  129. #set status_escape= 1<<6
  130. #set status_kick  = 1<<7
  131. #set status_off   = 1<<8
  132. #set status_fresh = 1<<9
  133. #set status_slide    = 1<<10
  134. #set status_volslide    = 1<<10
  135. #set status_pitchslide     = 1<<11
  136. #set status_resslide     = 1<<12
  137. #set status_resslide     = 1<<13
  138. #set status_safe    = 1<<14
  139. #set status_attached    = 1<<15
  140. #set status_qshift = 3
  141.  
  142. ; flags passed to Stasis_Sound in R4
  143. ; ie the ignore value
  144.  
  145. #set ig_slot    = 1<<0 ; ignore slot paseed to Stasis_Sound SWI
  146. #set ig_volume    = 1<<1 ; ignore volume
  147. #set ig_pitch    = 1<<2
  148. #set ig_update  = 1<<3 
  149. #set ig_rawpitch= 1<<4 ; don't convert pitch
  150. #set ig_escape  = 1<<5 ; internal signal - escape pressed - kills channel
  151. #set ig_retrig    = 1<<6 ; don't retrigger
  152. #set ig_fromgate= 1<<31; for internal use
  153.  
  154. struct stasisform {    ;stasis format
  155.   .id           DCD 0  ; the Stasis ID "Sta1"
  156.   .name        DBB 20 ; zero terminated name string
  157.   .len        DCD 0  ; length of data
  158.   .repofs    DCD 0  ; repeat offset from start of data
  159.  
  160.   .replen    DCD 0  ; repeat length
  161.   .finetune     DCD 0  ; finetune value, default &4000
  162.   .dataofs    DCD 0  ; offset to data - normally 44
  163.   .sizeof
  164. }
  165.  
  166. struct tffstart {   ; TFF (tracker) format
  167.           DCD 0; "SAMP"
  168.   .blocklen    DCD 0
  169.         DCD 0; "SNAM"
  170.   .namelen    DCD 20
  171.   .name        DBB 20;"Name of the voice   "
  172.   .sizeof
  173. }
  174. struct tffend {
  175.          DCD 0; "SVOL"
  176.         DCD 4
  177.   .finetune    DCD 255
  178.         DCD 0; "SLEN"
  179.         DCD 4
  180.   .len        DCD 0
  181.         DCD 0; "ROFS"
  182.         DCD 4
  183.   .repofs    DCD 0
  184.         DCD 0; "RLEN"
  185.         DCD 4
  186.   .replen    DCD 2
  187.         DCD 0;"SDAT"
  188.   .dataofs    DCD 0
  189.   .sizeof
  190. }
  191.  
  192. struct userform {   ;user format
  193.   .id        DCB "User"
  194.   .addr        DCD 0
  195.   .len        DCD 0
  196.   .repofs    DCD 0
  197.   .replen    DCD 0
  198.   .sizeof
  199. }
  200.   
  201. ; Sundry internal variables  
  202.   
  203. #set finetune_default=&4000
  204. #set finetune_shift=14
  205. #set tune_default=&4000
  206. #set tune_shift=12
  207.  
  208. #set entryshift=7
  209. #set entries=128
  210. #set namelen=20
  211. #set type_empty=0
  212. #set type_rma=1
  213. #set type_user=2
  214. #set type_amnesia=3
  215. #set type_link=4
  216. #set type_safelink=5
  217.  
  218. #set format_unknown=0
  219. #set format_stasis=1
  220. #set format_tracker=2
  221. #set format_user=3
  222. #set format_alien=4
  223.  
  224. #set filetype_stasis=&112
  225. #set filetype_tracker=&CB5
  226.