Trailing-Edge
-
PDP-10 Archives
-
bb-kl11c-bm_tops20_v6_1_atpch1_16
-
autopatch/mscgen.c13
There are 13 other files named mscgen.c13 in the archive. Click here to see a list.
REP 11/1 ;13C1
COPYRIGHT (C) 1974, 1983, 1984, 1985 BY DIGITAL EQUIPMENT CORPORATION
WIT
COPYRIGHT (C) 1974, 1983, 1984, 1986 BY DIGITAL EQUIPMENT CORPORATION
INS 28/1 ;13C2
;MJC 09-JAN-86 [1622] Refmod offset byte pointer gereration does not
; work for non-sixbit. Use ADJBP to get offset.
REP 440/56 ;13C3
IDIV TD,BYTE.W##(TE) ;divide it by bytes/word
TSWT FERROR ;if error don't adjust offset (err rtn sets it)
HRLZM TD,RMOFF ; else put increment value in LH of offset
IMUL TC,BYTE.S##(TE) ;multiply remainder by byte size
LDB TD,DA.RES## ;get current byte residue
SUB TD,TC ;subtract offset from it
JUMPGE TD,REFM27 ;if positive, still in same word
ADDI TD,44 ;if negative, add 44 bits
HLRZ TC,RMOFF ;
AOS TC ; and bump the word offset by one
TSWT FERROR ;
HRLM TC,RMOFF ;
REFM27: TSWT FERROR ;if error, don't adjust offset
HRRM TD,RMOFF ;save in RH of offset to adjust byte pointers
WIT
SETZ TB, ;[1622] Zero out AC to build byte pointer
MOVE TC,BYTE.S##(TE) ;[1622] Get byte size
DPB TC,[POINT 6,TB,11] ;[1622] Put it in S field in TB
LDB TC,DA.RES## ;[1622] Get P field for first byte of field
DPB TC,[POINT 6,TB,5] ;[1622] Put it in TB
ADJBP TD,TB ;[1622] Adjust the pointer by offset
TSWT FERROR ;[1622] Don't touch RMOFF if error
HRLZM TD,RMOFF ;[1622] Stash away the word offset
LDB TC,[POINT 6,TD,5] ;[1622] Pick up new P field
TSWT FERROR ;[1622] Don't touch RMOFF if error
HRRM TC,RMOFF ;[1622] Put it in offset word
SUM 11288