|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 7584 (0x1da0) Notes: Mikados TextFile, Mikados_K Names: »DEMO2«
└─⟦cb138137f⟧ Bits:30005281 Grafikpakke til COMAL & DMP-7 └─ ⟦this⟧ »DEMO2«
0100 REM *************************************************** 0110 REM *PROCEDURERNE I DENNE FIL ER DE NØDVENDIGE GRUND- * 0120 REM *ELEMENTER TIL STYRING AF PLOTTEREN, OG ER DEFOR * 0130 REM *DIREKTE AFHÆNGIG AF DEN ANVENDTE PLOTTER. * 0140 REM *PROCEDURERNE HER KAN KUN ANVENDES TIL STYRING AF * 0150 REM * * 0160 REM * HI PLØT * 0170 REM *MODEL DMP-3,DMP-4,DMP-6,DMP-7 * 0180 REM *FRA HOUSTON INSTRUMENT * 0190 REM * * 0200 REM *DDE 1982* 0210 REM *************************************************** 0220 REM LIN ANVENDES I PROCEDUREN LINKRV. 0230 REM XT,YT ANVENDES I PROCEDUREN LOGKRV. 0240 DIM LIN$(3),XT$(3),YT$(3) 0250 REM ROU AFRUNDER ET REELT TAL TIL HELTAL 0260 REM OG ANVENDES I PROCEDURERNE STIPREL OG AKSE. 0270 DEF ROU(Z)=INT(Z+0.5) 0280 PI=3.1415926 0290 PROC PLOTINIT 0300 REM ÅBNER PLOTTEREN OG LØFTER PENNEN, 0310 REM FLYTTER PENNEN TIL (0,0) = HOME. 0320 PRINT "I;: I;: U H" 0330 ENDPROC ;PLOTINIT. 0340 PROC PLOTSLUT 0350 REM AFBRYDER PLOTTEREN. 0360 PRINT "@" 0370 ENDPROC ;PLOTSLUT. 0380 PROC PLOTTEST 0390 REM KØRER PLOTTERENS SELVTEST PROGRAM. 0400 PRINT "T" 0410 ENDPROC ;PLOTTEST. 0420 PROC NULPKT 0430 REM FASTSÆTTER NULPUNKTET. 0440 PRINT "O" 0450 ENDPROC ;NULPKT. 0460 PROC PENNED 0470 REM SÆTTER PENNEN NED PÅ PAPIRET. 0480 PRINT "D" 0490 ENDPROC ;PENNED. 0500 PROC PENOP 0510 REM HÆVER PENNEN OP FRA PAPIRET. 0520 PRINT "U" 0530 ENDPROC ;PENOP. 0540 PROC FLYTABS(X,Y) 0550 REM FLYTTER PENNEN ABSOLUT TIL KOORDINATERNE (X,Y). 0560 X=INT(X);Y=INT(Y) 0570 PRINT "U A";X;",";Y 0580 ENDPROC ;FLYTABS. 0590 PROC TEGNABS(LINTYP,X,Y) 0600 REM TEGNER LINIE ABSOLUT TIL KOORDINATERNE (X,Y) 0610 REM MED DEN ANGIVNE LINIETYPE. 0620 X=INT(X);Y=INT(Y) 0630 PRINT "D A L"+CHR(48+LINTYP);X;",";Y 0640 ENDPROC ;TEGNABS. 0650 PROC FLYTREL(X,Y) 0660 REM FLYTTER PENNEN RELATIVT TIL KOORDINATERNE (X,Y). 0670 X=INT(X);Y=INT(Y) 0680 PRINT "U R";X;",";Y 0690 ENDPROC ;FLYTREL. 0700 PROC TEGNREL(X,Y) 0710 REM TEGNER LINIE RELATIVT TIL KOORDINATERNE (X,Y). 0720 X=INT(X);Y=INT(Y) 0730 PRINT "D R L0";X;",";Y 0740 ENDPROC ;FLYTREL. 0750 PROC FLYTPOL(VINKEL,LÆNGDE) 0760 REM FLYTTER PENNEN DEN ANGIVNE LÆNGDE OG MED DEN 0770 REM ANFGIVNE VINKEL I FORHOLD TIL VANDRET. 0780 X=INT(LÆNGDE*COS(VINKEL/180*PI)) 0790 Y=INT(LÆNGDE*SIN(VINKEL/180*PI)) 0800 PRINT "U R";X;",";Y 0810 ENDPROC ;FLYTPOL. 0820 PROC TEGNPOL(VINKEL,LÆNGDE) 0830 REM TEGNER EN LINIE MED DEN ANGIVNE LÆNGDE OG MED 0840 REM DE ANGIVNE VINKEL I FORHOLD TIL VANDRET. 0850 X=INT(LÆNGDE*COS(VINKEL/180*PI)) 0860 Y=INT(LÆNGDE*SIN(VINKEL/180*PI)) 0870 PRINT "D R";X;",";Y 0880 ENDPROC ;TEGNPOL. 0890 PROC SYMBOL(HØJDE,FIGUR) 0900 REM TEGNER ET AF FIGURERNE:PLUS(0),KORS(1),FIRKANT(2),OTTEKANT(3), 0910 REM TREKANT(4),TIMEGLAS(5), MED EN AF HØJDERNE 0,1,2,3,4,5. 0920 PRINT "M"+CHR(48+HØJDE)+CHR(48+FIGUR)+" U" 0930 ENDPROC ;SYMBOL. 0940 PROC TEKST(VINKEL,HØJDE,TEXT) 0950 REM UDSKRIVER EN TEKST MED DEN ANGIVNE HØJDE 0960 REM OG VINKEL I FORHOLD TIL VANDRET. 0970 V=1+((360-VINKEL) DIV 90) MOD 4 0980 PRINT "S"+CHR(48+V)+CHR(48+HØJDE);" ";TEXT$;"_" 0990 ENDPROC ;TEKST. 1000 PROC TAL(VINKEL,HØJDE,NR) 1010 REM UDSKRIVER ET TAL MED DEN ANGIVNE HØJDE OG VINKEL I 1020 REM FORHOLD TIL VANDRET. 1030 V=1+((360-VINKEL) DIV 90) MOD 4 1040 PRINT "S"+CHR(48+V)+CHR(48+HØJDE); 1050 IF NR<=-1 OR NR=0 OR 1<=NR THEN 1060 PRINT NR;"_" 1070 ELSE 1080 PRINT USING " #.## _":NR 1090 ENDIF 1100 ENDPROC ;TAL. 1440 PROC AKSE(VI,HØ,SK,SE,MIN,MAX,TYP,TEX) 1450 REM ********************************************************** 1460 REM *AKSE TEGNER EN AKSE MED VINKLEN VI I FORHOLD TIL VANDRET* 1470 REM *FRA MIN TIL MAX. SÆTTER TEKSTEN TEX MED BOGSTAVHØJDEN HØ* 1480 REM *PÅ AKSEN. SKALERINGEN BESTEMMES AF SK ANGIVET I ANTAL * 1490 REM *STEPS PR. ENHED. ANTALLET AF DELSTREGER PR. ENHED BE- * 1500 REM *STEMMES AF 1/SE. * 1510 REM ********************************************************** 1520 KX=COS(VI/180*PI);KY=SIN(VI/180*PI);HB=(18*2**(HØ-1)) 1530 IF SGN(MIN)<>SGN(MAX) THEN 1540 MI=MIN;MX=MAX 1550 ELSE 1560 IF SGN(MIN)=1 THEN 1570 MI=0;MX=MAX-MIN 1580 ELSE 1590 MX=0;MI=MIN-MAX 1600 ENDIF 1610 ENDIF 1620 XMAX=(MX*SK+100)*KX;YMAX=(MX*SK+100)*KY;XMIN=MI*SK*KX;YMIN=MI*SK*KY 1630 EXEC FLYTABS(XMIN,YMIN) 1640 EXEC TEGNABS(0,XMAX,YMAX) 1650 EXEC TEGNREL((KY*20),(-KX*20)) 1660 EXEC TEGNREL((KX-KY)*20,(KX+KY)*20) 1670 EXEC TEGNREL((-KX-KY)*20,(KX-KY)*20) 1680 EXEC TEGNREL((KY*20),(-KX*20)) 1690 IF 0<=KY AND KY<=1 THEN 1700 EXEC FLYTREL((KY*30),(-KX*30-HB*(SGN(KX-KY)+1)/2)) 1710 ELSE 1720 EXEC FLYTREL((-KY*30),(KX*30-HB*(SGN(-KX+KY)+1)/2)) 1730 ENDIF 1740 EXEC TEKST(0,HØ,TEX$) 1750 IF TYP$<>"" THEN 1760 SI=(MAX DIV SE)*SE 1770 FOR I=(SI+MI-MIN)*SK TO MI*SK STEP -SE*SK 1780 EXEC FLYTABS((KX*I-KY*10),(KY*I+KX*10)) 1790 EXEC TEGNREL((KY*20),(-KX*20)) 1800 IF 0<=KY AND KY<=1 THEN 1810 EXEC FLYTREL((KY*20),(-KX*20-HB*(SGN(KX)+1)/2)) 1820 ELSE 1830 EXEC FLYTREL((-KY)*40,(KX)*40+HB*(SGN(KX)-1)/2) 1840 ENDIF 1850 IF TYP$="LIN" THEN 1860 SII=SI 1870 ELSE 1880 SII=10**SI 1890 ENDIF 1900 IF ABS(SII)<=9999 THEN 1910 SJ=ROU(SII*100)/100 1920 ELSE 1930 IF 9999<ABS(SII) AND ABS(SII)<=999999 THEN 1940 SJ=ROU(SII) 1950 ELSE 1960 SJ=SII 1970 ENDIF 1980 ENDIF 1990 IF SJ<>0 THEN EXEC TAL(0,HØ,SJ) 2000 SI=SI-SE 2010 NEXT I 2020 ENDIF 2030 ENDPROC ;AKSE. 2100 DIM NAVN$(20),TYPE$(4) 2110 NAVN$="DDE PLOTTER DEMO-2" 2120 OUTPUT P1 2130 EXEC PLOTINIT 2140 EXEC FLYTABS(0,2300) 2150 EXEC TEKST(0,4,NAVN$) 2190 EXEC FLYTABS(1750,1150) 2200 EXEC NULPKT 2210 FOR M=0 TO 315 STEP 90 2220 TYPE$="LIN" 2225 NAVN$="LIN-akse" 2230 EXEC AKSE(M,1,200,0.5,0,5,TYPE$,NAVN$) 2240 TYPE$="LOG" 2245 NAVN$="LOG-akse" 2250 EXEC AKSE((M+45),2,450,0.5,0,3,TYPE$,NAVN$) 2260 NEXT M 2270 NAVN$="DEMO-2 SLUT" 2280 EXEC PLOTINIT 2290 EXEC TEKST(0,1,NAVN$) 2300 EXEC PLOTSLUT 2310 STOP