C 64/VC 20
Anwendung

Neuer Checksummer 64 — blitzschnell und kürzer

Das Programm Checksummer kennen die meisten unserer Leser bereits aus dem 64’er Sonderheft und den Ausgaben 1 und 2/85. Der Checksummer überprüft jede eingegebene Basic-Zeile und erspart Ihnen deshalb eine langwierige Fehlersuche. Und neu ist der Checksummer, weil die Initialisierung zirka einhundertmal schneller vonstatten geht als bei der alten Version.

Es gab eine riesige Resonanz auf den Checksummer und zwar ausschließlich positiv. Jedoch brauchte das Programm eine ganze Weile, bis es initialisiert war, eine Herausforderung für eine Unmenge von Lesern! Der nebenstehende Leserbrief setzt sich drastisch, aber nicht ganz so ernst gemeint, mit diesem Problem auseinander und gibt eine Lösung, die zirka einhundertmal schneller ist als die bisherige Version. Dieser Brief und der neue, schnelle Checksummer steht übrigens für eine ganze Reihe von Leserzuschriften, die auch entsprechende Verbesserungen eingeschickt haben.

Der Checksummer 64 ist ein kleines Maschinenprogramm, das, wenn es aktiviert ist, Sie sofort davon unterrichtet, ob Sie die jeweilige Programmzeile korrekt eingegeben haben.

  1. Tippen Sie den Basic-Lader sorgfältig ein. Es gibt zwei Versionen: Eine für den Commodore 64 und eine für den VC 20.
  2. Vergessen Sie nicht das Abspeichern vor dem Start (RUN)!
  3. Wenn Sie den Checksummer 64 zwischenzeitlich nicht benutzen, können Sie ihnjederzeit mit »POKE 1,55« desaktivieren. Auch durch Drücken der Run-Stop- und der Restore-Taste wird der Checksummer 64 desaktiviert.

Wollen Sie den Checksummer 64 wieder einschalten, so geben Sie bitte »POKE 1,53« ein.

Das Maschinenporgramm bleibt solange erhalten, bis der Computer ausgeschaltet, oder, wenn von anderen Programmen auf das hinter dem ROM liegende RAM zugegriffen wird.

Alle veröffentlichten Listings sind mit einer Checksumme versehen, die am Ende jeder Programmzeile steht. Diese Checksumme steht zwischen < und >. Sie wird beim Eintippen des Programms nicht mit eingegeben. Die Zahl zwischen den beiden Zeichen stellt lediglich eine Information für Sie dar. Wenn Sie diese Checksumme dennoch mit eintippen, werden Sie schnell bemerken, daß Sie etwas falsch gemacht haben. Bei aktiviertem Checksummer 64 wird nämlich nach Eingabe einer Basic-Zeile, die mit Return beendet wird, in die linke obere Bildschirmecke die Checksumme eingeblendet, die mit der Summe aus dem veröffentlichten Listing übereinstimmen muß. Ist das nicht der Fall, haben Sie die Zeile anders eingegeben, als sie im Listing dargestellt ist. Vergessen Sie also bitte nicht, daß die am Ende einer Zeile in < und > stehende Prüfsumme nicht mit eingegeben werden darf.

Der Checksummer 64 ist so ausgelegt, daß er abhängig von der Zeilennummer und dem Text der Zeile eine Checksumme ausgibt. Beim Bilden dieser Checksumme werden Spaces (Leertaste) überlesen, was für Sie bedeutet, daß es egal ist, wieviel Leerzeichen Sie zwischen den Worten lassen, da Sie für den Programmablauf ohnehin keine Bedeutung haben.

Hinweise zum Lesen von Listings

Die Listings haben sich ein wenig im Ausdruckformat verändert, um Ihnen das Eingeben von Programmen wesentlich zu erleichtern.

Checksummer VC 20

Der Checksummer VC 20 ist im Prinzip genauso aufgebaut wie der Checksummer 64. Da beim VC 20 jedoch nicht die Möglichkeit besteht, das ROM softwaremäßig zu modifizieren, mußte ein anderer Weg als beim Commodore 64 gewählt werden, um die Checksumme zu generieren.

In ihrer Funktionsweise unterscheiden sich der Checksummer VC 20 und der Checksummer 64 nicht. Es gelten folgende Sonderregelungen bei der Benutzung des Checksummer VC20:

ACHTUNG: Nehmen Sie keine Kassetten-Operationen vor, wenn der Checksummer VC 20 eingeschaltet ist. Da das Betriebssystem den Kassettenpuffer mit Daten belegt, kann der Checksummer VC 20 überschrieben werden, was zur Folge hat, daß sich der Rechner bei aktiviertem Checksummer VC 20 »aufhängt«. Wollen Sie deshalb ein Programm auf (von) Kassette abspeichern (laden), so müssen Sie erst den Checksummer VC 20 abschalten (SYS 58459).

Daraufhin kann der Kassettenpuffer mit Daten überschrieben werden, ohne daß der Rechner »aussteigt«.

Als Sicherung wird bei der Initialisierung geprüft, ob das zuletzt angesprochene Peripherie-Gerät der Kassettenrecorder war. Ist das der Fall, so werden die Betriebssystemroutinen LOAD und SAVE für die Benutzung gesperrt. Der Rechner meldet bei Aufruf einer dieser beiden Routinen READY, ohne weitere Aktionen durchzuführen. Diese Sicherung kann man nach der Tipparbeit aufheben, wenn man den Checksummer VC 20 mit SYS 58459 abschaltet. Dadurch wird der Kassettenpuffer für andere Daten freigemacht

Weiterhin wird dann durch gleichzeitiges Drücken der Tasten »Run-Stop & Restore« erreicht, daß die Betriebssystemroutinen LOAD und SAVE wieder eingerichtet werden.

Viel Spaß beim Eintippen von Programmen mit dem neuen Checksummer!

(F. Lonczewski/gk)
Wenn Sie lesen drücken Sie
CTRL steht für Control-Taste, so bedeutet [CTRL-A], daß Sie die Control-Taste und die Taste »A« drücken müssen. Im folgenden steht:
[down] Taste neben rechtem Shift, Cursor unten
[up] Shift-Taste & Taste neben rechtem Shift, Cursor hoch
[clear] Shift-Taste & 2. Taste ganz rechts oben
[inst] Shift-Taste & Taste ganz rechts oben
[home] 2. Taste von ganz rechts oben
[del] Taste ganz rechts oben
[right] Taste ganz rechts unten
[left] Shift-Taste & Taste unten rechts
[space] Leertaste
[f1] grauer Tastenblock rechts
[f3] grauer Tastenblock rechts
[f5] grauer Tastenblock rechts
[f7] grauer Tastenblock rechts
[f2] grauer Tastenblock rechts & Shift
[f4] grauer Tastenblock rechts & Shift
[f6] grauer Tastenblock rechts & Shift
[f8] grauer Tastenblock rechts & Shift
[return] Shift-Taste & Return
[black] Control-Taste & 1
[white] Control-Taste & 2
[red] Control-Taste & 3
[cyan] Control-Taste & 4
[purple] Control-Taste & 5
[green] Control-Taste & 6
[blue] Control-Taste & 7
[yellow] Control-Taste & 8
[rvson] Control-Taste & 9
[rvoff] Control-Taste & 0
[orange] Commodore-Taste & 1
[brown] Commodore-Taste & 2
[ligred] Commodore-Taste & 3
[grey 1] Commodore-Taste & 4
[grey 2] Commodore-Taste & 5
[lig.green] Commodore-Taste & 6
[lig.blue] Commodore-Taste & 7
[grey 3] Commodore-Taste & 8
Wenn Sie sich erst einmal an die in Klartext geschriebenen Steuerzeichen gewöhnt haben, werden Sie den Vorteil dieser Schreibweise erkennen. Der zu dem jeweiligen Steuerzeichen gehörende Klartext ist so verfaßt, daß Sie leicht die Taste beziehungsweise die Tastenkombination finden, die Sie drücken müssen.
0 rem****************
1 rem*              *
2 rem* checksummer  *
3 rem* version vc20 *
4 rem*              *
5 rem*  copyright   *
6 rem* oktober 1984 *
7 rem*              *
8 rem*f. lonczewski *
9 rem****************
10 print"{clr}  {rvon}checksummer  vc-20{rvof}"
11 print"{down} written october 1984    by f. lonczewski"
12 print"{down}einen moment, bitte..."
13 fori=827to993:gosub21:pokei,a
14 ps=ps+a+1:nexti
15 ifps<>20612thenprint"{down}pruefsummenfehler !":end
16 sys955:print"checksummer aktiviert."
17 print"an :sys955"
18 print"{down}aus:sys58459, bei cas-    sette zusaetzlich     run/stop & restore"
19 print"{down}bei aktiviertem check-summer kein";
20 print" cassetten-betrieb (load, save)  erlaubt!":new
21 reada$:iflen(a$)<>2thenprint"tippfehler in zeile"peek(63)+peek(64)*256:end
22 a1=asc(a$):a2=asc(right$(a$,1))
23 ifa1<48ora1>57thenifa1<65ora1>70then30
24 ifa2<48ora2>57thenifa2<65ora2>70then30
25 ifa1>64thena1=a1-55:goto27
26 ifa1<58thena1=a1-48
27 ifa2>64thena2=a2-55:goto29
28 ifa2<58thena2=a2-48
29 a=a1*16+a2:return
30 print"ungueltiger hexcode in zeile"peek(63)+peek(64)*256:end
31 data 20,5f,03,86,7a,84,7b,20
32 data 73,00,aa,f0,f3,a2,ff,86
33 data 3a,90,0a,a2,00,86,ff,20
34 data 79,c5,4c,e1,c7,a2,01,86
35 data ff,4c,9c,c4,a6,ff,e0,01
36 data f0,03,4c,60,c5,a0,02,a9
37 data 00,85,fe,b1,5f,f0,0f,c9
38 data 20,d0,03,c8,d0,f5,18,65
39 data fe,85,fe,4c,76,03,c0,04
40 data 30,f1,c6,d6,a5,d6,48,a2
41 data 03,a9,20,9d,01,04,bd,b7
42 data 03,20,d2,ff,ca,10,f2,a6
43 data fe,a9,00,20,cd,dd,a9,3e
44 data 20,d2,ff,68,85,d6,20,87
45 data e5,a9,8d,20,d2,ff,a2,00
46 data 86,ff,f0,ae,09,3c,12,13
47 data a9,3b,8d,02,03,a9,03,8d
48 data 03,03,a5,ba,c9,01,d0,10
49 data a9,74,8d,30,03,8d,32,03
50 data a9,c4,8d,31,03,8d,33,03
51 data ad,88,02,8d,90,03,60
Der Checksummer für den VC 20
10 rem *******************************
20 rem *                             *
30 rem *       checksummer 64        *
33 rem *                             *
36 rem *       (version  2.0)        *
40 rem *                             *
50 rem *           64'er             *
60 rem *                             *
70 rem *        commodore 64         *
80 rem *                             *
90 rem *******************************
100 print"{clr}             {rvon}checksummer 64{rvof}"
110 print
121 sa=820:fori=satosa+6:reada:pokei,a:nexti
122 data133,95,134,96,76,191,163
130 poke88,0:poke89,192:poke90,0:poke91,192:poke780,0:poke781,160:syssa
140 poke88,0:poke89,0:poke90,0:poke91,0:poke780,0:poke781,224:syssa
150 poke1,53:poke42289,96:poke42290,228
160 fori=58464to58554:reada:pokei,a:nexti
190 print"{down}{down}{down}{down}         checksummer aktiviert."
200 print"{down}{down}ausschalten : poke1,55"
210 print"{down}anschalten  : poke1,53":new
320 data160,2,169,0,133,2,177,95
330 data240,15,201,32,208,3,200,208
340 data245,24,101,2,133,2,76,110
350 data228,192,4,48,241,198,214,165
360 data214,72,162,3,169,32,157,1
370 data4,189,183,228,32,210,255,202
380 data16,242,166,2,169,0,32,205
390 data189,169,62,32,210,255,104,133
400 data214,32,108,229,169,141,32,210
410 data255,76,128,164,92,72,32,201
420 data255,170,104,144,1,138,96,9
430 data60,18,19
Der neue Checksummer für den Commodore 64
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →