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:ENDPROC 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:DEX: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 = load/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 CURSOR"'"CTRL/C TEXT CURSOR" 440 PRINTTAB(0,15)"Edit the screens and 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 ELSE VDU9:GOTO 520 650 IF Q<>138 THEN 670 660 IF VPOS=24 THEN 520 ELSE VDU10:GOTO 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 920 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? ";:INPUT""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 number "V:IF V>L%THEN1220 1230 INPUT "move to screen number "N:IF 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? "ve 1310 PRINT'" show with the cursor and RETURN"''" the LEFTHAND UPPER CORNER and"' 1320 PRINT" the RIGHTHAND LOWER CORNER":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 po2 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 " 1460 PRINT" *SAVE 3F00 ";~(M%+L%*&400) 1470 PRINT''"After this type RUN and press RETURN"''