TeX output file(DVI.rfh):
Class: Text, Status: Complete, Last change: 29.09.2000 20:34:30
set byteorder rev
type
TCh1 char
TCh2 num+(2)
TCh3 num+(3)
TCh4 num-(4)
int1 num-(1)
int2 num-(2)
int3 num-(3)
int4 num-(4)
uint1 num+(1)
uint2 num+(2)
uint3 num+(3)
uint4 num+(4)
TFOfs uint4
TChars7 array of Char ?@>127!void;
TDVIOpCode enum uint1 (
// op_set_char_0=0,
// op_set_char_1..op_set_char_127.
op_set1=128, //c[1]
op_set2=129, //c[2]
op_set3=130, //c[3]
op_set4=131, //c[4],
op_set_rule=132, //a[4],b[4],
op_put1=133, //c[1]
op_put2=134, //c[2]
op_put3=135, //c[3]
op_put4=136, //c[4]
op_put_rule=137, //a[4],b[4]
op_nop=138,
op_bop=139, //c_0[4],c_1[4]..c_9[4], p[4]. Beginning of a page
op_eop=140, //End of page
op_push=141, //Push the current values of h,v,w,x,y,z
op_pop=142, //Pop the top six values off of the stack
op_right1=143, //b[1]. Set h=h+b, i.e., move right b units.
op_right2=144, //b[2]
op_right3=145, //b[3]
op_right4=146, //b[4]
op_w0=147, //h=h+w; i.e., move right w units.
op_w1=148, //b[1]. w=b and h=h+b.
op_w2=149, //b[2]
op_w3=150, //b[3]
op_w4=151, //b[4]
op_x0=152, //h=h+x; i.e., move right x units.
op_x1=153, //b[1]
op_x2=154, //b[2]
op_x3=155, //b[3]
op_x4=156, //b[4]
op_down1=157, //a[1]. Set v=v+a, i.e., move down a units.
op_down2=158, //a[2]
op_down3=159, //a[3]
op_down4=160, //a[4]
op_y0=161, //v=v+y; i.e., move down y units.
op_y1=162, //a[1]. Set y=a and v=v+a.
op_y2=163, //a[2]
op_y3=164, //a[3]
op_y4=165, //a[4]
op_z0=166, //v=v+z; i.e., move down z units.
op_z1=167, //a[1]. Set z=a and v=v+a.
op_z2=168, //a[2]
op_z3=169, //a[3]
op_z4=170, //a[4]
op_fnt_num_0=171, //f=0. Font 0 must previously have been
//defined by a fnt_def instruction, as explained below.
op_fnt_num_63=234,
//op_fnt_num_1..op_fnt_num_63, // (opcodes 172 to 234).
op_fnt1=235, //k[1]. Set f=k.
op_fnt2=236, //k[2]
op_fnt3=237, //k[3]
op_fnt4=238, //k[4]
op_xxx1=239, //k[1],x[k]. This command is undefined in
//general; it functions as a (k+2)-byte nop unless special DVI-reading
//programs are being used.
op_xxx2=240, //k[2],x[k]
op_xxx3=241, //k[3],x[k]
op_xxx4=242, //k[4],x[k]
op_fnt_def1=243, //k[1],c[4],s[4],d[4],a[1],l[1],n[a+l]. Define font k
op_fnt_def2=244,
op_fnt_def3=245,
op_fnt_def4=246,
op_pre=247, //i[1],num[4],den[4],mag[4],k[1],x[k].
//Beginning of the preamble; this must come at the very
//beginning of the file.
op_post=248, // p[4],num[4],den[4],mag[4],l[4],u[4],s[2],t[2].
//Beginning of the postamble.
op_post_post=249 //q[4],i[1] Ending of the postamble.
)
TFntInf struc
uint4 c //Check sum of font file
int4 s
int4 d
uint1 a
uint1 b
array[@.a] of Char na
array[@.b] of Char nb
ends
TDVIOp struc
TDVIOpCode Op
case @.Op of
op_set1,op_put1: TCh1
op_set2,op_put2: TCh2
op_set3,op_put3: TCh3
op_set4,op_put4: TCh4
op_set_rule,op_put_rule: struc
int4 a
int4 b
ends
op_bop: struc
array[10] of int4 C
TFOfs P
ends
op_right1,op_w1,op_down1,op_x1,op_y1,op_z1: int1
op_right2,op_w2,op_down2,op_x2,op_y2,op_z2: int2
op_right3,op_w3,op_down3,op_x3,op_y3,op_z3: int3
op_right4,op_w4,op_down4,op_x4,op_y4,op_z4: int4
op_fnt1: uint1
op_fnt2: uint2
op_fnt3: uint3
op_fnt4: int4
op_xxx1: struc
uint1 cnt
raw[@.cnt] X
ends
op_xxx2: struc
uint2 cnt
raw[@.cnt] X
ends
op_xxx3: struc
uint3 cnt
raw[@.cnt] X
ends
op_xxx4: struc
uint4 cnt
raw[@.cnt] X
ends
op_fnt_def1: struc
uint1 K
TFntInf FI
ends
op_fnt_def2: struc
uint2 K
TFntInf FI
ends
op_fnt_def3: struc
uint3 K
TFntInf FI
ends
op_fnt_def4: struc
int4 K
TFntInf FI
ends
op_pre: struc
int1 i
int4 num
int4 den
int4 mag
uint1 k
array[@.k]of char x
ends
op_post: struc
TFOfs P
int4 num
int4 den
int4 mag
int4 l
int4 u
int2 s //Max Stack depth
int2 t //Total N of pages
ends
op_post_post: struc
TFOfs Q
int1 i
ends
endc Prm
// TChars7 C
ends: assert[@.Op>=0x80]
TFntNum enum uint1 @-TDVIOpCode.op_fnt_num_0; :
assert[@>=TDVIOpCode.op_fnt_num_0,@<=TDVIOpCode.op_fnt_num_63]
TDVIRec try
FN: TFntNum
Op: TDVIOp
S: TChars7
endt
TDVIOps array of TDVIRec:[@:Size=FileSize]
data
0 TDVIOps Ops
Other specifications.
FlexT home page,
Author`s home page.