/************************************************************* * external data declaration for footnote global variable * *************************************************************/ declare fbuf(128) byte external, /* line buffer for footnote */ footbuf(768) byte external, /* buffer storage for footnote text */ footptr address external, /* pointer next to fill */ fprint address external, /* pointer next to print */ foutp byte external, /* last char position in fbuf */ foutw byte external, /* width of text currently in fbuf */ foutwds byte external, /* number of words in fbuf */ flength byte external, /* footnote input length */ footlen byte external, /* footnote text length in buffer */ firstptr byte external, lastptr byte external, ptrlist (20) address external, topfn(10) byte external; /* top of footnote */ getline: procedure external; end getline; breakf: procedure external; end breakf; /********************************************************** * footnote - stores input text into footbuf * **********************************************************/ footnote: procedure public; declare i byte; declare tivalt byte; /* temporary indent&right margin */ tivalt = tival; tival = inval; do i = 1 to flength; /* flength is the footnote length */ do while getword > 0; call putword(.fbuf, .foutp, .foutw, .foutwds); end; if i < flength then call getline; /* dont call outside */ /* footnote portion */ end; call breakf; footlen = lastptr - firstptr + 1; /* footnote length in footbuf */ flength = 0; tival = tivalt; end footnote;