

        ASxxxx Cross Assemblers, Version 4.10, January 2006 

        Submitted by Alan R.  Baldwin, 
        Kent State University, Kent, Ohio 

        Operating System:  Linux, Windows, MS-DOS 
        or other supporting ANSI C.  

        Source Langauge:  C 

        Abstract:  

           The  ASxxxx  assemblers are a series of microprocessor assem-
        blers written in the C programming  language.   This  collection
        contains  cross  assemblers  for the 1802, S2650, MPS430, 61860,
        6500,  6800(6802/6808),  6801(hd6303),  6804,  6805,  68HC(S)08,
        6809,  68HC11,  68HC(S)12,  68HC16,  740, 8051, 8085(8080), AVR,
        DS8xCxxx, ez80, F2MC8L/FX,  GameBoy(Z80),  H8/3xx,  PIC,  Rabbit
        2000/3000,  z8,  and  z80(hd64180) series microprocessors.  Each
        assembler has a device specific  section  which  includes:   (1)
        device  description, byte order, and file extension information,
        (2) a table of assembler general directives, special directives,
        assembler  mnemonics and associated operation codes, (3) machine
        specific code for processing the  device  mnemonics,  addressing
        modes, and special directives.  

           The assemblers have a common device independent section which
        handles the details of file input/output, symbol  table  genera-
        tion,  program/data  areas,  expression  analysis, and assembler
        directive processing.  

           The  assemblers  provide  the following features:  (1) alpha-
        betized, formatted symbol table listings, (2) relocatable object
        modules, (3) global symbols for linking object modules, (4) con-
        ditional assembly directives, (5) reusable  local  symbols,  and
        (6) include-file processing.  

           The  companion program ASLINK is a relocating linker perform-
        ing the following functions:  (1) bind multiple  object  modules
        into  a  single  memory  image,  (2) resolve inter-module symbol
        references,  (3)  resolve  undefined  symbols   from   specified
        librarys of object modules, (4) process absolute, relative, con-
        catenated, and overlay attributes in data and program  sections,
        (5)  perform  byte and word program-counter relative (pc or pcr)
        addressing calculations, (6) define absolute  symbol  values  at
        link  time, (7) define absolute area base address values at link
        time, (8) produce an Intel Hex  record,  Motorola  S  record  or
        Tandy  CoCo  Disk  Basic  output  file, (9) produce a map of the
        linked memory image, and (10) update the ASxxxx assembler  list-
        ing files with the absolute linked addresses and data.  

           The  assemblers  and  linker  have  been  tested using Linux,
        DJGPP, Cygwin, Symantec C/C++ V7.2,  Borland  Turbo C++ 3.0  and
        VC6 with MS-DOS/Windows 3.x/9x/NT/2000/XP.  Complete source code
        and documentation for the assemblers and linker is included with
        the  distribution.   Additionally,  test code for each assembler
        and several microprocessor monitors (  ASSIST05  for  the  6805,
        MONDEB  and ASSIST09 for the 6809, and BUFFALO 2.5 for the 6811)
        are included as working examples of use of these assemblers.  
