10 REM +++++++++++++++++++++++++++++++++
11 REM ! Program .... MEMCHECK
12 REM ! Utg}va 2.1 1982-02-09
13 REM ! av (c) Bj|rn Bruzelius
14 REM ! Minne 16 Kbytes
15 REM ! Ins{nt av 1717
16 REM +++++++++++++++++++++++++++++++++
17 REM
18 REM Screened by +TCP+
19 REM
20 REM *
21 REM * MEMCHECK VER 2.1 *
22 REM * ROM&RAMTEST 16/32K *
23 REM * B.Bruzelius 820209 *
24 REM *
25 S%=(PEEK(65056)+256*PEEK(65057))+128
26 E%=(PEEK(65063)+256*PEEK(65064))-256
27 L%=E%-S% : GOSUB 56 : ; CHR$(12%)
28 GOSUB 29 : GOTO 35
29 ; "ROM-TEST"
30 ; "CHECKSUMMA:";CALL(-93%) : ;
31 ; 'RAM-TEST ADRESS (decimal)';
32 ; 65536+S%;" -"65536+E%
33 ; "TESTAR BIT 0-7 (0-255) i ";
34 ; "ARBETSMINNET" : RETURN
35 ; : ; "OK f|r RENSA minnet ";
36 GET C$ : IF C$<>"J" 46
37 ; CUR(7%,0%)SPACE$(30%)
38 FOR I%=0% TO 255% : REM BIT 0-7
39 Z%=CALL(-128%,I%) : REM WRITE
40 Z%=CALL(-111%,I%) : REM READ
41 IF Z%<>E% Z%=Z%-1% : GOTO 48
42 ; CUR(7%,0%)'TEST #'I%' COMPLETED'
43 NEXT I%
44 ; CHR$(13%,10%,7%)
45 ; E0%" ERROR(S) DETECTED."
46 END
47 REM
48 ; CHR$(7%);
49 IF PEEK(65011%)<22% 51
50 ; CHR$(12) : GOSUB 29 : ; CUR(8,0)
51 ; "ERR ADRESS:"65536+Z%;" ";
52 ; "WRITE:"I%;" ";
53 ; "READ:"PEEK(Z%)
54 E0%=E0%+1% : GET C$ : GOTO 43
55 REM
56 REM -Mask.subrutiner i poke-arean-
57 POKE -128%,123%,42%,159%,255%,119%,35%,235%,42%,159%,255%,237%,75%,161%,255%,237%
58 POKE -113%,176%,201%,123%,42%,159%,255%,237%,75%,161%,255%,237%,161%,192%,224%,24%,250%
59 POKE -97%,S%,SWAP%(S%),L%,SWAP%(L%)
60 POKE -93%,17%,255%,63%,33%,0%,0%,6%,0%,19%,27%,26%,79%,9%,122%,179%,32%,-8%,201%
61 RETURN