Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
36
Task/Binary-digits/PL-M/binary-digits.plm
Normal file
36
Task/Binary-digits/PL-M/binary-digits.plm
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
100H:
|
||||
|
||||
/* CP/M BDOS CALL */
|
||||
BDOS: PROCEDURE (FN, ARG);
|
||||
DECLARE FN BYTE, ARG ADDRESS;
|
||||
GO TO 5;
|
||||
END BDOS;
|
||||
|
||||
/* PRINT STRING */
|
||||
PRINT: PROCEDURE (STRING);
|
||||
DECLARE STRING ADDRESS;
|
||||
CALL BDOS(9, STRING);
|
||||
END PRINT;
|
||||
|
||||
/* PRINT BINARY NUMBER */
|
||||
PRINT$BINARY: PROCEDURE (N);
|
||||
DECLARE S (19) BYTE INITIAL ('................',13,10,'$');
|
||||
DECLARE (N, P) ADDRESS, C BASED P BYTE;
|
||||
P = .S(16);
|
||||
BIT:
|
||||
P = P - 1;
|
||||
C = (N AND 1) + '0';
|
||||
IF (N := SHR(N,1)) <> 0 THEN GO TO BIT;
|
||||
CALL PRINT(P);
|
||||
END PRINT$BINARY;
|
||||
|
||||
/* EXAMPLES FROM TASK */
|
||||
DECLARE TEST (3) ADDRESS INITIAL (5, 50, 9000);
|
||||
DECLARE I BYTE;
|
||||
|
||||
DO I = 0 TO LAST(TEST);
|
||||
CALL PRINT$BINARY(TEST(I));
|
||||
END;
|
||||
|
||||
CALL BDOS(0,0);
|
||||
EOF
|
||||
Loading…
Add table
Add a link
Reference in a new issue