z8000 documentation
authorSteve Chamberlain <sac@cygnus>
Thu, 19 Nov 1992 19:49:01 +0000 (19:49 +0000)
committerSteve Chamberlain <sac@cygnus>
Thu, 19 Nov 1992 19:49:01 +0000 (19:49 +0000)
* Makefile.in, all.m4, as-all.texinfo as.texinfo: all modified

gas/doc/.Sanitize
gas/doc/ChangeLog
gas/doc/all.m4
gas/doc/as-all.texinfo
gas/doc/as.texinfo

index 9108fd54c9e544014ed24443f39e432226a0b2cb..a99ea4b72d27cfe401ccb2e463ea1b07c0a95e69 100644 (file)
@@ -45,6 +45,7 @@ pretex.m4
 sparc.m4
 vax.m4
 vintage.m4
+z8000.m4
 
 Do-last:
 
@@ -53,7 +54,11 @@ echo Done in `pwd`.
 #
 #
 # $Log$
-# Revision 1.4  1992/03/10 00:50:59  rich
+# Revision 1.5  1992/11/19 19:48:43  sac
+#      z8000 documentation
+#      * Makefile.in, all.m4, as-all.texinfo as.texinfo: all modified
+#
+# Revision 1.4  1992/03/10  00:50:59  rich
 # keep ChangeLog and as-all.texinfo
 #
 # Revision 1.3  1992/02/24  13:54:45  tiemann
index 3826d8b48c86743cc413a89900e1b5960b000e93..a277cea11385fe0ec1ccdb4389e55a96c895620e 100644 (file)
@@ -1,3 +1,8 @@
+Thu Nov 19 11:47:19 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
+    
+       z8000 documentation
+       * Makefile.in, all.m4, as-all.texinfo as.texinfo: all modified
+
 Sun Aug 30 21:26:05 1992  Ian Lance Taylor  (ian@cygnus.com)
 
        * Makefile.in: map "as" through program_transform_name when
index dc96dcee095cb5e99e79f1f441e7bf1454907ecd..4684bd0ec3109d436a5265ed17ec88ae0376199a 100644 (file)
@@ -13,6 +13,7 @@ _define__(<_H8__>,<1>)
 _define__(<_I80386__>,<1>)
 _define__(<_I960__>,<1>)
 _define__(<_M680X0__>,<1>)
+_define__(<_Z8000__>,<1>)
 _define__(<_SPARC__>,<1>)
 _define__(<_VAX__>,<1>)
 _define__(<_VXWORKS__>,<1>)
index 59e392b60071814b0edc553a1531524647ee4f1e..6dc6a913c65de29e83b9c1c5edb532404fd44308 100644 (file)
@@ -143,6 +143,7 @@ Here is a brief summary of how to invoke @code{as}.  For details,
    [ -o @var{objfile} ] [ -R ] [ -v ] [ -w ]
 @c am29k has no machine-dependent assembler options
 @c h8/300 has no machine-dependent assembler options
+@c Z8000 has no machine-dependent assembler options
 @c see md_parse_option in i960.c
    [ -ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB | -AKC | -AMC ]
    [ -b ] [ -norelax ]
@@ -696,6 +697,7 @@ is considered a comment and is ignored.  The line comment character is
 @samp{|} on the 680x0;
 @samp{;} for the AMD 29K family;
 @samp{;} for the machine specific family;
+@samp{!} for the Z8000.
 @pxref{Machine Dependent}.  @refill
 @c FIXME: fill in SPARC line comment char
 
@@ -2773,6 +2775,7 @@ subject, see the hardware manufacturer's manual.
 * i960-Dependent::             Intel 80960 Dependent Features
 * M68K-Dependent::             M680x0 Dependent Features
 * Sparc-Dependent::            SPARC Dependent Features
+* Z8000-Dependent::            Z8000 Dependent Features
 * i386-Dependent::             80386 Dependent Features
 @end menu
 
@@ -4587,6 +4590,315 @@ This is just a shorthand, so that, multiplying @samp{%eax} by 69, for
 example, can be done with @samp{imul $69, %eax} rather than @samp{imul
 $69, %eax, %eax}.
 
+@node Z8000-Dependent
+@section Z8000 Dependent Features
+
+@cindex Z8000 support
+@menu
+* Z8000 Options::              Options
+* Z8000 Syntax::               Syntax
+* Z8000 Directives::           Z8000 Machine Directives
+* Z8000 Opcodes::              Opcodes
+@end menu
+
+@node Z8000 Options
+@subsection Options
+
+@cindex Z8000 options
+@cindex options, Z8000
+@code{as} has no additional command-line options for the Zilog
+Z8000 family.
+
+@node Z8000 Syntax
+@subsection Syntax
+@menu
+* Z8000-Chars::                Special Characters
+* Z8000-Regs::                 Register Names
+* Z8000-Addressing::           Addressing Modes
+@end menu
+
+@node Z8000-Chars
+@subsubsection Special Characters
+
+@cindex line comment character, Z8000
+@cindex Z8000 line comment character
+@samp{!} is the line comment character.
+
+@cindex line separator, Z8000
+@cindex statement separator, Z8000
+@cindex Z8000 line separator
+@samp{;} can be used instead of a newline to separate statements.
+
+@node Z8000
+@subsubsection Register Names
+
+@cindex Z8000 registers
+@cindex registers, Z8000
+The Z8000 has sixteen 16 bit registers, numbered 0 to 15.  You can refer to different
+sized groups of registers with the prefix @samp{r} for 16 bit registers, @samp{rr}
+for 32 bit registers and @samp{rq} for 64 bit registers.  The first eight of the sixteen
+16 bit registers may also be accessed by bytes.  They are named @samp{r@var{n}h} and @samp{r@var{n}l}}.
+@example
+byte registers
+       r0l r0h r1h r1l r2h r2l r3h r3l r4h r4l r5h r5l r6h r6l r7h r7l
+
+word registers
+       r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15
+
+long word registers
+       rr0 rr2 rr4 rr6 rr8 rr10 rr12 rr14
+
+quad word registers
+       rq0 rq4 rq8 rq12
+@end example
+@node Z8000-Addressing
+@subsubsection Addressing Modes
+@cindex addressing modes, Z8000
+@cindex Z800 addressing modes
+as understands the following addressing modes for the Z8000:
+@table @code
+@item r@var{n}
+Register direct
+
+@item @@r@var{n}
+Indirect register 
+
+@item var{address}
+Direct: the 16/24 bit address of the operand is in the instruction.
+
+@item address(r@var{n})
+Indexed: the 16/24 bit address is added to the 16 bit register to produce
+the final address in memory of the operand.
+
+@item r@var{n}(#@var{imm})
+Base Address: the 16/24 bit register is added to the 16 bit sign extended immediate displacement to produce the final address in memory of the operand.
+
+@item r@var{n}(r@var{m})
+Base Index: the 16/24 bit register r@var{n} is added to the sign extended
+16 bit index register r@var{m} to produce the final address in memory of the operand.
+
+@item #@var{xx}
+Immediate data @var{xx}.
+@end table
+@node Z8000 Opcodes
+@subsection Opcodes
+
+@cindex Z8000 opcode summary
+@cindex opcode summary, Z8000
+@cindex mnemonics, Z8000
+@cindex instruction summary, Z8000
+For detailed information on the Z8000 machine instruction set, see
+@cite{Z8000 Technical Manual}.
+
+@cindex Z8000 pseudo ops
+
+The Z8000 port of gas provides a superficial resemblance to YASM, and
+provides these YASM compatible pseudo ops:
+@table @code
+@item segm
+@cindex segm
+Generates code for the segmented Z8001.
+@item unsegm
+Generates code for the unsegmented Z8002.
+@item name
+Synonym for @code{.file}
+@item global
+Synonum for @code{.global}
+@item wval
+Synonym for .word
+@item lval
+Synonym for .long
+@item bval
+Synonym for .byte
+@item sval
+Assemble a string.
+@code {sval} expects one string literal, delimited by single quotes.  It assembles each byte of the string into consecutive addresses.  Single quote
+and other non-representable characters may be descrbed by escaping them
+with a percent sign and their ascii value as a two digit hex number.
+
+@example
+char *a = "he said \"it's 50% off\"";
+
+0000 68652073          sval    'he said %22it%27s 50%25 off%22%00'
+     61696420 
+     22697427 
+     73203530 
+     25206F66
+     662200
+@end example
+@item rsect
+synonym for @code{.section}
+@item block
+synonym for @code{.space}
+@item even
+synonym for @code{.align 1}
+@end table
+
+The following table summarizes the opcodes and their arguments:
+@c kluge due to lack of group outside example
+@page
+@group
+@smallexample
+
+            rs   @r{16 bit source register}     
+            rd   @r{16 bit destination register}
+            rbs   @r{8 bit source register}     
+            rbd   @r{8 bit destination register}
+            rrs   @r{32 bit source register}     
+            rrd   @r{32 bit destination register}
+            rqs   @r{64 bit source register}     
+            rqd   @r{64 bit destination register}
+            addr @r{16/24 bit address}
+            imm  @r{immediate data}      
+
+adc rd,rs              clrb addr               cpsir @@rd,@@rs,rr,cc
+adcb rbd,rbs           clrb addr(rd)           cpsirb @@rd,@@rs,rr,cc
+add rd,@@rs            clrb rbd                dab rbd
+add rd,addr            com @@rd                dbjnz rbd,disp7
+add rd,addr(rs)                com addr                dec @@rd,imm4m1
+add rd,imm16           com addr(rd)            dec addr(rd),imm4m1
+add rd,rs              com rd                  dec addr,imm4m1
+addb rbd,@@rs          comb @@rd               dec rd,imm4m1
+addb rbd,addr          comb addr               decb @@rd,imm4m1
+addb rbd,addr(rs)      comb addr(rd)           decb addr(rd),imm4m1
+addb rbd,imm8          comb rbd                decb addr,imm4m1
+addb rbd,rbs           comflg flags            decb rbd,imm4m1
+addl rrd,@@rs          cp @@rd,imm16           di i2
+addl rrd,addr          cp addr(rd),imm16       div rrd,@@rs
+addl rrd,addr(rs)      cp addr,imm16           div rrd,addr
+addl rrd,imm32         cp rd,@@rs              div rrd,addr(rs)
+addl rrd,rrs           cp rd,addr              div rrd,imm16
+and rd,@@rs            cp rd,addr(rs)          div rrd,rs
+and rd,addr            cp rd,imm16             divl rqd,@@rs
+and rd,addr(rs)                cp rd,rs                divl rqd,addr
+and rd,imm16           cpb @@rd,imm8           divl rqd,addr(rs)
+and rd,rs              cpb addr(rd),imm8       divl rqd,imm32
+andb rbd,@@rs          cpb addr,imm8           divl rqd,rrs
+andb rbd,addr          cpb rbd,@@rs            djnz rd,disp7
+andb rbd,addr(rs)      cpb rbd,addr            ei i2
+andb rbd,imm8          cpb rbd,addr(rs)        ex rd,@@rs
+andb rbd,rbs           cpb rbd,imm8            ex rd,addr
+bit @@rd,imm4          cpb rbd,rbs             ex rd,addr(rs)
+bit addr(rd),imm4      cpd rd,@@rs,rr,cc       ex rd,rs
+bit addr,imm4          cpdb rbd,@@rs,rr,cc     exb rbd,@@rs
+bit rd,imm4            cpdr rd,@@rs,rr,cc      exb rbd,addr
+bit rd,rs              cpdrb rbd,@@rs,rr,cc    exb rbd,addr(rs)
+bitb @@rd,imm4         cpi rd,@@rs,rr,cc       exb rbd,rbs
+bitb addr(rd),imm4     cpib rbd,@@rs,rr,cc     ext0e imm8
+bitb addr,imm4         cpir rd,@@rs,rr,cc      ext0f imm8
+bitb rbd,imm4          cpirb rbd,@@rs,rr,cc    ext8e imm8
+bitb rbd,rs            cpl rrd,@@rs            ext8f imm8
+bpt                    cpl rrd,addr            exts rrd
+call @@rd              cpl rrd,addr(rs)        extsb rd
+call addr              cpl rrd,imm32           extsl rqd
+call addr(rd)          cpl rrd,rrs             halt
+calr disp12            cpsd @@rd,@@rs,rr,cc    in rd,@@rs
+clr @@rd               cpsdb @@rd,@@rs,rr,cc   in rd,imm16
+clr addr               cpsdr @@rd,@@rs,rr,cc   inb rbd,@@rs
+clr addr(rd)           cpsdrb @@rd,@@rs,rr,cc  inb rbd,imm16
+clr rd                 cpsi @@rd,@@rs,rr,cc    inc @@rd,imm4m1
+clrb @@rd              cpsib @@rd,@@rs,rr,cc   inc addr(rd),imm4m1
+@end group
+@group
+inc addr,imm4m1                ldb rbd,rs(rx)          mult rrd,addr(rs)
+inc rd,imm4m1          ldb rd(imm16),rbs       mult rrd,imm16
+incb @@rd,imm4m1       ldb rd(rx),rbs          mult rrd,rs
+incb addr(rd),imm4m1   ldctl ctrl,rs           multl rqd,@@rs
+incb addr,imm4m1       ldctl rd,ctrl           multl rqd,addr
+incb rbd,imm4m1                ldd @@rs,@@rd,rr        multl rqd,addr(rs)
+ind @@rd,@@rs,ra       lddb @@rs,@@rd,rr       multl rqd,imm32
+indb @@rd,@@rs,rba     lddr @@rs,@@rd,rr       multl rqd,rrs
+inib @@rd,@@rs,ra      lddrb @@rs,@@rd,rr      neg @@rd
+inibr @@rd,@@rs,ra     ldi @@rd,@@rs,rr        neg addr
+iret                   ldib @@rd,@@rs,rr       neg addr(rd)
+jp cc,@@rd             ldir @@rd,@@rs,rr       neg rd
+jp cc,addr             ldirb @@rd,@@rs,rr      negb @@rd
+jp cc,addr(rd)         ldk rd,imm4             negb addr
+jr cc,disp8            ldl @@rd,rrs            negb addr(rd)
+ld @@rd,imm16          ldl addr(rd),rrs        negb rbd
+ld @@rd,rs             ldl addr,rrs            nop
+ld addr(rd),imm16      ldl rd(imm16),rrs       or rd,@@rs
+ld addr(rd),rs         ldl rd(rx),rrs          or rd,addr
+ld addr,imm16          ldl rrd,@@rs            or rd,addr(rs)
+ld addr,rs             ldl rrd,addr            or rd,imm16
+ld rd(imm16),rs                ldl rrd,addr(rs)        or rd,rs
+ld rd(rx),rs           ldl rrd,imm32           orb rbd,@@rs
+ld rd,@@rs             ldl rrd,rrs             orb rbd,addr
+ld rd,addr             ldl rrd,rs(imm16)       orb rbd,addr(rs)
+ld rd,addr(rs)         ldl rrd,rs(rx)          orb rbd,imm8
+ld rd,imm16            ldm @@rd,rs,n           orb rbd,rbs
+ld rd,rs               ldm addr(rd),rs,n       out @@rd,rs
+ld rd,rs(imm16)                ldm addr,rs,n           out imm16,rs
+ld rd,rs(rx)           ldm rd,@@rs,n           outb @@rd,rbs
+lda rd,addr            ldm rd,addr(rs),n       outb imm16,rbs
+lda rd,addr(rs)                ldm rd,addr,n           outd @@rd,@@rs,ra
+lda rd,rs(imm16)       ldps @@rs               outdb @@rd,@@rs,rba
+lda rd,rs(rx)          ldps addr               outib @@rd,@@rs,ra
+ldar rd,disp16         ldps addr(rs)           outibr @@rd,@@rs,ra
+ldb @@rd,imm8          ldr disp16,rs           pop @@rd,@@rs
+ldb @@rd,rbs           ldr rd,disp16           pop addr(rd),@@rs
+ldb addr(rd),imm8      ldrb disp16,rbs         pop addr,@@rs
+ldb addr(rd),rbs       ldrb rbd,disp16         pop rd,@@rs
+ldb addr,imm8          ldrl disp16,rrs         popl @@rd,@@rs
+ldb addr,rbs           ldrl rrd,disp16         popl addr(rd),@@rs
+ldb rbd,@@rs           mbit                    popl addr,@@rs
+ldb rbd,addr           mreq rd                 popl rrd,@@rs
+ldb rbd,addr(rs)       mres                    push @@rd,@@rs
+ldb rbd,imm8           mset                    push @@rd,addr
+ldb rbd,rbs            mult rrd,@@rs           push @@rd,addr(rs)
+ldb rbd,rs(imm16)      mult rrd,addr           push @@rd,imm16
+@end group
+@group
+push @@rd,rs           set addr,imm4           subl rrd,imm32
+pushl @@rd,@@rs                set rd,imm4             subl rrd,rrs
+pushl @@rd,addr                set rd,rs               tcc cc,rd
+pushl @@rd,addr(rs)    setb @@rd,imm4          tccb cc,rbd
+pushl @@rd,rrs         setb addr(rd),imm4      test @@rd
+res @@rd,imm4          setb addr,imm4          test addr
+res addr(rd),imm4      setb rbd,imm4           test addr(rd)
+res addr,imm4          setb rbd,rs             test rd
+res rd,imm4            setflg imm4             testb @@rd
+res rd,rs              sinb rbd,imm16          testb addr
+resb @@rd,imm4         sinb rd,imm16           testb addr(rd)
+resb addr(rd),imm4     sind @@rd,@@rs,ra       testb rbd
+resb addr,imm4         sindb @@rd,@@rs,rba     testl @@rd
+resb rbd,imm4          sinib @@rd,@@rs,ra      testl addr
+resb rbd,rs            sinibr @@rd,@@rs,ra     testl addr(rd)
+resflg imm4            sla rd,imm8             testl rrd
+ret cc                 slab rbd,imm8           trdb @@rd,@@rs,rba
+rl rd,imm1or2          slal rrd,imm8           trdrb @@rd,@@rs,rba
+rlb rbd,imm1or2                sll rd,imm8             trib @@rd,@@rs,rbr
+rlc rd,imm1or2         sllb rbd,imm8           trirb @@rd,@@rs,rbr
+rlcb rbd,imm1or2       slll rrd,imm8           trtdrb @@ra,@@rb,rbr
+rldb rbb,rba           sout imm16,rs           trtib @@ra,@@rb,rr
+rr rd,imm1or2          soutb imm16,rbs         trtirb @@ra,@@rb,rbr
+rrb rbd,imm1or2                soutd @@rd,@@rs,ra      trtrb @@ra,@@rb,rbr
+rrc rd,imm1or2         soutdb @@rd,@@rs,rba    tset @@rd
+rrcb rbd,imm1or2       soutib @@rd,@@rs,ra     tset addr
+rrdb rbb,rba           soutibr @@rd,@@rs,ra    tset addr(rd)
+rsvd36                 sra rd,imm8             tset rd
+rsvd38                 srab rbd,imm8           tsetb @@rd
+rsvd78                 sral rrd,imm8           tsetb addr
+rsvd7e                 srl rd,imm8             tsetb addr(rd)
+rsvd9d                 srlb rbd,imm8           tsetb rbd
+rsvd9f                 srll rrd,imm8           xor rd,@@rs
+rsvdb9                 sub rd,@@rs             xor rd,addr
+rsvdbf                 sub rd,addr             xor rd,addr(rs)
+sbc rd,rs              sub rd,addr(rs)         xor rd,imm16
+sbcb rbd,rbs           sub rd,imm16            xor rd,rs
+sc imm8                        sub rd,rs               xorb rbd,@@rs
+sda rd,rs              subb rbd,@@rs           xorb rbd,addr
+sdab rbd,rs            subb rbd,addr           xorb rbd,addr(rs)
+sdal rrd,rs            subb rbd,addr(rs)       xorb rbd,imm8
+sdl rd,rs              subb rbd,imm8           xorb rbd,rbs
+sdlb rbd,rs            subb rbd,rbs            xorb rbd,rbs
+sdll rrd,rs            subl rrd,@@rs
+set @@rd,imm4          subl rrd,addr
+set addr(rd),imm4      subl rrd,addr(rs)
+@end group
+@end smallexample
+
 
 @node Copying
 @unnumbered GNU GENERAL PUBLIC LICENSE
index 4a7c3034547764fb3d948b6aaca19a314af016a3..e81db603017d85f001690bec045863e4c7db67eb 100644 (file)
@@ -129,14 +129,15 @@ included in a translation approved by the Free Software Foundation
 instead of in the original English.
 @end titlepage
 @page
-@node Top, Overview, (dir), (dir)
 @ifinfo
+@node Top
+@top Using _AS__
+
 This file is a user guide to the GNU assembler @code{_AS__}.
 _if__(!_GENERIC__)
 This version of the file describes @code{_AS__} configured to generate
 code for _HOST__ architectures.
 _fi__(!_GENERIC__)
-@end ifinfo
 @menu
 * Overview::                   Overview
 * Invoking::                   Command-Line Options
@@ -149,8 +150,9 @@ _fi__(!_GENERIC__)
 * Copying::                    GNU GENERAL PUBLIC LICENSE
 * Index::                       Index
 @end menu
+@end ifinfo
 
-@node Overview, Invoking, Top, Top
+@node Overview
 @chapter Overview
 @iftex
 This manual is a user guide to the GNU assembler @code{_AS__}.
@@ -178,6 +180,9 @@ _fi__(_A29K__)
 _if__(_H8__)
 @c h8/300 has no machine-dependent assembler options
 _fi__(_H8__)
+_if__(_Z8000__)
+@c Z8000 has no machine-dependent assembler options
+_fi__(_Z8000__)
 _if__(_I960__)
 @c see md_parse_option in i960.c
    [ -ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB | -AKC | -AMC ]
@@ -276,7 +281,7 @@ Standard input, or source files to assemble
 * Errors::                     Error and Warning Messages
 @end menu
 
-@node Manual, GNU Assembler, Overview, Overview
+@node Manual
 @section Structure of this Manual
 
 @cindex manual, structure and purpose
@@ -315,6 +320,9 @@ _if__(_H8__&&!_GENERIC__)
 For information on the H8/300 machine instruction set, see @cite{H8/300
 Series Programming Manual} (Hitachi ADE--602--025).
 _fi__(_H8__&&!_GENERIC__)
+_if__(_Z8000__&&!_GENERIC__)
+For information on the Z8000 machine instruction set, see @cite{Z8000 CPU Technical Manual}
+_fi__(_Z8000__&&!_GENERIC__)
 
 
 @c I think this is premature---pesch@cygnus.com, 17jan1991
@@ -341,7 +349,7 @@ computer-readable series of instructions.  Different versions of
 @c this draft makes an effort to avoid them (except in names of
 @c directives).
 
-@node GNU Assembler, Object Formats, Manual, Overview
+@node GNU Assembler
 @section _AS__, the GNU Assembler
 
 GNU @code{as} is really a family of assemblers.  
@@ -375,7 +383,7 @@ Unlike older assemblers, @code{_AS__} is designed to assemble a source
 program in one pass of the source file.  This has a subtle impact on the
 @kbd{.org} directive (@pxref{Org,,@code{.org}}).
 
-@node Object Formats, Command Line, GNU Assembler, Overview
+@node Object Formats
 @section Object File Formats
 
 @cindex object file format
@@ -405,7 +413,7 @@ format object files.
 _fi__(_I960__)
 _fi__(!_GENERIC__)
 
-@node Command Line, Input Files, Object Formats, Overview
+@node Command Line
 @section Command Line
 
 @cindex command line conventions
@@ -436,7 +444,7 @@ _AS__ -o my-object-file.o mumble.s
 _AS__ -omy-object-file.o mumble.s
 @end smallexample
 
-@node Input Files, Object, Command Line, Overview
+@node Input Files
 @section Input Files
 
 @cindex input
@@ -490,7 +498,7 @@ help error messages reflect the original source file, when @code{_AS__}
 source is itself synthesized from other files.
 @xref{App-File,,@code{.app-file}}. 
 
-@node Object, Errors, Input Files, Overview
+@node Object
 @section Output (Object) File
 
 @cindex object file
@@ -517,7 +525,7 @@ information for the debugger.
 @c link above to some info file(s) like the description of a.out.
 @c don't forget to describe GNU info as well as Unix lossage.
 
-@node Errors,  , Object, Overview
+@node Errors
 @section Error and Warning Messages
 
 @cindex error messsages
@@ -562,7 +570,7 @@ The file name and line number are derived as for warning
 messages.  The actual message text may be rather less explanatory
 because many of them aren't supposed to happen.
 
-@node Invoking, Syntax, Overview, Top
+@node Invoking
 @chapter Command-Line Options
 
 @cindex options, all versions of @code{_AS__}
@@ -729,7 +737,7 @@ affects the warning messages: it does not change any particular of how
 @code{_AS__} assembles your file.  Errors, which stop the assembly, are
 still reported.
 
-@node Syntax, Sections, Invoking, Top
+@node Syntax
 @chapter Syntax
 
 @cindex machine-independent syntax
@@ -753,7 +761,7 @@ _fi__(_VAX__)
 * Constants::                  Constants
 @end menu
 
-@node Pre-processing, Whitespace, Syntax, Syntax
+@node Pre-processing
 @section Pre-Processing
 
 @cindex preprocessing
@@ -791,7 +799,7 @@ putting a line that says @code{#NO_APP} after them.  This feature is
 mainly intend to support @code{asm} statements in compilers whose output
 normally does not need to be pre-processed.
 
-@node Whitespace, Comments, Pre-processing, Syntax
+@node Whitespace
 @section Whitespace
 
 @cindex whitespace
@@ -801,7 +809,7 @@ people to read.  Unless within character constants
 (@pxref{Characters,,Character Constants}), any whitespace means the same
 as exactly one space.
 
-@node Comments, Symbol Intro, Whitespace, Syntax
+@node Comments
 @section Comments
 
 @cindex comments
@@ -838,6 +846,9 @@ _fi__(_A29K__)
 _if__(_H8__)
 @samp{;} for the _HOST__ family;
 _fi__(_H8__)
+_if__(_Z8000__)
+@samp{!} for the Z8000.
+_fi__(_Z8000__)
 @pxref{_MACH_DEP__}.  @refill
 @c FIXME: fill in SPARC line comment char
 
@@ -867,7 +878,7 @@ the line is ignored.  (Just like a comment.)
 This feature is deprecated, and may disappear from future versions
 of @code{_AS__}.
 
-@node Symbol Intro, Statements, Comments, Syntax
+@node Symbol Intro
 @section Symbols
 
 @cindex characters used in symbols
@@ -890,7 +901,7 @@ delimited by characters not in that set, or by the beginning of a file
 not a possible symbol delimiter).  @xref{Symbols}.
 @cindex length of symbols
 
-@node Statements, Constants, Symbol Intro, Syntax
+@node Statements
 @section Statements
 
 @cindex statements, structure of
@@ -973,7 +984,7 @@ another_label:           # This is an empty statement.
            instruction   operand_1, operand_2, @dots{}
 @end smallexample
 
-@node Constants,  , Statements, Syntax
+@node Constants
 @section Constants
 
 @cindex constants
@@ -992,7 +1003,7 @@ inspection, without knowing any context.  Like this:
 * Numbers::                    Number Constants
 @end menu
 
-@node Characters, Numbers, Constants, Constants
+@node Characters
 @subsection Character Constants
 
 @cindex character constants
@@ -1008,7 +1019,7 @@ used in arithmetic expressions.
 * Chars::                      Characters
 @end menu
 
-@node Strings, Chars, Characters, Characters
+@node Strings
 @subsubsection Strings
 
 @cindex string constants
@@ -1107,7 +1118,7 @@ the BSD 4.2 assembler recognizes, and is a subset of what most C
 compilers recognize.  If you are in doubt, don't use an escape
 sequence.
 
-@node Chars,  , Strings, Characters
+@node Chars
 @subsubsection Characters
 
 @cindex single character constant
@@ -1136,7 +1147,7 @@ constant in a numeric expression is the machine's byte-wide code for
 that character.  @code{_AS__} assumes your character code is ASCII:
 @kbd{'A} means 65, @kbd{'B} means 66, and so on. @refill
 
-@node Numbers,  , Characters, Constants
+@node Numbers
 @subsection Number Constants
 
 @cindex constants, number
@@ -1156,7 +1167,7 @@ _if__(_I960__&&!_GENERIC__)
 _fi__(_I960__&&!_GENERIC__)
 @end menu
 
-@node Integers, Bignums, Numbers, Numbers
+@node Integers
 @subsubsection Integers
 @cindex integers
 @cindex constants, integer
@@ -1185,7 +1196,7 @@ Integers have the usual values.  To denote a negative integer, use
 the prefix operator @samp{-} discussed under expressions
 (@pxref{Prefix Ops,,Prefix Operators}).
 
-@node Bignums, Flonums, Integers, Numbers
+@node Bignums
 @subsubsection Bignums
 
 @cindex bignums
@@ -1195,12 +1206,7 @@ except that the number (or its negative) takes more than 32 bits to
 represent in binary.  The distinction is made because in some places
 integers are permitted while bignums are not.
 
-_if__(_I960__&&!_GENERIC__)
-@node Flonums, Bit Fields, Bignums, Numbers
-_fi__(_I960__&&!_GENERIC__)
-_if__(_GENERIC__||!_I960__)
-@node Flonums,  , Bignums, Numbers
-_fi__(_GENERIC__||!_I960__)
+@node Flonums
 @subsubsection Flonums
 @cindex flonums
 @cindex floating point numbers
@@ -1273,7 +1279,7 @@ _if__(_I960__&&!_GENERIC__)
 @c Bit fields are written as a general facility but are also controlled
 @c by a conditional-compilation flag---which is as of now (21mar91)
 @c turned on only by the i960 config of GAS.
-@node Bit Fields,  , Flonums, Numbers
+@node Bit Fields
 @subsubsection Bit Fields
 
 @cindex bit fields
@@ -1302,7 +1308,7 @@ The directives @code{.byte}, @code{.hword}, @code{.int}, @code{.long},
 @code{.short}, and @code{.word} accept bit-field arguments.
 _fi__(_I960__&&!_GENERIC__)
 
-@node Sections, Symbols, Syntax, Top
+@node Sections
 @chapter Sections and Relocation
 @cindex sections
 @cindex relocation
@@ -1315,7 +1321,7 @@ _fi__(_I960__&&!_GENERIC__)
 * bss::                                bss Section
 @end menu
 
-@node Secs Background, _LD__ Sections, Sections, Sections
+@node Secs Background
 @section Background
 
 Roughly, a section is a range of addresses, with no gaps; all data
@@ -1424,7 +1430,7 @@ data and bss sections.
 Some sections are manipulated by @code{_LD__}; others are invented for
 use of @code{_AS__} and have no meaning except during assembly.
 
-@node _LD__ Sections, _AS__ Sections, Secs Background, Sections
+@node _LD__ Sections
 @section _LD__ Sections
 @code{_LD__} deals with just four kinds of sections, summarized below.
 
@@ -1529,7 +1535,7 @@ DDDD}\boxit{2cm}{\tt 00000}\ \dots\hfil}
 @end tex
 @c END TEXI2ROFF-KILL
 
-@node _AS__ Sections, Sub-Sections, _LD__ Sections, Sections
+@node _AS__ Sections
 @section _AS__ Internal Sections
 
 @cindex internal @code{_AS__} sections
@@ -1601,7 +1607,7 @@ statements and the like.
 @c FIXME item register
 @end table
 
-@node Sub-Sections, bss, _AS__ Sections, Sections
+@node Sub-Sections
 @section Sub-Sections
 
 @cindex numbered subsections
@@ -1706,7 +1712,7 @@ definition will capture its current value.  The location counter of the
 section that statements are being assembled into is said to be the
 @dfn{active} location counter.
 
-@node bss,  , Sub-Sections, Sections
+@node bss
 @section bss Section
 
 @cindex bss section
@@ -1722,7 +1728,7 @@ may not assemble anything directly into the bss section.  Hence there
 are no bss subsections. @xref{Comm,,@code{.comm}},
 @pxref{Lcomm,,@code{.lcomm}}.
 
-@node Symbols, Expressions, Sections, Top
+@node Symbols
 @chapter Symbols
 
 @cindex symbols
@@ -1744,7 +1750,7 @@ the same order they were declared.  This may break some debuggers.
 * Symbol Attributes::          Symbol Attributes
 @end menu
 
-@node Labels, Setting Symbols, Symbols, Symbols
+@node Labels
 @section Labels
 
 @cindex labels
@@ -1755,7 +1761,7 @@ operand.  You are warned if you use the same symbol to represent two
 different locations: the first definition overrides any other
 definitions.
 
-@node Setting Symbols, Symbol Names, Labels, Symbols
+@node Setting Symbols
 @section Giving Symbols Other Values
 
 @cindex assigning values to symbols
@@ -1765,7 +1771,7 @@ by an equals sign @samp{=}, followed by an expression
 (@pxref{Expressions}).  This is equivalent to using the @code{.set}
 directive.  @xref{Set,,@code{.set}}.
 
-@node Symbol Names, Dot, Setting Symbols, Symbols
+@node Symbol Names
 @section Symbol Names
 
 @cindex symbol names
@@ -1861,7 +1867,7 @@ through @samp{9:}.
 For instance, the first @code{1:} is named @code{L1@ctrl{A}1}, the 44th
 @code{3:} is named @code{L3@ctrl{A}44}.
 
-@node Dot, Symbol Attributes, Symbol Names, Symbols
+@node Dot
 @section The Special Dot Symbol
 
 @cindex dot (symbol)
@@ -1880,7 +1886,7 @@ _if__(_A29K__)
 @samp{.block 4}.
 _fi__(_A29K__)
 
-@node Symbol Attributes,  , Dot, Symbols
+@node Symbol Attributes
 @section Symbol Attributes
 
 @cindex symbol attributes
@@ -1913,7 +1919,7 @@ _if__(_COFF__)
 _fi__(_COFF__)
 @end menu
 
-@node Symbol Value, Symbol Type, Symbol Attributes, Symbol Attributes
+@node Symbol Value
 @subsection Value
 
 @cindex value of a symbol
@@ -1935,12 +1941,7 @@ common declaration.  The value is how much common storage to reserve, in
 bytes (addresses).  The symbol refers to the first address of the
 allocated storage.
 
-_if__(!(_AOUT__||_BOUT__))
-@node Symbol Type, COFF Symbols, Symbol Value, Symbol Attributes
-_fi__(!(_AOUT__||_BOUT__))
-_if__((_AOUT__||_BOUT__))
-@node Symbol Type, a.out Symbols, Symbol Value, Symbol Attributes
-_fi__((_AOUT__||_BOUT__))
+@node Symbol Type
 @subsection Type
 
 @cindex type of a symbol
@@ -1951,12 +1952,7 @@ information, any flag settings indicating that a symbol is external, and
 format depends on the object-code output format in use.
 
 _if__(_AOUT__||_BOUT__)
-_if__(_COFF__)
-@node a.out Symbols, COFF Symbols, Symbol Type, Symbol Attributes
-_fi__(_COFF__)
-_if__(!_COFF__)
-@node a.out Symbols,  , Symbol Type, Symbol Attributes
-_fi__(!_COFF__)
+@node a.out Symbols
 _if__(_BOUT__&&!_GENERIC__)
 @subsection Symbol Attributes: @code{a.out}, @code{b.out}
 
@@ -1977,7 +1973,7 @@ _fi__(_GENERIC__||!_BOUT__)
 * Symbol Other::               Other
 @end menu
 
-@node Symbol Desc, Symbol Other, a.out Symbols, a.out Symbols
+@node Symbol Desc
 @subsubsection Descriptor
 
 @cindex descriptor, of @code{a.out} symbol
@@ -1986,7 +1982,7 @@ descriptor value by using a @code{.desc} statement
 (@pxref{Desc,,@code{.desc}}).  A descriptor value means nothing to
 @code{_AS__}.
 
-@node Symbol Other,  , Symbol Desc, a.out Symbols
+@node Symbol Other
 @subsubsection Other
 
 @cindex other attribute, of @code{a.out} symbol
@@ -1994,12 +1990,7 @@ This is an arbitrary 8-bit value.  It means nothing to @code{_AS__}.
 _fi__(_AOUT__||_BOUT__)
 
 _if__(_COFF__)
-_if__(!(_AOUT__||_BOUT__))
-@node COFF Symbols,  , Symbol Type, Symbol Attributes
-_fi__(!(_AOUT__||_BOUT__))
-_if__(_AOUT__||_BOUT__)
-@node COFF Symbols,  , a.out Symbols, Symbol Attributes
-_fi__(_AOUT__||_BOUT__)
+@node COFF Symbols
 @subsection Symbol Attributes for COFF
 
 @cindex COFF symbol attributes
@@ -2023,7 +2014,7 @@ The @code{_AS__} directives @code{.dim}, @code{.line}, @code{.scl},
 information for COFF.
 _fi__(_COFF__)
 
-@node Expressions, Pseudo Ops, Symbols, Top
+@node Expressions
 @chapter Expressions
 
 @cindex expressions
@@ -2037,7 +2028,7 @@ Whitespace may precede and/or follow an expression.
 * Integer Exprs::              Integer Expressions
 @end menu
 
-@node Empty Exprs, Integer Exprs, Expressions, Expressions
+@node Empty Exprs
 @section Empty Expressions
 
 @cindex empty expressions
@@ -2047,7 +2038,7 @@ Wherever an absolute expression is required, you may omit the
 expression and @code{_AS__} will assume a value of (absolute) 0.  This
 is compatible with other assemblers.
 
-@node Integer Exprs,  , Empty Exprs, Expressions
+@node Integer Exprs
 @section Integer Expressions
 
 @cindex integer expressions
@@ -2062,7 +2053,7 @@ by @emph{operators}.
 * Infix Ops::                  Infix Operators
 @end menu
 
-@node Arguments, Operators, Integer Exprs, Integer Exprs
+@node Arguments
 @subsection Arguments
 
 @cindex expression arguments
@@ -2094,7 +2085,7 @@ Subexpressions are a left parenthesis @samp{(} followed by an integer
 expression, followed by a right parenthesis @samp{)}; or a prefix
 operator followed by an argument.
 
-@node Operators, Prefix Ops, Arguments, Integer Exprs
+@node Operators
 @subsection Operators
 
 @cindex operators, in expressions
@@ -2105,7 +2096,7 @@ operators are followed by an argument.  Infix operators appear
 between their arguments.  Operators may be preceded and/or followed by
 whitespace.
 
-@node Prefix Ops, Infix Ops, Operators, Integer Exprs
+@node Prefix Ops
 @subsection Prefix Operator
 
 @cindex prefix operators
@@ -2130,7 +2121,7 @@ one argument, which must be absolute.
 \global\advance\leftskip by -\itemindent
 @end tex
 
-@node Infix Ops,  , Prefix Ops, Integer Exprs
+@node Infix Ops
 @subsection Infix Operators
 
 @cindex infix operators
@@ -2217,7 +2208,7 @@ one of the two arguments.
 
 Similarly, you can't subtract quantities from two different sections.
 
-@node Pseudo Ops, _MACH_DEP__, Expressions, Top
+@node Pseudo Ops
 @chapter Assembler Directives
 
 @cindex directives, machine independent
@@ -2284,7 +2275,9 @@ _fi__(_GENERIC__||!_A29K__)
 * Ln::                         @code{.ln @var{line-number}}
 * List::                       @code{.list}
 * Long::                       @code{.long @var{expressions}}
+_if__(0)
 * Lsym::                       @code{.lsym @var{symbol}, @var{expression}}
+_fi__(0)
 * Nolist::                     @code{.nolist}
 * Octa::                       @code{.octa @var{bignums}}
 * Org::                                @code{.org @var{new-lc} , @var{fill}}
@@ -2320,15 +2313,7 @@ _fi__(_COFF__||_BOUT__)
 * Deprecated::                 Deprecated Directives
 @end menu
 
-_if__(_COFF__)
-@node Abort, coff-ABORT, Pseudo Ops, Pseudo Ops
-_fi__(_COFF__)
-_if__((!_COFF__) && _BOUT__)
-@node Abort, bout-ABORT, Pseudo Ops, Pseudo Ops
-_fi__((!_COFF__) && _BOUT__)
-_if__(! (_BOUT__ || _COFF__) )
-@node Abort, Align, Pseudo Ops, Pseudo Ops
-_fi__(! (_BOUT__ || _COFF__) )
+@node Abort
 @section @code{.abort}
 
 @cindex @code{abort} directive
@@ -2340,7 +2325,7 @@ of the source quit, it could use this directive tells @code{_AS__} to
 quit also.  One day @code{.abort} will not be supported.
 
 _if__(_COFF__)
-@node coff-ABORT, Align, Abort, Pseudo Ops
+@node coff-ABORT
 @section @code{.ABORT}
 
 @cindex @code{ABORT} directive
@@ -2350,7 +2335,7 @@ _fi__(_COFF__)
 
 _if__(_BOUT__)
 _if__(!_COFF__)
-@node bout-ABORT, Align, Abort, Pseudo Ops
+@node bout-ABORT
 @section @code{.ABORT}
 
 @cindex @code{ABORT} directive
@@ -2360,15 +2345,7 @@ When producing @code{b.out} output, @code{_AS__} accepts this directive,
 but ignores it.
 _fi__(_BOUT__)
 
-_if__( ! (_COFF__ || _BOUT__) )
-@node Align, App-File, Abort, Pseudo Ops
-_fi__( ! (_COFF__ || _BOUT__) )
-_if__( _COFF__)
-@node Align, App-File, coff-ABORT, Pseudo Ops
-_fi__( _COFF__)
-_if__( _BOUT__ && (! _COFF__))
-@node Align, App-File, bout-ABORT, Pseudo Ops
-_fi__( _BOUT__ && (! _COFF__))
+@node Align
 @section @code{.align @var{abs-expr} , @var{abs-expr}}
 
 @cindex padding the location counter
@@ -2384,7 +2361,7 @@ The second expression (also absolute) gives the value to be stored in
 the padding bytes.  It (and the comma) may be omitted.  If it is
 omitted, the padding bytes are zero.
 
-@node App-File, Ascii, Align, Pseudo Ops
+@node App-File
 @section @code{.app-file @var{string}}
 
 @cindex logical file name
@@ -2402,7 +2379,7 @@ you must give the quotes--@code{""}.  This statement may go away in
 future: it is only recognized to be compatible with old @code{_AS__}
 programs.@refill
 
-@node Ascii, Asciz, App-File, Pseudo Ops
+@node Ascii
 @section @code{.ascii "@var{string}"}@dots{}
 
 @cindex @code{ascii} directive
@@ -2411,7 +2388,7 @@ programs.@refill
 separated by commas.  It assembles each string (with no automatic
 trailing zero byte) into consecutive addresses.
 
-@node Asciz, Byte, Ascii, Pseudo Ops
+@node Asciz
 @section @code{.asciz "@var{string}"}@dots{}
 
 @cindex @code{asciz} directive
@@ -2420,7 +2397,7 @@ trailing zero byte) into consecutive addresses.
 @code{.asciz} is just like @code{.ascii}, but each string is followed by
 a zero byte.  The ``z'' in @samp{.asciz} stands for ``zero''.
 
-@node Byte, Comm, Asciz, Pseudo Ops
+@node Byte
 @section @code{.byte @var{expressions}}
 
 @cindex @code{byte} directive
@@ -2428,7 +2405,7 @@ a zero byte.  The ``z'' in @samp{.asciz} stands for ``zero''.
 @code{.byte} expects zero or more expressions, separated by commas.
 Each expression is assembled into the next byte.
 
-@node Comm, Data, Byte, Pseudo Ops
+@node Comm
 @section @code{.comm @var{symbol} , @var{length} }
 
 @cindex @code{comm} directive
@@ -2441,16 +2418,7 @@ will allocate space for each @code{.comm} symbol that is at least as
 long as the longest @code{.comm} request in any of the partial programs
 linked.  @var{length} is an absolute expression.
 
-_if__(_COFF__ || _BOUT__)
-@node Data, Def, Comm, Pseudo Ops
-_fi__(_COFF__ || _BOUT__)
-_if__(!(_COFF__ || _BOUT__) && _AOUT__)
-@node Data, Desc, Comm, Pseudo Ops
-_fi__(!(_COFF__ || _BOUT__) && _AOUT__)
-_if__(! (_COFF__ || _BOUT__ || _AOUT__) )
-@c Well, this *might* happen...
-@node Data, Double, Comm, Pseudo Ops
-_fi__(! (_COFF__ || _BOUT__ || _AOUT__) )
+@node Data
 @section @code{.data @var{subsection}}
 
 @cindex @code{data} directive
@@ -2460,12 +2428,7 @@ absolute expression).  If @var{subsection} is omitted, it defaults
 to zero.
 
 _if__(_COFF__ || _BOUT__)
-_if__(_AOUT__ || _BOUT__)
-@node Def, Desc, Data, Pseudo Ops
-_fi__(_AOUT__ || _BOUT__)
-_if__(!(_AOUT__ || _BOUT__))
-@node Def, Dim, Data, Pseudo Ops
-_fi__(!(_AOUT__ || _BOUT__))
+@node Def
 @section @code{.def @var{name}}
 
 @cindex @code{def} directive
@@ -2482,12 +2445,7 @@ _fi__(_BOUT__)
 _fi__(_COFF__ || _BOUT__)
 
 _if__(_AOUT__||_BOUT__)
-_if__(_COFF__||_BOUT__)
-@node Desc, Dim, Def, Pseudo Ops
-_fi__(_COFF__||_BOUT__)
-_if__(!(_COFF__||_BOUT__))
-@node Desc, Double, Data, Pseudo Ops
-_fi__(!(_COFF__||_BOUT__))
+@node Desc
 @section @code{.desc @var{symbol}, @var{abs-expression}}
 
 @cindex @code{desc} directive
@@ -2505,12 +2463,7 @@ _fi__(_COFF__)
 _fi__(_AOUT__||_BOUT__)
 
 _if__(_COFF__ || _BOUT__)
-_if__(_AOUT__ || _BOUT__)
-@node Dim, Double, Desc, Pseudo Ops
-_fi__(_AOUT__ || _BOUT__)
-_if__(!(_AOUT__ || _BOUT__))
-@node Dim, Double, Def, Pseudo Ops
-_fi__(!(_AOUT__ || _BOUT__))
+@node Dim
 @section @code{.dim}
 
 @cindex @code{dim} directive
@@ -2527,12 +2480,7 @@ ignores it.
 _fi__(_BOUT__)
 _fi__(_COFF__ || _BOUT__)
 
-_if__(_COFF__||_BOUT__)
-@node Double, Eject, Dim, Pseudo Ops
-_fi__(_COFF__||_BOUT__)
-_if__(!(_COFF__||_BOUT__))
-@node Double, Eject, Desc, Pseudo Ops
-_fi__(!(_COFF__||_BOUT__))
+@node Double
 @section @code{.double @var{flonums}}
 
 @cindex @code{double} directive
@@ -2548,7 +2496,7 @@ On the _HOST__ family @samp{.double} emits 64-bit floating-point numbers
 in @sc{ieee} format.
 _fi__((!_GENERIC__) && _IEEEFLOAT__)
 
-@node Eject, Else, Double, Pseudo Ops
+@node Eject
 @section @code{.eject}
 
 @cindex @code{eject} directive
@@ -2557,12 +2505,7 @@ _fi__((!_GENERIC__) && _IEEEFLOAT__)
 @cindex listing control: new page
 Force a page break at this point, when generating assembly listings.
 
-_if__(_COFF__||_BOUT__)
-@node Else, Endef, Eject, Pseudo Ops
-_fi__(_COFF__||_BOUT__)
-_if__(!(_COFF__||_BOUT__))
-@node Else, Endif, Eject, Pseudo Ops
-_fi__(!(_COFF__||_BOUT__))
+@node Else
 @section @code{.else}
 
 @cindex @code{else} directive
@@ -2582,7 +2525,7 @@ as "for compatibility with blah").
 _fi__(0)
 
 _if__(_COFF__||_BOUT__)
-@node Endef, Endif, Else, Pseudo Ops
+@node Endef
 @section @code{.endef}
 
 @cindex @code{endef} directive
@@ -2596,12 +2539,7 @@ directive but ignores it.
 _fi__(_BOUT__)
 _fi__(_COFF__||_BOUT__)
 
-_if__(_COFF__||_BOUT__)
-@node Endif, Equ, Endef, Pseudo Ops
-_fi__(_COFF__||_BOUT__)
-_if__(!(_COFF__||_BOUT__))
-@node Endif, Equ, Else, Pseudo Ops
-_fi__(!(_COFF__||_BOUT__))
+@node Endif
 @section @code{.endif}
 
 @cindex @code{endif} directive
@@ -2609,7 +2547,7 @@ _fi__(!(_COFF__||_BOUT__))
 it marks the end of a block of code that is only assembled
 conditionally.  @xref{If,,@code{.if}}.
 
-@node Equ, Extern, Endif, Pseudo Ops
+@node Equ
 @section @code{.equ @var{symbol}, @var{expression}}
 
 @cindex @code{equ} directive
@@ -2618,12 +2556,7 @@ conditionally.  @xref{If,,@code{.if}}.
 This directive sets the value of @var{symbol} to @var{expression}.
 It is synonymous with @samp{.set}; @pxref{Set,,@code{.set}}.
 
-_if__(_GENERIC__||!_A29K__)
-@node Extern, File, Equ, Pseudo Ops
-_fi__(_GENERIC__||!_A29K__)
-_if__(_A29K__&&!_GENERIC__)
-@node Extern, Fill, Equ, Pseudo Ops
-_fi__(_A29K__&&!_GENERIC__)
+@node Extern
 @section @code{.extern}
 
 @cindex @code{extern} directive
@@ -2632,7 +2565,7 @@ with other assemblers---but it is ignored.  @code{_AS__} treats
 all undefined symbols as external.
 
 _if__(_GENERIC__||!_A29K__)
-@node File, Fill, Extern, Pseudo Ops
+@node File
 @section @code{.file @var{string}}
 
 @cindex @code{file} directive
@@ -2651,12 +2584,7 @@ removed to avoid conflicts with other assemblers.  @xref{_MACH_DEP__}.
 _fi__(_A29K__)
 _fi__(_GENERIC__||!_A29K__)
 
-_if__(_GENERIC__||!_A29K__)
-@node Fill, Float, File, Pseudo Ops
-_fi__(_GENERIC__||!_A29K__)
-_if__(_A29K__&&!_GENERIC__)
-@node Fill, Float, Extern, Pseudo Ops
-_fi__(_A29K__&&!_GENERIC__)
+@node Fill
 @section @code{.fill @var{repeat} , @var{size} , @var{value}}
 
 @cindex @code{fill} directive
@@ -2679,7 +2607,7 @@ If the second comma and @var{value} are absent, @var{value} is
 assumed zero.  If the first comma and following tokens are absent,
 @var{size} is assumed to be 1.
 
-@node Float, Global, Fill, Pseudo Ops
+@node Float
 @section @code{.float @var{flonums}}
 
 @cindex floating point numbers (single)
@@ -2696,7 +2624,7 @@ On the _HOST__ family, @code{.float} emits 32-bit floating point numbers
 in @sc{ieee} format.
 _fi__((!_GENERIC__) && _IEEEFLOAT__)
 
-@node Global, hword, Float, Pseudo Ops
+@node Global
 @section @code{.global @var{symbol}}, @code{.globl @var{symbol}}
 
 @cindex @code{global} directive
@@ -2710,12 +2638,7 @@ from another partial program it is linked with.
 Both spellings (@samp{.globl} and @samp{.global}) are accepted, for
 compatibility with other assemblers.
 
-_if__(_AOUT__||_BOUT__||_COFF__)
-@node hword, Ident, Global, Pseudo Ops
-_fi__(_AOUT__||_BOUT__||_COFF__)
-_if__(!(_AOUT__||_BOUT__||_COFF__))
-@node hword, If, Global, Pseudo Ops
-_fi__(!(_AOUT__||_BOUT__||_COFF__))
+@node hword
 @section @code{.hword @var{expressions}}
 
 @cindex @code{hword} directive
@@ -2737,7 +2660,7 @@ This directive is a synonym for both @samp{.short} and @samp{.word}.
 _fi__(_W16__ && !_GENERIC__ )
 
 _if__(_AOUT__||_BOUT__||_COFF__)
-@node Ident, If, hword, Pseudo Ops
+@node Ident
 @section @code{.ident}
 
 @cindex @code{ident} directive
@@ -2747,12 +2670,7 @@ compatibility with such assemblers, but does not actually emit anything
 for it.
 _fi__(_AOUT__||_BOUT__||_COFF__)
 
-_if__(_AOUT__||_BOUT__||_COFF__)
-@node If, Include, Ident, Pseudo Ops
-_fi__(_AOUT__||_BOUT__||_COFF__)
-_if__(!(_AOUT__||_BOUT__||_COFF__))
-@node If, Include, hword, Pseudo Ops
-_fi__(!(_AOUT__||_BOUT__||_COFF__))
+@node If
 @section @code{.if @var{absolute expression}}
 
 @cindex conditional assembly
@@ -2790,7 +2708,7 @@ Not yet implemented.
 _fi__(0)
 @end table
 
-@node Include, Int, If, Pseudo Ops
+@node Include
 @section @code{.include "@var{file}"}
 
 @cindex @code{include} directive
@@ -2804,7 +2722,7 @@ can control the search paths used with the @samp{-I} command-line option
 (@pxref{Invoking,,Command-Line Options}).  Quotation marks are required
 around @var{file}.
 
-@node Int, Lcomm, Include, Pseudo Ops
+@node Int
 @section @code{.int @var{expressions}}
 
 @cindex @code{int} directive
@@ -2823,7 +2741,7 @@ number that will, at run
 time, be the value of that expression.  The byte order of the
 expression depends on what kind of computer will run the program.
 
-@node Lcomm, Lflags, Int, Pseudo Ops
+@node Lcomm
 @section @code{.lcomm @var{symbol} , @var{length}}
 
 @cindex @code{lcomm} directive
@@ -2836,12 +2754,7 @@ section, so at run-time the bytes will start off zeroed.  @var{Symbol}
 is not declared global (@pxref{Global,,@code{.global}}), so is normally
 not visible to @code{_LD__}.
 
-_if__(_GENERIC__||(!_A29K__))
-@node Lflags, Line, Lcomm, Pseudo Ops
-_fi__(_GENERIC__||(!_A29K__))
-_if__((!_GENERIC__)&& _A29K__)
-@node Lflags, Ln, Lcomm, Pseudo Ops
-_fi__((!_GENERIC__)&& _A29K__)
+@node Lflags
 @section @code{.lflags}
 
 @cindex @code{lflags} directive (ignored)
@@ -2849,17 +2762,17 @@ _fi__((!_GENERIC__)&& _A29K__)
 assemblers, but ignores it.
 
 _if__(_GENERIC__ || !_A29K__)
-@node Line, Ln, Lflags, Pseudo Ops
+@node Line
 @section @code{.line @var{line-number}}
 
 @cindex @code{line} directive
 _fi__(_GENERIC__ || (!_A29K__))
-_if__(_A29K__ && (!_GENERIC__))
-@node Ln, List, Lflags, Pseudo Ops
+_if__(_A29K__ && (!_GENERIC__) && !_COFF__)
+@node Ln
 @section @code{.ln @var{line-number}}
 
 @cindex @code{ln} directive
-_fi__(_A29K__ && (!_GENERIC__))
+_fi__(_A29K__ && (!_GENERIC__) && !_COFF__)
 @cindex logical line number
 _if__(_AOUT__||_BOUT__)
 Tell @code{_AS__} to change the logical line number.  @var{line-number} must be
@@ -2891,7 +2804,7 @@ only available with the name @code{.ln}, rather than as either
 @code{.line} or @code{.ln}.  
 _fi__(_GENERIC__ && _A29K__)
 _fi__(_AOUT__||_BOUT__)
-_if__(_COFF__)
+_if__(_COFF__ && !_A29K__)
 
 Even though this is a directive associated with the @code{a.out} or
 @code{b.out} object-code formats, @code{_AS__} will still recognize it
@@ -2902,17 +2815,17 @@ were the COFF @samp{.ln} @emph{if} it is found outside a
 Inside a @code{.def}, @samp{.line} is, instead, one of the directives
 used by compilers to generate auxiliary symbol information for
 debugging.
-_fi__(_COFF__)
+_fi__(_COFF__ && !_A29K__)
 
 _if__(_AOUT__&&(_GENERIC__||!_A29K__))
-@node Ln, List, Line, Pseudo Ops
+@node Ln
 @section @code{.ln @var{line-number}}
 
 @cindex @code{ln} directive
 @samp{.ln} is a synonym for @samp{.line}.
 _fi__(_AOUT__&&(_GENERIC__||!_A29K__))
 _if__(_COFF__&&!_AOUT__)
-@node Ln, List, Line, Pseudo Ops
+@node Ln
 @section @code{.ln @var{line-number}}
 
 @cindex @code{ln} directive
@@ -2928,7 +2841,7 @@ This directive is accepted, but ignored, when @code{_AS__} is configured for
 _fi__(_BOUT__)
 _fi__(_COFF__&&!_AOUT__)
 
-@node List, Long, Ln, Pseudo Ops
+@node List
 @section @code{.list}
 
 @cindex @code{list} directive
@@ -2943,13 +2856,16 @@ By default, listings are disabled.  When you enable them (with the
 @samp{-a} command line option; @pxref{Invoking,,Command-Line Options}),
 the initial value of the listing counter is one.
 
-@node Long, Lsym, List, Pseudo Ops
+@node Long
 @section @code{.long @var{expressions}}
 
 @cindex @code{long} directive
 @code{.long} is the same as @samp{.int}, @pxref{Int,,@code{.int}}.
 
-@node Lsym, Nolist, Long, Pseudo Ops
+@ignore
+@c no one seems to know what this is for or whether this description is
+@c what it really ought to do
+@node Lsym
 @section @code{.lsym @var{symbol}, @var{expression}}
 
 @cindex @code{lsym} directive
@@ -2965,8 +2881,9 @@ the same as the expression value:
 @end smallexample
 @noindent
 The new symbol is not flagged as external.
+@end ignore
 
-@node Nolist, Octa, Lsym, Pseudo Ops
+@node Nolist
 @section @code{.nolist}
 
 @cindex @code{nolist} directive
@@ -2977,7 +2894,7 @@ internal counter (which is zero initially).   @code{.list} increments the
 counter, and @code{.nolist} decrements it.  Assembly listings are
 generated whenever the counter is greater than zero.
 
-@node Octa, Org, Nolist, Pseudo Ops
+@node Octa
 @section @code{.octa @var{bignums}}
 
 @c FIXME: double size emitted for "octa" on i960, others?  Or warn?
@@ -2990,7 +2907,7 @@ bignum, it emits a 16-byte integer.
 The term ``octa'' comes from contexts in which a ``word'' is two bytes;
 hence @emph{octa}-word for 16 bytes.
 
-@node Org, Psize, Octa, Pseudo Ops
+@node Org
 @section @code{.org @var{new-lc} , @var{fill}}
 
 @cindex @code{org} directive
@@ -3026,7 +2943,7 @@ intervening bytes are filled with @var{fill} which should be an
 absolute expression.  If the comma and @var{fill} are omitted,
 @var{fill} defaults to zero.
 
-@node Psize, Quad, Org, Pseudo Ops
+@node Psize
 @section @code{.psize @var{lines} , @var{columns}}
 
 @cindex @code{psize} directive
@@ -3046,7 +2963,7 @@ lines is exceeded (or whenever you explicitly request one, using
 If you specify @var{lines} as @code{0}, no formfeeds are generated save
 those explicitly specified with @code{.eject}.
 
-@node Quad, Sbttl, Psize, Pseudo Ops
+@node Quad
 @section @code{.quad @var{bignums}}
 
 @cindex @code{quad} directive
@@ -3070,12 +2987,7 @@ bignum.@refill
 @cindex integer, 16-byte
 _fi__(_I960__&&(!_GENERIC__))
 
-_if__(_COFF__||_BOUT__)
-@node Sbttl, Scl, Quad, Pseudo Ops
-_fi__(_COFF__||_BOUT__)
-_if__(!(_COFF__||_BOUT__))
-@node Sbttl, Set, Quad, Pseudo Ops
-_fi__(!(_COFF__||_BOUT__))
+@node Sbttl
 @section @code{.sbttl "@var{subheading}"}
 
 @cindex @code{sbttl} directive
@@ -3088,12 +3000,7 @@ This directive affects subsequent pages, as well as the current page if
 it appears within ten lines of the top of a page.
 
 _if__(_COFF__||_BOUT__)
-_if__(!_COFF__)
-@node Scl, Set, Sbttl, Pseudo Ops
-_fi__(!_COFF__)
-_if__(_COFF__)
-@node Scl, Section, Sbttl, Pseudo Ops
-_fi__(_COFF__)
+@node Scl
 @section @code{.scl @var{class}}
 
 @cindex @code{scl} directive
@@ -3112,7 +3019,7 @@ _fi__(_BOUT__)
 _fi__(_COFF__||_BOUT__)
 
 _if__(_COFF__)
-@node Section, Set, Scl, Pseudo Ops
+@node Section
 @section @code{.section @var{name}, @var{subsection}}
 
 @cindex @code{section} directive
@@ -3123,15 +3030,9 @@ Assemble the following code into end of subsection numbered
 @var{subsection}, @code{_AS__} uses subsection number zero.
 @samp{.section .text} is equivalent to the @code{.text} directive;
 @samp{.section .data} is equivalent to the @code{.data} directive.
-
-@node Set, Short, Section, Pseudo Ops
 _fi__(_COFF__)
-_if__(_BOUT__&&!_COFF__)
-@node Set, Short, Scl, Pseudo Ops
-_fi__(_BOUT__&&!_COFF__)
-_if__(!(_COFF__||_BOUT__))
-@node Set, Short, Quad, Pseudo Ops
-_fi__(!(_COFF__||_BOUT__))
+
+@node Set
 @section @code{.set @var{symbol}, @var{expression}}
 
 @cindex @code{set} directive
@@ -3150,7 +3051,7 @@ message if one is required.
 If you @code{.set} a global symbol, the value stored in the object
 file is the last value stored into it.
 
-@node Short, Single, Set, Pseudo Ops
+@node Short
 @section @code{.short @var{expressions}}
 
 @cindex @code{short} directive
@@ -3165,12 +3066,8 @@ _if__((!_GENERIC__) && _W32__)
 This expects zero or more @var{expressions}, and emits
 a 16 bit number for each.
 _fi__((!_GENERIC__) && _W32__)
-_if__(_COFF__||_BOUT__)
-@node Single, Size, Short, Pseudo Ops
-_fi__(_COFF__||_BOUT__)
-_if__(!(_COFF__||_BOUT__))
-@node Single, Space, Short, Pseudo Ops
-_fi__(!(_COFF__||_BOUT__))
+
+@node Single
 @section @code{.single @var{flonums}}
 
 @cindex @code{single} directive
@@ -3187,7 +3084,7 @@ numbers in @sc{ieee} format.
 _fi__((!_GENERIC__) && _IEEEFLOAT__)
 
 _if__(_COFF__||_BOUT__)
-@node Size, Space, Single, Pseudo Ops
+@node Size
 @section @code{.size}
 
 @cindex @code{size} directive
@@ -3202,17 +3099,7 @@ ignores it.
 _fi__(_BOUT__)
 _fi__(_COFF__||_BOUT__)
 
-_if__(_H8__&&!_GENERIC__)
-@node Space, Tag, Size, Pseudo Ops
-_fi__(_H8__&&!_GENERIC__)
-_if__(_GENERIC__||!_H8__)
-_if__(_COFF__||_BOUT__)
-@node Space, Stab, Size, Pseudo Ops
-_fi__(_COFF__||_BOUT__)
-_if__(!(_COFF__||_BOUT__))
-@node Space, Stab, Single, Pseudo Ops
-_fi__(!(_COFF__||_BOUT__))
-_fi__(_GENERIC__||!_H8__)
+@node Space
 _if__(_GENERIC__ || !_A29K__)
 @section @code{.space @var{size} , @var{fill}}
 
@@ -3239,12 +3126,7 @@ _fi__(_A29K__)
 
 _if__(_GENERIC__||!_H8__)
 _if__(_AOUT__||_BOUT__||_COFF__)
-_if__(_COFF__||_BOUT__)
-@node Stab, Tag, Space, Pseudo Ops
-_fi__(_COFF__||_BOUT__)
-_if__(!(_COFF__||_BOUT__))
-@node Stab, Text, Space, Pseudo Ops
-_fi__(!(_COFF__||_BOUT__))
+@node Stab
 @section @code{.stabd, .stabn, .stabs}
 
 @cindex symbolic debuggers, information for
@@ -3305,12 +3187,7 @@ _fi__(_AOUT__||_BOUT__||_COFF__)
 _fi__(_GENERIC__||!_H8__)
 
 _if__(_COFF__||_BOUT__)
-_if__(_GENERIC__||!_H8__)
-@node Tag, Text, Stab, Pseudo Ops
-_fi__(_GENERIC__||!_H8__)
-_if__(_H8__&&!_GENERIC__)
-@node Tag, Text, Space, Pseudo Ops
-_fi__(_H8__&&!_GENERIC__)
+@node Tag
 @section @code{.tag @var{structname}}
 
 @cindex COFF structure debugging
@@ -3328,12 +3205,7 @@ ignores it.
 _fi__(_BOUT__)
 _fi__(_COFF__||_BOUT__)
 
-_if__(_COFF__||_BOUT__)
-@node Text, Title, Tag, Pseudo Ops
-_fi__(_COFF__||_BOUT__)
-_if__(!(_COFF__||_BOUT__))
-@node Text, Title, Stab, Pseudo Ops
-_fi__(!(_COFF__||_BOUT__))
+@node Text
 @section @code{.text @var{subsection}}
 
 @cindex @code{text} directive
@@ -3342,12 +3214,7 @@ the text subsection numbered @var{subsection}, which is an absolute
 expression.  If @var{subsection} is omitted, subsection number zero
 is used.
 
-_if__(_COFF__||_BOUT__)
-@node Title, Type, Text, Pseudo Ops
-_fi__(_COFF__||_BOUT__)
-_if__(!(_COFF__||_BOUT__))
-@node Title, Word, Text, Pseudo Ops
-_fi__(!(_COFF__||_BOUT__))
+@node Title
 @section @code{.title "@var{heading}"}
 
 @cindex @code{title} directive
@@ -3359,7 +3226,7 @@ This directive affects subsequent pages, as well as the current page if
 it appears within ten lines of the top of a page.
 
 _if__(_COFF__||_BOUT__)
-@node Type, Val, Title, Pseudo Ops
+@node Type
 @section @code{.type @var{int}}
 
 @cindex COFF symbol type
@@ -3376,7 +3243,7 @@ _fi__(_BOUT__)
 _fi__(_COFF__||_BOUT__)
 
 _if__(_COFF__||_BOUT__)
-@node Val, Word, Type, Pseudo Ops
+@node Val
 @section @code{.val @var{addr}}
 
 @cindex @code{val} directive
@@ -3392,12 +3259,7 @@ configured for @code{b.out}, it accepts this directive but ignores it.
 _fi__(_BOUT__)
 _fi__(_COFF__||_BOUT__)
 
-_if__(_COFF__||_BOUT__)
-@node Word, Deprecated, Val, Pseudo Ops
-_fi__(_COFF__||_BOUT__)
-_if__(!(_COFF__||_BOUT__))
-@node Word, Deprecated, Text, Pseudo Ops
-_fi__(!(_COFF__||_BOUT__))
+@node Word
 @section @code{.word @var{expressions}}
 
 @cindex @code{word} directive
@@ -3460,7 +3322,7 @@ assembly language programmers.
 _fi__(_INTERNALS__)
 _fi__(_GENERIC__ || _DIFFTABKLUG__)
 
-@node Deprecated,  , Word, Pseudo Ops
+@node Deprecated
 @section Deprecated Directives
 
 @cindex deprecated directives
@@ -3473,7 +3335,7 @@ They are included for compatibility with older assemblers.
 @item .line
 @end table
 
-@node _MACH_DEP__, Copying, Pseudo Ops, Top
+@node _MACH_DEP__
 _if__(_GENERIC__)
 @chapter Machine Dependent Features
 
@@ -3498,7 +3360,7 @@ _if__(_A29K__)
 * AMD29K-Dependent::           AMD 29K Dependent Features
 _fi__(_A29K__)
 _if__(_H8__)
-* H8/300-Dependent::           AMD 29K Dependent Features
+* H8/300-Dependent::           Hitachi H8/300 Dependent Features
 _fi__(_H8__)
 _if__(_I960__)
 * i960-Dependent::             Intel 80960 Dependent Features
@@ -3509,6 +3371,9 @@ _fi__(_M680X0__)
 _if__(_SPARC__)
 * Sparc-Dependent::            SPARC Dependent Features
 _fi__(_SPARC__)
+_if__(_Z8000__)
+* Z8000-Dependent::            Z8000 Dependent Features
+_fi__(_Z8000__)
 _if__(_I80386__)
 * i386-Dependent::             80386 Dependent Features
 _fi__(_I80386__)
@@ -3517,7 +3382,7 @@ _fi__(_I80386__)
 _fi__(_GENERIC__)
 _if__(_VAX__)
 _if__(_GENERIC__)
-@node Vax-Dependent, AMD29K-Dependent, Machine Dependent, Machine Dependent
+@node Vax-Dependent
 _fi__(_GENERIC__)
 _CHAPSEC__(0+_GENERIC__) VAX Dependent Features
 
@@ -3532,7 +3397,7 @@ _CHAPSEC__(0+_GENERIC__) VAX Dependent Features
 * VAX-no::                     Not Supported on VAX
 @end menu
 
-@node Vax-Opts, VAX-float, Vax-Dependent, Vax-Dependent
+@node Vax-Opts
 _CHAPSEC__(1+_GENERIC__) VAX Command-Line Options
 
 @cindex command-line options ignored, VAX
@@ -3603,7 +3468,7 @@ option also insertes some code following the @samp{_main}
 symbol so that the object file will be compatible with Vax-11
 "C".
 
-@node VAX-float, VAX-directives, Vax-Opts, Vax-Dependent
+@node VAX-float
 _CHAPSEC__(1+_GENERIC__) VAX Floating Point
 
 @cindex VAX floating point
@@ -3624,7 +3489,7 @@ boundary case.
 The @code{.float} directive produces @code{f} format numbers.
 The @code{.double} directive produces @code{d} format numbers.
 
-@node VAX-directives, VAX-opcodes, VAX-float, Vax-Dependent
+@node VAX-directives
 _CHAPSEC__(1+_GENERIC__) Vax Machine Directives
 
 @cindex machine directives, VAX
@@ -3657,7 +3522,7 @@ assembles Vax @code{h} format 128-bit floating point constants.
 
 @end table
 
-@node VAX-opcodes, VAX-branch, VAX-directives, Vax-Dependent
+@node VAX-opcodes
 _CHAPSEC__(1+_GENERIC__) VAX Opcodes
 
 @cindex VAX opcode mnemonics
@@ -3669,7 +3534,7 @@ follows the @code{case@dots{}} instruction should be made with
 @code{.word} statements.  This is compatible with all unix
 assemblers we know of.
 
-@node VAX-branch, VAX-operands, VAX-opcodes, Vax-Dependent
+@node VAX-branch
 _CHAPSEC__(1+_GENERIC__) VAX Branch Improvement
 
 @cindex VAX branch improvement
@@ -3781,7 +3646,7 @@ bar:
 @end table
 @end table
 
-@node VAX-operands, VAX-no, VAX-branch, Vax-Dependent
+@node VAX-operands
 _CHAPSEC__(1+_GENERIC__) VAX Operands
 
 @cindex VAX operand notation
@@ -3821,7 +3686,7 @@ separated.
 @c a syntax clash because () is used as an address mode
 @c and to encapsulate sub-expressions.
 
-@node VAX-no,  , VAX-operands, Vax-Dependent
+@node VAX-no
 _CHAPSEC__(1+_GENERIC__) Not Supported on VAX
 
 @cindex VAX bitfields not supported
@@ -3832,7 +3697,7 @@ can add the required code if they really need it.
 _fi__(_VAX__)
 _if__(_A29K__)
 _if__(_GENERIC__)
-@node AMD29K-Dependent, H8/300-Dependent, Vax-Dependent, Machine Dependent
+@node AMD29K-Dependent
 _fi__(_GENERIC__)
 _CHAPSEC__(0+_GENERIC__) AMD 29K Dependent Features
 
@@ -3846,21 +3711,21 @@ _CHAPSEC__(0+_GENERIC__) AMD 29K Dependent Features
 * AMD29K Opcodes::             Opcodes
 @end menu
 
-@node AMD29K Options, AMD29K Syntax, AMD29K-Dependent, AMD29K-Dependent
+@node AMD29K Options
 _CHAPSEC__(1+_GENERIC__) Options
 @cindex AMD 29K options (none)
 @cindex options for AMD29K (none)
 @code{_AS__} has no additional command-line options for the AMD
 29K family.
 
-@node AMD29K Syntax, AMD29K Floating Point, AMD29K Options, AMD29K-Dependent
+@node AMD29K Syntax
 _CHAPSEC__(1+_GENERIC__) Syntax
 @menu
 * AMD29K-Chars::               Special Characters
 * AMD29K-Regs::                        Register Names
 @end menu
 
-@node AMD29K-Chars, AMD29K-Regs, AMD29K Syntax, AMD29K Syntax
+@node AMD29K-Chars
 _CHAPSEC__(2+_GENERIC__) Special Characters
 
 @cindex line comment character, AMD 29K
@@ -3878,7 +3743,7 @@ _CHAPSEC__(2+_GENERIC__) Special Characters
 The character @samp{?} is permitted in identifiers (but may not begin
 an identifier).
 
-@node AMD29K-Regs,  , AMD29K-Chars, AMD29K Syntax
+@node AMD29K-Regs
 _CHAPSEC__(2+_GENERIC__) Register Names
 
 @cindex AMD 29K register names
@@ -3924,14 +3789,14 @@ These unprotected special-purpose register names are also recognized:
   q      cr     exop
 @end smallexample
 
-@node AMD29K Floating Point, AMD29K Directives, AMD29K Syntax, AMD29K-Dependent
+@node AMD29K Floating Point
 _CHAPSEC__(1+_GENERIC__) Floating Point
 
 @cindex floating point, AMD 29K (@sc{ieee})
 @cindex AMD 29K floating point (@sc{ieee})
 The AMD 29K family uses @sc{ieee} floating-point numbers.
 
-@node AMD29K Directives, AMD29K Opcodes, AMD29K Floating Point, AMD29K-Dependent
+@node AMD29K Directives
 _CHAPSEC__(1+_GENERIC__) AMD 29K Machine Directives
 
 @cindex machine directives, AMD 29K
@@ -3968,9 +3833,12 @@ used for the directive called @code{.app-file} in the AMD 29K support.
 This directive is ignored; it is accepted for compatibility with other
 AMD 29K assemblers.
 
+@ignore
+@c since we're ignoring .lsym...
 @item .reg @var{symbol}, @var{expression}
 @cindex @code{reg} directive, AMD 29K
 @code{.reg} has the same effect as @code{.lsym}; @pxref{Lsym,,@code{.lsym}}.
+@end ignore
 
 @item .sect
 @cindex @code{sect} directive, AMD 29K
@@ -3987,7 +3855,7 @@ name} options, @samp{.use} is equivalent to the machine directive
 @samp{.data 200}.
 @end table
 
-@node AMD29K Opcodes,  , AMD29K Directives, AMD29K-Dependent
+@node AMD29K Opcodes
 _CHAPSEC__(1+_GENERIC__) Opcodes
 
 @cindex AMD 29K opcodes
@@ -4001,7 +3869,7 @@ User's Manual}, Advanced Micro Devices, Inc.
 _fi__(_A29K__)
 _if__(_H8__)
 _if__(_GENERIC__)
-@node H8/300-Dependent, i960-Dependent, AMD29K-Dependent, Machine Dependent
+@node H8/300-Dependent
 _fi__(_GENERIC__)
 _CHAPSEC__(0+_GENERIC__) H8/300 Dependent Features
 
@@ -4014,7 +3882,7 @@ _CHAPSEC__(0+_GENERIC__) H8/300 Dependent Features
 * H8/300 Opcodes::             Opcodes
 @end menu
 
-@node H8/300 Options, H8/300 Syntax, H8/300-Dependent, H8/300-Dependent
+@node H8/300 Options
 _CHAPSEC__(1+_GENERIC__) Options
 
 @cindex H8/300 options (none)
@@ -4022,7 +3890,7 @@ _CHAPSEC__(1+_GENERIC__) Options
 @code{_AS__} has no additional command-line options for the Hitachi 
 H8/300 family.
 
-@node H8/300 Syntax, H8/300 Floating Point, H8/300 Options, H8/300-Dependent
+@node H8/300 Syntax
 _CHAPSEC__(1+_GENERIC__) Syntax
 @menu
 * H8/300-Chars::               Special Characters
@@ -4030,7 +3898,7 @@ _CHAPSEC__(1+_GENERIC__) Syntax
 * H8/300-Addressing::           Addressing Modes
 @end menu
 
-@node H8/300-Chars, H8/300-Regs, H8/300 Syntax, H8/300 Syntax
+@node H8/300-Chars
 _CHAPSEC__(2+_GENERIC__) Special Characters
 
 @cindex line comment character, H8/300
@@ -4043,7 +3911,7 @@ _CHAPSEC__(2+_GENERIC__) Special Characters
 @samp{$} can be used instead of a newline to separate statements.
 Therefore @emph{you may not use @samp{$} in symbol names} on the H8/300. 
 
-@node H8/300-Regs, H8/300-Addressing, H8/300-Chars, H8/300 Syntax
+@node H8/300-Regs
 _CHAPSEC__(2+_GENERIC__) Register Names
 
 @cindex H8/300 registers
@@ -4063,7 +3931,7 @@ The two control registers are called @code{pc} (program counter; a
 register).   @code{r7} is used as the stack pointer, and can also be
 called @code{sp}.
 
-@node H8/300-Addressing,  , H8/300-Regs, H8/300 Syntax
+@node H8/300-Addressing
 _CHAPSEC__(2+_GENERIC__) Addressing Modes
 
 @cindex addressing modes, H8/300
@@ -4108,14 +3976,14 @@ Memory indirect.  You may specify the @samp{:8} for clarity, if you
 wish; but @code{_AS__} neither requires this nor uses it.
 @end table
 
-@node H8/300 Floating Point, H8/300 Directives, H8/300 Syntax, H8/300-Dependent
+@node H8/300 Floating Point
 _CHAPSEC__(1+_GENERIC__) Floating Point
 
 @cindex floating point, H8/300 (@sc{ieee})
 @cindex H8/300 floating point (@sc{ieee})
 The H8/300 family uses @sc{ieee} floating-point numbers.
 
-@node H8/300 Directives, H8/300 Opcodes, H8/300 Floating Point, H8/300-Dependent
+@node H8/300 Directives
 _CHAPSEC__(1+_GENERIC__) H8/300 Machine Directives
 
 @cindex H8/300 machine directives (none)
@@ -4126,7 +3994,7 @@ _CHAPSEC__(1+_GENERIC__) H8/300 Machine Directives
 However, on this platform the @samp{.int} and @samp{.word} directives
 generate 16-bit numbers.
 
-@node H8/300 Opcodes,  , H8/300 Directives, H8/300-Dependent
+@node H8/300 Opcodes
 _CHAPSEC__(1+_GENERIC__) Opcodes
 
 @cindex H8/300 opcode summary
@@ -4254,7 +4122,7 @@ there's a mismatch between the suffix and the register size.
 _fi__(_H8__)
 _if__(_I960__)
 _if__(_GENERIC__)
-@node i960-Dependent, M68K-Dependent, H8/300-Dependent, Machine Dependent
+@node i960-Dependent
 _fi__(_GENERIC__)
 _CHAPSEC__(0+_GENERIC__) Intel 80960 Dependent Features
 
@@ -4268,7 +4136,8 @@ _CHAPSEC__(0+_GENERIC__) Intel 80960 Dependent Features
 
 @c FIXME! Add Syntax sec with discussion of bitfields here, at least so
 @c long as they're not turned on for other machines than 960.
-@node Options-i960, Floating Point-i960, i960-Dependent, i960-Dependent
+
+@node Options-i960
 
 _CHAPSEC__(1+_GENERIC__) i960 Command-line Options
 
@@ -4374,7 +4243,7 @@ emitted for them is @emph{always} adjusted when necessary (depending on
 displacement size), regardless of whether you use @samp{-norelax}.
 @end table
 
-@node Floating Point-i960, Directives-i960, Options-i960, i960-Dependent
+@node Floating Point-i960
 _CHAPSEC__(1+_GENERIC__) Floating Point
 
 @cindex floating point, i960 (@sc{ieee})
@@ -4382,7 +4251,7 @@ _CHAPSEC__(1+_GENERIC__) Floating Point
 @code{_AS__} generates @sc{ieee} floating-point numbers for the directives
 @samp{.float}, @samp{.double}, @samp{.extended}, and @samp{.single}.
 
-@node Directives-i960, Opcodes for i960, Floating Point-i960, i960-Dependent
+@node Directives-i960
 _CHAPSEC__(1+_GENERIC__) i960 Machine Directives
 
 @cindex machine directives, i960
@@ -4436,7 +4305,7 @@ Both arguments are required; @var{index} must be between 0 and 31
 (inclusive).
 @end table
 
-@node Opcodes for i960,  , Directives-i960, i960-Dependent
+@node Opcodes for i960
 _CHAPSEC__(1+_GENERIC__) i960 Opcodes
 
 @cindex opcodes, i960
@@ -4455,7 +4324,7 @@ instructions with target displacements larger than 13 bits.
 * Compare-and-branch-i960::    Compare-and-Branch
 @end menu
 
-@node callj-i960, Compare-and-branch-i960, Opcodes for i960, Opcodes for i960
+@node callj-i960
 _CHAPSEC__(2+_GENERIC__) @code{callj}
 
 @cindex @code{callj}, i960 pseudo-opcode
@@ -4468,7 +4337,7 @@ defining the operand---then @code{_AS__} will translate the
 @code{callj}; if not, it will simply emit the @code{callj}, leaving it
 for the linker to resolve.
 
-@node Compare-and-branch-i960,  , callj-i960, Opcodes for i960
+@node Compare-and-branch-i960
 _CHAPSEC__(2+_GENERIC__) Compare-and-Branch
 
 @cindex i960 compare/branch instructions
@@ -4546,13 +4415,7 @@ _fi__(_I960__)
 
 _if__(_M680X0__)
 _if__(_GENERIC__)
-@c FIXME! node conds are only sufficient for m68k alone, all, and vintage
-_if__(_I960__)
-@node M68K-Dependent, Sparc-Dependent, i960-Dependent, Machine Dependent
-_fi__(_I960__)
-_if__(!_I960__)
-@node M68K-Dependent, Sparc-Dependent, Machine Dependent, Machine Dependent
-_fi__(!_I960__)
+@node M68K-Dependent
 _fi__(_GENERIC__)
 _CHAPSEC__(0+_GENERIC__) M680x0 Dependent Features
 
@@ -4565,7 +4428,7 @@ _CHAPSEC__(0+_GENERIC__) M680x0 Dependent Features
 * M68K-opcodes::               Opcodes
 @end menu
 
-@node M68K-Opts, M68K-Syntax, M68K-Dependent, M68K-Dependent
+@node M68K-Opts
 _CHAPSEC__(1+_GENERIC__) M680x0 Options
 
 @cindex options, M680x0
@@ -4598,7 +4461,7 @@ MC68000 or MC68010 microprocessors.  You can give @code{_AS__} the options
 @samp{-m68020}, and @samp{-mc68020} to tell it what processor is the
 target.
 
-@node M68K-Syntax, M68K-Float, M68K-Opts, M68K-Dependent
+@node M68K-Syntax
 _CHAPSEC__(1+_GENERIC__) Syntax
 
 @cindex M680x0 syntax
@@ -4673,7 +4536,7 @@ by @samp{:b}, @samp{:w}, or @samp{:l}.
 @end ignore
 @end table
 
-@node M68K-Float, M68K-Directives, M68K-Syntax, M68K-Dependent
+@node M68K-Float
 _CHAPSEC__(1+_GENERIC__) Floating Point
 
 @cindex floating point, M680x0
@@ -4703,7 +4566,7 @@ immediate operands to floating-point instructions.  Adding a
 directive to create extended precision numbers would not be
 hard, but it has not yet seemed necessary.
 
-@node M68K-Directives, M68K-opcodes, M68K-Float, M68K-Dependent
+@node M68K-Directives
 _CHAPSEC__(1+_GENERIC__) 680x0 Machine Directives
 
 @cindex M680x0 directives
@@ -4730,7 +4593,7 @@ This directive is identical to a @code{.align 1} directive.
 This directive is identical to a @code{.space} directive.
 @end table
 
-@node M68K-opcodes,  , M68K-Directives, M68K-Dependent
+@node M68K-opcodes
 _CHAPSEC__(1+_GENERIC__) Opcodes
 
 @cindex M680x0 opcodes
@@ -4750,7 +4613,7 @@ instructions.
 * M68K-Chars::                 Special Characters
 @end menu
 
-@node M68K-Branch, M68K-Chars, M68K-opcodes, M68K-opcodes
+@node M68K-Branch
 _CHAPSEC__(2+_GENERIC__) Branch Improvement
 
 @cindex pseudo-opcodes, M680x0
@@ -4801,7 +4664,8 @@ list of pseudo-ops in this family is:
 
 For the cases of non-PC relative displacements and long displacements on
 the 68000 or 68010, @code{_AS__} will issue a longer code fragment in terms of
-@var{NX}, the opposite condition to @var{XX}:
+@var{NX}, the opposite condition to @var{XX}.  For example, for the
+non-PC relative case:
 @smallexample
     j@var{XX} foo
 @end smallexample
@@ -4849,7 +4713,7 @@ when it encounters @samp{fj@var{XX} foo}.
 
 @end table
 
-@node M68K-Chars,  , M68K-Branch, M68K-opcodes
+@node M68K-Chars
 _CHAPSEC__(2+_GENERIC__) Special Characters
 
 @cindex special characters, M680x0
@@ -4890,36 +4754,7 @@ The 32x32 has no machine dependent directives.
 _fi__(0)
 _if__(_SPARC__)
 _if__(_GENERIC__)
-_if__(_I80386__&&_M680X0__)
-@node Sparc-Dependent, i386-Dependent, M68K-Dependent, Machine Dependent
-_fi__(_I80386__&&_M680X0__)
-_if__(_I80386__&&_I960__&&!_M680X0__)
-@node Sparc-Dependent, i386-Dependent, i960-Dependent, Machine Dependent
-_fi__(_I80386__&&_I960__&&!_M680X0__)
-_if__(_I80386__&&_A29K__&&(!_I960__)&&!_M680X0__)
-@node Sparc-Dependent, i386-Dependent, AMD29K-Dependent, Machine Dependent
-_fi__(_I80386__&&_A29K__&&(!_I960__)&&!_M680X0__)
-_if__(_I80386__&&_VAX__&&(!_A29K__)&&(!_I960__)&&!_M680X0__)
-@node Sparc-Dependent, i386-Dependent, Vax-Dependent, Machine Dependent
-_fi__(_I80386__&&_VAX__&&(!_A29K__)&&(!_I960__)&&!_M680X0__)
-_if__(_I80386__&&(!_VAX__)&&(!_A29K__)&&(!_I960__)&&!_M680X0__)
-@node Sparc-Dependent, i386-Dependent, Machine Dependent, Machine Dependent
-_fi__(_I80386__&&(!_VAX__)&&(!_A29K__)&&(!_I960__)&&!_M680X0__)
-_if__((!_I80386__)&&_M680X0__)
-@node Sparc-Dependent,  , M68K-Dependent, Machine Dependent
-_fi__((!_I80386__)&&_M680X0__)
-_if__((!_I80386__)&&_I960__&&!_M680X0__)
-@node Sparc-Dependent,  , i960-Dependent, Machine Dependent
-_fi__((!_I80386__)&&_I960__&&!_M680X0__)
-_if__((!_I80386__)&&_A29K__&&(!_I960__)&&!_M680X0__)
-@node Sparc-Dependent,  , AMD29K-Dependent, Machine Dependent
-_fi__((!_I80386__)&&_A29K__&&(!_I960__)&&!_M680X0__)
-_if__((!_I80386__)&&_VAX__&&(!_A29K__)&&(!_I960__)&&!_M680X0__)
-@node Sparc-Dependent,  , Vax-Dependent, Machine Dependent
-_fi__((!_I80386__)&&_VAX__&&(!_A29K__)&&(!_I960__)&&!_M680X0__)
-_if__((!_I80386__)&&(!_VAX__)&&(!_A29K__)&&(!_I960__)&&!_M680X0__)
-@node Sparc-Dependent,  , Machine Dependent, Machine Dependent
-_fi__((!_I80386__)&&(!_VAX__)&&(!_A29K__)&&(!_I960__)&&!_M680X0__)
+@node Sparc-Dependent
 _fi__(_GENERIC__)
 _CHAPSEC__(0+_GENERIC__) SPARC Dependent Features
 
@@ -4930,7 +4765,7 @@ _CHAPSEC__(0+_GENERIC__) SPARC Dependent Features
 * Sparc-Directives::           Sparc Machine Directives
 @end menu
 
-@node Sparc-Opts, Sparc-Float, Sparc-Dependent, Sparc-Dependent
+@node Sparc-Opts
 _CHAPSEC__(1+_GENERIC__) Options
 
 @cindex options for SPARC (none)
@@ -4944,14 +4779,14 @@ I don't know anything about Sparc syntax.  Someone who does
 will have to write this section.
 @end ignore
 
-@node Sparc-Float, Sparc-Directives, Sparc-Opts, Sparc-Dependent
+@node Sparc-Float
 _CHAPSEC__(1+_GENERIC__) Floating Point
 
 @cindex floating point, SPARC (@sc{ieee})
 @cindex SPARC floating point (@sc{ieee})
 The Sparc uses @sc{ieee} floating-point numbers.
 
-@node Sparc-Directives,  , Sparc-Float, Sparc-Dependent
+@node Sparc-Directives
 _CHAPSEC__(1+_GENERIC__) Sparc Machine Directives
 
 @cindex SPARC machine directives
@@ -5000,8 +4835,7 @@ instead of the 16 bit values it produces on many other machines.
 _fi__(_SPARC__)
 _if__(_I80386__)
 _if__(_GENERIC__)
-@c FIXME! Conditionalize for all combinations in this section
-@node i386-Dependent,  , Sparc-Dependent, Machine Dependent
+@node i386-Dependent
 _fi__(_GENERIC__)
 _CHAPSEC__(0+_GENERIC__) 80386 Dependent Features
 
@@ -5019,14 +4853,14 @@ _CHAPSEC__(0+_GENERIC__) 80386 Dependent Features
 * i386-Notes::                 Notes
 @end menu
 
-@node i386-Options, i386-Syntax, i386-Dependent, i386-Dependent
+@node i386-Options
 _CHAPSEC__(1+_GENERIC__) Options
 
 @cindex options for i386 (none)
 @cindex i386 options (none)
 The 80386 has no machine dependent options.
 
-@node i386-Syntax, i386-Opcodes, i386-Options, i386-Dependent
+@node i386-Syntax
 _CHAPSEC__(1+_GENERIC__) AT&T Syntax versus Intel Syntax
 
 @cindex i386 syntax compatibility
@@ -5090,7 +4924,7 @@ The AT&T assembler does not provide support for multiple section
 programs.  Unix style systems expect all programs to be single sections.
 @end itemize
 
-@node i386-Opcodes, i386-Regs, i386-Syntax, i386-Dependent
+@node i386-Opcodes
 _CHAPSEC__(1+_GENERIC__) Opcode Naming
 
 @cindex i386 opcode naming
@@ -5148,7 +4982,7 @@ Far call/jump instructions are @samp{lcall} and @samp{ljmp} in
 AT&T syntax, but are @samp{call far} and @samp{jump far} in Intel
 convention.
 
-@node i386-Regs, i386-prefixes, i386-Opcodes, i386-Dependent
+@node i386-Regs
 _CHAPSEC__(1+_GENERIC__) Register Naming
 
 @cindex i386 registers
@@ -5194,7 +5028,7 @@ the 8 floating point register stack @samp{%st} or equivalently
 @samp{%st(4)}, @samp{%st(5)}, @samp{%st(6)}, and @samp{%st(7)}.
 @end itemize
 
-@node i386-prefixes, i386-Memory, i386-Regs, i386-Dependent
+@node i386-prefixes
 _CHAPSEC__(1+_GENERIC__) Opcode Prefixes
 
 @cindex i386 opcode prefixes
@@ -5248,7 +5082,7 @@ The @samp{rep}, @samp{repe}, and @samp{repne} prefixes are added
 to string instructions to make them repeat @samp{%ecx} times.
 @end itemize
 
-@node i386-Memory, i386-jumps, i386-prefixes, i386-Dependent
+@node i386-Memory
 _CHAPSEC__(1+_GENERIC__) Memory References
 
 @cindex i386 memory references
@@ -5312,7 +5146,7 @@ Any instruction that has a memory operand @emph{must} specify its size (byte,
 word, or long) with an opcode suffix (@samp{b}, @samp{w}, or @samp{l},
 respectively).
 
-@node i386-jumps, i386-Float, i386-Memory, i386-Dependent
+@node i386-jumps
 _CHAPSEC__(1+_GENERIC__) Handling of Jump Instructions
 
 @cindex jump optimization, i386
@@ -5338,7 +5172,7 @@ cx_zero: jmp foo
 cx_nonzero:
 @end smallexample
 
-@node i386-Float, i386-Notes, i386-jumps, i386-Dependent
+@node i386-Float
 _CHAPSEC__(1+_GENERIC__) Floating Point
 
 @cindex i386 floating point
@@ -5391,7 +5225,7 @@ of the @samp{fn@dots{}} instructions.  For example, @samp{fsave} and
 instructions are made equivalent to @samp{f@dots{}} instructions.  If
 @samp{fwait} is desired it must be explicitly coded.
 
-@node i386-Notes,  , i386-Float, i386-Dependent
+@node i386-Notes
 _CHAPSEC__(1+_GENERIC__) Notes
 
 @cindex i386 @code{mul}, @code{imul} instructions
@@ -5413,12 +5247,325 @@ example, can be done with @samp{imul $69, %eax} rather than @samp{imul
 $69, %eax, %eax}.
 
 _fi__(_I80386__)
+_if__(_Z8000__)
+_if__(_GENERIC__)
+@node Z8000-Dependent
+_fi__(_GENERIC__)
+_CHAPSEC__(0+_GENERIC__) Z8000 Dependent Features
+
+@cindex Z8000 support
+@menu
+* Z8000 Options::              Options
+* Z8000 Syntax::               Syntax
+* Z8000 Directives::           Z8000 Machine Directives
+* Z8000 Opcodes::              Opcodes
+@end menu
+
+@node Z8000 Options
+_CHAPSEC__(1+_GENERIC__) Options
+
+@cindex Z8000 options
+@cindex options, Z8000
+@code{_AS__} has no additional command-line options for the Zilog
+Z8000 family.
+
+@node Z8000 Syntax
+_CHAPSEC__(1+_GENERIC__) Syntax
+@menu
+* Z8000-Chars::                Special Characters
+* Z8000-Regs::                 Register Names
+* Z8000-Addressing::           Addressing Modes
+@end menu
+
+@node Z8000-Chars
+_CHAPSEC__(2+_GENERIC__) Special Characters
+
+@cindex line comment character, Z8000
+@cindex Z8000 line comment character
+@samp{!} is the line comment character.
+
+@cindex line separator, Z8000
+@cindex statement separator, Z8000
+@cindex Z8000 line separator
+@samp{;} can be used instead of a newline to separate statements.
+
+@node Z8000
+_CHAPSEC__(2+_GENERIC__) Register Names
+
+@cindex Z8000 registers
+@cindex registers, Z8000
+The Z8000 has sixteen 16 bit registers, numbered 0 to 15.  You can refer to different
+sized groups of registers with the prefix @samp{r} for 16 bit registers, @samp{rr}
+for 32 bit registers and @samp{rq} for 64 bit registers.  The first eight of the sixteen
+16 bit registers may also be accessed by bytes.  They are named @samp{r@var{n}h} and @samp{r@var{n}l}}.
+@example
+byte registers
+       r0l r0h r1h r1l r2h r2l r3h r3l r4h r4l r5h r5l r6h r6l r7h r7l
+
+word registers
+       r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15
+
+long word registers
+       rr0 rr2 rr4 rr6 rr8 rr10 rr12 rr14
+
+quad word registers
+       rq0 rq4 rq8 rq12
+@end example
+@node Z8000-Addressing
+_CHAPSEC__(2+_GENERIC__) Addressing Modes
+@cindex addressing modes, Z8000
+@cindex Z800 addressing modes
+_AS__ understands the following addressing modes for the Z8000:
+@table @code
+@item r@var{n}
+Register direct
+
+@item @@r@var{n}
+Indirect register 
+
+@item var{address}
+Direct: the 16/24 bit address of the operand is in the instruction.
+
+@item address(r@var{n})
+Indexed: the 16/24 bit address is added to the 16 bit register to produce
+the final address in memory of the operand.
+
+@item r@var{n}(#@var{imm})
+Base Address: the 16/24 bit register is added to the 16 bit sign extended immediate displacement to produce the final address in memory of the operand.
+
+@item r@var{n}(r@var{m})
+Base Index: the 16/24 bit register r@var{n} is added to the sign extended
+16 bit index register r@var{m} to produce the final address in memory of the operand.
+
+@item #@var{xx}
+Immediate data @var{xx}.
+@end table
+@node Z8000 Opcodes
+_CHAPSEC__(1+_GENERIC__) Opcodes
+
+@cindex Z8000 opcode summary
+@cindex opcode summary, Z8000
+@cindex mnemonics, Z8000
+@cindex instruction summary, Z8000
+For detailed information on the Z8000 machine instruction set, see
+@cite{Z8000 Technical Manual}.
+
+@cindex Z8000 pseudo ops
+
+The Z8000 port of gas provides a superficial resemblance to YASM, and
+provides these YASM compatible pseudo ops:
+@table @code
+@item segm
+@cindex segm
+Generates code for the segmented Z8001.
+@item unsegm
+Generates code for the unsegmented Z8002.
+@item name
+Synonym for @code{.file}
+@item global
+Synonum for @code{.global}
+@item wval
+Synonym for .word
+@item lval
+Synonym for .long
+@item bval
+Synonym for .byte
+@item sval
+Assemble a string.
+@code {sval} expects one string literal, delimited by single quotes.  It assembles each byte of the string into consecutive addresses.  Single quote
+and other non-representable characters may be descrbed by escaping them
+with a percent sign and their ascii value as a two digit hex number.
+
+@example
+char *a = "he said \"it's 50% off\"";
+
+0000 68652073          sval    'he said %22it%27s 50%25 off%22%00'
+     61696420 
+     22697427 
+     73203530 
+     25206F66
+     662200
+@end example
+@item rsect
+synonym for @code{.section}
+@item block
+synonym for @code{.space}
+@item even
+synonym for @code{.align 1}
+@end table
+
+The following table summarizes the opcodes and their arguments:
+@c kluge due to lack of group outside example
+@page
+@group
+@smallexample
+
+            rs   @r{16 bit source register}     
+            rd   @r{16 bit destination register}
+            rbs   @r{8 bit source register}     
+            rbd   @r{8 bit destination register}
+            rrs   @r{32 bit source register}     
+            rrd   @r{32 bit destination register}
+            rqs   @r{64 bit source register}     
+            rqd   @r{64 bit destination register}
+            addr @r{16/24 bit address}
+            imm  @r{immediate data}      
+
+adc rd,rs              clrb addr               cpsir @@rd,@@rs,rr,cc
+adcb rbd,rbs           clrb addr(rd)           cpsirb @@rd,@@rs,rr,cc
+add rd,@@rs            clrb rbd                dab rbd
+add rd,addr            com @@rd                dbjnz rbd,disp7
+add rd,addr(rs)                com addr                dec @@rd,imm4m1
+add rd,imm16           com addr(rd)            dec addr(rd),imm4m1
+add rd,rs              com rd                  dec addr,imm4m1
+addb rbd,@@rs          comb @@rd               dec rd,imm4m1
+addb rbd,addr          comb addr               decb @@rd,imm4m1
+addb rbd,addr(rs)      comb addr(rd)           decb addr(rd),imm4m1
+addb rbd,imm8          comb rbd                decb addr,imm4m1
+addb rbd,rbs           comflg flags            decb rbd,imm4m1
+addl rrd,@@rs          cp @@rd,imm16           di i2
+addl rrd,addr          cp addr(rd),imm16       div rrd,@@rs
+addl rrd,addr(rs)      cp addr,imm16           div rrd,addr
+addl rrd,imm32         cp rd,@@rs              div rrd,addr(rs)
+addl rrd,rrs           cp rd,addr              div rrd,imm16
+and rd,@@rs            cp rd,addr(rs)          div rrd,rs
+and rd,addr            cp rd,imm16             divl rqd,@@rs
+and rd,addr(rs)                cp rd,rs                divl rqd,addr
+and rd,imm16           cpb @@rd,imm8           divl rqd,addr(rs)
+and rd,rs              cpb addr(rd),imm8       divl rqd,imm32
+andb rbd,@@rs          cpb addr,imm8           divl rqd,rrs
+andb rbd,addr          cpb rbd,@@rs            djnz rd,disp7
+andb rbd,addr(rs)      cpb rbd,addr            ei i2
+andb rbd,imm8          cpb rbd,addr(rs)        ex rd,@@rs
+andb rbd,rbs           cpb rbd,imm8            ex rd,addr
+bit @@rd,imm4          cpb rbd,rbs             ex rd,addr(rs)
+bit addr(rd),imm4      cpd rd,@@rs,rr,cc       ex rd,rs
+bit addr,imm4          cpdb rbd,@@rs,rr,cc     exb rbd,@@rs
+bit rd,imm4            cpdr rd,@@rs,rr,cc      exb rbd,addr
+bit rd,rs              cpdrb rbd,@@rs,rr,cc    exb rbd,addr(rs)
+bitb @@rd,imm4         cpi rd,@@rs,rr,cc       exb rbd,rbs
+bitb addr(rd),imm4     cpib rbd,@@rs,rr,cc     ext0e imm8
+bitb addr,imm4         cpir rd,@@rs,rr,cc      ext0f imm8
+bitb rbd,imm4          cpirb rbd,@@rs,rr,cc    ext8e imm8
+bitb rbd,rs            cpl rrd,@@rs            ext8f imm8
+bpt                    cpl rrd,addr            exts rrd
+call @@rd              cpl rrd,addr(rs)        extsb rd
+call addr              cpl rrd,imm32           extsl rqd
+call addr(rd)          cpl rrd,rrs             halt
+calr disp12            cpsd @@rd,@@rs,rr,cc    in rd,@@rs
+clr @@rd               cpsdb @@rd,@@rs,rr,cc   in rd,imm16
+clr addr               cpsdr @@rd,@@rs,rr,cc   inb rbd,@@rs
+clr addr(rd)           cpsdrb @@rd,@@rs,rr,cc  inb rbd,imm16
+clr rd                 cpsi @@rd,@@rs,rr,cc    inc @@rd,imm4m1
+clrb @@rd              cpsib @@rd,@@rs,rr,cc   inc addr(rd),imm4m1
+@end group
+@group
+inc addr,imm4m1                ldb rbd,rs(rx)          mult rrd,addr(rs)
+inc rd,imm4m1          ldb rd(imm16),rbs       mult rrd,imm16
+incb @@rd,imm4m1       ldb rd(rx),rbs          mult rrd,rs
+incb addr(rd),imm4m1   ldctl ctrl,rs           multl rqd,@@rs
+incb addr,imm4m1       ldctl rd,ctrl           multl rqd,addr
+incb rbd,imm4m1                ldd @@rs,@@rd,rr        multl rqd,addr(rs)
+ind @@rd,@@rs,ra       lddb @@rs,@@rd,rr       multl rqd,imm32
+indb @@rd,@@rs,rba     lddr @@rs,@@rd,rr       multl rqd,rrs
+inib @@rd,@@rs,ra      lddrb @@rs,@@rd,rr      neg @@rd
+inibr @@rd,@@rs,ra     ldi @@rd,@@rs,rr        neg addr
+iret                   ldib @@rd,@@rs,rr       neg addr(rd)
+jp cc,@@rd             ldir @@rd,@@rs,rr       neg rd
+jp cc,addr             ldirb @@rd,@@rs,rr      negb @@rd
+jp cc,addr(rd)         ldk rd,imm4             negb addr
+jr cc,disp8            ldl @@rd,rrs            negb addr(rd)
+ld @@rd,imm16          ldl addr(rd),rrs        negb rbd
+ld @@rd,rs             ldl addr,rrs            nop
+ld addr(rd),imm16      ldl rd(imm16),rrs       or rd,@@rs
+ld addr(rd),rs         ldl rd(rx),rrs          or rd,addr
+ld addr,imm16          ldl rrd,@@rs            or rd,addr(rs)
+ld addr,rs             ldl rrd,addr            or rd,imm16
+ld rd(imm16),rs                ldl rrd,addr(rs)        or rd,rs
+ld rd(rx),rs           ldl rrd,imm32           orb rbd,@@rs
+ld rd,@@rs             ldl rrd,rrs             orb rbd,addr
+ld rd,addr             ldl rrd,rs(imm16)       orb rbd,addr(rs)
+ld rd,addr(rs)         ldl rrd,rs(rx)          orb rbd,imm8
+ld rd,imm16            ldm @@rd,rs,n           orb rbd,rbs
+ld rd,rs               ldm addr(rd),rs,n       out @@rd,rs
+ld rd,rs(imm16)                ldm addr,rs,n           out imm16,rs
+ld rd,rs(rx)           ldm rd,@@rs,n           outb @@rd,rbs
+lda rd,addr            ldm rd,addr(rs),n       outb imm16,rbs
+lda rd,addr(rs)                ldm rd,addr,n           outd @@rd,@@rs,ra
+lda rd,rs(imm16)       ldps @@rs               outdb @@rd,@@rs,rba
+lda rd,rs(rx)          ldps addr               outib @@rd,@@rs,ra
+ldar rd,disp16         ldps addr(rs)           outibr @@rd,@@rs,ra
+ldb @@rd,imm8          ldr disp16,rs           pop @@rd,@@rs
+ldb @@rd,rbs           ldr rd,disp16           pop addr(rd),@@rs
+ldb addr(rd),imm8      ldrb disp16,rbs         pop addr,@@rs
+ldb addr(rd),rbs       ldrb rbd,disp16         pop rd,@@rs
+ldb addr,imm8          ldrl disp16,rrs         popl @@rd,@@rs
+ldb addr,rbs           ldrl rrd,disp16         popl addr(rd),@@rs
+ldb rbd,@@rs           mbit                    popl addr,@@rs
+ldb rbd,addr           mreq rd                 popl rrd,@@rs
+ldb rbd,addr(rs)       mres                    push @@rd,@@rs
+ldb rbd,imm8           mset                    push @@rd,addr
+ldb rbd,rbs            mult rrd,@@rs           push @@rd,addr(rs)
+ldb rbd,rs(imm16)      mult rrd,addr           push @@rd,imm16
+@end group
+@group
+push @@rd,rs           set addr,imm4           subl rrd,imm32
+pushl @@rd,@@rs                set rd,imm4             subl rrd,rrs
+pushl @@rd,addr                set rd,rs               tcc cc,rd
+pushl @@rd,addr(rs)    setb @@rd,imm4          tccb cc,rbd
+pushl @@rd,rrs         setb addr(rd),imm4      test @@rd
+res @@rd,imm4          setb addr,imm4          test addr
+res addr(rd),imm4      setb rbd,imm4           test addr(rd)
+res addr,imm4          setb rbd,rs             test rd
+res rd,imm4            setflg imm4             testb @@rd
+res rd,rs              sinb rbd,imm16          testb addr
+resb @@rd,imm4         sinb rd,imm16           testb addr(rd)
+resb addr(rd),imm4     sind @@rd,@@rs,ra       testb rbd
+resb addr,imm4         sindb @@rd,@@rs,rba     testl @@rd
+resb rbd,imm4          sinib @@rd,@@rs,ra      testl addr
+resb rbd,rs            sinibr @@rd,@@rs,ra     testl addr(rd)
+resflg imm4            sla rd,imm8             testl rrd
+ret cc                 slab rbd,imm8           trdb @@rd,@@rs,rba
+rl rd,imm1or2          slal rrd,imm8           trdrb @@rd,@@rs,rba
+rlb rbd,imm1or2                sll rd,imm8             trib @@rd,@@rs,rbr
+rlc rd,imm1or2         sllb rbd,imm8           trirb @@rd,@@rs,rbr
+rlcb rbd,imm1or2       slll rrd,imm8           trtdrb @@ra,@@rb,rbr
+rldb rbb,rba           sout imm16,rs           trtib @@ra,@@rb,rr
+rr rd,imm1or2          soutb imm16,rbs         trtirb @@ra,@@rb,rbr
+rrb rbd,imm1or2                soutd @@rd,@@rs,ra      trtrb @@ra,@@rb,rbr
+rrc rd,imm1or2         soutdb @@rd,@@rs,rba    tset @@rd
+rrcb rbd,imm1or2       soutib @@rd,@@rs,ra     tset addr
+rrdb rbb,rba           soutibr @@rd,@@rs,ra    tset addr(rd)
+rsvd36                 sra rd,imm8             tset rd
+rsvd38                 srab rbd,imm8           tsetb @@rd
+rsvd78                 sral rrd,imm8           tsetb addr
+rsvd7e                 srl rd,imm8             tsetb addr(rd)
+rsvd9d                 srlb rbd,imm8           tsetb rbd
+rsvd9f                 srll rrd,imm8           xor rd,@@rs
+rsvdb9                 sub rd,@@rs             xor rd,addr
+rsvdbf                 sub rd,addr             xor rd,addr(rs)
+sbc rd,rs              sub rd,addr(rs)         xor rd,imm16
+sbcb rbd,rbs           sub rd,imm16            xor rd,rs
+sc imm8                        sub rd,rs               xorb rbd,@@rs
+sda rd,rs              subb rbd,@@rs           xorb rbd,addr
+sdab rbd,rs            subb rbd,addr           xorb rbd,addr(rs)
+sdal rrd,rs            subb rbd,addr(rs)       xorb rbd,imm8
+sdl rd,rs              subb rbd,imm8           xorb rbd,rbs
+sdlb rbd,rs            subb rbd,rbs            xorb rbd,rbs
+sdll rrd,rs            subl rrd,@@rs
+set @@rd,imm4          subl rrd,addr
+set addr(rd),imm4      subl rrd,addr(rs)
+@end group
+@end smallexample
+
+_fi__(_Z8000__)
 _if__(0)
 @c pesch@cygnus.com: we ignore the following chapters, since internals are
 @c                   changing rapidly.  These may need to be moved to another
 @c                   book anyhow, if we adopt the model of user/modifier
 @c                   books.
-@node Maintenance, Retargeting, _MACH_DEP__, Top
+@node Maintenance
 @chapter Maintaining the Assembler
 [[this chapter is still being built]]
 
@@ -5819,65 +5966,66 @@ Macros and function headers for dealing with symbols.
 Structure for doing section fixups.
 @end table
 
-@comment ~subsection Test Directory
-@comment (Note:  The test directory seems to have disappeared somewhere
-@comment along the line.  If you want it, you'll probably have to find a
-@comment REALLY OLD dump tape~dots{})
-@comment
-@comment The ~file{test/} directory is used for regression testing.
-@comment After you modify ~@code{_AS__}, you can get a quick go/nogo
-@comment confidence test by running the new ~@code{_AS__} over the source
-@comment files in this directory.  You use a shell script ~file{test/do}.
-@comment
-@comment The tests in this suite are evolving.  They are not comprehensive.
-@comment They have, however, caught hundreds of bugs early in the debugging
-@comment cycle of ~@code{_AS__}.  Most test statements in this suite were naturally
-@comment selected: they were used to demonstrate actual ~@code{_AS__} bugs rather
-@comment than being written ~i{a prioi}.
-@comment
-@comment Another testing suggestion: over 30 bugs have been found simply by
-@comment running examples from this manual through ~@code{_AS__}.
-@comment Some examples in this manual are selected
-@comment to distinguish boundary conditions; they are good for testing ~@code{_AS__}.
-@comment
-@comment ~subsubsection Regression Testing
-@comment Each regression test involves assembling a file and comparing the
-@comment actual output of ~@code{_AS__} to ``known good'' output files.  Both
-@comment the object file and the error/warning message file (stderr) are
-@comment inspected.  Optionally the ~@code{_AS__} exit status may be checked.
-@comment Discrepencies are reported.  Each discrepency means either that
-@comment you broke some part of ~@code{_AS__} or that the ``known good'' files
-@comment are now out of date and should be changed to reflect the new
-@comment definition of ``good''.
-@comment
-@comment Each regression test lives in its own directory, in a tree
-@comment rooted in the directory ~file{test/}.  Each such directory
-@comment has a name ending in ~file{.ret}, where `ret' stands for
-@comment REgression Test.  The ~file{.ret} ending allows ~code{find
-@comment (1)} to find all regression tests in the tree, without
-@comment needing to list them explicitly.
-@comment
-@comment Any ~file{.ret} directory must contain a file called
-@comment ~file{input} which is the source file to assemble.  During
-@comment testing an object file ~file{output} is created, as well as
-@comment a file ~file{stdouterr} which contains the output to both
-@comment stderr and stderr.  If there is a file ~file{output.good} in
-@comment the directory, and if ~file{output} contains exactly the
-@comment same data as ~file{output.good}, the file ~file{output} is
-@comment deleted.  Likewise ~file{stdouterr} is removed if it exactly
-@comment matches a file ~file{stdouterr.good}.  If file
-@comment ~file{status.good} is present, containing a decimal number
-@comment before a newline, the exit status of ~@code{_AS__} is compared
-@comment to this number.  If the status numbers are not equal, a file
-@comment ~file{status} is written to the directory, containing the
-@comment actual status as a decimal number followed by newline.
-@comment
-@comment Should any of the ~file{*.good} files fail to match their corresponding
-@comment actual files, this is noted by a 1-line message on the screen during
-@comment the regression test, and you can use ~@code{find (1)} to find any
-@comment files named ~file{status}, ~file {output} or ~file{stdouterr}.
-@comment
-@node Retargeting, Copying, Maintenance, Top
+@c ~subsection Test Directory
+@c (Note:  The test directory seems to have disappeared somewhere
+@c along the line.  If you want it, you'll probably have to find a
+@c REALLY OLD dump tape~dots{})
+@c
+@c The ~file{test/} directory is used for regression testing.
+@c After you modify ~@code{_AS__}, you can get a quick go/nogo
+@c confidence test by running the new ~@code{_AS__} over the source
+@c files in this directory.  You use a shell script ~file{test/do}.
+@c
+@c The tests in this suite are evolving.  They are not comprehensive.
+@c They have, however, caught hundreds of bugs early in the debugging
+@c cycle of ~@code{_AS__}.  Most test statements in this suite were naturally
+@c selected: they were used to demonstrate actual ~@code{_AS__} bugs rather
+@c than being written ~i{a prioi}.
+@c
+@c Another testing suggestion: over 30 bugs have been found simply by
+@c running examples from this manual through ~@code{_AS__}.
+@c Some examples in this manual are selected
+@c to distinguish boundary conditions; they are good for testing ~@code{_AS__}.
+@c
+@c ~subsubsection Regression Testing
+@c Each regression test involves assembling a file and comparing the
+@c actual output of ~@code{_AS__} to ``known good'' output files.  Both
+@c the object file and the error/warning message file (stderr) are
+@c inspected.  Optionally the ~@code{_AS__} exit status may be checked.
+@c Discrepencies are reported.  Each discrepency means either that
+@c you broke some part of ~@code{_AS__} or that the ``known good'' files
+@c are now out of date and should be changed to reflect the new
+@c definition of ``good''.
+@c
+@c Each regression test lives in its own directory, in a tree
+@c rooted in the directory ~file{test/}.  Each such directory
+@c has a name ending in ~file{.ret}, where `ret' stands for
+@c REgression Test.  The ~file{.ret} ending allows ~code{find
+@c (1)} to find all regression tests in the tree, without
+@c needing to list them explicitly.
+@c
+@c Any ~file{.ret} directory must contain a file called
+@c ~file{input} which is the source file to assemble.  During
+@c testing an object file ~file{output} is created, as well as
+@c a file ~file{stdouterr} which contains the output to both
+@c stderr and stderr.  If there is a file ~file{output.good} in
+@c the directory, and if ~file{output} contains exactly the
+@c same data as ~file{output.good}, the file ~file{output} is
+@c deleted.  Likewise ~file{stdouterr} is removed if it exactly
+@c matches a file ~file{stdouterr.good}.  If file
+@c ~file{status.good} is present, containing a decimal number
+@c before a newline, the exit status of ~@code{_AS__} is compared
+@c to this number.  If the status numbers are not equal, a file
+@c ~file{status} is written to the directory, containing the
+@c actual status as a decimal number followed by newline.
+@c
+@c Should any of the ~file{*.good} files fail to match their corresponding
+@c actual files, this is noted by a 1-line message on the screen during
+@c the regression test, and you can use ~@code{find (1)} to find any
+@c files named ~file{status}, ~file {output} or ~file{stdouterr}.
+@c
+
+@node Retargeting
 @chapter Teaching the Assembler about a New Machine
 
 This chapter describes the steps required in order to make the
@@ -6330,7 +6478,7 @@ usually only needed by the machine-independent part of
 @end table
 _fi__(0)
 
-@node Copying, Index, _MACH_DEP__, Top
+@node Copying
 @unnumbered GNU GENERAL PUBLIC LICENSE
 
 @cindex license
@@ -6728,7 +6876,7 @@ consider it more useful to permit linking proprietary applications with the
 library.  If this is what you want to do, use the GNU Library General
 Public License instead of this License.
 
-@node Index,  , Copying, Top
+@node Index
 @unnumbered Index
 
 @printindex cp