*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
