8-Bit Software Online Conversion

Mode 7 Editor - Listing

10 REM "DIATEXT", teksten als autom. diaprojektie en animaties. 20 REM (c) Ch.W.Brederode, LISSE, --- VERSIE 2, aug.1986 25 REM This is Public Domain. 30 MODE7:HIMEM=&3F00:PROCinit 35 *LOAD NAME 40 *FX225,144 50 ON ERROR GOTO 60 60 PROCmenu 70 IF Z%=1 THEN Z%=0:GOTO 90 80 REPEAT PROCtik:PROCzetweg:UNTIL K% =L% 90 REPEAT PROClaatzien UNTIL FALSE 100 END 110 : 120 DEFPROCinit 130 M%=&4000:K%=0:L%=!&3FF2:T%=!&3FF6: Z%=0 140 IF L%>15 THEN L%=15 150 IF T%>10000 THEN T%=100 160 IF POS=39 AND VPOS=24 THEN VDU7:EN DPROC 170 AANTAL=&70:NAAR=&72:VAN=&74:SCHUIF =HIMEM 180 FOR I%=0TO2STEP2:P%=SCHUIF 190 [OPTI%:LDY #0 200 .VOLGENDE:LDX AANTAL+1:BEQ KLAAR:D EX:STX AANTAL+1 210 JSR VERPLAATS:JMP VOLGENDE 220 .VERPLAATS:LDA (VAN),Y:STA (NAAR), Y:INY:BNE VERPLAATS 230 INC VAN+1:INC NAAR+1:RTS 240 .KLAAR:RTS:]NEXT 250 ENDPROC 260 : 270 DEF PROCmenu:LOCAL Q,T 280 CLS:PRINTTAB(0,3)"M E N U"''' 290 PRINT" 1 = edit"''" 2 = show"''" 3 = corrections"' 300 PRINT" 4 = copy screen"''" 5 = l oad/save"''" 6 = end"'''" YOUR CHOICE? ";:Q=GET-48 310 IFQ<1 OR Q>6 THEN 280 320 ON Q GOTO 370,330,340,360,350,365 330 Z%=1:ENDPROC 340 PROCcorr:GOTO280 350 PROCcassette 360 PROCcopy:GOTO 280 365 CLS:END 370 CLS:INPUTTAB(0,5)"How many screens do you want to edit (max. 15) "L% 380 IF L%>15 OR L%<2 THEN 370 390 !&3FF2=L% 400 INPUTTAB(0,9)"Delay in seconds (max. 100) "T 410 T%=100*T:IFT%>10000THEN 370 420 !&3FF6=T% 430 PRINTTAB(0,12)"CTRL/D GRAPHICS CUR SOR"'"CTRL/C TEXT CURSOR" 440 PRINTTAB(0,15)"Edit the screens an d press @ after"'"EACH screen finished" 450 PRINTTAB(0,19)"PRESS SPACEBAR";:Q= GET:CLS 460 ENDPROC 470 : 480 DEF PROCtik:LOCAL Q 490 VDU23,1,1;0;0;0; 500 *FX4,1 510 F%=0:PRINT'' 520 Q=GET:IF Q=64 THEN ENDPROC 530 IF Q=3 THEN S%=0 540 IF Q=4 THEN S%=1 550 IF Q=35 THEN PROCpatroon:GOTO 520 560 IF Q=128 THEN VDU 255:GOTO 520 570 IF Q=152 THEN VDU 154:GOTO 520 580 IF Q=144 THEN VDU 158:GOTO 520 590 IF Q<>13 THEN 610 600 IF VPOS<24 THEN VDU10,13:GOTO 520 ELSE VDU13:GOTO 520 610 IF Q<>136 THEN 630 620 IF VPOS=0 AND POS=0 THEN 520 ELSE VDU8:GOTO 520 630 IF Q<>137 THEN 650 640 IF VPOS>23 AND POS>38 THEN 520 ELS E VDU9:GOTO 520 650 IF Q<>138 THEN 670 660 IF VPOS=24 THEN 520 ELSE VDU10:GOT O 520 670 IF Q<>139 THEN 690 680 IF VPOS=0 THEN 520 ELSE VDU11:GOTO 520 690 IF Q=91 THEN VDU 140:GOTO 520 700 IF Q=92 THEN VDU 157:GOTO 520 710 IF Q=93 THEN VDU 156:GOTO 520 720 IF Q=94 THEN VDU 141:GOTO 520 730 IF POS=39 AND VPOS=24 THEN?&7FE7=Q :GOTO520 740 VDUQ 750 IF S% THEN VDU8 760 GOTO520 770 ENDPROC 780 : 790 DEF PROCzetweg 800 !AANTAL=&400:!NAAR=M%+K%*&400:!VAN =&7C00 810 CALL SCHUIF 820 K%=K%+1 830 CLS:ENDPROC 840 : 850 DEF PROClaatzien 860 M%=&4000:K%=0:VDU23,1,0;0;0;0; 870 L%=!&3FF2:T%=!&3FF6 880 REPEAT 890 !AANTAL=&400:!NAAR=&7C00:!VAN=M%+K %*&400 900 CALL SCHUIF 910 K%=K%+1 920 O%=(O%+1)MOD50:IF O%=0 THEN H%=(H% +1)MOD2 930 REM regel 911 en '*H%' in regel 92 0 zijn toevoegingen voor tempowisseling 940 TIME=0:REPEATUNTILTIME>T%*H% 950 UNTIL K%=L%:GOTO 860 960 ENDPROC 970 : 980 DEF PROCcorr 990 CLS:PRINT''''"SCREEN NUMBER? ";:IN PUT""C% 1000 IF C%>L% THEN990 1010 !AANTAL=&400:!NAAR=&7C00:!VAN=M%+( C%-1)*&400 1020 CALL SCHUIF 1030 PROCtik 1040 !AANTAL=&400:!NAAR=M%+(C%-1)*&400: !VAN=&7C00 1050 CALL SCHUIF 1060 CLS:ENDPROC 1070 : 1080 DEF PROCpatroon:LOCAL Q 1090 IFPOS=39ANDVPOS=24 THEN ENDPROC 1100 E%=160:Q=GET:IF Q=70 THEN VDU 136: ENDPROC 1110 IFQ=102 THEN VDU 137:ENDPROC 1120 IFQ=82 THEN VDU 159:ENDPROC 1130 IFQ<>48THEN E%=E%+1:VDUE%,8 1140 Q=GET:IFQ<>48THEN E%=E%+2:VDUE%,8 1150 Q=GET:IFQ<>48THEN E%=E%+4:VDUE%,8 1160 Q=GET:IFQ<>48THEN E%=E%+8:VDUE%,8 1170 Q=GET:IFQ<>48THENE%=E%+16:VDUE%,8 1180 Q=GET:IFQ<>48THENE%=E%+64:VDUE%,8 1190 ENDPROC 1200 : 1210 DEF PROCcopy:LOCAL V,N,Q,R,po1,po2 ,vpo1,vpo2,PV,PN,ho,ve 1220 CLS:INPUT"Make copy from screen nu mber "V:IF V>L%THEN1220 1230 INPUT "move to screen number "N:I F N>L%THEN1220 1240 PRINT"whole screen or part of it ( W/P) ";:Q=GET AND&DF:PRINTCHR$(Q) 1250 IF Q=80 THEN 1280 1260 !AANTAL=&400:!NAAR=M%+(N-1)*&400:! VAN=M%+(V-1)*&400 1270 CALL SCHUIF:ENDPROC 1280 PRINT'"movements wanted?(Y/N) ";:Q =GETAND&DF:VDUQ:IFQ<>89THEN1310 1290 INPUT''"HOW MANY POSITIONS HOR.? " ho 1300 INPUT'"HOW MANY POSITIONS VERT? "v e 1310 PRINT'" show with the cursor and RETURN"''" the LEFTHAND UPPER CORNER and"' 1320 PRINT" the RIGHTHAND LOWER CORNE R":TIME=0:REPEAT UNTILTIME>200 1330 !AANTAL=&400:!NAAR=&7C00:!VAN=M%+( V-1)*&400:CALL SCHUIF 1340 VDU23,1,1;0;0;0;: *FX4,0 1350 Q=GET:po1=POS:vpo1=VPOS 1360 Q=GET:po2=POS:vpo2=VPOS 1370 PV=M%+(V-1)*&400:PN=M%+(N-1)*&400 1380 FOR Q=vpo1 TO vpo2: FOR R=po1 TO p o2 1390 ?(PN+40*(ve+Q)+R+ho)=?(PV+(40*Q)+R ) 1400 NEXT:NEXT 1410 ENDPROC 1420 : 1430 DEF PROCcassette:*FX4,0 1440 CLS:PRINTTAB(0,5)"Commands to use are:"'' 1450 PRINT" *LOAD <NAME> " 1460 PRINT" *SAVE <NAME> 3F00 ";รท(M%+L% *&400) 1470 PRINT''"After this type RUN and pr ess RETURN"''