Intel 8085 tools

133 views
Skip to first unread message

Mark Ogden

unread,
Nov 13, 2023, 1:07:11 PM11/13/23
to intel-devsys
All
I have just posted major updates to my C ports of the Intel toolchain to https://github.com/ogdenpm/c-ports
The new versions support native windows/Linux filenames both on the command line and in the applications e.g. includes.
ASM80 has also been extended to support 31 character names and allows $ visual separators as per PL/M.
There are several other changes/enhancements. See the doc/c-ports(.mf,.pdf) file.
If you find any bugs please let me know so that I can fix them.

Additionally, I have posted an update to my IntelTools decompilation files in that the new c-ports tools are now used when possible, rather than using the emulator.

Note several of the tools support the following single options
-v show the version
-V show more version information and a support email
-h show usage on the application.

regards
Mark

Sid Jones

unread,
Nov 13, 2023, 3:42:37 PM11/13/23
to intel-...@googlegroups.com
Mr Ogden!
 
Would I be correct in my thinking that PL/M 80 didn’t do much in the way of optimising?
 
So original PL/M 80 –> object module should be fairly straightforward?
 
Back in the day (circa 1989) I did a fair amount of reverse engineering the PL/M 80 floating point math library functions to ‘borrow’ them for a Z80 project.
 
And the inference then is object module code (well, assembler source) back to PL/M 80 is not too much of a dogged/thankless task for the committed coder?
 
Regards
 
Sid
--
You received this message because you are subscribed to the Google Groups "intel-devsys" group.
To unsubscribe from this group and stop receiving emails from it, send an email to intel-devsys...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/intel-devsys/8417f371-e3d8-4edf-bc7e-0be14adb33cen%40googlegroups.com.

mark.p...@btinternet.com

unread,
Nov 13, 2023, 4:42:49 PM11/13/23
to intel-...@googlegroups.com
Sid
The compiler does some optimisation especially around memory access.
It also does intermediate calculations in 8bit if both lhs and rhs are 8bit which can lead to different calculations cf. C compilers. This together with most variables not on the stack the code generated was usually better than contemporary compilers. 

Having decompiled several applications back to pl/m I can usually spot likely code. The much bigger problem however is identifying structures, based variables and arrays from the code. This is in general non trivial. 

FYI. The intel floating point library has a bug which would suggest someone may have assumed C logic for a sequence of logical conditions cf. pl/m logic. 
Mark

Regards
Mark Ogden

From: intel-...@googlegroups.com <intel-...@googlegroups.com> on behalf of Sid Jones <jonest...@logicmagic.co.uk>
Sent: Monday, November 13, 2023 8:42:31 PM
To: intel-...@googlegroups.com <intel-...@googlegroups.com>
Subject: Re: intel-devsys Intel 8085 tools
 

Sid Jones

unread,
Nov 14, 2023, 4:53:44 AM11/14/23
to intel-...@googlegroups.com
1/. Hah! We smile in the direction of non-trivial...
 
(Years of sorting out cr*p code written by people not invested in proper code writing...)
 
2/. Hmm. A bug in the FP library you say...
 
I might have to recall a number of 1980’s projects then!
 
I have had experience with a magic processor board in the early 2000’s which had a double precision FP library that gave funny results.
 
Checking the assembler behind it showed that the function pushed several registers onto the stack, did the sums and loaded a 64 bit result into a pair of registers, then popped a value from the stack into the lower 32 bits...
 
Result? More like 3-4 decimal digits of precision rather than the 15 claimed!
 
Quote from the supplier “well, a number of financial institutions use our board and they’ve not complained...”
 
2008 anybody?
 
Regards
 
Sid

mark.p...@btinternet.com

unread,
Nov 14, 2023, 5:06:57 AM11/14/23
to intel-...@googlegroups.com

Sid

Assuming we are talking about the same floating point code, specifically fpal 2.1.

The bug related to tests for +/- inf, indeterminate and -0 in the FQFB2D procedure.

 

I have a  partially commended disassembly /  decompilation on my GitHub site https://github.com/ogdenpm/intel80tools under the src/fpal_2.1 directory.

 

 

Mark

Sid Jones

unread,
Nov 14, 2023, 5:53:27 AM11/14/23
to intel-...@googlegroups.com
Ah!
 
I snaffled a number of add/subtract/multiply/divide routines.
 
Didn’t need any fancy tests for big/small numbers.
 
I can breathe a sigh of relief that an old project won’t come back to haunt me.
 
However a snappy daylight saving time routine I wrote back in 1998 for electricity meter use still gets dusted off for a check every 5 years or so.
 
In other news I’m keeping fingers crossed for access to an original tape of the intellec 8 mod 80 RAM based native assembler... There has been a little progress!
 
Regards
 
Sid

mark.p...@btinternet.com

unread,
Nov 14, 2023, 6:22:39 AM11/14/23
to intel-...@googlegroups.com

Sid

If it helps, the intel 8080 rom based editor assembler v1.1 is available in decompiled form on

https://github.com/ogdenpm/intel80tools

it is under src/edasm_1.1

It would be simple to relocate to a different location for RAM use

mark.p...@btinternet.com

unread,
Nov 14, 2023, 6:23:53 AM11/14/23
to intel-...@googlegroups.com

Sid

Correction, v1.1 is the 8085 version, i.e. added RIM and SIM

Mark

Herbert Johnson

unread,
Nov 14, 2023, 10:23:39 PM11/14/23
to intel-...@googlegroups.com, Mark Ogden
On 11/13/2023 1:07 PM, Mark Ogden wrote:
> All
> I have just posted major updates to my C ports of the Intel toolchain
> to https://github.com/ogdenpm/c-ports

Mark, outstanding and admirable work, and now you've adjusted it
further. For those who don't know, these are various Intel ISIS 8080
tools, distributed in the era by Intel as executables, compiled by Intel
from PL/M-80 sources. Mark reconstructed the PL/M source by disassembly
and comparison to other PL/M sources and presumably some actual PL/M
sources. Mark explains all.

As it happens, I was looking recently, at another set of PL/M-80
sources, for a program not from Intel, but initially as a PhD thesis,
and later a Digital Research Inc (DRI) software product - BASIC-E.

Gordon Eubanks produced this as PhD candidate under Gary Kildall; thus
the source as a public thesis became available. The PL/M was written to
run under Intel's ISIS II OS; CP/M either was yet to be completed, or
barely usable. Later, after DRI was formed, a proprietary product
BASIC-C was produced.

Web search will find this information. As far as sources in 2023, here's
what I found. One set, apparently early code, still for ISIS; and other
sets as modified for CP/M-80, part of the CP/M User Group disk
distributions.

The PhD thesis is likely around in some PDF somewhere.

Mark, if you have an interest in another set of PL/M 80 codes, here's
two sets of them.

1) BASIC-E PL/M code, apparently compiled under ISIS

https://www.autometer.de/unix4fun/z80pack/ftp/basice.tgz

Harddisk image with Gordon Eubanks BASIC-E compiler sources, build
scripts and BASIC example programs. Requires ISIS tools to build from
sources, precompiled executables included. Of course, "Z80PACK" is a
prominent 8080 and Z80 emulator which supports emulated ISIS, IMSAI, and
MITS Altair disk hardware and software environments.

contains "hd-basice.dsk"
4.2Mb disk image file. Looks like CP/M file system.
only has 930K or so of actual files, the rest empty!

I did not install Z80pack to access the CP/M hard-disk image files. I
used a GUI-enhanced version of a CP/M set of utilities called
"cpmtools", to extract those files (not entirely successfully). I found
that cpmtools/GUI version while looking for tools to support a Windows
Z80 and CP/M emulator called "cpmbox".

The following is rather roundabout and so I'll just list links, the
sites will explain.

https://www.heinpragt-software.com/software_development/cpmbox.html

The emulator writer found a version of cpmtools with a Windows GUI.
Apparently it uses cpmtools from 2019.
https://www.heinpragt.com/download1/cpmtools.zip

The GUI program directs to support here:
http://star.gmobb.jp/koji/cgi/wiki.cgi?page=CpmtoolsGUI
It appears to have a 2022 version using more recent cpmtools.

a search for cpmtools finds;
http://www.moria.de/~michael/cpmtools/

Again, this is all roundabout. The direct path is to install z80pack and
access the BASIC-E archive on the disk image.


2) BASIC-E code, modified for CP/M

a) http://www.cpm.z80.de/download/basic-e.zip

Contains BASIC-E files, PL/M and ASM sources,
manual in some kind of "runoff" like format.
Looks like thesis file manual, Dec 1976.
executables "run.com", "basic.com"
basic.plm "BASIC-E COMPILER"
- version 1.5 Dec 1976 CP/M V1.4" from Kildall/DRI
baspar.plm -"BASIC-E COMPILER V 2.1"
build.plm "CPM VERSION 1.3" Dec 76
run.plm "CPM VERSION 2.0" may 1977
*.src files are 8080 assembler floating and fixed point files
- also transcendental functions

http://www.z80.eu/downloads/basice.zip
looks like copy of z80.de ZIP file

b) CP/M User Group disks, various archives


http://cpmarchives.classiccmp.org/ftp.php?b=cpm%2FSoftware%2FCPM_DOSGG%2FCPM00

http://cpmarchives.classiccmp.org/cpm/Software/WalnutCD/simtel/cpmug/00readme.txt

Volume 5 - BASIC-E executables only.

VOLUME 29 ASSEMBLER GAMES AND UTILITIES AND CP/M BASIC-E VERSION 1.4
FLOATING POINT SOURCE(OBTAIN VOLUME 30 ALSO FOR COMPLETE SET)

VOLUME 30 CP/M BASIC-E VERSION 1.4 PLM SOURCE

So - comparing basice.com files:
from volume 30 of CP/MUG
from ZIP file z80.eu
from ZIP file z80.de

these are the same. BASIC-E for CP/M all the same.

--
Herb Johnson, New Jersey USA
http://www.retrotechnology.com or .net
preserve and restore 1970's personal computing
email: hjohnson @ retrotechnology dot com
or try later at herbjohnson @ comcast dot net

mark.p...@btinternet.com

unread,
Nov 15, 2023, 3:04:57 AM11/15/23
to intel-...@googlegroups.com
Herb
If you look under the cpmsrc directory of the Intel tools repository you will find basic-e. I also included some notes on the challenge to build it to match the binaries. 
In the same directory you will also find digital research lib, link and tex, along with the ml80 high level assembler.
Mark

Regards
Mark

From: intel-...@googlegroups.com <intel-...@googlegroups.com> on behalf of Herbert Johnson <hjoh...@retrotechnology.com>
Sent: Wednesday, November 15, 2023 3:23:28 AM
To: intel-...@googlegroups.com <intel-...@googlegroups.com>; Mark Ogden <ogd...@gmail.com>
Subject: Re: intel-devsys Intel 8085 tools; BASIC-E
 
--
You received this message because you are subscribed to the Google Groups "intel-devsys" group.
To unsubscribe from this group and stop receiving emails from it, send an email to intel-devsys...@googlegroups.com.

Herbert Johnson

unread,
Nov 15, 2023, 11:19:34 AM11/15/23
to intel-...@googlegroups.com
https://github.com/ogdenpm/intel80tools/tree/master/cpmsrc/basice

as you referenced. Thanks for this work, and of course for the other DRI
products for which there's PL/M source.

The source(s) I found, Mark, seem to be a version (at unix4fun,
contained in a hard-disk image file); and a later? variation distributed
by cpmug. The executables are different. I have an impression from
examining the binaries, one variation re-arranged code and data in some
fashion versus the other. By inspection, it appears various addresses
have different high-bytes (pages), but runs of code visually appear
similar. I've not compared the sources.

As you provide basic-e.com and run-23.com, I binary compared basic-e.com
to the cpmug #29/30 basic-3.com - they are the same. Likewise, the two
run.com/run-23.com are the same. I speculate, Mark, you obtained your
basic-e sources and dot-com files from cpmug (or both are from a common
origin).

I don't know the origin of the unix4fun basic-e and its compilation. Udo
Munk is active and well-known, could be asked, or there may be a
discussion trail online. I'm unsure of my "compiled under ISIS"
comments, again I've not run z80pack and the disk-image file which
contains the BASIC-E archive.

regards Herb

On 11/15/2023 3:04 AM, 'mark.p...@btinternet.com' via intel-devsys
wrote:
> Herb
> If you look under the cpmsrc directory of the Intel tools repository you
> will find basic-e. I also included some notes on the challenge to build
> it to match the binaries.
> In the same directory you will also find digital research lib, link and
> tex, along with the ml80 high level assembler.
> Mark
>
> Regards
> Mark
> ------------------------------------------------------------------------
> *From:* intel-...@googlegroups.com <intel-...@googlegroups.com> on
> behalf of Herbert Johnson <hjoh...@retrotechnology.com>

> On 11/13/2023 1:07 PM, Mark Ogden wrote:
>> All
>> I have just posted major updates to my C ports of the Intel toolchain
>> to https://github.com/ogdenpm/c-ports <https://github.com/ogdenpm/c-ports>
>

>
> As it happens, I was looking recently, at another set of PL/M-80
> sources, for a program not from Intel, but initially as a PhD thesis,
> and later a Digital Research Inc (DRI) software product - BASIC-E.
>

>
> 1) BASIC-E PL/M code, apparently compiled under ISIS
>
> https://www.autometer.de/unix4fun/z80pack/ftp/basice.tgz
>
> Harddisk image with Gordon Eubanks BASIC-E compiler sources, build
> scripts and BASIC example programs.
>
> contains "hd-basice.dsk"
> 4.2Mb disk image file. Looks like CP/M file system.
> only has 930K or so of actual files, the rest empty!
> [notes about tools to read the disk-image file]
> Again, this is all roundabout. The direct path is to install z80pack and
> access the BASIC-E archive on the disk image.
>
>
> 2) BASIC-E code, modified for CP/M
>

>
> b) CP/M User Group disks, various archives


http://cpmarchives.classiccmp.org/ftp.php?b=cpm%2FSoftware%2FCPM_DOSGG%2FCPM00%2F29

http://cpmarchives.classiccmp.org/ftp.php?b=cpm%2FSoftware%2FCPM_DOSGG%2FCPM00%2F30

mark.p...@btinternet.com

unread,
Nov 15, 2023, 4:07:38 PM11/15/23
to intel-...@googlegroups.com
Herb
If you read my notes in “Getting to binary” the simplistic approach to rebuild the code will not produce a matching binary. This probably explains the difference with Udo’s binaries. 
Mark

Regards
Mark Ogden

Sent: Wednesday, November 15, 2023 4:19:20 PM
To: intel-...@googlegroups.com <intel-...@googlegroups.com>

Subject: Re: intel-devsys Intel 8085 tools; BASIC-E
--
You received this message because you are subscribed to the Google Groups "intel-devsys" group.
To unsubscribe from this group and stop receiving emails from it, send an email to intel-devsys...@googlegroups.com.

Herbert Johnson

unread,
Nov 15, 2023, 5:39:01 PM11/15/23
to intel-...@googlegroups.com
Yes, I did read through them, and there's other notes. The amount of
detail is exemplary, Mark, more than most provide of their own sources,
much less someone else's. IT's good to preserve use of that early tool.

Your notes describe various optimizations that different PL/M compilers
provide (and your work arounds to produce a matching binary to the
apparent CP/M UG binary). I don't recall if you discussed order of
codes, but it's a circumstance for any (re)compliation.

I didn't inspect the Udo binaries (.com) in detail. My observations were
as I described, comparative inspections of the binaries and eyeball
observations of binary codes. Such observations while crude provide
empirical guidance, a place to start.

i didn't inspect Udo's files in all details, either. My methods of
extracting them did not provide all files cleanly. And of course, I was
brief, hours not years. But I don't believe I saw in Udo's files, much
in the way of guidance about compilation. The PL/M needed to compile,
was not in that hard-drive image, it's in whatever folders or hard-drive
image represent ISIS related code. But again, I did not look
extensively, or install z80pack.

Gee, why didn't I do more work?

It just happens, I looked for and obtained these BASIC-E files, *days*
before you Mark announced your updated PL/M work. Of course your PL/M
work dates years back, and I have pointed to it before (still do) from
my Web site. If I knew then you had basic-e; I forgot that. Finally: My
Web search days ago for "basic-e", Mark, did not find your github site's
results. A search I did moments ago, still does not. But I don't have to
look further.

I'll add later to my Web page, your cpmsrc note. Then searches finding
my page (my own of course find it), will find references about basic-e
and other DRI PL/M products you have on your github pages.

Despite my limitations, I think this is useful dialog. It leaves some
breadcrumbs for subsequent searches. I don't know if there's anything
new in the Udo basic-e archive.

regards Herb



On 11/15/2023 4:07 PM, 'mark.p...@btinternet.com' via intel-devsys
wrote:
> Herb
> If you read my notes in “Getting to binary” the simplistic approach to
> rebuild the code will not produce a matching binary. This probably
> explains the difference with Udo’s binaries.
> Mark
>
> Regards
> Mark Ogden
> ------------------------------------------------------------------------
> *From:* intel-...@googlegroups.com <intel-...@googlegroups.com> on
> behalf of Herbert Johnson <hjoh...@retrotechnology.com>
> *Sent:* Wednesday, November 15, 2023 4:19:20 PM
> *To:* intel-...@googlegroups.com <intel-...@googlegroups.com>
> *Subject:* Re: intel-devsys Intel 8085 tools; BASIC-E
> http://cpmarchives.classiccmp.org/ftp.php?b=cpm%2FSoftware%2FCPM_DOSGG%2FCPM00%2F29 <http://cpmarchives.classiccmp.org/ftp.php?b=cpm%2FSoftware%2FCPM_DOSGG%2FCPM00%2F29>
>
> http://cpmarchives.classiccmp.org/ftp.php?b=cpm%2FSoftware%2FCPM_DOSGG%2FCPM00%2F30 <http://cpmarchives.classiccmp.org/ftp.php?b=cpm%2FSoftware%2FCPM_DOSGG%2FCPM00%2F30>
>
>
> --
> Herb Johnson, New Jersey USA
> http://www.retrotechnology.com <http://www.retrotechnology.com> or .net
> preserve and restore 1970's personal computing
> email: hjohnson @ retrotechnology dot com
> or try later at herbjohnson @ comcast dot net
>
> --
> You received this message because you are subscribed to the Google
> Groups "intel-devsys" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to intel-devsys...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/intel-devsys/90c2992f-f24a-42ea-9726-9ed066de6b25%40retrotechnology.com <https://groups.google.com/d/msgid/intel-devsys/90c2992f-f24a-42ea-9726-9ed066de6b25%40retrotechnology.com>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "intel-devsys" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to intel-devsys...@googlegroups.com
> <mailto:intel-devsys...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/intel-devsys/DU0PR08MB8347B35C9F99565D19F2BDCEFCB1A%40DU0PR08MB8347.eurprd08.prod.outlook.com <https://groups.google.com/d/msgid/intel-devsys/DU0PR08MB8347B35C9F99565D19F2BDCEFCB1A%40DU0PR08MB8347.eurprd08.prod.outlook.com?utm_medium=email&utm_source=footer>.
Reply all
Reply to author
Forward
0 new messages