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

⟦b6158380b⟧

    Length: 1664 (0x680)
    Names: »DEMO2.CML«

Derivation

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

Hex Dump

0x000…020 30 30 31 30 20 2f 2f 20 43 48 41 52 41 43 54 45 52 20 53 4f 52 54 20 50 52 4f 47 52 41 4d 0d 30   ┆0010 // CHARACTER SORT PROGRAM 0┆
0x020…040 30 32 30 20 44 49 4d 20 53 54 52 49 4e 47 24 20 4f 46 20 32 30 30 30 0d 30 30 33 30 20 44 49 4d   ┆020 DIM STRING$ OF 2000 0030 DIM┆
0x040…060 20 43 48 41 52 41 43 54 45 52 24 20 4f 46 20 31 0d 30 30 34 30 20 44 49 4d 20 43 4f 55 4e 54 45   ┆ CHARACTER$ OF 1 0040 DIM COUNTE┆
0x060…080 52 28 4f 52 44 28 22 41 22 29 3a 4f 52 44 28 22 5a 22 29 29 0d 30 30 35 30 20 53 50 45 43 49 41   ┆R(ORD("A"):ORD("Z")) 0050 SPECIA┆
0x080…0a0 4c 5f 43 48 41 52 41 43 54 45 52 53 3a 3d 30 0d 30 30 36 30 20 53 50 41 43 45 53 3a 3d 30 0d 30   ┆L_CHARACTERS:=0 0060 SPACES:=0 0┆
0x0a0…0c0 30 37 30 20 54 52 41 50 20 45 53 43 2d 20 2f 2f 20 54 41 4b 45 20 43 41 52 45 2e 20 53 41 56 45   ┆070 TRAP ESC- // TAKE CARE. SAVE┆
0x0c0…0e0 20 54 48 45 20 50 52 4f 47 52 41 4d 0d 30 30 38 30 20 2f 2f 0d 30 30 39 30 20 50 52 49 4e 54 20   ┆ THE PROGRAM 0080 // 0090 PRINT ┆
0x0e0…100 22 49 4e 50 55 54 20 41 20 53 54 52 49 4e 47 3a 20 22 2c 0d 30 31 30 30 20 4c 4f 4f 50 20 0d 30   ┆"INPUT A STRING: ", 0100 LOOP  0┆
0x100…120 31 31 30 20 20 20 45 58 45 43 20 47 45 54 5f 43 48 41 52 41 43 54 45 52 28 43 48 41 52 41 43 54   ┆110   EXEC GET_CHARACTER(CHARACT┆
0x120…140 45 52 24 29 0d 30 31 32 30 20 20 20 49 46 20 43 48 41 52 41 43 54 45 52 24 3d 22 22 32 37 22 22   ┆ER$) 0120   IF CHARACTER$=""27""┆
0x140…160 20 54 48 45 4e 20 45 58 49 54 20 0d 30 31 33 30 20 20 20 50 52 49 4e 54 20 43 48 41 52 41 43 54   ┆ THEN EXIT  0130   PRINT CHARACT┆
0x160…180 45 52 24 2c 0d 30 31 34 30 20 20 20 53 54 52 49 4e 47 24 3a 2b 43 48 41 52 41 43 54 45 52 24 0d   ┆ER$, 0140   STRING$:+CHARACTER$ ┆
0x180…1a0 30 31 35 30 20 45 4e 44 4c 4f 4f 50 20 2f 2f 20 22 45 53 43 22 20 54 45 52 4d 49 4e 41 54 45 53   ┆0150 ENDLOOP // "ESC" TERMINATES┆
0x1a0…1c0 20 49 4e 50 55 54 0d 30 31 36 30 20 50 52 49 4e 54 20 0d 30 31 37 30 20 2f 2f 0d 30 31 38 30 20   ┆ INPUT 0160 PRINT  0170 // 0180 ┆
0x1c0…1e0 46 4f 52 20 49 3a 3d 31 20 54 4f 20 4c 45 4e 28 53 54 52 49 4e 47 24 29 20 44 4f 20 0d 30 31 39   ┆FOR I:=1 TO LEN(STRING$) DO  019┆
0x1e0…200 30 20 20 20 43 48 41 52 41 43 54 45 52 24 3a 3d 53 54 52 49 4e 47 24 28 49 29 0d 30 32 30 30 20   ┆0   CHARACTER$:=STRING$(I) 0200 ┆
0x200…220 20 20 49 46 20 43 48 41 52 41 43 54 45 52 24 3d 22 20 22 20 54 48 45 4e 20 53 50 41 43 45 53 3a   ┆  IF CHARACTER$=" " THEN SPACES:┆
0x220…240 2b 31 20 2f 2f 20 54 45 53 54 20 46 4f 52 20 53 50 41 43 45 0d 30 32 31 30 20 20 20 49 46 20 43   ┆+1 // TEST FOR SPACE 0210   IF C┆
0x240…260 48 41 52 41 43 54 45 52 24 3e 3d 22 41 22 20 41 4e 44 20 43 48 41 52 41 43 54 45 52 24 3c 3d 22   ┆HARACTER$>="A" AND CHARACTER$<="┆
0x260…280 5a 22 20 54 48 45 4e 20 2f 2f 20 4c 45 54 54 45 52 3f 0d 30 32 32 30 20 20 20 20 20 43 4f 55 4e   ┆Z" THEN // LETTER? 0220     COUN┆
0x280…2a0 54 45 52 28 4f 52 44 28 43 48 41 52 41 43 54 45 52 24 29 29 3a 2b 31 20 2f 2f 20 43 4f 55 4e 54   ┆TER(ORD(CHARACTER$)):+1 // COUNT┆
0x2a0…2c0 20 4c 45 54 54 45 52 0d 30 32 33 30 20 20 20 45 4c 53 45 20 0d 30 32 34 30 20 20 20 20 20 53 50   ┆ LETTER 0230   ELSE  0240     SP┆
0x2c0…2e0 45 43 49 41 4c 5f 43 48 41 52 41 43 54 45 52 53 3a 2b 31 20 2f 2f 20 43 4f 55 4e 54 20 4f 54 48   ┆ECIAL_CHARACTERS:+1 // COUNT OTH┆
0x2e0…300 45 52 20 43 48 41 52 41 43 54 45 52 53 0d 30 32 35 30 20 20 20 45 4e 44 49 46 20 0d 30 32 36 30   ┆ER CHARACTERS 0250   ENDIF  0260┆
0x300…320 20 4e 45 58 54 20 49 20 2f 2f 20 47 45 54 20 4e 45 58 54 20 43 48 41 52 41 43 54 45 52 0d 30 32   ┆ NEXT I // GET NEXT CHARACTER 02┆
0x320…340 37 30 20 2f 2f 0d 30 32 38 30 20 2f 2f 20 53 45 54 20 55 50 20 54 48 45 20 50 52 49 4e 54 20 4f   ┆70 // 0280 // SET UP THE PRINT O┆
0x340…360 55 54 20 46 4f 52 4d 41 54 0d 30 32 39 30 20 46 4f 52 20 4a 3a 3d 4f 52 44 28 22 41 22 29 20 54   ┆UT FORMAT 0290 FOR J:=ORD("A") T┆
0x360…380 4f 20 4f 52 44 28 22 5a 22 29 20 44 4f 20 2f 2f 20 50 52 49 4e 54 20 54 48 45 20 4c 45 54 54 45   ┆O ORD("Z") DO // PRINT THE LETTE┆
0x380…3a0 52 53 0d 30 33 30 30 20 20 20 50 52 49 4e 54 20 22 20 20 22 2c 43 48 52 24 28 4a 29 2c 0d 30 33   ┆RS 0300   PRINT "  ",CHR$(J), 03┆
0x3a0…3c0 31 30 20 4e 45 58 54 20 4a 0d 30 33 32 30 20 50 52 49 4e 54 20 2f 2f 20 45 4d 50 54 59 20 4c 49   ┆10 NEXT J 0320 PRINT // EMPTY LI┆
0x3c0…3e0 4e 45 0d 30 33 33 30 20 46 4f 52 20 4b 3a 3d 4f 52 44 28 22 41 22 29 20 54 4f 20 4f 52 44 28 22   ┆NE 0330 FOR K:=ORD("A") TO ORD("┆
0x3e0…400 5a 22 29 20 44 4f 20 2f 2f 20 50 52 49 4e 54 20 54 48 45 20 43 4f 55 4e 54 0d 30 33 34 30 20 20   ┆Z") DO // PRINT THE COUNT 0340  ┆
0x400…420 20 50 52 49 4e 54 20 55 53 49 4e 47 20 22 20 23 23 22 3a 20 43 4f 55 4e 54 45 52 28 4b 29 2c 0d   ┆ PRINT USING " ##": COUNTER(K), ┆
0x420…440 30 33 35 30 20 4e 45 58 54 20 4b 0d 30 33 36 30 20 50 52 49 4e 54 20 0d 30 33 37 30 20 50 52 49   ┆0350 NEXT K 0360 PRINT  0370 PRI┆
0x440…460 4e 54 20 0d 30 33 38 30 20 50 52 49 4e 54 20 22 4e 55 4d 42 45 52 20 4f 46 20 43 48 41 52 41 43   ┆NT  0380 PRINT "NUMBER OF CHARAC┆
0x460…480 54 45 52 53 3a 20 22 2c 4c 45 4e 28 53 54 52 49 4e 47 24 29 0d 30 33 39 30 20 50 52 49 4e 54 20   ┆TERS: ",LEN(STRING$) 0390 PRINT ┆
0x480…4a0 0d 30 34 30 30 20 50 52 49 4e 54 20 22 4e 55 4d 42 45 52 20 4f 46 20 53 50 45 43 49 41 4c 20 43   ┆ 0400 PRINT "NUMBER OF SPECIAL C┆
0x4a0…4c0 48 41 52 41 43 54 45 52 53 20 49 4e 43 4c 55 44 49 4e 47 20 53 50 41 43 45 53 3a 20 22 2c 0d 30   ┆HARACTERS INCLUDING SPACES: ", 0┆
0x4c0…4e0 34 31 30 20 50 52 49 4e 54 20 53 50 45 43 49 41 4c 5f 43 48 41 52 41 43 54 45 52 53 0d 30 34 32   ┆410 PRINT SPECIAL_CHARACTERS 042┆
0x4e0…500 30 20 50 52 49 4e 54 20 0d 30 34 33 30 20 50 52 49 4e 54 20 22 4e 55 4d 42 45 52 20 4f 46 20 53   ┆0 PRINT  0430 PRINT "NUMBER OF S┆
0x500…520 50 45 43 49 41 4c 20 43 48 41 52 41 43 54 45 52 53 20 45 58 43 4c 55 44 49 4e 47 20 53 50 41 43   ┆PECIAL CHARACTERS EXCLUDING SPAC┆
0x520…540 45 53 3a 20 22 2c 0d 30 34 34 30 20 50 52 49 4e 54 20 53 50 45 43 49 41 4c 5f 43 48 41 52 41 43   ┆ES: ", 0440 PRINT SPECIAL_CHARAC┆
0x540…560 54 45 52 53 2d 53 50 41 43 45 53 0d 30 34 35 30 20 2f 2f 0d 30 34 36 30 20 50 52 4f 43 20 47 45   ┆TERS-SPACES 0450 // 0460 PROC GE┆
0x560…580 54 5f 43 48 41 52 41 43 54 45 52 28 52 45 46 20 41 24 29 20 2f 2f 20 4c 49 42 52 41 52 59 20 50   ┆T_CHARACTER(REF A$) // LIBRARY P┆
0x580…5a0 52 4f 43 45 44 55 52 45 0d 30 34 37 30 20 20 20 50 4f 4b 45 20 32 35 36 2c 20 32 35 35 0d 30 34   ┆ROCEDURE 0470   POKE 256, 255 04┆
0x5a0…5c0 38 30 20 20 20 52 45 50 45 41 54 20 0d 30 34 39 30 20 20 20 20 20 49 46 20 45 53 43 20 54 48 45   ┆80   REPEAT  0490     IF ESC THE┆
0x5c0…5e0 4e 20 50 4f 4b 45 20 32 35 36 2c 20 32 37 0d 30 35 30 30 20 20 20 55 4e 54 49 4c 20 50 45 45 4b   ┆N POKE 256, 27 0500   UNTIL PEEK┆
0x5e0…600 28 32 35 36 29 3c 3e 32 35 35 0d 30 35 31 30 20 20 20 41 24 3a 3d 43 48 52 24 28 50 45 45 4b 28   ┆(256)<>255 0510   A$:=CHR$(PEEK(┆
0x600…620 32 35 36 29 29 0d 30 35 32 30 20 45 4e 44 50 52 4f 43 20 47 45 54 5f 43 48 41 52 41 43 54 45 52   ┆256)) 0520 ENDPROC GET_CHARACTER┆
0x620…640 0d 30 20 20 20 52 45 50 45 41 54 20 0d 30 34 39 30 20 20 20 20 20 49 46 20 45 53 43 20 54 48 45   ┆ 0   REPEAT  0490     IF ESC THE┆
0x640…660 4e 20 50 4f 4b 45 20 32 35 36 2c 20 32 37 0d 30 35 30 30 20 20 20 55 4e 54 49 4c 20 50 45 45 4b   ┆N POKE 256, 27 0500   UNTIL PEEK┆
0x660…680 28 32 35 36 29 3c 3e 32 35 35 0d 30 35 31 30 20 20 20 41 24 3a 3d 43 48 52 24 28 50 45 45 4b 21   ┆(256)<>255 0510   A$:=CHR$(PEEK!┆