Vom U880-Assembler über AutoIt zu PHP und PowerBASIC


Vorgeschichte
ExcelVBA
AccessVBA
EdAss
TC-SDK
AutoIt
Mediathek
Andere Programmiersprachen
HTML und PHP
PowerBASIC (in Arbeit)
Was kommt nach PowerBASIC ? (in Arbeit)


Die Vorgeschichte - der lange Weg zum Programmierer?

Bereits Anfang der 1990er Jahre wurde PS mit moderner Software konfrontiert. Es war die Zeit des Umbruchs von DOS
auf WINDOWS™ und damit zu Standard-Software, wie z.B. EXCEL™.
Mit einiger Erfahrung zur Assembler-Programmierung bei U880=Z80-Systemen war schon die Abstrahierung darauf
aufbauender Betriebssysteme, wie z.B. CP/M=SCP eine Herausforderung. Diese konnte aber mangels geeigneter Hardware
(PC1715 o.ä.) im privaten, wie auch im beruflichen Bereich zu dieser Zeit nicht angenommen werde.
Als dann außerdem noch in schneller Abfolge die 16/32Bit-Technik Einzug in den modernen PC hielt, waren die Erfahrungen
zum Z80-Assembler kaum noch etwas wert. Auch mit den rudimentären Erfahrungen zu Einchip-Mikroprozessoren der
Z8-Klasse und den dazu vorhandenen, unvollkommenen Entwicklungswerkzeugen war eigentlich kein Blumentopf mehr zu gewinnen.
Hinzu kam außerdem die beruflich notwendig gewordene Umorientierung zum Projektingenieurwesen für Haustechnik.
In der dazu absolvierten Schulungsmaßnahme kam es zu den ersten tiefgründigeren Kontakten zu EXCEL™.
Es war schon sehr erstaunlich, wie - abgesehen von der bei WINDOWS™-Programmen typischen grafischen Bedieneroberfläche -
automatisch Zahlen-Berechnungen in den EXCEL™-Zellen durchgeführt wurden, deren Rechenvorschrift dann auch noch vorher
durch einfache mathematische Zeicheneingabe festgelegt werden konnte. Alles in Allem ein bis dato unvorstellbares Wunderwerk der
moderner Programmiertechnik! -
Im Laufe der meist autodidaktischen Beschäftigung mit dieser neuen Art der Computerarbeit stellt sich dann auch noch heraus,
dass das bei Weitem noch nicht alles ist - man konnte auch ganze Rechenverfahren in einer Art programmierbaren Ablauf festlegen.
Dazu gab es damals schon vom Software-Hersteller eine extra dazu kreierte Programmiersprache: VBA.


EXCEL™ - VBA

Während in der Anfangszeit von EXCEL™ der Umgang mit der Programmier-Schnittstelle noch etwas "holperte" - notwendig
wünschbare Funktionen waren nicht immer vorhanden, bzw. wenn, dann schlecht oder gar nicht dokumentiert - wurde das nach und
nach immer besser. Es wurde viel versucht - Irrungen und Wirrungen, d.h. "Try und Error" waren an der Tagesordnung.
Als erstes Ergebnis einer Programmierarbeit auf EXCEL™-Basis war eine Berechnung des Wärmebedarfs nach DIN4701.
Durch die Formular-Vorgabe in der DIN bot sich eine diesbezügliche Umsetzung "förmlich" an -> Download WB4701.zip.
In einer Erweiterung mit:
- Heizkörperauslegung nach VDI 6030 -> Download BDH_HK.zip und
- integrierter Projektverwaltung -> Download PROJEKTM.zip
sollte es dann möglich sein den Wärmebedarf ganzer Häuser zu ermitteln. Obwohl die EXCEL™-Makros sicherlich noch nicht ganz
fehlerfrei sind, wurde damit der Wämebedarf des Einfamilienhauses von PS berechnet.

Eine weitere VBA-Anwendung kam dann direkt aus dem "neuen" beruflichen Leben:
In dem Haustechnik-Ingenieurbüro, welches nach der Schulungsmaßnahme der erster Arbeitgeber von PS war, wurde als integrierte
Branchen-Software "SSS" eingesetzt - ein für damalige Verhältnisse etwa Mitte der 1990er Jahre sehr umfangreiches DOS-Programm
mit vielen nur schwer zu beherrschenden Ecken und Kanten und auch manche kaum zu umschiffende Klippe.
Ohne jetzt weiter auf die näheren Features von "SSS" eingehen zu wollen, gab es das Problem der Auswertung von Teilleistungen
auf der Baustelle in Bezug zu den ausgeschriebenen Leistungen.
Durch Untersuchungen der Ausgabe-Files konnte eine einfache Struktur festgestellt werden, deren Daten sich dann mittels
VBA-Programmierung in ein extra dazu entsprechend vorbereitetes EXCEL™-Blatt "einlesen" liesen. Somit konnte nun durch weitere
händische Eingaben von aktuellen Werten von der betreffenden Baustelle hervorragende Übersichten zur Abrechnung von Teil- oder
der Gesamtleistung erzeugt werden -> Download SSS-EXCEL.zip.

So gut und einfach das Arbeiten mit EXCEL™-VBA auch immer war - einen Nachteil mußte man immer akzeptieren:
Es mußte immer eine Lizenzkosten-pflichtige Version von EXCEL™ im Hintergrund laufen, sonst ging es nicht.

Besonderere Höhepunkte waren dann die EXCEL™-5.0-Applikation "Lotto"
-> Download Lotto.zip und der Versuch eines einfachen
DXF-Viewers mit den Grafik-Mitteln von EXCEL™:
CAD für EXCEL -> Download EXCEL-CAD.zip.
Angefangen und erste Versuche wurden auch zu solchen Aufgabenstellungen
gemacht, wie z.B. "Leistungs-Katalog" -> Download Leistungs-Katalog.zip
und "Datanorm-Konvertierung" -> Download Datanorm- Konvert.zip,
was allerdings nie mehr weiterbearbeitet werden konnte, weil dann immer
wieder andere wichtigere Dinge des Arbeitgebers im Vordergrund standen.
Eine besondere Herausforderung im Zusammenhang mit der Arbeit für die
Berliner Wohnungsbaugesellschaft "WOGEHE" sollte ein "Eingriff" in die
dynamische Darstellung eines diesbezüglichen Stadtplan-Ausschnittes sein,
wo die aktuell bearbeiteten Baustellen gekennzeichnet werden sollten
-> Download CAD_KART.zip

Weitere Beispiele sind:
- Konverter-Brücke "Solar zu AutoCAD™" -> siehe hier.

Da anfangs in dem "Solar"-Paket noch kein "Abwasser"-Programm nach DIN1986 enthalten war, wurden die grafischen Fähigkeiten von
EXCEL™-VBA "vergewaltigt" und mit der Entwicklung eines grafischen Auslege-Programm begonnen -> Download Abwasser.zip.
Das ist zwar weder fertig noch fehlerfrei, aber ein guter Ansatz zur Demonstration, was alles mit EXCEL™-VBA möglich ist.

Ein recht anspruchsvolles Vorhaben wurde viel später nochmal mit einem EXCEL™-Programm zur "Wechselrichter-Auslegung und
Ertragsberechnung" für die Photovoltaik-Anlagen angefangen, dann aber wegen des Ausscheidens aus dem Berufsleben nicht mehr weitergeführt
-> Download Alternative_Ertragsberechnung.zip.
Das sollte sowohl ein "Ersatz", als auch eine Erweiterung im Sinne mehrsträngiger Wechselrichter für das kommerzielle "PV-SOL" sein.

VBA an sich wurde zunehmend auch von anderer Standard- und auch sonstiger Software unterstützt, so z.B. auch von ACCESS™ und später
dann auch von der CAD-Software, wie AutoCAD™ bzw. TurboCAD™, COREL™ usw.


ACCESS™ - VBA

ACCESS™-VBA hatte den Vorteil, dass man auch ohne das eigentliche ACCESS™-Programm im Hintergrund laufen lassen zu müssen
eigenständige, so genannte "Standalone"-Applikationen erzeugen konnte.
Das funktionierte allerdings nicht mit dem normalen ACCESS™, sondern dazu wurde das OFFICE-Paket in der Developer-Version benötigt.
Das konnte man jedoch mit einem Trick umgehen, indem der Rumpf einer fertigen Standalone-ACCESS™-Applikation mit neuen Inhalten
ausgefüllt wird, d.h. die dort vorhandenen Tabellen, Formulare usw. werden gegen die eigenen austauscht.
Auf dieser Basis wurde begonnen ein eigenständiges HT-Programm zu entwickeln, was jedoch infolge des Branchenwechsels zur Photovoltaik
dann nicht mehr weiter verfolgt wurde.

Ebenfalls in diese Ära fällt das Projekt EdAss, ein universeller Editor/Assembler für die Mikroprozessoren Z80 (U880D) und Z8 (U88xx).


TurboCAD™ - SDK

Da das CAD-Programm TurboCAD™ als preiswerte Alternative AutoCAD™ seit Beginn des Branchenwechsels zur HT und dann später
auch in der Photovoltaik ständiger Begleiter von PS war, lag es nahe sich eingehender mit der so genannten SDK-Programmierung zu beschäftigen.
Mit dem SDK - "Software Develpoment Kit" konnte man programmtechnisch Vieles erreichen, was im eigentlichen CAD-Programm so nicht
vorgesehen war.
Herausgekommen ist das PS-Buch SDK-Programmierung bei TurboCAD™, was allerdings laufend noch in der Überarbeitung ist.
Alle weiteren Einzelheiten und symthomatischen Zusammenhänge können aus dem PS-Buch entnommen werden.
Als eines der ersten Ergebnisse zum TurboCAD™-SDK kann ein Vorhaben angesehen werden, das ausgehend von einem Projektplanungsblatt
automatisch eine Prinzipdarstellung einer Photovoltaik-Anlage generiert.
Bei der SDK-Programmierung von TurboCAD™ in den neueren Versionen besteht leider das Problem einer geeigneten Entwicklungsumgebung
(IDE). VBA wird zwar prinzipiell dank der COM-Schnittstelle weiterhin unterstützt, aber seit TC V11/12 gehört die VBA-IDE leider nicht mehr
zum Lieferumfang. Ersatzweise muss man sich dann mit der VBA-IDE von z.B. EXCEL™ begnügen, oder andere, in der Regel uneffektivere
Hilfsmittel anwenden.
Ergebnis einer innerbetrieblichen Schulungsarbeit zur Anwendung von TurboCAD™ ist der Vortrag Einführungs-Schulung in TurboCAD.


AutoIt - die Alternative !

Mit der leicht zu erlernenden Programmiersprache "AutoIt" wurden von PS schon zahlreiche Programme geschrieben. Basis von "AutoIt" ist die
konsequente Umsetzung des WINDOWS™-API in leicht handhabbare Funktionen, was eine außerordenlich kleine Programmdatei (.exe) zur Folge
hat und auch keine weiteren Frameworks oder sonstige Bibliotheken gebraucht werden.
Als besonderes Problem stellte sich immer mal wieder die nicht so ausführliche Beschreibung der so wichtigen "Events" - d.h. Ereignisse bei
Bedienelementen in der ansonsten hervorragenden deutschsprachigen Dokumentation heraus. Deshalb wurden eigene Untersuchungen angestellt
und als Ergebnis kam folgendes Dokument zu Stande: Control-Events in AutoIt.
Als richtiges Programm-Beispiele sei hier auf den Tabellengenerator für TurboCAD™ hingewiesen.
Weitere kleine Programme und Tools haben die Überzeugung zu "AutoIt" vertieft. Ein besonderes Highlight ist jedoch das Vorhaben mittels
"AutoIt" mal tief in die Interna eines CAD-Programms vorzudringen, d.h. mal programmtechnisch nachzuvollziehen, wie man das Zeichnen von
Geraden, Kreisen und daraus abgeleitete Grafik-Objekte realisiert, sowie deren verwaltungstechnische Organisation innerhalb einer Zeichnung.
Dazu gibt es im AutoIt-Forum einen langen Thread unter dem Titel: "Wir bauen uns ein CAD". Die Bearbeitung ist zwar z.Zt. unterbrochen -
mangels Interesse Anderer, soll aber ggf. im Rahmen der weiteren Bearbeitung zu "AVR-CNC" weitergeführt werden.

Dadurch ergab sich dann allerdings die Aufgabe aus dem "Tabellen-Generator" für TurboCAD™ einen "Stücklisten-Generator" zu entwickeln.
Die Programm-Beschreibung kann hier Stücklisten-Generator für TurboCAD™ nachgelesen werden.

Als eine weitere AutoIt-Entwicklung soll außerdem noch auf das Programm einer Datenbank-basierenden "Mediathek" hingewiesen werden,
welches für den Industriesalon Berlin-Schöneweide (ISS) erstellt wurde. Damit sollen die Besucher in die Lage versetzt werden, sich selbstständig
die vielen Videos, Texte und Sounds - die im elektronischen Archiv des ISS vorhanden sind - anzuschauen, bzw. anzuhören.
Erste Eindücke können aus dem Screenshot: Mediathek ISS entnommen werden. Weitere Informationen dazu - siehe Mediathek ...


Andere Programmiersprachen

Als erste ernstzunehmende Alternative zu den teuren Standard-Programmierumgebungen für WINDOWS™-taugliche Programme kam in den
1990ern Jahren "PROFAN™" auf den Markt. Das war zwar auch nicht ganz kostenlos, aber doch eher erschwinglich.
Von Version zu Version wurde auch die Funktionalität verbessert, aber der etwas komplizierte Ansatz und auch die nicht immer zielführende
Dokumentation beflügelten nicht gerade dessen Einsatz in der "PS-Programmierschmiede".
Erst als Microsoft™ weit nach der Jahrtausendwende überraschenderweise eine kostenlose (!) Express-Version des aktuellen "Visual-Studios"
zur allgemeinen Verfügung stellte, hat sich PS auch intensiver mit VB und VC++, bzw. den Nachfolge-Versionen in der .net-Technologie
beschäftigt. Herausgekommen ist - bzw. daran soll noch weiter gearbeitet werden - eine Bedieneroberfläche für eine universell-grafisch
zu programmierende AVR-Hardware - das Projekt AVRLab, mit der alle möglichen MSR- und sonstige Aufgaben gelöst werden können:
Visual Programmierung.
Infolge der doch recht komplizierten Arbeitsweise innerhalb der .net-Technologie sind in letzter Zeit auch Überlegungen vorgenommen worden,
diese Aufgabe mit den "AutoIt"-Mitteln zu lösen.


HTML und PHP

Mit der Veröffentlichung des PS-Buches "Die Geschichte der Mikroelektronik/Halbleiterindustrie der DDR" im Jahre 2003 war auch eine ständige
Aktualisierung des dargelegten Wissensstandes notwendig. Hierzu bot sich der Betrieb einer eigenen Homepage an, was jedoch bedeutete, dass
PS sich erst einmal mit der HTML-Programmierung vertraut machen muße. Umfangreiches Literaturstudium und die intuitiv leicht bedienbare
Entwicklungsumgebung "SuperHTML" von Mirabyte sicherten jedoch einen schnellen Erfolg:
- PS-Homepage und
- robotron-net
wurden damit erstellt und die PS-Homepage wird immer noch damit bearbeitet.

Eine neue Herausforderung war aber die Programmierung von dynamischen Webseiten - und das geht leider nicht mit einfacher HTML, sondern
z.B. mit PHP.
Ausgangspunkt war die selbst gestellte Aufgabe eine OnLine-Datenbank für die DDR-Fachzeitschrift "Radio und Fernsehen" bzw. dessen
Nachfolger "radio fernsehen elektronik" zu entwickeln. Wieder galt es Bücher zu wälzen und erste Versuche zu unternehmen.
Die besondere Schwierigkeit bestand jedoch darin, dass im Gegensatz zu HTML mit seiner sofortigen Vorschau im "SuperHTML" bei php-Datein
diese erst auf einen Server hochgeladen werden müssen, um dann im "Try & Error"-Verfahren das Ergebnis in einem Internet-Browser sehen zu
können. Um keinen eigenen Server installieren zu müssen, wurde das Datenbank-Angebot von STRATO benutzt, da dieser Webhoster sowieso
schon für die o.g. Web-Auftritte zur Verfügung stand.
Etwas nervig gestaltete sich allerdings das Debugging, weil diesbezügliche Fehlermeldungen im Logfile nicht zeitnah zur Verfügung stehen.
So konnte bei nicht sofort erkennbaren Fehlern oft erst am nächsten Tag weiter gearbeitet werden.

Das Ergebnis ist die "rfe-Datenbank", in welcher z.Zt. zwar erst Informationen über veröffentlichte Artikel in den Jahrgängen 1965 bis 1968
hinterlegt sind, welche aber nach und nach weiter ergänzt werden sollen. Ziel ist ein umfassender Wissensnachweis von Anfang der 1950er Jahre
bis zum Ende der DDR 1990.


PowerBASIC

Mit "AutoIt" kann man schon Vieles programmieren - sogar infolge der COM-Unterstützung sowas, wie in "TurboCAD-Forum" aufgeführt.
Zum "Planarspulen-Generator" gab's allerdings das Problem, dass mit "AutoIt" offensichtlich nur die COM-Anbindung als "OutProcServer"
funktioniert -> "AutoIt-Forum".
Als weiteres Manko bei all den Versuchen mit AutoIt erwies sich das Fehlen eines geeigneten Debuggers. Ohne die Hilfe eines "intelligenten
Fehlersuchers" ist das Programmieren wie das Herumstockern in einem Heuhaufen!
Auf der Suche nach einer Alternative zu "AutoIt" (mit Debugger) wurde viele weitere Programmier-Werkzeuge angeschaut, so z.B. PureBASIC,
FreeBASIC und zum Schluß PowerBASIC.
Bei letzterem bin ich dann fündig geworden. In der aus dem Internet downloadbaren Beschreibung ist auf über 2000 Seiten nun alles aufgeführt,
was ein Programmierer bei seiner Arbeit so braucht - auch ein überaus umfangreiches Debugger-Tool und die COM-Anbindung sowohl als
"OutProcServer", wie auch als "InProgServer".
Im Gegensatz zu "AutoIt" ist PowerBASIC allerdings keine Freeware, aber preislich mit ~100$ doch angemessen. Leider hatte bereits vor Jahren
die deutsche Distribution "Kirschbaum-Software" infolge Todesfall den Vertrieb eingestellt und auch die HP des US-amerikanische Mutter-Konzerns
PowerBASIC Inc. steht seit geraumer Zeit "Under Construction". Deshalb sind viele "Profi"-Programmierer der Meinung: PowerBASIC ist tot
und somit nicht mehr relevant.
Dem kann ich nicht zustimmen! - Nach dem was hier -> "PBWin10-Einführung" offeriert wird und die US-Firma offensichtlich kein Interesse mehr
daran hat, das diesbezüglich Forum nun auch noch abgeschaltet wurde - sollte diese geniale Software in den Status "OpenSource" überführt werden.
Zur Dokumentation um was es sich bei PowerBASIC in der Version 10 handelt, hier mal ein Auszug aus dem über 700seitigen Referenzhandbuch
in der selbst erarbeiteten deutschen Fassung -> "PBWin10_Ref-Auszug".
Weitere Diskussionen dazu gibt es, bzw. wird es im Forum -> " It-BeraterForum" geben.
Allerdings ist man auch dort schon der Meinung, dass man mit anderen Werkzeugen weiterarbeiten sollte ...


Was kommt nach PowerBASIC ?

(under Construction)





Copyright © 2012 by Peter Salomon. Letzte Änderung am 26.09.2026