Das Magazin für Funk Elektronik · Computer
Das Magazin für Funk Elektronik · Computer
Das Magazin für Funk Elektronik · Computer
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Listing 3: Test-Sum.pas bildet byte- und wortweise die Prüfsumme<br />
PROGRAM TEST_SUM;<br />
VAR F:FILE OF WORD;<br />
FILENAME:STRING;<br />
W,SW:WORD; B,SB:BYTE;<br />
BEGIN<br />
WRITELN (‘Prüfsummenbildungsprogramm V1.0.’);<br />
FILENAME:=PARAMSTR (1);<br />
ASSIGN (F,FILENAME);<br />
RESET (F);<br />
{$I-}<br />
IF IORESULT0 THEN<br />
BEGIN<br />
WRITELN (‘Aufruf: TEST-SUM Filename.’);<br />
HALT;<br />
END;<br />
SB:=0; SW:=0;<br />
WHILE NOT EOF(F) DO<br />
BEGIN<br />
READ (F,W);<br />
SW:=(SW+W) AND $FFFF;<br />
SB:=(SB+LO(W)+HI(W)) AND $FF;<br />
END;<br />
CLOSE (F);<br />
WRITELN (‘Byteweise kumulative Addition: ‘,SB);<br />
WRITELN (‘Wortweise kumulative Addition: ‘,SW);<br />
END<br />
■ Korrektur der Prüfsumme<br />
Bevor das DOS gebootet wird, führt das<br />
ROM-BIOS einen Diagnosetest durch. Dabei<br />
wird unter anderem auch die Integrität<br />
des ROM-BIOS durch Prüfsummenbildung<br />
getestet. Meist werden dazu alle Bytes des<br />
ROM addiert (mit AND FFH), und diese<br />
Summe muß Null ergeben. Es ist also noch<br />
ein Byte derart zu ergänzen, daß diese Bedingung<br />
erfüllt ist. Es gibt jedoch auch abweichende<br />
Varianten, die die Summe wortweise<br />
bilden oder nur die oberen 32 KByte<br />
berücksichtigen. Listing 2 zeigt eine solche<br />
Prüfsummenroutine. Beim Auftreten eines<br />
Prüfsummenfehlers werden im allgemeinen<br />
neun Pieptöne zum PC-Speaker ausgegeben.<br />
Schlimmstenfalls muß man mit Debug<br />
den Programmablauf ab FFFFH:0000H verfolgen<br />
und ggf. die Prüfsummenbildung<br />
beim Start unterbinden. Mit dem in Listing 3<br />
gezeigten Programm können die zwei häufigsten<br />
Varianten zunächst am Original-<br />
BIOS leicht überprüft werden.<br />
■ EPROMs brennen<br />
Um den neuen ROM-Inhalt in EPROMs<br />
zu brennen, muß der zusammenhängende<br />
<strong>Elektronik</strong>-Rechner <strong>für</strong> Windows<br />
<strong>Das</strong> Tool aus der Programmierhand von<br />
Karsten Böhme aus Dresden kann in fünf<br />
verschiedenen Modi arbeiten: in der normalen<br />
Dezimal-, Phys-, Integer-, Bin- und<br />
Hex-<strong>Funk</strong>tion. In den ersten beiden Modi<br />
sind sämtliche <strong>Funk</strong>tionen, alle Speicher<br />
sowie die Klammerrechnung anwendbar.<br />
Bei den Integer-, Binär- und Hexadezimal-<br />
<strong>Funk</strong>tionen kann nur in den vier Grundrechenarten<br />
gerechnet werden. Der nutzbare<br />
Zahlenbereich erstreckt sich dabei von<br />
0 bis 65535.<br />
In der normalen Dezimal-Betriebsart sind<br />
alle <strong>Funk</strong>tionen erreichbar. Eine Besonderheit<br />
besteht darin, daß nach der Eingabe<br />
eines Wertes dieser einfach mit z. B.<br />
1000 multipliziert werden kann. Dies ge-<br />
schieht, in dem man den entsprechenden<br />
Buchstaben auf der PC-Tastatur drückt<br />
(<strong>für</strong> den Faktor 1000 wäre das das „k“).<br />
Dieses Prinzip funktioniert mit allen gängigen<br />
Werten, wie Piko (p), Nano (n), Mikro<br />
(µ = u), Milli (m), Giga (G) usw. Will man<br />
beispielsweise einen Kondensatorwert<br />
von 12 pF eingeben, ist die Zahl 12 zu<br />
tippen und anschließend „p“ zu drücken.<br />
Auf der Anzeige erscheint automatisch<br />
.000000000012, so daß Fehler mit Kommastellen<br />
praktisch ausgeschlossen sind.<br />
Im Modus „Phys“ geschieht diese Umrechnung<br />
intern. Auf der Anzeige steht dann<br />
lediglich 12p. Zwischen diesen Modi kann<br />
man während der Berechnung beliebig<br />
hin- und herschalten.<br />
Listing 4: PROGRAM SPLIT<br />
USES CRT;<br />
VAR F,F0,F1:FILE OF BYTE; B:BOOLEAN; A:BYTE;<br />
FILENAME,NAME:STRING; L:LONGINT;<br />
PROCEDURE HELP;<br />
BEGIN<br />
WRITELN (‘Aufruf: SPLIT Dateiname’);<br />
WRITELN (‘Separiert die geraden und ungeraden Adressen.’);<br />
WRITELN (‘Gerade Adr.: Dateiname.0, ung. Adr.: Dateiname.1’);<br />
HALT (1);<br />
END;<br />
BEGIN<br />
WRITELN (‘SPLIT V1.0 (w) 1994 by K. Röbenack & D. Rußwurm’);<br />
IF PARAMCOUNT1 THEN HELP;<br />
FILENAME:=PARAMSTR(1);<br />
A:=POS (‘.’,FILENAME);<br />
IF A0 THEN NAME:=COPY (FILENAME,1,A-1)<br />
ELSE NAME:=FILENAME;<br />
{$I-} ASSIGN (F,FILENAME); RESET (f);<br />
{$I+} IF IORESULT0 THEN HELP;<br />
ASSIGN (F0,NAME+’.0’); REWRITE (f0);<br />
ASSIGN (F1,NAME+’.1’); REWRITE (f1);<br />
B:=TRUE; L:=0; WRITE (‘Bytes: ‘);<br />
WHILE NOT EOF(F) DO<br />
BEGIN<br />
READ (F,A);<br />
IF B THEN WRITE (F0,A)<br />
ELSE WRITE (F1,A);<br />
B:=NOT B; INC(L);<br />
GOTOXY (8,WHEREY); WRITE (L);<br />
END;<br />
WRITELN;<br />
END<br />
PC<br />
Programmkode in gerade und ungerade<br />
Adressen aufgeteilt werden. Viele Programmiergeräte<br />
unterstützen einen solchen<br />
Modus bereits. Sollte dies nicht der<br />
Fall sein, kann man mit dem Programm<br />
SPLIT (Listing 4) aus einer Datei die<br />
geraden und die ungeraden Adressen separieren.<br />
Literatur<br />
[1] Messmer, H.-P.: PC-Hardwarebuch, Addison-<br />
Wesley, Bonn, München, Paris, 1992<br />
[2] Heyer, J.: Welche Neuerungen bringt Enhanced<br />
IDE?, PC Professional 4/94, S. 118<br />
Darüber hinaus sind außer dem normalen<br />
Speicher M sechs zusätzliche vorhanden.<br />
Logische <strong>Funk</strong>tionen wie XOR, AND usw.<br />
sind ebenfalls durchführbar. Eine integrierte<br />
Hilfefunktion rundet das sinnvolle Tool ab.<br />
<strong>Das</strong> Programm ist <strong>für</strong> 10 DM (Verrechnungsscheck<br />
o. ä.) bei K. Böhme, Gambrinusstraße<br />
16, 01159 Dresden, erhältlich.<br />
FA 3/95 • 261