![[TAPER!]](pics/taplogo2.gif)
| STANDARD DISCLAIMER |
| BETA DISCLAIMER |
| INDEX |
| 1. REQUIREMENTS |
| 2. IMPORTANT NOTES |
SET TMP=pathWindows users will probably have a `TEMP' setting instead.
| 3. SYNTAX |
TAPER [-w] [-s] [-m] [tapefile1] [tapefile2]Option `-w' is used to disable MS Windows `multitasking' if it is detected. It will be enabled again once you leave TAPER. This should be used with caution. This option works on Windows 3.x in enhanced mode and on Windows95.
| 4. THE SCREEN |
| Config | Configure the application. |
| Shell | Shell out to DOS.
WARNING: you must not start TSR programs from within the shell, or the
application will not be able to swap back in! If MS Windows multitasking has been disabled, it is still disabled while you're in a shell. |
| Quit | Stop. |
| Help | View this file. |
| About | Shows an about box. |
| SysInfo | Shows some system information. |
| 5. FILL-IN FIELDS |
| [CURSOR LEFT] | One char left; |
| [CURSOR RIGHT] | One char right; |
| [HOME] | Go to the start of the box; |
| [END] | Go to the end of the box; |
| [BACKSPACE] | Delete the character before the cursor; |
| [DEL] | Delete the character under the cursor; |
| [INS] | Toggle insert/overstrike mode (the startup mode is set in the configuration window); |
| [ENTER] | Accept the input and elect next button; |
| [TAB] | Accept the input and elect next button; |
| [SHIFT][TAB] | Accept the input and elect previous button; |
| [ESC] | Restore and stop editing; |
| [CURSOR LEFT] | One word left; |
| [CURSOR RIGHT] | One word right; |
| [HOME] | Go to the start of the input field; |
| [END] | Go to the end of the input field; |
| [DEL] | Clear the entire input field. |
| B | Clear start of input field up to the cursor; |
| E | Clear from the cursor to the end of the input field; |
| W | Clear from the cursor to the start of the next word; |
| 6. TAPE CATALOGS |
| PROG | (Program) | Auto-start line or ----- if none |
| CODE | (Code) | Startaddress of the code; |
| A-AR | (Alphanumerical Array) | - |
| N-AR | (Numerical Array) | - |
| ???? | (Unknown header block) | The Type byte |
| HEAD | (Headerless block) | The Flag byte |
| DATA | (Data block after a header) | The Flag byte |
| PURE DATA | - |
| 6.1. WORKING WITH TAPE ENTRIES |
| [CURSOR UP] | Move one entry up; |
| [CURSOR DOWN] | Move one entry down; |
| [PAGE UP] | Move a page up; |
| [PAGE DOWN] | Move a page down; |
| [INS] | Choose the entry; |
| [CTRL][HOME] | Move to the first entry; |
| [CTRL][END] | Move to the last entry; |
| [CTRL][INS] | Toggle the `selected' status of the entry. |
| [CTRL][CURSOR DOWN] | Advance to the next block, as the current block is played.
This option is very useful to test if a tape is played in the desired order. Collapsed blocks are automatically expanded when entering; |
| [CTRL][CURSOR UP] | Clear the advance variables (CALL stack, Loop counter); |
| [F5] | Copy entry after the highlighted entry in the other window, |
| [F5][ALT] | Move entry after the highlighted entry in the other window, |
| [F5][CTRL] | Copy entry before the highlighted entry in the other window, |
| [F5][ALT][CTRL] | Move entry before the highlighted entry in the other window, |
| 6.2. FLAG/PARITY BEHAVIOR |
| 6.3. INSERTING ENTRIES |
| 7. THE CONFIGURATION |
| Remap Bright Black | Should the ULA bug be matched and should bright black be displayed as dark black? |
| Emulate Flash | If turned on, flash is emulated when drawing ZX Spectrum screens. |
| Slow Flash | Normally, flashing is done every 16/50th of a second (as the
ZX Spectrum itself does). If you have a slower computer or
video card, this may result in loss of responsiveness. In
this case, you should turn this option on, so that flashing
is reduced to a third of the time (just under a second).
Both these options can be toggled from the menu strip. |
| Confirm Quit | User must confirm quit? |
| Confirm Delete | User must confirm delete? |
| Confirm Overwrite | If turned on, TAPER will ask for confirmation when a file is about to be overwritten (except the tape itself). |
| Follow Slider | If turned on, a combo window will be updated while you move
the slider bar. If turned off, only the slider bar will be
updated while moving; the result will be printed when you
release the mouse button.
This option should be turned off for slower computers only. |
| Edit Insert | Sets the initial edit mode for startup of edit buttons.
Checked means insert mode, cleared means overstrike mode. |
| Always Backup | If this option is turned on (the default), TAPER will make a
backup of the tape the first time that a new version is to
be written. This file will have extension `.BAK'
This option can be temporarily overridden from the menu. |
| Disable Sounds | Disable all speaker sounds from TAPER. |
| Trace Sound Blocks | If turned on, TAPER will constantly show the currently
played block when the `Play' menu option is used.
This option can be temporarily overridden from the menu. It should be turned off for slower computers, or when playing through the Parallel Port. |
| Show Play Time | If set, will show the remaining play time while playing. |
| Default VOC Filter | Should the VOC filter be turned on by default? |
| Text Editor Path | ASCII Editor to be used when editing a `Custom Info - Instructions' block; |
| Play Device | Selects either SoundBlaster or Parallel Port. |
| Play Windows Disabled | If turned on, disables Windows multitasking while playing and enables it afterward. |
| Play IRQs Disabled | Only used when playing through the Parallel Port. It will block all hardware IRQs 3 through 7, which may help if you have a really dodgy computer. Use with care! |
| LPT Port | Selects the Parallel Port to be used if the Play Device was set to the Parallel Port. |
| COM Port | Not used yet. |
| Blanker Installed | Use the blanker? |
| Blanker Time-Out | Number of seconds of non-keyboard/mouse activity before the blanker activates. |
| 7.1. THE CONFIGURATION FILE |
| ZX-EditPath | Full path to the ZX-Editor executable, used to edit/view
`Custom Info - ZX-Edit Document' blocks. This path is automatically asked when needed. |
| GIFViewerPath GIFViewerOptions JPGViewerPath JPGViewerOptions | The full path and possible extra command line options to
the external GIF/JPG viewers used to display
`Custom Info - Picture' blocks. These values are automatically asked when needed. |
| DragOutlineOnly | If turned on, will update only the window's outline while a window is being dragged. This should only be turned off if you have an extremely fast processor and video card (as the used video mode is slow) |
| ResizeOutlineOnly | If turned on, will update only the window's outline while a window is being resized. This should only be turned off if you have an extremely fast processor and video card (as the used video mode is slow) |
| PreLoadResources | Load all font files at startup when set. This will save some floppy swapping when running TAPER from floppies and will prevent TAPER from getting out of memory a bit. |
| DirectVideoControl | Do not use the RIL if one has been detected. This will speed
up all screen functions, but can cause a messed up screen if
your video card cannot handle it.
You will want to enable this option. |
| SwapInTextMode | If set, ignore the startup video mode and always set MODE 80 when swapping out. |
| QuitInTextMode | If set, ignore the startup video mode and always set MODE 80 on program exit. |
| DefaultDecodeROMTiming | Sets the `Force ROM Timing' scheme as default for the VOC decode requester. |
| SBNoHighSpeedDMA | Turn this option on if your soundcard crashes when using playback samplerates about 22kHz. |
| MixerInputValues | These are set from the sample window and hold the values
of the software mixer of your soundcard to be used while
sampling a physical tape. A '0' value means that the register is not set. |
| TZXStripPauseLengths | The `pause length' field of TZX block types 0x10, 0x11,
0x14 and 0x15 is written as 0 if it's the last block in the
tape or the next block is a `Stop the tape'.
This will force emulators that load at high speed (e.g. X128) to return to normal speed immediately when the game starts so you can see everything. This option is turned on by default. |
| ShowRemainingPlayTime | If set, will show the remaining play time while playing. |
| NextFloppyDiskId | This is the next floppy number to be used. You should NOT edit this field by hand! |
| UseGeniusMouseHiding | If turned on, will use the old-style Genius mouse hiding function. Turn it on only when you have a Genius mouse driver with version 7.02 or below. |
| NoLocalMouseHiding | If turned on, TAPER will use an internal mouse hiding
routine.
This should only be used when you have a really weird mouse driver (e.g. in Windows NT) that messes up the screen. |
| ForceMouseRelease | To be used only if you have a weird mouse that seems to be lost (doesn't work in a next application) if you quit. |
| SwapMouseButtons | If turned on, will swap the left and right mouse buttons. |
| Emulate3rdMouseButton | If turned on, will simulate a 3-button mouse from a 2-button mouse. Useful when selecting entries in a combo window. In stead of pressing [CTRL] while selecting the entry with the left mouse button. press the left mouse button and while keeping it pressed, press the right mouse button as well. |
| SnapMouseDefault | Turn it on if you want the mouse to move to the default button if a window/requester is drawn or if an edit button is finished with the [ENTER] key (Default is off). |
| DoubleClickInterval | The maximum time elapse in milliseconds between two mouse clicks to be recognised as a double-click. |
| InitialContPushDelay | The initial delay in milliseconds when keeping a continuous push button pressed (e.g. the arrow buttons on sliders). |
| UseCustomPalette | see `Using a Custom Palette' below. |
| CustomColorXX | see `Using a Custom Palette' below. |
| 8. THE MENU STRIP |
| [F9] | start/stop the menu |
| [ESC] | stop the menu |
| [CURSOR LEFT] | One menu section left |
| [CURSOR RIGHT] | One menu section right |
| [CURSOR UP] | One option up |
| [CURSOR DOWN] | One option down |
| [CURSOR RIGHT] | Enter submenu (if any) |
| [CURSOR LEFT] | Leave submenu |
| [PAGE UP] | Go back to the top (menu name) |
| [PAGE DOWN] | Go to the last option |
| [ENTER] | Activate the highlighted option |
| New | Remove the current tape from memory and start with an empty
one. You will be asked to save first if you changed anything;
Notice that the tape name will be `(new tape)'. When saving a new tape, you should use the menu option `Save As...' to give it a proper name. |
| Open ... | Remove the current tape from memory and open a new one. You will be asked to save first if you changed anything; |
| Save As ... | Save the tape to a new file; |
| Save | Save the tape; |
| Import tape | Join another tape in memory. The new tape will be simply
added.
Afterward, the selection bar will be on the first imported line. |
| Get tape CRC | Calculate and display the 7-byte tape CRC value.
As this value is unique for the data in a tape, it can be used to quickly compare tapes of different format. |
| Get tape play time | Calculate the time needed to play the entire tape. |
| Backup tape | If checked, will create a backup of the `old' tape before writing a new one (to temporarily override the `Always Backup' option from the configuration window). |
| Auto-decrypt | SpeedLock 2 through 7 blocks are encrypted. Most of them have a fixed encryption scheme. If the tape file contains a 'Group Start' entry with a group name starting with 'SpeedLock X' and this option is turned on, the blocks are automatically decrypted when using a 'View As' menu option. |
| Decrypt any | Will decrypt any block if set, not only SpeedLocks. |
| Set values ... | Define the decryption values.
(see 'Block Encryption' further in this document) |
| Match tapes | Check if the (Spectrum) data of both tapes is equal. |
| Quit | Guess... |
| Deselect all | Make all entries unselected; | ||||||||||
| Invert selected | Invert the selected entries - selected entries are now deselected and vice versa; | ||||||||||
| Insert ... | Insert (create) a tape entry manually; | ||||||||||
| Delete | You will see a submenu:
| ||||||||||
| Duplicate entry | Duplicate the currently selected entry; | ||||||||||
| Play | You will see a submenu:
| ||||||||||
| Save raw data | Save the data of the currently selected tape entry to a separate file, excluding flag/parity bytes. This can be used to create .SCR files for example. | ||||||||||
| Decode entry | (Available only if the currently selected block is a Direct Recording Block): Decode the block as if it was an ordinary VOC file; | ||||||||||
| Edit header | Edit the currently selected header block; | ||||||||||
| Selected block | You will see a submeun:
| ||||||||||
| Find match | You will see a submeun:
| ||||||||||
| View as | You will see a submenu:
| ||||||||||
| View entry info | View detailed info on the current entry (the same as double-clicking the entry); |
| Disable sounds | Turn all sounds from TAPER on/off. Has the same purpose as the command line option `-q'. |
| Sound volume | Adjust the sound volume when playing through soundcard. |
| Emulate flash | Emulate flashing characters when drawing a ZX Spectrum
screen
(see `The Configuration File' for details). |
| Slow flash | Slow down the flashing timer to a third.
(see `The Configuration File' for details). |
| Trace SB blocks | If turned on, TAPER will constantly show the currently
played block when the `Play' menu option is used.
You can turn this permanently on/off using the `Trace Sound Blocks' option in the configuration. It should be turned off for slower computers, or when playing through the parallel port. |
| Show play time | Will show the remaining play time length while playing
(part of) a tape through the soundcard or parallel port.
You will probably not want this option turned on when using the parallel port... |
| 9. PLAYING A TAPE |
| 9.1. USING A SOUNDCARD |
Axxx - base Address (xxx usually 220)
Ix - IRQ line (x usually 5)
Dx - 8-bit DMA channel (x usally 1)
If this environment variable is not found, or either one of the above 3 parts
is missing, detection fails.
Model Frequency range (Hz)
SoundBlaster 2.x 4000-15151
SoundBlaster Pro 4000-45454
SoundBlaster 16 4000-45454
SoundBlaster (AWE)32/64 5000-45454
| 9.2. USING THE PARALLEL PORT |
B G Services
64 Roebuck Road
Chessington
Surrey KT9 1JX
Telephone enquiries on (0181) 287 4180, Fax (0181) 391 0744, or from
abroad: +44 181 287 4180 and +44 181 391 0744 respectively.
| 10. BLOCK ENCRYPTION |
(loaded byte in L register)
LD A, value1
XOR L
ADD A, value2
LD (IX+0), A
...
`value1' is called the XOR-value, and `value2' is called the ADD-value.SpeedLock 2/3: XOR-value 152 (0x98), ADD-value 11 (0x0B) SpeedLock 4-7: XOR-value 193 (0xC1), ADD-value 17 (0x11)You can use options in the menu strip to handle on-the-fly decryptions:
| 11. WORKING WITH BASIC BLOCKS |
| Drop Colors | Remove in-line color attributes from the output. |
| Real numbers | View numbers as they are used when running the program.
These are stored in the 6 bytes after the displayed number
in a Spectrum line and do not necessarily represent the
same value! Especially programmers of protection schemes (eg. the BASIC part of a SpeedLock 1) turned WYSIDNWYG (`What You See Is Definately Not What You Get') into an art-form. You will want to turn this option on most of the time, especially when saving to ASCII. |
| Save | Save out the listing to an ASCII file. |
| 11.1. SAVING BASIC BLOCKS |
| Chars | Displayed as
|
| 00-05 | "{XX}", where XX is 2-digit hex, holding the value |
| 06 | tab |
| 07-0C | "{XX}", where XX is 2-digit hex, holding the value |
| 0D | end of line |
| 0E | skipped |
| 0F | "{XX}", where XX is 2-digit hex, holding the value |
| 10-17 | PAPER, INK, BRIGHT, FLASH, OVER, INVERSE, AT and TAB control characters are printed at e.g. "{PAPER x}" |
| 18-1F | "{XX}", where XX is 2-digit hex, holding the value |
| 20-7E | character it stands for |
| 7F | "{(C}}" |
| 80-87 | "{-X}", where X is 1-8 (the key to press) |
| 88-8F | "{+X}", where X is 1-8 (the key to press along with shift) |
| 90-A3 | "{X}", where X is 'A' - 'U' |
| A4-FF | expanded token |
| 12. THE HEX EDITOR |
| Code | blocks use the start address as in the header |
| Program | blocks start at 23755 |
| Array | blocks have no default |
| [CURSOR UP] | Go one line up |
| [CURSOR DOWN] | Go one line down |
| [CURSOR LEFT] | Go one byte(half) left |
| [CURSOR RIGHT] | Go one byte(half) right |
| [PAGE UP] | Go one page up |
| [PAGE DOWN] | Go one page down |
| [HOME] | Go to the start of the line |
| [END] | Go to the end of the line |
| [CTRL][TAB] | Switch between the hex and ASCII editing window |
| 13. THE DISASSEMBLER |
| Code | blocks use the start address as in the header |
| Program | blocks start at 23755 |
| Array | blocks have no default |
| [PAGE UP] | Go one page back |
| [CURSOR UP] | Go one line (instruction) back |
| [CURSOR LEFT] | Go one byte back |
| [PAGE DOWN] | Go one page forward |
| [CURSOR DOWN] | Go one line forward |
| [CURSOR RIGHT] | Go one byte forward |
| Hex | The `number mode': Toggle between decimal and hexadecimal (default is hex). |
| Sysvars | If set, expand 16-bit numbers to the name of the appointed
system variable. Only numbers, not addresses in CALL or JP
instructions. Assumed will be that the IY register pair is kept locked at address 23610, and operands (IY+d) will be expanded in the same way. |
| Spectrum ROM | If set, all references to addresses below 16384 will get the
48K Spectrum ROM symbols (the internal symbol table, in the
file `SPROM48.SYM'). Apart from that, literals following RST 08 and RST 28 instructions are expanded as well. RST 08 instructions are followed by the desired error code and RST 28 instructions by the floating-point calculator stack instructions. Instruction operands of second-level instructions "jump", "jump_true", "stk_data" and the "series_XX" are decoded too. When disassembling a block that contains the 48K Spectrum ROM itself, TAPER will notice and adjust symbol handling accordingly. |
| Go to | Start disassembling at a different address. |
| Hexedit | Start the hex editor from the address at the top of the page. |
| Symbols | Edit the user defineable symbol table. This button pops up a window where you can load, save, merge, flush, add and delete symbols. You can maintain symbol tables per tape, or even per tape block. Simply create a table and save it. When disassembling the tape again, re-load the table. |
| Save | Save (part of) the block disassembly to an ASCII file. The default filename will be the same as the game, but with extension `.DIS', and the file will be put in the current directory. |
| 14. LOADING SNAPSHOTS |
| Normal Speed (1500 bps) | The file will be saved with ROM timing. Note that you can NOT use the result in a TAP file, since a custom loader is used! |
| High Speed (2250 bps) | A tad faster. Use this speed if 3000 bps appears to be too fast for your tape deck to reliably record. |
| Turbo Speed (3000 bps) | This is the default value and is probably the highest speed you can safely use when saving the file to a physical tape. |
| Ludicrous Speed (6000 bps) | This speed can only be used when playing the file straight into a Spectrum! You probably need a soundcard rather than a parallel port interface to play, since the parallel port appears to give a too low signal strength on such high speeds. |
| Fastest | All blocks will be compressed. |
| Cleanest | This is the default. If the block that contains the screen corrupts the screen while loading, the block will not be compressed. This will load a couple of more Kb, but the screen will look good all the time. |
| 15. USING A CUSTOM PALETTE |
| 16. TROUBLESHOOTING |
| Q | When I return from TAPER to DOS, or when I start a shell from within TAPER, the screen does not have a cursor, but I see a cursor-like line somewhere in the void. The font seems to have changed too. What happened? | ||||||||||||||||||||||||
| A | I encountered this problem so far only when using MouseWare
from Logitech. If you use Logitech's MouseWare, ensure that
the VCI module `LVESA.OVL' is loaded and cursor enhancements
are off.
To do this, edit your `MOUSEDRV.INI' file. Look for the section `[Display]' and ensure that a line `VideoModule=C:\MOUSE\LVESA.OVL' is present (or whereever the `LVESA.OVL' file resides). Now, if you load your mouse driver (possibly from your `AUTOEXEC.BAT' file), load it with parameter `NOCENHANCE'. | ||||||||||||||||||||||||
| Q | The mouse makes a mess of the screen! I don't like this at all! | ||||||||||||||||||||||||
| A1 | You have a Genius mouse with a driver version 7.02 or below.
Genius mouse drivers v7.02 and below have a different
approach for mouse hiding. If you use one, weird things can
happen. Yet, no harm is done by this to the application nor
your computer. Two solutions are available:
| ||||||||||||||||||||||||
| A2 | You have a combination of an older (ISA) video card and an
older mouse driver, which does not provide the RIL
(Register Interface Library). Be sure that you turned the
option `DirectVideoControl' off in `TAPER.INI', as this
disables the RIL.
You can see if the RIL is present when pressing the `SysInfo' button. If a RIL is present, you will see a line `RIL version : xxxx' in the video section. If it is absent (or not used), you get `Control : Direct' instead. You can solve this problem in the following ways:
| ||||||||||||||||||||||||
| Q | When I have TAPER running, I can't see what's on
the screen very well.
Is there anything I can do about it? | ||||||||||||||||||||||||
| A | Yes, you can use a custom palette to create better color
contrast.
See `Using a Custom Palette' for details. | ||||||||||||||||||||||||
| Q1 | I run TAPER from Windows NT. The mouse cursor often stays in the 'waiting' cursor shape, until I move the mouse. | ||||||||||||||||||||||||
| Q2 | I run TAPER from Windows NT. The mouse cursor looks
very weird.
| A
| Although Windows from Microsoft, the emulated mouse cursor
in a DOS box is absolutely NOT Microsoft compatible! Talk
about weirdos, eh!
| You should turn on the `NoLocalMouseHiding' in the configuration file. This will solve the screen problems, although the mouse will still look weird in Windows NT. Q
| I run TAPER from a Windows (95) DOS-box. When I
start it, it complains about a missing mouse driver. I'm
using my mouse without problems within Windows though!
| A
| This is a common mistake. Windows and DOS each need their
own mouse driver. The mouse driver from Windows cannot be
used within DOS and vice versa.
| You should add a line in your `AUTOEXEC.BAT' to activate a mouse in DOS (or type it on the command line before starting TAPER). If you upgraded from Windows 3.x to Windows95, the install program from Windows95 removed this line from your `AUTOEXEC.BAT' (or put `REM' in front of the line) for no appearant reason, so you should add it back and write a hate-mail to Bill Gates. Q
| My soundcard works with TAPER from DOS, but not
from Windows. How's that?
| A1
| Windows has already allocated the soundcard to another
application.
| A2
| Windows has wrong information regarding your soundcard.
| To find out which one it is, close all applications, start a fresh DOS box and start TAPER in it. If it now works, the answer is A1. Otherwise it's A2. Click the `SysInfo' button in TAPER to see if the soundcard has succesfully been detected. Q
| When I play the tape through my soundcard, the
pointer bar is always ahead.
| A
| This is correct. The pointer bar is updated when the next
block is going to be written to the DMA buffer. As the
actual playing is slower than the writing, it is very likely
that the next block can be written while the previous one is
still playing.
| Q
| Parallel Port playing does not work. I hear all
sorts of strange quirks and too much lag is generated in
order for the Spectrum to load the program.
| A
| Try turning both the `Trace Sound Blocks' and `Show Play
Time' configuration options off. If it still doesn't work,
try to turn the option `Play IRQs Disabled' on or see the
next question...
| Q
| I run TAPER on a Pentium <million>MHz, and get
this funny message when I want to play through the parallel
port: `Sorry, but your machine is too slow for this feature'.
This is a joke, right?
| A
| I am fully aware of this problem but have not found out what
causes it yet. It has something to do with latency in the
timr circuit of your machine.
| So far, I saw this problem only with (badly) overclocked machines. |
| 14. THE CREDITS |
| 15. HOW TO CONTACT US |
ThunderWare Research Center to: Martijn van der Heide Cederstraat 56 2565 JR - The Hague The NetherlandsAlthough please be aware that development on TAPER has seized since 2000!
|
|
|