###   Projekte und Informationen rund um den KC85   ### 


Top-Themen:

  • Druckersteuerung mit Joystickmodul
  • PC-Mouse am KC
  • UNIPIC 1.0
  • Hilfen für die Arbeit mit EDAS
  • DEP 2.2

Ein paar Worte zur Einleitung

von Jörg Linder

Zunächst möchte ich allen ein gesundes und erfolgreiches NEUES JAHR wünschen (oder was davon noch übrig ist). Vielen Dank für die zahlreichen Briefe und guten Wünsche! Doch ich will mich nicht lange mit der Vorrede aufhalten, sondern gleich beginnen:

Korrekturen KC-News 4/94

Nobody is perfect, also auch ich nicht. Bei der letzten Ausgabe sind mir ein paar Fehler unterlaufen, darum folgen hier die Richtigstellungen:

  • Auch in Erfurt sind die PLZ nur noch fünfstellig. In der Adresseliste muß es "99096" heißen. Die erste Neun ist der Entfernen-Taste zum Opfer gefallen.
  • Im vorderen Teil der News wurde angekündigt, daß die Tauschmedien in der Mitgliederliste abgedruckt werden. Doch ein Blick auf diese lies den Leser verwundern. Dieses Mal fehlen sie aber nicht! (Dafür vielleicht was anderes...)
  • Bei einigen Ausgaben ist die vorletzte Seite (mit dem Impressum) verkehrt kopiert worden. Leider merkt man so etwas erst, wenn schon der halbe Stapel durchgelaufen ist. Also versuche ich, bei dieser und den folgenden Ausgaben aufmerksamer zu sein.
  • Das Programm DIASHOW wird sicherlich vielen gefallen haben. Um zu sehen wie es funktioniert, mußte man aber erst eigene Shows zusammenstellen. Die von Ralf Kästner mitgelieferten Shows habe ich schlichtweg vergessen. Doch aufgeschoben ist nicht aufgehoben - SHOWS.PMA auf der Beilagen-Diskette hat's diesmal drin.
  • Im Artikel von Frank Dachselt zu DRUCK.PMA wurden (wahrscheinlich aufgrund eines fehlerhaften Textfilters) ein paar Zeilen nicht vollständig abgedruckt. Eine andere Filtereinstellung soll demnächst solchen Problemen vorbeugen.

Neue Clubmitglieder - neue Computer

Erfreulicherweise ist unser Club schon wieder gewachsen. Seit den letzten KC-News sind etliche Mitglieder dazugekommen, doch nicht alle sind Besitzer eines KC. Henning Räder besitzt mehrere ZX81. Ihn interessiert besonders der Austausch zwischen ZX81 und KC, sowohl bei Programmen, als auch rein technisch. Dazu sucht er noch jemanden, der ein geeignetes Programm hat, mit dem der KC das ZX81-Kassettenformat lesen und schreiben kann. Wer so etwas hat, möchte sich doch bitte mit ihm in Verbindung setzen! Es ist sicherlich eine Bereicherung für alle KC-User, wenn Programme eines anderen Rechners für uns nutzbar gemacht werden könnten.

Außerdem sucht er noch folgende Programme, die sich vor allem mit dem Fach Chemie beschäftigen: EINGABE, DESIGN, VESPR, AUTO, DIST, CHI, UMWA, VERKL, GENER, PSE, NAMEN, ORBITALE, WAERME-1, WAERME-2, HIERAG, DABA, BRUTTO, ISOTOP, NMR-SPEKTREN, KOEFF, KRISTA-2, TRENN und ANOIWA.

"Alte" Clubmitglieder - unbekannte Wesen?

Von mehreren Mitgliedern wurde vorgeschlagen, daß wir uns in den KC-News vorstellen sollten. Ralf Kästner hat dies in einer anderen Clubzeitschrift gesehen und fand dies ganz gut, da der Club dann nicht mehr so anonym wäre. Wer weiß z. B. was dieser Jörg Linder für ein Kerl ist?

Nun wäre es allerdings sehr langwierig, wenn sich pro Ausgabe ein Mitglied vorstellt. Bei ca. 50 Mitgliedern und vier Ausgaben pro Jahr haben sich nach einem Jahrzehnt noch nicht alle vorgestellt. Was liegt also näher, als daß sich mehrere Mitglieder pro Ausgabe vorstellen. Mit gutem Beispiel geht diesmal ein Teil der Leitungsmitglieder voran. Wann werden wir etwas über Deine Person lesen können? Ich warte auf Post...

Alte Clubmitglieder - alte Probleme?

Leider ist die Zahlungsmoral bei den Clubbeiträgen nicht gerade die beste. Bisher sind erst von 27 Mitgliedern die (Halb-)Jahresbeiträge auf dem Clubkonto eingetroffen (Stand: 28.01.95). Da wir uns nur durch die Beiträge finanzieren, bekommen die säumigen Zahler ihre KC-News erst nach Eingang des Beitrages. Das macht mir die Arbeit zwar nicht leichter, aber es ist gerecht den treu zahlenden Mitgliedern gegenüber!

Der KC-Club braucht ein Logo!

In der heutigen Zeit gilt der Grundsatz: Nur was auffällt, prägt sich ein! Da unser KC-Club ein recht unauffälliges Äußeres hat, brauchen wir ein Erkennungsmerkmal. Für ein derartiges Logo bietet sich ein interner "Wettbewerb" regelrecht an. Daher an dieser Stelle der Aufruf an alle Clubmitglieder: Erstellt ein Logo für den KC-Club und schickt es bis Anfang April an die Redaktion. Beim Clubtreffen werden wir dann über die eingegangenen Exemplare abstimmen.

Wegen der Chancengleichheit sollten jedoch folgende Punkte eingehalten werden:

  • Logo in schwarz/weiß
  • nicht größer als A5
  • es sollte mit einem KC oder einem anderen Z80-Rechner erstellt worden sein (bitte verwendetes Programm angeben) - wegen des übergroßen Vorteils scheiden Computer mit mehr als 8 Bit aus!

Clubtreffen vom 07. bis 09. April

Das Titelblatt habe ich diesmal diesem wichtigen Ereignis gewidmet. Doch nicht nur das - einen Artikel gibt es dazu auch. Alle, die nicht teilnehmen (können), mögen diese Ausführlichkeit verzeihen, aber auch sie werden auf die eine oder andere Weise vom Treffen profitieren. In den KC-News 2/95, die im Mai erscheinen werden, ist dann sicherlich ein Bericht darüber zu lesen.

Auch auf die Gefahr hin, daß mir nach der Fertigstellung der KC-News noch etwas einfällt, mache ich jetzt Schluß, sonst werden sie nie fertig. Wieder einmal bleibt mir nur noch, Euch viel Spaß mit diesen KC-News zu wünschen...

Euer Redakteur


Eine Kurzdokumentation zum Programm "PLZBLN"

von Axel Hermann

Mit diesem Programm können die neuen Postleitzahlen in Berlin verarbeitet werden. Es ist in BASIC geschrieben und besteht aus mehreren Dateien.

In den STSORT-Dateien sind die Straßen unter den einzelnen Buchstaben abgelegt, in den PSORT-Dateien die zugehörigen Postleitzahlen, umsortiert nach der Größe der PLZ.

Mit dem Menüpunkt 1 kann nach der PLZ einer bestimmten Straße gesucht werden. Kommen dabei mehrere Abschnitte einer Straße oder mehrere Straßen gleichen Namens in verschiedenen Stadtbezirken vor, werden alle auf Bildschirm ausgegeben. Bei Bedarf werden die gefundenen Straßen auch ausgedruckt, bis jetzt über M003.

Deshalb ist es bei der zu suchenden Straße nicht nötig, Hausnummern oder Stadtbezirke mit einzugeben. Die Suchbreite beschränkt sich auf die Anzahl der eingegebenen Zeichen (Buchstaben) des String (Straßennamen).

In der Mehrzahl genügen die ersten zehn Zeichen. Je weniger, desto schneller erfolgt die Suche. Bei kurzer Eingabe ist die Ausgabe der Namen umso umfangreicher, z.B. alle Straßen aber auch alle Plätze gleichen Namens werden dann ausgegeben, was ich aber nicht als störend empfunden habe.

Die große Stärke dieses Programms ist der nächste Punkt.

Mit dem Menüpunkt 2 werden alle Straßen einer PLZ gesucht und angezeigt. Dabei werden alle Dateien durchsucht. Dies kann einige Zeit in Anspruch nehmen. Auch hierbei ist der Papierdruck möglich.

Zu einer einzigen Datei sind die Buchstaben QXY zusammengefaßt. Die sehr großen Dateien wurden geteilt, damit im BASIC-Programm noch Erweiterungen möglich werden.

Bei der Eingabe sind zu beachten:

  1. Groß- und Kleinschreibung
  2. Bindestriche oder Leerzeichen
  3. Abgekürzt ist nur das Wort Str. oder -str.

Bei der Eingabe von Ä Ö Ü sind die Tastatursonderzeichen zu verwenden, um auch einen korrekten Papierdruck zu gewährleisten.

  • für Ä das Vollzeichen
  • für Ö den senkrechten Strich
  • für Ü das Negationszeichen

Eine große Bedeutung hat der Hinweis auf Seite 229 im neuen Postleitzahlenbuch auch für dieses Programm.

Werden Schreibfehler gefunden bin ich für jeden Hinweis dankbar. Für die Richtigkeit der Angaben wird keine Garantie übernommen!

Die Dateien entsprechen dem Stand vom 29.01.93. Der Nachteil ist, daß sie nun auf dem aktuellsten Stand gehalten werden müßten (zur Aktualisierung siehe Hinweis im PLZ-Buch S.33).

Für PLZ auf Postfach-Adressen gibt es Sonderverzeichnisse (PLZ-Buch S.26).


Druckersteuerung mit Joystickmodul

von Mario Leubner

Welcher KC-Besitzer hat nicht schon bedauert, daß sein Computer von Haus aus über keine Centronics-Schnittstelle für den Anschluß eines Druckers verfügt. In /1/ wurde eine Möglichkeit vorgestellt, die den Expansionsbus des Computers nutzt. Das ist aber nur solange geeignet, wie kein Floppy benutzt wird. Andere Versionen benutzen das Modul M001 (Digital-In-Out) oder Eigenbau-Module mit PIO-Schaltkreis. Da aber die Modulsteckplätze des KC schnell vergeben sind, ist entweder vor dem Drucken ein Modulwechsel nötig oder man muß auf andere Module verzichten. Die von mir heute vorgestellte Lösung gestattet mit einem einzigen Modul die Erledigung von zwei Aufgaben. Voraussetzung ist das Vorhandensein eines Joystickmoduls M008.

Die Idee

Hauptkomponente des M008 ist ein PIO-Schaltkreis U855D (oder Z80-PIO). Über 6 Anschlüsse des Port A wird damit eine Joystickabfrage durchgeführt. Ein PIO hat aber bekanntlich 2 Ports mit je 8 Anschlüssen. Da bleiben genau 8 Daten- und 2 Steuerleitungen übrig, die für die Minimalkonfiguration der Centronics-Schnittstelle benötigt werden.

Mit diesen Gedanken öffnete ich mein Modul und mußte mit Freude feststellen, daß der Hersteller beim Entwurf des Moduls wahrscheinlich ähnliche Gedanken hatte. Das Modul ist bereits für eine solche Funktion vorbereitet und enthält auf der Leiterplatte alle nötigen Leiterzüge und Bohrungen zur Aufnahme der zusätzlichen Bauelemente. Weitere Nachforschungen ergaben, daß ein Modul "Joystick+Centronics" mit der Bezeichnung M021 geplant war. Ob ein solches Modul jemals in Mühlhausen gebaut wurde, ist mir nicht bekannt. Wenn es User gibt, die ein Original-M021 ihr Eigen nennen können, dann würde ich mich freuen, mit ihnen in Kontakt zu treten. Mich interessieren vor allem die dazu angebotenen Treiberprogramme.

Die zur Nachrüstung erforderlichen Bauelemente gehen aus der Leiterführung und Anschlußbelegung fast eindeutig hervor. Lediglich beim Treiber der Steuerleitungen BUSY und /STROBE ist es theoretisch möglich, TTL-Schaltkreise mit und ohne Negation einzusetzen, also DL000 (NAND-Gatter) oder DL008 (AND-Gatter). Ich entschied mich für den DL000. Durch Nachfrage bei Herrn Günther Drechsel, der ja noch Restbestände an KC-Hardware bietet, habe ich erfahren, daß das M021 mit DL008 aufzubauen ist. Aus diesem Grund habe ich mein Modul nochmals umgebaut und auch die Treiber umgeschrieben. Das nach der folgenden Anleitung erweiterte M008 ist also kompatibel zum Original-M021.

Der Umbau des M008

Sollte es Besitzer eines M021-Moduls geben, so können sie diesen Abschnitt überlesen und sich gleich mit der Software weiter beschäftigen.

Die Nachrüstung des Moduls ist denkbar einfach. Bild 1 (am Ende des Beitrages) zeigt den Bestückungsplan der Modul-Leiterplatte. Die neuen Bauelemente müssen nur an die entsprechenden Stellen eingelötet werden. Sind sämtliche Lötarbeiten ausgeführt, muß nur noch in die Frontplatte die neue Aussparung für die Centronics-Buchse eingebracht werden. Nun kann man das Modul wieder zusammenbauen und ausprobieren.

Benötigt wird folgendes Material:

1 * Schaltkreis DL008D (74LS08)
1 * Schaltkreis DL541D (74LS541) oder 74LS244
1 * Stützkondensator (47 bis 100nF)
1 * 25-polige SUB-D-Buchsenleiste mit abgewinkelten Anschlüssen

Zur Schaltung

Leider besitze ich keinen Original-Schaltplan vom M008 oder M021, so daß ich nur den interessierenden Schaltungsteil in Bild 2 wiedergeben will. Der Treiberschaltkreis DL541 verstärkt die acht Datensignale des PIO-Port B und gibt sie ohne Negation auf den 25-poligen Steckverbinder X2. Die beiden Freigabesignale OE1 und OE2 liegen auf Masse und schalten den Treiber ständig durch. Das BUSY-Signal gelangt über ein Gatter des DL008 an Bit 6 des PIO-Port A. Ein weiteres Gatter gibt das Bit 7 des PIO-Port A als /STROBE-Signal zu X2.

Die Druckersteuerung erfolgt nur über die beiden Signale BUSY und /STROBE. Das stellt eine Minimalvariante dar, ist aber durchaus üblich und unproblematisch:

BUSY
(vom Drucker)
ist das Signal HIGH, kann der Drucker keine Daten empfangen (offline, Druckpuffer voll, Papierendesensor ...)
 
/STROBE
(zum Drucker)
ein LOW-Impuls auf dieser Leitung zeigt an, daß Daten eingelesen werden können. Während des Impulses sind die Daten stabil zu halten.

Die Belegung der 25-poligen SUB-D-Buchsenleiste entspricht dem üblichen Standard, der auch bei PC's zur Anwendung kommt. Damit kann also jeder Drucker mit Original-Centronics-Kabel an das Interface angeschlossen werden. Die an der Maximal-Centronics-Schnittstelle noch zusätzlich vorhandenen Anschlüsse sind bei unserem M021 nicht belegt.

Software

Was nützt eine Centronics-Schnittstelle ohne geeignete Treibersoftware? Die Betriebssysteme CAOS und MicroDOS stellen jedenfalls bisher keine Centronics-Treiber zur Verfügung, so daß nur nachladbare Treiber helfen können. Das von mir geplante CAOS4.3 enthält den Centronics-Treiber im Betriebssystem, wie bereits in der Datei CAOS43.PMA auf der Beilagen-Diskette der KC-News 4/94 zu lesen war.

In unserem speziellen Fall ist zum weiteren Betrieb des Moduls als Joystickmodul eine geänderte Joystickabfrage vorteilhaft. Aber keine Angst, alle Originaltreiber funktionieren weiter (eventuell ist bei Joystickbetrieb der Drucker abzuziehen, um den Originalzustand des M008 vorzutäuschen). Bei den Originalprogrammen aus dem Anleitungsheft wird Port A einmal im Bitbetrieb initialisiert, wobei alle Bits als Eingänge definiert werden. Beim Betrieb wird auf Byte-Eingabe uminitialisiert. Für den Betrieb des Joysticks ergeben sich daraus keine Einschränkungen. Ein gleichzeitiger Betrieb von Drucker und Joystick wird aber durch die Byte-Eingabe verhindert.

Diesen Kompromiß kann man verkraften. Drucker- und Joysticktreiber können gleichzeitig im Speicher stehen, aber immer nur einer aktiviert sein. Effektiver wäre ein Joysticktreiber, der sich mit dem Druckertreiber "verträgt" - vielleicht im neuen CAOS?

1. Joysticktreiber:

Der neue Joysticktreiber, der im Assembler-Quelltext und als Hexlisting abgedruckt ist, hat folgende Eigenschaften:

  • Treiber ist verschieblich; dadurch nur ein Programm für alle Aufgaben (BASIC, MC mit und ohne Floppy ...)
  • nur ein Menüwort "JOYS"; dieses dient zum Starten des Treibers nach RESET oder wenn nicht mit Selbststart geladen wurde.
  • Joystick muß nicht mehr abgeschalten werden, da bei losgelassenen Tasten der Ausgangszustand wiederhergestellt wurde (PIO im Bitbetrieb). Das gibt weder Konflikte beim Laden von Kassette noch beim Druck über die Centronics-Schnittstelle.
  • einziger Kompromiß: während des Druckens darf der Joystick nicht betätigt werden, da dies zur zeitweiligen Uminitialisierung der PIO führt und den Druckvorgang stört. Dasselbe gilt für die Magnetbandarbeit - aber die Tastatur darf ja während LOAD oder SAVE auch nicht betätigt werden, was also keine Umstellung bedeutet.

Noch ein Hinweis für D004-Besitzer:

Der Joystick kann auch in der MicroDOS-Betriebsart verwendet werden. Einige Spiele von SCPX verlangen z.B. zur Steuerung den Ziffernblock (4-links, 5-runter, 6-rechts, 8-hoch). Das ist auf der KC-Tastatur sehr beschwerlich. Wenn man sich jedoch die ersten Bytes des Joysticktreibers mit den entsprechenden Codes versieht, ist es kein Problem mehr!

Folgendermaßen ist der Joysticktreiber zu laden:

  1. CAOS-Diskette einlegen und mit JUMP FC starten
  2. Joysticktreiber laden und starten (z.B. Adreßbereich ab 4000H)
  3. eventuell mit MODIFY die gewünschten Belegungen ändern
  4. PC-Diskette einlegen und mit JUMP FC starten

Der neue Joysticktreiber ist ab Adresse 0 abgedruckt. Er ist prinzipiell genauso aufgebaut wie die Originalprogramme aus dem Anleitungsheft, im Gegensatz zu diesen ist er aber verschieblich und ein paar Bytes länger.

Wer das Hex-Listing eingetippt hat, sollte es mit

%SAVE 0000 008A 000D

abspeichern. Dann kann er durch Angabe eines Offsets auf jede beliebige Adresse geladen werden.

Edas-Quelltext der neuen Joystickabfrage:

;--------------------------------------
; JOYS.KCC - Joystickabfrage
;
; ML-Soft 28.12.1992
;--------------------------------------
CTC3    EQU 8FH                  ;CTC Kanal3
PIOD    EQU 90H                  ;Datenwort
PIOS    EQU 92H                  ;Steuerwort
ITAB    EQU 01D4H                ;Interrupt-Tab.
UREL    EQU 0F00FH               ;rel. UP-Aufruf
;-------
        ORG 0
CTAB:   DEFB 00H
        DEFB 0BH                 ;UP
        DEFB 0AH                 ;DOWN
        DEFB 08H                 ;LEFT
        DEFB 09H                 ;RIGHT
        DEFB 0DH                 ;FIRE
;-------
        DEFW 7F7FH
        DEFM 'JOYS'
        DEFB 1
START:  DI
        LD HL,ISR1-#-8
        CALL UREL
        DEFW ADR-#-2             ;Adresse berechnen
        LD (ITAB),HL
        LD A,ITAB                ;D4H
        OUT PIOS,A               ;INT-Vektor
        LD A,0CFH                ;Bitbetrieb
        OUT PIOS,A               ;Betriebsart
        LD A,7FH                 ;Bit7=Ausgang
        OUT PIOS,A               ;E/A-Steuerw.
        LD A,97H                 ;Jedes Bit INT
        OUT PIOS,A               ;INT-Steuerw.
        LD A,0C0H                ;INT-Maske
        OUT PIOS,A
        EI
        RET
;
;erste Initialisierung Joystick-Modul:
;------------------------------------
ISR1:   PUSH AF
        PUSH HL
        PUSH DE
        LD A,3                   ;PIO-DI
        OUT PIOS,A
        LD HL,ISR2-#-8
        CALL UREL
        DEFW ADR-#-2             ;Adresse berechnen
        LD (ITAB),HL
        LD A,04FH                ;Byte-Eingabe
        OUT PIOS,A               ;Betriebsart
        LD A,087H                ;PIO-EI
        OUT PIOS,A               ;INT-Steuerw.
        JR END1
;
;Betrieb Joystick-Modul:
;----------------------
ISR2:   PUSH AF
        PUSH HL
        PUSH DE
        PUSH BC
        LD HL,CTAB-#-8           ;Tabelle
        CALL UREL
        DEFW ADR-#-2             ;Adresse berechnen
        IN A,PIOD
        LD B,4
        LD C,A
L02:    SRL A
        INC HL
        JR NC,L01                ;Bit aktiv
        DJNZ L02
        INC HL
        BIT 4,C                  ;Test FIRE
        JR Z,L01
        CALL UREL
        DEFW START-#-2           ;Ausgangszustand, wenn
        JR END2                  ;keine Taste
L01:    LD A,M                   ;Code holen
        LD (IX+13),A             ;Tastencode eintragen
        SET 0,(IX+8)             ;Taste aktivieren
        LD A,0A7H                ;Neue ZK laden
        OUT CTC3,A               ;CTC-Steuerw.
        LD A,08FH                ;ZK Tastatur
        OUT CTC3,A
END2:   POP BC
END1:   POP DE
        POP HL
        POP AF
        EI
        RETI
;-------
ADR:    POP DE                   ;Berechnung der
        PUSH DE                  ;rel. Adresse
        ADD HL,DE
        RET

Hex-Listing der neuen Joystickabfrage:

Adressen: 0000 008A 000D JOYS.KCC
Adresse Daten Checksum
0000 00 0B 0A 08 09 0D 7F 7F 0131
0008 4A 4F 59 53 01 F3 21 19 0273
0010 00 CD 0F F0 70 00 22 D4 0332
0018 01 3E D4 D3 92 3E CF D3 0458
0020 92 3E 7F D3 92 3E 97 D3 045C
0028 92 3E C0 D3 92 FB C9 F5 05AE
0030 E5 D5 3E 03 D3 92 21 0D 038E
0038 00 CD 0F F0 48 00 22 D4 030A
0040 01 3E 4F D3 92 3E 87 D3 038B
0048 92 18 35 F5 E5 D5 C5 21 0474
0050 A9 FF CD 0F F0 2F 00 DB 047E
0058 90 06 04 4F CB 3F 23 30 0246
0060 0E 10 F9 23 CB 61 28 07 0295
0068 CD 0F F0 A0 FF 18 10 7E 0411
0070 DD 77 0D DD CB 08 C6 3E 0415
0078 A7 D3 8F 3E 8F D3 8F C1 04F9
0080 D1 E1 F1 FB ED 4D D1 D5 067E
0088 19 C9 00E2

2. Druckertreiber unter CAOS:

Der Druckertreiber für die CAOS-Betriebsart enthält eine Weiterentwicklung der Druckroutinen nach /2/ bzw. /3/. Ermöglicht wird der Betrieb am KC85/2 bis /4 (auch im hochauflösenden Grafikmodus). Man kann zwischen 8 verschiedenen Modi wählen, die beim Aufruf des Treibers mit dem Menüwort "LX400" anzugeben sind. Zeichenausgabe erfolgt über User-Ausgabe-Kanal 2 (in BASIC also PRINT#3).

Die Syntax des Befehls ist:

%LX400 p

p ist der Hardcopy-Parameter mit
0 ... keine Reaktion auf SHIFT-CLR
1 ... Protokollfunktion
2 ... Screencopy mit Pseudografik
3 ... Hardcopy normale Größe, schwarz/weiß, positiv
4 ... Hardcopy normale Größe, schwarz/weiß, negativ
5 ... Hardcopy doppelte Größe, schwarz/weiß, positiv
6 ... Hardcopy doppelte Größe, schwarz/weiß, negativ
7 ... Hardcopy doppelte Größe, Grauwerte, positiv
8 ... Hardcopy doppelte Größe, Grauwerte, negativ

Wird kein Parameter angegeben, so erfolgt eine Neuinitialisierung des Moduls mit den Daten der letzten Einstellung. Das ist z.B. nach Reset notwendig.

Der Druckertreiber ist als Hex-Listing ab Adresse 0 abgedruckt. Da der Treiber verschieblich ist, kann er auf jede beliebige Adresse eingegeben werden. Zur Eingabe auf Adresse 0 ist er zu lang, so daß es mit den Systemarbeitszellen zu Konflikten kommt. Er sollte vorteilhaft auf den Adreßbereich eingegeben werden, auf dem er später hauptsächlich laufen soll. Nach der Eingabe ab 200H ist er z.B. mit

%SAVE 0200 06E0 020A

selbststartend abzuspeichern. Durch die Angabe eines Offsets kann der Druckertreiber auf jede beliebige Adresse geladen werden. Doch aufpassen, jetzt ist Ladeadresse = Offset+abgespeicherte Adresse!

Es empfiehlt sich ein Laden ab BA00H bzw. beim KC85/4 ab A820H, da diese Bereiche von Programmen meist nicht belegt werden. Natürlich kann auch jeder andere freie Adreßbereich verwendet werden.

Nach dem Laden wird dann automatisch das Modul M021 zur Druckerausgabe initialisiert, dabei wird die Protokollfunktion eingestellt (HCPZ = 01H). Jede Funktion muß aber erst durch SHIFT-CLR oder Ausgabe des Zeichencodes 0FH aktiviert werden. Die Protokollfunktion kann damit auch wieder ausgeschaltet werden.

Als Zeichenbilder bei der Protokollfunktion bzw. Screencopy können die in (CCTL0) bis (CCTL3) vereinbarten Zeichenbildtabellen als Pseudografikzeichen /4/ oder die druckereigenen Zeichen verwendet werden. Die Auswahl erfolgt über das Steuerbyte HCPZ. In diesem Steuerbyte werden auch alle Einstellungen des Treibers gespeichert:

Aufbau des Steuerbytes HCPZ (Adresse 0B7E1H):

Bit 0
= 0 keine Reaktion auf SHIFT-CLR
= 1 Protokollfunktion ein
 
Bit 1
= 0 Screencopy aus
= 1 Screencopy ein
 
Bit 2
= 0 Hardcopy aus
= 1 Hardcopy ein
 
Bit 3
= 0 Zeichen entsprechend Druckercode
= 1 Zeichen als Pseudografik
 
Bit 4
= 0 Zeichen größer 7FH als Pseudografik
= 1 Zeichen größer 7FH als Druckercode
 
Bit 5
= 0 Druck ohne Grauwerte
= 1 Druck mit Grauwerten
 
Bit 6
= 0 Druck positiv
= 1 Druck negativ
 
Bit 7
= 0 Druck im Format 1:1
= 1 Druck in doppelter Größe

Funktion des Farbausdruckes

Bei den Wahlfunktionen 3 bis 6 dienen nur die Pixel zur Ansteuerung der Drucknadeln. Der Inhalt des Farbspeichers wird beim KC85/2 und KC85/3 nicht berücksichtigt. Beim KC85/4 und eingestellter hoher Farbauflösung wird der Farbspeicher mit herangezogen. Die Farben Weiß, Türkis und Rot werden dabei als Vordergrundfarben, Schwarz als Hintergrundfarbe interpretiert.

Während die Wahlfunktionen 3 und 4 ein Druckbild in normaler Größe liefern, so erzeugen die Funktionen 5 bis 8 die doppelte Größe, dafür aber um 90 Grad gedreht auf dem Papier.

Bei den Wahlfunktionen 7 und 8 werden der Pixel- und der Farbspeicher ausgewertet. Zur Darstellung eines Pixels auf dem Drucker stehen dabei 4 Punkte zur Verfügung. Um beim KC85/2 und KC85/3 (bzw. KC85/4 bei geringer Farbauflösung) 8 Vordergrund- und Hintergrundfarben darstellen zu können, wird das Nachbarpixel zur Auswertung mit herangezogen: Bei den Farben Weiß, Türkis, Purpur und Schwarz werden die benachbarten Pixel gleich dargestellt, bei den Farben Gelb, Grün, Rot und Blau dagegen unterschiedlich. Diese Kombinationen sind in der Farbrastertabelle (Anfangsadresse+480H) codiert. Durch einen schachbrettähnlichen Versatz werden die verschiedenen Abstufungen erreicht. Die 30-Grad-Farbverschiebung in der Vordergrundfarbe wird allerdings nicht berücksichtigt. (siehe /2/)

Beim KC85/4 wird bei hoher Farbauflösung nicht von der Farbrastertabelle ausgegangen, sondern von den 4 möglichen Punkten werden bei Schwarz 4, bei Türkis 3, bei Rot 1 und bei Weiß 0 Punkte gesetzt.

Zum Schwarz/weiß-Druck verwendet man am zweckmäßigsten die Wahlfunktion 3, welche der Original-Hardcopyroutine des Herstellers entspricht, oder die Funktion 5 um die doppelte Größe zu erhalten. Beim Grauwerte-Druck lassen sich mit der Wahlfunktion 8 die besten Ergebnisse erzielen.

Das Menüwort und der Dateiname des Treibers "LX400" stammt von dem Drucker, der mir bei der Entwicklung zur Verfügung stand. Zur Druckersteuerung im Grafikbetrieb enthält das Programm Steuerzeichenfolgen, die auf den EPSON-LX400 abgestimmt sind. Dessen Drucker-Betriebssystem "ECS/P" ist aber mit den meisten anderen 9-Nadeldruckern kompatibel. Für 24-Nadeldrucker ist der Befehl ESC,*,5 durch ESC,*,0 zu ersetzen, dazu sind auf Ladeadresse+0463H und 0482H die Werte 05 in 00 zu ändern.

Ab Ladeadresse+4D0H enthält das Programm eine Tabelle mit nicht im Druckerzeichensatz enthaltenen Zeichencodes. Diese Codes werden unabhängig von den anderen Einstellungen immer als Pseudografikzeichen gedruckt! Bei Bedarf kann auf diese Adresse 00H eingegeben werden, dann werden diese Zeichen ungewandelt zum Drucker weitergegeben.

Hex-Listing des Druckertreibers LX400.KCC:

(Anm. der Redaktion: Das Hex-Listing des Druckertreibers wurde hier nicht abgedruckt, da es über 3 Seiten füllen würde. In M021.PMA auf der Beilagen-Diskette sind alle notwendigen Dateien zu finden.)

3. Druckertreiber unter MicroDOS:

Wer ein Floppy-Laufwerk besitzt, möchte natürlich auch in der PC-Betriebsart seinen Drucker betreiben. Dazu ist der Druckertreiber LX400.LST geeignet. Dieser Treiber kann vom Installationsprogramm MSYSG.COM verwaltet werden. Damit ist z.B. ein Eintragen des Treibers in die Systemspuren der Diskette möglich. Eine so installierte Diskette lädt bei Start mit "JUMP FC" den Treiber in das KC-Grundgerät und gestattet sofort die Druckerausgabe mit Control-P.

Der Druckertreiber hat folgende Eigenschaften:

  • Initialisierung des Joystickmoduls zur Druckerausgabe
  • Zeichenausgabe an die Centronics-Schnittstelle
  • Eintragung der Hardcopy-Funktion (zu Erreichen mit Shift-CLR!)

Die Hardcopyroutine arbeitet für 9-Nadler wieder mit ESC,*,5. Um den Treiber mit 24-Nadlern zu betreiben, kann auf Adresse 0258H wieder der Wert 0 eingetragen werden.

Der MicroDOS-Treiber ist ab Adresse 200H abgedruckt. Das erweist sich als günstig, da er auch ab dieser Adresse im Grundgerät läuft. Zum Erzeugen der Datei LX400.LST auf der Diskette geht man folgendermaßen vor:

  1. Starten der CAOS-Betriebsart
  2. SERVICE.KCC laden
  3. Eingabe des Listings im Grundgerät ab Adresse 200H
  4. Abspeichern der Datei auf Diskette mit:
    %FSAVE 0200 02C0 (Name:LX400.XXX)
  5. Starten der PC-Betriebsart
  6. Aufruf des Dienstprogramms POWER oder DIENST
  7. Einlesen der Datei LX400.XXX mit dem Kommando:
    LOAD LX400.XXX 4000
  8. Abspeichern ohne Vorblock mit dem Kommando:
    SAVE LX400.LST 4080 2

Damit befindet sich die Datei LX400.LST auf der Diskette und erscheint beim Aufruf der Druckertreiber unter MSYSG.COM ausgewählt werden.

Hex-Listing des MicroDOS-Treibers:

Adressen: 0200 02C0           LX400.LST
Adresse        Daten          Checksum
0200  18 0E 18 39 00 00 00 00   0077
0208  00 00 00 00 00 0A 0D 07   001E
0210  F3 3E CF D3 92 3E 7F D3   04F5
0218  92 3E CF D3 93 AF D3 93   051A
0220  3E 80 D3 90 21 5B 02 22   02C1
0228  99 B7 FB DB 90 CB 77 C0   05B8
0230  21 0D 02 06 03 7E 23 CD   01A7
0238  3D 02 10 F9 C9 F5 DB 90   0471
0240  CB 77 20 FA F1 F5 D3 91   05A6
0248  AF D3 90 3E 80 D3 90 F1   0524
0250  C9 0D 1B 4A 18 09 1B 2A   01A1
0258  05 40 01 E5 D5 F5 C5 26   03E0
0260  00 E5 21 51 02 06 0A CD   0236
0268  35 02 E1 2E 00 06 08 E5   0239
0270  11 00 B7 E5 D5 CD 03 F0   0442
0278  34 7E D1 12 13 E1 24 10   02BD
0280  F2 0E 08 06 08 21 00 B7   01EE
0288  CB 16 17 23 10 FA CD 3D   032F
0290  02 0D 20 EF E1 2C 3E 28   0291
0298  BD 20 D2 DD 7E 0D FE 0D   0422
02A0  28 06 7C C6 08 67 30 B9   02C8
02A8  3E 0D CD 3D 02 3E 0A CD   026C
02B0  3D 02 C1 F1 D1 E1 C9 30   049C
02B8  32 31 31 39 32 00 00 00   00FF

Abschließende Hinweise

Der hier vorgestellte Centronics-Anschluß arbeitet bei mir mit einem KC85/4+Floppy und einem EPSON-Drucker LX400 bis jetzt ohne Beanstandungen. Wer mit der Eingabe der Listings nicht zurecht kommt, bzw. Interesse an weiteren angepaßten Programmen für den KC85/4 hat, die mit dieser Schnittstelle arbeiten, dem stelle ich bei Zusendung einer formatierten CAOS-Diskette oder einer leeren Kassette die gewünschte Software gern zur Verfügung. (Bitte ausreichend frankierten und adressierten Rückumschlag nicht vergessen!)

Folgende Programme sind noch vorhanden:

DIRJ.KCC
Diskettendirectory drucken
 
FRACTAL4.KCC
Fractalgenerator "Apfelmännchen"
 
WordPro 6.0
Weiterentwicklung von WordPro 5.0
 
EP40/JOY.EDP
EDIPIC40 (Druck über M003 oder M021)
 
EP41/JOY.EDP
EDIPIC41 (Druck über M003 oder M021)
 
KCDI.COM
universelles Druckerinstallationsprogramm für MicroDOS

KCDI erhalten Sie gegen eine Schutzgebühr von DM 5,-. WordPro 6.0 kostet 10,- DM und für registrierte WordPro5-Nutzer 5,- DM.

Literatur:

/1/
Schlenzig K. und S.: "Tips und Tricks für kleine Computer"
Militärverlag, Berlin 1988

/2/
Gutzer, H.; Wendt, S.: "Grafikdruck mit Grauwerten vom KC85/3"
FUNKAMATEUR, Berlin 37 (1988) 7, S. 326-327

/3/
Gutzer, H. und S.; Wendt, S.: "Grafikdruck mit paralleler Schnittstelle am KC85/3"
FUNKAMATEUR, Berlin 38 (1989) 12, S. 583-584

/4/
Schiwon, K.: "Ausgabe von Pseudografikzeichen auf Matrixdrucker"
Mikroprozessortechnik, Berlin 1 (1987) 6, S. 180-181


Beschreibung des Programms MEMORY.KCC

von Mario Leubner

Aller guten Dinge sind drei ...

oder auch vier? In meinem Beitrag zum Modul M021 sind drei HEX-Listings der Treiberprogramme enthalten. Sie stellen eine Art Software-Übermittlung "ohne Datenträger" dar. Nun gibt es verschiedene Wege, die Listings abzutippen und zum Laufen zu bringen. Die einfachste Art: DISPLAY oder MODIFY des CAOS-Betriebssystems. Dies ist erschwerlich und obendrein fehlerbehaftet.

Wer das Buch "Tips und Tricks für kleine Computer" kennt, der kennt bestimmt auch das Programm HEXI. Es bietet den Vorteil, daß Zeilenprüfsummen zur Kontrolle angegeben werden. Das im folgenden (vierten) Listing abgedruckte Programm MEMORY ist nach der selben Idee aufgebaut. Es bietet aber noch weitere Vorteile:

  • Programm ist verschieblich und läuft auf jedem Adreßbereich
  • Leertaste zwischen den Bytes und Enter-Taste am Zeilenende entfällt
  • ständige Aktualisierung der Zeilenprüfsumme
  • Blättern im Speicher mit Shift und senkrechten Cursortasten
  • Kommandos Punkt, Komma und Schrägstrich des DISPLAY sind genauso weiter zu benutzen
  • Zeilenprüfsumme kompatibel zu HEXI

Wer also die Mühe nicht scheut, der kann zuerst dieses Listing eintippen, und dann die anderen Eingaben damit komfortabel durchführen. Aber auch hier aufpassen: abgedruckt ist das verschiebliche Programm wieder ab Adresse 0, eingeben z.B. ab 200H! Ich würde weiterhin vorschlagen, wenn künftig HEX-Listings abgedruckt werden, daß wir bei dem Format bleiben.

Adressen: 0000 0400           MEMORY.KCC
Adresse        Daten          Checksum
0000  7F 7F 4D 45 4D 4F 52 59   02D7
0008  01 A7 20 05 CD 03 F0 19   02A6
0010  C9 AF 21 00 00 11 28 20   01F2
0018  CD 03 F0 3C 3E 01 21 00   025C
0020  04 11 28 18 CD 03 F0 3C   0251
0028  3E 02 21 04 1E 11 20 01   00B5
0030  CD 03 F0 3C AF CD 03 F0   046B
0038  3D CD 03 F0 23 0C 0A 12   0248
0040  20 20 20 20 20 20 20 4D   012D
0048  45 4D 4F 52 59 20 56 65   0267
0050  72 73 2E 32 20 60 20 6D   0252
0058  6C 20 31 39 39 31 0A 0D   0177
0060  20 41 64 72 2E 20 20 00   01A5
0068  06 17 3E 5F CD 03 F0 00   027A
0070  10 FA CD 03 F0 23 20 43   0350
0078  68 65 63 6B 73 75 6D 00   02F0
0080  3E 01 CD 03 F0 3D CD 03   030C
0088  F0 23 11 00 CD 0F F0 F8   03E8
0090  02 21 07 01 22 A0 B7 21   01C5
0098  00 00 22 97 B7 AF 32 96   02E7
00A0  B7 CD 03 F0 04 FE 03 20   039C
00A8  06 CD 0F F0 30 03 C9 FE   03CC
00B0  2F 20 3D 3E 02 CD 03 F0   028C
00B8  3D CD 03 F0 23 11 02 4E   0281
00C0  65 75 65 20 41 64 72 65   02DB
00C8  73 73 65 3A 00 CD 03 F0   0345
00D0  17 21 0D 00 19 EB CD 03   0219
00D8  F0 22 3E 0C CD 03 F0 00   031C
00E0  3A 81 B7 A7 28 02 18 98   02F3
00E8  3E 01 CD 03 F0 3D 18 B1   0305
00F0  FE 09 20 07 CD 0F F0 13   030D
00F8  02 18 A6 FE 08 20 54 3A   0274
0100  96 B7 A7 3A A0 B7 28 06   03B3
0108  3D 32 A0 B7 18 3F FE 09   0324
0110  30 2E 3E 1C 32 A0 B7 3A   027B
0118  A1 B7 FE 02 30 1B 01 08   02AC
0120  00 2A 82 B7 A7 ED 42 22   035B
0128  82 B7 2A 97 B7 0B 09 22   02E7
0130  97 B7 CD 0F F0 52 02 18   0386
0138  14 3D 3D 32 A1 B7 18 06   0236
0140  3D 3D 3D 32 A0 B7 2A 97   0301
0148  B7 2B 22 97 B7 AF 32 96   03C9
0150  B7 18 A6 FE 0A 20 3A 3A   0311
0158  A1 B7 FE 17 01 08 00 38   02AE
0160  0E 2A 82 B7 09 22 82 B7   02D5
0168  CD 0F F0 1C 02 18 0F 2A   023B
0170  97 B7 09 22 97 B7 3A A1   03A2
0178  B7 3C 3C 32 A1 B7 3A 96   0389
0180  B7 A7 28 07 3A A0 B7 3D   035B
0188  32 A0 B7 AF 32 96 B7 18   03CF
0190  C0 FE 0B 20 2D 3A A1 B7   03A8
0198  FE 02 01 08 00 30 10 2A   0173
01A0  82 B7 A7 ED 42 22 82 B7   046A
01A8  CD 0F F0 DC 01 18 CF 2A   03BA
01B0  97 B7 A7 ED 42 22 97 B7   0494
01B8  3A A1 B7 3D 3D 32 A1 B7   0396
01C0  18 BC FE 0D 20 0E CD 0F   02E9
01C8  F0 41 01 3A A0 B7 FE 07   03C8
01D0  20 F4 18 BB FE 11 20 24   033A
01D8  2A 82 B7 01 50 00 A7 ED   0348
01E0  42 22 82 B7 CD 0F F0 A0   0409
01E8  01 3A 96 B7 A7 28 07 3A   0298
01F0  A0 B7 3D 32 A0 B7 AF 32   03FE
01F8  96 B7 18 93 FE 12 20 09   0331
0200  2A 82 B7 01 50 00 09 18   01D5
0208  D8 FE 14 20 06 CD 03 F0   03D0
0210  00 18 E7 FE 2E 20 3B 3E   02C4
0218  02 CD 03 F0 3D CD 03 F0   03BF
0220  23 02 42 65 65 6E 64 65   0268
0228  6E 20 28 4A 2F 4E 29 20   01C6
0230  3F 00 CD 03 F0 04 CB AF   037D
0238  F5 3E 0C CD 03 F0 00 F1   03F0
0240  FE 4A 20 06 CD 0F F0 95   03CF
0248  01 C9 3E 01 CD 03 F0 3D   0306
0250  18 A8 FE 2C 20 5C 3E 02   02A6
0258  CD 03 F0 3D CD 03 F0 23   03E0
0260  02 45 69 6E 67 61 62 65   02AD
0268  20 41 53 43 49 49 2D 43   01F9
0270  6F 64 65 3A 00 CD 03 F0   0332
0278  04 FE 20 38 27 FE 80 30   032F
0280  23 CD 03 F0 00 2A 82 B7   0346
0288  ED 4B 97 B7 09 77 3E 01   0345
0290  CD 03 F0 3D CD 0F F0 F0   04B9
0298  00 CD 0F F0 6E 00 3E 02   027A
02A0  CD 03 F0 3D 3E 0C CD 03   0317
02A8  F0 00 3E 01 CD 03 F0 3D   032C
02B0  18 9E FE 30 38 9A FE 3A   03EE
02B8  38 12 CB AF FE 41 38 90   03CB
02C0  FE 47 30 8C CD 03 F0 00   03C1
02C8  C6 09 18 04 CD 03 F0 00   02AB
02D0  E6 0F 5F 2A 82 B7 ED 4B   03EF
02D8  97 B7 09 3A 96 B7 A7 28   03AD
02E0  19 ED 67 AF B3 ED 6F 3A   0465
02E8  A0 B7 3D 32 A0 B7 CD 0F   03F9
02F0  F0 69 00 CD 0F F0 14 00   0339
02F8  18 B6 ED 6F AF B3 ED 67   04E0
0300  3E 01 32 96 B7 CD 0F F0   038A
0308  52 00 18 A4 3A A0 B7 FE   039D
0310  1C 38 2E 3E 07 32 A0 B7   0250
0318  3A A1 B7 FE 17 38 1B 01   02FB
0320  08 00 2A 82 B7 09 22 82   0218
0328  B7 2A 97 B7 0B A7 ED 42   0410
0330  22 97 B7 CD 0F F0 51 00   038D
0338  18 1D 3C 3C 32 A1 B7 18   024F
0340  0F 3A 96 B7 A7 2A A0 B7   03BE
0348  20 01 23 23 23 22 A0 B7   0203
0350  2A 97 B7 23 22 97 B7 AF   03BA
0358  32 96 B7 C9 2A A0 B7 E5   04AE
0360  2A 82 B7 ED 4B 97 B7 79   0462
0368  E6 F8 4F 09 06 08 11 00   0255
0370  00 7E 83 5F 30 01 14 23   01C8
0378  10 F7 3E 21 32 A0 B7 EB   03DA
0380  CD 03 F0 1A E1 22 A0 B7   0434
0388  C9 2A A0 B7 E5 21 00 01   0351
0390  22 A0 B7 2A 82 B7 0E 0C   02F6
0398  3E 20 CD 03 F0 00 CD 03   02EE
03A0  F0 1A 3E 20 CD 03 F0 00   0328
03A8  06 08 11 00 00 7E 83 5F   017F
03B0  30 01 14 7E CD 03 F0 1C   029F
03B8  3E 20 CD 03 F0 00 23 10   0251
03C0  EC CD 03 F0 23 20 20 00   030F
03C8  EB CD 03 F0 1A EB CD 03   0480
03D0  F0 23 0D 0A 0A 00 0D 20   0161
03D8  BF E1 22 A0 B7 C9 AF CD   055E
03E0  03 F0 3D 21 00 1D 22 A0   0230
03E8  B7 C9 00 00 00 00 00 00   0180
03F0  00 00 00 00 00 00 00 00   0000
03F8  00 00 00 00 00 00 00 00   0000

 


Beschreibung für die MOUSEALL-Treiber

von Henrik Haftmann

Serielle Maus am KC

Nachdem Herr Felgentreu eine parallele Maus für den KC vorgestellt hat, soll nun eine Anschlußmöglichkeit einer seriellen PC-Maus an den KC beschrieben werden. Die Vorteile sind ein äußerst geringer Hardwareaufwand und die Nutzung des zumeist freien 2. Kanals eines M003 V.24.

Voraussetzungen sind eine Mouse-Systems-kompatible Drei-Tasten-Maus und ein M003 V.24. Die meisten Microsoft-kompatiblen Mäuse haben auf ihrer Unterseite einen Schiebeschalter, mit "2" und "3" beschriftet, mit dem die Maus in den Mouse-Systems-Modus gebracht werden kann. Dazu ist dieser Schiebeschalter auf Position "3" zu stellen.

Reine Microsoft-Mäuse, erkennbar an nur 2 Tasten, sind mit dieser Treibersoftware nicht anschließbar, es ist jedoch prinzipiell möglich. Im Muster tut es eine 30-DM-Maus "ELITE". Für den Anschluß der Maus ist ein Adapterstück vom 9- (oder 25-) poligen Sub-D-Stecker zum 5-poligen DIN-Diodenstecker erforderlich, welches selbst herzustellen ist.

Dafür benötigt man:

1 * Diodenstecker 5-polig,
1 * 9- bzw. 25-polige Sub-D-Steckerleiste ("Papa"),
eine passende Posthaube,
ein Stück 4-adriges Kabel

Folgende Anschlüsse sind miteinander zu verbinden:

       DIN      Sub-D     Sub-D
     (5-pol.)  (9-pol.) (25-pol.)
RxD     1    --   2    --   3
GND     2    --   5    --   7 (+ Abschirmung)
TxD     3    --   3    --   2
DTR     5    --  4,7   --   4,11,20

Mehr Bastelaufwand ist nicht erforderlich!! Das Adapterkabel ist zudem universell zur KC-PC-Kopplung einsetzbar.

Nun zur Treibersoftware. Es gibt 3 Versionen, die sich im Komfort und im Speicherplatzbedarf unterscheiden. Alle Programme sind auf KC85/2, /3 und /4 gleichermaßen lauffähig, müssen aber wegen einiger Arbeitszellen im RAM stehen. Die einfachste Version ist MOUSE0.KCC.

Dieser Treiber mit einer Länge unter 100h ist wie die beiden anderen auch frei im Speicher verschieblich. Er ist fest eingestellt auf die Nutzung des Kanals 2 (rechts) des 1. gefundenen V.24-Moduls. Meist wird am Kanal A der Drucker angeschlossen sein.

Nach dem Menüwort %MOUSE können 2 Parameter angegeben werden.

1. Parameter:

    • Tastencode der rechten Maustaste (hexadezimal!). Wenn =0, dann Totlegen des Maustreibers

2. Parameter:

    • Sensitivität der Mausbewegung, getrennt nach X (Low-Teil) und Y (High-Teil) innerhalb der Hexadezimalzahl. Optimal ist 1010. Große Zahlen bedeuten eine geringere Sensitivität.

Werden 1 oder beide Parameter weggelassen, werden die vorhergehenden Werte beibehalten und die evtl. totgelegte Maus reinitialisiert. Nach Reset genügt es so zumeist, einfach %MOUSE aufzurufen.

Softwaremäßig werden die Mausbewegungen in Cursorfunktionen gewandelt. Auf diese Weise kann man den Cursor beliebig bewegen und braucht keinen extra Mauszeiger. Die linke Maustaste ist fest mit "ENTER" belegt, die rechte kann man wahlfrei belegen.

Defaultmäßig wird "F6" angenommen. Die mittlere Maustaste dient zum Ein- und Ausschalten der Cursorbewegungen von der Maus. Sonst passiert es häufig, daß man z.B. beim Eintippen von Text an die Maus anstößt und den Cursor unbemerkt verschiebt, da man meist unentwegt auf die Tastatur schaut.

Achtung! Der Maustreiber muß in einem Speicherbereich liegen, der JEDERZEIT im Zugriff ist. Insbesondere darf der Treiber bei Verwendung in BASIC oder Riemer-WordPro, die ihrerseits bei freigegebenem Interrupt den IRM schalten, NICHT im IRM stehen. Bei BASIC empfiehlt sich der Bereich 200h-300h, wenn überhaupt, und bei WordPro (hier recht zweckmäßig) der Bereich ab C000h.

Speziell für KC85/4-User mit einer Schreibmaschine als Eingabegerät und Drucker am Kanal 2 der SIO ist der Treiber MOUSE1.KCC da. Hier besteht das wenig bekannte SIO-Problem, daß eine SIO eigentlich nur einen interruptfähigen Kanal hat. Mit einem speziellen Softwaretrick ist es möglich, die Maus am Kanal 1 (links) anzuschließen und beide Kanäle per Interrupt zu betreiben.

MOUSE1.KCC ermöglicht aber auch den Anschluß an selbstgebastelte V.24-Module mit anderer SIO-Adresse. Voraussetzing ist hierbei nur, daß die CTC genau wie im V.24-Modul adreßmäßig der SIO folgt.

Die Parameter sind:

1. Parameter:

    • V.24-Kanal-Nummer des M003 (1 oder 2) oder
    • SIO-Kanal-Buchstabe (A oder B) des M003 oder
    • SIO-Kanal-Adresse (>10h) eines USER-Moduls oder
    • Totlegen des Maustreibers, wenn Parameter =0

2. Parameter:

    • Tastencode der rechten Maustaste (wie oben 1. Parameter)

3. Parameter:

    • Sensitivität der Mausbewegungen (wie oben 2. Parameter)

Das Programm ist etwas länger als 100h lang.

Es soll tatsächlich KC-User geben, denen ein V.24-Modul nicht reicht! Drucker (Plural!), Netzwerk, Tastatur, Plotter und viele andere mögliche Peripherie schreien manchmal nach möglichst vielen Buchsen.

Nun unterstützt CAOS im Gegensatz zu seiner Beschreibung kaum den Einsatz mehrerer solcher Module. Denn das würde erfordern, daß die Module möglichst ausgeschaltet gehalten und nur bei Zugriff kurz eingeschaltet werden. Es wurde versucht, einen kleinen Schritt nach vorn zu gehen, indem die Maus an dem 2. V.24-Modul anschließbar ist, das sich für gewöhnlich im "Schatten" des 1. befindet. Es geht! - trotz Interrupt.

Mit dem Treiber MOUSE2.KCC kann die Maus an jeder Buchse von 2 V.24-Modulen angeschlossen werden.

Es sind 4 Parameter angebbar:

1. Parameter:

    • Steckplatz desjenigen V.24-Moduls, an dem die Maus hängt Wenn =0, dann Totlegen der Maus

2. - 4. Parameter:

    • wie 1. - 3. Parameter bei MOUSE1.KCC

Auch bei diesem Programm ist es möglich, eine USER-SIO mit der Mausabfrage zu beschäftigen. Die Programmlänge beträgt ca. 1C0h.

Viel Spaß mit Ihrer neuen Maus wünscht haftmann#software.

P.S.: Es existiert bereits ein Maustreiber mit "echtem" Mauspfeil, vorerst nur am KC85/4. Die Spriteverwaltung macht aber eine Umlenkung aller Betriebssystemroutinen erforderlich, sodaß ein neues Betriebssystem (siehe Modulliste: M000!) fällig wird! Mal sehen, wie lange die Ideenumsetzung dauert...

Noch einige Hinweise bei Problemen

Wenn die Maus an einen KC85/4 Kanal 2 (rechts) am 1. V24-Modul angeschlossen wird, darf die Maus nicht bewegt werden, da sonst gelieferte Bytes als Tastencodes interpretiert werden (wenn mal ein 0Dh dabei gewesen ist). Andererseits läßt sich auf diese supereinfache Weise die prinzipielle Maus-Funktion nachweisen. Zur Unterdrückung solcher Randeffekte mit der Maus genügt bloßes Anwählen von %V24OUT (Umschalten in den Pollingbetrieb).

Funktioniert die Maus absolut nicht, kann es sein (insbesondere bei billigen Mäusen), daß die negative Spannung nicht ausreicht. Hierbei ist eine Modifikation des V24-Moduls vonnöten: Auf der Leiterseite dürfte sich ein Widerstand befinden. Dieser entspricht so nicht dem Original-Schaltplan. Er ist dort abzulöten und in die leicht zu findenden Lötaugen auf der Bestückungsseite hinter den 4 Miniplastdioden einzusetzen, wo er nach Schaltplan auch hingehört.

Was die Maus dem Computer sagt...

Eine serielle PC-Maus kann im allgemeinen in 2 Modi betrieben werden. Ein Schiebeschalter an der Mausunterseite schaltet zwischen diesen um.

Leitungen

Eine Billig-Maus kommt mit 4 Leitungen aus.

  • RxD (TxD) versorgt Maus mit negativer Spannung (-9V gemessen)
  • DSR (DTR) versorgt Maus mit positiver Spannung (+5V gemessen)
  • TxD (RxD) liefert serielles Signal an PC
  • GND (GND) ist das Bezugspotential (Masse)

Außerdem liefert der Computer zur Mausabfrage verm. auf der Leitung TxD (an der Maus also RxD) eine Kennung, worauf die Maus spezifisch antwortet. Diese Kennungen sind leider (noch) unbekannt... Auf diese Weise erkennt der Maustreiber eines PC in der Initialisierungsphase die (nicht) angeschlossene Maus. Die Datenübertragungsrate ist einheitlich 1200 Baud.

Microsoft-Mode
(Stellung "2") Übertragung: 7 Bit ohne Parität

Hier hat sich die Firma Microsoft etwas einfallen lassen: Damit der Computer die Maus suchen kann, sendet die Maus auf Abfrage ein Kennbyte zurück. Wenn die Leitung RTS nach LOW geht, sendet die Maus als Kennung ein "M" wie "Microsoft"

Die Maus liefert je Aktion 3 Bytes (im "Dreierpack"). Eine "Aktion" ist

  • Drücken oder Loslassen einer Maustaste
  • Bewegen der Maus (Die Datenübertragung beginnt immer mit Bit 0.)
1. Byte:
Tastenstati und Richtungsinfo
6 5 4 3 2 1 0
1 L R Y Y X X
0,1.. nicht belegt (i.a.=1)
R=1.. rechte Maustaste gedrückt
L=1.. linke Maustaste gedrückt
Y=1.. Y-Bewegung erfolgt von unten nach oben, sonst keine Bewegung oder von oben nach unten
X=1.. X-Bewegung erfolgt von rechts nach links, sonst wie oben.
 
2. Byte:
Schrittanzahl in X-Richtung im Zweierkomplement
6 5 4 3 2 1 0
0 x x x x x x
x.. Schritte im Zweierkomplement. Negative Zahl (Bit 5 =1) bedeutet von rechts nach links. Im allgemeinen werden diese vorzeichenrichtig dem sog. "Mickeyzähler" im Maustreiber addiert / subtrahiert. Der Mickeyzähler beinhaltet die momentane Mausposition.
 
3. Byte:
Schrittanzahl in Y-Richtung im ZWK
6 5 4 3 2 1 0
0 y y y y y y
y.. Schritte wie oben. Negative Zahl bedeutet von unten nach oben.
 

Mouse-Systems-Mode
(Stellung "3") Übertragung: 8 Bit ohne Parität

Es werden je Aktion gleich 5 Bytes übermittelt. Die Wortlänge beträgt nun 8 bit. Vorteile sind:

  • Die mittlere Maustaste kann abgefragt werden.
  • Die mögliche Schrittzahl ist größer und vermindert ein "Verhaspeln" des Maustreibers bei sehr schnellen Mausbewegungen.
  • Die Verarbeitung der Bytes ist unkomplizierter.

Trotzdem - das bessere hat oftmals nur geringe Chancen. Allerdings gibt es in diesem Modus kein Kennbyte wie bei Microsoft.

1. Byte:
Tastenstati
7 6 5 4 3 2 1 0
1 0 0 0 0 L M R
L=0 (!) .. linke Maustaste gedrückt
M=0 .. mittlere Maustaste gedrückt
R=0 .. rechte Maustaste gedrückt
 
2. Byte:
Schrittzahl in X-Richtung im 8-bit-Zweierkomplement
7 6 5 4 3 2 1 0
x x x x x x x x
x .. Schritte im ZWK. Negative Zahl bedeutet von rechts nach links.
 
3. Byte:
Schrittzahl in Y-Richtung
7 6 5 4 3 2 1 0
y y y y y y y y
y .. Schritte im ZWK. Negative Zahl bedeutet von oben nach unten!
 
4. Byte:
wie 2. (aber nicht die Wiederholung desselben, sondern ein neuer Wert!)
 
5. Byte:
wie 3. (Kommentar dito)


PC-MOUSE-Nachtrag

von Ralf Kästner

Aus aktuellem Anlaß möchte ich zum MOUSEALL-Artikel von Herrn Haftmann noch einige Überlegungen äußern, welche allgemein diskutiert werden sollten. Ich glaube, daß alle KC-Nutzer Herrn Haftmann sehr dankbar sind, da er diese genial einfache Lösung, ein professionelles Eingabegerät am KC praktisch mit Null-Aufwand zu betreiben, zugänglich machte.

Zum Ersten sollten sich wohl alle eine Mouse besorgen, um den Anschluß nachzuvollziehen. Bei mir funktionierte es auf Anhieb, bei anderen mir bekannten Usern ebenfalls.

Zum Zweiten dürfte alles dafürsprechen, diese Anschlußvariante zum Standard zu erheben, es geht bestimmt nicht mehr einfacher und kürzer. Es ist kein Hardwareaufwand notwendig und ein M003/V.24-Modul dürfte jeder User besitzen oder beschaffen können.

Zum Dritten und am wichtigsten, ein Mousetreiber sollte sicherlich im Betriebssystem seinen Platz haben. Herr Leubner schrieb das ja bereits im Artikel zum 256 kByte on board zu einem neuen CAOS.

Dadurch wird eine Grundsatzentscheidung zum verwendeten Betriebsmode der Mouse fällig, also ob System-Mode oder Microsoft-Mode. Die entsprechenden Vor- und Nachteile stehen im Artikel von Herrn Haftmann. Ich möchte deshalb noch ein paar Gedanken zum nicht genutzten Microsoft-Mode zu Bedenken geben.

Neben dem Nachteil, daß nur 2 Tasten nutzbar sind, gibt es auch Vorteile. Einige Eingabegeräte am PC simulieren den MS-Mode und müßten damit auch am KC nutzbar sein, z.B. grafische Tabletts (einfache Variante bei "Pearl" für 99,- DM), Trackball u.s.w. Es liegen allerdings noch keine Erkenntnisse vor, ob derartige Geräte die gleichen Übertragungsparameter wie eine MS-Mouse verwenden, es liegt allerdings sehr nahe. Nicht zu vergessen ist auch, daß die meisten heute angebotenen "Mäuse" keinen Umschalter auf System-Mode mehr haben bzw. nur noch MS-kompatibel sind!

Man sollte also sehr gründlich abwägen, welcher Modus im Betriebssystem integriert wird und alle die etwas dazu zu sagen haben, sollten sich dazu äußern.


" U N I P I C 1 . 0 "

von Ralf Kästner

Wie bereits in der letzten Ausgabe der "KC-News" angekündigt, soll heute die aktuelle Weiterentwicklung von "DIASHOW 1.0" vorgestellt werden. Nach gründlichen Überlegungen habe ich Ende 1993 die Entscheidung getroffen, das Programm in dieser Form vorerst nicht weiterzuentwickeln, sondern zu versuchen, die Möglichkeiten der "EDIPIC"-Versionen mit "DIASHOW" zu verbinden und ein Programm daraus zu machen, was beides kann.

Fällige Erweiterungen sollten dabei ebenso ihren Platz finden, wie die Verbesserung der Zeichenfähigkeiten von "EDIPIC" und eine Bedienung auf dem Niveau von von "DIASHOW". Ausschlaggebend war auch die Erkenntnis, daß es ziemlich lästig ist, mit "EDIPIC" einzelne Bilder zu entwickeln und anschließend ein anderes Programm zu laden, um die Show zu begutachten, bei Änderungen alles noch mal usw.

Nachdem im April 1994 eine Testversion an einige User gegangen war, wurde die Version 1.0 des neuen "UNIPIC" im September fertiggestellt. Die ersten Reaktionen waren ziemlich positiv, so daß der beschrittene Weg wohl richtig war, der folgende Beitrag nimmt an den entsprechenden Stellen auch Bezug auf die beiden Vorgängerprogramme, welche den meisten Usern bekannt sein dürften, sollte jemand weitere Informationen benötigen, kann er den Autor anrufen oder schreiben.

Allgemeines

Das Programm besteht aus dem Ladeprogramm und 10 Overlaydateien. Neben dem KC 85/4 werden mind. das D004 und vier beliebige RAM-Blöcke zusätzlich, z.B. 1*M011/64 kB, benötigt. Die Bildverwaltung entspricht "DIASHOW 1.0", es können also wieder max. 99 Bilder in Abhängigkeit der gesteckten RAM-Module und Erweiterung "on board" gleichzeitig geladen werden. Der mir bekannte praktische Spitzenwert eines Users liegt übrigens bei 51 Bildern.

Das Programm lädt, verteilt und installiert sich fast vollautomatisch auf dem User-KC-System, lediglich die verwendete Druckerschnittstelle und die Nutzung der V24-Kanäle bei zusätzlichen Eingabegeräten sind einmalig zu installieren. Im Programm befindet sich auch wieder der Treiber für das M008/M021, zur Bedienung über Joystick/Commodore Mouse.

Neben den klassischen Eingabemedien Tastatur und M008-Joy geht "UNIPIC" ein paar neue Wege, es kann auch über eine handelsübliche PC-Mouse (System-Mode) an V24 oder das grafische Tablett "robotron K6405" an V24 bedient werden.

Sicher fragen sich einige, wo soll ich das alles anschließen - das Programm kann 2 Module M003 und damit 4 V.24-Kanäle gleichzeitig parallel verwalten und schlägt CAOS damit ein Schnippchen, da dort in der Regel immer nur ein (aktiv geschaltetes) Modul des gleichen Typs genutzt werden kann. Bei mir sind Drucker, die PC-Mouse und das K6405 angeschlossen, es läuft stabil. Probleme traten mit den Schächten F0 und F4 im Floppy-Disk-Basis auf. Die Signallaufzeiten sind offenbar zu groß, die Folgen sind Abstürze bei Interrupts von M008/M003 und fehlerhafter Refresh-Zyklus bei dynamischen RAM-Modulen.

Sollten hier also Probleme, auch bei "DIASHOW 1.0", auftreten, sind diese Module im Grundgerät oder Busdriver zu betreiben, es liegt nicht an den Programmen!!! Die Bedienoberfläche wurde analog "DIASHOW" gestaltet, es gibt eine klare Trennung der Funktionen, ausgehend vom Hauptmenü (Menüverteiler, Installation, Benutzerkopie speichern, CAOS-Rücksprung) zu den 5 Funktionsmenüs in der nächsten Bedienebene.

Diskettenmenü

Hier kann man seine "Picassos" laden und speichern. Alle notwendigen Funktionen wurden in Form eines kleinen Diskettenmonitors zusammengefaßt. Wer DEP 2.0 oder höher installiert hat, kann alle Laufwerke/Userbereiche ansprechen, was aber nicht Bedingung ist.

Neben den Bildtypen PIC/PIP/PIF, HIP/HIF und FRC, können wie in "DIASHOW" beliebige IRM-Abzüge bzw. "Artstudio"-Dateien geladen werden, natürlich werden auch DSH-Bildershow's ("DIASHOW 1.0") und Zeichensätze im PTB- oder SET-Format aus "EDIPIC" eingelesen.

Eine wesentliche Verbesserung und damit Erleichterung gab es beim Laden von Bildern, mit >SPC< können mehrere Dateien markiert werden, welche das Programm dann fortlaufend automatisch lädt, Dateinamen müssen nicht mehr eingegeben werden. Im Unterschied zu "DIASHOW 1.0" werden die HIP/HIF-Dateien komprimiert gespeichert und sind deshalb dort in komprimierter Form nicht mehr darstellbar.

Beim Abspeichern der PTB-Dateien kann die Anfangsadresse im CAOS-Vorblock frei festgelegt und die Anzahl der abgespeicherten Zeichen von 1 bis 64 festgelegt werden, was den Einsatz in anderen Programmen erleichtert. Ergänzt wurden ebenfalls die Funktionen SETWR, SETRO, ERASE und RENAME, welche wieder mittels vorheriger >SPC<-Markierung für mehrere Dateien gleichzeitig ausgeführt werden können. Die Komprimierung beim Speichern von Bildern läßt sich ausschalten und eine STAT-Anzeige ist auch vorhanden.

Druckmenü

Auch beim Drucken gab es einige Erweiterungen gegenüber "EDIPIC", es können aber in der ersten Version noch keine HIRES-Bilder gedruckt werden. Unterstützt werden jetzt alle 3 KC-Druckmodule, M003/V.24, M001/CENTRONICS, M021/CENTRONICS. Die Druckparameter müssen nicht mehr über Ziffern eingegeben werden, sondern sind per Menüauswahl einstellbar und ständig zu sehen.

Für alle die "EDIPIC" nicht kennen, in Kurzform die Merkmale:

Hoch/Querformat, Pixel/Grauwert/Positiv/Negativdruck, doppelte Breite und/oder Höhe, Nutzung aller Grafikmodi des angeschlossenen Druckers (ESC/P - 6 Einstellungen, ESC/P2 - 5 Einstellungen), beliebiger linker Rand (0...80 Zeichen).

Fest integriert wurde nun auch der Treiber für Drucker mit ESC/P2-Betriebssystem (24-Nadler, Tintenstrahldrucker). Wie gehabt kann man wieder jede Druckzeile bis zu fünf mal überdrucken lassen, was auch bei schwachen Farbbändern zu einer annehmbaren Druckqualität führt.

Vollkommen neu sind die beiden Möglichkeiten komplette KC-Zeichensätze oder 4 einzelne Zeichen auf ein A4-Blatt auszudrucken. Bei den Zeichensätzen werden das Zeichen, der ASCII-Code lt. CCTL0...3 des KC und die acht Pixelbytes in dezimaler oder hexadezimaler Form in einer Zeile gedruckt, man erhält so eine schriftliche Unterlage, welche besonders für die Programmierer interessant sein dürfte.

Wer einen 24-Nadel-Drucker angeschlossen hat, muß beim Ausdruck der Zeichensätze für MODE eine ESC/P2- Einstellung verwenden, sonst paßt der Zeichensatz nicht auf ein A4-Blatt, das nur am Rande bemerkt, da es nicht im Bedienhandbuch steht!

Bildmenü

Das Bildmenü beinhaltet einige Funktionen zum Verwalten der geladenen Bilder und ist der Eintrittspunkt in die 3. Bedienebene, den Bildeditor (s.u.).

Man kann hier Bilder bzw. ganze Bildgruppen löschen, neue Bilder ohne Inhalt für den Editor anlegen, die im RAM vorhandenen Bilder umbenennen und Bilder in eine andere Bildnummer verschieben.

Weiterhin findet die Konvertierungsfunktion von HIRES-Bildern in LORES-Bilder (wie in "DIASHOW 1.0") ihren Platz. Erweitert wurde diese Funktion auf die umgekehrte Konvertierungsrichtung, die gesetzten Pixel eines LORES-Bildes können in eine der 4 HIRES-Farben (Vordergrund) und eine beliebig wählbare Hintergrundfarbe konvertiert werden, wodurch ein neues HIRES-Bild entsteht oder diese Pixel werden zu einem bereits vorhandenen HIRES-Bild addiert, womit man beliebige Montagen durchführen kann.

Showmenü

Das Showmenü entspricht im Wesentlichen "DIASHOW 1.0", es gab hier nur eine Verbesserung, man kann eine eingestellte Show jetzt nicht nur vorwärts, sondern auch rückwärts oder alternierend laufen lassen.

Dadurch mußte der Aufbau der DSH-Datei noch einmal geändert werden, was zur Folge hat, das alle DSH-Dateien, welche mit "UNIPIC 1.0" abgespeichert werden, in "DIASHOW 1.0" nicht mehr eingelesen werden können (führt dort zum "VERSION-ERROR").

Ansonsten wurden die Möglichkeiten des Bildablaufgenerators in den letzten "News" ausführlich erläutert, so daß dort nachgelesen werden kann.

Zeichensatzmenü

Das Zeichensatzmenü ist eine der wesentlichsten Neuerungen gegenüber EDIZEI in "EDIPIC". Es wurde nicht nur überarbeitet, sondern vollkommen neu konzipiert und programmiert. Man hat jetzt die Möglichkeit der Erzeugung und Bearbeitung von Zeichen (8*8 Pixel) und Icons (bis 32*32 Pixel) in allen möglichen Zwischenstufen.

Die vielen Befehle im alten EDIZEI wurden auf die relevanten Funktionen reduziert, wobei das Programm automatisch die Anzeige und Abspeicherung gewählter Zeichen aus und in den eingestellten Zeichensatz übernimmt. Die Bedienung erfolgt im vollen WYSIWYG, wodurch man jederzeit sehen kann, was verändert wird.

An Funktionen wurden das Löschen, Verschieben und Kopieren von Zeichen bzw. Zeichengruppen im Zeichensatz oder zwischen verschiedenen Zeichensätzen integriert. Über EDIT wird der Editor aufgerufen, dort kann man das Zeichen (Icon) in achtfacher Vergrößerung bearbeiten, wobei alle Veränderungen online auch in Originalgröße sichtbar sind.

Neben der Zeichencodeanzeige gibt es noch eine Schreibtestfunktion von Zeichen in einem Fenster. Im Zeichensatzmenü können auch die Füllmuster oder Pinselmuster der GRAFIC-Funktion des Editors bearbeitet werden. Über diesen Weg lassen sich auch eigene Muster im Programm integrieren, wobei man im Diskettenmenü die gewünschten Muster als Zeichensatz lädt und mit der COPY-Funktion an den richtigen Platz im Programm bringt.

Editor

Über EDIT im Bildmenü wird der neue Bildeditor für die PIP/PIF- Bilder aufgerufen, welcher mit EDIPIC40/41 eigentlich nur noch ein paar Ideen und gleichnamige Funktionen gemeinsam hat. Er basiert auf einem vollkommen neuen Konzept, nahezu alle wichtigen Bearbeitungsmöglichkeiten wurden verbessert bzw. komplett neu geschrieben.

Nach dem Start erscheint ein zentrales Steuermenü, dort werden jetzt alle Funktionen gestartet und auch beendet, wodurch man sich das Auswendiglernen der Tastenfunktionen ersparen kann. Alle zusätzlichen Tasten in einzelnen Funktionen werden entweder sofort angezeigt oder sind nach >F6< (Hilfsmenü) sichtbar. Lediglich auf den F-Tasten liegen feste Funktionen, welche aber in allen Routinen die gleiche Wirkung erzielen.

Im Steuermenü kann man durch alle PIP/PIF-Bilder blättern, wenn man eine Funktion aufruft, wird sie im bzw. mit dem eingestellten Bild durchgeführt.

Textmode

Im Textmode können Zeichen im 8*8 Pixelraster in das Bild geschrieben werden, wie in "EDIPIC". Die Zeichen aller 15 Zusatzzeichensätze können wie gewohnt über die Kleinbuchstaben genutzt werden. Es gibt eine automatische Schreibrichtungswahl, welche auch abschaltbar ist.

Bei zugeschalteter ZOOM-Funktion wird jetzt der Cursor aufgerissen, so daß man genau sehen kann, welchen Platz das vergrößerte Zeichen benötigt, Farb- oder Pixelmusterausgabe lassen sich auch zu- bzw. abschalten.

Es gibt keinen FSM bzw. HSM mehr, das Editierfenster kann beliebig zeilenweise über das angewählte Bild bewegt werden. Neu ist die WINEDIT-Funktion des Textmode, wo man ein Fenster definieren kann, welches dann ausschließlich bearbeitet wird. Diese Funktion kann bei der Bearbeitung von Bildteilen oder Tabellen vorteilhaft eingesetzt werden. Die Optionen werden direkt geschaltet (ohne Menüein- und -ausblendung), so daß man schneller arbeiten kann.

Grafic

Die Vollgrafik in "EDIPIC" stützte sich auf die vorhandenen CAOS-Unterprogramme, welche die Möglichkeiten des KC 85/4 allerdings nicht optimal nutzen. Im Programm "ArtStudio", was die meisten kennen werden, wird gezeigt, daß es auch besser geht.

Hemmend wirkt sich dort allerdings aus, daß alle Einstellungen zeitaufwendig über Menüs vorgenommen werden müssen, wobei diese nur mit dem Grafikcursor erreicht werden können. Das erlaubt kein punktgenaues schnelles Arbeiten, da der Cursor kein AUTOREPEAT hat und damit bei schneller Bewegungsgeschwindigkeit nur ungenau positioniert werden kann, bei langsamer dagegen alles recht lange dauert.

Es wurde daher versucht, erstens die Cursorpositionierung zu optimieren und zweitens das Leistungsspektrum so zu erhöhen, daß alle Möglichkeiten des KC 85/4 genutzt werden und natürlich auch ein paar neue Ideen einzubauen.

Die Vollgrafik in "UNIPIC" präsentiert sich deshalb im vollkommen neuen Gewand und dürfte wohl die meisten Wünsche erfüllen, es sollen hier aber nur die wichtigsten Eigenschaften genannt werden.

Man kann jetzt sofort farbige Grafiken in allen Vorder- und Hintergrundfarben (getrennt zu- und abschaltbar) erzeugen, welche auch so gespeichert werden. Es gibt einen "Turbocursor", welcher aber erst nach AUTOREPEAT Gas gibt, so daß man doch ziemlich genau arbeiten kann und trotzdem schnell ist, die Cursorposition wird auch angezeigt.

Am Aussehen des Cursors erkennt man die eingestellte Betriebsart (zeichnen oder löschen), wobei aber auch in einer Statuszeile alle wichtigen Einstellungen sichtbar sind. Zur Verfügung stehen 64 frei definierbare Pinselformen und 8 Linientypen, welche miteinander kombiniert werden können. Bei aktivem Pinsel erscheint die eingestellte Pinselform als Cursor.

Es ist jetzt auch möglich das Bild in GRAFIC zu wechseln, wobei alle Einstellungen erhalten bleiben, das ist wichtig, wenn man ähnliche Aktionen in aufeinanderfolgenden Bildern einer Show vornehmen will, wie in "EDIPIC" kann man über die Hintergrundfarben ein 8*8 Bildschirmraster einblenden, was das Zeichnen im Zeichenraster erleichtert, soviel zu den Kombinationsmöglichkeiten beim Zeichnen.

Alle vorgenannten Features wirken jetzt auf das eingestellte Werkzeug, wobei aus 12 Varianten eine ausgewählt wird und dann aktiv ist. Es stehen zur Verfügung: Punkt, Linie, verbundene Linien, Strahlen, Dreieck, Rechteck, Parallelogramm, Trapez, Kreis, Ellipse, Füllen und Sprühdose.

Das Programm merkt sich die Koordinaten für alle Werkzeuge (jedes Werkzeug für sich) von der letzten Benutzung, so daß man ähnliche Aktionen schnell durchführen kann, da man nicht jedesmal die Figur neu aufziehen muß, beim Zeichnen von Figuren gibt es wie gehabt eine Gummibandfunktion, wo aber schon der eingestellte Linientyp sichtbar ist. Gezeichnet wird wie in "EDIPIC" vorerst nur auf dem Bildschirm, mit >SPC< kann man Änderungen fest im Bild speichern, mit >U< rückgängig machen.

WINDOW-Funktionen

Größtes Plus von "EDIPIC" waren sicher die WINDOW-Funktionen, welche es möglich machten, die maximal 4 bearbeitbaren Bilder untereinander zu verknüpfen und so gemeinsam zu nutzen. War es doch so erstmals möglich, mehrere Bilder in einem Programm quasi parallel zu bearbeiten und aus Archiven schnell neue Bilder zusammenzusetzen, eine Eigenschaft von "EDIPIC", welche von allen Nutzern des Programmes sehr gelobt wurde und auch teilweise Erstaunen auslöste.

Leider waren zum damaligen Zeitpunkt nur wenige Bilder vorhanden, da allgemein das Zeichnen per Hand auf dem Computer eine mühselige Sache ist und auch ein wenig Talent erfordert. Mittlerweile ist dies alles kein Thema mehr, da Möglichkeiten zur Verfügung stehen, fertige Grafiken anderer Computer auf den KC zu portieren.

Herr Jödicke entwickelte beispielsweise das Programm 4PCX090.KCC was originale PCX-Dateien (sehr verbreitet auf dem PC) in 2 oder 4 Farben auf dem Bildschirm des KC 85/4 darstellt und als PIP- bzw. HIP/HIF-Datei auf die KC-Diskette schreibt. Über diesen Weg habe ich beispielsweise schon über 500 Bilder in die beiden "UNIPIC"- Formate konvertiert.

Da sich diese Entwicklung Ende 1993 schon abzeichnete, habe ich nach Wegen gesucht, die WINDOW-Funktionen so weiterzuentwickeln, daß auch ein pixelweiser Zugriff ohne spürbare Geschwindigkeitseinbußen möglich ist, um eine optimale Bildbearbeitung zu gewährleisten. Die zündende Idee lieferte ein PC-Heft mit Routinen zur Programmierung von VGA-Karten in Assembler - diese Algorithmen holen durch geschickte Programmierung die physikalisch mögliche Geschwindigkeit aus dem Computer heraus.

Die Um- und Übersetzung auf den KC-IRM und Z80-Code hat zwar einiges an Zeit und Nerven gekostet, letztendlich gelang aber die praktische Realisierung für den KC 85/4 in "UNIPIC", so daß gegenüber "EDIPIC" nahezu identische Geschwindigkeit erreicht wird, bei den SYMBOL-Funktionen geht es sogar noch schneller als dort. Das gesamte Modul wurde deshalb neu programmiert und gleich einige Erweiterungen integriert.

Man kann also nun das WINDOW von einem Pixel bis zum ganzen Bildschirm stufenlos einstellen. Die Pixelverknüpfungen OR, AND und XOR wurden durch OVER (Überschreiben) erweitert, so daß man nur noch einen Aufruf benötigt und diese Verknüpfungen in allen Pixelfunktionen zur Verfügung stehen.

An Fensterfunktionen stehen jetzt Löschen (neu), Austauschen (neu, gegenseitiger Austausch von zwei Fensterinhalten, nur im Quellbild), Rollen, Verschieben (nur im Quellbild), Kopieren, Negieren, Spiegeln an X-Achse, Spiegeln an Y- Achse und Drehung um 180 Grad zur Verfügung, diese Funktionen können sowohl mit Pixeln, als auch mit Farben allein oder mit Pixel und Farben gleichzeitig durchgeführt werden.

Wenn man die Farboption ausschaltet (COLOR off) können weiterhin die Pixel des Fensters um 90 Grad nach links oder rechts gedreht werden (Ausschnittanzeige dreht sich auch mit) das Vergrößern und Verkleinern ist natürlich auch möglich, zur Zeit allerdings nur mit ganzzahligen Faktoren.

Eine Verformungsfunktion wie in "Artstudio" gibt es jetzt auch, das funktioniert wie folgt, für alle die es noch nicht kennen: Man geht z.B. in GRAFIC und zeichnet dort am linken Rand eines Bildes (ohne Inhalt) eine schräge Hilfslinie von oben nach unten. Dann geht man in das gewünschte Bild und markiert nach dem Aufruf von DEFORM das Fenster, welches verformt werden soll. Anschließend schaltet man mit >SH+F5< oder >F6< in das Bild mit der Linie, dort stellt man die Ausschnittanzeige so ein, daß sich von oben bis unten links daneben die Linie befindet und startet mit >ET<.

Das Programm sucht jetzt ausgehend vom linken Bildrand das erste gesetzte Pixel im Bild, nachdem es gefunden wurde, wird der Abstand linker Bildrand bis Pixel zum linken Rand der Ausschnittanzeige addiert und der Inhalt der korrespondierenden Fensterzeile entsprechend nach rechts verschoben in das Bild geschrieben. Da die Linie schräg verläuft, ergibt sich damit auch ein "schräger" Fensterinhalt im neuen Bild, womit zum Beispiel bei Texten gute Effekte zu erzielen sind.

Unregelmäßige Verzerrungen lassen sich mit großen Ellipsenbögen am linken Rand erreichen. Für Überschriften sind Bogeneffekte ziemlich beliebt, das erreicht man, indem man im Textmode mit der ZOOM-Funktion große Buchstaben erzeugt und zunächst um 90 Grad nach links dreht, anschließend zeichnet man von rechts nach links am linken Rand einen großen Kreis oder eine große Ellipse, wobei der Mittelpunkt (Y) in der Bildmitte liegen muß, dann verzerrt man den gedrehten Text entsprechend und dreht ihn anschließend wieder zurück in die horizontale Position. Das ließe sich nun beliebig fortführen, soll aber erst mal genügen, man kann natürlich auch frei Hand am linken Rand entsprechende Formen zeichnen und dann verzerren.

Durch sinnvolle Kombinationen der vorhandenen Funktionen und Werkzeuge ist doch selbst mit dem KC 85/4 einiges machbar. Das bezog sich jetzt auf ausgeschaltete Farboption, umgedreht gibt es auch noch 3 WINDOW- Funktionen speziell für die Farben, also wenn PIXEL off geschaltet ist. Das sind die Komplementierung (aus hell wird dunkel, nicht identisch mit negieren) und der Austausch einer Vorder- oder Hintergrundfarbe gegen eine andere im Fenster, eine Funktion, welche von vielen Usern in "EDIPIC" gelobt wurde und welche jetzt auch wesentlich einfacher zu bedienen ist. Die vorgenannten Funktionen bietet das Programm automatisch, je nach Einstellung der beiden Schalter PIXEL bzw. COLOR, an.

Wie in GRAFIC wird jede Veränderung des angezeigten Bildes vorerst nur auf dem Bildschirm durchgeführt, erst nach >SPC< wird das jeweilige Bild so gespeichert, wie man es auf dem Bildschirm sieht, dies kann sofort erfolgen oder auch erst nach mehreren Vorgängen. Sollen vorgenommene Änderungen im Bild wieder verworfen werden, betätigt man >U<, dann wird das momentan angezeigte Bild restauriert, wobei der markierte Ausschnitt im Quellbild nicht beeinflußt wird.

Dadurch kann man unproblematisch mehrere Varianten oder Positionen der Verknüpfung durchprobieren. Dabei hilft jetzt sehr die nun durchgehende Möglichkeit mit >N< und >B< die Funktionen online zu wechseln, ein Feature, welches für unerfahrene Nutzer nicht zu empfehlen ist, bevor man die Funktionen und Reaktionen beherrscht!

Um den Bedienkomfort weiter zu erhöhen, wurde mittels >S< die Möglichkeit eingebaut, sofort ins Quellbild zur Ausgangsposition zurückzuschalten. Man kann natürlich auch wie in "EDIPIC" den Quellausschnitt mit mehreren Bildern nacheinander verknüpfen, die angewählte WINDOW-Funktion wird grundsätzlich erst mit >BRK< beendet.

Sonstige Funktionen

Die in "EDIPIC" vorhandenen anderen Funktionen sind entsprechend im Steuermenü integriert und ermöglichen das Einstellen des Tabulators, der Vorder- bzw. Hintergrundfarbe für alle anderen Funktionen, der ZOOM-Faktoren für EDIT/WINEDIT, der Icongröße, des aktuellen Zusatzzeichensatzes und das Löschen des kompletten Farb- und/oder Pixelinhaltes des eingestellten Bildes.

Die alte Funktion EDIT CURSOR wurde auf eine vollständige Lupenfunktion erweitert, welche eine Bearbeitung des Pixelmusters des eingestellten Bildes in achtfacher Vergrößerung und Originalgröße ermöglicht, wobei man sich in der Funktion über das ganze Bild bewegen kann.

Der PAINT COLOR MODE wurde so weiterentwickelt, daß jede Farbe direkt über eine Taste angewählt werden kann und getrennt Vorder- und/oder Hintergrundfarben verändert werden können, die Cursorgröße kann von 1*8 bis 8*8 stufenlos eingestellt werden.

Vollkommen neu sind das Schreiben bzw. Retten von Zeichen (8*8 Pixel) bzw. Icons (bis 32*32 Pixel) in allen Zwischenstufen von jeweils acht Pixeln in bzw. aus dem aktuellen Bild (u.a. alte "EDIPIC"-Funktion CURSOR TO TABLE). Beim Schreiben kann man auch die Farben und/oder Pixel abschalten.

Beim Retten von Icons werden diese zeilenweise von links nach rechts und oben nach unten in den eingestellten Zusatzzeichensatz an eine beliebige Position übernommen, wodurch man aus einem beliebigen Bild Zeichen oder Icons für eigene Programme erzeugen kann und so ohne großen Aufwand Semigrafik für den CAOS-Zeichengenerator erhält.

Zusammenfassung

Soweit zu den Leistungen des neuen Programmes. Mit der ersten Version steht nun ein einheitliches Grafiksystem für Diashows, Bilder in der normalen Farbauflösung und Zeichen bzw. jetzt auch Icons des KC 85/4 zur Verfügung.

Das verwendete Programmkonzept ist nach oben offen, so daß weitere Verbesserungen geplant sind, einige Ausblicke stehen bereits im Bedienungshandbuch. Gegenüber den Vorgängern hat das Programm wesentlich mehr Professionalität. Die Möglichkeit der Mousebedienung sollte jeder nutzen, da sie äußerst einfach zu realisieren und wohl von jedem nachvollziehbar ist.

Mit der neuen Iconfähigkeit dürfte das Programm das ideale Werkzeug zur Entwicklung von grafisch anspruchsvoller Software, z.B. von Spielen sein, da man ohne großen Aufwand alle Programmbildschirme zeichnen, bearbeiten und anschließend ausdrucken kann. Die Entwicklung des Quellkodes sollte dann ohne größere Probleme möglich sein, da man die gesamte Grafik mit "UNIPIC" entwerfen kann.

Die erste Version müßte von allen Interessenten genutzt werden können, da man nur 4 zusätzliche RAM-Blöcke benötigt, in folgenden Versionen wird mehr gebraucht werden, als Richtwert etwa 8 zusätzliche Blöcke, also 2 M011 bzw. ein größeres Modul oder man rüstet den internen RAM auf 256 kByte auf.

Alle, die das Programm richtig ausnutzen wollen, sollten sich ohnehin Gedanken über eine Verbesserung der RAM-Größe machen, eine Diashow mit 3 oder 4 Bildern erlaubt noch keine großen Effekte, Spaß macht es erst ab 10 Bilder aufwärts. Alle mit "UNIPIC" erzeugten Bilder (auch die komprimierten HIP/HIF-Dateien) lassen sich im neuen "WordPro 6.0" von Herrn Leubner einladen, wodurch eine Zuarbeit möglich ist.

Das Programm kann direkt beim mir bezogen werden, wobei eine formatierte CAOS-Diskette mit einem adressierten und frankierten Rückumschlag (A5 oder A4) einzuschicken ist. Folgende Leistungen enthält das komplette Paket:

  • Hauptprogramm "UNIPIC 1.0"
  • alle notwendigen Dateien für den Anschluß einer PC-Mouse an M003
  • 2 Füllzeichensätze, 1 Pinselzeichensatz
  • 3 Zeichensatzsammlungen (SET's)
  • 56 neue Bilder im PIP- bzw. HIP/HIF-Format
  • Schaltplan zum Anschluß des K6405 an M003/V24 (PIP-Bild)
  • ausführliches gedrucktes Bedienhandbuch (63 Seiten) im A5-Format

An Kosten entstehen für registrierte "EDIPIC"-Besitzer 10,- DM Update-Gebühr, Neueinsteiger bekommen das Programm für 20,- DM. Das alte "EDIPIC" sollte man nicht ganz vernichten, da dort der Datenaustausch mit Kassette und Diskette möglich ist. Wer alle alten "EDIPIC"-Bilder haben will, muß insgesamt drei Disketten schicken.

Service

Wie von anderen Rechnern bekannt, macht es am meisten Spaß, wenn man aus fertigen Vorlagen eigene Kreationen zusammenstellen kann, man muß das Fahrrad ja nicht jedesmal neu erfinden.

Um allen KC- und speziell Grafik-Freaks in dieser Richtung entgegenzukommen, habe ich angefangen, CLIPART-Disketten für den KC aufzulegen. Auf der Lieferdiskette von "UNIPIC" befinden sich bereits einige neue Beispielbilder.

Zum Zeitpunkt Dezember 1994 stehen insgesamt etwa 630 Bilder (davon etwa 460 neue, noch nicht im Umlauf) im PIP- bzw. HIP/HIF-Format zur Verfügung. Es kommen aber ständig neue Bilder hinzu, wobei Folgendes geplant ist:

  1. Diese Bilder sollen über die Beilagediskette zu den "News" nach und nach allen Klubmitgliedern kostenlos zur Verfügung gestellt werden.
  2. Ich wäre im beschränkten Umfang auch bereit, spezielle Bilder im KC- Format zu liefern. Da wohl jeder Zugang zu einem PC hat, kann er Bilder in einem PC-Format auf einer PC-Diskette (3,5" oder 5,25") an mich schicken, ich würde dann eine Konvertierung auf den KC vornehmen, sofern es sich nicht gerade um ...MByte handelt.

Bei gescannten Bildern sollte man aber darauf achten, daß die Auflösung so gewählt wird, daß nicht mehr als 800*600 Bildpunkte entstehen, da sonst durch die notwendige Verkleinerung auf das KC-Format zu viele Details verloren gehen. Wer kleine PC-Disketten schickt, muß aber eine 5,25"-Diskette für die Speicherung der KC-Bilder mitschicken!


HIRES.KCC

von Ralf Kästner

Der KC 85/4 bietet neben der normalen Farbauflösung von 1*8 Bildpunkten in 16 Vorder- und 8 Hintergrundfarben eine zweite hohe Farbauflösung, wo man jeden Bildpunkt in einer aus vier Farben darstellen kann. Bis auf das lapidare Linienprogramm im Systemhandbuch und die kurzen Erläuterungen auf S. 103 ff. schweigt sich die gesamte Dokumentation dazu aus, selbst das BASIC-Handbuch enthält keine Hinweise, nur in den BASIC-Übersichten auf S. 7 findet man den Hinweis, daß PSET, LINE und CIRCLE auch in der hochauflösenden Grafik verwendet werden können.

Unverständlicherweise unterstützt das CAOS 4.2 aber auch nur diese Befehle in Form der Unterprogramme 30H, 3EH und 3FH. Will man im HIRES-Modus arbeiten, schaltet man im CAOS mit >SH+STOP< und >A< bzw. im Programm durch Ausgabe von 1BH und 41H an den eingestellten Ausgabekanal um. Dann verwandelt sich der Bildschirm in einen "Streifenmonitor" und alle eingetippten Zeichen haben auch dieses nette blinkende Zebramuster, nur schnell wieder zurück, habe ich beim ersten Mal gedacht!

Wer sich mal mit dem Quelltext des CAOS etwas auseinandergesetzt hat, stellt fest, daß der HIRES-Modus bei der Zeichenausgabe von den Programmentwicklern vollkommen "vergessen" wurde, nur durch geschickte Wahl der eingestellten Farben bringt man CAOS dazu auch im HIRES-Modus die Zeichen richtig auf den Bildschirm zu schreiben, so ergibt z.B. %COLOR 0 0 - rot auf schwarz und %COLOR 1F 7 - weiß auf türkis, mehr ist nicht machbar.

Im Zuge der Weiterentwicklung von "UNIPIC" mußte ich mich zwangsläufig mit diesem Sachverhalt beschäftigen, da ein Programm nun mal nicht ohne Textanzeigen auskommt und die beiden o.g. Farbkombinationen im Interesse eines einheitlichen Aussehens ohnehin nicht in Betracht kommen.

Das Ergebnis soll allen in Form des kleinen Programmes HIRES.KCC zugänglich gemacht werden, wer sich mit dem HIRES-Modus näher befassen möchte, kann es sofort nutzen, selbst in BASIC kann man über den PRINT-Befehl jetzt ganz normale Programme im HIRES-Modus schreiben. Das Programm befindet sich einschließlich des Quelltextes (EDAS 164) auch auf der Beilagediskette, wodurch es auf beliebigen Adressen lauffähig gemacht oder in eigene Programme integriert werden kann.

Im Prinzip stellt es eine CAOS-Erweiterung für die Zeichenausgabe dar und wurde auch ähnlich dem Original-CAOS programmiert, wodurch es etwas länger ist, als eigentlich notwendig. Die unbedingt notwendigen Routinen für die HIRES-Textausgabe sind wesentlich kürzer und finden vielleicht in nachfolgenden CAOS-Versionen ihren Platz.

Zum Glück hat CAOS ein sehr flexibles Ein-/Ausgabekonzept, wodurch die Einbindung recht einfach ist, wenn man weiß, wie. Das wäre auch mal einen Artikel wert, da es dort viele Möglichkeiten gibt, welche allgemein unbekannt sind.

Auf Adresse 0B7B9H befindet sich OUTAB, darin steht eine Speicheradresse (Zeiger), welche die Nummer für den aktuellen Ausgabekanal enthält (sinvoll 00H, 38H, 02H, 03H, entsprechend der vorhandenen CAOS-UP's). Gibt man jetzt CAOS den Befehl über das Programm OCHR (Nr. 24H) ein Zeichen auszugeben, holt es sich über OUTAB die Nummer und berechnet mittels SUTAB (0B7B0H) die entsprechende Unterprogrammadresse und gibt das auszugebende Zeichen dorthin aus.

OCHR muß daher immer für die Zeichenausgaben genutzt werden und nicht!!! das UP 00H - CRT, das gesamte CAOS gibt so die Bildschirmmeldungen aus. Ausnahmen bestätigen die Regel, z.B. Blocknummern bei Kassettenausgabe und Nummern im SYSTEM-Kommando, dort versagt die hier verwendete Einbindung, da CAOS direkt sein CRT-Programm aufruft und sich damit selbst ein Bein stellt.

HIRES.KCC startet nach dem Einladen selbst, trägt in OUTAB eine Adresse ein, wo die 03H steht und in 0B7C4H (User-Ausgabekanal 3) die eigene Testroutine für die Zeichenbehandlung. Damit ist es aktiviert und nimmt seine Arbeit auf. Jedesmal, wenn ein Zeichen oder Steuercode (0...1FH ASCII) ausgegeben werden soll, prüft die Testroutine anhand Bit 3,(IX+1), ob mittlerweile in den HIRES-Modus umgeschalten wurde, wenn nein, wird es über die normale CRT-Routine geschickt, wenn ja, werden die nun HIRES-tauglichen Funktionen des Programmes benutzt.

Das funktioniert nicht nur während des Laufes von Anwenderprogrammen, sondern auch im ganz normalen Eingabemodus im CAOS-Menü, dies kann man auch sofort testen, indem man >SH+STOP<, >A< ausführt und mittels %MENU das CAOS-Menü ausgibt - kein unmotiviertes Blinken mehr auf dem Bildschirm. Im CAOS-Menü steht als zusätzliches Menüwort %HIRES, womit man das Programm jederzeit neu initialisieren kann.

Probleme gibt es nur bei Programmen, welche OUTAB oder UOUT2 verändern, wie z.B. bei allen Druckertreibern, wenn der Protokollbetrieb über >SH+CLR< ein- bzw. ausgeschaltet wird oder im Programm GRZEI.

Nochmals zur Wiederholung: In Maschinenprogrammen dürfen die Bildschirmausgaben nicht mehr über UP Nr.00H, sondern nur noch über UP Nr.24H vorgenommen werden, das ist unproblematisch und sollte ohnehin immer so gemacht werden! Das dürfte erst mal genügen, um sich mit der Arbeitsweise des Programmes vertraut zu machen, in den letzten "News" wurden ja mehr Tips und Tricks gewünscht, deshalb habe ich den Vorspann etwas ausführlicher gestaltet.

Die eigentlichen Leistungen des Programmes sollen nun folgen, ich habe es so programmiert, daß alle Systemzellen genau wie in der normalen Farbauflösung genutzt werden. Es sind natürlich nur noch vier Farben verwendbar, welche sowohl als Vorder- als auch als Hintergrundfarbe genutzt werden können. Es gelten die folgenden Farbcodes:

0 - schwarz
1 - rot
2 - türkis
3 - weiß

Der Farbcode für INK steht in Bit 3 und 4, für PAPER in Bit 0 und 1 der COLOR-Zelle 0B7A3H für die Zeichenausgabe. Um die Farben einzustellen, nutzt man die COLOR-Anweisungen im CAOS oder BASIC genau wie vorher, wobei eben nur Werte von 0...3 sinnvoll sind

Das trifft genauso auf das CAOS-UP Nr.0FH zu. Die Bedeutung von Bit 0 bzw. 1 des STBT in 0B7A2H sind im HIRES- Modus nicht mehr realisierbar, da jeder Bildpunkt immer in der entsprechenden Farbe von VIDEO-Interface dargestellt wird. Es gibt also keine Trennung mehr in Bildpunkt und zugehörige Farbe! Damit sie aber nicht nutzlos dahinvegetieren, wurden die folgenden Optionen realisiert:

Bit 0
= 0 - Schreiben INK ein
= 1 - Schreiben INK aus
 
Bit 1
= 0 - Schreiben PAPER ein
= 1 - Schreiben PAPER aus

Die Funktionen für ESC 7 (inverses Schreiben) und ESC 8 (Vertauschen von INK und PAPER) werden ebenfalls unterstützt und bei der Ausgabe von Zeichen realisiert. Mehr ist dazu gar nicht zu sagen, einfach laden und ausprobieren.

Die beschriebenen Erweiterungen beziehen sich nur auf den Textmode, wer die Vollgrafik benutzt (UP's 30H, 3EH, 3FH) muß den o.g. gewünschten Farbcode in Bit 3 und 4 der Zelle 0B7D6H eintragen, da dort nicht auf 0B7A3H zurückgegriffen wird.

Im BASIC sind dann bei diesen Anweisungen für COLOR natürlich auch nur Werte von 0...3 sinvoll. Das CAOS-UP Nr. 2FH, PUDE, kann im HIRES-Modus nicht verwendet werden, wie oben bereits gesagt, kann man in HIRES keinen Punkt wirklich löschen. Dieses Programm erzeugt im ungünstigen Fall lediglich Farbverfälschungen.

Man kann aber im HIRES-Modus natürlich auch Punkte "löschen", dazu ist der Punkt, die Linie oder der Kreis mit der gewählten Hintergrundfarbe zu "zeichnen", er nimmt dadurch PAPER an und "erscheint gelöscht". Dieses Beispiel sollte man gedanklich einmal durchspielen. Es ist nämlich etwas ungewohnt HIRES-Grafiken zu planen, da man sich total umstellen muß.

Alle die das schon können, mögen mir verzeihen, wenn ich sie langweile, der HIRES-Modus bietet aber doch eine ganze Reihe interessanter Möglichkeiten, wenn man sich damit beschäftigt und die andere Darstellungsweise verstanden hat, dazu soll dieses Programm auch etwas beitragen.


Zwei Hilfen für die Arbeit mit EDAS

von Frank Dachselt

Die im folgenden vorgestellten Routinen sind zur Unterstützung der Arbeit mit dem CAOS-Assembler EDAS entstanden. Sie realisieren zum einen die Formatierung der Druckerausgabe und zum anderen die von Texteditoren bekannten Funktionen 'Kopieren' und 'Einfügen'.

Formatierte Druckerausgabe

Die Ursprungsversion des Programms FORMAT wurde einem Artikel im Funkamateur 11/91 entnommen. Für Diskettenbetrieb war sie allerdings zu lang, da ein Speicherbereich belegt wurde, der teilweise auch von den EDAS-Diskettenroutinen genutzt wird.

In der jetzt vorliegenden Form benötigt das Programm den Speicherbereich BA00h - BBFFh und setzt eine bereits initialisierte Druckerschnittstelle voraus, die über Ausgabekanal 2 den Drucker anspricht. Im EDAS-Menü erzeugt das Programm die Einträge FORMAT und PLABEL.

Mit FORMAT wird die Formatierung der Druckerausgabe initialisiert. Dazu können beim Aufruf bis zu drei Parameter übergeben werden: aktuelle Seitennummer, linker Rand und Anzahl der Zeilen je Seite

Diese Parameter werden vom Programm als Dezimalzahlen interpretiert; der sinnvolle Wertebereich liegt jeweils zwischen 0 und 99. Beim Weglassen einzelner Parameter bleiben die zuvor eingestellten Werte gültig.

Als Vorgabe existieren die Werte 1, 10 und 60. In der nächsten Zeile kann ein bis zu 16 Zeichen langer Name eingegeben werden. Als Hilfe erscheint hier auch in abgekürtzter Form die Reihenfolge der übergebbaren Parameter. Nach dieser Initialisierung können mit den Funktionstasten F3 bis F5 Steuerzeichen in Kommentarzeilen des EDAS-Quelltextes geschreiben werden:

F3 ... Unterdrücken der Listenausgabe
F4 ... Freigabe der Listenausgabe
F5 ... Seitenvorschub

Nach der Initialisierung ist die Listenausgabe zunächst freigegeben. Mit der Assembleroption LP wird der Druck der Assemblerliste ausgelöst. Beim Ausdruck erzeugt das Programm auf jeder Seite eine Kopfzeile aus Namen und Seitennummer. Nach Ausgabe einer Seite erwartet das Programm eine Tastenbetätigung, um den Druck fortzusetzen.

Mit PLABEL wird die Markentabelle eines übersetzten Quelltextes in formatierter Form auf dem Drucker ausgegeben. Dabei werden die zuvor mit FORMAT eingestellten Parameter bzw. die Vorgaben verwendet.

Das Drucken über FORMAT erfolgt stets fortlaufend unter Berücksichtigung der eingestellten Parameter. Soll ein weiterer Ausdruck auf einer neuen Seite beginnen, so ist das durch einen erneuten Aufruf von FORMAT zu erreichen (bei fortlaufender Seitennummerierung ohne Parameter).

Das Programm kann im Gegensatz zur Ursprungsversion beliebig oft aufgerufen werden, ohne es vorher rücksetzen zu müssen. Einmal aktiviert, werden jedoch alle Ausgaben über Kanal 2 in der beschriebenen Weise verändert.

Die Deaktivierung erfolgt durch eine Neuinitialisierung der Druckerschnittstelle oder kann durch Ein- und Ausschalten der Protokollfunktion über <SHIFT>-<CLR> erreicht werden, was allerdings vom verwendeten Druckertreiber abhängig ist.

Aufgrund der allgemeinen Wirksamkeit auf den Ausgabekanal 2 ist es zum Beispiel auch möglich, das Listing eines BASIC-Programms (mit LIST#2) in formatierter Weise auszugeben. Dazu existiert FORMAT auch im CAOS-Menü. Bezüglich der Parameterübergabe gilt das oben gesagte. Lediglich die Funktionstasten werden nicht initialisiert, da die verwendeten Steuerzeichen in BASIC bereits andere Funktionen besitzten und deshalb nicht verwendet werden können.

Der beigefügte Assembler-Quelltext des Programms FORMAT gestattet es, dieses den aktuellen Erfordernissen anzupassen. Soll die Formatierung auf Ausgabekanal 3 wirken, sind die Definitionen für UOUT und ADROUT entsprechend zu verändern. Ebenso können die Vorgaben für den linken Rand und die Anzahl der Zeilen je Seite neu gesetzt werden. Das Speichern des Programmcodes sollte mit der Assembleroption 'S' erfolgen, da bei Abarbeitung des Programms aus Platzgründen die Vorgaben mit aktuellen Werten überschrieben werden.

Kopieren und Einfügen

Das Programm COPA (COpy & PAste) gestattet es, markierte Abschnitte von EDAS-Quelltexten in einen Zwischenspeicher zu kopieren und anschließend an anderer Stelle bzw. in einen anderen Quelltext einzufügen. Als Zwischenspeicher dient ein Block (16 K) des RAM8; die Benutzung von RAM0 und RAM4 durch EDAS wird damit nicht eingeschränkt.

Das EDAS-Menü wird durch den Eintrag COPY erweitert. Um die Funktionstasten zu belegen, ist es zunächst notwendig, COPY aufzurufen, ohne daß ein sinnvoller Kopiervorgang stattfindet. Diese Belegung ist identisch mit der des Programms FORMAT und die erzeugten Steuerzeichen haben eine analoge Bedeutung:

F3 ... Ende eines markierten Textsabschnittes
F4 ... Beginn eines markierten Textabschnittes

Alle von diesen Steuerzeichen eingeschlossenen Textteile werden beim anschließenden Kopieren zusammengefaßt und im Zwischenspeicher abgelegt. Ausgelöst wird dies durch den Aufruf von COPY im EDAS-Menu. Die Anzahl der kopierten Bytes wird angezeigt.

Sollte der markierte Text länger als 16 K sein, wird das durch die Meldung 'memory overflow' angezeigt und nur bis zum Erreichen dieser Grenze kopiert. Die Meldung 'not ready' verlangt einen erneuten Aufruf des Editors mit TOP und die unmittelbar darauffolgende Rückkehr ins EDAS-Menu.

Insbesondere nach dem Editieren des Textes ist das notwendig, da die Kopierroutine den Text in einem bestimmten Speicherbereich erwartet. Dieser Kompromiß muß aufgrund der unvollständigen Kenntnis der Bedeutung der Editorarbeitszellen eingegangen werden.

Nach dem Kopieren kann der Text aus dem Zwischenspeicher an der aktuellen Cursorposition eingefügt werden. Das Einfügen geschieht blockweise und wird jeweils durch Betätigung von <Shift>-<CLR> ausgelöst. Ein akustisches Signal kennzeichnet den letzten Block.

Mit der nächsten Betätigung von <Shift>-<CLR> beginnt der Einfügevorgang von vorn. Das Einfügen sollte in einer ab der Cursorposition leeren Zeile beginnen, um ein Überschreiben vorhandener Zeichen zu verhindern.

Beim Kopieren und Einfügen wird ein 100h großer Speicherbereich als temporärer Zwischenspeicher benutzt, dessen Inhalt dadurch verändert wird. Dieser schließt sich unmittelbar an den Textspeicher des Editors an und ist beim Editieren selbst ohne Bedeutung. Die Anfangsadresse kann variieren, in der Beschreibung zum M027, Seite 6 ist sie mit 3/4*(RAMEnde) angegeben.

Im beigefügten Quelltext des Programms COPA kann eine Änderung bezüglich des als Zwischenspeicher benutzten RAM8-Blockes vorgenommen werden. Die beiden Unterprogramme RAM8ON und RAMRET am Ende des Quelltextes realisieren das Schalten bzw. das - nicht unbedingt notwendige - Rückschalten dieses Blockes auf Adresse 8000h und können entsprechend der vorliegenden Systemkonfiguration verändert werden.

Das Schalten des Blockes muß so erfolgen, daß nach dem an anderer Stelle durchgeführten Abschalten des IRM auf den gewünschten Block zugegriffen werden kann.

Wie bereits angedeutet, sind die vorliegenden Informationen über die EDAS-Systemvariablen im Bereich 40h - C8h nicht vollständig. Falls irgendwo genauere Beschreibungen darüber existieren, wäre dies mit Blick auf die Entwicklung und Verbesserung neuer Funktionen in EDAS sehr interessant und vielleicht einer kurzen Zusammenstellung - in welcher Form auch immer - wert.


Version 2.2 von DEP.COM

von Mario Leubner

Die vorliegende Beschreibung der neuen DEP-Version soll als Ergänzung der Schnittstellenbeschreibung von DEP im "Handbuch für den Programmierer" dienen. Die Version 2.2 von DEP.COM entstand durch Weiterentwicklung einer Idee von Uwe Felgentreu. Ihm danke ich auch für die Übersendung des Quelltextes DEP.MAC und der Ausführungen zu MicroDOS. Die nachfolgende Dokumentation habe ich ebenfalls von ihm übernommen und entsprechend bearbeitet und erweitert.

Mehrere Diskettenlaufwerke unter CAOS

Wer hat sich das noch nicht gewünscht: Ein zweites Laufwerk ist inzwischen problemlos zu beschaffen. MicroDOS läßt die Installation einfach und schnell mit MSYSG.COM zu. Aber beim Programm CAOSDISK zeigten sich die Mühlhäuser Entwickler etwas einfallslos. Im Ergebnis unserer Arbeit entstanden eine Reihe von Dateien, die zum Lieferumfang des neuen CAOS-Systems gehören.

Hervorzuheben ist das Programm SYSCOPY.COM. Dieses Programm macht MSYSG.COM fast überflüssig. Das Installieren ist nur noch einmal nötig. Das Kopieren der Systemspuren ist dann unter MicroDOS problemlos möglich (siehe unten). SYSCOPY ist in 'C' geschrieben und als Quelltext aufAnfrage von Uwe Felgentreu erhältlich. 'C' ist unter MicroDOS auf dem KC85 lauffähig!

Zum besseren Verständnis der Veränderungen am CAOS-MicroDOS folgen einige allgemeine Erläuterungen:
Beim PC-Start wird aus den Spuren 0 und 1 der 780k-Systemdiskette MicroDOS geladen und Adresse 9000Him TPA des D004-Aufsatzes angesprungen. Dort steht flüchtig eine Initroutine, die den 80-Zeichen-Mode des Bildschirms und eine ganze Reihe von Treibern in das Grundgerät überträgt. Dann folgt ein Warmstart und CP/M (MicroDOS) ist betriebsbereit.

Bei CAOS-Disketten liegt in den Spuren 0 und 1 ein modifiziertes CP/M-Betriebssystem vor. Der Ladevorgang ist der gleiche wie in der PC-Betriebsart. Nur steht nun in der INITIAL.SUB-Datei der Befehl zum Laden/Starten von DEP.COM. Die Treiber der PC-Betriebsart werden nicht ins Grundgerät übertragen, da dort schon CAOS-Treiber vorliegen können. DEP.COM führt über ESCAPE "EXIT" einen Rücksprung zum CAOS aus. Nun sind wir wieder in der CAOS-Menüschleife, während im Hintergrund im D004 das Programm DEP.COM unter MicroDOS läuft. Über den Koppel-RAM findet nun der Datenaustausch von und nach MicroDOS statt.

Veränderungen an DEP.COM

DEP.COM wurde reassembliert und so erweitert, daß nun über ein zweites Steuerbyte im Koppel-RAM die Laufwerk- und USER-Steuerung läuft. Der D004-RAM, der nach DEP.COM bis zum TPA-Ende bisher ungenutzt war, wird jetzt als RAM-Floppy verwaltet. Das mit 'A' aufzurufende Laufwerk umfaßt eine Kapazität von 46 KByte bei einer Organisation von 47 Blöcken zu je 1 KByte. Der erste Block ist vom Directory belegt, das 32 Einträge zuläßt.

Außerdem wird mit dem neuen DEP eine Fehleranzeige im Klartext möglich. Bei auftretenden Fehlern wird neben der Fehlernummer auch ein kurzer Fehlertext im Koppel-RAM bereitgestellt. Für Programme, die die neuen Leistungen nutzen wollen, ist es weiterhin möglich, die Versionsnummer des DEP im Koppel-RAM abzufragen.

Wenn bei einer Directory-Anforderung keine Datei gefunden wird, so gibt das neue DEP "keine Datei" zurück. Dies ist jetzt besonders wichtig, da im RAM-Laufwerk oder auf anderen User-Bereichen oft keine Dateien vorhanden sind.

In der STAT-Meldung wird als erstes das Laufwerk und der User-Bereich ausgegeben. Bei jeder neuen Operation wird zuerst das Diskettensystem zurückgesetzt, um einen eventuellen Diskettenwechsel zu erfassen. DEP in der Version 2.2 ist aufwärtskompatibel zur Originalversion von Mühlhausen, sowie zu den Vorgängerversionen 2.0 und 2.1, die sich eventuell vereinzelt noch im Umlauf befinden. Das heißt: Programme, die die alte DEP-Schnittstelle nutzen, laufen ohne Änderung auch mit dem neuen DEP.

Erstellen einer neuen CAOS-Diskette

Vor Nutzung der Laufwerkfunktionen des neuen DEP, muß eine CAOS-Diskette mit der gewünschten Laufwerkinstallation erstellt werden. Das MicroDOS der PC-Betriebsart und das der CAOS-Betriebsart sind fast identisch. Es liegt zwar ein Speicherversatz um 100H gegenüber der PC-Version vor, aber die BDOS- und BIOS-Rufe sind voll funktionsfähig! Also auch der Laufwerkwechsel, soweit mehrere Laufwerke installiert sind.

Wie erstelle ich mir eine neue CAOS-Diskette, wo ja nun CAOSDISK nicht mehr dazu geht? (An ein neues CAOSDISK.COM mit Laufwerkinstallation und weiteren Leistungen ist zwar schon gedacht, aber vorerst hinter anderen Projekten etwas zurückgestellt.)

  1. PC-Betriebsart starten
  2. Formatieren einer 780k-Diskette mit FORMAT.COM
  3. Überspielen folgender Programme auf die neue Diskette:
    DEP22.COM, INITIAL.SUB (neue Version, in der DEP22 aufgerufen wird!), Treiber BASEX, DEVEX, TEXOREX, FORTHEX ... (je nach Bedarf), INITIAL.UUU mit CAOS-Startkommandos
  4. Die Datei INITIAL.UUU kann entfallen oder auch neu erstellt werden. Die beiliegende Datei INITIAL.UUU ist nur ein Beispiel für die KC-User, die die Möglichkeit der CAOS-Kommandodatei bisher noch nicht kannten.
  5. Nun muß das neue System überspielt werden, dazu gibt es zwei Möglichkeiten:
    • Hat man 2 Laufwerke zur Verfügung, kann man mit SYSCOPY.COM sehr komfortabel überspielen. Beispiel: Quell-Laufwerk ist B:, Ziel-Laufwerk ist E:. SYSCOPY.COM kann z.B. auf der RAM-Floppy A: liegen. Der Aufruf erfolgt mit SYSCOPY B E. Es sind also nur die Buchstaben ohne den üblichen Doppelpunkt nötig.
    • Hat man nun nur 1 Laufwerk, so kann man sich mit POWER auch helfen. POWER.COM laden und dann Diskette mit dem neuen CAOS einlegen. Mit READ 0 1 4000 160 die Systemspuren einlesen oder das File CAOS21.DOS mit LOAD CAOS21.DOS 4000 einlesen. Dann die zu bespielende neue CAOS-Diskette einlegen und mit dem Befehl WRITE 0 1 4000 160 das neue System in die Systemspuren schreiben.

Laufwerkinstallation

Wird eine andere als die vorgegebene Laufwerkinstallation gewünscht, dann kann diese ebenfalls mit POWER geändert werden. Dazu die Systemspuren wie oben unter 5.2 in den TPA laden und mit dem Kommando DS die Diskettenparameterblöcke so ändern, daß sie mit denen der PC-Systemdiskette übereinstimmen. Speicherversatz beachten!

Nachfolgende Tabellen können dabei zur Hilfe genommen werden. Dann wird das modifizierte System mit WRITE 0 1 4000 160 wieder in die Systemspuren geschrieben. Auf keinen Fall darf der DPB des RAM-Laufwerkes A: verändert werden, da das System dann nicht mehr richtig arbeiten kann!

Lage der Diskettenparameterblöcke (DPB) unter ...

LW   PC-MicroDOS   CAOS-MicroDOS   POWER (ab 4000H geladen)
A:   EDD1H         EED1H           6BD1H
B:   EDE2H         EEE2H           6BE2H
C:   EDFEH         EEFEH           6BFEH
D:   EE1AH         EF1AH           6C1AH
E:   EE36H         EF36H           6C36H
F:   EE52H         EF52H           6C52H
G:   EE6EH         EF6EH           6C6EH
H:   EE8AH         EF8AH           6C8AH

installierte Laufwerke in CAOS21.DOS (DEP ab V 2.1)

LW   Kapazität   physisches Laufwerk       Organisation   Offset
A:      46K      RAM-Floppy im TPA (D004)     1024*47       0
B:     780K      phys. Laufwerk 0           5*1024*80*2     2
C:     624K      phys. Laufwerk 0          16* 256*80*2     2
D:     800K      phys. Laufwerk 0           5*1024*80*2     0
E:     780K      phys. Laufwerk 1           5*1024*80*2     2
F:     185K      phys. Laufwerk 1           5*1024*40*1     3
G:     720K      phys. Laufwerk 1           9* 512*80*2     0
H:     780K      phys. Laufwerk 2           5*1024*80*2     2

Laufwerkwechsel

Laufwerk- und Userwechsel erfolgen ähnlich den bekannten Steuerbefehlen mit Anforderung, Quittung und Fehlermeldung. Es ist das 2. Steuerbyte zu benutzen. Da für jede Funktion ein Bit reserviert wurde, ist es auch möglich, Laufwerk und Userbereich mit einer Anforderung zu steuern. Bei einem Fehler in der Laufwerksforderung wird allerdings der Userbereich nicht mehr berücksichtigt.

Folgende Kombinationen für das zweite Steuerbyte sind zu verwenden:

01H Abfrage aktuelles Laufwerk/Userbereich
03H Wechsel des Laufwerks
05H Wechsel des User-Bereiches
07H Wechsel Laufwerk und User-Bereich

Nach jeder dieser Funktionen kann das aktuelle Laufwerk/Userbereich in den Arbeitszellen LWANF/UANF abgefragt werden. Die weiteren möglichen Kombinationen sind noch frei und sollten nicht benutzt werden, da sie eventuell für spätere Erweiterungen noch vorgesehen sind.

Fehlererkennung

Das neue DEP.COM ist auch hinsichtlich der Fehlererkennung und -rückmeldung leistungsfähiger geworden. Die Liste der möglichen Fehlermeldungen wurde erweitert. Der Fehler wird als Nummer (wie bisher) und gleichzeitig als Zeichenkette mit maximal 40 Zeichen (eine Bildschirmzeile im CAOS-Format) im Koppel-RAM bereitgestellt.

Anstelle von *.* wird der aktuelle Dateiname zurückgegeben. Die letzte Fehlermeldung der Tabelle wird bei jedem anderen Fehlercode erzeugt.

Code   Fehlertext
 00    Datei *.* nicht vorhanden
 01    Diskettenfehler allgemein
 02    Diskette voll
 03    Datei *.* schreibgeschützt
 04    falsches Diskettenformat
 08    Dateibezeichnung bereits vorhanden
 09    Dateibezeichnung nicht eindeutig
 43    Prüfsummenfehler (CRC)
 49    Indexfehler
 52    Laufwerk nicht bereit
 53    Diskette schreibgeschützt
 56    ID-Feld-Fehler (falsches Format?)
 77    unzulässige Dateibezeichnung
 81    Dateiende überschritten
 82    Diskette voll
 83    Directory voll
 84    Falsches Laufwerk
 85    Falscher USER-Bereich
 ??    ??: undefinierbarer Systemfehler

SERVICE-Programme für die CAOS-Betriebsart

Die bekannten Programme FLOAD.KCC, FSAVE.KCC, SERVICE.KCC usw. können selbstverständlich weiterbenutzt werden. Wer jedoch die neuen Leistungen der Fehlerausgabe im Klartext nutzen möchte, der sollte auf FLOAD2.KCC, FSAVE2.KCC, BASEX2.KCC und DIENST.KCC umsteigen. Die Programme sind funktionskompatibel zu den Vorgängern.

FLOAD2 wurde effektiver programmiert und konnte dadurch ohne ein zusätzliches Byte Programmspeicher die neuen Leistungen anbieten. Es kann aber nicht einfach mit dem FLOAD, das beim Systemstart auf der Adresse 0 steht auf Adresse 0 geladen (überschrieben) werden, da es dann zum Systemabsturz kommt. FLOAD2 sollte deshalb mit dem Kommando FLOAD im DIENST-Menü geladen werden.

FSAVE2 ist voll kompatibel zu FSAVE, durch die Ausgaberoutine der Fehlertexte aber ein paar Bytes länger.

BASEX2 ist voll kompatibel mit BASEX. Es ist ebenfalls wie FLOAD2 durch effektivere Programmierung möglich geworden, alle Funktionen im selben Speicherbereich unterzubringen. Die Umschaltadresse (CALL*150) bleibt unverändert erhalten.

Ein neues universelles SERVICE-Programm mit den Namen DIENST.KCC kann die Laufwerk-Steuerung nun bedienen und dient gleichzeitig zur Demonstration aller neuen Funktionen.

Der Quelltext liegt als DIENST.ASM im Edas-Format vor. ACHTUNG! DIENST.KCC benötigt im KC den gesamten Speicherbereich von BA00H bis BFFFH. Wer von BASIC oder anderen MC-Programmen aus die neuen Leistungen von DIENST nutzen will, kann die Sprungverteiler aus SERVICE.KCC unverändert weiterbenutzen. Die Ansprungadresse BE00H für die Nutzung der Routinen in Anwenderprogrammen gilt weiter, die neuen Funktionen wurden entsprechend erweitert.

DIENST.KCC hat ein eigenes Menü. Es wird mit "DIENST" vom CAOS-Menü aufgerufen und gibt als Prompt das Laufwerk und den User-Bereich aus (also z.B.: B0>_). Es kann auch mit dem Original DEP.COM gearbeitet werden, dann wird bei Aufruf der neuen Funktionen eine Fehlermeldung ausgegeben und als Prompt erscheint **>.

Wird nur schnell eine Funktion von DIENST aus dem CAOS-Menü benötigt, so kann DIENST mit Argument aufgerufen werden. Als Argument ist die Nummer der Funktion (siehe Tabelle!) als Hexzahl einzugeben. Der Aufruf "%DIENST 2" gibt also das Directory aus, "%DIENST C" ruft die DUMP-Funktion auf.

Für FLOAD und FSAVE ist zu beachten, daß hier der Dateiname ab Adresse 0 stehen muß!

In DIENST sind neben DRIVE und USER auch noch DUMP, TYPTP und TYPKC als neue Leistungen enthalten. Alle Fehler werden in Klartext ausgegeben, wenn im D004 das neue DEP läuft. Zur Verwendung der Fehlertexte kann DIENST.ASM als Beispiel dienen. Beschreibung der neuen Befehle:

FLOAD
Bei selbststartenden Programmen wird gefragt, ob gestartet werden soll.
 
MENU
DIENST-Menü ausschreiben
 
QUIT
zurück zum CAOS
 
USER
USER-Bereich wählen
 
DRIVE
Laufwerk wählen
 
DUMP
Anzeige einer Datei im DISPLAY-Format. Die Adresse wird entweder dem CAOS-Vorblock entnommen, bei einer Datei in anderem Format wird 100H (Ladeadresse im CP/M) angenommen. Abbruch erfolgt mit Dateiende, dabei wird der Fehler 81 (Dateiende überschritten) ausgegeben.
 
TYPTP
Texte ohne Vorblock anzeigen (z.B. von TPKC), Steuerzeichen werden als Control-Codes (z.B. ^C für 03H) ausgegeben.
 
TYPTX
Texte mit CAOS-Vorblock anzeigen (z.B. von Edas, TEXOR), Steuerzeichen werden als Punkt ausgegeben.

Laufwerkwechsel durch vorhandene Programme

Jetzt wird jeder sagen, der die vielen interessanten Eigenschaften des neuen DEP kennengelernt hat: Ich habe aber keine Programme, die diese neue Schnittstelle benutzen! Um dieser Tatsache zumindest in der Übergangsphase entgegenzuwirken und auch bestehende Programme nicht ganz in Vergessenheit gelangen zu lassen, gibt es eine Kompromißlösung:

Wie in der PC-Betriebsart können Sie vor dem Dateinamen das Laufwerk in der ersten Stelle des Dateinamens mit angeben. Es wird dazu durch einen Doppelpunkt vom eigentlichen Dateinamen getrennt.

Nach dem Laufwerksbuchstaben kann außerdem noch eine einstellige Hexzahl für den Userbereich geschrieben werden. Als Kompromißlösung muß diese Vorgehensweise deshalb angesehen werden, da der Dateinamenpuffer im Koppel-RAM nur mit 12 Byte definiert ist. Das reicht gerade für 8 Zeichen des Dateinamens, einen Punkt als Trennzeichen und 3 Zeichen für den Dateityp.

Wird jetzt Laufwerk und Userbereich im Dateinamen mit angegeben, gehen 3 Zeichen (einschließlich Doppelpunkt) verloren. Besteht der Dateiname also nur aus maximal 5 gültigen Zeichen, kann alles komplett angegeben werden.

Möglich ist auch die vollständige LW-Angabe bei FLOAD und FSAVE, wenn der Dateityp .KCC ist. Dieser muß ja nicht mit angegeben werden. Eine weitere Möglichkeit besteht darin, mit einem Aufruf von FLOAD nur das Laufwerk einzustellen und mit einem zweiten Aufruf, der jetzt den vollständigen Dateinamen enthalten kann, die Datei zu laden.

Beispiele:

%FLOAD
NAME:B0:SERVICE

SERVICE.KCC von Laufwerk B:, User 0 laden, unabhängig welches Laufwerk vorher eingestellt war.

%FSAVE 200 800
NAME:A0:RAM.DMP

Speicherabzug von 200H bis 800H als Datei RAM.DMP auf Laufwerk A0: abspeichern.

%FLOAD
NAME:A1:
00ERROR

%DIR
Keine Datei

Anzeige des Directory von Laufwerk A:, User 1, Doppelpunkt nicht vergessen! Die Fehlermeldung 00ERROR muß ignoriert werden. Es sind keine Eintragungen vorhanden.

%FLOAD
NAME:E0:
00ERROR

%FLOAD
NAME:Boulder.EXE

Nachdem mit dem ersten Aufruf von FLOAD das Laufwerk und der Userbereich eingestellt wurden, erfolgt beim 2. Aufruf das Laden.

Schnittstellenbeschreibung DIENST.KCC

Name:   BASIC-Aufruf   UP-Nr.(MC)   Bemerkungen
FLOAD   CALL*D8          0          Name ab Adr. 0
FSAVE   CALL*DB          1          Name ab Adr. 0
DIR     CALL*DE          2          DIR & STAT
STAT    CALL*E1          3          LW & STAT
REN     CALL*E4          4          Namen eingeben
SETRO   CALL*E7          5          Name eingeben
SETWR   CALL*EA          6          Name eingeben
ERA     CALL*ED          7          Name eingeben
DRIVE   CALL*F0          8          LW eingeben
USER    CALL*F3          9          User eingeben
TYPTX   CALL*F6         10          Name eingeben
TYPTP   CALL*F9         11          Name eingeben
DUMP    CALL*FC         12          Name eingeben 

Belegung des Koppel-RAM

Der Koppel-RAM, das heißt der 1K-Speicherbereich im D004, der vom KC über IO-Adressen erreicht wird, dient zum Datenaustausch der beiden Prozessoren im KC-Floppy-System. In den nachfolgenden Tabellen ist die Belegung mit Stand von DEP V 2.2 angegeben:

Seite:   D004-Adresse:   IO-Adresse KC:   Verwendung:
  0      FC00H..FCFFH    00F0H..FFF0H     von MicroDOS verwendet
  1      FD00H..FDFFH    00F1H..FFF1H     Erweiterungen (bisher frei)
  2      FE00H..FEFFH    00F2H..FFF2H     Bytekoppelpuffer
  3      FF00H..FFFFH    00F3H..FFF3H     von MicroDOS verwendet

Übersicht der kompletten Koppelsteuerung

Im oberen Teil ist die Erweiterung und im unteren Teil die vom Original-DEP vorgegebene Schnittstelle beschrieben. Siehe dazu auch "Handbuch für den Programmierer" Teil B, Kapitel 2.1 und 2.2!

Name:    D004:   KC:     Bedeutung:
ERRTX    FD00H   00F1H   Fehlertext (max. 40 Zeichen, Ende.)
STBYT2   FD80H   80F1H   2. Steuerbyte:
          Bit 0 - Anforderung
          Bit 1 - Laufwerkwechsel
          Bit 2 - Userwechsel
          Bit 3-6 reserviert
          Bit 7 - Fehlerrückmeldung
LWANF    FD81H   81F1H   gefordertes Laufwerk ('A'...'H')
UANF     FD82H   82F1H   aktuelle User-Nummer (00H ... 0FH)
VERSION  FD83H   83F1H   Versionsnr. von DEP.COM (21H = V2.1)
DATEN    FE80H   80F2H   Datenpuffer 128 Byte lang (1 Sektor)
STBYTE   FF80H   80F3H   1. Steuerbyte:
          Bit 0 - Anforderung
          Bit 1 - 1 = schreiben / 0 = lesen
          Bit 3 - open
          Bit 6 - close
          Bit 7 - Fehlerrückmeldung
          Bit 5 4 2 Funktionsauswahl:
              0 0 0 Sektor lesen/schreiben
              0 0 1 DIR-Anforderung
              0 1 0 ERA
              0 1 1 STAT
              1 0 0 REN
              1 0 1 SETRO
              1 1 0 SETWR
              1 1 1 BASIC-Byte lesen/schreiben
FCODE    FF81H   81F3H   Fehlercode
DIRBUF   FF82H   82F3H   Puffer für Dateiname oder Directory
BASBYT   FF8EH   8EF3H   Daten für BASIC-Byte-Schnittstelle

Lieferumfang von DEP V2.2

SYSCOPY .COM
Systemspuren von 780K-Disketten kopieren
 
CAOS21.DOS
Systemabzug CAOS-MicroDOS mit RAM-Floppy-Treiber
 
DEP22.COM
Neues Disketten-Erweiterungs-Programm Version 2.2
 
DEP22.DOC
diese Beschreibung (im WordPro6-Format)
 
DIENST.KCC
[BA00 C000 BA00]
Erweitertes Service-Programm
 
DIENST.ASM
Edas-Quelltext dazu
 
FLOAD2.KCC
[0000 00D7]
neues FLOAD mit Fehlertexten
 
FLOAD2.ASM
Edas-Quelltext dazu
 
FSAVE2.KCC
[0000 00B3]
neues FSAVE mit Fehlertexten
 
FSAVE2.ASM
Edas-Quelltext dazu
 
BASEX2.KCC
[0200 0300 026A]
neue Diskettenroutinen für BASIC
 
BASEX2.ASM
Edas-Quelltext dazu
 
EDAS.TXW
Beschreibung von EDAS V1.5/V1.6 (im WordPro5-Format)
 
EDAS161 .KCC
[C000 E000]
EDAS V1.6 für CAOS 3.1
 
EDAS164 .KCC
[C000 E000]
EDAS V1.6 ab CAOS 3.4
 
BEFEHLE .ASM
Befehlsübersicht für Edas V1.6

Alle entstandenen Programme und Quelltexte sind zur Nachnutzung frei. Es darf jedoch kein privater Vorteil von Nachnutzern daraus gezogen werden. Die Weitergabe (unter Wahrung der Urheberrechte) ist erwünscht.

Entstehungsgeschichte

DEP V1.0
ist die Originalversion von Mühlhausen aus CAOSDISK.COM.
 
DEP V2.0
wurde um die Laufwerk- und USER-Steuerung sowie Fehlertexte erweitert. Die Versionsnummer wird übergeben.
 
DEP V2.1
enthält erstmals ein RAM-Floppy im TPA des D004-Basis.
 
DEP V2.2
kann nun auch mit bestehenden Programmen über den eingegebenen Dateinamen das Laufwerk wechseln.
Fehlerbeseitigung (24.03.94): - Bei Übergabe des Dateinamens im Fehlertext ist jetzt das Bit 7 (z.B. das Schreibschutz-Bit) stets zurückgesetzt.


Clubtreffen 1995

von Jörg Linder

Die Idee, sich einmal zu versammeln und über das gemeinsame Hobby auszutauschen, hat großen Anklang gefunden. Für unser Clubtreffen vom 07. bis 09. April 1995 sind bei mir 20 Anmeldungen eingegangen. Das ist immerhin knapp die Hälfte der Mitglieder.

Drei Worte könnten der Slogan für das Treffen werden: Sehen - Staunen - Mitnehmen. Doch bevor ich dazu komme, hier noch der "offizielle" Teil der Tagesordnung:

  • Bericht über bisherige Clubentwicklung
  • Erarbeitung einer Satzung und Abstimmung über diese
  • Wahl des Logos für den KC-Club
  • Wahl der Leitungsmitglieder

Desweiteren werden wir folgende Vorschläge in die Tat umsetzen:

  • Diskussion über "CAOS 5.0"
  • Bildung von Projektgruppen
  • Programmierkurse in zukünftigen "KC-News"
  • praktische Infos und Anleitung zum Umbau /4 auf /5

Und das wird es zu sehen und zu bestaunen geben:

  • die anderen Mitglieder und zum Teil deren Anlage(n)
  • Kombimodul V.24 und Centronics
  • UNIPIC in Aktion, einschließlich Grafiktablett K 6405
  • der KC 85/5 von Mario Leubner
  • Festplatte am KC
  • Betriebssystem CAOS 4.3
  • WordPro 6, DEP 2.2 und ZAS stellen ihre Leistungsfähigkeit zur Schau
  • ein C 64, mit dem Rechnerkopplung und Datenaustausch demonstriert werden
  • neue Spiele für den KC
  • Z-System unter MicroDOS

Ein Teil der eben genannten Sachen wird man auch mitnehmen können. Dazu kommt noch etwas Hardware. Hans-Rudolf Stoeßer stellt seinen (ehemaligen) Bastelfundus kostenlos zur Verfügung. Sicherlich bringe ich auch das eine oder andere gute Stück mit. Ein paar Sachen müßt Ihr allerdings mitbringen: Gute Laune und ausreichend formatierte Disketten. Ein ausgiebiger Software-Tausch wird nämlich ganz bestimmt dazugehören!
Ich denke, daß es ein interessantes und abwechslungsreiches Treffen wird. Auf jeden Fall freue ich mich schon darauf, die Clubmitglieder einmal persönlich kennenzulernen. Ihr doch hoffentlich auch, oder?

Zur Anreise kam von Hans-Rudolf Stoeßer noch folgender Hinweis: Bitte meidet unbedingt das letzte Stück der A12! Der Abschnitt zwischen Müllrose und Frankfurt (Oder) ist häufig wegen Stau gesperrt. Wer sein Auto liebt, wird sowieso schon früher abfahren wollen, da die Strecke Berlin - Frankfurt (Oder) größtenteils noch "DDR-Qualität" besitzt. Eine gute Gelegenheit bietet sich z. B. in Fürstenwalde.

Ihr werdet schon irgendwie den richtigen Weg finden! Ein Hinweis noch an die "Raser". Wegen der hohen Unfallzahlen im Land Brandenburg wurden zahlreiche Maßnahmen ergriffen, die Leute mit zuviel km/h zu erwischen. Also - im eigenen Interesse und dem der Mehrheit - vorbildlich fahren!

Da wir gerade beim Auto sind: Die Clubmitglieder, die mit dem Auto anreisen, haben sich auch bereit erklärt, andere Mitglieder mitzunehmen. Wie das im einzelnen ablaufen soll, müßt Ihr allerdings unter Euch klären. Dazu habe ich die Mitgliederliste ergänzt. Wer zum Treffen mit dem Auto kommt und jemanden mitnehmen würde, hat ein zusätzliches Kreuzchen bekommen. Wer in der Nähe einer solchen Mitgliedes wohnt und gern mitgenommen werden möchte, muß sich mit ihm in Verbindung setzen.

Zum Glück konnte ich von Gusow eine Karte auftreiben, so daß Ihr Euch nicht auf meine zeichnerischen Künste verlassen müßt. Erschreckt bitte nicht, Gusow ist nicht so groß, sondern der Maßstab der Karte so klein, daß nahezu jedes Haus erkennbar ist. Wie man dieser entnehmen kann, liegen der Bahnhof und das "Motel Derfflinger" an den entgegengesetzten Enden des Dorfes. Während das Motel gerade noch innerhalb des Ortes liegt, ist der Bahnhof schon außerhalb (in Bezug auf die Ortsschilder).

Ihr werdet's schon finden... Man sieht sich!


Z80 der Pentium-Klasse - gibt's das?

von Jörg Linder

Ein kleiner Blick in die Geschichte...

Anfang der 80er Jahre wurde ein Betriebssystem populär, das aufgrund seines modularen Aufbaus an unterschiedliche Hardware angepaßt werden konnte. Einzige Voraussetzungen waren mindestens 20 kByte RAM und eine i8080 CPU. Die Rede ist von CP/M. Innerhalb kürzester Zeit fand dieses Betriebssystem starke Verbreitung auf den unterschiedlichsten Rechnern.

Kurz darauf trat jedoch eine neue Microprozessorfamilie einen Siegeszug an, dessen Ausmaß alles bis dahin Bekannte in den Schatten stellte. Die Firma ZILOG brachte die Z80-CPU und die Peripherieschaltkreise PIO, CTC, SIO und DMA auf den Markt.

Diese neue Z80 CPU war vollständig abwärtskompatibel zur i8080 CPU, weshalb sie von vielen Herstellern anstelle dieser eingesetzt wurde. Außerdem stellte sie etliche neue Befehle zur Verfügung, mit denen kürzere und leistungsfähigere Programme erstellt werden konnten.

Davon machten die Programmierer dann auch ausgiebig Gebrauch. Es dauerte nicht lange und auf dem Softwaremarkt erschienen speziell für den Z80 geschriebene Programme. Als wahre Klassiker gelten dabei solche Spitzenleistungen, wie Turbo Pascal von BORLAND oder dBase von Ashton Tate. Als Folge dessen gibt es heute nur noch wenige CP/M-Programme, die sich mit einer i8080 CPU begnügen. Selbstverständlich machte dieser Trend auch nicht vor dem Betriebssystem halt. Als Beispiele seien hierzu nur das Z-System und P2DOS genannt.

Doch in diesem Artikel soll der Blick nicht nur auf den Anfang der 80er Jahre gerichtet werden, sondern auch auf die nachfolgenden Entwicklungen aus dem Hause ZILOG.

Der Z80 und seine Nachfolger

Wie bereits erwähnt, erlebte die Z80 CPU einen Aufstieg wie kein anderer Microprozessor zuvor. Dieser Umstand blieb natürlich auch in den Ländern östlich der Elbe nicht unbemerkt. Das eine oder andere Exemplar passierte die Embargo-Schranken und wurde geclont. Das Ergebnis war die U880 CPU, die unter anderem auch unserem KC das Computerleben einhaucht.

Auch Intel war nicht träge und versuchte nachzuziehen. Wegen des Erfolges des Herstellers IBM und des Betriebssystems MS-DOS behielt Intel mit dem i8086 Chip und dessen Nachfolgern jedoch die Nase vorn. Um dieses dunkle Kapitel ranken sich allerdings verschiedene Gerüchte, doch das ist schon wieder eine andere Geschichte...

Trotz (oder gerade wegen) der stark wachsenden Verbreitung von IBM-PCs und Kompatiblen brachte ZILOG einige Nachfolger des Z80 auf den Markt. Logischerweise sind diese größer, schneller, leistungsfähiger. Und damit man die Verwandtschaft zur Z80 CPU erkennt und gleich weiß, mit welcher Größe, Geschwindigkeit und Leistungsfähigkeit man es zu tun hat, wählte ZILOG die Namen: Z80180, Z80280 und Z80380. Doch in einschlägiger Literatur tauchen auch die Kurzbezeichnungen Z180, Z280 und Z380 auf. Diese werde auch ich im folgenden verwenden.

Die Z80 CPU

Auch wenn den meisten der Aufbau der Z80 CPU bzw. der U880 CPU bekannt sein dürfte, kommt er hier nochmal in einer Kurzfassung.

Den eigentlichen Kern des Ganzen bildet die ALU (Arithmetik-Logik-Einheit) zusammen mit den CPU Registern. In letzteren werden die Werte für die Verarbeitung in der ALU bereitgestellt. Über Daten-, Adreß- und Steuerleitungen ist die CPU mit dem Rest des Computers verbunden. Der Datenbus ist 8 Bit breit und der Adreßbus 16 Bit. Somit können 64 kByte Speicher direkt angesprochen werden.

An dieser Stelle taucht eventuell die berechtigte Frage auf: Wieso nur 64 kByte? Mit Aufsätzen und Modulen aufgerüstet kann ich mehrere MByte mit dem KC verwalten! - Dies ist nur bedingt richtig, denn im KC wird der Adreßraum mittels einer PIO künstlich erweitert. Real kann auch der KC nur 64 kByte zur gleichen Zeit adressieren. Alles, was darüber hinaus geht, regeln das Betriebssystem und clevere Programme.

Die obige Abbildung zeigt die Architektur der Z80 CPU in einer Übersicht. Natürlich ist diese Abbildung stark vereinfacht. Sie soll dem besseren Verständnis der folgenden Prozessoren dienen.

Die Z180 MPU

Nein, nein, das ist kein Schreibfehler! ZILOG vereinte auf einem Chip eine Z80 CPU sowie diverse Peripherie, so daß der Begriff "CPU" nicht mehr ausreichend war. "MPU" steht für "Microprozessor Unit" (Microprozessor-Einheit). Neben dem Z80 kompatiblen CPU-Kern befinden sich noch folgende Elemente auf dem Chip:

  • Taktgenerator
    Es kann direkt aus einem externen Quartz der Systemtakt abgeleitet und dem System zur Verfügung gestellt werden.
  • Bus-Status-Kontrolle
    Über diese Einheit werden alle Bus-Aktivitäten der CPU und der Peripheriebausteine auf dem Chip gesteuert.
  • Interrupt-Kontrolle
    Dieses Modul nimmt alle Interrupts und Traps entgegen und gibt sie entsprechend ihrer Priorität an die CPU weiter.
  • MMU - Memory Management Unit
    Die MMU erlaubt der CPU (logisch nur 64 kByte) über verschiedene Bänke bis zu 1 MByte Speicher zu adressieren.
  • DMACs - Direct Memory Access Controllers
    Mit den DMA Controllern wird ein schneller Transfer von Daten zwischen Speicher und I/O Kanälen sowie untereinander ermöglicht. Die DMA Controller können dabei die vollen 1 MByte adressieren.
  • ASCI - Asynchronous Serial Communications Interface
    Durch die ASCI-Kanäle stehen zwei individuelle vollduplex UARTs zur Verfügung. Jeder Kanal enthält einen programierbaren Baudraten-Generator. Außerdem unterstützen die ASCI-Kanäle ein Format zur Kommunikation in Multiprozessorsystemen.
  • PRT - Programmable Reload Timer
    Beide Kanäle enthalten einen 16 Bit Zähler (Zeitgeber). Desweiteren erlaubt der Kanal 1 die Nutzung als Wellenform-Generator.
  • CSIO - Clocked Serial I/O
    Dies ist ein serieller Sender und Empfänger für den Halbduplex-Betrieb.

Auch der CPU-Kern wurde einer Modernisierung unterzogen. Es ist weiterhin die volle Kompatibilität zur Z80 CPU gegeben (legale Befehle). Zusätzlich sind noch ein paar neue Befehle dazugekommen. Außerdem wurde der Microcode verbessert, so daß einige Befehle mit weniger Maschinenzyklen auskommen. Dieser CPU-Kern wird auch als "Enhanced Z80 CPU" bezeichnet.

Ganz neu ist eine Interrupt-Art, die als Trap (Falle) bezeichnet wird. Ein solcher Trap wird ausgelöst, wenn ein illegaler Befehl auftaucht. Das funktioniert in etwa so: Wird bei der Abarbeitung ein unzulässiger Befehl entdeckt, löst dies einen Trap (ähnlich einem NMI) aus. Per Software kann nun geregelt werden, was dann geschehen soll (z. B. Abbruch des Programms und Meldung auf dem Bildschirm).

Dieses Blockschaltbild soll das Innenleben der Z180 MPU verdeutlichen. Der große Kasten oben stellt im wesentlichen die komplette Z80 CPU dar (enhanced).

Die Z280 MPU

So etwa im Jahre 1989 (man möge mir die Ungenauigkeit verzeihen) machte ZILOG mit dieser neuen MPU von sich reden. Mit diesem Chip wurde eine vollkommen neue CPU geschaffen, die die Brücke zwischen der Z80 Familie (8 Bit) und der Z8000 Familie (16 Bit) bilden sollte. Über eine Spannung an einem bestimmten Pin legt man die Arbeitsweise für den Bus fest: Z80 Bus oder Z-Bus (für Z8000 Systeme). Es wurde ein vollkommen neues Schaltkreiskonzept entwickelt, ohne Rücksicht auf die Kompatibilität zur Z180 MPU zu nehmen. Die Z280 MPU ist auch "nur" zur Z80 CPU voll kompatibel (legale Befehle) und nicht zur Z180 MPU.

Wie man schon an der Abbildung erkennen kann, ist kein Z80-Kern im eigentlichen Sinne mehr darauf zu finden. Die Ausführungseinheit enthält eine 16 Bit ALU und getrennte Stacks für einen User- und einen Systemmodus. Desweiteren befinden sich auf dem Chip: 1 Taktgenerator, 3 16-Bit CTCs, 4 16-Bit DMACs, 1 UART, 1 10-Bit Refreshadreß-Generator für DRAMs, 1 MMU, 1 externes Bus-Interface sowie ein 256 Byte großer Cache für Daten und Programm.

Um den Rahmen dieses Artikels nicht zu sprengen, erspare ich mir und Euch eine genauere Betrachtung der einzelnen Komponenten. Nur die interessantesten sollen erwähnt werden. Ebenso wie bei der Z180 MPU kann über die MMU der Speicher gebankt werden. Hier allerdings bis zu 16 MByte. Durch ein Drei-Ebenen-Pipelining wird ein höherer Datendurchsatz erreicht. Mit Hilfe des Cache (wenn auch nur bescheidene 256 Byte) kann die Leistung nochmals gesteigert werden.

Außerdem ist die Z280 MPU bestens für Multiprozessorsysteme vorbereitet. Es steht dazu ein Satz von Befehlen zur Verfügung. Apropos Befehle: Diese sind gegenüber der Z80 CPU gewaltig angestiegen (sowohl Anzahl als auch Leistungsfähigkeit). 16 Bit Multiplikation oder Division sind z. B. Standard. Übrigens werden auch von ihr die Traps unterstützt bzw. erzeugt.

Die Z380 MPU

Auch wenn man es kaum glauben mag: Erst 1994 ist diese MPU erschienen! Offensichtlich hat ZILOG der Absatz von 30 Millionen Z80 Bausteinen dazu bewogen, ihren Klassiker in einer 16 Bit Version mit 32 (!) Bit Registern neu aufzulegen. Das Ganze ist kein Scherz! Wenn auch nicht ganz Pentium-Klasse, so ist die Z380 MPU zumindest dicht dran...

Dieses Teil verfügt über 4 Registersätze und ist voll kompatibel zur Z80 CPU und zur Z180 MPU. Man kann das gute Stück gleich in vier verschiedenen Betriebsmodi laufen lassen. Das Ganze scheint so komplex zu sein, daß man dem Interessierten kein Blockschaltbild zumuten wollte (oder konnte). Daher gibt's auch zu dieser MPU keine Abbildung.

Ein paar Highlights dieses Wunderwerks der Technik möchte ich aber noch erwähnen. Bis zu 4 GByte (ja, ja GIGABYTE!) sind ohne MMU adressierbar. Der interne 16 Bit Datenbus und das Vier-Ebenen-Pipelining sorgen für mehr Leistung. Je nach gewähltem Betriebsmodus hat man jede Menge neuer Befehle zur Verfügung. Und neben den Traps gibt es hier noch eine Neuerung: Interrupts können verschachtelt werden.

Leider sind mir (noch) kein Systeme oder Anwendungen bekannt, die diese MPU verwenden. Das liegt aber sicherlich auch daran, daß es sie noch nicht lange gibt.

Kürzlich wurde allerdings mein Enthusiasmus in Bezug auf die Z380 MPU von Tilmann Reh gedämpft. Ihm verdanke ich meine wunderbare CPU280. In Sachen Z80 und CP/M stellt er in Deutschland gewiß eine Referenz dar. Er äußerte sich folgendermaßen zum Z380:

"Nach meinem Dafürhalten ist der Z380 kein Prozessor, sondern eine Krankheit. Die Hauptkrücke von dem Ding ist die völlig fehlende On-Chip-Peripherie. Keine Timer, keine Schnittstelle, nicht einmal eine MMU ist drauf. Also ist das Ding im Gegensatz zu Z180 und Z280 keine MPU, sondern eine reine CPU, was sie für den Einsatz in Single-Board-Rechnern absolut uninteressant macht.

Weiter ist die Erweiterung der Register und vor allem die Änderung bestimmter Eigenschaften im Protected-Mode inkompatibel zum Z80, so daß für Z80-Betriebssysteme wie CP/M nur der Real-Mode in Betracht kommt. Nicht einmal BIOS-Routinen können im Protected-Mode laufen, weil es keinen Weg zurück in den Real-Mode gibt... Du kannst es glauben: als ich das Datenblatt gelesen habe, habe ich die Hände über dem Kopf zusammengeschlagen!"

Soweit Tilmann Reh. Der Traum vom 32-Bit-CP/M scheint erstmal ausgeträumt. Doch vielleicht stürzt sich ja ein anderer auf den Z380 und macht was schönes draus. Eventuell eine Grafikkarte? Die vielen Register(sätze) machen es bestimmt möglich.

Zusammenfassung

Alles Quatsch! Für mich als KC-User alles nicht machbar! - Nicht so voreilig. Daß der KC, in welcher (Speicher-)Ausbaustufe auch immer, manchmal einfach zu langsam ist, haben ja schon etliche festgestellt. Also warum soll man dann nicht laut über Alternativen nachdenken?

Es muß ja nicht gleich eine Z380 MPU sein. Auch die guten alten Z80 CPUs gibt es schon mit höheren Taktfrequenzen. Allerdings gibt uns der KC aufgrund seines Aufbaus einige Nüsse zu knacken. Wegen der engen Verbindung der Bildschirmansteuerung mit dem Systemtakt kann dieser nicht so einfach "hochgeschraubt" werden.

Vielleicht fühlt sich der eine oder andere durch diesen Artikel angeregt, auf dieser Strecke etwas zu experimentieren. Falls jemand weitere Informationen zu den vorgestellten Schaltkreisen wünscht, kann er sich an mich wenden.

Zum Schluß noch eine Übersicht der Prozessoren. Hierin sind die erhältlichen Gehäuseformen und Taktfrequenzen ersichtlich:

Prozessor  QFP  DIP  PLCC  Cerdip   Takt (in Mhz)
 Z80 CPU    X    X    X      X      4,6,8,10,20
Z180 MPU    X    X    X      -      6,8,10,16*,20* *nur Static Version
Z280 MPU    -    -    X      -      10,12
Z380 MPU    Gehäuseform unbekannt   18

 


Themen ehemaliger KC-News

von Jörg Linder

Von Ralf Kästner kam der Vorschlag, alle Themen aufzuführen, die in früheren Ausgaben behandelt wurden. Dieser Service ist besonders für die Neueinsteiger gedacht, aber auch für alle, die nicht von Anfang an dabei sind.

Bisher sind 7 KC-News erschienen (diese Ausgabe nicht mitgerechnet). Folgende Beiträge waren darin zu finden:

KC-News 1/92

  • Disketten(un)ordnung?
    von E.-H. Brünig
    Vorstellung des Programmes "SUPDIR" Version 2.0 für CP/M bzw. MicroDOS
  • CAOS-Disketten schnell kopiert
    von E.-H. Brünig
    Verfahren zum Kopieren von CAOS-Dateien

KC-News 2/92

  • WordPro 5 - Ein Textprogramm für alle Fälle
    von M. Leubner
    Textverarbeitungsprogramm "WordPro 5" wird vorgestellt, inkl. kleinem Rückblick auf die WordPro-Geschichte
  • EDIPIC 40 - Grafikeditor für den KC 85/2-4
    von R. Kästner
    Vorstellung der Programmsysteme "EDIPIC 32/40"

KC-News 3/92

  • 256 kByte on Board
    von F. Dachselt
    Aufrüstung des Arbeitsspeichers im Grundgerät auf 256 kByte
  • D004 mit zweitem Laufwerk
    von E.-H. Brünig
    Anschluß zusätzlicher Diskettenlaufwerke ans D004
  • Informationen
  • Kurzvorstellung der Programme "WORKSHOP" und "AdresPro" von T. Harder
  • HCBASIC - ein Interpreter für den KC 85 unter MicroDOS
  • Crunch(-en Sie mit?)
    von J. Linder
    Vorstellung von "CRUNCH" und "UNCR" Version 1.1
  • In Zeitschriften und Büchern geblättert
    von E.-H. Brünig
    ein paar Neuigkeiten aus der "CPC International"
    Buchvorstellungen zu BASICODE und C
  • Tips und Kniffe
  • Meldung, daß erstmalig eine Festplatteninstallation am KC gelungen ist
  • Meldung von der Existenz der Programme "MENU", "KEYEDIT" und "KEYLOAD"
  • WordPro und EDIPIC-Druck wurden gekoppelt

KC-News 1/93

  • Einige Bytes zum Anwärmen
    von E. Korge
    Assemblerprogramm "ARITHMETIK", das Berechnungen mit Hex-Zahlen durchführt
  • Funktionstasten unter MicroDOS
    von U. Felgentreu
    die Programme "KEYEDIT" und "KEYLOAD" werden vorgestellt
  • Hilfe
    von J. Friedrich
    Vorstellung des Programmes "HILFE", das die Arbeit mit dem RAM erleichtern soll
  • Eine Lektion C (kein Programmierkurs)
    von E.-H. Brünig
    "TPCOLOR" und "CLS" mit C-Quelltext
  • WordPro 5 + EDIPIC(-druck) = WP5+EDP.KCC
    von S. Spiegelhauer
    die Kombination von Text- und Grafikdruck in einem Programm
  • Top-Meldung
    Meldung über MicroDOS-Programme aus dem ROM
    Adresse, wo noch KC-Hardware zu bekommen ist
  • MAUS und JOYSTICK für KC 85/2-4
    von K.-U. Irrgang
    Anschluß an umgebauter Tastatur
  • Noch etwas Kurzes
    von M. Ludwig
    Assemblerprogramm "BILD" zur Umwandlung von 85/3 in 85/4-Grafiken

KC-News 2/93

Dies war die erste Ausgabe mit einer Beilagen-Diskette und die letzte "gedruckte" von Herrn Brünig. Leider war es auch die letzte Ausgabe, die ich (wie viele andere auch) von ihm erhielt. Auf der Diskette befand sich ein Programm für Redabas/dBase, mit dem der gesamte Club verwaltet werden sollte (Mitglieder, Dateikatalog, Schaltbilder usw.).

  • Schnelle Massenspeicher im KC-Floppysystem
    von U. Felgentreu
    Einbindung einer ROM-Floppy ins MicroDOS
  • Projekte, Infos, Ausblick
    Hinweis auf die Beilagen-Diskette
    Meldung über ein M011, das auf 1 MByte aufgerüstet wurde
    Meldung, daß ein Konvertierungsprogramm AdresPro - dBase existiert
    Anschluß einer PC-Tastatur in Vorbereitung
    Kurzvorstellung eines Rechtschreibkorrekturprogrammes für TPKC bzw. WordStar
  • Lappige Scheiben oder Disketten
    von E.-H. Brünig
    nach etlichen Fehlerberichten mit Disketten anderer User wird versucht, der Sache auf den Grund zu gehen

KC-News 3/93

Diese Ausgabe erschien (bisher als einzige) nur auf Diskette. Scheinbar sind nur wenige "Original"-Exemplare in Umlauf gekommen. Meine Diskette erhielt ich nur über Umwege. Wie man der Fragebogenauswertung entnehmen kann, wollen aber die meisten Nutzer lieber in einer Zeitung blättern und nachschlagen können, als ständig auf den Bildschirm zu starren.

  • Installationsprogramm für 256 k-ROM im RAM-Floppy
    von U. Felgentreu
    erleichtert das Einbinden der "ROM-Floppy" in das RAM-Floppy-System des MicroDOS
  • S 3004 als Drucker und Tastatur am KC
    von K.-U. Irrgang
    für alle Besitzer einer Schreibmaschine S 3004 interessant
  • MEGAMOD - Ein 1 MB RAM-Modul-Umbau des M011
    von K.-U. Irrgang
    Erfahrung mit dem Lötkolben ist hier vorausgesetzt
  • KAP+ZU - Ein Programm zur Berechnung von Zinsen
    von A. Hermann
    in der Marktwirtschaft nahezu unentbehrlich

KC-News 4/94

 

Nach über einem Jahr "Sendepause" lebt der KC-Club wieder auf. In neuem Gewand und vor deutlich verringertem Publikum erscheinen die KC-News ab sofort vierteljährlich (statt zweimonatlich).

  • Auswertung der Fragebogen-Aktion
    Zusammenfassung der Interessen, Ideen, Probleme und Vorschläge der Clubmitglieder
  • DIASHOW 1.0
    von Ralf Kästner
    erstmals lernen die Bilder mit diesem Programm auf dem KC das Laufen
  • DRUCK.PMA
    von Frank Dachselt
    ein cleveres Programm zur Einstellung der Druckerparameter
  • CyLogic - Visual Basic für den KC 85/4
    von Torsten Harder
    so einfach war die Gestaltung grafischer Oberflächen unter TurboPascal noch nie
  • Korrigertes "CAOSNEU"
    von Rolf Kratzsch
    BugFix für das Betriebssystem CAOSNEU für den KC 85/3
  • 256 kByte on board
    von Mario Leubner
    RAM-Aufrüstung im Grundgerät auf 256 kByte und Einbindung in das gesamte System
  • Packer unter CP/M (MicroDOS)
    von Jörg Linder
    Test und Vergleich der aktuellsten Packprogramme
  • Z-System
    von Jörg Linder
    Vorstellung dieses 8-Bit-Wunders

Wenn es von der Mehrzahl gewünscht wird oder mal nicht genügend Material vorhanden ist, kann ja der eine oder andere Artikel neu aufgelegt werden. Ihr könnt also ruhig Eure Wünsche äußern. Viele Autoren arbeiten jedoch weiter an ihren damals vorgestellten Projekten und verbessern diese. Daher ist einiges bereits überholt und durch neue, komfortablere Nachfolger abgelöst worden. So stellt WordPro 6 jetzt den neuesten Stand dieses Programms dar und EDIPIC wurde durch das wesentlich bedienungsfreundlichere UNIPIC abgelöst.