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


Top-Themen:

  • RGB-Monitor am KC
  • 2 MB on board
  • "große" RAM-Module
  • Übersicht Dateitypen
  • ZAS 1.1 + Televideo-Emulation
  • HARDCOPY.COM

Einleitung

von Jörg Linder

Wie doch die Zeit vergeht: Mir kommt es vor, als hätte ich erst gestern die KC-News 4/94 mit einem fröhlichen Computer auf dem Cover fertiggestellt. "Hoffentlich hat sich der Aufwand gelohnt." dachte ich damals.

Inzwischen ist ein Jahr vergangen und der Streß ist immer noch der gleiche, aber ich kann sagen: Der Aufwand hat sich gelohnt! Wir haben wirklich eine Menge geschafft. Viele neue Mitglieder sind hinzugekommen, einige leider auch ausgetreten. Doch insgesamt ist ein steiler Aufwärts-Trend erkennbar.

Die Aktivitäten im vergangenen Jahr haben sich fast überschlagen. Aber wir wollen nicht länger zurückschauen, sondern neuen Herausforderungen entgegenstreben ...und dabei in Speicher vordringen, die nie ein Byte zuvor gesehen hat.

Eine Grenze haben wir inzwischen erreicht: die Speicherkapazität der Beilagen-Diskette. Diese ist zum ersten Mal randvoll geworden. Ein paar weitere kByte wird es erst beim nächsten Mal geben. Eine Bitte hätte ich aber noch an alle (zukünftigen) Autoren:

Schickt Eure Beiträge so früh wie möglich. Vor diesen KC-News erreichten mich in den letzten Tagen 6 (!) Briefe mit Artikeln. Da ich sie im allgemeinen noch überarbeiten muß, werden die letzten Tage vor der Veröffentlichung unnötig hektisch (nebenbei muß ich nämlich noch arbeiten!).

Neues Brett in der ZNODE 51

Von Helmut Jungkunz' Mailbox habe ich ja hier bereits berichtet. Ich habe Helmut gebeten, für unseren Club bzw. alle KC-User eine eigene "Ecke" einzurichten. Er ließ sich nicht lange bitten und lieferte dieses Ergebnis:

======================================================
Area:    KCCLUB.NEWS
 Msg:    #1250
Date:    09-30-95 22:55 (Public) 
From:    HELMUT JUNGKUNZ
  To:    ALL
Subject: Willkommen an Bord!
------------------------------------------------------
Hallo liebe KC User! Ihr, die Ihr bisher immer das
Stiefmuetterchen wart (oder Stiefkind), seid hiermit
im Besitz einer neuen Heimat!

Seid nett zueinander ind macht den 8-Bit Kollegen
keine Schande.

Viel Spass und toi,toi!

Uebrigens: dieses Brett ist nur Lokal, das heisst
auf diese Mailbox beschraenkt, aber man kann mit
allen Standard Mail Tools arbeiten, also auch mit
dem QWK Offline-Reader.

Ciao

Euer Sysop
Helmut Jungkunz

Ab sofort haben wir also ein wirklich schnelles Medium zum Informationsaustausch zur Verfügung. Wenn Ihr es nutzen wollt, denkt bitte daran, daß keine Umlaute erlaubt sind. Ansonsten hoffe ich auf viele Nachrichten! Übrigens: Ein paar sind schon da.

Erste GIDE-Interfaces eingetroffen

Nach anfänglichen Lieferschwierigkeiten seitens der Elektronikhändler hat Tilmann Reh mir nun die ersten GIDE-Interfaces zugesandt. Auch die MicroDOS-Quellen sind aus Mühlhausen eingetroffen, so daß dem Anschluß einer Festplatte (fast) nichts mehr im Wege steht.

Jetzt sind "nur" noch unsere Software-Experten gefordert. Selbstverständlich dauert die Entwicklung eines neuen MicroDOS und vor allem der Test noch eine Weile, aber langsam wird es Zeit, sich schon nach einer passenden Festplatte umzusehen. Schließlich wird es ja immer schwieriger kleine IDE-Platten zu bekommen.

Clubtreffen 1996

Außer den KC-News und der Beilagen-Diskette findet Ihr diesmal noch ein Formular im Umschlag. Wer beim Treffen 1996 dabei sein will, muß es ausfüllen und (ganz wichtig!) an Klaus Witzenhausen schicken. Weitere Einzelheiten findet Ihr gleich im nächsten Artikel.

Erinnerung an Beiträge

Nachdem von mehreren Mitgliedern Anfragen kamen, wann wieder der (Halb-)Jahresbeitrag fällig wäre, mußte ich mir etwas einfallen lassen. Ab sofort findet jeder auf dem Adreß-Etikett sein aktuelles "Guthaben" (sofern er den Briefumschlag noch nicht weggeworfen hat). Außer meinen Absender- und den jeweiligen Empfängerangaben steht nun eine Zahl auf dem Etikett. Sie sagt aus, wieviel Ausgaben der KC-News man noch bekommt, bevor wieder ein Beitrag fällig ist. Wenn also eine Null drauf ist, muß man wieder überweisen oder man ist raus aus dem Club.

Ich hoffe, daß Ihr mit dieser Lösung zufrieden seid und zurecht kommt. Für mich war es jedenfalls die beste Variante. Falls jemand eine noch bessere (und einfachere) Idee hat, kann er sie mir gern mitteilen.

Strafporto und andere Straftaten

Naja, ganz so schlimm wie es klingt, ist es nicht. Aber im eigenen Interesse bitte ich alle Mitglieder darauf zu achten, daß die Briefe ausreichend frankiert sind. Zur Zeit kontrolliert die Post scheinbar wieder verstärkt und ich kam bereits mehrmals in den Genuß, "Nachentgelt" zahlen zu dürfen.

Besonders bei Warensendungen sollte man sich informieren, was man darf und was nicht. So mußte ich z. B. Nachentgelt für eine Warensendung zahlen, die nur eine Diskette und eine Pappe zur Verstärkung enthielt. Der Haken daran war, daß auf der Pappe einige (für mich völlig nutzlose) Notizen und Formeln standen. Diese wurden von der Post als schriftliche Nachricht gewertet und damit war der Brief keine Warensendung mehr.

In Zukunft werde ich dies jedoch ablehnen müssen. Der Brief geht dann umgehend an den Absender zurück (welcher dann Strafporto zahlen darf). Also achtet demnächst bitte (noch) besser darauf, Eure Sendungen ausreichend zu frankieren.

Jetzt habe ich aber genug gelabert. Falls ich etwas vergessen habe, macht das nichts - auch im nächsten Jahr wird's die KC-News wieder geben. Kommt gut durch die Feiertage!

Euer Redakteur


Clubtreffen 1996

von Klaus Witzenhausen

Endlich ist soweit, daß es wieder einmal mehr heißt:"Formulare ausfüllen!". Leider läßt sich dieses nicht vermeiden.
Aber erst möchte ich mich noch für die eingeschlichenen Tippfehler in der letzten Einleitung entschuldigen, aber wie ich schon sagte, kein Mensch ist fehlerfrei! Auch ich nicht!

So, nun aber zurück zum Thema. Wie schon in den letzten "News" angekündigt, liegt diesmal das Anmeldeformular für unser Clubtreffen bei. Es sollte mit möglichst genauen Angaben ausgefüllt bis spätestens 10.Januar 1996 an mich zurückgesendet werden.

Diese Genauigkeit der Angaben ist leider auch nicht zu vermeiden, da der Herbergsleiter nicht ständig anwesend ist, und es möchte ja schließlich jeder seine Übernachtungsmöglichkeit haben. Also ich erwarte Eure Rückantwort!
Weiterhin bitte ich Euch, mir auch mitzuteilen, wer zu welchen Thema etwas sagen möchte, und wie lange die Sprechzeit vorraussichtlich betragen wird. Es wird sich auch wieder Zeit finden, um sich wieder in kleineren Grüppchen austauschen zu können.

Ich hoffe auf eine rege Beteiligung.

Ergänzung

Ursprünglich hatten wir vorgesehen, bereits mit dieser Ausgabe eine Beschreibung für den Weg und eine Skizze beizulegen. Doch dann dachte ich: Wenn bis zum Treffen noch einige Monate ins Land gehen, hat man genug Zeit, die Wegbeschreibung zu verlegen.

Fazit: Die Beschreibung und die Skizze gibt es erst mit den nächsten KC-News (im Februar 1996)!

Jörg Linder


Neue Spiele

von Jörg Linder

Wer glaubt, es seien schon alle Spielideen auf einem Rechner umgesetzt worden, der irrt. Es ist immer wieder erstaunlich, was sich dem guten alten BASIC-Interpreter entlocken läßt. Von Enrico Grämer bekam ich einige Spiele, die sein Vater vor einiger Zeit programmiert hat (in BASGAME1.PMA).

Auch Herr Riehl war wieder sehr aktiv. Er schickte mir die Programme DOMINI und DOMAXI. Beide sind in DOMINMAX.PMA zusammengefaßt. Dazu schrieb er folgende Zeilen:

In den letzten vier Wochen habe ich die Tastatur gequält und das Spiel DOMINI in Anlehnung an ein PC-Programm geschrieben. Nach dem Start wird *.IRM und *.PTB geladen. In <H>ilfe steht alles zu diesem Programm drin. Mit <E>nde wird es beendet.

Ich hatte zu Beginn einige Probleme, wie ich die Strings wieder auseinander kriege, den Korb fülle und leere. Die meiste Zeit ging für die Entwicklung der Vergleichtabelle drauf, die die gesetzten Steine mit den zu übernehmenden vergleicht. Nach einigen Versuchen war ich überrascht, daß es einwandfrei läuft! Das Programm besteht aus drei Teilen:

DOMINI.SSS - 8 KB Programm
DOMINI.IRM - 14 KB Bildgrafik
DOMINI.PTB - 2 KB Pixeltabelle

In der Zwischenzeit ist nach weiteren zwei Wochen nach DOMINI nun auch DOMAXI-1 fertig, daß mit DOMALAD1 gestartet wird. Sechs Dateien sind es insgesamt geworden und nur mit D004 geeignet:

DOMALAD1.SSS 2 KB
DOMAKEY1.KCC 2 KB
DOMAGRZ1.KCC 2 KB
DOMAXI-1.SSS 14 KB
DOMAXI-1.IRM 14 KB
DOMAXI-1.PTB 2 KB

Wenn Sie sich das Listing ansehen wollen, kommen Sie nur mit <BRK> und LINES10 rein. Ich habe ein paar 'Bremsen' eingebaut. Sie können auch DOMAXI-1 nicht starten, wenn DOMALAD1 nicht schon gestartet wurde!

Bei DOMAXI-1 werden zusätzlich ab der 2. Zeile die oberen Steine überprüft und die 1. Spalte nur mit dem oberen! Auch <H>ilfe beachten. Das Programm ist für Hektiker und Verzweiflungstäter völlig ungeeignet!!!

Bei DOMAXI-1 fiel mir auf, daß das 16. Zeichen zwar ausgewürfelt und im Wahlfenster angezeigt wird, aber nicht ausgewertet wird! Für die Zeichen CHR$(160)..CHR$(175) habe ich die Konstanten von A=160..P=175 gesetzt. Ich bin die Wahrheits-Listings mehrmals durch und habe keine Fehler gefunden.

Dann habe ich mir das BASIC-Handbuch geschnappt und auf Seite 12 etwas gefunden. Dort steht zwar, daß die Zahlen Konstanten von/bis sind, aber nicht, daß für Buchstaben, denen ein Wert zugordnet wird, nur 15 (!) Werte möglich sind! Nach Änderung der Konstanten P, kam auch das 16. Zeichen im Spielfeld. Im Handbuch habe ich folgende Zeilen nachgetragen:

Nur 15 Konstanten möglich mit: A=1:B=2..O=15

Weitere mit: AA=16:AB=17..AO=30 usw.

Doch nicht nur in BASIC lassen sich Spiele programmieren. Von Maik Freitag gibt es einen absoluten Hammer! Leider ist das Spiel nur auf einem KC 85/4 lauffähig, aber für die /3-User haben wir auch etwas dabei.

Zum Spiel STONES von Maik Freitag gehören folgende Dateien:

STONES.KCC
STONES1.OVL
STONES2.OVL
ORIGINAL.LEV
LEER .LEV

Wie versprochen, ist auch für die /3-User ein Spiel auf der Beilagen-Diskette. Ich hoffe, daß es noch nicht allzu bekannt ist, so daß der Überraschungseffekt noch einsetzen kann - oder seid Ihr schon im "JUNGLE" gewesen? So heißt nämlich das gute Stück.

So, jetzt bleibt mir nur noch, Euch viel Spaß und eine geduldige Ehefrau zu wünschen, wenn der KC in diesem heißen Spiele-Herbst mal wieder sein Bestes gibt...

Wurm

© MLsoft '92

An der Jahreszahl 1992 ist bereits zu erkennen, daß es sich um kein neues Programm handelt. Dennoch bin ich der Meinung, daß es bisher in der Form auf dem KC85 noch nicht bekannt ist. Ich hatte diesen "Wurm" schon fast vergessen, als ich beim Sortieren meines Diskettenbestandes auf das Programm und den Quelltext gestoßen bin.

Wurmi - so der Originalname - stammt von SCP-Rechnern wie dem A5120. Es war eines der ersten Spielprogramme, die ich auf einem Computer gespielt habe. Leider läuft Wurmi nicht unter MicroDOS, da es die Bildschirmausgaben direkt in den Bildspeicher der K1520-Rechner, also ab F800H schreibt.

Da ich Gefallen an dem Spiel fand, habe ich es reassembliert und für alle CP/M-Rechner tauglich gemacht, also auch für unseren KC85 mit MicroDOS. Eine Erweiterung von mir ist die Spielanleitung und die Reaktion auf die Tastencodes der Cursortasten. Es sollte noch eine Levelwahl eingebaut werden, womit ich jedoch irgendwann abgebrochen habe...

Das Ergebnis WURM.COM ist ein lauffähiges, jedoch noch nicht ganz fertiggestelltes Programm. Ich stelle es heute dem KC-Club zur Verfügung mit der Hoffnung, daß sich jemand den Quelltext ansieht und vielleicht doch noch fertigstellt.

Mario Leubner


DISKUSSION: "Die neue Maus unter CAOS"

von Ralf Kästner

Ich möchte dem Aufruf von Mario Leubner folgen und einige Gedanken zu einer zukünftigen Einbindung einer Microsoft- bzw. PC-System-Mouse ins CAOS äußern.

Die Überschrift ist mit Absicht so gewählt, da meiner Meinung nach die Möglichkeiten der Maus als vollgrafisches Eingabegerät in den z. Z. vorhandenen Treibern nur ungenügend ausgenutzt werden. Wenn man die bisherigen Lösungen betrachtet, stellt man fest, daß die Maus im Wesentlichen zur Steuerung des (Text)Cursors "mißbraucht" wird. Die 3 oder 2 Maustasten emulieren bestimmte Tasten der Tastatur, wobei i.d.R. eine Taste für den User/Programmierer frei zur Verfügung steht.

Das war dann bereits alles, für den Anfang reicht das sicher erst mal aus, man muß ja auch zunächst Erfahrungen mit Neuheiten sammeln. Ich möchte betonen, daß dies eine sehr bequeme Variante für den Programmierer ist, da er die Maus nicht extra im Programm berücksichtigen muß, nicht zuletzt habe ich zugunsten einer schnellen und unkomplizierten Lösung diese Form der Einbindung in "UNIPIC 1.0" gewählt, es funktioniert ja auch gut aber ist das schon das Machbare? Ich glaube nicht, wenn wir uns umschauen.

Auf allen grafikfähigen Heim- bzw. Personalcomputern gibt es grafische Benutzeroberflächen, welche die Fähigkeiten der Maus ganz anders nutzen (MacOS - Apple / GEOS - C64 / GEM - Atari ST / WINDOWS - PC usw.). Auch wenn es so etwas auf dem KC noch nicht gibt, sollten wir uns nicht den Weg verbauen, diese durchaus auch bei uns vorhandenen Möglichkeiten zu nutzen, die Maus sollte aber vom Betriebssystem unterstützt werden, da sie per Interrupt und damit sehr hardwarenah programmiert werden muß.

Stichwort COM1...4, wenn diese Verwaltung jedes Anwenderprogramm machen soll, gehen von vornherein mehrere kByte verloren, da das Betriebssystem ausgehebelt werden muß und für alle seriellen Kanäle eigene Int-Routinen im Programm bereitgestellt und initialisiert werden müssen. Wir sollten also scharf nachdenken, vielleicht auch ein wenig länger, damit am Ende ein maximaler Nutzen für alle herauskommt!

Nach dem Studium der von Mario bereitgestellten Quelltexte zu den Maustreibern stellte ich fest, daß genau wie eben beschrieben, vorgegangen wird. Mir standen diese Quellen nicht zur Verfügung, deshalb hatte ich mir bereits im Mai/Juni dieses Jahres den PC vorgeknöpft, WINDOWS gestartet, die dortige Mausbedienung studiert und analysiert. Es ist zwar nicht gerade originell aber darauf aufbauend habe ich "rückwärts" für den KC einen neuen Maustreiber entwickelt, welcher alle Möglichkeiten der Maus ausnutzen kann.

Dieser Treiber soll in "UNIPIC 2.0" eingesetzt werden und eine vollkommen getrennte Bedienung über Keyboard bzw. Maus realisieren. Das dabei verwendete Prinzip der Einbindung ins Programm ist ohne Weiteres auch im CAOS machbar und bietet dadurch völlig neue Möglichkeiten der Bedienung, nach dem gleichen Prinzip lassen sich auch alle anderen grafischen Eingabegeräte (Geräte, welche grafische Koordinaten liefern) ins CAOS integrieren, wobei eine einheitliche Schnittstelle vom CAOS zum rufenden Anwenderprogramm geschaffen ist.

In jedem Programm gibt es Eingaberoutinen, welche bestimmte Eingabecodes erwarten und entsprechend darauf reagieren. Im CAOS benutzt man i.d.R. INTB (UP 16H). Dieses Programm wartet auf eine Eingabe vom aktuellen Eingabekanal und gibt den Eingabecode an das rufende Programm zurück, es ist vollkommen egal, woher er kommt. Im Normalfall (durch Zeiger INTAB auf 0B7BBH) ist es das Keyboard, welches über KBD (UP 04H) abgefragt wird, welches wiederum über KBDZ (UP 0EH) den Tastenstatus abfragt und nach Betätigen einer Taste, diese quittiert.

KBDZ ist die unterste Schicht von CAOS, an dieser Stelle muß sich auch die Maus bemerkbar machen. Viele MC-Programme umgehen leider KBDZ und testen direkt Bit 0,(IX+8), dazu muß man also auch abwärtskompatibel bleiben. Diese Vorgaben schränken den Spielraum schon erheblich ein, es bietet sich aber die von mir gewählte Variante an.

Die Beseitigung der Nachteile der bisher existierenden Maustreiber ist eigentlich nur möglich, wenn sich die Maus anders meldet, als die Tastatur. Dazu ordnet man der Maus bzw. jedem anderen grafischen Eingabegerät eigene Codes zu, welche von anderen Eingabegeräten nicht genutzt werden dürfen. Außerdem ist eine strikte Trennung zwischen Eingabe- und Ausgabe-Codes erforderlich!!! Dazu die folgende Skizze, welche alle aus der 1., spätestens 2. Informatikstunde kennen dürften:

  • allgemein:
    EINGABE - INFORMATIONSVERARBEITUNG - AUSGABE
  • CAOS-Menü:
    KBD - CAOS-Menüschleife - CRT
  • Anwenderprogramm im KC:
    KBD - ANWENDERPROGRAMM - CRT

Besonderheiten bilden im KC die ESC-Codes, diese werden "leider" durch KBD abgefangen und, am Anwenderprogramm vorbei, direkt an CRT geschickt, man kann u.a. die Bilder umschalten, ohne daß das laufende Programm etwas mitbekommt, was mitunter sehr nachteilig sein kann.

Zurück zu den Codes, die Maus liefert als Eingabegerät logischerweise Eingabecodes, welche über die zugehörige Interruptroutine bereitgestellt werden. In den bisher existierenden Treibern waren das emulierte Tastencodes, so daß für das Anwenderprogramm Maus = Keyboard ist. Eine reine Mausbewegung oder die Bewegung der Maus mit gedrückter Taste ist so nicht erkennbar, von anderen Extras, wie Doppelclick oder Autorepeat bei gedrückter Maustaste ganz zu schweigen.

Was steht nun in CAOS eingabeseitig noch zur Verfügung? Belegt sind (grob gesagt) durch die Tastatur 00 ... 7FH und 0F1 ... 0FFH, der Joystick emuliert diese Codes, übrig bleibt also der gesamte Bereich von 80H ... 0F0H, wenn man den "Schattenbereich" der Steuercodes von 80H ... 9FH nicht in Betracht zieht, bleiben 0A0H ... 0F0H übrig.

Nachdem ich mehrere Versuche und Varianten durchprobiert hatte, habe ich mich für den Bereich von 0E0H...0EFH entschieden. Diese Codes sollen dabei nicht nur der Maus zur Verfügung stehen, ich würde es als Schnittstelle für grafische Gerätetreiber bezeichnen, das sind alle Geräte, welche Punktkoordinaten liefern können mit maximal 3 Tasten. Unabhängig vom Gerät sind folgende Zuordnungen festgelegt:

Bewegungscodes

E0 Bewg. mit gedrückter Taste links, mitte & rechts
E1 " links & mitte
E2 " links & rechts
E3 " links
E4 " mitte & rechts
E5 " mitte
E6 " rechts
E7 Bewg. ohne Taste

Gerätetastencodes

E8 Taste rechts gedrückt
E9 " losgelassen
EA Taste mitte gedrückt
EB " losgelassen
EC Taste links gedrückt
ED " losgelassen
EE Doppelclick links
EF Dreifachclick links

Durch diese Zuordnung lassen sich beispielsweise sowohl Microsoft- als auch PC-System-Maus und auch grafisches Tablett unter einen Hut bringen, wobei nicht jedes Gerät alle Codes erzeugen kann. Der Anwendungsprogrammierer hat aber dadurch feste Vorgaben und vor allem eine definierte Schnittstelle. Komplikationen dürften sich auch nicht ergeben, da diese Codes eingabeseitig bisher nicht existieren. Man kann so auch IX+13 und Bit 0,(IX+8) verwenden, wobei wahlweise CAOS UP 0EH oder 16H/04H ohne Änderungen zur Abfrage verwendet werden können.

Der Treiber für externe Tastaturen an V24 sollte diese Codes bei Notwendigkeit ausfiltern und nicht an CAOS weiterleiten. Diese Variante schränkt auch die Darstellung des Mauspfeils nicht ein, man kann ihn fesseln, zeichnen oder wegnehmen wie in den letzten News beschrieben wurde.

Das Wichtigste ist aber - KBD muß alle Codes an das rufende Programm zurückgeben !!! Hierin besteht der wesentliche Unterschied zu den bisher existierenden Treibern und erst dann kommen die Vorteile dieser Einbindung zum Tragen. Die Maus versteckt sich nicht mehr über die emulierten Tastencodes oder intern in der KBD (s. Quelltexte letzte News) vor dem Anwenderprogramm, sondern meldet alle Aktionen mit den neuen Codes.

Nur so haben wir auch auf dem KC die Möglichkeit mit Techniken wie Drag & Drop, Mauspfeilmanipulation bei gedrückter Taste, Ziehen, Markieren von Textpassagen mit der Maus usw. zu arbeiten. Auf diese Art und Weise können die spezifischen Eigenschaften und Möglichkeiten der Maus den Programmierern zugänglich gemacht werden, wobei das Betriebssystem "die Arbeit macht".

Es hat sich auch bereits bewährt, bestimmte Vorarbeiten zur Auswertung von Mausaktionen in der Interruptroutine vorzunehmen und auf die o.g. 16 Codes aufzuteilen, es schließt nämlich Timing- bzw. Positionsprobleme aus, wenn die Maus schnell betätigt/bewegt wird und der KC nicht so schnell darauf reagieren kann, die Erzeugung des Doppelclicks aus 2 Clicks mit der linken Taste innerhalb einer bestimmten Zeit läßt sich per Interrupt auch besser erzeugen als im Anwenderprogramm.

Nun genug der Theorie, kommen wir zur Praxis. Ich habe mich auf Grund des reizvollen Themas nun doch entschlossen "UNIPIC 2.0" über einen frei beweglichen Mauspfeil und über Tastatur bedienbar zu machen. In Ermangelung anderer Quellen habe ich den genannten neuen Maustreiber bereits eingebaut.

Er arbeitet nach den eben beschriebenen Vorgaben. Er liefert die o.g. Tastencodes an die programminterne INPUT-Routine und stellt in Arbeitszellen die vollgrafische Mausposition und die zugehörige absolute Cursorposition nach jeder Aktion zur Verfügung. Der Mauspfeil wird direkt in der INPUT-Routine dargestellt. Die INPUT-Routine berechnet aus absoluter die relative Cursorposition im aktuellen Fenster und legt sie auch in Merkzellen ab, befindet sich die Maus außerhalb des aktuellen Fensters, wird ein Bit gesetzt, was durch das Programm entsprechend ausgewertet wird.

Der Treiber erzeugt einen Doppelclick und realisiert auch für die linke Maustaste ein Autorepeat, wenn man sie gedrückt hält und die Maus nicht bewegt. Die Zeit, welche für den Doppelclick zur Verfügung steht, richtet sich nach der eingestellten AUTOREPEAT-Verzögerung (0B7E0H), ist diese abgelaufen, wird der bis dahin mögliche Doppelclick getötet.

Es ist zwar noch ein ganzes Stück Arbeit notwendig, um das Programm komplett an die neuen Möglichkeiten anzupassen, man kommt aber bereits jetzt in puncto Bedienung dem großen WINDOWS auf dem PC ziemlich nahe. Die Einbindung in mein Programm ist allerdings nur eine Insellösung, so etwas muß das Betriebssystem machen. Ich hatte bereits die Möglichkeit den jetzigen Stand einigen KC-Usern zu demonstrieren - es wurde positiv bewertet.

Knackpunkt der ganzen Angelegenheit ist der etwas höhere Aufwand in der CAOS-Steuerschleife und im MikroDOS, da für die Maus (s.o. Skizze) zusätzliche Reaktionsprogramme und damit mehr Speicher notwendig sind. Im CAOS sollte es aber meiner Meinung nach möglich sein, die im letzten Artikel genannten Anwendungen zu integrieren, man muß ja nicht auf alle Codes reagieren, im MikroDOS kann das möglicherweise ZAS machen.

Entscheidend für mich als Programmierer ist aber - sobald ein Anwendungsprogramm läuft, soll mir die Betriebssystemeingabe melden, was die Maus macht und was die Tastatur und das getrennt, ganz gleich, in welcher Form es auch immer ins CAOS eingeht oder nicht!

Seit kurzer Zeit steht mir ein älteres Buch zur GEM-Programmierung auf dem Atari-ST zur Verfügung, wo sämtliche Funktionen des GEM aus der Sicht des Programmierers erklärt werden. Auch dort wird eine ähnliche Trennung von Eingabegeräten vorgenommen, für die Maus gibt es u.a. die folgenden GEM-Eingabefunktionen (GEM kann preemptives Multitasking):

  1. neue Mauszeigerform definieren
  2. Mauszeiger auf Bildschirm aus
  3. Mauszeiger auf Bildschirm ein
  4. Maustastenveränderungsvektor umbiegen (wird bei jeder Betätigung einer Maustaste aufgerufen)
  5. Mauszeigerbewegungsvektor umbiegen (wird nach jeder Mauszeigerbewegung aufgerufen)
  6. Mausbewegungsvektor umbiegen (wird bei jeder Bewegung der Maus aufgerufen und dient normal zum Zeichnen der Mausform)
  7. Mausstatus feststellen (liefert den Status der Maustasten und Koordinaten des Mauszeigers)

GEM erweitert hierbei das TOS des Atari um eine grafische Benutzeroberfläche, genau wie WINDOWS das MS-DOS des PC erweitert, das eigentliche Betriebssystem bzw. der Maustreiber muß also die Aktionen der Maus an das Anwenderprogramm weitergeben, was in diesem Fall eben GEM bzw. WINDOWS ist, diese beiden wiederum werten jetzt schon bestimmte Aktionen der Maus aus und nehmen dem übergeordneten Programm das Öffnen und Verwalten der Fenster, die Nutzung der Schnittstellen, graf. Ausgaben usw. ab.

So etwas haben wir zwar noch nicht, um es aber überhaupt entwickeln zu können, muß das Betriebssystem alle Aktionen der Maus ungefiltert passieren lassen und auf eine festgelegte Art und Weise weitergeben. Macht es das nicht, muß jeder Programmierer mit eigenen Treibern und Routinen arbeiten oder mit den Einschränkungen durch das Betriebssystem leben, an dieser Stelle ist dann aber auch die Weiterentwicklung von CAOS beendet, was sehr schade wäre, ein KC-WINDOWS kriegen wir bestimmt auch noch hin!


RGB-Monitor am KC

von Ralf Kästner

Hoch lebe Commodore - Scherz beiseite, wer einen vernünftigen Monitor für den KC sucht, sollte sich mal bei der Konkurrenz umschauen. Nachdem man den KC am heimischen Fernseher ausprobiert hat, steht man ständig mit der Familie im Streit, welches "Programm" denn nun wann läuft.

Um dieses Problem zu entschärfen, hatte ich mir zunächst einen "Junost" mit nachgerüstetem AV-Eingang besorgt und konnte dann jederzeit mit dem KC arbeiten. Das hält man ja auch eine gewisse Zeit durch, aber irgendwann will man dann doch die 16 Farben sehen.

Auf der Suche nach einer vernünftigen Lösung bin ich dann auf Commodore aufmerksam geworden. Für den Amiga oder auch C64 gab und gibt es den Monitor 1084S. Zwar tut es ein normaler Fernseher mit Scart-Buchse auch, die kleinen Fernsehgeräte haben sogar oft eine Scart-Buchse, selten ist dort aber ein echter RGB-Eingang vorhanden, es wird häufig nur der AV-Eingang (FBAS vom KC) zur Verfügung gestellt, man sollte grundsätzlich den Schaltplan, sofern vorhanden!, zu Rate ziehen.

Der Vorteil des 1084S besteht darin, daß ein echter RGB-Eingang vorhanden ist, wie geschaffen für den KC und daß man den Monitor über Wahlschalter fest auf RGB-Betrieb (PAL-Standard) einstellen kann. Viel wichtiger war mir aber, in Hinsicht auf die Lesbarkeit an den Rändern und in den Ecken, die Bildröhre ist erstens entspiegelt und zweitens abgeflacht. Man kann dadurch das Bild bis in alle 4 Ecken aufziehen und trotzdem alles gut erkennen.

Die sichtbare Bildschirmdiagonale beträgt 13 Zoll, am Monitor läßt sich alles Notwendige, wie Bildgröße und Bildlage, horizontal und vertikal, einstellen. Im Handbuch des Monitors steht viel über die Betriebsmodi der Commodore-Rechner, das spielt für den KC keine Rolle, im RGB-Betrieb wird das KC-Bild hervorragend dargestellt.

Im Lieferumfang des Monitors befindet sich neben dem Netzkabel ein Anschlußkabel für den Amiga 500 und ein Cinch-Kabel für die Audio-Eingänge, im Monitor sind auch bereits 2 Lautsprecher für die Stereo-Tonwiedergabe eingebaut, dafür steht das "S" in der Monitorbezeichnung.

An der Vorderseite können die Lautstärke, Kontrast, Helligkeit und horizontale Bildposition eingestellt werden. Alle anderen Einstellregler und Schalter befinden sich an der Rückseite. Wichtig sind für den RGB-Betrieb die Schalter CVBS/RGB (auf RGB) und CVBS/LCA (auf CVBS), welche die Betriebsart des Monitors (s.o.) fest einstellen.

Zum Anschluß des Monitors an den KC muß das Anschlußkabel für den Amiga modifiziert werden, der 9-polige SUB-D-Stecker kommt an den RBG-Eingang des Monitors. Für den KC ist auf der anderen Seite das Gegenstück des Steckverbinders TV-RBG erforderlich. Ich hatte noch einen "nackten" 13-poligen TGL-Steckverbinder (Buchse) mit geraden Lötfahnen zur Verfügung.

Der originale Amiga-Steckverbinder wurde einfach abgeschnitten und der TGL-Steckverbinder angelötet. Eine SUB-DAbdeckhaube (gibt es einzeln) dient zum Schutz der Lötverbindungen, paßt auch prima auf den TGL-er und ergibt zusammen eine handliche Einheit zum Anstecken an den KC-Port.

Die einzelnen Anschlüsse sind folgendermaßen zu verbinden (Draufsicht auf die Anschlüsse von außen):

Masse (Abschirmung) 1,2 11B
Rot 3 8B
Masse Rot 1,2 7B
Grün 4 6B
Masse Grün 1,2 5B
Blau 5 4B
Masse Blau 1,2 3B
Synchronisation (FBAS) 7 10A
Masse H-Sync 1,2 9A
nicht belegt 6,8,9  

Im Amiga-Kabel sind alle Verbindungen als einzeln abgeschirmte Leitungen ausgeführt, man kann dann auf der KC-Seite für die Schirme immer die danebenliegenden Massepunkte benutzen, so wie oben auch angegeben, der Abschirmung des Gesamtkabels habe ich auf die 11B gelegt. Die Verbindung von 7 und 10A war eigentlich der Knackpunkt der ganzen Angelegenheit damals.

Um das Bild zu synchronisieren ist ein H-Sync erforderlich, welcher im FBAS-Signal des KC mit enthalten ist. Wie bereits oben gesagt, läßt sich aber der Monitor fest auf RBG einstellen, so daß er die RGB-Signale zur Ansteuerung des Elektronenstrahls der Bildröhre verwendet und sich aus dem FBAS-Signal an 10A des KC die H-Sync-Impulse selbst heraussucht.

Ich habe es damals auf Verdacht probiert, da meine Kenntnisse der HF-Technik eher bescheiden sind. Es funktioniert seit fast 3 Jahren absolut fehlerfrei und vor allem in hervorragender Qualität.

Ich kann diese Lösung daher allen empfehlen, die auf der Suche nach einem neuen Monitor sind oder sich verbessern wollen. Der Audio-Anschluß ist zwar vorhanden, läßt sich aber nicht sofort nutzen. Der KC hat DDR-übliche DIN-Ausgänge, der Monitor aber Cinch-Eingänge.

Durch die zu niedrige Eingangsimpedanz der Monitor-Eingänge bricht das NF-Signal des KC zusammen, so daß man nichts hört, es ist daher notwendig einen Impedanzwandler zwischenzuschalten. ELV bietet für diese Zwecke beispielsweise einen sog. Aufholverstärker in Bausatzform an, damit kann man dieses Problem eigentlich schnell lösen.

Die NF des KC ist nur an der Kassettenbuchse (Pin 4 und 5) in Stereo abzunehmen! Der Monitor hat zusätzlich zu den beiden internen Stereolautsprechern auch noch einen Kopfhörerausgang an der Frontseite, wo man dann sogar ungestört, die "tollen Effekte" des KC-Tongenerators geniesen kann!

Der Monitor war damals mit 499,- DM relativ teuer, die sehr gute Farbwiedergabe und Lesbarkeit sind es aber gegenüber den kleinen Fernsehgeräten allemal wert, auch im Interesse der eigenen Gesundheit! Mittlerweile hat ja auch Commodore die Segel gestrichen, so daß man über den Ausverkauf der Amiga's und C64 mitunter ein Schnäppchen machen kann, in den regionalen Tageszeitungen wird zur Zeit ziemlich viel verkauft.

Vor kurzem habe ich in einer Zeitschrift gelesen, daß dieser Monitor sogar wieder gebaut wird, ESCOM will ja die Geräte wieder bauen und im Osten unter die Leute bingen. Übrigens gab es, ebenfalls von Commodore, einen separaten Fernsehtuner zu kaufen, womit man aus dem Monitor dann einen richtigen Fernseher machen kann.


Noch ein Druckertip

von Wolfram Schütze

Veranlaßt durch den "Kleinen Druckertip" von Maik Freitag in den KC-News 3/95 möchte ich eine erweiterte Lösung für die Centronics-Schnittstelle vorstellen, die ich schon seit längerem zusammen mit WordPro anwende. Damit wird bei Tastendruck (durch die Transistoren entkoppelt) sowohl ein Drucker-Reset ausgelöst als auch im KC der "Nicht maskierbare Interrupt (NMI)" aktiviert, der einen programmierbaren Sprung im laufenden Textprogramm ermöglicht (z. B. zurück ins IN/OUT-Menü).

NMI liegt am Punkt 23A der Modulsteckverbinder, ist aber bei den die Centronics-Schnittstelle aufweisenden Modulen nicht nach vorn geführt (Hoch lebe der Eigenbau!). Softwaremäßig erfordert NMI den Beginn eines Programms oder zumindest einen Sprungbefehl auf die Adresse 0066H.

Der Taster muß an +5V liegen. Am Centronics-Steckverbinder meines Druckers (EPSON LQ400) sind am Pin 35 +5V über 3,3 kOhm verfügbar. Ich weiß nicht, ob dies zur Standardbelegung gehört. Als Taster wurde eine unbenutzte Taste der Tastatur verwendet, unter der auch die Transistoren und Widerstände Platz fanden (nochmals: Hoch lebe der Eigenbau!).

Transistoren: SC 236 o.ä.
Widerstände: 1,8 kOhm


2 MB On Board

von Frank Dachselt

Nachdem der Arbeitsspeicher des Grundgerätes auf 256 K aufgerüstet war und die Vorzüge dieser damals doch recht massiven RAM-Erweiterung zum Vorschein traten, machte sich auch schnell eine Erscheinung bemerkbar, die wohl jeder Computeranwender kennt:

Es gibt stets mindestens eine Anwendung, für die der zur Verfügung stehende Speicher nicht ausreichend ist. Insbesondere bei der bequemen, weil zeitsparenden, Arbeit mit dem RAM-Floppy sind 256 K schnell belegt und der Wunsch nach einer größeren Kapazität läßt nicht lange auf sich warten.

Grundsätzlich beseitigt die hier vorgestellte Lösung dieses Problem natürlich auch nicht, bietet aber in ihrer vollen Ausbaustufe genügend Spielraum. Wo dabei eine sinnvolle Grenze zu ziehen ist, muß jeder Anwender selbst entscheiden.

Die nachfolgende Beschreibung der bis zu 2 MB ausbaufähigen Erweiterung im Grundgerät sollte als ein Vorschlag verstanden werden, der aus heutiger Sicht nicht zu einer Standardlösung für den KC werden wird. Anders als bei einem steckbaren Modul stellt die Hardwareänderung schon einen erheblichen Eingriff in das Grundgerät dar, wobei die Kompatibilität zur Originalhardware allerdings erhalten bleibt. Wegen des Platzmangels im Grundgerät ist diese Lösung wahrscheinlich nur den versierten Bastlern unter den KC-Nutzern vorbehalten. Aus diesem Grund ist auch die praktische Ausführung im folgenden nicht bis ins letzte Detail beschrieben.

Schaltung

Der Grundgedanke der Speichererweiterung besteht darin, die Ansteuerung des 256K-RAM im Grundgerät so zu modifizieren, daß der Zugriff wahlweise auf weitere 256K-Bereiche (in folgenden Bänke genannt) möglich ist. Für 2 MB sind das neben der originalen 256K-Bank sieben weitere Bänke, für deren Auswahl drei Steuersignale benötigt werden. Für diese Steuersignale werden die drei bisher unbenutzten Bits des Ausgabekanals 86h bzw. (IX+4) mit folgender Zuordnung verwendet:

Ausgabekanal 86h 256K-Bankauswahlsignal

Bit 2 B0
Bit 3 B1
Bit 4 B2

Die Signalkombination (B2 B1 B0) = 000 ist dabei der originalen 256K-Bank (Bank 0) zugeordnet. Damit ist Bank 0 nach jeden RESET automatisch ausgewählt. Diese Bankauswahlsignale werden nun, wie in der Ansteuerschaltung in Bild 1 dargestellt, dazu verwendet, die Signale /RASn und /CASn für die acht Bänke (n = 0 ... 7) mittels einer Multiplexerschaltung zu generieren. Die Torung mit dem Signal AB8B dient dazu, Zugriffe auf RAM0 und RAM4 stets in Bank 0 zu führen (AB8B liegt nur dann auf H, wenn ein Zugriff im Adreßbereich 8000h ... BFFFh stattfindet).

Um den Refresh in allen Bänken zu ermöglichen, wird die Demultiplexung des /RAS-Signals bei aktivem /rfsh-Signal aufgehoben. Um Dekodierspitzen zu vermeiden, wird dazu das Signal rf&mr verwendet, das mittels der RC-Kombination am Eingang zusätzlich um eine viertel Taktperiode verzögert wird. Bild 3 zeigt, wo die Eingangssignale der Ansteuerschaltung (außer dem Ausgabekanal 86h) auf der Hauptplatine des Grundgerätes zur Verfügung stehen. Die /RAS- und /CAS-Linien auf der Hauptplatine werden durch Entfernen der 100-Ohm- Widerstände (R02 und R03) aufgetrennt und dort die Ansteuerschaltung mit den Anschlüssen /ras - /ras0 bzw. /cas - /cas0 eingeschleift.

 

Schaltung

Bild 1: Ansteuerschaltung für 2 MB RAM onboard

Für die sieben zusätzlichen RAM-Bänke werden Speichermodule mit der Organisation 256 K x 8 oder 256 K x 9 verwendet.

Dabei gilt folgende Anschlußbelegung:

Pin Signal Pin Signal Pin Signal

1 Vcc 11 A4 21 /we
2 /cas 12 A5 22 Vss
3 DQ1 13 DQ4 23 DQ7
4 A0 14 A6 24 nc
5 A1 15 A7 25 DQ8
6 DQ2 16 DQ5 26 nc / DQ9 (out)
7 A2 17 A8 27 /ras
8 A3 18 nc 28 nc / /cas9
9 Vss 19 nc 29 nc / D9 (in)
10 DQ3 20 DQ6 30 Vcc

Die Daten- und Adreßsignale sowie das Signal /we werden direkt mit den entsprechenden Signalen der Bank 0, also des RAMs auf der Hauptplatine, verbunden; die /ras- und /cas-Signale paarweise mit den entsprechenden Ausgängen der Ansteuerschaltung. Bei Speichermodulen der Organisation 256 K x 9 werden die Anschlüsse 28 und 29 mit Vcc (+5V) verbunden.

Die Stromaufnahme der zusätzlichen Speichermodule ist abhängig vom aktuellen Zugriffsverhalten des Systems. Beim ausschließlichen Refresh beträgt sie für alle sieben Module etwa 30 mA und steigt bei Schreib- und Lesebursts in einem dieser Module auf einen Gesamtwert von etwa 50 mA. Die Zugriffszeit der Speichermodule dürfte völlig unkritisch sein, wobei kürzere Zugriffszeiten prinzipiell eine geringere Stromaufnahme bedeuten. Die angegeben Werte gelten für eine gemischte Bestückung mit 70- und 80-ns-Typen. Die fünf IC der Ansteuerschaltung besitzen bei Verwendung von LS-TTL-Typen eine Stromaufnahme von ebenfalls etwa 50 mA, so daß die Gesamtmehrbelastung des Netzteils in akzeptablen Grenzen bleibt.

An dieser Stelle nun auch ein paar Bemerkungen zum Preis der ganzen Sache. Bestimmendes Element sind sicherlich die Speichermodule selbst. Ich habe gebrauchte 256K-SIP-Module verwendet, die zuletzt (Mai '95) für 13,- DM pro Stück zu erhalten waren. Für sieben solche Module, also die maximale Ausbaustufe, ergibt sich zuzüglich eines kleinen Aufschlages für die übrigen Kleinteile (LP, IC, Steckverbinder usw.) ein Betrag von etwa 100,- DM. Die Bestückung ist jedoch wahlweise auch mit weniger Speichermodulen möglich und kann zu einem späteren Zeitpunkt erweitert werden.

Aufbau, Inbetriebnahme und Test

Im folgenden ein paar Tips zum praktischen Aufbau der Speichererweiterung. Es ist empfehlenswert, zunächst nur die Ansteuerschaltung ohne weitere Speichermodule aufzubauen und ihre ordnungsgemäße Funktion in Verbindung mit der originalen Bank 0 zu testen. Dann können nach und nach die weiteren Speichermodule eingebaut werden. Als Träger für die gesamte Erweiterung eignet sich eine Lochrasterstreifenleiterplatte, da die sieben zusätzlichen Speichermodule mit Ausnahme der RAS/CAS-Signale elektrisch parallel geschaltet werden. Auch die Ansteuerschaltung läßt sich auf dieser Leiterplatte unterbringen.

Wegen des Platzmangels im Grundgerät ist eine minimale Bauhöhe anzustreben. Die Verwendung von Fassungen für eine senkrechte Anordung der Speichermodule scheidet daher aus. Fassungen für einen schrägen Einbau wären eine Alternative, benötigen aber auch mehr Leiterplattenfläche. Ich selbst habe mich für die Verwendung von SIP-Modulen entschieden und diese direkt auf die Leiterplatte gelötet. Die Anschlußpins wurden dabei soweit gekürzt, daß sie vollständig von flachen Löthügeln bedeckt werden. Mitunter hilft auch das Ansenken der Bohrungen auf der Bestückungsseite der Leiterplatte, um die Module vollständig einsetzten zu können.

Die Zuführung von Signalen und Versorgungsspanung erfolgt am besten über eine Steckverbindung, damit die Baugruppe leicht entfernt und wieder eingesetzt werden kann. Die eine Seite dieser Steckverbindung ist dabei fest mit der Trägerleiterplatte verbunden, während sich das Gegenstück lose im Grundgerät befindet. Ein weiterer Vorteil dieser steckbaren Variante beseht darin, daß mittels eines weiteren Steckers, an dem nur die Anschlüsse /ras - /ras0 und /cas - /cas0 mit jeweils einem 100-Ohm-Widerstand verbunden sind, der Originalzustand der Schaltung wiederhergestellt werden kann.

Im Interesse eines stabilen Betriebes sollte auf eine kurze Zuführung der Betriebsspannung geachtet werden. Desweiteren empfehlen sich zusätzliche Blockkondensatoren (100 nF) über beide Versorgungsspannungsanschlüsse unmittelbar an den Speichermodulen.

Im Grundgerät findet die Speichererweiterung unterhalb des rechten Modulschachtes Platz. Die Baugruppe wird dabei mit der Leiterplatte nach oben so eingesetzt, daß die Oberkanten der Speichermodule (jetzt unten) auf den Schaltkreisen der Hauptplatine aufsitzen und die Kanten der Trägerleiterplatte seitlich unter die Modulschienen geschoben werden. Vorher sind im entsprechenden Bereich alle Bauelemente, die auf der Hauptplatine über Schaltkreisoberkante ragen (Kondensatoren, Draht-brücken und evtl. Widerstände), auf deren Rückseite zu versetzten.

Bild 2 zeigt in einer (nicht ganz maßstäblichen) Skizze den Einbau der Erweiterungsbaugruppe. Um mechanische Spannungen zu vermeiden, sollte vorher genau gemessen werden, ob die Bauhöhe der Speichermodule in den zur Verfügung stehenden Platz paßt (bei den von mir verwendeten Typen stimmte es auf den Millimeter!). Die Fixierung der Baugruppe ist auf verschiedene Arten möglich, zum Beispiel durch eine leichte Modifizierung der Modulschienen oder durch einfaches Festbinden an ihnen.

 

Einbau

Bild 2: Einbau der RAM-Erweiterung ins Grundgrät

Zum Testen des zusätzlichen Speichers auf volle Funktionsfähigkeit existiert das Programm RAMTEST. Neben dem Setzen und Rücksetzen aller Bits testet es auf das Vorhandensein von Kurzschlüssen der Daten- oder Adreßleitungen, das Verhalten bei Schreib- und Lesebursts sowie bei der Programmabarbeitung. Das Programm verwendet die physischen Blocknummern 00 ... 7F, wobei das erste Halbbyte die Bank angibt und das zweite den Block innerhalb dieser Bank. Während des Tests wird die aktuelle Blocknummer und eine Kennung angezeigt. Ab dem zweiten Testlauf über vorhandenen Speicher müssen beide Werte übereinstimmen.

Tritt eine Abweichung eines Speicherzelleninhalts vom erwarteten Wert auf, so wird die Blocknummer, die Adresse, der erwartete und der gelesene Inhalt sowie die Anzahl der bisher aufgetretenen Fehler angezeigt. Nach jeweils 28 Fehlern wartet das Programm auf eine Tastatureingabe. Die Interpretation eventueller Fehlerausschriften muß jeder Nutzer selbst vornehmem. Weiterhin können mit dem Kommandos 'BLOCK nn' und 'BANK mm' der physische Block nn in Bank mm als RAM8 ausgewählt werden. Die beschriebenen Routinen verwalten den RAM ohne Einträge in den Modulsteuerwortspeicher. Mit dem Kommando 'MEM nnnn' werden fortlaufend 256 Byte ab Adresse nnnn aus dem aktuellen RAM8-Block angezeigt, wodurch beispielsweise der ordnungsgemäße Refresh überprüft werden kann.

Verwaltung

Der gesamte zusätzlich zur Verfügung stehende Speicher von 7 x 256 K wird wie bereits die originale Bank 0 als RAM8 in Blöcken zu je 16 K verwaltet. Damit existieren bei vollständiger Bestückung 128 solcher Blöcke. RAM0 und RAM4 werden unabhängig von der ausgewählten Speicherbank stets durch die physischen Blöcke 0 und 1 der Bank 0 gebildet. Zur Auswahl eines bestimmten Blockes muß mit einer 7-Bit-Blocknummer gearbeitet werden. Die sich einschließlich Schreibschutz und On/Off-Steuerung ergebenden 9 Steuerbits lassen sich schwerlich in einem 8-Bit-Steuerwort unterbringen, wie es die Modulsteuerung unter CAOS voraussetzt. Um eine kompatible Verwaltung des zusätzlichen Speichers zu ermöglichen, wird folgendes Verfahren angewendet:

Der als eine physische Einheit existierende RAM8 wird in zwei logische Module unterteilt, die jeweils eine Größe von 1 MB besitzen. Das erste, höherwertige Modul besteht aus den RAM-Bänken 0, 1, 2 und 3; entsprechend das zweite, niederwertige Modul aus den RAM-Bänken 4, 5, 6 und 7. Beiden Modulen wird jeweils ein Steuerwort mit folgendem Aufbau zugeordnet:

b7  b6  b5  b4  b3  b2  b1  b0
|   |   |   |   |   |   |   |
|   |   |   |   |   |   |   +----- on/off
|   |   |   |   |   |   +--------- Schreibschutz
|   |   +---+---+---+------------- 16K-Blockausw.
+---+----------------------------- 256K-Bankausw.

Die Bits b2 ... b5 bezeichnen die logische Blocknummer innerhalb einer Bank. Zwischen dieser und der physischen Blocknummer (Bits B4 ... B7 im Ausgabekanal 84h) besteht folgende Beziehung:

Logische Blocknummer = Physische Blocknummer - 2

Dieser Zusammenhang ist lediglich in der Bank 0 von Bedeutung, in der die logischen Blocknummern E und F den Blöcken für RAM0 bzw. RAM4 entsprechen. Eine entsprechende Aufstellung ist in den KC-News 4/94 auf Seite 15 zu finden. Mit den Bits b6 und b7 erfolgt die Auswahl der Speicherbank innerhalb eines Moduls. Sie entsprechen den Bits B2 und B3 im Ausgabekanal 86h, wobei folgende Kodierungen gelten:

b7 b6 höherwertiges Modul niederwertiges Modul

0 0 Bank 0 Bank 4
0 1 Bank 1 Bank 5
1 0 Bank 2 Bank 6
1 1 Bank 3 Bank 7

Für die Verwaltung dieser zwei Module werden auch zwei Moduladressen und damit zwei Bytes im Modulsteuerwortspeicher benötigt. Das höherwertige Modul erhält die Adresse 03 (auch bisher bereits RAM8), womit die Kompatibilität zur bisherigen Verwaltung des 256K-RAM gesichert ist. Für das niederwertige Modul wird die bisher unbenutzte Adresse 06 verwendet.

Die Modulpriorität der zwei als eine physische Einheit existierenden Module muß softwareseitig erzeugt werden. Dem liegt folgendes Prinzip zugrunde: Bei jedem Schaltvorgang in einem der beiden Module müssen stets beide Steuerworte ausgewertet werden. Das Schreibschutz- und das On/Off-Signal für den RAM8 ergibt sich jeweils aus der ODER-Verknüpfung der Bits 0 bzw. 1 in den beiden Steuerworten. Das bedeutet, daß der RAM8 eingeschaltet ist, wenn mindestens eins von beiden Modulen eingeschaltet ist. Ebenso ist der Schreibschutz für RAM8 ausgeschaltet, wenn er für mindestens eins der beiden Module ausgeschaltet ist.

Die Block- und Bankauswahl wird entsprechend desjenigen Steuerwortes vorgenommen, das zum höchstwertigen eingeschalteten von beiden Modulen gehört. Hieraus ergibt sich auch der Wert des Bits 4 im Ausgabekanal 86h. Wenn also das Modul auf Adresse 03 eingeschaltet ist, bleiben Schaltvorgänge auf Adresse 06 wirkungslos. Es wird lediglich das Steuerwort in den Steuerwortspeicher übernommen. Wird nun das Modul auf Adresse 03 ausgeschaltet, gelangt das Steuerwort für Adresse 06 (aus dem Steuerwortspeicher) automatisch zur Anwendung. Der Quelltext zur Modifikation des CAOS-UP 26h ist in der Datei RAM8UP26.MAC enthalten, die die Verwaltung des RAM8 in der beschriebenen Weise realisiert.

Verwendung als RAM-Floppy

Zur Verwendung des neuen Speichers als RAM-Floppy unter MicroDOS existiert das Programm RAMFLOP. Es ist speziell für ein RAM-Floppy unter ausschließlicher Nutzung des RAM8 entstanden. Das Programm entspricht damit meinen persönlichen Vorstellungen und wird vielleicht nicht jeden glücklich machen. Mit 2 MB RAM8 und im Nichtbesitz von steckbaren Speichermodulen größer als 64 K war eine solche Entscheidung aber leicht zu treffen.

Anders als bei der ursprünglichen Version für das 256k-Floppy (KC-News 3/92) modifiziert das Programm nicht mehr die zentrale Steuerschleife im Grundgerät, sondern geht den einzig vernünftigen Weg, indem es das neue UP 26h über die Unterprogrammtabelle in das System einfügt. Damit ist diese RAM-Floppy-Installation auch mit Systemerweiterungen wie z.B. ZAS.COM verträglich. Die ersten beiden (logischen) Blöcke in Bank 0 werden aus dem RAM-Floppy ausgeschlossen. Das geschieht unter anderen deswegen, weil hier beim Start von MicroDOS stets das Directory initialisiert wird. Weiterhin sind so die originalen 64 K des KC 85/4 unbenutzt und können beim Wechsel der Betriebsarten unter CAOS verwendet werden, ohne daß der Inhalt des RAM-Floppys verändert wird.

Das Programm RAMFLOP legt selbst ein Directory mit 256 Einträgen im Block 2 an. Das ist doppelt so viel wie bisher und günstig bei vielen kurzen Dateien, aber mitunter etwas langsamer. Eine - mehr oder weniger intelligente - Routine entscheidet während der Initialisierung, ob das Directory zurückgesetzt wird oder nicht. Ist bereits eine gültige Struktur vorhanden, bleibt diese unverändert. Vorausgesetzt, es wurden in anderen Teilen des RAM-Floppys keine Veränderungen vorgenommen, läßt sich jetzt nach einer zwischenzeitlichen Arbeit unter CAOS das MicroDOS-Regime wieder starten und der ursprüngliche Inhalt des RAM-Floppys steht ohne aufwendige "Wiederbelebungsversuche" sofort zur Verfügung.

 



Bild 3: Abgriff der Steuersignale auf der Hauptplatine


Die "großen" RAM-Module des KC

von Ralf Kästner

Etwa 1988 bis 1990 wurde von den Schöpfern unseres geliebten KC aus Mühlhausen das Modulangebot durch größere RAM-Module erweitert. Die bis dato vorhandenen 16 kB und 64 kB reichten im Regelfall für CAOS-Anwendungen aus, mit der Floppy-Erweiterung und der RAM-Floppy im Laufwerk A: unter MikroDOS brauchte man schon etwas mehr, schnell sind die Modulschächte mit den 64-ern voll und behindern dann andere Aufgaben bzw. machen ein ständiges Umstecken notwendig. Die Informationen zu den damals neuen Modulen sickerten kaum durch, nur wer noch eines abbekam, konnte im Handbuch die notwendigen Info's finden. Ich möchte auf Grund einiger Anfragen mal versuchen, das Ganze zusammenfassend darzustellen.

Laut den Handbüchern sind diese Module vor allem für die automatische Erweiterung der MikroDOS-RAM-Floppy gedacht, was aber nicht bedeutet, daß man sie unter CAOS nicht auch ansprechen kann. Der Aufbau der RAM-Floppy-Verwaltungstabelle wird durch eine Routine im ROM des D004 bei Kaltstart des MikroDOS durchgeführt. Dieses Programm erkennt alle "offiziellen" Module von 16 kB bis 1 MB, leider nicht die bereits vorbereitete Aufrüstung des internen RAM auf 256 kB. Die verwendete Erkennung und Verwaltung der Module läßt sich problemlos auch unter CAOS nutzen.

Die folgende Übersicht beginnt mit dem 128 kB Modul, die Daten zu 16 und 64 kB Modul dürften wohl jedem bekannt sein. Unter MikroDOS wird das Laufwerk A: in Spuren zu je 16 kB, unabhängig vom verwendeten RAM (-Modul) aufgeteilt bzw. verwaltet. Dies ist zugleich die ansprechbare Speichergröße, wenn man die Module für andere Zwecke verwenden will. Da der Z80 (unser U880) nur 64 kB direkt adressieren kann, muß man den zusätzlichen RAM in kleine "Scheibchen" aufteilen, so wie unter MikroDOS. Diese 16 kB-Einheiten werden dann in den Handbüchern als SEGMENT bezeichnet, in anderen Literaturquellen wird auch der Begriff BANK bzw. BANK-SWITCHING verwendet, wir wollen mal beim Segment bleiben.

Alle nachfolgenden Module enthalten eine bestimmte Anzahl dieser Segmente, je nach Ausbaustufe. Es spielt dabei keine Rolle, welche physischen Speicherschaltkreise verwendet werden, man muß nur immer die Möglichkeit haben, die Segmente einzeln zu selektieren und ansprechen zu können. Die CAOS-Schnittstelle dafür ist die Modulverwaltung (Systemhandbuch, Abschnitt 3.3., S.59 ff.), wo über den Steckplatz im Gerät und die Ausgabe von Steuerbytes dorthin mit UP Nr. 26H geschaltet werden kann.

Bei der praktischen Anwendung sind einige Besonderheiten zu beachten. Prinzipiell stellen alle Module ab 128 kB ihren Speicher nur in diesen 16 kB-Segmenten zur Verfügung. Man muß sich das als einen Stapel dieser Segmente vorstellen, wobei das über das Steuerbyte geschaltete Segment ganz unten liegt und gelesen bzw. beschrieben werden kann.

Das 64 kB Modul liegt dagegen immer parallel mit seinen vier 16 kB Segmenten zum Grundgerätespeicher, es ist damit das einzige RAM-Modul dieser Art und blockiert dadurch im eingeschaltenen Zustand alle anderen RAM-Module mit beliebigen Basisadressen, die sich in höheren Steckplatzadressen (Modulschächten) befinden! Um auf das aktiv geschaltete Segment eines beliebigen RAM-Moduls auf einer bestimmten Basisadresse zugreifen zu können, muß alles, was darunter liegt, ausgeschalten werden (lt. Modulprioritätskette)! Der Grundgerätespeicher mit RAM0, RAM4 und RAM8 hat immer die höchste Priorität, da die Steckplatzadressen kleiner als 8 sind und damit vor extern gesteckten RAM-Modulen in der Prioritätskette stehen!

Den Speicherbereiches, wo die Segmente in den CPU-Adressbereich eingeblendet werden, muß man selbst bestimmen. Bis auf das 1 MB Modul kann man alle Module ab 04000H oder 08000H betreiben. Wenn man aber den gesamten zur Verfügung stehenden Speicher nutzen will, kommt im Prinzip nur 08000H-0BFFFH in Frage, nur dort lassen sich alle Module betreiben, der RAM8 liegt da auch fest. Insbesondere das 1 MB Modul (s.u.) läßt sich nicht per Software woanders hinschalten.

Will man jetzt dort auf ein Segment des RAM-Moduls zugreifen, muß der RAM8 (wird bei Initialisierung von CAOS zugeschaltet!) ausgeschaltet werden und der IRM über Rücksetzen von Bit 2 der System PIO Port A ebenfalls. Dann "rutscht" das aktiv geschaltete RAM-Segment des selektierten Moduls (Voraussetzung: alle anderen RAM-Module auf der gleichen Basisadresse in niedrigeren Modulschächten OFFLINE!) ganz nach unten und kann von der CPU angesprochen werden (vgl. Bild 12 Systemhandbuch, S.56/57). Jetzt sollte man CAOS möglichst nicht benutzen, da der IRM aus ist und viele UP's darauf angewiesen sind bzw. diesen Adressbereich auch beschreiben, diese ev. Schreibzugriffe können ins Auge gehen, da dann das selektierte RAM-Modul-Segment beschrieben und damit verändert wird!

So wie auch in der RAM-Floppy von MikroDOS dient der zusätzliche Speicher vor allem zur Zwischenspeicherung von Daten bzw. nicht benutzten Programmen bzw. Programmteilen. Der Zugriff sollte deshalb im eigenen Interesse über im Anwenderprogramm enthaltene spezielle Treiber/Programmroutinen erfolgen, welche man in Abhängigkeit von der Datenstruktur im Programm selbst schreiben muß. Nachdem die Transfers erledigt sind schaltet man den IRM wieder zu und ggf. den RAM8.

Die folgende Variante hat sich am besten bewährt, man umgeht damit alle Ein- und Ausschaltvorgänge nicht selektierter Module, so entsteht auch der "Lichtorgeleffekt" im MikroDOS bei RAM-Floppy-Zugriffen. Man schaltet einfach beim Programmstart des eigenen Programmes sämtliche RAM-Module und den RAM8 offline, wenn man das eigene Programm startet, dann laufen alle Zugriffe auf die Segmente nach dem gleichen Schema ab:

  1. RAM-Segment selektieren, einschalten, merken
  2. IRM off
  3. Speichertransfer
  4. IRM on
  5. RAM-Segment holen, ausschalten

Da sämtlicher RAM auf der Basisadresse 08000H immer aus ist, rutscht das selektierte Segment nach Ausschalten des IRM automatisch nach "ganz unten" und kann benutzt werden. Man benötigt dazu nur eine Tabelle aller Segmente, welche benutzt werden sollen, wo die Moduladresse (Schachtnummer) und das zugehörige Steuerbyte, welches das Segment auf 08000H online/ohne Schreibschutz schaltet, enthalten sind. So lassen sich alle RAM-Module und auch der RAM8 gleich behandeln, was die Sache erheblich vereinfacht. Es sei nochmals betont, daß der IRM zuletzt aus- und zuerst wieder eingeschaltet wird, da dort viele wichtige Arbeitszellen von CAOS liegen! Nun zum Aufbau der einzelnen Module:

M036 - 128 kB segmented RAM

Das Modul enthält 8 RAM-Segmente zu je 16 kB, welche einzeln ab Basisadresse 04000H oder 08000H in den Adressbereich des Prozessors eingeblendet werden können, die Anordnung ist hintereinander, es ist also immer nur ein Segment erreichbar.

Strukturbyte:  78 H  
     
Steuerbyte:  
Bit  7  6  5  4  3  2  1  0
   
     A1 X  X  S2 S1 S0 W  M
 
 A1
= 0 Basisadresse 4000H
    = 1 Basisadresse 8000H
 
 X
nicht benutzt
 
 S2-S0
Segment-Nummer dual von 0...8
 
 W
Schreibschutz (=0 - eingeschaltet)
 
 M
Aktivbit (=0 - Modul inaktiv)

M032 - 256 kB segmented RAM

Das Modul enthält 16 RAM-Segmente zu je 16 kB, welche einzeln ab Basisadresse 04000H oder 08000H in den Adressbereich des Prozessors eingeblendet werden können, die Anordnung ist hintereinander, es ist also immer nur ein Segment erreichbar.

Strukturbyte:  79 H  
     
Steuerbyte:  
Bit  7  6  5  4  3  2  1  0
   
     A1 X  S3 S2 S1 S0 W  M
 
 A1
= 0 Basisadresse 4000H
    = 1 Basisadresse 8000H
 
 X
nicht benutzt
 
 S3-S0
Segment-Nummer dual von 0...16
 
 W
Schreibschutz (=0 - eingeschaltet)
 
 M
Aktivbit (=0 - Modul inaktiv)

M034 - 512 kB segmented RAM

Das Modul enthält wahrscheinlich 32 RAM-Segmente zu je 16 kB, welche einzeln ab Basisadresse 04000H oder 08000H in den Adressbereich des Prozessors eingeblendet werden können, die Anordnung ist hintereinander, es ist also immer nur ein Segment erreichbar.

Strukturbyte:  7A H  
     
Steuerbyte:  
Bit  7  6  5  4  3  2  1  0
   
     A1 S4 S3 S2 S1 S0 W  M
 
 A1
= 0 Basisadresse 4000H
    = 1 Basisadresse 8000H
 
 S4-S0
Segment-Nummer dual von 0...32
 
 W
Schreibschutz (=0 - eingeschaltet)
 
 M
Aktivbit (=0 - Modul inaktiv)

Die Angaben zum M034 entnehme ich dem verwendeten Steuerbyte zur RAM-Floppy-Verwaltung unter MikroDOS, mir ist auch kein User bekannt, der ein solches Modul besitzt.

M035 - 1 MB segmented RAM

Das Modul enthält 64 RAM-Segmente zu je 16 kB, welche in der Regel ab Basisadresse 08000H in den Adressbereich des Prozessors eingeblendet werden können, die Anordnung ist hintereinander, es ist also immer nur ein Segment erreichbar.

Strukturbyte:  7B H  
     
Steuerbyte:  
Bit  7  6  5  4  3  2  1  0
   
     S5 S4 S3 S2 S1 S0 W  M
 
 S5-S0
Segment-Nummer dual von 0...64
 
 W
Schreibschutz (=0 - eingeschaltet)
 
 M
Aktivbit (=0 - Modul inaktiv)

Vom legendären 1 MB Modul gab es einige Nullserienprodukte, mittlerweile sind wohl alle verteilt. Bei meiner Variante diente die Leiterplatte des M032 als Grundlage, es wurden nur andere RAM's (1 MB*1) gesteckt und das Strukturbyte neu verdrahtet. Ich habe bis jetzt verschiedene Ausführungen des Moduls gesehen, es gibt auch Varianten mit einem DIP-Schalter in der Frontplatte, wo man die Basisadresse von 04000H auf 08000H hardwaremäßig umschalten kann, das Steuerbyte wird ja komplett für die Adressierung der 64 Segmente verbraucht.

Zusammenfassend läßt sich sagen, daß mit diesen Informationen jeder Bastler und Tüftler eigene Varianten bauen kann. Wenn aber gleiche Strukturbytes verwendet werden, muß auch die Steuerbytedefinition eingehalten werden, damit die Software nicht verrückt spielt.

In den "KC-News" 3/93 (alte Variante) hatte Kai-Uwe Irrgang beispielsweise eine Umbauanleitung des 64 kB Moduls zu einem 1 MB Modul veröffentlicht, sehr gut an dieser Anleitung fand ich die Tatsache, daß man mittels DIP-Schalter, zwischen 64 kB und 1 MB Modul umschalten kann, so daß man quasi das M011 behält und ein M035 dazubekommt, es werden dort auch alle eben genannten Konventionen eingehalten. Vielleicht kann man diese Anleitung noch mal veröffentlichen, da diese letzte Ausgabe von Herrn Brünig fast niemand erhalten hat.

Sollte jemand vorhaben, größere Projekte unter CAOS zu entwickeln, bin ich gern zur Unterstützung bereit. Die oben angedeutete Speicherverwaltung bildet die Grundlage und Voraussetzung für die Leistungsfähigkeit von "UNIPIC". Im Programm befinden sich 2 Routinen, welche sich zum Einen um die Speicherverwaltung der Bilder und zum Zweiten um die Verwaltung der einzelnen Programmteile (MC-Code-Module) kümmern.

Speziell die Verwaltung der Programm-Module wurde mittlerweile so weiterentwickelt, daß sie sich gegenseitig aufrufen (ähnlich Task-Manager WINDOWS) und bis auf das letzte Byte mit in sich abgeschlossenen Unterprogrammen aufgefüllt werden können, was eine effektive und relativ einfache Programmierung erlaubt.

Zum Schluß noch eine Bitte an alle, in den Handbüchern zu den Modulen ist von einer Programmkassette C0127 RAMDOS die Rede. Darauf befindet sich das gleichnamige Programm für CAOS, welches dem Aufbau einer RAM-Floppy unter CAOS dienen soll, allerdings erfolgt die Ausgabe der Daten nur von/auf Kassette.

Ich weiß leider nicht, ob dieses Programm im Original von Mühlhausen auch für Diskette existiert, wenn jemand eine originale Variante auch für Diskette haben sollte, bitte ich mal um eine kurze Mitteilung per Brief oder Telefon zur Klärung der Bezugsmodalitäten (nur mit Kopie der Originalunterlagen bzw. Beschreibung).


Zur Verwendung von Dateitypen

von Mario Leubner

Die folgende Übersicht soll (ohne Anspruch auf Vollständigkeit) einen Überblick über die beim KC unter CAOS und MicroDOS verwendeten Dateitypen geben. Allein bei der Auflistung aller Dateitypen der verwendeten Programme kommt eine beachtliche Menge dieser 3-Zeichen-Kürzel zusammen.

Viele Programme setzen bestimmte Dateitypen voraus. Darüberhinaus ist es jedem freigestellt, seinen Dateien eigene Namen und Dateitypen zu geben. Wenn man sich aber an die vorhandenen "Regeln" hält ist die Wahrscheinlichkeit höher, daß man sich später auf seinen Disketten noch zurechtfindet.

Weitere neue Dateitypen entstehen, wenn Dateien komprimiert werden. Beim CRUNCHen wird das mittlere Zeichen durch ein 'Z', beim SQUEEZen durch ein 'Q' und beim LZH-Codieren durch ein 'Y' ersetzt.

Nicht enthalten in der Liste sind Dateitypen, die bisher ausschließlich im Z-System verwendet wurden. Die Liste ist bereits ohne diese so lang geworden, daß eine Übersicht schwer fällt. Vielleicht kann jemand in einer gesonderten Aufstellung mal die für das Z-System neu eingeführten Typen zusammenstellen.

Typ / Verwendung

$$$
temporäre Zwischendatei, wird meist nach korrekter Beendigung von Programmen automatisch gelöscht.
 
(F)
kennzeichnet Forth-Quellen von KC-Forth (CAOS)
 
000, 001, ...
besitzt ein Programm meherere Überlagerungsdateien (Overlays), werden diese manchmal mit der laufenden Nummer bezeichnet. Turbo-PASCAL erzeugt diese Overlay-Typen automatisch.
 
ARC
kennzeichnet Archive (MS-DOS)
 
ARK
kennzeichnet Archive (CP/M)
 
ASM
Assemblerquelltext von Edas (CAOS-Datei mit leerem Vorblock) oder eines anderen Assemblerprogramms unter CP/M, wird vorzugsweise für 8080-Mnemoniks verwendet
 
BAK
Backup- oder Sicherheitsdatei, entsteht bei vielen Editoren (z.B. TPKC, WordPro6, Edas) automatisch.
 
BAS
BASIC-Programm der BASIC-Interpreter unter CP/M. Datei kann sowohl in einem internen Format oder als ASCII-Text abgespeichert werden. Teilweise wurden auch CAOS-BASIC-Programme als MC-Abzug mit dem Typ BAS abgespeichert, um einer Verwechslung mit den CP/M-BASIC-Programmen zu vermeiden sollte dafür besser KCB verwendet werden.
 
BAT
Stapelverarbeitungsdatei (Batchdatei), die Bezeichnung wurde wahrscheinlich aus DOS-Systemen importiert. Unter CP/M sollte SUB verwendet werden
 
BRF
spezieller Typ einer Textdatei, ich verwende ihn für meine Post (Briefe)
 
BTP
Bilddatei (Bit Picture) der Programme PCGRAF bzw. dGRAPH
 
C
Quelltext für den C-Compiler
 
CAL
Tabelle für Kalkulationsprogramme SC, KP
 
CAT
Dateiliste von Katalog-Programmen
 
CFG
Konfigurationsdatei für ein Programm
 
CMD
Programmdatei für dBASE (unter CP/M-86 wird dieser Typ auch für ausfühbare Programme verwendet)
 
CMP
Wörterbücher des Rechtschreibprüfungsprogramms WORD+
 
COM
Ausführbares Maschinenprogramm unter CP/M bzw. MicroDOS
 
CRC
Kontrolldatei mit den CRC-Prüfsummen aller Dateien auf einer Diskette, wird vom Programm CRC.COM unterstützt und hilft bei der Suche nach veränderten Dateien. (Dateiname CRCKLIST.CRC)
 
CRF
Cross-Referenzen (kann bei Assemblerlauf entstehen)
 
CRL
relativer (Zwischen-) Code, der beim Übersetzen eines C-Quelltextes entsteht. Um zu einem lauffähigen Programm zu kommen, muß noch ein LINK-Lauf ausgeführt werden.
 
DAT, DTA
Datendatei, wird von verschiedenen Programmen zur Ablage von Informationen benutzt (z.B. die Bestenlisten bei Spielprogrammen)
 
DBD
Datenbankdatei von REDABAS
 
DBF
Datenbankdatei von dBASE
 
DCT
Wörterbücher des Rechtschreibprüfungsprogramms SpellStar
 
DEF
Reportdefinitionen von REDABAS
 
DGF
Diagrammdefinitionsdatei von PCGRAF bzw. dGRAPH
 
DOC, DOK
Programmbeschreibung, Dokumentation. Diese beiden Typen werden gleichwertig benutzt. Da DOC aus dem englischen kommt und DOK aus dem deutschen, habe ich in meinem Programmbestand alle Texte mit deutschen Zeichensatz DOK und die mit USA-Zeichensatz DOC genannt.
 
DSH
Diashow-Datei. Es ist die gesamte Ladeinformation zu einer kompletten Show (Bilder und einstellungen) enthalten.
 
DUM
Speicherabzüge im CAOS- oder CP/M-Format
 
DWG
3D-Zeichnungsdateien von "3D-Grafik"
 
EPR
wird zum Teil für EPROM-Abzüge verwendet. Dateiaufbau hängt vom verwendeten Brennprogramm ab. Für EBRZ12/EBRZ13 unter CAOS ist das normale CAOS-Format mit Vorblock am besten geeignet.
 
EXC
Datei mit ausgeschlossenen Datensätzen für PCGRAF bzw. dGRAPH (Exception)
 
EXE
ausführbares Programm. Die Bezeichnung stammt von MS-DOS, wurde aber auch schon bei CAOS-Programmen gesehen (Boulder.EXE), man sollte doch besser bei KCC bleiben!
 
FMT
Maskendatei von dBASE
 
FRC
Bilddatei des Programms FRACTAL4.KCC, enthält Farb- und Pixelinhalte eines 256*256 Feldes in einem speziellen Format
 
FRM
Reportdefinitionen von dBASE
 
H
Headerfile (Kopfdatei) von C-Quellen. Diese Dateien werden bei der Übersetzung der C-Quellen mit eingebunden (include).
 
HEX
Programm im Intel-HEX-Code. Die Hexcodes sind in einer ASCII-Datei mit Ladeadresse und Prüfsumme abgelegt.
 
HGR
HIRES-Grafikbild von "3D-Grafik"
 
HLP
HELP-Datei, stellt eine normale Textdatei dar. Die Programme HELP.COM bzw. HILFE.COM verwenden solche Dateien.
 
IDX
Indexdatei von REDABAS
 
INC
Include-Datei, enthält Quelltext (Assembler, TurboPASCAL,...) Kann vom Programmierer selbst gewählt werden.
 
IRM
Speicherabzug der Pixelebene des KC-Bildschirmes (8000H bis A000H oder A800H) als CAOS-Datei mit Vorblock, wird von verschiedenen Programmen (z.B. FRAC-MC) verwendet.
 
KCB
KC-BASIC-Programm als MC-Abzug. Anfangsadresse ist immer 300H, d.h. der BASIC-Arbeitsspeicher, Endadresse ist das Ende des BASIC-Programms, als Startadresse ist in diesem Bereich ein kleines Programmstück eingebaut, das den BASIC-Interpreter zuschaltet und das Programm startet. Erzeugt werden KCB-Files mit dem Programm BSAVE, geladen werden sie mit LOAD bzw. FLOAD (.KCB ist dabei mit anzugeben)
 
KCC
ausführbares MC-Programm für dei CAOS-Betriebsart. Der Dateiaufbau ist wie bei den Kassettenaufzeichnungen, beginnt also mit dem Vorblock, der Anfangs-, End- und eventuell die Startadresse enthält
 
KEY
F-Tasten-Datei, ist eine normale CAOS-Datei, die entweder mit FSAVE B900 B99C erzeugt wird oder unter MicroDOS mit den Programmen KEYLOAD.COM, KEYSAVE.COM oder KEYEDIT.COM
 
KOP
Koppeltreiber für MicroDOS, enthält Programmcode für das Grundgerät ab Adresse 0380H bis 03FFH
 
LAY
Bilddatei des Grafikprogrammes LAYOUT.KCC
 
LBR
Bibliotheksdatei, enthält eine Sammlung (meist zusammengehöriger) Dateien, kann mit QL41.COM entpackt werden.
 
LGR
LORES-Grafikbild von "3D-Grafik"
 
LIB
Bibliothek für spezielle Programme
 
LST
Druckertreiber für MicroDOS, enthält Programmcode für das Grundgerät für den Adreßbereich 0200H bis maximal 037FH
 
LZH
Archivdatei, ähnlich PMA (eigentlich von MS-DOS)
 
MAC
Assembler-Quellprogramm für Macro-Assembler, enthält meist Z80-Code, kann aber auch 8080-Code enthalten
 
MEM
Variablendatei von dBASE
 
MSG
Datei mit Meldungen für ein Programm
 
MSK
Maskendatei von REDABAS
 
NDX
Indexdatei von dBASE
 
OBJ
Objektcode (Quellcode) in Assemblersprache (?)
 
OVL, OVR
Überlagerungsdatei (Overlay), wird teilweise auch mit OV1, OV2, usw. bezeichnet, wenn mehrere Dateien erforderlich sind
 
PAS
TurboPASCAS-Quellcode (normales ASCII-Format) oder Quellcode der KC-PASCAL-Compiler, dann CAOS-Dateiaufbau mit Vorblock
 
PCX
Bilddatei im PCX-Format
 
PIC
KC85/3-Bild (kann Pixel oder Pixel + Farben enthalten)
 
PIP
KC85/4-Bild (Pixel, komprimiert oder unkomprimiert)
 
PIF
KC85/4-Bild (Farben, komprimiert oder unkomprimiert)
 
PMA
Archivdatei des Archiv-Packprogramms PMAUTOAE.COM
 
PRG
REDABAS-Programmdatei, teilweise auch für andere Anwendungen
 
PRN
Druckdatei, entsteht bei Assembler- oder Compilerläufen und enthält neben den Quelltext noch den Programmcode
 
PTB
Zeichentabelle für CAOS, MC-Datei von BE00H bis C000H
 
RAZ
Reassemblerquelltext von RAZ80.COM
 
REL
relativer Code, entsteht z.B. beim Assemblieren, mit LINK.COM kann daraus ein ausführbares Programm erzeugt werden.
 
SCR
KC-Pixelspeicherabzug (Screen) unkomprimiert, mit Vorblock, der jedoch keine gültigen Adressen enthält.
 
SET
Zusammenstellung von 15 Zeichensätzen für EDIPIC/UNIPIC, CAOS-Datei mit Vorblock, AADR = 0200H, EADR = 2000H
 
SPR
verschiebliches ausführbares Programm. MicroDOS sucht als erstes nach einem COM-File dann nach einem SPR-File. Der Unterschied besteht darin, daß COM-Files an den TPA-Anfang 100H und SPR-Files an das TPA-Ende geladen werden. Bisher ist mir jedoch keine Datei bekannt, die den Dateityp SPR besitzt. (Ergänzung von Jörg Linder: SPR steht für System Page Relocatible und wurde mit CP/M 3 eingeführt. Dort werden solche Dateien aber für die Erstellung eines Systems benötigt.)
 
SSS
Programmdatei von KC-BASIC, wird auch von HCBASIC.COM benutzt
 
SUB
Stapelverarbeitungsdatei, diese Dateien enthalten eine Folge von Kommandos, die wie Tastatureingaben ablaufen können indem das Input-Kommando von MicroDOS '<' verwendet wird. Ein besonderer Vertreter ist die INITIAL.SUB-Datei, die nach einem Systemstart automatisch abgearbeitet wird.
 
SYM
Symboltabelle (z.B. von Linker erzeugt, von Debugger benutzt)
 
SYS
Datei mit Speicherabzug von Betriebssystemen
 
TMP
temporäre Zwischendateien
 
TTT
Datendatei (Feldinhalt) von KC-BASIC, erzeugt durch CSAVE*
 
TXP
Textdatei im Format von TEXTPRO.KCC (?)
 
TXT
Textdatei, allgemein
 
TXW
Textdatei des Textprogrammes WordPro. Es existieren unterschiedliche Formate von Aufbau und Zeichensatz:
WordPro'86 - CAOS-Datei mit Vorblock, direkter Speicherabzug, ASCII-Zeichensatz und Druckersteuerzeichen
WordPro'89 - Textformat mit CR,LF ASCII-Zeichensatz mit Druckersteuerzeichen und ausgewählten Grafikzeichen
WordPro5 - wie WordPro'89, weitere Grafikzeichen
WordPro6 - Textformat mit CR,LF, IBM-Zeichensatz
WordPro9 - wie WordPro'86, weitere Druckersteuerzeichen
 
UUU
Listdatei von KC-BASIC, erzeugt durch die Kommandos LIST#1 oder OPENO#1 - PRINT#1 - CLOSEO#1
 
VAR
Variablendatei von REDABAS
 
WRK
Hilf- bzw. Arbeitsdateien (Work) versch. Programme
 
WS
Textdateien mit Steuerzeichen von WordStar werden häufig mit diesem Typ gekennzeichnet, um sie von reinen ASCII-Texten unterscheiden zu können
 
ZAS
Terminaltreiber für MicroDOS, enthält Programmcode für das Grundgerät für den Adreßbereich 0400H bis maximal 1BFFH
 
Z80
Assembler-Quelltexte, die Z80-Code enthalten


Es ist "SHOWTIME"

von Ralf Kästner

Ich wurde von verschiedenen Seiten angesprochen, wo denn die ganzen Show's geblieben sind, welche ich zum Treffen im April gezeigt hatte. Die wurden nicht untergepflügt, es ist alles noch vorhanden.

Ich hatte zwar Jörg alles auf die CPU280 überspielen lassen und angenommen, daß sie irgendwie über die "News" verbreitet werden aber bisher ist nichts passiert, er hat ja auch so genug zu tun. Ich habe mich noch mal hingesetzt und alle interessanten Show's etwas umgearbeitet.

Im Ergebnis hat man mit dieser Ausgabe alles auf einmal und vor allem im Format von "DIASHOW 1.0" (war auf der Beilagediskette der KC-News 4/94 als Freeware), dadurch können alle mit genug RAM die Möglichkeiten des KC in optisch doch ganz ansprechender Form bewundern. Man kann also alle Show's sowohl unter "DIASHOW" als auch unter "UNIPIC" laden und starten.

Die einzelnen "Kunstwerke" möchte ich vorab noch mal kurz beschreiben, sie wurden alle mit PMARC gepackt und sind vorher deshalb auf eine KC-Diskette zu entpacken. Ich gebe die Anzahl der benötigten Bilder mit an, dann kann man schon mal einschätzen, was sich, bezogen auf das eigenen System, lohnt, auszupacken. Nicht gleich verzagen bei den großen Show's, man lädt dann einfach die Show bis zur Vollbelegung der verfügbaren Bilder, es fehlt eben dann etwas am Ende.

ERDE/V20.DSH

Dies war meine erste richtige Show, sie entstand noch mit "EDIPIC41" und "DIASHOW 1.0", das Rohmaterial hatte ich dem Titelbild von "ArtStudio" und dem BASIC-Programm "GLOBSHOW" entnommen. Es werden 20 Bilder benötigt, aber auch mit weniger kann man das Prinzip gut erkennen.

In der Show dreht sich die Erde im All mit insg. 20 einzelnen Phasen, im Original "GLOBSHOW" werden 80 Einzelbilder verwendet, dies ist aber nur eine Einzellösung in diesem Programm, durch "DIASHOW" bzw. "UNIPIC" hat man nun die Möglichkeit freie Sequenzen zusammenzustellen.

FLYWIN.DSH

Diese Show besteht aus 17 Einzelbildern. Sie wurde von Jörg Linder unter der Regie von "EDIPIC" und "DIASHOW" zusammengestellt. Laut seinen Worten ist es als Versuch zu sehen, die großen Rechner zumindest optisch auf dem KC nachzubilden. In der Show fliegt das WINDOWS-Logo von links nach rechts über den Bildschirm, was recht gut aussieht.

KUTSCHE.DSH

Diese Show benötigt 8 Bilder und dürfte damit von den meisten Usern vollständig geladen werden können. Man sieht eine alte Kutsche über den Bildschirm "fahren". Hier standen mir bereits die acht Bewegungsphasen der Kutsche zur Verfügung, mittels "UNIPIC" wurde alles in die richtige Position gerückt.

Hier kann man sehr gut sehen, wenn die Veränderungen von Bild zu Bild sehr fein variiert werden, sieht das Ganze recht flüssig aus, bei vielen verschiedenen Phasen der Bewegung hat man auch bereits Mühe den Anfang bzw. das Ende während der Show auszumachen.

DUELL.DSH

Auch hier konnte ich auf bereits vorhandenes Bildmaterial zurückgreifen. Die 8 Bilder stellen ein Duell im wilden Westen dar, es war aber dennoch nicht ganz einfach, die beiden Hauptdarsteller und den Hintergrund in Übereinklang zu bringen.

Durch die unterschiedliche Größe der beiden Figuren kommt etwas Perspektive und räumliche Tiefe ins Bild. Die "Spannung der Handlung" wird durch die Möglichkeit der freien Wahl der Standzeit jedes Showbildes erhöht. Besonders bei der Justage der einzelnen Bildpositionen der Figuren war einiges an Feinarbeit nötig.

FLIEGE.DSH

Hier benötigt man 22 Bilder, diese kleine lustige Show läßt zwei Schmetterlinge, eine Fliege und einen Schriftzug über den Bildschirm wandern. Man hat somit 4 Bewegungen gleichzeitig auf dem Bildschirm.

Ich wollte damit den Hauptvorteil von "DIASHOW" bzw. "UNIPIC" demonstrieren, man kann den ganzen Bildschirm in Echtzeit laufen lassen. Gegenüber einzeln programmierten Bilschirmeffekten kann man quasi den gesamten Bildschirm "frei programmieren" und so unendlich viele Bewegungen gleichzeitig simulieren.

Es erfordert allerdings auch ein gut ausgebautes System mit möglichst viel RAM. Im unteren Teil der Show wandert ein Schriftzug vertikal und horizontal, welcher seine Farben ständig wechselt. An dieser Stelle wurde etwas mit den Ebenen experimentiert. Es laufen nur die Bildpunkte, die Farben sind in jedem Bild die gleichen und bereits vorhanden. Durch die geänderte Position der Schrift von Bild zu Bild nimmt sie die bereits vorhandenen verschiedenen Farben an.

FANTASY1.DSH

Jetzt wird es interessant und auch ein wenig kompliziert. Diese Show benötigt zwar 25 Bilder, ein Auspacken lohnt sich aber bereits ab 6 verfügbaren Bildern auf dem eigenen System. Für mich haben Morphing-Sequenzen auf den größeren Computern schon immer etwas Faszinierendes an sich gehabt. Was lag also näher mal etwas Ähnliches auf dem KC zu probieren, in FANTASY1 steckt zumindest mal ein erstes Ergebnis.

Ich habe mir dazu 6 geeignete Bilder mit ähnlichem Inhalt in sw/wß gesucht, das ist wichtig für einigermaßen homogene Übergänge und sw/wß für die Geschwindigkeit, es können nur die Pixel laufen!

Wie stellt man nun die Übergänge zwischen den Bildern her? Das erledigt der richtige Einsatz von "UNIPIC", es ist aber schon etwas Übung im Umgang mit dem Programm notwendig, ich mußte selbst auch überlegen, wie man es am schnellsten hinbekommt. Die prinzipielle Vorgehensweise sieht wie folgt aus:

Man legt erst mal die Anzahl der Übergänge von einem zum anderen Bild fest, im Beispiel, 3 Zwischenbilder. Dann erstellt man mit Lupe und COPY für jeden Übergang (Blende) je eine AND-Maske (nichtgesetzte Bildpunkte löschen Bildinhalt an dieser Stelle) hinter den Bildern.

Im Beispiel wurde im Raster von 2*2 Pixeln erst links oben, dann links oben/rechts unten und in der dritten Blende links oben/rechts unten/links unten die Pixel nicht gesetzt.

Dann kopiert man das Ausgangsbild in die 3 Bilder dahinter und verknüpft jede Kopie mittels AND mit der zugehörigen Maske, dadurch verschwinden von Blende zu Blende immer mehr Punkte des Ausgangsbildes. Anschließend negiert man die drei Blendenmasken und kopiert das Endbild zunächst auch drei mal hinter sich selbst.

Anschließend verknüpft man diese 3 Kopien mit den negierten AND-Masken wieder mittels AND-Operator, dadurch sind von Blende zu Blende immer mehr Punkte des Endbildes zu sehen, das war es schon fast. Jetzt muß man die 1. Blende des Ausgangsbildes mit der 1. Blende des Endbildes mittels OR verknüpfen, damit verschmelzen die beiden Blenden ineinander, wobei von Blende zu Blende das Ausgangsbild verschwindet und das Endbild erscheint.

War doch ganz einfach und logisch - oder? Schaut es euch mal an, ich finde, es sieht auch schon ganz ansprechend aus. Erhöht man die Anzahl der Blenden zwischen den Bildern noch, wird der optische Eindruck sicher weiter verbessert.

UNIPIC.DSH

Zum Schluß noch mein bisher größtes Produkt, es werden 32 Bilder benötigt. In den Abteilungen der Kaufhäuser und Computershop's sieht man ja fast immer Produktpräsentationen der neuesten Programme auf den Computern flimmern. Genau das können wir jetzt auch selbst machen.

Ich dachte mir, das Programm, was diese Möglichkeiten auf dem KC eröffnet, sollte sich auch selbst so präsentieren. Die Bilder habe ich größtenteils selbst gezeichnet und zusammengestellt. Für diese Aktion waren knapp 3 Wochen Arbeit mit "UNIPIC" notwendig. Ich wollte zum Treffen das Programm damit vorstellen, wie so oft, kam es jedoch ganz anders, siehe Berichte in den zurückliegenden "News".

Auf alle Fälle kann man in der Show die Möglichkeiten des Bildablaufgenerators gut erkennen, alle Bilder sind in Farbe, ein HIRES-Bild ist u.a. auch enthalten. Beim Zeichnen der Bilder habe ich auch noch ein paar Umbequemlichkeiten bei der Arbeit, speziell im Editor, festgestellt, die kann ich in der nächsten Version dann gleich beseitigen.

In vielen Bildern habe ich von der Möglichkeit Gebrauch gemacht, den Kontrast visuell zu verbessern, man negiert die eigentlichen Bildpunkte und ordnet den dann nicht mehr gesetzten Pixeln (eigentlich Vordergrund) die Hintergrundfarbe zu, umgedreht den gesetzten (Hintergrund) eine Vordergrundfarbe. Die hervorzuhebende Information leuchtet dann förmlich im übrigen Bild und wird wunschgemäß stärker betont. Bewegt man sich dabei im LORES-Farbbyteraster sind auch dort interessante Effekte machbar.

Soweit zu den einzelnen Show's, ich habe nur die thematisch etwas anspruchsvolleren zusammenhängenden Sachen reingenommen, eine kurze Show mit 3 oder 4 Bildern hat man ja schnell zusammen, etwa so, wie die Demos zu den beiden Programmen.

Will man etwas "Richtiges" machen, muß man sich schon mehr Gedanken, sowohl bei der Planung als auch Gestaltung der einzelnen Bilder machen. Die Beispiele demonstrieren recht gut die Möglichkeiten von "UNIPIC" bzw. auch "DIASHOW", die beigefügten Tips und Tricks helfen hoffentlich allen aktiven Usern dabei, die Programme noch erfolgreicher einzusetzen.

Ich wünsche allen viel Spaß beim Ausprobieren.


ZAS - Version 1.1

von Mario Leubner

Für alle Anhänger von ZAS habe ich eine Weiterentwicklung vorgenommen, die nachfolgend beschrieben werden soll:

  • Teilweise wurde beklagt, daß der Druckertreiber unter ZAS nicht richtig arbeitet. Da dies nur nach einem Warmstart mit dem CAOS-Menüwort 'QUIT' auftreten kann, wird jetzt der Drucker- und Koppeltreiber bei deiser Bedienhandlung neu initialisiert. (CALL 200H und CALL 380H)
  • Die Funktion zum Löschen bis Bildschirmende (Steuercode 14H) funktionierte leider noch nicht richtig, am rechten BS-Rand blieben 2 Zeichen stehen. Der Fehler ist jetzt behoben.
  • Für alle, die nicht ständig mit ZAS arbeiten wollen, gibt es jetzt die Option /OFF beim Aufruf. Das Kommando "ZAS /OFF" testet das Vorhandensein des Original-D004-EPROM und lädt bei erfolgreichem Test die alte Steuerschleife aus dem EPROM. Mit Original-EPROM ist dabei die Version 2.1 gemeint, von anderen EPROM's ist kein Inhalt bekannt.
  • Das Laden von ZAS verändert den bereits eingestellten Zeichensatz nicht mehr.
  • Die Routinen zum Zugriff auf das RAM-Floppy wurden effizienter programmiert, wodurch ein noch schnellerer Zugriff erreicht werden konnte.
  • Wegen geplanter Erweiterungen ist der ohnehin bisher noch nicht (?) genutzte IBM-Zeichensatz im 40-Zeichenmodus nur noch mit CAOS4.3 verfügbar. Der gesamte Adreßbereich von 400H bis 2000H ist für ZAS reserviert, siehe dazu auch Diskussion in den letzten KC-News!

Beschreibung der Televideo-Emulation für KC-MicroDOS

TVI912.ZAS ist eines ZAS-kompatibler Terminaltreiber für den CAOS-Adreßbereich ab 400h. Ebenso wie alle anderen ZAS-Versionen kann TVI912.ZAS mit MSYSG2.COM auf der Systemdiskette installiert werden oder mit LADE.COM nachgeladen werden. TVI912.ZAS ist der erste Versuch einer Televideo-Emulation auf dem KC85/4.

Zu beachten ist jedoch, daß bei aktiver Televideo-Emulation ein nochmaliges Laden von Treibern nicht möglich ist, da die KC-spezifischen Routinen nicht mehr zur Verfügung stehen!

Ist während der Televideo-Emulation noch ein anderer Treiber im Grundgerät erforderlich, so ist MicroDOS mit einer KC-üblichen Steuerschleife zu starten, danach die Treiber und zum Schluß TVI912 aktivieren. Eine INITIAL.SUB-Datei könnte folgenden Inhalt haben:

; Start MicroDOS mit INITIAL.SUB-Datei
B:
KEYLOAD POWER.KEY
;lädt F-Tasten
LADE LQ100.LST
;lädt Druckertreiber
DRUCK
;spezielle Hardcopy-Routine
LADE TVI912.ZAS
;lädt Televideo-Emulation
TVIPROG
;Startet Programm

TVI912.ZAS emuliert Televideo-Terminals mit einem Funktionsumfang, der mindestens Televideo 912 oder 920 entsprechen müßte. Eine genaue Kenntnis, welche Funktionen bei welchem Televideo-Standard vorliegen müssen, habe ich leider nicht.

Was kann TVI912 und was kann es nicht? Es gibt mit TVI912.ZAS keinen direkten Zugriff auf den Speicher des KC-Grundgerätes mehr (Bytes lesen/schreiben, UP's aufrufen...), keine Grafikfunktionen (Linien, Punkte, Kreise...) und keinen 40-Zeichenmodus. Dafür werden einige neue Funktionen unterstützt.

Zeichenausgabe erfolgt im erweiterten ASCII-Zeichensatz, 20H bis 7EH für die normalen Zeichen und 80H bis FFH für den erweiterten IBM-Grafikzeichensatz. Inwieweit Televideo die IBM-Grafikzeichen unterstützt, ist mir ebenfalls nicht bekannt.

In der folgenden Übersicht sind alle Funktionen genau erklärt:

Beep ^G 07h
Ausgabe eines kurzen Tones. Die Syntax der Televideo-Funktion SetSound (ESC-ä) ist mir leider nicht bekannt. Eine Einbindung dürfte jedoch keine Probleme bereiten.
 
CursorLeft ^H 08h
Cursor bewegt sich um eine Position nach links. Befindet sich der Cursor bereits am Zeilenanfang, so bewegt er sich zum rechten Rand der vorigen Zeile. Befindet er sich in der linken oberen Ecke findet keine Cursorbewegung statt (der Code wird ignoriert).
 
HorizontalTab ^I 09h
Vorwärtsbewegen des Cursors bis zur nächsten Tabulatorposition. Tabulatoren befinden sich auf jeder 8. Spalte. Steht der Cursor bereits auf oder hinter dem letzten Tabulator einer Zeile, bewegt er sich zum Anfang der nächsten Zeile, wobei unter Umständen der Bildschirminhalt um eine Zeile nach oben scrollt.
 
LineFeed ^J 0ah
Abwärtsbewegen des Cursors um eine Zeile. Befindet er sich bereits in der letzten Zeile, so scrollt der Bildinhalt eine Zeile nach oben und der Cursor befindet sich am Anfang der letzten Bildschirmzeile.
 
CursorUp ^K 0bh
Cursor bewegt sich um eine Zeile nach oben. Befindet er sich bereits in der obersten Zeile, wird der Code ignoriert.
 
CursorRight ^L 0ch
Bewegt Cursor um eine Position nach rechts. Überschreitet er dabei den rechten Bildschirmrand, beginnt er die nächste Zeile von vorne, wobei gescrollt wird, falls er in der letzten Zeile stand.
 
CarrigeReturn ^M 0dh
Cursor bewegt sich bis zum Anfang der Zeile zurück, in welcher er sich befindet. Der Zeileninhalt bleibt unverändert.
 
CursorDown ^V 16h
Cursor bewegt sich eine Zeile nach unten. Entspricht dem LF-Code, wobei allerdings nicht gescrollt wird. Befindet sich der Cursor in der letzten Zeile, wird der Befehl ignoriert.
 
ClearScr ^Z 1ah
Bildschirm löschen, Cursor befindet sich anschließend in der linken oberen Ecke.
 
EscapeCodes ^Ä 1bh
Verzweigt zu den 'richtigen' Funktionen.
 
Scroll ^Ö 1ch
Bildschirm scrollt um eine Zeile nach oben, wenn die unterste Zeile überschritten wurde.
 
Page ^Ü 1dh
Bildschirm scrollt nicht, wenn die unterste Zeile überschritten wurde. Der Cursor wird stattdessen wieder in die linke obere Position gesetzt ohne den Bildschirm zu Löschen.
 
Home ^^ 1eh
Cursor in linke obere Ecke positionieren.
 
BackSpace DEL 7fh
Obwohl in meiner Beschreibung der Televideo-Steuerzeichen nicht enthalten, habe ich diesen Befehl beibehalten. Der Cursor bewegt sich dabei um eine Position nach links und es wird ein Leerzeichen an dieser Stelle ausgegeben. Befindet sich der Cursor bereits am Zeilenanfang, so bewegt er sich zum rechten Rand der vorigen Zeile. Befindet er sich in der linken oberen Ecke wird der Code ignoriert.
 
SetBright ESC ( 1bh 28h
Umschalten von halber auf normale Leuchtstärke, ist auf dem KC85/4 nicht realisierbar. Einzige Möglichkeit wäre die konsequente Nutzung des HIRES-Modus. Dann könnte für halbe und normale Leuchtstärke je eine andere Farbe gewählt werden. Nachteilig an dieser Methode wäre jedoch, daß alle Bildschirmausgaben (einschließlich Scrolling) beide IRM-Ebenen beschreiben müßten, was eine Verdopplung der Zeitdauer bei allen Anzeigen zur Folge hat.
 
SetDim ESC ) 1bh 29h
Umschalten von normaler auf halbe Leuchtstärke - nicht implementiert, siehe SetBright.
 
ClearScr ESC * 1bh 2ah
ESC + 1bh 2bh
ESC , 1bh 2ch
ESC : 1bh 3ah
ESC ; 1bh 3bh
Bildschirmlöschen, siehe auch ^Z. Warum diese Funktion so viele Male definiert ist, kann ich nicht sagen. Vermutlich benutzt jede Televideo-Version seinen eigenen Code - um kompatibel zu bleiben sind dann alle anderen Codes ebenfalls enthalten.
 
CursorAttr ESC . n 1bh 2eh nnh
Setzt die Cursorattribute. Der mit n anzugebende Parameter hat folgende Bedeutung:

'0' = schaltet den Cursor ab
'1' = blinkender Block als Cursor
'2' = stehender Block als Cursor
'3' = blinkender Stichcursor
'4' = stehender Strichcursor
 
SetCursorPos ESC = y x 1bh 3dh yyh xxh
Cursor frei positionieren. Die Parameter y (Zeilen 0-23) und x (Spalte 0-79) müssen mit einem Offset von 20h (32 dezimal) angegeben werden.
 
ScrPeek ESC ? 1bh 3fh
Abfrage der augenblicklichen Cursorposition. Über die Art der Übergabe der Parameter bin ich mir noch nicht im Klaren, so daß die Funktion noch nicht enthalten ist.
 
LineInsert ESC E 1bh 45h
Alle Zeichen ab der Cursor-Zeile abwärts (diese eingeschlossen) werden um eine Zeile nach unten verschoben. In der Zeile, in der sich der Cursor befindet, wird eine Leerzeile eingeschoben. Der Cursor befindet sich anschließend am Anfang der Leerzeile.
 
SetAttributes ESC G p 1bh Gh pph
Setzen der Video-Attribute. Alle folgenden Bildschirmausgaben werden auf diese eingestellten Werte zurückgreifen. Für jede Funktion ist ein Bit vorgesehen - ist das Bit gesetzt, wird die Funktion aktiviert. Die Attribute können auch kombiniert werden.

Format:
Bit 0 Blank (jedes Zeichen wird als Leerzeichen ausgegeben)
Bit 1 Blink (auf dem KC nicht realisiert)
Bit 2 Invers (Pixelmuster wird invertiert)
Bit 3 Underline (Unterste Pixelzeile des 10*4 Zeichenfeldes wird gesetzt)

Sinnvolle Kombinationen sind:
ESC G 00 Normalanzeige
ESC G 02 Keine Anzeige (z.B. für Paßworteingaben)
ESC G 04 Inversdarstellung
ESC G 08 Unterstreichen ein
ESC G 0c Unterstreichen und Inversdarstellung
 
BackTab ESC I 1bh 49h
Bewegt den Cursor rückwärts bis zur nächsten Tabulator-Position. Befindet sich der Cursor am Zeilenanfang, wird er auf den letzten Tabulator der vorigen Zeile gesetzt. Befindet er sich in der Home-Position wird der Befehl ignoriert.
 
CharInsert ESC Q 1bh 51h
An der augenblicklichen Cursor-Position wird ein Leerzeichen eingefügt. Alle rechts davon befindlichen Zeichen werden um eine Stelle nach rechts verschoben, das Zeichen auf der letzten Position der Zeile geht dabei verloren. Der Cursor befindet sich anschließend auf dem erzeugten Leerzeichen.
 
LineDelete ESC R 1bh 52h
Der Befehl löscht die aktuelle Cursor-Zeile und rückt alle weiteren Zeilen von unten auf. Der Cursor befindet sich am Anfang der gelöschten bzw. der ersten nachgerückten Zeile.
 
EraseEndLine ESC T 1bh 54h
ESC t 1bh 74h
Die Zeile wird ab der Cursorposition - einschließlich dieser - bis zum Ende gelöscht. Der restliche Bildinhalt und die Cursorposition bleiben unverändert.
 
CharDelete ESC W 1bh 57h
Das Zeichen an der augenblicklichen Cursor-Position wird gelöscht. Alle rechts davon befindlichen Zeichen der Zeile rücken um eine Stelle nach links. Die Position des Cursors bleibt unverändert.
 
EraseEndScreen ESC Y 1bh 59h
ESC y 1bh 79h
Der Bildschirm wird ab der Cursor-Position - einschließlich dieser - bis zur unteren rechten Ecke gelöscht. Die Cursor-Position ändert sich nicht.
 
Keylist ESC Ä d 1bh 5bh ddh
Diese Routine aus der KC-Steuerschleife leicht abgeändert und gestattet weiterhin die Verwendung der Funktion KEYLIST des CCP-Kommandos '2'. Der Parameter 'd' ist ein Dummy, unabhängig von dessen Wert wird nur die Funktion KEYLIST erreicht.
 
EXIT ESC Ö 1bh 5ch
Diese Routine aus der KC-Steuerschleife ist vorerst noch enthalten und ermöglicht weiterhin die Funktion EXIT des CCP-Kommandos '0'.
 
Revers ESC b 1bh 62h
Umschalten des gesamten Bildschirms auf Revers-Darstellung, also dunkle Schriftzeichen auf hellem Grund. Bewirkt beim KC85/4 eine Einfärbung des gesamten Bildschirms mit der Farbe Schwarz auf Türkis.
 
Normal ESC d 1bh 64h
Umschalten des gesamten Bildschirms auf normale Darstellung von hellen Schriftzeichen auf dunklem Grund. Bewirkt beim KC85/4 die Standardeinstellung weiß auf blau.
 
FunctionKey ESC e f 1bh 65h ffh
Diese Routine aus der KC-Steuerschleife ist vorerst noch enthalten und ermöglicht weiterhin die Funktion KEY des CCP-Kommandos '3'.
 
SetNational ESC z n 1bh 7ah nnh
Auswahl eines Zeichensatzes zur Sonderzeichendarstellung. Man kann unter 8 Zeichensätzen wählen. 'n' enthält Werte von '0' bis '7', die in dieser Reihenfolge folgenden Zeichensätzen entsprechen: USA, Frankreich, Deutschland, England, Dänemark, Schweden, Italien und Spanien. Beim Booten ist automatisch der deutsche Zeichensatz eingestellt.
 
SetSound ESC ä ???
Syntax unbekannt - nicht implementiert.

Spezielle Hinweise zur Nutzung am KC

  • Die Tastaturtabelle entspricht dem Computermodus. COMPUMOD.COM und TYPEMOD.COM sind nicht verwendbar.
  • Einige Tasten in der Control-Ebene wurden in der Funktion geringfügig verändert: F1 + '3' löscht den Bildschirm F1 + '6' keine Funktion F1 + '9' wechselt den nationalen Zeichensatz 0...7
  • Die Speicherzellen KTABAD, BSSTAT, ESCTAB und VERSION werden soweit dies möglich ist aktuell gehalten. Bit 1 von BSSTAT wird nur bei deutschem Zeichensatz gesetzt. Als Version wird 0.1 gemeldet. ESCTAB enthält die Adresse von ESC-A, daraus kann wie gewohnt das Ende der Steuerschleife berechnet werden.
  • Mit dem Kommando '0' gelangt man zum CAOS, das Menüwort 'QUIT' führt von dort wieder zu MicroDOS und der TVI-Emulation.
  • Das Kommando '1' löscht nicht mehr den Bildschirm, da der Code 0ch nur den Cursor nach rechts bewegt. (F1 + '3' verwenden)

 


TRANSFER - Der zweite Versuch

von Frank Dachselt

All diejenigen, denen die Arbeit mit dem Programm TRANSFER aus den letzten News Schwierigkeiten bereitete bzw. völlig unmöglich war, möchte ich hiermit zunächst um Verständnis bitten. Folgendes zur Erklärung. Kurz vor Redaktionsschluß der letzten News habe ich die Quelltexte erhalten und mich auch gleich mit der Anpassung dieser an unser System beschäftigt. Es ist mir auch relativ schnell gelungen, eine lauffähige Version zu erstellen. So dachte ich zunächst.

Da ich schon lange ein solches Tool gesucht hatte, war die Freude bei mir groß und ich wollte auch den übrigen KC-Usern das Programm nicht unnötig lange vorenthalten. Also bereitete ich schnell das Paket für die News vor. Ein etwas voreiliger Schritt, wie sich später herausstellte, denn bald kamen Nachrichten von anderen KC-Usern, die vergeblich versucht hatten, mehr als nur die Einloggschleife von TRANSFER zu aktivieren. Die Ursache, die zu einem instabilen Verhalten während des Einloggens führte, lag in der falsch benutzten BDOS-Funktion 50, die aus dem ursprünglich enthaltenen CP/M3-Quelltext übernommen wurde.

Diesen KC-News liegt eine korrigierte Fassung des Programms TRANSFER bei, die nun auch eine angemessene Testphase durchlaufen hat. Der Quelltext wurde dabei soweit reduziert, daß die Datei TRANS-00.INC nicht mehr nötig ist. Die Funktionen des Programms sind aber identisch mit den in den letzten News beschriebenen.

Weiterhin wurde in den letzten News das Programm MSDOS zum Filetransfer mit MS-DOS-Disketten erwähnt, das in seiner aktuellen CP/M3-Variante die größte Funktionalität für ein solches Programm bietet. Nachdem nun die Quelltexte einer älteren Version vorliegen und auch schon an MicroDOS angepaßt wurden, bleibt jedoch festzustellen, daß das Programm in dieser Fassung nicht die Leistungsfähigkeit von TRANSFER erreicht.

Da aktuellere Quellen auch in Zukunft nicht zur Verfügung stehen werden, möchte ich vorschlagen, das Programm TRANSFER als Grundlage für Weiterentwicklungen zu nutzen. Ich denke dabei an Funktionen wie Lesen und Schreiben in Unterverzeichnissen, Erkennen von Diskettenformaten und Übergabe der entsprechenden Parameter an das BIOS, Initialisierung eines MS-DOS-Filesystems auf einer neu formatierten Diskette u.v.m.

Eigentlich war vorgesehen, ein paar neue Funktionen bereits in diesen News vorzustellen, wenn nicht der Zeitmangel dies verhindert hätte. Falls sich jemand in dieser Richtung programmiererisch betätigen möchte, so steht dem nichts im Wege. Um parallel entstehende Lösungen zu vermeiden, ist eine vorherige Absprache über ein solches Projekt sinnvoll. Das in Ansätzen erkennbare modulare Konzept der Quelltexte dürfte sich in dieser Hinsicht als nützlich erweisen.


HARDCOPY.COM - ein universelles Diskettenkopierprogramm

von Mario Leubner

Vielleicht ist der Name schlecht gewählt - es handelt sich nicht um ein Programm zum Anfertigen eines Bildschirmausdrucks, sondern um ein Kopierprogramm. Ich habe den Namen jedoch von Uwe Felgentreu's gleichnamigen Programm übernommen. Von ihm stammt auch die Idee, er möge mir verzeihen, daß ich seine Programmidee ohne Absprache weiterentwickelt habe.

Das neue HARDCOPY.COM ersetzt die bisherigen Programme HARDCOPY.COM, SYSCOPY.COM und COPY720K.COM von Uwe und ist dabei noch universeller einsetzbar. Anliegen des Programms ist das Kopieren von Disketten mit bekanntem Format auch bei unbekanntem Inhalt. So können zum Beispiel auch 720K-PC-Disketten kopiert werden. Voraussetzung ist nur, daß das Diskettenformat auf dem KC einstellbar ist. Beim Aufruf ohne Parameter erscheinen folgende Hinweise zur Anwendung des Programms:

Aufruf:

HARDCOPY <Quelldrive> <Zieldrive> [/Spurzahl]

  • HARDCOPY.COM kopiert Disketten Spur für Spur, ohne den Disketteninhalt zu berücksichtigen.
  • Quell- und Zieldrive müssen mit dem gleichen physischen Diskettenformat installiert sein.
  • Sind Quell- und Zieldrive identisch, wartet das Programm zum Diskettenwechsel.
  • Als Option kann die max. zu kopierende Anzahl Spuren angegeben werden, /SYS kopiert nur die Systemspuren.

Dazu noch folgende Anmerkungen:

  1. Quell- und Ziellaufwerk müssen angegeben werden, der Doppelpunkt nach dem Laufwerksname kann weggelassen werden. Beide Laufwerke müssen mit den selben physischen Formaten installiert werden.
  2. Sind die Laufwerke dem selben physischen Laufwerk zugeordnet, dann wartet das Programm zum Wechseln der Disketten - es kann also auch auf Systemen mit nur einem Diskettenlaufwerk benutzt werden.
  3. Kopiert werden können Disketten aller auf dem KC85 installierbaren Diskettenformate. Das gewählte Diskettenformat wird aus den Disket-tenparameterblöcken (DPB) des Betriebssystems ermittelt.
  4. Ist bekannt, bis zu welcher Spur eine Diskette beschrieben ist, kann dies mit Schrägstrich und Spurnummer angegeben werden. An dieser Stelle bricht HARDCOPY den Kopiervorgang ab.
  5. Der Aufruf mit Option /SYS ersetzt das bisherige SYSCOPY.COM, wobei jetzt auch Nutzer nur eines Diskettenlaufwerkes dieses komfortable Kopieren der Systemspuren benutzen können. Für die Option /SYS müssen beide angegebenen Laufwerke die selbe Anzahl Systemspuren besitzen.

Das alte HARDCOPY.COM reagierte nicht auf auftretende Diskettenfehler, da im C-Programm die BIOS-Rückkehrparameter nicht ausgewertet wurden. Disketten wurden so angeblich korrekt kopiert und konnten trotzdem falsche Daten enthalten.

Das neue HARDCOPY.COM versucht bei einem auftretenden Lese- oder Schreibfehler fünfmal den Diskettenzugriff fehlerfrei zu wiederholen. Angezeigt wird dies durch Ziffern in der Balkenanzeige. Hartnäckige Fehler, die auch mit 5 Versuchen nicht behoben werden können, werden gezählt und nach dem Kopiervorgang angezeigt. Bisher habe ich mit dem neuen HARDCOPY.COM jedoch alle Disketten problemlos kopieren können. Disketten, auf denen Dateien beim normalen Zugriff Lesefehler brachten konnten nach einer Kopie auf eine neue Diskette wieder problemlos gelesen werden. Das neue HARDCOPY.COM eignet sich also auch teilweise zur Regenerierung von Dateien.


Programmbeschreibung zu ML.COM

von Mario Leubner

ML.COM ist ein universeller Dateibetrachter für den KC85/4. Es sollen damit alle auf dem KC85/4 üblichen Bildformate, Text- und Programmdateien und Archive betrachtet werden können. Zum Entpacken der Archive ist der entsprechende Entpacker wie bisher zu verwenden. Unterstützt wird ein solcher Programmaufruf durch die Möglichkeit, COM-Files auch mit Parameterübergabe von der Diskette zu starten.

Als Systemvoraussetzung ist erforderlich:

  • ein KC85/4 mit Floppy
  • KC-MicroDOS 2.6
  • ZAS 1.0
  • freier TPA-Speicher bis mindestens 9100H

Wird vom Programm ein anderes System vorgefunden erfolgt der Abbruch mit einer entsprechenden Fehlermeldung.

H I N W E I S !!!
MicroDOS bietet die Möglichkeit der Fehlerbehandlung im Anwenderprogramm, siehe dazu BDOS-Funktion 45 im Handbuch für den Programmierer, Seite 43.

Leider funktioniert das Abschalten nicht, somit wird jeder Diskettenfehler mit der Meldung "BDOS-Fehler auf ... " auf dem Bildschirm quittiert. Für grafische Bedienoberflächen mit Fenstertechnik bedeutet dies unter Umständen (scrollen am BS-Ende), daß alle Anzeigen durcheinander geraten.

Bis ein korrigiertes MicroDOS zur Verfügung steht, kann man vorerst mit dem Hilfsprogramm FE.COM das alte MicroDOS korrigieren. FE.COM modifiziert MicroDOS dabei nicht in den Systemspuren der Diskette, sondern nur im RAM! Nach jedem Neustart ist der alte Zustand wieder vorhanden. FE.COM ist für die Arbeit mit ML.COM nicht zwingend erforderlich, sollte aber wegen möglicher Lesefehler vorher einmal gestartet werden. Bei der Weitergabe von ML.COM also auch an das Programm FE.COM mit denken!

Programmstart

Ich empfehle, ML.COM nur von dem Laufwerk zu starten, auf dem sich ML.COM befindet. Ein Aufruf der Form "A>B:ML" führt zwar auch zum Start des auf B: befindlichen Programms ML.COM, der automatische Wiederstart würde aber zur Kommandozeile "A:ML" führen. Leider übergibt MicroDOS dem aufrufenden Programm nicht die komplette Befehlszeile, so daß die zusätzliche Angabe des Laufwerkes nicht erfaßt werden kann.

ML.COM sollte sich in USER 0 befinden und den Status einer Systemdatei erhalten, dann ist der Wiederstart auch möglich, wenn eine Programm- oder Kommandodatei von einem anderen USER-Bereich gestartet wurde.

In der Kommandozeile können noch drei Parameter angegeben werden:

A>ML B2:*.TXT

Diese Kommandozeile würde ML.COM von Laufwerk A: laden, zu Laufwerk B: wechseln und den USER-Bereich 2 einstellen. Die Dateimaske *.TXT veranlaßt, daß nur Dateien mit dem Dateityp TXT aufgelistet werden. Ist kein Laufwerk/USER angegeben, erfolgt die Suche im aktuellen Laufwerk/USER. Ist keine Dateimaske angegeben, werden alle Dateien ausgegeben.

Anzeigen

ML.COM generiert mehrere Fenster auf dem Bildschirm.

  • Links oben ist das aktuelle Laufwerk mit USER-Bereich, die Anzahl der Dateien und der freie Platz auf der Diskette angegeben.
  • Rechts oben werden für alle 8 logischen Laufwerke das physische Laufwerk (0-3) nach dem Doppelpunkt und darunter die Diskettenkapazität angezeigt, nicht installierte Laufwerke werden weggelassen.
  • Am unteren Bildschirmrand ist eine Menüzeile zu sehen, die in Kurzform die möglichen Eingaben anzeigt.
  • Im mittleren großen Fenster werden die Dateien alphabetisch aufgelistet. Ein '*' hinter dem Dateinamen zeigt den Schreibschutz an, ein '$' markiert eine Systemdatei.
  • Unter diesem Fenster erscheint noch eine "Statuszeile" in gelber Schrift, wo weitere Informationen wie belegte USER-Bereiche, Dateigrößen, Bildformate oder auch Fehlermeldungen angezeigt werden.

Eingaben

Die aktuelle Datei ist invers hervorgehoben, mit den Cursortasten kann man die Datei auswählen. Sind mehr als 80 Dateien im gerade eingestellten Laufwerk und USER-Bereich, erfolgt ein Wechsel der Anzeige, wenn man am rechten bzw. linken Bildschirmrand hinausgerät. Enter startet die Anzeige einer definierten Datei. Zusätzlich sind noch folgende Eingaben möglich:

A-H
Je nach installierten Laufwerken kann mit den Tasten A-H das Laufwerk gewechselt werden. Beim Wechseln der Diskette im aktuellen Laufwerk sollte ebenfalls die Taste für das Laufwerk betätigt werden, um das neue Direktory einzulesen.
 
U
Eingabe des neuen USER-Bereiches im Bereich von 0-31, ohne Eingabe wird USER-0 eingestellt.
 
M
Eingabe einer neuen Dateimaske. Dazu können die Jokerzeichen '?' und '*' verwendet werden. Die Eingabe '*.*' kann weggelassen werden.
 
Q oder ESC
Programmende, Rückkehr zu MicroDOS.
 
V
View-Kommando für beliebige Dateien mit oder ohne CAOS-Vorblock, z.B. geeignet zum Betrachten von IRM-Abzügen, Zeichentabellen.
 
T
Aufruf des Type-Kommandos für Textdateien, die nicht automatisch erkannt werden. Der Zeichensatz ist eventuell vorher mit F1+6 (ASCII/IBM) und F1+9 (USA/deutsch) einzustellen. Der Wert der Prozentanzeige stimmt nur, wenn die Datei im Standardtextformat ist, also mit EOF (^Z) endet und danach keine weiteren Sektoren sind!
 
X
Hexdump der Datei, als Adresse wird standardmäßig 100H angenommen.
 
K
Hexdump einer CAOS-Datei mit Vorblock. Die Anfangs-, End- und Startadresse werden dem Vorblock entnommen. Ist kein gültiger CAOS- Vorblock am Dateianfang vorhanden, erfolgt Ausschrift "Formatfehler!"

Bei diesen drei Kommandos ist ein Blättern in der Datei möglich. Mit der Entertaste wird die Datei fortlaufend angezeigt und am Dateiende wieder zur Dateiliste zurückgegangen. Die Cursortasten "HOCH" und "RUNTER" blättern jeweils eine Seite vor- oder rückwärts. Am Anfang bzw. Ende der Datei sind die Cursortasten nur für jeweils eine Richtung aktiv.

Definierte Dateiformate

Dateien, die einen speziellen Dateityp besitzen, können direkt mit der Entertaste "gestartet" werden. Welche Dateitypen in ML.COM definiert sind, ist den folgenden Tabellen zu entnehmen:

 

Textdateien:

Zeichensatz:

TXT TP/WS-Text ASCII
MAC Assembler-Quelltexte ASCII
Z80 Assembler-Quellen Z80 ASCII
ASM Edas- oder ASM-Quelltexte ASCII
PRN Programmdatei ASCII
C C-Quelltexte ASCII, USA
H C-Headerfiles ASCII, USA
HLP Help-Texte für HELP.COM ASCII
TXW WP-Text auflisten IBM, USA
DOK Dokumentation als TP-Text ASCII, deutsch
DOC Dokumentation als TP-Text ASCII, USA
BRF Briefe als TP-Text ASCII, deutsch
 

Bilddateien:

PIF Anzeige eines farbigen Bildes (PIP und PIF)
PIP Anzeige eines Pixelbildes (oder FRACTALE-Bild)
HIF Anzeige eines HIRES-Bildes (HIP und HIF)
HIP Anzeige eines HIRES-Bildes (HIP und HIF)
FRC Anzeige eines HIRES-Bildes im FRACTAL4-Format
PCX Anzeige eines PCX-Bildes mit bis zu 4 Farben
IRM Bildspeicherabzug im CAOS-Format
PIC KC85/3-Bilder werden als KC-Dump ausgegeben
 

Archive:

LBR LBR-Directory
PMA Archivdirectory *.PMA
LZH Archivdirectory *.LZH
ARC Archivdirectory *.ARC
ARK Archivdirectory *.ARK
 

ausführbare Dateien:

COM Programmdatei starten, Parametereingabe möglich
SUB Kommandodatei mit CCP-Kommando "<" abarbeiten
BAT siehe SUB

Nach Abarbeitung einer dieser Dateien wird ML.COM automatisch wieder gestartet, falls auf der Diskette im aktuellen Laufwerk eine $$$.SUB- Datei erzeugt werden konnte. Alle aktuellen Einstellungen werden dabei zeitweilig in der Datei A:MLWRK.TMP abgelegt.

 

spezielle Dateiformate:

PIC KC-Hexdump (Bildabzug KC85/3 oder Kassettenladeroutine)
KCC KC-Hexdump KCC-Datei (MC-Datei für CAOS)
KEY F-Tastendatei listen (Speicherabzug B900 B99C)
LST Hexdump Druckertreiber (ab Adresse 200H)
KOP Hexdump Koppeltreiber (ab Adresse 380H)
 

Programme von KC-BASIC und HCBASIC.COM:

SSS BASIC-Programm, abgespeichert mit CSAVE"name"
KCB BASIC-Programm, abgespeichert mit BSAVE.KCC

Unabhängig, mit welcher Methode das BASIC-Programm abgespeichert wurde, kann das Listing wie ein normaler Text betrachtet und darin geblättert werden. Endet die Prozentanzeige am Dateiende nicht mit 100.0%, ist versteckter Maschinencode enthalten. Eine Betrachtung über das Ende des eigentlichen BASIC-Programm hinaus ist nicht möglich. Die CAOS-Sonderzeichen werden (soweit dies möglich ist) in den IBM- Zeichensatz konvertiert. Zeichencodes > 80H werden als IBM-Grafikzeichen ausgegeben. In Zeichenketten, DATA-Zeilen oder Kommentaren enthaltene Steuerzeichen werden als inverse Buchstaben dargestellt.

Dateien, die nicht in der Liste aufgeführt wurden, können nur mit den Kommandos X (Hexdump), T (Type), K (KC-Dump) oder V (View) betrachtet werden. Das letzte gewählte Kommando wird dabei abgespeichert und kann bis zum erneuten Einlesen des Directories ebenfalls mit der Entertaste gestartet werden.

Anregungen und Hinweise zu ML.COM nehme ich gern noch entgegen - denn kein Programm ist vollkommen und absolut fehlerfrei.


ZX-TEAM

von Klaus Witzenhausen und Henning Räder

Hallo Leute!

Heute möchte ich Euch mal auf dem laufenden halten, was so im ZX-Team hardwaretechnisch schon läuft und auch (eventuell) schon in Planung und Entwicklung ist.

Wie sich ja sicherlich schon herumgesprochen hat, ist der ZX 81 von Sinclair ja auch ein 8-Bit-Rechner mit einer Z 80 CPU (im Team wird er liebevoll `Zeddi` genannt!). Auch dort kämpft man mit den gleichen Problemen wie wir, deshalb habe ich mich auch dazu entschlossen, diesen kleinen Artikel zu schreiben. Trotzdem habe ich eine Bitte:

Lest diesen Beitrag, auch auf die Gefahr hin, daß ich jetzt bei Euch in Mißkredit falle, denn für eine spätere Zusammenarbeit beider Clubs muß man schon wissen, wo die anderen stehen!

Dieser Club ist 1991 gegründet worden und bringt in 2-monatlichen Abständen ein Clubmagazin heraus, welches wie bei uns von den Mitgliedern gefüllt wird. Es nennt sich ZX-TEAM MAGAZIN und hat 30 A5-Seiten + vorderes und hinteres Deckblatt. Der schematische Aufbau ist ähnlich wie bei uns, bloß, daß keine Programmcass/Disc dabei ist. Ich möchte noch hinzufügen, daß auch dieses Magazin für mich sehr interessant und informativ ist!

Genau wie wir setzen sich die Mitglieder hin und programmieren oder tüfteln in liebevoller Kleinarbeit am Zeddi herum, um ihn zu verbessern und ihn noch besser auszulasten. Leider habe ich bei mir keinen Platz mehr, sonst würde ich mir zu meinen 85, 87 und PS2 noch einen Zeddi stellen! Naja, alles kann man ja nicht haben!

Aber nichts destotrotz, man kann sich ja auch theoretisch damit beschäftigen (aber wie lange?)! Jedenfalls muß ich den `Zeddis` ein großes Kompliment aussprechen. Zur Zeit sind auch im Team etwas über 60 Mitglieder! Nun möchte ich aber zu diversen Aktivitäten des Clubs kommen.

In liebevoller Kleinarbeit haben die Mitglieder mitlerweile aus ihren Zeddi (nur 8k-Rom und 1k-Ram!) ein reines `Arbeitstier` gemacht. So sind zum Beispiel zahlreiche Hardwareerweiterungen entwickelt worden, welche das Leben mit den Zeddi stark erleichtern. Ein paar davon möchte ich hier aufführen. Eine Auswahl also, welche, so finde ich, die Arbeit und Entwicklung des Teams gut aufzeigt.

Jahr

Name der Hardware


1991 Sprachsynthesemodul, Soundmodul (AY-3-8910)
1992 Speichererweiterungsmodul (32, 24kB), Floppycontroller, Schrittmotorsteuerung, Hires-Graphic, Datenlogger
1993 Speichermodul (1MB), Z80 Platine plus Z80-PIO, 73-Tasten-Tastatur
1994 Dataphon, Eprombrenner, Amiga-Maus
1995 LCD-Bildschirm (monochrom) am Zeddi, CPC-Monitor am Zeddi

Auch softwaretechnisch ist es stark vorwärts gegangen, dank der Hardwareerweiterungen. Aber darauf möchte ich jetzt nicht weiter eingehen, denn dann würde dieser Beitrag doch zu umfangreich werden. Für alle Interessierten schreibe ich am Ende eine Übersicht verschiedener Computerclubs auf.

Auch auf nationalen und internationalen Messen finden Treffs von den Computerclubs statt, wo sich die Clubs und auch Mitglieder Gedanken austauschen können. Außerdem finden diese `Oldietreffs` auch von anderen Messebesuchern und auch von der Fachpresse Beachtung. So war zum Beispiel in der CHIP ein Beitrag über das Oldietreffen von der diesjährigen CeBit! Das soll es wieder mal von mir gewesen sein, aber jetzt zur versprochenen Übersicht:

  1. ZX-TEAM
    Zeitschrift: Zx-Team-Magazin (2-monatlich)
    Computer: ZX80, ZX81, TS1000, LAMBDA, POWER3000
    Leistungen: Harware-Bauanleitungen, Software-Theke mit über 1000 Programmen, Kostenlose Kleinanzeigen auch für Nichtmitglieder

  2. SPECTRUM USER CLUB
    Zeitschrift: SUC-Session (monatlich)
    Computer: SPECTRUM
    Leistungen: HW und SW Service, PD-Bibliothek, Clubtreffen, Reparaturen, Kostenlose Kleinanzeigen auch für Nichtmitglieder

  3. SPECTRUM PROFI CLUB
    Zeitschrift: Info (monatlich)
    Computer: SPECTRUM, SAM
    Leistungen: PD-Bibliothek, Kleinanzeigen

  4. SINCLAIR QL User Club e.v.
    Zeitschrift: `Das Magazin des Sinclair QL User Club e.V.` (vierteljährlich)
    Computer: QL
    Leistungen: unbekannt

  5. SINCLAIR COMPUTERCLUB BENELUX
    Zeitschrift: `Uncle Clive & Uncle Sam` (2-mon.) in Deutsch oder Englisch
    Computer: nicht auf einen Sinclair-Rechner festgelegt! (aber hauptsächlich SPECTRUM)
    Leistungen: Kostenlose Kleinanzeigen, weitere unbekannt

So, damit ist endlich für manch einen Interessenten endlich eine Übersicht vorhanden. Das soll es schon wieder einmal gewesen sein. Für die Mitglieder, die den ZX80/81 noch nicht kennen, sind die Abbildungen dabei.

Euer Klaus

Hier noch eine kleine Ergänzung von Henning Räder, ebenfalls Mitglied im ZX-Team:

Am 22.09.95 konnte ich erstmals am ZX81 HRG-Programme (Hochauflösende Grafik) in bunt laufen lassen. Experimentiert habe ich an HRG-Programmen der Art "ZXGR", "CSFR", "HRG7" und "HRG8". Am besten waren die Ergebnisse bei HRG8, hier ist die Buntdarstellung voll ansprechbar.

Nachstehend ist mein Versuchsaufbau beschrieben:

  1. ZX81 umgebaut für Farbanschluß und Maschinenprogramme zwischen 32 und 48 K
  2. RESET-Schalter mit HRG von Gotthard
  3. MEMOPAK 64 K - Stellung der Pins: 1-OFF, 2-OFF, 3-OFF, 4-ON
  4. Farbeprom von Kai
  5. Farbmodul von Kai mit Scartanschluß
  6. Farbfernseher mit Scartanschluß

Offensichtlich ist die obige Liste von Klaus noch lange nicht vollständig, denn es gibt immer wieder etwas Neues!

Henning Räder


Erzeugen von INITIAL.UUU-Dateien - Nachtrag

von Mario Leubner

Richtig ist, daß der Dateityp darauf hinweist, diese Datei mittels BASIC-Anweisungen zu erzeugen. Genausogut ist es aber möglich, ein Textprogramm dazu zu benutzen. Wichtig ist nur, daß das CAOS-Endezeichen 03H (BRK oder ^C) die Kommandofolge abschließt, so wie es beim Erzeugen in BASIC der Fall ist. Beim Booten wird 03H durch 00H ersetzt, beendet also die Stapelverarbeitung. Alles nach diesem Endezeichen stehende wird ignoriert.

Wer seine INITIAL.UUU z.B. mit TPKC erstellen will, braucht am Ende nur Control-P-C eingeben (angezeigt als ^C) und schon funktioniert es. Eine weitere Möglichkeit wäre WordPro6, hier aber beachten, daß die Kommandos in der linken Spalte beginnen müssen. WordPro6 erzeugt als Dateiendekennung die Codefolge 03H,1AH - also kompatibel zu CAOS und CP/M. Und für die INITIAL.UUU ebenfalls bestens geeignet.

Der Vorteil von BASIC, daß praktisch alle möglichen Steuerzeichen (z.B. auch die ESC-Steuerzeichen) mit eingebaut werden können, ist jedoch mit Textprogrammen nicht vorhanden. Da wäre dann noch ein HEX-Code-Editor (z.B. DIMAKC.COM) die Alternative.


Speaker's Corner

 

Falls jemand Hilfe beim Umbau eines M003 (V.24) benötigt, um eine P8000-Tastatur anzuschließen, stehe ich gern zur Verfügung.

Hendrik Wagenknecht

 

Bei meinen ersten DFÜ-Schritten im Internet stieß ich auch auf einen FTP-Server mit CPM-Software. Ich habe bis jetzt zwar nur hereingeschnuppert (von wegen Zeitmangel), verkünde hier aber trotzdem die Adresse: reze-2.rz.rwth-aachen.de ist die Serveradresse, die CPM-Soft liegt im Verzeichnis SIMTEL/CPM.

Allerdings ist das Verzeichnis seit 1990 nicht mehr erneuert worden, d.h. es ist alles ältere Software. Außerdem sind einige mir unbekannte Dateitypen vorhanden. Versucht trotzdem mal Euer Glück.

Maik Freitag