home *** CD-ROM | disk | FTP | other *** search
- Extensions defined by MP_STE (and M_PLAYER)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- 1) AES massage for MP_STE.ACC:
- ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
-
- Two messages are know when MP_STE is an accessory:
-
- 1/ AC_OPEN (40) (when called from the menu bar)
- 2/ M_PLAYER ('MP' ou $4D50) when called by another process, the
- AES buffer is organised as shown below:
- word(0) : $4D50
- word(1) : appl_id of calling process
- word(2) : 0 (doesn't need more than 16 bytes)
- ( word(3)
- ( word(4) : LONG address of the command line or 0
- word(5) : unused
- word(6) ; idem
- word(7) : idem
-
- If the LONG address is 0, then no command line is
- spcecified and MP_STE uses its dialogs to get your settings. Else,
- the command line is a nul terminated string with the format
- descibed into COMMANDS.ENG.
-
- 2) Extension M_PLAYER for the number of frames of a GIF animation:
- ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
-
- Without this extension, you must parse the whole file to calculate
- the number of frames, here is my little extension to avoid such a thing:
-
-
- $21, $FF user extension
- $0B size of identifier
- 'M_PLAYER'
- 'FRM' ID (FRM stands for frames)
- $04 extension size
- DWORD n LONG value (Intel Format): number of frames.
- $00 end of bloc
-
- This bloc must appear just after the global palette, or just after
- the Netscape extension (if included).
-
- 3) Extension Netscape for looping on GIF files:
- ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
-
- The WEB browser NETSCAPE has defined an extension that contains
- the number of loops to perform on an animation:
-
- $21, $FF user extension
- $0B size od identifier
- 'NETSCAPE'
- '2.0' ID
- $03 size of extension
- $00 unused
- UWORD n Intel WORD: number of loops (0=infinite)
- $00 end of bloc
-
- This bloc must appear just after the global palette and before the
- M_PLAYER extension (if present).
-
- 4) Extension Timing into FLM files
- ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
-
- Every FLM frame has a little header:
-
- LONG x
- LONG x
- LONG size of extra datas (0 when no extension)
- ... extra datas... (nothing if 0 above)
- LONG etc...
-
- It's the 3rd LONG that is used, for each frame created with
- MP_STE, you'll get:
-
- LONG x
- LONG x
- LONG 8 (8 bytes used)
- LONG 'time' 4 ASCII bytes, ID of my extension
- LONG time number of 1/200 seconds since the 1st frame
- LONG etc...
-
- 5) Extension 'DMA sound' for FLM files:
- ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
-
- The global header of a FLM is:
-
- LONG x
- * LONG size of extra datas (more often 0)
- LONG x
- LONG x
- 32 bytes for copyrights
- LONG x
- WORD x
- WORD x
- WORD x
- 8 bytes
- WORD c = number of colors into the palette
- WORDS palette (c WORDS)
- * ..... extra datas ...... (more often nothing)
- First frame
- Second frame
- etc...
-
-
- Here again the extra datas are used to store the sound (just after
- the palette). If the size of extra datas is 0, then MP_STE supposes that
- there is no sound, else, it reads those infos and verifies the ID of the
- extension to validate it as a DMA sound.
- I have defined an extensible bloc organisation to avoid keeping it
- for myself only. Other extensions will be able to share this zone with the
- DMA sound.
-
- LONG ID
- LONG offset to next bloc
- ...datas for 1st bloc...
- LONG ID_2
- LONG offset to next bloc
- ...datas for 2nd bloc...
-
- and so on, the last bloc is:
-
- LONG ID_n
- LONG zero
- ...datas for last bloc...
-
- For now, only one bloc exists (mine), but MP_STE reads this zone
- as if there could be other blocs, it verifies the ID (4 chars) and jumps
- to the next bloc if unknown.
-
- The offset is the size of the bloc without the ID and the offset
- itself.
-
- The blocs must start on an even address (padded with a zero byte
- if needed), thus every offset is even.
-
- The DMA sound extension is:
-
- LONG 'dsnd' ID for 'Dma SouND'
- LONG offset zero for now, last bloc
- BYTE frequency: 1=12017, 2=25033, 3=50066 Hz
- BYTE channels: 1=mono, 2=stereo
- LONG actual size of the sound (if it is odd)
- ...sound data, 8 bits, signed...