[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: What do you get when you access RAM that isn't there?
- Subject: Re: What do you get when you access RAM that isn't there?
- From: mjmahon@aol.com (Michael J. Mahon)
- Date: 24 Oct 2002 08:30:21 GMT
- Newsgroups: comp.sys.apple2
- Organization: AOL http://www.aol.com
- References: <OH9t9.12897$DP6.42324@news-server.bigpond.net.au>
- Xref: archiver1.google.com comp.sys.apple2:23874
Redskull wrote:
>6502 data lines are tri-state devices with no internal pull-ups,
>which means if nothing on the bus responds to a chip enable
>signal, the inputs will be undefined. = Random Garbage.
On an 8-bit Apple it's not random, but subtle.
Joel had it exactly right, and it's the same for any undecoded read
address, whether in RAM space or I/O space: the last accessed
video byte is held by the capacitance of the tri-stated bus and is
read as data. (For the 8-bit Apples--the IIgs is a different beast.)
This finding was the basis for Dan Lancaster's (and Joel's!) "vapor
lock" technique--so-called because it locks the Apple's program
execution to the video generator by reading the "vapor" bytes
of the video refresh.
If you try reading a non-existent address in the monitor, you will
see lots of $A0's, since the text screen is mostly blank.
Aside from a very few programs that use this technique to
synthesize a mixed video "mode" in software, practically
nothing depends on this effect for correct operation. (Probably
just as well, since it would be very inefficient to emulate
precisely. ;-)
-michael
Check out 8-bit Apple sound that will amaze you on my
Home page: http://members.aol.com/MJMahon/