10 REM MEGAMORPHS V2.0 BY TOM ZDANOWICZ 80 REM COPYRIGHT 1993 - COMPUTE PUBLICATIONS INTL LTD - ALL RIGHTS RESERVED 85 IFA=0THENA=1:LOAD"MORPH.ML",8,1 94 OPEN15,8,15 95 PRINT"[147]":POKE53280,0:POKE53281,0:PRINT" PLEASE INSERT WORK DISK WITH IMAGES" 96 PRINT" AND PRESS A KEY TO CONTINUE" 97 GETA$:IFA$=""THEN97 100 PRINT"[147]":POKE53280,0:POKE53281,0 110 PRINT:PRINT:PRINTSPC(14)"MEGAMORPHS" 120 PRINT SPC(14)"[183][183][183][183][183][183][183][183][183][183]":PRINT:PRINT 130 PRINT "[159]1. LOAD KEYFRAMES & MORPH (BUILDS S/S)":PRINT 140 PRINT "2. MORPH EXISTING S/S POINTS FILES":PRINT 155 PRINT "3. LOOK":PRINT 157 PRINT "5. EXIT" 160 GET C$:C=VAL(C$):IFC<1ORC>5THEN 160 170 ON C GOTO 200,190,6021,180 180 SYS64738 190 GOSUB 9000:GOTO8020 200 REM *SET BITMAP AND LOAD KEYFRAMES* 204 PRINT"IMAGE FILE TYPE (P[146]RG/S[146]EQ)":GETFT$ 205 IFFT$<>"S"ANDFT$<>"P"THENPRINT"[145][145]":GOTO204 206 GOSUB9000 230 REM *******LOAD KEYFRAME1******* 241 MB=N1*320:NM$="0:1PAG,"+FT$+",R" 250 GOSUB6040:OPEN5,8,5,"0:STARTPOINTS,S,W":YMAX=N1*8:GOSUB300:L1=CT 252 MB=N2*320:NM$="0:2PAG,"+FT$+",R" 253 GOSUB6040:OPEN5,8,5,"0:STOPPOINTS,S,W":YMAX=N2*8:GOSUB 300:L2=CT 260 GOSUB 7031:GOTO8026 297 REM *** MAP IMAGE TO DISK ***** 300 POKE53280,2:CT=0:FORY=0 TOYMAX:FORX=0TO319 301 HB=INT(X/256):LB=X-(256*HB) 310 POKE 840,LB:POKE841,HB:POKE842,Y:POKE 766,0:SYS49271 320 IF PEEK(767)=0 THEN 340 330 PRINT#5,X:PRINT#5,Y:CT=CT+2 340 NEXT:NEXT:CLOSE5:RETURN 6010 REM ***VIEW IMAGE FILE***** 6021 GOSUB6025:GOTO6105 6025 PRINT"IMAGE FILE TYPE (P[146]RG/S[146]EQ)":GETFT$ 6026 IFFT$<>"S"ANDFT$<>"P"THENPRINT"[145][145]":GOTO6025 6030 PRINT"[147]":INPUT"FILENAME TO VIEW";N$:NM$="0:"+N$+","+FT$+",R" 6031 IFFT$="P"THEN6055 6035 INPUT"NUMBER OF ROWS TO VIEW/SAVE";NR:MB=NR*320 6040 SYS49161:POKE680,12:SYS49220 6050 BC=PEEK(53280):POKE53280,6:OPEN5,8,5,NM$:GOTO6057 6055 SYS49161:POKE680,12:SYS49220:POKE147,0:SYS57812N$,8,1:SYS62631:GOTO6105 6057 AD=8192:NB=0 6060 GET#5,X$ 6070 IFX$=""THENX$=CHR$(0) 6075 X=ASC(X$):POKEAD,X:AD=AD+1:NB=NB+1:IFNB=MBTHEN6100 6076 IF ST=64THEN6100 6080 GOTO6060 6100 CLOSE5:POKE53280,BC:RETURN 6105 GETA$:IFA$=""THEN6105 6107 REM ***RECOVER TEXT MODE****** 6108 REM ************************** 6110 POKE53265,PEEK(53265)AND223:POKE53272,(PEEK(53272)AND240)OR4:GOTO100 7010 REM ** REMAP AND EQUALIZE **** 7020 REM * STARTPOINTS/STOPPOINTS * 7031 POKE53280,7 7040 IFL164THEN8022 8023 PRINT"[156]NUMBER OF PIXELS IN S/S FILES=";INT(L1/2) 8024 PRINT:PRINT" PRESS A KEY TO CONTINUE[146][159]":CLOSE5 8025 GETA$:IFA$=""THEN8025 8026 REM ***MAIN MENU OPTION 1 HERE** 8027 POKE53280,5 8030 SS=1/NS 8040 FORI=0TONS:SYS49161:POKE680,12:SYS49220:IA=I*SS 8045 OPEN5,8,5,"0:STARTPOINTS,S,R":OPEN6,8,6,"0:STOPPOINTS,S,R" 8050 FORJ=0TOL1STEP2 8055 INPUT#5,X:INPUT#5,Y:INPUT#6,X2:INPUT#6,Y2 8060 X1=X+IA*(X2-X):Y1=Y+IA*(Y2-Y) 8070 HB=INT(X1/256):LB=X1-(256*HB) 8080 POKE840,LB:POKE841,HB:POKE842,Y1:POKE766,1:SYS49271 8090 NEXT:CLOSE5:CLOSE6 8091 REM ***BUILD SLIDE FILENAME** 8092 IFI=SI THEN GOSUB 8700 8093 GOSUB 8500 8105 BC=PEEK(53280):POKE53280,14:SYS49612:POKE53280,BC:NEXT 8111 REM ****RECOVER TEXT MODE**** 8200 POKE53265,PEEK(53265)AND223:POKE53272,(PEEK(53272)AND240)OR4:PRINT"[147]" 8201 PRINT:PRINT:PRINT" [159]MORPH FINISHED" 8202 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT" PRESS ANY KEY[146]" 8240 GETA$:IFA$<>""THEN100 8242 POKE54296,21:POKE54277,9:POKE54278,0:POKE54273,48:POKE54276,32:POKE54276,33 8244 POKE53280,253-(PEEK(53280)+1):FORD=1TO300:NEXT:GOTO8240 8500 SN=I+1+OS:S$=STR$(SN) 8510 IFSN>9THEN8540 8520 S$=MID$(S$,2,1):S$="0"+S$ 8530 GOTO 8550 8540 S$=MID$(S$,2,2) 8550 SN$="SLIDE"+S$ 8560 MM=757:FORP=1TO7:K$=MID$(SN$,P,1):POKEMM,ASC(K$):MM=MM+1:NEXT 8570 IFN1>N2THENMB=N1*320 8580 IFN2>N1THENMB=N2*320 8590 IFN1=N2THENMB=N1*320 8600 LA=8192+MB:LH=INT(LA/256):LL=LA-(256*LH):POKE755,LL:POKE756,LH:RETURN 8700 I1=I:O1=OS:OS=0 8710 FORI=SITOEI:GOSUB8500 8720 BC=PEEK(53280):POKE53280,14:SYS49612:POKE53280,BC:NEXT 8730 I=I1:OS=O1:RETURN 9000 INPUT"#ROWS IN IMAG1(1-25)";N1:IFN1<1ORN1>25THENPRINT"[145][145]":GOTO9000 9005 INPUT"#ROWS IN IMAG2(1-25)";N2:IFN2<1ORN2>25THENPRINT"[145][145]":GOTO9000 9010 INPUT"NUMBER OF FRAMES(2-99)";NS:IFNS<2ORNS>99THENPRINT"[145][145]":GOTO9010 9012 NS=NS-1 9015 OS=0:INPUT"FRAME OFFSET";OS$:IFVAL(OS$)>99OROS<0THENPRINT"[145][145]":GOTO9015 9016 OS=VAL(OS$):RETURN 10060 GOTO100