Hier das Omikron BASIC Listing. Mangels passender Hardware kann ich es selbst nicht testen und hoffe aber dennoch, dass es funktioniert.
Omikron BASIC ist recht langsam, timingabhängige Fehler, die nur durch schnelles Beschreiben aufeinanderfolgender Adressen zu erkennen sind, werden sich damit nicht finden lassen. Ich möchte das aber nicht in C oder 68k-Assembler noch einmal schreiben.
1 PRINT "VRAM TEST - (C) 2015 CHZ-Soft"
2 Ramtest($C00000,$CFFFFF,0,0)
3 Ramtest($C00000,$CFFFFF,$FFFF,0)
4 Ramtest($C00000,$CFFFFF,$A55A,0)
5 Ramtest($C00000,$CFFFFF,$5AA5,0)
6 Ramtest($C00000,$CFFFFF,0,1)
7 END
8
9
10 DEF PROC Ramtest(Startaddr%L,Endaddr%L,Pattern%L,Useaddr%)
11 IF Useaddr%=1 THEN
12 PRINT "Test-Pattern: Adresse"
13 ELSE
14 PRINT "Test-Pattern: "; HEX$(Pattern%L)
15 ENDIF
16
17 Errorcnt%L=0
18 FOR Addr%L=Startaddr%L TO Endaddr%L STEP 2
19 IF Useaddr%=1 THEN
20 REM Addresse als Testpattern benutzen
21 Pattern%L=Addr%L AND $FFFF
22 ENDIF
23 WPOKE Addr%L,Pattern%L
24 Readback%L= WPEEK(Addr%L) AND $FFFF
25 IF Readback%L<>Pattern%L THEN
26 PRINT "Adresse: "; HEX$(Addr%L);" Soll: "; HEX$(Pattern%L);" Ist: "; HEX$(Readback%L)
27 Errorcnt%L=Errorcnt%L+1
28 ENDIF
29 NEXT
30 PRINT "Abgeschlossen! Fehler: ",Errorcnt%L
31 RETURN