Patent Number 4955066 Issue Date 1990 09 04 Appl. Data 421466 1989 10 13 Assignee Microsoft Corporation Inventor(s) Notenboom, Leo A. State/Country WA Title Compressing and decompressing text files Abstract A method of compressing a text file in digital form is disclosed. A full text file having characters formed into phrases is provided by an author. The characters are digitally represented by bytes. A first pass compression is sequentially followed by a second pass compression of the text which has previously been compressed. A third or fourth level compression is serially performed on the previously compressed text. For example, in a first pass, the text is run-length compressed. In a second pass, the compressed text is further compressed with key phrase compression. In a third pass, the compressed text is further compressed with Huffman compression. The compressed text is stored in a text file having a Huffman decode tree, a key phrase table, and a topic index. The data is decompressed in a single pass and provided one line at a time as an output. Sequential compressing of the text minimizes the storage space required for the file. Decompressing of the text is performed in a single pass. As a complete line is decompressed, it is output rapidly, providing full text to a user. U.S. Class 382/56 358/261.1 358/427 382/40 IPC G06K 9/00 U.S. Refs 4494150 4626829 Examiner Boudreau, Leo H. Agent Seed and Berry Patent Number 4967378 Issue Date 1990 10 30 Appl. Data 244450 1988 09 13 Assignee Microsoft Corporation Inventor(s) Rupel, Wesley O. Pisculli, Anthony C. State/Country WA Title Method and system for displaying a monochrome bitmap on a color display Abstract A method and system of displaying a monochrome bitmap on a color display. In a preferred embodiment, a system according to the present invention accomplishes the display of the monochrome bitmap in any two preselected colors. The multibit representations for the two preselected display colors are compared to identify bitmap planes having common bit values for each color. The input for logic units for the identified planes are then forced to 0. The latch registers for each plane of the bitmap memory are then set to the bit value for the first preselected color in that plane. The input values from the monochrome bitmap, as altered by the force-to-0 operation for common planes, are logically exclusively ORed with the latch register values to produce the bitmap memory values for displays. An alternate embodiment suitable for updating partial bytes within the bitmaps is also provided. U.S. Class 395/164 340/703 340/798 340/799 340/803 395/131 IPC G09G 1/16 G06F 3/14 U.S. Refs 4149152 4217577 4467322 4616220 4706079 4752893 Examiner Harkcom, Gary V. Agent Seed and Berry Patent Number 4974159 Issue Date 1990 11 27 Appl. Data 244423 1988 09 13 Assignee Microsoft Corporation Inventor(s) Hargrove, Richard R. Barrett, Phillip R. Lipe, Ralph A. Reynolds, Aaron R. Wilson, Marc D. State/Country WA Title Method of transferring control in a multitasking computer system Abstract An improved method and system for transferring control in a multitasking computer system is provided. In preferred embodiments for use with 80386 machines, the virtual machine monitor (VMM) writes a virtual machine break point (VMBP) instruction into the executable code of selected DOS routines to cause the DOS routines to transfer control to the VMM. By selecting systems calls of indefinite duration for the application of this method, system performance can be improved. In this preferred embodiment for 80386 machines, 8086 programs designed to run under DOS can be more efficiently executed in a multitasking environment. U.S. Class 395/650 364/DIG1 364/228.2 364/256.3 364/280 364/281.3 364/281.7 395/575 IPC G06F 9/46 U.S. Refs 4486831 Examiner Zache, Raulfe B. Agent Seed and Berry Patent Number 5021974 Issue Date 1991 06 04 Appl. Data 244222 1988 09 13 Assignee Microsoft Corporation Inventor(s) Pisculli, Anthony C. Moore, Walter C. Myrvold, Nathan P. State/Country WA Title Method for updating a display bitmap with a character string or the like Abstract An improved method and system for updating a display bitmap with a character string in a given font is provided. Each character in the font is stored as a character bitmap. Each character comprises a contiguous set of virtual characters. A visible stack is created for each character string to be displayed in the display bitmap. For each character to be displayed, the visible stack contains a pointer to each of its virtual characters. The data in the visible stack is then processed to update efficiently the display bitmap. The display bitmap is updated column by column, each column being one byte side. For each byte in the column, the virtual characters that are to be displayed in that byte are combined to form an output byte that is output to the display bitmap. The combining is accomplished by special-purpose routines based on the number of virtual characters that are to be displayed in a particular column. U.S. Class 395/151 340/735 340/750 340/799 IPC G06F 15/62 G09G 5/36 U.S. Refs 4115765 4131883 4308532 4555763 4594587 4622546 4706079 4864518 4910505 4953102 Examiner Shaw, Dale M. Agent Seed and Berry Images Disc # This patent is on PatentImages disc# 1991\041 Patent Number 5027273 Issue Date 1991 06 25 Appl. Data 341567 1989 04 21 Assignee Microsoft Corporation Inventor(s) Letwin, James State/Country WA Title Method and operating system for executing programs in a multi-mode microprocessor Abstract Improved methods and operating systems for use with a multi-mode microprocessor enable efficient operation in a multi-mode environment. Preferred embodiments for use with microprocessors which were not designed to switch from each mode to another mode enable multi-tasking of a mixture of programs written for different modes using the mode switching methods of the present invention. Frequently used portions of the operating system are stored in memory at locations which can be commonly addressed in all modes. Means for handling device drivers and interrupts in all modes are also provided. Preferred embodiments for use with computer systems using microprocessors such as the Intel 80286 include means for storing the operating system routines to maximize performance of the system in real mode. Auxiliary protection hardware and I/O masking hardware are also provided in alternate preferred embodiments to enhance protection during real mode operation of such systems. Means for handling interrupts in a mode switching environment and alternate embodiments to eliminate problems caused by hooking programs in a multi-tasking environment are also provided. U.S. Class 395/400 364/DIG1 364/228.6 364/230 364/230.2 364/231 364/232.3 364/232.9 364/236.2 364/242.1 364/242.3 364/242.94 364/242.96 364/243 364/244.6 364/246.6 364/248.1 364/254.8 364/255.5 364/259 364/259.7 364/270 364/271 364/280 364/280.2 364/280.8 364/281.3 364/281.7 395/650 IPC G06F 12/06 U.S. Refs 3725874 3900834 3914747 3949378 4128875 4385352 4466056 Related Data This application is a division of U.S. patent application Ser. No. 064,117, filed June 18, 1987, now U.S. Pat. No. 4,825,358, which is a division of Ser. No. 722,052 filed Apr. 10, 1985, now U.S. Pat. No. 4,779,187. Examiner Fleming, Michael R. Agent Seed and Berry Images Disc # This patent is on PatentImages disc# 1991\050 Patent Number 5109433 Issue Date 1992 04 28 Appl. Data 551881 1990 07 12 Assignee Microsoft Corporation Inventor(s) Notenboom, Leo A. State/Country WA Title Compressing and decompressing text files Abstract A method of compressing a text file in digital form is disclosed. A full text file having characters formed into phrases is provided by an author. The characters are digitally represented by bytes. A first pass compression is sequentially followed by a second pass compression of the text which has previously been compressed. A third or fourth level compression is serially performed on the previously compressed text. For example, in a first pass, the text is run-length compressed. In a second pass, the compressed text is further compressed with key phrase compression. In a third pass, the compressed text is further compressed with Huffman compression. The compressed text is stored in a text file having a Huffman decode tree, a key phrase table, and a topic index. The data is decompressed in a single pass and provided one line at a time as an output. Sequential compressing of the text minimizes the storage space required for the file. Decompressing of the text is performed in a single pass. As a complete line is decompressed, it is output rapidly, providing full text to a user. U.S. Class 382/40 358/262.1 382/1 382/56 IPC G06K 9/72 G06K 9/36 G06K 9/46 G06K 9/00 U.S. Refs 4626829 4955066 Related Data This application is a continuation of U.S. application Ser. No. 07/421,466 filed Oct. 13, 1989, now U.S. Pat. No. 4,955,066. Examiner Moore, David K. Agent Seed and Berry Images Disc # This patent is on PatentImages disc# 1992\035 Patent Number D326261 Issue Date 1992 05 19 Appl. Data 666397 1991 03 08 Assignee Microsoft Corporation Inventor(s) Ashmun, Stuart Garthwaite, Charlie Cameron, Bridget Stephan, Allan H. Nelson, Michael D. Paull, Mike M. Bradley, Paul Yurchenco, James R. Fulton, Elinor J. State/Country WA Title Trackball for computer U.S. Class D14/114 U.S. Refs D285445 D299140 D305756 D309449 D314193 Other Refs Portable Office, Apr. 1991, p. 70, Logitech Pointers (center of page). Examiner Burke, Wallace R. Agent Seed and Berry Patent Number 5124989 Issue Date 1992 06 23 Appl. Data 462500 1990 01 08 Assignee Microsoft Corporation Inventor(s) Padawer, Andrew D. de Rie, Jan Jones, David T. State/Country WA Title Method of debugging a computer program Abstract A method and system for recording debug commands as they are executed on a program is disclosed. The line number in the program reached after executing the debug command is also stored on the tape. The debug history tape is a sequential record of the debug commands. A user may reexecute one or more of the debug commands on the program by running the debug history tape. The user may stop the reexecution of the debug commands on a given line in the program generally in the area thought to contain the error, by moving an ending pointer to that region in the debug history tape. The tape will execute up to the ending pointer and then stop. The user may then examine the program, execute additional debug commands or take other action to locate the error. Any additional debug commands are also stored on the tape. The ability to reexecute the debug commands and stopping their execution at selected lines in the program aids the user in locating errors. After locating the errors, the user modifies the program. The user may then reexecute the same debug commands on the modified program to ensure that the error has been corrected. U.S. Class 371/19 364/DIG1 364/267 364/267.91 364/285 364/285.4 395/575 IPC G06F 11/00 U.S. Refs 3551659 3937938 4429368 4598364 4783762 4819234 4872167 Examiner Atkinson, Charles E. Agent Seed and Berry Images Disc # This patent is on PatentImages disc# 1992\053 Patent Number 5125077 Issue Date 1992 06 23 Appl. Data 626393 1990 12 10 Assignee Microsoft Corporation Inventor(s) Hall, John C. State/Country WA Title Method of formatting data from a mouse Abstract The disclosure relates to a mouse for use as a peripheral device in conjunction with a host computer wherein power for driving the circuitry of the mouse is obtained directly from signal lines interconnecting the mouse and the host computer. U.S. Class 395/275 340/710 IPC G06F 3/033 U.S. Refs 2777057 2813242 2918573 3361977 3435358 3539727 3611302 3748411 3800095 3835334 3852721 3912942 3924251 4007360 4030084 4077030 4078249 4107737 4110697 4126793 4152769 4161650 4196417 4204249 4213177 4228422 4272758 4277827 4292474 4312035 4313227 4314306 4319094 4330855 4335445 4373117 4375103 4390967 4395590 4403111 4410982 4414433 4415774 4417099 4419740 4435764 4442492 4463352 4463443 4475193 4488006 4514726 4516247 4521772 4534039 4538073 4564835 4578674 4631698 4677646 Foreign Refs CAX 197106 873990 CAX 197603 985763 DEX 197810 2847066 JPX 198108 56-104561 JPX 198209 57-156639 GBX 197903 2019162 GBX 198010 2063029 Other Refs Mouse P-4, Interactive Graphic Input Device, Depraz S.A., CH-1345 LeLieu, Switzerland, Feb. 23, 1982. Wolfe, "Computer Peripherals That You Can Build," Tab Books Inc., 1st Ed., Fourth Printing, 1982, pp. 74-77. Rowe, "Give Your Computer An RS-232C Interface," Electronics Australia, Dec., 1979, pp. 81-84, 139. Davies, "Build a `Quick Fox` Terminal Tester," Microcomputing, Jun., 1981, pp. 104-109. Bursky, "The Basic S-100 Bus and the Computer Mainframe," The S-100 Bus Handbook, Hayden Book Company, Inc., 1980, Chapter 4, pp. 33-35, 179, 247, 252-253. Lenk, "Handbook of Simplified Solid-State Circuit Design," Prentice-Hall, Inc., 1971, p. 269. The U.S. Navy (Bureau of Naval Personnel), "Basic Electronics," Dover Publications, Inc., 1971, pp. 96-97. Liebson, "What are RS-232C and IEEE 488?", Instruments and Control Systems, Jan., 1980, pp. 47-53. Ungermann-Bass Local Net Gains Broadband Version, Computer World, Mar. 8, 1982, p. 63. "Product and Services Alert," paragraph about LISA voice-synthesis device, Data Communications, May, 1982, p. 172. "Data-Line Analyzer Combines Two Testers in One," Data Communications, Feb., 1982, p. 140. Katz, "The Hewlett-Packard Interface Loop-HPIL," BYTE Publications, Inc., Apr., 1982, pp. 76-91. Haar, "Build a Null Modem," BYTE Publications, Inc., Feb., 1981, pp. 198, 200. De Jong, "Computer Communications Experiments," Compute!, Mar., 1981, pp. 28-33. Ciarcia, "Build an RS-232C Breakout Box," BYTE Publications, Inc., Apr., 1983, pp. 28-48. Freeman, "Ideas for Design, Remote Display Draws Power From RS-232 Line," Electronic Design, Jun. 23, 1983, pp. 166-167. Intel IAPX 88 Book, Jul., 1981, pp. 4-1-4-3. "IC Test Clip," one-page schematic, BYTE Magazine, Dec., 1975. Logic Diagram EASI-1B, one-page schematic, ARK Electronic Products, Inc., Melbourne, Florida, Jun. 15, 1977. EEE Magazine, pp. 126-127, Mar., 1970. Abramson, et al., "Signal Powered Data Collection System," IBM Technical Disclosure Bulletin, vol. 21, No. 7, Dec. 1978, pp. 2945-2946. "Short Haul Modem, Model 71," Brochure by Remark Datacom Inc., 1982, 2 pages. "Short Haul Modem, Model 72," Brochure by Remark Datacom Inc., 1981, 1 page. RCA COS/MOS Integrated Circuit Book, "Handling and Operating Considerations," Jan., 1979, pp. 27-28. "Active Interface Cable Permits Quick RS-232 Interconnection," Electronic Products Magazine, Apr. 18, 1983. Brochure by IQ Systems Inc. entitled "Smart Cable 821," Copyright 1982, 2 pages. Brochure by IQ Systems Inc. entitled "Without Smart Cable 821/With Smart Cable 821," 3 pages, Copyright 1982. Letter from W. Peter Dean of IQ Systems, Inc. and apparently sent to attendees of COMDEX '82 show regarding SC 821 (undated). Derfler, "Of Mouses and Micros, Real Mice Don't Eat Cheese," Microcomputing, Aug. 1983, pp. 24-26. Brochure by Logitech, Inc., "LogiMouse/LogiMate", 1 page, Dated Jun. 1983. Chetty, P. R. K., "Logic-Function Generator Needs No Power Supply", Electronics, vol. 52, No. 15, Jul. 19, 1979. Related Data This application is a continuation of application, Ser. No. 07/568,057, filed Aug. 16, 1990, now abandoned, which is a continuation of application Ser. No. 07/371,529, filed Jun. 26, 1989, now abandoned, which is a divisional of application Ser. No. 119,314, filed Nov. 9, 1987, now U.S. Pat. No. 4,866,602, which is a continuation of application Ser. No. 548,122, filed Nov. 2, 1983, now abandoned. Examiner Clark, David L. Agent Klarquist, Sparkman, Campbell, Leigh & Whinston Images Disc # This patent is on PatentImages disc# 1992\053 Patent Number 5125087 Issue Date 1992 06 23 Appl. Data 268392 1988 11 07 Assignee Microsoft Corporation Inventor(s) Randell, Scott A. State/Country WA Title Method of resetting sequence of access to extended memory disrupted by interrupt processing in 80286 compatible system using code segment register Abstract A method and system for allowing an interrupted computer program to detect the occurrence of an interrupt. In a preferred embodiment, a system according to the present invention allows an Intel 80286-compatible based computer program executing in real mode to detect the occurrence of an interrupt during the execution of a set of instructions. According to a preferred method of the present invention, the LOADALL instruction is used to load the code segment selector with the segment address of the code in the interrupted routine to be executed upon return from an interrupt and to load the code segment base address with the segment base address of the set of instruction during whose execution interrupt is to be detected. A preferred method then executes the set of instructions. Upon occurrence of an interrrupt, the preferred method saves the value in the code segment selector and executes an interrupt routine. Upon return from the interrupt routine, a preferred method loads the code segment base address based on the saved code segment value so that the interrupted routine resumes execution at an instruction other than the interrupted instruction. The methods of the present invention allow a program executing in real mode to access data in extended memory with interrupts enabled. U.S. Class 395/425 364/DIG1 364/232.9 364/241.2 364/241.6 364/243 364/243.4 364/243.41 364/251 364/251.7 364/255.1 364/255.5 364/262 364/262.4 364/262.9 364/941.7 364/955.1 364/960.7 IPC G06F 9/32 G06F 9/44 G06F 12/06 U.S. Refs 4498136 4546431 4551798 4586127 4779187 4807185 4890221 Other Refs "Secret 286 LOADALL Instruction Allows Access to Extended Memory In Read Mode," Microprocessor Report, vol. 1, No. 2, Oct. 1987. Examiner Lee, Thomas C. Agent Seed and Berry Images Disc # This patent is on PatentImages disc# 1992\053 Patent Number 5138303 Issue Date 1992 08 11 Appl. Data 430503 1989 10 31 Assignee Microsoft Corporation Inventor(s) Rupel, Wesley O. State/Country WA Title Method and apparatus for displaying color on a computer output device using dithering techniques Abstract A method and apparatus for filling an area of a computer display with a preselected color is provided. Typical computer systems software provides the capability to represent 256 different intensities of a color. However, many color displays cannot support the displaying of 256 intensity levels. The present invention provides a method and apparatus for mapping the higher number of intensity levels supported by the systems software to the lower number of intensity levels actually supported by the display. In a preferred embodiment, four picture elements (pels) of a display are logically grouped together to create a super-pel. By varying the intensity level in each pel of a super-pel, the effective number of intensity levels for a given color can be increased. U.S. Class 340/703 358/80 IPC G09G 1/28 U.S. Refs 4635078 4680625 4837613 4860026 4897736 4910603 4970586 Examiner Brier, Jeffery A. Agent Seed and Berry Images Disc # This patent is on PatentImages disc# 1992\068 Patent Number 5146580 Issue Date 1992 09 08 Appl. Data 427343 1989 10 25 Assignee Microsoft Corporation Inventor(s) Naidu, Harish K. Lennon, Thomas E. Williamson, Mike R. Pai, Sunil State/Country WA Title Method and system for using expanded memory for operating system buffers and application buffers Abstract A method and system for allowing both operating system buffers and application program buffers to reside in expanded memory is provided. In a preferred embodiment, a page frame in conventional memory is provided through which pages in expanded memory are accessed. An application program allocates pages in expanded memory and maps pages into the page frame. An operating system also allocates pages in expanded memory. In a preferred embodiment, an application program maps its allocated pages into each page of the page frame. The application then issues a read request to read data from a file storage device into the page frame. Upon completion of the transfer from the file storage device, the operating system determines if there are system buffers that contain a more current version of the data transferred. If so, the operating system maps a system buffer into the highest page of the page frame and then transfers the more current data from the system buffer to the application buffer. If, however, the application buffer to receive the more current data occupies the highest page in the page frame, then the system buffer is mapped into the lowest page of the page frame. U.S. Class 395/425 364/238.4 364/245 364/245.2 364/245.9 364/246.7 364/247.7 364/254.3 364/255.1 364/255.5 364/256.3 364/256.4 364/256.6 IPC G06F 9/26 G06F 12/02 G06F 12/06 G06F 12/08 U.S. Refs 4180854 4926322 4949248 Other Refs Microsoft Windows User's Guide, 1985-1990, Version 3.0, pp. 594-599; Microsoft Corporation. Examiner Lee, Thomas C. Agent Seed and Berry Images Disc # This patent is on PatentImages disc# 1992\078 Patent Number 5155842 Issue Date 1992 10 13 Appl. Data 394100 1989 08 14 Assignee Microsoft Corporation Inventor(s) Rubin, Darryl E. State/Country WA Title Logical event notification method and apparatus Abstract A method and apparatus for notifying programs that a logical event has occurred on a network, said event being a power failure. Upon the occurrence of a logical event in an operating program, an alert report is generated and stored in a buffer. An alert function call occurs, providing the event type and a pointer to the buffer. The alert function call reads a look-up table listing the programs or users requesting notification of events. The look-up table provides the addresses to which notification should be sent and the type of notification requested. The alert subroutine sends the requested event data from the buffer to the listed addresses. The alert function is completed and the operating program resumes operation. Upon receiving the event report, the receiving program stores it, displays it to a user, generates additional reports, begins controlling network activities, or the like as directed by the receiving program. The invention provides the advantage that each operating program need only perform a universal function call to send event data through the network and then may return to a task. The operating program is not concerned with who receives the report or what action is taken based on the report. The programs requesting alert data from an operating program of any type need only provide a request to an alert look-up table. The sources of the events and requesting programs are all software controlled, providing ease in adding or modifying each. U.S. Class 395/575 364/DIG1 371/66 395/200 395/750 IPC G06F 11/30 G06F 11/32 U.S. Refs 4823345 4847749 Other Refs R. Jensen, "A formal approach for communication between logically isolated virtual machines", IBM Systems Journal, vol. 18, No. 1, 1979, pp. 71-92. T. Sullivan, "Communicaitons Network Management enhancements for SNA networks: An overview", IBM Systems Journal, vol. 22, Nos. 1/2, 1983, pp. 129-142. R. Weingarten et al., "Logical problem determination for SNA networks", IBM Systems Journal, vol. 22, No. 4, 1983, pp. 387-403. L. Kored et al., "Improving availability of software subsystems through on-line error detection", IBM Systems Journal, vol. 25, No. 1, 1986, pp. 105-114. R. Moore, "Utilizing the SNA Alert in the management of multivendor networks", IBM Systems Journal, vol. 27, No. 1, 1988, pp. 15-30. M. Ahmadi et al., "NetView/PC", IBM Systems Journal, vol. 27, No. 1, 1988, pp. 32-44. D. Kanyuh, "An integrated network management product", IBM Systems Journal, vol. 27, No. 1, 1988, pp. 45-59. T. Routt, "SNA network management: What makes IBM's Netview tick?" Data Communications, Jun. 1988, pp. 203-227. L. d'Arielli, "A message management system for personal computers", IBM Systems Journal, vol. 28, No. 3, 1989, pp. 479-493. Examiner Baker, Stephen M. Agent Seed and Berry Images Disc # This patent is on PatentImages disc# 1992\088