home *** CD-ROM | disk | FTP | other *** search
/ Brotikasten / BROTCD01.iso / spectrum / jpp / jpp.txt < prev    next >
Text File  |  1992-12-16  |  39KB  |  784 lines

  1. This program emulates a Sinclair Spectrum 48k Z80-based computer 
  2. on any PC with at least an 80386SX processor and VGA graphics.
  3.   The following Spectrum features are implemented:
  4. - Graphics, nearly perfectly.  The border is implemented, but only 
  5. PJPP emulates flashing and special effects.
  6. - The keyboard, nearly perfectly.
  7. - Kempston joystick, if you have a PC joystick.  Both buttons on 
  8. the PC joystick press the single Kempston button.
  9. - Sound, but only one of the versions with the correct pitch.
  10. - Not the tape interface.
  11.  
  12.  
  13.  
  14.                        Licence agreement
  15.  
  16. JPP is copyright (c) 1991-92 Arnt Gulbrandsen, except spconv.exe,
  17. which is copyright (c) 1992 Henk de Groot, and specdisc.exe, which 
  18. is copyright (c) 1992 Brian Havard.
  19.   All rights are reserved, with the sole exception that, as long 
  20. as the archive is kept together and no fee is involved, JPP may be 
  21. copied by anyone.
  22.   It is acceptable for BBSes to charge for general use but not 
  23. specifically (additionally) for downloading of JPP.
  24.   Disk vendors, user groups, or others who wish to distribute JPP 
  25. for a fee may apply for permission.  Write to Arnt Gulbrandsen, 
  26. Kometv. 8, N-7036 Trondheim, Norway, or agulbra@pvv.unit.no.
  27.  
  28.  
  29.  
  30.                              Files
  31.  
  32. spconv.exe     Converts snapshots between various formats.
  33.                  Written by Henk de Groot.
  34. groot.rom      A modified ROM.
  35. jpp.cfg        The configuration file.
  36. jpp.exe        The main emulator.
  37. jpp.txt        This file.
  38. js.exe         Reports how the joystick behaves.
  39. pjpp.exe       The exact-speed version, for very fast machines.
  40. readme.txt     A GIF showing, among others, Traci Lords.
  41. specdisc.exe   Converts snapshots on MGT disks (48K SNP) to
  42.                  .SNA format.  Written by Brian Havard,
  43.                  s902150@minyos.xx.rmit.oz.au.
  44. spectrum.rom   The Spectrum ROM.
  45. tk95.rom       The Micro Digital TK95 ROM (a Spectrum clone).
  46.  
  47.  
  48.  
  49.                              Usage
  50.  
  51. JPP will try to interpret any command-line argument as either a 
  52. ROM image or a snapshot, and load it.
  53.   During execution, the 40 keys which correspond in layout to the 
  54. Spectrum keyboard work as you'd expect.  There are also a number 
  55. of extensions:
  56. - Enter is Enter.
  57. - Backspace is Caps-0.
  58. - Both shifts are Caps-shift.
  59. - Both alts are Symbol-shift.
  60. - 0-9 on the keypad should work.
  61. - +-*/ on the keypad work by 'pressing' Symbol-shift and another 
  62. key.
  63. - The cursor keys are Caps-5678.
  64.   If you 'press' Caps-shift or Symbol-shift in several ways (eg. 
  65. by pressing both DEL and a shift key) the (Spectrum) key will be 
  66. released as soon as you release one (PC) key; this is because the 
  67. emulator only counts whether a key is pressed or not, not (I know 
  68. this sounds meaningless) how many times each key is pressed at 
  69. once.
  70.   Seven keys between 0-P-L-M and Backspace-Enter-Shift are unused.  
  71. Unfortunately there's no way to find out what they characters they 
  72. normally send, so JPP can't feed the 'normal' character to the 
  73. Spectrum.  The key immediately to the right of 0, for instance, 
  74. sends - and _ on North American keyboards, but + and ? on my 
  75. Norwegian keyboard.
  76.   Some function keys are interpreted by the emulator:
  77. - F2 saves a snapshot.
  78. - F3 loads a snapshot.
  79. - F4 loads the snapshot which was saved or loaded last; very handy 
  80. if you need to try a difficult part of a game again and again.
  81. - F5 disables the sound.  Oh, blissful silence!
  82. - F6 enables the sound.
  83. - F10 and F12 both abort the emulator immediately.
  84.   All other keys are ignored, except Ctrl-Alt-Del, which reboots 
  85. the computer.
  86.  
  87.  
  88.  
  89.                      Windows, DV, OS/2 etc
  90.  
  91.   JPP is a real PC program; extremely aggressive towards operating 
  92. systems.  It locks OS/2 2.0 up without even trying.  "Write 
  93. down these numbers and call IBM."
  94.   If, however, you want to use Windows or something, you should 
  95. configure it so that JPP
  96. - gets control of the hardware timers.  Without it many Spectrum 
  97. games will run at a third of the intended speed.
  98. - won't share the CPU when it's running in the foreground.
  99. - won't run in the background.
  100. - gets access to the sound.  If you don't want sound, press F5.
  101. - won't share the screen.  Ten points to any straitjacket which 
  102. manages to run JPP in a window.
  103. - is allowed to do I/O.
  104.   When JPP is brought back to foreground the screen may flicker 
  105. wildly.  Press F3 then Esc to fix it.
  106.  
  107.  
  108.  
  109.                             JPP.CFG
  110.  
  111. This is the configuration file.  Presently it can only give the 
  112. location of support files, whether the sound should initially be 
  113. disabled, and which ROM file is the default.
  114.   It is a case-insensitive pure text file.  All whitespace and 
  115. everything after # on a line is ignored.  Each line may be up to 
  116. 255 characters, and is of the format <option>=<value>.
  117.   <option> may be either "sound" or a file specification (which 
  118. may include multiple * wildcards).
  119.   If <option> is "sound", <value> may be "on" or "off".
  120.   If <option> is "default-rom", <value> must be a file name, which 
  121. will NOT be expanded according to the redirection rules.
  122.   If <option> is a file specification, <value> must be a series of 
  123. directories separated by ";".   I recommended that the directories 
  124. be specified as absolute paths.
  125.  
  126.  
  127.  
  128.                      Copying games to a PC
  129.  
  130. I just put in support for reading tapes.  It doesn't work for me,
  131. and I won't try to fix it, but you could always try it:  First
  132. you use VREC (enclosed with the Soundblaster card) or another
  133. sampler to copy the entire tape to disk.  Any frequency should
  134. do.  The result should be fairly large, 4 megs or so, and be
  135. called "tape-in.voc".  Then start PJPP from the directory where
  136. the sample is and type LOAD "".  Oh, and remember to press F2 to
  137. write the snapshot to disk when it's loaded, or you'll have to
  138. keep that 4-meg file.  Three points:  Since it doesn't depend on
  139. the real tape speed, PJPP can read (no it can't) tapes on any
  140. 386/486, even if not in real time.  Speedlock, Lenslock and other
  141. loaders that depend on the R register won't work.  And, since I
  142. use 32-bit arithmetic, there may be anomalies every 613 seconds.
  143. To be safe, load the game immediately after starting PJPP.
  144.   Much easier, if you have a Plus D/Disciple/MGT disk drive, is to 
  145. snap the game to it, then use Specdisc to convert it to .sna 
  146. format.  This has the disadvantage that the game may detect that 
  147. the Spectrum has a disk drive and presume that it won't disappear 
  148. (which it does once the snapshot is run under an emulator).
  149.   Alternatively, a Mirage Microdriver snapshot box may be used to 
  150. snap the game, either to Microdrive or to tape.  From a Microdrive 
  151. it's easy to transfer it to a PC via serial cable.  From tape it's 
  152. rather hard.
  153.   One real hacker rewrote his Spectrum ROM to snap directly to 
  154. serial cable; he just triggers an NMI, the game is sent out and in 
  155. the other end of the cable a COPY command or something stores the 
  156. output directly to a snapshot file.  Not for the novice, but very 
  157. elegant.
  158.   Peter McGavin's emulator can read from tape via a sound sampler, 
  159. and uses the same snapshot format as JPP.
  160.   Two other PC emulator can read Spectrum tapes via the parallel 
  161. port.
  162.  
  163.  
  164.  
  165.                        The CPU emulation
  166.  
  167. My Z80 emulation code is 50-100% faster than any other Z80 
  168. emulator I've seen on the PC.  (Whoops, no, not any more.  G. A. 
  169. Lunter of the Netherlands has written one which sometimes is 
  170. nearly as fast.)  The main reasons are that nearly all the Z80 
  171. registers are kept in 386 registers and that very little time is 
  172. spent on instruction decoding.  The design is based on Peter 
  173. McGavin's Spectrum emulator on the Amiga.
  174.   It is perfectly possible to rewrite JPP to work on a 286, less 
  175. than a day's work, but it would run half as fast again on a 286/16 
  176. as this version does on a 386SX/16.  Too slow to bother, IMHO.  If 
  177. you only have a 286, get Mr. Lunter's emulator.  It won't run fast 
  178. enough, but it will run.
  179.   The register allocation is as follows:
  180.  Z80  386
  181.   AF  AX       F is kept in AH, A in AL
  182.   BC  CX
  183.   DE  DX
  184.   HL  BX