This document explains the structure of the animate.scr file found in Chaos Strikes Back for Atari ST.
The file is made of big endian words (2 bytes). It is a sequence of instructions.
Each instruction is a word.
Each instruction has a fixed number of parameters which are also words.
The ANIMATE.FTL program recognizes the following instructions:
This section show the entire content of the Animate.scr file found in Chaos Strikes Back for Atari ST with commands separated and commented.
Conventions: p00 = P4B1 item 0000 in ANIMATE.DAT file i30 = IMG1 item 0030 in ANIMATE.DAT file s85 = SND1 item 0085 in ANIMATE.DAT file LOAD ALL ITEMS IN MEMORY 0003 0000 0005 0001 0000 p00 (used for i30) 0003 0001 0006 0001 0001 p01 (i30) 0003 0008 000D 0001 0008 p08 (i30) 0003 0012 0017 0001 0012 p18 (i30) 0003 001E 0023 0000 001E i30 0003 001F 0024 0000 001F i31 0003 0002 0007 0001 0002 p02 (i31) 0003 0009 000E 0001 0009 p09 (i31) 0003 0020 0025 0000 0020 i32 0003 0003 0008 0001 0003 p03 (i32) 0003 000A 000F 0001 000A p10 (i32) 0003 000B 0010 0001 000B p11 (i32) 0003 000C 0011 0001 000C p12 (i32) 0003 000D 0012 0001 000D p13 (i32) 0003 0021 0026 0000 0021 i33 0003 0004 0009 0001 0004 p04 (i33) 0003 000E 0013 0001 000E p14 (i33) 0003 000F 0014 0001 000F p15 (i33) 0003 0010 0015 0001 0010 p16 (i33) 0003 0011 0016 0001 0011 p17 (i33) 0003 0022 0027 0000 0022 i34 0003 0005 000A 0001 0005 p05 (i34 i36) 0003 0023 0028 0000 0023 i35 0003 0024 0029 0000 0024 i36 0003 0006 000B 0001 0006 p06 (i35 i36) 0003 0007 000C 0001 0007 p07 (i36) 0003 004C 0051 0000 004C i76 0003 004D 0052 0000 004D i77 0003 004E 0053 0000 004E i78 0003 004F 0054 0000 004F i79 0003 0050 0055 0000 0050 i80 0003 0051 0056 0000 0051 i81 0003 0052 0057 0000 0052 i82 0003 0053 0058 0000 0053 i83 0003 0054 0059 0000 0054 i84 0003 0055 005A 0002 0055 s85 0003 0056 005B 0002 0056 s86 0003 0015 001A 0001 0015 p21 (i75) 0003 004B 0050 0000 004B i75 credits RELOAD some items (the first 5 items) 0003 0000 0005 0001 0003 0001 0006 0001 0003 0008 000D 0001 0003 0012 0017 0001 0003 001E 0023 0000 0008 0002 0001 Fade to palette 0005 0023 0000 0000 Expand graphic 0008 0005 0001 Fade to palette 000A 0012 Wait for X vertical blanks 0013 0067 0004 Set loop counter to 4 0010 0067 FOR 0008 0017 0001 Fade to palette 000A 0005 Wait for X vertical blanks 0008 0005 0001 Fade to palette 000A 0005 Wait for X vertical blanks 0011 0067 Decrement loop counter 0012 0067 0067 NEXT 0008 0006 0001 Fade to palette 0013 0067 0005 Set loop counter to 5 0010 0067 FOR 0008 000D 0001 Fade to palette 000A 0005 Wait for X vertical blanks 0008 0006 0001 Fade to palette 000A 0005 Wait for X vertical blanks 0011 0067 Decrement loop counter 0012 0067 0067 NEXT UNLOAD 0004 0005 0004 0006 0004 000D 0004 0017 0004 0023 RELOAD 0003 001F 0024 0000 0003 0002 0007 0001 0003 0009 000E 0001 0008 0002 0001 Fade to palette 0005 0024 0000 0000 Expand graphic 0008 0007 0001 Fade to palette 0013 0067 000A Set loop counter to 10 0010 0067 FOR 0008 000E 0001 Fade to palette 000A 0005 Wait for X vertical blanks 0008 0007 0001 Fade to palette 000A 0005 Wait for X vertical blanks 0011 0067 Decrement loop counter 0012 0067 0067 NEXT UNLOAD 0004 0024 0004 0007 0004 000E RELOAD 0003 0020 0025 0000 0003 0003 0008 0001 0003 000A 000F 0001 0003 000B 0010 0001 0003 000C 0011 0001 0003 000D 0012 0001 0008 0002 0001 Fade to palette 0005 0025 0000 0000 Expand graphic 0008 0008 0001 Fade to palette 0013 0067 0004 Set loop counter to 4 0010 0067 FOR 000A 0004 Wait for X vertical blanks 0008 000F 0001 Fade to palette 000A 0004 Wait for X vertical blanks 0008 0010 0001 Fade to palette 000A 0001 Wait for X vertical blanks 0008 0011 0001 Fade to palette 000A 0004 Wait for X vertical blanks 0008 0012 0001 Fade to palette 000A 0004 Wait for X vertical blanks 0008 0011 0001 Fade to palette 000A 0004 Wait for X vertical blanks 0008 0010 0001 Fade to palette 000A 0004 Wait for X vertical blanks 0008 000F 0001 Fade to palette 000A 0002 Wait for X vertical blanks 0008 0008 0001 Fade to palette 000A 0004 Wait for X vertical blanks 0011 0067 Decrement loop counter 0012 0067 0067 NEXT UNLOAD 0004 0025 0004 0008 0004 000F 0004 0010 0004 0011 0004 0012 RELOAD 0003 0021 0026 0000 0003 0004 0009 0001 0003 000E 0013 0001 0003 000F 0014 0001 0003 0010 0015 0001 0003 0011 0016 0001 0008 0002 0001 Fade to palette 0005 0026 0000 0000 Expand graphic 0008 0009 0001 Fade to palette 0013 0067 0002 Set loop counter to 2 0010 0067 FOR 000A 0004 Wait for X vertical blanks 0008 0013 0001 Fade to palette 000A 0004 Wait for X vertical blanks 0008 0014 0001 Fade to palette 000A 0001 Wait for X vertical blanks 0008 0015 0001 Fade to palette 000A 0004 Wait for X vertical blanks 0008 0016 0001 Fade to palette 000A 0004 Wait for X vertical blanks 0008 0015 0001 Fade to palette 000A 0004 Wait for X vertical blanks 0008 0014 0001 Fade to palette 000A 0004 Wait for X vertical blanks 0008 0013 0001 Fade to palette 000A 0002 Wait for X vertical blanks 0008 0009 0001 Fade to palette 000A 0004 Wait for X vertical blanks 0011 0067 Decrement loop counter 0012 0067 0067 NEXT UNLOAD 0004 0026 0004 0009 0004 0013 0004 0014 0004 0015 0004 0016 RELOAD 0003 0022 0027 0000 0003 0005 000A 0001 0008 0002 0001 Fade to palette 0005 0027 0000 0000 Expand graphic 0008 000A 0001 Fade to palette 000A 008C Wait for X vertical blanks RELOAD 0003 0022 0027 0000 0003 0005 000A 0001 0003 0023 0028 0000 0003 0024 0029 0000 0003 0006 000B 0001 0003 0007 000C 0001 0008 0002 0001 Fade to palette 0005 0028 0000 0000 Expand graphic 0005 0029 0001 0000 Expand graphic 0008 000B 0001 Fade to palette 000A 0050 Wait for X vertical blanks 000E 0001 000C Wait for vertical blank and set screen and palette UNLOAD 0004 0028 0004 0029 0004 000B 0004 000C RELOAD SOME ITEMS ?? Useless ?? 0003 004C 0051 0000 0003 004D 0052 0000 0003 004E 0053 0000 0003 004F 0054 0000 0003 0050 0055 0000 0003 0051 0056 0000 0003 0052 0057 0000 0003 0053 0058 0000 0003 0054 0059 0000 COPY IMAGE MEMORY SLOT 001D 0051 005D 001D 0052 005E 001D 0053 005F 001D 0054 0060 001D 0055 0061 001D 0056 0062 001D 0057 0063 001D 0058 0064 001D 0059 0065 RELOAD 0003 0055 005A 0002 0003 0056 005B 0002 Expand graphic from source slot into destination slot 0005 0051 005D 0000 0005 0052 005E 0000 0005 0053 005F 0000 0005 0054 0060 0000 0005 0055 0061 0000 0005 0056 0062 0000 0005 0057 0063 0000 0005 0058 0064 0000 0005 0059 0065 0000 SET DISPLAY COORDINATES OF TOP LEFT CORNER OF IMAGE 001E 005D 002B 0089 X = 43, Y = 137 001E 005E 002A 0089 X = 42, Y = 137 001E 005F 002A 0089 001E 0060 002A 0089 001E 0061 002A 0089 001E 0062 002A 0089 001E 0063 002A 0089 001E 0064 002A 0089 001E 0065 002A 0089 0006 005D 0001 0001 005D Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 0006 005E 0001 0001 005E Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 0006 005F 0001 0001 005F Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 0006 0060 0001 0001 0060 Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 0006 0061 0001 0001 0061 Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 0006 0062 0001 0001 0062 Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 0006 005F 0001 0001 0063 Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 0006 005D 0001 0001 005D Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 0006 005E 0001 0001 005E Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 0006 005F 0001 0001 0060 Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 0006 0060 0001 0001 0060 Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 0006 0061 0001 0001 0061 Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 0006 0060 0001 0001 0060 Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 0006 0061 0001 0001 0063 Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 000C 005B 0070 Play sound 5B 0006 0064 0001 0001 0064 Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 000C 005A 0070 Play sound 5A 0006 0065 0001 0001 0065 Blit bitmap from source slot to destination slot 000A 003C Wait for X vertical blanks 0006 0062 0001 0001 0063 Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks 0006 0061 0001 0001 0063 Blit bitmap from source slot to destination slot 000A 0014 Wait for X vertical blanks UNLOAD 0004 005D 0004 005E 0004 005F 0004 0060 0004 0061 0004 0062 0004 0063 0004 0064 0004 0065 0004 0051 0004 0052 0004 0053 0004 0054 0004 0055 0004 0056 0004 0057 0004 0058 0004 0059 000A 00C8 Wait for X vertical blanks 0003 0015 001A 0001 0003 004B 0050 0000 0008 0002 0001 Fade to palette 000E 0000 FFFF Wait for vertical blank and set screen and palette 0005 0050 0000 0000 Expand graphic 0008 001A 0001 Fade to palette 000A 0258 Wait for X vertical blanks UNLOAD 0004 005A 0004 005B 0004 0050 0004 001A 0001