home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 38 / ZGIDEMO.iso / Emulatori / Kgen034b.zip / README.TXT < prev   
Text File  |  1997-10-22  |  24KB  |  580 lines

  1.  
  2. ------------------------------------------------------------------------------
  3.                            KGen V0.34b BETA TEST
  4.                     Sega Genesis / MegaDrive Emulator.
  5.          Written by Steve Snake, Kode and Muzak Ltd, June-August 1997.
  6. ------------------------------------------------------------------------------
  7.  
  8. ------------------------------------------------------------------------------
  9.  
  10.    This is an emulator for the Sega Genesis/MegaDrive, one of my favourite
  11.                consoles of all time, for a Pentium PC in MSDOS.
  12.  
  13. ------------------------------------------------------------------------------
  14.  
  15. FILE CONTAINS:
  16. --------------
  17.  
  18. KGEN     EXE 301071 bytes
  19. README   TXT 24111  bytes
  20.  
  21. ------------------------------------------------------------------------------
  22.  
  23. HISTORY:
  24. --------
  25.  
  26. Version 0.34b : 22nd October 1997.
  27.  
  28. Added PSG Sound - all documented features.
  29.  
  30. Complete re-write to the control system to allow for the following features:
  31.  
  32.      Sega "Fighting Pad" 6 Button controller emulation.
  33.      Redefinable Keyboard for both players.
  34.      New "Compatible" joypad mode for joysticks that don't work in FAST mode.
  35.  
  36. Fixed a few minor 68000 bugs.
  37.  
  38. Fixed VESA 2.0 bug on Matrox cards. Thanks to Mirko Buffoni (MAME).
  39.  
  40. Improved Battery RAM support.
  41.  
  42. Complete re-write to most of the VDP emulation. More games should work now,
  43. BUT this is VERY experimental, and I haven't had a chance to test it on many
  44. games yet.
  45.  
  46. Added Palette Raster Effects (VESA 2.0 ONLY). There is still MUCH work to be
  47. done on this, but for now, the water in Sonic games works, among others.
  48.  
  49. Config file has had to be changed - so you will have to set the options again.
  50.  
  51. There was much more I wanted to do for this version, but unfortunately I've
  52. been working hard, and in about 2 hours I have to catch a plane to Greece for
  53. my final holiday of the year! (That's the thing being a professional games
  54. programmer. You end up taking all your holiday at once, or not at all!)
  55.  
  56. ------------------------------------------------------------------------------
  57.  
  58. Version 0.33b : 28th September 1997.
  59.  
  60. Apologies for the lateness of this version, I have been on Holiday !
  61.  
  62. Added Horizontal Interrupts. These are always ON by default. There should be
  63. no need to switch them OFF, unless something doesn't run correctly with them
  64. ON, or it slows down too much.
  65.  
  66. Added the most common Raster Effects. Now you can play Outrun ! Horizontal
  67. Interrupts need to be ON for these to take effect. Many more Raster Effects
  68. are planned, and the ones that are in there have been written in about four
  69. hours this evening, and so can be, and will be, heavily optimised at a later
  70. date.
  71.  
  72. Again, made an attempt to track down and fix problems reported by some people
  73. relating to KGen crashing their machine. Hopefully this is now sorted.
  74.  
  75. Fixed further timing problems with the YM2612.
  76.  
  77. Fixed Counter bug (Streets of Rage).
  78.  
  79. Most games that stopped working in Version 0.32b should now work again. And
  80. many, many more games will now run.
  81.  
  82. ------------------------------------------------------------------------------
  83.  
  84. Version 0.32b : 14th September 1997.
  85.  
  86. Added Config File, all options and directories are now saved on exit.
  87.  
  88. Added Battery Backup save / load. These are automatically loaded / saved from
  89. the same directory as the SnapShot files. Of course, KGen will also load .GSV
  90. files from Genecyst, if they are copied to the correct directory.
  91.  
  92. Fixed several small bugs and generally improved reliability. Since KGen always
  93. ran with no problems whatsoever on my machine, I'll have to rely on you lot to
  94. tell me if the problems are now fixed !
  95.  
  96. Fixed problem relating to certain games not initialising the Genesis properly,
  97. and thus they only worked if they were the first game loaded (!)
  98.  
  99. Added an option to disable the automatic Checksum fixing, because I noticed a
  100. few games appear to have incorrect checksum code in them. (Chester, Cadash to
  101. name but two.) You should keep Checksums enabled unless a game does not run.
  102. Try switching it off, and reload the rom.
  103.  
  104. Improved KGens compatibility so much that you can throw out your compatibility
  105. lists and start producing Non-compatibility lists :-) Most games should now
  106. run.
  107.  
  108. Fixed problem with 68000 <-> Z80 communication taking far too long sometimes
  109. (Streets of Rage, Dragon Ball Z, AirDiver etc.)
  110.  
  111. Fixed a slight timing error with the YM2612 timers.
  112.  
  113. Further optimisations to the Z80 emulation, but you probably won't notice,
  114. since several compatibility issues slowed it down again slightly !
  115.  
  116. Altered my Sound code in VSYNC ON mode because of all the complaints. Later I
  117. will make it an option of some sort. Also, VSYNC defaults to OFF, because a
  118. lot of people seem incapable of doing it. I assume people sensible enough to
  119. have bought a decent PC will also have the sense to switch it back on, if they
  120. want to.
  121.  
  122. NOTE: Please don't ask about deleting / overwriting SnapShots, or that the
  123. Microsoft Sidewinder (tm) doesn't work. I'll look into these when I have time.
  124.  
  125. ------------------------------------------------------------------------------
  126.  
  127. Version 0.31b : 7th September 1997.
  128.  
  129. Fixed Joypad Config bug, and generally improved Joystick handling.
  130.  
  131. Fixed problem with SnapShot files not working on some machines.
  132.  
  133. Fixed more minor bugs.
  134.  
  135. Improved SnapShot files - you no longer need to load the ROM first. See the
  136. info on the GUI for more information.
  137.  
  138. Added the ability to load Genecyst Save State files. Again, see the GUI info
  139. for more information.
  140.  
  141. ScreenShot files are now currently saved into the directory you run KGen from.
  142. This also applies to SnapShot files, although changing the directory in the
  143. LOAD SNAPSHOT menu also sets where SnapShot files are saved to.
  144.  
  145. NOTE: CONFIG FILE WILL BE ADDED ASAP, PLEASE DON'T HASSLE ME FOR IT !!
  146.  
  147. ------------------------------------------------------------------------------
  148.  
  149. Version 0.30b : 4th September 1997.
  150.  
  151. Second major release of KGen.
  152.  
  153. I apologise for the delay with this version, but due to a heavy workload at
  154. work, I haven't had any time for KGen recently. The changes in this version
  155. were done in about three days.
  156.  
  157. ADDED KGen's GUI Menu System, and many new features. More about this later.
  158.  
  159. Shadow / Hilight mode has been improved, it now works in every situation I can
  160. find.
  161.  
  162. Minor optimisations to the 68000 and Z80 emulators, they are now a little bit
  163. faster. There is much more work to be done on this.
  164.  
  165. Minor optimisations also to the Sprite and Palette handlers. KGen now runs a
  166. large amount of games at full speed on an Intel P133. Previous versions very
  167. nearly did already.
  168.  
  169. Altered part of the YM2612 Emulation because some sound drivers were doing
  170. unexpected things. The music on 'HellFire' no longer sounds like, well, Hell!
  171.  
  172. Sound now sounds a lot better if the emulator slows down for any reason.
  173.  
  174. Altered the custom video mode slightly for timing reasons, and added full PAL
  175. support plus a 50Hz video mode.
  176.  
  177. Added Joypad / Joystick controls, and support for player two.
  178.  
  179. Added Volume control.
  180.  
  181. Re-wrote the command line stuff, because several people wanted me to keep it
  182. in.
  183.  
  184. Added VSYNC OFF option for people with machines not quite fast enough to run
  185. at full speed. This should put an end to all the complaints / rumours that
  186. KGen is not the fastest emulator. It is, and always has been much faster than
  187. the rest, even though it is doing SO much more. Also, the frame skip stuff
  188. works differently in VSYNC ON and OFF modes - so you can now run 99% of games
  189. at TWICE real Genesis speed on a P200 ! See the section on the GUI for more
  190. information on this.
  191.  
  192. A few minor bugs were removed, but I can't remember exactly what they were (!)
  193.  
  194. ------------------------------------------------------------------------------
  195.  
  196. Version 0.21b : 19th August 1997.
  197.  
  198. I found a strange bug that caused KGen to lock up on some machines if UniVBE
  199. wasn't installed. Occasionally it would try to use UniVBE even though it was
  200. not available! This was due to a routine returning a byte flag that was then
  201. tested as a word.... oops! These things happen when you are constantly being
  202. hassled and are rushing to get something done. The fact that my machine worked
  203. all the time without this fix also contributed to me not finding it.
  204.  
  205. This is now fixed, hopefully making KGen fully compatible with all machines.
  206.  
  207. The routine to shut down the sound card on exit has been improved.
  208.  
  209. Also, a number of people have complained that they have to reboot their PC
  210. after trying to run a game which doesn't yet work. This is NOT the case. KGen
  211. has always returned to DOS with an error message - but didn't set the video
  212. mode, so you couldn't see it. Typing 'mode co80' would have solved this.
  213.  
  214. In this version, I have set the video mode back for you in most cases. But
  215. there may still be some cases where this happens. 'mode co80' is always worth
  216. a try.
  217.  
  218. ------------------------------------------------------------------------------
  219.  
  220. Version 0.20b : 18th August 1997.
  221.  
  222. Thanks to everyone who pointed out that KGen V0.10b did not work on Cyrix/IBM
  223. processors. This was due to some test code that was left in. (There's a lot of
  224. that!) Version 0.20b should now work. Also, the SMD loader has been improved.
  225.  
  226. ------------------------------------------------------------------------------
  227.  
  228. Version 0.10b : 18th August 1997.
  229.  
  230. First Release of KGen.
  231.  
  232. ------------------------------------------------------------------------------
  233.  
  234. INTRO:
  235. ------
  236.  
  237. KGen is finally at the stage I wanted it to be before I released it.
  238.  
  239. KGen was written entirely by me, in 100% assembler, in two and a half months.
  240. Every single piece of code in this emulator was written specifically for this
  241. emulator.
  242.  
  243. Please note, however, that this emulator is FAR from finished. A lot of games
  244. may not run, and others may but with severe problems.
  245.  
  246. So, don't complain if something doesn't work properly. It'll be fixed soon!
  247.  
  248. Also, in running this program you accept that I take no responsibility for any
  249. damage done to your computer, your hard drive, or you for that matter. While I
  250. have tried hard to make sure KGen will not fail, it is unfinished, and hasn't
  251. yet been properly tested.
  252.  
  253. I recommend you do NOT run it under Windows - not even a DOS box ! It may work
  254. but what IS the point? It'll slow down too much!
  255.  
  256. ------------------------------------------------------------------------------
  257.  
  258. GUI MENU SYSTEM
  259. ---------------
  260.  
  261. At any point during emulation, you can hit the ESC key to enter the GUI Menu
  262. System. The GUI is FULLY Keyboard driven, as this is what I, and many others
  263. who have mailed me, prefer. If you don't like it then don't use it, because it
  264. ISN'T going to change.
  265.  
  266. However, for those of you who LIKE things that are easy to use, here is some
  267. information on it.
  268.  
  269. Up and down cursor keys are used to hilight a specific option, and RETURN to
  270. select an option, throughout. During the File Menus you can also use PAGE UP,
  271. PAGE DOWN, HOME and END to move through the file list. Most of it should be
  272. obvious.
  273.  
  274. LOAD ROM        : Loads an SMD, BIN or .1 file, just as with the command line.
  275. LOAD SNAPSHOT   : Loads a Snapshotted game position previously saved.
  276. SAVE SNAPSHOT   : Saves current game position.
  277. CONTROLLER MENU : Allows enabling / disabling / configuring joypads etc.
  278. VERSION MENU    : Allows setting of Hardware Version, or Auto-Detect.
  279. VIDEO SYNC      : Keep enabled on fast machines, Disable on slower machines.
  280. 50Hz MODE       : ONLY USE THIS MODE IF YOUR CARD / MONITOR CAN HANDLE IT !!
  281. CHECHSUMS       : Disable checksums if a game won't run with them on.
  282. H-INTS          : Can normally be left ON, but switching OFF may speed it up.
  283. HELP            : Help Page telling you the extra available Key commands.
  284. EXIT            : Returns to DOS.
  285.  
  286. WARNING: The 50Hz mode may not work on your machine. It becomes active when
  287. it is switched ON and KGen is in EUROPEAN mode. This is for the people who
  288. want to play PAL games at the correct speed. If it doesn't work, leave it
  289. disabled.
  290.  
  291. Any number of game saves are possible, the current filename used will appear
  292. on screen after saving.
  293.  
  294. LOAD SNAPSHOT will first check if the required ROM file is already loaded. If
  295. not, it will try to load the ROM first. Note that if the ROM is not in the
  296. same place as it was when the SnapShot was saved, KGen will not be able to
  297. find it, and will return with a Cannot Load ROM message. In this case you can
  298. load the ROM yourself before loading the SnapShot.
  299.  
  300. Note that if the SnapShot file was saved with KGen 0.30b, it will still be
  301. neccessary to load the ROM first. Re-saving it will solve this problem.
  302.  
  303. Also, if any Genecyst Save State files are found, they will be listed, and you
  304. can load them. In this case, it IS neccessary to load the ROM first.
  305.  
  306. Note that Genecyst does not save out all the information that KGen requires,
  307. and as a side effect you may hear strange sounds or see strange things for a
  308. while. This should settle down eventually.
  309.  
  310. EXTRA KEY COMMANDS:
  311. -------------------
  312.  
  313. F1-F4 : Set FrameSkip.
  314. TAB   : Reset Genesis.
  315. F12   : Save ScreenShot.
  316. +/-   : Alter Volume Level (Keypad)
  317.  
  318. In VSYNC OFF mode, with FrameSkip 1, KGen will auto-adjust it's speed for your
  319. machine. If you do not like it speeding up and slowing down at will, then you
  320. can set the FrameSkip higher to lock it to 2 or above, 3 or above, and 4 or
  321. above. You may see some screen tearing going on in these modes. This is the
  322. downfall of not VSYNCing. KGen will auto-calibrate and adjust as best it can
  323. to avoid this, but sometimes it just isn't possible. This is the reason this
  324. mode was not in the first release, I was hoping to find a better solution.
  325.  
  326. In VSYNC ON mode, which should be used for faster machines, FrameSkip simply
  327. sets the number of frames of Processor Activity KGen attempts to do in each
  328. frame of PC processor time. Normally this will act in a similar way to VSYNC
  329. OFF mode without the auto-adjusting, and with no screen tearing. But if you
  330. have a P200, FrameSkip 2 will allow you to play games at twice the speed !
  331.  
  332. NOTE: VSYNC ON should only be used if you do NOT have to change FrameSkip. If
  333. your machine will not run a game at full speed with VSYNC ON, FrameSkip 1,
  334. then you should use VSYNC OFF instead.
  335.  
  336. Currently the SAVE SCREENSHOT feature will save to the same directory as KGen
  337. was loaded from. Any number of screenshots are possible, the current
  338. filename used will appear on screen after saving.
  339.  
  340. ------------------------------------------------------------------------------
  341.  
  342. COMMAND LINE.
  343. -------------
  344.  
  345.     The command line interface has been improved, but essentially isn't much
  346. different to previous versions. It is now also unneccessary, so you can type:
  347.  
  348. KGEN
  349.  
  350.     This will run the emulator and jump straight into the Main Menu. If you
  351. really must use the command line, type:
  352.  
  353. KGEN filename.??? -J -U -E -A -Fn -S
  354.  
  355. where ??? is either SMD, BIN, or .1 (Multi-part SMD files)
  356.  
  357. Any other extension will assume a BINARY file.
  358.  
  359. NOTE: the filename no longer needs to come before any options.
  360.  
  361. Options are: -J -U -E (select Japanese, American (USA) or European Machine)
  362.  
  363.              -A       (attempt to Auto-Detect the Machine Version)
  364.  
  365.              -Fn      (Frame Skip)
  366.  
  367.              -S       (Disable Sound - NOTE: DOES NOT DISABLE THE Z80 !)
  368.  
  369. FrameSkip is a value from 1 to 4 (default=1) that causes KGen to only draw the
  370. 2nd, 3rd or 4th frames, for use on slower PCs. If you have a P166 or above you
  371. shouldn't need this. If you have a P200 you should NEVER need this!
  372.  
  373. Read the section on the GUI for more information on Frame Skipping.
  374.  
  375. There is currently no way to disable the Z80. It's fast anyway! :-)
  376. Note also that sound can only be disabled from the command line.
  377.  
  378. ------------------------------------------------------------------------------
  379.  
  380. OK - So, what does it do?
  381. -------------------------
  382.  
  383. KGen is probably the fastest and most fully featured Genesis Emulator around.
  384.  
  385. This version currently emulates:
  386.  
  387.      * Motorola 68000 CPU
  388.      * ZiLog Z80A CPU
  389.      * Scroll Screens A,B and Sprites all fully prioritised and masked
  390.      * FULLY Working Window.
  391.      * ALL Scrolling modes (H-Screen, H-Cell, H-Line, V-Screen, V-Cell)
  392.      * DMA
  393.      * V Interrupts
  394.      * H Interrupts
  395.      * Many Raster Effects
  396.      * Palette Raster Effects
  397.      * Shadow / Hilight mode
  398.      * Complete and REAL YM2612 FM Emulation + DAC (No bodgy OPL3 rubbish!)
  399.      * Joypad (both ports, keyboard or joypad)
  400.      * Full Battery Backup Save / Load support
  401.      * PSG Emulation (all documented features)
  402.      * Sega 6 button Joypads
  403.  
  404. Future versions will emulate:
  405.  
  406.      * PSG (undocumented features)
  407.      * Interlace Mode
  408.      * More Raster Effects
  409.  
  410. I originally planned this Emulator to be MMX only, because I didn't think I
  411. could get the FM Synthesis quick enough without it. I surprised myself! But an
  412. MMX version is still planned, and will be added when everything else is done.
  413. I have great plans for this version, so consider yourself lucky if you have
  414. MMX !
  415.  
  416. ------------------------------------------------------------------------------
  417.  
  418. OTHER NOTES:
  419. ------------
  420.  
  421. KGen will probably run on a 486 with 8Mb of RAM, but as a Pentium is the only
  422. PC that could emulate a Genesis PROPERLY, it has been *highly* optimised for
  423. a pentium. (Actually, that's not true - there's still a lot of slow code in
  424. there.) So don't expect it to be worth using on a 486.
  425.  
  426. NOTE: Optimising for a 486 would NOT make the Pentium version quicker! It
  427. would make it MUCH, MUCH slower. And a 486 specific version would be unusable.
  428.  
  429. KGen uses VESA 2.0 support (320x240x8bit) if it is available.
  430. THIS IS HIGHLY RECOMMENDED - if you don't have a VESA 2.0 extender, visit
  431. http://www.scitechsoft.com and download UNIVBE (Scitech Display Doctor).
  432.  
  433. Without the VESA 2.0 mode, KGen resorts to a custom video mode, which can be
  434. MUCH slower, depending on your PC / Graphics card.
  435.  
  436. Other than that, KGen runs on any Pentium PC with 8Mb of RAM or greater. P166
  437. or above is HIGHLY RECOMMENDED! With a decent graphics card, UNIVBE, and the
  438. -F4 option, it will run reasonably on a P75.
  439.  
  440. For Sound Emulation, KGen requires a SoundBlaster Pro (or higher) or 100%
  441. HARDWARE compatible (no software driven!) sound card. If your sound card is
  442. only SoundBlaster compatible (and not PRO) it won't work, so don't ask me why!
  443.  
  444. You can buy a SoundBlaster 16 compatible for around 10 UK Pounds now, so stop
  445. moaning!
  446.  
  447. It currently looks for the BLASTER environment. If you don't have one set up,
  448. then you'll have to do so. Later versions will auto-detect.
  449.  
  450. KGen uses the PMODE/W DOS extender by Charles Scheffold and Thomas Pytel.
  451.  
  452. ------------------------------------------------------------------------------
  453.  
  454. CONTROLS:
  455. ---------
  456.  
  457. Control is via Keyboard, via re-defining, or using the defaults:
  458.  
  459. CURSOR KEYS:     Move
  460. A                Button A
  461. S                Button B
  462. D                Button C
  463. RETURN           Start
  464. Q                Button X
  465. W                Button Y
  466. E                Button Z
  467. ]                Mode
  468.  
  469. or JoyPad, which is reconfigureable. Joypads / Joysticks with less than four
  470. buttons should work, you will need to use the keys for the undefined buttons.
  471.  
  472. ------------------------------------------------------------------------------
  473.  
  474. PROBLEMS:
  475. ---------
  476.  
  477. There are probably a few bugs in my 68000 and Z80A emulators. The 68000 code
  478. was written in about 36 hours, and the Z80A in only three hours, so you'd
  479. expect there to be something wrong somewhere! I do not know of any specific
  480. bugs as yet, but the 68000 is not strictly finished, and probably needs a lot
  481. of optimising.
  482.  
  483. The YM2612 emulation is not perfect as yet.
  484.  
  485. However, the YM2612 emulation was written completely by a combination of
  486. judgement and trial and error. I have no documentation on the chip except for
  487. a simple register list, and could find no information on the technique of FM
  488. synthesis at all. So I think I've done pretty well. At least I made the
  489. effort!!
  490.  
  491. Note that there is now little point in people sending me FM information. I've
  492. worked it out for myself. Can't you tell ? :-) However, if somebody knows
  493. EXACTLY how the CSM mode works (on the YM2612 specifically) please tell me.
  494. All documentation I've found seems to be incorrect.
  495.  
  496. ------------------------------------------------------------------------------
  497.  
  498. FINALLY:
  499. --------
  500.  
  501. I do not condone piracy. I have been a games programmer for the last 12 years
  502. myself, and I know we don't get paid enough :-)
  503.  
  504. Do NOT ask me for ROM images. I have a BIG collection of cartridges, which are
  505. currently "living with" Andrew 22, but I WILL NOT tell you how to copy them,
  506. or give any out. If you can't find any, tough.
  507.  
  508. KGen is "AbsolutelyFreeWare" (tm) - I hope you get a lot of enjoyment out of
  509. it. Feel free to distribute it wherever you like, AS LONG AS THIS FILE IS WITH
  510. IT.
  511.  
  512. Do NOT bug me if something doesn't work. Eventually, 99% of games should work.
  513. But until then, just accept what you've got and be glad that it's free.
  514.  
  515. ------------------------------------------------------------------------------
  516.  
  517. THANK YOU:
  518. -----------
  519.  
  520. Thanks to Andrew 22 for telling me to 'get off my arse and do it', after I'd
  521. mentioned the idea of doing an emulator of some description about a year ago.
  522. Thanks to him for a load of other things that I can't be arsed to mention,
  523. including getting my cartridges into my emulator. Now you have a P200 you can
  524. appreciate my emulator at it's best :-)
  525.  
  526. Thanks to Belinda / Belinds / BinLiner / Blinder or whatever her name is
  527. supposed to be. "Soul Blade - Razor Blade !"
  528.  
  529. Thanks to Christopher 'Canal-Boy' Fuller for being so adept at falling down
  530. stairs and into various water-based landmarks, and then dissappearing off the
  531. face of the earth.
  532.  
  533. Thanks to Colin Rodgers and Stuart McKenna for supplying me with info on the
  534. Z80A and 68000 processors. It's been so long since I did any 68K, and even
  535. longer since I did any Z80 - Oh, I forget these things.
  536.  
  537. Thanks to Glen 'Todd' Cook for constantly moaning at me to 'get it sorted' and
  538. generally wandering about lost.
  539.  
  540. Thanks to my old friend Warren Mills for allowing me to look at his own Z80
  541. emulator. However, I do not have the time to test it, and am now convinced
  542. that there are NO remaining bugs in my Z80 emulation. The problem turned out
  543. to be with the YM2612 and is now fixed.
  544.  
  545. Thanks to David Michel, author of Magic Engine, for allowing me to bounce some
  546. ideas off him, even though it didn't amount to much in the end. Obviously,
  547. great minds think alike! :->
  548.  
  549. Thanks to Alain Jourgensen / cEvin Key / Nivek Ogre / D.R. Goettel (R.I.P) and
  550. Sasha K. for making my life worth living.
  551.  
  552. Thanks to Charles Scheffold and Thomas Pytel for releasing PMODE/W and letting
  553. me use it for free.
  554.  
  555. Thanks to Dave W. for allowing me to link to his site when mine was about to
  556. die!
  557.  
  558. Thanks to all the people who have Emailed me about KGen. I'm sorry if I have
  559. not replied to all of you, but although I'm a very fast typer, by the time I
  560. reply to one Email, another 14 arrive!
  561.  
  562. But most of all, thanks to my Wife Emma, for not moaning at me too much when I
  563. spend half the night on my computer.
  564.  
  565. ------------------------------------------------------------------------------
  566.  
  567. THAT'S ALL FOLKS!
  568. -----------------
  569.  
  570. New versions will be available as and when I add something worthwhile.
  571.  
  572. These can always be found at http://www.davesclassics.com
  573.  
  574. ------------------------------------------------------------------------------
  575.  
  576. snake@toodarkpark.demon.co.uk               http://www.toodarkpark.demon.co.uk
  577.  
  578. ------------------------------------------------------------------------------
  579.  
  580.