home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-03-05 | 142.3 KB | 6,915 lines |
-
-
-
-
-
-
-
-
-
- -----------------------
- |
- |
- |
- V M i X 2 8 6 |
- |
- for |
- |
- MSDOS Environments |
- |
- |
- |
- Multiuser Operating |
- Supervisor |
- |
- for the |
- |
- I B M PC / XT / AT |
- |
- |
- Version 1.4X |
- |
- |
- -----------------------
-
-
-
- By
-
- J. Anthony Borras
- Commercial Software Associates
- Post Office Box 185
- Corona del Mar, California 92625
- (714) 721-9953
-
- IBM PC/XT/AT are trademarks of the IBM Corp.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- This manual was written by:
-
-
- Commercial Software Associates
- Post Office Box 185
- Corona del Mar, California 92625
-
-
-
-
-
-
-
-
-
-
-
- COPYRIGHT NOTICE
-
- Copyright (c) 1988 by: J. Anthony Borras
- All rights reserved
-
- No part of this program or related
- documentation may be copied, reproduced,
- stored in a retrieval system, or
- transmitted in any form or by any means
- electronic, mechanical, photocopied,
- recorded, or thereby translated into any
- language, without the prior written
- permission of the publisher. You may
- only make a copy of the program for
- backup purposes.
-
-
- LIMITED SHAREWARE LICENSE
-
- - VMiX 286 may be copied for others to
- tryout, subject to the following copying
- restrictions specified by this time
- limited license:
-
- All copies distributed to others
- must include a copy of the Copyright
- Notice, the Limited Shareware License,
- Disclaimer of All Warranties and
- Liabilities, and the Software License
- Agreement.
-
- A registration fee of $59 is solicited
- from personal users (up to 3 CPU's) as
- a condition of continued use of the
- program beyond a trial usage period of
- 30 days.
-
- - The party agrees that unauthorized
- usage under this agreement will cause
- great damage to the licensor, Commercial
- Software Associates.
-
-
- page 2
-
-
-
-
- Basic Prices
-
-
- REGISTRATION fee ................. $59.
-
- SOURCE license ................... $499.
- (+$440, if upgrade from registration fee)
-
- UPGRADE Version 1.XX ............ $20.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- page 3
-
-
-
-
- Disclaimer of
- All Warranties and Liabilities
-
- Commercial Software (ComSoft) Associates
- makes no warranties, either expressed or
- implied, with respect to this manual or
- to the software described there in, its
- quality, performance, merchantability,
- or fitness for any particular purpose.
- VMiX 286 is sold or licensed `as is',
- and is for use by the original
- purchaser only, except as expanded by
- the Limited Shareware License described
- above. The entire risk, as to the
- quality and performance, of the VMiX
- experimental system is with the buyer.
- In the event of loss or damage caused
- or alleged to be caused by the VMiX 286
- program, the buyer (and not ComSoft, its
- distributors, or its retailers) assumes
- the entire cost of all necessary
- servicing, repair, or correction and
- any incidental or consequential damages
- resulting from any defect in the
- software or its use, even if ComSoft has
- been advised of the possibility of such
- damages.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- page 4
-
-
-
-
- SOFTWARE LICENSE AGREEMENT
-
-
- The party, whose signature appears
- below, agrees that they will utilize the
- software entitled `VMiX 286' exclusively
- for their private use in their own
- personal system, not to exceed 3 CPU's.
- The party agrees that all copies of the
- VMiX 286 software package are the
- property of Commercial Software
- Associates, Westwood California and that
- all copies will display the original
- copyright.
-
- The party agrees that the location
- of all copies will be reported to
- Commercial Software upon written demand.
- The licensee agrees to fill out and mail
- this registration form and license
- within 30 days of the start of the try-
- out period specified by the Limited
- Shareware License shown above. Support
- will be provided to registered licensees
- only.
-
- The party agrees that unauthorized
- usage under this agreement will cause
- great damage to the licensor, Commercial
- Software Associates.
-
- Unless this agreement is returned
- to Commercial Software and registration
- fee is paid upon expiration of the
- Limited Shareware License, it will not
- be possible to inform the purchaser of
- any updates, additions, or corrections
- to this software package or accompanying
- manual.
-
-
-
-
- page 5
-
-
-
-
-
-
-
-
- RETURN TO:
-
- Commercial Software Associates
- Post Office Box 185
- Corona del Mar, Ca. 92625
-
-
-
-
-
-
-
- SERIAL NUMBER: ____________________
-
- NAME ________________________________
- name
-
- COMPANY/TITLE __________________________
- company title
-
- ADDRESS __________________________
- street
-
- __________________________
- city state zip
-
- TELEPHONE ( ) -
- phone
-
- Signature: __________________________
-
-
-
-
-
-
-
-
-
- page 6
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- page 7
-
-
-
-
- FEATURES of VMiX 286
-
-
- VERSION 1.4X First Level Release
- Distributed as shareware in continued
- development state.
-
-
- - VMiX is not presently a full operating
- system. It provides the services of a
- multiuser operating system supervisor.
- The VMiX kernel ties tightly between
- the host operating system I/O services
- and the user applications. The eventual
- goal of the VMiX kernel is to arbitrate
- use of system resources by individual
- tasks with either or both UNIX I/O or
- MSDOS I/O, in an environment providing
- up to 16 megabytes of physical memory.
-
- - VMiX incorporates enhanced multi-
- tasking support. The console screen can
- be automatically partitioned into up to
- four windows, for a total of 4 tasks
- executing from the console. The active
- task controls and responds to the
- console keyboard. The active task can be
- switched, at any time, by pressing the
- hot key, Shift-Tab.
-
- - VMiX provides concurrent multiprocess
- capabilities to the host operating
- system, which will still service most of
- the low level interface to the computer
- hardware. NOTE: MSDOS disk driver
- reentrancy problems are not addressed by
- this release. If two tasks are
- requesting disk I/O, one is placed in
- IOWAIT by VMiX, while the other
- completes a disk sector access.
-
-
-
- page 8
-
-
-
-
-
- - VMiX release 1.4X does not operate in
- 286 protected mode at all times. Hence,
- it can be used in 8088 PCs. System
- services are provided in sysgate.asm to
- execute your own functions in protected
- mode. The debugger "assign gdt" method
- allows entries to the VMiX gdt. This
- can also be done with the memory manager
- system service.
-
- - REMOTE permits a user to call a remote
- PC running VMiX, and teleoperate, as if
- he were at the console of the remote PC.
- Useful for remote customer support of
- application programs, offsite login and
- operations. VMiX terminal drivers offer
- CGA text mode and IBM function key
- emulation at a COMM port. Only the
- remotely accessed PC needs to be execut-
- ing VMiX.
-
- - With VMiX you can run programs like
- WINDOWS, LOTUS 123, XTALK, BASIC, DBASE,
- or WORD at the console and BASIC, DEBUG,
- TURBO PASCAL, WORDSTAR 3.2 or 4/0, DBASE
- II/III, or PROCOMM at a COMM terminal.
- Multiple BASIC or GWBASIC interpreter
- sessions are supported.
-
- - Supports a maximum of five users (only
- because of COMM limitations), each with
- multiple processes up to a maximum of 10.
-
- - SPAWN or '&' permits a script of VMiX
- shell commands to be submitted to a
- background process executing the VMiX
- shell. This allows for background jobs
- like compiling or printing by a
- concurrent child process.
-
-
-
- page 9
-
-
-
-
-
- - DOSJOB permits MSDOS keyboard inter-
- active applications to be partitioned
- and managed as concurrent video display
- window tasks.
-
- - SWAP will move tasks from/to conven-
- tional memory and store them in extended
- memory for later resumption.
-
- - Automatic or User specified windows in
- both alphanumeric and hires graphics
- modes, from either the console or VT-100
- COMM terminal.
-
- - Loadable character fonts, 33 line CGA
- display. Version 1.4X provides support
- for EGA video modes and up to 58 line
- display, with VMiX font type 1.
-
- - Console operator status line and
- passive fault-tolerance.
-
- - Built-in debugger.
-
- - Memory manager and memory mapper.
-
- - Assembly and C language interface.
-
- - Interrupt 15h System Services.
-
- - VMiX 286 requires MSDOS 2.10 or above,
- and 320K of memory to execute. It will
- adjust to and recognize, either an 8088
- IBM PC, an 80286 IBM AT, or 100% clone.
-
-
-
-
-
-
-
-
- page 10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- page 11
-
-
-
-
-
- PREFACE
-
-
- This manual is divided into Three Parts.
- They are:
-
-
- PART ONE HOW TO GET STARTED
-
- How to Get Started: This part of the
- manual covers the preparation required
- to use VMiX 286 effectively. It provides
- information on how to install the
- shipped system.
-
- PART TWO USING VMiX 286
-
- General Use: This part of the manual
- contains a detailed description of the
- various features of VMiX 286. It
- provides a step-by-step guide to the use
- of the operating system's commands.
- Also included are notes describing
- useful features and those areas where
- extra caution is recommended.
-
- Advanced Use: This part of the manual
- contains useful information regarding
- the internal functions of the operating
- system. It describes procedures for
- writing programs that utilize the VMiX
- system services and explores in detail
- the external interface.
-
- PART THREE APPENDICES
-
- Appendices: This part of the manual
- contains various appendices, including
- release notes, a Technical Section, and
- a description of VMiX status messages.
-
-
- page 12
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- page 13
-
-
-
-
-
-
- ---------------------------------------
- |
- |
- |
- |
- |
- CONTENTS |
- |
- |
- |
- |
- |
- ---------------------------------------
-
-
-
-
- INTRODUCTION Page
-
- Copyright Notice 2
- Software License Agreement 5
- Features of VMiX 286 8
- Preface 12
- Table of Contents 14
- List of Figures 18
-
-
-
- PART ONE: -How to Get Started-
-
- Page
-
- Title Page 1
- Introduction 3
- How to Get Started 7
- Commands Overview 15
- Shell Commands 15
- Command Summary 18
-
-
-
- Contents 14
-
-
-
-
- PART TWO: -Using VMiX 286-
-
- Page
-
- Title Page 1- 1
- VMiX Start-Up 1- 3
- Interface to MSDOS 1- 4
- VMiX Configuration 1- 7
- Using the Command Line 1- 8
- System Console Display 1-12
- Shell Commands 1-14
- Login Terminals 1-16
- Terminal Types 1-17
- IBM Function Keys 1-18
- Communications 1-20
- Extended Memory 1-21
-
-
- The Root Shell 2- 1
- Command 1 - debug 2- 3
- Command 2 - rshell 2- 4
- Command 3 - remote 2- 5
- Command 4 - swap 2- 8
- Command 5 - chprio 2- 9
- Command 6 - exec 2-11
- Command 7 - dosjob 2-15
- Command 8 - spawn 2-17
- Command 9 - kill 2-20
- Command 10 - quit 2-22
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Contents 15
-
-
-
-
- PART TWO: -(Continued)-
-
- Page
-
-
- The Debugger Shell 3- 1
- Command 1 - read 3- 3
- Command 2 - write 3- 4
- Command 3 - assign 3- 5
- Command 4 - deassign 3- 9
- Command 5 - init 3-11
- Command 6 - examine 3-12
- Command 7 - set 3-13
- Command 8 - quit 3-24
- Utility 9 - monitor 3-25
-
- Advanced Use 4- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Contents 16
-
-
-
-
- PART THREE: -Appendices-
-
- Page
-
- Title Page A- 1
- Appendix A Release Notes A- 3
- Problem Reports A- 7
- Appendix B VMix System Services B- 1
- Appendix C Technical Information C- 1
- Appendix D Status Monitor D- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Contents 17
-
-
-
-
-
- ---------------------------------------
- |
- |
- |
- |
- |
- FIGURES: |
- |
- |
- |
- |
- |
- ---------------------------------------
-
-
-
-
-
- PART ONE:
-
-
- FIGURE DESCRIPTION Page
-
- Fig. 1 VMiX Start-up Screen 15
- 2 VMiX Debugger Screen 17
- 3 VMiX Command Summary 20
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Contents 18
-
-
-
-
- PART TWO:
-
-
- FIGURE DESCRIPTION Page
-
- Fig. 4 COMMON TERMINALS 1- 9
- 5 Terminal Function Key Emulation 1-19
- 6 Object type name definitions 3- 6
- 7 SRCSINK object id's 3- 6
- 8 Color Keys 3-19
- 9 Color Codes 3-20
- 10 Root Window Sizing 3-21
-
-
-
- PART THREE:
-
-
- FIGURE DESCRIPTION Page
-
- Fig. A-1 VMiX Status Board A- 5
- A-2 VMiX 286 Conventions A- 6
- C-1 VMiX 286 O/S Hierarchy C- 3
- C-4 VMiX 286 Synchro Primitives C- 4
- C-5 VMiX 286 Scheduler C- 5
- C-6 VMiX 286 Structures C- 6
- C-7 VMiX 286 Queue Structures C- 7
- C-8 VMiX 286 Object Model C- 8
- C-9 VMiX 286 I/O Objects C- 9
- C-10 vm_boot Structure Chart C-10
- C-11 vm_shell Structure Chart C-11
-
-
-
-
-
-
-
-
-
-
-
-
- Contents 19
-
-
-
-
- TABLE DESCRIPTION Page
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Table C-1 VMiX Global Data C-12
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Contents 20
-
-
-
-
-
-
-
-
-
-
- PART ONE
-
-
- VMiX 286
-
-
-
-
-
-
-
-
-
-
-
- HOW TO GET STARTED
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part I, Introduction page 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part I, Introduction page 2
-
- C O M S O F T VMiX 286
-
-
-
- INTRODUCTION
-
- VMiX 286 provides a multitasking
- and multiuser environment for the new
- evolving personal workstations. VMiX
- retains some of the freedom, control,
- and general access to the system that
- existed during the earlier days of
- personal computing.
-
- VMiX enhances your computing envi-
- ronment in several ways. First you can
- view information from several programs
- simultaneously using VMiX's console
- windowing capabilities. You can also
- multitask, not just execute in the back-
- ground, but in each of the windows. You
- can also give the full screen to one or
- more programs. Since VMiX is a multi-
- user environment, not just a windowed
- multitasking shell, you can also support
- several workstations or modems at your
- computer's serial ports.
-
- VMiX also provides the choice to
- load tasks that can be swapped out to
- extended 286 memory, interrupted and
- made active again, at your command. This
- virtual memory capability, to load more
- programs than you have conventional
- memory to execute-in, is enhanced by the
- additional capability to execute swapped
- programs, while they are swapped.
-
-
-
-
-
-
-
-
-
- Part I, Introduction page 3
-
- C O M S O F T VMiX 286
-
-
-
- It is possible that as personal
- computer hardware reaches new levels of
- speed and complexity, control of
- operating kernels will revert to the
- manufacturer, like has been the case
- with mini-computers and mainframes.
- Systems like VMiX provide an alternative
- to users of the new personal computers.
-
- The ability to develop creative,
- highly custom applications which manipu-
- late the total system will probably be
- lost if new independent environments are
- not implemented for the OS/2 world.
- Since with MSDOS, this was unnecessary,
- we have complacently left the area of PC
- control program development to computer
- manufacturers or to large dedicated
- system houses; there is a substantial
- amount of catch-up involved in creating
- a new independent platform.
-
- Because of the scope of the VMiX
- project, some areas have been kept
- initially simple. This is a mixed
- blessing that limits the capability of
- VMiX to operate satisfactorily with a
- larger volume of existing software.
-
- VMiX, allows applications to start
- with full kernel privileges, as all
- MSDOS environment applications have, in
- the past. After initialization, the
- application can move itself to the
- desired protection level. In some
- commercial environments, with the
- concept of trusted hosts, this might be
-
-
-
-
-
- Part I, Introduction page 4
-
- C O M S O F T VMiX 286
-
-
-
- highly risky. However, not all personal
- computer applications need to be crash
- proof, if you loose the ability to
- develop custom applications.
-
- Most of the effort, so far, has
- been concentrated in the development of
- the process manager and preemptive
- scheduler. Process management is, there-
- fore, substantially robust, except that
- a hi-resolution clock has not yet been
- implemented. VMiX is still limited by
- the resolution of the 55 millisecond
- time-of-day clock. This produces approx-
- imately 18 task switches per second and
- can result in yerky scrolling of the
- video display.
-
- File management within the VMiX
- object manager is not implemented.
- Hence, there presently are limitations
- with I/O redirection.
-
- The VMiX memory object manager is
- about 75% complete. So, conflicts still
- exists when VMiX relies on the MSDOS
- memory manager to do things right from a
- multiprogramming standpoint. VMiX does
- provide access to 286 protected mode
- memory. This memory is called extended
- memory. Version 1.4X uses this area to
- swap programs that do not fit in conven-
- tional memory. The VMiX Application
- Program Interface (API) allows programs
- to be executed in protected mode.
-
-
-
-
-
-
-
- Part I, Introduction page 5
-
- C O M S O F T VMiX 286
-
-
-
- The tty driver, which handles EGA/
- CGA/MDA video modes at the console and
- character I/O to the serial devices is
- relatively robust. Direct video access
- can not be redirected until full 386
- operations are attained. There are
- programs that just can not run on a dumb
- terminal (if only, just because the
- keyboard layout is too limiting). An
- interprocess communications manager to
- service requests from other serially
- connected PCs running VMiX is not yet
- included in VMiX, but is a high priority
- objective.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part I, Introduction page 6
-
- C O M S O F T VMiX 286
-
-
-
- HOW TO GET STARTED
-
-
- GENERAL:
-
- VMiX 286 is designed for use on the
- IBM Personal Computer, IBM AT, or other
- compatible computers running under the
- MSDOS 3.10+ operating system. Two floppy
- disk drives, or a hard disk are
- recommended. Memory requirements are
- 320K of RAM, but a full 640K is
- desirable for multiuser operations.
- At least 1 megabyte of memory and an
- 80286 processor is required for extended
- memory task swapping. Swapped tasks are
- temporarily suspended until swapped back
- to conventional memory (the first mega-
- byte of Intel address space).
-
- The color graphics adapter, CGA, is
- recommended for a 640 x 200 console
- display. Version 1.4X is a prototype
- system intended mostly for Intel 8086
- Real Mode, however 386 Protected Mode is
- planned for implementation in Version 2.
- The present kernel resource supervisor
- incorporates data structures compatible
- with the Intel 80286 protected mode and
- provides for the execution of conforming
- functions in protected mode.
-
- To successfully use the varied
- features of VMiX 286 it is necessary to
- carefully read parts I and II of this
- manual COMPLETELY before use.
-
-
-
-
-
-
- Part I, How to Get Started page 7
-
- C O M S O F T VMiX 286
-
-
-
- BEFORE using VMiX 286, copy all the
- files described below, from the Shipping
- Diskette to a formatted System Disk that
- includes your MSDOS operating system.
-
- NEVER use the Shipping Diskette to
- actually run VMiX 286. Use the copies
- that you have made from it and keep the
- Master Disk in a secure, cool place. If
- you have a problem with your program
- that is related to the Work Disk,
- insert another copied disk to check
- out the problem. Do not use the Master
- Disk, there may be a failure in the
- computer system that could destroy the
- information contained on it. For this
- reason, it is wise to maintain two work
- copies of the Master Disk at all times.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part I, How to Get Started page 8
-
- C O M S O F T VMiX 286
-
-
- The VMiX 286 System consists of
- the twenty one files described below.
-
-
- MASTER DISK CONTENTS
-
- VM_BOOT.EXE - The VMiX
- start-up program. To start, type
- VM_BOOT from MSDOS's A> prompt and
- press <RETURN>.
-
- PS.EXE - Utility
- executed by user to view process staus.
-
- DSTAT.EXE - Utility
- executed by user to view device and
- channel status.
-
- DPATH.EXE - Utility
- executed by user, to set the directory
- search PATH for data files.
-
- MONITOR.EXE - Utility
- executed by user to monitor process
- information and system status.
-
- SYSGATE.OBJ - Link file
- for VMiX (API) Application Programming
- Interface.
-
-
- SOURCE FILES: DOCUMENTATION FILES:
-
- SYSGATE.ASM READ.ME
- MONITOR.C DPATH.DOC
- DSTAT.C PS.C MANUAL.DOC
- C_BIOS.H $_PROC.H
- $_KERNEL.H IO_CHAN.H
- $_CONFIG.H IO_IRP.H
- $_MEM.H IO_OBJ.H
-
-
-
- Part I, How to Get Started page 9
-
- C O M S O F T VMiX 286
-
-
-
- I N S T R U C T I O N S
-
-
- 1) Upon receipt of your SHIPPING
- Diskette, copy the five files:
-
- VM_BOOT.EXE, PS.EXE, DSTAT.EXE,
- MONITOR.EXE and DPATH.EXE
- onto your own System Diskette.
-
- 2) Using your editor, create a file
- named CONFIG.SYS. Include the
- following two lines:
-
- BUFFERS = 15 (or more)
- FILES = 20
-
- and, save the file to your system
- boot disk.
-
- 3) To execute the VMiX 286 program
- requires MSDOS Version 2.10 or
- above, and 320K of memory. A color
- graphics card, CGA is recommended
- for the console display.
-
- Release 1.4X does not operate in
- 286 protected mode at all times, so
- it will execute properly in PCs
- with 8088 processors. Start VMiX
- by typing:
-
- A> VM_BOOT<RETURN>
-
-
- If you have a Monochrome Adapter,
- VMiX will sense it.
-
-
-
-
-
- Part I, How to Get Started page 10
-
- C O M S O F T VMiX 286
-
-
-
- 4) The RS232 cabling for COM1 and/or
- COM2 should be constructed
- depending on whether the host PC
- will be connected to a dumb
- terminal or to another PC acting as
- a terminal.
-
-
- PIN PIN
-
- H 1 1
- O
- S 2 -- - _ _ _ - -- 2
- T -_ __ - -
- 3 __ _ - - - - _ __ 3 T
- S E
- e 4 4 R
- r M
- i --5 5 I
- a -| N
- l | --6 6 A
- | L
- P | 7 ------------------------- 7
- o |
- r | --8 8
- t -|
- --20 20
-
-
-
-
-
-
-
-
- See Part II, Using VMiX 286, for
- detailed instructions regarding the use
- of VMiX 286 commands and options.
-
-
-
-
- Part I, How to Get Started page 11
-
- C O M S O F T VMiX 286
-
-
-
- Some conventions used in the manual are:
-
-
- [ ] = Indicates that what is contained
- between the braces is optional.
-
- xxxx = Used to represent alphanumeric
- characters within a prompt.
-
- Example: `ENTER FILENAME? xxxx'
-
- ???? = Used to represent numeric
- characters within a prompt.
-
- Example: `set remote -c????'
-
- < > = Used to indicate a specific
- keyboard key.
-
- Example: `Press <RETURN>'
-
- [ ] = Used to indicate a specific
- function key or numeric keypad
- key.
-
- Example: `Press [F9]'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part I, How to Get Started page 12
-
- C O M S O F T VMiX 286
-
-
- The Only Keys
- You Need to Know:
-
- <RETURN> VMiX is designed to interpret
- the <RETURN> key pressed by
- itself, alone in a line, as
- a request for help. The<RETURN>
- key is labled 'Enter<--' on
- IBM keyboards.
-
- <Esc> When using BASIC or BASICA
- interpreters, this key will
- clear BASIC's line editor
- buffer. This key will
- prevent Syntax Errors, which
- sometimes occur during new
- commands typed, when using
- BASIC from a terminal port.
-
- When using the root commands
- exec or dosjob, this key
- will abort a wait for a busy
- DOS.
-
- The debugger shell uses<Esc>
- with some looping commands,
- to exit or end a loop.
-
- <Ctrl> <Break> Pressing these two keyboard
- keys simultaneously, will
- abort an operation.
-
- <Ctrl> <C> Pressing these two keyboard
- keys simultaneously, will
- abort an operation.
-
-
-
-
-
-
-
-
- Part I, How to Get Started page 13
-
- C O M S O F T VMiX 286
-
-
- <Ctrl> <F> Pressing these two keyboard
- keys simultaneously, will
- toggle the function key
- emulation from a terminal.
- Keyboard digits <1>, <2>,
- <3>... <0>, will perform
- like [F1], [F2]... [F10].
- Holding down the <Shift> key
- while pressing a keyboard
- character key will cause an
- Alt-key sequence to be sent
- to the host. The terminal
- will beep when the function
- keys are turned-on.
-
- <Shift> <Tab> Pressing these two keyboard
- keys simultaneously, will
- toggle the currently active
- console task that owns the
- keyboard. The keyboard is
- re-assigned, in round-robin
- fashion, among the channels
- currently assigned to the
- console. The VMiX console
- status-line displays the
- channel/task that owns the
- keyboard. <Shift><Tab> does
- not affect multitasking.
-
- <&> When the character '&' is
- placed in a VMiX command
- line, a background process
- will be started to execute
- everything in the line, up
- to the '&' character. This
- method of starting a job
- should be used only for non-
- interactive processes.
-
-
-
-
-
- Part I, How to Get Started page 14
-
- C O M S O F T VMiX 286
-
-
-
- COMMANDS OVERVIEW
-
-
- SHELL COMMANDS
-
-
- When the VMiX start-up screen
- displays the initial command prompt
- 'A>______', press the <RETURN> key to view
- the available commands (or tokens) for
- the root shell level.
-
- The screen will display: (Fig. 1)
-
-
-
- ----------------------------------------------------------
- | VMiX.286 1.4X Copyright (C) ComSoft 1987 |
- |----------------------------------------------------------|
- | [PROCESSOR = 80286] |
- | A>_<RETURN>___________ |
- | |
- | --------------------------------- |
- | | VMiX 286 ROOT SHELL | |
- | | debug rshell remote swap | |
- | | chprio exec dosjob spawn | |
- | | kill quit | |
- | --------------------------------- |
- | |
- | A>____________________ |
- | |
- ----------------------------------------------------------
-
- (Fig. 1)
-
-
-
- See Chapter 2, 'The Root Shell', for
- a detailed description of each command.
-
-
-
- Part I, Commands Overview page 15
-
- C O M S O F T VMiX 286
-
-
- The term root refers to the first
- level in a nesting of layered levels.
- It is used primarily to refer to
- processes that invoke other child
- processes. The root process is the
- grandfather of all subsequent children.
- When VMiX starts, the root process is
- created and displays at the console of
- the processor running it. The root
- process has the highest privilege on the
- system. Only root can terminate (quit)
- VMiX.
-
- The term shell refers to a grouping
- of commands and capabilities that is
- provided by a command language
- interpreter. MSDOS has a single shell
- called command.com. This is the shell
- that interacts with MSDOS users when
- they type diskcopy or dir, etc. VMiX
- can have a large number of shells, each
- called from the previous or father
- shell. Here again, the top command
- shell is called the root shell, even
- though it is the top shell for all
- processes besides the root process.
-
- If you type debug and press <RETURN>,
- you will invoke the debugger shell.
- The VMiX prompt will change to
- '- _______', press the<RETURN> key to view
- the available commands (or tokens) for
- the debugger shell level (Fig. 2).
-
-
-
-
-
-
-
-
-
-
- Part I, Commands Overview page 16
-
- C O M S O F T VMiX 286
-
-
-
-
- ----------------------------------------------------------
- | VMiX.286 1.4X Copyright (C) ComSoft 1987 |
- |----------------------------------------------------------|
- | A>_debug<RETURN>______ |
- | - _<RETURN>___________ |
- | |
- | ---------------------------- |
- | | VMiX KERNEL LEVEL DEBUGGER | |
- | | read init assign | |
- | | write examine deassign | |
- | | set quit | |
- | ---------------------------- |
- | |
- | - ____________________ |
- | |
- ----------------------------------------------------------
-
- (Fig. 2)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- See Chapter 3, 'The Debugger Shell',
- for a detailed description of each
- command.
-
-
-
- Part I, Commands Overview page 17
-
- C O M S O F T VMiX 286
-
-
- COMMAND SUMMARY
-
- All the available shell commands or
- tokens are summarized in Figure 3,
- below. VMiX has 2 shells levels that
- correspond to 3 layers of token nesting.
- Shell level 0 is the top or root layer
- of tokens. The debugger shell is the
- next shell level, it contains 2 layers
- of tokens or commands.
-
- The basic rule of token parsing by
- the VMiX command interpreter is that to
- reach a token at a higher layer you must
- invoke the token(s) at the lower layers
- of the shell level you are at.
-
- For example, to execute the token
- read from the root shell level, you
- should type debug read, but from the
- debugger shell level (you are already at
- layer 1) you need only type read.
-
- If a token has no action associated
- with itself, but instead is a path to
- several sub-tokens at the next higher
- layer, then typing just that token will
- display, on the screen, the choices
- available for the sub-tokens to complete
- the command.
-
- For example, if you type the token
- set from inside the debugger shell,
- the sub-tokens (next layer) belonging to
- 'set' will be displayed (ie., 'video',
- 'remote', 'baud', 'debug', ...). Then,
- if you type set video, since there are
- no deeper tokens, the switches belonging
- to 'set video' will be displayed.
-
-
-
-
- Part I, Commands Overview page 18
-
- C O M S O F T VMiX 286
-
- Finally, you type set video -m to set
- the video mode and VMiX will prompt you
- with a menu of available video mode
- settings. You select video mode '6' for
- 640 x 200 BW graphics.
-
- The paragraph above describes the
- learning curve for VMiX. Had you already
- been familiar with the debugger shell,
- you would have typed the single command
- line: set video -m6.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part I, Commands Overview page 19
-
- C O M S O F T VMiX 286
-
-
-
-
- |ROOT |DEBUG |
-
- |LEVEL..|LEVEL....................................|
- | 0 | 1 | 2 |
- ---------------------------------------------------
- |debug |
- | |read |
- | |write |
- | |set |
- | |baud |
- | -c " sets communications: chan|
- | baud, parity, word, stop"|
- | |dos |
- | -m " toggles DOS shell |
- | emulation mode ON/OFF" |
- | -n " sets DOS INT21 function |
- | maximum nesting level" |
- | -p " sets DOS current process |
- | PSP: nuPSP(seg)" |
- | |font |
- | -t " sets font type: (0 - 3)" |
- | |pool |
- | -a " adjusts transient |
- | program memory: |
- | MCB(seg), nusize(para)" |
- | -m " sets transient program |
- | partition size: |
- | (0 - 1024K)" |
- | -o " sets transient program |
- | memory owner: |
- | MCB(seg), nuPSP(seg)" |
- ---------------------------------------------------
-
- (Fig. 3)
-
-
-
-
-
-
-
- Part I, Commands Overview page 20
-
- C O M S O F T VMiX 286
-
-
-
-
- |ROOT |DEBUG |
-
- |LEVEL..|LEVEL....................................|
- | 0 | 1 | 2 |
- ---------------------------------------------------
- | |process |
- | -b " sets process shell buffer|
- | size: (0 - 127)" |
- | -e " toggles system evironment|
- | protection ON/OFF" |
- | -h " toggles process hardware |
- | priviledge ON/OFF" |
- | -p " sets process priority: |
- | (0 - 31)" |
- | |remote |
- | -c " sets remote channel" |
- | -l " sets polled terminal |
- | login channel" |
- | |system |
- | -m " toggles manager message |
- | displays ON/OFF" |
- | -s " toggles scheduler swapped|
- | processing ON/OFF" |
- | -t " toggles scheduler clock |
- | processing ON/OFF" |
- | -w " sets shutdown wait delay:|
- | seconds" |
- | |terminal |
- | -t " sets terminal type: |
- | (0 - 9)" |
- ---------------------------------------------------
-
- (Fig. 3 continued)
-
-
-
-
-
-
-
-
- Part I, Commands Overview page 21
-
- C O M S O F T VMiX 286
-
-
-
- |ROOT |DEBUG |
-
- |LEVEL..|LEVEL....................................|
- | 0 | 1 | 2 |
- ---------------------------------------------------
- | |video |
- | -c " sets video background/ |
- | foreground colors" |
- | -C " sets window color attrib"|
- | -m " sets video mode:(0 - 16)"|
- | -s " toggles status line |
- | display ON/OFF" |
- | -w " sets root window size: |
- | y0, x0, y1, x1" |
- | -W " auto partitions (1 - 4) |
- | task windows |
- | (Shift-Tab toggles kbd)" |
- | |init |
- | |comm |
- | -c " sets communications: chan|
- | baud, parity, word, stop"|
- | |examine |
- | |memory |
- | |mcb |
- | |kernel |
- | |assign |
- | |gdt |
- | |deassign |
- | |gdt |
- | |memory |
- | |quit |
- ---------------------------------------------------
-
- (Fig. 3 continued)
-
-
-
-
-
-
-
-
- Part I, Commands Overview page 22
-
- C O M S O F T VMiX 286
-
-
-
- |ROOT |DEBUG |
-
- |LEVEL..|LEVEL....................................|
- | 0 | 1 | 2 |
- ---------------------------------------------------
- |rshell |
- |remote |
- | -c " sets remote channel" |
- | -l " sets polled terminal login channel" |
- |swap |
- | |'process id' |
- |chprio |
- | |'process id and new priority level' |
- |exec |
- | -a " adjusts transient program memory: |
- | MCB(seg), nusize(para)" |
- | -m " sets transient program memory partition |
- | size: (0 - 1024K)" |
- | -o " sets transient program memory owner: |
- | MCB(seg), nuPSP(seg)" |
- | |path |
- | " utility displays/sets program |
- | file search path" |
- | |dpath[.exe] |
- | " utility displays/sets data file |
- | search path" |
- | -v " sets verbose mode" |
- | -q " sets quiet mode" |
- | -r " allows data read only" |
- | -w " allows data read/write" |
- | -h " help" |
- | |dstat[.exe] |
- | " utility displays all objects" |
- | -a " selects only assigned objects" |
- | -r " selects only free objects" |
- ---------------------------------------------------
-
- (Fig. 3 continued)
-
-
-
-
- Part I, Commands Overview page 23
-
- C O M S O F T VMiX 286
-
-
-
- |ROOT |DEBUG |
-
- |LEVEL..|LEVEL....................................|
- | 0 | 1 | 2 |
- ---------------------------------------------------
- | |monitor[.exe] |
- | " utility monitors process/system" |
- | -p " monitors VMiX memory pool" |
- | -r " monitors process registers: |
- | process id" |
- | |'process id' |
- | |ps[.exe] |
- | " utility displays all processes" |
- | |'MSDOS command...' |
- |dosjob |
- | [-W] " gives process the full screen" |
- | |'MSDOS command or /VMiX command...' |
- |spawn |
- | -c " sets I/O channel for STDIO and gets |
- | command line script" |
- |kill |
- | |'process id' |
- |quit |
- ---------------------------------------------------
-
- (Fig. 3 continued)
-
-
-
-
-
- [ ] indicates optional
-
-
-
-
-
-
-
-
-
-
- Part I, Commands Overview page 24
-
- C O M S O F T VMiX 286
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part I, Commands Overview page 25
-
-
-
-
-
-
-
-
-
-
- PART TWO
-
-
- VMiX 286
-
-
-
-
-
-
-
-
- CHAPTER 1
-
-
- USING VMIX 286
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, Using VMiX 286 page 1-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, Using VMiX 286 page 1-2
-
- C O M S O F T VMiX 286
-
-
-
-
- VMiX START-UP
-
-
- VMiX presently has no installation
- options, but can be pre-initialized to
- your desired state by including commands
- with its invocation. The section titled
- 'Using the Command Line' describes how
- to include VMiX commands in a start-up
- batch file, for completely automatic
- execution.
-
- VMiX is easy to install. Simply
- copy the executable files in the VMiX
- archive to your directory and execute
- the boot module VM_BOOT.EXE.
-
- If you can execute your appli-
- cations from MSDOS, they are already
- installed for VMiX. VMiX does not use
- PIF or other types of application
- configuration files. Applications that
- write directly to the screen will
- usually coexist with other applications
- at the console, but will not display
- properly at a COMM port terminal or PC.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, VMiX Start-Up page 1-3
-
- C O M S O F T VMiX 286
-
-
-
-
- INTERFACE TO MSDOS
-
-
- exec Starting
- a Program
-
-
- VMiX provides access to the MSDOS
- command shell with the root command
- exec. The command syntax is:
-
- exec [ MSDOS command ]
-
- Two or more VMiX processes can use
- the exec command to access MSDOS,
- provided that:
-
- a) All transient program memory has not
- been previously allocated (.COM programs
- will do this, as well as .EXE program
- which have not been modified with exemod
- an MSDOS utility program). The -m switch
- can be used with exec to control the
- amount of memory that .COM or .EXE
- programs can grab.
-
- b) MSDOS is not busy with a nested
- function call beyond the initial exec
- call from VMiX. If another VMiX process
- has also invoked MSDOS services that
- have not completed, then VMiX will wait
- for MSDOS to say that it can handle
- another request. The user waiting for
- MSDOS access can determine the process
- currently using (and not releasing)
- MSDOS by examining the VMiX parameter
- 'doslevel' from the VMiX debugger with
- the utility monitor.exe.
-
-
-
- Part II, VMiX Start-Up page 1-4
-
- C O M S O F T VMiX 286
-
-
-
-
-
- exec Controlling
- Memory Use
-
-
- To control memory use within the
- 640K that VMiX utilizes, exec provides
- the -m option. When exec -m???? has been
- specified, all programs will be limited
- to partitions equal or smaller than the
- size (in kilobytes), specified with the
- command. The command syntax is:
-
- exec -m [ max. K bytes ]
-
- The recommended start-up partition
- size is 256 kilobytes: exec -m256
-
- The use of exec as a prefix to DOS
- commands becomes optional if the user
- has enabled DOS shell emulation from
- within the VMiX debugger. MSDOS shell
- emulation is toggled by the command:
-
- debug set dos -m
-
- The exec command is described further in
- Chapter 2,'The Root Shell'.
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, VMiX Start-Up page 1-5
-
- C O M S O F T VMiX 286
-
-
-
-
-
- dosjob Starting
- a Program
- in a Window
-
-
- VMiX provides a second command for
- windowed access to the MSDOS command
- shell. The command syntax is:
-
- dosjob [-W][ MSDOS command ]
-
- Up to four VMiX processes can use
- the dosjob command to access MSDOS.
-
- To use 'dosjob' to run a program
- that requires access to the full screen,
- use the '-W' option:
-
- (ie., 'dosjob -W [drive:][PATH]filename')
-
- dosjob can also be used to execute
- VMiX shell command(s) in a separate
- console window, VMiX shell commands
- given to a 'dosjob' must be preceded
- with a '/' (ie., 'dosjob /debug' or
- 'dosjob /rshell'). The '/' must not be
- used, if the command is for MSDOS, for
- example 'do gwbasic' or 'do dir'.
-
- NOTICE, that after a 'dosjob' command
- the keyboard moves to the new process.
-
-
-
-
-
-
-
-
-
- Part II, VMiX Start-Up page 1-6
-
- C O M S O F T VMiX 286
-
-
-
-
- VMiX CONFIGURATION
-
-
-
- CONFIGURATION:
-
- SYS_MAXPROC 8 total number of processes
- SYS_MAXOBJ 27 total number of objects
- SYS_MAXTYP 10 total number of object types
- SYS_NTTY 5 total number of terminals
- SYS_NPRN 2 total number of printers
- SYS_NVOM 10 total number of managers
- SYS_MAXTDB 10 total num. of terminal types
- SYS_MAXFUN 10 total number of driver funcs
- SYS_MAXCHAN 16 total number of channels
- SYS_NPSTATE 18 total num. of queued pstates
- SYS_NOSTATE 2 total num. of queued ostates
- SYS_INITPRI 7 new process initial priority
- SYS_EXEPRI 2 lowest priority adjust
- SYS_MAXPRI 31 system highest priority
- SYS_TABLEN 10 max. entries in shell table
- SYS_MAXTOK 10 total number of token tables
- SYS_MAXARG 10 total number of arg tables
- SYS_SHLBUF 128 shell command buffer size
- SYS_INITSTK 2048 new proc default stack size
- SYS_MINSTK 512 process minimum stack size
- SYS_NULLSTK 512 NULL process stack size
- SYS_PAGE 512 memory page size bytes
- SYS_EPAGE 65536 extended page size bytes
- SYS_PRVSTKS 4 num. of priviledge stacks
- SYS_MAXGDT 32 total num of gdt descriptors
- SYS_MAXLDT 32 total num of ldt descriptors
- SYS_PNMLEN 8 process name maximum length
- SYS_SLICE 0 clock tick scheduler step
- SYS_QUANTUM 0 preempt base count
- NULLPID 0 NULL process id
- NULLUID 0 NULL object id
-
-
-
-
- Part II, VMiX Start-Up page 1-7
-
- C O M S O F T VMiX 286
-
-
-
-
- USING THE COMMAND LINE
-
-
- VM_BOOT [-r][ [ command ] /... ]
-
- VMiX presently has no initialization
- options, but will accept a command line
- of up to 127 characters long. Multiple
- commands can be entered, separated by a
- valid VMiX delimiter '/' ',' tab or
- space.
-
- Since all root and debugger shell
- commands can be executed from the
- command line, the user has a wide range
- of control over the state VMiX begins in.
- You will learn the shell commands in
- Chapters 2 and 3. For now, the examples
- below illustrate some useful ways to
- invoke VMiX, other than the standard
- VM_BOOT, typed with no commands.
-
-
-
- EXAMPLES:
-
- VM_BOOT set video -m6/set system -m/
- set system -t/set video -s<RETURN>
-
- (This could also be typed as shown below,
- since the shell only needs a minimum of
- two characters to recognize a token.)
-
- VM_BOOT se vi -m6/se sys -m/
- se sys -t/se vi -s<RETURN>
-
- The above command lines, invoke VMiX
- from MSDOS A> prompt. The video mode of
- the root console is set to 6 (640 x 200
-
-
- Part II, Using the Command Line page 1-8
-
- C O M S O F T VMiX 286
-
-
- BW graphics mode); the debugger object
- manager messages are toggled ON; logins
- and multitasking are disabled, and the
- root console's status line is toggled ON.
-
-
- VM_BOOT set remote -l2/set term -t4
- set baud -c2 300,n,8,1<RETURN>
-
- The above command line, invokes VMiX
- from MSDOS A> prompt. Sets VMiX to poll
- COM2: for logins and selects the
- terminal type to be (4)VT-100. The VMiX
- default terminal type is 9, backspacing
- teletype. The communication parameters
- for VMiX channel 2, which coincides with
- COM2:, are reset to 300 baud with no
- parity checking.
-
- NOTE: Normally, VMiX polls only COM1:
- for logins. The default baud rate is
- 9600 with no parity. Once started,
- processes can run on any serial port
- simultaneously. However, presently only
- one port at a time is monitored,
- awaiting for some user to press an
- attention getting <RETURN>. If COM1: has
- been assigned to a printer or other
- device, use the above command line to
- set your second user terminal to use
- COM2:!!!
-
-
- COMMON TERMINALS:
-
- -t0 = TELEVIDEO 910/920
- -t1 = ADM3A
- -t2 = VT-52
- -t3 = ZENITH H19
- -t4 = VT-100
- -t9 = tty
-
-
- Part II, Using the Command Line page 1-9
-
- C O M S O F T VMiX 286
-
-
-
- VM_BOOT set vi -m3/exec b:basic<RETURN>
-
- The above command line, invokes VMiX
- from MSDOS A> prompt. The video mode of
- the root console is set to 3 (80 x 25
- alphanumeric with color, required by
- BASIC for start-up); invokes the foreign
- dos exec command, (MSDOS, in this case)
- to run the BASIC interpreter in drive b:.
-
- NOTE: Since the command line was typed
- from MSDOS A> prompt, A: is the default
- drive. VMiX exec command expects an
- MSDOS command.com file present in the
- boot drive!!! BASIC expects the initial
- screen video mode to be 3, alphanumeric.
- The same is true of Microsoft WINDOWS.
-
-
- VM_BOOT set font -t1/set proc -b64/
- set video -m6<RETURN>
-
- The above command line, invokes VMiX
- from MSDOS A> prompt. Sets VMiX to use
- compressed characters (font type 1),
- requests that the shell command line be
- up to 64 characters long, and resets the
- video to 640 x 200 CGA graphics mode.
-
-
- VM_BOOT set vi -m3/assign srcsink 0/
- spawn -c5 set vi -W/exec basic<RETURN>
-
- The above command line, invokes VMiX
- from MSDOS A> prompt. The video mode of
- the root console is set to 3, a new
- channel to the console is obtained; and
- a task is spawned to the new channel,
- the screen is windowed, and BASIC is
- executed. The same results can be
-
-
- Part II, Using the Command Line page 1-10
-
- C O M S O F T VMiX 286
-
-
-
- obtained with the command line shown
- below:
-
- VM_BOOT dosjob basic<RETURN>
-
- This illustrates the power of the dosjob
- command or 'do', for short. Note VMiX's
- default video mode is 3, alphanumeric
- text.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II,Using the Command Line page 1-11
-
- C O M S O F T VMiX 286
-
-
-
-
- SYSTEM CONSOLE DISPLAY
-
-
- The VMiX operator console, is the
- host PC video display and keyboard.
- This user has root priviledges.
-
- If the system has a color graphics
- adapter, the default console mode is
- 80 x 25 alphanumeric text. If there is
- a monochrome adapter (MDA), the default
- and only mode allowed is monochrome. For
- EGA of VGA video adapters the default
- starting mode is the same as for CGA,
- however additional graphics modes are
- supported with these adapters (use:
- debug set video -m to select other
- modes).
-
- Multiple console processes are
- supported by the debugger set video -W
- command, which automatically partitions
- screen windows for the background tasks;
- and by the hot key, Shift-Tab, which
- moves the keyboard to any of the windows.
-
- The set video -W command is fully
- automatic. It should be used after a
- new channel has been assigned to the
- console, COMM = 0. The upper case '-W'
- command, as opposed to the manual window
- select '-w', uses the tally of COM0
- channels to chose the number and size of
- the windows needed. This command can be
- used within a spawn command or previous
- to it. All tasks running in the windows
- will execute concurrently in the
- background, regardless of which one owns
- the console keyboard.
-
-
- Part II,Using the Command Line page 1-12
-
- C O M S O F T VMiX 286
-
-
-
- The root shell provides two commands
- that request services (from MSDOS). The
- first, 'exec', has as its argument any
- valid MSDOS command, which is then
- executed by the current process. The
- second is a multitasking version of
- 'exec'. The command 'dosjob' takes the
- same arguments as 'exec', but the MSDOS
- command is executed in the background by
- a new process, in a separate window. The
- hot key, <Shift><Tab>, can be used to
- switch the keyboard to the right window.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II,Using the Command Line page 1-13
-
- C O M S O F T VMiX 286
-
-
-
-
- SHELL COMMANDS
-
-
- When the VMiX start-up screen
- displays the initial command prompt
- 'A> ______', press the <RETURN> key to see
- the available commands (or tokens) for
- the root shell level (Fig. 1).
-
- The full name of the token need not
- be entered in a command, the shell will
- recognize the command by the first two
- characters, if only two were entered
- (otherwise, it tries to match as many
- characters as were entered).
-
- VMiX has presently two shell
- levels, the root shell and the debugger
- shell, each with its own group of legal
- commands (tokens). The shells are
- driven by token tables. Any token can,
- in-turn, point to its own secondary
- token table. For example set is a valid
- debugger shell token, that owns a table
- of its own. The 'set' token table
- contains the sub-tokens (video, remote,
- baud, system, dos, font, terminal,
- process and pool). Therefore, you can
- enter a command like set video<RETURN> or
- set baud <RETURN>.
-
- Now, 'set video' does not say much
- by itself, except that you wish to set
- the video display to some state. Token
- arguments or switches complete the
- command. The token video, abbreviated
- vi, has a list of arguments that it will
- accept. All arguments are preceded by
- the switch character '-', (ie., -s, -m,
- -m6).
-
- Part II, Using VMiX 286 page 1-14
-
- C O M S O F T VMiX 286
-
-
-
- The shell will help you, if you
- forget what are the valid secondary
- tokens and arguments. Just type as much
- as you know, and VMiX will display the
- available choices. For example, from the
- debugger shell, type set and press
- <RETURN>. A list of secondary tokens and
- arguments will follow.
-
- If an argument can take values, you
- have the option of entering the value(s)
- after the argument switch, or the VMiX
- shell will, in most cases, prompt for
- the values omitted.
-
- To enter a command belonging to an
- alternate shell, while still inside the
- current shell level, simply precede the
- command with the alternate shell name.
- For example, from the root shell (the
- prompt is 'A> __________') to enter a
- debugger command precede the command
- with debug. (ie., deb set vi -m3).
-
- Note: You do not return to the starting
- shell, but to the one invoked with the
- command. VMiX Version 1.4X will allow,
- in most cases, for a debugger command to
- be typed from the root shell without the
- debug prefix.
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, Using VMiX 286 page 1-15
-
- C O M S O F T VMiX 286
-
-
-
-
- LOGIN TERMINALS
-
-
- VMiX supports users on COM1, COM2,
- COM3, and COM4 serial ports on an IBM PC
- or compatible. The default baud rate
- is 9600. Presently, VMiX does not synch
- on the baud rate. The baud rate for
- COMM channels can be changed from the
- debugger shell or the MSDOS command line
- by using:
-
- set baud -c????,baud,parity,word,stop
-
- It is strictly by convention that
- COM1, COM2, COM3, and COM4 are assigned
- VMiX object channels 1, 2, 3, and 4,
- respectively. These ports can be
- assigned other channels from the
- debugger, simultaneously or exclusively.
-
- Initially, only one serial port is
- scanned for logins. The default port is
- COM1:, but this can be changed by the
- command set remote -l2<RETURN>, entered
- from the debugger shell or from the
- MSDOS command line. Technically, VMiX
- will support more than COM1: to COM4:,
- but the user needs to configure channels
- to other ports from the debugger, with
- assign and set baud.
-
- From the login terminal, press<RETURN>
- to receive the VMiX login: prompt.
- Passwords are disabled in Release 1.3X,
- so any 8 character user name that you
- enter is acceptable for the login.
- Terminal emulation is by default, no
- emulation. To set the terminal type use
- debug set terminal -t<RETURN>.
-
- Part II, Using VMiX 286 page 1-16
-
- C O M S O F T VMiX 286
-
-
-
-
- TERMINAL TYPES
-
-
- Normally, a terminal or a PC will
- be connected to the host's COM1: or
- COM2: ports, to serve as a user
- workstation. In both cases, you need to
- tell VMiX what terminal type to expect.
- The VMiX command for this is set term
- -t????, where:
-
- -t0 = TELEVIDEO 910/920
- -t1 = ADM3A
- -t2 = VT-52
- -t3 = ZENITH H19
- -t4 = VT-100
- -t9 = tty
-
-
- If a PC is used as a terminal, it
- must be executing a communications
- program with terminal emulation.
- Usually, VT-100 terminal emulation will
- be an adequate choice.
-
- VMiX supports windows with VT-100
- emulation, however, non-conflicting
- scrolling only works with windows whose
- width is equal to the display (80 cols.)
- The debugger auto windowing command
- 'set video -W' should only be used at a
- VT-100 terminal, when no more than 2
- STDIO channels are assigned to it. The
- same applies to the root shell command
- 'dosjob', when used from a terminal.
-
-
-
-
-
-
- Part II, Using VMiX 286 page 1-17
-
- C O M S O F T VMiX 286
-
-
-
-
- IBM FUNCTION KEYS
-
-
- Pressing <Ctrl><F> from a terminal,
- will toggle-in IBM PC function key
- emulation (emulated by the digit keys)
- and also provide the [Ins], [Del], and
- [End] keys, invoked by pressing ^I,
- ^D, or ^E. The <Alt> key will become
- the terminal's <Shift> key.
-
- The first time <Ctrl><F> is pressed
- the terminal will beep and the function
- key substitutes will become active; the
- second time ^F is pressed, there will
- be two beeps and the terminal keys will
- return to normal operation.
-
- In function key emulation mode, the
- arrow keys will produce the same codes
- that an IBM PC keyboard produces, and
- the terminal's [Home] key will behave as
- in a PC keyboard. The IBM PC's <Ctrl>
- [NumLock] function is provided by press-
- ing <Ctrl><S>, instead.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, Using VMiX 286 page 1-18
-
- C O M S O F T VMiX 286
-
-
-
-
- ^F (1 beep)
-
- for press
-
- IBM PC KEY TERMINAL KEY
-
- [F1] 1
- [F2] 2
- [F3] 3
- [F4] 4
- [F5] 5
- [F6] 6
- [F7] 7
- [F8] 8
- [F9] 9
- [F10] 10
-
- <Ctrl>[Break] ^C
- <Ctrl>[NumLock] ^S
- [Ins] ^I
- [Del] ^D
- [End] ^E
- [Home] [Home]
- <Alt> <Shift>
-
-
-
- NOTE: The <Ctrl> key symbol has been
- abbreviated as ^.
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, Using VMiX 286 page 1-19
-
- C O M S O F T VMiX 286
-
-
-
-
- COMMUNICATIONS
-
-
- VMiX supports users on COM1, COM2,
- COM3, and COM4 serial ports on an IBM PC
- or compatible. The term 'users' implies
- the ability to logon to those ports. The
- use of COM ports by VMiX for user logons
- can conflict with other users attempting
- to execute a communications program that
- also wants to use the same COM port for
- serial communications.
-
- The conflict arises when VMiX polls
- the port to check for initial logon
- activity. VMiX is designed to poll only
- one assigned COM port at any given time.
- The assigned port is user configurable
- by using the command set remote -l ????.
-
- The default VMiX assigned polled
- port is COM1. This should be changed to
- a non-conflicting port, before executing
- a program that will use COM1 for any
- activity. The command to set an alter-
- nate polled port is: .
-
-
- set remote -l1 (for COM1 logins)
- set remote -l2 (for COM2 logins)
- set remote -l3 (for COM3 logins)
- set remote -l4 (for COM4 logins)
-
-
-
-
-
-
-
-
-
- Part II, Using VMiX 286 page 1-20
-
- C O M S O F T VMiX 286
-
-
-
-
- EXTENDED MEMORY
-
-
- VMiX 286 executes all tasks in low
- memory (an area of physical memory also
- known as conventional memory). VMiX can
- use 80286 extended memory to swap tasks
- out of conventional memory to make room
- in low memory for other tasks. The root
- shell command swap controls the migra-
- tion of tasks between conventional and
- extended memories.
-
- If a process is in low memory, it
- will be swapped to extended 80286 memory.
- If the process is already swapped, then
- it will be moved back to low memory and
- resume execution.
-
- Swapped processes will not normally
- execute, and will stay suspended until
- they are swapped again to low memory.
- To allow swapped tasks to also execute,
- (less frequently than in-memory tasks)
- use the debugger command set system -s.
-
- VMiX swapping can conflict with
- other processes using extended memory.
- However, you can reserve extended memory
- for other uses, like caches, TSR's, etc.
- so that VMiX swapping will not interfere.
- Use the 'assign memory' command, before
- any swapping, to assign extended memory
- above 1 MegByte (conventional memory).
-
- The command syntax is:
-
- assign MEMORY [ size in bytes ]
-
-
-
- Part II, Using VMiX 286 page 1-21
-
- C O M S O F T VMiX 286
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, Using VMiX 286 page 1-22
-
-
-
-
-
-
-
-
-
-
- PART TWO
-
-
- VMiX 286
-
-
-
-
-
-
-
-
- CHAPTER 2
-
-
- THE ROOT SHELL
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Root Shell page 2-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Root Shell page 2-2
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: debug
-
- OUTLINE:
-
- Purpose: To invoke the VMiX debugger shell.
-
-
- DESCRIPTION::
-
- debug is a root shell token. This
- command has 8 sub-tokens:
-
- read, write, set, init, examine,
- assign, deassign, and quit.
-
- 'debug', by itself, invokes the VMiX
- debugger shell. The debugger shell
- prompt is '- __________'. Once in the
- debugger shell, all the debug sub-tokens
- become first level tokens and you do not
- have to preceed them with the token
- 'debug' (refer to Chapter 3 for use).
-
- VMiX accepts numeric input in two
- forms, decimal or hexadecimal. To enter
- hexadecimal numbers preceede the number
- with the characters '0x'.
-
- To return to the root shell, from
- the debugger use the token 'quit'.
-
- NOTE: All eight debugger sub-tokens can
- be used from the root shell level,
- whether you precede them with the token
- 'debug', or not. If used with the
- prefix 'debug', you will move to the
- debugger shell when the current command
- completes. Without the prefix, you will
- remain at the root shell.
-
-
- Part II, The Root Shell page 2-3
-
- C O M S O F T VMiX 286
-
-
-
- NAME: rshell
-
- OUTLINE:
-
- Purpose: To start a new shell.
-
-
- DESCRIPTION:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Root Shell page 2-4
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: remote
-
- OUTLINE:
-
- -c " selects remote channel"
-
- Purpose: To control your PC remotely
- via a modem or terminal connection.
-
-
- DESCRIPTION:
-
- The root shell command 'remote'
- terminates VMiX, but first sets STDIO to
- use the channel specified after the -c
- switch. Therefore, MSDOS resumes at the
- device associated with the channel.
-
- VMiX Release 1.4X, does not fully
- implement I/O redirection, particularly
- to files. So this token is only useful
- to terminate to MSDOS level, when the
- channel requested is assigned to a COMM
- object (serial port) connected to a
- terminal or modem (NOTE: in VMiX terms,
- a COMM object is called a 'SRCSINK', a
- device that is a source as well as a
- destination for characters).
-
- VMiX provides two REMOTE commands.
- The single word command remote is only
- available from the root shell. The
- debugger shell has a different command,
- set remote (refer to Chapter 3). The
- two commands behave differently.
-
-
-
-
-
-
- Part II, The Root Shell page 2-5
-
- C O M S O F T VMiX 286
-
-
-
- From the root shell typing,
-
- remote -c1 (for COM1 remote)
- remote -c2 (for COM2 remote)
- remote -c3 (for COM3 remote)
- remote -c4 (for COM4 remote)
-
-
- Will:
- a) shutdown VMiX and logoff Root,
- b) return to DOS,
- c) set DOS's STDIO to COM1, COM2, COM3,
- or COM4 when DOS takes over.
-
- This will allow you to run your PC from
- a terminal or via a modem. Note, you
- should select a terminal type (using set
- terminal) appropiate for the equipment
- connected to your computer's COMM ports.
- A popular terminal type supported by
- VMiX is VT-100 emulation, since many
- PC communication programs provide this
- type of emulation.
-
- The commands required to do this are:
-
- debug (go to debugger)
- set terminal -t (a valid terminal
- type number can be
- optionally entered
- preceded by -t)
-
- In the example above, VMiX will display
- a menu of terminals available. In the
- example below, VMiX will set the
- terminal type to 4 (VT-100).
-
- set terminal -t4 (choose VT-100)
-
-
-
-
- Part II, The Root Shell page 2-6
-
- C O M S O F T VMiX 286
-
-
-
-
- All this can be put in a .BAT file, to
- be used when running VMiX for this
- purpose. If the terminal type is to be
- a VT-100 and the serial port in use will
- be COM1, then the single line in a .BAT
- file would read:
-
- vm_boot set terminal -t2 / remote -c1
-
-
- While in REMOTE mode, FUNCTION KEY
- emulation is toggled by pressing the
- <Ctrl> and <F> keys from the terminal's
- keyboard. Note that the digit (numbers)
- keys on the terminal's keyboard will now
- work as [F0] through [F9] keys. The
- [Ins], [Del], and [End] keys can now be
- invoked from the terminal by pressing
- ^I, ^D, and ^E respectively. The
- terminal's arrow keys and [Home] key
- will simulate these keys on the IBM PC
- keyboard and the terminal's <Shift> key
- will simulate the IBM PC's <Alt> key.
-
- Press ^F a second time to return to
- numeric keys.
-
- Returning control to the CONSOLE is
- accomplished by pressing <Ctrl> <Z> from
- the terminal, while in the FUNCTION KEY
- mode.
-
-
-
-
-
-
-
-
-
-
- Part II, The Root Shell page 2-7
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: swap
-
- OUTLINE:
-
- Purpose: To swap a task.
-
-
- DESCRIPTION:
-
- The command syntax is:
-
- swap [ process id ]
-
-
- If a process is in low memory, it
- will be swapped to extended 80286 memory.
- If the process is already swapped, then
- it will be moved back to low memory and
- resume execution.
-
- Swapped processes will not normally
- execute, and will stay suspended until
- they are swapped again to low memory.
- To allow swapped tasks to also execute,
- (less frequently than in-memory tasks)
- use the debugger command set system -s.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Root Shell page 2-8
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: chprio
-
- OUTLINE:
-
- Purpose: To change the executing
- priority of a VMiX process.
-
-
- DESCRIPTION:
-
- All VMiX processes start with the
- default priority of 7. Priorities adjust
- constantly in VMiX, within the range 2
- through the assigned base maximum for
- the process. 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 used.
- Task switching, also adjusts the current
- priority. A process with a base priority
- of 14 will execute twice as fast as
- another at priority 7, all other things
- being equal. A process with priority 1
- will not execute at all. It will sleep
- until you 'up' the priority above 1.
-
- VMiX priorities range from a high
- of 31 to a low of 0. The scheduler
- always chooses the process with the
- highest priority. The scheduler round
- robin's processes with the same priority.
-
- At the expiration of the quantum
- for a process, when the current process
- is preempted and the next READY process
- is activated, the previous process'
-
-
-
- Part II, The Root Shell page 2-9
-
- C O M S O F T VMiX 286
-
-
-
-
- priority is reduced. On the other hand,
- the current priority of any process is
- increased when I/O for that process is
- received. The current priority of any
- process never increases above its base
- priority, nor drops below SYS_EXEPRI.
- The configuration value for SYS_EXEPRI
- is 2.
-
- If the priority of a process is
- reduced below SYS_EXEPRI, it remains in
- the READY to execute state until all
- processes with normal priorities have
- terminated or become non-READY.
-
- The token 'chprio' is used to
- change the base and current priority of
- any process to the new value requested.
-
- The command syntax is:
-
- chprio [ pid [ / priority ] ]
-
- where, pid is the process id of the
- target process, and priority is a
- priority value between 0 - 31. If only
- chprio is entered, then the shell will
- prompt for the two arguments. The
- default pid, if you only press <RETURN>,
- is the current process id. The default
- priority is the base priority of the
- target process.
-
-
-
-
-
-
-
-
-
- Part II, The Root Shell page 2-10
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: exec
-
- OUTLINE:
-
- -a " adjusts transient program memory
- size: MCB(seg), nusize(para)"
- -m " sets transient program memory
- partition size: (0 - 1024K)"
- -o " sets transient program memory
- owner: MCB(seg), nuPSP(seg)"
-
- Purpose: To execute a valid MSDOS file
- or command.
-
-
- DESCRIPTION:
-
- exec is a limited utility interface
- to MSDOS. The 'exec' token can be used
- (with no switches) to execute any MSDOS
- command string from within a VMiX root
- shell. The main purpose of exec is to
- execute an MSDOS file. It can be
- invoked by itself or in conjunction with
- the spawn token.
-
- The command syntax is:
-
- exec [ MSDOS command ]
-
- The utility of exec for invoking
- executable images from within a VMiX
- process is limited because exec uses the
- MSDOS command.com loader. The MSDOS
- loader makes assumptions about memory
- allocation, which do not conform to a
- multiuser environment like VMiX.
-
-
-
-
- Part II, The Root Shell page 2-11
-
- C O M S O F T VMiX 286
-
-
-
-
- The use of exec as a prefix to DOS
- commands becomes optional if the user
- has enabled DOS shell emulation from
- within the VMiX debugger. MSDOS shell
- emulation is toggled by the command:
-
- debug set dos -m
-
- Two or more VMiX processes can use
- the exec command to access MSDOS
- provided that:
-
- a) All transient program memory has not
- been previously allocated (.COM programs
- will do this, as well as .EXE program
- which have not been modified with exemod,
- an MSDOS utility program). The -m switch
- can be used with exec to control the
- amount of memory that .COM or .EXE
- programs can grab.
-
- The command syntax is:
-
- exec -m [ max. K bytes ]
-
- where, the maximum number of K bytes
- specified limits the amount of memory
- that a program can allocate as its own.
- For example, exec -m128<RETURN>, will
- limit programs to a maximum of 128K
- bytes.
-
-
-
-
-
-
-
-
-
-
- Part II, The Root Shell page 2-12
-
- C O M S O F T VMiX 286
-
-
-
-
- b) MSDOS is not busy with a nested
- function call beyond the initial exec
- call from VMiX. If another VMiX process
- has also invoked MSDOS services that
- have not completed, then VMiX will wait
- for MSDOS to say that it can handle
- another request. The user waiting for
- MSDOS access can determine the process
- currently using (and not releasing)
- MSDOS by examining the VMiX parameter
- 'doslevel' from the VMiX debugger with
- the command examine process.
-
- The -a switch is provided with the
- 'exec' command, to allow for the release
- of memory previously allocated by MSDOS.
- This can be a dangerous option. To help
- in determining the arguments for this
- switch, use the debugger shell's
- examine token. The debugger shell will
- list the MSDOS memory control blocks
- with the command examine mcb. This
- command will list the segment address
- of each MCB and the size of each memory
- block, in 16 byte paragraphs.
-
- The command syntax is:
-
- exec -a [ MCB address [ / nusize ] ]
-
- where, the segment address of the MCB
- has been obtained using the debugger
- shell, and nusize is the new requested
- size in paragraphs for the block. The
- parameters can be entered in
- hexadecimal, using the format 0x????
- (example, exec -a 0x26F0 0xAF8).
-
-
-
-
- Part II, The Root Shell page 2-13
-
- C O M S O F T VMiX 286
-
-
-
-
- The -o switch is provided with the
- 'exec' command, to allow for the change
- of ownership of memory previously
- allocated by MSDOS. Some programs (like
- to allocate all available memory. This
- is indicated by an 'end' MCB block that
- has been assigned the PSP segment of the
- program, as its owner.
-
- Normally, the 'end' MCB holds
- available memory and has a NULL PSP (0)
- for its owner (use exam mcb from the
- debugger shell to examine the memory
- chain). You should next use the utility
- monitor to determine that the program
- has not allocated stack space in the
- area covered by the 'end' MCB. After
- this is verified, it will be safe to use
- the -o switch and recover the 'end'
- memory. To free the memory, set the PSP
- owner to 0000. Sometimes, a better
- solution is to deallocate some of the
- memory with the -a switch, since the
- process owner could be using some of the
- 'end' MCB memory.
-
- The command syntax is:
-
- exec -o [ MCB address [ / nuPSP ] ]
-
- where, the segment address of the MCB
- has been obtained using the debugger,
- and nuPSP is the new PSP that will own
- the memory block. The parameters can be
- entered in hexadecimal, using the format
- 0x???? (example, exec -o 0x65F0 0).
-
-
-
-
-
- Part II, The Root Shell page 2-14
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: dosjob
-
- OUTLINE:
-
- -W " gives process the full screen"
-
- Purpose: To execute a valid MSDOS
- command, and/or a series of VMiX shell
- commands, within an automatic window.
-
-
- DESCRIPTION:
-
- dosjob spawns a child process that
- executes a string of commands, input
- immediately following, and on the same
- line as the 'dosjob' token.
-
- dosjob, like 'exec', provides an
- interface to MSDOS. The 'dosjob' token
- is used with no switches to execute any
- MSDOS command string from within a new
- VMiX multitasking process. The main
- purpose of dosjob is to execute an MSDOS
- file or command. It can also be invoked
- in conjunction with VMiX shell commands.
- For example, a dosjob, can include
- another 'dosjob' command in its input
- string.
-
- The difference between 'dosjob' and
- 'exec', is twofold. dosjob will start a
- new process to execute the job, while
- exec will use the current process.
- Second, dosjob, (without the -W option)
- will open a new window for the process,
- while exec will use the bounds of the
- current shell process.
-
-
-
- Part II, The Root Shell page 2-15
-
- C O M S O F T VMiX 286
-
-
-
-
- The command syntax is:
-
- dosjob [-W] [ MSDOS command ]
- [ / [ command ] /... ]
-
-
- NOTE: 'dosjob' essentially performs a
- new SRCSINK channel 'assign', followed
- by a 'set video -W' and a 'spawn' of a
- new child process, to execute the input
- command string.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Root Shell page 2-16
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: spawn
-
- OUTLINE:
-
- -c " sets spawn I/O channel and shell
- script"
-
- Purpose: To dispatch a background task
- to be performed independently and con-
- currently with everything else.
-
-
- DESCRIPTION:
-
- spawn creates a new child process,
- owned by the invoking shell. The
- channel specified immediately after the
- -c switch becomes the STDIO channel for
- the new process. After the channel
- number, a script of VMiX shell commands
- can be entered. Multiple commands are
- input, separated by a valid VMiX
- delimiter ('/' ',' tab or space).
-
- The command syntax is:
-
- spawn -c???? [ [ command ] /... ]
-
- A way to implement EMAIL in your
- system, is to have a user spawn an exec
- job to somebody elses channel, where the
- 'exec' merely types a newly created text
- message file:
-
- spawn -c1 / exec type b:\news\myfile.txt
-
-
-
-
-
-
- Part II, The Root Shell page 2-17
-
- C O M S O F T VMiX 286
-
-
-
- A more elegant way is to assign a
- new channel to the device COM1 or COM2,
- so that we can create a window without
- disturbing the user too much. If a
- window is created on the user's own
- channel, then we have modified his envi-
- ronment from our side; that is bad.
-
- By using exec dstat -a, we can
- determine the port # to talk with our
- target user. In VMiX, ports refers to
- physical devices, and channels are
- logical circuits to those devices.
- Assume we determined that he is using
- COM1. From the debugger shell, we first
- enable messages, to see what channel
- number VMiX will allocate for our
- 'assign':
-
- set system -m (enable manager msgs)
-
- then we grab a channel,
-
- assign srcsink 1 (the 1 requests
- COM1, if you
- prefer to be
- prompted, just
- type 'assign')
-
- lets say that we were informed that
- channel 3 was assigned, then:
-
- quit (to exit the debugger)
-
- now we 'spawn' to channel 3,
-
- spawn -c3 / set video -w1 40 10 79 /
- exec type b:\news\myfile.txt
-
-
-
-
- Part II, The Root Shell page 2-18
-
- C O M S O F T VMiX 286
-
-
-
-
- This created a 10 x 40 window (via
- channel 3) at the top right of his
- display. The command set video -W can
- also be used, in place of our manual
- 'set video -w....' in the example above.
- A better EMAIL system could be written
- using the VMiX System Services listed in
- sysgate.asm, just like ps.c and dstat.c
- were written.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Root Shell page 2-19
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: kill
-
- OUTLINE:
-
- Purpose: To terminate the execution of
- an image from a process other than the
- owner. If the target process shell is
- not executing an image, then the process
- is terminated.
-
-
- DESCRIPTION:
-
- kill allows a hard terminate of a
- process or image to be commanded from
- another process. This command has two
- levels of action. If the target process
- shell is executing an image started by a
- previous exec call, then that image is
- terminated via an MSDOS INT 20h system
- call. If no 'exec' image is being
- executed then 'kill' will terminate the
- target process.
-
- The command syntax is:
-
- kill [ process id ]
-
- The utility ps.exe, executed with exec,
- will list all active (pid's) process
- id's.
-
- SECURITY: The kill command will not let
- a user terminate another user's process.
- Only root or the su superuser has the
- access priviledge to terminate all/any.
- A regular user can only terminate his
- own spawned processes.
-
-
-
- Part II, The Root Shell page 2-20
-
- C O M S O F T VMiX 286
-
-
-
- NOTE: To be informed, on the screen, of
- the pid assigned by a 'spawn', use the
- debugger shell command set system -m to
- enable object manager messages, before
- the spawn of a new background job.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Root Shell page 2-21
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: quit
-
- OUTLINE:
-
- Purpose: To terminate the shell and
- exit.
-
-
- DESCRIPTION:
-
- quit decrements a process's shell
- level (number of nested shells) by one
- and returns to the previous shell, if
- any. The root shell is VMiX's top shell,
- so when terminated by a process without
- root privilege, the process is ended.
- Normally, the first process started at
- the console has root privilege. If the
- process has root privilege, then VMiX
- is also terminated.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Root Shell page 2-22
-
-
-
-
-
-
-
-
-
-
- PART TWO
-
-
- VMiX 286
-
-
-
-
-
-
-
-
- CHAPTER 3
-
-
- THE DEBUGGER SHELL
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-2
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: read
-
- OUTLINE:
-
-
- DESCRIPTION:
-
- read is not implemented in VMiX
- Release 1.4X; a dummy 'read' is performed
- by this token.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-3
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: write
-
- OUTLINE:
-
-
- DESCRIPTION:
-
- write is not implemented in VMiX
- Release 1.4X; a dummy 'write' is
- performed by this token.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-4
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: assign
-
- OUTLINE:
-
- assign allocates a VMiX channel to
- an owner uid and assigns a VMiX object
- to the channel.
-
- assign allocates extended memory.
-
- assign gdt allocates a VMiX 286
- global descriptor table entry, returning
- a new segment selector for either code
- or data.
-
-
- DESCRIPTION:
-
- The command syntax is:
-
- assign [ uid [ / objname ]
- [ / objdata ] ]
-
- where, uid is the identification of the
- new owner for the channel. Note: if
- the owner is going to be a process the
- pid is equivalent to the uid of the
- process.
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-5
-
- C O M S O F T VMiX 286
-
-
-
-
- The objname is one of:
-
- Object type name definitions
-
- PROCESS type proc is a process
- SRCSINK type tty is a terminal
- CHRSINK type prn is a printer
- DSKFILE type df is a file
- MEMORY type mf is a memory block
- BLKSINK type dsk is a disk drive
- MANAGER type sys is an obj manager
- MAILBOX type mbox is a mailbox
- DATLINK type dlc is a data link
-
-
-
- The objdata, in the case of a SRCSINK
- type object, is one of:
-
- SRCSINK object id's
-
- 0 = The Root Console
- 1 = COM1:
- 2 = COM2:
- 3 = COM3:
- 4 = COM4:
-
- If the object is a process',the objdata
- is the pid of the target process. For
- all other object types, except MEMORY,
- the objdata is always the uid of the
- target object for the channel. The
- utility dstat.exe, executed with exec,
- will list all VMiX objects.
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-6
-
- C O M S O F T VMiX 286
-
-
-
-
- The objdata, in the case of a MEMORY
- type object, is the size, in bytes of
- the object to assign. The size will be
- rounded-up to the nearest 64k block.
- Only extended memory can be allocated by
- this command.
-
- The extended memory pages can be listed
- with the VMiX utility monitor.exe -p.
-
-
- NOTE: To be informed, on the screen, of
- the channel assigned by this command,
- use the debugger command set system -m
- to enable channel manager messages,
- before the assign.
-
- NOTE: When assigning a channel to a
- SRCSINK that is going to be used for
- logins, the uid identifing the new owner
- of the channel must be set to 0, to
- indicate the uid of the scheduler,
- (example, assign 0 srcsink 1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-7
-
- C O M S O F T VMiX 286
-
-
-
-
- The command syntax is:
-
- assign gdt [ access [ / size ]
- [ / segment ] ]
-
- where, access is usually entered as the
- word 'code', if the segment is a code
- segment or as the word 'data', if the
- access byte of the gdt descriptor is to
- be set to data segment access rights.
- The user can also enter a decimal or
- hexadecimal value, if he wishes to
- override the default access rights value
- that VMiX uses for its segments.
-
- The parameters can be entered in
- hexadecimal, using the format 0x????
- (example, assign gdt 0x9B 10 0xF000
- or assign gdt code 10 0xF000).
-
- size is the size that the segment is to
- have, specified as the number of pages.
- A VMiX page is 512 bytes long.
-
- segment is the segment address in
- physical memory that the selector is to
- translate to, when loaded onto a segment
- register.
-
- NOTE: To be informed, on the screen, of
- the gdt selector assigned by this
- command, use the debugger shell command
- set system -m to enable memory manager
- messages, before the assign gdt. The
- manager always returns a far pointer, so
- the selector is really only the first
- word of the block address displayed by
- the manager.
-
-
-
- Part II, The Debugger Shell page 3-8
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: deassign
-
- OUTLINE:
-
- deassign deallocates a VMiX channel.
-
- deassign gdt deallocates a VMiX gdt
- selector.
-
- deassign memory deallocates a VMiX
- extended memory block.
-
-
- DESCRIPTION:
-
- The command syntax is:
-
- deassign [ channel ]
-
- where, channel specifies the channel
- number to deassign. This can be a
- dangerous command to execute, since
- STDIO to the root console (channel 0)
- could be deassigned, freezing the
- console. If no other shell is running,
- there is no way to assign the STDIO to
- the root console again.
-
- NOTE: To be informed, on the screen, of
- the channel and IO Request Packets (IRP)
- deassigned by this command, use the
- debugger shell command set system -m to
- enable channel manager messages, before
- the deassign.
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-9
-
- C O M S O F T VMiX 286
-
-
-
-
- The command syntax is:
-
- deassign gdt [ selector ]
-
- where, selector is the gdt selector
- returned by an assign gdt.
-
- NOTE: To be informed, on the screen, of
- the gdt selector deassigned by this
- command, use the debugger shell command
- set system -m to enable memory manager
- messages, before the deassign gdt. The
- manager always returns a far pointer, so
- the selector is really only the first
- word of the block address displayed by
- the manager.
-
-
-
- The command syntax is:
-
- deassign memory [ page ]
-
- where, page is the extended memory page
- to return to the free memory pool. The
- memory was previously assigned with the
- assign command.
-
- The extended memory pages can be listed
- with the VMiX utility monitor.exe -p.
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-10
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: init
-
- OUTLINE:
-
- comm
- -c " sets communications:
- chan, baud, parity, word, stop"
-
-
- DESCRIPTION:
-
- (See set baud.)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-11
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: examine
-
- OUTLINE:
-
- memory " displays memory graphically,
- in 1K blocks"
-
- mcb " displays information on the
- MSDOS memory control blocks"
-
- kernel " displays information on the
- VMiX kernel"
-
-
- DESCRIPTION:
-
- examine memory
-
- This command displays a map of the
- first one megabyte of memory space. The
- screen displays memory in blocks
- representing 1024 (1K) bytes. If the
- block is in use by the system, then it
- is marked by a '$' or a solid black
- block, in graphics mode. If the block
- is in use by VMiX, then it is marked by
- a 'V' or a gray shaded block. Memory
- control blocks are distinguished by an
- '=' or a small solid black block with
- border, in graphics mode. Memory not in
- use is indicated by an '.' or a small
- solid white block with border.
-
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-12
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: set
-
- OUTLINE:
-
- baud
- -c " sets communications:
- chan, baud, parity, word, stop"
-
- dos
- -m " toggles DOS shell emulation mode
- ON/OFF"
- -n " sets DOS INT21 function maximum
- nesting level"
- -p " sets DOS current process PSP:
- nuPSP(seg)"
-
- font
- -t " sets font type: (0 - 3)"
-
- pool
- -a " adjusts transient program memory:
- MCB(seg), nusize(para)"
- -m " sets transient program memory
- partition size: (0 - 1024K)"
- -o " sets transient program memory owner:
- MCB(seg), nuPSP(seg)"
-
- process
- -b " sets process shell buffer
- size: (0 - 127)"
- -e " toggles system environment
- protection ON/OFF"
- -h " toggles process hardware
- priviledge ON/OFF"
- -p " sets process priority: (0 - 31)"
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-13
-
- C O M S O F T VMiX 286
-
-
-
-
- remote
- -c " selects remote channel"
- -l " sets polled terminal login channel"
-
- system
- -m " toggles manager message displays
- ON/OFF"
- -s " toggles scheduler swapped task
- processing ON/OFF"
- -t " toggles scheduler clock processing
- ON/OFF"
- -w " sets shutdown wait delay: seconds"
-
- terminal
- -t " sets terminal type: (0 - 9)"
-
- video
- -c " sets video background/foreground
- color"
- -C " sets window color attribute"
- -m " sets video mode (0 - 16)"
- -s " toggles status line display ON/OFF"
- -w " sets root window size:
- y0, x0, y1, x1"
- -W " auto partitions (1 - 4) task windows
- (Shift-Tab toggles kbd)"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-14
-
- C O M S O F T VMiX 286
-
-
-
-
- DESCRIPTION:
-
-
- set pool
-
- -a " adjusts transient program memory:
- MCB(seg), nusize(para)"
- -m " sets transient program memory
- partition size: (0 - 1024K)"
- -o " sets transient program memory owner:
- MCB(seg), nuPSP(seg)"
-
- The -m switch can be used to
- control the amount of memory .COM or
- .EXE programs can grab, without the need
- to use exemod.exe, an MSDOS utility, to
- modify the headers of .EXE programs.
-
- The command syntax is:
-
- set pool -m [ max. K bytes ]
-
- where, the maximum number of K bytes
- specified limits the amount of memory
- that a program can allocate as its own.
- For example, set pool -m128<RETURN>, will
- limit all programs loaded thereafter to
- a maximum of 128K bytes.
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-15
-
- C O M S O F T VMiX 286
-
-
-
-
- The -a switch is provided with the
- 'set pool' command, to allow for the
- release of memory previously allocated
- by MSDOS or to increase the size of an
- MSDOS memory control block. This option
- can also be used to increase or decrease
- a VMiX memory control block, and hence
- the number of pages of memory in the
- paged memory pool. The function's
- performance depends on whether the
- segement address passed is for an MSDOS
- MCB, or a VMiX MCB. In the later case,
- the paged memory pool is affected. This
- can be a dangerous option. To help in
- determining the arguments for this
- switch, use the debugger shell's
- 'examine' token. The debugger shell
- will list the MSDOS memory control
- blocks with the command examine mcb.
- This command will list the segment
- address of each MCB and their size in 16
- byte paragraphs.
-
- The command syntax is:
-
- set pool -a [ MCB address
- [ / nusize ] ]
-
- where, the segment address of the MCB
- has been obtained using the debugger
- shell, and nusize is the new requested
- size in paragraphs for the block. The
- parameters can be entered in
- hexadecimal, using the format 0x????
- (example, set pool -a 0x26F0 0xAF8).
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-16
-
- C O M S O F T VMiX 286
-
-
-
- The -o switch is provided with the
- 'set pool' command, to allow for the
- change of ownership of memory previously
- allocated by MSDOS. Some programs when
- loaded by MSDOS allocate all available
- memory. This is characterized by an
- 'end' MCB block that has been assigned
- the PSP segment of the program, as its
- owner.
-
- Normally, the 'end' MCB holds
- available memory and has a NULL PSP (0)
- for its owner (use exam mcb from the
- debugger shell to examine the memory
- chain). You should next use the utility
- monitor to determine that the program
- has not allocated stack space in the
- area covered by the 'end' MCB. After
- this is verified, it will be safe to use
- the -o switch and recover the 'end'
- memory. To free the memory, set the PSP
- owner to 0000. Sometimes, a better
- solution is to deallocate some of the
- memory with the -a switch, since the
- process owner could be using some of the
- 'end' MCB memory.
-
- The command syntax is:
-
- set pool -o [ MCB address
- [ / nuPSP ] ]
-
- where, the segment address of the MCB
- has been obtained using the debugger
- shell, and nuPSP is the new requested
- PSP segment to own the block. The
- parameters can be entered in
- hexadecimal, using the format 0x????
- (example, set pool -o 0x65F0 0).
-
-
-
- Part II, The Debugger Shell page 3-17
-
- C O M S O F T VMiX 286
-
-
-
-
- set video
-
- -c " sets video background/foreground
- color"
- -C " sets window color attribute"
- -m " sets video mode (0 - 16)"
-
- Screen COLORS, in VMiX are set with
- switches -c and -C, in text modes, and
- in graphics modes.
-
-
-
- Alphanumeric Text Modes:
-
-
- The command syntax is:
-
- set video -c [ color code ]
- set video -C [ color code ]
-
-
- The color code is a 2 digit hexadecimal
- number of the form:
-
- 0xbf
-
-
- where, b is the background color key
- and f is the foreground color key,
- selected fron the table below. To use
- this method, the color code argument
- must be entered in hexadecimal format.
- Because the argument is in hexadecimal,
- bf must be preceeded by an '0x'.
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-18
-
- C O M S O F T VMiX 286
-
-
-
-
- Color Keys
-
-
- b backgrounds f foregrounds
-
- 0 black 0 black 8 gray
- 1 blue 1 blue 9 lt. blue
- 2 green 2 green A lt. green
- 3 cyan 3 cyan B lt. cyan
- 4 red 4 red C lt. red
- 5 magenta 5 magenta D lt. mag
- 6 brown 6 brown E yellow
- 7 white 7 white F brt white
-
-
-
-
-
-
- B/W Graphics Modes:
-
-
- The command syntax is:
-
- set video -c [ color code ]
- set video -C [ color code ]
-
-
- The color code is a decimal or hexa-
- decimal number which represents the
- pixels on(1) or off(0) binary pattern
- on the screen. See the color code table
- given below.
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-19
-
- C O M S O F T VMiX 286
-
-
-
-
- Color Codes
-
- decimal hexadecimal
-
- 0 0x0 00000000 black
- 85 0x55 01010101 gray
- 170 0xAA 10101010 gray
- 255 0xFF 11111111 white
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-20
-
- C O M S O F T VMiX 286
-
-
-
- set video
-
- -w " sets root window size:
- y0, x0, y1, x1"
-
- The -w switch is used to specify
- the bounds of a new root window. A root
- window is where all user dialog with the
- operating system takes place. An 'exec'
- call, when the video mode has been set
- to graphics mode, will display within
- the root window, since graphics modes
- bypass the ROM BIOS. An 'exec' call in
- alphanumeric mode could, in some cases
- take over the entire screen.
-
-
- 0
- ----------------------------------------------------------
- | VMiX.286 1.4X Copyright ComSoft, Inc. 1987 |
- |----------------------------------------------------------|
- | |
- | |
- r | TOP left corner |
- | *---------------------------- |
- Y o | |y,x | |
- | | WINDOW | |
- w | | | |
- | | y,x| |
- | ----------------------------* |
- | BOTTOM right corner |
- | |
- | |
- 24 ----------------------------------------------------------
- 0 column 79
- X
-
- (Fig. 4)
-
-
-
-
- Part II, The Debugger Shell page 3-21
-
- C O M S O F T VMiX 286
-
-
-
- The command syntax is:
-
- set video -w [ [ top row ]
- [ / top col ]
- [ / bot row ]
- [ / bot col ] ]
-
-
- set video
-
- -W, " auto partitions (1 - 4) task windows
- (Shift-Tab toggles kbd)"
-
- To support multitasking from the
- console (up to 4 windows) or a VT-100
- terminal (up to 2 windows), the -W
- switch is provided. Note that the 'W'
- must be typed in upper-case, to
- distinguish it from the manual set
- window command, described above.
-
- The command syntax is:
-
- set video -W
-
- This command is sensitive to the number
- of channels that have been assigned to
- COMM = 0, the console. It uses this
- count to determine the number of windows
- to divide the screen into.
-
- The set video -W command, is intended to
- work in cunjunction with the hot key,
- Shift-Tab. This console key combination
- will move, in round-robin fashion, the
- active window/channel which owns the
- console keyboard. All tasks running in
- the windows will execute concurrently in
- the background, regardless of which one
- owns the console keyboard.
-
-
- Part II, The Debugger Shell page 3-22
-
- C O M S O F T VMiX 286
-
-
-
-
- The nominal set of commands needed
- to start a background/windowed task at
- the VMiX console, manually, is:
-
- debug : will get you to the debugger
-
- set system -m will enable messages
-
- assign srcsink 0 : will grab a new
- console (device 0)
- channel
- quit : will return to the root shell
-
- spawn -c???? set video -W / exec .....
- will spawn a new background
- task to channel ???? provided by
- assign and partition the screen
-
- (press Shift-Tab to move the keyboard
- to the new task)
-
- The above sequence can be replaced by
- the simpler to use, single command:
-
- dosjob .....
-
- where ..... is the same user task string
- used with spawn, above.
-
- dosjob set video -W / exec .....
-
- NOTE: The VMiX status line (set video -s)
- will display the current console vio
- channel (ie., where the keyboard is
- active).
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-23
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: quit
-
- OUTLINE:
-
- Purpose: To terminate the shell and
- exit.
-
-
- DESCRIPTION:
-
- The debugger shell token 'quit'
- decrements the shell level by one,
- terminates the debugger shell, and
- returns to the previous shell.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-24
-
- C O M S O F T VMiX 286
-
-
-
-
- NAME: monitor.exe
-
- OUTLINE:
-
- monitor " displays process control
- block information"
-
- -p " displays information on the
- VMiX paged memory control
- blocks"
-
- -r " monitors process registers
- continuously: process id"
-
-
- DESCRIPTION:
-
-
- monitor
-
- -r " monitors process registers
- continuously: process id"
-
- The command syntax is:
-
- monitor [ -r ] [ process id ]
-
-
- The VMiX 'monitor' utility accepts
- several command line inputs. If the
- switch '-r' is not given, the process
- whose pid is specified is displayed. If
- no process id is given, the utility will
- ask for a pid to be supplied. This
- command displays the process control
- block and the saved context registers.
-
-
-
-
-
- Part II, The Debugger Shell page 3-25
-
- C O M S O F T VMiX 286
-
-
-
-
- When the '-r' switch is included
- before the process id, the process
- registers will be continuously monitored
- until the <Esc> key or <Ctrl> <Break>
- are pressed.
-
- While in the register mode, pressing
- <Ctrl> <s> will put the process being
- viewed to sleep. Pressing <Ctrl> <q>
- will wake the process.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Part II, The Debugger Shell page 3-26
-
-
-
-
-
-
-
-
-
-
-
- APPENDICIES
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendices page A-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendices page A-2
-
-
-
-
-
-
-
-
-
- APPENDIX
-
-
- A
-
-
-
-
-
-
-
-
-
-
-
- RELEASE NOTES V1.4X
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix A, Release Notes page A-3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix A, Release Notes page A-4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix A, Release Notes page A-5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix A, Release Notes page A-6
-
-
-
-
-
-
-
- RELEASE NOTES
-
- The distribution file READ.ME includes
- the new release changes for this version.
-
-
-
- PROBLEM REPORTS
-
- TAR10 When running BASIC or BASICA
- interpreters from a dumb terminal, the
- command buffer is not cleared correctly
- after a carriage return, leaving the
- previous command in the buffer. When
- the next command typed is shorter than
- the previous, a Syntax Error will
- result. To correct this situation,
- press the <Esc> key to clear the buffer.
-
- TAR11 MicroSoft WINDOWS will not start
- correctly unless the current VMiX video
- mode is set to 3. Turbo Pascal will
- start correctly in graphics modes, but
- the editor will fail, so also set VMiX
- video mode to 3 before an 'exec' of
- TURBO. BASIC will start correctly in
- graphics modes, but will not respond to
- the keyboard.
-
- TAR13 MicroSoft WINDOWS with a bus
- mouse driver will crash, because changes
- the driver does to the 8259 set-up are
- not compatible with VMiX. This will be
- corrected in a future release. WINDOWS
- with a serial mouse will work correctly.
-
-
-
-
-
- Appendix A, Release Notes page A-7
-
-
-
-
-
-
-
- TAR14 Pressing <Ctrl><F> from a terminal
- will toggle-in IBM PC function key
- emulation (emulated by the digit keys),
- and also provide the [Ins] and [Del]
- keys. Using the [Ins] and [Del] keys
- (emulated by ^I and ^D) with the BASIC
- editor will crash the user.
-
- TAR40 Some communication programs, like
- XTALK will multitask with VMiX. Since
- most communication programs write
- directly to video memory, they should
- execute at the console. and be started
- with the dosjob -W command. Care should
- used not have your second user on a COMM
- port which is equal to the default port
- for the communications program, to avoid
- a port re-initialization. XTALK starts
- on COM1, so put your second user on COM2.
-
- TAR41 WORDSTAR 3.2, which does not write
- directly to video memory, will execute
- correctly from a second user at a COMM
- port. However, exit from this version
- of WORDSTAR, will crash that user; again
- because of memory management problems at
- deallocation time. To correct this,
- terminate the WSTAR image from another
- user shell utilizing the 'kill' token.
-
- TAR42 CODEVIEW writes directly to video
- memory, so use it only at the console.
-
-
-
-
-
-
-
-
- Appendix A, Release Notes page A-8
-
-
-
-
-
-
-
- TAR70 Speed-up boards that add an 80286
- to a system, will not operate correctly
- with VMiX because the software expects
- an AT bus for protected mode operations.
- If the CPU is an 8088 or 8086, VMiX
- will detect a non 286/386 CPU and will
- not initalize protected mode functions
- and stay in real mode. The same is true
- of some clones which use an XT bus with
- the 80286. To force VMiX to ignore an
- 80286/386 processor and force 8086 mode,
- invoke VMiX with the vm_boot -r option.
-
- TAR81 With the 'exec' command, any VMiX
- task can either change the default disk
- or set a new PATH. VMiX keeps only one
- global default disk and path because of
- the overhead to maintain a different one
- for each task. It is therefore, possible
- for one task to trash another that
- expected its own, previously set,
- default disk and/or PATH. Set your path
- once, for all the tasks your system
- should accommodate.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix A, Release Notes page A-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix A, Release Notes page A-10
-
-
-
-
-
-
-
-
-
- APPENDIX
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- TECHNICAL INFORMATION
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix C, Technical Info page C-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix C, Technical Info page C-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix C, Technical Info page C-12
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- VMiX GLOBAL DATA
-
-
- 04-07-87
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix C, VMiX Global Data page C-13
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix C, VMiX Global Data page C-14
-
-
-
-
- io0us_addr6845 - Port address of video controller CSR
- io0i_bwinbot - Current banner window bot right(row col)
- io0i_bwintop - Current banner window top left(row col)
- io0as_chantab[ ] - I/O channel Control Block Table
- io0b_chrxsiz - Current pixels per font character
- io0b_chrysiz - Current scan lines per font character
- io0i_colorbg - Current video background color
- io0i_colorfg - Current video foreground color
- io0b_colvmax - Maximum number of video columns
- io0i_conbg - Console background color
- io0i_confg - Console foreground color
- io0i_conwn - Console window background color
- io0ui_comm - Asynch comm port BIOS device id
- io0ui_commax - Maximum number of logable comm ports
- io0ai_commbuf[ ] - Comm object _ttyin_event buffers
- io0b_currtmod - Current TTY screen mode
- io0i_currtsiz - Current TTY size 0x174F (row col)
- io0pc_currvbuf - Current console video buffer address
- io0b_currvfnt - Current console font
- io0b_currvmod - Current console mode
- io0i_currvsiz - Current console size 0x184F (row col)
- io0as_drvtab[ ] - Driver Setup Block Table
- io0ap_fontab[ ] - Character Font Table
- io0i_gcurx - Current graphics cursor x position
- io0i_gcury - Current graphics cursor y position
- io0ps_irphead - Pointer to I/O Request Packets chain head
- io0i_hascon - Process owns console flag
- io0ui_nextchan - Next available I/O channel
- io0ui_nextuid - Next available object id
- io0ui_nextdrv - Next available driver table entry
- io0ac_objnam[ ] [ ] - Object Name Table
- io0as_objtab[ ] - Object Control Block Table
- io0ui_regenlen - Length of Video RAM
- io0b_rowvmax - Maximum number of video rows
- io0i_statlin - Status line display flag
- io0ps_stdirp - Pointer to STDIO chan's I/O Request head
- io0b_stormode - Shutdown restore BIOS video mode
- io0b_tcurx - Current text cursor x position
- io0b_tcury - Current text cursor y position
- io0ps_tdb - Pointer to io0as_tdbtab[ ]
-
-
-
- Appendix C, VMiX Global Data page C-15
-
-
-
-
- io0ui_termmax - Maximum terminal description blocks
- io0as_tdbtab[ ] - Terminal type Description Block Table
- io0b_vmode - Current BIOS video mode
-
-
- ker0us_asmcode - Kernel assembly code segment
- ker0us_asmdata - Kernel assembly data segment
- ker0us_code - Kernel C code segment
- ker0us_data - Kernel C data segment
- ker0i_debug - Manager's messages flag
- ker0i_defdrv - Current default drive BIOS device id
- ker0i_dos - MSDOS version number
- ker0i_error - Kernel error code
- ker0i_inbios - BIOS entry semaphore
- ker0i_infdos - Foreign DOS (MSDOS) entry semaphore
- ker0us_initoff - Initialize new stack offset
- ker0us_initseg - Initialize new stack segment
- ker0pf_int09 - Pointer to keyboard ISR
- ker0us_intds - Interrupt data segment
- ker0us_intsp - Interrupt stack pointer
- ker0us_intss - Interrupt stack segment
- ker0us_kerds - Kernel C data segment
- ker0us_kersp - Kernel C stack pointer
- ker0us_kerss - Kernel C stack segment
- ker0i_lockbios - Locks BIOS entry
- ker0i_lockfdos - Locks foreign dos (MSDOS) entry
- ker0i_p286 - Host machine id flag
- ker0i_remote - Termination mode
- ker0i_rootshl - Top level shell active flag
- ker0ps_savregs - Pointer to temporary REGS Kernel area
- ker0i_shllev - Current process' shell depth level
- ker0ui_shutcnt - Shutdown delay count (SECs)
- ker0ui_stathw - BIOS hardware status
- ker0ps_vmpsp - Pointer to VMiX's PSP
- ker0s_vmpsp - VMiX's Program Segment Prefix
-
-
- mem0ui_exalloc - Maximum para available to next .exe image
- mem0ps_ldt - Pointer to LDT tables
- mem0as_ldttab[ ] [ ] - Local Descriptor Table
-
-
-
- Appendix C, VMiX Global Data page C-16
-
-
-
-
- mem0ui_maxpge - Maximum pages in memory pool
- mem0ui_maxpara - Maximum available para of physical memory
- mem0ps_mcbhead - Pointer to memory chain head
- mem0ps_mcbtail - Pointer to end memory control block
- mem0us_page0 - Segment address of start of paged memory
- mem0as_pgetab[ ] [ ] - Paged Memory Table
- mem0us_toppara - Segment address of top physical memory
-
-
- sch0ui_clkcnt - Timer tick count delay
- sch0ui_clkdiff - Number of clock deferred ticks to post
- sch0i_clkflg - Scheduler process clock ticks flag
- sch0ui_clktick - Current clock tick
- sch0ui_currpid - Current process id
- sch0us_ctxoff - Current process task state store offset
- sch0us_ctxseg - Current process task state store segment
- sch0ui_nextpid - Next available process id
- sch0ui_numproc - Current number of active processes
- sch0ui_preempt - Preempt process quantum flag
- sch0us_procsp - Current process stack pointer
- sch0us_procss - Current process stack segment
- sch0as_proctab[ ] - Process table
- sch0i_tmqempty - Timer queue is empty flag
- sch0i_tmqhdkey - Timer queue head element delta key
-
-
- shl0as_argtab[ ] [ ] - Argument switches tables
- shl0i_bufsiz - Current shell input buffer size
- shl0ps_debtok[ ] - Pointer to debug shell tokens
- shl0ps_remarg[ ] - Pointer to remote token switches
- shl0ps_shltok[ ] - Pointer to root shell tokens
- shl0ps_spwarg[ ] - Pointer to spawn token switches
- shl0as_toktab[ ] [ ] - Shell token tables
-
-
-
-
-
-
-
-
-
-
- Appendix C, VMiX Global Data page C-17
-
-
-
-
- deb0ps_debarg[ ] - Pointer to debug token switches
- deb0ps_examtok[ ] - Pointer to debug examine tokens
- deb0ps_fntarg[ ] - Pointer to font token switches
- deb0ps_iniarg[ ] - Pointer to init token switches
- deb0ps_initok[ ] - Pointer to debug init tokens
- deb0ps_pooarg[ ] - Pointer to pool token switches
- deb0ps_proarg[ ] - Pointer to process token switches
- deb0ps_settok[ ] - Pointer to debug set tokens
- deb0ps_vidarg[ ] - Pointer to video token switches
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix C, VMiX Global Data page C-18
-
-
-
-
-
-
-
-
-
- APPENDIX
-
-
- D
-
-
-
-
-
-
-
-
-
-
-
- STATUS MONITOR
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix D, Status Monitor page D-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix D, Status Monitor page D-2
-
-
-
-
- VMiX CONSOLE STATUS
-
-
- The VMiX status line displays at
- the bottom of the console display when
- selected from the Debugger Shell. To
- toggle the status line use the command
- set video -s from the Debugger Shell or
- the command debug set video -s from the
- Root Shell.
-
- The status line displays:
-
- the time
- the current console vio channel
- the current console video mode
- the keyboard toggle keys
- [Ins]
- [Num Lock]
- <Caps Lock>
- [Scroll Lock]
- all disk access errors
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix D, Status Monitor page D-3
-
-
-
-
- PASSIVE DISK MONITOR
-
-
- REPORTED DISK ERRORS
-
-
- Bad drive/command - This error is caused
- by an invalid drive number or disk
- driver command.
-
- AMark not found - The Data Address Mark
- recorded just before the data area of a
- sector could not be found. Indicates a
- disk which has not been formatted, has
- suffered magnetic damage, or it could
- indicate defective media.
-
- Write protected - A write protect tab is
- present on the media or a fixed disk is
- write protected. If there is no tab the
- drive's sensor is probably bad or
- misaligned.
-
- Sector not found - The requested sector
- number could not be found. If the
- sector number was valid for the drive,
- then defective media, alignment, or
- format problems are probably to blame.
-
- Drive reset fail - An attempt to reset
- the specified drive failed.
-
- Drive init fail - This error reflects a
- problem with the drive parameter block.
- It could indicate a controller action
- that failed because of bad parameters.
- Bad parameters could indicate an attempt
- to initialize an invalid drive.
-
-
-
-
-
- Appendix D, Status Monitor page D-4
-
-
-
-
- DMA overrun - The controller could not
- get DMA access to the data bus before
- time ran out.
-
- DMA boundary - DMA cannot read or write
- across 64k segment boundaries. This is a
- software driver error.
-
- Bad sector (AT only) - An operation was
- attempted on a sector flagged bad by the
- low level formatter. Such areas should
- have been marked bad in the FAT.
-
- Bad track (PC/XT only) - An operation
- was attempted on a track flagged bad by
- the low level formatter. Such areas
- should have been marked bad in the FAT.
-
- Bad read CRC/EEC - The sector could not
- be successfully read. Repeated attempts
- will usually read a weak sector. A
- common disk I/O error, possibly caused
- by defective media, dirty heads, power
- glitches, or misaligned drives. A write
- to the sector will usually fix the
- problem, except in the case of defective
- media. Repeated CRC read errors are an
- indication to the prudent user to back-
- up his data to new media and/or replace
- the current media where the data is
- stored.
-
- Soft error fixed - Reports that the
- controller's 48bit EEC algorithm
- successfully corrected a soft data error.
-
- Controller fault - The controller had
- not successfully completed the requested
- command before time ran out.
-
-
-
-
- Appendix D, Status Monitor page D-5
-
-
-
-
- Track seek fail - Moving the drive head
- to seek a requested cylinder was
- unsuccessful. If the cylinder number
- was valid for the drive, then a hardware
- problem is probably to blame.
-
- Drive unavailable - The time allowed for
- an operation expired without a response
- from the drive. MSDOS reports this error
- as 'Drive not ready'.
-
- Unknown error - An error code was
- returned for which VMiX has no defined
- error description.
-
- Write fault (AT only) - Usually this
- indicates a hardware problem with the
- physical drive.
-
- Status error (AT only) - The controller
- status register indicated that an error
- condition existed, but the error
- register did not contain a valid error
- code.
-
- Sense fail (PC/XT only) -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix D, Status Monitor page D-6
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix D, Status Monitor page D-7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix D, Status Monitor page D-8
-
-
-