Trailing-Edge
-
PDP-10 Archives
-
tops20-v7-ft-dist1-clock
-
7-sources/diutlb.bli
There are 4 other files named diutlb.bli in the archive. Click here to see a list.
%TITLE 'DIU Transform Structure Library'
!++
! COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1986.
! ALL RIGHTS RESERVED.
!
! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND
! COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH
! THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR
! ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE
! AVAILABLE TO ANY OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE
! SOFTWARE IS HEREBY TRANSFERRED.
!
! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
! NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
! EQUIPMENT CORPORATION.
!
! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF
! ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL.
!
! FACILITY: Data Interchange Utility (DIU)
!
! ABSTRACT: DIUMLB is the library of definitions and data structures
! used by the Mapping routines (see module DIUMAP).
!
! AUTHOR: Sandy Clemens, Creation Date: 25-Oct-84
!
! EDIT HISTORY:
!
! 3 Clean up copyright notices. Change 6-char macros
! to reflect changes in other modules.
! Sandy Clemens 14-Jun-85
!
! 10 Make default transform generation code use the DIU top level
! condition handler rather than DIU$TRANS_HANDLER.
! Sandy Clemens 20-Jun-85
!
! 14 Add transform execution code and conversion warnings report
! code. FILES: DIUETR.BLI (NEW), DIUCSR.BLI (NEW), DIUDMP.BLI,
! DIUABO.B36, INTFAC.BLI, DIUTLB.BLI.
! Sandy Clemens 15-Jul-85
!
! 23 Remove DIU$CDD_EXTRACT from DIUTUT module and put it
! into INTFAC. It's only part of INTFAC, not DIU. It was
! commented out of DIUTLB anyway... FILES: INTFAC.BLI,
! DIUTUT.BLI, DIUTLB.BLI.
! Sandy Clemens 18-Jul-85
!
! 25 Allow initial values of dimensionned fields.
! Charlotte Richardson 13-Aug-85
!
! 236 Change library of DIXLIB to DIUDIX.
! Sandy Clemens 19-Jun-86
!
!--
%BLISS32 (LIBRARY 'SYS$LIBRARY:XPORT';)
%BLISS36 (LIBRARY 'BLI:XPORT';)
LIBRARY 'DIUDIX';
! define literal for debugging
LITERAL diu$k_tra_debug = 0; ! set to ON for debug, OFF for nodebug
! Define literals to indicate whether the transforms source FFD is an
! initial value FFD, not a usual FFD which points at a source field.
! If the source FFD points to an initial value field, then set TRA_OPCODE
! field to DIU$K_INITIAL.
LITERAL diu$k_no_initial = 0,
diu$k_initial = 1;
! define literals for move-matching and move-others-matching flags
LITERAL diu$k_mov_mat = 0,
diu$k_mov_others = 1;
! define the structure IDs
LITERAL diu$k_transform = 100,
diu$k_dimsnode = 101;
! Define literal for PRO operating system type. Note that DIU knows about PRO,
! but DIL doesn't. In order to talk to the DIL, a user must first change PRO
! operating system type to SYS_8BIT. SYS_8BIT, SYS_LCG and SYS_MAX are defined
! in DIL module DIXLIB.
LITERAL sys_pro = sys_max + 1;
! Define the dims structure. The dims structure is a linked list of addresses
! of the start of each dimension list that applies to this field.
$FIELD dims_flds =
SET
dims$a_next = [$ADDRESS], ! next DIMS node
dims$a_previous = [$ADDRESS], ! backpointer to previous DIMS node
dims$b_id = [$BYTE], ! node ID fld at same offset as CRX id fields
dims$b_dimensions_cnt = [$BYTE], ! number of dimensions
dims$a_list = [$ADDRESS], ! pointer to first CRX dimension node
dims$l_tot_cells = [$INTEGER] ! the total number of cells in the array
TES;
LITERAL dims$k_size = $FIELD_SET_SIZE;
MACRO dims = BLOCK [dims$k_size]
FIELD (dims_flds) % ;
! define the transform structure
$FIELD tra_fields =
SET
tra_next = [$ADDRESS], ! addr of next transform node
tra_id = [$BYTE], ! always = DIU$K_TRANSFORM
tra_src_addr = [$ADDRESS], ! address of the node in the
! src record def tree
tra_src_nam = [$ADDRESS], ! addr of fully qualified name
! of field (crx stringlist str)
tra_src_dims = [$ADDRESS], ! address of a dims structure (defined above)
tra_src_ffd = [$SUB_BLOCK(0)],
ffd_flds ('tra_src'), ! define 'tra_src' ffd -- see DIXLIB
$ALIGN (FULLWORD)
tra_dst_addr = [$ADDRESS], ! address of the node in the
! dst record def tree
tra_dst_nam = [$ADDRESS], ! addr of fully qualified name
! of field (crx stringlist str)
tra_dst_dims = [$ADDRESS], ! address of a dims structure (defined above)
tra_dst_ffd = [$SUB_BLOCK(0)],
ffd_flds ('tra_dst'), ! define 'tra_dst' ffd -- see DIXLIB
$ALIGN (FULLWORD)
tra_err_codes = [$SUB_BLOCK (9)],
$OVERLAY (tra_err_codes) ! string error codes
tra_str_rounded = [$INTEGER],
tra_str_unimp = [$INTEGER], ! note all 3 "unimp" codes are at the
tra_str_graphic = [$INTEGER], ! same offset for each sub_block. if
tra_str_fmtlost = [$INTEGER], ! this changes there may be problems...
tra_str_nonprint = [$INTEGER],
tra_str_trunc = [$INTEGER],
tra_str_invalchar = [$INTEGER],
tra_str_fill = [$SUB_BLOCK(2)],
$CONTINUE
$OVERLAY (tra_err_codes) ! fixed-point error codes
tra_fix_rounded = [$INTEGER],
tra_fix_unimp = [$INTEGER],
tra_fix_toobig = [$INTEGER],
tra_fix_impossible = [$INTEGER],
tra_fix_unsigned = [$INTEGER],
tra_fix_invdnumchr = [$INTEGER],
tra_fix_invdnumsgn = [$INTEGER],
tra_fix_invpddgt = [$INTEGER],
tra_fix_invpdsgn = [$INTEGER],
$CONTINUE
$OVERLAY (tra_err_codes) ! floating-point error codes
tra_fp_rounded = [$INTEGER],
tra_fp_unimp = [$INTEGER],
tra_fp_toobig = [$INTEGER],
tra_fp_unnorm = [$INTEGER],
tra_fp_impossible = [$INTEGER],
tra_fp_fill = [$SUB_BLOCK(4)],
$CONTINUE
tra_worst = [$INTEGER], ! most severe warning for this field
tra_opcode = [$ADDRESS]
TES;
LITERAL tra_size = $field_set_size;
MACRO transform_str = BLOCK [tra_size]
FIELD (tra_fields) %;
! Define routine name equivalences for TOPS-10/20 LINK...
%IF %BLISS (BLISS36) %THEN
MACRO
DIU$DEL_DIMS = DELDIM %,
DIU$DEL_TRANS_NODE = DELTND %,
DIU$DEL_TRANS_LIST = DELTRA %,
DIU$CLEAN_TRANS = CLETRA %,
DIU$DUMP_DIMS = DMPDIM %,
DIU$DUMP_FQN = DMPFQN %,
DIU$DMP_TRA_SRC = DMPTRS %,
DIU$DMP_TRA_DST = DMPTRD %,
DIU$DUMP_TRANSFORM = DMPTRA %,
DIU$COPY_DIMS = COPDIM %,
DIU$COPY_FQN = COPFQN %,
DIU$TRAVERSE_SUBTREE = SUBTRV %,
DIU$TRAVERSE_TREE = TRETRV %,
DIU$MAP_FROM_CDD = FROCDD %,
DIU$MAP_FROM_DTR = FRODTR %,
DIU$MAP_FROM_DIL = FRODIL %,
DIU$MAP_DATATYPES = MAPDTP %,
CHECK_DIMS = CHKDMS %,
CHECK_FQNS = CHKFQN %,
CHECK_MATCH = CHKMAT %,
DIU$MATCH_TRANS = MATTRA %,
DIU$DEF_TRANS = DEFTRA %,
DIU$MOVE_MAT = MOVMAT %,
DIU$OFFSETS = DIUOFS %,
DIU$RECORD_OFFSETS = RECOFF %,
DIU$DIX_PORTAL = DIXPRT %,
DIU$MAKE_FFDS = MAKFFD %,
DIU$LOAD_TRANS = LODTRA %,
DIU$UPDATE_FFD = UPDFFD %,
DIU$CHECK_DEP_ITM = CHKDEP %,
DIU$PROCESS_DIMENS = PRODMN %,
DIU$EXECUTE_TRANS = EXETRA %,
SINGLE_FQN_NAME = SNGNAM %,
DIU$DIXERR_HANDLER = DIXERR %,
DIU$CONV_STATS = CVSTAT %;
%FI