Copyright (C) 2004-2013 by Anton Treuenfels
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
HXA is designed to be fairly portable between various processors.
This document describes the imaginary "T_XX" family of test processors and the portions of the HXA_T variant of HXA dependent upon them.
HXA_T is the assembler used for all general test and demonstration programs.
HXA for Windows
HXA for MS-DOS
HXA_T accepts a single filename as a command-line argument:
There are no other command-line arguments, options or switches.
In addition to the __HXA__ built-in label defined by all HXA variants, HXA_T defines a variant identifier label:
This label may be used anywhere but is intended mainly for <hxa:IF--DEF|"IFDEF"> conditional blocks.
The "T_XX" family is an imaginary processor series created for the purpose of testing all the components of HXA which do not depend upon any particular processor.
"T_XX" processors currently share only three attributes with real processors:
The "T_xx" family was created in 2004. Although primarily created to test HXA, this variant can also be used to assemble real processor instruction sets implemented as macro include files. Examples of these are found among the general demo programs.
A cpu descriptor is a string with a defined format that specifies processor-specific information such as program counter width and native byte orientation. All supported processors are required to provide one in order that the remainder of HXA "understands" how to deal with them.
In the case of the "T_XX" family there is no distinction between a cpu name and a cpu descriptor . That is, a "T_XX" descriptor is its name. The descriptor is publicly exposed, as oppsed to other processors, which generally hide their descriptors.
Descriptors take the form T_ PC_Width _ Byte_Order[Byte_Size] .
|Name||PC Size||Multi-Octet Order||"Byte" Size|
|T_08_L||8 bits||least significant first||8 bits|
|T_16_L08||16 bits||least significant first||8 bits|
|T_24_M16||24 bits||most significant first||16 bits|
|T_32_M32||32 bits||most significant first||32 bits|
HXA_T simply echoes every string given to it by the "ASSUME" pseudo op.
For testing purposes HXA_T also reports an error for any string which contains the substring reject .