|
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: »DEMO1«
└─⟦cb138137f⟧ Bits:30005281 Grafikpakke til COMAL & DMP-7 └─ ⟦this⟧ »DEMO1«
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. 1110 PROC STIPREL(STREG,MLRUM,XS,YS) 1120 REM **************************************************** 1130 REM *STIPREL TEGNER RELATIVT EN STIPLET LINIE TIL XS,YS* 1140 REM *MED STREGLÆNGDEN STREG OG MELLEMRUMSLÆNGDEN MLRUM.* 1150 REM **************************************************** 1160 PROC ROUF(T,A,R,S) 1170 T=T+S;D=A;A=ROU(T);R=A-D 1180 ENDPROC ;ROUF. 1190 L=SQR(XS**2+YS**2) 1200 XL,YL,XA,YA,XR,YR=0 1210 IF L<>0 AND STREG<>0 THEN 1220 SX=STREG*XS/L;SY=STREG*YS/L;MX=MLRUM*XS/L;MY=MLRUM*YS/L 1230 EXEC ROUF(XL,XA,XR,SX) 1240 EXEC ROUF(YL,YA,YR,SY) 1250 WHILE SGN(XS-XA)=SGN(XS) AND SGN(YS-YA)=SGN(YS) DO 1260 EXEC TEGNREL(XR,YR) 1270 EXEC ROUF(XL,XA,XR,MX) 1280 EXEC ROUF(YL,YA,YR,MY) 1290 EXEC FLYTREL(XR,YR) 1300 EXEC ROUF(XL,XA,XR,SX) 1310 EXEC ROUF(YL,YA,YR,SY) 1320 ENDWHILE 1330 EXEC ROUF(XL,XA,XR,-SX) 1340 EXEC ROUF(YL,YA,YR,-SY) 1350 IF SGN(XS-XA)=SGN(XS) AND SGN(YS-YA)=SGN(YS) THEN 1360 EXEC TEGNREL((XS-XA),(YS-YA)) 1370 ELSE 1380 EXEC FLYTREL((XS-XA),(YS-YA)) 1390 ENDIF 1400 ELSE 1410 EXEC FLYTREL(XS,YS) 1420 ENDIF 1430 ENDPROC ;STIPREL. 1500 DIM NAVN$(20) 1507 OUTPUT P1 1510 EXEC PLOTINIT 1520 NAVN$="DDE PLOTTER DEMO-1" 1530 EXEC FLYTABS(0,2300) 1540 EXEC TEKST(0,4,NAVN$) 1550 EXEC FLYTABS(1000,300) 1560 EXEC NULPKT 1570 EXEC TEGNABS(0,1800,1800) 1580 EXEC FLYTREL(-1800,0) 1590 EXEC TEGNABS(7,1800,0) 1600 EXEC STIPREL(100,50,0,1800) 1610 EXEC STIPREL(10,100,-1800,0) 1620 EXEC TEGNPOL(225,1272.79) 1630 EXEC FLYTPOL(-45,1272.79) 1640 EXEC TEGNREL(-900,900) 1650 EXEC FLYTABS(115,650) 1660 NAVN$="DDE" 1670 EXEC TEKST(90,5,NAVN$) 1680 EXEC FLYTABS(720,1600) 1690 EXEC TEKST(0,4,NAVN$) 1700 EXEC FLYTABS(1600,970) 1710 EXEC TEKST(270,3,NAVN$) 1720 EXEC FLYTABS(935,130) 1730 EXEC TEKST(180,2,NAVN$) 1740 NAVN$="DEMO-1 SLUT" 1750 EXEC FLYTABS(-1000,-300) 1760 EXEC TEKST(0,1,NAVN$) 1770 EXEC PLOTSLUT 1780 STOP