Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
64
Task/Integer-sequence/PL-M/integer-sequence-2.plm
Normal file
64
Task/Integer-sequence/PL-M/integer-sequence-2.plm
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
100H:
|
||||
|
||||
/* CP/M CALL */
|
||||
BDOS: PROCEDURE (FN, ARG);
|
||||
DECLARE FN BYTE, ARG ADDRESS;
|
||||
GO TO 5;
|
||||
END BDOS;
|
||||
|
||||
PUT$CHAR: PROCEDURE (CHAR);
|
||||
DECLARE CHAR BYTE;
|
||||
CALL BDOS(2, CHAR);
|
||||
END PUT$CHAR;
|
||||
|
||||
/* PRINT STRING BACKWARDS UNTIL ZERO */
|
||||
PRINT$BACK: PROCEDURE (S);
|
||||
DECLARE S ADDRESS, C BASED S BYTE;
|
||||
DO WHILE C <> 0;
|
||||
CALL PUT$CHAR(C);
|
||||
S = S - 1;
|
||||
END;
|
||||
CALL PUT$CHAR(13);
|
||||
CALL PUT$CHAR(10);
|
||||
END PRINT$BACK;
|
||||
|
||||
/* INCREMENT NUMBER STORED AS ASCII DIGITS */
|
||||
INCR$BIGINT: PROCEDURE (BI) ADDRESS;
|
||||
DECLARE (BI, R) ADDRESS, D BASED BI BYTE;
|
||||
R = BI;
|
||||
DO WHILE D <> 0; BI = BI - 1; END;
|
||||
INCR$DIGIT:
|
||||
BI = BI + 1;
|
||||
IF D = 0 THEN DO;
|
||||
D = '1';
|
||||
D(1) = 0;
|
||||
RETURN BI;
|
||||
END;
|
||||
ELSE IF D = '9' THEN DO;
|
||||
D = '0';
|
||||
GO TO INCR$DIGIT;
|
||||
END;
|
||||
ELSE DO;
|
||||
D = D + 1;
|
||||
RETURN R;
|
||||
END;
|
||||
END INCR$BIGINT;
|
||||
|
||||
/* STORE INITIAL 'BIG INTEGER' */
|
||||
INIT$BIGINT: PROCEDURE (X) ADDRESS;
|
||||
DECLARE X ADDRESS, D BASED X BYTE;
|
||||
D(0) = 0;
|
||||
D(1) = '0';
|
||||
D(2) = 0;
|
||||
RETURN .D(1);
|
||||
END INIT$BIGINT;
|
||||
|
||||
/* LOOP PRINTING NUMBERS FOREVER */
|
||||
DECLARE I ADDRESS;
|
||||
I = INIT$BIGINT(.MEMORY);
|
||||
DO WHILE 1;
|
||||
I = INCR$BIGINT(I);
|
||||
CALL PRINT$BACK(I);
|
||||
END;
|
||||
|
||||
EOF
|
||||
Loading…
Add table
Add a link
Reference in a new issue