!++ ! BOOK.R32 ! ! Description: ! ! This file contains macro and literal definitions used when reading ! .DECW$BOOK files. ! ! Written by: ! Darrell Burkhead ! Copyright © 1995, MadGoat Software. ALL RIGHTS RESERVED. ! ! Modifications: ! ! 7-DEC-1994 15:18 Darrell Burkhead ! Creation. !-- LIBRARY 'SYS$LIBRARY:STARLET'; LIBRARY 'FIELDS'; LITERAL rfa_len = RAB$S_RFA, char_width = 4, def_charsize = 140, space_width = def_charsize/ char_width, char_height = 72, highwide_min = 200, ! ! Record types ! type_unknown = 0, type_first = 1, type_book_sect = 3, type_index = 4, type_last = 5, type_sectmap = 6, type_desc = 7, type_font = 9, type_cont_mid = 10, type_cont_end = 11, type_sb_tblhdr = 12, type_asciz_32 = 13, type_sb_font = 14, type_sb_fdesc = 15, type_sb_ndxtext = 16, type_sb_booktext= 18, type_sb_figure = 19, type_sb_hotspot = 20, type_sb_license = 24, ! ! Index types ! menu_contents = 1, menu_index = 2, menu_other = 3; _DEF(firstrec) firstrec_w_type = _WORD, firstrec_l_len = _LONG, firstrec_w_major_ver = _WORD, firstrec_w_minor_ver = _WORD, firstrec_t_author = _BYTES(24), firstrec_t_product = _BYTES(36), firstrec_l_partcount = _LONG, firstrec_l_sectcount = _LONG, firstrec_l_numdirs = _LONG, firstrec_l_numfonts = _LONG, firstrec_l_maxfont = _LONG, firstrec_t_lastptr = _BYTES(rfa_len), firstrec_w_lastsize = _WORD, firstrec_l_docverspage = _LONG, firstrec_l_idxpage = _LONG, firstrec_l_titlepage = _LONG, firstrec_l_sympage = _LONG, firstrec_l_fontpage = _LONG, firstrec_l_firstpage = _LONG, firstrec_l_copypage = _LONG, firstrec_b_titlelen = _BYTE, firstrec_t_title = _BYTES(128), firstrec_q_credate = _QUAD, firstrec_t_id = _BYTES(33), firstrec_t_keystart = _BYTES(0) _ENDDEF(firstrec); ! ! Define the "key" structures. ! _DEF(keyhead) !Common part keyhead_w_type = _WORD, keyhead_l_length = _LONG, keyhead_t_rest = _BYTES(0) _ENDDEF(keyhead); _DEF(ktblhdr) ktblhdr_l_recsize = _LONG, ktblhdr_b_keyid = _BYTE, _OVERLAY(ktblhdr_b_keyid) ktblhdr_v_contents = _BIT, ktblhdr_v_index = _BIT, _ENDOVERLAY ktblhdr_l_count = _LONG, ktblhdr_l_partno = _LONG, ktblhdr_t_title_ac = _BYTES(256), _OVERLAY(ktblhdr_t_title_ac) ktblhdr_b_titlelen = _BYTE, ktblhdr_t_titlebuf = _BYTES(255) _ENDOVERLAY _ENDDEF(ktblhdr); _DEF(txtrec) txtrec_b_type = _BYTE, txtrec_b_len = _BYTE, txtrec_w_hor = _WORD, txtrec_w_ver = _WORD, txtrec_b_font = _BYTE, txtrec_b_x = _BYTE, txtrec_b_y = _BYTE, txtrec_t_text = _BYTES(0) _ENDDEF(txtrec); _DEF(ktext) ktext_t_unknown = _BYTES(10), ktext_b_namelen = _BYTE, ktext_b_numsects = _BYTE, ktext_w_length = _WORD, ktext_t_txtrec = _BYTES(TXTREC_S_TXTRECDEF) _ENDDEF(ktext); _DEF(kbooksub) kbooksub_l_type = _LONG, kbooksub_l_cursect = _LONG, kbooksub_l_unknown = _LONG, kbooksub_l_horpos = _LONG, kbooksub_l_verpos = _LONG, kbooksub_l_width = _LONG, kbooksub_l_height = _LONG, kbooksub_l_sect = _LONG, kbooksub_l_length = _LONG, kbooksub_t_data = _BYTES(0) _ENDDEF(kbooksub); _DEF(txthdr) txthdr_l_partno = _LONG, txthdr_l_unknown = _LONG, txthdr_l_sectcnt = _LONG, txthdr_l_prevpart = _LONG, txthdr_l_nextpart = _LONG _ENDDEF(txthdr); _DEF(kfont) kfont_w_fontno = _WORD, kfont_t_fonttxt = _BYTES(0) _ENDDEF(kfont); _DEF(klicense) klicense_t_license = _BYTES(255) _ENDDEF(klicense); _DEF(lastrec) lastrec_w_type = _WORD, lastrec_l_length = _LONG, lastrec_t_pagevec = _BYTES(0) !A vector of PAGEDEFs _ENDDEF(lastrec); _DEF(page) page_t_rfa = _BYTES(rfa_len), page_l_size = _LONG _ENDDEF(page); _DEF(sect) sect_l_vpos = _LONG, sect_l_partno = _LONG _ENDDEF(sect); _DEF(bookrec) bookrec_w_type = _WORD, bookrec_l_length = _LONG, bookrec_t_keyhead = _BYTES(0) _ENDDEF(bookrec); MACRO pagevecdef(n) = BLOCKVECTOR[n, PAGE_S_PAGEDEF, BYTE] FIELD(PAGE_FIELDS)%, sectvecdef(n) = BLOCKVECTOR[n, SECT_S_SECTDEF, BYTE] FIELD(SECT_FIELDS)%;