This document describes CREF12, a cross-reference listing utility designed for DIAL-MS users. Its primary purpose is to provide an alphabetical listing of user-defined symbols, indicating where each symbol is defined and used within a program. This facility is invaluable for assembling, debugging, modifying, and understanding large or unfamiliar programs.
To utilize CREF12, the DIAL-MS Assembler's LISTAPE pseudo-op must first generate an assembly listing on a mass-storage device (scratch tape or logical disk). CREF12 then processes this data to produce the cross-reference table, with an option to also output the full assembly listing. Operational procedures involve preparing the environment (e.g., sense switches, printer readiness), assembling the program, loading CREF12, specifying the input unit, and choosing whether to include the assembly listing. The document also addresses potential error conditions such as "BAD INPUT" for assembly errors or inability to process, and "SYMBOL TABLE OVERFLOW" if too many symbols or references exceed capacity.
Internally, CREF12 operates in two main passes: a first pass reads input, identifies a data separator, and builds an internal symbol table; a second pass rereads the input, collects symbols from program lines, searches the table for matches, and records their definition and reference line numbers. Finally, a DUMP routine prints the header, each symbol, its value, its definition line number, and all associated reference line numbers, before returning control to DIAL-MS. The document also lists the functions of various minor routines that contribute to CREF12's operation.
| Slowcref | DEC-12-SE2D-D |
| Slowcref | DEC-12-SE2D-D |
Site structure and layout ©2025 Majenko Technologies