*DECK NS$TKD
USETEXT COM$NS
USETEXT KDS$NS
USETEXT LIN$NS
PROC NS$TKD(KDBLK,BLKSIZE,BLKLC); # MOVE DATA TO K-DISPLAY TSB #
# TITLE NS$TKD - MOVE DATE TO K-DISPLAY TSB. #
BEGIN # NS$TKD #
#
** NS$TKD - MOVE DATA TO K-DISPLAY TSB.
*
* J.C. LEE 1981
*
* THIS ROUTINE MOVES DATA TO K-DISPLAY TSB.
*
* PROC NS$TKD(KDBLK,BLKSIZE,BLKLC)
*
* ENTRY:
* KDBLK - FWA OF K-DISPLAY DATA BLOCK.
* BLKSIZE - K-DISPLAY DATA BLOCK SIZE IN CM WORDS.
* BLKLC - K-DISPLAY DATA BLOCK LINE COUNT.
*
* EXIT:
* NONE.
*
* METHOD:
* INCREASE K-DISPLAY TSB SIZE BY BLKSIZE.
* MOVE DATA BLOCK TO K-DISPLAY TSB.
* INCREMENT K-DISPLAY LINE COUNT BY BLKLC.
* INCREMENT K-DISPLAY WORD COUNT BY BLKSIZE.
*
#
ARRAY KDBLK; # K-DISPLAY DATA BLOCK #
BEGIN
ITEM KDWORD U(0,0,60);
END
ITEM BLKSIZE U; # K-DISPLAY DATA BLOCK SIZE IN CM WORDS #
ITEM BLKLC U; # K-DISPLAY DATA BLOCK LINE COUNT #
$BEGIN
XREF
BEGIN
PROC NS$DBG; # TRACE PROCEDURE CALL #
END
$END
XREF
BEGIN
PROC EXINCSZ; # INCREASE TSB SIZE #
PROC MOVEI; # MOVE DATA BLOCK #
PROC MOVEOK; # ALLOW TSB TO MOVE #
END
ITEM KDSTSBN U; # TSB NUMBER OF K-DISPLAY BUFFER #
ITEM TSBFWA U; # TSB FWA #
CONTROL EJECT;
$BEGIN
NS$DBG("TKD"); # TRACE CALL #
$END
KDSTSBN = DCW$KDBTSB[0]; # TSB NUMBER OF K-DISPLAY TSB #
EXINCSZ(BLKSIZE,TSBFWA,KDSTSBN); # INCREASE K-DISPLAY TSB SIZE #
P<KDS$BUFFER> = TSBFWA; # FWA OF K DISPLAY BUFFER #
P<LIN$HEADER> = TSBFWA + KDB$WC[0]; # FWA OF DATA BLOCK IN TSB #
MOVEI(BLKSIZE,LOC(KDBLK),P<LIN$HEADER>); # MOVE DATA BLOCK TO TSB#
KDB$LC[0] = KDB$LC[0] + BLKLC; # INCREMENT K-DISPLAY LINE COUNT#
KDB$WC[0] = KDB$WC[0] + BLKSIZE; # INCREMENT K-DISPLAY WORD COUNT#
MOVEOK(KDSTSBN); # ALLOW K-DISPLAY TSB TO MOVE #
DCW$F$SKD[0] = TRUE; # REQUEST SEND K-DISPLAY DATA #
RETURN;
END # NS$TKD #
TERM