____|__ | (tm)
--| | |-------------------
| ____|__ | Association of
tm | | |_| Shareware
VMiX 386 Version 2.85 |__| o | Professionals
----------------------- -----| | |---------------------
Copyright (c) 1985-1993
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 May. 05, 1993
1. The DOS 6.0 kernel is almost identical to the DOS 5.0 kernel, however
VMiX was identifying DOS 6.0 as DOS 3.3 and hanging. It now identifies
DOS 6.0 correctly.
2. VMiX now loads and processes the VMiX.INI file automatically, if found.
Do not start VMiX with the command line: VM_BOOT vsetup,
which was needed with older VMiX versions, to process the .INI file.
3. Added support for network or communications drivers that use interrupt
request line #7 (normally LPT1 device). This support is tied to the
VMiX assigned channel 5, which is usually the first printer (use
'DSTAT.EXE -a' command to see the channels. The support is automatic
and VMiX should assign channel 5 to a task that initializes the
interrupt by generating an interrupt. When a network driver installs
itself on IRQ #7, VMiX will virtualize and service interrupts for that
driver regardless of the currently executing virtual machine (VM).
To manually assure that the task that loaded the interrupt service is
the owner of the channel, you can use the 'assign . 5' command in a
VMiX.INI script or from the task's command line. The '.' is an alias
for the process ID (PID) of the current task, you could substitute the
PID # of the task you wish to assign channel 5 to. This command can be
issued at any time, before or after loading the driver for an adapter
that uses IRQ #7.
This feature virtualizes IRQ #7, just like IRQ #3 & #4 were virtualized
for the COMM ports. When hardware interrupts arrive for those devices,
they will not lose data when the active task in memory is not the owner
task of the driver. VMiX will service the interrupt in the context of
the channel owner for IRQ #7 and switch back to the task that owned the
cpu at the time of the hardware interrupt.
4. Made changes to VW so that it will display better, when using the new
/quiet VM_BOOT system option.
5. Fixed some bugs when switching virtual screens between an application
running in graphics mode and one running in text mode. The current
video size (total lines on a virtual screen) is now task dependent.
Graphics screens can have more lines than the 25 used by text screens,
and it was screwing up text screens when you Shift-Tabbed between them.
6. Fixed processing of VMiX.INI so that it works better and will now loadup
vm_boot.exe correctly. Previously, you could only loadup VMiX succesfully
from the command line. Fixed a bug with loadup which was not allowing
reuse of a freed upper memory block by a new TSR to load up.
VMiX Release 2.81 Notes
1. Added additional support for SCSI disk drives. Double buffering is needed
for correct operation of the SCSI drive DMA. When in protected double
buffering mode, is now activated if a SCSI BIOS is detected.
Additionally, double buffering can be toggled ON/OFF with the new VMiX
command 'set pool -d'.
2. Fixed a bug in Version 2.80 that caused a second task always to crash.
3. Added a new command line switch for starting VM_BOOT.EXE, /quiet, that
disables VMiX's normal user interface and substitutes a modified DOS
prompt that keeps all the VMiX commands, but looks more like plain DOS.
The /QUIET or /q option is just a look and feel option that disables
all start-up messages, normally printed during boot, and makes the
'look and feel' more like booting a multiuser and multitasking version
of plain DOS.
4. The DOS prompt line of a second concurrent DOS task will now display
the process ID, PID, for that task, along with the default drive and
path prompt. The process ID is only inserted on the prompt line of
tasks at the console and not at user terminals or call-in users.
5. When loading VM_BOOT.EXE to upper memory with the LOADUP.EXE utility,
the arguments after the second VM_BOOT will now be processed by the
VMiX that is loaded high. For example, to load VMiX high you might
first start the low memory copy with the command:
C:VMiX> vm_boot ems=ffff/loadup vm_boot set baud -c1 2400
the 'set baud' command will now be executed by the loaded high copy
VMiX Release 2.79 Notes
1. Multiple windows started within separate virtual full screens were not
working properly and got fixed. The last column of a display row will
no longer be clipped.
2. Reduced the time interrupts need to be disabled, which was affecting
reliable multitasking of communications programs.
3. Fixed a bug with 'set video -s' which caused extraneous cursors to flash
on the screen when the status line was enabled and other tasks were
4. Added the new command 'set process -q ????', where ???? is a number
between 0 and 255 representing the number of timer tick counts MINUS ONE
that a task can block other tasks in the READY queue because its priority
is constantly been increased by the VMiX preemptive scheduling mechanisms.
This keeps tasks running interrupt intensive programs (like communications
programs) from blocking totally other tasks.
The default setting is 175, resulting in a maximum blocked delay for other
tasks wanting a time slice of (176 * 11msec.) 1.9 seconds.
A 2400 baud program will receive interrupts about every 3msec., causing
each time an increase of its priority by 2. The scheduler runs every
11msec., thus finding the priority of that task higher by 6 and usually
higher than other tasks, so without the contention timer described above,
the current task could hog the system and not give other tasks a time
5. VT.EXE will now support the IBM Function Keys automatically, without the
need to press
still need to toggle IBM Keyboard Key Emulation ON, when connecting with
another manufacturer's communication program. Fixed inability of VT.EXE
to connect with a remote VMiX host at baud rates above 9600 baud.
Fixed a bug when using VT in one session and a switch to a second task
was perfomed, keyboard input could cause the system to hang.
6. Fixed backspace from a remote session, which was not erasing the first
character on a line. Fixed a bug with remote ANSI color not setting the
'rshell' screen to the correct color. Fixed a remotely commanded
'set video -m3', which was homing the cursor at the console screen.
VMiX Release 2.78 Notes
1. Fixed bugs with the new communications support and fossil type
BBS drivers. If 'set remote -i' is toggled TRUE, (type 'set remote' to
determine the current status), then the scheduler algorithm will be
modified to prevent a task to be locked-out because another is constantly
receiving COMM interrupts and preempting it.
2. Added the new command 'init clock' to reset the system clock back to
what VMiX expects. Some applications may attempt to capture the system
clock, this is handled by VMiX, but if the clock 8254 timer channel is
reprogramed by the application back to 55msec, this will make the
DOS clock slow down to 1/5 its normal rate. Use 'init clock' to restore
the clock back to its normal VMiX speed of 11msec.
3. MONITOR.EXE has been updated to monitor/edit logical address space memory
contents belonging to other VM tasks running in 386 mode. The CS, IP,
Flags registers now display correct data in 386 mode.
4. Each task now saves/protects its own DOS driver request header.
5. On 24 line terminals, setting terminal type 5, ANSI, will cause the
display to be truncated at 24 lines (line 25 will be overlayed).
Setting other terminal types, will allow the scroll at the end of
screen, by applications that expect a 25 line console or scroll the
screen by positioning beyond line 25.
VMiX Release 2.77 Notes
1. VMiX now supports programs that use the extended keyboard BIOS interface.
Some new programs were not responding to the keyboard, from either the
console or a terminal.
2. Fixed a bug that would halt the system when you quit VMiX, after it
had been relocated to upper memory, away from the DOS 640Kb area.
3. Fixed a 386 Mode only bug, that would cause the kill command to be
4. Added context sensitive interrupt processing to the kernel.
This is a new capability.
Interrupt request lines IRQ3 and IRQ4 (serial COMM ports) are currently
supported, but IRQ2 and IRQ5 are not. The unsupported lines are normally
used by network adapters. Network adapter software should still be
installed before VMiX starts, so that their drivers are available to all
virtual DOS tasks.
Previously, if you were running a task or window in a virtual 386 DOS
partition and started a communications program inside that partition,
which installs its OWN interrupt service routines, the program or the
system could hang. The reason for this was that while the serial port
interrupts can occur at any time, the communication program's virtual
machine might not be mapped (running) at the time of the interrupt.
This would not affect programs which use a serial port driver that was
globally installed before VMiX is started, but programs like Procomm or
Telix, that load the driver at runtime. This problem will no longer
occurr with this new version.
To enable context sensitive interrupts, you should invoke the command
'set remote -i' if the baud rate is lower then 19.2 KBaud, to toggle
ON special interrupt servicing. If you use the 'set baud -c ....',
to set a Baud rate above 9600, then context sensitive communications
are automatically enabled.
IF YOU INTEND TO RUN COMMUNICATIONS PROGRAMS, start VMiX with the
options given below (you do not want to allow logins at the COMM port
that is to be used for communications):
C:\VMiX> VM_BOOT set remote -x/set remote -i (disable all COMM logins)
C:\VMiX> VM_BOOT set remote -l4/set remote -i (logins only at COM4)
C:\VMiX> VM_BOOT set remote -i (logins only at COM1, default)
5. Remote ANSI users will now be able to get color screen displays from
applications running in the host, but being displayed remotely.
Fixed a bug that resulted in sudden scrolling of the remote display
Color support slows the screen display somewhat. If you want the
speed but not the color, select VMiX VT-100 emulation with the command
'set terminal -t4' and leave the remote terminal set for ANSI emulation.
The virtual screen redirection to the COMM ports has been speeded up
considerable. Only those portions of the screen that have changed since
the last refresh are now sent via the serial port to the remote terminal
running the application.
6. The remote communications program VT.EXE, which links two computers
running VMiX, has been upgraded.
7. The pull-down menus shell VW.EXE now allows the setting of COMM port
VMiX Release 2.70 Notes
1. Fixed a bug that made 3 1/2 floppy drives 1.44 Meg. unreadable after
2. Improved MS-DOS reentrancy, which makes VMiX less likely to hang as
a result of MS-DOS (INT 21h) conflicts.
3. Added VMiX support for DRDOS and XDOS operating systems. DRDOS still
does not pass our full stress test, but seems to work much better than
before. Because of differences between DRDOS and MSDOS, it is not
possible for VMiX to display a prompt showing the current default
Specifically, the architecture of DRDOS does not allow different tasks
to have different default directories. This will cause problems if you
set different default directories for different VMiX partitions. The
only way around this is to set an all inclusive PATH statement before
starting VMiX (and also set an identical path for data files using the
VMiX utility DPATH, after start-up).
4. The LOADUP.EXE utility is now able to relocate VMiX to upper memory,
in 386 computers. If your system has unused space between the
video rom and the system rom, VMiX will fit there. This reduces
the DOS footprint of VMiX to only 38Kb, which will allow larger
programs to fit in virtual memory partitions.
To load VMiX high you must first have started a copy of VM_BOOT in
your 386 computer with the startup parameter EMS=FFFF, so that the
first copy of VMiX will not try to initialize EMS memory in the target
upper memory area.
Sample command line to load VMiX to upper memory:
VM_BOOT ems=ffff/loadup vm_boot
Wait until the first copy of VMiX has shutdown and the new upper memory
copy has started. The entire process is automatic.
When quiting out of the upper memory copy of VMiX, the DOS system must
currently be halted, requiring a system reset after VMiX terminates.
5. If your system has more than 1 Meg. of extended memory, VMiX will now
automatically use large video buffers (which allows graphics apps to
coexist with text mode apps and other full screen graphics apps).
Previously, you had to set the parent shell to graphics mode with the
'set video -m' command and then start a new 'dosjob' which would then
use large video buffers. Alternatively, you could also start a new
shell with 'dosjob -W /rshell' and then set the video mode to graphics
befor starting the graphics application. You still have to do this,
when starting applications that run in graphics mode, if your system
has only 1 Meg. of extended memory.
6. Added the command 'set process -t ????', where ???? is a number equal
to 0 or above representing number of timer tick counts MINUS ONE, that
a process will execute uninterrupted. This differs from the command
'set system -d ????' which repesent the interval (ticks - 1) before
the scheduler briefly takes control to see if a new process is ready
to be given a control of the CPU (for a time period equal to one tick
more than that specified with the command 'set process -t').
7. Hopefully fixed a bug which caused VM_BOOT not to detect upper memory
in use, resulting in a crash, unless VMiX was started with the ems=ffff
system startup option.
8. VMiX now can make use of up to 4 Meg. of extended memory. Previously
a maximum of 3 Meg. was actually used. If your system has 8 Meg. of
extended memory, you can use the system startup option exc=4000 to
exclude the first 4 Meg. for cache or something else. Eight users
will not require more than 4 Meg. since the first two tasks (the
scheduler and the root shell) run in conventional memory.
9. Because of all the problems other ANSI drivers can have with VMiX's
multiuser function, we are providing VMANSI.COM, a TSR that can be
executed before VMiX to install an ANSI driver. This driver is still
being developed and currently does not support keyboard redefinition.
VMiX Release 2.67 Notes
1. Added an optional, remote login access password system to control
access via the COMM ports.
2. Added a very flexible configuration file, VMiX.INI, to assist in
configuring VMiX startup and specifying user programs to run upon
remote COMM port login.
The new utility VSETUP.EXE will process the VMiX.INI file when it is
invoked in the vm_boot startup command line. When used in the vm_boot
startup sequence, VSETUP will only process the lines given under
the [startup] Section in VMiX.INI
The new utility VSETUP.EXE or any user program can also be specified
with the 'set remote -l' command. In this case, VSETUP.EXE controls
password access and the startup of any program given in the
[remote startup] Section in VMiX.INI. Invoking 'set remote -l'
without specifying VSETUP.EXE will reset logins to the standard access
3. Fixed an exit bug that caused available memory to be truncated after
running and quiting from VM_BOOT.EXE
4. VMiX now drops the modem carrier when a program or login that uses
a channel to one of the COMM ports terminates.
5. VW.EXE and VSETUP.EXE will make use of your DOS PATH to find other
utilities that VW dispatches or the VMiX.INI data file. However,
they will also search the full filespec path you typed when starting
VM_BOOT.EXE, regardless of the current path settings.
6. Fixed a bug with the software cursor, in graphics modes poping up in
7. Change the way we reflect to COMM port interrupts in virtual 386 Mode.
The scheduler is now disabled during the entire interrupt service.
Fixed a bug that would not allow more than one COMM port to be used
at once for remote logins.
8. Added the 'set process -d ????' command to allow a script to specify
a wait interval, in seconds. (Mostly for purposes of VMiX.INI scripts.)
VMiX Release 2.66 Notes
1. Fixed a hang problem with the 'VM_BOOT 8086' startup sequence, when
starting in 8086 Mode on 286/386/486 systems.
2. Remote logins will now work at the high (interrupt driven) baud rates
above 9600 baud. High baud rates are set for a given channel, just
as the standard rates, with the 'set baud -c ????
'init comm -c ????
2400, 4800, 9600, 19200, 38400, and 115200. The VMiX utility DSTAT.EXE
will now display the baud rate settings for all channels assigned to
VMiX Release 2.64 Notes
1. Fixed a DOS 5.0 bug which caused the system to hang on exit from VMiX.
2. Fixed bug with auto screen windowing, when three windows already existed.
3. The 286/386 coded version will now print error message and exit when
it detects an 8088 or 8086 cpu.
4. Fixed bug with uppercase 'H', 'P', 'K', and 'M' not being displayed.
5. Fixed bug with the 286 Mode 'swap' command which would cause the system
6. The status line now displays the full name of the current foreground
7. On exit from VMiX, free DOS memory is now fully reconstructed, to avoid
loss of memory sometimes caused by the 'swap' command. An 'exec -m1024'
will also reconstruct DOS memory.
8. Fixed the problem of the cursor bleeding through, between virtualized
screens, causing random bleeps on the foreground screen.
9. Added a check to ensure that the first available memory arena starts
at a 4Kb boundary. Sometimes the alignment failed resulting in
memory allocation fault error message and crash.
10.Added a (L)aunch application option to the VW.EXE utility to allow the
user to launch an application directly, instead of starting a shell for
it first and then invoking the application. The application (L)aunch
option resides in the (P)rograms menu.
11.When you exhaust extended memory, VMiX now gracefully switches the
new task to use the parent's memory and prints an insufficient memory
12.Changed the menu names used by VW to be more explanatory. (F)ree Extended
Memory was not working correctly.
13.Fixed a PATH command bug causing virtual memory not to be released.
Other bugs caused the path to be inserted incorrectly in the environment.
14.Moving the console to a remote port was not working correctly (ie., 'set
remote -c ????').
15.The default terminal type has been changed to be type 5, an ANSI terminal
or VT-100 terminal.
16.Fixed bug with COMSPEC not being found in environment during new task
dispatch. This resulted in nothing executed and a help screen being
17.Added 386 protected mode support for coprocessor instructions. This
caused some applications to hang when executed in 386 Mode.
18.Added support for virtualized default directories. Each task now has
its own default directory, independent of what others have. Previously
only default drives were virtualized.
VMiX Release 2.61 Notes
1. Added support for DOS 5.O load of COMMAND.COM and BUFFERS to HMA area.
VMiX patches DOS's XMS manager to disallow disabling of the gate 20
address line, so HMA is always addressable.
2. Video memory is no longer cleared when a Shift-Tab causes a switch
between tasks in different video modes.
3. Increased to 4 Megabytes the amount of memory VMiX will recognize
(previously it used only 3 Megabytes, even if it found more).
4. Changes to the SYSGATE.ASM programming interface (see file).
5. Added interrupt driven services to the COMM ports, under VMiX.
Added support for 115.2 Kbaud (When 'set remote -i' is TRUE, 110 baud
becomes 19.2 Kbaud, 150 baud becomes 38.4 Kbaud and 600 baud becomes
115.2 Kbaud). To set 115.2 Kbaud you would use 'set baud -c1 600'.
6. Added the VT.EXE utility for linking two VMiX hosts serially with
a virtual terminal session.
7. Programs that make direct video writes are now supported at remote
COMM port terminals (remote logins). All video memory accesses will
be redirected to the COMM port and will not appear at the console.
8. Fixed a bug with stack deallocation after process termination.
9. Added DOS 5.0 style support for upper memory blocks.
Added the LOADUP.EXE utility to allow user loading of TSRs to upper
memory (386 Mode required). TSR is visible only to process that
started it, since each VMiX task is virtually mapped to a separate
virtual first megabyte. This means that you can have different
(or the same) TSRs active for each partition.
10.Fixed a bug with the 'exclude=' command line option; it was not really
leaving the HMA area unused and causing conflict crashes.
11.Added an alternate way to start new tasks multitasking. Pressing
Shift-Enter or Shift-Shift-Enter, will start a new task, just as if
you had typed 'dosjob'. The Shift-Enter is used, instead of just the
Enter key, after typing a command. If both Shift toggles are pressed
when the Enter key is hit, the new task will use the full screen. If
only one Shift is held down, the task will start in a new window.
12.Fixed the VMiX hang problem when the DSR line is not enabled at a COMM
port being used for logins.
13.Changes to VW pull-down menus style.
14.VMiX now detects if another 386 virtual memory manager is present, and
rather than crashing it switches to 8086 Mode.
VMiX Release 2.58 Notes
1. VMiX uses an underline character as a 'mark the spot' cursor to show
where the cursor was in a non-foreground task, when the user toggles
to another window with the hot key. To allow users that use a voice
synthesizer to echo the characters displayed by BIOS, without the
anoying underline character being echoed, the cursor display is now
performed without using the BIOS call.
2. Fixed a memory manager bug with the paged memory allocation scheme.
Fixed a BitBlt bug when using system font 2 with graphics modes,
which hung a task executing a memory map display ('monitor -m').
Fixed a bug with backspace, when using the command line in graphics
modes, not erasing the software cursor.
3. Automatic windows are now virtualized. In 386 Mode, each foreground
can be partitioned into windows, independently from other full screen
4. When extended memory is exhausted, a new child process inherits the
program space and virtual screen of the parent.
5. Reduced time interrupts are disabled in INT 10 and 16.
6. Added VMIX support for HIMEM.SYS and other resident XMS drivers.
7. Fixed a bug that did not allow the previous command to be recalled
when up-arrow pressed in graphics modes.
VMiX Release 2.57 Notes
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 graphics modes (640 x 480) are now supported. Fixed bugs with
graphics switching. Fixed bugs with status line display in graphics
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
7. We are now virtualizing the DMA buffer maintained by DOS.
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 startup 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.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, for example
hex address? 550A displays segment 550A:0
hex address? 550A:100 displays segment 550A:100
hex address? 550A:100 = FF sets byte at 550A:100 to FF
The 'examine memory' command does the equivalent from the VMiX shell.
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
VMiX Release 2.56 Notes
1. VMiX now handles swapping video modes between graphics and text in
386 computers. The hot-key
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)
'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 DOS 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 bootup. 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 graphics 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
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 startup 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
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
4. Added a better command line parser and changed the syntax of the startup
The new command syntax is:
VM_BOOT [low] [high]  [extended] [egacursor]
[cgacursor] [ [ command ] /... ]
where (note abbreviated syntax),
the '8086' option forces 8088 (real mode) operation on 286/386/486
the 'ext' option forces 80286 (real/protected mode) operation on
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
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
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 8 Kbytes.
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
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 startup 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.
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
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 startup 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
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 modes).
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. DOS commands are passed
to 'command.com' and VMiX commands are passed to VMiX.
If the name of a VMiX command conflicts with a DOS command or file
name, the VMiX 'exec' command should preceed the DOS command, on the
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'.