Firefly Software Systems Corp. Box 5035 Oregon City, OR 97045 503-694-2221 FAX 503-694-5867 6-3-94 This program project is code named Letter Box. A replacement for WINOA386.MOD from Firefly Software Systems Corp. (Winao386.mod is the DOS session sub system). INSTALLATION -------------- These files are normally found in the Windows\SYSTEM subdirectory. Rename Winoa386.mod to something else like *.old copy wx.exe to Winoa386.mod. Copy WOLDAPDL.DLL to the same directory with Winoa386.mod Copy the dosfon.fon font to the same directory. Copy VTSR___.ttf to the same directory. (see note below). Copy DOSAPP.INI to DOSAPPx.INI. (windows subdirectory). That's all it takes for the install. Problems reported will be fixed, where feasible within minutes. Hours, days, years. As fast as possible. FEATURES: System.ini switches [NonWindowsApps] WinoaLogErrors=1 ; turns on error logging. ; 0 = off, 1 = on, 2 = on and notify w/messagebox Special Features Better error handling Faster -------------- Screen updates (more to come). Starting a second DOS session; much faster. The User Interface has been improved somewhat. Operations which take some time, more than a second have an hourglass/wait icon displayed. The system/settings menu now has 2 items. This Session, and PIF Editor. Brings up the pif editor and the correct pif file for the present DOS session. The Settings dialog box, has a help button for DOS sessions that have gone to sleep and won't wake up. True Type Fixed Fonts in a Windowed DOS session!!!! The dialog box will allow any point size you want to enter manually. If you use a "?" in the pif file in the optional parameters, Winoldap will put up a dialog box prompt asking you to fill in the blank. Our implementation supports a browse button, cancel, help and maybe a history list. Now allows changing the full-screen/windowed option. This feature is quite powerful. An Extended DOSAPP.ini file is now being used. The file name is "DOSAPPx.ini" This extended file will allow new features, including a limit on the number of instances that can be started. A CopyScreen to clipboard menu item. Error logging for system administrators. Log is kept in WINOLDAP.LOG in the Windows directory. More stack space More reliable during startup. Starting 2 dos sessions back to back won't crash your system or make it unstable. More reliable during run time. Critical error messages will always display under worst case. Should be much better on a network. If the grabber file (vga.3gr or whatever) can't be found, you will get a specific message with precise missing file name when you try to start a DOS session. Try it. Rename the vga.3gr in system.ini to vgaz.3gr. Help buttons in all dialog boxes. A True Type Terminal Font by Ed Behl. VTSR____.TTF.(if not included, see below) These type faces are from Ed Behl's type company, in Florida. This VTSR is a True Type but has the PC-8 (OEM terminal) type faces with the high ascii characters. Install this font with your Windows Control Panel. Then select it in the True Type menu item, under the Fonts menu item on the system menu in a DOS windowed session. (Download this from our BBS - 503-694-2220). Or maybe off of Compuserve. LRESULT SendMessage(hWnd, WM_USER+0x530, 178H, 0L); will return a handle of a global memory object: copy of the screen. You must GlobalFree the handle, in AX. DX contains the format number. AX is in the lowword and DX is in the Hiword of LRESULT. A screen object will normally be about 2048 bytes in length. Trailing spaces are converted to nulls. Lines are terminated with cr/lf. hDOS = FindWindow("tty", NULL);// set null = "a Window Title" if(!hDOS) return 0; // to find other than first window lres = SendMessage(hDOS, WM_USER+0x530, 0x178, 0L); if(lres == -1L) return 0; fptr = (LPSTR)MK_FP((UINT)(lres),0); MessageBox(hWnd, fptr, "Screen", MB_OK); //display info GlobalFree((UINT)lres); // be sure to free the block ;It might be useful to know the screen size returned. ; using messagebox, may result in the ok button being off the bottom ; of the screen. We have a test application that demonstrates this feature. If you want the source just ask. SendMessage with wParam = 175h, gets the screen size. DX=Height, AX=Width (one based). 176h = get the cursor screen position.DX=ROW, AX=COL (zero based). 177h = get screen mode. AL = (0-A). 178h = get screen section. (not done yet). (Programmer interface not in shareware version). In cases where you are attempting to start a pif that requires more EMS, XMS or conventional memory than is available, you will get a message that the pif needs to be changed. This is now followed by a retry dialog box. You can enter a new number and attempt to restart. The restart will occur immediately. Many new features coming. Terminate now has a KILL button. In case terminate does not work. Clipboard support(int 2f, func 17xx), copies are much faster. New clipboard functions coming. Large pastes will give a warning first. Letter Box works ok with EDOS. If you don't know what EDOS is, it stands for Enhanced DOS for Windows. EDOS has many features designed to appeal to DOS users(in Windows). Available from our BBS. Support for "Save Settings on Exit", has been worked on. The algorithm for deciding how that part of the system works is still being worked out. Your suggestions are welcome. W4W 3.11, the VFAT.386 file is broken. If you have 32bit File Access turned on, then you may experience system integrity violations using some software. This is NOT a Letter Box problem. ------------------- NOTE: vtsr____.ttf, is a true type font with OEM(PC-8) faces. This font is from E.H.Behl and is shareware. We have their permision to distribute it with Letter Box. The .fot has been patched to allow display of the ascii chars below ascii space. (Happy face and others). The dosfon.fon file is from Don Stegal at Playroom Software. The same distribution rights apply to it. When you register Letter Box you will get registered copies of their fonts, included in the price. !!!!!! Be sure to copy the .fot to the directory AFTER using the control panel to install the Font. Playroom Software is the producer of Makeover, a really neat Windows app that can change the LOOK of your entire Windows system. Sculptured Title bars and buttons, etc. See Playroom.wri. PROBLEMS: ------------------------------------------------------------------------ Here is the part where I releave you the little people of the burden of your failed and miserable lives. (The Joker: A reasonable quotation from Batman, the movie). In this case, this is where we the superior people releave you of your innocence and burden you with the knowledge of good and evil. This software is not perfect. It contains bugs and undocumented features. Any known bugs would have been removed. That means the unknown ones are still here. Were it not so, there would be no need for programmers. God knows the world needs more programmers! If programmers could be squashed as easily as bugs, there would be no bugs! Once upon a time, a programmer who was fishing, fell overboard in shark infested waters. He was immediately shredded and eaten. Needless to say, all the computer users in the universe were delighted. For there was one less programmer who would be creating bugs. As usual, a large great white shark happened along just as this was happening. He was also a very wise great white shark, and he wanted to know why they were eating a programmer, as even God knows that what the universe needs are more, not fewer programmers. They explained that this particular programmer was one of the great programmers. And, that they were EACH just trying to get their fair share of his secret algorithms. The moral: a programmers heart beats in every breast. And a shark is just a programmer at heart. Goto object. Byte object. Swollow byte. Repeat while not zero. This version of the software has a couple of problems. Sizing of the screen in windowed mode is sometimes not quite right. True TYpe fonts don't always restore properly after a close session, with save settings on. True Type selections do not use OEM(PC-8) fonts exclusively. This means that a font which is ANSI will not have the character faces for the high ascii characters that you expect in a DOS session. This is not a major problem. What you need are some TT fonts with OEM faces, vtsr____.ttf fixes this. Sometimes there are some little colored cells on the screen for a moment.(fixed) The help does not always lead to useful information. The KILL feature does not work yet. The basic system is quite stable. And has been running here for many months without crashing. Consistency, when changing fonts and reseting the window is not always right. Now Better, has been worked on. The italic font style may not be supported. Displays of italic lines, did have some problems at the begin and end of the line. I have not disabled the italic from showing as an option. If I do disable it then fixing the display problem will not be necessary. Would like feedback as to whether italic is really wanted. (ALL FIXED). If you are using EDOS with Letter Box... The EDOS menu item: VIew/Fonts does not work. Use the old system menu for fonts. All of these problems are on a list to be fixed. Note: if you have a display driver that can be reconfigured on the fly, both MS Winoldap and Letter Box will get confused and fail to display correctly unless you restart the first instance of all DOS sessions. If this is a problem, please let us know about it. Letter Box, runs very nicely in Beta testing and seems to be QUITE reliable. Were it not so, you would not now have your hands on it. But if you find something interesting, please let us know. We have very little better to do in life than fix bugs, as you can well imagine. ================================================================== A history of EDOS and a replacement Winoldap's development. In order to save myself the trouble of being constantly queried about how all this came about... herein lies the tale. About 2 years I built a tool to ferret out how Windows controls itself. That tool was a VxD and I call it edebug. It is not a debugger in the normal sense. But, since a VxD can intercept calls made to VxD calls, edebug was built to do just that. It contains traps for critcal calls to build a DOS session. The trap routines would output debug strings to a serial port, to which was attached another computer. The second computer would capture the output and write it to a disk file. The results could then be examined at leisure and in detail. From that I gleaned enough insight to start building EDOS. EDOS is a VxD and a DLL that work in cooperation. I could see the calls coming down the line and gradually I deduced the use of the registers. Eventually I built a couple of test programs in C that simulated the work necessary to start a DOS virtual machine. About one year went by during which my attempts become more promising until sometime in mid 1993, one night, I got back a valid VM handle. It took another year to finish writing a Winoldap replacement in C and assembler. The effort do this is almost mind boggling. You know the old story, if I had known what I was doing. I would have had more sense than to try. My replacement for Winoldap consists of about 100k of include files, 400k of assembly code and about 25k of C. Not including test programs. All the assembler is written using Borland's Turbo Assembler and their IDEAL mode. The contributions of others, who are totally ignorant of their help, is lengthy. Without TASM's ideal mode I doubt that I would have tried to build such a large project. This is without a doubt the single biggest assembly language project I have ever done. Barry Kauler's book, Windows Assembly language and systems programming, has been invaluble. Included in the list of necessary reading: Undocuemented DOS and Windows, also Windows internals by Mat Pietrik and DOS internals by Geoff Chappel. The Intel 386 processor manuals and scores of other documents from the MS Knowledge Base. Brent Rector's book on Windows Programming. This list is NOT inclusive. Using TASM's ideal mode provides type checking of parameters and ideal mode syntax is less ambiguous than MASM mode. I wanted to eliminate all opportunities for mistakes since the project was such a massive one. Since TASM ideal mode has not had a lot of visible use in large projects, I would like to add, that I have not had any complaints with TASM's code generation. The assembler is a little bit touchy about certain kinds of mistakes and will lock up occassionaly. The fact is that the code that it generates appears to be very stable. I consider stable code to be the first objective of any programming project. ============= Because we now have a code base for supporting the running of DOS apps in Windows. We have the ability to modify the system for doing so almost at will. If you think of a feature that Letter Box doesn't have, why be sure to let us know about it.