[mod.amiga] Absoft Fortran

everhart%arisia@RCA.COM (08/14/86)

I've been working with Absoft's Fortran compiler on my Amiga for about
1.5 weeks now and am porting some code from VAX and MSDOS.

	The initial program will be the VAX flavor of Desktop
Calendar (to learn the compiler's idiosyncracies). Then the
AnalytiCalc spreadsheet and then the RIM-5 DBMS. 

	The DTC port is coming well and I've been pleasantly
surprised by the power of the Absoft compiler. Variable names can be
long (BUT subroutine names have to be unique to 6 characters; that
one bit me once). The INTEGER*1 data type works just like the VAX BYTE
data type and on the whole the compiler runs predictably and well. 

	I've noticed the Absoft compiler is picky about statement
ordering and can occasionally suffer silent errors on multi-way
EQUIVALENCEs. The moral is that if you must equivalence anything
in COMMON, make sure that an equivalence with the common element
appears first:

	OK:

		Integer*4 i4(4)
		Common/foo/i4
		Integer*2 i2(8)
		Integer*2 Bar
		Equivalence(i4(1),i2(1))
		Equivalence(i2(1),Bar)

	BAD:
		...
		Equivalence(i2(1),Bar)
		Equivalence(i4(1),i2(1))

	If you use a statement like

		Equivalence(i2(1),Bar,i4(1))

you MAY get different addresses and NO error message. It depends
on the context. I tend not to use multiway EQUIVALENCEs so it causes
few problems.

	The debugger did not work well for me (perhaps I had too many
INCLUDEs) but the "D-line" conditional compilation worked well. Compiler
speed compared well with the VAX11/750 for the VAX flavor.

	I also notice that Absoft F77 is more strict about statement
formats (DO i=1,10  fails where DO (i=1,10)  is OK) than Vax Fortran.

	Moving software seems fairly easy, and the VT100 escape sequences
REALLY DO work (as long as you stay away from the special graphics).

	I hope to have DTC generally available within a week or two and
will then work on the spreadsheet and DBMS. These will probably be treated
as "shareware" so the world will have the tools. RIM was used as the
basis for the Rbase products but my version is public domain (the IBM PC
version sources are distributed with the .EXE and I expect to do the same
for the Amiga version -- about 35K lines of code.

	I've also been hacking over DECUS C DIFF to move to Lattice;
lots of errors and incompatibilities, most of which I've fixed.
I was puzzled about having to explicitly declare fopen, malloc and
one or two more, but it's probably just my lack of experience in C.

	Anyone who wants the current state of the source can notify
me.  It should become a good intelligent compare utility.

	Glenn Everhart
CSnet: Everhart%Arisia@RCA.COM
Phone: 609 338 6022 work  609 261 3709 home

P.S. - I hope nobody is still using Ed where they could be using Microemacs;
there's just no comparison!