ASMB
  HED .        GET A DATA FROM A 2645/2648 IN BLOCK MODE
      NAM GETBK,7 92903-16408 REV.1805  780127
      SPC 2 
*     **************************************************************
*     * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978.  ALL RIGHTS    *
*     * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- *
*     * PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH-  *
*     * OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.  *
*     **************************************************************
      SPC 2 
**********************************************************************
*                                                                    *
*     NAME:   GETBK                                                  *
*     SOURCE: &GETBK    92903-18408                                  *
*     BINARY: %GETBK    92903-16408    PART OF  RTMGL1               *
*                                                                    *
*     PGMR:   FRANCOIS GAULLIER                                      *
*                                                                    *
**********************************************************************
  SPC 3 
*      *********************************************************
*      *  THIS SUBROUTINE RESETS THE 2645 TERMINAL IN CASE OF  *
*      *  POWER FAIL OR WRONG MANIPULATION OF OPERATOR AND GET *
*      *  A BLOCK OF DATA FROM 264X TERMINAL.                  *
*      *********************************************************
  SPC 2 
      ENT GETBK 
      EXT EXEC,.ENTR
      SUP 
    SPC 2 
UNLK  BYT 33,142,137,40 
LOCK  BYT 33,143
LENH  BSS 1 
ICLAS BSS 1         CLASS I/O WORD
DUMY  NOP 
STATU OCT 000004    STATUS WORD I/0 MASK
ABORT OCT 60400     ABORT CHARACTER 
MASK  OCT 177400
DEC1  DEC 1 
DEC2  DEC 2 
DEC17 DEC 17
DEC21 DEC 21
NEGA2 DEC -2
NEGA3 DEC -3
* 
* 
* 
LU    BSS 1         LU # ADDRESS
IBUF  BSS 1         BUFFER ADDRESS
NBYTE BSS 1         LENGRTH ADDRESS 
GETBK NOP 
      JSB .ENTR 
      DEF LU
* 
      LDA NBYTE,I 
      CMA           ASK ONE EXTRA WORD, TO
      STA LENH      CHECK THE LENGTH LATER
* 
*-----UNLOCK THE KEYBOARD 
* 
      JSB EXEC
      DEF *+5 
      DEF DEC2
      DEF LU,I
      DEF UNLK
      DEF NEGA3 
* 
*-----GET A CLASS I/O WORD
* 
INPUT CLA 
      STA ICLAS     SET CLASS WORD TO GET A CLASS # 
* 
      JSB EXEC
      DEF *+8 
      DEF DEC17 
      DEF LU,I
      DEF IBUF,I
      DEF LENH
      DEF DUMY
      DEF DUMY
      DEF ICLAS 
* 
*-----IS CLASS I/O # AVAILABLE ?
* 
      SZA           A CLASS # HAS BEEN PROVIDED 
      JMP INPUT     ASK AGAIN FOR A CLASS # 
* 
*-----IS INPUT COMPLETED ?
* 
      JSB EXEC
      DEF *+5 
      DEF DEC21 
      DEF ICLAS 
      DEF IBUF,I
      DEF LENH
* 
*-----CHECK FOR TIME OUT
* 
      AND STATU 
      SZA 
      JMP EROR
* 
*-----CHECK FOR ABORT 
* 
      CPB DEC1
      JMP ABOR
      JMP RIGH
ABOR  LDA IBUF,I
      AND MASK
      CPA ABORT 
      JMP RETUR 
* 
*-----CHECK RIGHT LENGTH
* 
RIGH  CPB NBYTE,I 
      JMP RETUR 
* 
*-----ERROR ! 
* 
EROR  JSB EXEC
      DEF *+5 
      DEF DEC2
      DEF LU,I
      DEF ZONE
      DEF ILG00 
* 
*-----FUNCTION:  .TRUE. 
* 
      CCA 
      JMP GETBK,I 
* 
*-----LOCK THE KEYBOARD 
* 
RETUR JSB EXEC
      DEF *+5 
      DEF DEC2
      DEF LU,I
      DEF LOCK
      DEF NEGA2 
* 
*-----FUNCTION: .FALSE. 
* 
      CLA 
      JMP GETBK,I 
* 
*-----RESET BUFFER OF THE 2645 TERMINAL 
* 
ZONE  BYT 33,143                 LOCK KEYBOARD
      BYT 33,155,33,130          UNLOCK MEMORY, FORMAT MODE OFF 
      BYT 33,110,33,112          HOME UP CS. CLEAR DISPLAY
* 
      BYT 33,46 
      ASC 10,s0a0b0c1d0e0f1g1h0j0 
      BYT 113,00
* 
      BYT 40,33,46,153,61,102                      SET BLOCK MODE 
      BYT 33,46,146,61,141,61,153,61,114,11        NEXT FIELD 
      BYT 33,46,146,61,141,62,153,62,114,33,151,40 PREVIOUS FIELD 
      BYT 33,46,146,61,141,63,153,61,114,40        NOT USED 
      BYT 33,46,146,62,141,64,153,61,114,141       ABORT
      BYT 33,46,146,61,141,65,153,64,114,33,110,33,144,40   NEXT SCREEN 
      BYT 33,46,146,61,141,66,153,65,114,163,33,110,33,144  PREV.SCREEN 
      BYT 33,46,146,61,141,67,153,65,114,150,33,110,33,144  HELP
      BYT 33,46,146,61,141,70,153,65,114,151,33,110,33,144  INSERT
* 
      BYT 33,110,33,112     HOME UP CURSOR, CLEAR DISPLAY 
END00 EQU *-1 
STR00 EQU ZONE
ILG00 ABS END00-STR00+1 
      END 
                            