Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!linus!philabs!seismo!hao!hplabs!sri-unix!MADLER@mit-ml
From: MADLER%mit-ml@sri-unix.UUCP
Newsgroups: net.micro.cpm
Subject: need information on Aztec C
Message-ID: <2435@sri-arpa.UUCP>
Date: Wed, 22-Jun-83 20:56:00 EDT
Article-I.D.: sri-arpa.2435
Posted: Wed Jun 22 20:56:00 1983
Date-Received: Sat, 25-Jun-83 00:00:29 EDT
Lines: 42

From:  Michael C. Adler 

Aztec C provides an excellent interface to both BIOS/BDOS CP/M calls and
assembly programming.  The following calls are defined (taken from release
1.05 manual):

bdos (bc,de)
int bd,de;
	Calls the bdos with register pair BC set to bc and DE set to de.
	The value returned in HL is the return value.

bios(n,bc,de)
int n,bc,de;
	Calls the n'th entry into the bios with BC set to bc and DE set
	to de.  The returned value is the accumulator contents on return
	from the CP/M BIOS.  N equal to zero is a warm boot.

bioshl(n,bc,de)
int n,bc,de;
	Calls the n'th entry into the bios with BC set to bc and DE set to
	de.  The returned value is the HL register contents on return from
	the CP/M BIOS.  N equal to zero is a warm boot.

CPM(bc,de)
int bc,de;
	Calls the bdos with register pair BC set to bc and DE set to de.
	The value returned in HL is the return value.

-------------------

Aztec C creates intermediate assembly language code.  An intel assembler
(subset of M80) is provided, although it is possible to use M80/L80.  So,
interfacing assembly code is rather trivial.  Note:  Aztec C DOES NOT create
modules that can be bound immediately.  It is only capable of generating
assembly code.  Hence it can be rather slow to compile (the C compiler alone
is significantly slower than BDS C).

You should also note that it supports a Z80 mode that allows register
variables (8080 version syntax permits register vars. but stores them
in memory).  In tight loops you will notice a BIG difference.  In 8080
mode, execution speed seems to be similar to BDS C.
-Michael