Theo Verelst Diary Page

Wed aug 22 2001, 13:36 PM

I've decided after good example to write some diary pages with toughts and events.

Oh, in case anybody fails to understand, I'd like to remind them that these pages are copyrighted, and that everything found here may not be redistributed in any other way then over this direct link without my prior consent. That includes family, christianity, and other cheats. The simple reason is that it may well be that some people have been ill informed because they've spread illegal 'copies' of my materials even with modifications. Apart from my moral judgement, that is illegal, and will be treated as such by me. Make as many references to these pages as you like, make hardcopies, but only of the whole page, including the html-references, and without changing a iota or tittel...

And if not? I won't hesitate to use legal means to correct wrong that may be done otherwise. And I am serious. I usually am. I'm not sure I could get 'attempt to grave emotional assault' out of it, but infrigement on copyright rules is serious enough. And Jesus called upon us to respect the authorities of state, so christians would of course never do such a thing. Lying, imagine that.

Previous Diary Entries   |   List of Diary Pages   |   Home Page

Wed 22 Aug 2001, 13:36 PM

There are some interesting Einstein statements I must mention at some point, I'll see what I can include, and the same for some more nuclear bomb subjects, including scans from letters from and to Truman, and some info about the communication of knowledge about the possibility of the making of such a device, even before the war, the splitting of uranium in Germany, etc.


Suppose you'd organize a concert nearby, and invite Hendrix and some others, that wouldn't be bad.

See this page for more info, I guess it is not problematic to put this on a diary page, if it is, let me know, I just felt the urge to brighten up a page with it.

I'm not at all sure as to the number of hits on these and other pages, the copyright notice I put on top without thinking was for a good reason, though I'm not sure it is in place in the manner as it stands. I saw my amplifier page has over a thousand hits by itself, which is fun, and it's not a bad page, so why not. If you want the images on it, copy the the URL of the datasheets in netscape by rightclick copy location, paste it in the url space on top of the window, and press return, then they work.

In fact the same holds for the music links on the previous page, except that one time is enough, then the others can simply be clicked, I guess the server remembers the client id the first time, and must be convinced to do so from other than an in page link. Nothing to illegal, I'm sure, it may even draw commercial attention to them.

I'm working on the combination of openGL graphics calls with the realtime audio library I used before, charged with the string simulator and maybe also the sample processor, to get a graphical windows program which can do sounds. When that works enough and opengl continuous to behave good enough, it may be a quite powerfull development starting point, because the C code for quite some strong audio processing, both with the string simulator as in the analog simulation domain and additive synthesis and sound processing area I have and can make pretty well.

After quite some hassle with various library versions and origins, including starting to refetch my own libraries, which did work except for the glut extension at some point, I decided to give it a fresh go, and whatdoyouknow, cygwins' ow supplied libs and includes work up to the point of linking glut applications together, even non trivial ones thus far though I tried only a few, and they work fine. Not nothing as development starting point, that compiler + env is quite useable and powerfull, and so is opengl, except it is not primarily for 2D 'normal' interfaces primarily, but then again, making at least a good enough example application is a good target for various purposes.

Below is a screen dump of the thus far quite excellent gdb debugger for the gnu compiler under cygwin, which here is used to get at an error in an opengl 'maze' example program, which is interesting because it contains interactive 3D graphics of polygon nature with timing.

The source window shows both the C code and assembly format source, in this case with the highlighted commands where the segmentation fault took place which interupted program execution.

Left above is a function search window, in this case excluding the opengl sources, logically, only the application sources are shown, left below is an expression evaluator anex variable trace window, which can show global variables and variables on the current stack frame, and can even as shown make sense of array and character data.

On the right side are the (symbolic) stack and the complete pentium register file, that is all the internal registers of the pentium, minus the cache.

Wanna have this, too? You can, provided you have a moderate amount of disc space, cygwin is for free, and so are many opengl programs and libraries! Cygnus is on, opengl examples can be found from, ( I think it is, by heart), and the debugger works like a unix one should: just use gdb <executable.exe>, and the thing runs under a customized (cygnus provided) tcl/tk interface, allowing the usual single stepping and breakpoints.

To compile a glut library based graphics program under the latest cygnus (2.7 or so), use:

  gcc -o lorenz.exe -DWIN32 -D__WIN32__ -D_WINDOW  lorenz.c  -lglut32 -lglaux -lglu32 -lm -luser32 -lgdi32 -lopengl32

Replacing lorenz with the program at hand, of course. I'll consider checking out the sources of this one to do dynamic 3D string graphical feedback, it appears to be quite fast enough to try such, and has 3D lines.

Notice that seriously all the compiler and other stuff is out there for the quite professional using, including the cygwin dll, which allows one to use Unix (linux) style programming inside a windows compatible program, such as file access and sockets (though a little wrestling may be in order for me to get the select call to do what I want in combination with the process switcher and time slicer).

Installing cygwin has been simplyfied, an installation program takes care of the downloading and uncompressing, and can be easily list-clicked to include certain versions of certain tools, or simply the standard distribution, which seems to work fine, and provided with a prefered download mirror site, including It can be installed with documentation, which in the latest version includes at least reasonably detailed man information of most tools, and even for instance an opengl manual, in pdf.

After having just written the above, I looked at the example to get it running, I found that there is an array problem with either the compiler, the example or the pentium, which is not good, because it seems to be not allowed to address a global variable consisting of a list of ascii strings which are automatically initialized. I remember looking into such things, and also static variables and their initialisation.

What was it again in Kerningham and Richie, auto initialized arrays are not unwriteable, I'm quite sure, but wether eery compiler in general would like *string[i] to be auto initialized with {"123","456"} and then addressed with string[j][i] ? I guess so. And in C I'm quite sure constants don't realy exist, just literals, so there is some error going on here I'm not able to discern, did I forget my ansi stuff?

I got it fixed by simply doing my own array math, as I grew accustomed to while mastering my first (cpm 68000 based) atari st c compiler (on floppy even at first), and simply claiming a one dimensional large enough array, and that did solve the problem (Nice touch guys, the 'banking' option, reminds me of my old renault 5, except it should have it on forward direction, too). In general, the whole idea of arrays of arrays when implemented as such is either inefficient as in storage space, though possibly not in execution speed, or unreliable, because of the contingency assumption of the blocks in it, though I think most official compilers guarantee that initially multiple dimension arrays have no spaces between the segment, so the possible additional intermedeate pointers are just extra storage, but not in between data, or, most logically, completely virtual, as an addressing scheme. I didn't try declaring string[x][y], that might do the trick, too.