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
************************
-------