home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / basic / mxshkp.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-11-09  |  1.1 KB  |  36 lines

  1. { ************************ SHAKESPEARE ******************
  2.   This program is in file MXSHKP.PAS }
  3.  
  4. MODULE MPAS;
  5. TYPE
  6.     ADRCHAR = ADR OF CHAR;
  7. VAR
  8.     S1, S2, S3 : LSTRING (100);
  9.     S1LEN, S2LEN, S3LEN : INTEGER;
  10.     TMP1, TMP2, TMP3 : ADRCHAR;
  11. { Declare interface to procedure ADDSTRING, which concatenates first
  12.   two strings passed and places the result in the third string
  13.   passed. }
  14. PROCEDURE ADDSTRING (VAR TMP1:ADRCHAR; VAR STR1LEN:INTEGER;
  15.              VAR TMP2:ADRCHAR; VAR STR2LEN:INTEGER;
  16.              VAR TMP3:ADRCHAR; VAR STR3LEN:INTEGER ); EXTERN;
  17. { Procedure Shakespeare declares two strings, calls Basic procedure
  18.   AddString to concatenate them, then prints results. With LSTRING
  19.   type, not that element 0 contains length byte. String data starts
  20.   with element 1. }
  21. PROCEDURE SHAKESPEARE;
  22.     BEGIN
  23.     S1:='To be or not to be;';
  24.     S1LEN:=ORD(S1[0]);
  25.     S2:=' that is the question.';
  26.     S2LEN:=ORD(S2[0]);
  27.     TMP1:=ADR(S1[1]);
  28.     TMP2:=ADR(S2[1]);
  29.     TMP3:=ADR(S3[1]);
  30.     ADDSTRING (TMP1, S1LEN, TMP2, S2LEN, TMP3, S3LEN);
  31.     S3[0]:=CHR(S3LEN);
  32.     WRITELN(S3);
  33.     END;
  34. END.
  35.  
  36.