_______ ____|__ | (tm) --| | |------------------- | ____|__ | Association of tm | | |_| Shareware VMiX 386 Version 2.57 |__| o | Professionals ----------------------- -----| | |--------------------- |___|___| MEMBER Copyright (c) 1985-1991 Commercial Software Associates Post Office Box 36 Corona del Mar, California 92625 BBS (714) 720-1139 (24 Hrs.) VOICE (714) 720-1214 (8 - 6pm PST) Release of Feb. 26, 1991 1. Added the 'set remote -a' command to allow all COMM port to be polled simultaneously for user login requests. This command slows down the scheduler, interrupts are not disabled during polling. 2. Added the 'set process -w????' command, where ???? is the number of idle input or output cycles before a process is put to sleep. If this parameter is set to 0, then all processes are always being timesliced. With programs that grab the keyboard, like Windows, this will allow the VMiX hot key Shift-Tab to be recognized, since there will always be a non-windows process awake to field the hot key. This command is only used with non-386 computers, since in the 386, the VMiX protected mode supervisor is always running to detect the hot key. 3. VM_BOOT had stopped working in 8086/8088 PCs when invoked without the 8086 command line parameter. This has been fixed. 4. Conversion to C++ is proceeding. It now compiles with TCP. 5. VGA graphic modes (640 x 480) are now supported. Fixed bugs with graphics switching. Fixed bugs with status line display in graphics modes. 6. VW.EXE was behaving different, if invoked from the command line as opposed to from the VMiX shell. The keyboard will now relocate to any new process started from VW, by default (no need to press the hot key). 7. We are now virtualizing the DMA buffer maintained by MSDOS. 8. On 386 ATs, VMiX will now setup its low memory paged pool in a 32Kb EMS segement, between C000 and F000, if it finds one that it can use. This frees the memory for DOS use. On 8086 PCs or 286 ATs with EMS, you can manually request this from the start-up command line by specifying an available 32Kb EMS segment with 'EMS='. 9. Made some fixes to the cursor on/off algorithms that manage the cursor between tasks and task switches. Note that an inactive task, eventhough it is the foreground task (via Shift-Tab hot key), will not have a timeslice during which to activate its cursor. To compensate for this, turn-on cursor emulation with 'set sys -c'. 10.Added the -f switch to MONITOR.EXE. When invoked with 'monitor -f', all open files on a VMiX system will be globally monitored. Open files will be listed and revised until the key is pressed, VMiX Release 2.56 Notes ----------------------- 1. VMiX now handles swapping video modes between graphics and text in 386 computers. The hot-key will switch the console between tasks running in graphics modes and those running in text mode. VW (Process Menu) will allow new shells to be started in the video mode of your choice (and/or video page of choice in Text Mode). The same can be accomplished from the command line with: 'do -W /set video -m/rshell' (for mode select) or, 'do -W /set video -p/rshell' (for page select) Video mode switching will work in non-386 computers but the previous mode screen contents will not be saved. 2. VMiX now provides a software emulation cursor. The software emulated cursor is toggled by the command 'set system -c', the default setting is disabled (because of the overhead during multitasking). If you have trouble determining on which window the keyboard focus lies, use this option to enable cursor emulation. 3. The 'set remote -e' command has been changed to 'set remote -x'. This command controls the enabling or disabling of remote logins. Logins are enabled by default (on COM1). VMiX Release 2.52 Notes ----------------------- 1. Added the 'set video -p' command to allow video pages to be selected. Main benefit is, in non-386 computers, it allows a 'do -W /set video -p1/rshell' to be used to start and a new shell with a different video page assigned. The Shift-Tab hot key will switch video pages (or video modes), giving some level of screen virtualization between tasks. Use not recommended in 386 mode, because of true virtualization of video memory. VW.EXE now asks for a video page when starting a new VMiX shell or MSDOS shell (use only page 0, when in 386 mode). VW will respond to the [Home] key by repainting the menu bar. 2. The MONITOR.EXE utility now allows viewing and edit of memory areas. Press 'M' after 'monitor -r1' has been invoked, to test this. The address format is: segment[:offset] [= byte], where the '= byte' is optional. (ie., hex address? 550A, hex address? 550A:100, or hex address? 550A:100 = FF) The 'examine memory' VMiX command does the equivalent in the registered version of VMiX. 3. Fixed the 'kill' command hanging VMiX in protected mode. 4. Added new delay timer routine. INT 08 real time clock is now reprog- ramed after '$$' tasks quit. BASICA, GWBASIC are automatic '$$' protected tasks, they were the main culprits in changing the timer back to 18.2 ticks per second. 5. Channel 5 is now automatically assigned to LPT1 on boot-up. Try 'spawn -c5 type c:\autoexec.bat' to test LPT1. 6. All segment or offset references to VMiX commands ('set pool', 'examine memory') must now be entered in HEX without a preceeding '0x' (prevously required). When using 'set video -c' to specify combined foreground and background colors you may still use '0x', only when entering HEX bytes. 7. Keypad arrow keys now work from a remotely logged pc with VT-100 terminal software, provided you toggle emulation by pressing . 8. Added color to EGA graphic modes. VMiX Release 2.51 Notes ----------------------- 1. Fixed a bug that kept VMiX 2.50 from working on 8086 computers. 2. Changed compilers to MSC 6.0, started conversion to Zortech C++. 3. Fixed some problems with the way VMiX virtualizes the keyboard. VMiX is now compatible with 'Remote Console'tm a product of Louis Wheeler. Increased the amount of video memory virtualized in 386 mode to 2 pages. 4. Added the -i option to the VW.EXE command line. This option sets VW in interactive mode, so that it will not be swapped out when there is no keyboard activity. 5. 'set remote -e', to control COMM port logins, can now be used from the VM_BOOT command line. 6. The arrow keys on a PC acting like a terminal and connected to a VMiX host will now work correctlly when in VT-100 emulation mode. 7. Added Registration printing banner to start-up screen. VMiX Release 2.50 Notes ----------------------- 1. Fixed known crashiness bugs in previous version. Improved the reliability of the VW utility, which we can now recommend for regular use. 2. Added support for multiple default drives and made each task's default drive independent from other windows/tasks. 3. Added support for virtual video. Eliminates bleed-through, when in 386 mode, by applications that write directly to the screen in text mode. Tasks started with the 'dosjob -W' command, and all tasks started at a dumb terminal will execute with virtualized video segments in 386 mode. The Shift-Tab hot key will bring a virtualized task's video to the foreground. 4. Added a better command line parser and changed the syntax of the start-up configuration options: The new command syntax is: VM_BOOT [low] [high] [8086] [extended] [egacursor] [cgacursor] [ [ command ] /... ] where (note abbreviated syntax), the '8086' option forces 8088 (real mode) operation on 286/386/486 computers. the 'ext' option forces 80286 (real/protected mode) operation on 386/486 cpu's. the 'lo' option inhibits relocation of VMiX code to extended memory. the 'hi' option forces relocation of VMiX code to extended memory when using 8086 mode in a 286/386 or 486. the 'egacur' option corrects a video BIOS bug that fails to indicate that CGA cursor emulation is disabled. the 'cgacur' option corrects a video BIOS bug that fails to indicate that CGA cursor emulation is enabled. [ command] / any valid DOS or VMiX shell commands, separated by a '/' 5. Added scroll control to the help display. 6. For shell usage compatibility, Escape now also clears the command line, like a Ctrl C. An on a blank line will not clear the previous command buffer, which you can still repeat using up-arrow. 7. Logins at all comm ports can now be globally enabled/disabled with the 'set remote -e' command toggle. The default is logins enabled. You can only use this command from the VMiX shell, it will be ignored when used in the VM_BOOT command line. 8. The VMiX debugger 'assign' command now accepts the PROCESS object type. The purpose of the PROCESS assign is to redirect the STDIO (screen and keyboard) of a process to a new channel. You can move a process using the console to a COMM port terminal or to a printer CHRSINK type of channel. 9. Fixed a bug with modem control and data set ready detection. VMiX Release 2.31 Notes ----------------------- 1. Fixed some regression bugs introduced in version 2.30, including a bug which did not allow a 'dosjob' command to be executed from the command line when starting VMiX (the VMiX.DOC tests fail). Fixed a bug that did not allow 286 AT's to run with SWAP to extended memory. 2. Fixed a bug that sometimes did not allow a command line 'SPAWN' to work correctly (for example, starting VMiX with: VM_BOOT set remote -l2 / spawn -c1 c:\filepath\myprog.exe will now start myprog on COM1 and redirect new logins to COM2 without hanging the console). 3. Fixed a bug which caused systems with monochrome (MDA) adapters to lock up, since the MDA detection had failed. Fixed the disappearing cursor bug on VGA's. Note, some EGA/VGA's will display what appears to be a broken VMiX cursor when Shift-Tab is pressed to switch tasks. To correct this, start VMiX with the command line 'VM_BOOT cursor'. 4. The VW menu shell is NOW COMPLETE and greatly improved. VW.EXE can now be used to set screen colors from the options menu. VW is a multiple thread environment (like OS/2), the slight delays you will sometime experience when returning from a command are due to process synchronization, this will improve in future versions. 5. Upgraded the user shell with shadow boxes for messages and data. Upgraded the user shell with limited command line edit capability. Up-arrow recalls previous command, which can be edited. Upgraded the API and programming information in SYSGATE.ASM 6. On systems with EGA/VGA, an additional 96Kb of DOS program space is now available (64Kb in monochrome mode). To toggle the additional program space ON/OFF, use the VMiX command 'set system -v'. The default is OFF, when VM_BOOT is executed. This option will allow large programs (566Kb maximum) to be executed with VMiX (the maximum without this option is about 470Kb). Eventhough VMiX uses extended memory in 286/386 ATs/PS2s, the user partition size is limited by the address space of DOS, which is now increasable to 736Kb. VMiX Release 2.25 Notes ----------------------- 1. This is the first non BETA release of VMiX. VMiX now works on the IBM PS/2 and COMPAQ 386 SX. 2. VMiX now supports ESDI fixed disk systems. 3. Made some more fixes related to DOS 4.01 multitasking. Reduced resident memory size by 8Kbytes. The VMiX prompt now displays the current directory. 4. In 386 mode, the Shift-Tab key now works when MicroSoft Windows is executing under VMiX. 5. When a program executing as a VMiX task first uses a COMM port, the port is automatically assigned to that process id. The port is only deassigned when the VMiX task is 'quit', not when the program terminates. This allows the preemptive scheduler to service communications faster by switching-in the owner program of a COMM port when I/O is detected. VMiX Release 2.22 Notes ----------------------- 1. Fixed a major bug which caused VMiX to crash on any 386 AT with more than 3 Megabytes of extended memory. 2. Added code for IBM PS/2 support, but VMiX is still not fully working on PS/2s. 3. VMiX now relocates portions of its system code to extended memory. More code will be moved in future releases, to allow larger DOS partition sizes. The VMiX start-up program 'VM_BOOT' has a new command line switch that controls relocation of VMiX to extended memory. Starting VMiX with VM_BOOT -l (lower case 'L') will inhibit relocation of portions of VMiX to extended memory. 4. Fixed a bug with the 286 mode 'swap' command, which had stopped working correctly in the previous release. VMiX Release 2.21 Notes ----------------------- 1. Fixed a bug that left the clock running fast, after exiting VMiX. 2. The hot key will now swap screens between graphics mode tasks and alphanumeric mode tasks. Also, tasks using different video pages will be switched correctly. This affects only tasks that were started with the 'dosjob -W' (full screen) command. The hot key is now handled by the event manager. VMiX Release 2.20 Notes ----------------------- 1. More DOS 4.01 fixes. 2. Communications support fixes in 80386 protected mode. Higher baud rates now supported. 3. The VMiX clock tick has been changed from 55msec (18.2 task switches per second) to 11msec (90.9 task switches per second). A new command, 'set system -c ????' will allow you to tune your multitasking environ- ment for maximum efficiency. The command specifies the number of clock ticks a running task is guarranteed to be active before preemption. VMiX Release 2.11 Notes ----------------------- 1. 80386 mode bug fixes. Smaller process control block. 2. The VMiX start-up program 'VM_BOOT' has two new command line switches that control the mode the program runs. Using VM_BOOT -r, will force VMiX into real (8086) mode and using VM_BOOT -x, will force VMiX into extended (80286) mode. These 2 command line switches, disable 80386 protected mode operations. (Useful for getting around compatibility problems, on certain computers.) 3. Version 2.11 will operate with DOS 4.01. Since DOS 4.01 can be set to use extended memory, conflicts can arise. VMiX must be told how much extended memory other programs are using (see 'assign memory'). VMiX Release 2.10 Notes ----------------------- 1. VMiX 386 replaces the older 286 versions. The new 386 version will still work on 8088, 8086, and 80286 computers that are IBM PC or AT compatible. Version 2.10 executes in protected mode with extended memory paging on 80386 processors. This allows multiple DOS partitions, each with about 450Kb free. 2. Fixed a bug with channels assigned to a printer (CHRSINK type). When DOS console output was redirected to a task, with a CHRSINK type as its STDIO, line feeds were not being printed. assign CHRSINK 1 (returns a channel ???? for LPT1) spawn -c ???? type myfile.txt (performs redirection to LPT1) The above sequence of VMiX commands will now successfully redirect the dos 'type' command to LPT1: This method is recommended over 'exec type myfile.txt > PRN' when multitasking. 3. When using VMiX in 80386 mode, the memory partition size is set auto- matically to 512Kb, at boot time. If you use the command 'exec -m' to set a partition size less than 512Kb, VMiX will not request extended memory for new task partitions until you issue 'exec -m512' again. When the partition size is less than 512Kb, VMiX uses memory from the parent process for the new task (same as 8088 and 80286 mode). If you have less than 512Kb of extended memory, the partition size must still be 512Kb or more, in 80386's, VMiX will only use what is available. The default partition size for all other VMiX modes remains 224Kb. 4. The new '?' command, lists the available VMiX shell commands. The 'set dos -m' command has been removed, since the VMiX shell is now always transparent to DOS commands. MSDOS commands are passed to 'command.com' and VMiX commands are passed to VMiX. If the name of a VMiX command conflicts with an MSDOS command or file name, the VMiX 'exec' command should preced the DOS command, on the same line. 5. The new command 'examine status' displays information about a task, including available memory. Other memory status commands include 'examine mcb', 'monitor -m', and 'monitor -p'. VMiX Release 1.55 Notes ----------------------- 1. Added support for Wordperfect 4.X form a VMiX terminal. WP will now work correctly via a COMM port. WP provides the command Ctl-F3 to set up a window less than 25 lines. On a terminal you must set up a WP window of 23 or less lines to operate within VMiX. Press Ctl-F to enable function key terminal emulation, then press the tilde key `, the equivalent of Ctl-F3 and set the WP window size. This will allow WP's row/column display to operate without disturbing the screen. 2. Reduced the length of time interrupts remain disabled during a task switch or MSDOS function call. This allows VMiX to run communication programs performing data transfers at up to 9600bps, with more than one task active on a 16MHz PC. VMiX Release 1.52 Notes ----------------------- 1. Reduced the memory size of VMiX by 6Kb in preparation for VMiX 386. 2. Added an ANSI type to the list of terminals supported. If you select an ANSI terminal mode for your COMM port user 'set term -t5', then ANSI characters and ANSI graphic characters will display correctly at the terminal. Your communications parameters must specify an 8 bit word size and no parity. 3. The VMiX 'set video -s' status line toggle will no longer display disk access errors, if they occur. This reduced the size of VMiX by 1K. 4. A small version of VMiX 1.52sml is now included on a separate archive. This version uses 18k bytes less than the big version. The small version DOES NOT support bit mapped graphics, only alphanumeric video modes. Tasks can still invoke bit mapped CGA, EGA, VGA graphic modes, but VMiX will not be able to confine them to windows. The VMiX status line 'set video -s' is not available in the small version. 5. Added an unsupported utility OUTSIDE.EXE. This utility can be used with bbs software to exit via the modem to a VMiX shell. The syntax is: outside [-c ????] where ???? is the COMM port (default is COM1) VMiX Release 1.51 Notes ----------------------- 1. Added ANSI.SYS support to VMiX windows. Scrolling should now behave correctly. 2. Added VMiX internal printer support. In VMiX, printer devices are of type CHRSINK. You can now assign a channel to a CHRSINK at LPT1, LPT2, or LPT3 (1,2,3) and spawn any task to that channel, for example: 'spawn -c ???? type myfile.doc'. Where ???? is the channel number returned by the 'assign CHRSINK' command. Printers are still accessible using DOS, from within VMiX. 3. From a terminal, the key (toggle IBM function key emulation) no longer echoes to the screen, so it can be used in the middle of a command. 4. VMiX is now VGA compatible, in VGA native mode. There is no longer a need to set your VGA to emulate EGA or disable enhanced features. 5. VMiX will no longer run out of memory after one 'exec' or 'dosjob' command, if you forget to assign a maximum partition size (with 'exec -m ????'), or have not swapped the single executing task to extended memory. The default memory partition size is now set to 224K. You might want to override this dynamically, so that all your tasks do not use the same partition size, otherwise you will run out of memory rather quickly. 6. The command 'do .' will start a new DOS command.com shell, automatically. 7. Fixed a bug with 'exec -m ????' which did not protect partition limits when two or more tasks finished at nearly the same time and a third is started. This command now compresses available memory to a single DOS allocation memory block (garbage collection). 'exec -m ????' can now be used repeatedly, without problems. 8. Fixed a bug with COMM port initialization, which would occasionally hang the start-up sequence of VMiX. This would only occurr if COM1 had a device attached. VMiX Release 1.50 Notes ----------------------- 1. Moved most of the debugger shell command 'examine' to an external utility named MONITOR.EXE. This freed more memory for the VMiX kernel, and frees more memory for those users that do not use the old 'examine' functions. OLD NEW ---------------- ------------------ exam mem exec monitor -m exam pool exec monitor -p exam process ???? exec monitor ???? exam process -r ???? exec monitor -r ???? C Source code for ALL utilities is still included! 2. Introduced the VMiX Window Manager utility VW.EXE. This utility provides easy-to-use pull-down menus and pop-up windows to enhance the VMiX command shell. Exit from the utility or pull-down menu is with the key. Menu selection is by either keyboard selection of capitalized menu letter or by the use of the keyboard ARROWS and key. Start VMiX with: A> vm_boot exec vw or invoke vw from within a VMiX window or terminal with 'exec' or 'dosjob', just like any other program. From a terminal to use VW.EXE, press to toggle function key emulation ON, then backspace becomes left arrow, and are down arrow and up arrow, respectively. The capabilities of this utility are not yet complete. 3. Terminal function key emulation mode (enabled by pressing from the terminal user keyboard) now supports Alt-F1 thru Alt-F10 emulation by pressing and the digit corresponding to the function key number. NOTE: the shifted symbols above the numeric keys must correspond to those at an IBM keyboard, for the digits to match the function keys. The IBM keypad [PgUp] and [PgDn] are now emulated after by the <-> and <+> terminal keys. 4. Expanded the number of functions available to the external programmer. The VMiX Application Programming Interface resides in the files SYSGATE.ASM and SYSGATE.OBJ. 5. Added a software simulated cursor to VMiX graphic modes. 6. DPATH.EXE, program to set data file serach paths from inside VMiX, has been fixed. It was not working correctly in version 1.41 VMiX Release 1.41 Notes ----------------------- 1. Added the extended memory 'swap' command. A process can be swapped out of conventional memory to high memory, where it will remain suspended until swapped back. Swapped processes need not be suspended. They can also be multitasked, if the scheduler is set to allow this, with the 'set system -s' command. The present extended memory swapper is not yet perfect. Recommend use caution only when more than 1 of several currently active VMiX tasks is in a swapped state AND 'set system -s' is ON. Swapping when 'set system -s' is FALSE (manual task switching) is fine with more than one task in a swapped state. Type 'set system' and VMiX will display the state of all system flags. Extended memory can be reserved for other uses, like caches, etc., so that VMiX swapping will not interfere. Use the 'assign memory' command, before any swapping, to assign extended memory above 1 MegByte in 64k blocks. 2. Added the 'set dos -m' command. This command makes the VMiX shell emulate the MSDOS shell, making the 'exec' prefix unnecessary for MSDOS commands. 3. VMiX multitasking is now faster by a factor as high as 100%. An I/O idle process does not waste execution cycles, as before. 4. The 'set debug' command has been renamed 'set system', a more appropriate name. 5. The cursor will now blink in the active window, after a window switch. 6. The 'examine process' and 'examine pool' commands have been moved out of the VMiX debugger shell and are now performed by the utility MONITOR.EXE. This allowed the size of VMiX to remain 123k bytes. 7. Debygger shell commands can now be executed from the root shell directly, without preceding them with the token 'debug'. 8. When executing a program that uses a COMM port, make sure VMiX is not configured to accept logins at the same port, by using the 'set remote -l ????' command, where ???? represents a non-interfering port (1, 2, 3, or 4). VMiX Release 1.33 Notes ----------------------- 1. Fixed a bug in EGA video modes (13, 14, and 16) which froze the screen during scroll. 2. Expanded the terminal function key emulation mode (enabled by pressing from the terminal user keyboard) to allow the key to emulate the IBM PC key during Alt-Char sequences. 3. Corrected the interface to MSDOS commands ('exec' and 'dosjob'). You can now have 2 or more processes doing 'dir' or 'type' style DOS commands at the same time. 4. Added the debugger command 'set process -h' to toggle granting hardware priviledge to a user process. Normally, programs do not have the priviledge to change the console video mode. With hardware priviledge they will be able to change the video mode. The previous video mode is restored upon program exit. 5. From a terminal, to pause and to abort, now work better. 6. The debugger command 'examine process -m ????' will now update correctly the (-m) monitored process code segment, flags, and instruction pointer registers. VMiX Release 1.32 Notes ----------------------- 1. Added Enhanced (8 x 14) font for EGA, VMiX video mode 16. This font, like all VMiX fonts, can be used with any of the graphics modes (4, 5, 6, 12, 13, 14, and 16). to set EGA 640 x 350 graphics mode use 'set video -m16' to set Enhanced font use 'set font -t2' 2. The default console start-up mode is now video mode 3, alphanumeric text. 3. The VMiX status line will now display correctly on MDA, CGA, EGA, or VGA video controllers for all video modes supported. On CGA the status line still displays at line 26, on all others it displays at line 25. 4. Added security to the 'kill' command. root and su (super user) can still kill any process, other shells are only allowed to kill processes they own. 5. 'su' is now a reserved login name for a non-console super user with root privilege. 6. The new root shell command 'rshell' will start or nest a new VMiX shell. This will eventually allow a remote session to be started on another PC running VMiX. For now, a nested shell can be started with the command 'rshell' or a separate concurrent shell can be started with the command 'dosjob /rshell'. All rshell's presently execute at the host PC, only. 7. Fixed a bug which caused the system to freeze when processes were deallocated in a different order than that in which they started. Memory deallocation is now done correctly. 8. The 'dosjob' command can now be used with the optional '-W' (upper case) argument. This option will start the new process with access to the FULL screen, not in a window. Useful for programs that by-pass the video ROM. Other tasks, already in screen windows will be overwritten, but will still be there when you switch the keyboard to them by pressing . The screen is not saved, unless the application itself is using a different active video page. Pressing , to switch the keyboard to a different dosjob task, however, will switch the active video page to the one in use by the keyboard-active task. 9. VMiX now displays its kernel start-up sequence and configuration. 10. The first line of the display is now available to other programs. 11. A type of semaphore called interlocks is now being used to implement inter-process communications in VMiX. 12. The 'exec path =' command will now set the path correctly and 'exec path' will display the current path. The command syntax is: exec path[=][path specification] 13. The console, when windowed, now handles scrolling and clipped areas somewhat different. 14. A new version of DPATH.EXE is included. This program, like PS.EXE and DSTAT.EXE, uses the VMiX Application Programming Interface. Therefore, it will only execute from within VMiX. 'exec dpath' allows the user to specify the search path for DATA files, in the same way 'exec path' sets the search path for executable files. dpath provides additional options, use 'exec dpath -h' to display dpath help information. The command syntax is: exec dpath[=][path specification] [options] 15. VMiX can now start multiple 'dosjob' tasks from its command line. VMiX Release 1.31 Notes ----------------------- 1. Rewrite of VMiX for new compiler. 2. Corrected a Version 1.22 bug with BASIC, BASICA, and Microsoft WINDOWS. These should now execute correctly from within VMiX. No need to invoke these with the $$ prefix, programs receive protection automatically. 3. The shell command 'exec -l' has been replaced by the new command 'exec -m, where now refers to the maximum partition size a .COM or .EXE program can occupy (including data). The user can also use this command from the vm_boot command line. If your system has 640K memory then the command 'exec -m192' will only let programs take memory to a maximum of 196K each. If what you want to do is execute MSDOS commands, like 'exec type ' or 'exec dir', then setting 'exec -m128' should provide enough memory for about 4 or 5 MSDOS shells. The command can be used as many times as needed to change the memory partition size before separate program starts. 4. The preemptive scheduler round-robin algorithm has been improved. The scheduler works in cunjunction with the command 'chprio' which will adjust the base priority of any process in the range (0 - 31 high). All VMiX processes start with the default priority of 4. Priorities adjust constantly in VMiX, within the range 2 thru the assigned base maximum. When you use 'chprio', you merely set the base maximum that the current priority of a process is allowed to float within. VMiX uses this float range, for example, to 'up' the priority of a process when the keyboard is pressed. Task switching also adjusts the current priority. A process with a base priority of 8 will execute twice as fast as another at 4, all other things being equal. A process with priority 1 will not execute at all. It will sleep until you up the priority to 2 or above. 5. The total maximum number of concurrent processes allowed has been reduced from 16 to 10 to conserve memory. 6. When VMiX detects a process using the MSDOS stack, it now saves the stack contents and some data areas of INT 21 to improve reentrancy during multitasking. 7. When VMiX returns from a 'dosjob' that has changed the video mode, it restores the video mode as it was before the 'dosjob' command. VMiX Release 1.22 Notes ----------------------- 1. VMiX will now attempt to release unused memory, taken by a .COM or .EXE program, when a second program requests memory space. VMiX can only release memory when none of the tasks have placed their stack at top memory. 2. Version 1.22 enhances the environment protection provided by the scheduler to multiple executing tasks. This prevents, to some degree, changes effected by one task to the system interrupt service routines from interferring with the interrupts expected by a second task. To request protection for a special program, precede the filename and PATH with the characters '$$'. Programs using protection will execute slower. Some programs like BASIC/BASICA and WINDOWS, automatically receive protection. The command syntax is: exec $$[drive:][path]filename or, dosjob $$[drive:][path]filename 3. The debugger shell command 'set process -m' has been replaced by 'set process -n' The 'm' has been changed to an 'n' for consistency. This command sets the maximum number of times that the MSDOS INT 21 System Service can be nested, before the next request is placed in wait. 4. The new debugger shell command 'set process -s' will toggle VMiX system environment protection (memory swapping) ON/OFF. 5. The Alt-w, hot key combination has been changed to Shift-Tab to reduce compatibility problems with other programs, and to conform with Windows 386 convention. 6. Added support for the EGA video modes. EGA mode 16 with VMiX font type 1 allows up to 58 screen lines. 7. Added more reentrant support to the MSDOS disk driver. This should allow for fewer situations where concurrent disk access by multiple tasks will crash the system. Precautions should still be taken, with frequent backups... 8. The debugger command 'examine process' has been expanded to include the switch '-m'. This command will continuously display a task's registers until the user presses the key or . The command syntax is: examine process [ -m ] [process id] 9. Since, presently, only one default current directory is maintained for all VMiX processes, the user must Set the PATH for all directories that will be used to locate executables. The utility DPATH has been added, so that you can also set the path for data files. It is recommended that both PATH and DPATH be done before running VMiX. (use 'DPATH /H' to display usage) VMiX Release 1.20 Notes ----------------------- 1. Added enhanced multitasking support. The new token 'dosjob' is intended for multitasking, at the console or terminal. Up to four dosjob's can run comfortably in the background, within their own screen windows. 2. Added the switch '-W' to the debugger command 'set video'. Note that the switch is upper-case not '-w', which already exists. The console screen will be automatically partitioned into up to four windows by the new command, depending on the number of channels the user has assigned to the console. 3. Added the hot key, Alt-w, to move the keyboard from one windowed task to the next, in round-robin fashion. The active task controls and responds to the console keyboard. The remaining tasks still execute concurrently within their windows. Used in cunjunction with 'dosjob'. 4. Added a field to the console status line that indicates the current active keyboard channel. Note that channels 0 thru 4 are pre-assigned by VMiX, so additional assignments to the console, COMM = 0, will begin at channel 5. 5. Added extended buffering beyond 15 characters (now the default buffer size is 128, for the console keyboard). 6. A spawned channel will now be deassigned at process termination. Previously, ownership of the channel would revert to the father process.