Binary digits: Difference between revisions

Add PL/M
(Add FOCAL)
(Add PL/M)
Line 3,949:
1111111111111111111111111111111
</pre>
 
=={{header|PL/M}}==
<lang plm>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</lang>
{{out}}
<pre>101
110010
10001100101000</pre>
 
=={{header|PowerBASIC}}==
2,123

edits