HDTenEightyP/NetNews huggingface dataset:
From: reindorf@us-es.sel.de (Charles Reindorf)
Subject: Re: BC++ far* default in medium model
Organization: SEL-Alcatel Line Transmission Systems Dept. US/ES
Date: Sat, 7 Nov 92 14:01:22 GMT

In article <1992Nov6.171236.1394@rei.com>, fox@rei.com (Fuzzy Fox) writes:
|> >>>In your data declarations, if you do not specifically specify the
|> >>>keyword far, then the declaration is left in the default data
|> >>>segment, which can be a problem if you have more than 64k of global
|> >>>data.
|> 
|> This is true except in BC++ 3.1, where an option can be set which forces
|> all data declarations larger than a certain threshold to be
|> automatically moved into another segment.  The option is -Ff=nnnn, I
|> believe.  I use -Ff=1024 in all my programs.  In the IDE, this option is
|> set as the "Automatic Far Data" option and threshold.
|> 
|> >If you want to have arrays or structures that explicity
|> >store > 64k of data in one instance then you have to use the HUGE
|> >model,
|> 
|> You do not have to use huge model, you just need to use the 'huge'
|> keyword when declaring the data item.  In fact, a common misconception
|> is that the Huge model forces all pointers to be huge by default.  This
|> is not true.  Huge model is just like Large model, except that each
|> individual source file gets its own data segment automatically.  A
|> single source file program will compile exactly the same under Huge and
|> Large models.

I believe it is the case that virtual function table pointers are 4 bytes in the
huge model as opposed to 2 bytes in the large model. This is because in the huge
model they point to "any old" data segment whereas in the large model they point
to the "default" data segment, so the segment information is not required in the
latter case. Hence the compilation of a huge model program can be different and
in particular you will probably get linkage problems if you try to mix, just in
case you were thinking of doing so.

I think similar highly confusing scenarios arise when considering whether the
"this" pointer is near or far in mixed memory model programming between small data
and large data models, and I have seen bugs in earlier versions of BC++ in connection 
with this.

I realise I may be fragmenting this thread of argument somewhat, but I would be
interested if anyone out there knows a bit more about this aspect of C++ programming
on PCs.

|> Huge pointers are frought with problems, and you need to know what
|> you're doing in order to use them properly.
|> 
|> -- 
|> #ifdef TRUE        | Fuzzy Fox (a.k.a. David DeSimone)       fuzzy@netcom.com
|> #define  TRUE   0  |
|> #define  FALSE  1  |     "History doesn't repeat itself, but it rhymes."
|> #endif             |                                   -- Mark Twain

All of my opinions are mine
--- Charles Reindorf
Xref: sparky comp.os.msdos.programmer:10605 comp.sys.ibm.pc.programmer:583
From: ggh@reef.cis.ufl.edu (Greg Huey - Aymer deGregory)
Newsgroups: comp.os.msdos.programmer,comp.sys.ibm.pc.programmer
Subject: MS-DOS in 386 protected mode
Date: 14 Nov 92 01:48:44 GMT
Followup-To: comp.os.msdos.programmer
Organization: Univ. of Florida CIS Dept.


  Im trying to write a 'bare-bones' multi-processing os for the 386.
I dont wont to create my own dos, obviously I want to use MS-DOS...
Question is, how do I do this in protected mode?
  Presumably, I create the GDT, LDTs, TSSs, IDTs, and the viarious gates...
But no matter HOW I map virtual memory with the GDT, LDTs, I cannot make
the virtual memory transparent, due to the priv bits and table indicator
bit. I need to put the 386 in protected mode, but it has to look the
same to MS-DOS, otherwise MS-DOS will fail, wont it? For instance, MS-DOS
knows one of its buffer is at seg:offs -- when I put the 386 into protected
mode, seg, rather than being a simple address, will now be treated as a
selection index into the GDT or LDT.

Is there some way (and how?) that I can get MS-DOS to work in the new
protected mode once I make the switch from real mode to protected mode?

Does anyone know of a ftp site or the like w/ detailed information on
MS-DOS that might help me here?

Many thanks
Greg Huey
ggh@reef.cis.ufl.edu
From: exuhag@exu.ericsson.se (James Hague)
Newsgroups: comp.os.msdos.programmer
Subject: Re: COMPILING SPEED
Date: 10 Nov 92 16:09:40 GMT
Reply-To: exuhag@exu.ericsson.se
Organization: Ericsson Network Systems, Richardson, TX
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.

Dan Odom writes:
>
>Yes, it is.  Go write a compiler for Pascal.  Then write a compiler for
>C++.  You'll see.

But until Turbo came along, MS-DOS Pascal compilers were total
dogs.  What's troubling here is that people are blindly accepting
the "fact" that C++ compilers _have_ to be slow.

(It may be that C++ is such a difficult language to compile that
compilation speed is the least of a compiler writer's worries.
Ada has a similar problem in this respect.  Perhaps the language
is unnecessarily complex--my opinion only.)

--
James Hague   
exuhag@exu.ericsson.se
Newsgroups: comp.os.msdos.programmer
From: fs8j@uvacs.cs.Virginia.EDU (Fraser Street)
Subject: What Borland C library calls that use DOS?
Organization: University of Virginia Computer Science Department
Date: Fri, 13 Nov 1992 15:14:18 GMT

Does someone have a list of Boralnd C library functions that make use
of DOS (the int 21 API).  I can't find any list of these calls in the
Borland documentation.  I have apx. 10,00 lines of C which is
ultimately going to be part of a device driver so I need to remove any
calls to DOS made by this code after initialization of the driver.


Thanks,

Fraser

-- 

Fraser Street
fraser@Virginia.EDU
University of Virginia
Computer Networks Laboratory
From: infidel@cislabs.pitt.edu (todd j. derr)
Newsgroups: comp.os.msdos.programmer
Subject: Re: What is MicroSoft's usenet address?
Date: 8 Nov 92 21:54:03 GMT
Organization: university of pittsburgh cis

In article <1dj8itINN6ru@matt.ksu.ksu.edu>, danodom@matt.ksu.ksu.edu (Dan Odom) writes:

> I've found another corporation that behaves this way: Borland.
> If you send mail to customer-support@borland.com, they send you
> a message saying that they don't offer support on the Internet and
> you'll have to ask them on Compu$erve.  What a rip!

This is blantantly false.  I've contacted customer-support@borland.com
several times when I had a problem with a product or wanted to place
an order.  Perhaps you expected TECHNICAL support from that address,
which is not currently offered on the net (though I'm hoping it will
be someday soon!)

no affilation with Borland other than a (usually) satisfied customer.

-- 
todd j. derr - the c.o.m.a. moderator!  
infidel+@pitt.edu       (412) 363-9027   
infidel@pittunix (BIT)  work: 648-1247  
Xref: sparky comp.os.msdos.programmer:10582 comp.sys.intel:2245
From: kr@jet.uk (Kenneth Reed)
Newsgroups: comp.os.msdos.programmer,comp.sys.intel
Subject: Jmp (ea), offset (?), selector (tss)
Date: 13 Nov 92 08:53:33 GMT
Organization: Joint European Torus

Can anyone tell me what the meaning of the "offset" field is when doing a
jump with a TSS selector as the argument?

I would have assumed that the EIP would be loaded from the TSS so I
can't see what the role of the offset field in the instruction is.

As you may have deduced, my program crashes when I try jumping to a
(virtual 8086) TSS (not even an exception, the machine just reboots)
and, as I had to hand-code the instruction because my assembler
doesn't seem to support it, I may have got it wrong. I just put a
16-bit zero in the field (I'm in a 16-bit code segment).

As always, any help would be most appreciated.

Ken
-- 
- Ken Reed, Joint European Torus, Abingdon, Oxfordshire, UK
  kr@jet.uk
- Disclaimer: Please note that the above is a personal view and should not 
  be construed as an official comment from the JET project.
Newsgroups: comp.os.msdos.programmer
From: madia@anaconda.cis.ohio-state.edu (joseph anthony madia)
Subject: .OBJ file format
Organization: The Ohio State University Dept. of Computer and Info. Science
Date: Fri, 13 Nov 1992 10:23:20 GMT

	I'm looking for information on the .OBJ file format for BC++ 3.1. 
Is there anyplace online that would have this documented? If not, is there a
book that has this info in it? Also, are the formats the same for MSC and
MASM? Please E-Mail if you can help. Thanks in advance.

Joe Madia				madia@cis.ohio-state.edu
From: tackett@cs.utk.edu (Jack Tackett)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Help needed: file read/write errors
Date: 10 Nov 92 01:28:35 GMT
Organization: University of Tennessee, Knoxville - CS Department
NNTP-Posting-Host: duncan.cs.utk.edu
Summary: smartdrive blows chunks

In article <4414@winnie.fit.edu> rpollack@zach.fit.edu (Randy Pollack) writes:
[ stuff deleted ]
>I guess my question is - has anybody else experienced problems like this,
>and, if so, do they seem related to either MS Windows, SMARTDRV, or 
>Turbo Pascal?  I'm at a loss as to how to advise my customers without
>a better idea as to what's going on.  
  
pardon me while I climb up on my soap box ......
Inevidebly(sp) almost every problem ( except 2) I've had in the past six
months I've solved by taking smartdrive off the affected systems.  At least
out of the config.sys - If absoluted needed I leave it in autoexec.bat.
I've been  
- unable to load and run codeview until removing smartdrive
- lost massive amounts of sectors/clusters on three machines
- been unable to switch batch files and reboot - the cache isn't flushed-
  sometimes for as long as 5 secs(this is configurable though)
- smartdrive and scsi's get along sooooo wellll ( even with double buffers )
   NOT!
- been unable to use a cd-rom until smartdrive moved to autoexec.bat
(the above is not exclusive and represents my opinions and not those of
UT or my employer)
thankyou.......
--Jack
From: tod@eies2.njit.edu (Tod Gordon)
Newsgroups: comp.os.msdos.programmer
Subject: DGROUP overflow in Zortech C
Date: 7 Nov 92 00:17:44 GMT
Organization: NJIT - EIES2

We are linking a large program under Zortech C, in VCM model, and
the DGROUP segment overflows by 8K.  I don't want to put 'far' keywords
all over my code, is there any other way to get it to link? (no we can't
stch compilers) I wish they had something like Microsoft's /Gt or
Borland's /Ff switches, that makes variables far.

Tod Gordon (tod@eies2.njit.edu)
Xref: sparky comp.os.msdos.programmer:10358 comp.os.ms-windows.programmer.tools:1338 comp.text:1354 comp.unix.programmer:5163
From: pepper@falch.no (Steve Pepper)
Newsgroups: comp.os.msdos.programmer,comp.os.ms-windows.programmer.tools,comp.text,comp.unix.programmer
Subject: Re: Seeking full text search engine
Keywords: full,text,search
Date: 5 Nov 92 09:14:44 GMT
Organization: Falch Hurtigtrykk as, Oslo, Norway

paul@uxc.cso.uiuc.edu (Paul Pomes - UofIllinois CSO) writes:

>The Center for the New OED, or is it Open Text Systems, markets a
>patricia tree search engine called "Pat".  We use it locally to access

PAT is marketed commercially by Open Text Corporation, Suite 550,
180 King St. S. Waterloo, Ont. Canada N2J 1P8, Tel. (519) 571-7111,
Fax (519) 571-9092. The product was demonstrated at SGML '92 by Tim
Bray, who can be reached at tbray@watsol.uwaterloo.ca.

</steve>

-- 
</(pepper)steve>                                   pepper@falch.no
------------------------------------------------------------------
falch hurtigtrykk a.s, postboks 130 kalbakken, n-0902 oslo, norway
tel +47 (2) 163040      fax +47 (2) 162350      bbs +47 (2) 162650
From: andyg@hpcvra.cv.hp.com (Andrew Gryc)
Newsgroups: comp.os.msdos.programmer
Subject: Re: passing info between a TSR and a program
Date: 6 Nov 92 18:20:51 GMT
Article-I.D.: hpcvra.143140003
Organization: Hewlett-Packard Co., Corvallis, OR, USA


>Does anybody know how I can pass info between a TSR and a program?
>What I am trying to do is to put 4-byte address of a handler in some
>place, and get that address later to use in the other program.

Probably the safest method is to hook the multiplex interrupt (2Fh), and
use it to pass info back and forth.  You need to provide an unique signature
that your program can send and the TSR can recognize; the most common way
of doing this is loading a handful of registers with unlikely values (i.e.
not 0,1, but maybe something like 1357h or ASCII letter values that have 
some significance to you).  The TSR looks for these, and if it finds them, 
responds to a command word in another arbitrary register, returning an address.

The absolute safest thing to do is to write the TSR and program to be able to
use different signatures in case a TSR already on the multiplex chain has the
same signature, but in most cases this probably isn't necessary.  Microsoft
tends to espouse this approach though, so be as safe as you feel necessary.

An example of this general method:
  
   TSR: Hooks into 2Fh chain--
      If AX=4123H and BX=6987H and CX=1012H (DX is command word if needed);
      otherwise, call old 2Fh vector.

   Program:  Calls int 2F with regs loaded as above (DX is command if you need
      more than one action).  TSR recognizes signature and loads ES:BX with 
      address.

This method is the method used most frequently for a TSR program to communicate
to its resident portion (i.e. using command switches to change the state of
an already installed TSR).

--------------------------------------------------------------------------
Andrew J. Gryc      |  #include <stddisclaimer>
Hewlett-Packard     |
Corvallis, OR  USA  |
Newsgroups: comp.os.msdos.programmer
From: andrew@giraffe.ru.ac.za (Andrew Murdoch)
Subject: Direct video memory access
Summary: Direct video memory access
Keywords: Direct video memory access
Organization: Rhodes University, Grahamstown, South Africa
Date: Thu, 12 Nov 1992 13:42:57 GMT

I would like information on accessing video memory directly on any PC.  I 
need information for any screen type, in particular, HERCULES, CGA, EGA and 
VGA, for text and graphic modes.  Please would any kind soul send me any 
information that they may have on the subject, or a good book reference.
Please E-mail directly to me.  I will post a summary if there is enough 
response.
Thanks
--
     |\/|     v |       ANDREW MURDOCH   -   Institute for Water Research
 /_\ |  | \___@ |  Rhodes University, Box 94, Grahamstown, 6140, South Africa
/   \     /   \ | Internet: andrew@iwr.ru.ac.za     Phone: [xx27] [0]461 24014
Newsgroups: comp.os.msdos.programmer
From: abakker@cs.vu.nl (Arno BAKKER)
Subject: Re: FOPEN command
Organization: Dept. of Computer Science, Vrije Universiteit Amsterdam
Date: Fri, 6 Nov 1992 10:37:51 GMT

>03 Nov 92, BL0528540-Bill Oswald  ALC2817 writes to All:
>
>        stream=fopen("c:\foo\afile", "r")
>
> The resulting executable works if afile is in the same directory
> as the executable. If the above is correct the fopen command
> should be able to find afile independant of where the executable
> lives. But that does not seem to be the case. What am I doing wrong?
> BTW, I am using borland c++ 3.1
>

Since C uses the backslash as an escape character, it isn't the command
that's wrong, it is the FILENAME!
It should read:

	"c:\\foo\\afile"

Currently the compiler interprets \f and \a as escape sequences
and thus messes up your string.

Hope this helps,

		Arno

		
-- 
===========Arno BAKKER
Department of Computer Science,
Vrije Univeristeit Amsterdam, Holland.
From: gans@acf3.NYU.EDU (gans)
Newsgroups: comp.os.msdos.programmer
Subject: Re: fread-inf >= 64K in Borland C++
Date: 9 Nov 92 21:04:00 GMT
Organization: New York University

Bill Denton writes:
>/* acf3:comp.os.msdos.programmer / bill@sees.bangor.ac.uk (Bill Denton (AD)) /  4:55 am  Nov  9, 1992 */
When I try to fread 64K or more in Borland C the PC locks up. This occurs with
>all memory models and with version 2.0 and 3.0. Is this serious bug fixed in
>version 3.1 ? How do I fix it, without the obvious, but unsatisifactory, solution of reading the data in chunks smaller the 64K ?
>
>Thanks in advance

>Bill Denton
>bill@sees.bangor.ac.uk
>School of Electronic Engineering and Computer Science
>University of Wales, Bangor
>UK
/* ---------- */
Newsgroups: comp.os.msdos.programmer
From: gregb@murphy.com (Greg Banschbach (Unigroup of New York))
Subject: Re: Anyone with experience porting from UNIX/X11 to MSDOS??
Keywords: porting, unix, X11, msdos
Organization: Murphy & Durieu, NYC NY, USA
Date: Tue, 10 Nov 1992 03:36:12 GMT

In article <1992Nov7.211019.6859@utwente.nl> emmerik@utrcu1.civ.utwente.nl (Emmerik P.J.L. van) writes:
>Anyone out there with experience in porting UNIX/X11 applications to
>MSDOS?
>
>We are investigating the possibility of porting a rather big UNIX/X11
>application (about 25 Mb source) written in FORTRAN and C to MSDOS.

---->
---->   Why not just get Desqview/X  -  X windows for the PC ?? 
---->   No fuss,  No grief, just let the UNIX box have the load 
---->  	and the DOS box have the nice GOOOEY interface.   ;-)  
---->   OH and the best part - No blood, sweat, and tears for 
---->   the developement staff.  

	Good Luck, 
	
	Greg.

>-- 
>Pieter van Emmerik                    | Phone:  +31-74-464231
>HDS info management                   | FAX:    +31-74-464110
>P.O.box 23                            | E-mail: emmerik@utwente.nl
>7550 AA  Hengelo, The Netherlands     |         hp4nl!utrcu1!emmerik


Newsgroups: comp.os.msdos.programmer
From: lb00197@Corlac (David Porco)
Subject: Re: putting chars back to keyboard buffer...
Organization: Lockheed
Date: Wed, 11 Nov 92 22:56:47 GMT

In article <1992Nov10.204616.25750@slate.mines.colorado.edu> iarit@slate.mines.colorado.edu (ARIT ISMAIL) writes:


>Hi,

>I am writing  a small TSR that will put a string back
>to the keyboard buffer. I got some ideas how to use keyboard 'head'
>and 'tail' pointers, but still confused a bit. I understand what the
>'tail' is and how to use it, but 'head' is confusing..
>Does anybody have any 'C' function/idea how to put chars back to
>keyboard buffer without crashing/rebooting the system?
>Any idea/help is appreciated..
>Thanks.
>iarit@slate.mines.colorado.edu

This is kind-of a wierd thing (But aren't all computer concepts).  There 
are basically 4 pointers: Buffer_Start, Buffer_End, Buffer_Head & 
Buffer_Tail.

Buffer_Start is the start of the Keyboard buffer in memory, and Buffer_End
is the end of this buffer.  These are Far pointers at address 0x00400080
and 0x00400082 respectively.  

The Buffer_Head and Buffer_Tail form a sliding/wraparound window within 
this buffer. 

To make a simple illustration... Say an imaginary keyboard buffer started
at address 1 and ended at address 32 (16 ASCII bytes & 16 ScanCode bytes)
Our first window containing the string "HELLO" might look like this:

         00000000011111111112222222222333
Buffer : 12345678901234567890123456789012
         --------------------------------
Data   : H.E.L.L.O.                     (The dots represent the scan codes)
 
In this example Buffer_Head Address=1 and Buffer_Tail Address=11 (Buffer
Tail points to the next available address).

Now for the wierd part:  Lets say our Buffer_Head Address=29 and our
string was "HELLO".  The keyboard buffer would look like this:

         00000000011111111112222222222333
Buffer : 12345678901234567890123456789012
         --------------------------------
Data   : L.L.O.                      H.E.  

The Buffer_Head Address=29 and the Buffer_Tail Address=7.  When the 
keyboard buffer is parsed, the string will be "HELLO" because it is a 
sliding window/wraparound ring.

Whew...

Some info you ought to know:
You can only fit 16 chars in this buffer (16 ASCII codes + 16 Scan Codes),
unless you are up to relocating and expanding the keboard buffer in your
program (not recommended for the weak of heart).
.

Good luck.
.
From: colassik@hpwala.wal.hp.com (Ken Colassi )
Date: Tue, 10 Nov 1992 16:30:28 GMT
Subject: Timing/Tick Intervals in MS-DOS
Organization: Hewlett-Packard Company
Newsgroups: comp.os.msdos.programmer

Just for basic curiosity I am wondering what/how/why timing or tick intervals
are implemented and what hardware dependancies there are.

How do peripherals work with this timing strategy?

Thanks

Ken
Newsgroups: comp.os.msdos.programmer
From: jenk@microsoft.com (Jen Kilmer)
Subject: Re: What is MicroSoft's usenet address?
Date: 11 Nov 92 07:29:11 GMT
Organization: Microsoft Corporation

Duncan's hit the nail on the head, such as it were.

In article <dmurdoch.261.721411529@mast.queensu.ca> dmurdoch@mast.queensu.ca (Duncan Murdoch) writes:
>In article <1dj8itINN6ru@matt.ksu.ksu.edu> danodom@matt.ksu.ksu.edu (Dan Odom) writes:
>It's just inefficient for them to offer tech support by email.  

Microsoft doesn't do support via email, but snailmail support averages
a $10 cost per letter. I don't remember the cost for the average 
phone call, but this is why many Microsoft product groups don't do
support via letters.

If you ask 
>your question in an open forum (like Compuserve or Usenet), then lots of 
>other people will see your question and their answer.  

Particularily for programmers, Microsoft is pushing Compuserve support
for this reason.

>I suspect they'd be quite happy to have a tech support forum on Usenet, if 
>it could be demonstrated that
>
> a) There'd be no objections to "commercial" use.
> b) There's the right kind of audience here to justify it.

Especially B). No, I will not spearhead such an effort (one is already
underway) nor will I endorse it. I am attempting to provide information
that may help you understand where MS (and other companies) is coming
from. 

>Compuserve isn't that expensive; if you live in a big city so that it's a 
>local call, and you use a session automator, you can get a lot of 
>information for $5/month.  If you can't afford to spend $5/month, then the 
>sad truth is that Borland probably isn't interested in helping you.  
>They aren't helping you out of some noble feeling that since they sold you 
>something they should support it; they help you because they hope to sell 
>you something else.

Another reason why good support is an issue watched by many microcomputer
software companies is that happy customers tend to purchase upgrades,
purchase other products from the same company, and recommend the company
to their friends. Unhappy customers tend to not purchase upgrades, boycott
other products from the same company, and tell anyone who will listen
(without bashing their nose in) to boycott the company.

-jen
no speaking for microsoft in any way, shape, or form.
Newsgroups: comp.os.msdos.programmer
From: runefr@ifi.uio.no (Rune Fr|ysa)
Subject: Dos taking over int 5.
Organization: Dept. of Informatics, University of Oslo, Norway
Date: Fri, 13 Nov 1992 07:53:23 GMT
Originator: runefr@maud.ifi.uio.no


Yesterday, I experienced the following problem:
I have an interrupt (print screen key) routine conntected to int 5.
After booting, the interupt address is: FF000:FF54 which is owned by
BIOS, next using Norton SI to set screen mode to 80x50 lines, results
in a vector to 02D5:37E3 which is Dos system area, and my interrupt
routine which was installed before DOS takes over, no longer get 
called at the press of the print screen key.

Anyone who has any idea of how to solve this problem? 
(I prefer not to take control over int 09)

---------===============================================--------------
Rune Froysa,                 |"Science is the attempt to make the 
Dept. of Informatics         | chaotic diversity of our sense experience
University of Oslo, Norway   | correspond to a logically uniform system 
E-mail:runefr@ifi.uio.no     | of thought" - Albert Einstein.

Newsgroups: comp.os.msdos.programmer