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"''