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!
|
|
|
-
Entry name:Micro-Puzzler
-
Category:Games
-
Publisher/Developer:ANALOG Computing, BELLCOM - Public Domain Library
-
Year:1984
Listing 1
4REM================================ 5REMANALOGISSUENO.22MICRO-PUZZLERbyLarryG.Hearin(enhancedforjoystickctl) 6REM================================ 7REM 8REM 10DIMFILE$(17),NAM$(17),T$(1),PCS$(120),PLAY$(8),RFLG$(120) 15DIMSTK(15):FORI=5TO15:READA:STK(I)=A:NEXTI:DATA40,255,7,0,255,39,6,0,15,14,255 20GRAPHICS17:POSITION3,2:PRINT#6;"MICRO-PUZZLER":POSITION1,5:PRINT#6;"bylarryg.hearin" 30POKE16,64:POKE53774,64:IFPEEK(764)=28THENFORI=1TO500:NEXTI:POKE764,255:GOTO50 40POSITION1,13:PRINT#6;"PLEASESTANDBY...":GOSUB1030:REMLoadASMroutines 50POKE559,34:GRAPHICS0:POKE16,64:POKE53774,64:TRAP50 51?"":?:?"HEY'JIGSAW'FANS!THISPROGRAMWILL" 52?"LOADANY62SECTORMICRO-PAINTERPICTUREFILE[ORP.D.ARTISTPICTURE" 53?"FILE],DIVIDEITINTO120PIECES,MIXANDROTATETHEM,ANDTHENLETYOU" 54?"TRYTOPUTTHEMBACKTOGETHERAGAIN!":?:?":USINGJOYSTICK(ORTHE" 55?"ARROWKEYS)MOVETHECURSOROVERTHEPIECETOBEMOVEDANDPRESSBUTTON" 56?"(ORRETURN).THEN,MOVECURSORTOTHEOTHERPIECEYOUWISHTOEXCHANGEANDPRESSBUTTON(ORRETURN).":? 57?":PRESSKEY":?:?":PRESSKEY":?:?"PRESSTOCONTINUE...":? 58IFPEEK(53279)<>6THEN58 59?"PLEASEINSERTADISKETTECONTAININGMICRO-PAINTERPICTUREFILESINTOYOURDISKDRIVEANDTHENENTER..." 60?:?"":?:?"OR[]FORDISKDIRECTORY":?:?"?";:CLOSE#2 70IFPEEK(764)=255THEN70 80IFPEEK(764)<>186THEN?CHR$(30);:INPUTFILE$:GOTO110 90POKE764,255:FILE$="D1:*.*":?"ENTERDRIVE#";:INPUTT$:FILE$(2,2)=T$:TRAP31:OPEN#2,6,0,FILE$ 100TRAP60:INPUT#2,FILE$:?FILE$:GOTO100 110TRAP60:IFFILE$(2,2)=":"THENSN=3:GOTO130 115IFFILE$(3,3)=":"THENSN=4:GOTO130 120FORI=LEN(FILE$)TO1STEP-1:FILE$(I+2,I+2)=FILE$(I,I):NEXTI:FILE$(1,2)="D:":SN=3 130GRAPHICS24:POKE16,64:POKE53774,64:DL=PEEK(560)+PEEK(561)*256 140SCR=PEEK(DL+4)+PEEK(DL+5)*256:SCR2=SCR-8*1024:SCR2HI=PEEK(DL+5)-32 150POKEDL+3,78:K=DL+6 160SOUND0,K,10,8:IFPEEK(K)=65THEN200 170IFPEEK(K)=15THENPOKEK,14 180IFPEEK(K)=79THENPOKEK,78:K=K+2:KSAV=K 190K=K+1:GOTO160 200SOUND0,0,0,0:CLOSE#1:TRAP50:OPEN#1,6,0,FILE$ 201REP=0:INPUT#1,NAM$:IFNAM$(15,17)="062"THEN209 202CLOSE#1:OPEN#1,4,0,FILE$:INPUT#1;NAM$:INPUT#1;PCS$:INPUT#1;RFLG$:REP=1 203FILE$(SN)=NAM$ 209CLOSE#1:TRAP50:OPEN#1,4,0,FILE$ 210POKE559,0:X=USR(ADR(LODE$)):IFX<>1THEN50 220GET#1,C12:POKE712,C12:GET#1,C8:POKE708,C8:GET#1,C9:POKE709,C9:GET#1,C10:POKE710,C10 230CLOSE#1:POKE559,34 235IFREP=1THEN270 240FORI=1TO120:PCS$(I,I)=CHR$(I):NEXTI 250FORI=1TO120:J=INT(RND(0)*120)+1:T$=PCS$(J):PCS$(J,J)=PCS$(I,I):PCS$(I,I)=T$ 260J=INT(RND(0)*100)+1:RFLG$(I,I)=STR$((J>50)*1):NEXTI 270FORC=1TO10:FORR=1TO12:X2=C:Y2=R:K=(R-1)*10+C:Y1=INT((ASC(PCS$(K,K))-1)/10)+1 280X1=ASC(PCS$(K,K))-(Y1-1)*10:SOUND0,RND(0)*10+10,10,8:GOSUB940 290IFRFLG$(K,K)="1"THENADD1=ADD2+15*40+3:X=USR(ADR(ROT$),ADD2,ADD1) 300NEXTR:NEXTC:SOUND0,0,0,0 310INC=32:POKEDL+5,PEEK(DL+5)-32:POKEKSAV,PEEK(KSAV)-32 320PMBASE=INT((SCR2HI-4)/4)*4:POKE54279,PMBASE:PMB=PMBASE*256:TRAP40000 330RESTORE340:FORI=1TO8:READJ:PLAY$(I,I)=CHR$(J):NEXTI 340DATA255,129,129,129,129,129,129,255 350FORI=PMB+512TOPMB+767:POKEI,0:NEXTI:C1=0:POKE623,1 360POKE559,46:POKE53277,3:POKE53248,48:POKE53249,0:XP1=1:YP1=16:POKE53256,XP1:POKE53257,XP1:YP2=YP1 370FORI=1TO8:POKEPMB+511+YP1+I,ASC(PLAY$(I,I)):POKEPMB+639+YP1+I,ASC(PLAY$(I,I)):NEXTI 372IFNOTSTRIG(0)THENPOKE764,12:GOTO380 374IFSTICK(0)=15THEN380 376POKE764,STK(STICK(0)):POKE77,0 380SOUND0,0,0,0:A=PEEK(764):C1=C1+1-(C1=255)*256:POKE704,C1:POKE705,255-C1:I=PEEK(623) 390POKE623,(I=1)*4+(I=4):IFPEEK(53279)=3THEN1020 395IFA=255THEN372 400POKE764,255:POKE623,1 410IFINC<0THEN540 420SOUND0,40,10,8 430IFA<>6THEN450 440XP1=XP1-1:GOSUB970:POKE53248,48+16*(XP1-1) 450IFA<>7THEN470 460XP1=XP1+1:GOSUB970:POKE53248,48+16*(XP1-1) 470IFA<>15THEN500 480YINC=8:GOSUB1000 490GOTO520 500IFA<>14THEN540 510YINC=-8:GOSUB1000 520ADD2=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) 530YP1=YP1+YINC 540IFA<>40THEN570 550X1=XP1:Y1=INT((YP1-16)/8+1.5):ADD1=SCR2+(X1-1)*4+(Y1-1)*640:ADD2=ADD1+15*40+3 560X=USR(ADR(ROT$),ADD1,ADD2):K=(Y1-1)*10+X1:RFLG$(K,K)=STR$(1-(VAL(RFLG$(K,K))=1)*1):GOTO790 570IFA<>39THEN630 580SOUND0,100,10,8 590POKEDL+5,PEEK(DL+5)+INC:POKEKSAV,PEEK(KSAV)+INC:INC=-INC 600IFINC>0THENPOKE53248,48+16*(XP1-1):POKE53249,48+16*(XP2-1)-(XP2=0)*32 610IFINC<0THENPOKE53248,0:POKE53249,0 620GOTO380 630IFA<>12ORINC<0THEN380 640SOUND0,200,10,8 650IFFLG=1THEN680 660FORI=0TO7:POKEPMB+640+YP2+I,0:POKEPMB+640+YP1+I,ASC(PLAY$(I+1,I+1)):NEXTI:YP2=YP1 670XP2=XP1:POKE53249,48+16*(XP2-1):FLG=1:GOTO380 680X1=XP1:Y1=INT((YP1-16)/8+1.5) 690X2=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 700N=K:GOSUB940 710X1=XP2:Y1=INT((YP2-16)/8+1.5) 720X2=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 730AD2=ADD2 740GOSUB940:I=ASC(PCS$(K,K)):PCS$(K,K)=PCS$(N,N):PCS$(N,N)=CHR$(I) 750IFRFLG$(N,N)="1"THENADD1=AD2+15*40+3:X=USR(ADR(ROT$),AD2,ADD1) 760IFRFLG$(K,K)="1"THENADD1=ADD2+15*40+3:X=USR(ADR(ROT$),ADD2,ADD1) 770T$=RFLG$(N,N):RFLG$(N,N)=RFLG$(K,K):RFLG$(K,K)=T$ 780XP2=0:POKE53249,0:FLG=0 790X=USR(ADR(CMP$),SCR,SCR2,7680):IFX=1THEN380 800POKE53248,0:POKE53249,0 810ADD1=10:FORI=0TO12:FORJ=0TO8:SOUND0,200-ADD1*I,10,8:ADD1=-ADD1:FORK=1TO2:NEXTK:NEXTJ:NEXTI 820GOSUB1012 860POSITION2,2:PRINT#6;"CONGRATULATIONS":POSITION4,5:PRINT#6;"youdidit!" 870POSITION4,8:PRINT#6;"PRESS":POSITION3,9:PRINT#6;"TORUNAGAIN" 880SOUND0,100,10,8:POKE559,0:POKE560,0:POKE561,PEEK(DL2+19):POKE712,0:POKE708,40:POKE709,202 890POKE710,148:POKE559,34:FORI=1TO75:NEXTI:IFPEEK(764)=28THENSOUND0,0,0,0:GOTO20 900SOUND0,200,10,8:POKE559,0:POKE561,INT(DL/256):POKE560,DL-PEEK(561)*256:POKE712,C12:POKE708,C8 910POKE709,C9:POKE710,C10:POKE559,34:FORI=1TO75:NEXTI:IFPEEK(764)=28THENSOUND0,0,0,0:GOTO20 920GOTO880 930REMMovecard 940ADD1=SCR+(X1-1)*4+(Y1-1)*640:ADD2=SCR2+(X2-1)*4+(Y2-1)*640 950X=USR(ADR(MOV$),ADD1,ADD2,4,16,40) 960RETURN 970IFXP1>10THENXP1=1:RETURN 980IFXP1<1THENXP1=10 990RETURN 1000IFYINC+YP1>104THENYINC=16-YP1:RETURN 1010IFYINC+YP1<16THENYINC=104-YP1 1011RETURN 1012POKE53248,0:POKE53249,0 1013DL2=(INT(SCR2/1024)+1)*1024:FORI=0TO2:POKEDL2+I,112:NEXTI:POKEDL2+3,71 1014POKEDL2+4,PEEK(DL+4):POKEDL2+5,SCR2HI:POKEDL+5,SCR2HI+32:FORI=6TO16:POKEDL2+I,7:NEXTI 1015POKEDL2+17,65:POKEDL2+18,0:POKEDL2+19,INT(DL2/256) 1016POKE87,2:POKE88,PEEK(DL2+4):POKE89,PEEK(DL2+5):POKE559,0:POKE560,0:POKE561,PEEK(DL2+19) 1017FORI=0TO11:POSITION0,I:PRINT#6;"";:NEXTI:POKE559,34 1018RETURN 1020POKE53248,0:POKE53249,0:GRAPHICS0:POKE16,64:POKE53774,64 1021POSITION2,2:?"mustsavetosamediskasscreenfile":?"ENTERSAVEFILENAME" 1022INPUTNAM$:IFLEN(NAM$)=0THENPOKE764,28:GOTO20 1023IFNAM$=FILE$THEN?:?"ERROR-TRYAGAIN":GOTO1021 1024CLOSE#2:TRAP1020:OPEN#2,8,0,NAM$:?#2;FILE$(SN):?#2;PCS$:?#2;RFLG$:CLOSE#2:POKE764,28:GOTO20 1030DIMLODE$(42):RESTORE1090:FORI=1TO42:READJ:LODE$(I,I)=CHR$(J):NEXTI 1040DIMMOV$(69):RESTORE1120:FORI=1TO69:READJ:MOV$(I,I)=CHR$(J):NEXTI 1050DIMCMP$(107):RESTORE1160:FORI=1TO107:READJ:CMP$(I,I)=CHR$(J):NEXTI 1060DIMROT$(126):RESTORE1220:FORI=1TO126:READJ:ROT$(I,I)=CHR$(J):NEXTI 1070RETURN 1080REMLoadscreen 1090DATA216,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 1100DATA228,189,67,3,133,212,169,0,133,213,96 1110REMMovecard 1120DATA104,104,133,204,104,133,203,104,133,206,104,133,205,104,104,133,207,104,104,133,208,104,104,133 1130DATA209,164,207,136,177,203,145,205,136,16,249,198,208,240,29,165,203,24,101,209,133,203,165,204 1140DATA105,0,133,204,165,205,24,101,209,133,205,165,206,105,0,133,206,24,144,213,96 1150REMComparememory 1160DATA104,104,133,204,104,133,203,104,133,206,104,133,205,104,133,208,104,133,207,201,0,208,8,165,208 1170DATA201,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 1180DATA203,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 1190DATA144,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 1200DATA133,213,96 1210REMRotatecard 1220DATA104,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 1230DATA203,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 1240DATA70,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 1250DATA35,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 1260DATA205,165,206,233,0,133,206,24,144,165,169,37,133,207,169,3,133,210,24,144,216,96
References
Listing downloads
Downloads
Copyright holder
