home *** CD-ROM | disk | FTP | other *** search
/ Millennium Time Capsule / AC2000.BIN / disks / ac11disk / mp_ste / english / formats.eng < prev    next >
Encoding:
Text File  |  1997-02-12  |  4.0 KB  |  144 lines

  1. Extensions defined by MP_STE (and M_PLAYER)
  2. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  3.  
  4. 1) AES massage for MP_STE.ACC:
  5. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  6.  
  7.     Two messages are know when MP_STE is an accessory:
  8.  
  9.     1/ AC_OPEN (40) (when called from the menu bar)
  10.     2/ M_PLAYER ('MP' ou $4D50) when called by another process, the
  11.     AES buffer is organised as shown below:
  12.         word(0) : $4D50
  13.         word(1)    : appl_id of calling process
  14.         word(2)    : 0 (doesn't need more than 16 bytes)
  15.     (    word(3)
  16.     (    word(4)    : LONG address of the command line or 0
  17.         word(5)    : unused
  18.         word(6)    ; idem
  19.         word(7)    : idem
  20.  
  21.         If the LONG address is 0, then no command line is
  22.     spcecified and MP_STE uses its dialogs to get your settings. Else,
  23.     the command line is a nul terminated string with the format
  24.     descibed into COMMANDS.ENG.
  25.  
  26. 2) Extension M_PLAYER for the number of frames of a GIF animation:
  27. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  28.  
  29.     Without this extension, you must parse the whole file to calculate
  30. the number of frames, here is my little extension to avoid such a thing:
  31.  
  32.  
  33.     $21, $FF    user extension
  34.     $0B        size of identifier
  35.     'M_PLAYER'
  36.     'FRM'        ID (FRM stands for frames)
  37.     $04        extension size
  38.     DWORD n        LONG value (Intel Format): number of frames.
  39.     $00        end of bloc
  40.  
  41.     This bloc must appear just after the global palette, or just after
  42. the Netscape extension (if included).
  43.  
  44. 3) Extension Netscape for looping on GIF files:
  45. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  46.  
  47.     The WEB browser NETSCAPE has defined an extension that contains
  48. the number of loops to perform on an animation:
  49.  
  50.     $21, $FF    user extension
  51.     $0B        size od identifier
  52.     'NETSCAPE'
  53.     '2.0'        ID
  54.     $03        size of extension
  55.     $00        unused
  56.     UWORD n        Intel WORD: number of loops (0=infinite)
  57.     $00        end of bloc
  58.  
  59.     This bloc must appear just after the global palette and before the
  60. M_PLAYER extension (if present).
  61.  
  62. 4) Extension Timing into FLM files
  63. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  64.  
  65.     Every FLM frame has a little header:
  66.  
  67.     LONG x
  68.     LONG x
  69.     LONG size of extra datas (0 when no extension)
  70.         ... extra datas... (nothing if 0 above)
  71.     LONG etc...
  72.  
  73.     It's the 3rd LONG that is used, for each frame created with
  74. MP_STE, you'll get:
  75.  
  76.     LONG x
  77.     LONG x
  78.     LONG 8    (8 bytes used)
  79.         LONG 'time'    4 ASCII bytes, ID of my extension
  80.         LONG time    number of 1/200 seconds since the 1st frame
  81.     LONG etc...
  82.  
  83. 5) Extension 'DMA sound' for FLM files:
  84. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  85.  
  86.     The global header of a FLM is:
  87.  
  88.     LONG x
  89. *    LONG size of extra datas (more often 0)
  90.     LONG x
  91.     LONG x
  92.     32 bytes for copyrights
  93.     LONG x
  94.     WORD x
  95.     WORD x
  96.     WORD x
  97.     8 bytes
  98.     WORD c = number of colors into the palette
  99.     WORDS palette (c WORDS)
  100. *    ..... extra datas ...... (more often nothing)
  101.     First frame
  102.     Second frame
  103.     etc...
  104.  
  105.  
  106.     Here again the extra datas are used to store the sound (just after
  107. the palette). If the size of extra datas is 0, then MP_STE supposes that
  108. there is no sound, else, it reads those infos and verifies the ID of the
  109. extension to validate it as a DMA sound.
  110.     I have defined an extensible bloc organisation to avoid keeping it
  111. for myself only. Other extensions will be able to share this zone with the
  112. DMA sound.
  113.  
  114.     LONG ID
  115.     LONG offset to next bloc
  116.         ...datas for 1st bloc...
  117.     LONG ID_2
  118.     LONG offset to next bloc
  119.         ...datas for 2nd bloc...
  120.  
  121.     and so on, the last bloc is:
  122.  
  123.     LONG ID_n
  124.     LONG zero
  125.         ...datas for last bloc...
  126.  
  127.     For now, only one bloc exists (mine), but MP_STE reads this zone
  128. as if there could be other blocs, it verifies the ID (4 chars) and jumps
  129. to the next bloc if unknown.
  130.  
  131.     The offset is the size of the bloc without the ID and the offset
  132. itself.
  133.  
  134.     The blocs must start on an even address (padded with a zero byte
  135. if needed), thus every offset is even.
  136.  
  137.     The DMA sound extension is:
  138.  
  139.     LONG 'dsnd'    ID for 'Dma SouND'
  140.     LONG offset     zero for now, last bloc
  141.         BYTE frequency: 1=12017, 2=25033, 3=50066 Hz
  142.         BYTE channels:    1=mono, 2=stereo
  143.         LONG actual size of the sound (if it is odd)
  144.         ...sound data, 8 bits, signed...