HDTenEightyP/NetNews huggingface dataset:
From: clane@csws18.ic.sunysb.edu ()
Subject: CAUTION: HARDWARE SPECIFIC (Oh no!) Hi-res VGA memory access?
Originator: clane@csws18.ic.sunysb.edu
Organization: State University of New York at Stony Brook
Date: Fri, 2 Oct 1992 16:17:35 GMT

	I am fiddling with high resolution VGA 256 color modes on the
IBM computer.  I am able to initialize 640x480 and 1024x768 in 256 colors
(Video modes 5DH and 62H) using Int 10H, function 00H.  I need to know how
to address the video memory in these modes.  I am able to read/write pixels
in 320x200x256 mode with ease by knowing that the buffer starts at A000:0000.
I can write to only the upper portion of the screen (64 kilobytes) in the
high-res modes using the A000:0000 address.  How can I access the rest of
the memory?

	I have tried adding 1000H to A000H to get B000:0000 as the address
for the next 64k video memory block after A000:0000, but writing to this
array does nothing on the screen.  I probably have to address memory on the
graphics card to do so (?)  I don't remember the name of the card, but it
uses TVGA bios, if that helps.  (I used the read and write dot functions
already and they're too slow, so just send replies for direct memory access,
if this is possible)
-- 
                          | "So who is this Al Gorithm guy they keep
Charles F. Lane           |  mentioning in my Computer Science classes?"
clane@Libws1.ic.sunysb.edu| "And Sal Manilla, he's tied to chickens some how."
Newsgroups: comp.lang.pascal,comp.lang.prolog
From: dmurdoch@mast.queensu.ca (Duncan Murdoch)
Subject: Re: prolog <---> pascal ???
Organization: Queen's University
Date: Fri, 2 Oct 1992 13:19:37 GMT

In article <AAWqingWbC@cs.lu.riga.lv> ugis@cs.lu.riga.lv writes:
>>>I have a problem to call Turbo Pascal subroutine from Turbo
>>>Prolog program. There is written in Turbo Prolog reference guide
>>>that I must build Turbo Pascal .OBJ file for linking with Prolog.
>>>But the Pascal doesn't make .OBJ files. Can anybody deal with this 
>>>problem? Thanks in advance.

One respondent gave the following false information:

>>Turbo Pascal does in fact make .OBJ files, but you will not see them if you
>>do a 'Compile to .EXE' compilation (the default).  On the compilation menu
>>you should be able to find a 'Compile to .OBJ' (or similar) option, which
>>you need to use.

TP has *never* been able to produce .OBJ files.  Current versions can link 
them in if you produced them somewhere else, but TP won't produced them.

And another gave this misleading advice:

>I have found the easiest process is to convert an executable program to an
>object file---- .exe to .obj--- by the use of binobj.exe provided by turbo
>pascal.

That's not false - it's an easy way to create an .OBJ file.  However, it's 
completely useless.  None of the procedures in the original program are 
accessible to programs that link this in; essentially, it's just a blind 
copy of all of the bytes in the .EXE file with no information whatsoever as 
to what they mean.

I wish people would make a bit of an effort not to post nonsense here.  If 
you don't know the answer, don't post, okay?

As to the original question:  Soon after TP 4.0 came out, Borland 
distributed a program called TPU2OBJ to let you link TP into Prolog.  
That's probably what the Prolog docs are talking about.  Borland has 
never updated TPU2OBJ to handle later versions of the TPU files (probably 
because they don't sell Prolog any more), and I don't know any way to link 
later versions of TP into Prolog.

Duncan Murdoch
dmurdoch@mast.queensu.ca
Newsgroups: comp.lang.pascal
From: chris@pigiron.engr.wisc.edu (Christian Rohrmeier)
Subject: Re: Telegard 2.7 BBS programming
Organization: U of Wisconsin-Madison College of Engineering
Date: 28 Sep 92 12:37:58 CDT

In article <69122@hydra.gatech.EDU> gt7803b@prism.gatech.EDU (Raving Mad Lunatic) writes:
>In article <1992Sep26.223055.17304@r-node.gts.org> shadow@r-node.gts.org (Jay Chu) writes:
>>Can someone write me a TG27 program for altering flags globally in the entire
>>user.lst?
>
>You're actually using Telegard? In the Atlanta area I'm not aware of a single
>board that's still running TG. Renegade Alpha and Beta test versions have
>displaced it. Even the state TG coordinator switched...
>
>BTW: I'm working on a TG work-alike (as opposed to hacks like RG) that
>hopefully will displace a few more... As for altering flags, that's fairly
>easy, but I don't have anything to do it. Try your local Beta site.
>-- 
>Child-molesting is an art, not a science...

WOuld you be so kind as to tell me more of this BBS? I assume it is
written in pascal and the source is available. Very nice! Is it
shareware?

On a related topic: I once ran a BBS call Pyroto, by Pinacle Inc. (in
Canada I believe), that had the source availble in TP 3.0, and I was
womdering if any one knows of a newer version with more modern source
(TP 4.0 would be spiffy, 5.0 even better!)

-Chris 


Xref: sparky comp.lang.pascal:5787 rec.games.programmer:4086
From: hallch@CS.ColoState.EDU (christopher hall)
Newsgroups: comp.lang.pascal,rec.games.programmer
Subject: Re: CAUTION: HARDWARE SPECIFIC (Oh no!) Hi-res VGA memory access?
Date: 2 Oct 92 18:23:54 GMT
Organization: Colorado State University, Computer Science Department

In article <1992Oct2.161735.24275@sbcs.sunysb.edu> clane@csws18.ic.sunysb.edu writes:
>to address the video memory in these modes.  I am able to read/write pixels
>in 320x200x256 mode with ease by knowing that the buffer starts at A000:0000.

The buffer also starts at A000:0000 for these modes.

>I can write to only the upper portion of the screen (64 kilobytes) in the
>high-res modes using the A000:0000 address.  

This is because the memory is banked.  Consequently not all of the video
memory is accessible by the CPU at any one moment.

>	I have tried adding 1000H to A000H to get B000:0000 as the address
>for the next 64k video memory block after A000:0000, but writing to this
>array does nothing on the screen.  

This won't usually work because B000:0000 doesn't contain video data for
these modes.

> I probably have to address memory on the
>graphics card to do so (?)  

I don't have the exact info you need with me, but you can get it from
some of the ftp sites around (I can't remember which one but send me
and email message and I'll try to find it for you).   What you need to
do is communicate to the card through the ports which bank of memory
you are currently addressing at A000:0000.  All a bank of memory is in
these modes is a portion of the whole image.

						Hope this helps,
						Chris Hall

Chris Hall - hallch@handel.colostate.edu <- email address.
Newsgroups: comp.lang.pascal
From: clane@csws18.ic.sunysb.edu ()
Subject: Optional parameters in procedures and functions
Originator: clane@csws18.ic.sunysb.edu
Organization: State University of New York at Stony Brook
Date: Fri, 2 Oct 1992 16:24:04 GMT

	Is it possible to implement optional parameters in procedures
and functions in TPv6.0?  Something similar to reset(file,blocksize) where
one can choose not to pass any parameter to blocksize and a default is
automatically used.

-- 
                          | "So who is this Al Gorithm guy they keep
Charles F. Lane           |  mentioning in my Computer Science classes?"
clane@Libws1.ic.sunysb.edu| "And Sal Manilla, he's tied to chickens some how."
Newsgroups: comp.lang.pascal
From: fward@sneezy.helios.nd.edu (frank ward)
Subject: Re: Turbo Pascal 7.0
Reply-To: fward@sneezy.helios.nd.edu (frank ward)
Organization: University of Notre Dame, Notre Dame
Date: Sat, 3 Oct 1992 06:14:42 GMT

Hi all,

	Something no one has included in their wish lists is a decent cross-
reference generator.  Something that keeps track of the proper scope of variables
especially those local variables that have the same name as globals.  
  	Since the compiler has to take care of that anyway, an option to
generate a cross reference file would not be impossible.  I've made a small
attempt at writing my own xref program, but to do it correctly would take up
more time than I can afford to put into it (if I want to graduate, that is).


Just trivia.

Frank Ward                    Atomic Physics
Physics Department            While 'U' Wait
University of Notre Dame
fward@happy.helios.nd.edu

DISCLAIMER :: Nobody listens to me anyway.
From: v206gb6c@ubvmsd.cc.buffalo.edu (PauL M SchwartZ)
Newsgroups: comp.lang.pascal
Subject: Re: Turbo Pascal 7.0 wishlist (LONG)
Date: 26 Sep 92 17:58:00 GMT
Organization: University at Buffalo
News-Software: VAX/VMS VNEWS 1.41

In article <1992Sep25.222306.3772@oucsace.cs.ohiou.edu>, tswingle@oucsace.cs.ohiou.edu (Tom Swingle) writes...
> 
>1.  As mentioned before, the ability to return records from functions.  I
>would think that a similar mechanism that is used to return strings from 
>functions could be used to return records.  Actually, if it were possible 
>to have it all, I would like to see the ability to return any type from a 
>function.  I'm not sure if there would be some types that might cause a 
>problem.  Just being able to return records would be enough to satisfy me
>on this point.
>

    I think they would have to allow you to return any type from a function to
allow this.  If not, what happens in the case when the record contains a typed 
variable? 

> 
>4.  The ability to invoke procedures taking structured types as parameters
>with constant values.  For example, if you had a procedure declared like
>"procedure PlotPixel(P:Pixel; Color:Integer);" and type Pixel were 
>declared as a record with fields X and Y (Integers), this procedure could
>be invoked as: "PlotPixel((5,10),Red)" or something similar, maybe even
>requiring a type name be present as in "PlotPixel(Pixel(5,10),Red)" so
>that you can be sure that the user knows what type he/she is referring to.
>Arrays could be done this way too, but I'm not sure if it would be quite as
>useful (especially since arrays can be quite huge).  Again, I would be 
>happy at a minimum with being able to do records this way.  It has always
>seemed wasteful to have to declare a variable that you will not be using for
>anything else just to call a procedure like this.
>

    Kind of interesting, but as above, they way the compiler handles types must
be changed in order for this to work.  I think it is one of those things we
will never see.  It adds a level of complexity (read: slowdown) to the compiler.

> 
>8.  Provide both a 16-bit real-mode compiler and a 32-bit protected mode
>compiler that would allow you to access all available memory.  The 16-bit
>real mode compiler could even offer virtual memory (disk swapping) as a
>subsitute.  I have seen this suggestion many times before, as well, and
>thought I would add it as another vote in support of it.

    I vote yes too (at least a 16-bit extender, and not the scaled down one
I've heard them talking about).

PauL M SchwartZ           | Follow men's eyes as they look to the skies
Future site of .sig virus |     the shifting shafts of shining 
v206gb6c@ubvms.BitNet     |         weave the fabric of their dreams.
pms@acsu.buffalo.edu      |             - RUSH -
From: rogers_m@watson.bms.com (MICHAEL ROGERS)
Newsgroups: comp.lang.pascal
Subject: Re: Turbo Pascal 7.0
Date: 3 Oct 92 16:02:00 GMT
Organization: Bristol Myers Squibb Pharmaceutical Research Institute
News-Software: VAX/VMS VNEWS 1.4-b1

In article <BvGF1x.ABB@watserv1.uwaterloo.ca>, jim@sciborg.uwaterloo.ca (Jim Tremain) writes...
>I want to add Long Strings to the list of things to add to Turbo Pascal 7.0.
>254 characters is too few for many of the little utilites I write to
>manipulate text files.  Having to use arrays means I have to write all of
>my own LENGTH, POS .... functions.  This should be built in!!!
> 
>Jim Tremain
Hear, Hear!!!!  Make String a Word variable instead of a Byte?  Is that
so hard, Borland?
Newsgroups: comp.lang.pascal
From: konopka@ils.nwu.edu (Ray Konopka)
Subject: Re: Bubble Sort Routine
Organization: The Institute for the Learning Sciences
Date: Mon, 5 Oct 1992 20:00:27 GMT

In article <1992Oct5.143009.27907@exu.ericsson.se> exuhag@exu.ericsson.se writes:
>Robert Horn writes:
>>
>>How difficult is it to code quicksort? Just look it up and copy it
>>verbatum from nearly any book on data structures and algorithms. 
>>There shouldn't be any great need for comments
>
>Almost all algorithms books give quicksort in a form that cannot
>simply be typed it and executed.  Either the language is not Pascal,
>is pseudo-Pascal, or has various assumptions which may not apply to
>your case (only sorts a certain type of array, etc.).  I wouldn't
>reccommend trying to get such a subtle algorithm working without
>a full understanding of it.  Just get one of the many sorting routines
>available from various ftp sites or from a commercial package.

If you're using Turbo Pascal, look in the DEMOS directory, at the 
QSORT.PAS file.  Borland provides a demo of the QuickSort algo
in TP format.  

Later,
Ray Konopka
konopka@eagle.ibc.edu

Newsgroups: comp.lang.pascal
From: kwe3740@ultb.isc.rit.edu (K.W. Estes)
Subject: TurboVision Terminal
Originator: kwe3740@ultb
Organization: Rochester Institute of Technology
Distribution: USA
Date: Sun, 27 Sep 1992 13:49:11 GMT

Are there any simple source code I can use to learn how to
make a terminal program using TurboVision (Borland TP 6.0)?

Thanks! 

-- 
###################################################################
       kwe3740@ultb.isc.rit.edu    <--- For high voltage mail
       kwe3740@ritvax.isc.rit.edu  <--- For low voltage mail
       K.W.Estes  "Beefy's my name, Technology's my game!"
Xref: sparky comp.lang.pascal:5843 alt.msdos.programmer:2515 comp.os.msdos.programmer:9739
From: pigeons@JSP.UMontreal.CA (Pigeon Steven)
Newsgroups: comp.lang.pascal,alt.msdos.programmer,comp.os.msdos.programmer
Subject: Re: Hi() and Lo() functions?
Date: 5 Oct 92 21:42:36 GMT
Organization: Universite de Montreal

In article <1992Sep30.071546.20677@afterlife.ncsc.mil> hcbarth@afterlife.ncsc.mil (Bart Bartholomew) writes:
>In article <JT.92Sep29134023@fizyk1.fuw.edu.pl> jt@fuw.edu.pl (Jerzy Tarasiuk) writes:
>>>>>>> On 25 Sep 92 13:10:04 GMT, pigeons@JSP.UMontreal.CA (Pigeon Steven) said:
>>Pigeon> Well... What about the DIV operator (integer division).
....

>	AAAArrrrrgh.  Don't use divides, or mods to get
>power-of-2 remainders.  I don't know if it's PC in new
>computerspeak, but a shift operator is much faster than
>any other.  You want the upper 8 bits of a 16 bit int?
>Just shift the sucker 8 to the right and take it.  If you
>can't control the sign extension in your language, mask
>off the lower 8.  upper = (int >> 8) & 0xff; and be done
>with it.  If some brain-damaged supervisor doesn't understand
>it, or if some fresh from school 'programmer' can't follow it,
>put in a comment or two to help them.
>	BartB
>-- 
> If there's one thing I just can't stand, it's intolerance.
>*No One* is responsible for my views, I'm a committee. Please do not
>infer that which I do not imply.  hcbarth@afterlife.ncsc.mil


The point was to get version independant. If it was not the goal
of the thing, we'd AND $ff and the thing would be done. The first
guy wanted to know an PASCAL INDEPENDANT way. Sorry. Read care-
fully before answering.


-- 
 _ ___  __       __ _  | Steven Pigeon
(_  |  (__ \  / (__ |\ | (a.k.a)
__) |  (__  \/  (__ | \| pigeons@JSP.UMONTREAL.CA
==Computer Science & Operation Research, Universite de Montreal==
From: "jeff zeitlin" <jeff.zeitlin@execnet.com>
Newsgroups: comp.lang.pascal
Subject: alice pascal
Date: 27 Sep 92 06:16:45 EST
Reply-To: "jeff zeitlin" <jeff.zeitlin@execnet.com>
Distribution: comp
Organization: Executive Networks Information

     Subject: Alice or other Pascal editor/interpreter

AD::>My question is this:  Does anything like that exist for my new computer, a
  ::>486/50 pc clone?  I thought that there was an Alice for DOS as well, but I
  ::>have not been able to locate it yet.

  I have a demo copy of ALICE, The Personal Pascal, for IBM PC and
  Compatible Systems.  It is at least six years old, so I don't know
  whether the info I have is still valid.  However, at the time, you
  could get the product from

  Software Channels, Inc.
  4 Kingwood Place
  Kingwood, TX  77339

  713/359-1024

  Order Line, Credit Card Orders Only : 800/448-3400 ext ALICE



  In Canada, or International:

  Software Channels, Inc.
  212 King Street West
  Toronto, ON  M5H 1K5 Canada

  416/591-9131

  Order Line, Credit Card Orders Only, from Canada Only : 800/387-9018

  J/
  jeff.zeitlin@execnet.com
  ==================================================================
  Anything I say in this or any communication to this or any medium
  is strictly my own non-authoritative opinion, unless otherwise
  explicitly noted.  Except for myself, or where explicitly noted
  otherwise, I do not speak for any individual or organization.
  ==================================================================

 * OLX 2.2 * To a cat, "NO!" means "Not while I'm looking."
--
Executive Network Information System  (914) 667-4567
International ILink Host
Xref: sparky comp.lang.pascal:5765 alt.msdos.programmer:2490 comp.os.msdos.programmer:9691
From: pigeons@JSP.UMontreal.CA (Pigeon Steven)
Newsgroups: comp.lang.pascal,alt.msdos.programmer,comp.os.msdos.programmer
Subject: Re: Hi() and Lo() functions?
Date: 1 Oct 92 21:28:35 GMT
Organization: Universite de Montreal

In article <JT.92Sep29134023@fizyk1.fuw.edu.pl> jt@fuw.edu.pl (Jerzy Tarasiuk) writes:
>>>>>> On 25 Sep 92 13:10:04 GMT, pigeons@JSP.UMontreal.CA (Pigeon Steven) said:
>Pigeon> Well... What about the DIV operator (integer division).
>Pigeon> Hi(bx) = BX div 256
>Pigeon> Most of languages implements a version of the DIV operator. If the target
>Pigeon> language doesnt: hi(bx) = trunc(bx/16)  (integer part of,).
>
>You are right to use DIV in Pascal (in most of other languages / is
>integer division if both operands are integer variables). But don't
>forget the sign problem in any langguage unless you use unsigned
>variables (e.g. if BX is $F123, BX div 256 is $FFF1, not $00F1).
>(of course can put result in byte-size variable and sign makes no
> difference unless range checking is turned on and try to put in
> UNSIGNED byte - can get run-time error in such a case)

To: jt@fuw.edu.pl
Subject: Re: Hi() and Lo() functions?
Newsgroups: comp.lang.pascal,alt.msdos.programmer,comp.os.msdos.programmer
Organization: Universite de Montreal
Cc: 
Bcc: 

In article <JT.92Sep29134023@fizyk1.fuw.edu.pl> you write:
>>>>>> On 25 Sep 92 13:10:04 GMT, pigeons@JSP.UMontreal.CA (Pigeon Steven) said:
...
>Pigeon> language doesnt: hi(bx) = trunc(bx/16)  (integer part of,).
                                            ^^
What about 256?

>You are right to use DIV in Pascal (in most of other languages / is
>integer division if both operands are integer variables). But don't
>forget the sign problem in any langguage unless you use unsigned
>variables (e.g. if BX is $F123, BX div 256 is $FFF1, not $00F1).
>(of course can put result in byte-size variable and sign makes no
> difference unless range checking is turned on and try to put in
> UNSIGNED byte - can get run-time error in such a case)

Or you can do "abs(BX div 256)", or "(bx div 256) mod 256", depending
on the behavior of mod on your specific version. Sorry, I dont do 
those things. As I use Tp, so, for me, it reads: (bx and $ff). 

	S.

-- 
 _ ___  __       __ _  | Steven Pigeon
(_  |  (__ \  / (__ |\ | (a.k.a)
__) |  (__  \/  (__ | \| pigeons@JSP.UMONTREAL.CA
==Computer Science & Operation Research, Universite de Montreal==
From: holland@matt.ksu.ksu.edu (Rich Holland)
Newsgroups: comp.lang.pascal
Subject: Re: help with converting letters to numbers
Date: 30 Sep 1992 09:33:29 -0500
Organization: Kansas State University
NNTP-Posting-Host: matt.ksu.ksu.edu

jkorpela@lesti.hut.fi (Jukka Korpela) writes:

>Using e.g. ord(ch)-ord('A')+1 is much better because

Actually, it would be ord(ch)-ord('A')-1   :-)

-- 
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);}
Newsgroups: comp.lang.pascal
From: mccullou@cae.wisc.edu (Mark McCullough)
Subject: Re: Bubble Sort Routine
Organization: U of Wisconsin-Madison College of Engineering
Date: 4 Oct 92 09:50:44 CDT

In article <718166419.1@ttlg.ttlg.UUCP> James.MacGregor@ttlg.UUCP (James MacGregor) writes:
> > From: Dennis.Ayala@f23.n367.z1.FIDONET.ORG (Dennis Ayala)
> > Newsgroups: comp.lang.pascal
> > Subject: Bubble Sort Routine
> > Organization: FidoNet node 1:367/23 - The Wall 1,
> > Guaynabo PR
> > Date: Sun, 27 Sep 92 20:30:00 EDT
>
> > Hello All:
>
> >   If it is possible that somebody would be kind enough
> > to post a pretty good bubble sort routine I will appreciate
> > it. I kinda need one.
>
> > Greetings,
>
> > Dennis Ayala
>
>Dennis, without intended offense, the only 'good' bubblesort is a *dead* bubblesort!  If you want a simple-to-code sorting algorithm that's ample for general use, look seriously at using a Shell or (preferably) Shell-Metzner.
>
>Bubblesorts tend to have a processing time proportional to the *square* of the number of elements processed (IE: a 10 element list takes 100 time units, a 100 element list takes 10,000 time units!)

Uh, not to burst your shell, but shell sorts are also a O(n^2) sort.  They 
simply can take advantage of special situations better than the base bubble
sort.  Also, for a list with just a few elements out of order, the smart
bubble sort is one of the better sorts to use, (assuming the elements are
simply flipped), as it will reflip those elements and quit.  Don't knock the
bubblesort.  Unless you are dealing with more than 1000 elements in the list
to be sorted, it normally isn't worth the time to look up a fancier sort.
Good code also means ease for the programmer and maintainablity.  I have yet
to see a non-professional programmer comment their code properly to make
a fancier sort worth it for common programming, but professional programmers
tend to use Fortran 77.  (What's this C everyone talks about, it is no good
for math.) ;) >

>If you are only dealing with a very small number of elements, at least consider making the sorting an integral part of the input routine (IE: using something like an insertion sort); bubble-sorting is only useful as an example of what *not* to do!  :-)

Turns out most sorts we use today are O(n^2).  Remember what big O notation
means if you doubt me.  Yea the other sorts are faster, but they differ
by a constant, and not by a magnitude.  Quick sort is a genuinely faster sort,
but why bother coding it?  It means you have to look it up, and _proper_
commenting is a pain.  How many people actually understand each step of a
quick sort enough to rediscover it?  (Since it was discovered by accident,
probably only if you really studied it.)  As I remember, the quick sort is
a O (n lg n).  If you really want something faster, use a hashing table.
O (n).  But who wants to waste the memory?  Remember, 100 clock ticks is still
quite fast.

As for the original post looking for the code, I would reccomend buying a 
reasonable book on Computer Science in Pascal.  It should have a whole section
on sorting and searching.

:)M^2