home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-03-25 | 53.4 KB | 1,458 lines |
-
-
-
-
- Sydex
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 22NICE
-
-
- A New Insystem CP/M Emulator
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sydex
- P.O. Box 5700
- Eugene, OR 97405
- Voice: (503) 683-6033
- FAX: (503) 683-1622
- Data: (503) 683-1385
-
-
-
-
-
-
-
-
-
-
- Table of Contents
-
-
- 22Nice, Briefly..............................................1
-
- Quick Installation And Operation of 22Nice...................1
-
- If You're Upgrading..........................................2
-
- How 22Nice Works.............................................3
-
- The GENCOM Utility--Generate A Loader........................4
-
- Specifying a Custom Keyboard Layout..........................8
-
- Running 22NICE.COM..........................................11
-
- Support of User Areas.......................................12
-
- CSAVE - Write the CP/M Area to Disk.........................12
-
- Disk Drive Reassignment.....................................13
-
- Locating CP/M Program Files.................................14
-
- Interrupts and 22Nice.......................................14
-
- Setting GENCOM Defaults.....................................15
-
- Use Of CP/M SUBMIT And XSUB.................................16
-
- Accessing I/O Ports.........................................16
-
- Accessing PC Memory.........................................17
-
- IOBYTE Support..............................................17
-
- Absolute Disk Read and Write................................18
-
- Maximum Program Size........................................18
-
- A Sample 22Nice Installation................................18
-
- A Short Glossary of CP/M Terms..............................19
-
- What's New in Version 1.3...................................21
-
- The Sydex Product Line......................................22
-
-
-
-
-
- 22NICE
-
- A New Insystem CP/M 2.2 Emulator
-
-
-
- Version 1.3, July, 1990
-
- Copyright 1985-1990, Sydex
-
- Sydex
- P.O. Box 5700
- Eugene, OR 97405
- Voice: (503) 683-6033
- FAX: (503) 683-1622
- Data: (503) 683-1385
-
- All Rights Reserved
-
-
- NOTICE
-
- THIS IS NOT FREE SOFTWARE! If you paid a "public domain" vendor
- for this program, you paid for the service of copying the
- program, and not for the program itself. Rest assured that noth-
- ing ever gets to the originators of this product from such a
- sale. You may evaluate this product, but if you make use of it,
- you must register your copy.
-
- We offer several inducements to you for registering. First of
- all, you receive the most up-to-date copy of the program that we
- have -- and we do update the product on a regular basis. You
- also receive support for 22Nice -- which can be quite valuable at
- times. And finally, we have a few utilities not included in the
- evaluation package. Make no mistake, however - the evaluation
- version is fully functional and not "crippled" in any way.
-
-
- Registration Information
-
- The non-commercial single-user registration fee for 22Nice is
- $40.00 US, which includes a copy of 22Disk, our CP/M diskette
- transfer utility. The commercial and multisystem site fee for
- 22Nice (including 22Disk) is $150.00.
-
-
-
-
-
-
-
-
-
-
- Send your payment to:
-
- Sydex
- P.O. Box 5700
- Eugene, OR 97405
- Voice: (503) 683-6033
- FAX: (503) 683-1622
-
- We can accept telephone or FAX orders and honor VISA and Master-
- Card charges, as well as corporate and government purchase or-
- ders. All payments must be made in U.S. dollars. Orders from
- outside the U.S. and Canada should include an additional $5.00
- for airmail shipping. Please indicate if you have a requirement
- for 3.5" media; we normally ship 5.25" 360K diskettes, but will
- furnish 3.5" 720K media upon request.
-
- If you are a registered user of this product and desire an up-
- date, please send $5.00 for handling and we will ship you an up-
- to-date copy. Please add $7.50 if you also need printed documen-
- tation to cover our printing costs. You may also download a
- registered copy from our bulletin board system; you'll need the
- five-digit number from your invoice for validation. Our bulletin
- board system operates 24 hours per day, 365 days a year and sup-
- ports data rates from 1200 to 9600 bits per second, no parity, 8
- data bits.
-
-
- Distribution Notice
-
- This is "user-supported" software. You are hereby granted a
- license by Sydex to distribute this evaluation copy of 22Nice and
- its documentation, subject to the following conditions:
-
- 1. 22Nice may be distributed freely without charge in
- evaluation form only.
-
- 2. 22Nice may not be sold, licensed, or a fee charged for
- its use. If a fee is charged in connection with
- 22Nice, it must cover the cost of copying or dissemina-
- tion only. Such charges must be clearly identified as
- such by the originating party. Under no circumstances
- may the purchaser be given the impression that he is
- buying 22Nice itself.
-
- 3. 22Nice must be presented as a complete unit, including
- this documentation. Neither 22Nice nor its documenta-
- tion may be amended or altered in any way.
-
-
-
-
-
-
-
- 4. By granting you the right to distribute the evaluation
- form of 22Nice, you do not become the owner of 22Nice
- in any form.
-
- Any other use, distribution or representation of 22Nice
- is expressly forbidden without the written consent of
- Sydex.
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- --------------------
- 1. CP/M, CP/M-80 and CP/M 2.2 are trademarks of Digital Research.
- MS-DOS is a trademark of Microsoft. IBM PC, PC-XT and PC-AT are
- trademarks of International Business Machines. V20, V30,
- uPD70108, uPD70116 are trademarks of NEC Electronics. WordStar
- is a trademark of WordStar Corporation. Some products of Lear-
- Siegler, Kaypro, Osborne and Televideo are also trademarked.
-
-
-
-
-
-
-
- Getting Started
- ____________________________________________________
-
- 22Nice, Briefly
-
- 22Nice is a Z80/8080 CP/M 2.2 emulator for use on PC-compatible
- computers. The 22Nice CP/M Emulation package offers the follow-
- ing features:
-
- * Emulate 8080/8085/Z80 processors with or without NEC
- V-series chip installed. 22Nice contains an emulator
- for both 8080 and Z80 processors. 22Nice also has a
- test mode, which allows identification of the ap-
- propriate processor needed for emulation.
-
- * Provides terminal emulation for most common CP/M
- machines with terminal types for Osborne, Kaypro,
- Heath/Zenith, Morrow, Actrix, DEC VT-100/VT-52,
- Televideo 925/950 and LSI ADM-3A.
-
- * Supports CP/M user number to DOS sub-directory transla-
- tion.
-
- * Allows use of DOS "pipes" and utilities with CP/M
- programs.
-
- * Supports a complete set of BDOS and BIOS function inter-
- faces, including direct disk read/write.
-
- * CP/M programs are fully integrated into the DOS environ-
- ment; the user is unaware that a program is CP/M- or
- DOS-based.
-
-
-
- Quick Installation And Operation of 22Nice
-
- NOTE: If you're upgrading from a version of 22Nice earlier than
- 1.3, consult the next section on special upgrade considerations.
- There are quite a number of differences between Version 1.3 and
- earlier versions of 22Nice.
-
- The following files should be present on your 22Nice distribution
- diskette or archive file:
-
- 22NICE.COM The emulator program itself
- GENCOM.COM Execution environment specifier
- CSAVE.COM Analog to CP/M SAVE function
-
- Page 1
-
-
-
-
- Getting Started
- ____________________________________________________
-
- USERS.EXE Shows user-to-directory mapping
- 22NICE.DOC Printable documentation file for 22Nice
- WHATS.NEW Latest bulletin on 22Nice enhancements
-
- To use 22Nice, you'll need to do the following:
-
- 1. Copy the contents of the 22Nice distribution diskette
- or archive file into a subdirectory, preferably located
- on a hard drive.
-
- 2. Copy the CP/M program files that you want to execute
- into this directory, changing the .COM file type to
- .CPM. If you've used our 22Disk diskette transfer
- utility to read your program files from your CP/M dis-
- kettes, the .COM file types have already been changed
- to .CPM. Otherwise, a simple way to change names is to
- use the following DOS command:
-
- REN *.COM *.CPM
-
- 3. Run the GENCOM utility for all .CPM files, specifying
- the console, keyboard and processor type. For example,
- a WordStar-type keyboard layout with a Kaypro-type dis-
- play can be done thus:
-
- GENCOM * DIS=KAY KEY=WS
-
- The GENCOM utility has many options to modify 22Nice
- operation; refer to the GENCOM section later in this
- document for more details.
-
- 4. Run the CP/M program(s) as if they were normal DOS
- programs!
-
- That's all there is to it--but there are many special features of
- 22Nice that you'll undoubtedly want to take advantage of--so keep
- reading!
-
-
- If You're Upgrading...
-
- If you're upgrading from an earlier version, there are some dif-
- ferences between the current version of 22Nice and previous ver-
- sions that you should know about:
-
-
- Page 2
-
-
-
-
- How 22Nice Works
- ____________________________________________________
-
- 1. The device-driver form of 22Nice (22RES.SYS) has been
- discontinued. The terminate-and-stay-resident form of
- 22Nice takes its place.
-
- 2. The BIND option of the GENCOM utility has been discon-
- tinued. The difference in loading time between the
- separate and the "bound" versions of a program were neg-
- ligible.
-
- 3. Interface conventions between the 22Nice resident and
- GENCOM-produced programs have changed. You'll have to
- re-GENCOM your programs.
-
- 4. The RMVNICE program has been moved into the 22NICE.COM
- resident.
-
- 5. The default processor mode for GENCOM is now Auto.
-
- 6. Two environment variables have been introduced to
- simplify specification of defaults: GENCOM and 22NICE.
-
- 7. The support of user areas has been greatly enhanced.
-
- 8. All file functions are now performed using DOS handle-
- type I/O rather than FCB-type I/O.
-
-
- How 22Nice Works
-
- In addition to supporting the functions of the CP/M operating sys-
- tem under DOS, 22Nice supports the instruction set of a
- microprocessor different from that used in the IBM PC. On PC XT-
- type machines, this microprocessor support function can be be
- facilitated through a plug-in replacement processor to the Intel
- 8088, known as the NEC V20. But in the case of PC AT- and 386-
- class systems, emulation of the 8080 or Z80 processor must be per-
- formed by 22Nice. All emulation is implemented in a single
- program, 22NICE.COM.
-
- 22NICE.COM may be loaded "on demand" by CP/M programs, or may be
- run as a terminate-and-stay-resident program.
-
-
-
-
-
- Page 3
-
-
-
-
- How 22Nice Works
- ____________________________________________________
-
- CP/M programs are executed by having DOS first execute a short
- "loader" program, which provides information to 22Nice about the
- program to be executed. In addition, the "loader" executes the
- 22NICE.COM program if necessary.
-
- As implemented, a CP/M executable file normally has a file name
- extension of .COM. However, this creates problems by conflicting
- with DOS .COM-type programs. Because DOS does little checking
- on the contents of .COM files, executing a CP/M .COM file under
- DOS could lead to disaster. By renaming all CP/M .COM files to
- .CPM the conflict is resolved. As part of CP/M emulation, 22Nice
- changes all CP/M .COM file references to .COM and vice-versa, so
- that the name change is transparent.
-
- The short "loader" for each CP/M program is a DOS-mode program
- with the .COM file type. This short (about 500 bytes) program
- contains the following information:
-
- * The name of the CP/M program to be run.
-
- * The type of microprocessor to be emulated--8080 or
- Z80--and if a NEC V20 can be used, if available.
-
- * The type of terminal display to be emulated. Unlike
- DOS, CP/M usually provides only a simple terminal-style
- display rather than the full-screen text and graphics
- display of the PC. However, each manufacturer's CP/M
- system differed in the type of terminal supported.
-
- * How the cursor and function keys are to be translated.
- One CP/M program may require a WordStar type of
- keyboard mapping, while another could require a Perfect
- Writer style of keyboard.
-
- All of this information is provided by the output of the GENCOM
- utility as a very small .COM-type file.
-
- The GENCOM Utility--Generate A Loader
-
- At this point, it's assumed that you've gotten your CP/M files
- over to your PC somehow. Remember that CP/M program files with
- an extension of .COM need to be renamed to have an extension of
- .CPM. The 22Disk diskette conversion package does this automati-
- cally, but if you've used some other means to obtain your files,
- you'll need to rename them manually.
-
- Page 4
-
-
-
-
- GENCOM Operation
- ____________________________________________________
-
-
- The GENCOM utility is used to create a .COM file which can be ex-
- ecuted by DOS for each .CPM file. This .COM file interfaces with
- the 22NICE.COM support program and brings the associated CP/M
- program into execution.
-
- The syntax of the GENCOM command is as follows:
-
- GENCOM file DISPLAY=dtype KEYBOARD=ktype PROCESSOR=ptype
-
- "file" is the name of the CP/M program file to be executed,
- and is specified without a file extension. DOS path
- names are allowed as well as "wildcard" file specifiers
- (i.e., "*" and "?"). All .CPM files matching the file
- specification will be processed by GENCOM and the .COM
- files which are generated will be placed in the same
- directory as the original .CPM files.
-
- DISPLAY=dtype is optional and may be omitted. If specified,
- it indicates the type of console display to be emu-
- lated. Any of the following may be specified for
- dtype:
-
- NONE uses DOS character I/O for output. No special han-
- dling of characters is performed. If the DISPLAY
- expression is omitted, this is the default. If
- program output is to be "piped" to another program
- or file, NONE must be used.
-
- TVI emulates a Televideo 925/950 series terminal.
-
- ADM emulates a Lear-Siegler ADM-3 or ADM-31 type ter-
- minal.
-
- OSBORNE emulates the display on an Osborne I/II/Nuevo
- computer.
-
- KAYPRO emulates the display on a Kaypro I/II computer.
-
- ANSI or VT100 emulates an ANSI (DEC VT-100) display.
-
- VT52 emulates a DEC VT-52 display.
-
- H19 emulates a Heath/Zenith H19/Z19 or H89/Z89 display.
-
-
- Page 5
-
-
-
-
- GENCOM Operation
- ____________________________________________________
-
- DISPLAY may be abbreviated as DIS. Certain display-specific
- features cannot be accommodated by 22Nice, such as the 132-
- column mode of a VT-100 terminal.
-
- KEYMAP=ktype is optional and specifies the map for the con-
- sole keyboard. Any of the following may be specified
- for ktype:
-
- NONE uses DOS for input. No special handling of
- keyboard characters is performed. If the KEYMAP
- expression is omitted, this is the default. If
- keyboard input is to be "piped" from another
- program, this option must be used.
-
- H19 emulates the Heath/Zenith H19/Z19/H89/Z89 keyboard.
-
- ANSI emulates a VT-100-style keyboard.
-
- WS implements a WordStar cursor keyboard mapping.
-
- TVI emulates a Televideo 925/950-series keyboard.
-
- OSBORNE emulates an Osborne 1 keyboard in non-WordStar
- mode.
-
- Anything else indicates a custom keyboard map is to be
- used and the value given is the name of the file
- containing the keyboard information. See the sec-
- tion entitled Defining Custom Keyboards for more
- information.
-
- KEYBOARD may be abbreviated as KEY.
-
- PROCESSOR=ptype is optional and specifies the processor
- emulation type required for this program. Any of the
- following may be specified for ptype:
-
- AUTO indicates that 22Nice begins execution in emulated
- Intel 8080 mode and switches to Zilog Z80 emula-
- tion if a Z80-specific instruction is encountered.
- If PROCESSOR is not specified, it defaults to
- AUTO.
-
-
-
-
- Page 6
-
-
-
-
- GENCOM Operation
- ____________________________________________________
-
- V20 indicates that 22Nice should use the hardware emula-
- tion capabilities of the NEC V20 or V30 processor,
- if one is installed in this computer. If no V20
- or V30 processor can be found, an 8080 software
- emulator will automatically be used.
-
- E8080 specifies that 22Nice should emulate the Intel
- 8080 processor, even if a NEC V20 or V30 is
- detected. E8080 is somewhat faster than Z80 emula-
- tion mode.
-
- Z80 specifies that 22Nice should use a Z80 software
- emulation. Note that the NEC V20 and V30
- microprocessors do not support the extended in-
- struction set of the Z80 processor.
-
- TEST specifies that 22Nice should emulate the Z80 in-
- struction set and observe the execution of the cur-
- rent program. At the conclusion of program execu-
- tion, 22Nice will report the following informa-
- tion:
-
- * If any Z80-specific instruction codes were
- executed. If this is noted, PROCESSOR=Z80
- should be used for further program execution.
-
- * Any use of I/O instructions. If these are
- present, the program should be examined and
- the instructions modified or eliminated to
- be compatible with the PC hardware.
-
- * Presence of code likely to activate one of
- the V20 bugs. If a message indicating this
- is present, a software emulation (E8080 or
- Z80) should be selected.
-
- Hardware-supported emulation (V20) results in the
- fastest execution speed for a program. 8080
- software emulation (E8080) is approximately 4
- times slower, with Z80 software emulation (Z80)
- about 6 times slower than V20/V30 supported
- hardware emulation. On PC-AT- or 386-class
- machines, the software emulation modes compare
- favorably with a PC-XT class machine using a V20
- processor.
-
- Page 7
-
-
-
-
- GENCOM Operation
- ____________________________________________________
-
-
- PROCESSOR may be abbreviated as PRO.
-
-
-
- Here are some examples of the GENCOM command:
-
- GENCOM DDT PRO=V20
-
- Builds a loader file, DDT.COM. If a V20 is present, its emula-
- tion capabilities will be used. Otherwise, 8080 software emula-
- tion will be performed. Standard DOS input and output will be
- performed.
-
- GENCOM * KEY=WS DIS=ANSI
-
- Builds .COM loader files for all .CPM files present in the cur-
- rent directory. AUTO processor mode is assumed. A special
- WordStar keyboard mapping will be used; console output will emu-
- late a standard ANSI terminal.
-
- GENCOM F:\CPM22\* PRO=Z80
-
- Builds .COM loader files for every .CPM file present in the direc-
- tory F:\CPM22. Z80 software emulation will be performed and stan-
- dard DOS input and output will be used.
-
- GENCOM MYPROG PRO=TEST
-
- Builds a .COM loader file, MYPROG.COM. Z80 software emulation is
- used and a message will be displayed if any Z80-only instructions
- are used. In addition, any code likely to run afoul of V20 bugs
- will be noted, as well as usage of any I/O instructions.
-
- GENCOM
-
- Displays a summary of GENCOM command syntax.
-
-
- Specifying a Custom Keyboard Layout
-
- In addition to several pre-defined keyboard layouts, a custom-
- tailored keyboard "map" can be specified for individual
- programs. No longer is it necessary to remember that "cursor
-
-
- Page 8
-
-
-
-
- Custom Keyboard Definition
- ____________________________________________________
-
- back" is Control-B for Perfect Writer, but Control-S for
- WordStar--a separate keyboard "map" can be created for each
- program.
-
- A keyboard map affects only the cursor keypad and the function
- keys; "normal" keys, (i.e., letters, numbers and symbols) cannot
- be mapped. To define a set of key mappings, a file must first
- be created (using any convenient ASCII editor) containing lines
- of the following form:
-
- key-name "key-values"
-
- Key-name is the name of the key being mapped and may be one of
- the following:
-
- F1, F2, F3...F10 Function keys F1 through F10
- SF1, SF2, SF3...SF10 Function keys Shift-F1 through Shift-F10
- AF1, AF2, AF3...AF10 Function keys Alt-F1 through Alt-F10
- CF1, CF2, CF3...CF10 Function keys Ctrl-F1 through Ctrl-F10
- Up, CUp Keypad up-arrow, Ctrl-up-arrow
- Down, CDown Keypad down-arrow, Ctrl-down-arrow
- Left, CLeft Keypad left-arrow, Ctrl-left-arrow
- Right, CRight Keypad right-arrow, Ctrl-right-arrow
- Home, CHome Keypad Home, Ctrl-Home
- End, CEnd Keypad End, Ctrl-End
- PgDn, CPgDn Keypad PgDn, Ctrl-PgDn
- PgUp, CPgUp Keypad PgUp, Ctrl-PgUp
- Ins, CIns Keypad Ins, Ctrl-Ins
- Del, CDel Keypad Del, Ctrl-Del
- Break Scroll Lock
-
- The key-values part of the definition represents the codes to be
- generated for each key; note that the key-values are enclosed in
- double quotation marks. As many values as can fit on a 255-
- character line may be specified. Commentary can be placed on a
- line after the closing quotation mark, provided that at least one
- space follows the quotation mark.
-
- Lines beginning with an asterisk (*) are ignored and may be used
- for commentary.
-
- Control characters are specified by preceding the corresponding
- printing character by the caret (^). Thus, ^C generates a
- Control-C or ASCII value of 03. A carriage return or Enter
-
-
- Page 9
-
-
-
-
- Custom Keyboard Definition
- ____________________________________________________
-
- character is represented by ^M. A double-quotation mark is repre-
- sented by a pair of double quotation marks (""); a caret (^) is
- represented by a double-quotation-mark-caret sequence ("^).
-
- A keyboard mapping file to be used by a CP/M program is specified
- with the KEYBOARD= parameter in the GENCOM command. GENCOM as-
- sumes that the file type of a keyboard mapping definition file is
- .KEY, but another extension may be specified explicitly.
-
- Let's try an example:
-
- Suppose that we want to provide a cursor keypad and
- simple function key map for WordStar. We first create
- a file (using either WordStar's nondocument mode or the
- DOS EDLIN utility) called STAR.KEY with the following
- contents:
-
- Up "^E" Line up
- Down "^X" Line down
- Right "^D" Character right
- Left "^S" Character left
- PgUp "^R" Page up
- PgDn "^C" Page down
- Home "^QR" Start of document
- End "^QC" End of document
- Ins "^V" Toggle insert mode
- Del "^G" Delete character
- F1 "^J" Help
- F2 "^PS" Start/Stop underline
- F3 "^PB" Start/Stop Bold
- F4 "^PI" Start/Stop Italic
- F5 "^KB" Start block
- F6 "^KK" End block
- F7 "^KV" Move block
- F8 "^KC" Copy block
- F9 "^KS" Save file, continue edit
- F10 "^KD" Save file
-
- Suppose also that our copy of WordStar requires a
- TeleVideo 925 terminal for display. The GENCOM com-
- mand to produce our WordStar WS.COM loader file is:
-
- GENCOM WS DIS=TVI925 KEY=STAR
-
-
-
- Page 10
-
-
-
-
- Running 22NICE.COM
- ___________________________________________________
-
- Note that a keyboard mapping file should not have the
- same name as one of the pre-defined maps that GENCOM
- supports. This is why the mapping file just defined was
- not called WS.KEY--GENCOM already has a predefined map
- named WS.
-
- The contents of the keyboard mapping file are included in the
- .COM loader generated by GENCOM; use of a keyboard mapping file
- increases the length of a .COM loader file by 256 bytes.
-
-
- Running 22NICE.COM
-
- 22Nice's support routine, called 22NICE.COM, provides all of the
- emulation and CP/M support facilities needed to execute a CP/M
- program under DOS. 22NICE.COM can be run in two ways:
-
- 1. As a program that is loaded automatically every time a
- CP/M program is executed. When the CP/M program has
- completed executing, 22NICE.COM is removed from memory.
- This mode of operation suits most applications. It is
- only necessary that the file 22NICE.COM be placed where
- it can be accessed as a normal DOS program. On most
- systems, this will be in the subdirectory usually
- called \DOS. However, 22NICE.COM may also be placed in
- the same directory used to store CP/M programs to be
- run.
-
- 2. As a "terminate and stay resident" (or TSR) program.
- In this operating mode, 22NICE.COM is loaded explicitly
- by entering the DOS command:
-
- 22NICE
-
- 22NICE.COM will load and stay resident until explicitly
- removed with the command:
-
- 22NICE OUT
-
- This operating mode is most useful when the CSAVE com-
- mand is used to save the contents of the CP/M memory
- area for later inspection. Like the load on demand
- mode, the file 22NICE.COM must be placed where it is
-
-
-
- Page 11
-
-
-
-
- User Area Support
- ___________________________________________________
-
- accessible as a normal DOS command file. While
- 22NICE.COM is resident in memory, it occupies about
- 23K.
-
- CP/M program operation in either mode is the same; to execute a
- CP/M program, simply type its name as if it were a DOS program.
-
-
- Support of User Areas
-
- CP/M implements the capability to segment a file directory into
- numbered "user areas". Files created in one user area are not
- visible to another. DOS departs from CP/M in this area and imple-
- ments subdirectories, or "files of files".
-
- 22Nice provides a simulation of user areas by mapping DOS sub-
- directories to CP/M user area numbers. The mapping information
- is supplied by a set of DOS environment variables, defined by the
- DOS SET statement.
-
- As an example, let's "map" the DOS subdirectory \MYCODE to CP/M
- user 2. To do this, the following DOS statement is used:
-
- SET USER2=\MYCODE
-
- All accesses by a CP/M program to user area 2 will result in ac-
- cessing the DOS subdirectory \MYCODE on the current disk. Up to
- 31 user areas can be defined, but user area 0 is predefined to be
- the current (default) directory. That is, the DOS environment
- variables USER1 through USER31 may be used.
-
- The command USERS can be used to show what user areas are
- defined. The syntax of this command is:
-
- USERS
-
- A display of user area-to-DOS subdirectory correspondence will be
- displayed.
-
-
- CSAVE - Write the CP/M Area to Disk
-
- 22Nice provides an analog to the CP/M SAVE command, called CSAVE.
- The syntax of CSAVE is identical to its CP/M counterpart, namely:
-
-
- Page 12
-
-
-
-
- Miscellaneous Topics
- ____________________________________________________
-
- CSAVE page-count file-name
-
- Page-count is the decimal count of 256-byte pages to be saved to
- file-name, beginning with the first byte of the transient program
- area (TPA), located at 100 (hexadecimal). Up to 255 pages can be
- written in this manner.
-
- For CSAVE to operate, 22NICE.COM must have been run in the
- terminate-and-stay-resident operating mode.
-
-
- Disk Drive Reassignment
-
- Most CP/M programs can be reconfigured to make use of any combina-
- tion of available disk drive units. However, a few of the older
- CP/M programs require that drive A: contain CP/M programs and
- drive B: contain data files. While operation under DOS can be
- performed using actual A: and B: drives, it is often desirable to
- make use of the hard disk exclusively.
-
- If you're using DOS 3.1 or later, you can use the DOS SUBST com-
- mand to reassign a drive letter to a hard disk subdirectory. For
- example, to reassign drive A: to access files in the subdirectory
- \MYDISK on the C: drive, the following command could be used:
-
- SUBST A:=C:\MYDISK
-
- To make the "real" drive A: accessible again, use:
-
- SUBST A: /D
-
- If you're using DOS 2.1, the DOS ASSIGN command can be used to
- reassign one drive letter to another. For example, when
-
- ASSIGN A=C
-
- is used, all accesses to the A: drive will be changed to access
- the C: drive. To terminate the drive reassignment, use:
-
- ASSIGN
-
-
-
-
-
-
- Page 13
-
-
-
-
- Miscellaneous Topics
- ____________________________________________________
-
- Locating CP/M Program Files
-
- It's been mentioned that GENCOM generates a loader file for CP/M
- programs. However, 22NICE.COM needs to know where to find the
- program file (.CPM) itself. 22Nice locates program files in the
- following manner:
-
- 1. 22NICE.COM first searches the current directory for the
- .CPM program files.
-
- 2. If the environment variable CPMPATH is defined,
- 22NICE.COM will search the drives and directories named
- by that variable. The syntax for describing a search
- path with CPMPATH is identical to that used for DOS
- PATH; namely, a list of directories or drive names,
- separated by semicolons.
-
- 3. In the absence of any other indication, 22NICE.COM
- searches for a program according to the PATH environ-
- ment variable specification. That is, 22Nice will look
- for a program in the same places and in the same order
- as the DOS command processor.
-
- As an example, suppose all of our system's CP/M program files are
- located in the subdirectory \USR\CPM22. We could indicate this
- to 22Nice by means of the following DOS statement:
-
- SET CPMPATH=\USR\CPM22
-
- Observe that, since DOS is responsible for loading the .COM
- loader files, only the PATH environment variable has any effect
- on the main DOS search path. In other words, CPMPATH only has
- relevance when .CPM program files are involved.
-
-
- Interrupts and 22Nice
-
- 22NICE.COM uses two interrupts to communicate between it and the
- CP/M program being executed. Under normal circumstances, 22Nice
- will automatically select a pair of unused interrupts. However,
- if the message:
-
- No Interrupts--Consult Manual and specify interrupts explicitly
-
-
-
- Page 14
-
-
-
-
- Miscellaneous Topics
- ____________________________________________________
-
- is displayed when 22NICE.COM is loaded, it will be necessary to
- specify a pair of interrupts by means of the environment variable
- 22NICE. This situation usually occurs because of small dif-
- ferences in BIOS ROM initialization between makers of PC systems.
- Usually, interrupt numbers in the range of 128 to 159 are avail-
- able for assignment. Select two numbers from this range and ex-
- ecute the following DOS statement:
-
- SET 22NICE=n1 n2
-
- Where n1 and n2 are the selected interrupt numbers. If, after
- selecting an interrupt set, 22Nice operates without affecting the
- normal DOS operation of your system, a valid interrupt pair has
- been selected.
-
-
- Setting GENCOM Defaults
-
- Default options have been selected for the GENCOM utility that
- reflect what Sydex believes will be adequate for most CP/M ap-
- plications. However, in some cases, it will be desirable to
- change the defaults without explicitly specifying them every time
- GENCOM is run.
-
- Default parameters can be specified by setting the GENCOM DOS en-
- vironment variable to the desired values. Since the DOS SET com-
- mand does not allow the equals sign (=) to be included within an
- environment string, the semicolon (;) can be used in its place.
-
- Thus, to set GENCOM defaults to generate loader files to make use
- of the V20 processor chip, a Televideo display, and a WordStar
- keyboard, the following DOS statement is used:
-
- SET GENCOM=PRO;V20 DIS;TVI KEY;WS
-
- GENCOM defaults set in this way may be overridden at any time
- simply by specifying new values explicitly when executing GENCOM.
- For example, to use the values defined above, but to use Z80
- emulation, the following GENCOM statement could be used:
-
- GENCOM filename PRO=Z80
-
-
-
-
-
- Page 15
-
-
-
-
- Miscellaneous Topics
- ____________________________________________________
-
- Use Of CP/M SUBMIT And XSUB
-
- If you have "batch" files which operate with CP/M 2.2's SUBMIT
- facility, you'll need to modify them to use DOS's batch file
- capability. Usually this will entail no more than the following:
-
- 1. Changing the file name extension from .SUB to .BAT.
- This is done with the DOS RENAME command.
-
- 2. Editing the now-.BAT file, changing all parameter
- references from $1, $2, etc. to %1, %2 and so on.
-
- 3. Instead of using SUBMIT filename to invoke the file,
- simply use filename to do the same.
-
- A special problem arises when XSUB is used in a batch file. DOS
- has no direct analogue of the XSUB function, but it may be simu-
- lated by means of input file redirection. Consider the following
- sample batch file:
-
- XSUB
- SAMPLE $1
- line 1 for SAMPLE
- line 2 for SAMPLE
- ^Z
-
- This file could be rearranged to yield the same results under
- DOS:
-
- echo line 1 for SAMPLE >x
- echo line 2 for SAMPLE >>x
- SAMPLE %1 <x
- DEL X
-
- Of course this is only one possibility; you may wish to make use
- of the pipe facility of DOS, if the input to your program comes
- from another program.
-
-
- Accessing I/O Ports
-
- 22Nice does not support access to 8-bit I/O port numbers via the
- 8080 IN and OUT instructions. This is done for the protection of
- the PC's hardware, as most of the first 256 I/O port addresses on
-
-
- Page 16
-
-
-
-
- Miscellaneous Topics
- ____________________________________________________
-
- the PC relate to fundamental PC hardware operation. Occasionally
- it may be necessary to access a PC I/O port. This can be done by
- means of the 8080 RST 3 instructions.
-
- To read a byte from an I/O port, code the following (in 8080
- code):
-
- LXI D,port number
- RST 3
-
- The contents of the I/O port will be returned in the simulated
- 8080's A register.
-
- To write a byte to an I/O port, code the following:
-
- LXI D,port number
- RST 4
-
- The contents of the simulated 8080 A register will be written to
- the specified port.
-
-
- Accessing PC Memory
-
- During CP/M emulation, a program's memory access is limited to
- the 64K addressing range of the 8080. Should it become necessary
- to inspect the contents of a memory location outside of this
- range, the following RST 5 call can be used:
-
- LXI D,segment
- LXI H,offset
- RST 5
-
- The contents of the memory location at the specified segment and
- offset will be returned in the simulated 8080 A register.
-
-
- IOBYTE Support
-
- The CP/M 2.2 IOBYTE mappings are supported by 22Nice for the con-
- sole, printer, punch and reader as described in the CP/M 2.2 Sys-
- tem Alteration Guide. All other mappings will result in a null
- device access; i.e., data output will be discarded, input will
- result in an end-of-file, and input status will always be data
- unavailable.
-
- Page 17
-
-
-
-
- A Sample Installation
- ____________________________________________________
-
-
- The CP/M punch and reader devices are taken to be the DOS
- auxiliary device. Usually, this is a serial communications port,
- or in absence of a serial port, the null device.
-
-
- Absolute Disk Read and Write
-
- 22Nice contains an interface to disk read and write routines
- present in DOS. When a CP/M program requests a DPB (Disk
- Parameter Block) from 22Nice (BDOS function 31), one is supplied
- which defines a 36-sector track with the allocation block size
- and number of tracks varying according to the capacity of the
- disk being serviced. Note that DOS can describe drives much
- smaller (less than 1K) and much larger (32,000 K) than CP/M;
- 22Nice attempts to build a DPB which best defines the disk in
- question.
-
- Utilities that directly write to a disk without making use of
- BDOS calls should be avoided, as the DOS structure for a disk is
- quite different from that assumed by CP/M.
-
- 22Nice attempts to emulate the disk interface of CP/M. However,
- because of differences in implementation, disk sizes reported by
- STAT and similar programs should be considered to be approxima-
- tions only.
-
-
- Maximum Program Size
-
- In the interest of compatibility, 22Nice implements a slightly
- larger than "stock" 64K CP/M memory layout. About 59K of memory
- can be used for program execution. The remainder of memory is
- used to contain CP/M BIOS support routines and file tables.
-
-
- A Sample 22Nice Installation
-
- We present here a sample installation of the CP/M version of
- WordStar Corporation's WordStar program on a 80286 PC AT "clone"
- with a hard disk.
-
- The following steps are involved:
-
-
-
- Page 18
-
-
-
-
- Glossary
- ___________________________________________________
-
- 1. Make a subdirectory on the hard disk (drive C;), call
- it \OSBORNE:
-
- C> MKDIR C:\OSBORNE
-
- 2. Copy 22NICE.COM and GENCOM.COM into C:\OSBORNE:
-
- C> COPY A:22NICE.COM C:\OSBORNE
- C> COPY A:GENCOM.COM C:\OSBORNE
-
- 3. Using Sydex's 22Disk program, copy the files WS.COM,
- WSMSGS.COM, WSOVLY1.COM from the Osborne program dis-
- kette to C:\OSBORNE. 22Disk will automatically change
- the .COM file types to .CPM:
-
- C> CTOD /OSB1 A:*.COM C:\OSBORNE
-
- 4. Run GENCOM on WS.CPM to generate a loader for 22Nice:
-
- C> GENCOM WS DIS=OSB KEY=WS
-
- 5. Move to the \OSBORNE subdirectory and run WordStar:
-
- C> CD \OSBORNE
- C> WS
-
-
- A Short Glossary of CP/M Terms
-
- BDOS Under CP/M the part of the operating system which manages
- file and console operations at a hardware-independent level.
- The BDOS receives requests from an application program and
- translates them into low-level operations that the BIOS can
- understand and act on.
-
- BIOS Under both CP/M and DOS, an acronym for Basic Input/Output
- Subsystem. This is the portion of the operating system that
- deals with the lowest-level interface to peripheral devices
- such as disks and displays.
-
- CCP Under CP/M the Console Command Processor. This is the part
- of the operating system which interprets commands from the
- console and acts upon them. This interface is only used
- when CP/M is at a system-level command prompt (e.g., A>);
- during execution of application programs, it is not active.
-
- Page 19
-
-
-
-
- Glossary
- ___________________________________________________
-
-
- DDT is the name for the CP/M debugging utility and stands for
- Dynamic Debugging Tool. The acronym's similarity to a well-
- known insecticide is not coincidental.
-
- FCB stands for File Control Block. In both DOS and CP/M, this is
- a small memory-resident table used to access a file. When a
- file is opened or created, CP/M fills in certain fields in
- the FCB; the user program fills in others. In DOS, the FCB
- is considered to be obsolescent and has been superseded by
- the I/O handle facility, which more closely resembles the
- approach taken by Unix. 22Nice translates CP/M FCB func-
- tions to their corresponding DOS handle functions.
-
- IOBYTE is a name for a memory location which determines where
- most basic console and printer I/O will be directed. It is
- possible to redirect console output to the printer by ap-
- propriately setting this location, for example.
-
- PIP is the name of CP/M's Peripheral Interchange Program. It cor-
- responds roughly to DOS COPY.
-
- STAT is a CP/M command used to provide several different serv-
- ices. Generally, STAT is used to provide information regard-
- ing file lengths and the amount of storage available on each
- disk.
-
- SUBMIT is the CP/M batch file processor. Unlike DOS, which im-
- plicitly executes batch files, SUBMIT must be explicitly
- called to begin batch file processing.
-
- TPA stands for Transient Program Area. In CP/M, this the area of
- memory that is used to run programs.
-
- USER AREA or NUMBER is a primitive CP/M facility to provide a
- logical division between files in a disk's directory. DOS
- uses the subdirectory facility to achieve the same end in a
- more general fashion. In essence, a file name is
- "qualified" by a user number byte to distinguish it. Note,
- however, that all files in CP/M are still kept in one direc-
- tory.
-
- V20 A plug-in replacement for the 8088 central processor in-
- tegrated circuit found in most XT-type PC's. The V20 is
- made by Nippon Electric Corporation (NEC) of Japan and incor-
-
- Page 20
-
-
-
-
- Glossary
- ___________________________________________________
-
- porates not only the 8088 instruction set, but also the in-
- struction set of the 8080 "8 bit" processor used in many
- CP/M computers. The advantage that this hardware implementa-
- tion presents over software emulation is one of much greater
- speed.
-
- V30 A plug-in replacement for the 8086 CPU, otherwise identical
- in capability to the V20, above.
-
- XSUB is a facility within SUBMIT processing that allows not only
- CP/M commands, but program data to be diverted from the con-
- sole to a disk file. There is no precisely corresponding
- facility in DOS.
-
-
- What's New in Version 1.3
-
- Version 1.3 represents a major revision of 22Nice. For a list of
- differences, consult the section titled If You're Upgrading....
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 21
-
-
-
-
- The Sydex Product Line
- ____________________________________________________
-
-
- The Sydex Product Line
-
- AnaDisk -- The compleat diskette utility. Nothing like it any-
- where else; scan, edit, repair and copy just about any kind of
- diskette. $25.00 ($150.00 site) registration fee.
-
- Con>Format -- Concurrent "background" diskette formatter. Fea-
- tures "pop-up" operation and "hot key" activation. You've got to
- see it to believe. Supports all current DOS formats. $15.00
- ($50.00 site) registration fee.
-
- 22Disk -- Transfer files, format, examine and erase files on
- "foreign" CP/M diskettes on your PC. Includes tips on supporting
- 8" and 5.25" single-density diskettes. Contains definitions for
- over 200 different formats. $25.00 ($100.00 site) registration
- fee.
-
- TeleDisk -- Turn any diskette into a compressed data file and
- vice-versa. Allows you to send and receive entire diskettes via
- modem. Even works with some "copy-protected" diskettes. $20.00
- ($150.00 site) registration fee.
-
- COPYQM -- Mass diskette duplicator. Format, copy and verify mul-
- tiple diskettes from a single master. Implements "no keyboard"
- interaction mode and drive "round robin" servicing. Supports all
- standard DOS formats. $15.00 ($50.00 site) registration fee.
-
- FORMATQM -- Mass diskette formatter - format a box of diskettes
- at a single sitting. Implements "no keyboard" interaction mode
- and drive "round robin" servicing. Supports all standard DOS for-
- mats. $10.00 ($40.00 site) registration fee.
-
-
- Information on any of these products can be obtained from Sydex
- by calling or writing us at:
-
- Sydex
- P.O. Box 5700
- Eugene, OR 97405
- Voice: (503) 683-6033
- FAX: (503) 683-1622
- Data: (503) 683-1385
-
-
-
- Page 22
-