ASMB,R,L
      HED G1ROT 
*     NAME:   G1ROT 
*     SOURCE: 92067-18429 
*     RELOC:  92067-16425 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (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 G1ROT,8 92067-16425 REV.1940 790802 
      ENT G1ROT 
      ENT G1SUB 
      ENT G1SEG 
* 
* 
      EXT .ENTR 
      EXT EXEC
      EXT G1CEX 
* 
PBUFR NOP 
PLEN  NOP 
IERR  NOP 
* 
G1ROT NOP 
      JSB .ENTR 
      DEF PBUFR 
      LDA 1717B     GET MAIN NAME 
      ADA D12       AND 
      LDA A,I       SET UP SAME SUFFIX
      STA GASP      FOR SEGMENTS
      LDA G1SUB     IF TABLE ADDRESS IS ZERO
      SZA,RSS       THEN
      STA CSEG      ZERO THE SEGMENT PRESENT FLAG 
      LDB PBUFR 
      INB           B POINTS TO COMMAND ENTERED 
      LDB B,I       GET THE NUMONIC 
      STB G1KLG     SAVE IT 
* 
      LDB BUFAD     GET COMMAND TABLE ADDRESS 
      CLA           SET SEGMENT FLAG TO MAIN
SEGST STA SEGID 
      CLA           SET SEGMENT OFFSET TO 
      STA SEGOF     ZERO
NXTCM INB           STEP TABLE ADDRESS
      LDA B,I       GET ENTRY 
      SSA           NEGATIVE MEANS NEW SEGMENT
      JMP SEGST     GO SET IT 
* 
      SZA,RSS       ZERO IS END OF LIST 
      JMP G1RT1     ERROR EXIT
* 
      CPA G1KLG     THIS IT?
      JMP ITSIT      YES GO PROCESS 
* 
      ISZ SEGOF     STEP THE OFFSET 
      JMP NXTCM     TRY THE NEXT ONE
* 
ITSIT LDA SEGID     GET THE SEGID 
      LDB RTAD      SET ADDRESS IN CASE MAIN
      CMA,INA,SZA,RSS IF ZERO THEN ITS IN THE MAIN
      JMP MAIN
* 
      ADA "0"       MAKE IT ASCII 
      ALF,ALF       AND ROTATE TO HIGH
      CPA CSEG      CURRENT SEGMENT?
      JMP G1SEG     YES GO DO IT
* 
      STA CSEG      SET NEW SEG NAME
      JSB EXEC      CALL SYSTEM TO LOAD THE SEGMENT 
      DEF G1SEG 
      DEF D8
      DEF GASP
* 
G1SEG LDB G1SUB     GET RETURNED ADDRESS
MAIN  ADB SEGOF     ADD THE OFFSET
      LDB B,I       GET ENTRY POINT OF SUB. 
      JSB B,I 
      DEF *+4 
      DEF PBUFR,I 
      DEF PLEN,I
      DEF IERR,I
      JMP G1ROT,I 
* 
G1RT1 LDA D5        ILLEGAL COMMAND 
      STA IERR,I    SET ERROR CODE
      JMP G1ROT,I   AND RETURN
* 
GASP  ASC 2,GASP
CSEG  NOP           CURRENT SEGMENT 
G1SUB NOP           CURRENT SEGMENTS ENTRY POINT TABLE ADDRESS
D5    DEC 5 
D8    DEC 8 
D12   DEC 12
SEGID NOP 
SEGOF NOP 
* 
BUFAD DEF * 
      ASC 1,EX
      OCT -1        FOLLOWING ARE IN SEGMENT 1
      ASC 1,DJ
      ASC 1,CJ
      ASC 1,DS
      ASC 1,CS
      ASC 1,KS
      ASC 1,RS
      ASC 1,AB
      ASC 1,UP
      OCT -2        FOLLOWING ARE IN SEGMENT 2
      ASC 1,DA
      ASC 1,??
"0"   OCT 60        SPECIAL CODE TO GET TO IN ROUTINE 
      ASC 1,SD
      ASC 1,SU
      NOP           END OF TABLE
RTAD  DEF *+1 
      DEF G1CEX     MAIN TRANSFER TABLE 
* 
      ENT G1KLG 
* 
      EXT $LUAV,.DRCT,G0WD1 
* 
*     THIS ROUTINE COUNTS THE NUMBER OF ACTIVE LU'S FOR THE 
*     SPOLCON RECORD NUMBER PASSED BY SCANNING THE LU AVAILABLITY 
*     TABLE ($LUAV) AND RETURNS THIS NUMBER IN THE A REGISTER 
* 
*     CALLING SEQUENCE: 
* 
*     JSB G1KLG 
*     DEF RNUM      NUMBER OF THE RECORD TO BE FOUND
*     --- RETURN A SET AS ABOVE 
* 
G1KLG NOP 
      LDA $LUAV     GET THE COUNT OF ENTRIES
      STA COUNT 
      JSB .DRCT     GET A DIRECT ADDRESS
      DEF $LUAV     OF THE TABLE
      STA PTR       AND SAVE IT 
      CLA           CLEAR THE RETURN COUNT
      STA RTN 
      LDA G1KLG,I   GET THE RECORD NUMBER 
      LDA A,I       TO LOCAL
      STA RNUM      STORAGE 
      ISZ G1KLG     STEP TO THE RETURN ADDRESS
* 
NEXT  ISZ PTR       STEP TO THE ENTRY 
      LDA PTR,I     GET THE CURRENT LU
      ISZ PTR       STEP TO THE RECORD NUMBER 
      SSA,RSS       IF NOT AN ACTIVE ENTRY
      JMP CONT      JUST CONTINUE 
* 
      LDB PTR,I     GET THE ENTRY'S RECORD NUMBER 
      CPB RNUM      THIS IT?
      ISZ RTN       YES STEP THE COUNT
* 
CONT  ISZ COUNT     END OF THE LIST?? 
      JMP NEXT      NO TRY NEXT ONE 
* 
      LDA RTN       YES SEND BACK THE COUNT 
      JMP G1KLG,I   RETURN
      SPC 2 
PTR   NOP 
RTN   NOP 
RNUM  NOP 
COUNT NOP 
A     EQU 0 
B     EQU 1 
      END 
                                                                                                                                                                                                                                                          