CRR

From CPCWiki - THE Amstrad CPC encyclopedia!
Revision as of 15:24, 11 March 2018 by Arnoldemu (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


CP/M Read and Reply (CRR), was an offline reader for bulletin boards written by Paul Martin. It is written in Pascal using Turbo Pascal. It ran on all CP/M systems but was particularly popular with CPC-owning BBS users.

CRR allowed you to dial up your favourite bulletin board, download all your e-mails and discussion board messages, then disconnect. You could read and reply to them at your leisure, and would only need to reconnect when you wanted to send them. It was compatible with FidoNet bulletin boards which supported certain protocols, such as XRS and QWK.

In the author's words from 1991, describing an early version:

CRR is the CP/M offline reader for use anywhere XRS might be used on an MSDOS machine. It allows you to read and reply to downloaded messages from a conforming QBBS, RemoteAccess or SuperBBS Fidonet bulletin board. In order to use this software you will need an archiving program (eg. ARK or ARC), an archive extractor (UNZIP included), and a text editor (eg. VDE or ZDE).

If you do wish to use CRR, the following Turbo Pascal program is the registration key generator:

Program keygenerator;

var crc1,crc2,p,q: integer;
    b : array [0..24] of byte;
    s : string[25];

begin
 writeln('Key generator');
 writeln;
 write('Enter name: ');
 readln(s);
 for p:=0 to 24 do b[p]:=32;
 for p:=1 to length(s) do
  b[p-1]:=ord(upcase(s[p]));
 crc1:=0; crc2:=$ffff;
 for p:=0 to 24 do
  begin
   crc1:=crc1 xor b[p];
   crc2:=crc2 xor b[24-p];
   for q:=0 to 7 do
    begin
     if (crc1 and 1) = 0 then
      crc1:=crc1 xor $9041
     else
      crc1:=crc1 shr 1;
     if (crc2 and 1) = 0 then
      crc2:=crc2 xor $9041
     else
      crc2:=crc2 shr 1;
    end;
  end;
 for p:=1 to 4 do
  begin
   write(chr(65+(crc1 and $f000) shr 12));
   crc1:=crc1 shl 4;
  end;
 for p:=1 to 4 do
  begin
   write(chr(65+(crc2 and $f000) shr 12));
   crc2:=crc2 shl 4;
  end;
 writeln;
end.

Links