Top-Themen:
- Bericht vom 4. Clubtreffen
- PC-Handscanner am KC
- Das Treibersystem von ZAS 1.3
- V.24-Rechnerkopplung mit dem KC
- Einleitung zum Assembler-Programmierkurs
Ein paar Worte zur Einleitung
von Frank Dachselt
Die heutige Ausgabe der KC-News steht noch ganz unter dem Eindruck des 4. KC-Clubtreffen, daß ja nun mittlererweile auch schon wieder über einen Monat zurückliegt. Neben Jörg Linders Bericht von diesem Treffen und dem Kassenbericht von Andreas Ose findet Ihr Beiträge über Dinge, die zum Teil während des Treffen offiziell vorgestellt wurden, zum Teil aber auch nur am Rande zu sehen waren. Diese KC-News sind damit keineswegs uninteressant. Ganz im Gegenteil, ich denke, daß heute mit Sicherheit für jeden KC- User etwas dabeisein wird.
Ein weiteres, recht bemerkenswertes Ereignis ist wahrscheinlich von den meisten KC-Usern unbemerkt vonstatten gegangen. Kurze Zeit nach dem Clubtreffen in Radebeul erschien in der FAZ (Frankfurter Allgemeine Zeitung) auf die Initiative von René Meyer hin ein Artikel über den KC und den KC-Club. René Meyer war Gast auf dem diesjährigen Clubtreffen und ist vielleicht einigen als Autor von Beiträgen im ,,Funkamateur`` bekannt, wo ja der KC in letzter Zeit auch wieder von sich Reden machte. Den FAZ-Artikel möchte ich natürlich keinem vorenthalten; Ihr findet ihn - außer versteckt auf dem Titelbild - im Anhang dieser Ausgabe. Und die Reaktion auf diesen Artikel ließ nicht lange auf sich warten: In der Rubrik ,,Mailbox`` findet Ihr den Beweis, daß wir uns spätestens jetzt auch einer internationalen Bekanntheit erfreuen können.
Allen KC-Usern, die sich schon immer gefragt haben, wie man solch umfangreiche und komplexe Programme wie UNIPIC, WordPro, ML oder gar ganze Betriebssysteme programmiert und denen die Assemblerprogrammierung bisher ein ,,Buch mit sieben Siegeln`` war, kann ich heute eine ganz besondere Beitragsfolge ankündigen. Wir beginnen mit einem Assemblerprogrammierkurs. Neben einer kurzen Einleitung gibt es heute bereits den ersten Teil, der sich insbesondere den Grundlagen widmet. Und da ein solcher Kurs nur dann erfolgsversprechend ist, wenn sich die Teilnehmer aktiv daran beteiligen, möchte ich an dieser Stelle schon mal dazu aufrufen und betonen, daß die Autoren für Fragen, Anregungen und Lösungsvorschläge zu den Übungen jederzeit offen sind. Damit hat das Jahr 1998 also keine Chance, ein Jahr der Langeweile zu werden, zumindest nicht, wenn man einen KC sein Eigen nennt!
Jetzt möchte ich Euch aber nicht länger vom Lesen der KC-News abhalten. Viel Vergnügen wünscht Euch
Euer Redakteur
Frank
Bericht vom 4. Clubtreffen
von Jörg Linder
Unser diesjähriges Clubtreffen vom 17. bis 19. April in Radebeul war zweifellos ein Ereignis der Superlative. Das Motto "20 Jahre CP/M - 10 Jahre KC 85/4 - 5 Jahre KC-Club" weckte hohe Erwartungen, doch diese wurden bei weitem übertroffen. Mit 48 (in Worten: achtundvierzig!!!) Teilnehmern war es das bisher bestbesuchte. Doch nicht nur die Anzahl der Clubmitglieder und Gäste war überdurchschnittlich, sondern auch Umfang sowie Qualität der der Vorträge, Workshops und Hardware-Präsentationen. Daß in diesem Gewühl mitunter die Übersicht verlorenging war wohl nicht zu vermeiden. Mit den Übernachtungen und der Verpflegung hat's dagegen prima geklappt - auf diesem Weg herzlichen Dank an das Herbergsteam.
Schon am Freitag zeichnete sich ab, welche Ausmaße das Treffen letztendlich annehmen sollte. Bei meinem Eintreffen um ca. 14 Uhr glich der uns zur Verfügung stehende Raum bereits einem Bienenstock. Emsig wurden Tische und Stühle gerückt, um anschließend KC-Anlagen darauf zu türmen. Vorsorglich hatte Frank Dachselt genügend Platz für seinen KC reserviert, den wir erst von der Technischen Universität geholt haben, denn diese Aktivitäten hatten sich innerhalb von zwei Stunden vervielfacht und immer mehr Leute kamen hinzu.
Es versteht sich von selbst, daß umgehend ein reger Erfahrungsaustausch und zahlreiche Gespräche einsetzten. Selbst die Runde der Skatspieler, die sich am Abend zum wöchentlichen Spiel mit wechselnder Lautstärke im selben Raum trafen, konnten uns nicht davon abhalten, bis in die Nacht zu diskutieren. Gegen 1 Uhr gingen wir auf unsere Zimmer. Das bedeutete für einige jedoch nur eine örtliche Veränderung mit kleinerer Diskussionsrunde - schließlich waren wir noch frisch und munter!
Allerdings zeigten sich beim Frühstück am Samstagmorgen um 8 Uhr die Auswirkungen dieses Übermutes: Anstelle eines fröhlichen "Guten Morgen" war von den meisten nur ein Brummen zu hören, dessen Klang im entferntesten daran erinnerte. Bereits vor dem Frühstück waren weitere Teilnehmer eingetroffen. Dieser Trend hielt nahezu unvermindert den gesamten Samstag an.
Kurz nach 9 Uhr nahmen wir die "reguläre Arbeit" auf. Zunächst legte Andreas Ose den Kassenbericht vor, der ebenfalls in dieser Ausgabe zu finden ist. Der Bericht wurde von mir (Jörg Linder) geprüft und für i. O. befunden.
Zwar ist vom Guthaben noch ca. ein Jahrgang der KC-News zu bestreiten, aber trotzdem schlug Andreas eine Senkung des Unkostenbeitrages auf etwa 30,00 bis 35,00 DM vor. Dieser Vorschlag wurde jedoch abgelehnt, da wir im nächsten Jahr aufgrund unvorhersehbarer Kostenveränderungen (z. B. Portoerhöhungen) wieder zu einer Erhöhung des Beitrages gezwungen sein könnten. Der Aufwand für die Umstellung erschien uns daher zum jetzigen Zeitpunkt (noch) nicht gerechtfertigt und ein kleines finanzielles Polster kann dem Club sicherlich nicht schaden.
Diese Entscheidung wird vielleicht noch eher nachvollziehbar, wenn man sich den aktuellen Mitgliederstand vor Augen hält. Andreas informierte uns darüber, daß im letzten halben Jahr 23 (!) Neuzugänge zu verzeichnen waren. Somit hat unser Club nun 79 Mitglieder. Diese Zahl dürfte mittlerweile überholt sein, denn auf dem Treffen sind bereits drei weitere hinzugekommen. (Holger Jödicke ist leider immer noch nicht dabei!)
Ein Großteil der Neuzugänge ist auf unsere Präsenz im Internet zurückzuführen. Damit wären wir auch schon beim nächsten Punkt der Tagesordnung. Zusammen mit Frank Dachselt hatte ich die Ehre, die Web-Site unseres Clubs an meinem Apple PowerMacintosh vorzustellen. Für all diejenigen, die beim Treffen nicht dabei sein konnten und auch keinen Internetzugang haben, gibt es in dieser Ausgabe einen Artikel dazu.
Die Gunst der Stunde nutzend - mir kam schließlich die Aufmerksamkeit zuteil - ließ ich alle Teilnehmer zum Gruppenfoto Aufstellung nehmen. Nach dieser kurzen Unterbrechung ging es mit Mario Leubners Vortrag zur neuen ZAS-Speicherverwaltung weiter. Zwar konnte ich mich des Eindruckes nicht erwehren, daß einem Teil der Zuhörer Sinn und Zweck der neuen Speicherverwaltung noch nicht ganz klar ist, aber das wird sich hoffentlich im Laufe der Zeit ändern. Bereits in dieser Ausgabe ist ein weiterer Artikel zu diesem Thema zu finden und mit zunehmender Anzahl von Treibern wird das Verständnis für die Bedeutung der Speicherverwaltung sicherlich wachsen.
Ebenfalls mit großem Interesse wurde die Vorstellung des neuen Projektes von Ralf Kästner verfolgt, zu dem er sich bis zum Treffen sehr bedeckt hielt. Um so größer war die Überraschung, als er uns offenbarte, daß ihm der Anschluß eines Handscanners mit geringem zusätzlichen Hardwareaufwand an den KC gelungen sei. Ralf konnte nicht nur mit (s)einem Prototypen sondern auch mit der dazu passenden Software aufwarten. Beide befinden sich noch im Anfangsstadium; allerdings stehen nach Rücksprache mit unseren Hardware-Spezialisten die Chancen für eine "massenhafte" Verbreitung nicht schlecht.
Wie nicht anders zu erwarten, ließ die ungeteilte Aufmerksamkeit nach dem Mittagessen nach und die Gespräche nahmen zu. Daher wurden die weiteren Workshops zu UNIPIC, SuperCalc und dem Z-System nur noch im kleinen Kreise durchgeführt. Trotzdem oder gerade deshalb waren die Teilnehmer umso begeisterter, denn auf diese Weise konnten Hans-Rudolf Stoeßer und Ralf Kästner viel besser auf spezielle Fragen und Probleme eingehen.
Wer glaubt, auf dem diesjährigen Treffen gab es keine besondere Hardware zu sehen, der irrt gewaltig. Hendrik Wagenknecht präsentierte seinen KC, der als Steuerrechner für seine Modellbahnanlage dient, einschließlich der dazugehörenden Hard- und Software. Der Komfort und die einfache Bedienung des Systems ließ nicht nur die Augen der Modellbahn-Fans leuchten.
Geradezu sensationell waren die Hardware-Erweiterungen, die von den Mitgliedern des ZX-Teams - Kai Fischer, Henning Räder und Dieter Krumbiegel - vorgestellt wurden. Unter der Maßgabe, die Hauptplatine nicht zu verändern, wurden die Ansteuerschaltungen für LC-Display und Festplatte entwickelt. Beide wurden als separate Platinen mit jeweils eigenem Z80-Prozessor aufgebaut, die an den Rechnerbus gesteckt werden.
Insbesondere die Schaltung für das LCD hat mich sehr beeindruckt. Normalerweise verfügt der ZX81 nur über Blockgrafik, wodurch er mit einem sehr kleinen Bildspeicher auskommt, der sich darüber hinaus irgendwo im Arbeitsspeicher des Rechners befinden kann. Mit Hilfe eines speziellen Signals auf dem Rechnerbus stellt die LCD-Ansteuerung fest, wenn auf den Bildspeicher zugegriffen wird und überträgt die entsprechenden Daten in einen Koppel-RAM. Diese werden anschließend vom Rechnersystem der Ansteuerschaltung in Pixeldaten umgewandelt. Dabei hat die mit 8 MHz getaktete Z80 CPU alle Hände voll zu tun, um das LCD in ausreichender Geschwindigkeit mit Informationen zu versorgen.
Vielleicht ist es möglich, einen (ausführlichen) Artikel vom ZX-Team zur LCD-Ansteuerung und zur Festplatte, deren Verwaltung übrigens von einem eigenen Dateisystem mit Unterverzeichnissen erledigt wird, zu bekommen und hier in den KC-News zu veröffentlichen. Ganz nebenbei bemerkt: Innerhalb des ZX-Teams gab es bereits Diskussionen darüber, wann ein ZX81 noch ein ZX81 sei. Mittlerweile hat man sich darauf geeinigt, daß ein unverändertes Grundgerät mit "ZX81", ein um LC-Display und Festplatte erweitertes Gerät hingegen als "ZX96" bezeichnet wird.
Für Aufsehen haben auch die von Henrik Haftmann (ja, genau der Henrik Haftmann) mitgebrachten Module gesorgt. Er hat ein M022 (16 kB RAM) um 2 M011 (je 64 kB RAM) ergänzt und somit 144 kB und 3 Module in einem Gehäuse untergebracht. Noch komfortabler ist allerdings sein mit 512 kB statischem RAM bestücktes Modul, dessen Daten dank Batteriepufferung bis zu 24 Stunden erhalten bleiben. Die Krönung war zweifellos ein Modul mit GAL-Brenner und NMI-Auslösung. Es wäre schön, wenn hier in den KC-News irgendwann mehr über diese Module zu erfahren wäre.
Doch nicht nur die Module riefen allgemeines Staunen hervor, sondern auch die von Henrik gezeigte Emulationssoftware, mit der es auf einem PC möglich ist, diverse Kleincomputer nachzuempfinden. Zu den unterstützten Geräten gehören neben dem Z9001 und dem KC87 selbstverständlich auch "unsere" KC85/3 und /4. Die Emulation des D004-Aufsatzes ist geplant, aber zum jetzigen Zeitpunkt noch nicht implementiert. Wer Zugang zum Internet hat, kann sich hier informieren und den Emulator herunterladen:
Zum Sonntag gibt es nicht allzu viel zu sagen. Die Auflösungserscheinungen setzten wie üblich nach dem Frühstück ein, doch zum Mittagessen waren immerhin noch 15 Clubmitglieder anwesend - ebenfalls neuer Rekord. Gegen 14 Uhr war das offizielle Ende des Treffens dann Realität.
Selbstverständlich gibt es auch in diesem Bericht wieder ein paar Informationen für die Statistiker! Die schier unglaubliche Zahl von 48 Teilnehmern hatte ich bereits eingangs erwähnt. Bemerkenswert ist dabei die Tatsache, daß erstmals auch weibliche KC-Fans zugegen waren. Bei den Geräten sah es nicht minder beeindruckend aus. Sage und schreibe 9 Anlagen, aus KC 85/4 und Floppy-Aufsatz bestehend, 1 Z1013 in einem Eigenbau-Holzgehäuse, 1 ZX81 im Originalgehäuse, 2 ZX96 mit Festplatte und LC-Display, 1 Robotron EC 1834, 2 PC-Laptops und 1 Apple PowerMacintosh waren zu sehen!
Ein paar in Bildern festgehaltene Eindrücke dürfen auch diesmal nicht fehlen und sind, wie gewohnt, über die gesamte Ausgabe verstreut. In der Hoffnung auf ein weiterhin so reges Clubleben und noch viele Treffen dieser Art beende ich diesen Bericht mit dem Versprechen, uns im nächsten Jahr wiederzusehen.
Die Web-Site des KC-Clubs
von Jörg Linder
Nachdem in den KC-News schon des öfteren davon zu lesen war, daß unser Club im Internet - genaugenommen im World Wide Web (WWW) - präsent ist und sich die Teilnehmer des diesjährigen Treffens ein Bild davon machen konnten, möchte ich auch denjenigen einen Einblick verschaffen, die weder einen Internetzugang haben noch zum Clubtreffen kommen konnten.
Für ein besseres Verständnis gibt's erstmal ein paar Erläuterungen.
Mit dem Begriff ,,Internet`` werden eine Reihe von Diensten (manchmal auch Services genannt) zusammengefaßt, von denen das WWW inzwischen der bekannteste ist. Ursachen hierfür sind vor allem, daß die Informationen im WWW nicht nur Text sondern auch Bilder, Grafiken, Ton, Video usw. umfassen können und daß diese von den Anwendern mit modernen Browsern kinderleicht betrachtet werden können.
Zur Veröffentlichung von Informationen im WWW müssen diese im HTML-Format (Hypertext Markup Language; eine Art Programmiersprache zur Beschreibung von Dokumenten und Dokumentstrukturen) vorliegen. Der Inhalt einer HTML-Datei präsentiert sich dem Betrachter als eine Seite. Bekanntester Vertreter dieser Spezies dürfte die sogenannte ,,Homepage`` sein. Ein weiterer (häufig falsch) verwendeter Begriff ist ,,Web-Site``. Damit ist die Gesamtheit der zusammengehörenden Seiten (HTML-Dateien) eines Anbieters gemeint.
Aber nun zurück zur Web-Site des KC-Clubs. Die Initiative dazu ging von Frank Dachselt aus. Auf seiner Homepage hat er unser gemeinsames Hobby, den KC 85, vorgestellt. Schnell kamen weitere Seiten hinzu und das Informationsangebot wuchs zusehends.
Die erste Veröffentlichung liegt inzwischen ca. 1 Jahr zurück. Seitdem hat sich einiges getan. Angesteckt von der Internet-Epidemie und der Idee, der ganzen Welt unseren Club zu präsentieren, stürzte ich mich Hals über Kopf in dieses Projekt. Dazu mußten die zahlreich vorhandenen Informationen und Daten - insbesondere aus den KC-News - ins HTML-Format gebracht und einigermaßen sinnvoll strukturiert werden. Mittlerweile umfaßt unsere Web-Site knapp 4 Megabyte, wohlgemerkt in erster Linie Texte und nur wenige Grafiken und Bilder! Dem Einsatz von Frank ist es zu verdanken, daß wir diese Daten auf einem Rechner an der Technischen Universität Dresden speichern dürfen, um sie aller Welt zugänglich machen zu können.
Bedauerlicherweise lassen sich in einem Artikel wie diesem nicht alle Möglichkeiten des WWW zeigen. Ich möchte dennoch versuchen, einen Überblick zu geben.
Bild 1 zeigt die Titelseite der Web-Site unseres Clubs. Es ist die thematische Gliederung des Informationsangebotes zu erkennen. Wählt man eine der Rubriken durch Mausklick an, gelangt man zur Einleitung des jeweiligen Themas und von dort, ebenfalls per Mausklick, zu speziellen Informationen. Nachfolgend die Schwerpunkte der Rubriken:
Über den Club
Eine kurze Erläuterung zur Arbeitsweise des Clubs: Worum geht's bei uns? Was machen wir? Welche Leistungen gibt's für Mitglieder? Wie kann man Mitglied werden? Selbstverständlich gehören auch die Leitsätze des Clubs und Kontaktadressen in diese Rubrik.
KC-News
Das wichtigste Medium des Clubs nimmt auch auf der Web-Site eine zentrale Stellung ein. Alle auf Datenträger verfügbaren Artikel der Ausgaben von 4/94 bis 3/96 können hier nachgelesen werden. Diese immense Ansammlung von Wissen rund um den KC vermittelt nicht nur einen umfassenden Einblick in das Clubgeschehen, sondern taucht zum Teil auch in den anderen Rubriken wieder auf.Wir haben uns bewußt gegen die Veröffentlichung von Ausgaben, die jünger als 1 Jahr sind, entschieden, um den Noch-Nichtmitgliedern einen Anreiz für die Mitgliedschaft im Club zu geben.
Hardware
Neben einer Einführung zum modularen KC-System sind hier Informationen zu den verschiedenen Hardware-Erweiterungen zu finden. Dazu gehören insbesondere die Aufrüstung des KC 85/4, der Anschluß der Festplatte und das/die RAM-Modul(e) mit 1 Megabyte. Aber auch weniger aufwendige, in den KC-News vorgestellte Projekte wie der Anschluß von 3,5``-Diskettenlaufwerken oder von diversen Monitoren sind hier zu finden.
Treffen
Wer bislang keine Ahnung hatte, was auf auf einem Treffen des KC-Clubs zu erleben ist, kann sich hier einen Eindruck verschaffen. Berichte und Fotos sind dabei behilflich.
Handbücher
Auf diese Rubrik bin ich ganz besonders stolz. Hier kann man wichtige und vielgesuchte Nachschlagewerke wie zum Beispiel das ,,D004 Handbuch für den Programmierer`` betrachten bzw. auf den heimischen Rechner herunterladen. Bislang sind neben dem bereits erwähnten Programmiererhandbuch lediglich das ,,D004 Manual``, die ,,D002 Serviceanleitung`` und die ,,D004 Serviceanleitung`` verfügbar. Weitere Handbücher sind jedoch in Vorbereitung.
Geschichte
Hierbei handelt es sich keineswegs um die Weiterführung der vorherigen Rubrik mit anderen Inhalten wie z.B. ,,Gute-Byte-Geschichten für Programmierer`` o.ä.; ganz im Gegenteil. Hier versuchen wir, ein wenig Einsicht in die Historie des Clubs, der DDR- Computertechnik im allgemeinen und des KCs im besonderen zu gewähren. Augenblicklich sieht es hier noch etwas dürftig aus, aber vielleicht hat jemand von Euch Lust, uns zu unterstützen...
Software
Diese Rubrik umfaßt alle Informationen zu den Betriebssystemen CAOS, MicroDOS und ML-DOS. Weiterhin sind hier die Highlights der CAOS- und der CP/M-Programmierung zu finden (Textverarbeitung, Grafikprogramme, Z-System, Utilities). Seiten zu den KC-Emulatoren sind in Vorbereitung.
Aktuell
Alle brandneuen Informationen über den Club oder zu Programmen und Entwicklungen erhält man hier. Im Vorfeld des 4. Treffens waren hier z.B. Anmeldeformulare, Wegbeschreibungen und die Zahl der angemeldeten Teilnehmer zu finden. (Mittlerweile ist das Clubtreffen Geschichte und daher in der Rubrik ,,Treffen`` abgelegt.)
Zugegebenermaßen hatte ich anfangs Bedenken, ob sich die nicht unerhebliche Mühe lohnt. Schließlich ,,verirrt`` man sich nicht so leicht auf eine unbekannte Web-Site. Glücklicherweise schafft das Internet hier selbst Abhilfe. Man kann (s)eine URL (Unique Ressource Locator; eindeutige Internet-Adresse) bei sogenannten Suchmaschinen anmelden. Dort wird die URL zusammen mit Stichworten in einer Datenbank gespeichert. Jeder Internet-Benutzer hat die Möglichkeit, diese Datenbank nach Begriffen zu durchsuchen. Entspricht der zu suchende Begriff einem gespeicherten Stichwort, so wird die dazugehörige URL angezeigt und man kann per Mausklick sofort auf diese Seite wechseln.
Selbstverständlich ist unsere Web-Site bei einer Reihe von Suchmaschinen angemeldet. Außerdem haben die Veröffentlichungen im ,,Funkamateur`` merklich zur wachsenden Bekanntheit beigetragen. Dies kann man sehr schön an der Zugriffsstatistik erkennen. Das Diagramm in Bild 2 zeigt die Gesamtzahl der Zugriffe auf die Homepage von Frank (untere Kurve; /~dachselt) und auf die Titelseite der Club-Web-Site (obere Kurve; /~kc-club). Ganz unten sind die Daten der ,,herausragenden`` Spitzenwerte angetragen:
- 17. März 1997 - Frank veröffentlichte seine Homepage
- 16. Juni 1997 - in den KC-News erschien die URL
- 1. Oktober 1997 - (???) dieser Spitze läßt sich kein besonderes Ereignis zuordnen
- 16. November 1997 - die Web-Site des Clubs wurde freigegeben und ein paar Leute darüber informiert
- 2. Januar 1998 - offensichtlich hatten viele Leute Urlaub und mußten die Weihnachtsgeschenke (Computer und/oder Modem) ausprobieren
- 15. Februar 1998 - URL wurde als Surftip im ,,Funkamateur`` empfohlen
- 30. März 1998 - im ,,Funkamateur`` wurde über das bevorstehende Clubtreffen berichtet und die Web-Site kurz vorgestellt
Mittlerweile sind pro Woche knapp 80 Zugriffe auf die Titelseite zu verzeichnen. ,,Quereinsteiger`` wie ich, die sofort auf die Rubrik ,,Aktuell`` zugreifen, sind dabei nicht einmal berücksichtigt. Ich denke, daß dies eine ganz beachtliche Zahl ist.
Gewiß fragt so mancher jetzt nach Sinn und Zweck des Ganzen. Dieser offenbart sich umgehend, wenn man die Neuzugänge des letzten halben Jahres betrachtet. Um 23 (in Worten: dreiundzwanzig!!!) Mitglieder ist unser Club in diesem Zeitraum gewachsen. Der überwiegende Teil hat den Weg über das Internet zu uns gefunden. (Ganz abgesehen davon ist es auch eine Sache des Prestige. Jeder Club, der etwas auf sich hält, ist im Internet vertreten. Keine Frage, wir haben natürlich die umfassendste und schönste Web-Site der 8-Bit-Clubs. ;-))
Damit wären wir auch schon fast am Ende dieses Artikels. Eines darf aber nicht fehlen: Die URL der Web-Site unseres Clubs!
Wenn Ihr also mal die Gelegenheit habt, durchs Internet zu surfen (z.B. im Internetcafé), dann schaut doch mal vorbei - es lohnt sich! Es versteht sich von selbst, daß diese URL auch an alle Verwandten und Bekannten weiterzugeben ist. :-)

Bild 2: WWW-Statistik
Anm. d. Redak.: Der Kurvenverlauf in Bild 2 sollte nur als eine grobe Abschätzung des wöchentlichen ,,Interesses`` an der KC-Homepage interpretiert werden. Die dort angetragenen Zugriffszahlen sind pure ,,Hausnummern`` (Größe des wöchentlichen Log-Files in KB). Gesichert sind die bereits erwähnten 80 Zugriffe in der Woche mit der höchsten Spitze. Daß die beiden Web-Sites im Diagramm so unterschiedliches Verhalten zeigen, liegt vor allem am etwa zehnfachen Umfang des vorhandenem Materials in ,,/~kc-club`` gegenüber dem in ,,/~dachselt``.
Tastatur-Interface, die Dritte
von Enrico Grämer
Tja, wie das meistens so ist, wenn man denkt, daß nun endlich alles richtig funktioniert, kommt so ein Genie und findet dann doch noch einen Fehler. Genau so erging es mir beim diesjährigen Treffen. Dadurch verzögert sich die Auslieferung noch etwas, aber ich schätze mal, daß mit Erscheinen dieser KC-News jeder sein Interface in den Händen hält. Desweiteren ließ sich nun endlich klären, warum die automatische Umschaltung zwischen CP/M- und CAOS-Belegung nicht richtig funktionierte.
Ursache dafür war der Tastaturtreiber V24TAST.KOP, welcher bei dem aktuellen D004-Boot-EPROM nicht mehr eingebunden werden muß, und in diesem Fall auch nicht darf. Zum Umschalten auf CPM-Belegung wird in der INITIAL.SUB das Programm SETCPM.COM aufgerufen. SETCAOS.KCC dient dem Umschalten auf CAOS-Belegung von der INITIAL.UUU aus. Dazu wird das Programm erst mit FLOAD geladen und anschließend mit setcaos (Kleinschreibung !!!) gestartet. Außerdem werte ich jetzt auch noch das Signal KOUT der Keyboard-Buchse aus, so daß bei Drücken der Reset-Taste die Tastatur 0DH sendet und auf CAOS- Belegung umschaltet. Dazu ist, wie im Schaltplan zu sehen, KOUT der Keyboard-Buchse mit Pin 23 des Mikrocontrollers IC1 zu verbinden.
PC-Handscanner am KC
von Ralf Kästner
Die nächste Hürde ist genommen: Im März gelang es mir endlich, mit Hilfe eines normalen PC-Handscanners, Vorlagen in den KC einzulesen.
Entstehungsgeschichte
Kurz zur Vorgeschichte: 1993 wurde im Heft 2 der Zeitschrift c't ein Projekt vorgestellt, wo mittels eines Eigenbau-Interface ein PC-Handscanner an einem Atari ST betrieben werden konnte. Der Atari ST ist zwar als 16-Bit-Rechner nicht mit dem KC vergleichbar aber zumindest sind beide elektrisch kompatibel. Im c't-Artikel wurden sehr umfassende Informationen über Aufbau, Arbeitsweise und vor allem zu den Signalen eines Scanners veröffentlicht, so daß ich damals nach eingehendem Studium zu der Erkenntnis gelangte, eigentlich könnte das am KC auch funktionieren. Gesagt getan - ich bestellte mir die originale Interface-Leiterplatte, die Bauteile, sowie das notwendige GAL und bastelte auf der Platine eines M005-USER-Moduls eine Versuchsanordnung zusammen. Nach einigem Herumprobieren war zwar damals eine Funktion, sprich die Scanzeilen wurden korrekt synchronisiert, nachweisbar - der Inhalt also die Scanbytes waren aber falsch und hatten mit der Scanvorlage nicht viel gemeinsam. Zu Ende kam ich damals aber nicht, da der Schaltplan des M001 fehlte. Das Projekt wurde wieder auf Eis gelegt und ruhte bis Anfang 1998...
Im Februar dieses Jahr entschloß ich mich in Hinblick auf das Jahrestreffen und auf Grund der Userbefragung unseres Clubs, dieses Projekt noch einmal aufleben zu lassen. Wie zu sehen war, hat es sich auch gelohnt. Zumindest der Prototyp brachte endlich die gewünschte Funktion und stellt damit die Grundlage für einen nachvollziehbaren Anschluß von geeigneten PC-Handscannern an den KC dar. Der heutige Artikel soll keine Bauanleitung werden - ich gebe an dieser Stelle das notwendige Know-How weiter, um den ,,ganz wilden Freaks`` einen Nachbau zu ermöglichen. Wenn alles klappt, befindet sich im Anhang dieser News der Originalartikel aus der c't 2/93 und zwei Seiten aus einer aktuellen c't, wo man die Bestellinfos für das GAL und die Atari-Interface-Platine entnehmen kann. Zusammen mit dem heutigen Artikel sollte fortgeschrittenen KC-Usern ein Nachbau meiner Versuchsanordnung möglich sein.
Schaltungsprinzip
Beim Atari wird das Interface in den Adressraum des Prozessors eingeblendet, so daß die Daten über Speicherzugriffe gelesen werden. Da der KC nur einen 8-Bit-Datenbus hat, erschien es mir damals einfacher, eine PIO zu benutzen - zwei Ports mit je 8 Bit ergeben dann auch wieder 16 Bit. Alle Daten werden im KC dann über I/O-Zugriffe gelesen, mit dem M001 steht ein fast ideal geeignetes Modul zur Verfügung, so daß man dort das originale Interface eigentlich nur anschließen muß. Nun ganz so einfach war es dann doch nicht aber der zusätzliche Aufwand hält sich mit 3 Gatterschaltkreisen wirklich in Grenzen.
Blockschaltbild
Im Blockschaltbild (Bild 1) ist die Versuchsanordnung dargestellt. Das ATARI-INTERFACE, die BUS-ANPASSUNG und deren STROMVERSORGUNG befinden sich auf der Platine eines M005 bzw. werden von dort entnommen. Der Scanner wird an der 8-poligen Mini-DIN-Buchse, welche sich auf der Interfaceplatine befindet, angesteckt. Die SCANDATEN und IF-MELDUNGEN (Interface-Meldungen) werden vom Interface zum Peripheriesteckverbinder des M001 geführt. Die als KC-BUS bezeichnete Verbindung (s.u.) muß man direkt an den PIO-Pins im M001 abnehmen (stehen am Steckverbinder nicht zur Verfügung) und zu den Gattern, welche sich auf dem M005 befinden, führen. Von diesen Gattern geht es dann wieder zum Interface (ATARI-BUS). Die 12V für den Scanner nimmt man von der Platine des M005 ab und lötet sie direkt auf der Interface-Leiterplatte an der entsprechenden Stelle an (PL 2 Mittelkontakt). Nachfolgend eine genaue Aufstellung aller notwendigen Verbindungen laut Blockschaltbild mit einigen kurzen Hinweisen.
Scandaten | |||
Steckververbinder M001 | PIO-Kanal A | Bedeutung | Interface |
2A | A0 | D8 | 9 |
3A | A1 | D9 | 10 |
4A | A2 | D10 | 7 |
5A | A3 | D11 | 8 |
6A | A4 | D12 | 5 |
7A | A5 | D13 | 6 |
8A | A6 | D14 | 3 |
9A | A7 | D15 | 4 |
Die seriellen Scandaten des Scanners werden vom Interface in einem 8-Bit-Schieberegister gesammelt und byteweise zur Verfügung gestellt. Die 8 Leitungen übertragen dann immer ein Datenbyte zum M001 und können dort über Kanal A eingelesen werden.
IF-Meldungen | |||
Steckververbinder M001 | PIO-Kanal B | Bedeutung | Interface |
2B | B0 | D0 | 17 |
3B | B1 | D1 | 18 |
Die Meldungen des Interface werden über Kanal B der PIO des M001 eingelesen. Es sind zwei Leitungen erforderlich, an B0 kann der KC erfahren, wann ein neues Datenbyte fertig ist und an B1 wird der Beginn einer neuen Scanzeile vom Interface gemeldet, genaue Informationen zum (nicht vorhandenen) Übertragungsprotokoll können im Originalartikel nachgelesen werden.
Stromversorgung | ||
Leiterplatte M005 | Interface | |
AB29 | + 5 V | 1,2 |
A28 | + 12 V | Mitte PL2 |
AB1 | Masse | 38,39,40 |
Ein Scanner benötigt 12 V für die LED-Zeile, welche die Vorlage beleuchtet. Mit 300 mA Strombedarf geht das schon an die Grenze des KC-Netzteils, laut Modulbeschreibung können pro Modul 100 mA entnommen werden, bei mir steckte das M005 im Busdriver, wo 4 Module Platz finden. 4 mal 100 mA ergibt 400 mA, so daß eigentlich nichts passieren dürfte. Die 12 V werden nur dann belastet, wenn man scannt, wenn man also nicht stundenlang herumprobiert, sollte keine Gefahr bestehen - alle Angaben ohne Gewähr! Ich kann keine Garantien geben, daß es nicht doch irgendwann zu Überlastungen kommt. Im Originalartikel kann man nachlesen, wie beispielsweise auch ein externes Steckernetzteil angeschlossen werden kann. Darauf habe ich verzichtet und die Variante mit der direkten Speisung durch den KC gewählt, der dort auch angegebene Sperrwandler bringt uns nichts, da nur noch mehr Strom, dann von den 5 V, gezogen wird. Das Interface wurde von mir also ohne Sperrwandler bestückt, so daß (siehe Artikel) die Bauelemente IC5, T3-T5, R3-7, L1-2, D1 und C3 entfallen. Anstelle von L2 wurde die freigewordene D1 wie angegeben als Verpolungsschutz eingelötet. PL2 habe ich auch weggelassen, da dort direkt der Anschluß der 12 V vom M005 angelötet wurde. Zur Stromversorgung gehört auch der Anschluß der Gatter der BUS-ANPASSUNG (5 V und Masse) - nicht vergessen!

Bus-Anpassung
Bis hierher war die Lösung einfach und wohl auch für die meisten User halbwegs verständlich. Mit dem mechanischen Aufbau hatte ich auch keine Probleme. Jetzt ging es aber um die Wurst, der Scanner steckte am (unveränderten) Atari-Interface, alle Bauteile haben ihren "Saft" und nun war nur noch das Interface davon zu überzeugen, daß ein Atari am anderen Ende hängt und die Daten abholt. Zuerst hatte ich versucht, dies durch Software zu realisieren, im Nachhinein betrachtet - aussichtslos durch die äußerst knappen zeitlichen Rahmenbedingungen. Mir blieb also nichts anderes übrig, mich mit den Bussignalen (LDS /UDS /ROM3 /ROM4) des Atari zu beschäftigen und nachdem ich das einigermaßen verstanden hatte, zu versuchen, mittels der zur Verfügung stehenden KC-Bussignale ein gleichartiges Signalspiel am Interface zu erzeugen.

Nach 2 Wochen war dann die in Bild 2 angegebene Schaltung entstanden, welche genau diese Funktion erfüllt und dem Interface vorgaukelt, daß Speicherschreibzugriffe eines Atari ST die Scandaten abholen, obwohl es ein KC über I/O-Zugriffe vornimmt. Bit 7 der M001-PIO Kanal B steuert hierbei die 12V-Stromversorgung des Scanners, nur bei 1 ist der Scanner online, was bei der Softwareerstellung zu berücksichtigen ist. Zur Funktion möchte ich an dieser Stelle nichts sagen, die relativ komplizierten Zusammenhänge kann man dem Originalartikel entnehmen und im Endeffekt interessiert ja nur, daß es funktioniert.
Zusammenfassung
Rückblickend läßt sich feststellen, daß die prima Vorleistung durch den Autor des Originalartikels und meine bescheidene zusätzliche Arbeit ein nachvollziehbarer Anschluß von einfachen PC-Handscannern an den KC möglich sein müßte. Mit dem Interface getestete Typen von Scannern kann man dem Artikel entnehmen. Entscheidend dabei ist, daß sich der Scanner im Pixelmodus betreiben läßt, also jedes gesendete Bit einem Bildpunkt der Vorlage entspricht. Scanner, welche nur Graustufen (8-Bit-Wert für einen Bildpunkt der Vorlage) liefern, sind nicht geeignet!
Für Testzwecke stelle ich noch ein kurzes Programm zur Verfügung, welches ich auch auf dem Treffen verwendet hatte. Es liest ein komplettes KC-Bild unhabhängig von der am Scanner eingestellten Auflösung ein und stellt die Daten direkt auf dem Bildschirm dar. Es ist unter CAOS zu laden und wird aus dem CAOS-Menü heraus gestartet. %INI initialisiert das M001, Voreinstellung ist Kanal 1C des Busdrivers, wenn ein anderer Steckplatz verwendet wird, den Quelltext ändern und neu übersetzen oder per MODIFY direkt im RAM ändern! Mit %SCAN startet man den Scanvorgang, welcher erst beendet wird, wenn 256 Zeilen eingelesen wurden, er kann nicht abgebrochen werden!
Zum Treffen haben wir über den weiteren Weg diskutiert, es soll eine eigene Modulleiterplatte für ein Scanmodul entwickelt werden, dann würde auch eine Erstellung von "richtiger" Software lohnenswert, z.B. in Form eines zusätzlichen User-Overlays für UNIPIC 2.0. Bis dahin wird aber noch etwas Zeit ins Land gehen, sicher ist in den News dann auch wieder etwas darüber zu lesen.
SHOWTIME - es geht in Runde vier
von Ralf Kästner
Heute gibt es ohne Verspätung an dieser Stelle das vierte Paket mit KC-Shows u.a. vom April-Treffen 1998. Neben zwei überarbeiteten Sachen sind zwei neue Shows zu sehen, welche im HIRES-Modus des KC 85/4 laufen.
Wie immer sind auf der Beilagendiskette die entsprechenden PMA-Archive vorhanden, welche vor Gebrauch in der CP/M-Betriebsart mit PMEXT.COM erst auf eine Diskette zu entpacken sind. Zum Abspielen der Shows können DIASHOW 1.1 oder UNIPIC 1.0 bzw. 2.0 eingesetzt werden.
KCHEART.PMA
Diese Show war bereits beim letzten Mal dabei. Da hatte sich leider ein kleiner Fehler in den Farben eingeschlichen, welcher nun beseitigt wurde. Die Show benötigt 5 Bilder.
HIRSCH.PMA
Wer das Archiv von Hendrik Wagenknecht (KC-News 4/97) ausgepackt hatte, konnte diese Show bewundern. Sie wurde aus einer AVI-Datei (PC-VIDEO-Dateiformat) hergestellt und für den KC konvertiert. Das Ergebnis ähnelt durchaus auch auf dem KC dem Original - also nun auch ,,KC-Videos`` in Endlosschleife! Benötigt werden 18 Bilder. Ich habe noch einige kleine kosmetische Veränderungen vorgenommen, so daß die ganze Angelegenheit optisch besser zur Geltung kommt.
KLUBTR98.PMA
Weniger ist manchmal mehr, diese Weisheit wurde mir wieder mal bewußt, als ich die o.g. Show zum diesjährigen Treffen laufen lies. Die benötigten 7 Bilder wurden eigentlich nur schnell mal zwischendurch eigens für das Treffen zusammengestellt. Etwas Text zum Anlaß des Treffen und ein schlagendes (diesmal richtiges!) Herz bilden den Inhalt und kamen beim Auditorium recht gut an.
KC-ALIVE.PMA
Mit 24 Bildern gehört diese Show bereits zu den ausgewachsenen Vertretern ihrer Art. Der Auslöser war ein interessantes Motiv, welches mir irgendwann letztes Jahr zwischen die Finger geriet. Mit UNIPIC 2.0 lassen sich ja nun auch HIRES-Bilder bearbeiten, so daß einer richtigen Show nichts mehr im Wege stand. Thematisch geht es darum, daß die KC's immer noch ,,Am Leben`` sind. Ausgehend von den beiden ,,Augen`` im zweiten Teil der Show, wurden entsprechende Zutaten, wie das ,,gruslige`` Titelbild sowie passende Schrift zusammengestellt und dann mit Hilfe von UNIPIC zu einer kleinen Rahmenhandlung verbunden. Alle Effekte wurden auf dem KC ,,produziert``, was zwar mit dem Programm relativ zügig möglich war, allerdings muß man schon in etwa wissen, wie das Ergebnis mal aussehen soll. Auf alle Fälle kann man recht gut erkennen, welche neuen Möglichkeiten der Hires-Editor von UNIPIC 2.0 eröffnet, insbesondere das Zeichnen und Nachbearbeiten von Bildern machen im HIRES-Modus durch die punktweise Farbauflösung erst richtig Spaß, auch wenn man durch die 4 zur Verfügung stehenden Farben etwas eingeschränkt ist.
Viel Spaß beim Anschauen und Ausprobieren !
UNIPIC 2.0 - Fehlerbeseitigung
von Ralf Kästner
Wie im Artikel zu den Shows zu lesen, enthielt die Farbdatei (KCHEART1.PIF) der KC-HEART-Show einen Fehler. Nach einer nicht ganz einfachen Fehlersuche stellte sich leider heraus, daß UNIPIC 2.0 diesen Fehler verursacht. Er tritt zwar sehr selten auf, soll an dieser Stelle aber trotzdem korrigiert werden.
Wie bereits bekannt, komprimiert UNIPIC 2.0 beim Speichern von Bilddateien die Bilddaten, wenn es möglich ist (entstehende Datei ist in komprimierter Form nicht größer als die unkomprimierte Variante). Bei den Farbabzügen ist in 99 von 100 Fällen dieser Komprimierungsversuch erfolgreich, da i.d.R. immer gleichfarbige Bildteile in einem Bild vorhanden sind, welche bei einer Komprimierung zusammengefaßt werden und zu einer Verkleinerung der entstehenden neuen Datei führen. Diese Voraussetzung erfüllt KCHEART1.PIF aber nicht, so daß sie normalerweise in unkomprimierter Form gespeichert wird, das macht das Programm auch richtig, leider stimmen aber die gespeicherten Bilddaten nicht. Hinzu kommt, daß dieser Programmteil im Hauptprogrammteil liegt, welcher aus Schutzgründen nicht über die News verteilt werden kann.
Alle Updatewilligen müssen heute deshalb mal selbst Hand anlegen, was folgendermaßen ablaufen sollte:
Auf der Beilagendiskette befindet sich die Datei UPDUP000.KCC, welche den Fehler in der originalen UNIPIC.000 korrigiert. Wer ganz sicher gehen will, kopiert wieder alle UNIPIC.*-Dateien der Originaldiskette und die UPDUP000.KCC auf eine Zwischendiskette und führt die Korrektur dort durch, zum Schluß dann wieder zurück, wie letztens beschrieben.
Nachdem man diese Vorbereitungen getroffen hat, startet man die CAOS-Betriebsart und lädt SERVICE.KCC o.ä. Dann legt man die vorbereitete Diskette ein und lädt mit
%FLOAD Name:UNIPIC.000
die Datei UNIPIC.000 in den Speicher (die Erweiterung .000 muß angegeben werden!). Anschließend lädt man ebenfalls mit
%FLOAD Name:UPDUP000
die neue Datei ebenfalls in den Speicher (hier ist Typ .KCC und muß nicht angegeben werden!) und beseitigt damit den Fehler zunächst aber erst mal nur im RAM. Man muß natürlich die neue korrigierte Datei noch auf die Diskette zurückschreiben mit
%FSAVE 200 3A30 Name:UNIPIC.000
Damit ist alles erledigt und man kann das korrigierte Programm neu installieren.
Das Treibersystem von ZAS 1.3
von Mario Leubner
Damit das Treibersystem von ZAS 1.3 funktioniert, muß ZAS 1.3 zunächst geladen werden. Dazu gibt es mehrere Möglichkeiten:
- Boot-EPROM V3.0 (Wechsel des D004-EPROM's)
- Installation in den Systemspuren einer ML-DOS-Diskette oder der Festplatte mit SYSGEN.COM (V1.1)
- Nachladen mit LADE.COM bzw. DRIVER.COM
Den schnellsten Weg, ZAS 1.3 zu laden, bietet der BOOT-EPROM, damit wird ZAS direkt aus dem EPROM in den RAM kopiert und ist sofort mit JUMP FC aktiv. Wer den BOOT-EPROM im D004 nicht wechseln will, kann jedoch auch die beiden anderen Möglichkeiten wählen. Dieser Ladevorgang dauert deswegen etwas länger, da die gesamte Steuerschleife byteweise über den Koppel-RAM übertragen werden muß.
Wenn ZAS 1.3 seine Arbeit aufgenommen hat, können nun weitere Treiber geladen werden. Bisher war das nur mit speziellen Programmen möglich, welche die Laderoutine enthalten. Es handelt sich hier um DRUCK.COM, HPKC.COM und FADEN.COM. Jetzt will ich ein universelles Programm zum Laden der Treiber vorstellen. Auf dem Clubtreffen in Radebeul war es ja bereits zu sehen: DRIVER.COM.
Mit DRIVER.COM wird das bisherige LADE.COM ersetzt, welches ich für MicroDOS geschrieben hatte. Alle Funktionen von LADE.COM stehen auch in DRIVER.COM zur Verfügung. Dazu kommen neue Möglichkeiten im Zusammenhang mit der Speicherverwaltung von ZAS 1.3, zunächst aber einmal einen Blick auf den Speicher im Grundgerät, einige Bereiche sind ja während der CP/M-Betriebsart schon belegt:

Druckertreiber *.LST, Koppeltreiber *.KOP und Terminaltreiber *.ZAS haben fest vorgegebene Speicherbereiche. Die 31 freien Pages im RAM-0 und die 64 Pages im RAM-4 stehen den universellen Treibern *.DRV zur Verfügung und werden von ZAS 1.3 verwaltet. Die Treiber *.DRV sind dazu relocatibel, können also auf beliebigen Adressen laufen. Ermöglicht wird dies durch das PRL-Dateiformat, das den Treibern zugrunde liegt und einen speziellen Programmkopf (Header) im Treiber.
Das Laden der Treiber erfolgt mit DRIVER.COM ganz einfach aus der Kommandozeile oder einem SUBMIT-Script (z.B. INITIAL.SUB) beim Starten des Systems. Die Bedienung von DRIVER.COM ist relativ einfach und so ausgelegt, daß zum Laden der Standardtreiber die Angabe weiterer Parameter entfallen kann. Für die möglichen Eingaben gibt es eine kurze online-Hilfe, die bei der Eingabe DRIVER // angezeigt wird:
DRIVER V1.0 (c) by ML-Soft 1998 Aufruf: DRIVER [DIR:NAME.LBR] [NAME.TYP] - alle Angaben sind optional. - Standardbibliothek = DRIVER.LBR - mögliche Dateitypen sind: LST, KOP, ZAS, DRV.
Um einen einzelnen Treiber zu laden gibt man z.B. an:
DRIVER LX400.LST
und der Druckertreiber LX400.LST wird geladen und aktiviert. Es kann zusätzlich noch das Laufwerk angegeben werden:
- unter MicroDOS mit dem Laufwerksbuchstaben,
- unter ML-DOS zusätzlich mit einem USER-Bereich,
- unter NZ-COM alternativ auch mit dem Verzeichnisnamen.
Neben dem Laden der Einzeltreiber kann auch ein Paket aus mehreren Treibern geladen werden. Dazu sind alle gewünschten Treiber in einer Treiberbibliothek (Library) zusammenzustellen. Ohne zusätzliche Angabe wird die Standardbibliothek DRIVER.LBR vom aktuellen Laufwerk geladen, es kann aber auch ein anderer Dateiname (z.B. UNI.LBR) in der Kommandozeile angegeben werden:
DRIVER UNI.LBR
Schließlich kann man noch einzelne Treiber aus einer Library laden. Dazu gibt man nach dem LBR-Namen noch den Namen des zu ladenden Treibers an. Im LBR-Modus arbeitet DRIVER.COM so, daß als erstes der ZAS-Treiber geladen wird. Danach folgen Drucker- und Koppeltreiber. Erst wenn ein verschieblicher Treiber *.DRV geladen werden soll, erfolgt ein Test, ob ZAS 1.3 aktiv ist. Damit hat man die Möglichkeit, den ZAS-Treiber mit in die Treiberbibliothek zu packen und der Ladevorgang funktioniert auch, wenn vorher eine ältere ZAS- Version läuft. Als Nebeneffekt werden beim Laden von ZAS vorher aktive Treiber deaktiviert.
WICHTIG ist bei der Arbeit mit DRIVER.COM, daß stets der Dateityp angegeben werden muß, denn DRIVER.COM erkennt daran den Treibertyp und entscheidet auf welche Adresse der Treiber zu laden ist. Die Angabe von Jokerzeichen (? oder *) ist nicht zulässig. Generell erhält man die Hilfeseite wenn in der Kommandozeile ein Fehler vorliegt.
Während DRIVER.COM nun versucht, die Treiber zu laden, laufen verschiedene Schritte ab. Erst müssen die Treiber gelesen werden, dann wird bei ZAS Speicher beantragt, die Abhängigkeiten aufgelöst und die Treiber zum Grundgerät übertragen. Dabei werden die Namen der Treiber und die belegten Adressen am Bildschirm angezeigt. Folgende Fehlermeldungen können auftreten:
- KC85/4 erforderlich.
- ZAS 1.3 läuft nur auf dem KC85/4 (KC85/5) und DRIVER.COM ist deshalb nur auf diesen Rechnern lauffähig.
- Für verschiebliche Treiber bitte ZAS ab Version 1.3 benutzen!
- Sollen verschiebliche Treiber (*.DRV) geladen werden, muß ZAS 1.3 vorhanden sein.
- Datei nicht vorhanden.
- Die zu angegebene Datei ist nicht vorhanden.
- DRIVER.LBR enthält keine Treiber.
- In der angegebenen LBR-Datei sind keine Treiber (LST, KOP, ZAS oder DRV) vorhanden. DRIVER.COM kann nichts laden.
- Formatfehler.
- Dieser Fehler kann zwei Ursachen haben:
- Das LBR-Format ist fehlerhaft.
- Ein DRV-Treiber enthält keinen PRL-Vorblock.
- Laufwerkangabe fehlerhaft.
- Laufwerk, Userbereich oder DIR-Name existiert nicht oder wird vom laufenden System nicht unterstützt.
- Mehrdeutiger Dateiname.
- Jokerzeichen (? und *) sind nicht erlaubt.
- Dateiende überschritten.
- Die Treiberdatei oder LBR ist fehlerhaft.
- Treiber fehlt mit ID = ...
- Der zu ladende Treiber benötigt für seine Arbeit einen weiteren (Sub-) Treiber. Dieser Treiber ist noch nicht im Speicher und auch in der gerade zu ladenden Library nicht vorhanden. Zur Kontrolle wird der gesuchte ID-Code angezeigt.
- ID-Tabelle voll.
- Es können maximal 20 verschiedene Treiber geladen werden.
- Zu wenig Speicher frei.
- Für den zu ladenden Treiber ist nicht mehr genügend Speicher am Stück vorhanden.
- Treiber ist bereits im Speicher.
- Es wurde versucht, einen Treiber zu laden, der bereits aktiv ist. Ein Überschreiben ist nicht möglich. Soll ein Treiber mit der gleichen ID geladen werden, ist der alte vorher zu deaktivieren.
-
Die Treiber *.KOP, *.LST und *.ZAS werden auf eine fest vorgegebene Adresse geladen. Für die verschieblichen Treiber gilt dies nicht, diese werden auf eine freie Adresse geladen. Allerdings gibt es dabei Einschränkungen: Z.B. kann der Bildschirmschoner nur im RAM-0 laufen, andere Treiber laufen dagegen auch im RAM-4 oder nur dort. Dann entscheidet die Ladereihenfolge über die Adresse wo der Treiber läuft. Die Treiber einer Library werden stets in der Reihenfolge geladen, wie sie im LBR-Verzeichnis stehen, also genau in der Reihenfolge, in der sie in der Library aufgenommen wurden. Deshalb empfiehlt es sich, zuerst die Treiber zu laden, die nur in einem Bereich laufen und zum Schluß die Treiber, die beide Bereiche akzeptieren. So ist die Wahrscheinlichkeit höher, daß alle Treiber geladen werden können.
Soviel zu DRIVER.COM. Um sich ein Bild von der Speicherbelegung im Grundgerät zu machen, die ZAS-Speicherverwaltung zu testen und nicht mehr benötigte Treiber wieder zu löschen, eignet sich ZASTEST.COM. Ich habe das Programm noch etwas erweitert, damit auch der Aufruf von Treiberfunktionen getestet werden kann. Außerdem erfolgt jetzt die Ausgabe der aktiven Treiber am oberen Bildschirmrand, so daß man bei der Frage nach der ID-Nummer diese auf dem Bildschirm sieht. Für Interessierte ist der Quelltext ZASTEST.PAS wieder mit dabei.
Wie erstellt man eine Treiberbibliothek?
Zunächst muß man alle benötigten Treiber als Einzeldateien vorliegen haben. Die von MicroDOS bekannten Treiber *.LST und *.KOP gehören dazu, außerdem ZAS4V13.ZAS und natürlich die neuen verschieblichen Treiber *.DRV. Dazu zählen FADEN.DRV, HPKC.DRV und IRMBUF.DRV, welche auf der heutigen Diskette vorliegen. Zum Laden der Treiber könnte man jeden Treiber einzeln laden:
A0>DRIVER ZAS4V13.ZAS A0>DRIVER LQ100.LST A0>DRIVER V24H12A.KOP A0>DRIVER FADEN97.DRV A0>DRIVER IRMBUF.DRV A0>DRIVER HPKC11.DRV
Eine Vereinfachung erreicht man, indem man statt jedesmal DRIVER.COM aufzurufen alle weiteren Aufrufe durch das GO-Kommando ersetzt. Noch einfacher und schneller geht es, wenn man die Treiber aus einer Library lädt. Am einfachsten geht das Anlegen einer Bibliothek unter NZCOM, dort stehen genügend Werkzeuge zur Verfügung. Neben dem Universaltool VLU gibt es die Programme LPUT, LGET, LDIR, CL und andere. Unter normalen CP/M-Umgebungen sieht es dagegen etwas schlechter aus. Doch ein Test zeigte, daß die von mir benutzten Programme LPUT, LBREXT und LDIR auch ohne Z-System funktionieren. Deshalb beschränke ich meine Ausführungen auf diese Programme. LPUT (Version 2.2) erzeugt bzw. erweitert eine Bibliothek. Dazu kopiert man alle gewünschten Treiber am besten in ein leeres Verzeichnis. Die Syntax ist recht einfach:
LPUT lbrname file1,file2,... +nn
Anzugeben ist als erstes der Name der Bibliothek, danach folgt eine Liste der aufzunehmenden Dateien. Beim Anlegen einer Bibliotheksdatei muß festgelegt werden, wieviele Dateien maximal aufgenommen werden sollen. Deshalb kann mit der Angabe +nn zusätzlicher Platz reserviert werden, später ist eine Erweiterung nicht möglich und es muß eine neue Library erzeugt werden wenn mehr Dateien aufgenommen werden sollen. Also besser ein paar Einträge freihalten, dann gibt es nicht so schnell Probleme bei der Erweiterung (jeder Eintrag belegt übrigens 32 Byte, das ist also durchaus zu verkraften). Um eine Treiberbibliothek zu erstellen, könnte das Kommando so aussehen:
LPUT DRIVER.LBR ZAS4V13.ZAS,LQ101.LST,HPKC11.DRV,IRMBUF.DRV +6
oder:
LPUT DRIVER.LBR *.*
Die zweite Form setzt natürlich voraus, daß sich NUR die gewünschten Treiber in dem Verzeichnis befinden. Vom Ergebnis kann man sich leicht überzeugen, indem man sich das LBR-Directory anzeigen läßt und damit sind wir schon beim zweiten Hilfsprogramm LDIR (eigentlich LD, Version 1.4):
LDIR DRIVER.LBR Library: C5:DRIVER .LBr Created: 01.11.97 16:46 Member Name Size Mth Created Modified ============ ====-======= === ============== ============== DRUCK11 .DRV 27r 3.37k --- 25.01.98 15:32 01.02.98 11:29 FADEN97 .DRV 14r 1.75k --- 19.09.97 22:03 19.09.97 22:03 HPKC11 .DRV 22r 2.75k --- 04.02.98 21:55 07.02.98 14:56 IRMBUF .DRV 5r 0.62k --- 04.02.98 21:56 04.02.98 21:56 LQ100 .LST 2r 0.25k --- 17.10.96 19:52 17.10.96 19:52 ZAS4V13 .ZAS 45r 5.62k --- 26.10.97 9:17 26.10.97 9:17 ============ ====-======= === ============== ============== DRIVER .LBr members: 6 matched, 6 active, 5 free, 0 deleted, 11 total
Wie zu sehen ist, unterstützen die verwendeten Programme das ZSDOS-Datumsformat, so gehen diese Informationen auch in der LBR nicht verloren und man kann jederzeit kontrollieren, ob ein Treiber noch aktuell ist. Übrigens kann man das LBR-Verzeichnis auch mit QL41.COM oder ML.COM anzeigen lassen. Will man die einzelnen Dateien wieder herauslösen, benutzt man LGET (eigentlich LBREXT, Version 3.5) und gibt ein:
LGET DRIVER.LBR A:
und alle enthaltenen Dateien werden einzeln nach Laufwerk A: geschrieben. Auch hier bleiben die Datestamps erhalten - vorausgesetzt man hat Laufwerk A: mit PUTDS.COM dafür vorbereitet.
Damit wäre es an der Zeit, die beschriebenen Programme auszuprobieren. In der mitgelieferten Datei DRIVER.LBR sind ein paar Treiber als Beispiel zusammengestellt - das soll jedoch nur als Anregung dienen. Für die Programmierer habe ich noch den Quelltext der DUDEL-Treiber vorbereitet. Diese Treiber sind zwar nicht sehr sinnvoll, können aber als Vorlage für eigene Entwicklungen benutzt werden. Die dazugehörigen fertigen Treiber gebe ich nicht mit, diese kann sich jeder selbst erzeugen. Dabei soll verdeutlicht werden, daß die Erzeugung von verschieblichen Treibern nicht schwieriger als jedes andere Assemblerprogramm ist. Es reichen zwei Kommandozeilen:
A0>ASM DUDEL=DUDEL (erzeugt DUDEL.REL) A0>LINK131 DUDEL.DRV=DUDEL [OP] (erzeugt DUDEL.DRV)
Die REL-Datei wird wie gewohnt vom Assembler erzeugt. Beim Linken sorgt die Option OP für das richtige PRL-Format, der Dateityp kann sofort mit angegeben werden. Zur Treiberprogrammierung verweise ich auf die KC-News 4/97, ab Seite 20. Wer eigene Treiber fertig hat, kann sich bei mir melden und dafür offizielle ID-Codes beantragen. Damit kann der Treiber dann allgemein zur Verfügung gestellt werden.
DRV-Versionen für DRUCK 1.1
von Frank Dachselt
Während der Taschenrechner HPKC bereits als DRV-Treiber in der Bibliothek DRIVER.LBR (im Archiv DRIVER.PMA) enthalten ist, muß die DRV-Version von DRUCK erst noch erzeugt und in die Bibliothek aufgenommen werden. Dabei kann wieder ein an den persönlichen Drucker angepaßter Datensatz verwendet werden. Die Quelltexte für die Assemblierung können dem Archiv DRUCK11.PMA aus den KC-News 4/97 entnommen werden, wobei nur DRCK1V11.MAC und einer der Datensätze DRUCK124.MAC, DRUCKEPS.MAC, DRUCKLX4.MAC oder die persönliche Variante benötigt werden. Der zu verwendende Datensatz muß zur Assemblierung wieder als DRUCKDAT.MAC auf dem aktuellen Laufwerk vorliegen. Die Erstellung der Datei DRUCK11.DRV benötigt nur einen Assembler- und einen Linkeraufruf:
; ; Erstellen der Datei DRUCK11.DRV ; m80 a:drck1=drck1v11 link131 a:druck11.drv=a:drck1 [op]
Die vorstehende SUB-Datei sowie drei fertig übersetzte DRV-Versionen für die bekannten Drucker (Citizen 124D und Epson LX400) und eine allgemeine EPSON-Emulation sind im Archiv DRUCKDRV.PMA auf der Beilagendiskette zu finden.
Bildschirmschoner - jetzt auch für CAOS 4.2
von Mario Leubner
Auf vielfachen Wunsch einzelner User habe ich zu FADEN.COM auch noch eine Version geschrieben, die CAOS 4.3 nicht benötigt. Dafür ist eine Page mehr Speicher im RAM-0 erforderlich. Die Funktion von CAOS 4.3 zum Wechsel des RAM-4 wird programmintern nachgebildet.
In der Datei FADEN.HLP ist das Prinzip beschrieben und auch angegeben, welche Treiberfunktionen genutzt werden können. Es gibt 4 Versionen des Bildschirmschoners:
FADEN.COM | Programmversion für CAOS 4.3 |
FADEN2.COM | Programmversion für CAOS 4.x |
FADEN97.DRV | Treiberversion für CAOS 4.3 |
FADEN972.DRV | Treiberversion für CAOS 4.x |
Die Programmversionen werden durch Eingabe des Namen gestartet und ermöglichen zusätzlich das Einstellen der Reaktionszeit und die Deaktivierung. Die Treiberversionen sind fest auf 5 Minuten eingestellt und werden mit DRIVER.COM geladen.
V.24-Rechnerkopplung mit dem KC
von Mario Leubner
Koppeltreiber sind Mangelware am KC, warum eigentlich? Hat sich noch niemand mit der Rechnerkopplung KC - KC, KC - PC oder zu anderen Geräten beschäftigt? Oder sind alle mit dem einzigen mitgelieferten Koppeltreiber V24H12.KOP zufrieden? Dieser sieht den SIO-Kanal B als Koppelschnittstelle vor, dort betreibe ich aber meine Tastatur. Und in letzter Zeit gibt es Dank des PC-Tastaturinterface von Enrico Grämer immer mehr Anwendungen in dieser Richtung.
Aus diesem Grund habe ich mir Gedanken gemacht, den SIO-Kanal A für die Koppelschnittstelle nutzbar zu machen. So entstanden die zwei Koppeltreiber V24H12A.KOP und V24H12B.KOP, also der erste für Kanal A und der zweite für Kanal B. Die Installation des anderen Kanal ist also kein Problem mehr. Mit dem Programm DRIVER.COM lassen sich auch Koppeltreiber übertragen, allerdings ohne die Möglichkeit nachträglich die Übertragungsrate ändern zu können. Es sind also nur die voreingestellten 1200 Baud möglich - oder man benutzt V24H24A.KOP bzw. V24H24B.KOP, denn diese habe ich auf 2400 Baud voreingestellt.
Jetzt braucht man nur noch ein paar gute Programme zur Übertragung der Daten. Wer zwei KC-Systeme hat, kann auf dem einen Rechner KCSEND.COM und auf dem anderen KCEMPF.COM verwenden und zwischen die beiden V.24-Module ein Überspielkabel stecken. Beide Programme habe ich etwas komfortabler gestaltet, so daß man jetzt am Bildschirm verfolgen kann was abläuft. Auch eine kurze online-Hilfe ist jetzt eingebaut, die mit KCSEND // oder KCEMPF // aufgerufen wird. Verarbeitet werden können aber bis jetzt nur Dateien, die im TPA Platz finden, denn die Schritte Lesen - Senden - Empfangen - Schreiben finden nacheinander statt. Über eine Erweiterung für beliebig große Dateien habe ich bereits nachgedacht, aber bei 1200 Baud macht das ohnehin keinen Sinn.
Zum Schluß möchte ich noch eine speziell für den KC85/4 gedachte Anwendung vorstellen. Angenommen, es ist ein komplettes KC-System (mit D004 und vielleicht Festplatte) vorhanden und als Zweitrechner ein KC85/4 ohne D004. Wie bekommt man jetzt CAOS-Programme von der Diskette auf den zweiten KC? Hat man noch zwei V.24-Module zur Hand, dann gibt es eine einfache Lösung: Sofort nach dem Einschalten des KC85/4 wird das V.24-Modul aktiviert und Kanal 2 wartet mit V.24-Interrupt auf ankommende Zeichen. Hier gibt es drei mögliche Aktivitäten.
Empfangszeichen = 0DH | --> Tastaturmodus |
Empfangsfolge 1BH, ,,T``, ... | --> Speicher schreiben |
Empfangsfolge 1BH, ,,U``, ... | --> Programm starten |
Siehe dazu auch im KC85/4-Systemhandbuch, Kapitel 3.11.2!
Das Programm SEND.COM nutzt diese Eigenschaften aus, indem CAOS-Programme mit diesen Steuerzeichenfolgen gesendet werden. Einzugeben ist nur der Programmname, z.B.
A0>SEND BOULDER.KCC
Vorher muß natürlich auf dem ,,Sende-KC`` ein V.24-Koppeltreiber mit 1200 Baud geladen und die beiden KC's mit dem Überspielkabel verbunden werden. Am ,,Empfangs-KC`` braucht man gar nichts zu machen, während der Datenübertragung verhält sich dieser ohnehin wie defekt, denn der Empfang der Daten erfolgt im Polling (Programmschleife). Wenn die Datenübertragung beendet ist, startet das Programm automatisch (selbststartende Programme) oder kann aus dem CAOS-Menü aufgerufen werden.
Na dann viel Spaß mit Euren KC's und schreibt mir (oder für die KC-News) mal, wie es funktioniert hat! Im Prinzip geht die V.24-Kopplung auch mit anderen Rechnern, allerdings müßt Ihr dann in den Unterlagen dieser Rechner nachsehen, welche Programme dafür geeignet sind und wie die Schnittstelle zu verdrahten ist. Damit kein Datenverlust auftritt, müßt Ihr auf alle Fälle das Hardwareprotokoll einstellen und die Quittierungsleitungen mit verdrahten.
Z-System-Ecke
von Mario Leubner
Wer mit dem Z-System arbeitet, kann sich schnell an den Komfort dieser Oberfläche gewöhnen. Wie leicht ist es doch möglich in den Speicher zu sehen oder Bytes zu ändern. Entweder man benutzt dazu die RCP-Kommandos P und POKE oder die als Ersatz verfügbaren Typ-4 Programme PEEK.COM und POKE.COM. Ich erinnere nur an die Technik, die man ,,GET, POKE, und GO`` oder einfach POKE&GO nennt. Man lädt zunächst das gewünschte Programm in den Speicher, ohne es zu starten. Mittels POKE verändert man dann Einstellungen oder bekannte Werte. Schließlich startet man das so veränderte Programm mit dem GO-Befehl. Ich nutze diese Technik zum Beispiel für das Textprogramm TPKC, das normalerweise im Dokument-Modus startet. Für Quelltexte wünsche ich aber einen Start im ASCII-Modus. Jetzt könnte man zwar TPKC.COM ein zweites Mal mit dieser Installation abspeichern, aber ein ALIAS tut dies genauso, deshalb steht in der Datei ALIAS.CMD bei mir die Zeile:
Auf der Adresse 0392H steht der Installationsparameter für den Modus in dem TPKC startet. Ich überschreibe diesen Parameter also vor dem Start von TPKC mit dem Wert 0FFH. Wenn ich jetzt einen Quelltext editieren will, schreibe ich einfach in die Kommandozeile:
EDIT DUDEL.Z80
und TPKC startet im ASCII-Modus, so als wenn ich diesen vorher installiert hätte.
Den gleichen Komfort wollte ich nun auch mit dem Speicher im Grundgerät haben. Unter CAOS kann man die Befehle MODIFY und DISPLAY benutzen, doch wenn man in der PC-Betriebsart ist...? Dazu habe ich PEEK und POKE entsprechend umgeschrieben und so ist VPEEK und VPOKE entstanden. Die Programmnamen sind an die BASIC-Befehle angelehnt, von der Syntax aber wie PEEK und POKE zu verwenden. Alle Werte sind hexadezimal anzugeben und es ist auch keine Umrechnung der IRM-Adressen erforderlich. Der Zugriff erfolgt auf den gerade aktiven Speicherbereich, also ab 8000H immer auf den IRM. Vorteilhaft kann man VPEEK benutzen zur Kontrolle, ob die Treiber richtig übertragen wurden und korrekt arbeiten. Mit VPOKE sollte man jedoch vorsichtig sein und diesen Befehl nur verwenden, wenn man genau weiß, welche Werte man verändern kann.
Beispiele:
VPEEK B700 | zeigt den Inhalt vom Kassettenpuffer |
VPEEK B780 | zeigt die CAOS-Arbeitszellen im IRM |
VPEEK B800 | zeigt den Modulsteuerwortspeicher |
VPEEK 0380 | zeigt den Koppeltreiber |
VPOKE B7A8 00 BA | stellt die Zeichenbildtabelle für die Kleinbuchstaben auf BA00H um |
VPEEK.COM und VPOKE.COM sind Programme vom Typ-4, werden also auf die höchstmögliche Adresse im TPA geladen. Das ist immer dann vorteilhaft, wenn noch ein anderes Programm im TPA startbereit ist. Wie PEEK.COM arbeitet VPEEK.COM fortlaufend, wenn keine Adresse angegeben wird. Dazu wird die nächste Adresse in einem Register abgelegt. Das Register ist mit ZCNFG einstellbar, verwendet wird die zu PEEK.COM erstellte Konfigurationsdatei PEEK10.CFG.
SUB-Datei-Tip
von Ralf Däubner
Der Syntax mancher Programme kann sich kaum einer merken, schon garnicht bei Programmen, die selten gebraucht werden. Manchmal ist man aber auch zu faul, alles nacheinander einzutippen. Ja, alles schön und gut. Ich oute mich mal als einem faulen Hund, weshalb ich mir das Leben mit diversen SUB-Files vereinfache. Eines davon ist PACKER.SUB:
PMARC !RALLE.PMA *.* ; Test PMEXT !RALLE.PMA
GO.COM ist nichts anderes als das SUBMIT.COM von Mario. Denn gemäß Eddi Murphy erhöht sich die Fehlerquote mit jedem Zeichen. Man braucht also nur noch einzutippen
go packer
und alle Dateien vom aktuellen Laufwerk werden eingepackt. Wichtig ist, daß SUB-File + Programm + SUBMIT.COM (GO.COM) auf dem Systemlaufwerk (Suchpfad) vorhanden sind. Der in dem Beispiel benutzte Packer mag keine Userbereiche, so kann man diesem Manko leicht entgehen (jedenfalls bei ML-DOS).
Mit dem ,,!`` am Anfang des Dateinamens steht das Archiv immer am Anfang im Directory. Wie man es zunächst nennt, ist uninteressant, da man es mit POWER REN umbenennen kann.
Als Beispiel habe ich Basicode damit gepackt. Ihr braucht aber mindestens 2 Laufwerke (großes RAM-Floppy oder zweites Laufwerk). Für Festplattenuser ist der Hinweis ohne Belang. Stört Euch nicht an der Fehlermeldung des Basicoders, der geht! Die Programme also normal wie gewohnt laden.
Hardware-Info: Centronics-Interface am K63xx
Interface-Anschlußbelegung für K 63xx Centronics (TGL 28331/04 Form 302-39)
Nr. | A | B | C |
1 | gnd | paper empty | gnd |
2 | nc | strobe | gnd |
3 | gnd | acknlg | gnd |
4 | gnd | select | gnd |
5 | gnd | data1 | gnd |
6 | select in | data2 | gnd |
7 | auto feed | data3 | gnd |
8 | +5V über R 3.3k | data4 | gnd |
9 | error | data5 | gnd |
10 | gnd | data6 | init |
11 | gnd | data7 | busy |
12 | gnd | data8 | gnd |
13 | chassis gnd | nc | +5V |
Bei der Minimalvariante sind die DIL-Schalter 14-2, 15-1 und 15-2 auf ON zu schalten. Näheres im Manual Teil 1 Seite 77.
Assembler-Programmierkurs - Einleitung
von Jörg Linder
Schon seit geraumer Zeit haben einige Clubmitglieder immer wieder den Wunsch geäußert, daß mal ein Programmierkurs für Assembler in den KC-News veröffentlicht wird. Nun ist es endlich soweit. Nach Abstimmung des Konzeptes wollen wir (Frank Dachselt, Ralf Kästner, Mario Leubner und Jörg Linder) Euch die Assembler- Programmierung in einer Artikelreihe näherbringen.
Weil wir wissen, daß Begriffe wie ,,logische Linksverschiebung mit Carry`` anfangs eher zum Un-Verständnis beitragen, arbeiten wir uns erst allmählich über die Grundlagen und einfache Problemstellungen zu den komplexeren Strukturen vor. Wir hoffen, daß es uns einigermaßen gelingt, die Interessierten bei ihren ersten Schritten in Assembler zu begleiten. Wenn wir darüber hinaus so manchem die Jumps und Calls schmackhaft machen können, würde uns das umso mehr freuen.
Doch bevor wir uns in das Getümmel der Bits und Bytes stürzen, hier noch ein paar Informationen zur Artikelreihe: Angestrebtes Ziel ist natürlich, daß der lernwillige Leser in die Lage versetzt wird, eigene Programme zu schreiben. Am besten lernt es sich anhand von Beispielen, von denen es in diesem Kurs reichlich geben wird. Grundsätzlich bemühen wir uns dabei um Ausgewogenheit und versuchen, die Funktionen sowohl für CAOS als auch CP/M zur Verfügung zu stellen. Da Assembler naturgemäß jedoch sehr systemnah ist, kann es aber mitunter vorkommen, daß es für eines der Systeme keine Entsprechung gibt. (Vielleicht fällt Euch ja eine Lösung ein!)
Nun soll ein Teil dieses Kurses bis zur nächsten Ausgabe, also etwa ein Vierteljahr, Euren Wissensdurst stillen. Bei den sehr interessierten Lesern wird das Durcharbeiten einer Ausgabe aber kaum länger als einen Nachmittag dauern. Um den Lerneffekt nachhaltig zu steigern, werden Aufgaben gestellt. Dabei kann es sich zum Beispiel um die Optimierung von Routinen oder die Entwicklung eines Algorithmus handeln. In der jeweils nächsten Ausgabe stellen wir dann eine mögliche Lösungsvariante vor und erläutern diese.
Die Artikelreihe ist so aufgebaut, daß alle Abschnitte des Kurses aneinandergeheftet werden können und letztendlich ein Handbuch ergeben. Dieses ist nicht nur für Einsteiger gedacht, sondern soll später auch als ständiges Nachschlagewerk dienen. Selbstverständlich ist das Konzept kein Dogma. Auf Anregungen und Vorschläge Eurerseits wollen und werden wir gern eingehen. Dazu könnt Ihr Euch an einen der Autoren wenden.
So, nun aber genug der Vorrede! Auf geht's in den ersten Teil...