Interview mit Andre Klein ("A.K.")

© Thomas Antoni, Februar 2004





Vorwort von Thomas Antoni

Andre Klein ist heute einer der professionellsten deutschen QBasic- Programmierer. Sein bekanntestes Werk ist die SVGA-LIB ("AK-Lib"), die Grafikauflösungen bis 1600 x 1280 Pixeln unterstützt und auch unter neueren Windows-Versionen wie Windows XP problemlos läuft - im Gegensatz zu anderen Libs wie DirectQB und Future.Lib. Seit über 2 Jahren beteiligt sich Andre rege am Deutschen QBasic- Programmierforum und ist immer dann zur Stelle, wenn es um anspruchsvolle Programmierprobleme geht. Ich habe schon über 30 seiner Beiträge für die nächste Ausgabe der QB-MonsterFAQ aufbereitet.

Auf Andres Webseite www.iconsoft.de geht es natürlich schwerpunktmäißg um die AK-Lib. Es gibt aber auch eine Reihe von sehr kompetent und gut geschriebenen Tutorials zu professionellen Programmierproblemen wie
  • Assembler und Interrupts in QB
  • Umgang mit Bibliotheken
  • Direktzugriff auf Festplatten und Disketten


Interview

Thomas: Andre, wie alt bist Du und wo wohnst Du?
Andre: Ich bin 23 und wohne in einem kleinen Dorf in der Nähe von Tostedt (Niedersachsen).

Thomas: Was machst Du ausbildungs- bzw. berufsmäßig?
Andre: Ich arbeite zur Zeit als Funkelektroniker in einem mittelständischen Betrieb in Hamburg.

Thomas: Wie kommt es eigentlich, dass Du eine ganze Mutantenschar von sage und schreibe 8 PCs zuhause 'rumstehen hast?
Andre: Das liegt daran, dass ich so gut wie nie PC-Teile wegwerfe. Und auf Jahre gesehen kommen da natürlich ein paar komplette PC's heraus.

Thomas: Was erwartet den Besucher auf Deiner Webseite?
Andre: Also, die Hauptidee meiner Homepage ist, dass der User dort Informationen zu QB findet, die er sich sonst erst mühselig aus dem Internet zusammensuchen müsste. Dabei geht es mir aber nicht um die QB-"Standard"-Sachen, sondern um "härteren" QB-Stuff für Fortgeschrittene. Demnächst wird sich ein großer Teil der Homepage mit meiner SVGA-LIB befassen.

Thomas: Wie sieht Dein Webdesign-Konzept aus? An Deiner Seite www.iconsoft.de fällt mir auf, dass sie nur wenige Grafikelemente verwendet, ein helles Outfit hat und schnell lädt. Ich habe auch mal kurz in Deinen HTML-Code hineingespitzt. Er ist sehr schlicht und scheint mit einem normalen Texteditor erstellt worden zu sein.
Andre: Das hast du gut beobachtet. Im Vordergrund steht für mich der Nutzen einer Sache, danach kommt erst das Aussehen. Deswegen halt das schlichtere Design. Aber beim nächsten Update werde ich ein bisschen mehr grafische Spielereien in meine Webseite einfließen lassen, damit es nicht mehr gar so schlicht wirkt. Und: Ja, der HTML-Quellcode ist mit dem normalen NotePad geschrieben worden. Aber das auch nur aus dem Grund, dass ich immer versuche, alle Computersachen zuerst selber zu lösen, bevor ich irgendwelche Hilfsprogramme benutze. Außerdem lernt man dabei am meisten.

Thomas: Wie war Dein Werdegang als Programmierer?
Andre: Angefangen hat alles als ich ca. 13 Jahr alt war. Damals hatte ich ein wenig Qbasic in der Schule. Eines Nachmittags saß ich dann über meinen Mathe- Hausaufgaben und bemerkte, dass ich meinen Taschenrechner in der Schule vergessen hatte. Da kam ich auf die Idee, mir mit Qbasic einen kleinen primitiven Taschenrechner zu basteln. Und da das auf Anhieb funktionierte, habe ich auch noch einige andere Sachen ausprobiert, die auch alle klappten. Und natürlich war ich dann so begeistert davon, dass ich bei Qbasic geblieben bin.

Während meiner Lehre kam ich dann auch noch mit HTML, Assembler und Turbo Pascal in Berührung. Das war so ab 17 Jahren. HTML war eher privat nebenbei zum ausprobieren. Mit Assembler mußten wir uns in der Lehre befassen. Der "PC" nannte sich damals "MFA" und hatte einen 8088er Prozessor, wenn ich mich richtig erinnere. Ja, und Turbo Pascal war halt für die Hardware-Ansteuerung da. Nach meiner Lehre habe ich mich dann nebenbei auch in VisualBasic 4.0 eingearbeitet. Und durch meine Arbeit kam schließlich noch VisualBasic.Net dazu.

Thomas: Was bedeutet eigentlich das .NET bei VisualBasic.NET?
Andre: Das ist 'ne gute Frage. Bisher habe ich eigentlich noch keine offizielle Erklärung dafür gefunden. Aber vielleicht soll es betonen, das dieses VisualBasic mehr Möglichkeiten für die Kommunikation zwischen Rechnern bietet, die über das Internet vernetzt sind, also NET als Abkürzung für "NETworking".

Thomas: Sag doch mal ein paar Worte zu Deinen bisherigen QBasic Programmen.
Andre: Im Grunde genommen programmiere ich alles was mir so einfällt. Und wenn es keinen Spaß mehr macht, dann verwirkliche ich die nächste Idee. Durch diese Programmierart entstehen sehr viele Lösungen zu den unterschiedlichsten Problemen, die man als Programmierer haben kann. So kommt es, dass meine QB- Programme zahlreich aber sehr einfach und wenig aufwändig sind. Und da ich nichts lösche, haben sich mittlerweile ca 5000 kleine QB-Programme angesammelt - ob nun brauchbar oder nicht.

Thomas: Ich hoffe, wir werden irgendwann die besten davon auf Deiner Homepage bewundern können. In welchen Sprachen programmierst Du?
Andre: Also, privat progge ich hauptsächlich in QB, gefolgt von Assembler und dann natürlich noch HTML und ab und zu auch noch mit VB4.0, welches ich unter Win3.11 benutze. Beruflich arbeite ich mit VisualBasic.NET.

Thomas: Kannst Du uns in 3 Sätzen das Wichtigste über Deine AK-SVGA-Lib berichten?

Andre:
  • Sie soll eine alternative LIB zu den existierenden SVGA-LIB's sein.
  • Sie soll auf jedem Rechner laufen (das versuche ich zumindest :-) ).
  • Sie soll für jeden QB-User leicht nachvollziehbar sein.
Thomas: Du sagst, die AK-Lib soll auf jedem Rechner laufen. Funktioniert sie auch problemlos unter Windows XP?
Andre: Es scheint sich durch die Tests zu bestätigen, dass sie mit den meisten Windows- XP-Systemen zusammenspielt. Aber auch nur dann, wenn QB an sich ohne Probleme läuft.

Thomas: Wie erreichst Du die Kompatibilität mit neueren Windows-Systemen?
Andre: Ganz ehrlich gesagt weiß ich es nicht. Das einzige was ich mache: Ich kümmere mich nicht ums Betriebssystem.

Thomas: Kriegst Du viele E-Mails bezüglich der AK-Lib?
Andre: Nein, soviele Mails bekomme ich nicht. Vieleicht 3 pro Woche. Aber es werden immer mehr.

Thomas: Bei der AK-Lib gibt es MsgBoxen und BUTTONs. Was ist darunter zu verstehen?
Andre: Ein Button ist ein Klicksymbol für die Maus. Für Buttons gibt es in der AK-Lib vorgefertige Routinen, die einem das Malen und Kontrollieren von Buttons abnehmen. Dabei kann man jedem Button Eigenschaften zuweisen, z.B. Farbe, Text, Größe, Bildschirmposition usw. Das MsgBox-Sub malt eine komplette MessageBox auf den Bildschirm. Das ist eine Dialogbox wie man sie von Windows her kennt. Dort kann man die Überschrift, den Text und die dazugehörigen Buttons aussuchen. Dann wird das Programm solange in der LIB verbleiben, bis die MsgBox geschlossen wird. Der Hintergrund wird vorher automatisch gerettet und danach automatisch wiederhergestellt.

Thomas: Was sind die besten Programme, die mit der AK-Lib erstellt wurden?
Andre: Ich selber habe bisher nur ein einziges Programm damit fertiggestellt. Dabei handelt es sich um einen Spriteeditor für das QBP-Format meiner LIB, welches aber NOCH nicht reif für die Veröffentlichung ist. Ansonsten weiß ich nur, dass einige Programme in Arbeit sind. Es sind jedoch noch keine Fertigen dabei.

Aber Carlo bietet auf seiner Webseite www.free-lander.de eine sehr eindrucksvolle Demo zum Download an, die die Highlights der AK-Lib demonstriert. Es arbeitet sehr viel mit SIN, COS..., und die Effekte, die dadurch entstehen, sehen wirklich atemberaubend und professionell aus. Es lohnt sich auf jeden Fall, Carlos Demo mal anzuschauen.

Thomas: Wo hast Du das ganze Systemwissen her, das man für das Programmieren einer so hardwarenahen Library wie der AK-Lib benötigt?
Andre: Wie ich schon sagte, probiere ich viele Sachen aus. Von daher weiß man aus jedem Gebiet der Systemprogrammierung ein bisschen. Und nach einer Weile fügt sich dann alles Teilwissen zu einem großen Wissen zusammen.

Thomas: Wo erfährt der Einsteiger mehr über die hardwarenahe Systemprogrammierung? Gibt es dazu Webseiten und Bücher
Andre: Wenn es um kleinere bis mittlere Sachen geht, dann ist das Internet die beste Adresse. Wenn es um schwierige Themen geht, sollte man sich ein Buch dazu besorgen. Meine "Bibel" ist ein sehr altes Buch mit dem Titel "MS-DOS DEVICE DRIVER". Das ist noch aus den 80ern. Dort steht eigentlich alles drin, was man so wissen muß. Und das Schöne dabei ist, dass fast alles, was dort beschrieben wird, heute noch gültig ist.

Thomas: Ich selbst konsultiere bei solchen Problemstellungen immer Michael Tischers "PC intern 3.0", ein 1400-Seitiges Standardwerk zur Systemprogrammierung, das ich günstig bei eBay ersteigert habe. Andre, wieviele Programmierstunden hast Du eigentlich schon in die AK-Lib investiert?
Andre: Ich glaube da möchte ich nicht drüber nachdenken! :-) Aber ich schätze mal, daß es schon ein paar 1000 Stunden waren.

Thomas: Whow! Das ist ja die gesamte Freizeit von mehreren Jahren! Wie findet ein Anfänger eigentlich am besten den Einstieg in die Assemblerprogramierung? Und wo bekommt man einen guten Freeware-Assembler her?
Andre: Am besten sollte man sich zuerst mit den Begriffen "Register", "Flags", "Stack", "Interrupt", "Segment" und "Offset" beschäftigen. Dazu gibts im Internet jede Menge Tutorials, z.B. auch auf meiner Homepage in der Tutorial-Rubrik. Wenn einem diese Grundbegriffe dann erstmal klar sind, ist es kein weiter Weg mehr bis man seine ersten ASM- Programme erstellen kann.

Wenn's beim Programmieren des ASM-Programms einfach sein soll, dann kann man z.B. NASM oder TASM benutzen, das sind alles Assembler, mit denen man relativ kompfortabel arbeiten kann. Um sie zu finden, braucht man eigentlich nur im Internet ein bisschen 'rumzusuchen. Ich persönlich benutze nur den Assembler "DEBUG". Der wird von MS zu jeder Betriebssystem-Version dazugepackt. Er ist zwar nicht so komfortabel wie die anderen, aber dort kann ich mir sicher sein, das er auch wirklich das ins ASM-Prog schreibt, was er soll.

Thomas: NASM ist ja Freeware und steht auf der Webseite der Entwickler unter http://sourceforge.net/projects/nasm zum Download bereit. Aber wo kann man nur den "Borland Turbo Asembler" TASM herbekommen? Das werde ich übrigens sehr häufig gefragt.
Andre: Da ich diese Assembler nicht benutze, habe ich auch noch nicht intensiv danach gesucht. Deswegen weiß ich leider auch nicht wo es den TASM gibt.

Thomas: Kannst Du noch ein paar Worte zu den anderen Multimedia- Libs sagen? Ich dachte da an
Andre: Ehrlich gesagt, ich habe noch keine von diesen LIBs benutzt. Die einzige, die ich ausprobiert habe, ist die FutureLib. Aber ich habe sie nicht zum laufen bekommen. Und die UGL-LIB ist mir völlig unbekannt. Also kann ich mich dazu leider nicht mehr äußern.

Thomas: Gibst Du uns noch ein paar Infos zu den DOS-Fonts von Dir und Breeze?
Andre: Bei den DOS-Fonts handelt es sich um selbstgemalte Schriftsätze, die man unter DOS oder der Windows-DOS-Box laden kann. Der jeweilige Schriftsatz wird dann durch die "DOSFONT.EXE" in den Speicher geladen. Dabei wird der alte Original- DOS- Schriftsatz überschrieben. Und der Clou dabei ist, dass anschließend jedes Programm, das in DOS oder in der aktuellen Windows-DOS-Box läuft, diesen Schriftsatz benutzt. Auch DOS oder die DOS-Box selber. Dabei werden aber nur Schriften in der Größe 8x16 unterstützt. Die Schriftsatzdateien haben die Endung ".ARL" und sind mit der AK-LIB kompatibel.

Thomas: Kann der Anwender auch selber DOS-Fonts gestalten, und gibt es ein Tool, welches ihm dabei hilft?
Andre: Jein. Im Moment ist das noch nicht möglich. Aber mit dem Erscheinen der AK-LIB V1.5, wird es einen Font-Editor für die LIB geben. Und da die ".ARL"-Dateien auch von DOS-Font genutzt werden, kann man das Tool auch dafür "mißbrauchen". :-)

Thomas: Da läuft einem ja das Wasser im Mund zusammen! Wann ist denn mit dem Erscheinen von V1.5 der AK-Lib zu rechnen?
Andre: Also, wenn keine größeren Probleme auftauchen, wird es wohl im Mai/Juni 2004 soweit sein. Aber das ist nur eine vage Schätzung.

Thomas: Wann wird es eigentlich die erste lauffähige Version Deines Quiz-Projektes auf www.freewebs.com/woodsen zu bestaunen geben?
Andre: Es ist eigentlich nicht "mein" Projekt, sondern es handelt sich um eine Gruppe von 5 Programmierern. Im Moment ist es aber noch nicht abzusehen wann dieses Projekt fertig sein wird.

Thomas: Was rätst Du einem QB-Programmierer, der aus seinem Programm heraus aufs Internet zugreifen oder sein Game netzwerkfähig machen will, z.B. über TCP/IP oder IPX?
Andre: Dazu kann ich leider noch nichts sagen, da ich mich selber gerade erst in die Netzwerk- und Internet- Programmierung einarbeite.

Thomas: Warum hört man so wenig von PowerBasic und VB-DOS - im Vergleich zu QuickBasic?
Andre: Ich denke mal, weil man in Qbasic alles hat, was man braucht, und sich gar nicht mit den anderen beiden Sprachen zu beschäftigen braucht. Jedenfalls habe ich die anderen beiden noch nicht ausprobiert.

Thomas: Wie siehst Du die Zukunft von QBasic, QuickBasic und MS-DOS?
Andre: MS-DOS wird's wohl irgendwann nicht mehr geben. Die Programmiersprachen, die für DOS entwickelt wurden, werden sich aber noch sehr lange halten. Jedenfalls solange sie von Windows unterstützt werden.

Thomas: Was rätst Du einem QBasic-Programmierer, der Animationen, Sound und Mausbedienung in seine Spiele und sonstigen Programme hineinbringen will?
Andre: Wenn's einfach und schnell sein soll, dann ist eine LIB zu empfehlen, die so etwas unterstützt. Ansonsten findet man alles darüber auf den meisten QB-Seiten. Am besten Beispielprogramme downloaden und ein bisschen experimentieren.

Thomas: Wie schafft man sich den nötigen freien Speicherplatz für seine Spiele und überwindet die für QBasic geltende 160 KB Grenze für die max. Länge von Code und Daten?

Andre:
Für den Quellcode:
  • Das ganze Programm in einzelne BAS-Dateien aufteilen und sie dann miteinander verbinden.
  • Code-Optimierungen durchführen
  • Kommentare löschen (zählen die eigentlich als "Quellcode"?)
Für die Daten:
  • Ablage von Daten in Dateien
  • Ablage von Daten in den konventionellen RAM (Also kein QB-Speicher, sondern Speicher direkt von DOS "nehmen")
  • Ablage von Daten in den erweiterten Speicher (als EMS)
  • Ablage von Daten in den erweiterten Speicher (als XMS, finde ich aber "unschön")
Thomas: Was ist die beste Methode, um BAS-Dateien zu verbinden? Mit RUN/CHAIN oder mit QuickBasic-"MAK-Modulen"? Die meisten QBasic-Fans kennen sich mit solchen Dingen nicht aus.
Andre: Je nachdem was man mit der Endanwendung machen möchte, ist die eine oder die andere Methode besser. Wenn man z.B. eine "feste" Anwendung schreiben will, dann würde ich auf MAK-Module zurückgreifen. Wenn es eine Anwendung sein soll, die einfach externe Programme benutzen soll, dann RUN. Und wenn es um sehr variable Programme geht, dann würde ich CHAIN benutzen, das die Übergabe von Variablen zwischen den einzelnen BAS-Dateien ermöglicht.

Thomas: Kann man die AK-Lib verwenden, um den erweiterten EMS-Speicher für seine Daten zu nutzen?
Andre: Die jetzige Version 1.4 kann es nicht. Die neue Version 1.5, die ja schon in Arbeit ist, wird eine volle EMS-Unterstützung bieten. Den EMS-Speicher wird man dann auf unterschiedlichste Weise nutzen können.

Thomas: Welche weiteren Ratschläge kannst Du einem QBasic- Einsteiger geben?

Andre:
  • Niemals aufgeben!
  • Aus Fehlern lernt man!
  • Wenn das ein anderer kann, dann kannst du das auch!
Thomas: Auf welche Windows- Programmiersprache sollte ein QB-Fan aufsteigen a) wenn er nur hobbymäßig programmieren will bzw. b) wenn er einen IT-Beruf anstrebt?
Andre: Ich denke, dass nach QB VisualBasic kommt. Das gilt für a) und b).

Thomas: Linux verwenden und für Linux programmieren - denkst Du über sowas nach?
Andre: Ich habe schon öfters drüber nachgedacht, konnte mich aber nie richtig dazu durchringen. Und mittlerweile finde ich Linux eigentlich schon zu "ausgelatscht".

Thomas: Was hast Du für Zukunftsprojekte?
Andre: Also, im Moment programmiere ich nur an meiner SVGA-LIB. Und wenn die fertig ist, dann schaue ich mal, was für Ideen noch kommen.

Thomas: Was sind Deine Lieblings-Webseiten?
Andre: Lieblings-Webseiten habe ich eigentlich nicht. Die einzigen Seiten, die ich regelmäßig jeden Tag besuche, sind das Deutsche QBasic-Programmierforum und das Deutsche QBasic-Werbeforum

Thomas: Hast Du noch andere Hobbies außer Programmieren? Was macht Andre so alles privat?
Andre: Ja, da wären z.B. meine Freundin, unsere mongolischen Wüstenrennmäuse, unser ganzer Stolz!, und Volleyball. Und dann ist die ganze Zeit für Hobbys auch schon ausgeschöpft.

Thomas: Vielen Dank Andre für die höchst aufschlussreichen Antworten. Willst Du noch einen Abschiedsgruß an den Leser richten und etwas von Deinen Erfahrungen als Programmierer und Mensch weitergeben?

Andre:
Fürs Programmiere rate ich Dir:
  • Gewöhne Dir im Lauf der Zeit einen guten Programmierstil an und sorge für gut lesbare Programme. Beginne zunächst mit der Verwendung aussagekräftiger Namen für Deine Variablen und SUB/FUNCTIONs. Bedenke, dass Programme mit Variablen wie "a","b","c" später sehr schwer nachzuvollziehen sind.
  • Gib niemals auf. Stell dir vor, wie das fertige Programm laufen wird, wie es vieleicht andere begeistern wird und was für ein Lob du dafür eventuell bekommst. Vielleicht schickst du es sogar zum QB-Wettbewerb ein oder hast was völlig Neues programmiert, was es vorher noch nie gab. Das sind alles Gründe die einen motivieren, auch wenn man gar nicht mehr weiter weiß. Und wenn das nicht hilft, dann denke daran: Wenn du dieses sch... Programm endlich fertig hast, dann brauchst du dich nie wieder damit 'rumschlagen. :-)
  • immer neugierig sein und alles in Frage stellen!
Und als Mensch ist mir wichtig
  • Mit Freundlichkeit kommt man am weitesten!!! Bleibe auch dann freundlich, wenn jemand dich provoziert oder scheinbar saudumme Fragen stellt.
  • Und wenn die Schule mal wieder ätzend langweilig ist: Beiß die Zähne zusammen und quäle Dich auch mal. Denn mit wenig Bildung ist es sehr schwierig , etwas in seinem Leben zu erreichen!


[zur Startseite http://www.antonis.de]        [zur framelosen Startseite]