home *** CD-ROM | disk | FTP | other *** search
/ PC Shareware 1996 December / PC_Shareware-1996-12.iso / windows / spectrum / docs / wspecem.txt < prev   
Encoding:
Text File  |  1996-06-06  |  15.1 KB  |  419 lines

  1.  
  2. WSpecEm v1.11 - 02/06/96 Rui Ribeiro
  3.  
  4.     WSpecEm is a 48k Spectrum emulator that runs under Microsoft Windows.
  5. It emulates successfully a Model 2 or Model 3 Speccy. I developed it over a
  6. 5-month period as my final year project, at University of West of England,
  7. Bristol, England. I'm here as an Erasmus student 
  8. (ECC foreign interchange student).
  9.  
  10.  
  11.  
  12.     Features implemented:
  13.     ---------------------
  14.  
  15. . F4 as pause (v1.11);
  16.  
  17. . emulator display frame rate definable (v1.10). Essential to run it on
  18. slower machines;
  19.  
  20. . emulator has delay configurable by user (v1.10). Essential with new
  21. routines;
  22.  
  23. . ghost keys (aka ghost closures -- v1.03 -- they were documented but not
  24.         introduced with v1.01 due to a lapse);
  25.  
  26. . save the current Spectrum screen as a PCX file; (v1.01)
  27.  
  28.  
  29. . handles .BLK tape files (v1.01 - a bug prevented it from working before
  30.             this version);
  31.  
  32. . all the Z80 undocumented instructions [that I'm aware of, at least];
  33.  
  34. . exact R register emulation;
  35.  
  36. . exact T state cycle timing in Z80 engine;
  37.  
  38. . kempston joystick as cursor keys with Fire as CTRL (if NUM LOCK off, the
  39. numeric keypad will work as a kempston joystick);
  40.  
  41. . Sinclair joystick as numeric keypad if NUM LOCK on
  42. (8 up, 2 down, 4 left, 6 rigth , 0 and 5 are both fire);
  43.  
  44. . recognises Windows'95 longfilenames;
  45.  
  46. . deals with ACH, PRG, SCR, SIT, SLT, SP, SNA, SNX, RAW, TAP, Z80,
  47. ZX and ROM spectrum related emulator files;
  48.  
  49. . ED FB level loader trap supported (aka .DAT files);
  50.  
  51. . files may be loaded by drag-and-drop, double-clicking or with the File
  52. open menu;
  53.  
  54. . short-cut load and save keys, a' la Z80 (F2 - save and F3 - load,
  55.                        F5 - reset);
  56.  
  57. . maps the Spectrum keyboard in the PC keyboard, with some extra pc-keys:
  58.  
  59.         ESC         : Caps-shif+SPACE      (CTRL-BREAK in a Speccy)
  60.         BACKSPACE   : same as Caps-shift+0 (DELETE in a Speccy)
  61.         LEFT  SHIFT : same as Caps-shift
  62.         RIGHT SHIFT : same as Symbol-shift
  63.         TAB         : same as Caps-shift + Symbol-shift (Cursor E)
  64.  
  65.         +,-,*,/ extended keys, operate as their Spectrum Plus
  66.         counterparts;
  67.  
  68. . pause, reset, nmi functions;
  69.  
  70. . sound generation through PC speaker;
  71.  
  72. . sound, flash, issue 3 or issue 2 control options;
  73.  
  74. . capability of saving options;
  75.  
  76. . WinG high-speed pixmap transfer;
  77.  
  78. . resize to 1x1, 2x2, 3x3 size for optimum speed under WinG;
  79.  
  80. . poke menu;
  81.  
  82. . easy of use;
  83.  
  84. . enclosed DOS utility to sample Spectrum tapes in a PC as a .TAP file through a SoundBlaster
  85. or the printer port;
  86.  
  87. . free, complete and commented sources available under GNU policy.
  88.  
  89.  
  90.  
  91.     Features not implemented:
  92.     -------------------------
  93.  
  94.  
  95. . Border;
  96.  
  97. . High Colour Resolution (also known as cropping);
  98.  
  99. . Sound as WAVEFORM;
  100.  
  101. . Pasting on clipboard;
  102.  
  103. . does not save .TAP and .SLT files;
  104.  
  105. . trapping of the LOAD and SAVE routines to save blocks as files on disk
  106.  'a la Xtender;
  107.  
  108. . .BMP files --- the code is at the end of WSpecem.C, but is somehow 
  109. flawed -- if you can put that to work, drop a line :) Of course you'll get 
  110. credits for that.
  111.  
  112. . TAP editor;
  113.  
  114. . built-in debugger;
  115.  
  116. . interface I emulation;
  117.  
  118. . output to printer;
  119.  
  120. . using a real joystick;
  121.  
  122. . 128k compatibility.
  123.  
  124.  
  125.  
  126.     Third Party Copyrighted Material
  127.     --------------------------------
  128.  
  129.  
  130. ZX Spectrum 1982 ROM from AMSTRAD.
  131. Thanks to AMSTRAD for granting permission to it's use within software
  132. emulators.
  133.  
  134. WinG copyrighted Microsoft.
  135.  
  136. If you want to know the snapshots that work with WSpecem, look at all the .Z80
  137. files at snaplist.txt. I checked now the .TAP files, and they're also OK.
  138.  
  139.     Tips
  140.     ----
  141.  
  142.  
  143. . If the application is not working, first make sure you have properly
  144. installed the WinG drivers. If you did,  make sure you have the multimedia
  145. drivers installed (a sure fire way of doing that is by installing the Media
  146. Player Windows utility) -- remember that I am talking about video drivers,
  147. in windows'95 you can also deinstall install the multimedia video drivers,
  148. so make sure you get them installed -- if you still want to check it out, 
  149. find a little AVI file and see if you can play it;
  150.  
  151. . a 8 colour screen depth (256 colours) mode is recommended for optimum
  152. speed. If you want it faster and bigger, decrease the windows screen
  153. resolution;
  154.  
  155. . run it under the menu sizes 1x1, 2x2, 3x3 or you'll surely get very
  156. slow graphics transfer speed;
  157.  
  158. . to get a faster emulation and smoother sound quit all applications that
  159. you can, disable screen savers and remove any windows background bitmaps;
  160.  
  161. . to get a decent speed in the emulator, I recommend a Pentium or equivalent
  162. processor (altough I suspect it working reasonably with a 50 Mhz 486) --- err
  163. currently with version 1.10 I think the 50MHz 486 is really true;
  164.  
  165. . and of course 8Mb or more for overall windows performance;
  166.  
  167. . if you still don't have a good speed, try decreasing the frame n/50 option
  168. at Options->Speed menu, and disable the flash option at Options menu;
  169.  
  170. . if by the contrary, you have too much speed, put frame n/50 option at 
  171. Options-Speed menu to 1, and if that doesn't still help you, go to 
  172. Options-> Speed menu and start increasing the Delay number;
  173.  
  174. . double-clicking in a .SCR file will not do any good, since
  175. WSpecem will reset itself upon boot;
  176.  
  177. . If you're using 16 colours, sometimes the subset of the palette chosen by
  178. Windows for WSpecEm is flawed. If this happens, you'll have to shutdown and
  179. boot Windows again;
  180.  
  181. . If a key gets stuck, press it again. That should solve the problem. A key
  182. can became stuck if you press it down, select the a Windows menu and release
  183. it before leaving the menu;
  184.  
  185. . Sometimes, when you are using the extended keys, you can get only one key
  186. instead of the combination of them (e.g. when pressing DELETE you get 0).
  187. This is a Spectrum ROM related bug and was also present on the real machines;
  188.  
  189. . If you have problems with SHIFT keys stuck trying to get the E cursor, use
  190. TAB instead to get the E cursor -- this problem is more likely to occur under
  191. Windows 95 than Windows 3.x;
  192.  
  193. . if you load a ROM, it will be used untill you load another ROM on the 
  194. emulator;
  195.  
  196. . if the emulator presents a message he couldn't load a ROM, thats because
  197. the spectrum.rom file is not on the directory of WSpecem.exe file. Following
  198. that message you can load your own ROM file;
  199.  
  200. . to load a .TAP or .BLK contents (binary image files of Spectrum tapes),
  201. do File->Open to the corresponding file, and then tape LOAD"" (j SHIFT-P
  202. SHIFT-P ENTER).
  203.  
  204.  
  205.  
  206.     About the original author
  207.     -------------------------
  208.  
  209.  
  210.     Rui Fernando Ferreira Ribeiro
  211.  
  212.         rff-ribe@csm.uwe.ac.uk (until mid-end of June 1996)
  213.         i890478@groucho.idt-isep.ipp.pt
  214.  
  215.             (both emails address subject to change after 1996)
  216.  
  217.  
  218.     If you would like to embark in technical discussions or exchanging
  219. ideias, sugestions...you're welcome to send me a message. I can read
  220. Portuguese, English, Spanish and French (I also understand a bit of
  221. Italian: you can try to write, but I cannot assure you that I'll fully
  222. understand the message).
  223.  
  224.     I can reply in English or Portuguese. My Spanish is very fragmented
  225. and I must undergo great pains to write in French. No snapshots or software
  226. requests, please. Also if you're reporting problems, be sure to include the
  227. program version number, please.
  228.  
  229.     I would to find a job after mid-June 1996 (in my own country or
  230. anywhere in the world, really that doesn't matter as long I'll get fairly
  231. paid), so I cannot assure replying to messages after that date (well, that
  232. is IF I'll get any messages at all). And if you are wondering, yes, I
  233. already worked for 3 years at a Software House and since then in several
  234. part-times... I even have been building computers from components for a
  235. short while and selling them to friends.
  236.  
  237.     Would you like to send me a postcard with a theme from your country,
  238. to improve my collection? Please do not send emails, if you just want to 
  239. congratulate me or tell me the emulator is good (sorry, already receive too
  240. many of them). Worst, I also received some binary pictures by email. Avoid
  241. this also, this really is annoying me.
  242.  
  243.     My address in Portugal is:
  244.  
  245.     Av. Carvalha, 280 3o. Dt
  246.     P-4420 Gondomar
  247.     Portugal
  248.  
  249.  
  250.     And in England until 24 of June:
  251.  
  252.     27B Carrol Court
  253.     University of West of England
  254.     ColdHarbour Lane
  255.     Bristol
  256.     BS16 1QY
  257.     United Kingdom
  258.  
  259.     If you like reading, read also the file tape2tap.txt. It has a few
  260. more details about myself and will explain you how to read Spectrum tape
  261. files.
  262.  
  263.     Finally, I sincerelly hope this software will be of any use to you.
  264.  
  265.     Best regards,
  266.          Rui
  267.  
  268. ------------------------------------------------------------------
  269.         WING NOTES FROM MICROSOFT
  270. ------------------------------------------------------------------
  271.  
  272. Known Bugs And Limitations
  273. --------------------------
  274. The following are known problems with or useful tidbits of information
  275. about WinG version 1.0.
  276.  
  277. - On Windows 3.1, WinGBitmaps must be 8 bits per pixel and must be
  278.   created with full 256 entry color tables.
  279.  
  280. - WinGDCs are NOT palette devices. You must change their color tables
  281.   using WinGSetDIBColorTable, not SelectPalette.
  282.  
  283. - WinGBitBlt and WinGStretchBlt only support bltting from WinGDCs to the
  284.   screen.
  285.  
  286. - Using BitBlt and StretchBlt to blt from one WinGDC to
  287.   another can be very slow when a clipping region has been
  288.   selected into the destination.
  289.  
  290. - WinGBitBlt and WinGStretchBlt may return different values than
  291.   StretchDIBits for identical blts.
  292.  
  293. - A few GDI APIs do not work correctly with WinGDCs:
  294.  
  295.     StretchDIBits will not blt 24bpp and 16bpp DIBs into an 8bpp WinGDC.
  296.     FloodFill with a NULL brush draws incorrectly
  297.     FloodFill outside of the bounds of a WinGBitmap can flood the
  298.       entire image
  299.     Brushes created with CreatePatternBrush with a WinGBitmap fault when
  300.       selected into a WinGDC on Win3x - use CreateBitmap(8,8,1,8,0)
  301.     DrawIcon will crash
  302.     WinGBitBlt and WinGStretchBlt will not always blt to the correct
  303.       location when you have changed the Viewport and/or Window origins
  304.       using SetViewportOrg or SetWindowOrg.
  305.  
  306. - You cannot change the origin of halftone brushes created by WinG.
  307.  
  308. - Noticeable timing differences have been found while running the
  309.   WinG profiler on a computer connected to a network. For accurate
  310.   results, disconnect your computer from the network the first time you
  311.   run a WinG application. After the profile is complete, you can plug the
  312.   net in again. NOTE: Microsoft is not liable for any damage you may
  313.   incur by incorrect handling of your computer hardware.
  314.  
  315. - WinGBitBlt and WinGStretchBlt use a slightly different color matching
  316.   algorithm than StretchDIBits when blting an 8-bit image to a 4-bit
  317.   planar display such as a standard VGA. Mixing WinG and
  318.   StretchDIBits on these displays may produce odd results.
  319.  
  320. - WinG relies on the mmsystem timer drivers to determine display
  321.   performance. If mmsystem.dll and timer.drv are not installed
  322.   correctly, the results of the performance test may be incorrect.
  323.   mmsystem.dll should appear on the drivers= line of the [boot]
  324.   section of system.ini, and timer=timer.drv should appear in the
  325.   [drivers] section of system.ini.
  326.  
  327. - WinG version 1.0 does not yet use standard DCI because of time
  328.   constraints.
  329.  
  330. - "Just In Time" debuggers install a fault handler in a chain along
  331.   with the WinG display performance profiler. If your debugger
  332.   reports a fault during the WinG display performance test, pass the
  333.   fault on to Windows instead of invoking your debugger.
  334.  
  335.  
  336. Driver-Specific Problems
  337. ------------------------
  338. WinG depends on Windows display drivers written by independant
  339. hardware manufacturers for much of its speed. Bugs or performance
  340. problems in third-party display drivers may cause problems in WinG.
  341. In many cases, the video card manufacturer has already fixed the bug,
  342. and upgrading your display driver will often clear away problems.
  343.  
  344. There are some specific "bugs" in display drivers of which you should
  345. be aware. The list below is not intended to slight the manufacturer
  346. of any particular card or driver.
  347.  
  348. A list of stress-tested configurations is available on the CompuServe
  349. WINMM forum and ftp.microsoft.com.
  350.  
  351. Some names in this list are trademarks of the respective
  352. manufacturer.
  353.  
  354. - Early drivers for Diamond Viper cards included a "Power Palette"
  355.   option that is no longer supported by Diamond. They recommend that
  356.   you upgrade your drivers if you have this option. WinG may be
  357.   slower when power palette is enabled.
  358.  
  359. - IBM no longer supports the IBM ThinkPad 720c. There are some
  360.   problems using WinG with the ThinkPad 720c display drivers.
  361.  
  362. - Cirrus drivers before version 1.43 have many known bugs which
  363.   have been fixed in the more recent drivers. Be sure to upgrade your
  364.   drivers if you are still running with this version.
  365.  
  366. - Some ATI drivers offer a "Crystal Fonts" option. Turning Crystal
  367.   Fonts on in 8-bit modes sets up a non-palettized driver that can
  368.   slow WinG significantly.
  369.  
  370. - The ATI mach8 Radical drivers cause a number of problems in both
  371.   WinG and in Windows with some versions of the ATI chipset. Be
  372.   aware.
  373.  
  374. - The ATI VGA Wonder drivers (W31-*.drv) will crash during a call to
  375.   StretchDIBits in the profiler.  Users can run the SVGA256.DRV driver
  376.   that shipped with Windows.
  377.  
  378. - Many miro Crystal drivers have problems with StretchDIBits, so they
  379.   crash during profiling.
  380.  
  381. - Early ATI Mach 32 PCI cards have a hardware timing problem and will
  382.   hang while blting.  ATI will replace these cards for no cost.
  383.  
  384. - WinG is incompatible with the #9GXE "TurboCopy" mode.  Use the
  385.   #9 control panel to disable TurboCopy (it is off by default).
  386.   
  387. - WinG uses a GetPixel to synchronize with display hardware when
  388.   writing directly to the screen.  The ATI Mach 32 driver's GetPixel
  389.   does not work properly, so it is possible to use GDI to draw to
  390.   the screen, then use WinG to blt to the screen and have them overwrite
  391.   each other.  Be careful mixing GDI drawing commands and WinG blts
  392.   to the display.
  393.  
  394. - The Orchid mmtllo.drv driver for the Prodesigner IIs has duplicate
  395.   system colors which prevents applications from getting an identity
  396.   palette and greatly reduces the WinG blt speed.  A workaround is
  397.   to set SYSPAL_NOSTATIC mode or use standard the Tseng ET4000 drivers
  398.   instead of the mmtllo drivers.
  399.  
  400.  
  401. A Note on Speed
  402. ---------------
  403. WinG is designed to be the absolute fastest way to blt DIBs under
  404. Windows.  The goal, achieved in many cases, is to blt at memory
  405. bandwidth to the display device.
  406.  
  407. On most 8bpp devices, if you use the recommended DIB format (returned
  408. by WinGRecommendDIBFormat) and set up correct identity palette, you
  409. should get 1:1 blt speeds comparable to BitBlt, which blts device
  410. dependent bitmaps (DDBs) to the display.  The timewing sample
  411. application will show you various blt speeds on your display.
  412.  
  413. The WinGRecommendDIBFormat API will tell you whether to use top-down
  414. or bottom-up DIBs for fastest unclipped 1:1 identity palette blts. If
  415. you plan on using other types of blt (such as stretching or complex
  416. clipping), your application may want to time top-down versus
  417. bottom-up blts itself at run time. See the WinG help file for more
  418. information.
  419.