home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 38 / ZGIDEMO.iso / Emulatori / x128v08s.zip / x128.txt < prev    next >
Text File  |  1997-10-04  |  40KB  |  1,039 lines

  1. ****************************************************************************
  2. **                    X128 Spectrum 128 Emulator V0.8                     **
  3. **                            by James McKay                              **
  4. ****************************************************************************
  5.  
  6. X128 runs under DOS, but can run under Windows '95 just fine.
  7. A 486DX+ is recommended.  For the Sound Blaster version, a 486DX2-66 is
  8. recommended.
  9.  
  10. The author accepts no responsibility for any damage caused to anything by
  11. this software - no software is bug free! Although it's never done my machine
  12. any harm so far...
  13.  
  14. ========
  15. FIRSTLY:
  16. ========
  17. See further down the text file for details about the new TZX files!
  18.  
  19. Starting from V0.7, x128 comes in two varieties:
  20.  
  21. 1.  Adlib version.  This is like the older version of x128, and supports
  22. Adlib and internal speaker sound.
  23.  
  24. 2. S.A.O.M. (Special Audio Output Mode) version, this uses the SB to produce
  25. excellent quality sound, including the 48k internal speaker and AY speech!!
  26.  
  27. The ZIP file will be called X128V08A.ZIP for the Adlib version, and
  28. X128V08S.ZIP for the SAOM version.
  29.  
  30. The SAOM version requires a faster machine than the Adlib version, if your
  31. machine isn't fast enough then the output will be fuzzy.  Also the SAOM
  32. version cannot autodetect the machine speed, basically, if you try to set
  33. the SAOM version to go at a speed which makes the sound fuzzy, then you are
  34. asking it to go too fast.  Do not think that as a result of this,
  35. your P266 MMX will run it ridiculously fast, this is not the case, and
  36. generally, if you do have a faster machine then SAOM is the version for you.
  37.  
  38. Also note that even though low end 486s cannot use the SAOM version without
  39. fuzzy sound, it is worth a go, just to hear the speech!
  40.  
  41. ========================================
  42. EASY GUIDE TO SPECTRUM FILES YOU CAN USE
  43. ========================================
  44. file.z80 : Use F5 to load.
  45. file.sna : Use F5 to load.   ** NEW - Supports SNA 128! **
  46. file.slt : Use F5 to load.
  47. file.voc : Use F7 to select, then type load "" or use tape loader. *
  48. file.tap : Use F7 to select, then type load "" or use tape loader.
  49. file.tzx : Use F7 to select, then type load "" or use tape loader. *
  50. file.dsk : Use F12 to select then use loader (in +3 mode).
  51. file.trd : Use F12 to select (in TR-DOS), LIST (the K key) then <RETURN> for
  52.            a directory, then do RUN "filename" <RETURN>.
  53.  
  54. * With TZX and VOC files, you now have to unpause them in order for them to
  55.   play.  Press Alt-F8 to do this (make the play icon turn white).
  56.  
  57. If you get a .z80 file with other files called .dat then these will be
  58. dealt with automatically, just load the .z80 as described above, and if the
  59. filenames of the .dat files are wrong then the file selector will appear and
  60. you will have to select the correct DAT, or press ESCAPE.  If you downloaded
  61. it then this should not be the case.  If the file is a SLT format file
  62. which has still been incorrectly named .z80 at the end, then this emulator
  63. deals with it automatically.
  64.  
  65. file.mdr : This cannot deal with microdrive cartridges.
  66. file.fdi : This cannot deal with TR-DOS/Betadisk extended disk image files.
  67.  
  68. Any other file type you come across cannot be handled in this version of
  69. the emulator.
  70.  
  71. ===============================
  72. NOTE ABOUT MENU COLOUR SCHEMES:
  73. ===============================
  74.  
  75. WHITE  : It can be selected.
  76. CYAN   : It is temporarily unavailable due to another option in use, for
  77.          example.
  78. RED    : It does not work, ie it has not been implemented in the emulator.
  79.  
  80. =============
  81. INSTRUCTIONS:
  82. =============
  83. Once you have typed 'x128' to run the emulator and the 128 BASIC screen
  84. has appeared (hey, /mono users can't see the menu bar!) then the
  85. following function keys are available:
  86.  
  87. ---------
  88. F1 - HELP
  89. ---------
  90. This brings up a list of the functions keys available on the Spectrum
  91. window, press ESCAPE to go back to the emulation.
  92.  
  93. Now when you bring up this option, you can select the function of any
  94. other function key from the menu that appears, by using cursor up/down and
  95. return to select.  The selected option will have a > beside it.  When you
  96. have completed the selected option, you will return to the emulator, not
  97. the help screen.
  98.  
  99. Options available here that aren't available anywhere else are:
  100.  
  101. * Alter ULA Delay: This controls the lining up of overscan bits (see F8
  102.   and F9 keys), the max. value is 255.
  103.  
  104. * Alter Frame Skip: This allows you to set up the screen update, 1/1 is
  105.   full update, 1/255 updates the screen once every 255 times.  1/0 is
  106.   effectively 1/256.
  107.  
  108.   In the Adlib version the frame skip is automatically selected as a value
  109.   between 1 and 5, the SB version will always start with frame skip 1.
  110.  
  111. * Alter Slow Down: This only applies to the Adlib version, the range is
  112.   0-65535 where 0 is no delay and 65535 is a ridiculously large delay.
  113.  
  114. * Percent Speed: On the SAOM version, you actually change the speed by
  115.   changing the actual percentage speed (see values below).
  116.  
  117.   When changing the speed you are actually stopping and starting the DMA
  118.   and reallocating it with a different size buffer!  You are not allowed to
  119.   set the speed below 10% but you can set it "too high", in other words:
  120.  
  121.                        4900% WILL CRASH YOUR PC.
  122.  
  123.   You have been warned, so don't do it.  I will accept no liability!
  124.   When you try to set the speed to higher values it starts to get
  125.   inaccurate, this is due to the fact that the percentage speed is actually
  126.  
  127.                       (sound_rate*2)/BUFFER_SIZE
  128.  
  129.   The default sound rate is 22050hz.
  130.  
  131.   To help you determine if you can achieve the speed desired on your PC,
  132.   there is an "overflow" dot at the top left of the PC screen, if you see
  133.   a little white dot then your PC cannot emulate at the speed you are
  134.   attempting, so slow down or try using a lower sample rate with the /hz
  135.   command line option.
  136.  
  137. * Loading Speed:
  138.  
  139.   SAOM:
  140.   This lets you have one speed while loading a VOC/TZX and another for
  141.   normal activity, you can set the loading speed to a higher value to cause
  142.   tapes to load quicker.  When the tape is paused or closed then the
  143.   emulator will automatically return to the "percent speed" value.
  144.  
  145.   Adlib:
  146.   When the tape is loading the slowdown value is set to zero.  When the
  147.   tape is paused or closed, the old slowdown value is restored.  There is
  148.   not much point in messing around with the slowdown value during loading,
  149.   as the changes will be wiped out, and replaced with the value before
  150.   loading took place.
  151.  
  152.   The values can be changed by moving the cursor to the option and pressing
  153.   left (-1), right (+1), page up (-10) or page down (+10).
  154.  
  155.   Generally, the values will wrap round if you try to pass 0 or its maximum
  156.   value. These options don't return to the emulator when you select them,
  157.   you have to press ESCAPE.
  158.  
  159. * Keyboard Issue: Press left/right to toggle between issue 2 and issue 3,
  160.   where issue 3 is by far the most common.  Occasionally a program will
  161.   need this option to be set to 2 (usually an old program) otherwise the
  162.   keys won't respond. A .Z80/.SLT file will change this value when you load
  163.   it. Note that all 128K Spectrums were issue 3 and some Spectrum 48K were
  164.   issue 2, but not that many.
  165.  
  166.   Note that options like load snap, save z80, joystick select, memory mode,
  167.   etc return to the help menu, so that you can load in a snap and resave it
  168.   with changed settings.
  169.  
  170. ---------------
  171. F2 - NMI (M128)
  172. ---------------
  173. Yes, the Multiface 128 by Romantic Robot.  If you can get the Genie 128
  174. software then you have a push button disassembler on your hands.
  175.  
  176. Note that pressing the button more than once causes a crash, just like the
  177. real thing!
  178.  
  179. Now, (starting from V0.8) you can have a different ROM called genie128.rom.
  180. This allows you to start up the emulator with the Genie 128 (or any other
  181. MF 128 utility) without having to manually install it!
  182.  
  183. All you have to do is (using mf128.rom) install the Genie (or any other
  184. MF 128 utility) as normal, then reset the Spectrum, then type this short
  185. program:
  186.  
  187.         POKE 30000,243
  188.         POKE 30001,219
  189.         POKE 30002,191
  190.         POKE 30003,118
  191.  
  192.         RANDOMIZE USR 30000
  193.  
  194. Then, go into the F6 menu and set the start address to 0 and the length to
  195. 16384, then save it as genie128.rom (in the directory that x128 is in).
  196.  
  197. The next time you load x128 the Genie (or any other MF 128 utility) will be
  198. automatically installed!  In order to un-install a MF 128 utility, you press
  199. Caps Shift, Space and F2 at the same time.
  200.  
  201. NOTE : My keyboard does not allow Shift, Space and F2 to be pressed at the
  202.        same time, but it does allow Caps Lock, Space and F2 at the same time.
  203.  
  204. * In Scorpion 256 mode this will bring up the Shadow Service Monitor.
  205.  
  206. ----------------------
  207. F3 - RESET/MEMORY MODE
  208. ----------------------
  209. From here you have a little menu that you can select reset to 48 or 128
  210. mode, or you can try to swap modes with no reset, note that from 128 to 48
  211. no reset mode that ram page 0 will be slotted in regardless of what ram
  212. was actually paged in.
  213.  
  214. Menu:
  215.  
  216. Spectrum  48 Mode.
  217. Spectrum 128 Mode.
  218. Spectrum  +2 Mode.
  219. Spectrum +2A Mode.
  220. Spectrum  +3 Mode.
  221. Pentagon 128 Mode.
  222. Scorpion 128 Mode.
  223.  
  224. Press RETURN to reset to a particular mode, or press SPACE to attempt to go
  225. to that mode (may cause trouble with +2A/+3 modes).
  226.  
  227. Below this is the option Betadisk : On/Off.
  228. Followed by MF 128 : On/Off.
  229.  
  230. Note that when you do a "reset" to a mode then the Betadisk option is forced
  231. into it's default mode (usually off, except for the Pentagon and Scorpion).
  232.  
  233. In order to get to TR-DOS from the original Spectrums, type:
  234.  
  235. RANDOMIZE USR 15616
  236.  
  237. The Scorpion 256 is rather incomplete, and is not fully working at this time.
  238.  
  239. You can use cursor up/down to move and escape to abort selection.  Use
  240. cursor left/right to toggle the Betadisk on or off.
  241.  
  242. You are on your own trying to work out the keywords in 48K Basic.
  243.  
  244. --------------------
  245. F4 - JOYSTICK SELECT
  246. --------------------
  247. This will map one of 4 joystick possibilities (Kempston, Sinc 1, Sinc 2 and
  248. Cursor onto the cursor keys and TAB for fire.
  249.  
  250. You will see the 4 options and a > which points to the current option.  To
  251. select one use cursor keys up and down then press return to select.  To
  252. abort and use current option, press ESCAPE.
  253.  
  254. You can press left or right to toggle caps on/off for cursor keys.
  255.  
  256. Note that .Z80/.SLT files set the joystick configuration when loaded.
  257. Whether cursor has caps shift included is not stored in a .Z80/.SLT and you
  258. may have to change this yourself.
  259.  
  260. X128 supports 2 PC joysticks, the 1st is mapped onto the option chosen in
  261. this menu, the 2nd one is always mapped onto Sinclair (1-5).
  262.  
  263. -------------------
  264. F5 - LOAD SNAP FILE
  265. -------------------
  266. Yes, this will allow you to load, at any time, a V1, V2 or V3 .z80 file in
  267. 48K or 128K mode (it will automatically pick the correct mode for the snap).
  268. This also allows loading of .sna (including SNA 128) files and .slt files.
  269.  
  270. These files are exactly the same format as those used by the famous Z80
  271. Spectrum emulator for the PC.  Note that any hardware like Interface 1,
  272. SamRam or MGT will be stripped off and ignored, if that piece of hardware
  273. was paged in at the time the Z80 was saved, then it might not work.
  274. But this is not usually the case.
  275.  
  276. --------------
  277. F6 - SAVE MENU
  278. --------------
  279. NOTE : Yes, I know that one of the options is a "load" option!
  280.  
  281. Options:
  282.  
  283. * Save Z80/SLT file.
  284.  
  285.   This allows you to save the whole of memory to a snapshot file.  It can
  286.   save in 48K or 128K mode and will decide by itself what memory it has to
  287.   save.  The resulting file can be loaded back in using F5, or can be loaded
  288.   in by another emulator that supports Z80 V2 files.
  289.   This option is good for cheating at games.
  290.  
  291.   If the file is a SLT file then the additional level data will be crammed
  292.   into the new file.
  293.  
  294.   NOTE : You do not select if it is a Z80 or SLT file, this is automatic.
  295.  
  296. * Save SNA file.
  297.  
  298.   This allows you to save a SNApshot of memory, like above but in an
  299.   uncompressed manner.  This may be useful for older emulators which don't
  300.   support the .Z80 format (are there any that don't?)  Or maybe you just want
  301.   the information to be easy to remove for a personal project.
  302.  
  303.   If you save a SNA in 48K mode then a traditional SNA file will be made.
  304.   If you save in 128K mode then a SNA 128 file will be made.
  305.  
  306. * Open VOC for saving.
  307.  
  308.   This option does not work!
  309.  
  310. * Open TAP for saving.
  311.  
  312.   At last you can save TAP files!  All blocks saved go into the currently
  313.   open (save) TAP file.
  314.  
  315.   If the file already exists then you are given the option to Overwrite,
  316.   Append or Cancel.  Overwrite will remove the file and make a new one.
  317.   Append will attach onto the end of the file, and Cancel will leave the
  318.   file as it is.
  319.  
  320. * Load Mem Block.
  321.  
  322.   You can load in raw files into the Spectrum's memory space, there is little
  323.   point in trying to load anything into 0-16383, unless there is RAM paged
  324.   in via the +3, Scorpion or Multiface.  The block is loaded based on the
  325.   values in Start Address and Length (below).  Since there is no default file
  326.   extension, the file selector will show everything.
  327.  
  328. * Save Mem Block.
  329.  
  330.   Saves out raw files from the Spectrum's memory space, based on the values
  331.   set in Start Address and Length (below).  There is no default file
  332.   extension.
  333.  
  334. * Start Address.
  335.  
  336.   Simply sets the start address for loading and saving mem blocks.
  337.   Press <RETURN> to begin entering the number, you can type in decimal or
  338.   in hex by having $ as the first character.
  339.  
  340. * Length.
  341.  
  342.   Sets the Length for loading and saving mem blocks.  If you just press
  343.   RETURN then the length will be set to (65536-Start Address).  If Start
  344.   Address is 0, then this is illegal - you cannot save a block greater than
  345.   65535.  Number entry is the same as "Start Address" above.
  346.  
  347. * Restore Screen Values.
  348.  
  349.   Sets the Start Address to 16384 and the Length to 6912.
  350.   If the second screen happens to be use ... tough!
  351.  
  352. ---------------------
  353. F7 - SELECT TAPE FILE
  354. ---------------------
  355. You want multiload games on emulator, yes?  Well, this allows it to happen
  356. by being a file containing a string of just the important data from saves.
  357.  
  358. These TAP files are the Z80 compatible files, NOT the Warajevo emulator
  359. ones, they won't work at all.
  360.  
  361. Firstly select the file from the file selector.
  362.  
  363. To load a file you must either:
  364.  
  365. * Use the 128 BASIC Tape Loader (just press return).
  366. * In 128 BASIC (type load SHIFT-' SHIFT-' Return).
  367. * In 48 BASIC (type J SHIFT-' SHIFT-' Return).
  368.  
  369. (ie Press shift and apostrophe at the same time, also do not leave a space
  370. between the two inverted commas).
  371.  
  372. BEWARE: When using TAPs and other types of tape file.  TAPs use ROMpokes,
  373. and TZX/VOC does not, if trouble arises make sure that you open a tape file
  374. (F7) before reaching the actual load routine in the ROM.
  375.  
  376. NOTE : Starting from V0.8 the ROMpokes will only be present while a TAP file
  377. is open, and at no other time.  A TAP file can now be closed in the F8 menu.
  378.  
  379. Note for /mono users: when you start up the invisible bar is on the
  380. Tape Loader option.
  381.  
  382. A VOC file is a Creative Voice Sample File, ie a multimegabyte-sized sample
  383. of your Spectrum cassette, you will have to make this on your own using
  384. some sampler and whatever.
  385.  
  386. Any VOC file must be 8-bit, unpacked and mono.  The sample rate doesn't
  387. matter, but it should be as high as possible to make sure that the game
  388. has the best chance of loading.  This version of x128 can handle the 4 main
  389. VOC blocks that are usually required and will skip the ones that it doesn't
  390. like.  When the VOC is finished loading it will close without telling you.
  391.  
  392. When making a VOC file, you must be aware that some samplers leave a tiny
  393. little gap in the VOC file while it is being recorded, if such a VOC file
  394. is played into x128 (or any other emulator) then there is no way it can work.
  395. Try another sampler!
  396.  
  397. ** TZX FILES **
  398.  
  399. All new : TZX support!  These files contain all the information of a VOC
  400. file but in a size similar to TAP files!
  401.  
  402. TZX features:
  403.  
  404. * Small!
  405. * Browser!
  406. * Information and messages!
  407. * Tape can be stopped automatically!
  408.  
  409. There is really no need to use VOC files now, what you should do is get
  410. TAPER or VOC2TZX and convert the VOC into the all new format.
  411.  
  412. When a TZX file reaches the end, it will go back to the start and then pause.
  413.  
  414. * NOTE : When using a VOC or TZX file, these cause a large processor
  415.   overhead, and will cause the emulator to run significantly slower.
  416.  
  417. ---------------------
  418. ALT-F7 - TAPE BROWSER
  419. ---------------------
  420. This is a shortcut to the tape browser mentioned in the F8 menu.
  421.  
  422. -----------------
  423. F8 - TAPE OPTIONS
  424. -----------------
  425. NOTE : Some options only appear if they are appropriate.
  426.  
  427. * Loading Noise : Yes/No - If No, then no sound while loading, otherwise you
  428.   get an approximation of the sound depending on how many IN 254s are
  429.   happening.  Having it switched on will require more CPU time.
  430.  
  431. * Hide Blocks : Yes/No - If yes, then certain blocks will be suppressed
  432.   from viewing when in the TZX browser.
  433.  
  434. * Tape Browser - Lets you see what blocks are available in the current TZX
  435.   or TAP file, you can also select a block to play by moving the cursor and
  436.   pressing return.
  437.  
  438. * Close Tape File - Does what it says, and is white if one is open.
  439.  
  440. * VOC/TZX : Paused/Playing - Left or Right toggles the status...
  441.  
  442. ---------------------------------
  443. ALT-F8 - TOGGLE TAPE PAUSE ON/OFF
  444. ---------------------------------
  445. TZX and VOC files now start off paused (indicated by the red icon at the top
  446. left of the screen), white indicates that it is playing.
  447.  
  448. ------------------------------
  449. SHIFT-F8 - INCREMENT ULA DELAY
  450. ------------------------------
  451. T-States are a tricky business.
  452.  
  453. This adds a value to the number of t-states counted at the end of every
  454. screen line (192 of them).
  455. So you can use this option to help align up that nice overscan bit on the
  456. screen.
  457.  
  458. This option usually moves overscan bits DOWN the screen.
  459.  
  460. It starts at 0, if you move too far, the emulator performance will start
  461. to be unusual, as this will affect the number of instructions between
  462. interrupts.
  463. The ULA Delay is reset to 0 every time you reset or load a snapshot.
  464.  
  465. -------------
  466. F9 - PCX DUMP
  467. -------------
  468. The ability to save a 320x200 256 colour PCX, it saves it with any
  469. overscan bits intact!  (And the white dot).
  470.  
  471. A little window will pop up containing the full path of the last PCX file
  472. saved, you can type the name you want, and you can use backspace or delete
  473. to ... delete a character, you can choose the directory to save to by
  474. altering the path.  If you decide that you didn't want to save after all
  475. then press ESCAPE.  The code will try to be clever and determine whether you
  476. have typed .PCX at the end of the line, and append it as necessary, but you
  477. could still confuse it by calling a filename a.a or whatever.
  478.  
  479. If the file you are trying to save already exists then you will be given
  480. the message 'Overwrite(Y/N)?'.  You can reply 'y' to overwrite, 'n' to abort
  481. and ESCAPE to abort also.
  482.  
  483. NOTE : On pressing F9 the screen will be saved to dump.tmp in the same
  484. directory as the emulator so make sure there is space for 2 PCX files and
  485. that the emulator is on a write enabled/permission drive.
  486.  
  487. NOTE : Regardless of what palette scheme you have chosen, the PCX will be
  488. saved with the full colour settings.
  489.  
  490. ------------------------------
  491. SHIFT-F9 - DECREMENT ULA DELAY
  492. ------------------------------
  493. See SHIFT-F8 for information.
  494.  
  495. This option usually moves overscan bits UP the screen.
  496. Once you reach 0, it will not go into negative numbers.
  497.  
  498. The ULA Delay is reset to 0 every time you reset or load a snapshot.
  499.  
  500. ----------
  501. F10 - QUIT
  502. ----------
  503. This will quit the emulator and close the window and all that sort of thing,
  504. and yes it does remember to de-allocate the memory and close the TAP file,
  505. (maybe).
  506.  
  507. On exit you will be told what ULA Delay you had.
  508.  
  509. A small window appears and you have to press Y to quit.  If you press N or
  510. ESCAPE then the quit does not occur.
  511.  
  512. NOTE : If you press this on the SAOM version and decide not to quit, then the
  513.        SB synchronisation may be lost, go to the speed select and toggle the
  514.        speed up and then down again.
  515.  
  516. -------------------
  517. F11 - SOUND OPTIONS
  518. -------------------
  519. You see three useful options:
  520.  
  521. FOR THE SB VERSION:
  522.  
  523. * Sound is On/Off : Press left/right to toggle this.
  524.  
  525.   On/Off is easy to understand?
  526.  
  527. * 48K Sound : Low/Real. Low means that the volume of the beeper is
  528.   equivalent to one AY channel. Real means that the beeper volume is
  529.   equivalent to all three AY channels!
  530.  
  531. FOR THE ADLIB VERSION:
  532.  
  533. * Sound is Off/PC Speaker/Adlib : Press left/right to toggle this.
  534.  
  535.   Off - no sound is played.
  536.   PC Speaker - Spectrum internal speaker is played through the PC speaker,
  537.   and the AY-3-8912 is also played out of the PC speaker.
  538.   Adlib - Spectrum internal speaker is played through the PC speaker and
  539.   the AY-3-8912 through the Adlib card.
  540.  
  541. * White Noise On/Off : I have added some really pathetic emulation of the
  542.   white noise of the AY-3-8912 through the Adlib card, using the snare
  543.   drum channel, so I have included this option to turn it off.
  544.  
  545. FOR BOTH VERSIONS:
  546.  
  547. * Create/Close PSG File : This allows you to log the OUTs to the AY-3-8912
  548.   sound chip, you will be asked for a filename, it will automatically have
  549.   a .psg extension, the files are then playable using the utility PSGPLAY,
  550.   which comes with the Unix version of fMSX (/dev/dsp or /dev/audio), a DOS
  551.   PSGPLAY doesn't exist yet (I think).  Note that all interrupt marks are
  552.   0xFF and the multiple marks are not used.  Also note that these are old
  553.   style PSG files, in other words there is no configuration data in the
  554.   16 byte header.
  555.  
  556.   Note that you can convert PSG files to run under STSound, by using the
  557.   PSG2YM utility.
  558.  
  559. -----------------
  560. F12 - SELECT DISK
  561. -----------------
  562. In +3 mode this will show a menu to select DSK files.  Otherwise it will
  563. show a menu for selecting TRD files.
  564.  
  565. With one exception, if you are in +3 mode and have Betadisk turned on then
  566. the first menu you get will be the +3 menu, then after pressing ESCAPE the
  567. Betadisk menu will appear.  Press ESCAPE once more to get out of the menu
  568. maze!
  569.  
  570. * DRIVE A: - Select a DSK.
  571. * Write Protect : On/Off.
  572. * Remove Disk. - Remove a DSK.
  573.  
  574. * DRIVE B: .... etc....
  575.  
  576. NOTE : How to get a +3 to think it has 2 drives attached.  Simply insert a
  577. disk into "Drive B" or switch write protect on "Drive B" to "On" then reset
  578. the Spectrum in the F3 menu.  You MUST reset : +3 DOS will not check for
  579. "Drive B" at any other time.
  580.  
  581. =============
  582. MULTIFACE 128
  583. =============
  584. By pressing F2 the M128 menu will appear, if you have the ROM.
  585.  
  586. The ROM:
  587.  
  588. mf128.rom 8192 bytes long, and is a dump of the values of the Spectrum from
  589. 0-8191 AFTER the mf128 rom has been paged in.
  590.  
  591. It is also tightly entombed within the file ROMS.BIN that comes with Z80.
  592.  
  593. The MF128 pages in 16K, of which 8K is ROM and 8K is RAM:
  594.  
  595. 0-8191     ROM
  596. 8192-16383 RAM
  597. 16384+     Usual Spectrum memory.
  598.  
  599. The memory is paged in and out like so:
  600.  
  601. IN A,(191) Pages MF128 in.  Returns 127 if the normal Spectrum screen is
  602. visible, or returns 255 if using the 128K second screen in RAM 7.
  603. IN A,(63)  Pages MF128 out.
  604.  
  605. When the MF128 is paged in, OUTs to 32765 still work, so that you can access
  606. all RAM, but for ROM the OUT to 32765 dictates which ROM will be visible
  607. after you page the MF128 back out.
  608.  
  609. =======================
  610. USING THE FILE SELECTOR
  611. =======================
  612. Use the cursor keys to move up and down, the file selected is the one at
  613. the top (with the inversed colours).
  614.  
  615. Directories are Magenta and Black with a slash preceeding the name.
  616. File are Blue and White.
  617. Drives (PC) are Cyan and Black.
  618.  
  619. You can change directory/drive by pressing return while it is being pointed
  620. to, the listing of that directory will then appear for you to view.
  621.  
  622. Keys:
  623.  
  624. Up/Down : Move Up 1 file/Down 1 file.
  625. Page Up/Page Down : Move up 22 files/down 22 files.
  626. Home/End : Move to the top/bottom of the list.
  627. Return : select the file/drive/directory.
  628. Escape : leave the file selector without loading anything.
  629.  
  630. Another feature is the file search by typing letters, so if you press 'b'
  631. the pointer will be moved to the first file (not directory) that starts
  632. with 'b'.  If the search was successful, then when you type another letter
  633. you will be searching for the 2nd character position and so on, if a search
  634. fails, (in which case the pointer will not move) the next attempted search
  635. will begin with the first character again.
  636.  
  637. If you move the pointer with cursor keys, page keys or home/end then the
  638. next search will be on the first character.  Also included in the term
  639. 'letters' are numbers and some punctuation symbols.
  640.  
  641. ====================
  642. COMMAND LINE OPTIONS
  643. ====================
  644. You can get x128 to do things from the command line by adding the following
  645. parameters:
  646.  
  647. x128 /?
  648. Shows all the command line options available.
  649.  
  650. x128 /48
  651. Resets to 48K mode on startup.
  652.  
  653. x128 /128
  654. Resets to 128K mode on startup (default).
  655.  
  656. x128 /P2
  657. Reset to +2 mode on startup.
  658.  
  659. x128 /P2A
  660. Reset to +2A mode on startup.
  661.  
  662. x128 /P3
  663. Reset to +3 mode on startup.
  664.  
  665. x128 /pentagon
  666. Reset to Pentagon mode on startup.
  667.  
  668. x128 /scorpion
  669. Reset to Scorpion mode on startup.
  670.  
  671. x128 /a <filename>
  672. x128 /b <filename>
  673. Selects a DSK or TRD to go in drive A or drive B (respectively).
  674. Please use a full path ie C:\TRD\GAME.TRD otherwise the file selector will
  675. be messed up.
  676.  
  677. x128 /quiet
  678. This starts up the emulator with the sound off, it can still be switched
  679. back on in the F11 menu.
  680.  
  681. x128 /mono
  682. A silly option which runs the emulator in a monochrome EGA mode.
  683.  
  684. x128 /colour <type>
  685.  
  686. Where <type> can be:
  687.  
  688.         full  - full colour (default).
  689.         grey  - grey scale (for mono monitors).
  690.         red   - red scale.    Useless!
  691.         green - green scale.  Useless!
  692.         blue  - blue scale.   Useless!
  693.  
  694. This does not affect any PCX file that you make.
  695.  
  696. x128 /delay <number>
  697. This sets the slow down delay (0-65535), eg x128 /delay 30000
  698. ADLIB only.
  699.  
  700. x128 /frame <number>
  701. This sets the frame skip value (0-255), eg x128 /frame 4
  702.  
  703. x128 /ula <number>
  704. This sets the ULA delay (0-255), eg x128 /ula 30
  705.  
  706. x128 /speed <number>
  707. This sets the target percentage speed (0-65535).
  708. The default target speed is 100%.
  709.  
  710. x128 /lspeed <number>
  711. This sets the loading percentage speed (0-65535).  ** SAOM **
  712. The default loading speed is 100%.  On the Adlib version the slowdown is
  713. set to zero whenever loading takes place.
  714.  
  715. x128 /nlspeed
  716. Prevents the loading speed from being used, meaning that the emulator only
  717. ever goes at the "target percentage speed".  Use this if you have soundcard
  718. problems and you can't seem to load any TZX or VOC at all.
  719.  
  720. x128 /lnoise
  721. Switches on the loading noise.  ** SAOM ONLY **
  722.  
  723. x128 /hz <number>
  724. This sets the sample rate for the SB output, anything from 4000 up to 45454
  725. is accepted. The default is 22050hz.  ** SAOM ONLY **
  726.  
  727. x128 /sbclone
  728. This software now uses DSP command 0x1C to activate the soundcard at speeds
  729. of 22Khz or below.  If you try sample rates greater than that then x128 will
  730. use DSP command 0x90, which some clones will not like, so use /sbclone to
  731. make sure that 0x1C is used at all speeds.
  732.  
  733. x128 /real
  734. This selects "real" (loud) 48k beeper volume.  ** SAOM ONLY **
  735.  
  736. NOTE: With all these numerical options, entering non numbers, or numbers
  737. that are too large will cause confusion.  Generally it will decide that
  738. the value should be set to 0, but in the case of /frame this is
  739. effectively 1/256 so you will get a big delay before the screen updates,
  740. so don't enter bad numbers!
  741.  
  742. x128 <filename>
  743. If the filename is a sna or z80 then it will automatically load (and /48
  744. and /128 will be overridden by the type of snap loaded).  This will work
  745. for slt files as well.  BUG : when you load SLT or TZX files from the command
  746. line the file selector will be messed up unless you specify a full path, ie:
  747.  
  748. C:\GAMES\POGO.SLT
  749.  
  750. If the filename is a tap then it will be selected, but you will still have
  751. to load it via the tape loader or by typing load "".
  752. I suppose this means that x128 can now be used in this 'play spectrum games
  753. across the web thingy'.
  754.  
  755. If the file is a VOC or TZX then you will have to do the same as a TAP file
  756. to actually get it to start loading.
  757.  
  758. Tip : Make a .Z80 which is just before a LOAD "" takes place, ie:
  759.  
  760. PAUSE 50 : LOAD ""
  761.  
  762. Press enter, then quickly press F6 and save the .Z80, it is important to save
  763. it BEFORE the load takes effect, as there may be rom traps which would be
  764. skipped if you attempted to load the tape file after the load had taken
  765. effect.  Make a .Z80 in 48 (LOAD48.Z80), and another in 128 mode
  766. (LOAD128.Z80).
  767.  
  768. Then when you want to autoload a tape from the command line (which you want
  769. to load in 48k mode):
  770.  
  771. x128 LOAD48.Z80 ROBO.TAP
  772.  
  773. If using a TZX file SUPPLY THE FULL PATH to the TZX:
  774.  
  775. X128 LOAD48.Z80 D:\GAMES\R\ROBO.TZX
  776.  
  777. NOTE: I get a lot of requests from people to add some some sort of .INI file
  778. so that people don't have to keep entering switches or changing menu options
  779. for their favourite setup every time they run x128. But why don't you use a
  780. batch file instead?
  781.  
  782. For example, use EDIT to create a new file in your x128 directory, type
  783. something like
  784.  
  785. x128 /P3 /lnoise /hz 44100
  786.  
  787. or whatever commands you use, then save it as, say, x.bat. Then you just
  788. have to run x.bat when you want to use x128 with those options.
  789.  
  790. Of course Windows users can set permanent command line options for Dos
  791. applications quite easily, look it up in your help files.
  792.  
  793. ===============
  794. TROUBLESHOOTING
  795. ===============
  796. SYMPTOM : The emulation is too slow.
  797. CAUSE   : Try running this in DOS, if you are using a Windowed environment.
  798. Alternatively all you can do is get a faster machine or hope that a future
  799. release of this is more efficient.  Or use the frame skip option, see near
  800. the top of this document on how use this option.  Another option is to get
  801. your hands on a much faster video card.  Also try using the /hz command line
  802. option to lower the sample rate.
  803.  
  804. SYMPTOM : The EXE supplied will not run.
  805. CAUSE   : Make sure you are using a 386 or above, and have at least 2Mb free.
  806. CAUSE   : Do you have DOS4GW.EXE in the directory/path?
  807. NOTE    : 2Mb is an old figure, and probably more is required now.
  808.  
  809. SYMPTOM : The file selector will not open.
  810. CAUSE   : Desperate shortage of memory!  Free up some memory before running.
  811.  
  812. SYMPTOM : The 128K music is occasionally fuzzy when I start up.
  813. CAUSE   : If this wasn't for speed reasons as covered earlier (i.e. no white
  814. dot), it could be a bug that was in v0.71 but I hoped was fixed now. If it
  815. happens try pressing F1, then changing the emulation speed up and down a bit
  816. back to the level you want it, and press ESCAPE again. This hopefully will
  817. reinitialise the DMA and make the 128K sound 'clear' again.
  818.  
  819. SYMPTOM : x128 returns to the DOS prompt/closes the window immediately.
  820. CAUSE   : (SAOM) No BLASTER environment variable has been found.
  821. CAUSE   : Some of the ROMs may be missing from the directory.
  822.  
  823. SYMPTOM : x128 hangs/locks up tight.
  824. CAUSE   : For some reason the SB doesn't generate an IRQ sometimes, I don't
  825.           know why!  You should now be able to press F10 to quit (hopefully).
  826.  
  827. Also note that the SAOM version of x128 will REFUSE to run if it doesn't
  828. find a Sound Blaster - make sure you have the BLASTER environment
  829. variable in your autoexec.bat.
  830.  
  831. ===================
  832. FUTURE IMPROVEMENTS
  833. ===================
  834.  
  835. -------
  836. General
  837. -------
  838. Top and bottom borders in 320x240 resolution.
  839. Speed : Ever Better (or should that be slower?).
  840. Better t-state timing for overscan demos.
  841. Better Pentagon and Scorpion 256 emulation.
  842. Better TR-DOS/Betadisk disk emulation (TRD writing and FDI).
  843. Kempston mouse.
  844. DISCiPLE/Plus D disk emulation.
  845.  
  846. --------
  847. Specific
  848. --------
  849. Speed Detect (SAOM).
  850. Pause between TAP blocks.
  851. TZX trap.
  852. Pause Until Load "" for VOC/TZX.
  853. VOC (music) save option.
  854. VOC (file) save option.
  855. VOC browser (silly?).
  856. Keyboard error.
  857.  
  858. Always remember to check for the latest versions at:
  859.  
  860. http://www.users.dircon.co.uk/~dmckay/x128.html
  861.  
  862. =================
  863. HOW TO GET GAMES:
  864. =================
  865. Check ftp and www sites for files, Norway seems to have a lot.
  866.  
  867. Try ftp://ftp.nvg.unit.no/pub/spectrum/
  868.  
  869. Most sites will be in Europe.  Try doing a web search for 'Sinclair' or
  870. 'Spectrum' if you have plenty of spare time that is.
  871.  
  872. If you have a SB and a good sampler, then you can turn your tapes into VOC
  873. files and play them that way, then you could get some utilities to convert
  874. them into TZX files so that they take up hardly any space at all.
  875.  
  876. You could register Z80 and buy a tape interface and +D file copier.
  877.  
  878. Unprotected +3 disks can be converted to the PC if you own a +3 AND a +D
  879. (with Fixit) if you download the +3/+D conversion package from the x128
  880. webpage - if I bother releasing it!
  881.  
  882. Since the +3 emulation cannot format DSK files and cannot create them, you'd
  883. be advised to download this utilit from NVG:
  884.  
  885. ftp://ftp.nvg.unit.no/pub/cpc/utils/msdos/cpcfs085.zip
  886.  
  887. A similar situation applies to TRD file, try this page for a number of
  888. utilities (copies of which are also on the X128 page):
  889.  
  890. http://www.elf.stuba.sk/~eged/english.html
  891.  
  892. ========
  893. CREDITS:
  894. ========
  895. James McKay : me : Author of the big (getting less) rubbish bit of the code.
  896. e-mail scet@rmplc.co.uk.
  897.  
  898. Duncan McKay : Designed the web page, and found loads of stuff.
  899.  
  900. Random for TR-DOS/Pentagon/Scorpion info etc...
  901. Hacker Scorpion for his help on the above subjects also.
  902.  
  903. Ulrich Doewich : His uPD765A emulation code - as used in CPE (Amstrad CPC
  904. emulator, which he has adopted) allows for I/O level emulation and therefore
  905. protected +3 disks (although I have never managed to find a protected +3 disk
  906. on the web), so it's thanks to him for +3 disk support.
  907.  
  908. Tomaz Kac : He created the TZX file, and offered a lot of support in
  909. implementing the TZX support in x128.  Also the underlying SB library is
  910. from his PlayTZX utility.  And he helped with all sorts of files for testing.
  911.  
  912. Ville Halik : His original AY code for fMSX Unix was the starting point for
  913. the code in this release, the square wave generator, method of counting,
  914. envelope table and random number generator are still used.  The general
  915. mixing, envelope timing, general code structure and playing library are
  916. substantially different.
  917.  
  918. Igor Eged : Thanks for the TR-DOS files and information.
  919.  
  920. ALSO:
  921. -----
  922. Marat Fayzullin : His C source gave the idea about how to access a
  923. variable as bytes and words at the same time.  Also the Adlib AY emulation is
  924. written by Alex Krasivsky and him.
  925. Gerton Lunter : His Z80.DOC that came with his emulator, was a very useful
  926. technical reference.
  927. Rui Ribeiro : For the info on the Kempston joystick problem.
  928. Spectrum +2A Manual by Amstrad.
  929. Master Machine Code On Your Amstrad CPC 464 And 664 by Jeff Naylor and
  930. Diane Rogers.
  931. Understanding Your Spectrum by Dr. Ian Logan.
  932. My Spectrum 128 with it's dodgy keyboard.
  933. All those who took part in the SLT debate.
  934. All those who took part in the TZX debate.
  935. All those responsible for the c.s.s debate about perfectly emulating the AY
  936. sound chip, the document detailing this is available with the shareware
  937. version of Z80 V3.05.
  938. All those who gave SB help.
  939. Ulrich Doewich for his Ensoniq soundcard testing.
  940. All those who gave feedback and did beta-testing for x128.
  941. All on the TAPER mailing list.
  942.  
  943. =======================
  944. HISTORY OF DEVELOPMENT:
  945. =======================
  946. (UK DD/MM/YY)
  947.  
  948. V0.0 Date : 02/02/96
  949. V0.1 Date : 08/02/96
  950. V0.2 Date : 26/02/96
  951. V0.3 Date : 19/03/96
  952. V0.4 Date : 01/05/96
  953. V0.5 Date : 30/06/96
  954. V0.6 Date : 24/03/97
  955. V0.61 Date: 27/03/97
  956. V0.7 Date : 21/07/97
  957. V0.71 Date: 04/08/97
  958. V0.8 Date : 03/10/97
  959.  
  960. -----------------
  961. V0.71 Bugs fixed:
  962. -----------------
  963. * IN 127 now always returns 255 so that the ship in Arcadia stays still!
  964. * Improved IN 255 emulation to allow Sidewize to work (and without flicker).
  965. * Z80/SNA/SLT files loaded from the command line (in the Adlib version) would
  966.   have the registers slightly corrupted on some occasions - fixed.
  967. * Improved TAP trap register output so that Hyper Active TAP file works.
  968. * EI/HALT has been made an indivisable 16-bit instruction in an attempt to
  969.   prevent DI/HALT problems in Op Thunderbolt, Batman The Movie, etc...  I
  970.   don't know if it is effective.
  971. * A rogue text message would appear when a TZX file was open and you tried to
  972.   save a Z80 file as a result the TZX would close instead of going back to
  973.   the start.  This has been fixed.
  974. * The TZX pause block (and pause after blocks) was not implemented 100%
  975.   accurately, so on very rare occasions the last edge would not be played,
  976.   this is now fixed.
  977. * TZX jump blocks which had a positive number (forward) did not work, this
  978.   has been fixed.
  979. * Fixed the occasionally fuzzy 128K sound that would affect some SB clones
  980.   (hopefully).
  981.  
  982. ------------------
  983. V0.8 Improvements:
  984. ------------------
  985. * MF 128 can be switched off.
  986. * New TZX blocks supported : Select, Loop, Loop End, Gosub and Return.
  987. * TAP traps (at 1386 and 1240) are now invisible to the Spectrum!
  988. * Limited Betadisk/TR-DOS emulation (read-only via TRD files).
  989. * Emulation of the Pentagon 128 (and limited emulation of the Scorpion).
  990. * Emulation of the +2 and +2A.
  991. * Emulation of the +3 and the disks using DSK (including extended DSK) files.
  992. * TAP browser.
  993. * Ability to save TAP files.
  994. * Ability to load/save blocks of memory.
  995. * Ability to save SNA 48 & 128 files and load SNA 128 files.
  996.  
  997. ===========
  998. KNOWN BUGS:
  999. ===========
  1000. Sometimes SNA 128 files don't load properly from the command line.
  1001.  
  1002. Since the Z80 file format only supports 48K and 128K Spectrums, and only
  1003. Interface 1, Sam Ram, MGT and Multiface 128 hardware interfaces - this means
  1004. that saving snaps in all the new modes could be troublesome!
  1005.  
  1006. Konami Ping Pong (released by Imagine) has corrupted bats, due to my shifty
  1007. contended memory timing.
  1008.  
  1009. New style of .Z80 not saveable yet (I could not be bothered doing it).
  1010.  
  1011. This is more of a bad point : the parallel development of x128 on DOS and
  1012. Unix has basically collapsed, meaning that the Unix version has almost none
  1013. of the improvements listed above, and will NOT be released.
  1014.  
  1015. Windows 3.1 can crash when you change the speed of the emulator, but don't
  1016. worry, it only does it when you have important information to lose!
  1017.  
  1018. Certain 48k games seem to try to output to the beeper so often that it is
  1019. outside the human hearing range.  When replayed through the SB, they fall to
  1020. 11Khz which is within the human hearing range, as a rather annoying high
  1021. pitched beep.  I have muffled it slightly but it is still there.
  1022. The games which are known to do this:  Arkanoid, Fairlight, Fairlight 2,
  1023. Fist 2 Practice, International Karate (A & B) and Sweevo's World.
  1024.  
  1025. SLT files now work from the command line, BUT they mess up the path so that
  1026. the menus may not work properly!  THIS ALSO APPLIES TO TZX files!  To avoid
  1027. this, supply a full path, ie C:\GAMES\P\POGO.SLT
  1028.  
  1029. A full path must also be used when selecting TRD or DSK files from the
  1030. command line.
  1031.  
  1032. Sometimes a .Z80 file will fail to work, then you reload it and it does
  1033. work....
  1034.  
  1035. In addition the screen timing is slightly off since V0.61,
  1036. but it's not so bad, if anyone can describe the effects of contended memory
  1037. perfectly (ie good enough to run the Overscan demo), then I'd like to hear
  1038. from them!
  1039.