[mod.computers.ibm-pc] Info-IBMPC Digest V5 #52

Info-IBMPC@USC-ISIB.ARPA (Info-IBMPC Digest) (05/10/86)

Info-IBMPC Digest       Saturday, May 10, 1986     Volume 5 : Issue 52

This Week's Editor:  Richard Gillmann

Today's Topics:

                       MS-DOS on the Cray X-MP
                    Formatting Floppies on the AT
                    Formatting 10M Hard Disk on PC
                  "POPF" bug in Intel 80286 (4 msgs)
                Connecting IBM AT to ethernet (2 msgs)
                    TCP/IP for the IBM PC (3 msgs)
                 Lint Error Checker for "C" Programs
               V20 chip on XT, VT240 emulator programs
                 Arc 5.13 is a Trojan Horse Program!
                              CPUID.ASM
                   How to tell if stdout is console
              Memory addressing problem on PC-1 (2 msgs)
                               DOS 3.2
                       Current DOS Environment
                      Mathematical Text Editors
              How to print WORD files on the LaserWriter
                   Problem with old Basic compiler
                 Mixed-Language Problems on Xenix 1.0
               What's the best "C" Compiler (yet again)

----------------------------------------------------------------------

From: eugene@ames.UUCP (Eugene Miya)
Subject: MS/DOS on the Cray X-MP
Date: 3 Apr 86 17:46:59 GMT

I was wondering what it takes to port PC/MS/DOS [Time, software,
license, etc.].  Suppose I gave you a radically different
architecture.  Let's say, as the joke went in the past, I gave you a
Cray.  A real Cray X-MP.  I want be serious about this.  Ignore the
hardware cost [well I guess a Cray is not that radically different:
64-bit word oriented rather than byte oriented architecture, vector
instruction set].  I assume some but not all utilities such as those
written in higher-level languages might be portable.  What would it
take?  I gave this thought because I just gave a talk on
supercomputers at CSU Fresno and this thought about evolution occurred
to me.  If we can keep increasing micro Si performance, is there
anything to really stop MS/DOS from moving to a Cray performance
hardware architecture?  I note that MS/DOS is looking more and more
like Unix as time progresses, does that stop?

Anyone familiar with the internals of VMS is also welcome to respond.
What do you think it would take to port VMS to a Cray.

I'm not implying that I plan to do this.  It's a combination of looking
back on some discussions we had three years ago and reflecting,
looking ahead a bit, and the fact that I can on occasion get a Cray
class machine to myself for my research, stand-alone (working on a
future-power micro computer, maybe?).  I've been moving radically
languages to the 2, and this is not-unrealistic.

I normally don't read this digest, please send me mail directly,
and if I get more than 8 responses, I will repost a summary.

--eugene miya
  NASA Ames Research Center
  {hplabs,ihnp4,dual,hao,decwrl,allegra}!ames!aurora!eugene
  eugene@ames-nas.ARPA

------------------------------

From: mikey@bbimg.uucp
Subject: Formatting Floppies on the AT
Date: 17 Apr 86 17:32:00 GMT

> When 360K floppies are written by a 1.2M drive, however,
> they are not always perfectly readable on a 360K drive.
> It helps if the floppy was formatted on a 360K drive.

WRONG!

The problem is the narrow head width of the 1.2 meg floppy drive
lowering S/N when read on a 360K drive.  DO NOT format on a 360K
drive and then write on a 1.2M unit, this is the quickest way to
insure that the diskette will have problems when returning to a 360K
unit.  To make the diskettes readable on a 360K unit, BULK ERASE them
FIRST, then FORMAT (40tk mode) and WRITE to them on the 1.2M unit.  THEN
use the 360K unit to --->>> READ THEM ONLY!!!!<<<---.  When a 360K
unit writes, it puts down a wider track than the 1.2M unit.  Since
the 1.2M unit leaves some of this when it writes (it double steps) 
when the 360K units try to read, it reads a NARROW data channel with
a NARROW trim erase band, with the OLD DATA causing noise around the
track!  This is also the problem with the 80 track drives as used
in the Tandy 2000.

There is the possibility that if both drives are in perfect alignment,
formatting on the 360K will lay down a guard band that the 1.2M will
EXACTLY center in when it writes, but this is the real world, I don't
believe in tooth fairies or units that might be 'perfect' just 
because they work once.  
 
Understand how floppys work, they lay down a wide band of data, then a trim
erase (DC) comes along and clips the sides of the data band so that there is
a data track with a 'silent' buffer on either side.  The head reads 
wider than just the data track and the 'guard bands' are needed to be
'silent' for higher S/N ratio.

				Mike Yetsko 
				trsvax!techsup!bbimg!mikey

------------------------------

From: bmw@aesat.UUCP (Bruce Walker)
Subject: Re: Formatting 10M Hard Disk on PC
Date: 17 Apr 86 18:02:24 GMT

Dan Lau writes:
>I just bought a 10M hard disk for my IBM/PC, but after I formatted
>it, format reported a size of 10584064 bytes total available instead
>of the usual 10592256 that is reported on a PC/XT.  What is wrong?
>The particulars are:
>
>	IBM/PC with ROM BIOS dated when original PC/XT introduced
>	IBM/PC-DOS V3.1
>	OMTI Hard disk controller 5510-3
>	CMI 5412 drive (asme drive as used by IBM, 306 cylinders, 4 heads)
>
>FDISK was used to install one DOS partition using the whole disk.  No bad
>sectors were reported when doing the hard and soft format.
>
>Does anyone know why I am missing 16-sectors (2 clusters of 8K each).

"Elementary, my dear Watson..."  I'll bet you were using DOS2.1 on the
XT and just now switched to DOS3.1 when you FDISK'ed and formatted the
new drive.  Every release of DOS fiddles some parameter or another and
3.1 is no exception.  The culprit here is FDISK.

FDISK's task is to create and maintain "partitions" on the fixed disk.
It does this by storing a special boot program and partition table on
the first sector of the disk (ie - cylinder 0, head 0, sector 1).  In
the table are structures which describe the starting cylinder and
ending cylinder numbers for up to four separate areas, or OS'es, only
one of which may be bootable at a time.  Although the partitions may
be specified as beginning and ending at an arbitrary sector, FDISK
only allows the user to specify partitions to a cylinder boundary
(remember: cylinders are the "detents" that the mechanism carrying the
heads may step to, "tracks" is the product of "number-of-heads" times
"number-of-cylinders"; eg: the XT standard drive has 306 cylinders and
four heads, giving it a total of 1224 tracks).

In DOS2.1, if you specified to FDISK "gimme the whole disk", it would
set up the partition slot number 4 with the beginning of the disk as
cylinder zero, head zero, sector 2 and the end of the disk as the last
sector on the last track minus one (the last track is reserved for
diagnostics to scribble on).  Now the value for the start of the
partition disobeys already the rule we said about starting on an even
track boundary (eg: given cylinder, given head, sector 1) because the
partition and boot block lives on the first sector.  I suspect some
purist somewhere (and perhaps some confused software) convinced the
writers of DOS3.[01] to change that.  So they did.

Now, partitions begin at a minimum of cylinder zero, head ONE, sector
one, which means you lose 16 sectors (the remainder of track zero after
the boot block).

A complete description of the contents of the "Boot Record/Partition
Table" is found in Appendix G of the PC/XT Technical Reference Manual.

Bruce Walker     {allegra,ihnp4,linus,decvax}!utzoo!aesat!bmw

------------------------------

From: tom@vcvax1.UUCP (tom)
Subject: Suspected "popf" bug in Intel 80286 (long)
Date: 18 Apr 86 16:44:12 GMT

While experimenting with an asynchronous communication driver for
VENIX (in protected mode) on the IBM PC/AT, I encountered some rather
strange behavior that I now attribute to a bug in the Intel 80286
processor.  In brief, I suspect that the "popf" instruction enables
interrupts under certain circumstances even though the IF flag is 0
before the instruction is executed and set to 0 by the "popf"
instruction itself.

Because of the "popf" is so often used successfully, I would like to
hear from others about whether they have encountered the same or a
similar problem.  If so, I would like to know how they programmed
around it.  My concern is that I'm either mistaken and there is no
hardware bug or that I'm correct and the fix that I found is not
applicable to all processor lots.

			The Evidence

The problem expresses itself in the asynchronous driver by a loss of
characters on OUTPUT.  Only single characters are lost every now and
then.  The problem can express itself when kernel printf's indicate
that no interrupts other than transmit interrupts are occurring.  I
have tried 2 different AT's with the same results.

The reason for the character loss turns out to be due to a completion
interrupt occurring while the tty startup routine is running.  The
startup routine disables interrupts and stuffs a character into the
transmit buffer.  But for some reason, the 80286 allows the COM port
to interrupt causing the transmit interrupt routine to overwrite the
character just put in the buffer.  Kernel printf's triggered by sanity
checks in the driver indicate the the instruction being interrupted is
a "popf" and that the IF flag before and after the "popf" is 0.

A number of obvious checks were done to rule out programmer error.
For example, after a kernel was demonstrated to show the bug, I dumped
the code segment of the running kernel and compared it to the object
file.  No difference.

Tom Scott
VenturCom, Inc.
..!seismo!harvard!cybvax0!vcvax1!tom

------------------------------

From: maddox@renoir.berkeley.edu (William Maddox)
Subject: Re: Suspected "popf" bug in Intel 80286 (long)
Date: 22 Apr 86 08:39:17 GMT

This is a known incompatibility between the 80286 and other members of
the 8086 family.  See pages 9-6 and 9-7 of the AT Technical Reference
for details.  I quote: 

	If the system microprocessor executes a POPF instruction in
	either the real or the virtual address mode with CPL <= IOPL,
	then a pending maskable interrupt (the INTR pin active) may be
	improperly recognized after executing the POPF instruction even
	if maskable interrupts were disabled before the POPF instruction
	and the value popped had IF = 0.

IBM suggests the following code sequence as a compatible
replacement:

	JMP	$+3
	IRET
	PUSH	CS
	CALL	$-2

Bill Maddox
ucbvax!renoir!maddox

------------------------------

From: cck@cucca.UUCP (Charlie C. Kim)
Subject: Re: Suspected "popf" bug in Intel 80286
Date: 21 Apr 86 05:17:43 GMT

Believe it or not, this is a documented "feature" or misfeature of the
286 processor (in both protected and real modes).  See page 9-6 of the
IBM PC/AT Technical Reference or (I remember seeing it here) the
appropriate Personal Computer Seminar Proceedings to find out the
exact conditions under which it can occur, but it all has something to
do with the condition "CPL <= IOPL" holding true (I honestly have no
idea what they are talking about here.  I suppose it is some internal
chip condition).

The documented workaround is:

	jmp L1		; jump around iret
L2:	iret		; pop cs,ip, flags
L1:	push cs		; push cs
	call L2		; call near
	....		; program to continue here

which would work for any 80* cpu. They suggest coding this as a macro
which make sense. (I guess you could replace the call near with a call
far and drop the push cs).  I would probably have programmed it as:

	push cs		; save fake cs
	push L2		; push return point (286 only)
	iret		; really just jump ahead one instr with popped flags
L2:	...		; continuation point

if it wasn't going to have to run on anything but a 286 or 186 (push
immediate was new with these) so things at least look linear!

I'm sure you can come up with a dozen different way to accomplish the
same thing now that you know the problem exists.

Charlie C. Kim
User Services

------------------------------

From: john@inthap.UUCP (John Casey)
Subject: Re: Suspected "popf" bug in Intel 80286 (long)
Date: 23 Apr 86 02:11:13 GMT

Early 80286 chips (B step) did contain a problem like the one
described here. These chips can be identified by the copyright
notice marked on the chip. Chips bearing the notice:

(C) INTEL '83

may suffer from the popf problem. Chips bearing a later copyright date
(84 or beyond) do not suffer from this problem. While the B step 80286
has not been produced by Intel for some time they may exist in some
older 80286 based machines such as early ATs.

Since there are obviously machines out their with these older chips
let me further describe both the problem and the workarounds.

If a B step 80286 executes a POPF instruction while interrupts are disabled
a pending maskable interrupt (INTR pin active) may be improperly recognized
after executing the POPF instruction even if maskable interrupts were disabled
before the POPF instruction and the value popped had IF=0. IF the interrupt
is improperly recognized, it is processed correctly.

The problem occurs in B step 80286s executing a POPF instruction while
interrupts are disabled in either Real Address Mode, or in Protected Mode
with CPL <= IOPL. Executing in Protected Mode with CPL <= IOPL implies
that the processors Current Privilege Level (CPL) is numerically less than
or equal to the IO Privilege Level (IOPL), that is, the currently executing
code is privileged enough to enable/disable interrupts and do IO. 

The occurrence of this errata may be affected by the number of wait
states during the data read bus cycle of the POPF, and by even or odd
address alignment of the stack. Two wait states added to the memory read
bus cycle will eliminate the problem. 

The problem can be avoided by replacing POPF with an alternate code sequence
in code that may be susceptible to the problem. The original posting
stated that the following code failed:

> 1)	pop	cx	| return address
> 	popf		| new flags
> 	pushf		| dummy arg
> 	jmp	cx	| return

Recoding without using POPF produced the following working code:

> 7)	pop	cx
> 	pop	ax
> 	push	ax
> 	test	ax,#0x200	| Don't use popf!
> 	bne	Lsplx
> 	cli
> 	jmp	cx
> Lsplx:	sti
> 	jmp	cx

This illustrates one possible alternate code sequence for POPF
which will work if AX need not be saved and if IF is the only flag of interest.

Other more general alternatives to POPF are as follows:

		push	cs
		push	#popflags
		iret
	popflags:	

OR
		call	popflags	| must be a far call

	where the routine popflags is defined as follows

	popflags: iret

NOTE:	This problem exists only in older 80286s, and occurs
	only when a POPF is executed with interrupts disabled
	and results in interrupts remaining disabled.

John Casey
Intel Corporation
(516) 231-3300
...!philabs!ron1!polyof!inthap!john

------------------------------

From: romkey@mit-vax.UUCP (John Romkey)
Subject: Re: Connecting IBM AT to ethernet
Date: 9 Apr 86 01:30:44 GMT

Dennis Michael writes:
>Is there a vendor that sells an ethernet board for the AT?

There are a number of vendors who sell ethernet interfaces for the PC
family.

3COM: the 3C500/3C501 (500 = 501 + software) "dumb" cards, and the 3C505
interface. The 3C505 is a smart card which can also use the 16 bit AT
bus, although it works on a normal PC bus too.

Interlan: the NI5010 card, pretty much equivalent to the 3COM
3C500/3C501 cards.

Ungermann-Bass: they also sell a dumb card and a smart card. I don't
know much about these.

Excelan: only a smart card, with TCP/IP for it. I believe that most of
the other smart cards come with no software by default.

Unfortunately, I don't have the addresses and phone numbers for these
vendors handy right now.

John Romkey			FTP Software, Inc.
(617) 868-4878			PO Box 150
UUCP: romkey@mit-vax.UUCP	Kendall Square Branch
ARPA: romkey@borax.lcs.mit.edu	Boston, MA, 02142

------------------------------

From: cck@cucca.UUCP (Charlie C. Kim)
Subject: Re: Connecting IBM AT to ethernet
Date: 11 Apr 86 18:05:45 GMT

>3COM: the 3C500/3C501 (500 = 501 + software) "dumb" cards, and the 3C505
>interface. The 3C505 is a smart card which can also use the 16 bit AT
>bus, although it works on a normal PC bus too.

I believe the dumb board is priced around $600.  I'm not too sure.  I
don't have their number.  Getting source from FTP software shouldn't
be that bad (I hope -- I've heard good things in this corner).  3com
and ub both sell software; 3com's is some proprietary system and ub's
is a implementation of ms-net.

In any event, you can get up and running for about $600-700 with a
dumb board ($1000-1100 if you need supported software) and
$1,000-1,800 using a smart board.  (Software for the smart boards runs
about $500-600).

Charlie C. Kim
User Services
Academic Informations Systems Division
Columbia University

------------------------------

From: philipp@mit-trillian.MIT.EDU (Philip Prindeville)
Subject: Re: TCP/IP for the IBM PC
Date: 11 Apr 86 01:48:06 GMT

I've gotten a few requests for details regarding my previous posting
about PC/IP, so here it is:

	PC/IP is available on mag tape in source form for $55.
	Binaries are available on floppy for $12.  Or you can
	get both for the special price of $67.

	The address to order from is:

		MicroComputer Center,
		  Software Sales and Application
		11-229, M.I.T.
		Cambridge, MA  02139
		(617) 253-6325

Serious questions can be sent via E-mail to:

		pc-ip-request@xx.mit.edu
	(or)	pc-ip-request@mit-xx.arpa
	(or)	mit-eddie!mit-xx!pc-ip-request

A new version is currently being put together with many bug fixes, domain
name service, and the following programs:

	telnet
	nicname		(like finger but at SRI-NIC)
	whois		(like finger)
	netwatch	(like 4.2 netstats but real-time)
	tftp		(simplified file transfer program)

It comes with drivers for the following hardware:

	3Com (ethernet), Interlan (ethernet), Proteon (Ring net)
	
It should be available sometime next week.

The software is also available with added utilities including:

	rsh, rcp, rlogin (as in 4.2)
	ftp

and a mess of other stuff from:

		FTP Software, Inc.
		P.O. Box 150
		Kendall Sq. Brnch.
		Boston, MA  02142

for $400.

Philip Prindeville
M.I.T. Project Athena				     PhilipP@Athena.MIT.EDU
(617) 253-5264		{ucbvax,decvax,seismo}!mit-eddie!mit-athena!philipp

------------------------------

From: sob@talcott.UUCP (Scott O Bradner)
Subject: Re: TCP/IP for the IBM PC
Date: 8 Apr 86 04:05:27 GMT

We are beta testing a copy of ftp software inc.'s version of the mit
package. even in the beta version this package is quite good, it implements
a nice set of the unix tcp/ip functions (including real ftp, accessing
time servers etc).

	scott bradner
	harvard university

------------------------------

To: tcp-ip@sri-nic.ARPA, info-ibmpc@usc-isib.ARPA
Subject: Net Bios on top of TCP/IP
Date: Thu, 08 May 86 19:03:27 -0500
From: Stan Ames <sra@mitre-bedford.ARPA>

Recently several vendors (including Excelan, UB, and CMC) have anounced
products that support the IBM/Microsoft Net Bios on top of the TCP/IP/UDP
internet protocols for IEEE 802.3 LAN products.

Unfortuantly each has interfaced Net Bios to the internet protocols in a
somewhat different mannor.  MITRE under the direction of the ULANA program
office is attempting to bring the vendors together to agree on an interface
specification.  In order to be successful each of the vendors must participate
and users must make their desires for vendor interoperability known to the
vendors.

Anyone that is involved in an inpending implementation of Net Bios on the
internet protocols is encouraged to participate.

Stan Ames
sra@mitre-bedford.arpa

------------------------------

To: info-c@brl-tgr.ARPA, info-ibmpc@usc-isib.ARPA, delftcc!sam@nyu.ARPA
Subject: Lint Error Checker for "C" Programs
Date: Thu, 08 May 86 22:25:34 -0500
From: James R. Van Zandt <jrv@mitre-bedford.ARPA>

> I'm aware of four lint-type programs for checking C code on an MS-DOS
> machine:
> 
> PC-LINT   Tecware                              $ 99
> PC-Lint   Gimpel Software                      $139
> Pre-C     Phoenix Computer Products Corp.      $395
> Lint      Wizard Systems Software, Inc.        $450  (bundled with compiler)
> 
> Can anyone report experience with these or others, or point to
> published reviews?

All the responses but one were requests for information.  Here's the one:

> We are using the Wizard C compiler and BSD 4.3 to develop a large
> (~150,000 lines) system that will run under UNIX and MS-DOS.  The Wizard
> compiler reports intra-module errors and warnings.  The lint option
> will create a lint library and do inter-module checking.  Overall the
> Wizard system catches the same errors that the BSD lint catches and
> often reports more warnings.  The whole package is well worth the price
> (especially since you get library sources and can get an update service
> from Wizard).
> 
> Brad Davis      {ihnp4, decvax, seismo}!utah-cs!b-davis 
>                 b-davis@utah-cs.ARPA

Now I'm trying to decide whether (1) nobody else has buggy C code, (2) nobody
else wants to ADMIT to having buggy C code, or (3) lint is hazardous, and
few users survive :-).  

                              - Jim Van Zandt

------------------------------

Date: Fri 9 May 86 06:37:10-PDT
From: Ivan Auger <LAWRENCE.Auger@IC2060>
Subject: V20 chip on XT, VT240 emulator programs
To: info-ibmpc@USC-ISIB.ARPA

boot most of the time.  This doesn't happen at all on our PC models.  Has
anybody else seen this problem ?  (Our XT's have 640K)...

With regards to VT240 emulators, I have tried 2 of them, Polycom VT240
and Smarterm VT125.  The latter has several bugs in its emulation of
REGIS protocol.  I have found the former to be an excellent product,
its REGIS emulation is excellent.

------------------------------

From: Michael Mattock <mattock%tp3@rand-unix.ARPA>
To: info-micro@brl-vgr.arpa, info-ibmpc@usc-isib
Subject: Arc 5.13 is a Trojan Horse Program!
Date: 09 May 86 10:22:03 PDT (Fri)

WARNING!

Arc 5.13 is a trojan horse program that crashes hard disks.  Do not
use this version of Arc!  Please pass the word to other micro users.

------------------------------

From: schuler@psuvax1.UUCP (David W. Schuler)
Subject: CPUID.ASM source file (from PC Tech Journal - April 1986)
Date: 13 Apr 86 02:07:01 GMT

This is the source code for CPUID, a program which will determine the cpu
type and numeric coprocessor type in an IBM-PC (or compatible).  This is
the source code directly from the April 1986 issue of PC Tech Journal.

David W. Schuler           {akgua,allegra,ihnp4}!psuvax1!gondor!schuler
Penn State University      schuler%gondor@penn-state.csnet
602 Sproul Bldg.	   schuler%psuvaxg.bitnet@wiscvm.arpa
University Park, PA        {akgua,allegra,ihnp4}!psuvax1!tvw@psuvma.bitnet
             	           schuler@gondor.uucp : schuler@psuvaxg.bitnet

[CPUID.ASM has been added to the Info-IBMPC Library.  It's a very nice
 little program, can even tell an old 8088 from a new one.  Perhaps
 someone will modify it to tell an old 80286 from a new one.  -rag]

------------------------------

From: bc@cyb-eng.UUCP (Bill Crews)
Subject: How to tell if stdout is console
Date: 9 Apr 86 01:12:26 GMT

> In writing a number of utilities it has become desirable to be able to
> tell automatically if stdout has been redirected or not.  For example
> in writing a directory lister which uses color through the BIOS it
> should automatically go back to normal DOS I/O if the device is not
> the console.  I can do this through fstat or isatty in MSC 3.0 if the
> redirected device is a file and not a device, but I can't tell if the
> user has redirected stdout to the printer or another device.
> 
> Any ideas?
>
> Glenn Connery, Bell Northern Research, Mountain View, CA

Bit 1 (i.e., mask = 0x0002) of the IOCTL word (interrupt 0x21, function
0x44) is labeled ISCOT in the DOS Technical Reference Manual, which means
that "this device is the console output".  It would seem that this is the bit
you need to interrogate, but I don't know if MSC 3.0 has a library function
that passes it through.

------------------------------

From: bright@dataioDataio.UUCP (Walter Bright)
Subject: Re: Memory addressing problem on PC-1
Date: 5 May 86 17:43:26 GMT

Jim Moseman writes:
>I have and older IBM PC with a 64K motherboard.  I have added more memory
>with a multifunction card but I can only address 544K.  The switch settings
>for 640K don't work (and weren't documented in my original Operations
>Guide).   Does anyone know a way around this?  

I had the same problem. The bug is in the ROM BIOS. Fixed it by ordering
the ROM BIOS UPGRADE KIT from the local IBM Product Service Center. It
cost about $30.

------------------------------

From: cramer@kontron.UUCP (Clayton Cramer)
Subject: Re: Memory addressing problem on PC-1
Date: 6 May 86 18:29:15 GMT

I also have an antique PC-1.  You need to replace the ROM BIOS on the
motherboard.  IBM sells it on an exchange basis for $50.  This also makes
it capable of booting from a hard disk directly.

Clayton E. Cramer

------------------------------

From: bc@cyb-eng.UUCP (Bill Crews)
Subject: DOS 3.2
Date: 2 May 86 15:38:45 GMT

> I have been having a problem with DOS 3.2 and I was wondering if anyone
> else out there has had the same problem.  The first problem I have
> had is the FATAL SYSTEM ERROR that was documented in PC Week.  That
> has only happened to me once.
>      
> The other problem I have had is when I was in DOS I tried to do a
> DIR.  DOS told me that I had a bad FAT table...

Until you install the fix that IBM has documented for the FATAL SYSTEM ERROR
problem, you are likely to have various unexplicable symptoms.  The fix
involves the STACK(S?) command, I think, but since I don't have DOS 3.2,
I really don't remember the fix itself.

	- bc -

..!{seismo,topaz,gatech,nbires,ihnp4}!ut-sally!cyb-eng!bc  (512) 835-2266

------------------------------

From: connery@bnrmtv.UUCP (Glenn Connery)
Subject: Current DOS Environment
Date: 25 Apr 86 14:17:14 GMT

> Does anyone out there know how to get a pointer to the
> CURRENT environment in DOS?  What about version dependencies?
> Note that "exit and stay resident" routines normally point to
> an "old" environment  I need a pointer to the "latest and greatest"
> environment.  That is to say the "real" DOS environment.  Can
> anyone help?
>                  ----maybee@pogo

The following is from a turbo pascal posting by Michael Tsang.  I
presume that you can figure out from this what you want, even if you
don't have/know turbo pascal.  Basically, it seems that offset 16H has
some kind of backpointer to the parent program.  Seems to work just
fine, but of course this will probably fail under a multi-tasking
version of DOS so take your chances...

{ [DOSEnvLib v1.00 (c) 2.13.86] by Michael H. Tsang }
function GetDOSEnvSeg: integer;
var
  SegPtr: integer;
begin
  SegPtr := MemW[CSeg:$0016];
  while MemW[SegPtr:$0016] <> SegPtr do { Trace back to root process }
    SegPtr := MemW[SegPtr:$0016];
  GetDOSEnvSeg := SegPtr + MemW[SegPtr-1:$0003] + 1 { Skip DOS program seg }
end; { GetDOSEnvSeg }

Glenn Connery, Bell Northern Research, Mountain View, CA
{hplabs,amdahl,3comvax}!bnrmtv!connery

------------------------------

Date: Fri 9 May 86 08:26:34-PDT
From: David John Buerger  <D.Buerger%SCU%PANDA@SUMEX-AIM.ARPA>
Subject: Mathematical Text Editors
To: unm406%dbnrhrz1.bitnet%wiscvm.wisc.edu@SUMEX-AIM.ARPA
cc: info-ibmpc@USC-ISIB.ARPA

The Boston Computer Society recently published their "Technical
Wordprocessors for the IBM PC and Compatibles" in NOTICES OF THE
AMERICAN MATHEMATICAL SOCIETY 33 (Jan 1986) 1:3-37.  Thirty-eight
vendors supporting 36 programs were reviewed with ten programs
analyzed in depth.  TeX accounts for two of these ten programs and
summary information is given for 22 others.

If you don't have access to the NOTICES, send a check for $8 to:

		Carl A. Hein
		Dunster House, Apartment 7
		Swanson Road
		Boxborough, MA  01719

to get your copy of the BCS report.

David J. Buerger
Dave%SCU%Panda@SUMEX-AIM.ARPA

------------------------------

Date: Fri, 9 May 86 18:42:56 pdt
From: gould9!ronb@nosc.ARPA (Ron Belanger @ CACI)
To: info-ibmpc@USC-ISIB.ARPA
Subject: Re: How to print WORD files on the LaserWriter

   To print files on the LaserWriter using WORD you can use two
   methods:

        -    Set the printer to "Special" (Diablo emulation
        mode) and use Word with the D630 print options

   or { much prefereable! }

        -    Set the printer to 9600

        -    COPY or PRINT the file MSSETUP.PS out the COM1:
        port (I assume that is where the printer is connected).
        This file is on Word's utility disk

        -    Set Word to use APPLASER print option AND COM1:
        rather than LPT1: as its output port (using the "setup"
        option under Printer Options)

        -    Select some of the great fonts and print options
        and print away!

   There is a README file on the utility disk of WORD that
   explains this (unless you are using a real old version of
   WORD)

                    Ron Belanger

      {cbosgd, ihnp4, pyramid, sdcsvax}   !gould9!ronb or,
      gould9!ronb@NOSC.ARPA or,
      MCI Mail to "Ron Belanger"

------------------------------

Date: Thu, 8 May 86  16:57 EDT
From: Deba Patnaik  <DEBA%UMDC.BITNET@WISCVM.WISC.EDU>
Subject: Problem with old Basic compiler
To: INFO-IBMPC-REQUEST@USC-ISIB.ARPA

My program runs fine with interpreter but the compiler gives error
messages on the following statements: WINDOW and VIEW.  Any ideas?
I am running IBM Basic Compiler version 1.00.

deba@mimsy.umd.edu

------------------------------

Date: 8 May 1986 17:25-EDT
Subject: Mixed-Language Problems on Xenix 1.0
From: MHARRIS@A.BBN.COM
To: INFO-IBMPC@USC-ISIB.ARPA

A thorny mixed-language problem on IBM Xenix 1.0:

I have a (trivial) mainline, and a (nontrivial) C subroutine package which
uses curses.  When the mainline is in C (and the code linked with cc), it
runs fine, but when the mainline is in F77 (and the code linked with cl),
it seg faults.  The stack is getting stepped on in such a way that debugging
is very messy.

I am using "large" model, since F77 doc sez that's all it supports.  The F77
is v 3.3 and I have the 12/31/85 software development system updates.

A related (?) question:  The F77 doc file sez "use cc -Ze -c -AL to compile
the C modules".  I did but I don't know why;  what does -Ze mean?

Needless to say, any advice, or pointer to same, would be greatly appreciated.

-- Michael Harris
   617-497-3794

------------------------------

Date:     Friday, 09 May 86 10:05:49 EDT
From:     jaffe (elliot jaffe) @ a.psy.cmu.edu
Subject:  What's the best "C" Compiler (yet again)
To:       info-ibmpc @ usc-isib.arpa

I am moving code from a SUN, to an IBMPC.  The code is written in C, and
make use of Yacc and Lex.  The code is mostly floating point, but must run
without an 8087, so the compiler had better be pretty good.

I also would like to have the curses library, and some way to trap control-c.

Any suggestions, as to which C compiler would be best?  Portablility is
important.

Thanks,
Elliot

replies to Jaffe@cmu-psy-a.arpa

------------------------------

End of Info-IBMPC Digest
************************
-------