home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari FTP
/
ATARI_FTP_0693.zip
/
ATARI_FTP_0693
/
Tex
/
Dvi
/
dvi2ttys.lzh
/
DVI.FOR
< prev
next >
Wrap
Text File
|
1990-12-30
|
3KB
|
71 lines
/*
================================================================================
== DVI file format ==
================================================================================
no_ops >= 0 bytes (NOP, nops before the preamble)
preamble_marker 1 ubyte (PRE)
version_id 1 ubyte (should be version 2)
numerator 4 ubytes (numerater must equal the one in postamble)
denominator 4 ubytes (denominator must equal the one in postamble)
magnification 4 ubytes (magnification must equal the one in postamble)
id_len 1 ubyte (lenght of identification string)
id_string id_len ubytes (identification string)
no_ops >= 0 bytes (NOP, nops before a page)
begin_of_page 1 ubyte (BOP)
page_nr 4 sbytes (page number)
do_be_do 36 bytes (filler ????)
prev_page_offset 4 sbytes (offset in file where previous page starts, -1 for none)
... PAGE DATA ...
end_of_page 1 ubyte (EOP)
no_ops ??? >= 0 bytes (NOPS, I think they are allowed here...)
postamble_marker 1 ubyte (POST)
last_page_offset 4 sbytes (offset in file where last page starts)
numerator 4 ubytes (numerater must equal the one in preamble)
denominator 4 ubytes (denominator must equal the one in preamble)
magnification 4 ubytes (magnification must equal the one in preamble)
max_page_height 4 ubytes (maximum page height)
max_page_width 4 ubytes (maximum page width)
max_stack 2 ubytes (maximum stack depth needed)
total_pages 2 ubytes (number of pages in file)
... FONT DEFINITIONS ...
postamble_offset 4 sbytes (offset in file where postamble starts)
version_id 1 ubyte (should be version 2)
trailer >= 4 ubytes (TRAILER)
<EOF>
FONT DEFINITIONS:
do {
switch (c = getc(dvi_fp) {
case FNTDEF1 :
case FNTDEF2 :
case FNTDEF3 :
case FNTDEF4 : define_font(c);
case POSTPOST : break;
default : error;
}
} while (c != POSTPOST);
===== A font def looks like:
1,2,3 or 4 ubytes TeXfontnumber for FNTDEF1 .. FNTDEF4
4 ubytes checksum
4 ubytes scale
4 ubytes design size
1 byte deflen1
1 byte deflen2
deflen1 + deflen2 bytes fontname.
===== A special looks like:
1,2,3 or 4 ubytes telling length of special command for XXX1 .. XXX4
all bytes in the special command are used as defined in the dvi driver.
*/