[Coco] 512k test

Arthur Flexser flexser at fiu.edu
Fri Dec 6 23:53:08 EST 2013


Oops, thanks for the correction, William!

Art

On Fri, Dec 6, 2013 at 11:43 PM, William Astle <lost at l-w.ca> wrote:
> On 2013-12-06 20:36, Mathieu Bouchard wrote:
>>
>> Le 2013-12-06 à 18:34:00, Arthur Flexser a écrit :
>>
>>> 10 LPOKE &H22345,99:LPOKE &H12345,23
>>> 20 P=LPEEK(&H22345):IF P=23 THEN PRINT "UH-OH" ELSE IF P=99 THEN PRINT
>>> "LOOKS GOOD SO FAR" ELSE PRINT "HUH??"
>>
>>
>> Doesn't a simple LPEEK do the job ? LPEEK and LPOKE do a ?FC ERROR if
>> the address is too far.
>
>
> As has been mentioned by others, no, LPEEK and LPOKE cannot tell you
> directly if you only have 128K memory. Here is the more detailed explanation
> for those interested.
>
> On a 128K system, the memory present is ghosted four times, from $00000 to
> $1FFFF, $20000 to $3FFFF, $40000 to $5FFFF, and $60000 to $7FFFF. For
> various reasons which are related to hardware design, it is the upper
> segment that is directly used by basic which means on 512K, $00000 through
> $5FFFF are completely unused by basic.
>
> Now, even if memory didn't ghost, you still wouldn't be able to detect the
> presence of memory by just reading or writing it. Reading non-existent
> memory (as opposed to ghosted memory) simply returns junk from the bus.
> Writing acts as a bit bucket. Neither causes a problem.
>
> There is a way to detect the memory size, of course, and the basic program
> above is mostly right, but it gets a detail wrong. The ghosting happens in
> 128K blocks, not 64K blocks. Instead of &H12345 for the second LPOKE, it
> should just be &H2345. Otherwise, you're not matching the address between
> the two ghost instances. With that change, the program above will print
> "UH-OH" if you only have 128K, "LOOKS GOOD SO FAR" if you have 512K, and if,
> for some reason, the memory isn't working right, you might get "HUH?", say
> if you had a bad 512K board.
>
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco



More information about the Coco mailing list