home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
cpm
/
programs
/
list
/
msigns12.ark
/
GMAKEFNT.SRC
< prev
next >
Wrap
Text File
|
1986-12-24
|
4KB
|
116 lines
PROGRAM GMakeFnt;
{******************************************************************************
**
** Author: Robert W. Bloom
**
** Function: This program reads input from the file 'CHARS.ASC' and creates
** a file 'CHARS.DAT.' CHARS.DAT is used by the program 'SIGNS'
** to create signs or banners. See Signs.DOC for more info.
** This is a generic Pascal version for Pascal MT+.
**
*****************************************************************************}
CONST
Date = '30 Apr 86'; {date of last revision of this prog}
Input_DFN = 'Chars.ASC'; {default input file}
Output_DFN = 'GChars.DAT'; {default output file}
Max_Width = 10; {these must be no greater then input file}
Max_Height = 12; {and match CONSTs in signs.pas!}
TYPE
CHAR_RECORD = RECORD {record type used for random access}
character : CHAR;
width : INTEGER;
height : INTEGER;
pic : ARRAY[1..Max_Height,1..Max_Width] OF CHAR
END; {record}
IN_FILE_TYPE = TEXT;
OUT_FILE_TYPE = FILE OF CHAR_RECORD;
LABEL 1; {for error recovery}
VAR c : CHAR;
ans,ifn,ofn : STRING[14];
input_fn : IN_FILE_TYPE;
output_fn : OUT_FILE_TYPE;
trans_chr : CHAR_RECORD;
i,j,result : INTEGER;
BEGIN
WRITELN('<<< program -- MakeFont, ',Date,' -- started >>>');
WRITELN;
1: WRITE('Enter filename of input file, <cr> for the default ''Chars.ASC'' -->');
READLN(ans);
IF ans = '' THEN
ifn := Input_DFN
ELSE
ifn := ans;
WRITE('Enter filename of output file, <cr> for the default ''GChars.DAT'' -->');
READLN(ans);
IF ans = '' THEN
ofn := Output_DFN
ELSE
ofn := ans;
ASSIGN(input_fn,ifn);
RESET(input_fn);
IF IORESULT = 255 THEN BEGIN
WRITELN('No input file found!');
GOTO 1
END;
ASSIGN(output_fn,ofn);
REWRITE(output_fn);
IF IORESULT = 255 THEN BEGIN
WRITELN('failed trying to open output file - enter a different name!');
GOTO 1
END;
WRITELN;
WRITE('Date of font file --> ');
FOR i := 1 TO 10 DO BEGIN
READ(input_fn,c);
WRITE(c);
END; {output date of file}
READLN(input_fn); {skip rest of line}
WRITELN;
WRITE('defining characters --> ');
WHILE NOT EOF(input_fn) DO
WITH trans_chr DO BEGIN
FOR i := 1 TO Max_Height DO
FOR j := 1 TO Max_Width DO
pic[i,j] := ' '; {fill with all spaces}
READLN(input_fn,character,width,height);
FOR i := 1 TO height DO BEGIN
FOR j := 1 TO width DO
READ(input_fn,pic[i,j]);
READLN(input_fn)
END;
WRITE(output_fn,trans_chr); {write out record to file}
WRITE(character); {echo char just processed}
(* WRITELN; {echo of char picture}
FOR i := 1 TO Max_Height DO BEGIN {commented out for less 'noise'}
FOR j := 1 TO Max_Width DO {during processing}
WRITE(pic[i,j]);
WRITELN
END; *)
END; {with trans_chr}
{END while}
WRITELN;
CLOSE(input_fn,result);
CLOSE(output_fn,result);
WRITELN;
WRITELN('<<< program -- MakeFont -- completed >>>')
END.
(input_fn,result);
CLOSE(output_fn,result);
WRI