|• Personal •|
— Private: Programming —
I do not have a formal training in computer programming and I have never had the privilege to attend a course. I started with PRINT "HELLO" and went from there. Programming the ZX80/81 was just toying, then I started to write short routines in machine language: hex code in decimal. I got a Z80 assembler and I still think assembler and BASIC supplement each other very well.
I wrote many utilities for the CP/M+ computer, tools I considered necessary like, for example, drilling up the capacity of the diskettes from 183 KB to 199 KB. Formats were proprietary in the pre-DOS times. I had a FORTH for the Sinclair ZX81 and I organised another one for CP/M and started to write a few programs in this computer language. Because I got stuck in a game, I purchased a FORTRAN and learned enough of that language to be able to understand the source code of the game and to write programs to decode the database. With this bit of cheating I made it to the end of the game, eventually. I tried out several other computer languages: Pascal, Modula 2, ADA, Prolog, but I stuck to assembler and BASIC.
I did most of my programming escapades during the PC-DOS times. Unfortunately, there were Intel processors, not Zilog ones and even though the assembler mnemonics look similar, they are not. To get a grip on the new mnemonics, I translated the fig-FORTH-79 from CP/M to PC-DOS. This FORTH compiler/interpreter along with the source code was made available for free on the Sydex BBS (Bulletin Board System, before the Internet). The source code for zi-forth with 4,400 lines of assembler is available for download, see Projects > Resources.
Some members of the astronomical society purchased astro CCD cameras and they shared their exposures with me. Only, I could not display them. So I started my most elaborate software project ever. I wrote a complete suite of programs for displaying, filtering, analysing, transforming, converting, printing and archiving astro pictures gathered with a CCD camera. The source code of the CCDTOOLS consist of over 8'200 lines of assembler and over 21'200 lines of Power BASIC and can be downloaded from Projects > Resources. The program still runs on a Windows XP machine but it must be on a FAT (FAT16 or FAT32) partition, the file system NTFS is not supported.
For Windows 3.1, 95 and later I also wrote some programs, partly as complete Windows applications like e.g. Iso2Grey or JxCreator which created the complete issue of the union newspaper from the specially tagged texts sent in, and another small tool: a file dumper that displays the content of any file in hex and ascii.
Doing the GUI is always very time consuming and boring. Therefore, I wrote a lot of small tools as pure 32 bit console applications. One project was an application that logs itself into the routers of a customer network via TCP/IP, starts a Telnet session in that router which then telnets into a satellite modem connected to it and requests the settings of several parameters which are displayed on the console of the application. The router is than ordered to end its telnet session to the modem and the program logs out of the router, than contacts the next router in the network. Apart from being very useful for me and my colleagues, the challenge to program a TCP application was what exited me.
In a pleasing way, REBOL is a script language that is far away from any C syntax. On the first glance one would think it is a FORTH dialect, but this is completely wrong. This is another free script language and there is no web server needed to make it run — REBOL is fully CGI compliant, though. I wrote myself an image archiving system in this script language.
What is offered by the image archiving systems free and expensive does not cover my demands to such a program. I shot about 5'000 pictures with my first digital camera and I do not want to have to search for any of them, want to see them in their context and be able to arrange them to presentations — inter-link the pictures. The web browser offers itself as the display program. However, the prospect of having to write thousands of HTML files was not really making me joyous. Captions and links are therefore put into a simple data base, the HTML files are generated by REBOL scripts within seconds.
C, C+, C++
The programming language C appeared shortly after Pascal in the early 1970s and was met with scorn. Meanwhile, very many applications are written in C and there is a big community. With a bit of searching the Internet, ready to use program libraries can be found for free that can be integrated in the own code with a minimum of fuss. A blessing for those under time pressure that have to deliver a finished software program on time. Programming is very time-consuming and hence expensive.
I am not under pressure and my goal is to fully understand how something works. A solution that works is no solution for me. Therefore I do not use premade libraries but «invent the wheel anew». This compels me to understand the problem before I can start programming.
© 2004 - 2017 by Horo Wernli.