ASMB,R,Q,C
*     NAME:   GETST 
*     SOURCE: 92070-18196 
*     RELOC:  92070-1X196 
*     PGMR:   HLC 
* 
* 
*  **************************************************************** 
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  ALL RIGHTS      * 
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,       * 
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * 
*  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.        * 
*  **************************************************************** 
* 
* 
      NAM GETST,7  92070-1X196  REV.1941  790205
      ENT GETST 
* 
      EXT .ENTR,EXEC,.LBT,.SBT
* 
A     EQU 0 
B     EQU 1 
* 
* 
D14   DEC 14
D1    DEC 1 
COMLN NOP 
FROM  NOP 
TO    NOP 
COMA  OCT 54
* 
BUFF  NOP 
CNT   NOP 
TLOG  NOP 
GETST NOP           ENTRY POINT 
      JSB .ENTR     GET PARAMETER ADDRESSES 
      DEF BUFF
      JSB EXEC      GET THE ORIGINAL STRING 
      DEF *+5 
      DEF D14 
      DEF D1
      DEF BUFF,I
      DEF CNT,I 
      SZB,RSS 
      JMP EXIT      NO STRING AVAILABLE 
* 
      LDA CNT,I 
      SSA,RSS       IF REQUEST WAS POSITIVE, B CONTAINS WORD COUNT
      BLS             CONVERT TO CHARACTER COUNT
      CMB,INB 
      STB COMLN     NEGATIVE NO. OF CHARS 
      LDA =D-2
      STA PUT       COMMA COUNTER 
      LDA BUFF
      RAL           CONVERT TO BYTE ADDRESS 
      STA FROM
      STA TO
LP1   JSB GET       THROW AWAY EVERYTHING UNTIL SECOND COMMA
      ISZ COMLN 
      RSS 
      JMP TLOG.     THERE WERE LESS THAN 2 COMMAS 
      CPA COMA
      ISZ PUT 
      JMP LP1 
LP2   JSB GET       NOW SHIFT THE REST OF THE LINE
      JSB PUT         TO THE START OF THE BUFFER
      ISZ COMLN 
      JMP LP2 
* 
TLOG. LDB BUFF      COMPUTE NUMBER OF VALID CHARACTERS
      RBL 
      CMB,INB 
      ADB TO
      STB TLOG,I    NUMBER OF CHARACTERS PASSED 
      LDA =B40
      SLB 
      JSB PUT       PAD WITH SPACE IF ODD NUMBER
* 
      LDB TLOG,I
      INB 
      BRS           ROUND UP TO NO. OF WORDS
      LDA CNT,I 
      SSA,RSS 
EXIT  STB TLOG,I    WORDS WERE REQUESTED
      JMP GETST,I 
* 
* 
* 
GET   NOP           GET A CHARACTER FROM THE BUFFER 
      LDB FROM
      JSB .LBT      LOAD A BYTE 
      STB FROM
      JMP GET,I 
* 
* 
* 
PUT   NOP           PUT A CHARACTER INTO THE BUFFER 
      LDB TO
      JSB .SBT      STORE A BYTE
      STB TO
      JMP PUT,I 
* 
      END 
                                                                                