*DECK NS$DFT
USETEXT CYB$NS
PROC NS$DFT((TEXTFWA),(N)); # DAYFILE TEXT IN OCTAL DISPLAY #
# TITLE NS$DFT - DAYFILE TEXT IN OCTAL DISPLAY CODE. #
BEGIN # NS$DFT #
#
** NS$DFT - DAYFILE TEXT IN OCTAL DISPLAY.
*
* J.C. LEE 1981
*
* THIS ROUTINE CONVERTS OCTAL NUMBER TO DISPLAY CODE.
*
* PROC NS$DFT((TEXTFWA),(N))
*
* ENTRY:
* TEXTFWA = FWA OF TEXT AREA.
* N = NO OF TEXT WORDS TO BE CONVERTED.
*
* EXIT:
* NONE.
*
* METHOD:
* USE OCTAL TABLE TO CONVERT "N" NUMBER OF WORDS FROM
* TEXT AREA TO OCTAL DISPLAY CODE.
*
#
ITEM TEXTFWA U; # FWA OF TEXT AREA TO BE DISPLAYED #
ITEM N U; # NO OF TEXT WORDS TO BE DISPLAYED #
$BEGIN
XREF
BEGIN
PROC NS$DBG; # TRACE PROCEDURE CALL #
END
$END
XREF
BEGIN
PROC MESSAGE; # ISSUE DAYFILE MESSAGE #
END
ARRAY DISTEXT [0:0] S(3);
BEGIN # TEXT IN DISPLAY CODE #
ITEM DFMSGTEXT C(0,0,20);
ITEM DFMSGEND U(2,0,60) = [0];
END
BASED ARRAY OCTTEXT [0:0] S(1);
BEGIN # TEXT IN OCTAL DIGITS #
ITEM OCTWORD U(0,0,60);
END
ITEM I I; # LOOP INDUCTION VARIABLE FOR WORD COUNT #
ITEM J I; # LOOP INDUCTION VARIABLE FOR CHAR CNT #
ITEM K U; # TEMPORARY VARIABLE #
ITEM OCTCTAB C(8) = "01234567";
ITEM OCTNUM U; # OCTAL NUMBER #
CONTROL EJECT;
$BEGIN
NS$DBG("DFT"); # TRACE CALL #
$END
FOR I = 0 STEP 1 UNTIL (N - 1)
DO # DISPLAY CONTENTS OF TEXT AREA #
BEGIN
P<OCTTEXT> = TEXTFWA + I; # ADDRESS OF WORD TO DISPLAY #
K = WL/3 - 1;
FOR J = 0 STEP 1 UNTIL K
DO # CONVERT OCTAL NUMBERS TO DISPLAY CODE #
BEGIN
OCTNUM = B<J*3,3>OCTWORD[0];
C<J,1>DFMSGTEXT[0] = C<OCTNUM>OCTCTAB;
END
MESSAGE(DISTEXT,3); # SEND MESSAGE TO LOCAL DAYFILE #
END
RETURN;
END # NS$DFT #
TERM