Home » Archimedes archive » Acorn User » AU 1996-03 B.adf » Regulars » StarInfo/Cohn/!ARMovie/Tools/Split/Split-in-Y

StarInfo/Cohn/!ARMovie/Tools/Split/Split-in-Y

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1996-03 B.adf » Regulars
Filename: StarInfo/Cohn/!ARMovie/Tools/Split/Split-in-Y
Read OK:
File size: 038C bytes
Load address: 0000
Exec address: 0000
File contents
   10REM Split-in-Y
   20REM Acts on 192CHAIN144 films (4:3 ratio).
   30ON ERROR CLOSE#A%:PRINTREPORT$;" at line ";ERL:END
   40FORsplit%=2TO8
   50A%=OPENOUT("<ARMovie$Dir>.Shapes.Splits.Y-in-"+STR$split%)
   60BPUT#A%,"ARMovie Shape 1"
   70BPUT#A%,"Split vertically 192�144 (or smaller) films into "+STR$split%+" equal sections"
   80size%=576/split%*(split%*2-1):REM 864 for 2.
   90BPUT#A%,"768 ";
  100BPUT#A%,STR$size%
  110Z%=(1/split%)*144:REM Calculate no. of lines in a block; 72 for 2.
  120FORblk%=0TO(split%-1)
  130FORline%=blk%*Z%TO(Z%*(blk%+1)-1)
  140destx%=0
  150desty%=(size%-4)-4*(line%+Z%*blk%):REM Z%*blk% gives block start. line% gives how many lines in from start.
  160q%=destx% OR desty%<<12 OR 192<<24
  170BPUT#A%,q%:BPUT#A%,q%>>8:BPUT#A%,q%>>16:BPUT#A%,q%>>24
  180FORI%=0TO191
  190y%=line%
  200x%=I%
  210q%=y%<<16 OR x%
  220BPUT#A%,q%:BPUT#A%,q%>>8:BPUT#A%,q%>>16:BPUT#A%,q%>>24
  230NEXT I%
  240PRINT"Line N�: ";line%;" done."
  250NEXT line%
  260NEXT blk%
  270CLOSE#A%
  280PRINT"Finished Split N�: ";split%;". Starting next split."
  290NEXT
  300END

� Split-in-Y
(� Acts on 192�144 films (4:3 ratio).
 � � �#A%:�$;" at line ";�:�
(�split%=2�8
25A%=�("<ARMovie$Dir>.Shapes.Splits.Y-in-"+�split%)
<�#A%,"ARMovie Shape 1"
FV�#A%,"Split vertically 192�144 (or smaller) films into "+�split%+" equal sections"
P.size%=576/split%*(split%*2-1):� 864 for 2.
Z�#A%,"768 ";
d�#A%,�size%
nDZ%=(1/split%)*144:� Calculate no. of lines in a block; 72 for 2.
x�blk%=0�(split%-1)
�"�line%=blk%*Z%�(Z%*(blk%+1)-1)
�destx%=0
�mdesty%=(size%-4)-4*(line%+Z%*blk%):� Z%*blk% gives block start. line% gives how many lines in from start.
�$q%=destx% � desty%<<12 � 192<<24
�.�#A%,q%:�#A%,q%>>8:�#A%,q%>>16:�#A%,q%>>24
�
�I%=0�191
�y%=line%
�	x%=I%
�q%=y%<<16 � x%
�.�#A%,q%:�#A%,q%>>8:�#A%,q%>>16:�#A%,q%>>24
�� I%
��"Line N�: ";line%;" done."
�� line%

� blk%
�#A%
:�"Finished Split N�: ";split%;". Starting next split."
"�
,�
�
00000000  0d 00 0a 10 f4 20 53 70  6c 69 74 2d 69 6e 2d 59  |..... Split-in-Y|
00000010  0d 00 14 28 f4 20 41 63  74 73 20 6f 6e 20 31 39  |...(. Acts on 19|
00000020  32 d7 31 34 34 20 66 69  6c 6d 73 20 28 34 3a 33  |2.144 films (4:3|
00000030  20 72 61 74 69 6f 29 2e  0d 00 1e 20 ee 20 85 20  | ratio).... . . |
00000040  d9 23 41 25 3a f1 f6 24  3b 22 20 61 74 20 6c 69  |.#A%:..$;" at li|
00000050  6e 65 20 22 3b 9e 3a e0  0d 00 28 0f e3 73 70 6c  |ne ";.:...(..spl|
00000060  69 74 25 3d 32 b8 38 0d  00 32 35 41 25 3d ae 28  |it%=2.8..25A%=.(|
00000070  22 3c 41 52 4d 6f 76 69  65 24 44 69 72 3e 2e 53  |"<ARMovie$Dir>.S|
00000080  68 61 70 65 73 2e 53 70  6c 69 74 73 2e 59 2d 69  |hapes.Splits.Y-i|
00000090  6e 2d 22 2b c3 73 70 6c  69 74 25 29 0d 00 3c 1a  |n-"+.split%)..<.|
000000a0  d5 23 41 25 2c 22 41 52  4d 6f 76 69 65 20 53 68  |.#A%,"ARMovie Sh|
000000b0  61 70 65 20 31 22 0d 00  46 56 d5 23 41 25 2c 22  |ape 1"..FV.#A%,"|
000000c0  53 70 6c 69 74 20 76 65  72 74 69 63 61 6c 6c 79  |Split vertically|
000000d0  20 31 39 32 d7 31 34 34  20 28 6f 72 20 73 6d 61  | 192.144 (or sma|
000000e0  6c 6c 65 72 29 20 66 69  6c 6d 73 20 69 6e 74 6f  |ller) films into|
000000f0  20 22 2b c3 73 70 6c 69  74 25 2b 22 20 65 71 75  | "+.split%+" equ|
00000100  61 6c 20 73 65 63 74 69  6f 6e 73 22 0d 00 50 2e  |al sections"..P.|
00000110  73 69 7a 65 25 3d 35 37  36 2f 73 70 6c 69 74 25  |size%=576/split%|
00000120  2a 28 73 70 6c 69 74 25  2a 32 2d 31 29 3a f4 20  |*(split%*2-1):. |
00000130  38 36 34 20 66 6f 72 20  32 2e 0d 00 5a 10 d5 23  |864 for 2...Z..#|
00000140  41 25 2c 22 37 36 38 20  22 3b 0d 00 64 0f d5 23  |A%,"768 ";..d..#|
00000150  41 25 2c c3 73 69 7a 65  25 0d 00 6e 44 5a 25 3d  |A%,.size%..nDZ%=|
00000160  28 31 2f 73 70 6c 69 74  25 29 2a 31 34 34 3a f4  |(1/split%)*144:.|
00000170  20 43 61 6c 63 75 6c 61  74 65 20 6e 6f 2e 20 6f  | Calculate no. o|
00000180  66 20 6c 69 6e 65 73 20  69 6e 20 61 20 62 6c 6f  |f lines in a blo|
00000190  63 6b 3b 20 37 32 20 66  6f 72 20 32 2e 0d 00 78  |ck; 72 for 2...x|
000001a0  16 e3 62 6c 6b 25 3d 30  b8 28 73 70 6c 69 74 25  |..blk%=0.(split%|
000001b0  2d 31 29 0d 00 82 22 e3  6c 69 6e 65 25 3d 62 6c  |-1)...".line%=bl|
000001c0  6b 25 2a 5a 25 b8 28 5a  25 2a 28 62 6c 6b 25 2b  |k%*Z%.(Z%*(blk%+|
000001d0  31 29 2d 31 29 0d 00 8c  0c 64 65 73 74 78 25 3d  |1)-1)....destx%=|
000001e0  30 0d 00 96 6d 64 65 73  74 79 25 3d 28 73 69 7a  |0...mdesty%=(siz|
000001f0  65 25 2d 34 29 2d 34 2a  28 6c 69 6e 65 25 2b 5a  |e%-4)-4*(line%+Z|
00000200  25 2a 62 6c 6b 25 29 3a  f4 20 5a 25 2a 62 6c 6b  |%*blk%):. Z%*blk|
00000210  25 20 67 69 76 65 73 20  62 6c 6f 63 6b 20 73 74  |% gives block st|
00000220  61 72 74 2e 20 6c 69 6e  65 25 20 67 69 76 65 73  |art. line% gives|
00000230  20 68 6f 77 20 6d 61 6e  79 20 6c 69 6e 65 73 20  | how many lines |
00000240  69 6e 20 66 72 6f 6d 20  73 74 61 72 74 2e 0d 00  |in from start...|
00000250  a0 24 71 25 3d 64 65 73  74 78 25 20 84 20 64 65  |.$q%=destx% . de|
00000260  73 74 79 25 3c 3c 31 32  20 84 20 31 39 32 3c 3c  |sty%<<12 . 192<<|
00000270  32 34 0d 00 aa 2e d5 23  41 25 2c 71 25 3a d5 23  |24.....#A%,q%:.#|
00000280  41 25 2c 71 25 3e 3e 38  3a d5 23 41 25 2c 71 25  |A%,q%>>8:.#A%,q%|
00000290  3e 3e 31 36 3a d5 23 41  25 2c 71 25 3e 3e 32 34  |>>16:.#A%,q%>>24|
000002a0  0d 00 b4 0d e3 49 25 3d  30 b8 31 39 31 0d 00 be  |.....I%=0.191...|
000002b0  0c 79 25 3d 6c 69 6e 65  25 0d 00 c8 09 78 25 3d  |.y%=line%....x%=|
000002c0  49 25 0d 00 d2 12 71 25  3d 79 25 3c 3c 31 36 20  |I%....q%=y%<<16 |
000002d0  84 20 78 25 0d 00 dc 2e  d5 23 41 25 2c 71 25 3a  |. x%.....#A%,q%:|
000002e0  d5 23 41 25 2c 71 25 3e  3e 38 3a d5 23 41 25 2c  |.#A%,q%>>8:.#A%,|
000002f0  71 25 3e 3e 31 36 3a d5  23 41 25 2c 71 25 3e 3e  |q%>>16:.#A%,q%>>|
00000300  32 34 0d 00 e6 08 ed 20  49 25 0d 00 f0 1f f1 22  |24..... I%....."|
00000310  4c 69 6e 65 20 4e ba 3a  20 22 3b 6c 69 6e 65 25  |Line N.: ";line%|
00000320  3b 22 20 64 6f 6e 65 2e  22 0d 00 fa 0b ed 20 6c  |;" done."..... l|
00000330  69 6e 65 25 0d 01 04 0a  ed 20 62 6c 6b 25 0d 01  |ine%..... blk%..|
00000340  0e 08 d9 23 41 25 0d 01  18 3a f1 22 46 69 6e 69  |...#A%...:."Fini|
00000350  73 68 65 64 20 53 70 6c  69 74 20 4e ba 3a 20 22  |shed Split N.: "|
00000360  3b 73 70 6c 69 74 25 3b  22 2e 20 53 74 61 72 74  |;split%;". Start|
00000370  69 6e 67 20 6e 65 78 74  20 73 70 6c 69 74 2e 22  |ing next split."|
00000380  0d 01 22 05 ed 0d 01 2c  05 e0 0d ff              |.."....,....|
0000038c