home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* BIN_OUT.MOD *)
- (* Spracherweiterung zu TopSpeed Modula2 *)
- (* *)
- (* Die beiden Prozeduren sollten in das Modul IO aufge- *)
- (* nommen werden und erlauben die bitweise Ausgabe von *)
- (* 16- oder 32-Bit-Zahlen. *)
- (* Achtung: Im Implementation-File IO.MOD müssen zu- *)
- (* sätzlich Insert und Concat aus Str importiert werden *)
- (* (c) 1989 Hans-Christian Steeg & TOOLBOX *)
- (* ------------------------------------------------------ *)
- PROCEDURE WrBin(V : CARDINAL; Length : INTEGER);
- VAR
- localstr : ARRAY[0..15] OF CHAR;
- i : CARDINAL;
- BEGIN
- FOR i:= 0 TO 15 DO
- IF i IN BITSET(V) THEN
- Insert(localstr, '1', 0)
- ELSE
- Insert(localstr, '0', 0)
- END
- END;
- WrStrAdj(localstr, Length)
- END WrBin;
-
- PROCEDURE WrLngBin(V : LONGCARD; Length : INTEGER);
- VAR
- localstr_hi, localstr_lo : ARRAY[0..15] OF CHAR;
- localstr : ARRAY[0..31] OF CHAR;
- V_hi,V_lo : CARDINAL;
- i : CARDINAL;
- BEGIN
- V_hi := VAL(CARDINAL, V DIV 65536);
- FOR i := 0 TO 15 DO
- IF i IN BITSET(V_hi) THEN
- Insert(localstr_hi, '1', 0)
- ELSE
- Insert(localstr_hi, '0', 0)
- END
- END;
- V_lo := VAL(CARDINAL, V MOD 65536);
- FOR i := 0 TO 15 DO
- IF i IN BITSET(V_lo) THEN
- Insert(localstr_lo, '1', 0)
- ELSE
- Insert (localstr_lo, '0', 0)
- END
- END;
- Concat(localstr, localstr_hi, localstr_lo);
- WrStrAdj(localstr, Length)
- END WrLngBin;
- (* ------------------------------------------------------ *)
- (* Ende von BIN_OUT.MOD *)