Für alle Dateien gelten, neben ggf. weiteren Hinweisen, die in der
Titelseite angegebenen Bedingungen.
"ohne TAS" sind insbes. für den Amiga-QL zurechtgemachte Programme (die
aber wohl niemand braucht - ???), oder solche, die ohnehin kein TAS enthalten,
und die ohne weiteres auch in jedem regulären QL-System verwendbar
sind.
Alle Programme/Texte sind in experimentellem Zustand, Gewährleistung ist ausgeschlossen.
[top]
AREF2 (QLIB/SBasic) 85K 1.05.99 Xref-Generator BASICV (ohneTAS) 12K 8.10.97 Basic-Variable "fremd" Lesen C1Monitor 15K 8.01.98 Monitor/Assembler/Schutz-Job CCNV (ohneTAS) 2K 20.06.98 Zeichen- & Text-Converter CONVERT 11k 14.07.98 Zeichencodierungs-Übersetzer CDISK/CBACK 28K 11.08.99 <= Datensicherung (im Hintergrund) CIRCUITS 7K 14.08.99 Schnittstellen-/Bauteil-Pins E86 24K 04.08.99 <= Editor & -Device LATIN-1/FOUNTS 6K 28.11.97 Zeichensatz MCLONE (ohneTAS) 6K "The Self Cloning Jobs" MEMV (ohneTAS) 5K 30.05.98 Memory/Shift-Lock Monitor RECOVERQ 164K 28.11.97 Discetten/Files retten/copieren RECOVERX (ohneTAS) 80K 05.08.98 v03 QXL.WIN, Files retten, extrahieren QLIBRUN 8K 02.05.99 v3.36x17 QLib runtimes, modifiziert QSEND 28K "fremdgesteuerte" Jobs SLD 10K 31.05.98 Anzeige des Systemlast SORT (ohneTAS) 5K 14.07.98 Filter zum Sortieren von Strings UHR 11K 12.08.97 eine Uhr QXL 140K QXL Version des SMSQ (2.76)
Pinbelegung einiger QL-Geräte, Bauteil- & Logikpläne Sandy Q Board - alt, Quelle unbekannt.
S.Basic-Funktion zum Lesen der in beliebigen Jobs von
S.Basic-Struktur, also auch QLib-Jobs, bekannten Variablen. Benutzt
man etwa einen eigens dafür eingerichteten Daten-Job (MINERVA), so kann
damit eine besonders einfach zu verwaltende Variante von "environment
variablen" dargestellt werden. Erweiterung auch zum Schreiben ist
möglich, wenn auch aufgrund ungeeigneter Vorgehensweisen - z.B. Freigabe
reservierter Bereiche vor(!) Nutzung derselben insbes. in TK2 und SMSQ - ein
wenig riskant.
Code, DATA-Zeilen mit Ladeprogramm, Assemblertext und ausführliche
Beschreibung im Archiv.
Eine Gruppe Proceduren und Funktionen zur Kommunikation zwischen
Jobs mittels PIPEs oder zwischen einer PIPE und der Ein-/Ausgabe-Queue des
CON-Kanals eines Jobs.
[top] e-mail
Ein Filter zum Sortieren von Textzeilen, der bereits bei der Eingabe seine
Arbeit aufnimmt, und darum nicht nur mit recht wenig Speicher auskommt,
sondern auch sehr schnell arbeitet. Der von L.R. abgewandelte
"Quick-Sort"-Algorithmus tut ein übriges dazu.
Das Programm ist im wesentlichen unverändert: Es wurde lediglich die
Möglichkeit zum von der Groß- oder Kleinschreibung
unabhängigen Vergleich hinzugefügt. Damit sind alle im QDOS
angebotenen Vergleichsmodi vorhanden.
Aufruf:
EX Sort, Quelle(nkanal), Ziel(kanal);"parameterstring"Parameter (ohne, oder in beliebiger Kombination):
ohne genauer Zeichenvergleich ohne Zahlenbewertung (Vorgabe).Die Parameterzeichen können in beliebiger Folge angegeben werden,
"-" führendes Zeichen,
"t" Vergleichstyp 1, Schreibweise nicht beachten.
"n" Vergleichstyp 2, Ziffernfolgen gelten als Zahlen.
"tn" Vergleichstyp 3, entspr. Basic "==" (Typ 1 mit Typ 2).
"r" umgekehrte Sortierfolge ("z" -> "A"),
Archiv mit Job und Assemblerquelle mit
englischsprachiger Beschreibung der Arbeitsweise.
[oben] e-mail
Ein Filterjob zur Umsetzung der Zeichencodierung zwischen QL, IBM, ATARI,
AMIGA, MAC, E-ASCII, und 7-Bit-Codierung (bei auseinandergezogenen Umlauten).
Das Programm ist recht alt, aber so aktuell, wie es die ewig unterschiedlichen
Zeichencodierungen sind...
[oben] e-mail
Ein Filterjob zur zeichenweisen Umsetzung einer Textquelle in je bis 253
Zeichen lange Strings.
Genauere Beschreibung mit Beispiel QL => LATIN-1 mit HTML-"entities" im
Archiv.
[oben] e-mail
Ein kleiner Job, der über ein einstellbares Intervall periodisch die
Systemlast anzeigt.
Genauere Beschreibung und Assemblertext im Archiv.
Das Betriebssystem "SMSQ", Version 2.76, wie mit der QXL zusammen
geliefert, und die P.E.-Files, PEX31 inklusive, kann als
verläßliche und nicht ständigen "updates" unterworfene
Referenz dienen. Die Beschreibungen in "PiQ"
beziehen sich vor allem hierauf.
Diese Variante braucht deutlich weniger Speicher als die
"SMSQ/E"-Versionen.
Ein vielseitiger und effizienter "freeware"-Editor als residente
SBasic-Erweiterung für einfachen Text, auf den auch als Device
zugegriffen werden kann (LOAD, SAVE etc.), mit der Möglichkeit zur
Eingabe aller Zeichencodes im Bereich 0 bis 255 aus der Tastatur, zum
automatischen Einfügen von Zeilennummern rsp zum Entfernen
derselben, TAB-Erweiterung zu Leerzeichen, u.v.m.
Geeignet für jedes QDOS-System und zur Bearbeitung mehrerer
Texte gleichzeitig. NETzwerk-tauglich, konfliktfrei mit
den MINERVA-SBasic-Jobs (auch "SBASIC" im SMSQ) und aus allen anderen Jobs
heraus (Beispiel im F6-Forth) aufrufbar.
Das Programm ist aus einer fehlerhaften Vorlage "edi.._cde" unbekannter
Herkunft abgeleitet - dem Autor sei dennoch gedankt für seine
(hilfreiche!) Variante des Talent Workbench Editors...
Die Neufassung "E86" unterliegt für die nichtkommerzielle Verwendung
keinerlei Einschränkung, mit der Ausnahme, daß bei Weitergabe in
veränderter Form das Original beizufügen und deutlich darauf
hinzuweisen ist. Die zugehörige Assembler-Quelle ist im Archiv
enthalten.
Eingehende Beschreibung im beigefügten "e86hilfe_txt".
E86 (4.8.99):
arbeitet Verweise auf die aufrufenden Stellen der Teile von 6800x-Programmen in zum QUANTA-GST-Assembler passende Quelltexte ein ("cross reference"), erzeugt ggf. eine Referenzen-Liste separat oder an den Schluß der kommentierten Quelle angehängt.
Beim Aufruf als Job ohne Parameter erscheinen kurze Hinweise im Bild, und es wird entsprechende Eingabe erwartet.
Ausführung als Job unabhängig von allen Erweiterungscodes
Systemanforderungen:
Außer Vorhandensein des TK2 o. gleichwertiger Erweiterungen keine
speziellen Erfordernisse. Pointer-I.F. vorteilhaft. Alle anderen notwendigen
Erweiterungen einschließlich der QLib-Runtimes und PEX20 sind in das
Programm eingebettet.
NICHT ZUSAMMEN MIT ALTEN VERSIONEN VON IO2 (vor 8/1996) ODER MIT ALTEN VERSIONEN VON PEX (vor PEX20) ZU VERWENDEN.
Das Programm braucht reichlich Speicher (RAM oder Datenträger) und
sehr viel Zeit! Insbes. bei Auswertung reiner Textlabels ist der Aufwand
immens - für etwa ein QL-ROM-Assembly werden, abhängig von der
Anzahl solcher Labels und der Art des Arbeitsspeichers z.B. in der (alten) QXL
mit 2M RAM um die zwei Stunden benötigt, oder auch mehr.
Für den unabhängigen Job müssen ca. 170K Speicher frei sein.
Bei AREFIO2 reduziert sich der Speicherbedarf auf ca 50K. Weiter wird in
beliebigen Medien - auch verteilt - etwa das Dreifache der Quelltextlänge
an Arbeitsspeicher benötigt. Gewöhnlich wird die Ausgabe etwas
länger als die Quelle; die Kurzform um ca. 1/3 kürzer, und die
ausführliche Form kann je nach Häufigkeit von Zahlenwerten mehr als
doppelt so lang werden.
Programm:
Der unkommentierte Quelltext des Programms ist beigefügt.
Außerdem ist er in der einem mutmaßlichen Systemfehler des
SBasic angepaßten Version separat
verfügbar.
Mit IO2 in Version ab 30.4.1999 ist das Programm deutlich schneller (20% und
mehr!). Ein paar eigene Fehler sind korrigiert. Zusätzlich werden auch
Referenzen auf Assemblervariable und Macronamen erfaßt, die Begrenzung
auf Mindestläge 2 für Labels entfällt und die Aussparung von
Macro-Definitionen rsp. durch <.aref setstr on/off> markierten
Passagen sowie "end"-Erkennung funktionieren. - Der Programmstart
verzögert sich etwas, da ein "DEL_DEFB" eingefügt wurde, was in
vielen Fällen noch hilft, wenn das SMSQ(/E) beim NETzwerken mal
wieder seine Slaveblöcke zerschossen hat...
Zum den Betrieb ist die (derzeit, 8.5.99) jüngste Version IO2 - evtl. auch QLIBRUN - erforderlich.
Tauglichkeit:
Es gab Probleme mit dem compilierten Programm bei reinen
Text-Labels.
Erst jüngst (4/99) ist mir es gelungen, die fehlerhafte Passage zu
ermitteln:
Wer kommt schon auf den Gedanken, daß der Standardbefehl "INPUT"
des SBasic fehlerhaft ist! An irgendeiner Stelle und unter Umständen, die
die verantwortlichen Autoren ergründen mögen, reklamiert die
Systemroutine die Pufferlänge Null und der betr. io.fline-Aufruf
endet dann mit Fehler err.bo (-5) bei zugleich wiederholt neuen
Speicheranforderungen, was die Eingabe schließlich, wie und mit welchen
Folgen auch immer (z.B. durch überschriebene SB-Variable), scheitern
läßt. Zum Tragen gekommen ist das anscheinend aber erst durch einen
Fehler in FIND aus "ep0" von IO2, der nun
(11/1999) dort ebenfalls korrigiert ist.
Dir Fehler bei INPUT findet sich in den SMSQ-Varianten wie auch bei
MINERVA, kann aber auch mit den QLIB-runtimes zusammenhängen -
letzteres ist unwahrscheinlich und ersteres will, wo die Gefahr besteht, einen
Fehler im SMSQ zu finden, ohnehin niemand wahrhaben...
Immerhin tritt er nun, nach Umbau der INPUT-Statements in entsprechende
Zeilen mit INPUT$ (IO2), nicht mehr auf.
Meine Versuche in der QXL mit SMSQ 2.76 waren neben DEA-/DISA-Typ
Labels sämtlich auch mit Text-Labels erfolgreich; ebenso im
GC-QL mit Minerva 1.93. - Nebenbei wäre wohl ein ordentlicher
Disassembler, der die nötigen Listen aus den dort ja ohnehin vorhandenen
Daten erzeugt (und fehlerfreie Memonics und korrekte Sprungtabellen und
wirkliche QDOS-Namen...) sehr viel besser und ganz entschieden weniger
zeitraubend!
QLIB runtimes Überarbeitung, abgeleitet aus QLIB 3.36. Ein paar
Fehler wurden korrigiert (und womöglich neue Fehler hinzugefügt) und
der Code an die Modalitäten im SMSQ angepaßt; und vielleicht ist
das Ganze denn auch etwas schneller geworden.
Korrigierte, etwas ergänzte und auch ein wenige schnellere Versionen
der QLIB-Erweiterungen stehen gegen Nachweis "rechtmäßigen"
Besitzes, etwa in Gestalt der einer e-mail
beigefügten Originale, zur Verfügung. Z.B. spielt das UNLOAD darin
richtig, anstatt einfach nur die Uhrzeit zu lesen, und
Q_ERR_ON kann auch auf *Basic-FuNctionen angewandt
werden, u.v.m.
Ausführlicher hierzu in qlidoc.zip.
Nebenbei:
In den Erläuterungen zum SMSQ/E finden sich recht merkwürdige
Behauptungen über Sinn und Unsinn compilierter Programme und ein
längliches Elaborat darüber, wie innerhalb eines Basic-Programms der
compilierte vom interpretierten Zustand unterschieden werden könne. Ist
alles Quatsch, das Gegenteil läßt sich leicht belegen, und
letzterer Nonsens kann durch ganze vier Programmzeilen ersetzt werden:
1010 cmpld=1 1020 REMark $$off 1030 cmpld=0 1040 REMark $$onwomit die Variable cmpld als Flag den Zustand compiliert (1) oder interpretiert (0) angibt.
Beispielprogramm (und Assembler-Text) für sich selbst
vervielfältigende Jobs von Adrian Dickens aus dem "QL Advanced User
Guide", zurechtgemacht für die jüngeren QL-Systeme.
[top] e-mail
LATIN-1 Zeichensatz, beschrieben und in Form von DATA-Zeilen
für den QL angegeben.
FOUNTS ist die Zusammenstellung von fünf Zeichensätzen
für den QL, passend zum INCLUDE in Assemblertexte zum GST-Assembler.
[top] e-mail
Die Vorlage zu diesem kleinen Speicher- und "shift/lock"-Monitor ist mir vor Zeiten unter dem Namen "memdisp" ins Haus geflattert. Die eigene Variante entstand zunächst nur, um die auf den unnötig hohen Wert 64 gesetzte Priorität zu reduzieren. Die systemkonforme Gestaltung der Anzeige kam hinzu, und ermöglichte die automatische Anpassung an beliebige Bildschirmmaße und wechselnde Wiedergabe-Modi.
Nach dem Aufruf als Job oder mit dem Basic-Befehl MEMV nach Laden mit LRESPR erscheint am rechten Bildrand in voller Höhe ein schmaler Streifen, der in grüne Segmente aufgeteilt ist, die die verschiedenen Kathegorien besetzten Speichers darstellen. Der in der Mitte verbleibende schwarze Teil entspricht den vom System noch unbesetzten Slave-Blöcken, d.h. dem "freien" Speicher. Der schwarze Streifen wird rot, wenn mit der Feststelltaste ("shift lock") auf Großschreibung geschaltet wurde.
Mit dem hochauflösenden Bild der AURORA gibt es Probleme (MEMV erscheint dort nicht), die erst mit Vorliegen einer zuverlässigen Dokumentation behoben werden können. - Einwandfreie Funktion in der QXL bei Bildauflösungen bis zu 1024x768.
Im UQLX hat sich bei großem Bild dieselbe Fehlfunktion
gezeigt, die sich mit einiger Mühe zumindest dort beheben ließ.
Damit besteht immerhin gewisse Aussicht, daß das Programm nun auch mit
der Aurora bei großem Bild spielt - wär nett, wenn mir mal jemand
mitteilte, ob dem wirklich so ist.
[oben] [anfang] e-mail
dient der Wiedergewinnung verdorbener Dateien von
DD/HD/ED-Disketten, oder ganzer Datenträger, der direkten
Copie solcher oder mit DOS-Format versehener - auch "verdorbener" oder
dadurch "geschützter" - Disketten, und der Umstellung der
Diskettenstruktur auf frei wählbare Anordnungen. Weitere Optionen
betreffen u.a. zusätzliche Sicherheitsmaßnahmen für
künftige Rettungsaktionen und Manipulationen an den
strukturbestimmenden Daten einer Diskette, dazu z.B. auch Vertauschen von
Sectoren (ein übler Fehler mancher "level 2"-Varianten tauscht Directory-
und Filesectoren!).
Die jüngste Version (28.11.97) mit einigen Korrekturen kann
auch im SMSQ compiliert werden; die dort nicht gegebene Funktion von
"WHEN variable" wurde - um den Preis langsamerer und weniger flexibler
Arbeitsweise - umgangen.
zur Wiedergewinnung verdorbener und der Extraktion einzelner Dateien oder des ganzen Inhalts von QXL.WIN-Files rsp. über TK2-Direktzugriff aus den Pseudo-WIN-Laufwerken der QXL.
RecoverX ist ein F6-Programm, das in den QDOS-Systemen GC-QL/MGG, GC-QL/MINERVA, QXL/SMSQ((2.76) und im UQLX-Emulator erfolgreich compiliert und anhand von Laufwerken sowie Files mit je bis zu 80MB Größe ausprobiert wurde. Lesen der QXL.WIN-Files auch über NETz mit dem TK2-Fileserver.
Dritte Version mit verbesserter Erkennung von Fehlern in der Block-Verkettung, außerdem auf Basis des F6 8.19 ohne TAS-Codes (für Amiga).
Das Programm erklärt sich weitgehend selbst; kurze Beschreibung im Archiv und in den F6-Quellen.
Bedauerlich, jdoch: S. auch F6-Korrekturen (nur englisch).
CDISK ist eine SBasic-Procedur zum Sichern von File-Gruppen
oder ganzen (Gruppen von) Directories, rsp. zum Löschen von Directories
oder Directory-Zweigen. Geeignet für alle Medien und
Filesystem-"Levels" des QL, insbes. auch über das NETzwerk und mit
MDVs.
CBACK ist ein compiliertes SBasic-Programm (Quelle beigefügt) zur
kontinuierlichen Sicherung des Inhalts z.B. einer Arbeits-Diskette
automatisch und in regelmäßigen Intervallen, basierend auf CDISK
und mit allen u.g. Optionen.
Zusätzliche Optionen (Ver. 19):
(ohne) überschreibend Quelle auf Ziel copieren.Die Procedur fährt fort, solange es irgend möglich ist, insbes. bricht sie nicht ab, wenn ein "bad sector" erreicht wurde. Die Namen der betroffenen Files erhalten eine Markierung und die betr. Stellen werden übersprungen. Der Copiervorgang bricht erst ab, wenn kein weiterer Sector mehr lesbar ist. Auf diese Weise können oft noch Daten von beschädigten Discetten gerettet werden, wo selbst so leistungsfähige Systeme versagen, wie z.B. Linux(!), etc.
devN_name Ziel vor dem Copieren der Quelle entspr. Formatieren.
MOVE Quelle nach dem Copieren löschen.
MPTY Quelle nur löschen, nichts copieren.
NAME Ziel aktualisieren, wenn beide Datenträger gleiche Namen haben.
RFSH nur die Dateien aktualisieren, die im Ziel bereits vorhanden sind.
UPDT Ziel aktualisieren.
Version 19:
Übertragung des Filetypencode & Directory-Fehler bei MGG korrigiert.
Version 21:
An das "umsdos"-Filesystem und an die UQLX-Eigenheiten angepaßte
Version mit Überspringen der "."- und ".."-Verzeichnisse sowie Umwandlung
von "."-Endungen nach "_", wenn in der Quelle(ndiscette) ein ".-UQLX-"
vorhanden und lesbar(!) ist.
Version 22 (nur CDISK):
Die Ergänzungen der Version 21 erwiesen sich z.T. nicht sonderlich
hilfreich. Darum wurde ein Modus zur erzwungenen Umwandlung von
(quasi-)File-Endungen eingeführt. Außerden wird nun auch im UQLX
das Datum der Quelle in die Copie übernommen.
Mehr dazu im Archiv - das auch die Assemblerquelle enthält.