ASMB,Q,C
*     NAME: .XSA
*     SOURCE: 92071-18333 
*     RELOC: 92071-16333
*     PGMR:   DJN 
* 
* 
*  **************************************************************** 
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980.  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 .XSA,6  92071-1X333 REV.2041  800731
      ENT .XSA
      EXT .A.,.B.,.ZPRV,.XST
* 
A     EQU 0 
B     EQU 1 
* 
* 
.XSA  NOP 
      JSB .ZPRV     SHARABLE ROUTINE
      DEF EXIT
      STB .B.       SAVE B
      LDB .XSA,I    GET THE ADDRESS, MAY STILL HAVE INDIRECTS 
      ISZ .XSA      ADJUST RETURN 
* 
* THE ADDRESS OF THE STORE IS IN THE B REGISTER,
* BUT INDIRECTS STILL MUST BE RESOLVED. 
* 
BACK  SSB 
      JMP RESLV     ADDRESS IS INDIRECT 
* 
* CHECK FOR THE CASES THE MEMORY CONTROLLER 
* FAILS TO HANDLE, AND HANDLE AS THEY SHOULD BE.
* 
      SZB,RSS       CAN'T HANDLE 0 CASE 
      JMP RSTB
      CPB =D1       NOR THE 1 CASE
      JMP BADB
* 
      JSB .XST      STORE THE VALUE 
      DEF B,I 
RSTB  LDB .B.       RESTORE B 
EXIT  JMP .XSA,I    RETURN
      DEF .XSA
* 
RESLV ELB,CLE,ERB   CLEAR INDIRECT BIT (NO CHANGE TO E) 
      STB .A.       SAVE IN CASE DEF A OR B,I 
      LDB .B.       RESTORE IN CASE DEF B,I 
      LDB .A.,I     GET NEXT LEVEL ADDRESS
      JMP BACK
* 
BADB  STA B         DO LOCAL VERSION
      JMP EXIT      GO EXIT 
      END 
                                                                                                                            