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