Club-80 heft 36 (bw ocr)

Club-80 heft 36 (bw ocr)
m
TTr*!
CLUBINFO
36. Ausgabe
Kontaktadresse: ClubSO / Fritz Chwolka / Saarstraße 34 / 5173 Aldenhoven
Tel.: 0 24 64 / 89 20
Inhaltsverzeichnis
Clubinternes
Autor & Seite
1
Vorwort
Fritz Chwolka
2
"Formatknackerbande"
Uwe Schobert
2
Termine
Noch serieller mit PIP
Prozessor piep einmal ...
Wer hat was —wer will was
29- 30
Der Rechner mit der Handbremse
31 - 33
33
34
Schönere Schildchen
Hacker’s Himkrücke
Redaktion
Software
Börse
Sonstiges
Alexander Schmid
Exceptions, Interrupts und Traps
3- 4
5
Vom Single zum Multi
XT - Extra viel Trouble ???
BONUM BENE
Alexander Schmid
6 - 15
Keine Glosse, sondern Wirklichkeit
Ein bißchen C, ein bißchen Mathe...
Volker Dose
17- 23
Kurt Müller
Public Domain Software
Hardware
Umrüstung a d e !
CPU280 - die Z80-VAX
Einfachste A /D - und D/A-Wandler
Autor & Seite
24
35- 38
39- 45
Gerald Schröder
47 - 48
Kurt Müller
4 9 - 50
Klaus-Jürgen Mühlenbein
DieletztenSeiten
5 1 - 54
Fritz Chwolka
55
Impressum
Uwe Schobert
2 5- 26
2 7- 28
Schluß
Alexander Schmid
Mitgliederadressenliste
56
Redaktion
am INFO-Ende
Liebe Clubfreunde I
Hallo Preunde!
Die s m a l m ö c h t e ich nich t ü b e r f e h l e n d e
M a n u s c r i p t e s c hreiben,
auch
wenn
der J e n s sich bitter d a r ü b e r
beklagt. A b e r
warum
bringen
doch
denn
nicht
so wenige
immer
von
ein
EUCH
ihre
Gedanken
zu
Papier
super-h y p e r - m e g a b y t e m ä ß i g e s
? Es
muß
S e b s t b a u p r o jekt
sein!
Aber
ich
CLUB
wollte ja e t w a s
80 , weil er sich
anderes
dem
Z80
ansprechen.
und
damit
Der
Clu b
nennt
verbundener
sich
Pe ri ph erie
w i dmet. N u n hat a b e r fast jede r v o n u n s n e b e n eine m Z80 R e c h n e r
au ch Kontakt zu z.B. einem MS D O S - k o m patiblen Computer , einem M A C
oder
auch
einem
Atari.
Ich
möchte
auch
nicht
verschweigen,
daß
ich neben einigen CP/M-Rechnern auch einen AT habe.
Meiner
Meinung
Fragen
auf
vorletzten
ich
meine
deren
diese
Info
Hierdurch
Rechner
natürlich
ist.
können
geschehen
Strucktur
gestattet
mitteilen.
nach
unser
uns
bezi ehen,
wie
es
ist.
Durch
unsere
Hobby,
haben
wir
der
sollen
wir
denn
Grundgedanke
des
in
auch
Artikeln
oder
letzten
oder
im
Arbeit
mehr
mit
von
dem
Z80,
Rechnern
und
normalen
nicht
Ich hoffe jedenfalls, nicht zuletzt mit Eurer indirekten oder direkten
Hilfe, Irgendwann einmal unser Club-Diskettenformat (gibts denn ein einheit­
liches ?) direkt lesen zu können.
Mit freundlichen Grüßen
durchaus
k e n n e n gelernt als es e i n e m
Warum
wird
wir
Nachdem Hans-Günthmr Hartmann in «einem Bericht '
Formatknackerbande ...'
den einzigen erwähnt hat, der einen AlphaTronic P3 betreibt und den er
kennt, so möchte ich mich gleich freiwillig melden und ihm für diesen gutenArtikel danken.
Dies ist zumindest ein erster Schritt für mich, andere Diskettenformate zu
lesen, da mein Betriebssystem das leider gar nicht unterstützt. Ich weiß,
daß da noch viel auf mich wartet, doch vielleicht löse ich auch das einmal.
(Es ist erstaunlich, wie sehr einen eine solche Schwierigkeit reizt, wo manch
anderer Computer das doch im Handumdrehen schon kann.)
auch
Clubs
Anwender
e t was
nicht
U*e Schoberth
Tel.: priv. 07041/7234
je
darüber
Termine... Termine... Termine... Termine... Termine
umgestoßen,
sondern vielleicht der Ramen etwas weiter gesteckt.
Auch
dürften
die Artikel
hierzu
nicht
j e d e m Kiosk die C o m p u t e r h e f t e
hoffentlich nicht abschreibt.
überhand
kiloweise
nehmen,
erhältlich
da
sind
do c h
und
an
Ih r
iÜftC_m»L._ein Oedarüce _und Aufruf zur Hauptversammlung
Einer
der
Gedanken
INFO 36
ist, m i n d e s t e n s
EUCH
Rücksprache
dazu
terminlicher
einmal im
Jahr
eine
wä re
de r
April. Da
die Familie O b e r m a n n aus be ruflichen
w a r s cheinlich als Ver a n s t a l t e r ausfällt (schade),
sich einer v o n
Mein
Vorschlag
Mon a t März oder
G r ü n d e n die smal
ja klar, d u r c h
Jan. 92
Clubs
abzuhalten.
sollte
Club 80
des
Hauptversammlung
bereite rk lär en .
mit V o r s t a n d
den
Die
Termin
F rits CkwMk*
DOMOTECHNICA
CeBIT
CAT-Anwenderkongreß
Orgatec
Electronica
Köln
Hannover
Stuttgart
Köln
München
18.02. -21.02.92
11.03.-18.03.92
05.05.- 08.05.92
22.10. -27.10.92
10.11. -14.11.92
ist
und
e i nen g e e i g n e t e n Ort
mit
U n t e r k u n f t s möglic hkeit s u c h e n .
Auch
sollte de r
Veranstaltungsort
so ziemlich in
de r
Mitte u n s e r e s
E i n z u g s g e b i e t e s liegen. Ich hoffe auf reichliche A n r u f e u n d h a b e
schon ein extralanges Band in den Anrufbeantworter gesteckt.
Seite
1
Aufgabe
abklären
M ai...-..... 92
..... - ......92
Jahreshauptversammlung 92
CLubtreffen Süd
Redaktionsschluß für die Clubinfo’s ist jeweils
der letzte Tag der folgenden Monate:
92
März
92
Mai
92
Juli
Club 80
INFO 36
Jan. 92
Seite
2
Club 80
INFO 36
Jan. 92
Seite
N o o n
s e r i e l l e r
m itr
P IP
Ira Info Nr. 3S bat "uns Fritz" geschrieben, wie man im Notfall auch ohne
kompatible Laufwerke, bzw. wenn keine Informationen über das Disketten­
format vorliegen, Dateien mit Hilfe von PIP von einem Rechner zum an­
deren übertragen kann. Dazu noch zwei kleine Anraerkungen/Ergänzungen:
sendet, und man PIP schließlich so gepatcht hat, daß es die Ports direkt
anspricht, muß die Ein- und Ausgabe folgendermaßen aussehen: (PUN: und
RDR: gehen nach wie vor über das Betriebssystem, da helfen alle Patches
nichts !)
Wenn man PIP als Parameter für die Übertragung zusätzlich noch ein "H"
(Hex) mitgibt, sch altet es in den Hex-Modus und überprüft, ob mit der
übertragenen Datei (in der Z80-welt üblicherweise im sog. Intel-Hex-Format) alles stimmt. Diesen Service hat man nur mit "B" (Block) alleine
nicht und kann verfälschte Zeichen höchstens daran erkennen, daß der
HEX-COM-Wandler (HEXCOM, LOAD o.ä.) hinterher meckert, oder das Programm
nicht läuft. Im Hex-Modus s te llt PIP anhand der Prüfsumme in jeder Zeile
fest, ob möglicherweise ein Fehler aufgetreten ist und meldet dies dann
sofort, wenn man nur beim sendenden Rechner ein E (Echo) als Parameter
angibt, wird dieser weiter gebremst, was dem empfangenden Rechner etwas
mehr Zeit gibt, die ankommenden Zeichen zu verarbeiten. Normalerweise
dürfte das nur bei einem relativ langsamen Rechner auf der einen und
einem schnelleren Rechner auf der anderen Seite notwendig sein, aber aus
Erfahrung würde ich sagen, daß man das immer so machen sollte. Auch ist
es nicht unbedingt gesagt, daß es mit einer kleineren Baudrate immer
besser geht, ich habe es schon erlebt, daß es mit 1200 Baud einwandfrei
ging, mit 300 Baud aber nur Schrott angekommen ist. Warum ? Keine
Ahnung, aber wenn alle Geheimnisse gelöst wären, wäre es ja langweilig.
Außerdem so llte man beim sendenden Rechner die Schnittstelle tunlichst
auf das XON/XOFF-Protokoll einstellen, sonst funktioniert der Blockmodus
nicht. PIP sendet zwar XOFF- und XON-Zeichen, aber die Übertragung wirk­
lich anhalten muß der S ch n ittstellen treib er bzw. das BIOS. Wenn sich der
empfangende Rechner nach der Übertragung nicht mehr zurückraeldet, kann
man ihm mit "PIP PUN:=E0F:" bzw. "PIP 0UT:=E0F:" noch ein explizites Da­
teiende zukommen lassen.
PIP OUT:=filenameCEBH] und PIP filename=INP:[BH]
was in Fritz’ Artikel vielleicht auch nicht ganz klar rausgekommen is t
und viel Zeit und Nerven kosten kann: Der Test mit
Club 80
INFO 36
Jan. 92
4
Wenn diese Hürde dann schließlich genommen is t und die Übertragung
klappt, so llte man so schnell wie möglich LYNC rüberziehen. Das Programm
besteht aus dem eigentlichen COM-File (LYNC.COM), einem Installer (LYNCINST.COM) und einer Treiber-Bibliothek (10.DRV). Ara besten konfiguriert
man das Programm schon vorher, dann braucht man nur ein File zu übertra­
gen. Das File ist auch als Hex-File so klein, daß es zusammen mit PIP in
den Arbeitsspeicher paßt, sodaß im Block-Modus e rs t nach Ende der Über­
tragung auf die (langsame) Floppy zugegriffen werden muß und es so keine
Probleme mit dem Protokoll geben kann.
Warum aber nun ausgerechnet LYNC ? Ganz einfach, es ist verhältnismäßig
klein und so ziemlich das einfachste und sich erste Programm für diesen
Job, bei dem man eigentlich nichts falsch machen kann. Der Installer a r­
b eitet menügeführt und man muß nur die Ports der seriellen Schnittstel­
le, die man ja eventuell schon von den Patches in PIP kennt, per Hand
eingeben; für viele Rechner (u.a. TRS-80 Model I und IV) gibt es einen
fertigen Menüpunkt, den man nur anzuwählen braucht. Danach kann man von .
einem der beiden Rechnern beliebig Files senden und empfangen, ohne daß
am anderen Rechner jemand sitzen muß. Man kann sich z.B. sogar das Dir­
ectory des anderen Rechners ferngesteuert ansehen und dann mit SEND und
FETCH loslegen. Das is t viel bequemer als mit Kermit oder sonstigen Ter­
minalprogrammen, wo man immer noch einen Helfer braucht. Die Übertragung
wird durch ein LYNC-eigenes Protokoll gesichert und nichtmai das mut­
willige Unterbrechen der Leitung bringt es aus dem T ritt. Nachdem die
Verbindung wieder steh t, geht es sofort weiter. Außerdem überprüft sich
LYNC beim Starten selber, sodaß man dadurch nochmal eine Kontrolle hat,
ob die Übertragung des Hex-Files fehlerfrei war.
PIP PUN:=filename[EB] und PIP filename=RDR:CEB]
(hinter dem Filenamen darf, entgegen der Angabe von Fritz, übrigens KEIN
Doppelpunkt kommen, sonst gibt’s eine Fehlermeldung ü)
funktioniert nur, wenn das CP/M das IO-Byte u n terstü tzt ! Es gibt Imple­
mentationen, die das Byte einfach nicht benutzen und dann wundert man
sich, daß nichts geht. Ausprobieren kann man das mit "PIP LST:=C0N:",
mit dem alle Eingaben von der T astatu r auf den Drucker uragelenkt werden
sollten. Da LST, genauso wie EOF weiter oben, ein logisches Gerät ist,
muß hier zur Unterscheidung von einem Filenaraen nun tatsächlich ein Dop­
pelpunkt dahinter stehen. Wenn man aber ein korafortabes BIOS hat, das
u.a. bei einem leeren Empfangspuffer brav selber auf ein neues Zeichen
w artet und der T esttext so fehlerfrei angekommen ist, is t man schon fe r­
tig und braucht die ganze Patcherei garnicht. Dann kann man mit PUN:
bzw. RDR: arbeiten und im Prinzip so fo rt loslegen und beim CP/M Plus, wo
man in beiden Fällen nur über AUX: geht, muß man sowieso nicht fummeln
und kann auch gleich anfangen.
i
|
s
Wenn es aber doch sein muß, sei es weil das mit dem IO-Byte nicht funk­
tioniert, oder dauernd Zeichen ankommen, ohne daß der andere Rechner
■
J
\
'Q Heinz Lancer
BONUM BENE
Prozessor
piep
wenn ein Programm auf einen bestimmten Prozessor angewiesen ist,
ist es ganz nett, wenn man auf dem Bildschirm wenigstens eine
Meldung ausgibt, daß das Programm z.B. einen Z80 braucht und auf
einem 8080 nicht lauffähig ist, statt kommentarlos ins Betriebs­
system zurückzuspringen. Für den Z80 und HD64180 gibt es schon
einige Lösungen, aber für den Z280 ist mir noch keine über den Weg
gelaufen. Wenn man ein neues Feature des Z280 (die Queue) aus­
nutzt, ist das ohne großen Aufwand mit folgender Routine möglich:
XOR
LD
LD
flag EQÜ
Club 80
INFO 36
Jan. 92
A
(flag),A
A,1
$-1
Auf einem "normalen" Z80 wird der Akku in der ersten Zeile ge­
löscht, in der zweiten Zeile wird diese Null in den Ladebefehl in
Zeile drei gepatcht und in Zeile drei bekommt der Akku folglich
den Wert 0. Soweit ganz klar und verständlich, aber nicht so beim
Z280, wenigstens auf den ersten Blick. Der Z280 hat nämlich die
Eigenschaft, daß er immer etwas "vorausschaut", d.h. schon die
nächsten Bytes lädt, wenn er den aktuellen Befehl gerade ausführt.
Im Beispiel heißt das, daß er, wenn er Zeile zwei ausführt, schon
den Code von Zeile drei in die Queue (Warteschlange) geladen hat
und daher gar nicht mehr mitbekommt, daß da inzwischen ein anderer
Wert hineingeschrieben wurde. Sowas ist natürlich nicht gerade die
feine englische Art, aber im Normalfall macht man das ja auch
nicht, oder ? Bei einem Z80 enthält der Akku also anschließend ei­
ne 0, bei einem Z280 eine 1 (wie das dann weiter verarbeitet wird
ist hier nebensächlich). Ganz nebenbei bemerkt ist das auch ein
prima Debug-Schutz, der Trick mit der Queue funktioniert nämlich
nur, wenn das Programmstück auf einmal durchlaufen wird. Wenn ein
Debugger im Einzelschritt-Modus hinter jedem Befehl einen Sprung
einfügt wird die Queue jedesmal geleert und der Prozessor verhält
sich im obigen Beispiel wie ein gewöhnlicher Z80. Bei einem spe­
ziellen Z280-Programm würde man dann immer mit einer Fehlermeldung
im DOS landen und sich fürchterbar wundern, warum der Z280 einfach
nicht erkannt wird.
Im Prinzip gilt das auch für den 80x86, nur variiert dort die
Länge der Queue von Typ zu Typ.
Seite
5
Alexander Schmid
Obwohl die Benutzung won G-DÜS/NewDQSSö oder auch Calvados
eine Katesoriesieruns der User in die Sparte "Ewiggestrige"
durchaus gerechtfertigt» hat dieses Betriebssystem auch seine
Uc»rz>ge.
Die ganzen schoenen Features die moderne Betriebssysteme
aufweisen» fehlen bei uns zwar? aber man kann sie wenigstem ns
noch selber programmieren. Zumindest einige.
Mich hat beim.CP/M und MS-DOS immer die Benutzung won
Wildcards.- also * und ?» bei Angabe won Filenamen
beei nd ruckt.
Insbesonders beim Kopieren won grossen Datenmengen zeigen
sich im Copy-Befehl des NewDOS ernsthafte Schwaechen. Zum
einen werden wor dem Kopiervorgans die Filenamen schon ins
Di rectory eingetragen? wenn die Diskette dann aber woll ist»
sind die Files ’leer7, man muss dann won Hand die nicht
kopierten Files suchen und dann File fuer File loeschen. Und
die Eingabemoeslichkeit bei dem Parametern 7,EDK»FRAG,.. . 7
ueberzeust mich auch nicht immer. Andauernd gebe ich ein 7J?
oder auch mal ein ’H 7 zuwiel und ich muss mir den File dann
aufschreiben» um ihn hinterher zu loeschen oder zu koperen»
Je nach dem. Und besonders praktisch ist das Sternchen, wenn
man wiele Files mit derrr selben Anfangsbuchstaben hat die in
einem ursaechliche Zusammenhang stehen, bei mir zum Beispiel
Apfelmaenchendateien, die APFEL/CMD, und dann eben APFEL1/GRF
bis APFEL29/GRF und dann noch die '‘DAT oder /NEW oder/HMH
Dateien in welchen andere Daten oder die Bilder selbst
werstecken.Oder ein anderes Beispiel» Kopiere alle Dateien
die Sourcecodes won Sysfiles sind? hiesse dann Kopiere
SVS*/SRC.
Nun Ja» meine ersten Versuche machte ich in Basic. Aber
trotz Compilierung war es einfach unertraeslich langsam» es
nutzte also nichts» Assembler musste gelernt werden. Sehr
geholfen haben mir dabei das DOS—Buch won H. Grosser sowie
die kommentierten Assemblerroutinen die sich immer wieder in
alten Club 80— Infen finden.
Also flugs ZEUS angeworfen und los gings. Sehr schnell
stellte ich fest» das sich ZSG—Assembler won Hochsprachen
doch ziemlich unterscheidet» besonders die Beherrschung der
bedingten Spruense und Unterprosrammaufrufe machte mir
zunaechst ziemliche Schwierigkeiten <ist das 2-Flas nun
gesetzt oder nicht oder was ?>. Aber nach einigen Tagen hatte
ich dann endlich ein lauffaehises» narrensicheres und wor
allen Dingen sauschnelles Kopierutility wor mir.
Nun zum Programmablauf noch einige Erlaeuterungen. Die
ersten 19 Zeichen des Programms sind reserwiert und werden
worn Programm mit Parametern sefuellt. Die Eingabe wird in ein
Format uebertrasen das dem Format des FE>E <File Directory
Eint rag > im Inhaltswerzeichnis der Disketten gleicht, also
immer 11 Zeichen und kein Schraesstrich. Ewentuelle Sterne im
Club 80
INFO 36
Jan. 92
Seite
6
Club 80
INFO 36
Jan. 92
Seite
7
Ei nsabestri ns warden in F ra -30231 che n umgewandel t. Danach
werden die Laufwerksnummern won Source— und Destinationdrive
gefunden und eingetragen. Wenn die Eingabe fehlerhaft »war»
wird eine Fehlermeldung mit der richtigen Syntax ausgegeben.
Die Anzahl der FDE-Sektoren einer Diskette» in der maximal
3 E i n t r ä g e fuer Files stehen koennen» findet sich im ersten
Sektor des Inhal tsverzei chnisses in Byte lFh. Die Zu.hl wird
ermittelt und eingetragen. Es werden genau sovieie
FDE-Sektoren mit dem Oosunterprogramm 'DIRR7 geladen und wenn
der Eintrag besteht <gesetztes bit 4 des ersten Bytes des
Einträges> und es sich weder um ein System-File <gesetztes
bit b> noch um einen Folgeeintrag (gesetztes bit 7> handelt»
wird der Filename mit den 11 Bytes am Anfang des Programmes»
in dem der geforderte Filename steht» verglichen. Dabei gilt
ein Fragezeichen soviel wie Jedes anders Zeichen» welches als
Filenamezeichen erlaubt ist »(Ziffern und Umlaute sowie beim
Genie IIIs der untenstehende Strich';».
Entspricht der Filename im Directory den geforderten
Spezifikationen» dann wird er in einen Buffer am Ende des
Programmes eingetragen. Davor wird aber Jedesmal ein 7> 7 »
dies ist der CGPV-Befehl des G-DOS eingertragen. Hinter den
Filename wird noch 7LW<sour ce ) »LW<dest )<EHTER>7 eingetragen»
um den Befehl mit einrne Oos-Cal 1 ablaufen zu lassen. Dieser
Morgans wird wiederholt» bis alle FDE-Sektoren der
Source—Oisktette gelesen sind» so das sich am Programmende»
in dem Buffer» eine Reihe von gueltigen Doskommandos (kann •
man sich mit DEBUG sehr schoen anschauen) befindet. Der
Anfang des Buffers ist in 7 buf27 zwischengespeichert» 7buf27
zeigt also auf den ersten Kopierbefehl. Sofern die Anzahl der
zu kopierenden Files nicht null ist*( ergibt dann eine
Meldung) oder die Eingabe 'Kopiere
. ..7 getaetigt wurde
»(bewirkt eine nochmalige Nachfrage 'Sollen alle Files kopiert
werden*» die mit einem grossen *J* beantwortete werden muss)
wird ein Kopierkommando nach dem anderen zunaechst angezeigt
und dann ausgefuenrt.
Sollte eine Fehlermeldung auftreten» die eine wolle Dikette
oder ein »,»olles Inhaltsverzeichnis anzeigt» dann wird der
letzte zu kopierende File wieder geloescht» da er auf der
Zi ei dis kette nicht ord nungsgernaess abgespei eher t wurde.
Der einzige Fehler» den das Programm- aufweist ist das im
Eingabestring keine Ziffern fuer die Filespezifikation
benutzt werden koennen. Das duerfte aber auch relativ
nebensaechl i ch sein.
Wenn man das Programm anders nennen rnoechte» muss man im
Sourcelisting in Zeile 330 eine Aenderung.vornehmen. Der
Eingabepuffer des DOS liegt ab Speicherstelle 4318h. Hier
steht nachdem man <EHTER> eingegeben hat die vor dem ENTER
liegende Eingabe» in diesem Fall zum Beispiel 'KOPIERE
;17. Die Erkennung der Eingabe ’
sowie die
Behandlung derselben habe ich folgendermasen seloests An der
Speicherstelle 4320h steht der erste der Sternchen. Wenn das
Programm umbenannt ist» zum Beispiel in 7K0PV7 wuerde ab
4318h folgendes stehen s 7KÜPV */’*t0,si>. In Spei cherstel le
4320h steht dann der Doppelpunkt vor der Null»
kann den String *
also gar nicht erkennen.
330 muesste in diesem Fall also 4310h heissen.
Stelle befindet sich dann der erste Stern.
Sinnsemaess gilt das auch fuer die Zeilen 333
muessen die Zahienwerte Jeweils incrementiert
das Programm
Die Zahl in
An dieser
und 337. Hier
werden
Das Grundseruest dieses Programmes liesse sich fuer ».»iele
andere Geschichten nutzen» die Implemention eines *ERASE
8*/-*’ um Filegruppen zu loeschen »(zum Beispiel genau die»
welche gerade auf eine Sicherheitskopie mit 'KOPIERE7 kopiert
»wurden) oder auch 7 INU7 bzw 7MIS7 »jm Files unsichtbar oder
sichtbar zu machen oder auch nur um unsichtbare Files
anzuzeigen <und zwar nur die) waeren meiner Meinung nach
huebsche Features.
Wahrscheinlich fallen Jedem won euch
auch noch andere Geschichten ein» Je nach dem »was euch gerade
beschaef tigt.
Das Programm ist so fuer Jeden Rechner nutzbar» auf dem
irgendeine Uersion des G-DOS laueft» weil ich nur ziemlich
allgemein gehaltene DOS—Routinen aus dem SVSÖxSVS benutze.
Das sollte auf Jedem G-DOS gleich sein.
Die MewDÜS80-6enutzer muessen die Routine 7e l n>7 ab Zeile
274 bis Zeile 280 loeschen und die 7? 7 also die
Kommentarzeichen vor den Zeilen 285 bis 380 loeschen» so das
dieser Teil Jetzt die Routine 7ein>7 darsteilt.
Wer das Programm nicht abtippen will» kann mir eine
Diskette im G-DOS 3 tandartformat fuer 80—Spuren OSxDD
schicken» und denn auch bitte Rueckporto beifuegen.
Noch mal die PORIUE-Parameter*
TI=EHK TD=*G SP=88 SEK=*36 SWZ=8 EIB=S SBIU»48 AEIU-2
TJa» in diesem Sinne
7DEM GUTEN DAS BESTE 7
Happy Hacking * !! !!
PS. s In einer lauschigen Stunde habe ich das Sourcelisting
umgeschrieben» auf das es Jetzt die Funktion 7ERASE7
darstel11. Die Hauptarbeit lag darin» die Kommentarzeilen
«jmzusenrieben» der Rest ist »wirklich ziemlich einfach.
Statt der Routine 7ein>* muss eine Routine geschrieben
werden» »welche den Befehl 'KILL7 in den Buffer einschreibt.
Ausserdem muessen <Jie Stellen» »wo Source- und
Destinationlaufwerksnummern eingeschrieben oder abgefragt
»werden seaendert werden. Das Programm 7ERASE7 werde ich auch
zum Diskothekar schicken.
PPS. s Seit einigen Wochen bin ich im Besitz eines GENIE
IIIs mit dem iMByte—Umbau von Helmut Bernhardt. Sehr schade
finde ich»" dass es keinen wernuenftisen Grafikcompiler bzw.
eine Library fuer den BASCOM gibt. Ich habe zum Beispiel fuer
das Genie. I im HRG-Pack-Paket eine Library fuer BASCOM. Jetzt
hatte ich die Idee» diese File zu disassemblieren und
umzuschreiben auf das es die HRG des G IIIs beharken rnoese.
Wenn Jemand schon mal an soetwas gedacht hat oder es gar
geschafft hat oder es ».»ersuchen »will oder auch nur so» kann
er oder sie sich Ja mal bei mir melden.
PPPS. : Ich suche noch eine BASCOM-Uersion fuer Genie-DOS»
»welche CMD-Files generiert» mein Linker erzeugt nur CHN-Files
die mit BRUN gestartet werden.
Gub 80
INFO 36
Jan. 92
Seite
8
00001
K O P I E R E
?
»Kopieren von einer diskette auf eine andere
5mit ansabe von wildcards
?
? « beliebiger buchstabe
?
* s nachfolgende Zeichen bis 9's9 beliebig
£10002
00003
00004
00005
0000b
0 000 ?
00000
Club 80
INFO 36
Jan. 92
Seite
9
00009
00010
00011
00012
00013
00014
00015
0001b
00017
00018
00019
00020
00021
00022
00023
00024
00025
0002b
00027
00028
00029
00030
00031
00032
00033
00034
00035
0003b
00037
00038
00039
00040
00041.
00042
00043
00044
00045
0004b
00047
00048
00049
00050
00051
00052
00053
00054
00055
0005b
00057
00058
00059
00080
00081
00082
00083
00084
00085
00088
»
Syntax S=
kopiere FILENAME .'EXT slw#,;lw#<ENTER!
5
5
d ri 1
d ri2
se ca nz
»
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
?
;
ORG
DM
DM
DM
buf 1
buf 2
filzae
f name
exten
ende
DM
DM
DM
DM
DM
DM
outch
setkev
dosrdv
doscal
extrfs
sendrns
srosbu
d i rr
d i rw
tesdsk
debus
doserr
schlech DM
DM
DM
start
LD
LD
1OOP 1
LD
CALL
CP
JR
CP
JR
wei 1
kzei ch
CP
JR
LD
INC
INC
DJN2
JR
CP
JR
CP
JR
CP
JR
0033h
0049h
402d h
4419h
441 ch
4487h
45b5h
490a h
491 fh
445eh
440d h
4409h
8000h
>x’
’x ’
?x ’
5source-lw#
?d es t i na t io n-1w#
? anzahl der zu lesenden
; dirsectoren mit FDE?s
v
’xx’
5 zeiser auf buffer
’xx?
» zeist auf anfans Bufferfeld
00 h
? Anzahl der zu kopierenden Files
*FILENAME’;ebenso vom Prosr. eingesetzt
*EXT’
0DH
»in den zur)ekliesenden 11 bytes
»wird der Uerslei chsf i lesp-ec
5einseschrieben um verslichen
»zu werden
9Sv ntax s« KOPIERE FILENAME^EXT?
’ •<1w#s >,s<lw#d/ENTER’
0dh
? Bei falscher Einsabe
8,09h
? max. 82eichen f> r Filename
DE» fname!» Zeiser auf
"
A,<HL>
? Zeichen holen
srosbu
» a->A» soweit mlslich
5
? wenn Ja einfach eintrasen
Z »we i1
?A ?
C >kze ichi» wenn Carry gesetzt» ist
5 d as Ze i c he n in der
?ASCI I-Tabel le kleiner als *A ?
HC» kzei ch; bzw. es ist oberhalb von ’Z 5
<DE>»A ? buchstaben eintragen
DE
HL
• zeiser einen weiter
I o o pI
» bis 8 Zeichen
error
? mehr als 8 !!
»• »
» laufwerkstrennzeichen?
2» error » enter ohne ext ist unzultssis
• einziges zulässiges Zeichen
2» slash ? weiter im text
? Jetzt wirds interessant
Zf stern ? ma1 se he n
08087
00088 slash
00089
00070
00071
00072 ext
00073 1o o p 2
00074
00075
00078
00077
00078
00079
00080
0008 1
00082 wei2
00083
00084
00085
00088
00087
00088 keexze
08089
00090
0009 1
00092
00093
00094 nulauf
00895 fill
00098
00097
00098
00099 stern
00 100
00101
00102
00103 sternl
00104
00105
00108
00107
00108
00109
00110
00111 error
00112
00113
00114 istzahl
00 115
00118
00117
00118
00119 kopie
00 120
00121
00122
00123
00124
00125
00128
00127
00128
00129
00130
00131
O0132
JR
LD
CP
CALL
LD
LD
INC
LD
CALL
CP
JR
CP
JR
CP
JR
LD
INC
DJH2
CP
JR
JR
CP
JR
CP
CALL
CALL
JR
LD
LD
INC
DJ HZ
RET
LD
CALL
INC
JR
LD
CALL
INC
LD
LD
CP
JR
JR
LD
CALL
JP
SUB
JR
CP
RET
JR
INC
LD
CALL
LD
INC
LD
CP
JR
INC
LD
CP
JR
INC
error
5 anderes Zeichen !!
A» B
; wese n DJN2
Oh
8tes Zeichen ?
NZ» nulauf? ausnullen mit spaces
DE»exten » zeiser auf extensionstrins
B» 04 h
h*chstens drei Buchstaben !
HL
? eingangs z(hler ein weiter
A,<HLÖ
srosbu ; selbe routine wie oben
»einfach weiter
2»wei2 '
*A ?
C» keexze» wenn enter» dann o. k.
*
NC» keexze? d ito
DE yA ? buchstabe eintrasen
DE
1o o p 2
? bis 3 Zeichen
7.7
• 13. Zeichen LW-DoppelPunkt ?
NZ» error? wenn nicht !!!!!! ! !!! !
kopie
? soweit in ordnuns
mit ?? auf>llen
Z» sternl
NZ» error? Jetzt foist die LW#
nulauf
kopie
space
A» ’ ?
<DE>»A ? in fname eintrasen
DE
fill
A» ’? ’
? fuel 1 byte
fill
HL /
? m>^te- auf 9s9 zeigen
slash
A»’? ’
? f} 11 by te
fill
? ausfJllen»
zeigen
HL
? soll auf
DE»ende ? aufs ende von fname
A,<HL>
? Zeichen holen
7.7
. wese n LW#
HZ» error
kopie
? soll funktionieren
HL »s ch1e ch
sendrns ? error meid uns ausgeben
dosrdy
? vorltufiser ausstieg
0?
? ascii korrektur
C»error
10
C
error
HL
? Jetzt wird erst mal auf
; die Befehlssvntax
also *•lw#» :lw# getestet
A» <HL>
is tza h1
source laufwerk
<d ri 1 >» A? als
auf kornma
HL
•
A» <HL>
7 7
H Z »e r ro r ? keine andere einsabe erlaubt
auf zweiten doppelpunkt
HL
A,<HL>
7.7
NZ» error
HL
? auf destination laufwerk
Qub 80
INFO 36
Jan. 92
Seite
10
Qub 80
INFO 36
Jan. 92
Seite
11
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
Q 0 145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
A# <HL>
LD
istzahl
CALL
<dri2>,A? als dest-lw
LD
HL .
? auf ENTER
INC
A#<HL>
LD
0dh
CP
NZ*error;
JR
; weiter im text# die Engabe ist richtig
; und der Vergleichs filename steht.
; die laufwerksnummern sind auch da#
; Jet 2 t kann wirklich kopiert werden.
; es werden ersteinmal die eintrtge in den
; buffer geschrieben
HL# buffer
LD
LD
<bufl>,HL
<buf2>,HL* anfans des Buffers
LD
; muss erhalten bleiben
A,<dril>; sourcelaufwerk eintragen
rea.se c LD
tesdsk ; disketten Zugriff testen
CALL
M2* doserr
JP
ermi
; wieviele Dir— sectoren
CALL
A,(secinz)
LD
B,A
LD
A, 1
? erster di»— sector mit rde7's
LD
A
; ist der Sector Nummer 2
1iesec INC
AF
; retten !!
PUSH
BC
; ebenso
PUSH
dirr
? les einen sector in DüS-buffer
CALL
06h
;’Lesevers. markierter satz*
CP
2*wei3 ; dann ist alles in Ordnung
JR
doserr
• es ist ein fehler aufgetr.
JP
auswert ; g>ltige filespecs errech.
wei3 . CALL
BC
POP
AF
•5 accu vom stack als zthler
POP
1iesec
DJH2
co pv
; Jetzt kann es richtig losgehen
JP
B,7
; acht einttse pro sector
auswert LD
HL*4200h; erstes byte zeigt ob
,
LD
; ein Eintrag vorhanden ist
DE,4205h; zeigt auf ersten FILENAMEEXT
LD
verglei ; pr>ft ob der eintras den
CALL
A,20h
; Spezifikationen
LD
1 o o f -3
A,L
; entspricht. Ein FDE ist
ADD
L*A
; 20h Byte lang.
LD
A, 20h
LD
A, E
ADD
E* A
LD
verglei * siehe 3 2eilen weiter oben
CALL
1o o p 3
DJNZ
' a c h t eintrtse sind gepr>ft
RET
HL
; HL und DE werden gerettet
verglei PUSH
PUSH
DE
BC
; muv auch gertettat werden
PUSH
B,0bh
; 11 Zeichen ist fname lang
LD
*
A,<HL>
; sehen ob eintrag besteht
LD
00h
; null, wenn nicht
CP
2,zur>
; erst noch p o p de und hl
JR
90h
; ist es ein Folgeeintrag ???
CP
2,zur>
; dann nicht eintragen i!
JR
BIT
6,A
; bit 6 ist ’1' bei /SVS—Files
N2,zur> ; weil die nicht kopiert
JR
; werden d>rfen «Coder sollen)
; vor allen Dingen nicht Boot und
; Inhait'SVS 1!!!!!!!!!!!?!!!! !
HL,fname; enthalt spezifizierten fname
LD
wei4
A» <DE>
; Zeichen im buffer
LD
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
002 i0
0021 1
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
08223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
08242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
wei5
ei ntr
CP
JR
INC
INC
DJNZ
MOP
LD
3UB
LD
LD
INC
LD
LD
CALL
1o o p 4
nei n
axt2
1g o f 5
nei n2
wei6
<HL>
M2* wei7
HL
DE
wei4
; vergleiche «Chl> mit <de>
; wenn nicht gleich, pr>fen ob ?
;
;
;
;
;
;
;
;
;
zeiger auf nächstes Zeichen
11 Zeichen vergleichen
alle Zeichen entsprechen den
spezifikationen, Jetzt messen
sie in einen Buffer
eingetragen werden, allerdings
in der Form FILENAME/EXT
A, E
DE muv um 11 erniedrigst werden
11
damit DE wieder auf Anfang des
E, A
filespecs im FDE zeigt
A, < fiIzae) ; zthler f>r zu kop. Files
; «• 1
A
<filzae> ,f\
' und speichern
HL# «Cbuf1>; bufl ist der zeiser auf buffer
; der DOS-Befehl ’ > ’wird
ei n>
5 vor die filespecs
; eingetragen wegen doscall
; acht Zeichen hichstens
B, 8
; erstes Zeichen im buffer
A,«CDE>
9 j
; ist as space ?
2* nei n
<CHL>,A • Zeichen eintragen
HL
; zeiser weiter
DE
; bis 8 Zeichen
1o o p 4
A,’
<HL>,A ; Trennzeichen ei ntrasen
HL
; 3 extension Zeichen
B *v
; erstes Zeichen
A,CDE>
LD
LD
CP
JR
LD
INC
INC
DJNZ
LD
LD
INC
LD
LD
CP
JR
Z* nei n2
LD
<HL>,A
INC
HL
INC
DE
1o o p 5
DJNZ
; abfrage, ob sar keine extension
HL
DEC
; vorhanden war, dann muv der ’s*
A,<HL>
LD
?s>
; ntrnlich auch wieder weg
CP
Z* wei6
JR
INC
HL
; die Zeichen ’ ;1w#,;lw#’,0dh
A, ’;»
LD
LD
<HL>,A ; werden hinter Jeden filenamen
; ei nsetragen
INC
HL
LD
A, «Cd r i 1>
; ascii—aussleich !! accu+48d
ADD
A, 48
<HL),A ; dann wird aus 01h 49h,’A ’ \\
LD
INC
HL
LD
A, * , ’
LD
<HL>,A
INC
HL
A, * :
LD
LD
<HL>,A
INC
HL ...
LD
A, <Cdri2> j: destination drive
; ascii-auseleich !!!!!!•!!!
ADD
A, 48
LD
<HL>,A
.
INC
HL
LD
A,0dh
* ENTER kennung f>r COPV befehl
LD
<HL>,A . eintragen
; zeigt auf das Zeichen nach 0dh
INC
HL
LD
«Cbuf1>,HL
; bufl aktualisieren
; der filename wurde in den buffer eingetragen
Qub 80
INFO 36
Jan. 92
Seite
12
Club 80
INFO 36
Jan. 92
Seite
13
00267 zur>
POP
BC
; die F»<irctmeter werde
00268
POP
DE
zur> cksepopt
00269
POP
HL
00270
RET
00271
; die Routine ein!
00272
5 also ’CÖPV ’ eil
00273
5 HL zeist auf dei
00274. ein>
LD
A »7 >’
00275
LD
<HL) *A
00276
IHC
HL
00277
LD
A, ’ ’
00278
LD
<HL),A
08279
INC
HL
00280
RET
00281 die folsende Routine ist
’e in > ’
00282
in Zeile 273 bis 279 fa]
00283
NewDO'6 80 benutzt wird.
00284
Zeile 274 bis 280 müsser
00285 ein)
1d
a, ’C ’
00286
LD
<HL),A
00287
INC
HL
00288
LD
A» ’0 ’
00289
ld
<hl),a
00290
INC
HL
00291
ld
a» ’P ’
00292
ld
< hl),a
00293
inc
hl
00294
ld
a ,’V ’
00295
ld
<hl> »a
00296
inc
hl
00297
ld
a»’ *
00298
ld
<hl> >a
00299
i nc
hl
00300
ret
00301 we i7
LD
A»7? ’
; test ob der joker sestzt ist
00302
CP
<HL>
; vergleiche mit fn^me
00303
JR
Z»wei5
; wenns ein ’? ’ war» ist der
.
00304
Buchstabe o- K. » ansonsten
00305
JR
zur)
; braucht fname nicht weiter
.
00306
getestet werden» er entspricht
. ni cht
00387
.
00308
der geforderten Spezifikation
00309 ermi
LD
A» 1
: im ersten sektor des dir
00310
CALL
d irr
0031 1
LD
A,<421fh); an dem bvte ifh befindet sich
00312
ADD
A»08h
; <
die ansabe » wieviele fde—
00313
sec to re n das directory
00314
enthalt.
00315
LD
<secanz)»A
' speichern
00316
RET
00317 ;
00318 ;
'Jetzt foist der ei00319 ;
es wi rd vor her set'
anzahl der Files = 0
00328 »
und auf JfcyOfc, ^ 1so
00321 ;
außerdem wird nach
ilS
00322 ;
Endemarkierunsein E’ einsesetzzt
00323 ?
00324 copy
LD
A» ’E’
Endernar kieruns
00325
LD
<HL),A
nach dem letzten Befehl
00326
LD
A» < filzae)
keine Files kopieren ?
00327
CP
00 h
00328
JR
2» kei fi1
Programm beenden
00329
vorher Meid uns aüsseben
00330
LD
A »<4320h)
erstes Seichen nach
00331
00332
00333
00334
00335
00336
yy 337
00338
00339
00348
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
y y 3 64
00365
00366
00367
00368
00369
00370
00371
00372
00373
00374
00375
y y 37 6
00377
00378
00379
00380
00381
00382
00383
00384
00385
00386
00387
08388
00389
00390
00391
00392
00393
00394
00395
00396
CP
JR
LD
CP
JR
LD
CP
JR
LD
CALL
LD
CALL
CALL
CP
JP
LD
CALL
JR
LD
J ’KOPIERE ’
*» falls 7*s* foist
HZ» soon
A» <4321h>
NZ» soon
A» <4322h)
*
HZ»soon
HL»meld 1
send ms
HL,meld2
sendms
setkey
’V
HZ»dosrdy
A»0dh
» noch ein ENTER aüsseben
outch
» auf dem bildschirrn aüsseben
soon
kei fi1
HL»meld3 » kein File der Source-Disk
» entspricht den
CALL
sendrns
» se ford er ten Spezifikationen
JP
dosrdy
soon
LD
HL» <buf2)
; anfans des Buffers
wei8
CALL
sendrns » der Copy—Befehl wird auf dem
' Bildschirm ansezeist.
LD
HL» <buf2)
CALL
doscal
» der Befehl wird aussef>hrt
CALL
NZ?keinfe» falls ein Fehler aufsetr. ist
LD
A»<3840h>
» tastaturzeile mit BREAK
BIT
2»A
» Abbrechen mit <BREAK>-Taste
JR
Z» wei9
LD
A»39h
» fehler ’Function Aborted’
JP
doserr
» Suchroutine um den n-Cchsten Befehl zu finden
wei9
LD
HL»<buf2>; anfans des letzten Befehls
LD
B» 0
LD
C» 9; der nichste Befehl kommt frühestens
ADD
HL»BC
» nach 9 Zeichen.
1o o p 6
LD
A »<H L )
CP
0dh
» kommt schon der nächste ?
JR
Z »we i10
IHC
HL
; zeiser ein weiter
JR
1o o p 6
; ohne ende .
wei 10
INC
HL
; ein harnwa noch
LD
A»<HL)
CP
’ >’
; normaler Befehl ?
JP
HZ»dosrdy
» wenn nicht» wars der letzte
LD
<buf2)»HL ; buf2 zeist auf den nächsten
JR
wei8
?Befehl und so weiter und so fort
kei nfe CP
iah
; fehlermeld uns ’Directory voll’
JR
Z»loefil» letzten File wieder loeschen
CP
.lbh
; ’Diskette voll ’
??????
JR
Z »1oe f i1
CP
•
ieh
; ’Directory voll bei Erw. ’ ??
JR
. Z»loefi1
CP
21h
» ’Kein Platz auf Diskette ’ ??
JR
Z»loefil
JP
doserr
loefi1 LD
HL»4326h» letztes <moesliches>
» sisnifikantes
' Zeichen des Copy—Befehls
LD
DE»4329h
’ die sanze Zeichenkette
? soll um 3 Zeichen nach
»hinten ve rs cho be n we rden
LD
BC?000dh
» sie ist 14 Zeichen ians
Club 80
INFO 36
Jan. 92
Seite
14
Qub 80
INFO 36
Jan. 92
Seite
15
[email protected]
00399
00399
00400
00401
00402
00403
00404
00405
00406
00407
00400
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419
00420
00421
00422
00423
00424
00425
00426
00427
0042S
00429
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
LDDR
f i ndde
noerr
kill
me 1dl
meld2
meld3
meid 4
roeld5
buffer
HL,kill
DE,4318h
BC,0005h
DE, HL
HL
LD
CP
JR
INC
LD
ADD
LD
INC
LD
LD
LD
CALL
LD
CALL
JP
LD
CALL
JP
LD
CALL
JP
DM
DM
DM
DM
DM
DM
DM
DM
EQÜ
END
A,<HL>
? •>
N2, find de
*solange bis 't' gefunden
HL
;: seiger auf Drive-#
A,<d ri2>
!* Des ti na tio n—D rive
A,'0’
5: ASCII—Auseieich
; eintrase n
<HL>,A
HL
A,8dh
?<cr> am Schluv ei ntrasen
<HL >, A
HL, 4318h
; Befehlsbuffer des DOS
sendms
; auf Display anzeisen
HL,4318h
dOS C«L1
ausf> hren
2, noerr
zur>ck ins DOS
HL,meid4
ansonsten Fehlermeld uns
sendms
ausgeben
dosrdy
und zurueck ins DÖS
HL, me Id 5'Diskette voLl' ause.
sendms -•%.
dosrdy
•-KILL
s\ DOS-BEFEHL KILL
’Wirklich alle Files kopieren ?',0dh
'Dann Jetzt <J> dr>cken ',83h
'Keine Files der Spezifikation '
’vorhanden*',8d h
'Der letzte kopierte File muss '
'noch sel!scht werden. ',8dh
'Diskette voll !!!!!!',Öd h
*
start
^ V t^ C ^ e r
Ü4*»ub U &'*<.
~ C
Ö
* \
*
'
?
" ~
* 0 (9 >
C ii f
Qub 80
INFO 36
Jan. 92
und zwar 'Filename'Ext'
«► <ENTER> «-ein blank
nach dem '>' !!
Verschiebebefehl
<Mit DEC der Parameter !>
source ist 'KILL '
Anfans Befehlsbuffer
Jbertraee 5 Zeichen
also los
Austausch HL <> DE
suche den Doppelpunkt
f>r Destination
Drive Eintrae
LD
LD
LD
LDIR
EX
INC
iS ^
A
?
;
•
;
5
?
;
;
;
;
;
'
•
fl* * *
^ j < % .p t 11 + + ’ /
Seite
16
e r
U^lo^e.
}
O Walter Hand
Ein bißchen C, ein bißchen Mathe .
Vor einiger Zeit hatte ich die Idee, mein C-System um einige mathematische
Routinen zu ergänzen. Mit den vier Grundrechenarten war ich nicht ganz so
zufrieden, wie es sich die Entwickler des C-Compilers vieleicht gedacht hat­
ten. Bevor so ein Vorhaben aber zu brauchbaren Algorithmen führt, stellte
sich mir das Problem selbige erst einmal ausfindig zu machen. Wer hat
schon soetwas als Nichtinformatiker in der Schublade liegen.
Gestecktes Ziel war, die fehlenden Funktionen - immerhin alle trigonometri­
schen Operationen mit möglichst schnellen Algorithmen aufzubauen. Aus­
scheiden würden somit schon einmal alle höheren Operationen oberhalb "+"
und "- ". Es mußte also alles so weit als möglich mit Addition und Subtrakti­
on erledigbar sein - zumindest in den zeitfressenden Berechnungsschleifen.
Gemacht, getan. Da mir nichts mit viel Mathematik in gedruckter Form zur
Hand gehen konnte,
war mein erster Schritt nach
einem Buch oder auch
mehreren, zu suchen
und aus diesen die gesuchten Rechenanweisungen her­
auszuziehen.
Die Rechenfunktionen basieren alle auf "Unendlichen Zahlenfolgen". Beim
"TAN(x)"
habe ich auf "SIN(x)/COS(x)H zurückgebriffen, da hier eine Folge
zur Berechnung der Bemoulischen Zahlen erfoderliche ist. Die Berechnung
ist recht aufwendig
und deshalb habe ich mir diesen Akt verkniffen. Anzu­
merken ist noch, das die vorgestellten Routinen noch nicht der "Weisheit
lezter Stuß" darstellen. Eine der Algorithmen konvergieren bei
bestimmten
Winkeln nur sehr schlecht, d.h., sie rechnen und rechnen und .... Zum Teil
auch deshalb, weil die Genauigkeit des Fließkomma—Routinen meines C-Compi—
lers nur 6 ... 7 Stellen umfaßt, was, wie ich mit GFA-Basic feststellen konn­
te, eine der Ursachen ist. Grundsätzlich bestimmt "FLT_EPSILON" die Genau­
igkeit der Ergebis8e. Zu beachten ist aber, daß dieerreichte
Genauigkeit
des errechneten Wertes geringer ausfällt als "FLT_EPSILON" angibt. Bei
"FLT_EPSILON" gleich 1E-6 wird auf 6 stellen hinter dem Komma gerechnet.
Wenn sich dann das ( n - l ) - t e in der Differenz von n -ten Ergebnis um weni­
ger als "FLT_EPSILON" unterscheidet, wird die Berechnung abgebrochen. Bei
1E-9 ist also nach 9 stellen Schluß. Damit diese Genauigkeit aber auch er­
reicht wird, muß die benutzte Fießkomma-Arithmetik mit einer größeren
Stellengenauigkeit rechnen als man erreichen will !!! Sonst geht die Sache
wegen der unvermeidlichen Rechenfehler schief. Das sicherste ist, die Stel—
lenzahl zwei Stellen weniger als möglich einzustellen. Dann bleibt genügend
Luft für Rundungsfehler etc.
/*
* Die nachfolgenden "#define"-Anweisungen legen einige Konstanten
* zu den Algorithmen fest
*
*/
tdefine
#define
#define
#define
MJPI
M_PI_2
M_LN10
FLT EPSILON
3 .1 4 1 5 9 2 6 5
(M J P D /2
2 .3 0 2 5 8 5 0 9
1E -6
/*
*
*
*
*
*
Funktion zur Berechnung des FMOD(X,Y)
Es wird der Gleitkomma-Rest der Modulo-Funktion
X/Y berechnet ! Hierzu wird bestimmt, wie
oft X ganzzahlig durch Y dividierbar ist und mit
dem gefundenen Wert rückgerechnet.
*
*/
float fmod(x,y)
float x,y;
{
if (x>-0)
return (x-(float)((int)(x/y))*y);
eise
return (x- (float) ((int) ((x/y) + .5)) *y) ?
/*
* Die Funktion 'frac(x)' liefert den Nachkomma* teil einer gebrochen rationalen Zahl.
*
*/
float frac(x)
float x;
{
if (x>*0)
return (x-(float)((int)(x)))?
eise
return (x-(float)((int)((x)+.5)));
Das Buch, aus dem ich alles entnommen habe nun als letztes (S. 603):
"Rechnen und Mathematik"
Das Lexikon für die Schule und Praxis
Dudenverlag Manheim/Wien/Zürich
4. Auflage, ISBN 3-411-02423-2
Preis: DM 36.—
Club 80
INFO 36
Jan. 92
Seite
17
In dem Schinken steht auch noch einiges mehr. Wer sich in Sachen Algorith­
men noch weiter vergraben will, kann es hier ausgiebig tun.
/*
* Funktion zur Berechnung des SIN(X).
* 'X' ist im Bogenmaß !
*
*
x~3 x~5
x~7
* sin(x)*x -----+ ---------**■ ...
*
3!
51
71
*/
I
0L4
register
float n
Club 80
INFO 36
Jan. 92
float sin(x)
float x?
Tschüß
(für x Element von R)
Seite
» 2.,
18
Club 80
INFO 36
x2 * 0.,
x_alt * 0.,
y
* 0?
Jan. 92
if (abs (x) >M—P D
x2 * x*x7
y
* x?
do
Seite
19
float cos(x)
float x;
x * fmod(x,M_PI) ?
register
float n
x2
x_alt
y
x_ait * y;
*• (-x2)/ (n*(n+1.))?
y
x?
n
} while (abs(x_alt-y)>FLT_EPSILON)?
return(y)?
/*
* Funktion zur Berechnung des SINH(X).
* 'X' ist im Bogenmaß i
**
x"3
x~5
x~7
* sinh(x)*x +*-- +>--- h---- - +■ .. (für x Element von R)
*
31
51
71
*/
20
1
/*
* Funktion zur Berechnung des cosh(X)..
* 'X* ist im Bogenmaß l
float sinh(x)
float x?
{
**
register
float n
* 2.,
x2 * 0.,
x_alt * .0.,
/*-
Seite
* 1.,
*■ 0. ,
* 0 *,
* 1.;
if(abs(x)>M_PI) x * fmod(x,M_PD 7
x2 * x*x,
x * 1. ?
do
(
x_alt * y;
x *» (-x2)/ (n*(n+1.));
y +* x?
n +*2.7
! while (abs(x_alt-y)>FLT_EPSILON)?
return(y) 7
+■ 2. ;
y
Jan. 92
C
(
x
Club 80
INFO 36
*/
x"2.
x ‘%4
x"6
*■ COSh (x ) *1 + - ----- + * ----- -- *K----- + . . .
*
*r
21 : 41
61
*r
» 0?
float cosh(x)
float x;
if<x>M_PI_2)x « fmod(x,M_PI_2) 7 */
x2 » x ÄXf
y
» x?
da
{
x_alt » y;
x *• x2/(n*(n*l.)) ?
y +* x?
n +» 2.?
1 while (abs(x_alt-y)>FLTJBPSILON)r
return(y)7
{
register
float n
x2
x__alt
y
/*■
x2
*
*
*
*
1.,
0.,
0 •,
1-7
if(x>M_PI) x *- fmod(x,M—P D ?*/
» X*X7
X * 1 .7
do
{
/*
x_alt » y?
x *»* x2/(n*(n+l.)) 7
y +* x?
* Funktion zur Berechnung des cos(X)~
'X* ist im Bogenmaß 1
*-
x~2
*- cos(x)» 1 ---*>■
21
x~Ar
n
x
~6
(für x Element: von. R)
41
61
+ » 2.7
1 while (abs(x_alt-y) >FLT_EPSILON) 7
return(y) 7
(für x Element von R)
/*
x « d,
* "X" im Bogenmaß
Y * 0.;
*
*
1
1
* atan(x) - x --- x*3 + - x~5-.
*
3
5
(
y * x;
d *• d2?
x ♦- (d/n)?
n +■ 2 •;
} while (abs(x-y)>FLT_EPSILON);
*
*/
float tan(x)
float x;
{
return (x+x);
return((abs(x)<0.005) ? x : (sin(x)/cos(x)))?
float atan(x)
float x;
/*
ic
{
register
float n
x2
*
« 3.,
it
« x*x f
it
x_alt » 0.,
*
y
it
- x;
x Element der reellen Zahlen
x~2
exp (x) - 1 + x + -21
x A3
+
3!
« s * --
*/
do
(
float exp(x)
float x;
x_alt » y;
x *» (-x2);
y +« (x/n);
n
2;
I while (abs(x_alt-y)>FLT_EPSILON)?
return(yY;
{
register
float n
• 1.,
x_alt * 0.,
y
- l.,
z
* 1.;
do
float cot(x)
float x?
(
x_alt * y;
z
** x/n?
{
return((abs(x)<0.005) ? (1/x)
t
y
(cos(x)/sin(x)))
+• z?
n
+« 1.?
1 while (abs(y-x_alt)>FLT_EPSILON);
return(y);
/*
*
IX!
< 1
*
* 1
/*
1+x
X
1
* - ln -- “ x + - x~3 + - x*5 + .„.
* 2
1-x
3
5
*
Club 80
INFO 36
Jan. 92
Seite
21
*/
float ln(x)
float x;
* Von der rechnung her wie "EXP(X)M, es wird nur entsprechend
* umgerechnet
*
/*
float explO(x)
float x?
Club 80
INFO 36
{
(
register
float d * (x-i.)/(x+l.),
d2» d*d,
n * 3.,
register
float n
* 1.,
x alt * 0.,
y
- 1 .,
Jan. 92
Seite
22
z
Club 80
INFO 36
K
Jan. 92
*•
* 1.?
Qub 80
INFO 36
Jan. 92
M_LN10;
d
a
{
x_alt * y;
z
*» x/n;
y
+* z;
n
1.;
} while (abs (y-x_alt) >FLT_EPSILON) ;
return(y);
Seite
23
H a ra re
* Hier ist mir der Zettel verloren gegangen. Pech, aber die
* Rechnung Rann sich jeder selbst rekonstruieren
*
/'*
float sqrt(x)
float
x;
(
register
float
xl * 1.,
x2 * xl;
int
1*0;
da
{
return(x2)r
1
mainO
l
float x * 8.9r
l
Das war natürlich die Sensation für mich» Ja, ich benütze noch immer diese
Kiste mit CPU 8085A und bin es zuweilen auch zufrieden damit ( AiphaTronic
P3 !! hi hi ). So bemühte ich mich denn monatelang, bei der von Fritz
genannten Adresse anzurufen, bis ich endlich Erfolg hatte. Aus den mir
zugesandten Unterlagen konnte ich die Adresse einer Firma rekonstruieren,
die mir dann weitere Unterlagen zusandte und mir anbot, mir versuchshalber
eine Umrüstplatine zuzusenden.
Da ich mir der technischen Details noch nicht ganz sicher war, beließ ich es
erstmal bei den Unterlagen.
Diesen Unterlagen zufolge handelt es sich um eine Platine mit Baustein
NSC 800 (das ist eine Z80-CPU) und einem Chip 74LS240, die anstelle des 9083
eingesteckt wird. Das ist fast alles. Je nach Taktfrequenz sind das dann
verschiedene Typvarianten. Bei meinen 6 MHz Takt ( nicht schlecht, was ? )
sollte das Ganze dann ca. 140 DM kosten.
xl*x2;
x2*(xl-Mx/xl))/2;
1-M-;
/
} while (abs(Xl-x2)>FLT_EPSILON);
printf ("Funkt ions argument x * %2.2f\n",x,"\n")
printf ("FMOD(x,8)» %3.7f\n"\fmod(x,8.));
printf("FRAC(x) * %3.7f\n",frac(x));
printf("SIN(x) » %3.7f\n",sin(x)>;
printf(HCOS(x) * %3.7f\n",cos(x));
printf ("SINH (x) » %3.7f\n",sinh(x));
printf (MCOSH(x) * %3.7f\n'*,cosh(x)) r
printf (HTAN(x) * %3.7f\n’\ tan(x))r
printf (-COT(x) * %3.7f\n'\cot(x)) ;
printf(-ATAN(x) * %3.7f\n",atan(x));
printf (-LN(x)
* %3.7f\n‘M n ( x ) ) ?
printf (-EXPlO(x)* %3.7e\n,\expl0 (x)) ;
printf("EXP(x) * %3.7e\nf ,exp(x)) ;
printf (-SQRT(x) » %3.7f\n" ,sqrt(x));
Da hatte mir Fritz Chwolka vor längerer Zeit mal am Telefon gesagt, er wüßte
von einem Knaben, der seinen 8085-Computer umgerüstet hätte auf Z80.
?/**/
/**/
/**/
/**/
/**/■
/**/
Ich hatte mich schon fast dazu entschlossen, diesen Betrag zu investieren,
als ich doch noch mal mein techn. Handbuch des P3 durchblätterte, und
feststellte, daß der Drucker über SID/SOD - Leitungen angesteuert wird. Das
ist eine eigene klein» serielle Schnittstelle, die die CPU 8085 direkt
anbietet.
Und das wars denn auch, denn als Z80-Processor hat der NSC800 diese
Leitungen natürlich auch nicht und ich hätte nach der Umrüstung nicht mehr
drucken können.
Aus und vorbei! (Änderungen des Betriebssystems und des Bios zieh» ich wegen
fehlender Unterlagen gar nicht in Betracht).
/**/
'/***/
/**/
Sollte jemand dennoch Interesse an der Sache haben, Fritz bekam die
Unterlagen von mir und auch ich gebe gern Auskunft.
/**/
/**/
/**V
/**/
/**/
Mit freundlichen Grüßen
■ ikvt JdU &M i
Seite
24
C P U 2 8 0
—
2 8 0 - V A X
Ich hatte schon befürchtet, daß ich mich vor Drohbriefen nicht
mehr retten kann, wenn ich den 101. Artikel zum Z280 verzapfe,
aber bis jetzt scheint (noch) niemand was darüber schreiben zu
wollen. Müssen erst die Namen der Besitzer veröffentlicht werden,
damit die was von sich hören lassen ?
1/4" l) und 40 Track SS SD mit 70KB wechseln, ohne daß man etwas
per Hand einstellen muß, wodurch sich dieser Rechner hervorragend
als Formatkonverter und Kopierstation eignet. Auf 3 1/2"-Disketten
gehen sogar 1.77MB, IBM war da unnötigerweise etwas sehr großzügig
mit seinen Formaten.
I Na gut, dann will ich mal mit gutem Beispiel voran gehen. Worum
geht es bei diesem Rechner, über den hin und wieder so geheimnis­
volle Andeutungen in diversen Artikeln aufgetaucht sind ? Ganz
einfach, im Prinzip geht es um einen Computer, der als Prozessor
keinen schnöden Z80, sondern einen Z280 hat. Der Z280 ist das, was
vor langer Zeit mal der Z800 werden sollte und wo der HD64180 bzw.
Z180 auf halbem Weg verhungert ist. Man könnte den Z280 als den
80286 der Zilog-Welt bezeichnen und im Grunde handelt es sich mehr
um einen 16-Bit- als um einen 8-Bit-Prozessor. Um nur einige High­
lights kurz zu nennen: Rund 600 Befehle, die über den Befehlssatz
des Z80 hinausgehen (16-Bit-Multiplikation, 32-Bit-Division, rela­
tive Adressen und Sprünge über die gesamten 64K...), 3-stufige Be­
fehlspipeline, eine on-chip MMU, die 16MB verwalten kann, 256 Byte
Cache, drei 16-Bit Zähler/Timer, vier DMA-Kanäle und eine serielle
Schnittstelle. Von der Leistung her ist der Chip dem 80286 min­
destens ebenbürtig, wenn nicht sogar überlegen. Trotzdem ist er
100%ig kompatibel zum Z80 und das macht ihn überhaupt erst wirk­
lich so interessant.
Den Rechner mit CP/M zu fahren ist eigentlich wie ein Porschemotor
in einem Goggo, aber CP/M ist leider nun mal DAS Betriebssystem
für den Z80. Wenn man nur CP/M laufen lassen will, kann man sich
genausogut einen anderen Composter zulegen, obwohl man wohl länger
suchen muß, bis man für knapp 600 Mark diese Ausstattung auf einer
Karte findet. Wer aber Lust am Experimentieren hat, der ist mit
diesem Chip bestens bedient und wenn dann noch das Club-Terminal
als Ein-/Ausgabe dient, dürfte die CPU280 einer der leistungs­
fähigsten CP/M-Rechner sein, die es momentan gibt. Natürlich läuft
die Version 3.1, die selbstredend alle Features der Karte voll un­
terstützt, und wer ZCPR kennt, weiß was Z3PLUS auf so einer Ma­
schine bedeutet. In nächster Zukunft gibt es noch eine AT-Bus-Karte, sodaß man auch in Sachen Massenspeicher ganz vorne mitmischen
kann. Da läuft einem doch das Wasser im Munde zusammen, oder ? Ei­
ne der wenigen Alternativen wäre natürlich das Z280-Board für das
Model I oder IV, aber ob das jemals kommt ? Auf dem nächsten Clubtreffen sind mit Sicherheit wieder mehrere CPU's anzutreffen, dann
könnt Ihr mal "Probefahren". Für Anfragen stehe ich natürlich ger­
ne zur Verfügung, wer sich aber lieber gleich an den Entwickler
wendet, seine Adresse ist:
i
■I
Aber nun zum eigentlichen Rechner, der CPU280 (wer als erster er­
rät, woher der Name kommt, bekommt ein Autogramm). In der "Grundausstattung" besteht der ganze Compi lediglich aus einer Europa­
karte, die den Prozessor mit 64 oder 128KB ROM und bis zu 4MB (1)
dynamischem RAM, den Floppycontroller (kompatibel zum 765), zwei
interruptfähige serielle Schnittstellen und eine akkugepufferte
Echtzeituhr mit 50 Bytes statischem Ram für Konfigurationsdaten
beherbergt. Mit einem Netzteil, einem Terminal und zwei Laufwerken
hat man schon einen kompletten CP/M-Rechner zusammen und kann los—
legen. Das CP/M wird normalerweise "in N u l l z e i t d i r e k t aus dem
EPROM gebootet, zu Testzwecken kann man das System aber auch von
der Floppy laden. Die Taktrate beträgt im Moment 12.288MHz, was in
der Rechenleistung einem Z80 bei etwa 16-20MHZ entspricht, je nach
Programm. Wenn man (-Stefan Nitschke) mal wirkliche Rechenpower
demonstrieren will und dazu echten Z280-Code benutzt, liefert die
Karte ein Apfelmännchen mit 720x348 Punkten und 40 Schritten Iter­
ationstiefe in ca. einer halben Minute ab. Damit die Karte mit der
alten ECB-Welt kompatibel ist, wird das Businterface mit einem
Takt von rund 6MHz betrieben, intern wird alles aber selbstver­
ständlich 16 bittig und ohne Waitzyklen mit voller Geschwindigkeit
betan.
Club 80
INFO 36
Jan. 92
Seite
25
Worin unterscheidet sich das Board nun von anderen CP/M-Rechnem ?
Da bis zu 4MB RAM, im platzsparenden ZIP-Gehäuse, bestückt werden
können, hat man beim Vollausbau, wenn man die diversen Puffer ab­
zieht, eine Ramdisk von rund 2-3MB zur Verfügung und da der Z280
hier im 16-Bit-Burst-Modus (4 Worte werden mit 2 Speicherzyklen
gelesen) betrieben wird, eine verdammt schnelle. Zum Thema Disket­
ten hat sich Tilmann Reh auch etwas ganz feines einfallen lassen.
Man kann auf die Disketten einen Parameterblock schreiben, sodaß
der Rechner das Format automatisch erkennen kann. Damit kann man
in einem Laufwerk a.B. beliebig zwischen HD-Floppies mit 1.44MB (5
Tilmann Reh
In der Großenbach 46
5900 Siegen
Club 80
INFO 36
Jan. 92
una tapt mich in Ruhe arbeitent
Qutr80^ i
B in r a c h s r
i^ /D —
u it < lf
I> /A - W a n c t l< i r /
Qufr 80
INFO 36*
INFO 36!
Jan. 92
Seite
27
Es hat auch im u n se r e r P o stille- schom d iv e r s e Bauanleitungen
und D/A-Wandler gegeben, ab er beides zusammen, und dann noch
IC, habe ich noctr nicht geseh en . Mit noch weniger Chips g e h f s
lich nicht, h ier d ü r fte d ie U ntergrenze am Bauteilen endgültig,
sein*.
fü r A/Din e in e »
ja wirk­
er r e ich t
Der AD 7569 von Analog D evices e n th ä lt a lle s was man dazu braucht, einen
8—b it—A/ D—Wandler mit 2us Wandlungszeit, einen D/A-wandler mit lus, die j
R eferenzspannungsquelle und ein B u sin terface fü r d ie d ir e k te Kopplung
mit dem Rechnerbus. Bei e in er unsymmetrischen Versorgung mit SV stehen
a ls Ein- und Ausgangsspannungsbereiche o.-i,2SV oder 0...2,5V (abhängig
vom* logischen Pegel am RANGB-eingang) zu r Verfügung. Bei e in er symmetrisch en Versorgung gehen d ie w erte entsprechend nochmal genauso w eit im j
den negativen Bereich. Die Adreßdecodierung i s t nicht mit auf dem* Chip
enthalten, j e nach Aufwand braucht man dazu nochmal ein oder zwei ICs.
wie sowas geht, könnt Ihr in f a s t allen Artikeln nachlesen, d ie s ic h mit
Hardware beschäftigen, ich habe mir das hier ersp a rt, ICs mit dem* Text­
e d ito r zu zeichnen i s t etwas mühsam.
Bei schreibzugriffem wird d er D/A-wandler aktiv und s e t z t d ie Daten, d ie
e r auf dem Bus findet, im e in e en tsp rech ende Ausgangsspannung um. Bei
einem L esezugriff wird d ie A/D-wandlung g e s ta r te t, wobei der Chip den
P r o zesso r über d ie B usy-L eitung s o la n g e anhält, bis- e r f e r t i g i s t . Bei
einem BASIC-Programm* i s t aber schorr d ie B erarb eitu n gszeit d er B efeh le s o |
lang, daß man davon mit S ich erh eit nichts- merkt. Auch a u f e in e » 4MHz-Z8e j
d au ert der kürzeste Maschinenbefehl schon lu s, das. als- Vergleich. Da*
lohnt e s sic h noch n ich t mal, d ie Wandlung zu Startern und dann a u f einem j
Interrupt zu warten, während der Rechner etwas- anderes macht, das k o s te t
durch den Verwaltungsaufwand v ie l mehr Z eit. Bet e in e » 4 8 6 e r mit 33MHr
mag das- anders aussehem , a b e r vom sowas- reden wir h ie r ja* garnicht.
Bei dem* Chip vom e in e r nenneswertem strom auf nahm» zw redem ist: schom
f a s t lächerlich, gerade- mal 12mA .braucht e r und* d a s kann man» wohl jedem»
N etzteil zusätzlich zumutem. Für dem P reis, g i l t ähnliches,, rund; ztr Marter
sind, fü r diesem Chips s ic h e r n ich t z u v ie l.
Apropos N etzteil, dam it kann man z. e i m billiges- programmierbares*.
N etzteil ä u ß erst ein fa c h -a u f bauend Ober dem D/A-Ausgang s t e u e r t d er
Rechner d ie L eistu n gstran sistorem d irek t am* und mit dem* A/D-Bingang
la u e r t er, ob am den Klemmen d ie gew ünschte Spannung tatsächlich* er­
reich t wird. Natürlich" i s t d i e Regelung etw as tr ä g e r a l s e in e m it einem*
in tegriertem Spannungsregler o d er O p erationsverstärker, a b e r wenn d ie
Laständerung, nicht zu sprunghaft i s t , d ü r fte es* durchaus* genügen. lt»Ge—
g en sa tz zu "normalen^ N e tz te ilen , deren Ausgangsspannung immer
weniger sta rk lastabhängig i s t , kann d e r Rechner d ie Spannung dante
M essung (natürlich im Rahmen d e r 8- Bit) genau auf dear ein g estelltem w ert
halten, wer sic h fü r (d igitaler Regelungstechnik in te r e s s ie r t, könnte
h ie r prima d ie Wirkungsweise von verschiedenen Regelungsalgorithmen aus—
probieren. Auch- zum rechnergestützten- Aufnehmern vom Kennlinien e ig n e t
sich sow as gut, denn da. braucht man sow ieso immer beides,» sowohl e in e
Spannungs— o d e r Stromqueller als*, auch* ein* M eßgerät.
1,25V
Jan. 92
2,5V
Seite
28
-5V
■O +*5V
3
rse
Z80
Cloclc- o
♦WAIT
o-
♦RD
o
♦WR
o
*RESET o
DO
o
Dl
o
D2
D3
DA
D5
D6
DT
o-
ooO
oo-
21
19
17
15
5
14
13
11
10
9
8
7
6r
20
4
Range
e ile
♦BUSY
♦RD
♦WR
24
Vdd
★ st i s
Vo w 2
AGNDjw 22
DBO
DB1
AD 7569"
DB2
DB3
V W 23
DBA
DB5
AGNDo» 1
DBS
DB7
♦'INT' *CSr DGND
16
12
Club 80 Börse
... Club 80 Börse
°^6
-ii P ^
^ S8e,
\£V'
rV&
■io.
20.
s^ c *
*IDS
" : Ä > 8Ä
"W
1
„ ü\<
ivOO
e^'
\eA°°' 0vc^
c'f'
<xö
*11
'o®•y-a
D>
,e^
“
°
” » « » 7 $ > *,,
ai
20 .V.
J 0 --'J
V* ^ t
4Sm^
25,^
'5 "
S°^'<!>°
s ^ s ^ / 60«^ < e -
VCO^9
v*f. V * K
^ « c u c
’“"■ ^ o C i ^ V vT.7.r»f c, M
e*£e
~; ^
H , Su^,;
40.
p «.
~‘ e^
e7i
«Oöi?
a«t*7/«°
,e<
•*5.
-;
± 8.
.
3o_
r<e£
^ 0
7/^3,^■<0
a« ^ Ä ® ^ - sy8wn
für G r 3 p ^ f ~ V
von M.
®
G e n i e U\s
Treiberprogramm furo
nnse
VoiKer D o s e
Club 80
INFO 36
Jan. 92
0 4 3 4 3 / 1 357
Club 80
INFO 36
Jan. 92
Seite
29
Seite
30
Club 80
INFO 36
Der*
Jan. 92
Da neben den Tandy's immer mehr "Fremdrechner'• den Weg zu uns fin­
den , möchte ich denen auch mal einen Artikel widmen. Die CPC's wa­
ren ja schon immer etwas anders als andere Rechner und so ist es
auch beim Timing der CPU. Damit der Z80 dem Video-Controller nicht
ins Gehege kommt, bekommt er sog. WAIT-Zyklen auf gebrummt, was zu
ca. 20% Verlust an Rechenleistung führt; als effektive Taktfre­
quenz bleiben rund 3.2MHz übrig. Wenn man für Zeitschleifen u.ä*
aber die genaue Zahl der Taktzyklen braucht, hilft ein Blick ins
Prozessorhandbuch leider nicht weiter, weil die unterschiedlichen
Befehle von den Wait-Zyklen unterschiedlich beeinflußt werden und
die Zahl der Takte somit mehr oder weniger stark von einem unge­
bremsten Z80 abweicht. In der c't 9/85 hat sich mal jemand die Mü­
he gemacht und diese Zeiten bestimmt. Hier nun das Ergebnis, viel­
leicht kann es der ein oder andere ja brauchen. Die Zahl der Takt­
zyklen ist angegeben als- "ohne Bremse («anderer Rechner) / mit an­
gezogener Handbremse (=CPC)"\ Durch dieses merkwürdige System be­
trägt die Ausführungszeit eines Befehls immer ein vielfaches von 4
Takten und bei längeren Befehlen kommt meistens noch eine "Ehren­
runde" dazu.
Seile
31
R e c hne r
mit:
***** 8—Bit Ladebefehle *****
der
Handbremse
Club 80
INFO 36
***** Exchange, Blocktransfer
und Suchbefehle *****
***** Rotieren und
Verschieben *****
Jan. 92
Befehl
Takte
Befehl
Takte
Seite
EX.
DE, HL
EX
A F ,AF '
EXX
EX
(SP),HL
EX
(SP),IX/IY
LDI/LDD
4
4
4
19
23
16
RLCA/RLA/RRCA/RRA
4
RL /RLC/RR /RRC/
SLA/SRA/SRL
— r -—
— (HL) —
— (IX/IY+d) —
LDIR/LDDR
— BO0 —
— B=0 —
3 / 8
15 / 16
23 / 28
21 / 24
16 / 20
RLD/RRD
18 / 20
CPI/CPD
16 / 16
CPIR/CPDR
— BO0 —
— B=0 —
21 / 24
16 / 16
***** 16-Bit Ladebefehle *****
/
/
/
/
/
/
4
4
4
24
24
20
/ 4
Befehl’
Takte
Befehl
Takte
***** Sprünge *****
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
4* * r 4
7 / 8
T / 8r19* / 20*
7 / 8:
19* / 2D
10 / 12 •
19 / 24*
7 / 8
13 / 167 / 8
13 / 16
9 / 12
9 / 12
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
PUSH
PUSH
POP
POP
10 /
14 /
16 /
20 /
20 /
16 /
20 /
20 /
6 /
10 /
11 /
15 /
10 /
14- /
Befehl
Takte
Befehl
JP nn / JP cc,nn
10 / 12
CALL nn / CALL cc ,nn
— cc w a h r -17 / 20
---cc falsch —
10 / 12
r,r**
r,n
r, (HL)
r ,(IX/IY+d)
(HL),r
(IX/IY+d) ,r
(HL) ,n
(IX/IY+d),n
A,(ss)
A,(nn)
(ss),A
(nn),A
A,I/R
I/R, A
***** 8—Bit Arithmetik ******
Befehl
ADD/ADC/SUB/SBC/AND/OR /XOR/CP
r — •
— Tt —
-- (HL) —
-- (IX/IY+d) -INC/DEC
— .r* — — (HL) —
•
— (IX/IY+d) —
Takte
4
7
7
19
/
/
/
/
4
8
8
20
4. / 4.
11 / 12
23 / 24-
dd,nn
IX/IY,nn
(HL),nn .
d d ,(n n )
IX/IY,(nn)
(nn),HL
(n n ),dd
(nn),IX/IY
SP,HL
SP,IX/IY
qq
IX/IY
qq
IX/IY
12
16
20
24
24
20
24
24
8
12
16
20
12
16 *
JR e / JR cc,e
/— c c w ah r —
— cc falsch —
JP
JP
(HL)
(IX/IY)
/
i
f
*****
12 / 12
7 / 3
4
8
/ 4
/ 3
call
und RETURN *****
RET
10 / 12
RET
cc
— cc wahr —
— c c falsch — *
11 / 16
5 / 8.
RET! / RET N
14 / 1 6
RST
11 / 16
DJNZ e
—
—
cc wahr* —
cc falsch —
13 / 16
3 / 12
Takte
p
****** 16—Bit Arithmetik ****
Befehl
Takte
ADD HL,dd
ADC HL,dd.
SBC HL, dd
ADD IX/IY,dd
INC/DEC
dd
INC/DEC
IX/IY
11
15
15
15
6
10
/
/
/
/
/
/
12.
16
16
16
8
12.
****** INPUT / OUTPUT *****
***** Bit-Verarbeitung *★★★*;
BefehL
Teücte
Befehl
Takte
IN / OUT A,(n)
IN / OUT r,(C)
INI / IND
11 / 12
12 / 16
16- / 20
BIT
— b,r —
— b,(HL) —
— b,(IX/IY+d) :—
INIR / INDR
— BO0 —
— B»0 ---
8 / 812 / 12
20 / 28 "
21 / *16 / *-
OUTI / OUTD
16 / 20
SET/RES
— b,r —
-- b,(HL) -— b,( IX/IY+d) —
8 / 3
15 / 16 23 / 28
OTIR / OTDR
-- B O 0 --
21 / *•■
32
| ***** sonstige Befehle *****
1
: Befehl
Takte
■
I' DAA / CPL /
; NOP / HALT/
CCF / SCF /
EI / DI
4 / 4
j
IM 0/1/2
8 / 8
NEG
r,r':
dd
:
ss
:
qq
:
n
:
nn
:
/
A,B ,C ,D ,E ,H ,L
BC,DE,HL,SP
B C ,D E ,HL
A F ,B C ,D E ,HL
Byte oder Portadresse
16-Bit-Adresse
b
P
d
cc
e
:
:
:
:
:
Bitnummer
Restartnummer
8-Bit-Offset
Bedingung
relative 8-Bit-Adresse
*) diese Befehle können beim Schneider nicht verwendet werden
Alexander Schmid
© Dietmar Große
Hacker * s
Schönere
Club 80
INFO 36
Jan. 92
Seite
S
cclxd
.1ciceliesri
Wenn man seinem Rechner eine neue Schnittstelle gönnt oder son­
stige Veränderungen vornimmt, kommt man immer wieder zu dem Punkt,
wo es darum geht, der Öffentlichkeit kundzutun, wozu dieser und
jener Stecker dient. Handgeschriebene Aufkleber haben leider den
Nachteil eben genauso auszusehen. Neidvoll blickt man immer wieder
auf die professionellen Beschriftungen
"ordentlicher” Rechner,
aber es gibt einen recht einfachen Weg, das auch selber hinzukrie­
gen. Man nehme selbstklebende Etiketten, wie es sie für fast jeden
Drucker gibt und spanne sie in denselben ein. Danach drucke man
den gewünschten Text möglichst fett und d u n k e l , damit die Schrift
nicht so nach Nadeldrucker aussieht. Das Wichtigste kommt jetzt:
damit nichts mehr verwischen oder verkratzen kann nehme man einen
Streifen Tesa o.ä. und klebe ihn auf das Etikett ! Mit dem Finger­
nagel ordentlich festreiben und anschließend kann man das Schildchen mit der Schere in Form bringen und auf den Compi kleben, wenn
nötig mit Uhu. Das Ergebnis kann sich durchaus sehen lassen und
man braucht seinen Rechner nicht mehr schamvoll zu verstecken.
Aufreibebuchstaben sehen zwar auch gut a u s , aber um damit eine ge­
rade Linie hinzukriegen muß man schon viel üben, besonders wenn
einem Stecker und Knöpfe im Weg sind und billiger ist das sicher
nicht. Ganz abgesehen davon, daß diese Zeichen recht empfindlich
sind und man sie für den rauhen Alltagsbetrieb am besten mit Klar­
lack schützen sollte.
Hirnkriioke
Ihr werdet Euch sicher w u n d e m , was ein Taschenrechner in dieser
Postille macht, aber wenn man PC als "Pocket Calculator" interpre­
tiert, kommt's doch hin. Es geht einfach darum, daß ich endlich
einen brauchbaren Hardware-Sidekick gefunden habe, der neben allen
von mir benötigten Funktionen auch in Hex rechnen kann. Besagter
Rechner ist der CASIO fx-115D und zählt sich zu den sog. wissen­
schaftlichen Rechnern, d.h. er hat alle möglichen trigonometrisch­
en Funktionen und was man in der höheren Mathematik sonst noch so
braucht. Dazu hat er natürlich statistische Funktionen und kann
sogar Permutationen und Kombinationen berechnen (wer nicht weiß,
was das ist, braucht es auch nicht, wer damit aber schon mal zu
tun hatte, weiß, was das für ein Aufwand ist). Daß er mit komplex­
en Zahlen umgehen kann, ist schon nicht mehr so selbstverständlich
und für den Programmierer schließlich bietet er beliebige Umrech­
nungen zwischen hex, oktal, binär und dezimal. Als logische Funk­
tionen hat er NEG (2er-Komplement), NOT (ler-Komplement), AND, OR,
XOR und XNOR, dazu kommen selbstverständlich noch die artihme­
tischen Funktionen (+ , -, *, /) in allen Zahlensystemen (was war
doch gleich 123h * 4...). Mehr kann man wohl nicht verlangen. An­
sonsten ist es ein ganz normaler Taschenrechner, wie es ihn sicher
auch von anderen Firmen gibt, fragt sich nur, ob man dort auch soviele Funktionen zusammen hat. Programmierbare Rechner von HP oder
Texas waren mir bis jetzt immer eine Nummer zu groß und zu teuer,
den CASIO gibt's schon für 35 Mark. Warum soll man mit Kanonen auf
Spatzen schießen und mehrere hundert Mark ausgeben, etwas selber
denken tut hin und wieder auch ganz gut.
; Club 80
| INFO 36
| Jan. 92
i Seite
33
Alexander Schmid
| Alexander Schmid /
;
34
Club 80
INFO 36
Jan. 92
Seite
35
E x c e p tio n s , In te r ru p ts und T ra p s
Club 80
INFO 36
Jan. 92
von Gerald Schröder
Dieser Artikel fällt wieder in das Themengebiet „Betriebssysteme“, wie sollte es an­
ders sein. Die drei obengenannten Begriffe sind auf vielen Ebenen zu finden, von
der Maschinenebene (Mikroprozessor und Konsorten) bis zur Ebene der Program­
miersprachen (PL/1 und Nachfolger). Die ganze Sache ist für Programmiererinnen
interessant, die sich nahe an der Hardware tummeln, sei es in Assembler oder einer
(höheren) Programmiersprache. Übrigens finden sich die Begriffe bei allen Prozes­
sortypen (selbst bei den Intei-80x86), obwohl der Z80 natürlich alles am schönsten,
besten, einfachsten m acht...
Leider werden die Begriffe nicht einheitlich verwendet. Ich werde hier meine Auf­
fassung der Begriffe darlegen, da sich die verschiedenen Auslegungen nicht unter
einen Hut bringen lassen. Deshalb kann es sein, daß Euch die Begriffe in einer etwas
anderen Verkleidung über den Weg laufen, aber erkennen und einordnen könnt Ihr
sie dann hoffentlich trotzdem.
Ich werde zuerst die Begriffe so vorstellen, wie ich sie verstehe, und dann EinsatZrbereiche nennen.
E x c e p tio n
Eine Exception (dt.: Ausnahme) ist für mich entweder ein Interrupt oder ein Trap,
.also ein Oberbegriff:
mögliche Reaktion
Ereignis
ein unzulässiger Wert wurde einge­ Wiederholung der Eingabe
geben
der Sektor wird gelesen
ein Sektor soll eingelesen werden
Ausgabe einer Fehlermeldung
Division durch 0
Überschreiten der Indexgrenzen eines Erweiterung des Feldes
Feldes
es wird auf einen Speicherbereich zuge­ Einlagerung des Speicherbereichs
griffen, der gerade ausgelagert ist
ein Zeichen ist an der seriellen Schnitt­ das Zeichen wird abgeholt
stelle angekommen
beim Lesen eines Sektors von der Dis­ das Lesen wird wiederholt und ggf. eine
kette oder Festplatte ist ein Fehler Fehlermeldung ausgegeben
aufgetreten
ein Sektor wurde von der Diskette oder der Sektorinhalt wird aus dem Buffer
Festplatte in einen Buffer (dt.: Puffer, abgeholt
Zwischenspeicher) gelesen
ein Weckton wird ausgegeben
ein Timer (dt.: Zähler) ist abgeiaufen
Alle diese Ereignisse finden während des normalen Programmablaufs statt, sollen
aber sofort bearbeitet werden. Also wird das Programm unterbrochen und ein Un­
terprogramm aufgerufen, das sich um die Behandlung der Exception kümmert; dieses
Unterprogamm nennen wir E x cep tio n h an d ler. Nach der Behandlung der Excep­
tion wird das Programm an der Stelle fortgesetzt, an der es unterbrochen wurde.
Der Programmfluß sieht grafisch folgendermaßen aus:
Exception
Der Begriff „Exception“ wird oft im Bereich von höheren Programmiersprachen
gebraucht, z. B. bei Ada1.
Eine Exception tritt auf, wenn irgendein Ereignis den normalen Programmfluß un­
terbricht. Denkbar sind z. B. folgende Ereignisse und Reaktionen:
I n te r r u p t
Hn C bzw. UN IX heißen Exceptions „Signale“ , sind aber ähnlich.
Ein Interrupt (dt.: Unterbrechung) liegt vor, wenn ein Gerät bzw. ein Controller
die Arbeit des Prozessors unterbricht. Ein Interrupt wird also extern verursacht und^
dann intern (im Prozessor) behandelt.2 Die Behandlung wird von einem In te rru p t2Heute finden wir intern in einem Mikroprozessor auch Einheiten vor, die früher extern (als
eigene Chips) realisiert wurden, wie serielle Schnittstellen, D M A-Kanäle (D M A: „Direct Memory
Access“ , d t.; direkter Speicherzugriff) oder T im er. Logisch sind diese Einheiten aber weiterhin
externe Einheiten, denn der Prozessor würde auch ohne sie funktionieren. Sprich: Interne Einheiten
sind solche, ohne die ein Prozessor nicht funktioniert (kein Program m abarbeiten kann).
Seite
36
'•i
h an d ler (oft auch „Interruptroutine“ genannt) erledigt. (Siehe dazu auch Info 31,
; Artikel „Schnittstellenprogrammierung“.)
CALL xxxx sind Traps meistens schneller und nicht von einer bestimmten Adresse
xxxx abhängig, also änderungsfreundlicher. Andere Traps erhöhen vor allem den
Komfort und die Sicherheit von Programmen, denn es muß z. B. nicht vor jeder
Division x DIV y geprüft werden, ob der Divisor y = 0 ist.
T ra p
Bei einem Interrupt ist ein externes Ereignis dafür verantwortlich, daß der Pro­
grammfluß unterbrochen wird. Wenn ein internes Ereignis die Ursache für eine Un­
terbrechung ist, nennen wir die Unterbrechung TTap (dt.: Falle). Für die Behandlung
ist ein T ra p h a n d le r zuständig.
I Interne Ereignisse werden durch einen Befehl direkt oder indirekt ausgelöst. Eine
' direkte Auslösung ist ein spezieller Trap-Befehl, der dann wie ein Unterprogramm­
aufruf CALL xxxx wirkt, wobei xxxx die Adresse des TVaphandlers ist. Indirekt wird
ein Trap ausgelöst, wenn dies bei der Ausführung eines Befehls geschieht (der kein
Trap-Befehl ist). Beispiele:
• Beim Versuch, durch 0 zu teilen (was nicht möglich ist), wird ein Trap „Division
durch 0“ausgelöst,- was die Ausgabe einer Fehlermeldung zur Folge haben kann.
• Falls ein unbekannter Befehl ausgeführt werden soll, wird ein Trap „Unbekann­
ter Befehl“ ausgelöst, so daß der Traphandler diesen Befehl evtl, emulieren
kann (siehe Z80-IUegals, Info 17).
E in sa tz b e re ich e
W e ite re V o rteile
Da die Aufrufe der Exception- (Interrupt-, Trap-) Handler meistens nicht direkt,
sondern über eine Tabelle erfolgen, in der die Adressen der Händler eingetragen
sind, lassen sich leicht neue Händler für einen Interrupt oder TVap installieren: In der
Tabelle wird die Adresse des alten Handlers durch die Adresse des neuen Handlers
ersetzt. Wenn die Tabelle groß genug ist, lassen sich auch leicht neue Exceptions
einführen.
A lles klar?
Ich hoffe, daß Ihr mit mir der Meinung seid, daß Exceptions eine tolle Sache sind
und viel mehr ausgenutzt werden sollten.
Ich muß an dieser Stelle nochmal darauf hinweisen, daß die Begriffsbildung nicht
einheitlich ist. Bei den 680x0 werden auch Interrupts als „Traps“ bezeichnet, bei
den 80x86 ist es umgekehrt (der Befehl INT ist ein Trap, kein „Interrupt“). Nachdem
ich jetzt die Sache ein für allemal klargestellt habe, sollten sich so imbedeutende
Firmen wie Motorola (680x0) und Intel.(80x86) gefälligst an meine Begriffe halten,
meine ich!
Wo lassen sich Exceptions, also Interrupts und Traps, sinnvoll einsetzen?
I n te r r u p t s
Club 80
INFO 36
Jan. 92
Seite
37
Die Einsatzbereiche für Interrupts wurden schon im Artikel „Schnittstellenprogram­
mierung“ in Info Nr. 31 beschrieben: Wenn der Prozessor „ziemlich lange“ warten
muß, weil ein Gerät oder Controller zu langsam ist (z. B. Drucker), oder wenn sich
nicht voraussehen läßt, mann etwas passiert (z. B. Empfang eines Zeichens an der
seriellen Schnittstelle), lassen sich Interrupts einsetzen. In der zwischen den Inter­
rupts liegenden Zeit kann der Prozessor einen Haufen „nützlicher“ Arbeit verrichten,
statt in Warteschleifen zu kreisen.
T ra p s
Trap-Befehle bieten sich als Schnittstelle zwischen Anwenderprogramm und Be­
triebssystem an. Im Gegensatz zu einem normalen Unterprogrammaufruf per
| Club 80
| INFO 36
Jan. 92
Seite
38
Club 80 j
INFO 36 |
Jan. 92 j
Vom Single zum Multi
Gerald Schröder
•
Seite
39
U m w as g e h t’s?
Neuerdings taucht in viele Artikeln, Anzeigen und Gesprächen das Schlagwort
„Multi“ auf: Multitasking, Multiprocessor, Multiprocessing, Multiuser. Diese Be­
griffe werden uns alten CP/M lern an den Kopf geworfen, mit dem Vorwurf, ein
„Singleprocessor, Singleuser, Singletasking System“ sei doch wohl nicht mehr zeit­
gemäß.
Ich möchte hier versuchen, die Brücke vom alten „Single“ zum modernen „Multi“
zu schlagen. Dazu werde ich (bei ausreichender Ausdauer) einige Artikel zu diesem
Thema schreiben. Anfängen möchte ich hier mit einer Einführung in die obenge­
nannten neuen Begriffe. Entferntes Ziel dieser Serie ist es, den Kern eines modernen
Betriebssystems auf Basis des Z280 zu entwerfen. Ich hoffe, daß der Weg dorthin
Euch hilft, den ganzen Humbug zu durchschauen, damit Ihr aus vollem Herzen sa^gönrkönfitr ^So-emQTiaetS^l^öder „Stark!'Super1.'"G e n ia l!“je nach‘Geschi£iackr~'
Damit sowohl die englisch- als auch die deutschsprachigen Leser zu ihrem Recht
kommen, habe ich ein Glossar englischer Begriffe, die in diesem Text auftauchen,
erstellt und als Anhang beigelegt. Es läßt sich darüber streiten, ob eher die englischen
Originale, die „Eindeutschungen“ oder die Übersetzungen benutzt werden sollen.
Für die Wissensdurstigen habe ich als zweiten Anhang einige Literaturhinweise ver­
fallt, die allerdings nur einen minimalen Ausschnitt aus der unübersehbaren Masse
an Büchern zu diesem Thema darstellen.
P ro z e ß u n d P ro z e s s o r
Was ein Prozessor ist, weiß hoffentlich jeder. Sagen wir einfach: Ein Prozessor ist
ein Ding, das Befehle ausführt und Daten bearbeitet. Aber was ist ein Prozeß? Eine
mögliche Antwort ist: Ein Prozeß ist ein Programm, wie wir es adle kennen. Genauer
ist folgende Definition:
Ein Prozeß besteht aus drei Teilen:
1. Einer Folge von Befehlen-
Was Befehle und was Daten sind, dürfte klar sein. Für uns ist nur interessant, daß
der Prozessor die Befehle ausführt und mit den Daten arbeitet, insbesondere sie
ändert.1
Der innere Zustand beschreibt den Abarbeitungsstand des Prozesses:
• Zustand der Daten.
• Befehlszeiger (Zeiger auf den nächsten auszuführenden Befehl).
Von außen gesehen, können wir auch mehrere Zustände eines Prozesses unterschei­
den, z. B.:
inaktiv: Der Prozeß wurde noch nicht gestartet,
laufend: Der Prozeß läuft gerade.
w artend: Der Prozeß hat sich selbst in einen Wartezustand versetzt (und wartet
auf ein Signal von außen).
unterbrochen:* Der* Prozeff wurde von außen unterbrochen (und wartet' auf seine “*
Fortsetzung).
Damit ein Prozeß laufen kann, muß er einen Prozessor zugeteilt bekommen, der
die Befehle des Prozesses ausführt. Dadurch wiederum wird der innere Zustand
verändert, denn erstens ändern die Befehle normalerweise die Daten und zweitens
zeigt nach Abarbeitung eines Befehls der Befehlszeiger auf den nächsten Befehl.
M u ltita s k in g bzw . M u ltip ro c e ssin g
Der Normalzustand, den wir alle aus der täglichen Praxis kennen, ist ein Prozeß
auf einem Prozessor. Sobald wir es mit mehreren Prozessen zu tun haben, gibt es
mehrere Möglichkeiten der Ausführung:
2. Einem Satz von Daten.
3. Einem inneren und einem äußeren Zustand.
1. Wir lassen die Prozesse nacheinander auf einem Prozessor laufen. Diese
Möglichkeit ist trivial und interessiert uns nicht weiter.
2. Wir lassen die Prozesse konkurrent (bzw. nebenläufig) auf einem oder meh­
reren Prozessoren abiaufen. Zwei Prozesse sind konkurrent, wenn zu einem
Zeitpunkt beide begonnen, aber keiner abgeschlossen wurde (Gil81, Seite 49].
Nun gibt es wieder zwei Unterklassen:
(a) Bei einem Prozessor ist zu einem Zeitpunkt immer genau ein Prozeß
aktiv, während alle anderen entweder unterbrochen sind oder freiwillig
warten. Ich nenne dies quasi parallel.
1Befehle dürfen normalerweise nicht geändert werden. Selbstraodifizierender Code ist also tabu.
j
I
!
(b) Bei mehreren Prozessoren können mehrere Prozesse gleichzeitig aktiv
sein. Zwei Prozesse sind echt parallel, wenn zu einem Zeitpunkt beide
Prozesse aktiv sind.
.
Neu und interessant sind Rechner mit mehreren Prozessoren, Multiprozessorsysteme
genannt.
Dazu wieder einige Klarstellungen. Ein Prozessor eines Multiprozessorsystems
sollte auch allein in einem Rechner arbeiten können, also macht ein ArithmetikCoprozessor oder ein Grafikprozessor noch kein Multiprozessorsystem. Es gibt aber
höchst unterschiedliche Multiprozessorsysteme, die wir nach folgenden Merkmalen
klassifizieren können [Gil81, Kapitel 10]:
-
! Was ist genau der Unterschied zwischen quasi parallel und echt parallel? Nehmen wir
• an, wir haben es mit zwei Prozessen zu tun, die ausgeführt werden sollen. Im quasi
parallelen Fall werden einige Befehle des ersten Prozesses ausgeführt und dieser
dann von außen unterbrochen. Nun werden einige Befehle des zweiten Prozesses
ausgeführt, bis dieser unterbrochen wird. Jetzt kommt wieder Prozeß 1 an die Reihe
usw. Im echt parallelen Fall dagegen werden die Befehle eines Prozesses auf einem
Prozessor und die Befehle des anderen Prozesses gleichzeitig auf einem anderen
Prozessor ausgeführt.
|
:
j
!
K opplung:
stark e: Die Prozessoren sind über einen gemeinsamen Speicher (Shared Me­
mory) verbunden.
Das quasi oder echt parallele Ausführen von Prozessen nennt sich Multitasking oder
Multiprocessing. Interessanterweise bieten die meisten modernen Betriebssysteme
(z. B. UNIX, OS/2) Multitasking an, aber nur auf einem Prozessor. Mit mehreren
Prozessoren kann kaum ein Betriebssystem umgehen. Hier gibt es noch viel Entwicklungsarbeit zu tun.
schwache: Die Prozessoren können nur Nachrichten (Messages) austauschen,
z. B. über einen Bus.
K ontrolle:
T h read s
zen tral: Ein Prozeß übernimmt die Kontrolle über alle anderen Prozesse und
die Prozessoren.
I hi letzter Zeit tauchen neuerdings Threads auf. Threads sind’eine Abart der Pro­
zesse. Bei Prozessen gibt es das Problem, daß (normalerweise) jeder Prozeß für sich
abgeschlossen ist, d. h. zwei Prozesse sich nicht dieselben Befehle oder Daten teilen
| dürfen. Wenn zwei Prozesse Daten austauschen oder mit denselben Daten arbeiten
j wollen, müssen dafür besondere Maßnahmen getroffen werden, indem zum Beispiel
! ein Prozeß einem anderen Daten schickt (was wiederum Zeit kostet).
v erte ilt: Kein-Prozeß hat die Kontrolle.
H ardw are:
hom ogen: Alle Prozessoren sind gleich, z. B. nur Z280-Prozessoren,
Bei Threads ist dies genau umgekehrt: Threads teilen sich sowohl Befehle als auch
Daten. Allerdings benutzt jeder Thread einen eigenen Stack. Außerdem besitzt jeder
Thread seinen eigenen Zustand, wobei der Zustand der Daten für alle Threads gleich
ist.
inhom ogen: Unterschiedliche Prozessoren, z. B. Z280 neben 80386.
S ym m etrie:
Ansonsten gelten dieselben Aussagen wie für Prozesse: Auch Threads können kon­
kurrent ausgeführt werden, wobei wir wieder zwischen der quasi und der echt parj allelen Ausführung unterscheiden.
Club 80
INFO 36
Jan. 92
Seite
41
Threads sind normalerweise den Prozessen untergeordnet. D. h. ein Prozeß kann aus
mehreren Threads bestehen, aber nicht umgekehrt. Es bietet sich zum Beispiel an,
! mehrere Prozesse auf mehreren Prozessoren echt parallel ablaufen zu lassen. Diese
Prozesse können dann wiederum aus mehreren Threads bestehen, die quasi parallel
I auf dem einen Prozessor laufen.
!
'
j M u ltip ro z e s s o rs y s te m e
■
. ,
■ ~
Bisher haben wir uns nur mit der Software-Seite beschäftigte Und was gibt es auf .
j der Hardware-Seite? Wir kennen alle unsere Rechner mit einem Hauptprozessor.
sy m m etrisch : Alle Prozessoren spielen dieselbe Rohe, können also jede Funk­
tion im System übernehmen.
asy m m etrisch : Die Prozessoren haben verschiedene Rollen, z. B. kümmert
sich ein Prozessor um die Ausgabe auf Drucker, während ein anderer die
Ein-/Ausgabe von/auf Festplatten erledigt.
Daraus kann sich nun jeder sein Multiprozessorsystem zusammenbasteln (Gruß an
; Helmut), z. B. ein System,
i
Club 80
INFO 36
Jan. 92
• in dem mehrere Z280 werkeln,
die alle einen eigenen (lokalen) Speicher besitzen und Nachrichten über eine
serielle Schnittstelle austauschen,
Seite
42
. Qub 80
INFO 36
♦ wobei alle Prozessoren dieselbe Rolle spielen (also alle Zugriff auf Drucker,
Tastatur, Bildschirm usw. haben) und
M u ltip ro c esso rsy stem (Mehrprozessorsystem): Mehrere Prozessoren in einem
Rechner.
• ein Prozeß (auf irgendeinem Prozessor) alles kontrolliert,
M u ltiu sersy stem (Mehrbenutzersystem): Mehrere Benutzer teilen sich einen
Rechner.
Jan. 92
Seite
43
nennt sich ein „homogenes, schwach gekoppeltes, symmetrisches Multiprozessorsy­
stem mit zentraler Kontrolle“.
S hared M em o ry (geteilter Speicher): Wie —►Global Memory.
G lobal M e m o ry (globaler Speicher): Speicher, auf den mehrere Prozessoren zu­
greifen können. Siehe auch —* Local Memory.
M u ltiu s e r
Der Schritt vom mehreren Prozessen zu mehreren Benutzern ist nicht mehr groß.
Im normalen Fall sitzt ein Benutzer (User) vor dem Rechner. Es gibt dann meistens
einen Prozeß, der Tastatur und Bildschirm dieses Benutzers überwacht. Wenn wir
nun noch eine Tastatur und einen Bildschirm an den Rechner anhängen und einen
zweiten Prozeß erzeugen, der diese kontrolliert, haben wir ein Multiusersystem. Es
gibt zwei Prozesse, also haben wir es mit Multiprocessing tun.
Unser Multiusersystem ka.nn nur einen Prozessor haben, was natürlich bedeutet, daß
sich die Benutzer-diesen teilen, müssen, was den englischen•Begriff „time sharing“*
geprägt hat (die Zeit des Prozessors wird aufgeteilt). Wenn mehrere Prozessoren
vorhanden sind, können die Prozesse auf diese verteilt werden.
Schluß
Das soll für heute reichen. Wir haben jetzt die grundlegenden Begriffe im Zusam­
menhang mit „M ulti... “ kennengelemt. Sicherlich gibt es Fragen, Unklarheiten oder
Wünsche für weitere Erklärungen. Schickt sie mir! Ich freue mich über jede Reaktion.
A nhänge
G lossar
Task (Aufgabe): Wie —* Process.
P rocess (Prozeß): Ein Programm, bestehend aus Befehlen, Daten und einem (in­
neren und äußeren) Zustand.
T h re ad (Faden): Ein Teil eines Prozesses (—►Process), der mit anderen Threads
Befehle und Daten des Prozesses teilt.
M u ltitask in g sy stem : Wie
Multiprocessingsystem.
M u ltiprocessingsystem (Mehrprozeßsystem): Mehrere —►Prozesse laufen auf ei­
nem Rechner.
Local M em o ry (lokaler Speicher): Speicher, auf den nur ein Prozessor zugreifen
kann. Siehe auch —►Global Memory.
L ite r a tu r
Wer sich näher mit diesem Thema.befassen will, dem sei hier etwas Literatur emp­
fohlen.
Von Seiten der Hardware werden die modernen Rechnerarchitekturen in (GilSlJ be­
leuchtet.'Das Büch* ist 10 Jahre alt und dementsprechend sind einige der vorge­
stellten Rechner längst in der Rumpelkammer verschwunden. Trotzdem sind die
grundlegenden Konzepte weiterhin gültig. Ich habe mich hier weitgehend an dieses
Buch gehalten.
Bei den Einführungen in Betriebssysteme finden sich viele Bücher, die dieses Thema
behandeln, allerdings auf einer sehr allgemeinen Ebene. Konkrete Implementierun­
gen werden zumeist im Bereich von UNIX beschrieben, z. B. [eaj.
Den theoretischen Hintergrund beleuchten Jessen und Valk in [JV87]. Sie entwickeln
Modelle, mit denen Rechensysteme (Hardware und Software) beschrieben werden ;
können, z. B. Petri-Netze. Außerdem werden Probleme und Lösungen in diesem Be- I
reich besprochen, z. B. die Synchronisation von Prozessen oder Bedienstrategien, !
d. h. wie quasi-parallele Prozesse auf einem System (mit einem oder mehreren Pro­
zessoren) abgearbeitet werden können. Das Buch kann ich nur Leuten mit soliden
mathematischen Kenntnissen empfehlen.
Wer lieber alles zu den den klassischen Themen der Informatik aus einer Hand haben
möchte, dem sei A. S. Tanenbaum empfohlen. In [Tan87] bzw. [Tan90a] befaßt er !
sich mit Betriebssystemen, sowohl allgemein als auch mit einer konkreten Implemen­
tierung (MINIX, ein UNIX-Clone, Quelltexte in C werden mitgeliefert). [Tan90b]
beschreibt die Hardware von Rechnern näher, setzt aber auf einer tieferen Ebene
an als das oben angeführte Buch von Giloi. [Tan88] widmet sich der Verbindung
zwischen Rechnern auf den verschiedenen Ebenen. Neben MINIX hat Tanenbaum
auch noch an einem verteilten Betriebssystem namens AMOEBA mitgearbeitet, zu
dem meines Wissens leider bisher nur Arbeitsberichte erschienen sind.
Mit einer Empfehlung für besondere Zeitschriften kann ich nicht dienen. In fast je­
der Zeitschrift findet sich etwas zu dem Thema. Einiges wird z. B. in dem Artikel
j [BR91] angesprochen, der auch zeigt, daß dieses Thema noch aktueller Forschungs-
igegenständ ist.
L ite r a tu r
[BR91]
T. Bemmerl und B. Ries. Obenliegend. Integrierter Einsatz von Parallelrechnem an der TU München. iX, 1991 (7):74-79, Juli 1991.
[ea]
S. J. Leffler et al. The Design and Implementation of the 4.3 BSD UNIX
Operating System.
W en.
[GU81]
W. K. Giloi. Rechnerarchitektur. Springer, 1981. 380 Seiten.
[JV87]
E. Jessen und R. Valk. Rechensysteme — Grundlagen der Modellbildung.
Springer, 1987. 560 Seiten.
[Tan87]
A. S. Tanenbaum. Operating Systems — Design and Implementation, 3rd
Ed. Prentice Hall, 1987. 719 Seiten.
[Tan88]
A~. S. Tanenbaum. Computer Networks, 2nd Ed. Prentice Hall, 1988. 658*
Seiten.
[Tan90a] A. S. Tanenbaum. Betriebssysteme — Entwurf und Realisierung (2
Bände). Hanser, 1990. 322 bzw. 268 Seiten.
[Tan90b] A. S. Tanenbaum. Structured Computer Organization, 3rd Ed. Prentice
Hall, 1990. 587 Seiten.
| Club 80
I INFO 36
Jan. 92
Seite
45
© Enküebcnrvmr
Club 80
INFO 36
Jan. 92
Seite
46
Club 80 |
INFO 36
Jan. 92
Seite
47
X T
—
E x t r a
v i e l
T r o u b l e
Anfang 1990 hatte ich mich in die Idee verrannt, einen PC200 der
Fa. "Sir Sinclair" mit einer Festplatte auszurüsten. Ein einige
Zeit zuvor gelesener Testbericht über XT*s (der PC200 war eben­
falls getestet worden und bekam eine akzeptable Kompatibilität
bescheinigt) unterstützte mich in der Ansicht, daß das Unterfangen
durchführbar sei. Also wurde beschlossen, eine 20MB-Platte nebst
STllM-Controller zu beschaffen und beides in der Kiste zu instal­
lieren .
Das Wörtchen "akzeptabel" hätte mich hellhörig machen sollen, denn
was mit dem Kauf der Platte an Ereignissen losgetreten wurde,
reicht aus, um einem den Spaß an der Computerei zu verderben. Da
eine Stromversorgung der Platte aus dem Rechner nicht möglich war,
mußte ein VERO-Schaltnetzteil herhalten (klappt übrigens prima).
Nach Einsetzen der Karte, Anstöpseln der Stromversorgung und An­
bringen aller Kabel konnte es losgehen. Rechner einschalten,
Platte auf Drehzahl hochlaufen lassen und auf gehts in schnelle
HD-Vergnügen ... Doch back to the roots 1 Ohne Formatierung geht’s
nicht. Das Bios ist so schlau und läßt mir keine andere Wahl. Ge­
macht, getan l
Ab hier wird die Sache nun skuril. Mit Abschluß der sogenannten
Low-Level-Formatierung verabschiedet sich das ganze Vergnügen mit
der Meldung "Error: Faulty Memory (Parity-Error)". Von diesem
letzten Statement ist die Kiste dann auch nicht mehr abzubringen.
Jeder Power-On stoppt an dieser Stelle. Man ist ja Kummer gewohnt
und hat gelernt, mit diesen Dingen zu leben.
Das nächste zu erreichende "Opfer" ist der Händler, der mir die
Hardware verkauft hat. Auf mein Drängen hin erhalte ich von ihm
die Platte für die sofortige Benutzung formatiert, partitioniert
und mit dem DOS zum booten beschrieben. Erster Gedanke zu Hause
vor dem Rechner: Jetzt muß ja alles bis zu DOS-Prompt in einem
Rutsch laufen. Also Kontroller einstöpseln, Platten & Stromver­
sorgung anschließen und alles einschalten. Der Selbsttest des
Rechners läuft an und währenddessen leiert die Platte hoch. Die
BIOS-Meldung kommt und ... "Error: Faulty Memory (Parity-Error)".
Mittlerweile dämmert es mir, daß das Problem wohl größeren Kali­
bers ist, denn ziehe ich das Kabel mit den Steuersignalen ab die Platte wird dann nicht gefunden - läuft alles sauber durch. Es
haf den Anschein, als wenn der Rechner mit der Karte so recht
nicht will.
Club 80 j
INFO 36
Jan. 92 !
I
? ? ?
PC-Hardware laufen. Möglicherweise liegt ein Fehler im Netzteil
vor (da die Platte extern versorgt wird, ist die Richtigkeit die­
ser Diagnose fraglich). Ich sollte mich an die deutsche AMSTARDVertretung zwecks Unterstützung wenden. Freundlicherweise liefert
man im Antwortschreiben auch gleich die Anschrift und Telefonnummer mit. Ein entsprechendes Telefonat beschert mir eine reichlich
niederschmetternde Antwort: Da der Rechner hier in Deutschland
nicht verkauft wurde, könne man auch keinen Support gewähren, im
übrigen hätte man auch keine Serviceunterlagen zur Hand und könne
schon aus diesem Grunde nicht helfen (Gott sei Dank ist der Kunde
König, nur in dieser Sache scheinbar ohne Amt und Würden i). Als
Trostpflaster erhalte ich eine neue Nummer, wo mir angeblich wei­
tergeholfen werden kann.
Seite
, 4 0
|
Bis heute ist es mir nur gelungen herauszubekommen, daß sich hin­
ter dieser Nummer ein Techniker verbirgt, der solche Kisten wohl
schon einmal repariert hat. Nur konnte ich ihn bis heute nicht an
den Apparat bekommen.
Solchermaßen gesteßt, wurde das Problem mittlerweile recht elegant
gelöst: bei HW-Elektronik in Hamburg habe ich mir alle Teile für
einen 386SX gekauft und der XT zur Verschrottung freigeben.
Tschüß
OLa
Zu denken gibt nur, daß mir der Händler beide Teile in einem AT
einwandfrei funktionierend vorgeführt hat. Der Gedanke ist also
naheliegend, daß meinem XT nicht so kompatibel wie notwendig ist.
Um das abtesten zu können, verabrede ich kurzerhand ein Treffen
mit Helmut Bernhard, er besitzt ebenfalls einen XT. Bei ihm ein­
gesteckt läuft alles so wie es soll. Ein vorübergehend ausgelie­
hener
WD1006-Kontroller
offenbart
eine
neue
Fehlermeldung
"...controller malfunction..." An ein ordnungsgemäßes Booten des
Rechner ist nicht zu denken. Da nun insgesamt zwei Karten in mei­
nem Unikum den Dienst verweigern, sehe ich mich zu einem Brief an
den Hersteller genötigt. Da der in England seinen Sitz hat rade­
breche ich mein Problem in "bestem" Englisch zu Papier und schicke
alles auf die Reise. Nach drei Wochen kommt dann endlich die Ant-*.
wort: Man könne sich meine Schwierigkeiten nicht erklären, der
Rechner sei vollkommen "kompatibel", müsse also mit der übliche
© Heinz Langer
*
i FV:
| K J:
J a , w a t m e tn te n S tc doch?
’ P n o p o A t lo n a lt c h n ilt t t t , w enn . ..* - - ja wenn je d e n S a c h tta b e nun
t o v t e t P ta tz - (a c h G o tt, t c h la ß e t H e b e n ; h a t w o h t kenn en Zweck)
Sehen S te h te n tm A a td n a c k d en U n te n tc h te d z w ttc h e n den S n e lte d e t
t und d e t w ?
j F V : ? ? ? ???
—
K & JjO U S .
-n.U jl T -k : J . J i c : h k e SKJ:t -Na tc h ö n . Dann ta g e n S te n u n b t t t e : V n a c h t den h te n aach ku rs iv ?
S£2J^&O
FV : ??
KJ ( tc h g tajnb e, t c h maß ta u t e n tp n e c h e n ) Ic h m e tn e : S c h n e tb t den aach
Es wäre übertrieben, nachfolgenden Einakter als "Drama” zu bezeichnen.
Ita lic s ?
Aber ein Lustspiel ist es eigentlich auch nicht. Höchstens für den Außenstehenden,
FV: ? ? ?
den betroffenen Akteur hätte es eine Tragödie sein können» aber der ist solchen
K J: U U tte n S te , d o t t t t S c h rä g sc h rift .
Kummer" gewohnt.
FV: 0 ja, d o t t a t en! Aben e t t t t doch b e tte n , wenn den 0Aachen genade
Nennen wir es : einen traurigen (nicht tragischen) Sketch...
t t e h t . E in e k t e t n e W a tte nw aag e bekommen S te aach t n untenem H a u te .
K J: D a n k e t chön! D ie habe t c h za H a u te . Ic h t t e t t e th n a lt o mgenadem.
£>rt der Handlung: Mannheim. Ein bekannter Supermarkt für elektronische
Erzeugnisse: Nicht nur Computer» sondern auch Videogeräte» Fernseher»
Radios» Kameras und und... Also lauter so'n technischer Kleinkram.
S,gjt der
An der Schwelle des dritten Jahrtausend. Also weder
in der Vergangenheit noch in der Zukunft. Nüchterne, unbarmherzige Ge­
genwart. Genauer gesagt: Mittagsstunde.
iLÜtoenfrilfl:
Riesenraum. Halb gedämpftes, weißliches Licht (kein Tages­
licht, trotz Mittagsstunde). Viele Warengondeln, auf denen sich hochin­
teressante Technik im Kleinen türmt. Dazwischen Leute - Leute teils
mit suchenden Blicken, teils mit ernstem Blicke prüfend, teils gedan­
kenvoll, teils -leer. Durchschnittsalter zwischen 10 bis 40, dazwischen
Kinder (unter 10) und Greise (über 40). überwiegend männlichen Ge ­
schlechts - ausgenommen bei den Fernsehern. Akustisch überwiegt Stille,
gelegentlich durchdrungen von plötzlichen Schreien aus einer Ecke. Es
ist die Ecke der CD-Player. Die Stimme hat KJ schon öfter (aus Ve r ­
sehen) gehört; nur kann er nie entscheiden, ob es Bryan Adams oder Adam
Bryans ist. (Der Leser kennt sich da besser aus.)
Egrsonen der Handlung:
1. Der Fachverkäufer in der Drucker-Abteilung
(hier kurz "FV", sprich "EFF-AU!", genannt) ;
2. Der Kunde (hier kurz K.-J., sprich "KAJOT", genannt).
KAJOT, seit einem Jahrzehnt fast stolzer Besitzer eines EPSON RX80 F/T,
also "nur Neunnadeldruckers", interessiert sich für einen möglichst E P ­
SON-, auf jeden Fall aber IBM-kompatiblen Drucker mit 15 Nadeln mehr.
(Wer mehr hat, is<s>t mehr!)
Vorhang auf!
G ate n T a g ! G e s ta tte n , tc h möchte, e in e n 2 4 -N a d e ld n a c k e n !
F V : Seim w o h l, m etn Henn! UUn haben da je d e Menge.!
KJ:
(Was schon schlechter ist. Anm. der Regie.)
FV (zeigt auf einen PANASONIC): W at h a tte n S ie z.B. von.
tm S ond e nang eb o t!
K J : W at t o l l tc h davon, h a tte n ? S i t t e , h a tte n
KJ:
FV:
K J:
Club 80
INFO 36
Jan. 92
Seite
49
S ie
d le te m h te n ? Den t t t
m a t m e in e Tasche..
(KJ kramt darin herum und holt schließlich einen Fragebogen heraus,
den er sich zuhause zusammengestellt hat.)
V i e l l e i c h t h a tte , t c h v t e t d a v o n , u>enn en a a c h P n o p o A t t o n a lt c h n t it
kann!
? ? ?
Ic h m e in e : "P n o p n o - ä h - P o p o - n a t zum G aggach, S te m achen m tch
ganz u m g e h e n m tt Ih n e n U n ttc h e n h e lt! Ic h m e in e :
P n o p o n t l o n a l- - und dann hom m t - t c h n i l t !
FV: ? ? ? ?
K J : Ja a l t o , d a t t t t 4o: man d e n k t, / eden S a c h tta b e t e l g le ic h b n e lt .
I t aba n tc h . I t t d ann en aJLt 0 FV { u n te n b n tc h t m tt te ja c h te n d e n An g e n ): A ja , n a k ta n : I h e t ß t IN - and 0
h e iß t OUTPUT. J a ja , e tn e n O u tp u t h a t en. S ehen S ie m a t ...
(jetzt läßt FV doch tatsächlich eine ganze Seite ausdrucken, nachdem er elegant
umständlich einen Bogen DIN A4 eingefädelt hat - was für KJ schon mal sehr
wichtig ist, weil das beim EPSON glatter und somit schneller geht)
("Vielleicht läuft sonst die Tinte aus..." denkt Kajot)
?
K J: Nun g u t. Den ÜAacken tc h e h n t t n h e n e t t a n t . S e to n d e n t vom P n e lt h en .
ü)at h o t t e t en doch nochm at?
FV ( b e l l i t t e n ) : hmhmhm Emmchen. V e a ttc h e , v e n t t e h t t t c h .
K J: Sooo? I n Ihnem P n o s p e k t t t e h t ab en n un hmhm Emmchen. (V e a ttc h e ,
v e n tte h t t tc h . )
F J : Na ja , wenn S te t h n k a u fe n , bekommen S te th n aach iü n hmhm Emmchen.
K J: Ach to ? Und w a t maß tc h b e z a h le n , wenn t c h th n n tc h t kaa^ e??
FV : ??
P AUS E
FV:
(Beide erholen sich. Kajot guckt in den Prospekt, der neben dem Drucker liegt. Ihm
gehen einige Lichter auf. * * * Nach gebührender Warteschleife:)
K J: Nun e in e L e t z t e , n e in , L ie b e n e in e o L L e n te tz te FAage:
Im P A .o tp e kt t t e h t n t c h t , ob den Ü Aacken aach e tn e n D o w n lo a d -S p e lchen b e t i t z t . D at w it t e n S te doch b e tttm m t!?
0 G o tt - S te t ih d j a p L ö tz ltc h t o bL e tc h ! I t t Ih n e n tc h L e c h t? SoLL
tc h e tn e n K oLLegen ao 4 en?
(Hier zieht der FV — sprich "Fachverkäufer" - kurz vor dem Zusammenbruch plötzlich
ein kleines Ding aus der Rocktasche — KJ springt blitzschnell zur Seite, denn er
kennt die rachsüchtige Unberechenbarkeit "technischer Kaufleute" und will Leben und
Gesundheit noch etwas für seine Familie erhalten---da spricht FV in das Ding leise
hinein:
FV: O tto ! O tto b t t t e za Nammen 7a!
FV Otto kommt nach einigen bangen Minuten und wiederholter drahtloser Aufforderung.
KJ erblaßt vor soviel funktechnischer Sach- und Fachkenntnis und flüstert nur noch:
K J: G uten Tag Henn O tto ! S i t t e geben S te m in d te te n PANASONIC. Aben
n t c h t d te te n , to n d e n n O A tg in a t- v en p a c k t, b t t t e !
O tto : Z a h le n S te ban öden m tt S check? Oden H e d e n a u t P aten ?
K J:
Ja w a t k o t t e t den denn a b e n h a a p t?
O tto : M e in H enn, d a t t t t e tn S o n d e n a n g e b o t. Den k o t t e t h e u te nun DM hm!
K J:
S o t o ; v o n h in h ä t t e t c h j> a tt hmhm b e z a h lt!
A lt o g u t. P acken S te e tn . In z w is c h e n gehe tc h z a h le n .
O tto : ?
K J:
J a j a - A ja tlo t - - I c h m e in te : A a t e n lo t . . . i n "V&HMAPK"!
Und v e n g e tte n S ie d ie G e b A jzu c h sa n le ktu n g n t c h t , b it t e !
Otto
geht ab. -
Gekauft.
(Heißt soviel wie:
" E
N
D
E " )
Otto heißt Otto. Das versteh' ich. Weil man's auch von hinten lesen kann.
Was FV heißt, weiß ich aber nicht. Vielleicht: "Fröhlicher Vunker" ? ?
| Club 80
INFO 36
Jan. 92
PSL Die Gebrauchsanleitung war wirklich drin! Ich bin sooo froh... Denn:
Ein Fachverkäufer ist versiert,
d rum kaufe blind, was er serviert!
■'
fc******************^
Seile
50
Public Domain Software
Club 80 !
INFO 36 ;
Jan. 92 ; Hier ist natürlich CP/M als Betriebssystem gemeint und auch das
51
wörtliche Übersetzung ist hier wohl nicht ganz, korrekt»
Im Jahr 1985/86 veröffentlichte Ted
Einige Leute verbringen ihre Zeit am liebsten mit dem Schreiben
Silveira in "Computer Currents, 2550 9th Street Berkley, CA" eine
von Programmen. Nicht weil sie dadurch Millionär werden wollen,
Serie von Artikeln.
sondern aus Spaß am konstruktiven Denken
Thema ist nicht gerade neu.
Seite
Club 80
INFO 36;
Jan. 92
nisse überarbeitet
Diese Artikel
habe ich für unsere Verhält­
, beziehungsweise
als Vorbild genommen.
originalen Texte sind bei mir zu erhalten,
falls
Die
jemand daran
, weil
sie in die
Technik vernarrt sind oder eben jeder so seine kleinen Hobbies
pflegt.
interessiert sein sollte. Eigentlich gab das Lesen der Texte von
Wenn nun die- Arbeit der "Programmierer** beendet ist werden die
Ted Silveira den Anstoß für die mich. Heist nimmt man sein
eigenes Wissen und die persönliche Erfahrung als s e l b s t ­
die
Programme der "Öffentlichkeit" anvertraut. Das heißt, jeder kann
Programme
kostenlos
bekommen
und
keine
Lizenzbestimmungen
viele einfach nicht so gut mit der Fremdsprache Englisch zurecht-
müssen unterzeichnet werden. Man kann die Programme kopieren,
ändern, weitergeben ,also machen was man möchte. Damit aber
kommen. Da ich auch
ÜSA
keiner sich mit fremden Federn schmückt haben einige Autoren dies
erhalten habe und vor obigem Problem stand habe ich viele PDProgramme geteste bzw. jetzt im Gebrauch. Natürlich ist der
Einsatz meiner 68 HB Festplatte hier von Vorteil und vereinfacht
nur unter Beibehalt ihres Copyrechtes gestattet, wie zum Beispiel
verständlich hin vergisst aber, daß es oft Neueinsteiger gibt und
eine Menge
an
PD-Software
aus
den
die Handhabung sehr.
Die Texte von Ted Silveira- sind copyrighted und ich habe hier
bei MEX oder den Programmen zum ZCPR. Im allgemeinen sollte der
Urheber der Programme sowieso immer erwähnt werden.
Ich bleibe mal bei dem Kürzel PD für Public Domain Programme.
nicht die Texte übersetzt, diese wären dann doch nicht gerade
zeitgerecht, sondern angeregt dadurch einige Artikel verfaßt,
Viele PD-Programme sind nützliche Hilfen und ich möchte einige
welche in den nächsten INFO's erscheinen.
Heine Artikel orientieren sich aber an der Vorlage und Beschrei­
aber die meisten sind für den normalen Anwender.
nicht missen* Einige Programme sind nur etwas für Programmierer,
XDIR
bungen von Programmen sind natürlich ähnlich»
zum Beispiel
listet
das
Direktorie
alphabetisch
sortiert, zeigt die Dateilängen und den freien Platz auf der
Vor" zwei Jahren kaufte ich ein Modem und hatte im Nahbereich eine
Mailbor mit CP/M PD-Software. Natürlich stiegen meine Gebühren um
Diskette an.
BAD oder FINDBAD testet die Diskette und/oder Festplatte auf
das 5fache und oft war das empfangene Programm nicht die Zeit
Fehler,
wert.
Die Qualitäten der Programme sind sehr verschieden und wenn ihr
welche diese Sektoren belegt, damit nicht darauf zugegriffen
wird. NSWEEP, eines meiner Favoriten, kopiert, listet, druckt und
etwas Einblick, in die MSDOS - PCSIG habt
vereinfacht das Kopieren enorm.
(10000 PD-Progamme),
zeigt die defekten Sektoren an und erstellt eine Datei
könnt ihr euch den Aufwandt, ein geeignetes Programm für den
Wenn auch die Hilfsprogramme den überwiegenden Teil der PD aus­
eigenen Bedarf zu finden, vorstellen.
Aber der Mensch ( ich auch) ist natürlich neugierig
machen,
und so
verbrachte ich oft Stunden vor dem Monitor und einigen Kisten mit
so gibt es Programme
für fast alle Bereiche.
Für
Datenübertragung, Anwenderprogramme für Datenbanken, Textpro­
gramme , Erweiterungen zum CP/M (mein Lieblingsthema) und und
und...
Ich ersp a r e m i r hi e r ein paar Seiten und möchte eine oft
PD 7 Software.
gestellte Frage aufgreifen.
Was ist Public Domain Software ?
Wie gut ist Public Domain Software T
Public Domain heißt aut deutsch öffentlicher Bereich, aber eine
Sicher wollen viele- das wissen und PD-Programme können sehr gut
sein, aber die meisten sind eben doch nur
'Eigenbau* , was aber
Seite
52
bitte nicht abwertend aufgefaßt werden soll.
ZNODE wird die Mailbox genannt
Die meisten Programme sind älter und CP/M oder auch NEWDOS sind
einem Z-80 Rechner nur mit den Utilities der CP/M Erweiterung
NZCON oder ZCPR läuft und es halt meist um den Z80 geht.
Hierzu aber später mehr.
halt in den Anfängen der Computertechnik entstanden. Aber wer
kann ermessen, mit welcher Preude ich meinen Genie einschalte
oder mit dem MORROW die diversen DFÜ-Programme ausprobiere ?
, weil
die Mailboxsoftware auf
Letztendlich haben auch so manche PD-Programme die Richtung der
An PD-Software gibt es die Software der ursprünglichen USER-
Softwareentwicklung bestimmt (nicht nur unter CP/M) .
Groups , wie CP/M-UG, SIGM, PICONET und die deutsche Osborne
Hierzu gehören zum Beispiel MDM7 , HEX , ZMP , im DFÜ-Bereich,
NSWEEP oder NULU bei den Utilities und so großartige Sachen wie
Richard Conn's ZCPR , oder die- Autoinstal 1Versionen NZCOM und
Z3PLÜS um nur einige zu nennen.
User-Group, um nur einige zu nennen. Diese Gruppen haben sich im
allgemeinen aufgelöst , oder sind zu moderneren Betriebssystemen
gewechselt. Hierdurch entsteht oft das Problem, einen bestehenden
alten Rechner in Gang zu bekommen, wenn keiner mehr weiss wie.
Ich könnte euch da einige längere Geschichten von meinen Sammel-
Alle PD-Programme haben aber eins gemeinsam, wenn es nicht
stücken erzählen und konnte so manchem mit Hilfe der Clubkollegen
zur Seite stehen.
klappt und die Arbeit der letzten Stunden verloren sind ist man
alleine und fast immer auf sich selber angewiesen. Man kann
Freunde fragen oder in Mailboxen um Hilfe bitten, aber es gibt
Die Softwarelisten der User-Groups und neuer Software aus den USA
sind bei mir , oder unseren Archivaren zu erhalten und es wird
keine Unterstützung und keine Hotline wie oft bei kommerziellen
wohl kaum ein nicht lesbares Diskettenformat für uns geben.
Produkten. Leider ist der Konkurenzkampf heute so groß, daß der
In den nächsten Ausgaben des Club-Infos
Endanwender oft als Beta-Tester herhalten muß und dann ist es mit
Software vorstellen und zum Teil näher darauf eingehen. Da ich
der Unterstützung durch den Softwareentwickler eh nicht weit her.
neben meinem MSDOS-Rechner fast nur mit CP/M arbeite sind die
NEWDOS und GD08-User hier leider etwas benachteiligt.
!.
-r
-r#
werde ich gute PD-
Wie bekommt man PUBLIC DOMAIN SOFTWARE 7
|
)■
Y
->/
; Deshalb !
•
\
»
j Wer mit NEWDOS und/oder GDOS arbeitet möchte
dem
Club
*
Hardware
»
Einer der einfachsten und angenehmsten Arten, PD-Software zu
erhalten ist,, dies über Mail boxen zu machen. Leider haben viele-
»
von Euch kein Modem und selten gibt es Mailboxen,
J mitteilen. Es gibt, noch viele von uns, welche sich sehr
'
;
;
;
»
Software , wie ich die für Newdos
möchte, auf der Festplatte haben.
welche alte
und CP/M hier bezeichnen
doch
bitte seine Erfahrung mit der Soft- und
aktiv mit diesen Rechnern befassen, unter
Steuerungszwecken oder als Wetterstation.
anderem
zu
Man darf hier nicht vergessen, daß alte Rechner unser Hobby sind,
und diese sind halt nicht mehr Up-To-Date.
Also
erhaltet
einen User-Club,
Ihr die gewünschte PD-Software
durch Anfrage bei unseren
sinnten.
über
Soft-Archivaren,
,am besten
Genau ! IHR seid gemeint und nun trau EUCH mal zu schreiben.
oder von Gleichge­
Es gibt durchaus einige Clubs ähnlich wie unser , deren, Adressen
werde ich aber erst im nächsten Info bringen.
Und was schreib ICH im nächsten INFO ?
Club 80
I Ich selber installiere gerade eine ZNODE auf einem ALTOS 580
Natürlich werde ich über DFÜ und die dazu nötigen Programme
schreiben, vor allem da ich mich wegen der ZNODE gerade damit
beschäftige.
INFO 36
Jan. 92
IRechner. Diese ZNODE wird als DEMO-Rechner bei mir ab Mitte
Wie heißt es so schön
Seite
53
Februar laufen. Der Rechner wurde- mir von Herrn Helmut Jungkunr
freundlicherweise zur Verfügung gestellt und so können sich
Interessenten am Z-System selber ein Bild machen.
Denke Helmut!
WER SCHREIBT - DER BLEIBT,
allerdings in einem, anderen Zusammenhang; aber
auch hier stimmen.
Club 80
INFO 36
Jan. 92
es könnte ja
Seite
wm
C4
Club 80
Impressum
| IN FO 36 j
Jan. 92
Seite
;
j
.
1
Tel.:02464/8920
Hallo Club 80’er,
Aldenhoven
Tel.:041 05/2602
2105
Am Schützenpiatz 14
den
Seevetal 1
vorübergegangen. Den an dem
Club-INFO mitwirkenden
Kameraden möchte ich meinen
aussprechen.
Dank für die
Andreas Magnus
Hardewarekoordinator
Tel.:0209/870230
Seite
wieder einmal haltet Ihr Euer neues Club-INFO in
Gerald Schröder
2. Vorsitzender
Händen, und wieder einmal ist ein Jahreswechsel
Mitarbeit
Bismarckstraße 29
4650
Gleichzeitig auch -im Nachhinein noch- meine allerbesten
Gelsenkirchen
Wünsche für das jetzt begonnene Jahr an alle Club-Mitglieder.
Newdos-Diskothekar
Tel.:07 11/73538 17
7000
Tel.:061 31/320860
Hoffen wir, daß es im neuen Jahr mindestens so gut
weitergeht wie im vergangenen Jahr.
Stuttaart 80
Thomas-Mann-Straße 3a
6500
i
Oliver Volz
Waldenburgstraße 73
Rüdiger Sörensen
CP/M-Diskothekar
I
INFO 36
Jan. 92
Saarstraße 34
5173
1
Schluß
Fritz Chwolka
1. Vorsitzender
55
( Club 80
Mainz 1
Zum Abschluß dieses INFO’s habe ich noch zwei Dinge, die
mir am Herzen liegen:
Bitte sendet mir Euere Paper-Ware Artikel auf weißem Papier
Clubbücherei
Tel.:041 52/70643
2054
Redaktion
Tel.:0791/42877
7178
Kurt Müller
unter Verwendung eines frischen Farbbandes. Es ist für die
Sophie-Scholl-Ring 3b
Erstellung des INFO‘s wichtig, kontrastreiche Vorlagen zu
haben.
Geesthacht
Jens Neueder
Als Zweites, würde ich mich freuen, wenn sich eine BASIC-
Rudolf-Then Straße 32
Anwender-Gruppe hier im Club finden würde. BASIC ist ja als
Gschlachtenbretzinoen
Programmiersprache ein verbindendes Objekt zwischen all
unseren Computern. Ich arbeite derzeit mit Ouick-Basic 4.5
Autoren__________ Die Redaktion bedankt sich bei den im
,
INHALTSVERZEICHNIS genannten Autoren
und PDS 7.1 als BASIC-Dialekte und bekenne mich als BASICProgrammierer. Gibt es noch Gleichgesinnte?
für die Mitarbeit an der Club-INFO.
Bankverbindung des
CLUB 80
Viel Spaß-
Postgirokonto Sonderkonto CLUB 80
Obermann H. 8870 Günzburg
Konto Nr. 496 071-605
Postgiroamt Frankfurt
BLZ 500 100 60
Eine Zensur oder Kontrolle der INFO-Beiträge erfolgt nicht.
Die Redaktion.
bis zum nächsten mal
A d r e s s e n -L is te
C L U B 80
Stand vom
Nachname
Vorname
Behrendt
Detlef
Benner
Achim
Berndt
Wolfgang
Berndt-Jochum
Ilse
Bernhardt
Helmut
Heinrich
Betz
Jörg
Brans
Braun
Harald
Böckling
Ulrich
Chwolka
Fritz
Volker
Dose
Oskar
Drechsler
Thomas
Gill
Günther
Jens
Haigasch
Gert
Hans-Günther
Hartmann
Hebecker
Ulrich
Manfred
Held
Hermann
Klaus
Manfred
Hürdler
Johnen
W1111
Dietmar
Kauka
Kemmer
Jürgen
Kostya
Mary Jo
Eckehard
Kuhn
Littmann
Claus
Walter
Lorenz
Magnus
Andreas
Mahlert
Herbert
Mand
Harald
Menk
Christian
Müller
Kurt
Franz
Mössel
Neebe
Gerhard
Neueder
Jens
Christof
Neumann
Stefan
Nitschke
Hartmut
Obermann
Jürgen
Peters
Hermann
Reit
Bernd
Retz1aff
Michael
Riechmann
Gerd
Rinio
Claus
Ruschinski
Werner
Schilling
Jörg
Schimmer
Alexander
Schmid
Rainer
Schmitz
Frank-Michael
Schober
Uwe
Schoberth
Horst-Dieter
Schroers
Gerald
Schröder
Peter
Schröder
Egbert
Schröer
Hartmut
Schulte
Andre
Schut
Wolfgang
Schwarz
Seelmann-Eggebert Jörg
Svend A.
Soerensen
Stefan
Stumpferl
Rüdiger
Sörensen
Wilhelm
Tornow
Richart
Vollkmer
Oliver
Volz
Heiko
Werner
Heinz
Wittkamp
Hans-Otto
Wulf
Straße
Schlosserbreite la
Vorm Mühlberg 1
Friedberger Straße 92c
Stachelsgut 24
Hafenstraße 7
St. Wolfgangstraße 13
Tieloh 55
Postfach 8011
Jochaczstraße 61
Saarstraße 34
Dorfstraße 10
Duckterather Busch 2
Maria-E1ch-Str. 34
Bannerscheid 7
Großschonauer Straße 26
Möwenstraße 9
Büsumerstraße 15
Stirner Straße 22
Forchenstraße 8
Niederhofer Straße 29
Hansemannstraße 1
Straße des Friedens 37
Dorfberg 7
Balberstraße 68
Im Dorf 14
Plockhorst, Zum Spring 15
Mahräckerstraße 9
Bismarckstraße 29
Hohenbudbergerstraße 112 A
Kl. Flintbeker Straße 7
Ollsener Straße 52
Sophie-Scholl-Ring 3b
Schafferstraße 12
Märkische Straße 186
Rudolf-Then-Straße 32
Zeitblomstraße 22/2
Germanenstraße 5
Mozartring 23
Heukoppel 14
Vechter Hof 40
Kleiner Sand 98
Letelner Heideweg 12
Rennbahnstraße 9
Pommernstraße 21
Ehndorfer Straße 340
Castellring 55
St. Cajetan Straße 38/VII
Dornierstraße 17
Weberweg 2
Petrus-Waldus-Straße 14
Breslauer Straße 9
Am Schützenplatz 14
Theodor-Fahr-Straße 32
Joachimstraße 18
Entenschnabel 8
Sanderstraße 26
Schwedenring 6
Henri-Spaak-Straße 96
Bogholder Allee 76A
Hasenberglstraße 57
Thomas-Mann-Straße 3a
Görlitzer Straße 16
Am Spörkel 69
Waldenburgstraße 73
Reichenberger Straße 5
Hindenburgstraße 37
Im Brahmkamp 38
PLZ
WWWWWWWWWWW-
8018
5910
6360
5060
2305
8551
2000
2300
5410
5173
2304
w- 5060
w- 8000
w- 5231
0- 8805
w- 2876
w- 7000
w- 8835
w- 7401
w- 8709
w- 5160
A- 7201
w- 8701
CH- 8038
W- 7443
W- 3155
W- 6000
W- 4650
W- 4100
w- 2302
w- 2116
w- 2054
I- 39012
w- 4600
w- 7178
w- 7910
w- 7519
w- 8870
w- 2000
w- 4500
w- 2082
w- 4950
w- 2000
w- 4370
w- 2350
w- 6369
w- 8000
w- 7320
0- 7590
w- 7136
w- 8016
w- 2105
w- 2000
w- 4270
w- 3162
w- 1000
w- 8850
w- 5305
DK-■ 2720
w- 8000
w- 6500
w- 2190
w- 4600
w- 7000
0- 8032
w- 5630
w- 4250
Ort
Grafing
Kreuztal 3
Friedberg 2
Bergisch-Gladbach 1
Heikendorf
Hausen
Hamburg 60
Kiel 17
Hör-Grenzhausen
Aldenhoven
Brodersdorf
Berg1sch Gladbach 2
München 60
Neitersen
Jonsdorf
Berne 2
Stuttgart
Pleinfeld
Pliezhausen
Rlmper
Düren
Neukirchen
Sulzdorf
Zürich
Frickenhausen
Edemissen
Frankfurt /Main 50
Gelsenkirchen
Duisburg
FUntbek /Kiel
Hanstedt
Geesthacht
Meran
Dortmund 1
Gsch1achtenbretz ingen
Ulm
Walzbachtal 1
Günzburg
Hamburg 14
Osnabrück
Uetersen
Minden
Hamburg 74
Marl
Neumünster
Nidderau 1
München 80
Göppingen
Spremberg
Oetisheim
Feldkirchen
Seevetal 1
Hamburg 62
Dorsten 1
Uetze
Be'rlin 44
Donauwörth
Alfter 4
Vanloese
München 45
Mainz 1
Cuxhaven 13
Dortmund 50
Stuttgart 80
Dresden
Remscheid
Bottrop
12-02-1992
Seite 1
Telefon
privat
08092 / 9173
02732 /
3780
06031 /
2963
02204 / 65254
0431 / 241907
09191 / 31698
040
/6906531
0264
02464
04343
02202
089
02681
/ 4861
/ 8920
/
1357
/ 55282
/8349527
/
1553
04406 /
6911
0711 / 734800
09144 /
6563
07127 / 71945
09365 / 4235
02421 / 501305
0037404/850112
09334 /
1050
00411 /4828948
07022 / 45417
05372 /
7796
069
/ 531656
0209 / 870230
02135 / 47217
04347 /
3629
04184 /
7825
04152 / 70643
■
•
.
■
■
■
■
■
■
>
.
.
■
■
.
■
■
■
■
■
■
■
Telefon
geschäftlich
(ab 18.00Uhr)
0431 / 74047
09191 / 611108
02631 / 895168
0228
/ 128114
0421
/2482419
0911
/2195245
k
.
■ 00411 / 258170
k
.
■
■
■
. 0431 /3013580
.
■ 04151 / 889137
i
/ 416549 ■
/ 42877 . 0791 /44-4722
«
07203 /
452 ■
08221 / 30248 .
040
/6412371 ■
0541 / 16331 ■
04122 / 43551 ■ 04103 / 605310
0231
0791
0571 / 36627
040
/6552630
02365 / 34646
04321 / 61116
06187 / 25503
089
/ 495326
07161 / 22549
0037574/ 4565
07041 /
7254
089
/9032615
04105 / 2602
040
/5311582
02362 / 75840
05173 /
1248
030
/6917861
0906 /
3092
0228 / 643853
089
/3144001
06131 / 320860
04723 /
1355
0711
/7353817
■
.
■
■
■
k
■
■
.
■
■
.
■
*
■
k
■
■
■
.
.
■
■
02191 / 75132 ■
02041 / 688972 ■
0711
089
/2011455
/9032615
02365 / 495183
06131 / 395268
04723 /
3053
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement