DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦3409002c4⟧

    Length: 1920 (0x780)
    Names: »DEMO4.CML«

Derivation

└─⟦9c4522ab9⟧ Bits:30004602 COMAL-80 version 1.8 og COMPAS-80 V3.02
    └─ ⟦this⟧ »DEMO4.CML« 

Hex Dump

0x000…020 30 30 31 30 20 2f 2f 20 20 4c 49 53 53 41 4a 4f 55 53 20 50 41 54 54 45 52 4e 53 0d 30 30 32 30   ┆0010 //  LISSAJOUS PATTERNS 0020┆
0x020…040 20 2f 2f 0d 30 30 33 30 20 2f 2f 20 43 4f 4e 53 54 41 4e 54 53 20 44 45 46 49 4e 49 4e 47 20 54   ┆ // 0030 // CONSTANTS DEFINING T┆
0x040…060 48 45 20 53 43 52 45 45 4e 2e 0d 30 30 34 30 20 2f 2f 20 48 41 4c 56 45 20 54 48 45 20 56 41 4c   ┆HE SCREEN. 0040 // HALVE THE VAL┆
0x060…080 55 45 53 20 46 4f 52 20 34 30 2d 43 48 41 52 41 43 54 45 52 20 53 43 52 45 45 4e 53 2e 0d 30 30   ┆UES FOR 40-CHARACTER SCREENS. 00┆
0x080…0a0 35 30 20 2f 2f 20 41 44 4a 55 53 54 20 27 53 43 41 4c 45 27 20 54 4f 20 59 4f 55 52 20 53 43 52   ┆50 // ADJUST 'SCALE' TO YOUR SCR┆
0x0a0…0c0 45 45 4e 20 53 4f 20 54 48 41 54 20 49 4e 50 55 54 53 20 31 2c 20 31 20 41 4e 44 20 30 2e 35 0d   ┆EEN SO THAT INPUTS 1, 1 AND 0.5 ┆
0x0c0…0e0 30 30 36 30 20 2f 2f 20 50 52 4f 44 55 43 45 20 41 20 50 45 52 46 45 43 54 20 43 49 52 43 4c 45   ┆0060 // PRODUCE A PERFECT CIRCLE┆
0x0e0…100 2e 0d 30 30 37 30 20 2f 2f 0d 30 30 38 30 20 53 43 41 4c 45 3a 3d 32 37 0d 30 30 39 30 20 43 48   ┆. 0070 // 0080 SCALE:=27 0090 CH┆
0x100…120 41 52 41 43 54 45 52 53 3a 3d 38 30 20 2f 2f 20 4e 55 4d 42 45 52 20 4f 46 20 43 48 41 52 41 43   ┆ARACTERS:=80 // NUMBER OF CHARAC┆
0x120…140 54 45 52 53 20 41 43 52 4f 53 53 20 54 48 45 20 53 43 52 45 45 4e 0d 30 31 30 30 20 4c 49 4e 45   ┆TERS ACROSS THE SCREEN 0100 LINE┆
0x140…160 53 3a 3d 32 34 20 2f 2f 20 4e 55 4d 42 45 52 20 4f 46 20 4c 49 4e 45 53 20 4f 4e 20 54 48 45 20   ┆S:=24 // NUMBER OF LINES ON THE ┆
0x160…180 53 43 52 45 45 4e 0d 30 31 31 30 20 2f 2f 0d 30 31 32 30 20 41 44 4a 55 53 54 3a 3d 49 4e 54 28   ┆SCREEN 0110 // 0120 ADJUST:=INT(┆
0x180…1a0 28 43 48 41 52 41 43 54 45 52 53 2d 32 2a 53 43 41 4c 45 2d 31 29 2f 32 29 0d 30 31 33 30 20 49   ┆(CHARACTERS-2*SCALE-1)/2) 0130 I┆
0x1a0…1c0 46 20 41 44 4a 55 53 54 3c 30 20 54 48 45 4e 20 53 54 4f 50 20 0d 30 31 34 30 20 58 5f 4c 49 4d   ┆F ADJUST<0 THEN STOP  0140 X_LIM┆
0x1c0…1e0 49 54 3a 3d 28 4c 49 4e 45 53 2d 32 29 2f 32 0d 30 31 35 30 20 2f 2f 0d 30 31 36 30 20 44 49 4d   ┆IT:=(LINES-2)/2 0150 // 0160 DIM┆
0x1e0…200 20 4c 49 4e 45 24 20 4f 46 20 43 48 41 52 41 43 54 45 52 53 0d 30 31 37 30 20 50 49 3a 3d 33 2e   ┆ LINE$ OF CHARACTERS 0170 PI:=3.┆
0x200…220 31 34 31 35 39 0d 30 31 38 30 20 43 4c 45 41 52 20 0d 30 31 39 30 20 2f 2f 0d 30 32 30 30 20 52   ┆14159 0180 CLEAR  0190 // 0200 R┆
0x220…240 45 50 45 41 54 20 0d 30 32 31 30 20 20 20 49 4e 50 55 54 20 22 52 45 4c 41 54 49 56 45 20 46 52   ┆EPEAT  0210   INPUT "RELATIVE FR┆
0x240…260 45 51 2e 20 46 4f 52 20 58 3a 20 22 3a 20 58 5f 52 45 4c 5f 46 52 45 51 20 2f 2f 20 54 52 59 20   ┆EQ. FOR X: ": X_REL_FREQ // TRY ┆
0x260…280 34 0d 30 32 32 30 20 55 4e 54 49 4c 20 46 52 41 43 28 58 5f 52 45 4c 5f 46 52 45 51 29 3d 30 20   ┆4 0220 UNTIL FRAC(X_REL_FREQ)=0 ┆
0x280…2a0 41 4e 44 20 58 5f 52 45 4c 5f 46 52 45 51 3e 3d 31 0d 30 32 33 30 20 4e 4f 5f 53 54 45 50 53 3a   ┆AND X_REL_FREQ>=1 0230 NO_STEPS:┆
0x2a0…2c0 3d 58 5f 52 45 4c 5f 46 52 45 51 3b 20 58 5f 52 45 4c 5f 46 52 45 51 3a 3d 32 2a 50 49 2a 58 5f   ┆=X_REL_FREQ; X_REL_FREQ:=2*PI*X_┆
0x2c0…2e0 52 45 4c 5f 46 52 45 51 0d 30 32 34 30 20 2f 2f 0d 30 32 35 30 20 52 45 50 45 41 54 20 0d 30 32   ┆REL_FREQ 0240 // 0250 REPEAT  02┆
0x2e0…300 36 30 20 20 20 49 4e 50 55 54 20 22 52 45 4c 41 54 49 56 45 20 46 52 45 51 2e 20 46 4f 52 20 59   ┆60   INPUT "RELATIVE FREQ. FOR Y┆
0x300…320 3a 20 22 3a 20 59 5f 52 45 4c 5f 46 52 45 51 20 2f 2f 20 54 52 59 20 33 0d 30 32 37 30 20 55 4e   ┆: ": Y_REL_FREQ // TRY 3 0270 UN┆
0x320…340 54 49 4c 20 46 52 41 43 28 59 5f 52 45 4c 5f 46 52 45 51 29 3d 30 20 41 4e 44 20 59 5f 52 45 4c   ┆TIL FRAC(Y_REL_FREQ)=0 AND Y_REL┆
0x340…360 5f 46 52 45 51 3e 3d 31 0d 30 32 38 30 20 59 5f 52 45 4c 5f 46 52 45 51 3a 3d 32 2a 50 49 2a 59   ┆_FREQ>=1 0280 Y_REL_FREQ:=2*PI*Y┆
0x360…380 5f 52 45 4c 5f 46 52 45 51 0d 30 32 39 30 20 2f 2f 0d 30 33 30 30 20 49 4e 50 55 54 20 22 59 20   ┆_REL_FREQ 0290 // 0300 INPUT "Y ┆
0x380…3a0 50 48 41 53 45 2c 20 4d 55 4c 54 49 50 4c 45 20 4f 46 20 50 49 3a 20 22 3a 20 59 5f 50 48 41 53   ┆PHASE, MULTIPLE OF PI: ": Y_PHAS┆
0x3a0…3c0 45 20 2f 2f 20 54 52 59 20 30 0d 30 33 31 30 20 59 5f 50 48 41 53 45 3a 3d 50 49 2a 59 5f 50 48   ┆E // TRY 0 0310 Y_PHASE:=PI*Y_PH┆
0x3c0…3e0 41 53 45 0d 30 33 32 30 20 2f 2f 0d 30 33 33 30 20 43 4c 45 41 52 20 0d 30 33 34 30 20 46 4f 52   ┆ASE 0320 // 0330 CLEAR  0340 FOR┆
0x3e0…400 20 58 5f 53 54 45 50 3a 3d 58 5f 4c 49 4d 49 54 20 44 4f 57 4e 54 4f 20 2d 58 5f 4c 49 4d 49 54   ┆ X_STEP:=X_LIMIT DOWNTO -X_LIMIT┆
0x400…420 20 44 4f 20 0d 30 33 35 30 20 20 20 4c 49 4e 45 24 3a 3d 53 50 43 24 28 43 48 41 52 41 43 54 45   ┆ DO  0350   LINE$:=SPC$(CHARACTE┆
0x420…440 52 53 29 0d 30 33 36 30 20 20 20 58 3a 3d 46 4e 5f 41 52 43 53 49 4e 28 58 5f 53 54 45 50 2f 58   ┆RS) 0360   X:=FN_ARCSIN(X_STEP/X┆
0x440…460 5f 4c 49 4d 49 54 29 0d 30 33 37 30 20 20 20 46 4f 52 20 49 3a 3d 30 20 54 4f 20 4e 4f 5f 53 54   ┆_LIMIT) 0370   FOR I:=0 TO NO_ST┆
0x460…480 45 50 53 2d 31 20 44 4f 20 0d 30 33 38 30 20 20 20 20 20 4c 49 4e 45 24 28 46 4e 5f 53 43 41 4c   ┆EPS-1 DO  0380     LINE$(FN_SCAL┆
0x480…4a0 45 44 28 58 2c 49 29 29 3a 3d 22 2a 22 0d 30 33 39 30 20 20 20 20 20 4c 49 4e 45 24 28 46 4e 5f   ┆ED(X,I)):="*" 0390     LINE$(FN_┆
0x4a0…4c0 53 43 41 4c 45 44 28 50 49 2d 58 2c 49 29 29 3a 3d 22 2a 22 0d 30 34 30 30 20 20 20 4e 45 58 54   ┆SCALED(PI-X,I)):="*" 0400   NEXT┆
0x4c0…4e0 20 49 0d 30 34 31 30 20 20 20 50 52 49 4e 54 20 4c 49 4e 45 24 0d 30 34 32 30 20 4e 45 58 54 20   ┆ I 0410   PRINT LINE$ 0420 NEXT ┆
0x4e0…500 58 5f 53 54 45 50 0d 30 34 33 30 20 43 55 52 53 4f 52 20 31 2c 20 4c 49 4e 45 53 2d 31 0d 30 34   ┆X_STEP 0430 CURSOR 1, LINES-1 04┆
0x500…520 34 30 20 45 4e 44 20 0d 30 34 35 30 20 2f 2f 0d 30 34 36 30 20 44 45 46 20 46 4e 5f 41 52 43 53   ┆40 END  0450 // 0460 DEF FN_ARCS┆
0x520…540 49 4e 28 58 29 0d 30 34 37 30 20 20 20 49 46 20 41 42 53 28 58 29 3c 30 2e 31 20 54 48 45 4e 20   ┆IN(X) 0470   IF ABS(X)<0.1 THEN ┆
0x540…560 0d 30 34 38 30 20 20 20 20 20 46 4e 5f 41 52 43 53 49 4e 3a 3d 58 2b 58 5e 33 2f 36 2b 58 5e 35   ┆ 0480     FN_ARCSIN:=X+X^3/6+X^5┆
0x560…580 2a 30 2e 30 37 35 2b 58 5e 37 2f 32 32 2e 34 0d 30 34 39 30 20 20 20 45 4c 53 45 20 0d 30 35 30   ┆*0.075+X^7/22.4 0490   ELSE  050┆
0x580…5a0 30 20 20 20 20 20 46 4e 5f 41 52 43 53 49 4e 3a 3d 32 2a 46 4e 5f 41 52 43 53 49 4e 28 58 2f 28   ┆0     FN_ARCSIN:=2*FN_ARCSIN(X/(┆
0x5a0…5c0 53 51 52 28 31 2b 58 29 2b 53 51 52 28 31 2d 58 29 29 29 0d 30 35 31 30 20 20 20 45 4e 44 49 46   ┆SQR(1+X)+SQR(1-X))) 0510   ENDIF┆
0x5c0…5e0 20 0d 30 35 32 30 20 45 4e 44 44 45 46 20 46 4e 5f 41 52 43 53 49 4e 0d 30 35 33 30 20 2f 2f 0d   ┆  0520 ENDDEF FN_ARCSIN 0530 // ┆
0x5e0…600 30 35 34 30 20 44 45 46 20 46 4e 5f 43 4f 4d 50 55 54 45 28 54 2c 20 49 29 0d 30 35 35 30 20 20   ┆0540 DEF FN_COMPUTE(T, I) 0550  ┆
0x600…620 20 47 4c 4f 42 41 4c 20 50 49 2c 20 58 5f 52 45 4c 5f 46 52 45 51 2c 20 59 5f 52 45 4c 5f 46 52   ┆ GLOBAL PI, X_REL_FREQ, Y_REL_FR┆
0x620…640 45 51 2c 20 59 5f 50 48 41 53 45 0d 30 35 36 30 20 20 20 54 54 3a 3d 28 54 2b 32 2a 49 2a 50 49   ┆EQ, Y_PHASE 0560   TT:=(T+2*I*PI┆
0x640…660 29 2f 58 5f 52 45 4c 5f 46 52 45 51 0d 30 35 37 30 20 20 20 46 4e 5f 43 4f 4d 50 55 54 45 3a 3d   ┆)/X_REL_FREQ 0570   FN_COMPUTE:=┆
0x660…680 53 49 4e 28 59 5f 52 45 4c 5f 46 52 45 51 2a 54 54 2b 59 5f 50 48 41 53 45 29 0d 30 35 38 30 20   ┆SIN(Y_REL_FREQ*TT+Y_PHASE) 0580 ┆
0x680…6a0 45 4e 44 44 45 46 20 46 4e 5f 43 4f 4d 50 55 54 45 0d 30 35 39 30 20 2f 2f 0d 30 36 30 30 20 44   ┆ENDDEF FN_COMPUTE 0590 // 0600 D┆
0x6a0…6c0 45 46 20 46 4e 5f 53 43 41 4c 45 44 28 54 2c 20 49 29 0d 30 36 31 30 20 20 20 47 4c 4f 42 41 4c   ┆EF FN_SCALED(T, I) 0610   GLOBAL┆
0x6c0…6e0 20 53 43 41 4c 45 2c 20 41 44 4a 55 53 54 0d 30 36 32 30 20 20 20 46 4e 5f 53 43 41 4c 45 44 3a   ┆ SCALE, ADJUST 0620   FN_SCALED:┆
0x6e0…700 3d 31 2b 41 44 4a 55 53 54 2b 52 4f 55 4e 44 28 53 43 41 4c 45 2a 28 46 4e 5f 43 4f 4d 50 55 54   ┆=1+ADJUST+ROUND(SCALE*(FN_COMPUT┆
0x700…720 45 28 54 2c 49 29 2b 31 29 29 0d 30 36 33 30 20 45 4e 44 44 45 46 20 46 4e 5f 53 43 41 4c 45 44   ┆E(T,I)+1)) 0630 ENDDEF FN_SCALED┆
0x720…740 0d 46 20 46 4e 5f 53 43 41 4c 45 44 28 54 2c 20 49 29 0d 30 36 31 30 20 20 20 47 4c 4f 42 41 4c   ┆ F FN_SCALED(T, I) 0610   GLOBAL┆
0x740…760 20 53 43 41 4c 45 2c 20 41 44 4a 55 53 54 0d 30 36 32 30 20 20 20 46 4e 5f 53 43 41 4c 45 44 3a   ┆ SCALE, ADJUST 0620   FN_SCALED:┆
0x760…780 3d 31 2b 41 44 4a 55 53 54 2b 52 4f 55 4e 44 28 53 43 41 4c 45 2a 28 46 4e 5f 43 4f 4d 50 55 21   ┆=1+ADJUST+ROUND(SCALE*(FN_COMPU!┆