% This is DVITYPE.CHGCMS in text format, as of jun 25, 1986 % (change file for IBM CMS PASCAL/VS, created by B.SCHULZE, SFB72) % % %line numbers correspond to version 2.8 of DVITYPE (of may 5, 1986) % (more or less) % %line 105 % %module 2 @x othercases, terminal I/O @d random_reading==true {should we skip around in the file?} @d othercases == others: {default for cases not listed explicitly} @d endcases == @+end {follows the default case in an extended |case| statement} @y @d random_reading==false {should we skip around in the file?} @d othercases == otherwise {default for cases not listed explicitly} @d endcases == @+end {follows the default case in an extended |case| statement} @d term_in == INTERM {terminal input} @d term_out == OUTTERM {terminal output} @z % %line 126 % %module 3 @x open terminal begin print_ln(banner);@/ @y begin @= termin@>(term_in); @= termout@>(term_out); {prepare the terminal for output} print_ln(banner);@/ @z % %line 149 % %module 5 @x font files @!name_length=50; {a file name shouldn't be longer than this} @y @!name_length=20; {a file name shouldn't be longer than this} @!dvi_max_size=4096; {should fit all installations} @!tfm_max_size=4096; @z % %line 215 % %module 9 @x text files @!text_file=packed file of text_char; @y @!text_file=text; @z % %line 838 % %module 21 @x packed @!eight_bits=0..255; {unsigned one-byte quantity} @!byte_file=packed file of eight_bits; {files that contain binary data} @y @!eight_bits=packed 0..255; {unsigned one-byte quantity} @z % %line 847 % %module xx @x @!dvi_file:byte_file; {the stuff we are \.{DVI}typing} @!tfm_file:byte_file; {a font metric file} @y @!dvi_file:text; @!tfm_file:text; @!dvi_rec:string(dvi_max_size); @!tfm_rec:string(tfm_max_size); @!tfm_ptr,tfm_rec_size:integer; {current position (last read) and} @!dvi_ptr,dvi_rec_size:integer; {length of current record} @!eof_dvi_file:boolean; @!eof_tfm_file:boolean; @z % %line 867 % %module 23 @x open dvi file begin reset(dvi_file); @y begin reset(dvi_file); read_ln(dvi_file,dvi_rec); dvi_ptr:=0; dvi_rec_size:= @= LENGTH @> (dvi_rec); if dvi_rec_size=0 then eof_dvi_file:=true else eof_dvi_file:=false; @z % %line 872 % %module 23 @x open tfm file begin reset(tfm_file,cur_name); @y begin reset(tfm_file,'NAME='||trim(str(cur_name))); read_ln(tfm_file,tfm_rec); tfm_ptr:=0; tfm_rec_size:= @= LENGTH @> (tfm_rec); if tfm_rec_size=0 then eof_tfm_file:=true else eof_tfm_file:=false; @z % %line 891 % %module xx @x begin read(tfm_file,b0); read(tfm_file,b1); read(tfm_file,b2); read(tfm_file,b3); end; @y begin {length of current record should be 0 mod 4} if tfm_ptr + 4 >= tfm_rec_size then begin read_ln(tfm_file,tfm_rec); tfm_ptr:=0; end; b0:=ord(tfm_rec(.tfm_ptr+1.)); b1:=ord(tfm_rec(.tfm_ptr+2.)); b2:=ord(tfm_rec(.tfm_ptr+3.)); b3:=ord(tfm_rec(.tfm_ptr+4.)); tfm_ptr:=tfm_ptr+4; eof_tfm_file:=eof(tfm_file) & (tfm_ptr >= tfm_rec_size); end; procedure read_dvi(var b:eight_bits); begin if dvi_ptr >= dvi_rec_size then begin read_ln(dvi_file,dvi_rec); dvi_ptr:=0; end; b:=ord(dvi_rec(.dvi_ptr+1.)); incr(dvi_ptr); eof_dvi_file:=eof(dvi_file) & (dvi_ptr >= dvi_rec_size); end; @z % %line 904 % %module 27 @x begin if eof(dvi_file) then get_byte:=0 else begin read(dvi_file,b); incr(cur_loc); get_byte:=b; @y begin if eof_dvi_file then get_byte:=0 else begin read_dvi(b); incr(cur_loc); get_byte:=b; @z % %line 911 % %module xx @x begin read(dvi_file,b); incr(cur_loc); @y begin read_dvi(b); incr(cur_loc); @z % %line 917 % %module xx @x begin read(dvi_file,a); read(dvi_file,b); @y begin read_dvi(a); read_dvi(b); @z % %line 924 % %module xx @x begin read(dvi_file,a); read(dvi_file,b); @y begin read_dvi(a); read_dvi(b); @z % %line 932 % %module xx @x begin read(dvi_file,a); read(dvi_file,b); read(dvi_file,c); @y begin read_dvi(a); read_dvi(b); read_dvi(c); @z % %line 939 % %module xx @x begin read(dvi_file,a); read(dvi_file,b); read(dvi_file,c); @y begin read_dvi(a); read_dvi(b); read_dvi(c); @z % %line 947 % %module xx @x begin read(dvi_file,a); read(dvi_file,b); read(dvi_file,c); read(dvi_file,d); @y begin read_dvi(a); read_dvi(b); read_dvi(c); read_dvi(d); @z % %line 970 % %module 28 @x random begin set_pos(dvi_file,-1); dvi_length:=cur_pos(dvi_file); end; @# procedure move_to_byte(n:integer); begin set_pos(dvi_file,n); cur_loc:=n; end; @y begin dvi_length := 0 end; @# procedure move_to_byte(n:integer); begin cur_loc := 0 end; @z % %line 1107 % %module 46 @x begin if eof(tfm_file) then goto 9997; @y begin if eof_tfm_file then goto 9997; @z % %line 1304 % %module 46 @x break @d update_terminal == break(term_out) {empty the terminal output buffer} @y @d update_terminal ==write_ln(term_out) {empty the terminal output buffer} @z % %line 1311 % %module 47 @x read from terminal @p procedure input_ln; {inputs a line from the terminal} var k:0..terminal_line_length; begin update_terminal; reset(term_in); if eoln(term_in) then read_ln(term_in); k:=0; while (k= for k:=1 to name_length do cur_name[k]:=' '; if p=0 then begin for k:=1 to default_directory_name_length do cur_name[k]:=default_directory[k]; r:=default_directory_name_length; end else r:=0; for k:=font_name[nf] to font_name[nf+1]-1 do begin incr(r); if r+4>name_length then abort('DVItype capacity exceeded (max font name length=', name_length:1,')!'); @.DVItype capacity exceeded...@> if (names[k]>="a")and(names[k]<="z") then cur_name[r]:=xchr[names[k]-@'40] else cur_name[r]:=xchr[names[k]]; end; cur_name[r+1]:='.'; cur_name[r+2]:='T'; cur_name[r+3]:='F'; cur_name[r+4]:='M' @y @= for k:=1 to name_length do cur_name[k]:=' '; r:=0; for k:=font_name[nf] to font_name[nf+1]-1 do begin incr(r); if r+6>name_length then abort('DVItype capacity exceeded (max font name length=', name_length:1,')!'); @.DVItype capacity exceeded...@> if (names[k]>="a")and(names[k]<="z") then cur_name[r]:=xchr[names[k]-@'40] else cur_name[r]:=xchr[names[k]]; end; cur_name[r+1]:='.'; cur_name[r+2]:='T'; cur_name[r+3]:='F'; cur_name[r+4]:='M'; cur_name[r+5]:='.'; cur_name[r+6]:='*'; @z % %line 1642 % %module 69 @x we have no brackets begin print('['); for k:=1 to text_ptr do print(xchr[text_buf[k]]); print_ln(']'); @y begin print('('); for k:=1 to text_ptr do print(xchr[text_buf[k]]); print_ln(')'); @z % %line 1813 % %module xx @x if eof(dvi_file) then bad_dvi('the file ended prematurely'); @y if eof_dvi_file then bad_dvi('the file ended prematurely'); @z % %line 2122 % %module xx @x begin if eof(dvi_file) then bad_dvi('the file ended prematurely'); @y begin if eof_dvi_file then bad_dvi('the file ended prematurely'); @z % %line 2301 % %module xx @x while (m=223)and not eof(dvi_file) do m:=get_byte; if not eof(dvi_file) then bad_dvi('signature in byte ',cur_loc-1:1, @y while (m=223)and not eof_dvi_file do m:=get_byte; if not eof_dvi_file then bad_dvi('signature in byte ',cur_loc-1:1, @z