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