BG 0 PAL 1 TOUCHSCREEN PALETTE 0, 0,,, FILES GLOBAL CHARSFILE, N, SAVECOUNT ' IF YOU WANT TO CHANGE WHERE 'THE ALIENS WILL BE SAVED ITS HERE CHARSFILE=2 SAVECOUNT=0 N=0 GOSUB DRAWALIENS DO IF TAP THEN CX=TOUCH.X\8 CY=TOUCH.Y\8 IF CELL.C(CX,CY)<>0 THEN CALL CHARSAVE(CELL.C(CX,CY)) ELSE TEXT 0,0, " " GOSUB DRAWALIENS END IF END IF WAIT VBL LOOP DRAWALIENS: NUMC=1 RANDOMIZE TIMER FOR I=1 TO 9 FOR J=0 TO 6 CALL CLEARCHAR(NUMC) FOR PX=0 TO 3 FOR PY=0 TO 7 IF RND(1)=0 THEN C= RND(2)+1 CALL DRAWPX(NUMC, PX, PY, C) CALL DRAWPX(NUMC, 7-PX, PY, C) END IF NEXT PY NEXT PX CELL I*2-1, (J*2)*2+1, NUMC TINT I*2-1, (J*2)*2+1 PAL RND(4) INC NUMC NEXT J NEXT I RETURN SUB DRAWALIEN(NUMC, SEED, SPRI, X, Y) RANDOMIZE SEED CALL CLEARCHAR(NUMC) FOR PX=0 TO 3 FOR PY=0 TO 7 IF RND(1)=0 THEN C= RND(2)+1 CALL DRAWPX(NUMC, PX, PY, C) CALL DRAWPX(NUMC, 7-PX, PY, C) END IF NEXT PY NEXT PX SPRITE SPRI, X, Y, NUMC SPRITE SPRI PAL RND(4) END SUB SUB DRAWPX(NUMC, PX, PY, COL) 'DRAWS AN INDIVIDUAL PIXEL ONTO CHAR NUMC ADDR = $8000+16*NUMC+(7-PY) B0 = COL MOD 2 B1 = COL \ 2 IF B0=1 THEN BYT = PEEK(ADDR) OR 2^INT(7-PX) POKE ADDR, BYT ELSE BYT = PEEK(ADDR) AND (%11111111 - 2^INT(7-PX)) POKE ADDR, BYT END IF IF B1=1 THEN BYT = PEEK(ADDR+8) OR 2^INT(7-PX) POKE ADDR+8, BYT ELSE BYT = PEEK(ADDR+8) AND (%11111111 - 2^INT(7-PX)) POKE ADDR+8, BYT END IF END SUB SUB CLEARCHAR(NUMC) 'RESET ALL PIXELS OF ONE CHAR FOR I=0 TO 7 ADDR = $8000+16*NUMC+I POKE ADDR, %00000000 POKE ADDR+8, %00000000 NEXT I END SUB SUB CHARSAVE(NUMC) COPY $8000+NUMC*16, 16 TO $A000+16*SAVECOUNT+16 INC SAVECOUNT F$=FILE$(CHARSFILE) SAVE CHARSFILE,F$,$A000, SAVECOUNT*16+16 TEXT 0,0, "SAVED "+STR$(NUMC)+" TO "+STR$(SAVECOUNT) END SUB #1:MAIN PALETTES 053F2F3A00383402003C0C38003F3C2D 003F2A15003F2A15003F2A15003F2A15