Home » Personal collection » Commodore disks » disk64d_odus_eclipse.d64 » sprite editor
sprite editor
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 » disk64d_odus_eclipse.d64 |
Filename: | sprite editor |
Read OK: | ✔ |
File size: | 11D2 bytes |
Load address: | 0801 |
Exec address: | 0000 |
File contents
1 PRINT"<clr>":PRINTSPC(173);:PRINT"<reverse on>SPRITE EDITOR" 2 PRINTSPC(242);:PRINTSPC(242);:PRINT"<reverse on>DO YOU WISH INSTRUCTIONS ? (Y/N)" 3 GETA$:IFA$=""THEN3 4 IFA$<>"Y"ANDA$<>"N"THEN3 5 IFA$="N"THEN100 6 PRINT"<clr>":POKE53269,PEEK(53269)AND127:GOSUB8001 8 PRINTTAB(43):PRINT"X EXPAND/CONTRACT X AXIS" 9 PRINTTAB(43):PRINT"Y EXPAND/CONTRACT Y AXIS" 10 PRINTTAB(43):PRINT"↑ REFLECT X AXIS" 11 PRINTTAB(43):PRINT"← REFLECT Y AXIS" 12 PRINTTAB(43):PRINT"R ROTATE 90 DEGREES RIGHT" 13 PRINTTAB(43):PRINT"M MODE MULTICOLOUR/SINGLE" 14 PRINTTAB(86):PRINT"PRESS SPACE BAR TO CONTINUE" 15 GETD$:IFD$<>CHR$(32)ANDD$<>CHR$(160)THEN15 16 PRINT"<clr>":GOSUB8001 17 PRINTTAB(43):PRINT"F(1) COLOUR SINGLE MODE" 18 PRINTTAB(43):PRINT"F(3) COLOUR 1 MULTICOLOUR" 19 PRINTTAB(43):PRINT"F(5) COLOUR 2 MULTICOLOUR" 20 PRINTTAB(43):PRINT"F(7) ERASE POINT" 21 PRINTTAB(43):PRINT"S VIEW BYTE MAP" 22 PRINTTAB(43):PRINT"D CREATE DATA STATEMENTS" 23 PRINTTAB(86):PRINT"PRESS SPACE BAR TO CONTINUE" 24 GETD$:IFD$<>CHR$(32)ANDD$<>CHR$(160)THEN24 25 PRINT"<clr>":GOSUB8001 26 PRINTTAB(43):PRINT"T STORE DATA TO TAPE" 27 PRINTTAB(43):PRINT"Q QUIT/ERASE PROGRAM" 28 PRINTTAB(43):PRINT"CLR ERASE ALL POINTS":PRINTTAB(43):PRINT"F INPUT SPRITE FROM FILE" 32 PRINTTAB(43):PRINT"H HELP TO RETURN TO KEYCODES" 33 PRINTTAB(85):PRINT"***PRESS SPACE BAR TO START***" 34 PRINTTAB(50):PRINT"OR RETURN TO PROGRAM" 35 GETD$:IFD$="Q"THEN9000 36 IFD$<>CHR$(32)ANDD$<>CHR$(160)THEN35 37 GOTO100 100 FORI=0TO7:M(I)=2^(7-I):H(I)=255-M(I):NEXT:G=13*4096:PG=160 120 C=PG*64:POKE2047,PG:POKEG+21,128:POKEG+46,15:DC=255:POKE650,128 140 POKEG+14,255:POKEG+15,50 150 C1=1:C2=2:C3=3:C4=4:C5=5:C6=6:C7=7 160 C8=8:C9=9:Z=0 170 SC=1024:LL=40 210 PRINT"<clr>";:FORI=0TO20:FORJ=ZTOC2:P=PEEK(C+I*C3+J) 230 FORK=ZTOC7:A$=".":IFPANDM(K)THENA$="●" 240 PRINTA$;:NEXT:NEXT:PRINTI:NEXT:X=Z:Y=Z 245 PRINT"765432107654321076543210" 250 PRINT"<home>"; 260 IFYTHENFORI=1TOY:PRINT:NEXT 270 IFXTHENPRINTSPC(X); 280 P=SC+X+Y*LL:Q=PEEK(P):R=Q 290 R=(R+128)AND255 300 POKEP,R 310 FORI=1TO30:GETA$:IFA$=" "THENNEXT:GOTO290 320 POKEP,Q 321 IFA$="X"THENPOKEG+29,128-PEEK(G+29):GOTO250 322 IFA$="Y"THENPOKEG+23,128-PEEK(G+23):GOTO250 323 IFA$="<f1>"THENPOKEG+46,(PEEK(G+46)+1)AND15:GOTO250 324 IFA$="<f3>"THENPOKEG+37,(PEEK(G+37)+1)AND15:GOTO250 325 IFA$="<f5>"THENPOKEG+38,(PEEK(G+38)+1)AND15:GOTO250 326 IFA$="M"THENPOKEG+28,128-PEEK(G+28):GOTO250 327 IFA$="S"THEN5010 328 IFA$="R"THEN6000 329 IFA$="↑"THEN6100 330 IFA$="←"THEN6200 331 IFA$="H"THENGOTO6 332 IFA$="Q"THEN9000 333 IFA$="D"THEN11000 334 IFA$="T"THEN12000 335 IFA$="F"THEN13000 339 IFA$="<cursor right>"THENX=X+1+24*(X=23):GOTO250 340 IFA$="<cursor left>"THENX=X-1-24*(X=0):GOTO250 350 IFA$="<cursor down>"THENY=Y+1+21*(Y=20):GOTO250 360 IFA$="<cursor up>"THENY=Y-1-21*(Y=0):GOTO250 370 IFA$=<>" "THEN380 375 POKEP,46:T=C+Y*C3+INT(X/C8):POKET,PEEK(T)ANDH(XANDC7):GOTO250 377 X=X+1+24*(X=23):GOTO250 380 IFA$<>"."THEN390 385 POKEP,81:T=C+Y*C3+INT(X/C8):POKET,PEEK(T)ORM(XANDC7):GOTO377 390 IFA$<>"<clr>"ANDA$="<f7>"THEN375 391 IFA$<>"<clr>"THEN250 400 PRINT"<home>";:FORI=0TO20:PRINT"........................" 410 FORJ=0TO2:POKEC+I*C3+J,Z:NEXT:NEXT 510 GOTO250 600 GETA$:IFA$=" "THEN600 610 RETURN 5010 OPEN2,8,2:PRINT"<clr>":POKE53269,PEEK(53269)AND127 5020 FORI=0TO20:PRINT#2,"BYTE ";:FORJ=0TO2:P=PEEK(C+I*3+J):PRINT#2,"%"; 5030 FORK=0TO7:A$="0":IFPANDM(K)THENA$="1" 5040 PRINT#2,A$;:NEXT:IFJ<>2THENPRINT#2,","; 5050 NEXT:PRINT#2:NEXT: 5060 CLOSE2:PRINTSPC(40) 5062 PRINT"DO YOU WISH TO RETURN TO PROGRAM ? (Y/N)" 5064 GETA$:IFA$=""THEN5064 5066 IFA$="Y"THEN100 5068 IFA$<>"Y"ANDA$<>"N"THEN5064 5070 END 6000 DEF FNI(I)=J:DEF FNJ(J)=20-I 6010 GOTO6500 6100 DEF FNI(I)=20-I:DEF FNJ(J)=J 6110 GOTO6500 6200 DEF FNI(I)=I:DEF FNJ(J)=23-J 6210 GOTO6500 6500 GOSUB6900 6510 FORI=0TO20 6520 FORJ=0TO23 6530 NI=FNI(I):NJ=FNJ(J) 6535 B=PEEK(NP+I*C3+J/C8)ANDM(JANDC7) 6536 IFBTHENP=C+NI*C3+NJ/C8:POKEP,PEEK(P)ORM(NJANDC7) 6540 NEXT:NEXT 6550 GOTO210 6900 NP=C+64 6910 FORI=0TO63 6915 POKENP+I,PEEK(C+I) 6916 POKEC+I,Z:NEXT 6920 RETURN 8001 FORI=0TO39:POKE1024+I,218:NEXT 8002 FORI=1TO24:POKE1024+39+I*40,218:NEXT 8003 FORI=38TO0STEP-1:POKE1024+960+I,218:NEXT 8004 FORI=23TO1STEP-1:POKE1024+I*40,218:NEXT 8005 PRINT"<home>" 8006 PRINTSPC(93):PRINT"SPRITE EDITOR" 8007 PRINTSPC(43):PRINT"KEYCODES:" 8008 RETURN 9000 PRINT"<clr>":PRINTTAB(124):PRINT"SURE YOU WANT TO QUIT? (Y/N)" 9001 GETD$:IFD$<>"Y"ANDD$<>"N"THEN9001 9002 IFD$="Y"THEN SYS64738 9003 IFD$="N"THEN100 11000 PRINT"<clr>";:POKE53269,PEEK(53269)AND127:PRINTSPC(244);:PRINTSPC(240);:INPUT"STARTING LINE #";P 11004 PRINT"<clr>" 11009 FORX=0TO15 11010 IFX= 0THENGOSUB11200 11011 PRINTPEEK(10240+X);:PRINT","; 11015 IFX=15THENPRINT"<cursor left> " 11016 NEXT 11018 PRINTSPC(40) 11019 FORX=16TO31 11020 IFX=16THENGOSUB11200 11021 PRINTPEEK(10240+X);:PRINT","; 11025 IFX=31THENPRINT"<cursor left> " 11026 NEXT 11028 PRINTSPC(40) 11029 FORX=32TO47 11030 IFX=32THENGOSUB11200 11031 PRINTPEEK(10240+X);:PRINT","; 11035 IFX=47THENPRINT"<cursor left> " 11036 NEXT 11038 PRINTSPC(40) 11039 FORX=48TO63 11040 IFX=48THENGOSUB11200 11041 PRINTPEEK(10240+X);:PRINT","; 11045 IFX=63THENPRINT"<cursor left> ":GOTO11250 11046 NEXT 11200 IFX<15THENP=P 11201 IFX>=15ANDX<=31THENP=P+1 11202 IFX>=32ANDX<=47THENP=P+1 11210 IFX>=48ANDX<=63THENP=P+1 11220 PRINT"<cursor left>";:PRINTP;:PRINTSPC(6-LEN(STR$(P)));:PRINT"<cursor left>DATA ";:RETURN 11250 PRINTSPC(240); 11252 PRINT"DO YOU WISH TO RETURN TO PROGRAM ? (Y/N)" 11254 GETA$:IFA$=""THEN11254 11256 IFA$="Y"THEN100 11257 IFA$<>"Y"ANDA$<>"N"THEN11254 11258 END 12000 PRINT"<clr>";:POKE53269,PEEK(53269)AND127:PRINTSPC(244);:PRINTSPC(240);:INPUT"FILE NAME";E$ 12001 OPEN1,8,1,E$ 12004 FORX=0TO63 12006 D=PEEK(10240+X) 12008 PRINT#1,D 12012 NEXT 12014 CLOSE1 12016 PRINT"<clr>":PRINTSPC(240); 12018 PRINT"DO YOU WISH TO RETURN TO PROGRAM ? (Y/N)" 12020 GETA$:IFA$=""THEN12020 12022 IFA$="Y"THEN100 12024 IFA$<>"Y"ANDA$<>"N"THEN12020 12026 END 13000 PRINT"<clr>":POKE53269,PEEK(53269)AND127:PRINTSPC(244);:PRINTSPC(240);:INPUT"NAME OF SPRITE";E$ 13001 PRINT"<clr>":PRINTSPC(244);:PRINTSPC(238);:INPUT"STARTING LOCATION POKE (10240)";SP 13002 OPEN1,8,0,E$ 13004 FORX=0TO63:INPUT#1,D 13006 POKE(SP+X),D:NEXT:CLOSE1 13016 PRINT"<clr>":PRINTSPC(240); 13018 PRINT"DO YOU WISH TO RETURN TO PROGRAM ? (Y/N)" 13020 GETA$:IFA$=""THEN13020 13022 IFA$="Y"THEN100 13024 IFA$<>"Y"ANDA$<>"N"THEN13020 13026 END
$ �"�":��173);:�"SPRITE EDITOR"