Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
45
Task/FizzBuzz/PL-M/fizzbuzz.plm
Normal file
45
Task/FizzBuzz/PL-M/fizzbuzz.plm
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
100H:
|
||||
|
||||
/* DECLARE OUTPUT IN TERMS OF CP/M -
|
||||
PL/M DOES NOT COME WITH ANY STANDARD LIBRARY */
|
||||
BDOS: PROCEDURE(FUNC, ARG);
|
||||
DECLARE FUNC BYTE, ARG ADDRESS;
|
||||
GO TO 5;
|
||||
END BDOS;
|
||||
|
||||
PUT$STRING: PROCEDURE(STR);
|
||||
DECLARE STR ADDRESS;
|
||||
CALL BDOS(9, STR);
|
||||
CALL BDOS(9, .(13,10,'$'));
|
||||
END PUT$STRING;
|
||||
|
||||
/* PRINT A NUMBER */
|
||||
PUT$NUMBER: PROCEDURE(N);
|
||||
DECLARE S (5) BYTE INITIAL ('...$');
|
||||
DECLARE P ADDRESS;
|
||||
DECLARE (N, D, C BASED P) BYTE;
|
||||
P = .S(3);
|
||||
DIGIT:
|
||||
P = P-1;
|
||||
C = (N MOD 10) + '0';
|
||||
N = N/10;
|
||||
IF N > 0 THEN GO TO DIGIT;
|
||||
CALL PUT$STRING(P);
|
||||
END PUT$NUMBER;
|
||||
|
||||
/* FIZZBUZZ */
|
||||
DECLARE N BYTE;
|
||||
DO N = 1 TO 100;
|
||||
IF N MOD 15 = 0 THEN
|
||||
CALL PUT$STRING(.'FIZZBUZZ$');
|
||||
ELSE IF N MOD 5 = 0 THEN
|
||||
CALL PUT$STRING(.'BUZZ$');
|
||||
ELSE IF N MOD 3 = 0 THEN
|
||||
CALL PUT$STRING(.'FIZZ$');
|
||||
ELSE
|
||||
CALL PUT$NUMBER(N);
|
||||
END;
|
||||
|
||||
/* EXIT TO CP/M */
|
||||
CALL BDOS(0,0);
|
||||
EOF
|
||||
Loading…
Add table
Add a link
Reference in a new issue