    +-------------------------+
    |                         |
    |    The Rosetta Stone    |
    |                         |
    |   HP <-> AG Mnemonics   |
    |                         |
    +-------------------------+

   Compiled by Joseph K. Horn, from the HP-mnemonics list by Derek S.
Nickel, dated 30 January 1991 and the AG disassembly program "DISD" by
Kevin Pryor.  (Both can be found on EduCALC Goodies Disk #2).

   Modified by Jan Brittenson October 1991, to match STAR syntax, to
fill in unknowns, and to prepare it for inclusion as an appendix in
the MLDL manual.

   Corrections and modifications by Dan Kirkland, summer of 1994.


       Syntax:

       +-------------------+
       | HEX   HP   |   AG |
       +-------------------+

       Symbols used in code field:

       a       Field select in the range 0-7.
       b       Field select in the range 8-F.
       c       Single-nibble length field (Load Constant).
       f       Field select including A field.
       h...h   Hexadecimal value.
       m       Nibble whose value is d - 1.
       n       Nibble whose value is d.
       n...n   Nibbles whose value is expr.
       x...x   Nibbles corresponding to ASCII characters.
       y       Reference to a symbol (relative or absolute).

       Symbols used in modifier field:

       fs      Field Select character.
       rfs     Restricted Field Selection (S,P,WP, and XS not allowed).
       d       Single-nibble field (**see note).
       expr    Expression (*see note).
       h...h   Hexadecimal value.
       label   Label destination.
       \A...A\ ASCII characters.
       
       Symbols used in instruction field:
       
       k       Constant length field (*** see note).

       
       Field Select table:
       +-------------------------------+
       | fs: P  WP XS X  S  M  B  W  A |
       +-------------------------------+
       | f:  0  1  2  3  4  5  6  7  F |
       | a:  0  1  2  3  4  5  6  7    |
       | b:  8  9  A  B  C  D  E  F    |
       +-------------------------------+
       
================================================================
        OVERVIEW
================================================================

0...  misc operations (see next page)

1...  data movement/loading (see following page)

2n   P= d   |   MOVE.1 d,P

3cn...n   LC(k)  expr      |   MOVE.Pk expr,C
3cx...x   LCASC  \A...A\   |   MOVE.Pk `A...A',C
3ch...h   LCHEX  h...h     |   MOVE.Pk h...h,C

400       RTNC             |   RETCS
4yy       GOC   label      |   BRCS label
420       NOP3             |   NOP3

500       RTNNC            |   RETCC
5yy       GONC  label      |   BRCC label

6yyy      GOTO  label      |   JUMP.3 label
6300      NOP4             |   NOP4
64000     NOP5             |   NOP5

7yyy      GOSUB label      |   CALL.3 label

A...F   (see pages at end)

================================================================
        0
================================================================

00   RTNSXM   |   RETSETXM
01   RTN      |   RET
02   RTNSC    |   RETSETC
03   RTNCC    |   RETCLRC
04   SETHEX   |   SETHEX
05   SETDEC   |   SETDEC
06   RSTK=C   |   PUSH.A C
07   C=RSTK   |   POP.A C
08   CLRST    |   CLR.X ST
09   C=ST     |   MOVE.X ST,C
0A   ST=C     |   MOVE.X C,ST
0B   CSTEX    |   SWAP.X C,ST
0C   P=P+1    |   INC.1 P
0D   P=P-1    |   DEC.1 P
0Exx   (see below)
0F   RTI      |   RETI

0Ef0   A=A&B  fs   |   AND.fs B,A
0Ef1   B=B&C  fs   |   AND.fs C,B
0Ef2   C=C&A  fs   |   AND.fs A,C
0Ef3   D=D&C  fs   |   AND.fs C,D
0Ef4   B=B&A  fs   |   AND.fs A,B
0Ef5   C=C&B  fs   |   AND.fs B,C
0Ef6   A=A&C  fs   |   AND.fs C,A
0Ef7   C=C&D  fs   |   AND.fs D,C
0Ef8   A=A!B  fs   |   OR.fs B,A
0Ef9   B=B!C  fs   |   OR.fs C,B
0EfA   C=C!A  fs   |   OR.fs A,C
0EfB   D=D!C  fs   |   OR.fs C,D
0EfC   B=B!A  fs   |   OR.fs A,B
0EfD   C=C!B  fs   |   OR.fs B,C
0EfE   A=A!C  fs   |   OR.fs C,A
0EfF   C=C!D  fs   |   OR.fs D,C

================================================================
        10, 11, 12
================================================================

100   R0=A   |   MOVE.W A,R0
101   R1=A   |   MOVE.W A,R1
102   R2=A   |   MOVE.W A,R2
103   R3=A   |   MOVE.W A,R3
104   R4=A   |   MOVE.W A,R4
108   R0=C   |   MOVE.W C,R0
109   R1=C   |   MOVE.W C,R1
10A   R2=C   |   MOVE.W C,R2
10B   R3=C   |   MOVE.W C,R3
10C   R4=C   |   MOVE.W C,R4

110   A=R0   |   MOVE.W R0,A
111   A=R1   |   MOVE.W R1,A
112   A=R2   |   MOVE.W R2,A
113   A=R3   |   MOVE.W R3,A
114   A=R4   |   MOVE.W R4,A

118   C=R0   |   MOVE.W R0,C
119   C=R1   |   MOVE.W R1,C
11A   C=R2   |   MOVE.W R2,C
11B   C=R3   |   MOVE.W R3,C
11C   C=R4   |   MOVE.W R4,C

120   AR0EX   |   SWAP.W A,R0
121   AR1EX   |   SWAP.W A,R1
122   AR2EX   |   SWAP.W A,R2
123   AR3EX   |   SWAP.W A,R3
124   AR4EX   |   SWAP.W A,R4

128   CR0EX   |   SWAP.W C,R0
129   CR1EX   |   SWAP.W C,R1
12A   CR2EX   |   SWAP.W C,R2
12B   CR3EX   |   SWAP.W C,R3
12C   CR4EX   |   SWAP.W C,R4

================================================================
        13 through 1F
================================================================

130   D0=A    |   MOVE.A A,D0
131   D1=A    |   MOVE.A A,D1
132   AD0EX   |   SWAP.A A,D0
133   AD1EX   |   SWAP.A A,D1
134   D0=C    |   MOVE.A C,D0
135   D1=C    |   MOVE.A C,D1
136   CD0EX   |   SWAP.A C,D0
137   CD1EX   |   SWAP.A C,D1

138   D0=AS   |   MOVE.4 A,D0
139   D1=AS   |   MOVE.4 A,D1
13A   AD0XS   |   SWAP.4 A,D0
13B   AD1XS   |   SWAP.4 A,D1

13C   D0=CS   |   MOVE.4 C,D0
13D   D1=CS   |   MOVE.4 C,D1
13E   CD0XS   |   SWAP.4 C,D0
13F   CD1XS   |   SWAP.4 C,D1
---------- field -----------
 A       B       fs      d
----------------------------
140     148     150a    158m    DAT0=A fs   |   MOVE.fs A,@D0
141     149     151a    159m    DAT1=A fs   |   MOVE.fs A,@D1
142     14A     152a    15Am    A=DAT0 fs   |   MOVE.fs @D0,A
143     14B     153a    15Bm    A=DAT1 fs   |   MOVE.fs @D1,A
144     14C     154a    15Cm    DAT0=C fs   |   MOVE.fs C,@D0
145     14D     155a    15Dm    DAT1=C fs   |   MOVE.fs C,@D1
146     14E     156a    15Em    C=DAT0 fs   |   MOVE.fs @D0,C
147     14F     157a    15Fm    C=DAT1 fs   |   MOVE.fs @D1,C

16m     D0=D0+ d       |   ADD.A d,D0
17m     D1=D1+ d       |   ADD.A d,D1
18m     D0=D0- d       |   SUB.A d,D0
19nn    D0=(2) expr    |   MOVE.2 expr,D0
19hh    D0=HEX hh      |   MOVE.2 hh,D0
1Annnn  D0=(4) expr    |   MOVE.4 expr,D0
1Ahhhh  D0=HEX hhhh    |   MOVE.4 hhhh,D0
1Bnnnnn D0=(5) expr    |   MOVE.5 expr,D0
1Bhhhhh D0=HEX hhhhh   |   MOVE.5 hhhhh,D0
1Cm     D1=D1- d       |   SUB.A d,D1
1Dnn    D1=(2) expr    |   MOVE.2 expr,D1
1Dhh    D1=HEX hh      |   MOVE.2 hh,D1
1Ennnn  D1=(4) expr    |   MOVE.4 expr,D1
1Ehhhh  D1=HEX hhhh    |   MOVE.4 hhhh,D1
1Fnnnnn D1=(5) expr    |   MOVE.5 expr,D1
1Fhhhhh D1=HEX hhhhh   |   MOVE.5 hhhhh,D1

================================================================
        80
================================================================

800   OUT=CS   |   OUT.S C
801   OUT=C    |   OUT.X C
802   A=IN     |   IN.4 A
803   C=IN     |   IN.4 C
804   UNCNFG   |   UNCNFG
805   CONFIG   |   CONFIG
806   C=ID     |   MOVE.A ID,C
807   SHUTDN   |   SHUTDN

8080   INTON     |   INTON
80810   RSI      |   RSI
8082cn...n   LA(k)  expr      |   MOVE.Pk expr,A
8082cx...x   LAASC  \A...A\   |   MOVE.Pk `A...A',A
8082ch...h   LAHEX  h...h     |   MOVE.Pk h...h,A

8083    BUSCB       |   BUSCB
8084n   ABIT=0 d    |   CLRB d,A
8085n   ABIT=1 d    |   SETB d,A
8086nyy ?ABIT=0 d   |   BRBC d,A,label / RETBC d,A
8087nyy ?ABIT=1 d   |   BRBS d,A,label / RETBS d,A
8088n   CBIT=0 d    |   CLRB d,C
8089n   CBIT=1 d    |   SETB d,C
808Anyy ?CBIT=0 d   |   BRBC d,C,label / RETBC d,C
808Bnyy ?CBIT=1 d   |   BRBS d,C,label / RETBS d,C
808C    PC=(A)   |   JUMP.A @A
808D    BUSCD    |   BUSCD
808E    PC=(C)   |   JUMP.A @C
808F    INTOFF   |   INTOFF

809     C+P+1    |   ADD.A P+1,C
80A     RESET    |   RESET
80B     BUSCC    |   BUSCC
80Cn    C=P d    |   MOVE.1 P,C.d
80Dn    P=C d    |   MOVE.1 C.d,P
80E     SREQ?    |   SREQ
80Fn    CPEX d   |   SWAP.1 P,C.d

================================================================
        81
================================================================

810  ASLC   |   RLN.W A
811  BSLC   |   RLN.W B
812  CSLC   |   RLN.W C
813  DSLC   |   RLN.W D
814  ASRC   |   RRN.W A
815  BSRC   |   RRN.W B
816  CSRC   |   RRN.W C
817  DSRC   |   RRN.W D

81C  ASRB   |   SRB.W A
81D  BSRB   |   SRB.W B
81E  CSRB   |   SRB.W C
81F  DSRB   |   SRB.W D

818f0m   A=A+CON rfs,d   |   ADD.rfs d,A
818f1m   B=B+CON rfs,d   |   ADD.rfs d,B
818f2m   C=C+CON rfs,d   |   ADD.rfs d,C
818f3m   D=D+CON rfs,d   |   ADD.rfs d,D

818f8m   A=A-CON rfs,d   |   SUB.rfs d,A
818f9m   B=B-CON rfs,d   |   SUB.rfs d,B
818fAm   C=C-CON rfs,d   |   SUB.rfs d,C
818fBm   D=D-CON rfs,d   |   SUB.rfs d,D

819f0   ASRB.F  fs   |   SRB.fs A
819f1   BSRB.F  fs   |   SRB.fs B
819f2   CSRB.F  fs   |   SRB.fs C
819f3   DSRB.F  fs   |   SRB.fs D

81Af00   R0=A.F  fs   |   MOVE.fs A,R0
81Af01   R1=A.F  fs   |   MOVE.fs A,R1
81Af02   R2=A.F  fs   |   MOVE.fs A,R2
81Af03   R3=A.F  fs   |   MOVE.fs A,R3
81Af04   R4=A.F  fs   |   MOVE.fs A,R4

81Af08   R0=C.F  fs   |   MOVE.fs C,R0
81Af09   R1=C.F  fs   |   MOVE.fs C,R1
81Af0A   R2=C.F  fs   |   MOVE.fs C,R2
81Af0B   R3=C.F  fs   |   MOVE.fs C,R3
81Af0C   R4=C.F  fs   |   MOVE.fs C,R4

81Af10   A=R0.F  fs   |   MOVE.fs R0,A
81Af11   A=R1.F  fs   |   MOVE.fs R1,A
81Af12   A=R2.F  fs   |   MOVE.fs R2,A
81Af13   A=R3.F  fs   |   MOVE.fs R3,A
81Af14   A=R4.F  fs   |   MOVE.fs R4,A

81Af18   C=R0.F  fs   |   MOVE.fs R0,C
81Af19   C=R1.F  fs   |   MOVE.fs R1,C
81Af1A   C=R2.F  fs   |   MOVE.fs R2,C
81Af1B   C=R3.F  fs   |   MOVE.fs R3,C
81Af1C   C=R4.F  fs   |   MOVE.fs R4,C

81Af20   AR0EX.F fs   |   SWAP.fs A,R0
81Af21   AR1EX.F fs   |   SWAP.fs A,R1
81Af22   AR2EX.F fs   |   SWAP.fs A,R2
81Af23   AR3EX.F fs   |   SWAP.fs A,R3
81Af24   AR4EX.F fs   |   SWAP.fs A,R4

81Af28   CR0EX.F fs   |   SWAP.fs C,R0
81Af29   CR1EX.F fs   |   SWAP.fs C,R1
81Af2A   CR2EX.F fs   |   SWAP.fs C,R2
81Af2B   CR3EX.F fs   |   SWAP.fs C,R3
81Af2C   CR4EX.F fs   |   SWAP.fs C,R4

81B2   PC=A    |   JUMP.A A
81B3   PC=C    |   JUMP.A C
81B4   A=PC    |   MOVE.A PC,A
81B5   C=PC    |   MOVE.A PC,C
81B6   APCEX   |   SWAP.A A,PC
81B7   CPCEX   |   SWAP.A C,PC

================================================================
        82 through 8F, 9
================================================================

82n   HS=0 d |   CLRB [d],HST     {MP,SR,SB,XM}  (see ** below)
821   XM=0   |   CLRB [XM],HST   { 0  0  0  1   ->  1}
822   SB=0   |   CLRB [SB],HST   { 0  0  1  0   ->  2}
824   SR=0   |   CLRB [SR],HST   { 0  1  0  0   ->  4}
828   MP=0   |   CLRB [MP],HST   { 1  0  0  0   ->  8}
82F   CLRHST |   CLRB [XM,SB,SR,MP],HST
             **  e.g.  829  is  HS=0 9   |   CLRB [XM,MP],HST

   Note: In the STAR assembler, the notation [A,B,C...] means "an
integer with bits A,B,C... set". [] is zero.  The symbols "MP", "SR",
"SB", and "XM" are predefined by the assembler to the values 0, 1, 2,
and 3 respectively. Thus, "[3,1]" is equivalent to "[XM,MP]".  All
[...] constructions are collectively refered to as a "bit pattern
expressions."


83nyy   ?XM=0 d |   BRBC [d],HST,label / RETBC [d],HST          **
831yy   ?XM=0   |   BRBC [XM],HST,label / RETBC [XM],HST        **
832yy   ?SB=0   |   BRBC [SB],HST,label / RETBC [SB],HST        **
834yy   ?SR=0   |   BRBC [SR],HST,label / RETBC [SR],HST        **
838yy   ?MP=0   |   BRBC [MP],HST,label / RETBC [MP],HST        **

                ** See explanation of bit pattern expressions above.


84n     ST=0   d   |   CLRB d,ST
85n     ST=1   d   |   SETB d,ST
86nyy   ?ST=0  d   |   BRBC d,ST,label / RETBC d,ST
87nyy   ?ST=1  d   |   BRBS d,ST,label / RETBS d,ST
88nyy   ?P#    d   |   BRNE.1 P,d,label / RETNE.1 P,d
89nyy   ?P=    d   |   BREQ.1 P,d,label / RETEQ.1 P,d

8A...8b... (see below)

8Cyyyy  GOLONG label   |   JUMP.4 label
8Dyyyyy GOVLNG label   |   JUMP.A label
8Eyyyy  GOSUBL label   |   CALL.4 label
8Fyyyyy GOSBVL label   |   CALL.A label

9zxyy  (see below)

test00  RTNYES        |   (not needed; see test mnemonics)
testyy  GOYES  label  |   (not needed; see test mnemonics)

Relative gotos (GOTO, GOLONG, GOC, GONC, GOYES):
Offset is relative to the first nibble of the offset.

Relative gosubs (GOSUB, GOSUBL):
Offset is relative to the first nibble of the next instruction.

================================================================
        8A, 8B, 9
================================================================

--- field ----
  A      fs
--------------
8A0yy   9a0yy    ?A=B fs   |   BREQ.fs A,B,PC+(yy+3) **
8A1yy   9a1yy    ?B=C fs   |   BREQ.fs B,C,PC+(yy+3)
8A2yy   9a2yy    ?A=C fs   |   BREQ.fs A,C,PC+(yy+3)
8A3yy   9a3yy    ?C=D fs   |   BREQ.fs C,D,PC+(yy+3)
8A4yy   9a4yy    ?A#B fs   |   BRNE.fs A,B,PC+(yy+3)
8A5yy   9a5yy    ?B#C fs   |   BRNE.fs B,C,PC+(yy+3)
8A6yy   9a6yy    ?A#C fs   |   BRNE.fs A,C,PC+(yy+3)
8A7yy   9a7yy    ?C#D fs   |   BRNE.fs C,D,PC+(yy+3)
8A8yy   9a8yy    ?A=0 fs   |   BRZ.fs A,PC+(yy+3)
8A9yy   9a9yy    ?B=0 fs   |   BRZ.fs B,PC+(yy+3)
8AAyy   9aAyy    ?C=0 fs   |   BRZ.fs C,PC+(yy+3)
8AByy   9aByy    ?D=0 fs   |   BRZ.fs D,PC+(yy+3)
8ACyy   9aCyy    ?A#0 fs   |   BRNZ.fs A,PC+(yy+3)
8ADyy   9aDyy    ?B#0 fs   |   BRNZ.fs B,PC+(yy+3)
8AEyy   9aEyy    ?C#0 fs   |   BRNZ.fs C,PC+(yy+3)
8AFyy   9aFyy    ?D#0 fs   |   BRNZ.fs D,PC+(yy+3)
                       
8B0yy   9b0yy    ?A>B  fs   |   BRGT.fs A,B,PC+(yy+3) **
8B1yy   9b1yy    ?B>C  fs   |   BRGT.fs B,C,PC+(yy+3)
8B2yy   9b2yy    ?C>A  fs   |   BRGT.fs C,A,PC+(yy+3)
8B3yy   9b3yy    ?D>C  fs   |   BRGT.fs D,C,PC+(yy+3)
8B4yy   9b4yy    ?A<B  fs   |   BRLT.fs A,B,PC+(yy+3)
8B5yy   9b5yy    ?B<C  fs   |   BRLT.fs B,C,PC+(yy+3)
8B6yy   9b6yy    ?C<A  fs   |   BRLT.fs C,A,PC+(yy+3)
8B7yy   9b7yy    ?D<C  fs   |   BRLT.fs D,C,PC+(yy+3)
8B8yy   9b8yy    ?A>=B fs   |   BRGE.fs A,B,PC+(yy+3)
8B9yy   9b9yy    ?B>=C fs   |   BRGE.fs B,C,PC+(yy+3)
8BAyy   9bAyy    ?C>=A fs   |   BRGE.fs C,A,PC+(yy+3)
8BByy   9bByy    ?D>=C fs   |   BRGE.fs D,C,PC+(yy+3)
8BCyy   9bCyy    ?A<=B fs   |   BRLE.fs A,B,PC+(yy+3)
8BDyy   9bDyy    ?B<=C fs   |   BRLE.fs B,C,PC+(yy+3)
8BEyy   9bEyy    ?C<=A fs   |   BRLE.fs C,A,PC+(yy+3)
8BFyy   9bFyy    ?D<=C fs   |   BRLE.fs D,C,PC+(yy+3)

**  RET instead of BR for all of the above, if yy=0.

================================================================
        A, C, D
================================================================

-- field --
A     fs
-----------
C0    Aa0    A=A+B  fs   |   ADD.fs B,A
C1    Aa1    B=B+C  fs   |   ADD.fs C,B
C2    Aa2    C=C+A  fs   |   ADD.fs A,C
C3    Aa3    D=D+C  fs   |   ADD.fs C,D
C4    Aa4    A=A+A  fs   |   ADD.fs A,A
C5    Aa5    B=B+B  fs   |   ADD.fs B,B
C6    Aa6    C=C+C  fs   |   ADD.fs C,C
C7    Aa7    D=D+D  fs   |   ADD.fs D,D
C8    Aa8    B=B+A  fs   |   ADD.fs A,B
C9    Aa9    C=C+B  fs   |   ADD.fs B,C
CA    AaA    A=A+C  fs   |   ADD.fs C,A
CB    AaB    C=C+D  fs   |   ADD.fs D,C
CC    AaC    A=A-1  fs   |   DEC.fs A
CD    AaD    B=B-1  fs   |   DEC.fs B
CE    AaE    C=C-1  fs   |   DEC.fs C
CF    AaF    D=D-1  fs   |   DEC.fs D

D0    Ab0    A=0  fs   |   CLR.fs A
D1    Ab1    B=0  fs   |   CLR.fs B
D2    Ab2    C=0  fs   |   CLR.fs C
D3    Ab3    D=0  fs   |   CLR.fs D
D4    Ab4    A=B  fs   |   MOVE.fs B,A
D5    Ab5    B=C  fs   |   MOVE.fs C,B
D6    Ab6    C=A  fs   |   MOVE.fs A,C
D7    Ab7    D=C  fs   |   MOVE.fs C,D
D8    Ab8    B=A  fs   |   MOVE.fs A,B
D9    Ab9    C=B  fs   |   MOVE.fs B,C
DA    AbA    A=C  fs   |   MOVE.fs C,A
DB    AbB    C=D  fs   |   MOVE.fs D,C
DC    AbC    ABEX fs   |   SWAP.fs A,B
DD    AbD    BCEX fs   |   SWAP.fs B,C
DE    AbE    ACEX fs   |   SWAP.fs A,C
DF    AbF    CDEX fs   |   SWAP.fs C,D

================================================================
        B, E, F
================================================================

-- field ---
A     fs
------------
E0    Ba0   A=A-B  fs   |   SUB.fs B,A
E1    Ba1   B=B-C  fs   |   SUB.fs C,B
E2    Ba2   C=C-A  fs   |   SUB.fs A,C
E3    Ba3   D=D-C  fs   |   SUB.fs C,D
E4    Ba4   A=A+1  fs   |   INC.fs A
E5    Ba5   B=B+1  fs   |   INC.fs B
E6    Ba6   C=C+1  fs   |   INC.fs C
E7    Ba7   D=D+1  fs   |   INC.fs D
E8    Ba8   B=B-A  fs   |   SUB.fs A,B
E9    Ba9   C=C-B  fs   |   SUB.fs B,C
EA    BaA   A=A-C  fs   |   SUB.fs C,A
EB    BaB   C=C-D  fs   |   SUB.fs D,C
EC    BaC   A=B-A  fs   |   SUBN.fs B,A
ED    BaD   B=C-B  fs   |   SUBN.fs C,B
EE    BaE   C=A-C  fs   |   SUBN.fs A,C
EF    BaF   D=C-D  fs   |   SUBN.fs C,D

F0    Bb0   ASL    fs   |   SLN.fs A
F1    Bb1   BSL    fs   |   SLN.fs B
F2    Bb2   CSL    fs   |   SLN.fs C
F3    Bb3   DSL    fs   |   SLN.fs D
F4    Bb4   ASR    fs   |   SRN.fs A
F5    Bb5   BSR    fs   |   SRN.fs B
F6    Bb6   CSR    fs   |   SRN.fs C
F7    Bb7   DSR    fs   |   SRN.fs D
F8    Bb8   A=-A   fs   |   NEG.fs A
F9    Bb9   B=-B   fs   |   NEG.fs B
FA    BbA   C=-C   fs   |   NEG.fs C
FB    BbB   D=-D   fs   |   NEG.fs D
FC    BbC   A=-A-1 fs   |   NOT.fs A
FD    BbD   B=-B-1 fs   |   NOT.fs B
FE    BbE   C=-C-1 fs   |   NOT.fs C
FF    BbF   D=-D-1 fs   |   NOT.fs D

================================================================
        Data Storage Allocation
================================================================

0...0   BSS    expr      |   DATA0   expr       **
n...n   CON(x) expr      |   DATA.d  expr
y...y   REL(x) label     |   DATA.d  label
x...x   NIBASC \A...A\   |   ASCII   `A...A'
h...h   NIBHEX h...h     |   DATA.d  h...h

                ** Requires inclusion of the following STAR macro
                   definition:

                        macro   bss     arg=0
                          save op
                          arg=$arg
                          op = `;'

                          if arg > 0
                            if arg < 8
                              data.$arg 0
                            else
                              op = `bss'
                            endif
                          endif

                          $op $(arg-^d8)
                          restore op
                        endmacro


--- End of Rosetta Stone ---
