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

Info-IBMPC@USC-ISIB.ARPA (Info-IBMPC Digest) (02/12/86)

Info-IBMPC Digest       Tuesday, 11 February 1986      Volume 5 : Issue 20

This Week's Editor: Billy Brackenridge

Today's Topics:

                        Hard Disk Interleaves
			   PC Clones Query
			XENIX and 30MB Seagate
			   Alsys Ada on AT
 Installing Interrupt Handlers in Turbo Pascal 2.0B (MS-DOS version)
			      MAX Editor
		     Dead Terminal Caused Backlog
	      A Different Experience with the Proprinter
			Proprinter GKS driver
			      Dbase III+
		Undocumented Microsoft LINK option: /E
		       ARC5.12 IS NOW AVAILABLE
		       Renaming Subdirectories
	 Beware of 'MVDIR.BAT' (& all self-documenting code)
			      MVDIR.BAT
		   New Files Available at SIMTEL20
	 Rename Directories, Moving Files, & Disk Optimizing
			   Disk Optimizers
		     DOS vs. Direct Screen Writes
		     DOS vs. direct screen writes
		       Terminal and PC at Once?
		       Alternate Shell Program
		 Russian (and French) Word Processors
			       MS Mouse
	       Protecting the Hard Disk Heads on an XT
		      Symdeb 4.0 -- Stack trace?
		   Hotel Front Desk Package Wanted
		   Product Evaluation: Classic 286
				   
----------------------------------------------------------------------

From: allyn@sdcsvax.ucsd.edu (Allyn Fratkin)
Date: 11 February 1986 1630-PST (Tuesday)
Subject: Hard Disk Interleaves

I have read with interest the discussions about the interleave factors
on hard disks.  But I still have a few questions.  I work with 4 PC/ATs and 
4 PC/XTs.  All of these use the standard IBM disk controllers.  We have a
mixture of disks: CMI and Seagate for the ATs and Seagate and IMI for the XTs.
Are some or all of these disks likely to be suffering from a bad interleave 
factor?  How do I check the interleave of a disk, and how can I change it 
if I don't like it?

Thank you.

Allyn Fratkin                    allyn@sdcsvax.ucsd.edu
UCSD EMU/Pascal Project          or
U.C. San Diego                   {ucbvax, decvax, ihnp4}!sdcsvax!allyn

[This question has been asked before but never answered. -wab]

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

Date:    Tue, 04 Feb 86 18:10 EST
From:  GKN3M2%IRISHMVS.BITNET@WISCVM.WISC.EDU
Subject: PC Clones Query

  I would be interested in hearing from those people who have
  purchased PC/PC-XT clones.  Specifically, how compatible
  are they?  Is there sufficient support from the dealer?
  How much did it cost?  Feel free to include any general comments
  on the 'feel' of the machine.

                                    Evan Bauman
                        ARPANET --  gkn3m2%irishmvs.bitnet@wiscvm.arpa
                        BITNET  --  gkn3m2@irishmvs

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


Date: Fri 7 Feb 86 18:46:29-PST
From: William Pearson <PEARSON@SUMEX-AIM.ARPA>
Subject: XENIX and 30MB Seagate



	I recently purchased a 30MB Seagate drive for my PC/AT (drive
type 8), which installed with no problems under DOS3.1.  I now use
the original IBM 20MB drive with XENIX, and the 30MB drive with DOS,
but I would like to reverse the configuration.  I have Robin Cutshaw's
patches to correct the XENIX disk parameter tables, but it is not clear
to me how many changes must be made to the distribution/installation
floppy.  I am unable to run  "fd /etc/badtrack" because the 30MB drive
keeps seeking to track 0 after checking the first 520  tracks (at least
that's what it sounds like) and as a result I get a "Bad signature (B66D)"
message when I boot XENIX, which does not seem to hurt anything.

	I would appreciate hearing from anyone who has set up IBM XENIX
for the AT to boot from a non-standard drive.

Bill Pearson
Dept. of Biochemistry
U. of Virginia
(804) 924-2818



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


To: INFO-IBMPC@usc-isib.ARPA, INFO-Ada@usc-isif.ARPA
Subject: Alsys Ada on AT
Date: 08 Feb 86 11:02:08 EST (Sat)
From: Bob Munck <munck@mitre-bedford.ARPA>

  I too have been looking into this, and have set aside the money
in my budget.  I'm told by an Alsys source that they have pre-validated
the compiler running on a VAX and compiling to a PC or AT. 
(Pre-validation is the point where the vendor has run all of the validation
tests and is satisfied that his compiler passes, such that he is willing
to risk the significant cost of calling in the government validation team
to run the tests officially.)  The source felt that they were within a
week or so of pre-validating the AT host compiler, and mentioned in
passing that the RAM board they supply with the compiler is more likely
to be 4M than 3.  That'll take my AT to 7.5M.

  I've been coding in Modula-2 until now, using the Logitech compiler and
a Final Word II editor reprogrammed to "know" Modula-2.  To switch to Ada,
I need a set of Final Word macros for it.  Has anyone done this?  Anyone
want to help?  (The Modula-2 macros took about four evenings to write, and
Ada has quite a few more statements and reserved words.)
            -- Bob Munck, MITRE  (...!linus!munck.UUCP)
                                 (Munck at MITRE-Bedford.ARPA)

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

To: info-pascal@BRL-VOC.ARPA
cc: "J. Eliot B. Moss" <EBM@mit-xx.ARPA>, 
    James Dugal <DugalJP%usl.csnet@CSNET-RELAY.ARPA>
Subject: Installing Interrupt Handlers in Turbo Pascal 2.0B (MS-DOS version)
Date: 08 Feb 86 01:11:47 PST (Sat)
From: Alastair Milne <milne@uci-icse.ARPA>

[Apologies to non Turbo Hamsters for this long message. The discussion of
Interrupt handlers is meaningless without the code examples, so despite our
policy of not including long code examples in the digest, it seemed the
right thing to do in this case. -wab]

   Ages ago now I posted a general request for information about
   installing user-written interrupt handlers in Turbo Pascal, MS-DOS
   version.  Eliot Moss kindly sent me hardcopy of a terminal emulator
   package in Turbo which installs a handler for auxiliary serial port
   AUX:.  However, at the time I was unable to coax what I thought were
   the relevant sections to behave for me.  Since that time I have had
   reason to do some similar work in 8088 assembly, which led me to
   discover some small but very important details, and also to a better
   understanding of Eliot's package.  Finally, last night, I
   successfully raised an interrupt for a routine in my program
   installed as in interrupt handler, which worked, returned successfully 
   to the program, and apparently left the system intact.

   Two major points:
     1. In every routine, Turbo apparently places some code ahead of the 
	first user instruction, making it impossible immediately to install
	inline code to save all the registers, as MUST be done in an interrupt
	handler.  The routine itself cannot therefore be installed directly 
	as the handler.
     2. The interrupt controller chip, the 8259, must be programmed to allow
        your interrupt, which is done by sending a mask value to port 21H.
	The particular mask value depends on the interrupt you are servicing.
	Also, the interrupt servicer should inform the 8259 when servicing has
	finished.  This is done by sending another mask to port 20H.

     NOTE:  if you want to assign the the two words of any intersegment
        pointer individually, instead of by using the function Ptr, remember
	that the offset is in the FIRST word, the segment base in the SECOND.
	This is contrary to the <seg>:<offseg> notation commonly used.  "Ptr"
	handles this automatically.

   Eliot's technique, which seems to work just fine, is to place in a data
   structure the sequence of instructions needed to save all the registers,
   and call as a far routine the actual handler.  The handler will finish with
   a far return, and the rest of the data structure will restore all
   registers, and return from interrupt.  The advantage here is that Turbo
   doesn't interfere with the contents of a data structure, so the handler
   begins and ends with exactly the code one specifies.  Finally, one simply
   assigns into the interrupt vector the pointer to the structure.

   An example of code to do this:

***************
program lookatinterrupts;

  {I can't stand looking at streams of numbers, especially in hex,
     and especially when they are doing something important: }
  const pushax = $50;  popax = $58;
        pushbx = $53;  popbx = $5B;
        pushcx = $51;  popcx = $59;
        pushdx = $52;  popdx = $5A;
        pushsi = $56;  popsi = $5E;
        pushdi = $57;  popdi = $5F;
        pushES = $06;  popES = $07;
        pushDS = $1E;  popDS = $1F;
        pushCS = $0E;
        pushBP = $55;  popBP = $5D;
        callL = $9A;   { long (intersegment) call}
	IRet = $CF;    { return from interrupt: LAST instruction of handler}
	StI = $FB;   { Set Interrupt flag: allow interrupts to be raised.
			 interrupt flag is automatically reset 
			 when the handler is called.}

  type  array11 = packed array[1..11] of byte;  {Must be adjusted 
					to exactly the number of bytes the
					initialising instructions need.}
        array10 = packed array[1..10] of byte;  {Likewise for terminating
					instructions.}
	RoutinePtr = ^byte;  {actually, pointer to anything will do.}
        CallerRec = record
                      SaveAllAndCallServicer: array11;
                      ServicerAddr: RoutinePtr;
                      RestoreAllAndIRET: array10;
                      end;
      { A "CallerRec" is in fact a routine.  All the components MUST be 
	directly contiguous, and allocated in this order.  Particularly, 
	ServicerAddr is the argument to the far call which is the last 
	instruction of the previous field.
	}

  { Declare as constants the stream of bytes comprising the interrupt's
    initialisation, long call, and termination: }
  const  ServicerInit: array11 =
                   (pushAX, pushBX, pushCX, pushDX,  {save all gnrl. reg.s}
                    pushSI, pushDI, pushES, pushDS,
                    pushCS, popDS,    { set DS to CS}
		    callL);    { call the servicer, whose address must
			         immediately follow this byte. }
         ServicerTermnt: array10 =
                   (popDS, popES, popDI, popSI, popDX, popCX,
                    popBX, popAX, 
		    StI,    {re-enable interrupts before leaving}
		    IRet);  {finally, return from interrupt}

  var PrntScrnAddr: RoutinePtr;  {to save the pointer to the true 
				  print screen servicer.  Fail to restore this,
				  and you will only be able to print the 
				  screen after rebooting. }
  { Declare the interrupt vector as what it is: 256 routine pointers
      starting at address 0:0 : }
      IntrVector: array[0..255] of RoutinePtr  absolute 0:0;
  { Provide callers for, in this case, 2 interrupt handlers: }
      PrntCaller, MyCaller: CallerRec;

  procedure myscreenprinter;
  { A substitute routine to serve as an example of substituting
    for an existing interrupt handler.  THE ORIGINAL MUST BE RESTORED,
    or you will lose all screen-printing service.
    NOTE:  NO parameters are possible, either on the stack or in registers.
	   The program MUST NOT DIRECTLY CALL THIS ROUTINE.}
    begin
      writeln('screen would now be printed.');
      port[$20] := $10;   {DON'T TRUST THIS MASK VALUE.
			   It caused me no problems on the Sanyo MBC-550,
			   but that's not compatible enough with IBM's and
			   their imitators for a strong argument. }
      inline( $8b/$e5/  {mov sp, bp}
              $5d/      {pop bp}
              $cb);     {retl}
    end;

  procedure myhandler;
  { A very simply demonstration interrupt handler, to make some previously
    unserved interrupt give a response when raised.  The CallL instruction in
    MyCaller calls this.  
    NOTE AGAIN: NO parameters; 
		the program MUST NOT DIRECTLY CALL THIS ROUTINE.}
    begin
      (**)writeln('in interrupt handler.');
      port[$20] := $20;   { Announce to the 8259 that the interrupt is over.
			    Since the particular mask value that announces
			    this depends on which interrupt is being served,
			    the OUT instruction for this is not built into the
			    handler termination code. 
			    $20 works is the completion mask for interrupt 12}
   {Make sure that the routine uses a long, or far, return, to match the 
    long call instruction that called it.  Restore SP and BP just as Turbo's
    code would, if the routine were going to use it. }
      inline( $8b/$e5/  {mov sp, bp}
              $5d/      {pop bp}
              $cb);     {retl}
    end;

  procedure installhandler( IntrNum: byte;
                            var Caller: CallerRec; RoutineAddr: integer);
  { Sets up the callerrec Caller to call the routine whose offset is 
    RoutineAddr when interrupt IntrNum is raised.  Although this form does not
    do so, ideally interrupts should be disabled whenever the interrupt vector
    is modified, and restored only when all changes are finished.  Disaster
    could occur if something raised the interrupt while the address in the
    vector was only partly changed.}
    begin
 { Fill in the initialisation field of the record with the instructions
   already declared as a constant: }
      Caller.SaveAllAndCallServicer := ServicerInit;
 { Likewise for the termination code: }
      Caller.RestoreAllAndIRET := ServicerTermnt;
 { Fill in the intersegment address of the CALLL instruction which is 
   the last byte in the initialisation code.  The pointer to the routine
   consists of the code segment base, and the routine's offset in CS: }
      Caller.ServicerAddr := ptr( CSeg, RoutineAddr );
 { Fill in entry IntrNum of the interrupt vector with the address 
   of the CallerRec (NOT the handler routine itself).  Its pointer is the Data
   seg (NOT the code seg.), and its offset into the data seg: }
      IntrVector[IntrNum] := ptr( DSeg, ofs(Caller) );
	 { NOTE:  pointer is put into vector only AFTER what it points to 
		  is ready to handle an interrupt. }
    end;

  begin
    . . . 
{ EXAMPLES OF INSTALLING INTERRUPT HANDLERS: }
       { Install the routine MyHandler as the servicer for interrupt 12: }
    InstallHandler(12, MyCaller, ofs(MyHandler));
{ When superceding existing handlers, BE SURE TO SAVE THEM to be restored
  before the program exits.  Otherwise, you'll find yourself missing possibly
  vital services until you next reboot. }
    PrntScrnAddr := IntrVector[5];
    InstallHandler(5, PrntCaller, ofs(MyScreenPrinter) );
 { Let the 8259 controller know that interrupt 12 is now supported and active:}
    port[$21] := port[$21] and not $10;
    . . .
    IntrVector[5] := PrntScrnAddr;  {RESTORE pre-existing handler. }
    . . .
  end.
***************

  Nobody's favourite coding, but it works.  Eliot also supplied two small
  procedures Enable and Disable to allow and prevent interrupts, respectively.
  I have omitted them here to keep things from getting completely out of hand.
  They consist simply of InLine calls using the STI and CLI instructions.



  Alastair Milne

  PS.  I'm sure that by now, Eliot, James, and anybody else who wanted this
       information is certain that I've forgotten all about it, and that Eliot
       at least is quite irritated, since I told him I would pass his
       information on long ago.  I hope they will accept my apologies for the 
       long delay.  

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


Date:  Sat, 8 Feb 86 14:30 EST
From:  "Roger A. Roach" <Roach@MIT-MULTICS.ARPA>
Subject: MAX Editor


I got a copy of MAX 1.01 (and SCR) from:

 Mr. Ivo A. Welch
 Columbia College
 East Campus
 New York, NY 10027

At the time, Mr.  Welsh was available as UI.IVO@CU20B.  The cost was $15
for educational uses, $30 for commercial.  Since it seemed that the
authors were students, I am not sure what their present address would
be.  There was some reference information included on the disks, but I
could not find any other address.

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


Date:  8 Feb 1986 18:02:56 PST
Subject: Dead Terminal Caused Backlog
From: Koji Okazaki <swg.Koji@USC-ISIB.ARPA>


Howdy.

My terminal's been dead for the last couple of weeks.... hence, I haven't
been able to read my mail recently.  Now you all know why I haven't been
answering your messages to me.  Will be operational within a week.  Thanks
in advance for being patient.

					Koji
					Info-IBMPC program submissions...


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


Date: Sat, 8-Feb-86 18:17:31 EDT
From: Manny Farber <manny%pcpond.pc.udel.edu@Louie.UDEL.EDU>
Subject: A Different Experience with the Proprinter


	My experiences with the IBM Proprinter have been notably more
positive than those reported in an earlier Info-IBMPC.  While there are
some things I don't like about it, I have not had any problems with
paper feeding; quite to the contrary, it has been exceptional in this
area.  The paper can also be ripped off right along the perforation,
with no wastage.   The construction is rather sturdy and the single
sheet feeder is handy, although I don't use it much.  The print speed
(200 cps) is relatively fast (or at least average), and the NLQ mode 
produces very clear, easy-to-read characters that don't have serifs.
It also prints all 256 IBM display characters.

	Now the bad parts:  it's relatively expensive, unless you can
get a discount; the output is much more wavy than an Epson's; and
it doesn't have italics built in.

	I have overcome the problem with italics by trapping the output
from PROLOAD (a font loader/editor available on CompuServe) and putting
it in a file, which I copy to the printer with the /B option.  This allows
it to be put in a batch file.  With Microsoft Word, for italics one
can send the codes (in the PRD) file to switch into the download character
set; in the end, it's transparent.  (If anyone wants details or source 
code [for the trap routine], drop me a line.)

Manny (manny@louie.udel.edu)

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


Date:           Tue, 11 Feb 86 12:03:12 PST
From:           Jim Carter <jimc@LOCUS.UCLA.EDU>
Subject: Proprinter GKS driver


   You've all been waiting for the driver for the IBM 4201 Proprinter in 
IBM's GKS.  Guess what?  You had it all along.  vdiprgra.sys (for the
standard graphic printer) works on the Proprinter also IF you turn on
switch 6, auto CR after LF.  Switches are under the cover at the left
rear of the machine.  Auto CR has no effect on most other software --
unless your program does a LF and expects to end up in the middle of the
line.
   This was tested on "circut.exe", the GKS demo program that has a print
feature, and on some locally written software.  I have heard that a simi-
lar maneuver also works on IBM-compatible Epson printers.
   My boss pulled this in from a bboard.

James F. Carter            (213) 206-1306
UCLA-SEASnet; 2567 Boelter Hall; 405 Hilgard Ave.; Los Angeles, CA 90024
UUCP:...!{ihnp4,ucbvax,{hao!cepu}}!ucla-cs!jimc  ARPA:jimc@locus.UCLA.EDU

[Cross-posted in net.graphics]

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


Date: Sat, 8 Feb 86 21:51 EST
From: Yedidyah Langsam  <YDLBC%CUNYVM.BITNET@WISCVM.WISC.EDU>
Subject: Dbase III+


The $100 upgrade fee for Dbase III+ is in my opinion worth it. Firstly,
they completely redid the Assist interface. Secondly, there is a new type of
file which keeps track of which indexes go with which file and allows
you to set up a "view" of how you wish your files to be opened without
having to open each index and file independently. This feature is in itself
worth the update. Thirdly, there is the matter of the network support,
which if you need it is great.

A full review appeared in last months issue of Data Base Advisor, and is
well worth reading.


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


Date: Sun, 9 Feb 86 20:13:17 CST
From: nather@ASTRO.UTEXAS.EDU (Ed Nather)
Subject: Undocumented Microsoft LINK option: /E

The option does not exist in MS Link versions 3.00 and 3.01; it seems to
have been added to version 3.02.  I tried it out on a long program and
it works, but the exepack utility that comes with Microsoft languages
works better -- the size reduction was 2X greater than with link /E.

Maybe that's why its undocumented ...

Ed Nather
Astronomy Dept, U of Texas @ Austin
{allegra,ihnp4}!{noao,ut-sally}!utastro!nather
nather@astro.UTEXAS.EDU

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

Date: Sun, 9 Feb 86 20:36:47 pst
From: Richard Hallett <hallett%instr.selkirk.bcc.cdn%ubc.csnet@CSNET-RELAY>
Subject: ARC5.12 IS NOW AVAILABLE

[Info-IBMPC is not distributing ARC or ARC format files or for that matter
any binary format files. Discussion is fine but please don't ask us to 
send it to you. -wab]

 8 Feb 86 EIBEN, MSDOS:ARC51.COM

.. a truly 'boots-trapping ARC' - beware, You need roughly double the space
of ARC51.COM to get the 'hidden ARC-files' de-arced.

From:	REFUGE::PORTER        7-FEB-1986 16:39
Subj:	New version of ARC - V5.12 in a "package"

Bernie,

Just happened to be checking up on SEAboard, and spotted a new version of
the now famous ARC utility - V5.12.  This one comes with its own unique form
of "packaging" - a "self-unpacking" archive!   It is no longer necessary to
have any "other" file compression utilities to unpack an ARC kit!   The new
"self-unpacking" archive file is named ARC51.COM, to unpack the ARC software
you just run it like any other .COM image and it proceeds to unpack an archive
contained within the .COM file as follows:

	ARC51.COM contents:	ARC.EXE 	Version 5.12 executable
				ARC.DOC		Version 5.12 docset
				ARC.TXT		ARC product description

only one caveat - when you run ARC51.COM to unpack the kit, the file must
be in your MSDOS "current default directory".


On another topic: There is now a new version of Fido - V11R, I will try to
upload a copy to LSMVAX as soon as possible.

Regards,

    KhP   Kevin R. Porter
	   Sysop of WayStar Fido - (617)-481-7147 in Marlborough, Mass.


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


Date: Mon 10 Feb 86 08:12:41-CST
From: Clifford A. Wilkes <CC.Wilkes@R20.UTEXAS.EDU>
Subject: Renaming Subdirectories
To: MATHES%UMCVMB.BITNET@WISCVM.WISC.EDU
Department: Computation Center - A20/R20 staff


The "Duke Language Toolkit" is a set of programs to describe and
install different character sets on IBM PC's with the EGA.  I've
used it and found it easy to understand and describing a character
set, while time consuming, is not difficult.  The major drawbacks
are its support of few printers at present and the fact that it
will not work on my Sperry.

For more information on the the "Duke Language Toolkit" you should
contact Jeffrey William Gillette at Duke University.  His e-mail
address is:  DYBBUK%TUCCVM.BITNET@WISCVM.WISC.EDU.

I hope this helps.

					<@>
------------------------------


Date:     Mon, 10 Feb 86 14:25:14 EST
From:     Kenneth Van Camp -FSAC-  <kvancamp@ardc>
Subject: Beware of 'MVDIR.BAT' (& all self-documenting code)

James H. Coombs writes on Feb 6:
>So far, 'MVDIR.BAT' has cost me two hours.  If I'm lucky, I can get
>everything set up again in another two hours, plus diddling this and
>that for several weeks.  I hope no one else has shared this experience,
>and I am writing in the hope that no one else will.
>
>Finally, I have to say that I am not pleased to find an uncommented,
>unexplained BAT file in INFO-IBMPC.

	I guess this must be refering to my MVDIR.BAT, since I think I was 
the only one who submitted a BAT file of that name to the request for 
directory rename utilities.  However my version was definitely NOT 
undocumented.  True there was not documentation within the BAT file itself; 
but my accompanying letter provided thorough (I think) guidelines for its 
usage.  My mistake was probably in separating the batch file listing from the 
rest of the message by a line with many dashes that said <CUT HERE> in the 
middle to show where the BAT file began and ended.  When the info-ibmpc 
digest arrived at my mailbox, I undigestified it.  The undigestify program 
thought the dashes were message separators and hence the BAT file came out 
looking totally undocumented.  All I had to do was read the messages before 
and after it to get the total picture.  Perhaps your undigestify program did 
the same, or even lost the other two parts completely.  
	To summarize, the documentation pointed out that the current 
directory should be the directory you want to move, and the parameter to 
MVDIR should provide the full path of the destination directory.  There were 
also instructions to create two supporting files, \TMP\CD.MKB and 
\TMP\RMDIR.MKB.  My guess is that your friend didn't create these files, or 
didn't create them properly, resulting in the improper construction of the 
CMMDS.BAT file from within MVDIR.  In retrospect, I probably should have
made it so MVDIR.BAT created its own supporting files every time it is run,
for the public release version -- to avoid this kind of problem. Of course I
don't do that in my own version because it slows things down and seems like
a waste of computer time.
	It still seems like a very slim possibility that this could have 
caused your friend's problems.  MVDIR.BAT was *really* a very simple 
program; most of the work was provided by the public domain MV.EXE; are you 
sure your version of that is working OK?  If you really want to know for 
sure (and if you have the stomach to look into this any further), check and 
see if you have a file called CMMDS.BAT on your hard disk.  If so, let me 
know what it contains and maybe we can figure out what happened.  
	One of the worst things about MS/DOS is the poor support for error
checking in BAT files; ERRORLEVELs are not set from most DOS commands. I'm
really looking forward to hearing from more people on the net about PCUNIX.
Hopefully this system provides some REAL script files, like Unix.

		  --Ken Van Camp <kvancamp@ARDC.ARPA>

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


Date:     Tue, 11 Feb 86 8:42:54 EST
From:     Kenneth Van Camp -FSAC-  <kvancamp@ardc>
To:       info-ibmpc@usc-isib
Subject:  MVDIR.BAT

To those who were wondering what MV.EXE program I was using in my 
MVDIR.BAT, I would like to clear up the confusion.  This was NOT the 
program written by Harry McGavran (also called MV.EXE); it was written 
by Chuck Forsberg and was gotten from Volume 068 of the Simtel20 
archives -- not from USC-ISIB.  I don't know if it was MV.EXE that 
caused the problems, but probably the easiest solution is to use 
McGavran's program instead of Forsberg's.  (McGavran's automatically 
renames directories, as well as files.) The only problem is that 
McGavran won't release the source and USC won't keep anything but 
source.  

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


Date: Mon, 10 Feb 1986  13:28 MST
From: Keith Petersen <W8SDZ@SIMTEL20.ARPA>
To:   hans@OSLO-VAX.ARPA (Hans A. ]lien)
Subject: New Files Available at SIMTEL20


    Hello again Keith, Why have so many of the files in PCDOS: been
    removed lately?  Will they be replaced by new versions, are the
    programs already available in other PD: directories, or whatever?
    Maybe some of the programs can't be distributed, even for private use?
    I would especially like to have access to the ARC500*.* file archiver.
    Thanks for any help!
    		Hans

We have created a new directory PD:<MSDOS> here at SIMTEL20.  It has
several subdirectories, one of which has ARC500.EXE and DQC, and the
latest versions of LU, SQ and USQ.  For a complete list of available
files FTP the file PD:<MSDOS>MSDOS.CRCLST which will be periodically
updated as new files are added.

--Keith

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


Date: Mon, 10 Feb 86 12:15:33 PST
From: prandt!reynolds@AMES-NAS.ARPA (Don Reynolds)
To: amelia!info-ibmpc@usc-isib.ARPA
Subject: Rename Directories, Moving Files, & Disk Optimizing


This note is in response to several messages on disk utilities for renaming 
subdirectories, moving files, and optimizing the hard disk.
I have had good luck with the PACKDISK Utilities from 

        SoftPatch
        P.O. Box 11455
        San Francisco, CA 94101
        (415) 777-2993

PACKDISK        eliminates file fragmentation, unallocated space, reintegrates
                lost clusters into the available space, packs the root 
                directory and subdirectories and frees subdirectory trailing 
                clusters (but could trash hard-disk installations of some 
                software) 

DELDIR          deletes subdirectory, its files and subdirectories

NAMEDIR         renames a subdirectory

TRANSDIR        transfers a subdirectory, its files & subdirectories to
                another directory

LISTFRAG        lists fragmented files in the drive

PARK            parks disk before power off

Softpatch's PACKDISK Utilities contains NAMEDIR.COM, which apparently renames
directories with no problems.  But it is suggested that software "installed"
on the hard disk be "uninstalled" before packing (or re-formatting) the disk. 

After re-formatting, I have heard it suggested to MKDIR the most used 
subdirectories first, for fastest access.  Is that fact or fiction?

The message from Coombs in Info-IBMPC Digest, Vol. 5, Issue 19 should raise a 
caution flag and suggest you backup your hard disk before reorganization.  

Best,
Don


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


Date:     Tue, 11 Feb 86 11:45:45 PST
From:     walton%Deimos@Hamlet.Caltech.Edu
Message-Id: <860211114545.00g@Deimos>
Subject:  Disk Optimizers
To:       info-ibmpc@Hamlet.Caltech.Edu


There are two conceptually different products on the market for hard disk
optimization.  One is the "make all current files contiguous" type, which
makes access to these files very fast but has the disadvantage of being
both temporary and placing all new files at the end of the disk, making
many cross-disk seeks necessary to create new files.  The other type is,
or would be, a disk caching utility--a RAM-resident program which would
hold in memory the most recently accessed sectors on the disk and return
the copy in memory rather than going to the disk if possible.  All
computers larger than IBM PC's use disk caching, and some PC-clones do as
well.  For example, the ITT Xtra-XP (80286-based XT compatible) uses a
disk program which gets AT-class performance on average out of an XT-class
hard disk (85 msec track-to-track access time).  Also, I believe MS-DOS
does hold the current FAT in memory.  At least one product exists which is
supposed to do this disk caching;  I saw the ad in PC magazine within the
last few months, but can't find it again.  The tip-off was the ad said
"Uses Expanded Memory if present."  PC had a disk caching utility a while
back, but it only used a 64K cache (too small for even a 10 MB hard disk)
and was optimized for floppy disks.  I recommend it to two-floppy owners,
but it wasted 64K of memory on my hard disk system.


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


Date:     Mon, 10 Feb 86 14:31:49 PST
From:     kegel%Romeo@Hamlet.Caltech.Edu
Subject:  DOS vs. Direct Screen Writes

Minshall-
DOS writes to the screen are slow for two reasons:
1. stdout is normally in 'cooked' mode, in which DOS makes one call
   to the device driver for each character output.
2. ANSI.SYS stacks the registers for each char output, and makes
   one or two BIOS calls per character output, to boot!
Both of these can be fixed.
1. Any handle can be set to 'raw' mode with dos function 44h.  In raw
   mode, DOS passes all read and write requests directly to the device
   driver, cutting the per-character overhead to zero.
2. ANSI.SYS can be rewritten to write directly to screen memory, and
   to avoid stacking the registers.
I'm not sure if anyone else has redone ANSI.SYS, but I took a shot at
it, and would be happy to put my sources up.  It is radically faster.
One test program I wrote- a file viewer- redraws the screen in less than
a tenth of a second.
I think even the most hardcore advocate of direct machine access would
be satisfied with the performance an efficient device driver gives DOS.
				- Daniel Kegel

[Woof Woof Send it to us Daniel! -wab]

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


Date: Mon, 10 Feb 86 23:46:20 pst
From: minshall%ucbopal@BERKELEY.EDU (Greg Minshall)
To: kegel%Romeo@hamlet.caltech.edu
Subject: DOS vs. direct screen writes


Very well.  However, in my test case, I was invoking INT 10H myself.
So (to my very limited understanding) NO DOS, NO ANSI.SYS.  And, I was
still unhappy.  Again, with this approach, one gets some 50 K bits/second
to the screen.  But, I want some number of megatbits/second.

Or, am I wrong?

I would, though, love to see a much faster ANSI.SYS.

Greg Minshall

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


Date: Mon, 10 Feb 1986 22:15 PLT
From: George Cross  <FACCROSS%WSUVM1.BITNET@WISCVM.WISC.EDU>
Subject: Terminal and PC at Once?


I have two serial ports on a PC and a terminal (VT 100).  Is there
a DOS multitasking product that will let me connect the terminal to one of
the ports, a modem to another, and then dial out from  the terminal while
still using the main PC console? Perhaps Double DOS - run a background CTTY to
COM1, dial out on COM2, etc.

---- George

[The COM_PKG2.ASM in supports two serial ports simultaneously. You could
use this package to implement this application -wab]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
George R. Cross                                cross@wsu.CSNET
Computer Science Department         cross%wsu@csnet-relay.ARPA
Washington State University             faccross@wsuvm1.BITNET
Pullman, WA 99164-1210                     (509)-335-6319/6636
Acknowledge-To: George Cross <FACCROSS@WSUVM1>

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


Date: Mon, 10 Feb 86 22:35:26 cet
To:  INFO-IBMPC@USC-ISIB.ARPA
From:  10409813%WSUVM1.BITNET@WISCVM.WISC.EDU
Subject: Alternate Shell Program

I am interested in writing an alternate command processor to run under
MS-DOS rather than command.com.  I welcome any input from those of you
who have experience in this area.  I am looking to implement a shell
similar to those found under UN*X.  One initial question I have is
whether or not my shell has to be a .COM file?

Please send comments directly to me, and I will summarize to the net in
a couple weeks when I know what such a project entails.

Thank you,
Eric Schneider           10409813@wsuvm1.BITNET
                         or  eric@wsu.CSNET

[Try PC-Toolbox from Wendin. It looks like this is exactly what you
are looking for. Perhaps some users of this package can help you out.
Of course we have most Unix utilities in our program library. -wab]


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


Date: Tue, 11 Feb 86 01:40:21 pst
From: ttidca!ttihwe!cole@rand-unix.ARPA
To: ttidca!randvax!info-ibmpc@isib
Subject: Russian (and French) Word Processors
Cc: cole@rand-unix.ARPA

I asked an associate (a fellow by the name of Potashnik) about
word processors for Russian, and he gave me the name of one
company who makes one.  The company is called Economic Insights,
of Rockville, MD, phone (301) 258-5235.  Their product uses
a Quadvue display board, generates output only for Diablo 630
and Epson LQ-1500 printers, and costs $595.  That's all I know
about them (I don't speak or write Russian and never heard of
the company until now).

On a (remotely) related subject, another friend who is a big fan
of Microsoft Word is in the process of getting a French version
of MW.  It is apparently only available in France, however.  He
talked to Microsoft in Canada and they have a French-Canadian
version, but it is said to be significantly different from the
French version.  I don't know if there are any other versions out
there for other languages, although I doubt they have a Russian
version.  If they did you might have to order it from the USSR and
pay for it in rubles, anyway.

Randy Cole
Citicorp-TTI


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


Date: Mon, 10-Feb-86 20:44:59 EDT
From: David Farber <farber%pcpond.pc.udel.edu@Louie.UDEL.EDU>
Subject: MS Mouse


For those who have MS Bus mice which stop working when the clock is
raised, the new bus mouse and its rev D card works fine at 9 mh.
Hmmm. WOnder why they fixed it.

Also FANSI and MS Word/ PCPAINT just do not agree.

Dave

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


Date: 11 Feb 86 07:34 EST
From: Jim Moore <moore@ncsc>
Subject: Protecting the Hard Disk Heads on an XT

There has been a lot written in PC Mag, PC Tech Journal, and (I think) this
space concerning the parking of hard disk heads to protect the disk. I'm no
longer sure that's a good idea:

I'd been using SHIPDISK.COM, which comes with the Diagnostics Disk, to retract
the heads every afternoon after work, because my XT sits on the floor on a  
stand, a particularly vulnerable position. The last time I ran it, the heads
moved back, then went wild. I had to re-partition the disk and reformat. Fun.
Now the only thing I do is turn the power off and take my chances....

jim

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


Date:  Tue, 11 Feb 86 11:38 EST
From:  LBrenkus@MIT-MULTICS.ARPA
Subject:  Symdeb 4.0 -- Stack trace?

The new version of the excellent symbolic debugger SYMDEB (included at
no extra charge with the Macro Assembler v 4.0) includes several new
options.  The most intriguing is a new command K which the "help screen"
(?  option) identifies as a "stack trace".  Unfortunately, the manual
says nothing about it.  Anyone know what it does?

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


Date: Tue, 11 Feb 86 11:59:17 pst
From: Ron Smith <ron%garfield.mun.cdn%ubc.csnet@CSNET-RELAY.ARPA>
Message-Id: <38:ron@garfield.mun.cdn>
Subject: Hotel Front Desk Package Wanted


I am searching for a Hotel/motel front desk package that will run on
an IBM PCXT or compatable.  Tha package will be used by students 
in the Hospitality Program here at Holland College to familiarize
them with software they will find in the industry.

If anyone can recommend a package please give me the package name,
producer and/or supplier name and address.  A brief description would
also be appreciated.

My mailbox name is <ron@garfield.mun.cdn>.
Postal address is Ron Smith
                  Holland College
                  Weymouth Street
                  Charlottetown, P.E.I.
                  Canada,  C1A 4Z1
Telephone is (902) 566-9670

Many thanks for any suggestions I may recieve.

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

Date: Tuesday, 11 February 1986 16:16:49 EST
From: Joe.Newcomer@a.sei.cmu.edu
Subject: Product Evaluation: Classic 286 


As you may be aware from reading earlier postings, I have been 
interested for some time in upgrading our PC and XT to AT-class
performance.  I have evaluated several boards, most of which were
rejected just based on specs or price.  One low-cost board (Titan
Technologies) simply didn't perform as advertised (SI 1.8x faster,
benchmark 1.2x faster as opposed to a promised "2.5 to 4").

I have finally located a board which solves our problem.  It may not
be the only such board, but I'm somewhat tired of looking, it works,
and I'm using it.

The board is the Classic Technology 286 Speed-Pak.  The board is a
286 chip and the usual connector into the 8088 slot.  Installation was
reasonably straightforward in our XT.  First, the 8088 is removed.
However, unlike most boards, you don't throw the chip away, you plug
it into a socket on the chip.  With the flip of a switch, you can
then change from 80286 operation to 8088 operation.

The device is not strictly AT compatible.  For example, its memory
extension above 1Mb is their own proprietary scheme, which they are
not releasing specs of.  It is clearly not compatible with VDISK
extended memory.  The board itself contains 1Mb of memory, but the upper
banks of RAM are used to hold a copy of the ROM BIOS so that the BIOS
runs with a 16 bit memory path.  Extended memory (Intel/Lotus spec) is
supposed to work with this board, although with only an 8-bit path.
They have a 2.5MB upgrade, but it only runs with their multitasking
software, and they are not currently supporting ramdisks with their
memory upgrade.  Their ramdisk software didn't install in anything
approximating the documented way (in fact, I couldn't get it to install
at all) and apparently you can only add ramdisks with their software where
you would have had floppies (so, for example, you have to configure the
XT motherboard to say there is a B: drive to get a B: ramdisk!).  When
I called them up to ask about this, they said "oh, yeah, there's a bug"
and sent me new software which I haven't tried.  There was also a bug in
their installation instructions.  They supply a little 40pin DIP header
with three capacitors, which is to be inserted in the 8087 slot if the
8087 is not used (the board has a provision for an 80287 also).  The
instructions say "insert the dip header with the notch towards the back
of the computer".  Fine, except the header is totally symmetric.  Not
even a pin 1 marking.  Fortunately, I knew that the three capacitors which
were connected to a corner pin must obviously be to ground, so plugged it
in so that pin 20 (ground) was where the common line to the three capacitors
went.  Not everyone would have known this.

The board also doesn't have a built-in clock/calendar.  Fortunately, we have
one on our multifuction XT memory board (which now serves only as a serial
port and clock).  The goal was not AT compatibility, but XT compatibility
with AT speed.  Since this was of more interest to me than AT compatibility,
I feel no loss.

The Norton SI command says the performance is 7.0 times a PC, and our
benchmark (I/O and compute intensive) ran in 25 minutes instead of 82
minutes.  The difference is obviously the disk I/O limitation (80 ms
seek), since it runs in 18 minutes on my AT with the faster drive
(30ms seek), but only 5.0 on the SI yardstick.  I have had no
failures running any program we normally use.  We also successfully
ran FASTBACK in the 80286 mode to restore files to a new 32Mb disk we
installed, so serious BIOS and device hacking still works.  There
have been no disk problems or other problems of timing.  Performance
of screen editors such as Epsilon is impressive, since it runs more
towards the 7.0 factor.  Unfortunately our best measure was big file
searches, which are also disk intensive; they seem to run 3-4 times
faster.  One nice feature of the 8088 "downgrade" switch is that we
could switch processors and run the same tests again to see what the
performance is like.  A little experimentation showed that switching
processors makes the machine go catatonic; they should be switched
only when the power is off.  My housemate, who was envious of the
performance of my AT, is now extremely pleased.  We even bought some
little "custom hot rod" flames to put on the machine to show it is a
"hot" job.

I am sufficiently happy with this product that we have ordered a
second one for our PC.  The original price was about $1200, but rumor
has it that they have dropped the price by $150 in the last week or
so.  Because we have ordered the second one within 30 days of the
evaluation copy the first one also comes in at the lower price, whose
exact value I will know when the second one arrives in a week or two.
Adding two AT-performance for $2000 is not a bad investment at all.

I hope someday they produce real ramdisk software that allows the creation
of D:, E:, etc. drives in extended 16-bit memory.  This will substantially
improve the performance (for example, I use ramdisk on my AT for Epsilon
swap space).  Being able to put the dBASEIII .dbf and .ndx file for our
major application into ramdisk for the report generation would also be
a big win.  The company didn't seem much interested in this aspect, nor with
releasing the specs to customers, which was a bit of a turn off, but I'm
hoping they will finally wise up and either provide useful software or
provide the necessary specs.

If anyone knows of a cheap Intel/Lotus compatible board or source for
something of that form, I'm interested.

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

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