home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BUG 1
/
BUGCD1996_0708.ISO
/
pc
/
util
/
z80emu
/
z80faq.doc
< prev
Wrap
Text File
|
1994-12-28
|
10KB
|
250 lines
Sinclair ZX Spectrum Emulator 'Z80' v3.03 - 29/12/94 - 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?
────────────────────────────────────────────────────────────────────
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).
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: Screendump 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: Screendump 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: Screendump for Epson or HP PCL compatible printers using
the screendump 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.
────────────────────────────────────────────────────────────────────
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).
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 parallel printer interface of the DISCiPLE/+D 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 normal ZX Printer "p" channel is automatically (by an interrupt
routine...) converted into the DISCiPLE/+D parallel printer output channel
by typing POKE @11,0. POKE @11,1 resets the "p" channel to the default
again.
As said above, you have to redirect the output of the Interface 1 RS232.
In the emulator, press F4, O, L, 1. Like on the 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. 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 11.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 email or normal post:
Internet email: gerton@rcondw.rug.nl
Postal address:
Gerton Lunter
P.O. Box 2535
9704 CM Groningen
The Netherlands.
───────────────────────────────────────────────────────────────────
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.