|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 5248 (0x1480) Types: TextFile Names: »TEXTTRIX.LST«
└─⟦b07c548bc⟧ Bits:30004188 COMMENU vers. 4.0 └─ ⟦this⟧ »TEXTTRIX.LST«
0010 // Demonstration af de enkelte procedurer i TEXTTRIX. 0020 // 0030 PAGE 0040 skrivskub("T E K S T T R I C K S",12,28) 0050 pause(1.5) 0060 sug("T E K S T T R I C K S",12,28) 0070 pause(0.5) 0080 PRINT AT 4,10: "Du kan bruge følgende procedurer:" 0090 skrivskub("*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*",5,10) 0100 skrivskub("SKRIVSKUB Skriver teksten mens den skubbes ind på skærmen",8,10) 0110 pause(1.5) 0120 PRINT AT 10,10: "SKUB Skubber teksten ud til højre" 0130 pause(1) 0140 skub("SKUB Skubber teksten ud til højre",11,10) 0150 pause(1.5) 0160 PRINT AT 12,10: "SUG Suger teksten ud til venstre" 0170 pause(1) 0180 sug("SUG Suger teksten ud til venstre",13,10) 0190 pause(1.5) 0200 tril("TRIL Teksten triller ned på linien nedenunder. Starter bagfra.",13,10) 0210 pause(1.5) 0220 rul("RUL Ruller teksten fra venstre mod højre. Dukker op i linien under",16,10) 0230 PRINT AT 20,28: "VÆRS'GO.... PRØV SELV" 0240 pause(1.5) 0250 rul("Nu kan du selv prøve.....",19,28) 0260 pause(2) 0270 tril("*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*",19,1) 0280 LOOP 0290 skrivskub("* * * * TEXTTRIX * * * * ",22,20) 0300 skub("* * * * TEXTTRIX * * * * ",22,15) 0310 ENDLOOP 0320 //************************************************************************* 0330 // ** TEXTTRIX ** 0340 // En samling procedurer, der får en tekst til at bevæge sig på skærmen. 0350 // Procedurerne kan bl. a. anvendes i datalæreundervisningen. Eleverne kan 0360 // få til opgave at sammensætte de forskellige procedurer, kombineret 0370 // med andre COMAL sætninger, til et mini "lys(tekst)show". 0380 // Procedurerne kan let omarbejdes og udbygges. 0390 // Procedurerne kan også bruges til at gøre elevernes egne programmer lidt 0400 // festligere, f. eks. i forbindelse med input og print sætninger. 0410 // 0420 // Procedurerne er skrevet i COMAL (80 - Z80) til COMET, men kan meget let 0430 // omarbejdes til andre maskintyper. 0440 // Procedurerne kan let ændres, så der opnås andre virkninger - og der 0450 // kan jo også laves helt nye procedurer, så samlingen udvides. 0460 // En meget simpel ændring er at rette i parameteren i procedurekaldene 0470 // til proceduren PAUSE. 0480 // Hvis du finder på flere procedurer, så vil jeg da gerne have en kopi 0490 // til min samling TEXTTRIX. 0500 // 0510 // Carsten Borre Larsen, Rugkobbelskolen, Aabenraa. 0520 // DATABOKS: DKR019 0530 //************************************************************************* 0540 // 0550 PROC sug(tekst$,y,x) CLOSED 0560 // Proceduren bruges til at slette en tekst. 0570 // Tekstens første karakter har koordinaterne x,y. Teksten suges væk mod venstre. 0580 IMPORT pause 0590 REPEAT 0600 læ:=LEN(tekst$) 0610 tekst$:=tekst$(2:LEN(tekst$)) 0620 PRINT AT y,x: tekst$+SPC$(læ-LEN(tekst$)) 0630 pause(0.05) 0640 UNTIL LEN(tekst$)=0 0650 ENDPROC sug 0660 // 0670 PROC pause(sek) CLOSED 0680 FOR tid:=1 TO sek*700 DO 0690 ENDFOR tid 0700 ENDPROC pause 0710 // 0720 PROC skrivskub(tekst$,y,x) CLOSED 0730 // Bruges til at skrive en tekst med. 0740 // Teksten skubbes ind på skærmen (som en omvendt lysavis) fra venstre mod højre startende ved x,y) 0750 IMPORT pause 0760 t$:="" 0770 læ:=LEN(tekst$)-1 0780 REPEAT 0790 t$:=tekst$(læ:LEN(tekst$)) 0800 PRINT AT y,x: t$+SPC$(LEN(tekst$)) 0810 pause(0.05) 0820 læ:-1 0830 UNTIL læ=0 0840 ENDPROC skrivskub 0850 // 0860 PROC tril(tekst$,y,x) CLOSED 0870 // Proceduren får en tekst til at trille ned på næste linie. 0880 // Teskten begynder at trille bagfra. 0890 // x,y angiver placeringen af tekstens første tegn. 0900 IMPORT pause 0910 tal:=0 0920 yk:=y 0930 PRINT AT yk,x: tekst$ 0940 xk:=x+(LEN(tekst$)-1) 0950 REPEAT 0960 PRINT AT yk,xk: " " 0970 pause(0.02) 0980 PRINT AT yk+1,xk: tekst$(LEN(tekst$)-tal:LEN(tekst$)-tal) 0990 tal:+1 1000 xk:-1 1010 pause(0.05) 1020 UNTIL tal=LEN(tekst$) 1030 ENDPROC tril 1040 // 1050 PROC rulned(tekst$,y,x) CLOSED 1060 PAGE 1070 IMPORT pause,rul 1080 ned:=1 1090 REPEAT 1100 rul(tekst$,ned,x) 1110 ned:+1 1120 UNTIL ned=y 1130 PRINT AT y,x: tekst$ 1140 ENDPROC rulned 1150 // 1160 PROC rul(tekst$,y,x) 1170 // Teksten ruller fra venstre mod højre over skærmen. 1180 // Den forsvinder, men dukker op igen i linien nedenunder. 1190 // x,y angiver den første teksts første tegn. 1200 læ:=LEN(tekst$) 1210 gltekst$:=tekst$ 1220 REPEAT 1230 tekst$:=tekst$(1:(LEN(tekst$)-1)) 1240 tekst2$:=gltekst$(læ-(læ-LEN(tekst$)):læ) 1250 CURSOR y,x 1260 PRINT SPC$(læ-LEN(tekst$))+tekst$ 1270 PRINT AT y+1,x: tekst2$ 1280 pause(0.02) 1290 UNTIL LEN(tekst$)=1 1300 PRINT AT y,x: SPC$(læ+1) 1310 ENDPROC rul 1320 // 1330 PROC skub(tekst$,y,x) CLOSED 1340 // Teksten skubbes væk fra venstre mod højre. X,Y angiver tekstens 1350 // første tegn. 1360 IMPORT pause 1370 læ:=LEN(tekst$) 1380 REPEAT 1390 tekst$:=tekst$(1:(LEN(tekst$)-1)) 1400 PRINT AT y,x: SPC$(læ-LEN(tekst$))+tekst$ 1410 pause(0.02) 1420 UNTIL LEN(tekst$)=1 1430 PRINT AT y,x: SPC$(læ+1) 1440 ENDPROC skub «eof»