home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / cpem8010.zip / readme < prev    next >
Text File  |  1995-02-17  |  7KB  |  167 lines

  1. CP/M80 2.2 emulation for OS/2 and DOS                        020594
  2. -------------------------------------
  3.  
  4. This is a more or less complete emulation of the CP/M80 "operating
  5. system" under OS/2 and DOS (porting to other OSes should be no
  6. problem, porting to other CPUs might be a problem due to big/little
  7. endian).
  8.  
  9. For me the emulation is/was required, because I have to develop S/W
  10. for Z80 based systems, without actually having a CP/M80 machine (~8
  11. years ago I had, using a Z80-card in dedicated DOS-WSs is annoying).
  12. Other PD/SW emulations lack some features, I do require - thus
  13. self-developing was announced.  The idea to put this piece of S/W
  14. under the GPL were the benefits I have taken from the many projects of
  15. the FSF.  I hope the emulator will be useful for at least a handful of
  16. people having access to the Internet (but in fact Internet is not a
  17. requirement).
  18.  
  19. But again: there is absolutely NO warranty about performance,
  20. reliability and so on for this product.  In fact this piece of S/W is
  21. not intended as a product - there will be no support in any direction.
  22.  
  23. For the complete bunch of limitations, have a look at the GPL in
  24. COPYING or the most current version available at prep.ai.mit.edu.
  25.  
  26. Anyway, if you have ideas/complains/bug fixes or praise, do not
  27. hesitate to post them to me (esp. the last ones).
  28.  
  29.  
  30. Installation
  31. ------------
  32. Installation is easy: just copy the binary C.EXE to a sub-dir in your
  33. PATH, setup the environment and that's it.  The env-vars contain the
  34. following:
  35.  
  36. CPEMOPT
  37.     contains your set of standard options for the CPEM-emulation
  38.  
  39. CPEMMAP
  40.     contains the standard CP/M-drive to OS-subdir mapping.  The
  41.     drivers are separated by ';', i.e. 'CPMMAP=f:\bin;c:\os2\cpm'
  42.     means map CPM-'A:' to OS-'f:\bin' and CPM-'B:' to OS-'c:\os2\cpm'
  43. CPEMMAP0
  44.   :     these are the dedicated maps for CP/M-user 0..15;  initial
  45.   :     setup for the maps is done thru CPEMAP
  46. CPEMMAP15
  47.     Anyway the default drive/dir of the OS is inherited as default
  48.     drive to CP/M.  Also for the matching CP/M drive only this directory
  49.     can be used for read/write access of files.
  50.  
  51. CPEMPATH
  52.     these is the most 'advanced' feature of this CP/M emulation !
  53.     Files, that aren't found thru the mapping, are searched thru this
  54.     path.  Another 'remarkable' thing is, that files found in this way
  55.     are marked read-only (so put your compilers and so on in the
  56.     CPEMPATH and not in CPEMAP!)
  57.  
  58. TERM & TERMCAP
  59.     these are the optional env-vars for termcap usage.  Currently only
  60.     tvi920/debug/none on the CP/M-side are emulated (for most of the
  61.     screen based applications use the '-o' option to speed up screen
  62.     output significantly -> output buffering).  Thanks to termcap, the
  63.     emulator will run with nearly every terminal around (on OS-side) -
  64.     standard output terminal for OS/2 and DOS will be ANSI (or
  65.     something close) anyway.
  66.  
  67.  
  68. Commandline-Options
  69. -------------------
  70. Most of the options are self-explaining, just type 'c' or whatever,
  71. you have called the CPEM-emulator.
  72.  
  73. Don't mix-up the terminal emulation on CP/M-side and the one on
  74. OS-side.  The term-emulation on CP/M-side is setup thru the '-t'
  75. command-line option and the capabilities built in the CP/M-emulator,
  76. whereas the term-emulation on OS-side is determined by the env-vars
  77. TERM & TERMCAP; the capabilities on OS-side are characterized by the
  78. TERMCAP-entry and the terminal (-emulator) on OS-side.
  79.  
  80. There exists an optimized version (C.EXE) and a debugging version
  81. (CDEB.EXE) of the program.  The debugging version offers you more
  82. command-line options for 'debugging' purposes (I'd never thought).
  83. E.g. there is an option for register output in single steps (lots of
  84. output!) and one for profiling for finding the most used opcodes and
  85. so on...  The optimized version offers slightly higher thru-put.
  86.  
  87.  
  88. File Searching
  89. --------------
  90. During open, files are searched in the following order:
  91. -  if the CP/M drive equals the OS start drive, look for file
  92.    in OS start drive/dir;  if found, file is read/write
  93. -  if not found, search file thru mapping (CPEMAP);  if found and not
  94.    OS start drive, file is read/write;  if found and OS start
  95.    drive, file is read-only
  96. -  if not found, search for file in the user-0 map;  if found, file
  97.    is read-only
  98. -  otherwise, search file thru path (CPEMPATH);  if found, the file
  99.    is marked read-only
  100.  
  101. Note1: file creation/deletion and so on skips the mapping for user-0
  102.        and file searching, i.e. the resulting OS path is generated
  103.        directly thru map / start drive/dir
  104. Note2: the above also implies, that the mapping is ignored for
  105.        creation of files for the OS start drive
  106. Note3: OS start drive/dir is the place, you started the emulator from
  107. Note4: CP/M80 binaries have the extension .CPM (not .COM).  All
  108.        binary-names are remapped internally.  The one exception is the
  109.        name of CPMPROG in the commandline, where no remapping takes
  110.        place;  anyway default-extension is .CPM again.
  111.  
  112.  
  113. Weak Points
  114. -----------
  115. -  not complete (neither the CPU nor the BDOS nor the BIOS emulation)
  116. -  documentation
  117. -  comments (if present) are sometimes in german
  118. -  drive remapping/searching may lead to unintended results,
  119.    i.e. copying files from drive x: to drive x: can result in files in
  120.    different subdirectories, which is necessarily not the intended
  121.    thing
  122. -  not the fastest emulation - but nevertheless:  it's written in C/C++
  123.    with some optimizations for 386
  124. -  there will be problems in porting the emulator to big-endian machines
  125.  
  126.  
  127. Stronger Points
  128. ---------------
  129. works with many CP/M80 software including turbo-pascal 3.0, turbo-modula
  130. 1.0, WordStar, Slr180-Assembler, Strukta-preprocessor, DSD-Debugger, ...
  131.  
  132.  
  133. Requirements
  134. ------------
  135. -  For usage under OS/2 emx.dll is required - additionally for usage under
  136.    OS/2 inside a DOS-box the RSX-DPMI-extender (RSX.EXE) is highly recommended.
  137. -  For usage under DOS, you will need EMX.EXE or RSX.EXE as extenders.
  138. -  For usage of the termcap-capabilities, you will need a definition-file
  139.    termcap.dat
  140. You can obtain the emx runtime package and the RSX-extender at well known
  141. ftp sites all around the world.  ftp.cdrom.com and its mirrors are always
  142. a good choice.
  143.  
  144.  
  145. Acknowledgements
  146. ----------------
  147. FSF               for GCC, G++ (2.6.3 used), libg++, EMACS (19.25 used)
  148. Eberhard Mattes   for the GCC,EMACS ports to OS/2
  149. Rainer Schnitker  for the RSX DPMI-DOS extender
  150. others            (many of them) for porting utilities
  151.  
  152.  
  153. History
  154. -------
  155. 020594   in BDOS.CC LRU scheme for FCBs introduced, to limit number of
  156.          open files to a reasonable number
  157. 010295   'ported' to gcc2.6.3 (emx-0.9a) - pitfall is, that the compiler
  158.          seems to generate more 'sub-optimal' code.  As a consequence,
  159.          the code size increased (50%) and the emulation speed decreased
  160.          by about 5% (may be load time)
  161. 160295   small changes for ^C handling in terminal emulation mode.
  162.          note:  the ^C handling seems to work not correctly under RSX
  163.          the emulator is very stable - thus version 1.0 is released
  164.  
  165.  
  166. EMAIL:    s_griech@ira.uka.de            (Karlsruhe, Germany)
  167.