Z80AS succeeds to assemble the CP/M BDOS + BIOS, concatenated in a single file (~ 600 symbols ! ).
Z80AS will assemble any file produced by the HiTech's C compiler, when using the -S command line option.
The object code produced by Z80AS is compatible with HiTech's LINK.
I succcessfuly re-compiled (using the -S compiler command line option) and linked the TE editor sources, using Z80AS instead ZAS, and it works.
Z80AS is compatible with ZAS command line & source syntax.
I consider-it a better assembler, compared to ZAS, not only because it can handle larger files, but also because:
· The undocumented Z80 instructions are supported.
· Supports conditional assembly. Conditionals may be nested up to 8 levels.
· Supports a complete standard macro facility including IRP, IRPC, REPEAT, local variables and EXITM. Nesting of macros is limited only by memory.
Please take look at the manual.
Z80AS is published on GitHub at https://github.com/Laci1953/Z80AS
regards,
Ladislau
[snip]
Z180 and Z280 opcode support would be usefile
I have a request for all of you: Please give me a feedback about Z80AS !
>z80as -j cpmbdosZ80AS Macro-Assembler V4.6
Errors: 0
Jump optimizations done: 248
Finished.
>248 !!!Same kind of results with the CP/M BIOS...
248 !!!Same kind of results with the CP/M BIOS...
PS. The funny thing is that I could not found the "iirc" string in ZAS.COM ... are you sure that "iirc" was mentioned in the ZAS error message?
I use the "original" HiTech C v3.09, without any updates/improvements/etc.The source code you mentioned ( https://github.com/z88dk/z88dk/tree/master/libsrc/_DEVELOPMENT/EXAMPLES/benchmarks/n-body ) does not reach the assembler step, it stops at CGEN.
0:CGEN $CTMP2.$$$ $CTMP1.$$$
NBODY.C:124: Expression too complicated
120 #define NBODIES 5
121 struct planet bodies[NBODIES] = {
122 { /* sun */
123 0, 0, 0, 0, 0, 0, solar_mass
124 },
2. I do not know the format of AM9511 floating numbers, nor have the source code necessary for an "atof" to AM9511 format... Phillip, can you help?
3. The issue of PHASE/DEPHASE: it is implemented in ZSM 4.6 . I dropped-it because ZAS has no such PHASE/DEPHASE.My target was to obtain a ZAS compatible assembler.
Hi Fred, Hi Phillip,I studied Fred's floatcnv.c routines, I see now that the formats are different.
/*--------------------------------------------------------------------------------------------
Am9511 Floating Point Format
Automatic conversion from the Am9511A hardware floating point format and the IEEE-754 single precision floating point format is included. The Am9511A format is used only when loading and unloading the APU. All internal floating point uses IEEE-754 single precision.
The format for floating point values in the Am9511A is given below. The mantissa is expressed as a 24-bit (fractional) value; the exponent is expressed as an unbiased two's complement 7-bit value having the range of -64 to +63. The most significant bit is the sign of the mantissa (0 = Positive, 1 = negative), for a total of 32 bits. The binary point is assumed to be to the left of the most significant mantissa bit (bit 23). All floating point values must be normalised. Bit 23 must always be equal to 1, except for the value zero, which is represented by all zeros.
dehl = seeeeeeee 1mmmmmmm mmmmmmmm mmmmmmmm (s-sign, e-exponent, m-mantissa)
---------------------------------------------------------------------------------------------
HiTech Floating Point Format
; The format of a floating point number is as follows:
;
; ------------
; * sign * 1 bit
; *----------*
; * exponent * 7 bits
; *----------*
; * mantissa * 24 bits, normalized
; ------------
;
; Note that the number is stored with the mantissa in the
; low order bytes, i.e. the sign is the most significant
; bit of the most significant byte.
---------------------------------------------------------------------------------------------*/Is this info correct?I'm asking because it seems to me that the two representations are identical...am I missing something?

--
You received this message because you are subscribed to the Google Groups "RC2014-Z80" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rc2014-z80+...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/rc2014-z80/abd294dd-a524-40ec-b0cd-7a7d0dd65c3an%40googlegroups.com.