Restored F80 compiler code for CP/M

At one time, W. Cirsovius disassembled Microsoft assembler M80 (MACRO-80 3.44 09-Dec-81), MS-Linker L80 and several other programs and posted the resulting code on his website. Unfortunately, the Microsoft F80 compiler was not included in this list, and in 2014 I made an attempt to fill this gap. I wanted to restore the code of…

43
Restored F80 compiler code for CP/M

Here’s one astonishing add-on.

At one time, W. Cirsovius disassembled Microsoft assembler M80 (MACRO-80 3.44 09-Dec-81), MS-Linker L80 and several other various programs and posted the resulting code on his web situation. Sadly, the Microsoft F80 compiler became once now no longer included on this listing, and in 2014 I made an strive to like this gap. I desired to revive the code of regarded as one of many most fresh compilers. For this cause, I chose FORTRAN-80 Ver. 3.4 Copyright 1978, 79, 80 (C) By Microsoft Created: 19-Feb-85. Besides to, here is regarded as one of many compilers that in the listing produces code in Z80 assembler. At that 2d, I did now no longer yet know that this bellow compiler had a bug.

The Fortran-80 compiler contains eight modules. Module boundaries were effective by comparing the disassembled code of several F80.COM executables. The modules differed a piece and were positioned in various places. It’s miles presumably that every of the modules became once positioned in a particular person file.

To flee up the compiler, a ready-made symbol desk image with Intrinsic choices FORTRAN language is copied from the data situation to upper memory. Then the wanted variables are initialized, the compiler parameters are learn, and it proceeds to the strategy of processing the source code.
The compiler is single-pass and for this cause gifts its like guidelines for the device of statements.

The file f80_ram.pdf reveals the memory allocation in some unspecified time in the future of compiler operation and the construction of the emblem desk.

The disassembled source program is partly commented and resides in a single f8.mac file. On the opposite hand, this does now no longer discontinue it from being assembled into an object file utilizing the repeat

m80 f8,f8=f8

after which non-public

l80 f8,f8/n/e

The resulting f8.COM executable is fully a lot like the normal F80.COM

Per chance, in step with this program, somebody will bring together and repair the error of this compiler. I withhold the disassembled program for later enhancements.

I settle that for CP/M the FORTRAN compiler is 80 Ver. 3.4 Copyright 1978, 79, 80 (C) Microsoft Created: 19-Feb-85 became once remade from the executable code of the FORTRAN-80 Ver compiler. 3.4 Copyright 1978, 79, 80 (C) Microsoft Created: 01-Dec-80 for TRS-80.

It’s miles presumably that the normal compiler for TRS-80 became once inspiring straight by Microsoft. Disassembly of the source file F80.CMD showed the presence in the executable file of a problem of traps positioned by the authors of the program to complicate its disassembly. Fragments of superfluous code were excluded from the program modified for CP/M and a replacement of various actions were performed to beat the security against disassembly. A mistake became once made in some situation.

Who performed this transformation will live unknown.

On the opposite hand, I disassembled the compiler F80 Ver. 3.44 for CP/M. The file with the program has the name F.MAC. Compiling this file ends in the creation of an executable file fully a lot like the normal program.

Andrey Nikitin

Read More
Portion this on knowasiak.com to discuss about with of us on this matterJoin on Knowasiak.com now in the event you are now no longer registered yet.

Vanic
WRITTEN BY

Vanic

“Simplicity, patience, compassion.
These three are your greatest treasures.
Simple in actions and thoughts, you return to the source of being.
Patient with both friends and enemies,
you accord with the way things are.
Compassionate toward yourself,
you reconcile all beings in the world.”
― Lao Tzu, Tao Te ChingBio: About: