Keeping old technology alive - since 2012
Startseite ¦ Infoportal ¦ Downloads ¦ Newsfeed ¦ Galerie ¦ Kontakt
Programmieren # Identify and locate defective memory on the Commodore C64
Type the code without the line numbers (10, 20, ..):
Codeblock:
Now run the program with RUN.
It might then output something like this:
NOT 0, BUT 16
Each RAM chip (in old breadbox models with 8 chips) processes only one bit of all memory addresses. To find the faulty chip, you just need to know which bit is defective. The value 16 means that Bit #4 is permanently set, even though it shouldn't be. Bit #4 is handled by U23. The program simply writes 0 and 255 to memory addresses and checks if they are read correctly afterward. A "bad bit" leads to incorrect values:
- Stuck set bits result in values greater than 0.
- Stuck cleared bits result in values less than 255.
To find out which bit is defective, simply calculate the difference between the "correct" and the "incorrect" value displayed:
NOT 0, BUT 16 or NOT 255, BUT 239 are both 16 off, for example. 16 corresponds to Bit #4 in binary, so we need to see which RAM chip is responsible for this bit.
Codeblock:
In our example above, we need to replace U23 in a breadbox (with 8 individual RAM chips) or U11 if we have a C64C with only 2 DRAMs on the board.
Keep in mind that there may be more than one bad bit at the same time. For example, if the "wrong" value is 18, this suggests that both U9 and U23 are defective (or both U10 and U11, depending on the board).
Diesen Beitrag auf der neuen Seite lesen. »
Dieser Artikel ist auch auf Deutsch verfügbar. »
Bisher gab es 1.082.230 Besucher.
< Zurück | = Nach oben | > Neue Seite
very old retrospace
by freaked
Copyright © 2012-2026