Home » Archimedes archive » Acorn User » AU 1998-07.adf » Regulars » StarInfo/Vibe/PLAYER

StarInfo/Vibe/PLAYER

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 1998-07.adf » Regulars
Filename: StarInfo/Vibe/PLAYER
Read OK:
File size: 065D bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > PLAYER
   20
   30MODE31
   40PRINT'"Sprite player"'
   50PRINT"This program can 'play' a sprite on the screen"
   60PRINT"You can change the play speed with + and -"'
   70PRINT"The current directory contains the following spritefiles:"'
   80DIM NAME% &100:SEQ%=0
   90REPEAT
  100SYS "OS_GBPB",8,,NAME%,1,SEQ% TO ,,,NUM%,SEQ%
  110IF NUM%=0 THEN
  120NAME%?(1+?NAME%)=13:NAME$=$(NAME%+1)
  130SYS "OS_File",5,NAME$ TO FOU%,,TYPE%
  140TYPE%=TYPE%>>8:TYPE%=TYPE%AND&FFF
  150IF FOU%=1 AND TYPE%=&FF9 PRINTNAME$
  160ENDIF
  170UNTIL NUM%
  180
  190INPUT'"Spritefile="SPF$
  200
  210SYS"OS_FSControl",28,SPF$ TO ,,LG%:LG%+=32
  220DIM SPR LG%,BUF 16
  230SPR!0=LG%:SPR!4=0:SPR!8=16:SPR!12=16
  240SYS"OS_SpriteOp",256+10,SPR,SPF$
  250SYS"OS_SpriteOp",256+8,SPR TO ,,,A%
  260DIM L$(A%):D%=12:F%=100/D%
  270FOR N%=1TOA%
  280SYS"OS_SpriteOp",256+13,SPR,BUF,16,N%
  290N$="":P%=0:REPEAT
  300T%=BUF?P%:IF T%<>0 L$(N%)+=CHR$T%
  310P%+=1:UNTIL T%=0
  320NEXT
  330SYS"OS_SpriteOp",256+40,SPR,L$(1) TO ,,,W%,H%,,M%
  340MODE M%:OFF
  350SYS"OS_ReadModeVariable",-1,4 TO,,SX%:SX%=2^SX%
  360SYS"OS_ReadModeVariable",-1,5 TO,,SY%:SY%=2^SY%
  370SYS"OS_ReadModeVariable",-1,11 TO,,XS%
  380SYS"OS_ReadModeVariable",-1,12 TO,,YS%
  390PX%=(SX%*(XS%-W%))/2:PY%=(SY%*(YS%-H%))/2:OLDM%=@%:@%=3
  400
  410PRINT"Sprite information"'
  420PRINT"Spritename.........  ";SPF$
  430PRINT"SpriteMode.........  ";M%
  440PRINT"Width in pixels....  ";W%
  450PRINT"Height in pixels...  ";H%
  460PRINT"Number of sprites..  ";A%
  470PRINT'"Now showing sprite. "
  480PRINT"Frames pr second... "
  490
  500ONERRORGOTO640
  510REPEAT
  520FORN%=1TOA%
  530T%=TIME+F%:VDU31,20,8:PRINTN%;
  540VDU31,20,9:PRINT D%
  550SYS"OS_SpriteOp",256+34,SPR,L$(N%),PX%,PY%,0
  560Q$=INKEY$(0)
  570IF Q$="+" THEN D%+=1
  580IF Q$="-" THEN D%-=1:IF D%=0 D%=1
  590F%=100/D%:*FX21,0
  600REPEAT:UNTILTIME>T%
  610NEXT
  620UNTIL0
  630
  640REPORT:PRINT" at line "STR$(ERL)
  650@%=OLDM%

� > PLAYER

�31
(�'"Sprite player"'
25�"This program can 'play' a sprite on the screen"
<2�"You can change the play speed with + and -"'
FA�"The current directory contains the following spritefiles:"'
P� NAME% &100:SEQ%=0
Z�
d/ș "OS_GBPB",8,,NAME%,1,SEQ% � ,,,NUM%,SEQ%
n� NUM%=0 �
x(NAME%?(1+?NAME%)=13:NAME$=$(NAME%+1)
�&ș "OS_File",5,NAME$ � FOU%,,TYPE%
�#TYPE%=TYPE%>>8:TYPE%=TYPE%�&FFF
� � FOU%=1 � TYPE%=&FF9 �NAME$
��
�
� NUM%
�
��'"Spritefile="SPF$
�
�,ș"OS_FSControl",28,SPF$ � ,,LG%:LG%+=32
�� SPR LG%,BUF 16
�(SPR!0=LG%:SPR!4=0:SPR!8=16:SPR!12=16
�#ș"OS_SpriteOp",256+10,SPR,SPF$
�%ș"OS_SpriteOp",256+8,SPR � ,,,A%
� L$(A%):D%=12:F%=100/D%

� N%=1�A%
(ș"OS_SpriteOp",256+13,SPR,BUF,16,N%
"N$="":P%=0:�
,!T%=BUF?P%:� T%<>0 L$(N%)+=�T%
6P%+=1:� T%=0
@�
J3ș"OS_SpriteOp",256+40,SPR,L$(1) � ,,,W%,H%,,M%
T
� M%:�
^1ș"OS_ReadModeVariable",-1,4 �,,SX%:SX%=2^SX%
h1ș"OS_ReadModeVariable",-1,5 �,,SY%:SY%=2^SY%
r(ș"OS_ReadModeVariable",-1,11 �,,XS%
|(ș"OS_ReadModeVariable",-1,12 �,,YS%
�;PX%=(SX%*(XS%-W%))/2:PY%=(SY%*(YS%-H%))/2:OLDM%=@%:@%=3
�
��"Sprite information"'
�!�"Spritename.........  ";SPF$
��"SpriteMode.........  ";M%
��"Width in pixels....  ";W%
��"Height in pixels...  ";H%
��"Number of sprites..  ";A%
��'"Now showing sprite. "
��"Frames pr second... "
�
���t@B
��
�N%=1�A%
T%=�+F%:�31,20,8:�N%;
�31,20,9:� D%
&/ș"OS_SpriteOp",256+34,SPR,L$(N%),PX%,PY%,0
0Q$=�(0)
:� Q$="+" � D%+=1
D � Q$="-" � D%-=1:� D%=0 D%=1
NF%=100/D%:*FX21,0
X�:��>T%
b�
l�0
v
��:�" at line "�(�)
�@%=OLDM%
�
00000000  0d 00 0a 0e f4 20 3e 20  50 4c 41 59 45 52 0d 00  |..... > PLAYER..|
00000010  14 04 0d 00 1e 07 eb 33  31 0d 00 28 16 f1 27 22  |.......31..(..'"|
00000020  53 70 72 69 74 65 20 70  6c 61 79 65 72 22 27 0d  |Sprite player"'.|
00000030  00 32 35 f1 22 54 68 69  73 20 70 72 6f 67 72 61  |.25."This progra|
00000040  6d 20 63 61 6e 20 27 70  6c 61 79 27 20 61 20 73  |m can 'play' a s|
00000050  70 72 69 74 65 20 6f 6e  20 74 68 65 20 73 63 72  |prite on the scr|
00000060  65 65 6e 22 0d 00 3c 32  f1 22 59 6f 75 20 63 61  |een"..<2."You ca|
00000070  6e 20 63 68 61 6e 67 65  20 74 68 65 20 70 6c 61  |n change the pla|
00000080  79 20 73 70 65 65 64 20  77 69 74 68 20 2b 20 61  |y speed with + a|
00000090  6e 64 20 2d 22 27 0d 00  46 41 f1 22 54 68 65 20  |nd -"'..FA."The |
000000a0  63 75 72 72 65 6e 74 20  64 69 72 65 63 74 6f 72  |current director|
000000b0  79 20 63 6f 6e 74 61 69  6e 73 20 74 68 65 20 66  |y contains the f|
000000c0  6f 6c 6c 6f 77 69 6e 67  20 73 70 72 69 74 65 66  |ollowing spritef|
000000d0  69 6c 65 73 3a 22 27 0d  00 50 17 de 20 4e 41 4d  |iles:"'..P.. NAM|
000000e0  45 25 20 26 31 30 30 3a  53 45 51 25 3d 30 0d 00  |E% &100:SEQ%=0..|
000000f0  5a 05 f5 0d 00 64 2f c8  99 20 22 4f 53 5f 47 42  |Z....d/.. "OS_GB|
00000100  50 42 22 2c 38 2c 2c 4e  41 4d 45 25 2c 31 2c 53  |PB",8,,NAME%,1,S|
00000110  45 51 25 20 b8 20 2c 2c  2c 4e 55 4d 25 2c 53 45  |EQ% . ,,,NUM%,SE|
00000120  51 25 0d 00 6e 0e e7 20  4e 55 4d 25 3d 30 20 8c  |Q%..n.. NUM%=0 .|
00000130  0d 00 78 28 4e 41 4d 45  25 3f 28 31 2b 3f 4e 41  |..x(NAME%?(1+?NA|
00000140  4d 45 25 29 3d 31 33 3a  4e 41 4d 45 24 3d 24 28  |ME%)=13:NAME$=$(|
00000150  4e 41 4d 45 25 2b 31 29  0d 00 82 26 c8 99 20 22  |NAME%+1)...&.. "|
00000160  4f 53 5f 46 69 6c 65 22  2c 35 2c 4e 41 4d 45 24  |OS_File",5,NAME$|
00000170  20 b8 20 46 4f 55 25 2c  2c 54 59 50 45 25 0d 00  | . FOU%,,TYPE%..|
00000180  8c 23 54 59 50 45 25 3d  54 59 50 45 25 3e 3e 38  |.#TYPE%=TYPE%>>8|
00000190  3a 54 59 50 45 25 3d 54  59 50 45 25 80 26 46 46  |:TYPE%=TYPE%.&FF|
000001a0  46 0d 00 96 20 e7 20 46  4f 55 25 3d 31 20 80 20  |F... . FOU%=1 . |
000001b0  54 59 50 45 25 3d 26 46  46 39 20 f1 4e 41 4d 45  |TYPE%=&FF9 .NAME|
000001c0  24 0d 00 a0 05 cd 0d 00  aa 0a fd 20 4e 55 4d 25  |$.......... NUM%|
000001d0  0d 00 b4 04 0d 00 be 17  e8 27 22 53 70 72 69 74  |.........'"Sprit|
000001e0  65 66 69 6c 65 3d 22 53  50 46 24 0d 00 c8 04 0d  |efile="SPF$.....|
000001f0  00 d2 2c c8 99 22 4f 53  5f 46 53 43 6f 6e 74 72  |..,.."OS_FSContr|
00000200  6f 6c 22 2c 32 38 2c 53  50 46 24 20 b8 20 2c 2c  |ol",28,SPF$ . ,,|
00000210  4c 47 25 3a 4c 47 25 2b  3d 33 32 0d 00 dc 14 de  |LG%:LG%+=32.....|
00000220  20 53 50 52 20 4c 47 25  2c 42 55 46 20 31 36 0d  | SPR LG%,BUF 16.|
00000230  00 e6 28 53 50 52 21 30  3d 4c 47 25 3a 53 50 52  |..(SPR!0=LG%:SPR|
00000240  21 34 3d 30 3a 53 50 52  21 38 3d 31 36 3a 53 50  |!4=0:SPR!8=16:SP|
00000250  52 21 31 32 3d 31 36 0d  00 f0 23 c8 99 22 4f 53  |R!12=16...#.."OS|
00000260  5f 53 70 72 69 74 65 4f  70 22 2c 32 35 36 2b 31  |_SpriteOp",256+1|
00000270  30 2c 53 50 52 2c 53 50  46 24 0d 00 fa 25 c8 99  |0,SPR,SPF$...%..|
00000280  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 32 35  |"OS_SpriteOp",25|
00000290  36 2b 38 2c 53 50 52 20  b8 20 2c 2c 2c 41 25 0d  |6+8,SPR . ,,,A%.|
000002a0  01 04 1c de 20 4c 24 28  41 25 29 3a 44 25 3d 31  |.... L$(A%):D%=1|
000002b0  32 3a 46 25 3d 31 30 30  2f 44 25 0d 01 0e 0d e3  |2:F%=100/D%.....|
000002c0  20 4e 25 3d 31 b8 41 25  0d 01 18 28 c8 99 22 4f  | N%=1.A%...(.."O|
000002d0  53 5f 53 70 72 69 74 65  4f 70 22 2c 32 35 36 2b  |S_SpriteOp",256+|
000002e0  31 33 2c 53 50 52 2c 42  55 46 2c 31 36 2c 4e 25  |13,SPR,BUF,16,N%|
000002f0  0d 01 22 10 4e 24 3d 22  22 3a 50 25 3d 30 3a f5  |..".N$="":P%=0:.|
00000300  0d 01 2c 21 54 25 3d 42  55 46 3f 50 25 3a e7 20  |..,!T%=BUF?P%:. |
00000310  54 25 3c 3e 30 20 4c 24  28 4e 25 29 2b 3d bd 54  |T%<>0 L$(N%)+=.T|
00000320  25 0d 01 36 10 50 25 2b  3d 31 3a fd 20 54 25 3d  |%..6.P%+=1:. T%=|
00000330  30 0d 01 40 05 ed 0d 01  4a 33 c8 99 22 4f 53 5f  |0..@....J3.."OS_|
00000340  53 70 72 69 74 65 4f 70  22 2c 32 35 36 2b 34 30  |SpriteOp",256+40|
00000350  2c 53 50 52 2c 4c 24 28  31 29 20 b8 20 2c 2c 2c  |,SPR,L$(1) . ,,,|
00000360  57 25 2c 48 25 2c 2c 4d  25 0d 01 54 0a eb 20 4d  |W%,H%,,M%..T.. M|
00000370  25 3a 87 0d 01 5e 31 c8  99 22 4f 53 5f 52 65 61  |%:...^1.."OS_Rea|
00000380  64 4d 6f 64 65 56 61 72  69 61 62 6c 65 22 2c 2d  |dModeVariable",-|
00000390  31 2c 34 20 b8 2c 2c 53  58 25 3a 53 58 25 3d 32  |1,4 .,,SX%:SX%=2|
000003a0  5e 53 58 25 0d 01 68 31  c8 99 22 4f 53 5f 52 65  |^SX%..h1.."OS_Re|
000003b0  61 64 4d 6f 64 65 56 61  72 69 61 62 6c 65 22 2c  |adModeVariable",|
000003c0  2d 31 2c 35 20 b8 2c 2c  53 59 25 3a 53 59 25 3d  |-1,5 .,,SY%:SY%=|
000003d0  32 5e 53 59 25 0d 01 72  28 c8 99 22 4f 53 5f 52  |2^SY%..r(.."OS_R|
000003e0  65 61 64 4d 6f 64 65 56  61 72 69 61 62 6c 65 22  |eadModeVariable"|
000003f0  2c 2d 31 2c 31 31 20 b8  2c 2c 58 53 25 0d 01 7c  |,-1,11 .,,XS%..||
00000400  28 c8 99 22 4f 53 5f 52  65 61 64 4d 6f 64 65 56  |(.."OS_ReadModeV|
00000410  61 72 69 61 62 6c 65 22  2c 2d 31 2c 31 32 20 b8  |ariable",-1,12 .|
00000420  2c 2c 59 53 25 0d 01 86  3b 50 58 25 3d 28 53 58  |,,YS%...;PX%=(SX|
00000430  25 2a 28 58 53 25 2d 57  25 29 29 2f 32 3a 50 59  |%*(XS%-W%))/2:PY|
00000440  25 3d 28 53 59 25 2a 28  59 53 25 2d 48 25 29 29  |%=(SY%*(YS%-H%))|
00000450  2f 32 3a 4f 4c 44 4d 25  3d 40 25 3a 40 25 3d 33  |/2:OLDM%=@%:@%=3|
00000460  0d 01 90 04 0d 01 9a 1a  f1 22 53 70 72 69 74 65  |........."Sprite|
00000470  20 69 6e 66 6f 72 6d 61  74 69 6f 6e 22 27 0d 01  | information"'..|
00000480  a4 21 f1 22 53 70 72 69  74 65 6e 61 6d 65 2e 2e  |.!."Spritename..|
00000490  2e 2e 2e 2e 2e 2e 2e 20  20 22 3b 53 50 46 24 0d  |.......  ";SPF$.|
000004a0  01 ae 1f f1 22 53 70 72  69 74 65 4d 6f 64 65 2e  |...."SpriteMode.|
000004b0  2e 2e 2e 2e 2e 2e 2e 2e  20 20 22 3b 4d 25 0d 01  |........  ";M%..|
000004c0  b8 1f f1 22 57 69 64 74  68 20 69 6e 20 70 69 78  |..."Width in pix|
000004d0  65 6c 73 2e 2e 2e 2e 20  20 22 3b 57 25 0d 01 c2  |els....  ";W%...|
000004e0  1f f1 22 48 65 69 67 68  74 20 69 6e 20 70 69 78  |.."Height in pix|
000004f0  65 6c 73 2e 2e 2e 20 20  22 3b 48 25 0d 01 cc 1f  |els...  ";H%....|
00000500  f1 22 4e 75 6d 62 65 72  20 6f 66 20 73 70 72 69  |."Number of spri|
00000510  74 65 73 2e 2e 20 20 22  3b 41 25 0d 01 d6 1c f1  |tes..  ";A%.....|
00000520  27 22 4e 6f 77 20 73 68  6f 77 69 6e 67 20 73 70  |'"Now showing sp|
00000530  72 69 74 65 2e 20 22 0d  01 e0 1b f1 22 46 72 61  |rite. "....."Fra|
00000540  6d 65 73 20 70 72 20 73  65 63 6f 6e 64 2e 2e 2e  |mes pr second...|
00000550  20 22 0d 01 ea 04 0d 01  f4 0b ee 85 e5 8d 74 40  | "............t@|
00000560  42 0d 01 fe 05 f5 0d 02  08 0c e3 4e 25 3d 31 b8  |B..........N%=1.|
00000570  41 25 0d 02 12 19 54 25  3d 91 2b 46 25 3a ef 33  |A%....T%=.+F%:.3|
00000580  31 2c 32 30 2c 38 3a f1  4e 25 3b 0d 02 1c 11 ef  |1,20,8:.N%;.....|
00000590  33 31 2c 32 30 2c 39 3a  f1 20 44 25 0d 02 26 2f  |31,20,9:. D%..&/|
000005a0  c8 99 22 4f 53 5f 53 70  72 69 74 65 4f 70 22 2c  |.."OS_SpriteOp",|
000005b0  32 35 36 2b 33 34 2c 53  50 52 2c 4c 24 28 4e 25  |256+34,SPR,L$(N%|
000005c0  29 2c 50 58 25 2c 50 59  25 2c 30 0d 02 30 0b 51  |),PX%,PY%,0..0.Q|
000005d0  24 3d bf 28 30 29 0d 02  3a 14 e7 20 51 24 3d 22  |$=.(0)..:.. Q$="|
000005e0  2b 22 20 8c 20 44 25 2b  3d 31 0d 02 44 20 e7 20  |+" . D%+=1..D . |
000005f0  51 24 3d 22 2d 22 20 8c  20 44 25 2d 3d 31 3a e7  |Q$="-" . D%-=1:.|
00000600  20 44 25 3d 30 20 44 25  3d 31 0d 02 4e 15 46 25  | D%=0 D%=1..N.F%|
00000610  3d 31 30 30 2f 44 25 3a  2a 46 58 32 31 2c 30 0d  |=100/D%:*FX21,0.|
00000620  02 58 0b f5 3a fd 91 3e  54 25 0d 02 62 05 ed 0d  |.X..:..>T%..b...|
00000630  02 6c 06 fd 30 0d 02 76  04 0d 02 80 16 f6 3a f1  |.l..0..v......:.|
00000640  22 20 61 74 20 6c 69 6e  65 20 22 c3 28 9e 29 0d  |" at line ".(.).|
00000650  02 8a 0c 40 25 3d 4f 4c  44 4d 25 0d ff           |...@%=OLDM%..|
0000065d