home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
archives
/
mskermit.tar.gz
/
mskermit.tar
/
msboot.f
< prev
next >
Wrap
Text File
|
1988-08-16
|
3KB
|
74 lines
C This Fortran program should be run on the mainframe in conjunction
C with a Basic program (MSPCBOOT.BAS) on the PC to transfer
C MSKERMIT.BOO to the PC and translate it into KERMIT.EXE. This
C program uses a very rudimentary technique to try to insure that
C the characters it sends arrive correctly. It just sends a count
C of the number of characters sent after each line. In this way any
C errors of character loss or insertion will be caught. If a
C character is just corrupted it will not be caught. Hopefully if
C this happens it will be in a non-critical part of the KERMIT.EXE
C file. The reason a simple checksum was not used was so that this
C program could run on machines using either EBCDIC or ASCII
C characters. This program should take about thirty minutes to run.
C
C This program assumes that the standard input and standard output units
C are directed to the terminal. The program prompts for the name of a
C file to transfer (e.g. MSKERMIT.BOO) and opens unit 7 with than name.
C
C Modified by:
C Tom Putnam, Purdue University Computing Center, Dec. 1985.
C (changed to FORTRAN 77, prompt for file name, cleanup)
C
C Original by:
C Bill Catchings, Columbia University Center for Computing Activities
C June 1984 (Revised September 1984)
C
CHARACTER*1 LINE(77), ACK, OK, SPACE, COMMA
CHARACTER*30 FNAME
PRINT *, 'Enter the full name of the .BOO file to transfer'
READ (*,5) FNAME
5 FORMAT(A30)
OPEN(UNIT=7,FILE=FNAME,STATUS='OLD',ERR=99)
PRINT *,'Ready to transfer data, now run MSPCBOOT.BAS on the PC.'
C Get characters for constants (character constants are rough in
C some FORTRANs).
READ (*,10) OK, SPACE, COMMA, ACK
10 FORMAT(4A1)
C Get new line from file.
20 READ (7,30,END=80)LINE
30 FORMAT(77A1)
C Count the characters as some rudimentary check for noise.
I = 1
40 IF (LINE(I) .EQ. SPACE) GO TO 50
I = I + 1
GO TO 40
C Put in a comma followed by the count.
50 LINE(I) = COMMA
C Write to TTY.
60 WRITE (*,70)LINE,I-1
70 FORMAT(77A1,I2)
C Get terminal handshake.
READ (*,10)ACK
C Did the other side like it? (Did they send OK?)
IF (ACK .NE. OK) GO TO 60
GOTO 20
C Send good-bye message.
80 WRITE (*,90)
90 FORMAT(10('&'),',10')
STOP
C Here if error opening file
99 PRINT *,'Error - cannot open file = ',FNAME
STOP
END