[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Sound-makes only one click?
Dave Althoff <dalloff@freenet.columbus.oh.us> wrote:
> ($C036..Is that right? I thought I always used $C030...)
The ][/][+ and IIe don't fully decode the address, so anything from
$C030 to $C03F will toggle the speaker. Similarly for cassette out
($C02x), strobe ($C04x) and paddle trigger ($C07x).
This is true to a lesser extent for the keyboard buffer ($C00x) and
strobe ($C01x). They behave this way on the II+, but the IIe redefines
all the nonzero locations in each range for mode control and detection.
The IIe $C001-F locations are write-only, and reading them will still
access the keyboard buffer. The $C011-F locations can be read to get
the mode flag in bit 7, and they still return the keyboard buffer value
in bits 0-6 (in effect, the "any key down" flag reported in bit 7 of
$C010 is just another mode flag). I don't think accessing these
locations resets the keyboard strobe, however.
The IIgs uses nearly all the I/O locations, so you must stick to the
official location in each case. The same applies to the IIc, to a
lesser extent. Neither machine has cassette I/O ($C020 and $C060) or
strobe ($C040), and these locations are either unused or redefined, e.g.
$C060 is switch input 3 on the IIgs.
One particularly nasty location in the IIc is $C028, which toggles the
ROM bank for ROM version 0 or later (not the original 16KB ROM, version
255). Hitting this location from BASIC or the monitor will hang the
machine. It is safe to use inside a machine code routine that knows
what it is doing (e.g. the bank-switch code in the monitor).
This location is also defined as the same function on the IIgs, but I
don't think it does anything (the output doesn't go anywhere).
--
David Empson
dempson@actrix.gen.nz
Snail mail: P.O. Box 27-103, Wellington, New Zealand