Random software
Random game
Random game
Micro-Puzzler Micro-Puzzler Micro-Puzzler
Listing 1
4REM================================
5REMANALOGISSUENO.22MICRO-PUZZLERbyLarryG.Hearin(enhancedforjoystickctl)
6REM================================
7REM
8REM
10DIMFILE$(17),NAM$(17),T$(1),PCS$(120),PLAY$(8),RFLG$(120)
15DIMSTK(15):FORI=5TO15:READA:STK(I)=A:NEXTI:DATA40,255,7,0,255,39,6,0,15,14,255
20GRAPHICS17:POSITION3,2:PRINT#6;"MICRO-PUZZLER":POSITION1,5:PRINT#6;"bylarryg.hearin"
30POKE16,64:POKE53774,64:IFPEEK(764)=28THENFORI=1TO500:NEXTI:POKE764,255:GOTO50
40POSITION1,13:PRINT#6;"PLEASESTANDBY...":GOSUB1030:REMLoadASMroutines
50POKE559,34:GRAPHICS0:POKE16,64:POKE53774,64:TRAP50
51?"":?:?"HEY'JIGSAW'FANS!THISPROGRAMWILL"
52?"LOADANY62SECTORMICRO-PAINTERPICTUREFILE[ORP.D.ARTISTPICTURE"
53?"FILE],DIVIDEITINTO120PIECES,MIXANDROTATETHEM,ANDTHENLETYOU"
54?"TRYTOPUTTHEMBACKTOGETHERAGAIN!":?:?":USINGJOYSTICK(ORTHE"
55?"ARROWKEYS)MOVETHECURSOROVERTHEPIECETOBEMOVEDANDPRESSBUTTON"
56?"(ORRETURN).THEN,MOVECURSORTOTHEOTHERPIECEYOUWISHTOEXCHANGEANDPRESSBUTTON(ORRETURN).":?
57?":PRESSKEY":?:?":PRESSKEY":?:?"PRESSTOCONTINUE...":?
58IFPEEK(53279)<>6THEN58
59?"PLEASEINSERTADISKETTECONTAININGMICRO-PAINTERPICTUREFILESINTOYOURDISKDRIVEANDTHENENTER..."
60?:?"":?:?"OR[]FORDISKDIRECTORY":?:?"?";:CLOSE#2
70IFPEEK(764)=255THEN70
80IFPEEK(764)<>186THEN?CHR$(30);:INPUTFILE$:GOTO110
90POKE764,255:FILE$="D1:*.*":?"ENTERDRIVE#";:INPUTT$:FILE$(2,2)=T$:TRAP31:OPEN#2,6,0,FILE$
100TRAP60:INPUT#2,FILE$:?FILE$:GOTO100
110TRAP60:IFFILE$(2,2)=":"THENSN=3:GOTO130
115IFFILE$(3,3)=":"THENSN=4:GOTO130
120FORI=LEN(FILE$)TO1STEP-1:FILE$(I+2,I+2)=FILE$(I,I):NEXTI:FILE$(1,2)="D:":SN=3
130GRAPHICS24:POKE16,64:POKE53774,64:DL=PEEK(560)+PEEK(561)*256
140SCR=PEEK(DL+4)+PEEK(DL+5)*256:SCR2=SCR-8*1024:SCR2HI=PEEK(DL+5)-32
150POKEDL+3,78:K=DL+6
160SOUND0,K,10,8:IFPEEK(K)=65THEN200
170IFPEEK(K)=15THENPOKEK,14
180IFPEEK(K)=79THENPOKEK,78:K=K+2:KSAV=K
190K=K+1:GOTO160
200SOUND0,0,0,0:CLOSE#1:TRAP50:OPEN#1,6,0,FILE$
201REP=0:INPUT#1,NAM$:IFNAM$(15,17)="062"THEN209
202CLOSE#1:OPEN#1,4,0,FILE$:INPUT#1;NAM$:INPUT#1;PCS$:INPUT#1;RFLG$:REP=1
203FILE$(SN)=NAM$
209CLOSE#1:TRAP50:OPEN#1,4,0,FILE$
210POKE559,0:X=USR(ADR(LODE$)):IFX<>1THEN50
220GET#1,C12:POKE712,C12:GET#1,C8:POKE708,C8:GET#1,C9:POKE709,C9:GET#1,C10:POKE710,C10
230CLOSE#1:POKE559,34
235IFREP=1THEN270
240FORI=1TO120:PCS$(I,I)=CHR$(I):NEXTI
250FORI=1TO120:J=INT(RND(0)*120)+1:T$=PCS$(J):PCS$(J,J)=PCS$(I,I):PCS$(I,I)=T$
260J=INT(RND(0)*100)+1:RFLG$(I,I)=STR$((J>50)*1):NEXTI
270FORC=1TO10:FORR=1TO12:X2=C:Y2=R:K=(R-1)*10+C:Y1=INT((ASC(PCS$(K,K))-1)/10)+1
280X1=ASC(PCS$(K,K))-(Y1-1)*10:SOUND0,RND(0)*10+10,10,8:GOSUB940
290IFRFLG$(K,K)="1"THENADD1=ADD2+15*40+3:X=USR(ADR(ROT$),ADD2,ADD1)
300NEXTR:NEXTC:SOUND0,0,0,0
310INC=32:POKEDL+5,PEEK(DL+5)-32:POKEKSAV,PEEK(KSAV)-32
320PMBASE=INT((SCR2HI-4)/4)*4:POKE54279,PMBASE:PMB=PMBASE*256:TRAP40000
330RESTORE340:FORI=1TO8:READJ:PLAY$(I,I)=CHR$(J):NEXTI
340DATA255,129,129,129,129,129,129,255
350FORI=PMB+512TOPMB+767:POKEI,0:NEXTI:C1=0:POKE623,1
360POKE559,46:POKE53277,3:POKE53248,48:POKE53249,0:XP1=1:YP1=16:POKE53256,XP1:POKE53257,XP1:YP2=YP1
370FORI=1TO8:POKEPMB+511+YP1+I,ASC(PLAY$(I,I)):POKEPMB+639+YP1+I,ASC(PLAY$(I,I)):NEXTI
372IFNOTSTRIG(0)THENPOKE764,12:GOTO380
374IFSTICK(0)=15THEN380
376POKE764,STK(STICK(0)):POKE77,0
380SOUND0,0,0,0:A=PEEK(764):C1=C1+1-(C1=255)*256:POKE704,C1:POKE705,255-C1:I=PEEK(623)
390POKE623,(I=1)*4+(I=4):IFPEEK(53279)=3THEN1020
395IFA=255THEN372
400POKE764,255:POKE623,1
410IFINC<0THEN540
420SOUND0,40,10,8
430IFA<>6THEN450
440XP1=XP1-1:GOSUB970:POKE53248,48+16*(XP1-1)
450IFA<>7THEN470
460XP1=XP1+1:GOSUB970:POKE53248,48+16*(XP1-1)
470IFA<>15THEN500
480YINC=8:GOSUB1000
490GOTO520
500IFA<>14THEN540
510YINC=-8:GOSUB1000
520ADD2=PMB+512+YP1:ADD1=ADD2+YINC:X=USR(ADR(MOV$),ADD1,ADD2,8,1,1):X=USR(ADR(MOV$),ADR(PLAY$),ADD1,8,1,1)
530YP1=YP1+YINC
540IFA<>40THEN570
550X1=XP1:Y1=INT((YP1-16)/8+1.5):ADD1=SCR2+(X1-1)*4+(Y1-1)*640:ADD2=ADD1+15*40+3
560X=USR(ADR(ROT$),ADD1,ADD2):K=(Y1-1)*10+X1:RFLG$(K,K)=STR$(1-(VAL(RFLG$(K,K))=1)*1):GOTO790
570IFA<>39THEN630
580SOUND0,100,10,8
590POKEDL+5,PEEK(DL+5)+INC:POKEKSAV,PEEK(KSAV)+INC:INC=-INC
600IFINC>0THENPOKE53248,48+16*(XP1-1):POKE53249,48+16*(XP2-1)-(XP2=0)*32
610IFINC<0THENPOKE53248,0:POKE53249,0
620GOTO380
630IFA<>12ORINC<0THEN380
640SOUND0,200,10,8
650IFFLG=1THEN680
660FORI=0TO7:POKEPMB+640+YP2+I,0:POKEPMB+640+YP1+I,ASC(PLAY$(I+1,I+1)):NEXTI:YP2=YP1
670XP2=XP1:POKE53249,48+16*(XP2-1):FLG=1:GOTO380
680X1=XP1:Y1=INT((YP1-16)/8+1.5)
690X2=XP2:Y2=INT((YP2-16)/8+1.5):K=(Y1-1)*10+X1:Y1=INT((ASC(PCS$(K,K))-1)/10)+1:X1=ASC(PCS$(K,K))-(Y1-1)*10
700N=K:GOSUB940
710X1=XP2:Y1=INT((YP2-16)/8+1.5)
720X2=XP1:Y2=INT((YP1-16)/8+1.5):K=(Y1-1)*10+X1:Y1=INT((ASC(PCS$(K,K))-1)/10)+1:X1=ASC(PCS$(K,K))-(Y1-1)*10
730AD2=ADD2
740GOSUB940:I=ASC(PCS$(K,K)):PCS$(K,K)=PCS$(N,N):PCS$(N,N)=CHR$(I)
750IFRFLG$(N,N)="1"THENADD1=AD2+15*40+3:X=USR(ADR(ROT$),AD2,ADD1)
760IFRFLG$(K,K)="1"THENADD1=ADD2+15*40+3:X=USR(ADR(ROT$),ADD2,ADD1)
770T$=RFLG$(N,N):RFLG$(N,N)=RFLG$(K,K):RFLG$(K,K)=T$
780XP2=0:POKE53249,0:FLG=0
790X=USR(ADR(CMP$),SCR,SCR2,7680):IFX=1THEN380
800POKE53248,0:POKE53249,0
810ADD1=10:FORI=0TO12:FORJ=0TO8:SOUND0,200-ADD1*I,10,8:ADD1=-ADD1:FORK=1TO2:NEXTK:NEXTJ:NEXTI
820GOSUB1012
860POSITION2,2:PRINT#6;"CONGRATULATIONS":POSITION4,5:PRINT#6;"youdidit!"
870POSITION4,8:PRINT#6;"PRESS":POSITION3,9:PRINT#6;"TORUNAGAIN"
880SOUND0,100,10,8:POKE559,0:POKE560,0:POKE561,PEEK(DL2+19):POKE712,0:POKE708,40:POKE709,202
890POKE710,148:POKE559,34:FORI=1TO75:NEXTI:IFPEEK(764)=28THENSOUND0,0,0,0:GOTO20
900SOUND0,200,10,8:POKE559,0:POKE561,INT(DL/256):POKE560,DL-PEEK(561)*256:POKE712,C12:POKE708,C8
910POKE709,C9:POKE710,C10:POKE559,34:FORI=1TO75:NEXTI:IFPEEK(764)=28THENSOUND0,0,0,0:GOTO20
920GOTO880
930REMMovecard
940ADD1=SCR+(X1-1)*4+(Y1-1)*640:ADD2=SCR2+(X2-1)*4+(Y2-1)*640
950X=USR(ADR(MOV$),ADD1,ADD2,4,16,40)
960RETURN
970IFXP1>10THENXP1=1:RETURN
980IFXP1<1THENXP1=10
990RETURN
1000IFYINC+YP1>104THENYINC=16-YP1:RETURN
1010IFYINC+YP1<16THENYINC=104-YP1
1011RETURN
1012POKE53248,0:POKE53249,0
1013DL2=(INT(SCR2/1024)+1)*1024:FORI=0TO2:POKEDL2+I,112:NEXTI:POKEDL2+3,71
1014POKEDL2+4,PEEK(DL+4):POKEDL2+5,SCR2HI:POKEDL+5,SCR2HI+32:FORI=6TO16:POKEDL2+I,7:NEXTI
1015POKEDL2+17,65:POKEDL2+18,0:POKEDL2+19,INT(DL2/256)
1016POKE87,2:POKE88,PEEK(DL2+4):POKE89,PEEK(DL2+5):POKE559,0:POKE560,0:POKE561,PEEK(DL2+19)
1017FORI=0TO11:POSITION0,I:PRINT#6;"";:NEXTI:POKE559,34
1018RETURN
1020POKE53248,0:POKE53249,0:GRAPHICS0:POKE16,64:POKE53774,64
1021POSITION2,2:?"mustsavetosamediskasscreenfile":?"ENTERSAVEFILENAME"
1022INPUTNAM$:IFLEN(NAM$)=0THENPOKE764,28:GOTO20
1023IFNAM$=FILE$THEN?:?"ERROR-TRYAGAIN":GOTO1021
1024CLOSE#2:TRAP1020:OPEN#2,8,0,NAM$:?#2;FILE$(SN):?#2;PCS$:?#2;RFLG$:CLOSE#2:POKE764,28:GOTO20
1030DIMLODE$(42):RESTORE1090:FORI=1TO42:READJ:LODE$(I,I)=CHR$(J):NEXTI
1040DIMMOV$(69):RESTORE1120:FORI=1TO69:READJ:MOV$(I,I)=CHR$(J):NEXTI
1050DIMCMP$(107):RESTORE1160:FORI=1TO107:READJ:CMP$(I,I)=CHR$(J):NEXTI
1060DIMROT$(126):RESTORE1220:FORI=1TO126:READJ:ROT$(I,I)=CHR$(J):NEXTI
1070RETURN
1080REMLoadscreen
1090DATA216,104,162,16,169,7,157,66,3,169,0,157,72,3,169,30,157,73,3,165,88,157,68,3,165,89,157,69,3,32,86
1100DATA228,189,67,3,133,212,169,0,133,213,96
1110REMMovecard
1120DATA104,104,133,204,104,133,203,104,133,206,104,133,205,104,104,133,207,104,104,133,208,104,104,133
1130DATA209,164,207,136,177,203,145,205,136,16,249,198,208,240,29,165,203,24,101,209,133,203,165,204
1140DATA105,0,133,204,165,205,24,101,209,133,205,165,206,105,0,133,206,24,144,213,96
1150REMComparememory
1160DATA104,104,133,204,104,133,203,104,133,206,104,133,205,104,133,208,104,133,207,201,0,208,8,165,208
1170DATA201,0,240,4,198,208,198,208,160,0,160,0,177,203,209,205,208,48,165,207,201,0,240,31,198,207,165
1180DATA203,24,105,1,133,203,165,204,105,0,133,204,165,205,24,105,1,133,205,165,206,105,0,133,206,24
1190DATA144,213,165,208,201,0,240,14,198,208,24,144,214,169,1,133,212,169,0,133,213,96,169,0,133,212
1200DATA133,213,96
1210REMRotatecard
1220DATA104,104,133,204,104,133,203,104,133,206,104,133,205,169,31,133,209,169,3,133,210,160,0,162,8,177
1230DATA203,133,207,169,0,24,10,70,207,105,0,202,208,248,133,208,162,8,177,205,133,207,169,0,24,10
1240DATA70,207,105,0,202,208,248,145,203,165,208,145,205,165,209,201,0,240,54,198,209,165,210,201,0,240
1250DATA35,169,1,133,207,198,210,165,203,24,101,207,133,203,165,204,105,0,133,204,165,205,56,229,207,133
1260DATA205,165,206,233,0,133,206,24,144,165,169,37,133,207,169,3,133,210,24,144,216,96	

This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page, please contact me immediatelly so I can remove it!