Microsoft KB Archive/57572

From BetaArchive Wiki
Knowledge Base

DOCERR: Formatted I/O, Carriage Control, and LPT2

Article ID: 57572

Article Last Modified on 12/1/2003


  • Microsoft FORTRAN Compiler 5.0
  • Microsoft FORTRAN Compiler 5.1
  • Microsoft FORTRAN Compiler 5.0
  • Microsoft FORTRAN Compiler 5.1

This article was previously published under Q57572


The section on "Carriage Control" on Page 78 of the "Microsoft FORTRAN Reference" manual for Version 5.0 states the following:

When formatted I/O is used to transfer a record to a terminal device, such as screen or printer, the first character of that record is interpreted as a carriage control character, and is not printed.

This is not true for printers connected to LPT2. Thus, the carriage control characters listed on Page 79 of the FORTRAN reference manual will not be interpreted properly for the printers connected to LPT2.

The following program is supposed to form feed and then print "5 years". However, it does not form feed and it prints "15 years":

      open (10, file='LPT2', status='OLD')
200   format ('15 years')

To get the desired behavior, either change 'LPT2' to 'LPT1' in the OPEN statement and connect the printer to LPT1, or use the CHAR function to send the carriage control characters to the printer on LPT2. The following code sample demonstrates the second workaround:

      open (10, file='LPT2', status='OLD')
      write(10,200) char(12)   ! Form Feed - ASCII 12
200   format (a1,'5 years')

Additional query words: 5.00 nofps 5.10

Keywords: KB57572