/* * B standard library */ char(s,i) { auto nc @(floor +word-bits+ +char-bits+); return (s[i/nc] >> (@+char-bits+)*(i%nc)) & @(1- (ash 1 +char-bits+)); } fin 0; fout 1; putchar (c) { while (1) { @(write-char (code-char (ldb (byte +char-bits+ 0) .c)) (case .fin ((0 1) *standard-output*) (2 *standard-error*) (t (make-broadcast-stream)))) if(!(c=>>(@+char-bits+))) break; } } /* * Strings */ length(s) { extrn char; auto i 0; while (char(s,i++)!='*e'); return i; }