diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /systems/knuth/local/texware/tftopl.ch |
Initial commit
Diffstat (limited to 'systems/knuth/local/texware/tftopl.ch')
-rw-r--r-- | systems/knuth/local/texware/tftopl.ch | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/systems/knuth/local/texware/tftopl.ch b/systems/knuth/local/texware/tftopl.ch new file mode 100644 index 0000000000..2c1304d3b5 --- /dev/null +++ b/systems/knuth/local/texware/tftopl.ch @@ -0,0 +1,128 @@ +% Change file for the TFtoPL processor, for use with GNU Pascal. +% (by Don Knuth, based on the work of Pavel Curtis in ../texware-sparc) + +% History: +% 2000.04.30 Original version + +% The section numbers used in this file refer to the current numbers, +% and, where different, also to those in the standard TeXware report (CS1097). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% [0] WEAVE: print changes only +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +@x +\pageno=\contentspagenumber \advance\pageno by 1 +@y +\pageno=\contentspagenumber \advance\pageno by 1 +\let\maybe=\iffalse +\def\title{TF\lowercase{to}PL changes for GNU Pascal} +@z + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% [1] Change banner string +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +@x +@d banner=='This is TFtoPL, Version 3.1' {printed when the program starts} +@y +@d banner=='This is TFtoPL, Version 3.1 for Linux' + {printed when the program starts} +@z + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% [2] Fix files in program statement; add external access procedure +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +@x +@p program TFtoPL(@!tfm_file,@!pl_file,@!output); +label @<Labels in the outer block@>@/ +const @<Constants in the outer block@>@/ +type @<Types in the outer block@>@/ +var @<Globals in the outer block@>@/ +@y +@p program TFtoPL(@!output); +label @<Labels in the outer block@>@/ +const @<Constants in the outer block@>@/ +type UNIX_file_name=packed array[1..100] of char; + @<Types in the outer block@>@/ +var @<Globals in the outer block@>@/ +@\ +@=#include "texwarext.h"@> +@\@/ +@z + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% [6] Fix declaration of tfm_file; declare extra TFM-file variables +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +@x +@!tfm_file:packed file of 0..255; +@y +@!tfm_file:packed file of ByteCard; {files that contain binary data} +@!tfm_name:UNIX_file_name; +@!tfm_byte:integer; +@z + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% [7] Open TFM file +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +@x +@ On some systems you may have to do something special to read a +packed file of bytes. For example, the following code didn't work +when it was first tried at Stanford, because packed files have to be +opened with a special switch setting on the \PASCAL\ that was used. +@^system dependencies@> + +@<Set init...@>= +reset(tfm_file); +@y +@ On some systems you may have to do something special to read a +packed file of bytes. + +@<Set init...@>= +if argc < 3 then begin + print_ln('Usage: tftopl <tfm-file> <pl-file>'); + goto final_end; +end; +argv(1, tfm_name); +if testreadaccess(tfm_name) then reset(tfm_file, tfm_name) +else begin print_ln('I can''t read the TFM file!'); goto final_end; + end; +@z + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% [16] Declare pl_name +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +@x +@!pl_file:text; +@y +@!pl_file:text; +@!pl_name: UNIX_file_name; +@z + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% [17] Open PL file +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +@x +@ @<Set init...@>= +rewrite(pl_file); +@y +@ @<Set init...@>= +argv(2, pl_name); +rewrite(pl_file, pl_name); +@z + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% [18] Fix definition of byte +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +@x +@!byte=0..255; {unsigned eight-bit quantity} +@y +@!byte=ByteCard; {unsigned eight-bit quantity} +@z + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% [99, was 88] Add printing of newline at end of program +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +@x +final_end:end. +@y +final_end: print_ln(' '); end. +@z |