A85 8085 cross-assembler


A85 8085 cross-assembler

Last edit Feb 5 2024. Edited by Herb Johnson, (c) Herb Johnson, except for content written by others. Contact Herb at www.retrotechnology.com, an email address is on that page..

Introduction:

This Web page is about my 2013 adaptation and current upkeep and redistribution of a Colley A85 cross-assembler in C to support 8080 and 8085 assembly for various of my vintage computing projects. See my Colley A18 cross-assembler for full details and any questions not answered on this Web page.

My current version of A85 will be at this Web link. The program as compiled by me, runs under Windows (XP, 2000) as an MS-DOS 32-bit executable, which runs under the "DOS box" commmand line. I provide the C sources with my changes marked or noted. There are docs and sample assembly code. The C code can be assembled for other operating systems. There's a DOC file to describe the assembler. Read the rest of this Web page and the doc file for more details. (In Feb 2023 I added a MS-DOS assembled version for 16-bit MS-DOS execution.) Follow the links below to my A18 Web page for discussion of MS-DOS, Windows, and Linux operation of A85.

I restore vintage computers of the 1970's and I support S-100 computers of the 70's and 80's and some other Intel-based systems including this Heath H8 computer - Herb

A85 history

A85, one of a series of 8-bit cross assemblers written in C, was freely distributed by the developer William C Colley III, through the "C Users Group" library of C programs of the 1980's and later. CUG "diskette" 267 has A85 and other assemblers. I (Herb Johnson) obtained that A85 copy in 2013, and adapted the C code to compile under the lcc-win32 Windows/MS-DOS C compiler to produce an MS-DOS command-line 32-bit executable. This (executable) program runs under Windows (Win 2000 and later) as a "command prompt" or "DOS window" program. As other people used my version of A85, some decided to "fork" their own version for idiosyncratic reasons. I point to some of those forks but I am not responsible for them, only *my* distribution.

I contacted the author of A85 when I adapted A18, another of his assemblers. He had no objections to that use of his work. See my A18 Web page for A18, his response, and more information and links to cross-assemblers for other microprocessors which I've also adapted. I've added features to some (not all) of his assemblers. There's also binary and hex tools on that Web page.Please look at the A18 Web page for additional information, tools, possible features. Thank you.

Bugs & fixes, forks, problems with running on Windows computers, more

I have a number of these old MS-DOS cross assemblers on my Web site. Running them on today's Windows computers is challenging for some people. Some want to run them on OS X, Linux. Some may want a feature. I've gathered my general notes on the Web page on the A18 1802 cross assembler. For further background, read that page please.

For those who download and run this program, please advise me of any errors and issues. I make zero guarantees, offer zero warrenties. I am not responsible for any loss, injury or damage to person or property of any sort. Use entirely at your own risk. If you feel the need to copy and redistibute this program, especially the sources: I'd rather you not, that's why it's here. Ask me and I may add features you wish. But if you must fork, to accomodate changes to the C source, or for other reasons, contact me as a courtesy, to inform me of changes which I hope you'll permit me to consider in my distribution. This amounts to my licence. There are many other kinds of licenses but in the end, all I can really do is ask for other people's considerations.

Feb 2024: Added symbol table file, option "s" on command line. Produces alphabetical list of symbols in the form [symbol] EQU [hex value] per line. Hex values are hex values with a leading 0 for values at or above A000H: to avoid a leading alpha. Details in the A85.DOC file.

Jan 2023: Added two features, PRINT and LIST. PRINT "statement" will send the string in quotes to the command line. It's to show progress of the assembler. It doesn't process expressions but it can accept a symbol and print "[symbol] = [value]". LIST ON/OFF, turns on and off the listing file. A convenience to reduce listing size. Details in the A85.DOC file.

Jan 2022: for 8085 instructions with 8-bit operands, sometimes A85 evaluates the operand expression (like "not $03H") into a sign-extended 16 bit value (like 0FFFCH); that produces a "V" error. I fixed an improper evaluation of those values to properly truncate to an 8 bit value (like 0FCH). But if the problem persists, use the LOW unary operator to work around it. As in "low (not $03H)".

Aug 2015: "Your A85 program deletes itself and does nothing!" Well, that's likely an issue with your anti-virus protection. Check this note for specifics. Also read the A18 Web page as noted above.

MS-DOS 16 bit:If requested, I will make small changes to the source, and compile under Borland's MS-DOS based Turbo C, for a 16-bit executable (DOS 5.0 executable). Experience suggests to me, the changes are minimal. Bug me if you want a more-current 16-bit version. Or of course, do it yourself and let me know what you did. If this is confusing information, read my A18 Web page where such things are discussed in more detail. - Herb Johnson

Forks

A "fork" is when a program is replicated and distributed by someone else. Presumably the code is modified or changed. I'll reference such forks as I'm aware of if I choose to. I'm not responsible for any of them.

Feb 2020: The Glitch works established an A85 version on github to support an 8085 kit as a product. Jon Chapman provides a number of vintage-computing new products on his site and elsewhere. Jon added a pseudo-op PRINT [string], which sends a string to the stdout (maybe to the list file) when assembled. I added that feature myself, later.

Aug 2019: Neil Barnes established a version on github to support his reduced-instruction HCTTL implementation of the Intel 8080 processor. (Details of his cics-8-ttl is also on his github site.) Neil did not change the code but restyled it; and added a -c command line option to only accept the cics-8-ttl instructions he'd implemented. Neil asked me for permission to offer a version of A85 in this fashion. We agreed to point to each other's works.

Aug 2019: a CP/M version of A85 has apparently been compiled recently, under Aztec C for CP/M-80, and is in use by someone. While they are known to me, they've not distributed their version. (shrug) I was told, my modified A85 had too many compilation errors for Aztec C. Apparently they obtained their original from the C User Group archives where Colley's assemblers first appeared. Check my A18 Web page for details about the origins of A85, A18 and other William Colley cross-assemblers. As for the Aztec C compiler for the 8080, Web search is your friend.

- Herb Johnson


Contact information:
Herb Johnson
New Jersey, USA
To email @ me, see
see my home Web page.

This page and edited content is copyright Herb Johnson (c) 2024. Copyright of other contents beyond brief quotes, is held by those authors. Contact Herb at www.retrotechnology.com, an email address is available on that page..