Kapitel 23

Programexempel

Programexempel 1: Ett program att läsa i minnet med.

10 A=0 : ; CHR$(12)
20 ; WHT CHR$(PEEK(A)); : GOSUB 80
30 IF B=32 GET A$
40 IF B=192 ; : ; WHT "*";A;"*" : GET A$
50 IF B=194 60 ELSE 20
60 ; WHT A,PEEK(A),CHR$(PEEK(A)) : GET A$ : GOSUB 80
70 IF B=195 20 ELSE 60
80 B=INP(34) : A=A+1 : IF B=193 ; : ; "JMP "; : INPUT A
90 RETURN

PF1 talar om var i minnet du är.
PF2 hoppar till ett annat ställe i minnet.
PF3 visar tecken för tecken.
PF4 går snabbt fram i minnet.
Mellanslag startar och stoppar utskrift.

Programexempel 2: Ett program att kika i systemvariablerna med.

10 ; CHR$(12) : INPUT "ADRESS : ";A
20 B=PEEK(A) : ; "värde B : " B
30 C=128 : B$=""
40 FOR I=1 TO 8 : IF B-C<0 B$=B$+"0" ELSE B$=B$+"1" : B=B-C
50 C=C/2 : NEXT I : ; "värde B : %" B$
60 B=PEEK2(A) : IF B<0 B=B+65536
70 ; "värde W : " B
80 GOT0 10

Programexempel 3: Ett program att generera fel med.

10 INPUT "Vilket fel "A
20 A$=CHR$(62,A,195,18,0) : N=CALL(VARPTR(A$))

Programexempel 4: Ett program som kollar ROMs olika checksummor (Det tar ca 1 min 45 sek)

10 ; CHR$(12) "Testar BASIC"
20 FOR I=0 TO 24575 : B=B+PEEK(I) : IF B>65535 B=B-65536
30 NEXT I : ; "Testar DOS"
40 FOR I=24576 TO 28671 : D=D+PEEK(I) : IF D>65535 D=D-65536
50 NEXT I : ; "Testar Options-PROM"
60 FOR I=28672 TO 30719 : O=O+PEEK(I) : IF O>65535 O=O-65536
70 NEXT I : ; : A=B+D+O
80 ; "BASIC : " B
90 ; "DOS : " D
100 ; "Options-PROM : " O
110 IF A>65535 A=A-65536 : GOTO 110
120 ; "Summa : " A

Resultat på minABC802ABC806
BASIC:464594886
DOS:6518165181
OPROM:385536462
SUMMA:1912110993

Programexempel 5: Ett program som visar alla enheter som kan anropas.

10 E=PEEK2(65403) : ; CHR$(12)
20 ; CHR$(PEEK(E+2),PEEK(E+3),PEEK(E+4),58);
30 ; , PEEK(E+6)*256+PEEK(E+5)
40 E=PEEK2(E) : IF E<>0 GET A$ : GOTO 20

Programexempel 6: Ett program att skriva "oraderbar" text på 25:e raden med.

10 INPUT "Skriv in en text :"A$
20 A$=A$+SPACE$(80-LEN(A$))
30 POKE VAROOT(T$),80,0,128,127 : T$=A$
40 OUT 56,6,57,25

Programexempel 7: Ett program som skriver ut alla funktioner och instruktioner som finns i datorns listor.

10 A=PEEK2(65405)
20 B=PEEK2(A+6) : F=PEEK(B) : A$=""
30 C=PEEK(B) : B=B+1 : IF C=255 70
40 IF C>127 AND A$<>"" ; F,A$ : A$="" : F=C : GET B$
50 IF C<127 A$=A$+CHR$(C)
60 GOTO 30
70 A=PEEK2(A) : IF A>0 GOTO 20
80 IF D=0 A=PEEK2(65407) : D=1 : GOTO 20