home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / basic / mxshkf.for < prev    next >
Encoding:
Text File  |  1989-11-09  |  1.3 KB  |  43 lines

  1. C *********************** SHAKESPEARE ****************
  2. C This program is in file MXSHKF.FOR
  3. C Declare interface to BASIC routine ADDSTRING.
  4. C All parameters must be passed NEAR, for compatibility with BASIC's
  5. C conventions.
  6. C
  7.  
  8.  
  9.        INTERFACE TO SUBROUTINE ADDSTR[ALIAS:'ADDSTRING']
  10.      * (S1,L1,S2,L2,S3,L3)
  11.        INTEGER*2 S1 [NEAR]
  12.        INTEGER*2 L1 [NEAR]
  13.        INTEGER*2 S2 [NEAR]
  14.        INTEGER*2 L2 [NEAR]
  15.        INTEGER*2 S3 [NEAR]
  16.        INTEGER*2 L3 [NEAR]
  17.        END
  18. C
  19. C Declare subroutine SHAKESPEARE, which declares two strings, calls BASIC
  20. C subroutine ADDSTRING, and prints the result.
  21. C
  22.        SUBROUTINE SHAKES [ALIAS:'SHAKESPEARE']
  23.        CHARACTER*50 STR1, STR2
  24.        CHARACTER*100 STR3
  25.        INTEGER*2 STRLEN1, STRLEN2, STRLEN3
  26.        INTEGER*2 TMP1, TMP2, TMP3
  27. C
  28. C The subroutine uses FORTRAN LEN_TRIM function, which returns the length
  29. C of string, excluding trailing blanks. (All FORTRAN strings are initialized
  30. C to blanks.)
  31. C
  32.        STR1 = 'To be or not to be;'
  33.        STRLEN1 = LEN_TRIM(STR1)
  34.        STR2 = ' that is the question.'
  35.        STRLEN2 = LEN_TRIM(STR2)
  36.        TMP1 = LOC(STR1)
  37.        TMP2 = LOC(STR2)
  38.        TMP3 = LOC(STR3)
  39.        CALL ADDSTR (TMP1, STRLEN1, TMP2, STRLEN2, TMP3, STRLEN3)
  40.        WRITE (*,*) STR3
  41.        END
  42.  
  43.