Find en bitfejl (vil I ikke nok?!)
Ude i datamuseum.dk er tastaturet på vores Commodore 900 er holdt op med at virke.
Vores Commodore 900 er en af perlerne i vores samling, en utrolig sjælden prototype på den UNIX computer som Commodore opgav til fordel for Amiga og PC10 produkterne.
Inde i tastaturet sidder der en Rockwell R65001EAB3 "piggyback" processor med en 2716 EPROM.
Den havde jeg ikke opdaget da jeg læste de andre EPROM'er fra maskinen for snart mange år siden og nu ligner det at den har glemt en bit.
Jeg har udlæst EPROM'en og disassembleret koden og den laver en checksum af EPROM'en:
082c TEST_ROM_SUM: 082c a9 00 | | LDA #0x00 082e 85 39 | 9 | STA 0x39 0830 a8 | | TAY 0831 a9 08 | | LDA #0x08 0833 85 3a | : | STA 0x3a 0835 18 | | CLC 0836 71 39 |q9 | ADC (0x39),Y 0838 c8 | | INY 0839 d0 fb | | BNE 0x836 083b e6 3a | : | INC 0x3a 083d a6 3a | : | LDX 0x3a 083f e0 10 | | CPX #0x10 0841 d0 f3 | | BNE 0x836 0843 69 ff |i | ADC #0xff 0845 85 39 | 9 | STA 0x39 0847 d0 07 | | BNE ROM_ERROR 0849 4c 8b 08 |L | JMP MAIN
Når jeg udfører den beregning, ender jeg med A=0x01 i lokation 0x845
En eller anden byte har fejlagtigt den laveste bit sat, fordi EPROM'en er blevet glemsom.
Her er en binær kopi af EPROM'en.
Her er min disassemblering af koden i den.
Er der en 6502 haj til stede blandt publikum, som kan spotte hvilken bit det er galt med ?
/phk
PS: Hvis der er fejl i disassembleringen må I også gerne påpege det, den er lavet med mit PyReveng3 toolkit.

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.
Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.
Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.
Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.