Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

beagle basic compiler, fastmath, FPE

136 views
Skip to first unread message

aiia...@gmail.com

unread,
Jul 30, 2012, 1:57:39 AM7/30/12
to
http://lostclassics.apple2.info/downloads/

I didn't know the software made it as far as mentioned
in the notes:

Expanded Memory Versions

There are three new system files that allow compiled programs to access expanded memory cards. Use them instead of COMPILER.SYSTEM with the following:

AUX.SLOT.SYSTEM
IIc or 128K IIe, IIGS (only 128K will be accessed), Applied Engineering RamWorks, (all models), Checkmate MultiRam (all models), any other memory card that plugs in the auxiliary slot on a IIe.

APPLEMEM.SYSTEM
Apple Memory Expansion Card (IIe, IIc, or IIGS), Applied Engineering RamFactor, Flipster, most any other memory card that will plug in any slot (1-7).

GS.SYSTEM
IIGS


To use one of these expanded memory system files, transfer it to another disk along with the file PRODOS. Then boot that disk. The file you want installed during bootup (COMPILER.SYSTEM, AUX.SLOT.SYSTEM, APPLEMEM.SYSTEM, or GS.SYSTEM) must be the first type-SYS file whose name ends in ".SYSTEM" on the disk.

AUX.SLOT.SYSTEM does not use about 28% of the memory available. The other two memory expanders can use all available memory.

The STORE and RESTORE commands will not work with the expanded memory versions.

IMPORTANT! When you install APPLEMEM.SYSTEM or AUX.SLOT.SYSTEM, anything stored in a RAM disk on that card will be WIPED OUT. Be sure all of your files are copied to a real disk first. GS.SYSTEM does not wipe out the GS Ram disk, /RAM5.


AUX.SLOT.SYSTEM can be used with a RAM disk if you do the following:

1. With BASIC.SYSTEM installed (not one of the Compiler's SYSTEM programs), run the CONFIGURE.BANKS program and specify the minimum and maximum memory banks that will be used by the compiler. Press <RETURN> to save a reconfigured version of AUX.SLOT.SYSTEM. Be sure the range you have selected does not overlap the memory that will be used by your RAM disk.

2. Use the partition program that came with your RAM disk to limit the memory your RAM disk uses. Be sure this memory does not overlap the memory used by the compiler.

Most RAM disks don't use bank 0. You can skip step 2 by configuring the compiler to use only bank 0 (in step 1, set both minimum and maximum to 0).


With the expanded memory versions installed, arrays can be dimensioned to the following maximum sizes:

Array Type AUX.SLOT.SYSTEM GS.SYSTEM or APPLEMEM.SYSTEM
---------- --------------- ----------------------------
Real 9419 13106
Integer (%) 23550 32766
String ($) 15699 21844

Your compiled programs may run slightly slower with the expanded memory versions. The difference in speed will depend mainly upon how much string manipulation your program does.


Floating Point Card Support

There are two files that allow compiled programs to access floating point accelerator cards:

FPE
Use with Innovative Systems' Floating Point Engine card.

FASTMATH
Use with Applied Engineering's FastMath card.

To use the floating point enhancements, just BRUN the programs from the keyboard or from the very beginning of your program. There is no harm in BRUN'ing the files if the respective cards are not installed. If your program is for sale and will be used by many customers who may or may not have either card, just BRUN both files at the beginning of your program. If either card is installed, the appropriate enhancements will be made. If both cards are installed, the last one that is BRUN will be the effective one.


On a IIGS, it is not necessary to set the control panel to "Your Card" for the slot containing the floating point card.


These patches will only affect the speed of your program if it does a lot of floating point math:

Uses numbers with decimals (3.14159, 107.67, 2.1, etc)
Uses numbers > 32767 or < -32768
Uses SQR, SIN, COS, TAN, ATN, LOG, EXP, or ^.


Most programs will not notice any measurable speed improvements. Those that do a lot of floating point math will have a tremendous increase in speed as illustrated by the following two benchmark programs--one a hires plotting program using a lot of transcendental functions, and the other the Savage benchmark repeated 2000 times. Times are in seconds followed by a ratio in parenthesis.

Mode Hires Plot Savage
---- ---------- ------
AppleSoft BASIC 21.1 ( 1.0) 140 ( 1.0)
Compiled 15.8 ( 1.3) 138 ( 1.01)
Compiled with FastMath 7.1 ( 3.0) 36.3 ( 3.9)
Compiled with F.P.E. 2.0 (10.6) 4.8 (29.2)



End of Notes

Michael J. Mahon

unread,
Jul 30, 2012, 11:33:46 AM7/30/12
to
Many thanks! I'll give these a try!

-michael - NadaNet 3.1 and AppleCrate II: http://home.comcast.net/~mjmahon

aiia...@gmail.com

unread,
Jul 30, 2012, 11:59:09 AM7/30/12
to
On Monday, July 30, 2012 8:33:46 AM UTC-7, Michael J. Mahon wrote:
> <rich> wrote:
>
> > http://lostclassics.apple2.info/downloads/
>
> >
>
> > I didn't know the software made it as far as mentioned
>
> > in the notes:
>
> > Expanded Memory Versions
>
> > There are two files that allow compiled programs to access floating point
>
> > accelerator cards:
>
> Many thanks! I'll give these a try!
>


You are the first person who came to mind when I saw the notes :-)


Rich

aiia...@gmail.com

unread,
Jul 30, 2012, 12:01:06 PM7/30/12
to
On Sunday, July 29, 2012 10:57:39 PM UTC-7, (unknown) wrote:
> http://lostclassics.apple2.info/downloads/
>
>


Can anyone figure out which version of Prodos and Basic.system to use with the compiler?

Rich

Michael J. Mahon

unread,
Jul 30, 2012, 1:33:10 PM7/30/12
to
I'd be surprised if it mattered, since this software has no need for an
undocumented interface with either.

Hugh Hood

unread,
Jul 31, 2012, 12:36:03 AM7/31/12
to
in article 7ee55ec2-6a9a-4950...@googlegroups.com,
aiia...@gmail.com at aiia...@gmail.com wrote on 7/30/12 11:01 AM:
Rich,

Funny you should ask ...

There is a quirk that appears when the file COMPILER is started from
versions of BASIC.SYSTEM _later_ than version 1.1. (Version 1.1 is on the
Beagle Disk)

IIRC, the quirk results in receiving File Type Error messages when
attempting to compile.

Anyway, I use the Beagle Compiler on a relatively large multiple module
accounting system I have. Every few years or so, I make some change to the
BASIC code and have to re-compile, and the doggone 'quirk' hits me in the
face.

So, about 5 years ago I made the following 'NOTES' file to myself to keep me
straight in an attempt to avoid it.

Frankly, these NOTES could be more clear (I wrote them for an audience of
one), but I'll pass them on in hopes of helping others who encounter the
same thing.

In short, to avoid problems, use method #1 below, and then you don't have to
worry about versions of BASIC.SYSTEM. Method #2 below, probably has some
files I created myself, and I just can't remember exactly what I did. Ever
had that happen?

The ProDOS version used doesn't appear to be important, BTW.





Hugh Hood


P.S. While we're discussing the Beagle Compiler's expanded memory versions,
note that there is an 'issue' with the GS.SYSTEM expanded memory version
when used under a ProDOS 8-booted ROM 3 GS.

On a ROM 3 GS, under GS.SYSTEM on ProDOS 8, upon quitting a compiled
program, the memory blocks and ID assigned by the GS memory manager are not
fully 'disposed' of. Subsequent starts of compiled programs then yield a
smaller available memory, particularly on the 1 MB Rom 3 IIGS. You can
confirm this behavior for yourself by using the 'Memory Peeker' CDA and
examining the Free and Used memory blocks listed.

The more times you launch GS.SYSTEM, the smaller your Free Memory becomes.

Strangely, I do _not_ think this is an Beagle Compiler bug, because the
GS.SYSTEM quit routine seems to be coded in the manner required by the
Toolbox Reference, except for neglecting to delete the ID#. Rather, there
seems to be a quirk (bug?) in the ROM3 (maybe ROM1?) Memory Manager Tool
Set. For some reason, the DisposeAll tool does not seem to work if the
assigned memory has an aux ID of 1 (the second digit in (11xx), _unless_ an
aux ID of 0 (wildcard) is used in the DisposeAll call. Oddly, if the
assigned memory has an aux ID of 0, even an aux ID of 0 used in the
DisposeAll call will not work.

This same behavior occurs with AppleWorks 5.1 on a ROM 3 GS booted into
ProDOS 8, probably because it shares some of the same routines for using GS
memory as the Beagle Compiler does. (I think Alan Bird wrote those
AppleWorks routines, as well as the Beagle Compiler, BTW).

Years ago, I came up with an AppleWorks patch to correct this 'issue', and
uploaded it to most of the online services. It is called 'FRESH.IT.PATCH'. I
included some more explanatory material with it (if you're into that sort of
tedium).

I had planned to do the same patch for the Beagle Compiler's GS.SYSTEM, but
never got around to it.

Because of this, I just use the AUXSLOT.SYSTEM expanded memory version on my
compiled programs with my ROM 3 IIGS's booted into ProDOS 8. The extra 48K
of memory offered by AUXSLOT.SYSTEM for variables/arrays comes in handy, and
is more than sufficient for my needs.

Due to insufficient testing, I really can't say if this affects ROM 1
machines, or whether booting in GS/OS (to load the latest patched Tools)
eliminates the issue.


----------------------- START NOTES -------------------------------

Notes on Using Beagle Compiler without receiving File Type Errors.

May 31, 2007

Either:

1. From ProDOS selector (NOT from BASIC.SYSTEM) launch file
"COMPILER.SYSTEM". {Alternatively, launch file "AUXSLOT.SYSTEM" for more
memory space}. This runs the compiled file "STARTUP".

Then, when Menu appears, select to install COMPILER.

Then, quit program. You may then set directory via the PREFIX command and
then compile your file(s).

The command is: COMPILE OLDFILE, NEWFILE.


Or,


2. From ProDOS selector launch file "BASIC1.1.SYSTEM" in the
BEAGLE.COMPILER directory. This is version 1.1 of BASIC.SYSTEM that has been
modified to launch the file "STARTUP.BASIC". [NOTE: Newer versions of
BASIC.SYSTEM do NOT work with the Beagle Compiler.]

{Alternatively, this version of BASIC.SYSTEM (1.1) can be launched with a
dummy STARTUP.BASIC program. When the ']' prompt appears, start the file
'COMPILER' by typing '-COMPILER'.}

Then, when the Menu appears, select to install COMPILER.

Then, quit program. You may then set directory via the PREFIX command and
then compile your file(s).

The command is: COMPILE OLDFILE, NEWFILE.


----------------------- END NOTES -------------------------------

ke...@hackaday.com

unread,
Aug 1, 2012, 12:15:03 AM8/1/12
to
On Monday, July 30, 2012 12:57:39 AM UTC-5, (unknown) wrote:
> End of Notes

not to be "that guy" but all of these notes are in the manual which is in pdf at

http://beagle.applearchives.com/the_software/vintage_beagle_bros_softwar/the_beagle_compiler.html

ke...@hackaday.com

unread,
Aug 1, 2012, 12:22:46 AM8/1/12
to
my bad its not in the manual, but its pretty obvious to anyone who looks at the disk, I have never used BC before a couple years ago and my first project used the fast hgr and memory driver (an I am pretty ignorant about apple II programing so ...)
0 new messages