OSS Pascal Development Notes [message #283050] |
Sun, 16 March 1986 07:35 |
|
Originally posted by: beatyr
<pre>
Article-I.D.: pur-ee.3901
Posted: Sun Mar 16 07:35:24 1986
Date-Received: Mon, 17-Mar-86 04:24:15 EST
Reply-To: beatyr@pur-ee.UUCP (Robert Beaty)
Organization: Electrical Engineering Department , Purdue University
Lines: 79
In article <2018@uwmacc.UUCP> you write:
> *** REPLACE THIS LINE WITH YOUR MUSHROOMS ***
> Well, I don't (yet!) have my ST, but I want to be able to plug it in and
> start programming immediately (1/2 :-), so I'm going to be ordering software
> soon. Here's a very short summary of what I've seen here so far on the
> subject of languages:
>
> TDI Modula-2: Exciting, but has a bizarre object file format
>
> OSS Personal Pascal: Great! Impressive! Nifty!
>
I don't want anyone to get the wrong impression; but I have been in the
process of writing a multi-screen Tek 4010 emulator for the ST in OSS.
Generaly, I am pleased with it but I have a few critical comments of the
language, maybe someone can tell me (us) why these limits exist :
1) Arrays are limited to occupy less than 32K. Why is this? I thought
that the 68000 had a continuous address space? I could very well be
totally off base; but this is a minor problem as I can save the Tek
screens in different arrays rather than the more elegent scheme of a
multi-dimensional array.
2) Procedures ( and I assume functions as well ) are limited to 32K.
Again, Why? This is a problem for me only when a single large
procedure makes logical sense, and I have taken to writing in smaller
chunks to get around this.
3) You can ( on a 512K machine ) compile up to a limit where the compiler
generates an error something like 'Stack run into Heap', though it
is documented in the manual this still puts an upper limit on the size
of compiled modules to be linked later. This is OSS's suggestion:
Chop your big program into smaller pieces and then compile seperately
and link back together. I have personally found this limit on compile
size to be about 1200 lines.
4) This is coupled to the previous one - The Linker will only allow you
to link three user *.o files together. This with the limit above
sets a limit to the size of program you can write on a 512K TOS on
disk (standard) machine. This limit I have found to be *about* 3600
lines. This limit I have hit and now have to put TOS in ROM and get
a 1Meg upgrade to finish the programming. I don't expect the terminal
emulator to need more than the standard machine to run; but to get
the program developed it takes quite a bit more.
5) This final item concerns an out and out error in the compiler and/or
manual. The code is as follows:
var
file_name : Path_Name; { this is the file name I will use }
Data_File : File of integer; { This is the file type }
i : integer;
...
begin
...
file_name:='stuff.dat';
Reset( Data_File, file_name ); { ready the file for reading }
read( Data_File, i ); { read an integer }
^
'Error in Standard procedure parameter'
The error is generated by the compiler. The manual shows this as a
valid use of the procedures, but it will not compile. I have found
( also from the manual ) that Get() will do the job; but it is not
a very 'clean' solution to the problem. The error also occurs when
you use Rewrite() and write() together.
In general, for every problem there is a workable solution, but it
would have been nice to not have to fight the compiler/linker to get a
big project through.
To be fair, I still consider the OSS system to be a good buy, and a good
system to develop in; but I don't want others to get stumped or surprised
by finding what I have found.
Please don't flame, I am just trying to help out with some lessons I
have found out at the school of hard knocks.
Bob
</pre>
|
|
|