5 REM COPYRIGHT 1994 - COMPUTE PUBLICATIONS INTL LTD - ALL RIGHTS RESERVED 10 REM ---===*** SETUP ***===--- 20 DATA 9,1,8,9,10,11,12,13,14,15 30 DATA 12,0,1,2,3,8,9,10,11,12,13,14,15 40 DATA 4,0,1,2,3 50 POKE 56,32:POKE 52,32:CLR:POKE 53280,6:POKE 53281,0:PRINT"[159]": 60 DIM B(25),S(25),SC(25):C=0 70 FOR B=1 TO 3:READ N:FOR X=1 TO N 80 READ Y:S(C)=Y*16:B(C)=4-B:SC(C)=((B-1)*16384+S(C)*64)/256:C=C+1:NEXT:NEXT 90 DATA 169,0,133,251,133,253,169,208,133,252,169,80,133,254,160,0,177,251 100 DATA 145,253,200,208,249,230,252,230,254,169,96,197,254,208,239,96 110 FOR X=0 TO 33:READ Y:POKE 49152+X,Y:NEXT 120 POKE 56334,PEEK(56334) AND 254:POKE 1,PEEK(1) AND 251:SYS49152 130 POKE 1,PEEK(1) OR 4:POKE 56334,PEEK(56334) OR 1 140 DATA 169,3,13,2,221,141,2,221,169,252,45,0,221,5,251,168,169,15,45,24,208 150 DATA 5,252,170,165,253,140,0,221,142,24,208,141,136,2,169,19,32,210,255,96 160 FOR X=0 TO 40:READ Y:POKE 49152+X,Y:NEXT 170 DATA 165,252,170,232,232,232,232,134,2,160,0,177,251,145,253,200,208,249 180 DATA 230,252,230,254,165,2,197,252,208,239,96 190 FOR X=0 TO 28:READ Y:POKE 50000+X,Y:NEXT 200 FOR X=1 TO 24:POKE 251,B(X):POKE 252,S(X):POKE 253,SC(X):SYS 49152 210 PRINT "[147]":NEXT:POKE 650,128 220 POKE 251,B(0):POKE 252,S(0):POKE 253,SC(0):SYS 49152 500 REM ---===*** TITLE SCREEN ***===--- 510 PRINT "[147]";TAB(15);"ANIMATOR 64" 520 PRINT " THIS PROGRAM ALLOWS YOU TO CREATE MOVING GRAPHICS BY"; 530 PRINT " MAKING UP TO 24 LO- RES SCREENS AND FLIPPING THROUGH THEM, MUCH"; 540 PRINT " LIKE A FLIPBOOK." 550 PRINT " THE COMPUTER WILL ASK YOU FOR THE SCREEN YOU WISH TO EDIT." 560 PRINT " WHILE EDITING YOU MAY USE ALMOST ALL KEYS AS IF YOU WERE IN "; 570 PRINT "DIRECT MODE." 580 PRINT " ONE EXCEPTION IS THAT THE COLORS WILL BE COMMON TO ALL SCREENS." 590 PRINT" 'F1' - RETURNS TO MAIN SCREEN" 600 PRINT" 'F3' - INCREMENTS BORDER COLOR" 610 PRINT" 'F5' - INCREMENTS BACKGROUND COLOR" 620 PRINT" 'F7' - CHANGES FOREGROUND COLOR TO CURRENT CURSOR COLOR" 630 PRINT "  PRESS ANY KEY TO BEGIN." 640 POKE 198,0 650 GET A$:IF A$="" THEN 650 1000 REM ---===*** MAIN SCREEN ***===--- 1010 PRINT "[147] WHICH SCREEN WOULD YOU LIKE TO EDIT" 1020 PRINT " (ENTERING A NUMBER GREATER THAN 24 WILL DISPLAY THE "; 1030 PRINT "OPTIONS SCREEN)":INPUT" ";S:IF S<1 OR S<>INT(S) THEN 1000 1040 IF S>24 THEN GOTO 2000 1500 REM ---===*** EDIT ***===--- 1510 POKE 251,B(S):POKE 252,S(S):POKE 253,SC(S):SYS 49152:POKE 204,0 1520 GET A$:IF A$="" THEN 1520 1530 POKE 204,1:POKE PEEK(209)+PEEK(210)*256+PEEK(211),PEEK(206):PRINT A$; 1540 IF A$="[134]" THEN POKE 53280,(PEEK(53280)+1) AND 255 1550 IF A$="[135]" THEN POKE 53281,(PEEK(53281)+1) AND 255 1560 IF A$<>"[136]" THEN 1600 1570 POKE 251,PEEK(211):POKE 252,(PEEK(209)+256*PEEK(210)-256*SC(S))/40 1580 POKE 648,4:PRINT "[147]":POKE 648,SC(S):POKE 781,PEEK(252):POKE 782,PEEK(251) 1590 POKE 783,0:SYS 65520 1600 POKE 207,0:POKE 205,1:POKE 204,0 1610 IF A$<>"[133]" THEN 1520 1620 POKE 204,1:POKE PEEK(209)+PEEK(210)*256+PEEK(211),PEEK(206) 1630 POKE 251,B(0):POKE 252,S(0):POKE 253,SC(0):SYS 49152:GOTO 1000 2000 REM ---===*** OPTIONS ***===--- 2010 PRINT "[147] C[146]OPY SCREEN(S) 2020 [153] " AWAITNIMATE" 2030 [153] " LWAITOAD SCREENS" 2040 [153]" MWAITAIN SCREEN" 2050 [153] " SWAITAVE SCREENS" 2060 [153] " QWAITUIT" 2070 [153] " PRESS A KEY." 2080 [161] A$:[139] A$[178]"C" [167] 2500 2090 [139] A$[178]"A"[167] 3000 2100 [139] A$[178]"L"[167] 3500 2110 [139] A$[178]"S"[167] 4000 2120 [139] A$[178]"M" [167] 1000 2130 [139] A$[178]"Q" [167] [151] 53280,14:[151] 53281,6:[153] "LOADCONT";:[128] 2140 [137] 2080 2500 [143] ---===*** COPY ***===--- 2510 [133]" SCREEN TO COPY";S:[139] S[179]1 [176] S[177]24 [167] 1000 2520 [133]" COPY TO SCREEN";CS:[139] CS[179]1 [176] CS[177]24 [167] 1000 2530 [151] 251,0:[151] 253,0:[151] 252,SC(S):[151] 254,SC(CS):[158] 50000 2540 [133]" COPY ANOTHER [Y/N]";A$ 2550 [139] A$[178]"Y" [167] 2500 2560 [137] 1000 3000 [143] ---===*** ANIMATE ***===--- 3010 Z[178]0:[133] "LOAD ANIMATE SCREEN 1 TO SCREEN ";S:[139] S[179]1 [176] S[177]24 [167] 1000 3020 [153] " ANIMATE 1 -"S"AND BACK TO 1 [Y/N]";:[133] A$:[139] A$[178]"Y" [167] Z[178]99 3030 [133] " SPEED 1-16";SP:SP[178]16[171]SP 3040 [151] 198,0 3050 [129] X[178]1 [164] S:[151] 251,B(X):[151] 252,S(X):[151] 253,SC(X):[158] 49152 3060 [129] Y[178]1 [164] SP[172]16:[139] [194](198) [167] 3110 3070 [130]:[130]:[139] Z [179][177] 99 [167] 3050 3080 [129] X[178]S[171]1 [164] 2 [169] [171]1:[151] 251,B(X):[151] 252,S(X):[151] 253,SC(X):[158] 49152 3090 [129] Y[178]1 [164] SP[172]16:[139] [194](198) [167] 3110 3100 [130]:[130]:[137] 3050 3110 [151] 198,0:[151] 251,B(0):[151] 252,S(0):[151] 253,SC(0):[158] 49152:[137] 1000 3500 [143] ---===*** LOAD ***===--- 3510 [133]"LOAD FILENAME";F$:F$[178][200](F$,12)[170]",S,R" 3520 [159] 15,8,15:[159] 2,8,8,F$ 3530 [132]15,A,B$,C,D:[139] A[178]0 [167] 3570 3540 [139] A[178]62 [167] [153] "CAN'T FIND "[200](F$,[195](F$)[171]4):[137] 3560 3550 [153] ""A","B$","C","D 3560 [153] " PRESS ANY KEY.":[151] 198,0:[146] 198,1:[160] 2:[160] 15:[137] 1000 3570 [132]2,A$:[139] A$[179][177]"ANM64" [167] [153] " NOT AN ANIMATOR FILE.":[137] 3560 3580 [161]#2,A$:N[178][198](A$):[129] X[178]1 [164] N:B[178]256[172]SC(X):[129] Y[178]0 [164] 999 3590 [161]#2,A$:[151] B[170]Y,[198](A$[170][199](0)):[130]:[130]:[160] 2:[160] 15:[137] 1000 4000 [143] ---===*** SAVE ***===--- 4010 [133]"LOAD FILENAME";F$:F$[178][200](F$,12)[170]",S,W" 4020 [159] 15,8,15:[159] 2,8,8,F$ 4030 [132]15,A,B$,C,D:[139] A[178]0 [167] 4140 4040 [139] A[179][177]63 [167] 4120 4050 [153]""[200](F$,[195](F$)[171]4)" IS ALREADY ON THE DISK." 4060 [153]" NWAITEW FILENAME" 4070 [153]" RWAITEPLACE FILE" 4080 [153]" PRESS A KEY." 4090 [161] A$:[139] A$[179][177]"N" [175] A$[179][177]"R" [167] 4090 4100 [139] A$[178]"N" [167] [160] 2:[160] 15:[137] 4010 4110 [160] 2:[152]15,"S 0:"[200](F$,[195](F$)[171]4):[160] 15:[137] 4020 4120 [153] "A","B$","C","D:PRINT"QQ PRESS ANY KEY" 4130 POKE 198,0:WAIT 198,1:POKE 198,0:CLOSE 2:CLOSE 15:GOTO 1000 4140 PRINT#2,"ANM64" 4150 INPUT" SAVE SCREENS 1 -";N 4160 PRINT#2,CHR$(N);:FOR X=1 TO N:B=256*SC(X):FOR Y=0 TO 999 4170 PRINT#2,CHR$(PEEK(B+Y));:NEXT:NEXT:CLOSE 2:CLOSE 15:GOTO 1000