ASMB,A,B,L,C        2000/E TIME-SHARED BASIC SYSTEM 
*                                       RELEASE A      12/15/72 
*                                       RELEASE B       4/15/73 
*                                       RELEASE C       9/24/73 
*                                       RELEASE D      11/14/74 
*                                       RELEASE E       8/20/75 
* 
* 
* *q
*     (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1975. 
* 
*     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. 
* 
* 
* qq
      ORG 4001B 
      SUP 
* 
*     LINKAGE INFORMATION USED BY THE TSB LOADER
* 
      DEF LIBRA     SYSTEM LIBRARY PROGRAM ORIGIN 
      DEF COM6      => SYSTEM LIBRARY DISC ADDRESSES
      ABS TTY01-TTY00    LENGTH OF A TTY TABLE
      DEF TTY00+?DISC    ADDRESS OF USER DISC ADDRESS 
      DEF TTY00+?MASK    ADDRESS OF USER MASK 
      DEF TTY00+?BHED    =>START OF LOGICAL BUFFER
      DEF TTY00+?BSTR    =>END OF LOGICAL BUFFER
      DEF TTY00+?BGIN    =>START OF PHYSICAL BUFFER 
      DEF TTY00+?BEND    =>END OF PHYSICAL BUFFER 
      DEF TTY00+?ID      ADDRESS OF ID-NAME 
      DEF LMSK      ADDRESS OF USER-DEPENDENT ITEMS 
      ABS USER-PROGB-1   LENGTH OF SWAP AREA
      DEF USER      CORE ADDRESS OF SWAP AREA 
      DEF DATIM     ADDRESS OF HOUR OF YEAR 
      DEF DATIM+1   ADDRESS OF TENTHS OF HOUR 
      DEF YEAR      ADDRESS OF YEAR 
      DEF TSBLB     DISC ADDRESS FOR START UP 
      DEF MGSLE     MAG SLEEP LOC.
      DEF UTLTY     STARTING ADDR. OF UTILITY 
      JSB POWIN,I   SET IN LOCATION 4 BY LOADER 
      HED BASE PAGE 
A     EQU 0         A REGISTER ADDRESS
B     EQU 1         B REGISTER ADDRESS
      ORG 2 2e
      HLT DEATH+2   FOR SYSTEM
      JMP *-1         PROTECTION
      HLT 4,C       CHANGED BY LOADER 
      HLT DEATH+5   PARITY ERROR
DMA   JSB ?ADIN,I    6 - FIRST DMA CHANNEL
      CLC 7,C        7 - SECOND DMA CHANNEL 
?SC   JSB T35DR,I   10 - SYSTEM CONSOLE 
DC    CLF 11B       11 - DISC DATA CHANNEL
CC    JSB ?ADIN,I   12 - DISC COMMAND CHANNEL 
      CLC 13B       13 - PHOTO READER 
MPX   JSB MPXO,I    14 - MULTIPLEXER DATA 
MPXO  DEF MPXIO     15 - MULTIPLEXER STATUS 
DSCB  JSB DSCBA,I   16 - MULTIPLEXER PHONES 
CLOCK JSB CLKDR,I   17 - TIME BASE GENERATOR
      SPC 2 
* q{
**   STORAGE AND POINTERS 
* 
LTEMP BSS 16        TEMPORARIES FOR LIBRARY OVERLAYS
YEAR  BSS 1         CURRENT YEAR - 0 TO 99
DATIM BSS 2         TWO WORD ENTRY FOR TIME OF YEAR 
*                                     1) HOUR OF YEAR 
*                                     2) # OF 100MS UNITS IN HOUR 
UTLTY BSS 1         FILLED BY LOADER/ 
MGSLE BSS 1           UTILITY PROGRAM 
MOVES BSS 1         SOURCE AND DESTINATION
MOVED BSS 1           FOR MOVEW ROUTINE 
ID    BSS 1         USED FOR RESULTS OF GETID 
MID   BSS 1 
T35CP BSS 1         SC BUFF POINTER FOR LIB PROGRAMS
T35LC BSS 1         CONTAINS CHAR RETRIEVED BY T35CH
PBPTR BSS 1         POINTER TO END OF CURRENT PROG
TIMER BSS 1         POINTS TO CLOCK OF ACTIVE USER. 
SBHED BSS 1 
SCHL  BSS 1 
TTQ   BSS 1 
SCHID BSS 1 1
SCHP  BSS 1 
SCNT  BSS 1 
SCHPR BSS 1 
CTEMP BSS 1 
WORD  BSS 1         WORD COUNT TO DISC ROUTINE. 
TOG   BSS 1 
TADR  BSS 1 
TCNT  BSS 1 
IDTRA BSS 1 
IDTLA BSS 1 
IDCNT BSS 1 
IDCAD BSS 1 
IDMAX DEC -12256
MSQCT NOP 
MSQP1 DEF MSQHD     BEGINNING OF MESSAGE BUFFER 
* qq
**
***     MUERTO
**
* 
DEATH EQU 0                                      [E]
* qq
*  ALL SYSTEM HALTS CAN BE REFERENCED BY THE LABLE 'DEATH'.  THE
*  FOLLOWING IS A LIST OF THE HALTS AND THEIR MEANINGS AS WELL
*  AS AN INDICATION OF POSSIBLE RECOVERY OR A MESSAGE OF DOOM.
* *q
*       2  - AN ERRONEOUS, NON-RECOVERABLE SYSTEM TRANSFER
*            HAS OCCURRED.
* 
*       4  - POWER FAILURE HAS OCCURRED.  CHECK RESTART SWITCH
*            POSITION.
* 
*       5  - A PARITY ERROR HAS OCCURRED.  CHECK THE CPU HARDWARE.
* 
*      10B - DISC FAILURE - THE DISC'S STATUS IS DISPLAYED IN THE 
*            A-REGISTER.  MAKE HARDWARE CORRECTIONS AND PRESS RUN.
*            IF CPU CONTENTS ARE ALTERRED WHILE REPAIRING HARDWARE
*            (I.E. RUNNING DISC DIAGNOSTIC), THE SYSTEM IS LOST.
* qq
*      11B - ALLOWS OPERATOR TO CHANGE DISC PACKS DURING A SLEEP. 
*            WHEN THE DISC IS UP TO SPEED, PRESS RUN. 
      SPC 3 
* 
**    NUSE
* 
* 
*  ALL UNUSED CORE LOCATIONS MAY BE LOCATED BY REFERENCING
*  THE LABLE 'NUSE'.
      SKP 
* 
**
***   EQUIPMENT TABLE 
***t
* 
*  THIS SECTION, WHICH IS ORIGINED AT 100B, CONSTITUTES THE RESIDENT
*  INFORMATION ABOUT THE DISC RESIDENT TABLES.  THESE TABLES ARE
*  INITIALIZED BY THE VARIOUS LOADERS AND THEIR CONTENTS ARE WRITTEN
*  ON DISC BY THE SLEEP ROUTINE.  THIS EQUIPMENT TABLE MUST EXACTLY 
*  CORRESPOND THE VERSION IN THE LOADER.
      SPC 1 
      ORG 100B
      SPC 1 
DIREC BSS 56     DIREC HAS 8 7-WORD ENTRIES, ONE FOR
*                                EACH POSSIBLE DIRECTORY TRACK AT 2 
*                                TRACKS PER LOGICAL DISC.  EACH 
*                                ENTRY CONSISTS OF THE FOLLOWING: 
*                                    0) LENGTH OF TRACK IN -WORDS 
*                                  1-5) 1ST 5 WORDS OF DIRECTORY TRK
*                                    6) DISC ADDRESS
* qq
IDLEN BSS 1      TOTAL LENGTH OF ID TABLE 
IDTTA DEF *+1    TABLE OF DISC ADDRESSES
      BSS 4        FOR THE FOUR ID TRACKS 
IDTRL DEF *+1    TABLE OF TRACK LENGTHS 
      BSS 4        FOR THE FOUR ID TRACKS 
ADLOC BSS 1      DISC ADDRESS OF ADT TABLE
ADLEN BSS 1      LENGTH OF ADT IN -WORDS
?TBL  BSS 1 
NPORT BSS 1      - NUMBER OF SWAP TRACKS RESERVED 
PHR   DEC -120   PHONES TIMING WORD (2 MIN. DEFAULT)
FILLR NOP        NUMBER OF DELAY CHARACTERS      [E]
SLEPT BSS 1      0 - SYSTEM SLEPT; 1 - NOT SLEPT
* 
**    END OF EQUIPMENT TABLE
* qq
      SPC 1 1
* 
**    SYSTEM STATUS VARIABLES 
* 
MAIN  NOP           INDICATES USER IN CORE,0 IF NONE
LIB   NOP           => DISC ADDRESS OF LIBRARY
*                                   PROGRAM IN CORE, 0 IF NONE
ENDSK NOP           1 IF DISC IS BUSY, 0 IF NOT 
TIMEF NOP           1 WHEN CURRENT PROGRAM IS TIMED 
MPCOM NOP           PORT COMMUNICATIONS BIT FLAG
TAPEF NOP           USER IN TAPE MODE BIT FLAG
CHNFG NOP           CHAIN RUNNING BIT FLAG
HFLAG NOP           $HELLO RUNNING BIT FLAG 
TERR  NOP           TAPE ERROR BIT FLAG 
CFLAG NOP           COMPILE MODE BIT BLAG 
* qq
.     EQU 526B      DOT TABLE 0 REFERENCE POINT 
LIBRA EQU 37300B    SYSTEM LIBRARY PROGRAM ADDRESS
BUFLN EQU 50        PORT BUFFER LENGTH
MBLEN ABS -BUFLN-BUFLN
BLEN  ABS BUFLN+BUFLN 
MAXBL ABS -BUFLN-BUFLN+2
      SPC 1 
* qq
**
***   SYSTEM CONSOLE POINTERS AND TEMPORARIES 
**
* 
TTA   BSS 1         INTERRUPT 
TTB   BSS 1           REGISTER
TTE   BSS 1             STORAGE 
T35F1 NOP           CONSOLE 
T35F2 NOP             STATE 
T35F3 NOP               FLAGS 
TBITS OCT 160000    INTERFACE STATE 
B120K OCT 120000
B130K OCT 1300000@
B160K OCT 160000
* 
TTY35 DEF ?TT35     => SYSTEM CONSOLE DRIVER
T35DR DEF ?TT2      => DRIVER INTERRUPT ENTRY POINT 
T35CH DEF T35CQ     => CONSOLE CHARACTER GETTER 
T35LN DEF T35LK     => LINK ENTRY 
* 
**    SYSTEM CONSOLE TTY TABLE ENTRY
* 
T35CL NOP           PSEUDO CLOCK
T35RS NOP           RESTART ADDRESS 
T35ST NOP           STATUS
T35LK NOP           LINK
T35PR NOP           PRIORITY
* 
**    SYSTEM CONSOLE BUFFER 
* 
T35BF BSS 36        BUFFER FOR I/O
CRLF  OCT 6412
T35B1 DEF T35BF           => WORD ADDRESS OF BUFFER 
T35B2 ABS T35BF+T35BF     => CHAR ADDRESS OF BUFFER 
T35ND ABS T35BF+T35BF+72  => END OF CHARACTER BUFFER
      SPC 1 
* 
**    THE USER QUEUE
* qq
MLINK DEF *+1       POINTS TO BASIC QUEUE ENTRY 
      DEF *         LINK TO HEAD OF QUEUE 
INF   OCT 77777     MAXIMUM PRIORITY USED 
*                                     FOR QUEQE INSERTS 
      SPC 1 
* 
**    LOGGR POINTERS
* 
LOGCT NOP           NUMBER OF ELEMENTS IN LOGGR 
LOGBG DEF LOGGR     POINTS TO BEGINNING OF LOGGR
LOGP1 DEF LOGGR+31  POINTS TO FIRST AND 
LOGP2 DEF LOGGR+31    LAST ENTRIES IN LOGGR 
LOGND DEF LOGGR+32  POINTS TO END OF LOGGR
* 
***   DISC DRIVER TEMPORARIES AND STORAGE 
* qq
CORE  NOP 
DADDR NOP 
DRIVE NOP 
HDSCT NOP 
CYL#  NOP MMMM
DSAVE BSS 2 
FAIL  DEC -10 
WRIT  OCT 10000 
READ  OCT 20000 
SEEK  OCT 30000 
CYLMK OCT 77600 
CMDMA ABS 120000B+DC
SYSID NOP 
      SPC 1 
* 
**    SYSTEM DRIVER AND SUBROUTINE POINTERS 
* qq
?ADIN DEF DINT      => DISC COMMAND CHAN INT HANDLER
ABCK  DEF ABCHK     => ABORT CHECK ROUTINE
CLKDR DEF CLKIN     => CLOCK DRIVER 
DISC  DEF LDISC     => DISC DRIVER
DISCP DEF CHECK     => POWERFAIL DISC I/O HANDLER 
DSCBA DEF DSCBL     => DATA SET CONTROL BOARD DRIVER
MUXR  DEF MUXOR     => MULTIPLEXER OUTPUT ROUTINE 
POCR  DEF POC       => PROCESS OUTPUT CHARACTER 
POWIN DEF POW       => POWER FAIL/RESTART 
SCHEN DEF SCHEQ     => EXECUTION TERMINATION HANDLER
SCHIN DEF SCHIQ     => INPUT REQUEST HANDLER
SCHLB DEF SCHLQ     => LIBRARY ROUTINE SCHEDULER
SCHOU DEF SCHOQ     => SUSPEND REQUEST HANDLER
TAPEA DEF TAPER     => OUTPUT TAPE MODE ERRORS
      SPC 1 
* 
**    SYSTEM ADDRESS POINTERS 
* 
#LIB# DEF LIBRA     ADDRESS FOR LIBRARY WRITES
#LIBI DEF LIBRA,I   ADDRESS FOR LIBRARY READS 
?ABP2 DEF CRLF
DCLC1 DEF CLC1
DCLC2 DEF CLC2
DCOM6 DEF COM6      => LIBRARY DISC ADDRESSES TABLE 
DEH   DEF EH        => "???" BUFFER 
DIRD0 DEF DIREC 
DIRD1 DEF DIREC+7 
DIRD3 DEF DIREC+49
DLTEM DEF LTEMP     => START OF LIBRARY TEMPORARIES 
DTTY0 DEF TTY00     => START OF TELETYPE TABLES 
ERS32 DEF ERSEC+32
FUSS  DEF COM6+1    => DISC ADDRESS OF FUSS 
L128  DEF LIBUS+128 
LIBD  DEF LIBUS     ADDRESS OF USER AREA FOR WRITES 
LIBDI DEF LIBUS,I   ADDRESS OF USER AREA FOR READS
MLP2A DEF MLOP2     => INTO ASSIGN MATRIX VALUE 
ONEI  DEF B,I 
PBUFF DEF PROGB+1   => START OF USER AREA 
SCOM1 DEF COM1      => COMMAND TABLE HEAD 
SCOM5 DEF COM5-1    => END OF COMMAND TABLE 
TTYTP DEF TTPT      => TTY TABLES POINTER TABLE 
U4475 DEF USER+4475 => END OF USER AREA 
USEND DEF MSQHD-1   => MESSAGE BUFFER HEAD -1 
      SPC 1 1
* 
**    SYSTEM CONSTANTS AND TEMPORARIES
* 
DID   NOP 
LCHCR NOP 
MFLAG NOP           USED BY SUPERSAVE 
TCNTR BSS 1 
TPNTR BSS 1 
TSPNT BSS 1 
B1777 OCT 1777
SYNCC OCT 77577     SYNCHRONIZING CHARACTER 
D36K  ABS 30000+6000
M36K  ABS -30000-6000 
MCOM2 ABS -COM2 
MLIBD ABS -LIBUS
ASC00 ASC 1,00
ASC0B ASC 1,0 
ASCBA ASC 1, @
ASCBB ASC 1,
ASCFF ASC 1,FF
ASCIN ASC 1,N 
RVRSL ASC 1, \
READY DEF *+1 
      OCT 5122      READY MESSAGE 
      ASC 2,EADY
      SPC 1 
* 
**
***   DOT TABLE AND GENERAL USAGE CONSTANTS 
**
* qq
*  THE LOADER HAS AN IDENTICAL COPY OF THE DOT TABLE WHICH MUST 
*  BE ORIGINED AT THE SAME LOCATION AS THE SYSTEM VERSION.
* 
M3072 DEC -3072 
M2000 OCT 176000
M1000 DEC -1000 
M256  DEC -256
M252  DEC -252
M128  DEC -128
M96   OCT -140
M74   DEC -74 
M73   DEC -73 3z
M72   DEC -72 
D100  OCT -100
D66   OCT -66 
D72   OCT -72 
M72B  EQU D72 
D65   OCT -65 
D62   OCT -62 
M60B  OCT -60 
D53   OCT -53 
M41B  OCT -41 
M32   DEC -32 
      ORG .-29
      DEC -29,-28,-27,-26,-25,-24,-23,-22,-21 
      DEC -20,-19,-18,-17,-16,-15,-14,-13,-12,-11 
      DEC -10,-9,-8,-7,-6,-5,-4,-3,-2,-1
      DEC 0,1,2,3,4,5,6,7,8,9 
      DEC 10,11,12,13,14,15,16,17,18,19 
      DEC 20,21,22,23,24,25,26,27,28,29 
      DEC 30,31,32,33,34,35,36,37,38,39 
      DEC 40,41,42,43,44,45,46,47,48,49 
B63   OCT 63
.58   DEC 58
B73   OCT 73
D60   DEC 60
B77   OCT 77
B100  OCT 100 
.72   DEC 72
?72   EQU .72 
.74   DEC 74
.75   DEC 75
B133  OCT 133 3
BKSPC OCT 137 
D203  DEC 203 
B300  OCT 300 0
.105  DEC 105 
.112  DEC 112 
B177  OCT 177 
B200  OCT 200 
B377  OCT 377 
B400  OCT 400 
B776  OCT 776 
B777  OCT 777 
P3072 OCT 3072
CHNOP OCT 71000 
NUSE1 BSS 5         NOT USED                     [E]
      SKP 
* 
**  LANGUAGE PROCESSOR CONSTANTS AND ADDRESSES
* 
DMID  NOP 
DELSA DEF DELST 
SBJTB DEF #FSC
SYNTA DEF SYNTX 
      DEF #SBCK 
D600  DEC 600 
      DEF #FRCR 
MIOEN DEF MIO7
      DEF #FPOP 
LWAUS DEF FILBF-1 1h
      DEF #VROP 
LW200 ABS 200-FILBF+1 
      DEF #ARID 
STBAS DEF SYNTB-45B,I 
      DEF #PGIN N
MCBOP DEF MCBOS 
      DEF #TBSR 
MCREL DEF MRELS 
      DEF #GTPF 
ANOT  DEF NOT 
      DEF #LPCK 
STTYP DEF STYPS 
      DEF #RPCK 
AEND  DEF EOFOP 
      DEF #LTR
MATIO DEF IOSTS 
      DEF #STOP 
ATHEN DEF THEN
      DEF #CRST 
ASTEP DEF STEP
      DEF #DGCK 
ATAB  DEF TAB 
      DEF #LTCK K7
PDFNS DEF PRDFS 
      DEF #SBPU 
MATFN DEF MATFS 
      DEF #SYCK 
OF    ASC 1,OF
      DEF #FINC 
TO    ASC 1,TO
      DEF #NMCK 
FN    ASC 1,NF
      DEF #MB10 
ACCSA DEF ACCST 
      DEF #DB10 
ACC5A DEF ACCS5 
      DEF #NRML 
DONEA DEF EXIT3 
      DEF #PACK 
SER7A DEF SERR7 
      DEF #OVFL 
DSERR DEF DSERA 
      DEF #DLPR 
SERRA ABS -SERRS
      DEF #FDPS 
RERRA ABS SERRS-RERRS 
      DEF #SSYM 
WERRA ABS RERRS-WERRS 
      DEF #ASYM 
ERSCA DEF ERSEC 
      DEF #DCMP 
APTR1 DEF SYMT6 
      DEF #PNST 
APTR2 DEF SYMT7 
      DEF #CUSP 
A.10  DEF .+10
      DEF #STRI 
EXITA DEF EXIT
      DEF #RSTO 
XEC1A DEF XEC1
      DEF #GTST 
FRET  DEF FOR10 
      DEF #FORM 
XECBR DEF XECTB-45B,I 
      DEF #STST 
FOPBS DEF QUOTE-2 
      DEF #SBFX 
ARBAS DEF FOJT-12B,I
      DEF #PSTR 
MINP1 DEF EINP1 
      DEF #TRST 
MINP2 DEF EINP0+3 
      DEF #CMPR 
ENDIN DEF EIN12 2
      DEF #PCHK 
FSCHA DEF FSCH
      DEF #FTCH 
FINCA DEF FINCH XX
      DEF #STDP 
NMBFA DEF NUMBF 
      DEF #FDAT 
LCALL DEF LIS10-1 
      DEF #FSCH 
B1000 OCT 1000
      DEF #PSHS 
B2000 OCT 2000KK
      DEF #ARIN 
B3000 OCT 3000
      DEF #BNOP 
RPOP  OCT 10000 VV
      DEF #STTP 
RBOP  OCT 11000 
      DEF #OPCK 
LBOP  OCT 12000 
      DEF #RSCK 
LPOP  OCT 13000 
      DEF #FADA,
UNPLC OCT 14000 
      DEF #FSB
UNMNC OCT 15000 
      DEF #FMP
MULOP OCT 22000 nn
      DEF #FDV
EXPOP OCT 24000 
      DEF #OUCK 
DIMOP OCT 47000 
      DEF #FLUN 
DEFOP OCT 50000 
      DEF #IFIX 
REMOP OCT 51000 
      DEF #ENOT 
FOROP OCT 54000 
      DEF #NMOT 
NXTOP OCT 55000 
      DEF #GTDG 
ENDOP OCT 60000 
      DEF #OTLN 
DATOP OCT 62000 0s
      DEF #EDLM 
INPOP OCT 63000 
      DEF #STPT 
PRTOP OCT 65000 
      DEF #EXP
FILOP OCT 70000 
      DEF #LOG
TOOP  OCT 76000 
      DEF #CHEB 
OPMSK OCT 77000 
      DEF #IENT 
SMSK  OCT 77600 
      DEF #PWR2 
INTFL OCT 100003
      DEF #INCL 
PDFFL OCT 100017
      DEF #GTCR 
TABCN OCT 100037KK
      DEF #BKSP 
LENCN OCT 100337
      DEF #OTCR 
OPDMK OCT 100777
      DEF #OTIN 
DHMSK OCT 100100--
      DEF #MCOT 
HMASK OCT 174000
      DEF #OTST 
OFOP  OCT 174003
      DEF #SINI 
.2500 DEC 2500
      DEF #BLDI 
TENTH OCT 63146 
      DEF #RDIM 
D1111 OCT -1111 
      DEF #VCHK 
MAXSN DEC -10000
      DEF #SERR Rw
E     OCT 105 
      DEF #CHOU 
F     OCT 106 
      DEF #MOVE 
N     OCT 116 
      DEF #RECR 
LETOP OCT 72000 0
      DEF #FILR 
.140  OCT 140 
      DEF #VLFI 
D133  OCT -133
      DEF #RQST 
D577  OCT -5777|
      DEF #FILS 
B4000 OCT 40000z
      DEF #GTTY Y\
PDFBS JMP PDFTB-1,I I 
      DEF #WRBU 
COMOP OCT 45000 
      DEF #ALCO 
SCOMM OCT 16000 ::
      DEF #SLCK                                  (D)
STATS NOP           USED BY "DISC-UP" COMMAND 
FDT4A DEF FDAT4 
