Home » Personal collection » Commodore disks » disk32a_commodore_disk_user_3_7.d64 » hires animator
hires animator
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 » Personal collection » Commodore disks » disk32a_commodore_disk_user_3_7.d64 |
| Filename: | hires animator |
| Read OK: | ✔ |
| File size: | 0ECE bytes |
| Load address: | 0801 |
| Exec address: | 0000 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Arnold website » magazines_cdu » magazines_cdu_cdu307_cdu307.d64 » hires animator
- Personal collection » Commodore disks » disk32a_commodore_disk_user_3_7.d64 » hires animator
File contents
10 IFA>0THEN40
20 POKE55,255:POKE56,63:POKE51,255:POKE52,63:CLR
30 A=A+1:PRINT"LOADING SPRITES":LOAD"SPRITE FILE 1",8,1
40 IFA>1THEN60
50 A=A+1:PRINT"LOADING M/CODE ":LOAD"ANIMATE.MC",8,1
60 IFA>2THEN90
70 SYS 50222:REM CLEAR BIT MAP MEMORY AND HIRES CHARACTER MEMORY
80 A=A+1:PRINT"LOADING HIRES CH":LOAD"TEST1 .ANM",8,1
90 GOSUB 820:REM VARIABLES
100 SYSCLS:SYSCMEM:SYSSBANK:SYSSCHBASE
110 POKE53265,PEEK(53265)OR32:REM HIRES BIT MAP MODE
120 IFPEEK(MULTI)=1THENPOKE53270,PEEK(53270)OR16:REM MULTICOLOUR
130 POKE24568,0:POKE24569,8:REM SPRITE POINTERS
140 POKE53276,PEEK(53276)OR3:REM MULTI COLOUR SPRITE
150 POKE53287,10:POKE53285,12:POKE53286,5:POKE53288,0:REM SPRITE COLOUR
160 POKE53248,100:POKE53249,50:REM X,Y CO-ORDINATES
170 POKE53264,PEEK(53264)OR1:REM MSB OF SPRITE 0
180 POKE53269,PEEK(53269)OR3:REM SWITCH ON SPRITES
190 SYSINIT:REM SET UP HIRES FIGURE ON SCREEN
200 SC=0:DB=0
210 POKEMODE,108:SYSANIM
220 REM MAIN LOOP
230 FORN=0TO320
240 SX=SX-1
250 IF SX<0AND(PEEK(53264)AND1)=1THENGOSUB760
260 IF SX=0AND(PEEK(53264)AND1)=0THENSX=100:POKE53264,1
270 IF DB=0THENSC=SC+1
280 IF DB=1THENSC=SC-1
290 IF SC=0THENDB=0
300 IF SC=7THENDB=1
310 POKE53248,SX:POKE24568,SC
320 NEXTN
330 POKE53269,0:SYSAOFF
340 POKECB,96:POKECT,128:SYSWIPE
350 POKE MULTI,1:POKEABASE,0:POKEABASE+1,96
360 K=60
370 X=1/π:P=0
380 A=1/SQR(5)
390 FORN=1 TO 1000
400 Y=X-.5:X=X+A-INT(X+A)
410 P=P-Y
420 XX=X*319:YY=100-P*K:CC=INT(RND(1)*3+1)
430 XX=2*INT(XX/2):XH=INT(XX/256):XL=XX-(XH*256)
440 POKECOLOUR,CC:POKEHX,XL:POKEHX+1,XH:POKEHY,YY
450 SYSPLOT
460 NEXTN
470 POKE MODE,96
480 GOSUB670:PV=1:POKEPAUSE,PV:POKEYD,0
490 X1=(PEEK(PX)*8)+60:Y1=150:POKE53250,X1:POKE53251,Y1
500 SX=100:POKE53264,1:POKE53248,SX:POKE53249,120:POKE53269,3
510 SYSNANIM
520 SX=SX-1
530 IF SX<0AND(PEEK(53264)AND1)=1THENGOSUB760
540 IF SX=0AND(PEEK(53264)AND1)=0THENSX=100:POKE53264,1
550 IF DB=0THENSC=SC+1
560 IF DB=1THENSC=SC-1
570 IF SC=0THENDB=0
580 IF SC=7THENDB=1
590 IFPEEK(FIRE)=1THEN650
600 POKE53248,SX:POKE24568,SC
610 X1=(PEEK(PX)*8)+60
620 IFX1>255THENX1=X1-255:POKE53264,PEEK(53264)OR2:POKE53250,X1:GOTO640
630 IFX1<255THENPOKE53264,PEEK(53264)AND253:POKE53250,X1
640 GOTO510
650 POKE53269,0
660 END
670 REM INITIALISE CHARACTER ROUTINE
680 POKE MVE,0:POKE RILE,0
690 X=8:Y=8:REM COORDINATES (IN CHARACTER BLOCKS) OF START POSITION.
700 POKEPX,X:POKEPY,Y
710 SS=24576+(320*Y):POKEHL,INT(SS/256):POKELL,SS-(PEEK(HL)*256):REM EXTREME LHS
720 POKEHR,INT((SS+240)/256):POKELR,(SS+240)-(PEEK(HR)*256):REM EXTREME RHS
730 SS=SS+(8*X):POKESVLUE+1,INT(SS/256):POKESVLUE,SS-(INT(SS/256)*256)
740 SYS AER
750 RETURN
760 REM MSB OFF
770 SX=255:POKE53264,PEEK(53264)AND 254
780 RETURN
790 REM MSB ON
800 SX(0)=0:POKE53264,PEEK(53264)OR1
810 RETURN
820 REM INITIALISE VARIABLES
830 SBANK=49205:REM SET BANK
840 SCHBASE=49224:REM SET CHAR.BASE
850 RILE=49916:REM MOVING L-R OR R-L
860 MVE=49917:REM CHARACTER MOVE
870 MULTI=49152:REM MULTI COLOUR MODE
880 INIT=49362:REM INITIALISE HIRES CHARACTER ROUTINE
890 ANIM=49450:REM ANIMATION ROUTINE
900 PAUSE=50192:REM SLOW ROUTINE VALUE LOCATION
910 CLS=49235:REM SET COLOUR MEMORY
920 CMEM=49246:REM CLEAR MEMORY(COLOUR)LOCATION
930 DX=49359:REM DIRECTION OF X JOYSTICK
940 DY=49360:REM DIRECTION OF Y JOYSTICK
950 FIRE=49361:REM FIRE BUTTON PRESSED
960 LL=49918:REM LEFT HAND SIDE LO.BYTE
970 LR=49920:REM RIGHT HAND SIDE LO.BYTE
980 HL=49919:REM LEFT HAND SIDE HI.BYTE
990 HR=49921:REM RIGHT HAND SIDE HI.BYTE
1000 PV=16:REM PAUSE VALUE
1010 CB=254:REM BOTTOM OF MEMORY CLEAR VECTOR HI BYTE
1020 CT=50236:REM TOP OF MEMORY HI BYTE
1030 PX=49924:REM POSITION OF X
1040 PY=49925:REM POSITION OF Y
1050 YD=49926:REM SWITCH ON MOVEMENT IN Y AXIS
1060 POKEYD,1
1070 ABASE=51290:REM HIRES SCREEN VECTOR
1080 ERASE=50981:REM ERASE HIRES PIXEL
1090 COLOUR=50982:REM MULTI COLOUR COLOUR
1100 HX=50983:REM HIRES PIXEL X
1110 HY=50985:REM HIRES PIXEL Y
1120 PLOT=50901:REM PLOT HIRES PIXEL
1130 WIPE=49297:REM CLEAR HIRES MEMORY
1140 AOFF=49475:REM SWITCH OFF INTERRUPT DRIVEN CHARACTER
1150 NANIM=49490:REM NON INTERRUPT DRIVEN HIRES CHARACTER
1160 MODE=49711:REM POKEMODE,108 BEFORE USING INTERRUPT CHARACTER OTHERWISE 96
1170 ALOOP=49837:REM ROUTINE TO EX-OR 80*96 PIXEL BLOCK OF MEMORY
1180 ASTE=49890:REM ROUTINE TO STORE START VARIABLES OF BLOCK MOVE
1190 AER=49714:REM ROUTINE TO SET STANDING FIGURE
1200 SVLUE=49912:REM SCREEN POSITION OF CHARACTER.
1210 RETURN
�A�0�40 1 �55,255:�56,63:�51,255:�52,63:� c A�A�1:�"LOADING SPRITES":�"SPRITE FILE 1",8,1 o( �A�1�60 �2 A�A�1:�"LOADING M/CODE ":�"ANIMATE.MC",8,1 �<