program nokialcd;


const SCLK : boolean = Pinb3;
      SDA : boolean = Pinb2;
      DC : boolean = Pinb1;
      RESET : boolean =Pinb0;

Var i:byte;


Procedure write_dorc(data:byte);
var i,data2:byte;
Begin
  for i:=8 downto 0 do
    Begin
      SCLK:=0;
      if ((data and $80)=0) then
        SDA:=0
      else
        SDA:=1;
      SCLK:=1;
      data:=data shl 1;
    End;
End;

Procedure write_data(data: byte);

Begin
  DC:=1;
  write_dorc(data);
End;

Procedure write_cmd(cmd:byte);

Begin
  DC:=0;
  write_dorc(cmd);
End;

Procedure clean_ddram;
var ddram:word;
Begin
  for ddram:=768 downto 0 do
    write_data($00);
End;

Procedure nokia_init;

Begin
  ddrb:=$FF;
//  portb:=$00;
  DC:=1;
  RESET:=0;
  delay_ms(100);
  write_cmd($21);
  write_cmd($C8);
  write_cmd($13);
  write_cmd($20);
  write_cmd($09);
  clean_ddram;
  write_cmd($08);
  write_cmd($0C);
end;

begin
  nokia_init;
  While true do
    begin
    write_data($ff);
    end;
end.