home *** CD-ROM | disk | FTP | other *** search
- Sinclair ZX Spectrum Emulator 'Z80' v3.05 - 11/11/96 - by G.A. Lunter
-
-
-
- ────────────────────────────────────────────────────────────────────
-
- Z80 - Frequently Asked Questions
-
-
- 1 - How to print the diagram of the tape-interface
- as shown in DIAGRAM.Z80, or make other screendumps.
- 2 - How to LLIST and LPRINT to a printer
- 3 - How to build the tape-interface
- 4 - What to do if the Zandbergen joystick doesn't work correctly
- 5 - How to contact the author
- 6 - Manic Miner and Jetset Willy run too fast!
- 7 - How to save a .SCR snapshot to tape or .TAP file
- 8 - Printing problems with Tasword 128
- 9 - What to do about an IN 0 crash?
- 10 - I have a .TAP file, but it doesn't work
- 11 - Z80 complains about lack of memory
-
- ────────────────────────────────────────────────────────────────────
-
-
-
- ad 1. How to make a screen dump on a printer
-
-
- When the Interface 1 appeared, it was possible to attach a serial printer
- to the RS232 port of the Interface 1. The emulator can redirect the RS232
- to the serial port of the PC, a file or a parallel (printer) port.
-
- The SamRam can make a screen-dump on a dot-matrix printer. It is programmed
- for a Star SG-10. The Spectrum 128's COPY command sends its output to the
- "p" printer channel, also an RS232 channel. This will work for
- Epson-compatible printers. The ZX Printer's COPY output can be translated
- into graphics data understandable for Epson and HP-PCL compatible printers,
- and finally, the DISCiPLE has also on-board screen dump routines.
-
-
- Example 1: Screen dump for Epson or HP-PCL compatible printers, via
- the standard COPY command.
-
- Select the printer port to use for output with -XL 2 for example, to
- select LPT2 for output. Select Epson or HP-PCL output format with -0e
- or -0h. Then simply type COPY (in 48K or SamRam mode, not in 128K
- mode, and neither in DISCiPLE mode; it works in +D mode though).
-
-
- Example 1: Screen dump for Star SG-10 compatible matrix printer using
- the SamRam.
-
- Redirect the Spectrum Interface 1 RS232 output to LPT1 by pressing F4,
- O, L, 1.
- Load a .Z80 file, and wait for the picture you want to print to appear.
- Switch to SamRam mode by pressing F10, H, 3, CTRL-ENTER, and generate an
- NMI by pressing X, N. If you're already in SamRam mode you can
- simply press F5.
- Press P, then 1 to print the screen.
-
-
- Example 2: Screen dump for EPSON compatible matrix printer using the
- COPY command of the Spectrum 128
-
- Redirect the RS232 output to LPT1 by pressing F4, O, L, 1.
- Load a .Z80 file, and wait for the picture you want to print to appear.
- Save it as a .SCR screendump by pressing F10, X, S, name
- Switch to Spectrum 128K mode (F9, 5, ENTER)
- Choose '128K BASIC' from the menu, and type PAUSE 0:COPY, and press
- ENTER once.
- Press F10, X, L, name, to load the screen snapshot back into memory.
- Go back to the emulator (ESC, ESC) and press any key to start printing.
-
-
- Example 3: Screen dump for all other printers, using DOS utilities
-
- Follow the steps from example 2 up to the saving of the .SCR
- screen snapshot.
- Leave the emulator.
- Run CONVERT on the .SCR file to generate a .GIF or a .PCX file, for
- example
- CONVERT b g screen.scr screen.gif, or
- CONVERT b x screen.scr screen.pcx
- Find another program that can print the .GIF or .PCX file
-
-
- Example 4: Screen dump for Epson or HP PCL compatible printers using
- the routines of the DISCiPLE
-
- Redirect RS232 output to LPT1.
-
- Switch to 48K + DISCiPLE mode (or 128K + DISCiPLE) and select the ROM
- with the pre-loaded D.O.S. for Epson or HP PCL compatible printers
- Type COPY SCREEN$ 1 for a small screen-dump (black/white but with regard
- to colors)
- Type COPY SCREEN$ 2 for an A4 dump with dithered grey-tones.
-
-
- Example 5: Screen dump for Epson or HP PCL compatible printers using
- the ZX Printer emulation and the ordinary COPY command
-
- At startup, use a combination of the switches -xl, -xj, -0e, -0h and
- -0f to select the proper set-up for your printer configuration. These
- switches are best defaulted in Z80.INI.
-
- Make sure the emulator is in a 48K mode, SamRam is OK, or in a 128K mode
- but 48K BASIC, and make sure the Disciple is not turned on (+D is fine
- though). Then, the ordinary COPY command works.
-
-
-
- ────────────────────────────────────────────────────────────────────
-
- ad 2. How to LLIST and LPRINT to a printer
-
-
- There are several ways to print things. The standard ZX Printer output can
- be converted to graphics output in Epson or HP-PCL format; for this, select
- output port with -xl and output mode with -0e or -0h, then simply use
- LPRINT, LLIST and COPY to output to the "p" stream (on 48K Spectrum or
- SamRam; not on the Spectrum 128K).
-
- Note that (without the -xj switch) when the actual printer goes off-line or
- out-of-paper or whatever, Z80 will report to the Spectrum program that the
- ZX Printer is non-existent. This will prevent programs from trying to
- print things - some print without being asked to. However, when this
- happens during printing, Z80 will try to finish its job. The program
- appears to hang, but pressing the space bar once causes Z80 to stop waiting
- and report the ZX Printer as non-existent. When the printer goes on-line,
- the ZX Printer will appear again.
-
- All output to the Interface I's RS232 channel "b" and "t" (for raw and text
- output respectively; use "t" for listings) and the Spectrum 128's RS232
- channel "p", and the DISCiPLE/+D's centronics "p" channel can be routed to
- the printer port, a serial port or a disk file. Thus, by OPEN #3,"b", "t"
- on the 48K Spectrum with Interface 1, or OPEN #3,"p" on the Spectrum 128,
- all data sent to channel 3 (i.e. printed by LPRINT or LLIST) can be routed
- directly to a printer. The menu that controls this is accessed by F4, O.
-
- The normal ZX Printer "p" channel is automatically (by an interrupt
- routine) converted into the DISCiPLE/+D parallel printer output channel.
- The DISCiPLE rom's in ROMS.BIN are set to Centronics interface by default,
- so LPRINT works straight away. When a +D ROM is used, POKE @11,0 may be
- necessary. The +D's "p" channel can be reset to ZX Printer output by
- typing POKE @11,1. In principle, this is also possible with the DISCiPLE,
- but the ZX Printer port #FB is used by the DISCiPLE already, and the
- emulated ZX Printer will not respond to it in DISCiPLE mode.
-
- The following POKE @'s are useful: POKE @6,0 to switch on control code
- conversion, POKE @8,1 to have CR's converted to CR/LF's, POKE @10,0 to
- switch off automatic conversion into graphics of some ascii characters.
-
- As said above, you have to redirect the output of the Interface 1 RS232.
- As on a real spectrum with Interface 1, if you want to print to the
- Interface 1 RS232, you have to open the #3 channel. In Spectrum Basic,
- type: OPEN #3,"b" (or OPEN #3,"t" for basic listings). Press SHIFT-ALT 4
- for OPEN #.
-
- In this way you can print anything as long as your spectrum program
- supports printing to the Interface 1 RS232 and your printer type, or to the
- ZX printer. For example, it is perfecty possible to print a textfile on
- your printer with Tasword 3, or make a printout with Art Studio.
-
-
- ───────────────────────────────────────────────────────────────────
-
- ad 3. How to build the tape interface.
-
-
- The diagram of the tape interface is in the program DIAGRAM.Z80. It is easy
- to build, and inexpensive, since only passive components are used.
-
- If you do not want to build the interface yourself, you can order one for
- BP 14.50 with B G Services. For the address, see the Registering section
- in the documentation file, or the REGISTER.DOC file.
-
-
- ───────────────────────────────────────────────────────────────────
-
- ad 4. What to do if the Zandbergen joystick doesn't work correctly
-
-
- The Zandbergen joystick interface did not work at all in version 2.01. It
- works properly in V3 again. Sorry to have kept you waiting so long...
-
- To a fully implemented pc-joystick port, two analogue joysticks can be
- attached (on one plug!). A number of multi-io cards can handle only one
- analogue joystick. However, the Zandbergen joystick needs a fully
- implemented joystick port. If only two directions (out of four) work, your
- joystick port is not usable. Use an analogue pc-joystick instead.
-
- The joystick port of a Sounblaster is fully implemented and ok to use.
-
- If you have more than one joystick port in your pc, you have to disable
- one.
-
-
- ───────────────────────────────────────────────────────────────────
-
- ad 5. How to contact the author.
-
-
- You can contact me by normal post:
-
-
- Postal address:
-
- Gerton Lunter
- P.O. Box 2535
- 9704 CM Groningen
- The Netherlands.
-
- If it is REALLY urgent you can Email:
-
- z80help@bgserv.demon.co.uk
-
- Any queries which require my help will be forwarded to me.
-
-
- ───────────────────────────────────────────────────────────────────
-
- ad 6. Manic Miner and Jetset Willy run too fast!
-
-
- True. Most of the time these games are either producing sound or executing
- an LDIR instruction to update the screen. Since this instruction can be
- emulated with a single REP MOVSB instruction of the 8086, emulation is
- suddenly very fast. Without sound, Manic Miner and Jetset Willy were two of
- very few games that were actually playable on a 8 MHz PC, and of course I
- don't want to slow down the emulator on slow machines!
-
- If you turn the LDIR emulation switch on, the LDIR instruction will behave
- somewhat differently, important for well-protected programs. As a side
- effect, it will then also run at the right speed.
-
-
- ───────────────────────────────────────────────────────────────────
-
- ad 7. How to save a .SCR snapshot to tape or .TAP file
-
-
- First make the appropriate choises in the tape menu, F7. Then type SAVE
- "name" SCREEN$. Press ENTER, and then press F10 in the one second gap
- between header and data block. When saving to tape you can easily see it;
- when saving to disk, after pressing ENTER give the emulator a split second
- to save the header to disk before pressing F10.
-
- Now load the .SCR snapshot into memory, and continue saving.
-
-
- ───────────────────────────────────────────────────────────────────
-
- ad 8. Printing problems with Tasword 128
-
-
- Tasword 128 does not print correctly via the "p" channel; at least, my
- version of Tasword 128 doesn't. The problems can be circumvented easily by
- opening stream 3 for output to channel "b", i.e. OPEN #3,"b", instead of
- using channel "p". A better solution is to remove the bug. Load Tasword
- 128, turn on Microface 128 emulation, hit NMI (F5), choose T, then H for
- Hex, address 9DD3, and poke the values 01 FD 7F ED 79 32 5C 5B FB C9 into
- the respective addresses (pressing ENTER twice after each value); then Q
- and R.
-
-
- ───────────────────────────────────────────────────────────────────
-
- ad 9. What to do about an IN 0 crash?
-
-
- The Interface I often crashes if the 'Microdrive Data' port is accessed
- when the microdrive is not running. Entering PRINT IN 0 in Basic will
- usually hang the Spectrum. So, if a program reads from the 'Microdrive
- Data' port when it shouldn't, the emulator lets the user know that an
- ordinary Spectrum would have crashed at that point.
-
- Some programs did indeed crash if an Interface I was attached; JetSet Willy
- is an example (just wait until it pauses, then press a key). To use these
- programs, simply select the hardware mode 48K (or 128K) Spectrum without
- Interface 1. In this mode the emulator won't bother about programs reading
- from port 0.
-
-
- ────────────────────────────────────────────────────────────────────
-
- ad 10. I have a .TAP file, but it doesn't work
-
-
- Could be different things. The Warajevo emulator uses a tape file format
- different from Z80's, but uses files with the same .TAP extension. Check
- this first. Wavajevo comes with a utility to translate its .TAP format to
- Z80's.
-
- Some programs need the R register emulation to be switched on. Some
- programs will not load with an Interface 1 emulated. Some programs are
- Spectrum 128K programs without saying so when loaded in an 48K machine.
- Switch to 128K mode (without Interface 1 to avoid troubles there) and try
- again.
-
- Some programs use the standard format on tape, but use their own load
- routine. Because Z80 traps the ROM and does not emulate the bips and
- clicks of the data, this will not work. Convert the .TAP file to a .VOC
- file using TAP2VOC, and play this file back to the emulator.
-
-
- ───────────────────────────────────────────────────────────────────
-
- ad 11. Z80 complains about lack of memory
-
-
- Z80 itself suggests using -xt or -xu to reduce the amount of memory. Using
- -xt reduces execution speed only slightly in some situations, so if this
- works, you might as well put -xt in the Z80.INI file as a permanent
- solution. Most probably shelling to DOS will not work in this case, as DOS
- needs quite a bit of free memory.
-
- The switch -xu disables Hi-res color emulation, which can be undesirable.
-
- Z80 needs far less conventional memory if EMS memory is present. In a
- Windows (95) DOS box the amount of EMS memory available can be pre-set.
- Use the PIF editor (Windows 3.1) or go to Properties, Memory, to set the
- amount of available EMS memory to about any non-zero value (Z80 needs less
- than 256 Kb). This will most probably solve your memory problem in DOS
- boxes.
-
- If this still doesn't work, then most probably resident programs take up
- much space and leave very little conventional memory to ordinary programs.
- See your autoexec.bat file and remove unneccessary programs. If you do
- need them, try using e.g. Quarterdeck's QEMM to load as much as possible
- resident programs into high memory.
-
-
-
-