Info-IBMPC@C.ISI.EDU (Info-IBMPC Digest) (05/14/87)
Info-IBMPC Digest Wednesday, 13 May 1987 Volume 6 : Issue 36 This Week's Editor: Billy Brackenridge Today's Topics: ANSI Code List Disk-Defragmenters MS-DOS 3.1 COMMAND.COM Bug UUENCODE/UUDECODE again ... EGA Detection (2 Msgs) BIOS Cursor and ANSI.SYS Cursor are Separate Screen Swapping Under SCO XENIX MSC 4.0 bugs C++ Today's Queries: EMACS for PC's Virtual Device Driver? TEAC FD-55F Turbo C and GKS Redirection in Batch Files Speech Synthesis Hardware and Software (2 Msgs) Ampro LittleBoard/PC INFO-IBMPC BBS Phone Numbers: (213)827-2635 (213)827-2515 ---------------------------------------------------------------------- Date: Tue, 12 May 87 16:58:34 edt From: geac!len@Sun.COM (Leonard Vanek) Subject: ANSI Code List Here is the requested list of ANSI control sequences. I picked it up off of the Usenet a while back. [Here we go again this one seems more complete than the one published last digest. -wab] ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals in alphabetic order by mnemonic (Inspired by the article "Toward Standardized Video Terminals: ANSI X3.64 Device Control" by Mark L. Siegel, April 1984 BYTE, page 365) Note: This describes the VT-100 standard. (Ps and Pn are parameters expressed in ASCII.) (Numeric parameters are given in decimal radix.) (Abbreviations are explained in detail at end.) (Spaces used in this table for clarity are not used in the actual codes.) Default Type Sequence Sequence Parameter or Mnemonic Name Sequence Value Mode --------------------------------------------------------------------------- APC Applicatn Program Command Esc Fe Delim CBT Cursor Backward Tab Esc [ Pn Z 1 EdF CCH Cancel Previous Character Esc T CHA Cursor Horzntal Absolute Esc [ Pn G 1 EdF CHT Cursor Horizontal Tab Esc [ Pn I 1 EdF CNL Cursor Next Line Esc [ Pn E 1 EdF CPL Cursor Preceding Line Esc [ Pn F 1 EdF CPR Cursor Position Report Esc [ Pn ; Pn R 1, 1 CSI Control Sequence Intro Esc [ Intro CTC Cursor Tab Control Esc [ Ps W 0 EdF CUB Cursor Backward Esc [ Pn D 1 EdF CUD Cursor Down Esc [ Pn B 1 EdF CUF Cursor Forward Esc [ Pn C 1 EdF CUP Cursor Position Esc [ Pn ; Pn H 1, 1 EdF CUU Cursor Up Esc [ Pn A 1 EdF CVT Cursor Vertical Tab Esc [ Pn Y EdF DA Device Attributes Esc [ Pn c 0 DAQ Define Area Qualification Esc [ Ps o 0 DCH Delete Character Esc [ Pn P 1 EdF DCS Device Control String Esc P Delim DL Delete Line Esc [ Pn M 1 EdF DMI Disable Manual Input Esc \ Fs DSR Device Status Report Esc [ Ps n 0 EA Erase in Area Esc [ Ps O 0 EdF ECH Erase Character Esc [ Pn X 1 EdF ED Erase in Display Esc [ Ps J 0 EdF EF Erase in Field Esc [ Ps N 0 EdF EL Erase in Line Esc [ Ps K 0 EdF EMI Enable Manual Input Esc b Fs EPA End of Protected Area Esc W ESA End of Selected Area Esc G FNT Font Selection Esc [ Pn ; Pn Space D 0, 0 FE GSM Graphic Size Modify Esc [ Pn ; Pn Space B 100, 100 FE GSS Graphic Size Selection Esc [ Pn Space C none FE HPA Horz Position Absolute Esc [ Pn ` 1 FE HPR Horz Position Relative Esc [ Pn a 1 FE HTJ Horz Tab w/Justification Esc I FE HTS Horizontal Tab Set Esc H FE HVP Horz & Vertical Position Esc [ Pn ; Pn f 1, 1 FE ICH Insert Character Esc [ Pn @ 1 EdF IL Insert Line Esc [ Pn L 1 EdF IND Index Esc D FE INT Interrupt Esc a Fs JFY Justify Esc [ Ps ; ... ; Ps Space F 0 FE MC Media Copy Esc [ Ps i 0 MW Message Waiting Esc U NEL Next Line Esc E FE NP Next Page Esc [ Pn U 1 EdF OSC Operating System Command Esc ] Delim PLD Partial Line Down Esc K FE PLU Partial Line Up Esc L FE PM Privacy Message Esc ^ Delim PP Preceding Page Esc [ Pn V 1 EdF PU1 Private Use 1 Esc Q PU2 Private Use 2 Esc R QUAD Typographic Quadding Esc [ Ps Space H 0 FE REP Repeat Char or Control Esc [ Pn b 1 RI Reverse Index Esc M FE RIS Reset to Initial State Esc c Fs RM Reset Mode Esc [ Ps l none SD Scroll Down Esc [ Pn T 1 EdF SEM Select Edit Extent Mode Esc [ Ps Q 0 SGR Select Graphic Rendition Esc [ Ps m 0 FE SL Scroll Left Esc [ Pn Space @ 1 EdF SM Select Mode Esc [ Ps h none SPA Start of Protected Area Esc V SPI Spacing Increment Esc [ Pn ; Pn Space G none FE SR Scroll Right Esc [ Pn Space A 1 EdF SS2 Single Shift 2 (G2 set) Esc N Intro SS3 Single Shift 3 (G3 set) Esc O Intro SSA Start of Selected Area Esc F ST String Terminator Esc \ Delim STS Set Transmit State Esc S SU Scroll Up Esc [ Pn S 1 EdF TBC Tab Clear Esc [ Ps g 0 FE TSS Thin Space Specification Esc [ Pn Space E none FE VPA Vert Position Absolute Esc [ Pn d 1 FE VPR Vert Position Relative Esc [ Pn e 1 FE VTS Vertical Tabulation Set Esc J FE --------------------------------------------------------------------------- Abbreviations: Intro an Introducer of some kind of defined sequence; the normal 7-bit X3.64 Control Sequence Introducer is the two characters "Escape [" Delim a Delimiter x/y identifies a character by position in the ASCII table (column/row) EdF editor function (see explanation) FE format effector (see explanation) F is a Final character in an Escape sequence (F from 3/0 to 7/14 in the ASCII table) a control sequence (F from 4/0 to 7/14) Gs is a graphic character appearing in strings (Gs ranges from 2/0 to 7/14) in the ASCII table Ce is a control represented as a single bit combination in the C1 set of controls in an 8-bit character set C0 the familiar set of 7-bit ASCII control characters C1 roughly, the set of control characters available only in 8-bit systems. This is too complicated to explain fully here, so read Jim Fleming's article in the February 1983 BYTE, especially pages 214 through 224. Fe is a Final character of a 2-character Escape sequence that has an equivalent representation in an 8-bit environment as a Ce-type (Fe ranges from 4/0 to 5/15) Fs is a Final character of a 2-character Escape sequence that is standardized internationally with identical representation in 7-bit and 8-bit environments and is independent of the currently designated C0 and C1 control sets (Fs ranges from 6/0 to 7/14) I is an Intermediate character from 2/0 to 2/15 (inclusive) in the ASCII table P is a parameter character from 3/0 to 3/15 (inclusive) in the ASCII table Pn is a numeric parameter in a control sequence, a string of zero or more characters ranging from 3/0 to 3/9 in the ASCII table Ps is a variable number of selective parameters in a control sequence with each selective parameter separated from the other by the code 3/11 (which usually represents a semicolon); Ps ranges from 3/0 to 3/9 and includes 3/11 v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v Format Effectors versus Editor Functions A format effector specifies how the final output is to be created. An editor function allows you to modify the specification. For instance, a format effector that moves the "active position" (the cursor or equivalent) one space to the left would be useful when you want to create an over strike, a compound character made of two standard characters overlaid. Control-H, the Backspace character, is actually supposed to be a format effector, so you can do this. But many systems use it in a nonstandard fashion, as an editor function, deleting the character to the left of the cursor and moving the cursor left. When Control-H is assumed to be an editor function, you cannot predict whether its use will create an over strike unless you also know whether the output device is in an "insert mode" or an "overwrite mode". When Control-H is used as a format effector, its effect can always be predicted. The familiar characters carriage return, linefeed, formfeed, etc., are defined as format effectors. v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v ^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^ ANSI X3.64 Mode-Changing Parameters for use with the Select Mode (SM) and Reset Mode (RM) functions Parameter Mode Mode Function Characters Mnemonic column/ graphic row repres. ---------------------------------------------------------------------------- 3/0 0 an error condition 3/1 1 GATM guarded-area transfer mode 3/2 2 KAM keyboard action mode 3/3 3 CRM control representation mode 3/4 4 IRM insertion/replacement mode 3/5 5 SRTM status-reporting transfer mode 3/6 6 ERM erasure mode 3/7 7 VEM vertical editing mode 3/8 8 reserved for future standardization 3/9 9 reserved for future standardization 3/10 : reserved separator for parameters 3/11 ; Standard separator for parameters 3/12 < reserved for private (experimental) use 3/13 = reserved for private (experimental) use 3/14 > reserved for private (experimental) use 3/15 ? reserved for private (experimental) use 3/1 3/0 10 HEM horizontal editing mode 3/1 3/1 11 PUM positioning unit mode 3/1 3/2 12 SRM send/receive mode 3/1 3/3 13 FEAM format effector action mode 3/1 3/4 14 FETM format effector transfer mode 3/1 3/5 15 MATM multiple area transfer mode 3/1 3/6 16 TTM transfer termination mode 3/1 3/7 17 SATM selected area transfer mode 3/1 3/8 18 TSM tabulation stop mode 3/1 3/9 19 EBM editing boundary mode 3/1 3/10 1: reserved separator for parameters 3/1 3/11 1; Standard separator for parameters 3/1 3/12 1< error condition--unspecified recovery 3/1 3/13 1= error condition--unspecified recovery 3/1 3/14 1> error condition--unspecified recovery 3/1 3/15 1? error condition--unspecified recovery 3/2 3/0 20 LNM linefeed/newline mode (not in ISO 6429) 3/2 3/1 21 . . . . reserved for future standardization . . 3/9 3/9 99 3/12 3/0 <0 . . . . reserved for private (experimental) use . . 3/15 3/15 ?? v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v ^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^ NOTES ON THE DEC VT100 IMPLEMENTATION In the case of the popular DEC VT100 video-terminal implementation, the only mode that may be altered is the linefeed/newline (LNM) mode. Other modes are considered permanently set, reset, or not applicable as follows: Set: ERM Reset: CRM, EBM, FEAM, FETM, IRM, KAM, PUM, SRTM, TSM N/A: GATM, HEM, MATM, SATM, TTM, VEM Control sequences implemented in the VT100 are as follows: CPR, CUB, CUD, CUF, CUP, CUU, DA, DSR, ED, EL, HTS, HVP, IND, LNM, NEL, RI, RIS, RM, SGR, SM, TBC plus several private DEC commands. Erasing parts of the display (EL and ED) in the VT100 is performed thus: Erase from cursor to end of line Esc [ 0 K or Esc [ K Erase from beginning of line to cursor Esc [ 1 K Erase line containing cursor Esc [ 2 K Erase from cursor to end of screen Esc [ 0 J or Esc [ J Erase from beginning of screen to cursor Esc [ 1 J Erase entire screen Esc [ 2 J The VT100 responds to receiving the DA (Device Attributes) control Esc [ c (or Esc [ 0 c) by transmitting the sequence Esc [ ? l ; Ps c where Ps is a character that describes installed options. The VT100's cursor location can be read with the DSR (Device Status Report) control Esc [ 6 n The VT100 reports by transmitting the CPR sequence Esc [ Pl ; Pc R where Pl is the line number and Pc is the column number (in decimal). v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v ^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^ The complete document describing the standard, "ANSI X3.64-1979: Additional Controls for Use with the American National Standard Code for Information Interchange," can be ordered for $13.50 (plus $4 postage) from Standards Sales Department American National Standards Institute 1430 Broadway New York, NY 10018 212/354-3300 It's best to read the full standard before using it. It also helps to have copies of the related standards "X3.4-1977: American National Standard Code for Information Interchange" (the ASCII standard) and "X3.41.1974: Code-Extension Techniques for Use with the 7-Bit Coded Character Set of American National Standard for Information Interchange." See also the chapter "Using Extended Screens and Keyboard Control" in the IBM PC-DOS manuals (versions 2.0, 2.1, and 3.0), especially for the coding for character attributes. The specification for the DEC VT100 is document EK-VT100-UG-003, available for $13.00 prepaid from: Digital Equipment Corporation Accessories and Supplies Group POB CS-2008 Nashua, NH 03061 (Copyright 1984 BYTE Publications, subsidiary of McGraw-Hill Inc.) (Permission granted to reproduce for noncommercial uses.) (This file prepared by Richard S. Shuford.) Len Vanek ------------------------------ Date: Wed, 13 May 87 03:11:24 EDT From: David Kirschbaum <kirsch@braggvax.arpa> Subject: Disk-Defragmenters Re the recent query and responses for a disk defragmenter: No one mentioned REFORMAT (presently in the Info-IBMPC library in full Turbo source). I helped with some tweaking of that programmer, have tested it extensively on many different machines with no problems, etc. Is there a problem with REFORMAT that I haven't heard about? Jos (the author, a Dutchman whose name I don't have handy) did one heck of a nice job on it (to include the latest improvements to handle big hard disks). It doesn't have some of the nicetities of displaying just how fragmented your disk is BEFORE you start the defragmenting, however. (Maybe next version, Jos?) Regards, David Kirschbaum Toad Hall kirsch@braggvax.ARPA [The Editor was asleep again. Don't know my own library! -wab] ------------------------------ Date: Wed, 13 May 87 01:38:31 PDT From: Dana Myers <bilbo.dana@CS.UCLA.EDU> Subject: MS-DOS 3.1 COMMAND.COM Bug Recently, in Info-IBMPC, a bug in MS-DOS 3.1 COMMAND.COM was reported. I researched the bug and discovered that this is the expected behavior on an IBM/IBM Clone PC. The explanation requires one to think of MS-DOS as the component portions "IBMDOS.COM" and "IBMBIO.COM". IBMDOS.COM is the I/O independent portion of MS-DOS. IBMBIO.COM is a collection of device drivers which IBMDOS.COM uses to perform all I/O. One exception, in the case of PC-DOS, is that COMMAND.COM does the CLS (clear screen command) if the CON device is the original IBMBIO.COM driver by using INT 10. This does not happen in MS-DOS. Some of the drivers in IBMBIO.COM can be replaced by CONFIG.SYS directives. One such case is the loading of ANSI.SYS, which replaces the CON driver resident in IBMBIO.COM. The driver in IBMBIO.COM appears to do INT 010h to write characters to the screen. The ROM BIOS INT 010h handler does not implement "back-wrap" so the cursor will just stay at the beginning of the line. I confirmed this by using testing with INT 10. It turns out that "bug" here is in INT 10. This certainly is not a COMMAND.COM problem, but many programs DO "back-wrap". They achieve this by directly controlling the video memory and video controller. COMMAND does not do this; instead, it simply performs system calls that in turn cause I/O driver calls that in turn cause INT 10s to occur. Dana H. Myers Locus Computing Corp. Santa Monica, CA P.S. One more supposed bug caused by a lack of understanding and dispelled by scientific research ;-) ------------------------------ Date: Wed, 13 May 87 14:50:12 GMT From: Gregory Hicks COMFLEACTS - Chinhae <hicks@walker-emh.arpa> Subject: UUENCODE/UUDECODE again ... To: info-ibmpc@c.isi.edu When I submitted the MS-DOS UUENCODE/UUDECODE last week, I made a serious mistake in testing the modifications. I uuencode'd a text file and then uudecode'd the encoded file. (Why? Because I could READ the decoded file!) However, when I went to encode a binary file, I discovered the mods wouldn't work. The attached submission fixes that error. These progs have been compiled with Microsoft C v3.00 and tested with both binary and text files. They work. I apologize for the faulty submission. These files can only be compiled with Microsoft C however. They should only run under MS-DOS. These files originally came from SIMTEL20. I modified the conditionals so that they would only compile with Microsoft C v3.00 ... Usage is: uuencode [local-f-n] [remote-f-n] and uudecode [remote-f-n] Programs will end up in the [local-f-n] with Un*x permissions of 666 after they have been decode'd. These originally came from info-ibmpc and the fixes to correct the text only encoding from SIMTEL20. Again, apologize for the faulty submission. Gregory Hicks [UUENCODE.C has been updated again. -wab] ------------------------------ Date: 13 May 87 09:20:00 EDT From: "V703::S_DANIELS" <s_daniels%v703.decnet@nusc.arpa> Subject: EGA Detection HOW TO DETECT PRESENCE OF AN EGA CARD: 5/13/87 This code fragment comes from the program "QWIK13" by (author unknown) This program provides super-fast screen writes, boxes, save/restore from Turbo Pascal. The latest version is QWIK21 and can be found on various BBS's, including our own, SE CT PC UG @ (203) 886-5265. A similar method comes with the program "PIBMDOS" by Phil Burns, part, of an article published in MicroSystem Journal recently. { EGAcheck - check if EGA is in use ver 1.3, 11-10-86 } { SOURVCE: QWIK13 package of fast screen write procedures } { If you want faster results with an EGA and also will use a CGA, this function will check for existing EGA BIOS and use the faster loops that don't wait for retrace as needed on the CGA. } var ToEGA: Boolean; { Assign the result of EGAcheck to ToEGA as an } { initializing routine in your program!!! } Function EGAcheck: Boolean; begin Inline( $B4/$12 { MOV AH,$12 ;Set AH for alt select} /$BB/$10/$FF { MOV BX,$FF10 ;Set BX for EGA info} /$CD/$10 { INT $10 ;Interrupt} /$80/$EF/$FF { SUB BH,$FF ;Check if BH changed} /$74/$02 { JZ NoEGA ;BH=false if no EGA} /$B7/$01 { MOV BH,$01 ;Set BH=true ($01)} /$88/$7E/$04 {NoEGA: MOV [BP+$04],BH ;EGAcheck: $01 or $00} ); end; { test program } { remove following line to enable the test program } (* begin writeln('EGA CHECK: EGA exists = ', egacheck); end. (**) GOOD LUCK... SCOTT DANIELS. Date: Wed, 13 May 87 17:30:48 PDT From: ssnyder@Tybalt.Caltech.Edu (Scott S. Snyder) Subject: How to detect an EGA One way to detect an EGA is to use the get alternate information BIOS call, which is not present in the CGA BIOS. It is called with AH = 0x12 and BL = 0x10, and on return BL indicates the EGA memory size (0=64k, 1=128k, 2=192k, and 3=256k) and cl contains the status of the EGA configuration switches. If there is no EGA, the call returns with registers unmodified, i.e., BL still contains 0x10. This method is not entirely ideal since there is no guarantee that this behaviour is unique to the EGA, but it was the best I could come up with. ------------------------------ Date: Wed, 13 May 87 10:13:43 PDT From: Jim Anderson <bilbo.jta@CS.UCLA.EDU> Subject: BIOS Cursor and ANSI.SYS Cursor are Separate ANSI.SYS (or NANSI, or whatever) has it's own idea of the current cursor position. If you use BIOS cursor positioning and subsequently write to the ANSI driver, it will use it's idea of the cursor position, not the cursor position set by BIOS. Of course, none of this applies if you don't have an ANSI driver installed. ------------------------------ Date: Tue, 12 May 87 23:10:43 PDT From: ucscc!ross@ucscd.ucsc.edu (98817000) Subject: Screen Swapping Under SCO XENIX SCO XENIX release 2.2 does support both a monochrome and color display in the system at once. Each display is allocated half of the system's multiscreens. Switching multiscreens, therefore, switches the active display. If you have an earlier version of XENIX, you must upgrade to 2.2 to be able to use this feature. Ross Oliver Tech Support @ SCO ...decvax!microsoft!sco!rosso ...ucbvax!ucscc!sco!rosso ------------------------------ From: ee163adj@sdcc18.ucsd.EDU (Steven "B.J." Martin) Subject: MSC 4.0 bugs Date: 11 May 87 20:06:43 GMT Organization: University of California, San Diego The following are the responses I received about bugs in microsoft C 4.0. I have commented where I could add something to what was stated otherwise I Their response is how I received it. >From: "Nelson H.F. Beebe" <Beebe@science.utah.edu> The one bug I have found is in sscanf() (and probably scanf() and fscanf(), though I haven't checked). Specifically, the format "%d:%d:%d" should return the number of fields successfully parsed for the function value. That is, it should return respectively 1, 2, and 3 for the inputs "3", "3:4", and "3:4:5". For the first two, it incorrectly returns 0. If the input is changed to "3:" or "3:4:", the returned value is correct. I tried this one the problem shows up with sscanf in any model. >From: seismo!vu-vlsi!colin@sdcsvax (Colin Kelley) The only bug I've run across is this: [it's been discussed at length in this newsgroup] The signal(SIGINT,...) routine does not function under MS-DOS 3.x, because it assumes that the stack segment and offset (SS:SP) have not been changed when an INT 23H (^C) is executed, when in fact MS-DOS has changed them in order to switch to an internal stack. This often results in a "stack overflow" or "stack underflow" error when the control-C handler is executed. The work-around is to install your own assembly language routine which first restores SS:SP and then jumps to the C ^C handler... -Colin Kelley ..{cbmvax,pyrnj,bpa}!vu-vlsi!colin --------------------------------------------------------------------------- >From: ddl@husc6.HARVARD.EDU (Dan Lanciani) These are from memory, so you might want to try them... 1) overambitious constant elimination: foo(int_variable | 0L); passes a 16-bit quantity rather than a 32-bit one. Of course, 1L works just fine as does foo(int_constant | 0L); 2) This isn't explicitly a bug, but probably isn't what they wanted: (long)p != (long)(int)p for p char (near) pointer because conversion to a long causes the segment value to be inserted in the high word. This is strictly ok because conversion back to a pointer will truncate and that's all that is guaranteed anyway... 3) This really is a bug: (long)((char *)&thing - (char *)&other_thing) != (long)(int)((char *)&thing - (char *)&other_thing) Again, funny stuff happens to the high-order word. 2 and 3 are especially bad when the conversion to long happens implicitly as. Dan Lanciani ddl@harvard.* These are the only responses I got, if you know of any others please let me know. Steven "B.J." Martin ------------------------------ Date: Wed, 13 May 87 16:24:56 EDT From: jcm@ORNL-MSR.ARPA (James A. Mullens) Subject: C++ I like C++. Besides supplying a basic object-oriented programming capability, it improves on C itself: cleaner function declaration syntax, operator overloading, variable number of function arguments with defaulted argument values supplied for missing arguments, inline functions instead of bug-prone macro definitions, constant data declarations instead of #define, and other features. Ada programmers will find some familiar concepts in C++. On the negative side, it has been much harder for me to learn than C, FORTRAN, Pascal, LISP, BASIC, or the little bit of Ada I know. (My only source of information was the language creator's book). I would say that it is a "language lawyer's" dream. This may be a shortcoming of the book's presentation, but it is true that the language gets very complex in areas like initialization of objects (structs). I have tried Advantage C++, distributed by Lifeboat for MSDOS. (Oasys distributes it for VAX/VMS). I have used the Microsoft C V4 version -- another version is available for Lattice C. Lifeboat is just now shipping the third version of C++ for Microsoft (1.1M3). I had problems, which I can sum up by saying the C++ translator can barely be squeezed into an MSDOS machine. First, I had grown accustomed to leaving my editor (Epsilon) in memory while I compile with Microsoft C. But the C++ translator requires (about) 512K to run, so there is no way to leave Epsilon in. In fact some of you may have to cut back on your memory-resident goodies as well. This is just a minor annoyance unless those memory-resident programs are critical to your applications (e.g., GKS graphics drivers for the C++ program you are creating). Neither have I been able to use Microsoft MAKE because it does not leave enough room for the C++ translator either. Second, Microsoft C V4 cannot handle the bulky code produced by the C++ translator. I have a C++ source which defines and uses a lot of objects and methods for a graphics package. The C++ source consists of an 8K program and 10K of include files (graphics object definitions). This is expanded by the C++ translator (which also handles the C preprocessor phase) to a 28K C source. This is a fairly standard C source, except it contains some huge structure definitions (87 full lines for a struct describing one of my objects). When C tries to compile the file it dies, complaining that the compiler has run out of heap space, and the manual suggests that I divide the file into smaller files and feed them to the compiler one-at-a-time. I believe in modular code, especially when I can keep my editor memory-resident and edit multiple files, but an 8K size restriction in this project was too much for me to bear. On the plus side, the technical support has been good. I have the impression that the translator internals are mature, however the adaptation to MSDOS and Microsoft C is still in progress. There have been many product changes between the beta test version I received last September and the version 3 I received this week. One of those changes was a switch from the Microsoft C preprocessor to a Unix System V compatible preprocessor. I didn't notice any problems there, but then I don't use tricky preprocessor features. I have stopped using the MSDOS version because I plan to continue development on our uVAX-II/VMS machine, which is the real target environment anyway. I have not received the VMS version yet, but I have heard that it lacks support for some unique VAX C features like "globaldef". I believe there are other MSDOS versions, and I'd like to hear from anyone who has used them. I would like to receive the mail from the USENET newsgroup dealing with C++. (As far as I know, that newsgroup is not available on the ARPAnet side). Would anyone offer to send the archives? Could anyone suggest how an ARPAnetter could access this USENET group without putting USENET up on the local Unix VAX? jim mullens / jcm@ornl-msr.arpa / oak ridge national laboratory ------------------------------ Date: Tue 12 May 87 15:09:57-PDT From: Frank Kolakowski <BCOOPERMAN.KOLAKOWSKI@BIONET-20.ARPA> Subject: EMACS for PC's I am looking for a reasonable implementation and some good documentation for an EMACS for MS-DOS machines. What is the current version of EMACS and is there a good version the is PD and with source. I'd like a full implementation, as I am working on both UNIX (BSD 4.2 Ultrix) and TOPS (DEC TOPS-20 ) machines which both have full working versions. Any suggestions? Frank Kolakowski c/o JES@eniac.seas.upenn.edu or KOLAKOWSKI@BIONET-20.ARPA or 215-898-2927 [There are many. They have been discussed many times in past digests. -wab] ------------------------------ Date: Tue, 12 May 87 16:56:00 EDT From: Kevin Brown <KCB1%APLVM.BITNET@wiscvm.wisc.edu> Subject: Virtual Device Driver? To: INFO-IBMPC@USC-ISIB.ARPA I am looking for a Virtual Device Interface Driver for the Hewlett-Packard Laser Jet +. Does anyone know of a source or know the reason why it is hard to find this device driver? I have no trouble coming up with Virtual Device Drivers for other types of printers (i.e. Think Jets, Epson, etc.). Thanx in Advance, Kevin Brown Applied Physics Laboratory Laurel, MD (301) 953-5000 KCB1@APLVM BITNET KCB1%APLVM.BITNET@wiscvm.wisc.edu ARPA Internet ------------------------------ Date: Wed, 13 May 87 13:53 N From: <SINGPANG%HLERUL5.BITNET@wiscvm.wisc.edu> (Marc Chang Sing Pang) Subject: TEAC FD-55F Turbo C and GKS Hello all, I have the following questions: 1. Can you use a TEAC FD-55F floppy drive as a 1 MB drive for an AT? 2. Can you use Turbo C together with the IBM GKS (Graphical Kernel System)? I want to know if you can link Turbo C programs together with the GKS procedures which are in the GKS library. 3. Will Intel produce a 80386 version which is plug-in compatible with the 80286 (just as it is with a 8088 and NEC V20) ? Thanks in advance, Marc [PC Week erroneously announced such a chip about a month ago. Intel plans a board that will plug into a 286 socket. -wab] ------------------------------ Subject: Redirection in Batch Files From: oxy!bagpiper@csvax.caltech.edu (Michael Paul Hunter) Date: 13 May 87 03:19:46 PST Say for instance I have a batch file that does the following: pass1 %1 pass2 link %1; I call this batch file compile. compile >errors doesn't do what I want it to do for some obvious reasons (it only seems to redir. stdin for the batch file itself, but not for any processes that start and terminate inside...I would assume this is because the batch file manager (PC-DOS) exec's each task which creates a new environment.. i.e, it does not give the new process a copy of the old environment [where STDIN, STDOUT points.] ) Now the question is: Can anyone shed anymore light on this problem...all that I have said I have guessed at...It would be nice to capture all of the output in one file instead of having to do pass1 %1 >pass1.err pass2 >pass2.err link %1 >link.err This is bogus...I should be able to get all of this in one file without having to do a type pass1.err >errors type pass2.err >>errors type link.err >>errors erase pass1.err erase pass2.err erase link.err Does anyone have an answer to this problem (besides writing a program to do the above batch -- I can do this, it just means that much more floating around in memory and I barely have enough mem to do what I have to do.)?? . . <--- The Great Highland Bagpipe . . . Las Gaitas . . . . . . Michael Hunter . . . ARPA : oxy!bagpiper@csvax.caltech.edu ----- BITNET: oxy!bagpiper@hamlet.bitnet | | CSNET : oxy!bagpiper%csvax.caltech.edu@relay.cs.net | I | UUCP : ....{seismo, ruthers, ames}!cit-vax!oxy!bagpiper | I | usmail: box 241 ----- Occidental College I Los Angeles, CA 90041 I _I_ Note: If you know the word for Bagpipe in a language that is not listed...Tell Me. ------------------------------ Date: 13 May 87 14:30:00 EDT From: "ARTIC::GAYMAN" <gayman%artic.decnet@ARI-HQ1.ARPA> Subject: Speech synthesis hardware and software Speech Synthesis Devices We would appreciate any information you have regarding speech synthesis "devices" that can read text files. We are expecting to hire a visually handicapped person at our site and the speech synthesis approach seems best for this situation - although all suggestions are welcome. Please post to INFO-IBMPC@C.ISI.EDU as I am not a subscriber to this list. Elizabeth Gayman (GAYMAN@ARI-HQ1.ARPA) ------------------------------ Date: 13 May 1987 16:40:45 PDT Subject: Speech Synthesis Hardware and Software From: Billy <BRACKENRIDGE@C.ISI.EDU> To: "ARTIC::GAYMAN" <gayman%artic.decnet@ARI-HQ1.ARPA> There are a dozen or so companies making text to speech based systems for blind people. Most systems use some sort of text to speech device connected by a serial port. Some programs are quite elaborate and allow people to use screen oriented programs like Lotus. Here is a list of sources. I think it would be a nice service if people would send in their experiences with these companies. We could compile a database that might be of use to blind (and perhaps deaf) people. There are many companies who do text to speech for telephone applications and as part of more elaborate speech recognition and response systems. I have limited the list to those directly in the handicapped market. Computer Conversations "Enhanced PC Talking Program" 2350 N 4th Street Columbus Ohio 43202 (614)263-4324 Software that works with external text to speech synthesizers such as DEC-Talk or Echo-PC. Telesensory Systems VERT and Soft-VERT 455 N. Bernard Ave. Mountain View, CA 94039 (415)960-0920 Software and hardware, however soft-vert works with external speech synthesizers. Computer Aids Screentalk 124 West Washington, Lower Arcade Ft. Wayne, Indiana 46802 (219)422-2425 Software Street Electronics Echo PC P.O. Box 50220 Santa Barbara, CA 93150 (805)565-1612 RS232 and PC Cards that do text to speech less than $200 Digital Equipment Corp DEC-Talk Contact your friendly local DEC Salesperson RS232 text to speech greater than $2,000 Personal Data Systems Noel Runyon 638 Sobrato LN Campbell, CA 95008 Software and hardware coming "real soon now". I don't know Noel but many in the industry expect the next generation in PC based aids for the blind to come from him. Berkeley Speech Technology (415)841-5083 Text to speech algorithms for OEMs who want to roll their own product. ------------------------------ Date: Wed, 13 May 87 12:59 PDT From: Mark Geisert <Mark-Geisert%LADC@HI-MULTICS.ARPA> Subject: Ampro LittleBoard/PC Greetings NetLandians..... I would be interested in hearing of the experiences of any of you who have used the above product. I'm most interested in whether it is truly compatible with MS-DOS and PC-DOS as claimed. Who makes the ROM BIOS? Any problems using add-on hardware? Any problems at all? (By the way, I'm talking about the LittleBoard/PC, not the older LittleBoard. The /PC product is a single board computer that fits to a diskette drive and comes with a 7.15MHz V40, up to 768K RAM, 2 serial and 1 parallel port, SCSI port, 8087 socket, some amount of EPROM space, mostly CMOS construction, piggyback video card, etc.) Please reply to me directly.. I will summarize to net. Thanks in advance, ..mark (Mark-Geisert%LADC@HI-MULTICS.ARPA) ------------------------------ End of Info-IBMPC Digest ************************ -------