home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Emulators / Begemot-2.0 / README < prev   
Encoding:
Text File  |  1994-11-15  |  8.4 KB  |  221 lines

  1. Sat Nov 12 17:24:09 MET 1994
  2.  
  3.     p11-2.0
  4.     -------
  5.  
  6. This is my pdp-11 emulator. It currently runs under bsdi (i486), SunOS 4.1 and
  7. 5.x (sparc), and OSF1 (alpha) systems. To compile it you need gcc 2.x and GNU
  8. make. Binary distributions still need gcc being installed to pre-process the
  9. configuration files. This release has been tested with gcc version 2.5.8 and
  10. GNU make 3.71. Any volunteers are welcome to port it to other architectures
  11. and/or OS (see porting section).
  12.  
  13. P11 currently emulates the following configuration:
  14.     - a KDJ11A processor (including fpp)
  15.     - one or more RL-controllers (RLV12) with up to 4 RL02 each
  16.     - a MRV12 option (boot-rom/maintenance and display register)
  17.     - one or more KL11A controllers with up to 4 serial lines each
  18.     - a standard printer interface
  19.  
  20.  
  21. Emulation speed has not been fully evaluated yet. I tested vfy on a RL02 disk
  22. under RSX+ and got the following results:
  23.  
  24.                 VFY DL2:/RC              VFY DL2:
  25.  
  26. Real KDJ11A+RL02        2:05            1:05
  27. BSD/386 1.1 486/66        1:10            2:55
  28. SunOS 4.1.3 SS10/41        0:39            2:08
  29. SunOS 4.1.3 SS10/512        0:36            1:53
  30. SunOS 5.3   SS20/612        0:24            1:22
  31. OSF1  1.3   3000/300LX AXP    0:44            2:08
  32.  
  33. Recently I found a cpu speed test program written by B. Z. Lederman
  34. (ftp.update.uu.se:/pub/pdp11/rt/testit/spdcpu.{doc,mac}). Some of the results
  35. are in the file Misc/spdcpu.res (times in microseconds). You can see that on
  36. high-end workstations the emulator is slightly faster then the original KDJ11A
  37. not fetching instructions from cache. With instructions in cache the KDJ11A is,
  38. of course, faster. Disc I/O on the emulator is many times faster than real disc
  39. I/O - RMD shows up to 500kW/sec average througput during VFY (on a fast sparc).
  40. Anyway, emulation speed even on an i486/66 is tolerable. 
  41.  
  42. P11 successfully runs RSX11M-PLUS and UN*X Version 7. I found nobody
  43. to test it with RT11 or TSX11, so you are welcome.
  44.  
  45. Because I don't have any processor diagnostics there may be emulation bugs
  46. left. Some of the decisions to emulate a specific command in a specific way
  47. where made by writing a test program and run it on a real machine. This is
  48. especially true for the fpp commands. (btw., the fpp documentation is _very_
  49. bad. The documentation bugs once made in the very early versions are
  50. simply copied up to the KDJ11A documentation). If you have processor diags and
  51. could manage it to run them on p11, please let me know about the results.
  52.  
  53. 1. Getting started
  54. ------------------
  55.  
  56. Make sure you have at least 15 MBytes of free disk space (excluding disk
  57. images). If you have a binary distribution read section 2 below. If you have
  58. the source distribution unpack the tar file and set up the environment variable 
  59. PATH11 pointing to installation directory, i.e. if you are in '/usr/begemot' 
  60. and type 'tar xvf p11src-2.0.tar' you should set 'PATH11=/usr/begemot/11;
  61. export PATH11'. If you plan a regular use, do this in you .profile.
  62.  
  63. The source tree is organized as follows:
  64.  
  65. 11/        - emulator root
  66. 11/emu/        - emulator source
  67. 11/emu/Utils    - support programs
  68. 11/emu/IOProgs    - satellite programs for TTY and LP support
  69. 11/emu/Misc    - real misc, look there
  70. 11/emu/Tests    - sources for various test programs
  71. 11/run/        - working directory for running p11
  72. 11/disks/    - here you can store your disk images
  73.         
  74.  
  75. 2. Installing a binary distribution
  76. -----------------------------------
  77.  
  78. Make an emulator root directory, say '11' and an emulator directory '11/emu'.
  79. cd into '11/emu' and unpack the tar file. Setup environment variable PATH11
  80. to point to '11'. Go into '11/emu/Tests' and copy '../Misc/p11conf.sample' to
  81. 'p11conf'. Say '../p11 -f f.11', start telnet from another screen
  82. 'telnet localhost 10000' and say 'p' to p11. Telnet should show you a list
  83. of instruction mnemonics and 'fpp test ok'. For more see section 'Running'.
  84.  
  85.  
  86. 3. Compilation
  87. --------------
  88.  
  89. Cd into 11/emu.
  90.  
  91. Configuration should be easy on the supported platforms. There is a shell 
  92. script 'config' which generates the makefiles from template and option files by 
  93. using cpp. (I could have used imake, but I didn't want to complicate things. 
  94. Life is hard enough without imake, isn't it?) Typing config without arguments
  95. gets you a list of supported platforms. Use one of:
  96.  
  97.     config i386-bsdi
  98.     config sparc-sunos
  99.     config sparc-solaris
  100.     config alpha-osf1
  101.  
  102. or simply:
  103.  
  104.     config -a
  105.  
  106. (auto-configuration) to configure p11 for you local system.
  107.  
  108. If all went ok you may try 'gmake deps ; gmake'. The building process
  109. may take 5-15 minutes, depending on your local system.
  110.  
  111. If that also wents ok change to '11/run' and try p11. P11 should come up
  112. with '@' and you may play with the (somewhat extended) monitor.
  113.  
  114.  
  115. 4. Running
  116. ----------
  117.  
  118. If you are lucky enough to have an OS for your PDP place the rl02 images
  119. into '11/disks'. Copy Misc/p11conf.sample to 11/run/p11conf and edit it to
  120. mount these images on the appropriate drives. (p11conf.sample shows how to
  121. run 2 (or more) different OS. To boot the right one you type -D??? at the
  122. command line.)
  123.  
  124. If you have images for a different type of disks you may write an appropriate
  125. device emulation. I'll be happy to receive any enhancements being done.
  126.  
  127. Enjoy.
  128.  
  129.  
  130. 5. Selecting Options
  131. --------------------
  132.  
  133. In each directory exists a Makefile.in master makefile. During the 
  134. configuration process these files get processed by cpp to produce Makefiles.
  135. Architecure and operating system dependencies are reflected by including
  136. Makefile.mach. Makefile.mach itself is a link to the appropriate 
  137. Config/M-${arch}-${sys} file. Edit this file to adopt p11 to you local
  138. environment.
  139.  
  140.  
  141. 6. Porting/Adding new features
  142. ------------------------------
  143.  
  144. If you want to add devices to the emulator or you want to port it
  145. to a different architecture/OS and want me to include you code into
  146. future release, try to stick to the following rules:
  147.  
  148. 1. look at the existing code and try to figure out how it is organized
  149.  
  150. 2. if you write a device look at one of the existing ones (best is probably
  151.    dev_rl.c). This should help you to understand what is going on there. You
  152.    must include your device's file name in the Makefile.in CSRC section.
  153.  
  154. 3. if you port to a new cpu-architecture you should setup the Config/m-$arch.h
  155.    and Config/r-$arch.h appropriately. If you would like to have Floating Point
  156.    you need to create Config/f-$arch.h as well. If you are to lazy to
  157.    write the machine specific parts or you have a good compiler you can
  158.    try the generic code. If you don't create one of the files, the generic
  159.    variant is used.
  160.  
  161. 4. if you port to a new operating system for one of the already supported
  162.    cpu-architectures, you will have to craft the files Config/s-$sys.[ch].
  163.  
  164. 5. in both cases 3 or 4 you will also have to setup M-$arch-$sys.
  165.  
  166. 6. if you create a new subdirectory you can take advantage of the existing
  167.    Makefile.template. Don't forget to include the subdirectory name in the
  168.    Makefile.in SUBDIRS line.
  169.  
  170. 7. Wishes
  171. ---------
  172.  
  173. This is a unsorted list that comes into mind at the time of this writing.
  174.  
  175. 1. It would be nice to have processor/controller/device/... diagnostics
  176.  
  177. 2. if you have a great idea how to speed up the memory system, try it. I
  178.    think it eats up most of the time.
  179.  
  180. 3. I would really like to have an emulated DEQNA. The main problem seems
  181.    to be the rather bad documentation. It would be nice to speek IP with
  182.    the emulated pdp.
  183.  
  184. 4. It shouldn't be hard for let's say 3-4 people to create a v7 compatible
  185.    system in a couple of weeks from scratch (the kernal only of course)
  186.  
  187. 5. wouldn't it be nice to have rk05 (I love them - they are so nicely small)
  188.    and rx01/02 emulated?
  189.  
  190. 6. how about a vt220 emulator for these dummy pc consoles or X? (Especially
  191.    I would like to have the alternate keypad feature to use EDT)
  192.  
  193.  
  194. 8. License restrictions
  195. -----------------------
  196.  
  197. I don't like copyright's very much, the more if the claim and terms eat up
  198. the first screen entirely when editing files. But I must protect my own work,
  199. so the GNU General Public License applies to the entire code. Please
  200. look at the file LICENSE or feel free to contact me if you have any
  201. questions regarding reusage of the source.
  202.  
  203. 9. Acknowledgements
  204. -------------------
  205.  
  206. I would like to thank the Deutsches Herzzentrum Berlin, Forschungsstelle
  207. fuer Kunstherz und Sensorik, for giving us access to their DEC AXP system.
  208.  
  209. 10. How to contact me
  210. ---------------------
  211.  
  212. Please send suggestions, bugs, bug-fixes, code, OS-sources, flying saucers to:
  213.  
  214.     'micheel@fokus.gmd.de'
  215.  
  216. Please include the string P11 in the message subject to simplify 
  217. sorting them out.
  218.  
  219.  
  220.     Begemot Willi (Joerg Micheel & Harti Brandt)
  221.