home *** CD-ROM | disk | FTP | other *** search
-
-
- Digivec
-
- Copyright (C) 1991
- By David Baggett
-
-
- --------------------------------------------------------------------------------
- User Contract
-
- This program is FREE. You may distribute it at will, provided you
-
- 1) do not charge any money for it,
- 2) distribute it WITH the documentation, and
- 3) do not change the program or documentation in ANY WAY.
-
- --------------------------------------------------------------------------------
-
-
- Introduction
- ------------
-
- "My ST was so boring before I got Digivec!"
-
- "Programming just isn't the same without it."
-
- "I just wouldn't know what to do if someone took away my Digivec!"
-
-
- You'll agree with these happy customers once you too try the exciting new
- shareware utility that's taking the ST world by storm! It's Digivec, and
- once you install it on your system, you won't know how you ever lived
- without it.
-
- Got your attention? Good. Okay, listen up. Digivec lets you install
- digitized sounds to be played when various system events occur. Like
- bus errors. Illegal instruction traps. Or line A calls. Even...
- GEM critical errors (gasp!).
-
-
- General Usage
- -------------
-
- Put digivec.prg in your AUTO folder. Then create a file called
- digivec.inf with a standard ASCII text editor and put it in the root
- directory of your boot partition (e.g., if your AUTO folder is C:\AUTO\,
- put digivec.inf in C:\).
-
- In digivec.inf you specify which sounds will be installed, and what events
- will trigger them. Each entry starts with a sample file name, enclosed
- in square brackets, followed by the sample playback speed, in Hertz,
- followed by a list of system vectors which will trigger the sound. Here's
- an example digivec.inf file:
-
- [d:\usr\sounds\buserror.snd] 11000 $8 $C
-
- This file tells Digivec to load the sample named d:\usr\sounds\buserror.snd
- and to play it at 11000 Hz whenever vectors 8 (hex) and C (hex) are jumped
- through (in this case, any time either a bus error or address error occur).
-
- Increasing the number 11000 will make the sound play faster; decreasing
- it will make the sound play slower.
-
- The digivec.inf file can contain as many of these entries as you want;
- the only limitation is that all the samples have to fit in memory at once.
-
- Note that file names MUST be enclosed in square brackets.
-
-
- Specifying an Alternate D/A Device
- ----------------------------------
-
- Digivec can be configured to play its samples through other D/A devices.
- Currently, the Hippo/Navarone and ST Replay digitizers are supported. Other
- digitizers will be supported if people send me info on them.
-
- To use an alternate D/A device, put one of the following keywords
- in curly brackets at the beginning or end of your digivec.inf file:
-
- hippo replay
-
- For example, a digivec.inf containing
-
- {hippo}
- [d:\usr\sounds\buserror.snd] 11000 $8 $C
-
- will cause Digivec to play the "buserror" sound through the Hippo/Navarone
- digitizer attached to your ST's cartidge port.
-
-
- The Vectors
- -----------
-
- You can specify the system vectors either in hexadecimal (with leading $)
- or decimal (no leading $). Interesting vectors for triggering sounds
- include (but are not limited to):
-
- Hex Decimal Description
- --- ------- -----------
- $8 8 Bus Error
- $C 12 Address Error
- $10 16 Illegal Instruction
- $14 20 Division by Zero
- $20 32 Privilege Violation
- $28 40 Line A Emulator
- $2C 44 Line F Emulator
-
- $404 1028 Critical Error
- $408 1032 Process Termination
- $476 1142 Drive read/write
-
- The first 5 vectors deal with failures caused (typically) by software
- bugs. These are the things that cause the ST to put bombs on the
- screen. But it's so much more fun to have the ST say "Just what do
- you think you're doing, Dave?" when a bus error occurs. (Especially
- if your name is Dave and you crash the machine a lot...)
-
- The Line A and Line F emulators are typically used to call system
- functions. (Line A is used for drawing functions; Line F is used in a very
- few programs for pulling off bizarre hacks and/or for floating point).
- Triggering sounds with these is not terribly useful unless you're a
- programmer-type and want to see just what a given application is up to.
- (It's also neat to install a sound at Line A and then run NEOchrome.)
-
- GEM uses the critcal error vector when various things confuse it. The
- most common of these is trying to read or write with no disk in the drive.
-
- The process termination vector will trigger a sound whenever any program
- exits. This can get extremely annoying after a while. Trust me. It's
- really fun to install this one on a machine when the owner isn't looking.
-
- If you miss your Atari 800, with it's "boop boop boop" disk access,
- you can trigger a sound with the disk read/write vector. Another good
- one to surprise your friends with.
-
-
- Command Line Usage
- ------------------
-
- In previous versions of Digivec, invoking the program from the
- desktop or command line was tricky. Those problems have been fixed.
- To call Digivec from the desktop, rename it digivec.ttp and double
- click on it. To run it from a command shell, type
-
- digivec
-
- and press return.
-
- Note that when you run Digivec from the desktop or a command shell,
- it looks for digivec.inf in the current working directory.
-
-
- Technical Information
- ---------------------
-
- Digivec works by installing a new exception handler for each vector
- specified in digivec.inf. Each new handler just plays the appropriate
- sound then jumps through the old vector. This should not adversely affect
- the system in any way, except in cases where timing is critical. (So
- don't trigger sounds with the horizontal blank interrupt!)
-
- Minor problems are caused by the fact that when GEM loads (after AUTO
- folder programs are finished), it obliterates the critical error vector and
- the process termination vector and installs its own. To get around this,
- Digivec waits for GEM to finish loading before it actually installs any
- vectors. The method Digivec uses to see if GEM has finished loading
- is a bit, ah, undocumented (I think), so I'd be interested to know if
- it doesn't work on certain versions of TOS. (How's that for confidence?)
-
-
- Caveats
- -------
-
- Digivec will replace any vector in the system. It does not check to make
- sure the vectors you specify are reasonable. This means that you could
- theoretically replace some vector in the system that no one else has thought
- of replacing, with nifty results. It also means you could make your ST crash
- in all kinds of hideous ways.
-
- The upshot is this: Don't put digivec.prg in your AUTO folder until you're
- sure you know how to boot your system without Digivec getting run. If you're
- a hard drive user, be sure you know how to bypass the hard drive, so that if
- your digivec.inf is not kosher you'll still be able to use your machine.
-
-
-