program big(input,output);
var
  ch : char;

procedure printChar(ch : char);
const
  osword  = &FFF1; { A=10 for char. definition. XY points to par. block }
  getPatt = 10;
  width   = 8;
  height  = 8;

type
  byte   = 0..&FF;
  xCoord = 1..width;
  yCoord = 1..height;
  parBlk = packed
    record
      ch   : char;
      patt : packed array[yCoord] of byte
    end;

var
  block    : parBlk;
  row      : yCoord;
  col      : xCoord;
  thisbyte : byte;
  dummy    : integer;

begin
  block.ch := ch;
  dummy := code1(osword, getPatt, block);
  for row := 1 to height do
    begin
      thisByte := block.patt[row];
      for col := 1 to width do
        begin
          if thisByte >= 128 then
            write('*')
          else
            write(' ');
          thisByte := thisByte mod &80 * 2
        end;
      writeln
    end
end;

begin {main}
  for ch := ' ' to '~' do
    begin
      printChar(ch);
      writeln
    end
end.
