[comp.lang.modula2] Oberon-M Q's and A's

erv@everest.TANDEM.COM (E. Videki) (03/23/91)

This is about the Oberon-M(tm) package for the MSDOS
environment.  Here are answers to questions that I've
been repeatedly asked:


Q: Does this use real Intel/MSDOS-like object files?
A: Yes, in fact in a form that I expect is even compatible
   with all older releases.  This causes some non-Intel-based
   linkers (such as one from Borland) to give occasional
   warning messages, but everything works fine even
   under those cases.

Q: What kind of garbage collector do you use?
A: The MSDOS environment (particularly older releases)
   don't work well with programs taking over full 
   storage management -- especially when many and varied
   terminate and stay resident programs are present.
   As with Oberon itself, simplicity is refreshing, so 
   although I once had a garbage collector its use was
   questionable under DOS, and it is not present in this
   package.  You can, of course, do NEW(objectptrs) on
   anything that will fit, but there is no automatic 
   retrieval of storage (until your program ends).  Of
   course you could always write your own storage manager
   (it can be very powerful while still being very
   simple).
   
Q: What about the Oberon System?  
A: As explaned in different words in my earlier posting,
   the Oberon system is an extensible operating
   environment with user interfaces and automatic
   storage management. MSDOS likes to own these things
   all by itself mostly.  My compiler
   and package is best thought of as a way to write
   programs using the advanced and elegant features of
   Oberon in the popular MSDOS world.

Q: What's the product's official name?
A: It is called Oberon-M(tm), and I hold the trademark
   rights as well as copyrights to it.  Further, it
   is my sole intellectual property.  It is being
   released in the form of license-to-use.
   
Q: What about other legal requirements, etc ?
A: The package itself specifies these, but a summary of
   the details are:
   	1) I retain full copyright of this package, 
   	   especially the compiler and the implementation
   	   approach.
   	2) Use of the package is by license, at the moment
   	   with fee waved. The user does not own the
   	   package, only has rights to use it.
   	3) The user may not redistribute the package or
   	   the compiler or the associated tools to other
   	   users, in any way.  This means I don't want
   	   it given out by third parties, and of course
   	   never sold by them, nor represented as being
   	   their property.  Network distribution is
   	   an exception to the prohibition of
   	   multi-level distribution.
   	4) Users may write programs, use the distributed
   	   library modules with their programs, and 
   	   even modify for their own use the library
   	   modules (but not the compiler).  Such user
   	   programs may be distributed without fee or
   	   royalties to me.  
   	5) My copyright notices may never be removed from
   	   the package contents itself.
   	6) No warrantees or guarantees are expressed or
   	   implied.  Use of the package in any and all
   	   ways is entirely the user's responsibility
   	   and risk.
   	   
Q: How long will use of this be "no charge", ie: the
   license fee is waved?
A: On this release, no specific period has been decided
   upon.
   
Q: What are the specific, technical things the compiler
   does not do?
A: Here are the things that the compiler does NOT do now,
   or could be viewed by some as being deviations from 
   the Oberon language report by Niklaus Wirth:
	1) No floating point support in this release.
	2) 8088 and 8086 (ie: the oldest processors) do 
	   not have Enter and Leave instructions which are
	   generated by the compiler.  Thus, only PCs
	   with 80x86 (where x >= 1) processors can
	   use the produced code.  The compiler itself will
	   run on an older machine, though.
	3) The produced code has not been tested under all
	   versions of MSDOS that exist in the world, but
	   I anticipate no problems.  Some of the library
	   modules may have differences in internal
	   calls for very-odd MSDOS flavors; source for
	   these are supplied so you may make modifications
	   if you are running one of these rare DOS systems.
	4) The ETH Zurich Oberon System permits "code
	   procedures" identified by a minus sign in the
	   procedure header.  This is non-standard, very
	   machine dependent, and not allowed on my compiler.
	   However, module SYSTEM exports a predefined
	   CODE procedure which takes bytes to insert 
	   in the instruction stream.
	5) You MUST use the compiler hint "*" on a procedure
	   definition if that procedure is going to be 
	   assigned to a procedural-typed variable (so
	   that 80x86 long-calls will be generated).  
	   This looks like this, and is part of the
	   Oberon language:
	   	PROCEDURE * MyHandler(....
	   Trying to assign a procedure without the "*"
	   indicator results in a type incompatibility
	   error at compile time. Note that this is
	   different than the export mark "*" which
	   follows the procedure name.
        6) Due to the irregularities of the 80x86
           architecture, code generation for it is 
           ponderous. In my experience
           most professional programmers don't need
           or want the overhead of range or stack
           checking, so that is not provided.  Of course,
           this is a debatable issue. 
        7) To make very sure programs using system
           dependent features (ie: the built-in machine
           specific system support module) are identified
           by the compiler, our system support module
           is called "SYS" (whereas the one from ETH
           is named "SYSTEM").  Excepting the exported
           CODE procedure, it functions the same as defined
           as SYSTEM in Niklaus Wirth's report.
	   I am considering changing this name to SYSTEM
	   in the next release, and if you have a strong
 	   opinion, please tell me about it.
	   
Q: Can't I please get this package in some way other than
   FTP or uudecode of mail messages ?
A: Sorry, the demand is too great to respond to special
   requests for free.
   
Q: What's the size of the whole package?
A: In compressed (ZIP) format, it is about 151K, expanding
   to about 250K or so, including the PostScript(tm)
   documentation.  In uuencode format (in mail messages)
   it is about 210K. The compiler itself is merely 78K.
   
Q: What's in the package, specifically?
A: Compiler, library modules in source/symbolic/object forms,
   sample programs, an extensive README file instructing
   how to use the package, a report on the Oberon language,
   and an EBNF summary of the syntax (these must be
   downloaded to a PostScript-handling printer or printer
   driver).
   
Q: "I sent you a logon/password/subdirectory to put the 
   files on my machine.  What are you going to do with
   that information now that you are distributing this
   package through anonymous FTP and uudecode mail?"
A: Nothing.  It is destroyed as confidential information.
   I come from the old school of hacking that respects
   privacy as a rule of existence.
   
   
   
-- E. R. Videki    18 March 91
   erv @ k2.tandem.everest.com  (130.252.59.153)
   
....	   
   	   
   	  
   

nagler@olsen.UUCP (Rob Nagler) (03/25/91)

In article <1991Mar22.173834.17328@tandem.com> erv@everest.TANDEM.COM (E. Videki) writes:
> 6) Due to the irregularities of the 80x86 architecture, code
> generation for it is ponderous. In my experience most professional
> programmers don't need or want the overhead of range or stack
> checking, so that is not provided.  Of course, this is a debatable
> issue. 

Don't you mean *pompous* programmers?  I suggest you debate the following...

Newsgroups: comp.sys.sun
From: pln@egret1.stanford.edu (Patrick L. Nolan)
Subject: Large disks hazardous to your data?
Date: 19 Mar 91 18:33:00 GMT
Message-ID: <1990@brchh104.bnr.ca>

The March 4 issue of Digital News has an article with the headline "User
data at risk with 1.2 GB disks."  Here are some excerpts from the article:

  Customers configuring ... SCSI hard disk drives of more than 1 GB run
  a serious risk of losing their stored data.
  ...
  According to SCSI specialists, the SCSI Group 0 set of commands,
  which are also embedded into some Sun Microsystems ... operating
  systems, can address a maximum of 1.073742 GBytes.  On disks
  with a larger formatted capacity, the SCSI I/O driver wraps
  around the disk and overwrites the first block of data, called
  the superblock or home block, thereby preventing access to the rest of
  the data on the disk....

groot@idca.tds.PHILIPS.nl (H. de Groot) (03/28/91)

In <1991Mar22.173834.17328@tandem.com> erv@everest.TANDEM.COM (E. Videki) writes:
>This is about the Oberon-M(tm) package for the MSDOS
>environment.  Here are answers to questions that I've
>been repeatedly asked:
>[...]
>Q: What are the specific, technical things the compiler
>   does not do?
>A: Here are the things that the compiler does NOT do now,
>   [...]
>	2) 8088 and 8086 (ie: the oldest processors) do 
>	   not have Enter and Leave instructions which are
>	   generated by the compiler.  Thus, only PCs
>	   with 80x86 (where x >= 1) processors can
>	   use the produced code.  The compiler itself will
>	   run on an older machine, though.
>    [...]

The compiler looks nice but...

Are you going to change the compiler to generate code for 8086/8088 processors
in the future? I like to know about Oberon and try it but since I only have
an XT 8088 based system I can only use the copliler to check the syntax. I'm
posting because others might also want this and now they know they are not
the only one with 8088 based systems.

I'm not critizising (sp?) your compiler, just a humble request.

Henk.















-- 
  /   /            Henk de Groot, PAV   | UUCP     : ..!mcsun!philapd!groot
 /---/ __  __  /   V2/A12-A13, ext: 2099| Internet : groot@idca.tds.philips.nl
/   / (-_ / / /(   Tel: +31 55 432099   |  == PHILIPS INFORMATION SYSTEMS ==
          Disclaimer: I only speak for myself, not for my employer!

groot@idca.tds.philips.nl (Henk de Groot) (03/29/91)

In <1991Mar22.173834.17328@tandem.com> erv@everest.TANDEM.COM (E. Videki) writes:
>This is about the Oberon-M(tm) package for the MSDOS
>environment.  Here are answers to questions that I've
>been repeatedly asked:
>[...]
>Q: What are the specific, technical things the compiler
>   does not do?
>A: Here are the things that the compiler does NOT do now,
>   [...]
>	2) 8088 and 8086 (ie: the oldest processors) do 
>	   not have Enter and Leave instructions which are
>	   generated by the compiler.  Thus, only PCs
>	   with 80x86 (where x >= 1) processors can
>	   use the produced code.  The compiler itself will
>	   run on an older machine, though.
>    [...]

The compiler looks nice but...

Are you going to change the compiler to generate code for 8086/8088 processors
in the future? I like to know about Oberon and try it but since I only have
an XT 8088 based system I can only use the copliler to check the syntax. I'm
posting because others might also want this and now they know they are not
the only one with 8088 based systems.

I'm not critizising (sp?) your compiler, just a humble request.

Henk.
















--
  /   /            Henk de Groot, PAV   | UUCP     : ..!mcsun!philapd!groot
 /---/ __  __  /   V2/A12-A13, ext: 2099| Internet : groot@idca.tds.philips.nl
/   / (-_ / / /(   Tel: +31 55 432099   |  == PHILIPS INFORMATION SYSTEMS ==
          Disclaimer: I only speak for myself, not for my employer!

mcintosh@ccwf.cc.utexas.edu (aubrey mcintosh) (03/30/91)

In article <1246@idcapd.idca.tds.philips.nl> groot@idca.tds.philips.nl (Henk de Groot) writes:
>
>The compiler looks nice but...
>
>Are you going to change the compiler to generate code for 8086/8088 processors
>in the future? I like to know about Oberon and try it but since I only have
>an XT 8088 based system I can only use the copliler to check the syntax. I'm
>posting because others might also want this and now they know they are not
>the only one with 8088 based systems.

I installed a NEC V-20 chip on my XT.  This cpu has all of the not-protected
mode instructions of the '286 cpu, including the enter and leave instructions
I routinely compile Modula-2 source in the Logitech '286 mode and enjoy the
benefits therefrom.  I have not put this Oberon onto my machine, but I
would expect success.  The current V-20 prices in Austin are about $8.00.

This chip also allows execution of Windows 2.10.


-- 
Aubrey McIntosh  /  Chemistry  /  University of Texas  /  Austin, TX 78712
..another Gaelic learner...

system@syzzle.chi.il.us (SYSTEM 0PERATOR) (04/03/91)

groot@idca.tds.philips.nl (Henk de Groot) writes:

> Are you going to change the compiler to generate code for 8086/8088 processor
> in the future? I like to know about Oberon and try it but since I only have
> an XT 8088 based system I can only use the copliler to check the syntax. I'm
> posting because others might also want this and now they know they are not
> the only one with 8088 based systems.

In the mean time, you could plug in an NEC V20 or V30 processor.
I think you would use the V20 to replace an 8088 and a V30 for a
8086. These are plug in compatible, cost about $12.00 - $15.00 and
have the 80x86 instructions! I have an NEC laptop (Not a 286!) which
run programs compiled by this Oberon compiler!

+------------------------+---------------------------------+
|   Al Oomens (awol)     | Inside every LARGE program is a |
| awol@syzzle.chi.il.us  | small program trying to get out |
+------------------------+---------------------------------+

tima@agora.rain.com (Tim Anderson) (04/04/91)

In article <N4osZ1w164w@syzzle.chi.il.us> system@syzzle.chi.il.us (SYSTEM 0PERATOR) writes:
>groot@idca.tds.philips.nl (Henk de Groot) writes:
>
>> Are you going to change the compiler to generate code for 8086/8088 processor
>> in the future?....
>
>In the mean time, you could plug in an NEC V20 or V30 processor.
>...

Methinks that the correct solution to this is to have a run time switch in
the compiler itself. Now if we had the source to the compiler it would be 
a pretty easy thing to accomplish :-)

tima@agora.rain.com

Markus.Maeder@p2.f807.n302.z2.fidonet.org (Markus Maeder) (04/04/91)

Hallo H...

 Allow me to quote the letter you mailed on 30-Mar-91

 >>This is about the Oberon-M(tm) package for the MSDOS
 >>environment.  Here are answers to questions that I've
 >>been repeatedly asked:
 >>[...]
 >>Q: What are the specific, technical things the compiler
 >>   does not do?
 >>A: Here are the things that the compiler does NOT do now,
 >>   [...]
 >>       2) 8088 and 8086 (ie: the oldest processors) do
 >>          not have Enter and Leave instructions which are

I think, I've got a solution for this problem!

 HD> Are you going to change the compiler to generate code for 8086/8088
 HD> processors in the future? I like to know about Oberon and try it but sinc
 HD> I only have an XT 8088 based system I can only use the copliler to check
 HD> the syntax.

I'm not absolutely sure, but I think you can replace your 8088 with a
NEC V20. This is a cheap clone of the 8088 with additional commands. An these
enhancements include as I know the leave and enter operand. If you change
8088->V20 or 8086->V30  you'll notice, that your computer will be about 10 to
15 % faster too. It's really simple to change the chips: 8088 out-> V20 in!

I hope I could help you,

   Markus Maeder


--  
uucp: uunet!m2xenix!puddle!2!302!807.2!Markus.Maeder
Internet: Markus.Maeder@p2.f807.n302.z2.fidonet.org

Alex.Wyss@f801.n302.z2.fidonet.org (Alex Wyss) (04/04/91)

I got the package, but now I'm not sure of having a complete one.

 OBERONM.ZIP  138496 03-26-91 {  3} MS-DOS Oberon-Compiler for 80(1|2|3|4)86
 OBERONM.DOC   11229 03-30-91 {  0} Question & Answers on OberonM

 EV> Q: What's in the package, specifically?
 EV> A: Compiler, library modules in source/symbolic/object forms,
 EV>    sample programs, an extensive README file instructing
 EV>    how to use the package, a report on the Oberon language,
 EV>    and an EBNF summary of the syntax (these must be
 EV>    downloaded to a PostScript-handling printer or printer
 EV>    driver).
I found only one single demonstration sample program called ABU.MOD! And this simple sample had the major flaw of not telling anything, when I started it without any parameters :-( After reading the source and the read.me - no I can't read Postscript - I was able to use ABU ....
Keep on going with your work, I like it now.

        Greetings, Alex


--  
uucp: uunet!m2xenix!puddle!2!302!801!Alex.Wyss
Internet: Alex.Wyss@f801.n302.z2.fidonet.org

groot@idca.tds.philips.nl (Henk de Groot) (04/05/91)

In <N4osZ1w164w@syzzle.chi.il.us> system@syzzle.chi.il.us (SYSTEM 0PERATOR) writes:

>groot@idca.tds.philips.nl (Henk de Groot) writes:

>> Are you going to change the compiler to generate code for 8086/8088 processor
>> in the future? I like to know about Oberon and try it but since I only have
>> an XT 8088 based system I can only use the copliler to check the syntax.

>In the mean time, you could plug in an NEC V20 or V30 processor.
>[...]

I have a V20 processor, however not installed. My keyboard doesn't like it.
With the V20 installed it seems to work fine but once in a while the keyboard
gets an hickup and switched to CAPS, or NUM-LOCK or SCROLL LOCK or thinks ALT
is depressed or RIGTH-SHIFT or CONTROL or... - to be short: it anoying and
therefor I still use the standard 8088 until I can get hold of a better (AT)
keyboard.

Oh, my V20 was also very cheap (and therefor save to try it out)

PS: Before getting flamed: This was about Oberon not generating 8088
    code. Reply's via Mail - don't clobber this newsgroup with V20
    discussions!!

Henk

--
  /   /            Henk de Groot, PAV   | UUCP     : ..!mcsun!philapd!groot
 /---/ __  __  /   V2/A12-A13, ext: 2099| Internet : groot@idca.tds.philips.nl
/   / (-_ / / /(   Tel: +31 55 432099   |  == PHILIPS INFORMATION SYSTEMS ==
          Disclaimer: I only speak for myself, not for my employer!

Ola.Garstad@f15.n502.z2.fidonet.org (Ola Garstad) (04/15/91)

 S0>I think you would use the V20 to replace an 8088 and a V30 
 S0>for a
 S0>8086. These are plug in compatible, cost about $12.00 - 
 S0>$15.00 and

You are right, but be warned that some clones don't work with the V20/V30. This is because the "power on test" in the BIOS makes some timing loops, and they are too quick with the V20/V30 - so the test fails. However - you do not destory anything, so just change back if it doesn't work.

Also you may get some problems with formating disks with some versions of DOS.


Sorry this was not M-2, but nontheless important if you change CPU to run the program.



--  
uucp: uunet!m2xenix!puddle!2!502!15!Ola.Garstad
Internet: Ola.Garstad@f15.n502.z2.fidonet.org