home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / apps / 165 / applic / memo.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1987-08-18  |  19.9 KB  |  668 lines

  1. { Programmed by Yaron Kidron using OSS Personal Pascal.
  2.   This program is public domain software! it is not for reselling. }
  3.  
  4. Program Memorandum_ST; { V 1.01 }
  5.  
  6. Type Str80      = String[80];
  7.      PL         = Array [1..100] Of Str80;     { Special places to go }
  8.      CA         = Array [1..100] Of Str80;     { Cause }
  9.      DA         = Array [1..100] Of Str80;
  10.      OB         = Array [1..100] Of Str80;
  11.      WH         = Array [1..100] Of Str80;
  12.  
  13. Var  Run        :Boolean;
  14.      Command,
  15.      yesno,
  16.      dummy      :Char;
  17.      Cdate,
  18.      Name       :Str80;
  19.      fv         :File of text;
  20.      NumDates   :1..10;
  21.      Date1,Mes1,                               { Message and date base }
  22.      Date2,Mes2,
  23.      Date3,Mes3,
  24.      Date4,Mes4,
  25.      Date5,Mes5,
  26.      Date6,Mes6,
  27.      Date7,Mes7,
  28.      Date8,Mes8,
  29.      Date9,Mes9,
  30.      Date10,Mes10 :Str80;
  31.      Place      :PL;
  32.      Causes     :CA;
  33.      Data       :DA;
  34.      Object     :OB;
  35.      Where      :WH;
  36.      d1,d2,d3,
  37.      d4,d5,d6   :Integer;
  38.  
  39. {$I Screen.Pas}
  40.  
  41. Procedure Text;
  42.  
  43. Begin
  44.    Clrscr;
  45.    Writeln('+-------------------------------------------------+');
  46.    Writeln('|       Memorandum ST - V 1.01 - June 1987        |');
  47.    Writeln('| Written By Yaron Kidron in OSS Personal Pascal. |');
  48.    Writeln('|This is public domain software, please distribute|');
  49.    Writeln('|freely.                                          |');
  50.    Writeln('+-------------------------------------------------+');
  51.    Writeln;
  52.    Writeln('Options:                   Current date:',Cdate);
  53.    Writeln;
  54.    Writeln('D.....Important dates.     P......Special places.');
  55.    Writeln('R..........Reset date.     I......Important data.');
  56.    Writeln('C........Clear memory.     K.....Setting Desktop.');
  57.    Writeln('S.........Save memory.     T..............Status.');
  58.    Writeln('L.........Load memory.     O...........Load date.');
  59.    Writeln('Q................Quit.     H................Help.');
  60.    Writeln;
  61.    Write('Your choice >');
  62.    Readln(command);
  63. End;
  64.  
  65. Procedure Reset_Date;
  66.  
  67. Begin
  68.    Clrscr;
  69.    Writeln('Memorundum ST - V 1.01');
  70.    Writeln('Reset date. Current is ',Cdate);
  71.    Writeln;
  72.    Write('Enter new date [ M/D/Y ] :');
  73.    Readln(Cdate);
  74.    Writeln;
  75.    Write('Save date (Y/N) ? :');
  76.    Readln(yesno);
  77.    if (yesno='y') Or (yesno='Y') Then
  78.       Begin
  79.          Rewrite(fv,'Date.Dat');
  80.          Writeln(fv,Cdate);
  81.       End;
  82. End;
  83.  
  84. Procedure Load_Date;
  85.  
  86. Begin
  87.    Clrscr;
  88.    Writeln('Memorandum ST - V 1.01');
  89.    Writeln('Loading program date.');
  90.    Writeln;
  91.    Write('Please confirm (y/n) ...');
  92.    Readln(yesno);
  93.    If (yesno='y') or (yesno='Y') Then
  94.       Begin
  95.          Writeln('Searching for Date.Dat');
  96.          Reset(fv,'Date.Dat');
  97.          Readln(fv,Cdate);
  98.       End;
  99. End;
  100.  
  101. Procedure Imp_Dates;
  102.  
  103. Type Mes        = Array [1..10] Of Str80;
  104.      Dat        = Array [1..10] Of Str80;
  105.  
  106. Var i           :1..10;
  107.     Buf         :Mes;
  108.     Fer         :Dat;
  109.  
  110. Begin
  111.    Clrscr;
  112.    Writeln('Memorandum ST - V 1.01');
  113.    Writeln('Setting important dates...');
  114.    Writeln;
  115.    Write('How many dates do you want to set (1-10) ? :');
  116.    Readln(Numdates);
  117.    While (Numdates>10) Or (Numdates<1) Do
  118.        Begin
  119.           Writeln('Input overflow. try again.');
  120.           Write('How many dates do you want to set (1-10) ? :');
  121.           Readln(Numdates);
  122.        End;
  123.    Writeln;
  124.    For i:=1 to Numdates Do
  125.        Begin
  126.           Write('Enter date [ M/D/Y ]:');
  127.           Readln(Buf[i]);
  128.           Write('           & Message:');
  129.           Readln(Fer[i]);
  130.        End;
  131.    d1:=numdates*8*(length(buf[1]));
  132.    Date1:=Buf[1];
  133.    Date2:=Buf[2];
  134.    Date3:=Buf[3];
  135.    Date4:=Buf[4];
  136.    Date5:=Buf[5];
  137.    Date6:=Buf[6];
  138.    Date7:=Buf[7];
  139.    Date8:=Buf[8];
  140.    Date9:=Buf[9];
  141.    Date10:=Buf[10];
  142.    Mes1:=Fer[1];
  143.    Mes2:=Fer[2];
  144.    Mes3:=Fer[3];
  145.    Mes4:=Fer[4];
  146.    Mes5:=Fer[5];
  147.    Mes6:=Fer[6];
  148.    Mes7:=Fer[7];
  149.    Mes8:=Fer[8];
  150.    Mes9:=Fer[9];
  151.    Mes10:=Fer[10];
  152. End;
  153.  
  154. Procedure Clear_Mem;
  155.  
  156. Var i           :1..100;
  157.  
  158. Begin
  159.    Date1:=' ';
  160.    Date2:=' ';
  161.    Date3:=' ';
  162.    Date4:=' ';
  163.    Date5:=' ';
  164.    Date6:=' ';
  165.    Date7:=' ';
  166.    Date8:=' ';
  167.    Date9:=' ';
  168.    Date10:=' ';
  169.    mes1:=' ';
  170.    mes2:=' ';
  171.    mes3:=' ';
  172.    mes4:=' ';
  173.    mes5:=' ';
  174.    mes6:=' ';
  175.    mes7:=' ';
  176.    mes8:=' ';
  177.    mes9:=' ';
  178.    mes10:=' ';
  179.    For i:=1 to 100 DO
  180.        Begin
  181.           Place[i]:=' ';
  182.           Causes[i]:=' ';
  183.           Data[i]:=' ';
  184.           Object[i]:=' ';
  185.           Where[i]:=' ';
  186.        End;
  187. End;
  188.  
  189. Procedure Check;
  190.  
  191. Begin
  192.    Writeln;
  193.    If Date1=Cdate Then Begin
  194.                           Writeln('Important date! ',Mes1);
  195.                           Readln(dummy);
  196.                        End;
  197.    If Date2=Cdate Then Begin
  198.                           Writeln('Important date! ',Mes2);
  199.                           Readln(dummy);
  200.                        End;
  201.    If Date3=Cdate Then Begin
  202.                           Writeln('Important date! ',Mes3);
  203.                           Readln(dummy);
  204.                        End;
  205.    If Date4=Cdate Then Begin
  206.                           Writeln('Important date! ',Mes4);
  207.                           Readln(dummy);
  208.                        End;
  209.    If Date5=Cdate Then Begin
  210.                           Writeln('Important date! ',Mes5);
  211.                           Readln(dummy);
  212.                        End;
  213.    If Date6=Cdate Then Begin
  214.                           Writeln('Important date! ',Mes6);
  215.                           Readln(dummy);
  216.                        End;
  217.    If Date7=Cdate Then Begin
  218.                           Writeln('Important date! ',Mes7);
  219.                           Readln(dummy);
  220.                        End;
  221.    If Date8=Cdate Then Begin
  222.                           Writeln('Important date! ',Mes8);
  223.                           Readln(dummy);
  224.                        End;
  225.    If Date9=Cdate Then Begin
  226.                           Writeln('Important date! ',Mes9);
  227.                           Readln(dummy);
  228.                        End;
  229.    If Date10=Cdate Then Begin
  230.                           Writeln('Important date! ',Mes10);
  231.                           Readln(dummy);
  232.                        End;
  233. End;
  234.  
  235. Procedure Places;
  236.  
  237. Var i           :1..100;
  238.     Buf         :Str80;
  239.  
  240. Begin
  241.    Clrscr;
  242.    Writeln('Memorandum ST - V 1.01');
  243.    Writeln('Special places to visit.');
  244.    Writeln;
  245.    i:=1;
  246.    Write('Would you like to enter data (y/n) ?:');
  247.    Readln(yesno);
  248.    If (yesno='y') Or (yesno='Y') then
  249.      Repeat
  250.        Write('Enter place ( ''Stop'' to stop ):');
  251.        Readln(Buf);
  252.        If buf<>'Stop' Then Place[i]:=Buf;
  253.        Write('Why? :');
  254.        Readln(Buf);
  255.        If Buf<>'Stop' Then Causes[i]:=Buf;
  256.        i:=i+1;
  257.        If i>99 Then i:=99;
  258.      Until Buf='Stop'
  259.    Else
  260.      Begin
  261.         Clrscr;
  262.         Writeln('Memorandum ST - V 1.01');
  263.         Writeln('Preview data.');
  264.         Writeln;
  265.         Write('Would you like to preview the data (y/n) ?:');
  266.         Readln(yesno);
  267.         If (yesno='y') Or (yesno='Y') Then
  268.            Begin
  269.               Clrscr;
  270.               Writeln('Important places to visit...');
  271.               Repeat
  272.                  Writeln(Place[i],' because ',Causes[i]);
  273.                  i:=i+1;
  274.                  Read(dummy);
  275.               Until Place[i]=' ';
  276.            End;
  277.      End;
  278.    d2:=i*80;
  279. End;
  280.  
  281. Procedure Imp_Data;
  282.  
  283. Var i           :1..100;
  284.     Buf         :Str80;
  285.  
  286. Begin
  287.    Clrscr;
  288.    Writeln('Memorandum ST - V 1.01');
  289.    Writeln('Important data.');
  290.    Writeln;
  291.    i:=1;
  292.    Write('Would you like to enter data (y/n) ?:');
  293.    Readln(yesno);
  294.    If (yesno='y') Or (yesno='Y') then
  295.       Writeln('Enter Stop to stop entering data.');
  296.    If (yesno='y') Or (yesno='Y') then
  297.      Repeat
  298.        Write(i,':');
  299.        Readln(Buf);
  300.        If buf<>'Stop' Then DATA[i]:=Buf;
  301.        i:=i+1;
  302.      Until Buf='Stop'
  303.    Else
  304.      Begin
  305.         Clrscr;
  306.         Writeln('Memorandum ST - V 1.01');
  307.         Writeln('Preview data.');
  308.         Writeln;
  309.         Write('Would you like to preview the data (y/n) ?:');
  310.         Readln(yesno);
  311.         If (yesno='y') Or (yesno='Y') Then
  312.            Begin
  313.               Clrscr;
  314.               Writeln('Important information...');
  315.               Repeat
  316.                  Writeln(Data[i]);
  317.                  i:=i+1;
  318.                  If i>99 Then i:=99;
  319.                  Read(dummy);
  320.               Until Data[i]=' ';
  321.            End;
  322.      End;
  323.   d3:=i*80;
  324. End;
  325.  
  326. Procedure My_Desk;
  327.  
  328. Var i           :1..100;
  329.     Buf         :Str80;
  330.     Found       :Boolean;
  331.  
  332. Begin
  333.    Clrscr;
  334.    Writeln('Memorandum ST - 1.01');
  335.    Writeln('Setting up the desktop');
  336.    Writeln;
  337.    Write('Would you like to set your desktop (y/n) ?:');
  338.    Readln(yesno);
  339.    Writeln;
  340.    i:=1;
  341.    If (yesno='y') Or (yesno='Y') Then
  342.       Begin
  343.        Clrscr;
  344.        Writeln('Enter data, Stop to stop.');
  345.        Repeat
  346.          Write('Object:');
  347.          Readln(Buf);
  348.          If buf<>'Stop' Then Object[i]:=buf;
  349.          Write('Where? :');
  350.          Readln(Buf);
  351.          If Buf<>'Stop' Then Where[i]:=Buf;
  352.          i:=i+1;
  353.          If i>99 Then i:=99;
  354.        Until Buf='Stop';
  355.       End;
  356.    d4:=i*80;
  357.    Found:=false;
  358.    Write('Are you looking for something (y/n) ?:');
  359.    Readln(yesno);
  360.    While (yesno='y') or (yesno='Y') Do
  361.       Begin
  362.          Clrscr;
  363.          Writeln('Searching for something...');
  364.          Write('What are you searching for ?:');
  365.          Readln(buf);
  366.          Write('Searching..');
  367.          For i:=1 to 100 Do
  368.              If Object[i]=buf then
  369.               Begin
  370.                 Writeln;
  371.                 Writeln('Found it! ',buf,' -> ',Where[i]);
  372.                 Found:=true;
  373.               End
  374.              Else Write('.');
  375.          If Found=false then
  376.             Begin
  377.                Writeln;
  378.                Writeln('Sorry, can not locate ',buf,' in memory.');
  379.                Found:=true;
  380.             End;
  381.          Write('Are you looking for another thing (y/n) ?:');
  382.          Readln(yesno);
  383.       End;
  384. End;
  385.  
  386. Procedure save_Mem;
  387.  
  388. Var i           :1..100;
  389.  
  390. begin
  391.    Writeln;
  392.    Writeln('Saving memory...');
  393.    Rewrite(fv,'Memory.Dat');
  394.    Writeln(fv,Date1);
  395.    Writeln(fv,mes1);
  396.    Writeln(fv,Date2);
  397.    Writeln(fv,mes2);
  398.    Writeln(fv,Date3);
  399.    Writeln(fv,mes3);
  400.    Writeln(fv,Date4);
  401.    Writeln(fv,mes4);
  402.    Writeln(fv,Date5);
  403.    Writeln(fv,mes5);
  404.    Writeln(fv,Date6);
  405.    Writeln(fv,mes6);
  406.  
  407.  
  408.    Writeln(fv,Date7);
  409.    Writeln(fv,mes7);
  410.    Writeln(fv,Date8);
  411.    Writeln(fv,mes8);
  412.    Writeln(fv,Date9);
  413.    Writeln(fv,mes9);
  414.    Writeln(fv,Date10);
  415.    Writeln(fv,mes10);
  416.    For i:=1 to 100 Do
  417.       begin
  418.         Writeln(fv,Place[i]);
  419.         Writeln(fv,Causes[i]);
  420.       end;
  421.    For i:=1 to 100 Do
  422.        Writeln(fv,Data[i]);
  423.    For i:=1 to 100 Do
  424.       Begin
  425.         Writeln(fv,object[i]);
  426.         Writeln(fv,where[i]);
  427.       End;
  428. End;
  429.  
  430. Procedure Status;
  431.  
  432. Var l           :Long_Integer;
  433.  
  434. Begin
  435.    Clrscr;
  436.    Writeln('+------------------------+');
  437.    Writeln('| Memorandum ST - V 1.01 |');
  438.    Writeln('| Memory status...       |');
  439.    Writeln('+------------------------+');
  440.    Writeln;
  441.    l:=(41680-d1-d2-d3-d4);
  442.    Writeln('Total Free space:',l,' bytes.');
  443.    Writeln('Which is about %',((100*l) div 41680),' of memory free.' );
  444.    If (l>40000) Then Writeln('Memory almost empty.');
  445.    If (l<40000) and (l>35000) Then Writeln('Sufficient amount of memory left');
  446.    If (l<35000) and (l>30000) Then Writeln('An OK amount of memory is left.');
  447.    If (l<30000) and (l>25000) Then Writeln('Enough memory for usual usage.');
  448.    If (l<25000) and (l>20000) Then Writeln('Day to day changes in memory.');
  449. If (l<20000) and (l>15000) Then Writeln('Memory supports only minor changes!');
  450.    If (l<15000) and (l>10000) Then Writeln('Memory almost full!');
  451.    If (l<10000) and (l>5000) Then Writeln('Very small amount of memory left!');
  452.    If (l<5000) Then
  453.       Begin
  454.          Writeln('No more memory left for former processing!!!');
  455.          Save_mem;
  456.       End;
  457.    If object[1]<>' ' Then
  458.       Writeln('Data on setting desktop...');
  459.    If Place[1]<>' ' Then
  460.       Writeln('Data on special places...');
  461.    If data[1]<>' ' Then
  462.       Writeln('Important data in memory...');
  463.    If Date1<>' ' Then
  464.       Writeln('Some important dates in memory...');
  465.    Read(dummy);
  466. End;
  467.  
  468. Procedure Load_Mem;
  469.  
  470. Var i           :1..100;
  471.  
  472. begin
  473.    Writeln;
  474.    Writeln('Loading memory...');
  475.    Write('Please confirm (y/n)...');
  476.    Readln(yesno);
  477.    If (yesno='y') or (yesno='Y') Then
  478.    Begin
  479.      Reset(fv,'Memory.Dat');
  480.      Readln(fv,Date1);
  481.      Readln(fv,Mes1);
  482.      Readln(fv,Date2);
  483.      Readln(fv,Mes2);
  484.      Readln(fv,Date3);
  485.      Readln(fv,Mes3);
  486.      Readln(fv,Date4);
  487.      Readln(fv,Mes4);
  488.      Readln(fv,Date5);
  489.      Readln(fv,Mes5);
  490.      Readln(fv,Date6);
  491.      Readln(fv,Mes6);
  492.      Readln(fv,Date7);
  493.      Readln(fv,Mes7);
  494.      Readln(fv,Date8);
  495.      Readln(fv,Mes8);
  496.      Readln(fv,Date9);
  497.      Readln(fv,Mes9);
  498.      Readln(fv,Date10);
  499.      Readln(fv,Mes10);
  500.      For i:=1 to 100 Do
  501.         Begin
  502.            Readln(fv,Place[i]);
  503.            Readln(fv,Causes[i]);
  504.         End;
  505.      For i:=1 to 100 Do
  506.        Readln(fv,Data[i]);
  507.      For i:=1 to 100 Do
  508.        Begin
  509.           Readln(fv,object[i]);
  510.           Readln(fv,Where[i]);
  511.        End;
  512.    End;
  513. End;
  514.  
  515. Procedure Help_Me;
  516.  
  517. Procedure AFR;
  518.  
  519. Begin
  520.    Writeln;
  521.    InverseVideo;
  522.    Writeln('Hit << Return >>');
  523.    NormVideo;
  524.    CursOff;
  525.    Readln(dummy);
  526.    Clrscr;
  527.    CursOn;
  528. End;
  529.  
  530. Begin
  531.    Clrscr;
  532.    InverseVideo;
  533.    Writeln('Memorandum ST - V 1.01 - Programmed by Yaron Kidron');
  534.    NormVideo;
  535.    writeln;
  536.    Writeln('Intruduction:');
  537.    Writeln('-------------');
  538.    Writeln('This program is a utility in which helps organizing your desktop');
  539.    Writeln('especially if you are using your ST often.');
  540.    Writeln('The program gathers up some useful settings, and it somewhat ');
  541.    Writeln('operates like a database program. You could use Memorandum ST ');
  542.    Writeln('as a simple database, of course.');
  543.    Writeln('The program does not support any mouse or Gem functions. However');
  544.    Writeln('it is very easy to operate due to its menu and yes/no questions');
  545.    Writeln('usage system.');
  546.    Writeln('This is verision 1.01, and it is public domain software. This ');
  547.    Writeln('program is FREE, and it is not for reselling.');
  548.    AFR;
  549.    Writeln('The Menu screen');
  550.    Writeln('---------------');
  551.    Writeln('The menu desplays the main functions of Memorandum, and asks for');
  552.    Writeln('your decision. To the upper right of the menu, you can notice');
  553.    Writeln('the current program date, in which the program operates on, and');
  554.    Writeln('it is totaly different than the desktop date. Therefore you can');
  555.    Writeln('NOT set the date from the desktop. The default is the 6/17/87.');
  556.    Writeln;
  557.    Writeln('Resetting date: type R and hit return. You would be asked to ');
  558.    Writeln('~~~~~~~~~~~~~~~ change the date, and then gived the choice of');
  559.    Writeln('                storing the date to the disk.');
  560.    Writeln;
  561.    Writeln('Important dates: type D and hit return. You would be asked for');
  562.    Writeln('~~~~~~~~~~~~~~~~ the amount of dates that you want to set - up');
  563.    Writeln('                 to 10, and enter the date & message.');
  564.    Writeln('                 When an important date will match the current');
  565.    Writeln('                 program''s date, it will display a message.');
  566.    AFR;
  567.    Writeln('Special Places: type P and hit return. First of all, you would ');
  568.    Writeln('~~~~~~~~~~~~~~~ be given the choice of entering the data. If you');
  569.    Writeln('                do want to enter the data, type y. Enter the ');
  570.    Writeln('                place''s name, and why is it so special.If you');
  571.    Writeln('                choose to quit, type ''Stop'' both on the place');
  572.    Writeln('                and the reason.');
  573.    Writeln('                If you enter any other character for the first');
  574.    Writeln('                question, you will be asked if you will like to');
  575.    Writeln('                preview the data. If you select so, the data ');
  576.    Writeln('                will be displayed on the screen.');
  577.    Writeln;
  578.    Writeln('Important data: type I and hit return. This option acts like a ');
  579.    Writeln('~~~~~~~~~~~~~~~ notepad, or a word-processor. Select either you');
  580.    Writeln('                want to enter the data, and continue on.');
  581.    Writeln('                If you do enter the data, on the left, you will ');
  582.    Writeln('                notice the line numbers.');
  583.    Writeln('                Then, you will be given the option of previewing');
  584.    Writeln('                your information. Type y to do so.');
  585.    AFR;
  586.    Writeln('Desktop places: Did once happen that you went banannas because');
  587.    Writeln('~~~~~~~~~~~~~~~ you forgot where you put a certain object? this');
  588.    Writeln('                option organizes your desktop, and makes life ');
  589.    Writeln('                easier when it comes to searching. Enter the ');
  590.    Writeln('                data which consists of the objects name and the');
  591.    Writeln('                location of it. If you are looking for it, type ');
  592.    Writeln('                the correct name for the object, and you will ');
  593.    Writeln('                get it''s location.');
  594.    Writeln;
  595.    Writeln('Clear memory:   Clears the memory TOTALY! Nothing will be left');
  596.    Writeln('~~~~~~~~~~~~~   in memory after this action takes place. Take');
  597.    Writeln('                care!!!');
  598.    Writeln;
  599.    Writeln('Save & Load Memory: This option is quiet obvious. It saves the');
  600.    Writeln('~~~~~~~~~~~~~~~~~~~ memory to the Floppy / Hard / Ram disk, and ');
  601.    Writeln('                    Recalls it back.');
  602.    Writeln;
  603.    Writeln('Status: Gives you a complete status of the memory.');
  604.    Writeln('~~~~~~~');
  605.    AFR;
  606.    Writeln('Load Date:  Looks for a date file on the disk, and replaces it');
  607.    Writeln('~~~~~~~~~~  with the current program date.');
  608.    Writeln;
  609.    Writeln('Quit:       Returns to the Gem Desktop, after you confirm it.');
  610.    Writeln('~~~~~');
  611.    Writeln;
  612.    Writeln('Help:       You just found what it is.');
  613.    Writeln('~~~~~');
  614.    AFR;
  615.    Writeln('Information about data files:');
  616.    Writeln('-----------------------------');
  617.    Writeln('DATE FILES are 9 bytes long, and gathers the string value of');
  618.    Writeln('~~~~~~~~~~ the date.');
  619.    Writeln;
  620.    Writeln('MEMORY FILES are up to 41600 bytes long, and gathers the total');
  621.    Writeln('~~~~~~~~~~~~ memory as follows:');
  622.    Writeln;
  623.    Writeln('             10 dates & 10 messages each ');
  624.    Writeln('             up to 80 bytes                 = 20*80  =  1600');
  625.    Writeln('             100 places & 100 reasons, ');
  626.    Writeln('             each up to 80 bytes            = 200*80 = 16000');
  627.    Writeln('             100 information strings, each');
  628.    Writeln('             up to 80 bytes                 = 100*80 =  8000');
  629.    Writeln('             100 objects & 100 locations,');
  630.    Writeln('             each up to 80 bytes            = 200*80 = 16000');
  631.    Writeln;
  632.    Writeln('             Total                                     41600');
  633.    AFR;
  634. End;
  635.  
  636.  
  637. Begin
  638.    Run:=true;
  639.    Cdate:='6/17/87';
  640.    Clear_Mem;
  641.    CursOn;
  642.    While Run=true Do
  643.       Begin
  644.          Text;
  645.          Case Command Of
  646.             'q','Q':Begin
  647.                        Writeln;
  648.                        Write('Exit to the Gem Desktop (y/n) ?:');
  649.                        Readln(yesno);
  650.                        If (yesno='n') or (yesno='N') Then run:=true
  651.                        Else run:=false;
  652.                     End;
  653.             'r','R':Reset_Date;
  654.             'o','O':Load_Date;
  655.             'd','D':Imp_Dates;
  656.             'c','C':Clear_Mem;
  657.             'p','P':Places;
  658.             'i','I':Imp_data;
  659.             'k','K':My_Desk;
  660.             't','T':Status;
  661.             's','S':Save_Mem;
  662.             'l','L':Load_Mem;
  663.             'h','H':Help_Me;
  664.          End;
  665.          Check;
  666.       End;
  667. End.
  668.