HDTenEightyP/NetNews huggingface dataset:
From: jm59@prism.gatech.EDU (MILLS,JOHN M.)
Newsgroups: comp.lang.pascal
Subject: TP6.0 VGA Graphics Question
Date: 17 Nov 92 19:10:13 GMT
Organization: Georgia Institute of Technology

Hi --  I am trying to make something work using TP6.0 and BGI graphics
on a PC host.  I am relatively inexperienced with graphics, so it may
take a couple of rounds to close in on my problem.  Suggestions are
welcome.

The Program:
I must draw line outlines which may cross and overlay, and must be erased
and redrawn from time to time.  I only get satisfactory drawing when I use
"CopyPut" line drawing.  In order to allow an erasure (without destroying
my background grid), I am drawing on page 1, using SetActivePage(1), drawing,
then copying to four allocated buffers (which tile the screen but stay within
the 64K byte limit for allocated storage), then XORing the buffers to the
screen.  This works OK functionally, but bringing up the new image is a little
slow.  (I actually XOR the image against the invisible buffers, too, to clear
them.)

The Problem:
This scheme works fine when I have an EGA adapter, or when I use a VGA
display in either VGAMed or EGAMonoHi modes.  When I try to use VGAHi, the
bottom part of my screen inverts to white in the viewport where I am trying
to use the image paging/buffering scheme.

I have been running the code OK in several EGA and VGA-equipped XT and AT
clones, but hit a rock with a Toshiba T2000SXe, which seems to lose track of
screen aspect ratio or corners when I set it to VGAMed, and goes blank when
I use EGAMonoHi -- so my work-arounds _don't_.

The Toshiba comes up in BGIDEMO as "EGAVGA" with 16 colors. (It's a monochrome
LCD laptop.)

I am using default settings for Stack and Heap limits, though I have 1 Mby
in one of the platforms.  I have played with stack and upper heap limits,
but his doesn't seem to affect the bad screen area.

Any suggestions how to use a two-page scheme with VGA, or another work-around?
Thanks.

--jmm--

-- 
John M. Mills, SRE; Georgia Tech/GTRI/TSDL, Atlanta, GA 30332
uucp: ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!jm59
Internet: jm59@prism.gatech.edu
"Democracies generally get the governments they deserve.." --Wilde
From: s2861785@techst02.technion.ac.il (Alon Ziv)
Newsgroups: comp.lang.pascal
Subject: Re: Turbo and Procs/Fns as params..
Date: 19 Nov 92 08:57:56 GMT
Organization: /u1/023/s2861785/.organization

In article <SHEN.92Nov16212135@nil.IRO.UMontreal.CA> shen@nil.IRO.UMontreal.CA (Yu Shen) writes:

[...stuff deleted]

   I just have a related problem that it seemed to me that member
   function can not be as value for such procedure variable.

[.sig deleted]

This is just one example of the serious defect in TP Func/Proc
parameters: that is, all that is passed is a pointer to the code, and
not the scope. This limits the use of Func/Proc parameters to global
procedures and functions, and disallows passing the address of a
nested function, for instance. 

[ As an aside, in some TurboVision units you DO have to pass such a
  function; however, this is done [ugh!] by passing pointers around and
  using dirty ASSEMBLY tricks to get it working... And it's
  incompatible even with StonyBrook Pascal+, which is the nearest
  thing to 'TP-compatible'... ]

-az
---
Internet:	s2861785@tx.technion.ac.il			   . __
	I'M A STUDENT: When I'm wrong, it's my teacher's fault	  _|  /
	(when I'm right, the credit is all mine!)		 / | /_
								Alon Ziv

--
Internet:	s2861785@tx.technion.ac.il			   . __
	I'M A STUDENT: When I'm wrong, it's my teacher's fault	  _|  /
	(when I'm right, the credit is all mine!)		 / | /_
								Alon Ziv
From: v206gb6c@ubvmsb.cc.buffalo.edu (IS AN ILLEGAL PERSON NAME)
Newsgroups: comp.lang.pascal
Subject: Re: Comments on Turbo (Borland) Pascal 7.0?
Date: 21 Nov 92 21:26:00 GMT
Organization: University at Buffalo
News-Software: VAX/VMS VNEWS 1.41

In article <21NOV199209072500@cl2.cl.uh.edu>, CSCI19DC@cl.uh.edu writes...
>In article <1992Nov20.155938.20026@mnemosyne.cs.du.edu>, rwirthli@nyx.cs.du.edu (Ralph Wirthlin) writes...
>> 
>>>1: Source code hilighting
>> 
>>This *one* has personally saved me alot of grief.  Have you ever
>>commented a piece of code and forgot to put on the closing "*)" and...
> 
>Every time I read a posting on this particular aspect of BP 7.0, it makes
>me chuckle.
> 
>Microsoft QuickPascal, version 1.0...released about four years ago, had this
>feature.  (source code highliting).

    Everytime I read a posting that seems suggests that microsoft invented 
source highlighting, I have to laugh.  This feature was on very eary versions 
of various macintosh pascal compilers (like the one I used as an undergrad).
In fact, the source code was auto formatted (something I was annoyed by, but
I can see the usefulness for first time programmers (and the TA's who had to
grade programs by people forced to take programming)), and any syntactical 
error while typing switched the text to the outline font.

I realize that last sentence reads horribly, but I don't feel like changing it.

PauL M SchwartZ  (-Z-)  |  Follow men's eyes as they look to the skies
v206gb6c@ubvms.BitNet   |         the shifting shafts of shining 
pms@geog.buffalo.edu    |        weave the fabric of their dreams
pms@acsu.buffalo.edu    |                    - RUSH -
Newsgroups: comp.lang.pascal
From: pf@bilbo.bio.purdue.edu (Paul Furbacher)
Subject: Re: BP 7.0 upgrade and ProtoGen
Organization: Purdue University
Distribution: comp.lang.pascal
Date: Wed, 18 Nov 1992 23:12:22 GMT

In article <75259@hydra.gatech.EDU>, 
  gtd543a@prism.gatech.EDU (Jeff Garza) wrote:
> 
> A word to the wise [about] ProtoGen....

and then goes to say ...
 
> As a side note, I am writing my own CASE tool, to be released to
> the public domain, with source code (in BP7) for everyone to 
> study and modify.

If you obey all interface guidelines so that your application 
is standard in the way it behaves, and it offers sophisticated 
CASE abilities, I'll be one of your customers.  And if I continue
to use it after testing it out, you'll definitely get a check 
in the mail. But remember, don't do anything goofy/cool with 
the interface.  We don't have a lot of time trying to figure out
how a program works, and rework the wiring in our heads every
time we start up your program to get some work done.  

It ought to have thorough Help on-line and accessible from 
every point in the program (not so in ProtoGen).  It would be
very nice to at least one level of Undo, more would be appreciated.

It should support code or resource generation.  It should also 
interact with the Resource Workshop.  Whatelse?

> If a 18-year-old self-taught Pascal programmer can do this (I'm already
> most of the way though the initial stage in the program), why can't
> a team of trained, competent workers do the same?

Don't know.  One often wonders why someone would release 
underpowered software -- afraid of being beaten to the punch?  
Ran out of imagination?  Needed some cash flow?  Once again, 
don't know.

PF
From: exuptr@exu.ericsson.se (Patrick Taylor)
Newsgroups: comp.lang.pascal
Subject: Re: Turbo Pascal mem[a: b] question
Date: 24 Nov 92 00:15:33 GMT
Organization: Ericsson Network Systems, Inc.
X-Disclaimer: This article was posted by a user at Ericsson.
              Any opinions expressed are strictly those of the
              user and not necessarily those of Ericsson.

In article <1992Nov16.050457.26839@qiclab.scn.rain.com> leonard@qiclab.scn.rain.com (Leonard Erickson) writes:
>From: leonard@qiclab.scn.rain.com (Leonard Erickson)
>Subject: Re: Turbo Pascal mem[a:b] question
>Date: 16 Nov 92 05:04:57 GMT

>zlsiida@fs1.mcc.ac.uk (dave budd) writes:

>>One of our users claims he can increase a in mem[a:b]:=value; until it MUST 
>>be off the end of his machine.  This is the kind of user who always forgets 
>>to bring a disk with the program on it.  I've had a brief scan of the manual 
>>and it's not clear to me just exactly which bits of memory get addressed - 
>>eg I don't believe they'd let you write into a program segment.
>>Are all the addresses relative to the start of the data segment (or 
>>something along those lines)?
>>If the address is off the end of the machine or just bigger than the largest 
>>allowable, does it get truncated in some way?
>>Anybody want to give me a nice simple explanation of how mem[a:b] works?

>Sure. A is the segment, B is the offset. These are *absolute* addresses,
>not relative to anything. 

>You can specify *any* address. If it's not present in the machine what
>happens is probably hardware/BIOS dependent. 

One thing's for sure, if A or B are larger than WORDS, they are truncated.

>mem[a:b] := x is a *very* low level instruction. It's compiled as a 
>direct write to RAM. probably a LOAD X,[a:b] (if I remember the assembler
>mnemonics correctly).

Close enough.  I think it is more like

   MOV AX,[x]
   MOV DX,[a]
   MOV ES,DX
   MOV DX,[b]
   MOV [ES:DX],AX

using TASM syntax, of course.

Bottom line is, probably *no checking at all* is done on the address and if 
you address something that is not there, there is *no telling* what your 
machine might do.

 ----------------------------------------------------------------------------
 PEROT IN '96!

  - Patrick Taylor, Ericsson Network Systems
    exuptr@exu.ericsson.se                    "Don't let the .se fool you"
    exuptr@ZGNews.Lonestar.Org  <SLOW!>
Newsgroups: comp.lang.pascal
From: tech@crash.cts.com (Don Bontemps)
Subject: Re: I need help writing a tsr
Organization: CTS Network Services (crash, ctsnet), El Cajon, CA
Date: 15 Nov 92 20:31:57 PST

In article <2866.2B03F12D@catpe.alt.za> Craig.Lathwood@p0.f1.n7103.z5.fidonet.org (Craig Lathwood) writes:
>Hi D
>
>DE>I have a TSR unit for TP6.0 if you want it.  I archived it a while ago
>DE>because I wasn't using it, but if no-one else responds I'll mail it or
>DE>post it.  It does all the stuff like detecting if the program is loaded,
>DE>and unloading if possible.
>
>Any source or is it a TPU ? If there is source I interested as I wish to find out how to "unload".
>
>Thanks
>
>Craig

Who has the TP 6.0 TSR unit?  Whoever has it, could you please, please,
please E-mail it to me or direct me to the FTP location where I can get
it from.   Thanks!!!!!
From: nllopis@ecs.umass.edu
Newsgroups: comp.lang.pascal
Subject: TURBO PASCAL SYSTEM PROGRAMMING SC NEEDED
Date: 22 Nov 92 23:23:29 GMT

Hmm.. sorry... I didn't mean to post a message with no
subject.. the computer froze up for a sec and I pressed
RETURN an extra time.
If you read this one... please read the previous message.

:)
Thanx.
Newsgroups: comp.lang.pascal
From: dmurdoch@mast.queensu.ca (Duncan Murdoch)
Subject: Re: TP7 improved encapsulation?
Organization: Queen's University
Date: Tue, 17 Nov 1992 03:09:00 GMT

In article <jeremy.721961322@scorpion.ac.cowan.edu.au> j.laidman@cowan.edu.au (Jeremy Laidman) writes:
>TP6 introduced object encapsulation with the PRIVATE keyword.  The problem
>is that it only hides the details to the unit level.  Can anyone who's seen
>TP7 tell me if that has been tightened to the object level?

No, it hasn't.  There aren't many changes to objects.  There are now dynamic 
methods (as in TPW; no real difference to the language, but you trade off 
slower calls for less data segment space wasted in the method table), and 
you can switch back and forth from private to public within a single 
declaration.

>Actually, the ideal would be to have a PUBLIC keyword, where by default all
>attributes are hidden within the unit, and only accessible via method calls.
>One would be able to override this with a PUBLIC section.  This would make for
>a more object oriented language.  Any comments?

I don't see the point:  now you can declare your objects to act that way 
by declaring all fields after "private", so why clutter up the language just 
to save one word per object type declaration?

Duncan Murdoch
dmurdoch@mast.queensu.ca
From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)
Newsgroups: comp.lang.pascal
Subject: Re: Turbo Scheme
Date: 20 Nov 92 17:13:45 GMT
Organization: Tektronix, Inc., Beaverton,  OR.

In article <34175@adm.brl.mil> stone@hilbert.math.grin.edu (John David Stone) writes:
>
>        Don't even joke about it.  One of my biggest fears as a teacher of
>computer science is that Borland will trash Scheme as a language for
>learning programming the same way they ruined Pascal and tried to ruin
>Prolog.

  As a daily user of Standard Pascal, I couldn't disagree with you
  more.  While I don't support each and every change Borland has
  wrought in its Pascal compilers, I would choose it over other
  compilers w/o a moments hesitation.  I can't think of a bigger
  pain in the butt than manipulating "packed array of char".

  What it sounds like you want is a language that doesn't change
  over time, has little or no support for the platform on which it
  is run, and supplies no non-standard language extensions.  We
  already have a language like that; it's called Fortran. Were
  it not for the combined inertia of aging pedagogical physicists,
  it would have probably died a quiet death years ago.

  Let me ask this question:  do you think Pascal would still be a
  major player in the micro industry w/o Turbo Pascal?  Probably
  not; we would all be writing 'C' code and hating every minute of
  it.

  Borland has done little to change the actual flavour of the
  language of Pascal (except with the recent addition of Object
  Oriented Extensions).  You can use as much or as little of the
  additions that have been provided, and any standard pascal source
  will (with only minor massaging) compile and run.  Ten times in
  the interval required to even get an executable on any other
  platform.

  Perhaps, from a teaching perspective, your criticisms are valid.
  I for one am glad that Borland considered the rest of us, though.

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ 

Bob Beauchaine bobb@vice.ICO.TEK.COM 

C: The language that combines the power of assembly language with the 
   flexibility of assembly language.

Real friends don't let friends use UNIX.
From: mas4@ns1.cc.lehigh.edu (MICHAEL ANTHONY STRAUSS)
Newsgroups: comp.lang.pascal
Subject: Recognizing multiple keypresses
Date: 21 Nov 92 02:19:46 GMT
Organization: Lehigh University

I'm working on a two player game that needs to recognize players keyboard
inputs at the same time.  i.e.  One person holds a key down to move and
the program will still be able to read the other person's keypresses.  Any
code in any language will be OK.  I can just link it.  Thanx in advance


-Strauss
-mas4@lehigh.edu
From: holland@matt.ksu.ksu.edu (Rich Holland)
Newsgroups: comp.lang.pascal
Subject: Re: Turbo and Procs/Fns as params..
Date: 15 Nov 92 12:41:28 GMT
Article-I.D.: matt.1e6qnoINNnr6
Organization: Kansas State University
NNTP-Posting-Host: matt.ksu.ksu.edu

4224_5276@uwovax.uwo.ca (Chris Walden) writes:

>Turbo Pascal *DOES* Allow you to pass Procedures and Functions as parameters. 
>Unless I misinterpreted your comment....

...but only if you pass them as a *pointer*

-- 
Rich Holland              | INTERNET: holland@matt.ksu.ksu.edu
100 Jardine Terr, Apt A7  | BITNET  : holland@ksuvm
Manhattan, KS  66502-3357 | UUCP    : ...!rutgers!matt.ksu.ksu.edu!holland
char*p="char*p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}
From: kim@Software.Mitel.COM (Kim Letkeman)
Newsgroups: comp.lang.pascal
Subject: Re: BP 7.0 upgrade and ProtoGen
Date: 19 Nov 92 13:47:44 GMT
Distribution: na
Organization: MITEL Public Switching, Kanata, Ontario, Canada
In-reply-to: gtd543a@prism.gatech.EDU's message of 18 Nov 92 15:23:01 GMT

In article <75259@hydra.gatech.EDU> gtd543a@prism.gatech.EDU (death) writes:

| As a side note, I am writing my own CASE tool, to be released to the
| public domain, with source code (in BP7) for everyone to study any
| modify.
| 
| If a 18-year-old self-taught Pascal programmer can do this (I'm
| already most of the way though the initial stage in the program),
| why can't a team of trained, competent workers do the same?

I would suggest that before you attack ProtoView's team, you get your
own product to the same level of functionality, quality and
reliability.

If you haven't experienced the 90-10 rule yet, (that is, to really
finish a project to a professional level, the last 10% of the work
takes 90% of the time) then you are in for quite a surprise.

Good luck with it, but don't be surprised if it takes longer than you
think now to consistently match Protogen's abilities, much less exceed
them.
--
Kim Letkeman	kim@Software.Mitel.COM
Newsgroups: comp.lang.pascal
From: sjsobol@wariat.org (Steven J. Sobol)
Subject: Re: TP vs. TPW
Organization: APK Public Access UNIX/Internet, Cleveland, OH, USA
X-Newsreader: TIN [version 1.1 PL7]
Date: Fri, 20 Nov 1992 07:31:30 GMT

m_rheau@pavo.concordia.ca wrote:
: 
: Is it just a matter of preference, or is there a significant difference
: between Turbo Pascal under DOS and Windows?

TP doesn't compile Windows programs, and TPW doesn't compile DOS programs.
I would say that's a rather big difference. :)

Borland Pascal 7, just released, does both.

-- 
Steve Sobol, Prez. The Tiny Software Co * sjsobol@tiny.com * sjsobol@wariat.org
CALL APK in Cleveland, Ohio: Telnet/FTP/BBS/Shell/More!   Info: info@wariat.org
All for a Reasonable Monthly Rate. Telnet to wariat.org or pick up the phone...
216/481-9425 v.32bis/PEP; 216/481-9445 v.32bis/HST; 216/481-9436 2400 baud.....
From: Paul.Robinson@f417.n109.z1.fidonet.org (Paul Robinson)
Newsgroups: comp.lang.pascal
Subject: String (3/4)
Date: 21 Nov 92 17:21:34 GMT

function search(VAR s,t:string; start:integer):integer;
 
var     i,j: 0..stringmax;
 
        uneq: boolean;
 
begin
 
        if start<1 then start:=1;
 
        if (start+t.len>s.len+1) or (t.len=0)
 
           then search:=0
 
           else begin
 
              i:=start-1;
 
              repeat
 
                 i:=i+1; j:=0;
 
                 repeat
 
                    j:=j+1;
 
                    uneq:=t.ch[j]<>s.ch[i+j-1];
 
                 until uneq or (j=t.len);
 
              until (not uneq) or (i=s.len-t.len+1);
 
              if uneq
 
                 then search:=0
 
                 else search:=i;
 
              end;
 
end;
 
 
 
procedure readstring(var f:text; var s:string);
 
begin
 
        clear(s);
 
        with s do
 
           while (not eoln(f)) and (len<stringmax) do begin
 
              len:=len+1;
 
              read(f,ch[len]);
 
              end;
 
        readln(f);
 
end;
 
 
 
procedure writestring(var f:text; VAR s:string);
 
begin   write(f,s.ch:s.len)
 
end;
 
 
 
procedure substring(var t:string; VAR s:string; start,span:integer);
 
var     i: integer;
 
begin
 
        if span<0 then begin span:= -span; start:=start-span end;
 
        if start<1 then begin span:=span+start-1; start:=1 end;
 
        if start+span>s.len+1 then span:=s.len-start+1;
 
        if span<=0
 
           then clear(t)
 
           else begin
 
              for i:=1 to span do t.ch[i]:=s.ch[start+i-1];
 
              for i:=span+1 to stringmax do t.ch[i]:=' ';
 
              t.len:=span;
 
              end;
 
end;


Newsgroups: comp.lang.pascal
From: dmurdoch@mast.queensu.ca (Duncan Murdoch)
Subject: Borland licences (was about old copies of TP)
Organization: Queen's University
Date: Fri, 20 Nov 1992 18:52:20 GMT

In article <1992Nov19.205629.20382@dcatlas.dot.gov> joet@dcatlas.dot.gov (Joe Trott) writes:
>
>BZZT!  They wouldn't be legal copies.  When one upgrades, the prohibition
>against multiple use applies to previous versions; i.e. to give away or sell
>them is a violation of Borland's particularly reasonable license agreement.
>What you probably need to do is contact Borland and see if they have any of
>the old versions still in a warehouse somewhere or something.

I've never seen that in the license agreement.  It's certainly not in the 
new one I got with BP 7.  

There is one part in there that's a little worrisome, though:

You're allowed to write and compile programs using the Borland libraries and 
distribute them (the actual wording is longer), subject to the following 
conditions (and from here on it's a verbatim quote):

The program is not a compiler or development tool, environment product or 
library which includes any of the libraries, DLLs or source code included in 
this package, nor is the program otherwise a product that is generally 
competitive with or a substitute for any Borland Language product.

End of quote.

It's that last clause that worries me:  lots of programs I write could be 
seen as "generally competitive with" Borland Language products.  

Duncan Murdoch
dmurdoch@mast.queensu.ca
Newsgroups: comp.lang.pascal
From: Ken Stuart  <kps1@cornell.edu>
Subject: moving TCollection data into a TListBox
Nntp-Posting-User: kps1@cornell.edu
Organization: Cornell University
X-Useragent: Nuntius v1.1.1d1
Date: Thu, 19 Nov 1992 19:18:22 GMT

In attempting to learn TVision, I've come to believe that I should use a
modified TCollection to hold my data.  I want to list certain fields of
the collected items in a TListBox, but can't figure out how to do it - I
can make the box, etc., but can't determine how to make the items'
strings appear in it.  Any suggestions would be great.  I can find no
examples from which to glean even a foggy idea.  Maybe what I'm trying to
do is a bad thing.  Replies directly to kps1@cornell.edu please.

Thanks, Ken
Newsgroups: comp.lang.pascal
From: hemstree@lamar.acns.colostate.edu (Charles Hemstreet)
Subject: trying to use ioresult in HP-UX Pascal...
Date: Tue, 17 Nov 1992 11:04:26 GMT
Organization: Colorado State University


I am using the following program out of the HP manual and I can't seem
to get it to work...

$sysprog$
program trapmethod1(input,output);
var Name:	String[80];
F:		text;
IOerror:	integer;
begin
    repeat
    write('open what ".TEXT" file ?');
    readln(Name);
    try
    	reset(F, Name+'.TEXT');
    	    IOerror:=0; {if we get here the reset didn't fail}
    	    writeln(' File successfully opened!');
    	recover
    	    if escapecode=-10 then {it's an i/o system error}
    	    begin
    	    	IOerror := ioresult; {save it (IORESULT affected by writeln).}
    	    	writeln(' Can''t open that file. IOresult:',IOerror:0);
    	    end
    	    else
    	    escape(escapecode); {pass non i/o errors back to system}
    until IOerror=0;
end.
--end trap.p---
I get the following error message...

---errors - trap.p---
cd /users/hemstree/work/countw/pascal/
pc -v trap.p -o trap
pc: /usr/lib/pascomp trap.p
pascomp:                IOerror := ioresult <<<<
    17 - "trap.p(17)": Language extension not enabled;
 
Compilation exited abnormally with code 1 at Tue Nov 17 05:46:05
---end errors - trap.p---

How do I enable this language extension?

Thanks for the help,

Charles

--
!===========================================================================!
! Charles H. Hemstreet IV       !internet: hemstree@cs.Colostate.Edu        !
! Colorado State University     !       or hemstree@lamar.Colostate.Edu     !
!===========================================================================!
Newsgroups: comp.lang.pascal
From: userDHAL@mts.ucs.UAlberta.CA (David Halliwell)
Subject: Re: Borland licences (was about old copies of TP)
Organization: University Of Alberta, Edmonton Canada
Date: Tue, 24 Nov 1992 02:07:10 GMT

tsullivan@trentu.ca (The OTHER One True God) writes:

>  Note the phrasing. Any Borland LANGUAGE Product (read: TP, BP, TC++, 
>BC++, DBASE IV and Paradox). It doesn't include editors (ie BRIEF), 
>debuggers, interpreters, etc. Nor does it include Turbo Vision. It means 
>you can't write (using TP) a TP-compatible compiler that does allow .OBJ 
>file creation, and is faster than TP, and sell it. Which isn't exactly 
>totalitarianism, for the simple reason that you wouldn't WANT to do a 
>project like that in Pascal (well, you might want to, but likly wouldn't).

   I actually would want to do a Pascal compiler in Pascal, if Borland's
licence allowed me to include all of their libraries in my compiler, so
that I didn't have to do libraries of my own. That would be handy!


Dave Halliwell
Department of Geography
University of Alberta
Edmonton, Alberta
Newsgroups: comp.lang.pascal