Today I finished the last feature I liked to have in the visualFORTH Beta-Version,
it is the automatic generation of a Button-Array.
As you can see from my Profile, I was embedded microprocessor system developer my whole engineering life. That's why a button array is so important to me.
My first big microprocessor project was a keyboard with 250 illuminated keys,
each lamp was switched by an TRIAC, and each key was wired separately, because the customer liked to have it this way for maintenance (later I convinced other customers that a matrix wiring works as well and saves a lot of cabling). At that time a whole 19" Rack with one microprocessor board, 11 pcb's with 24 TRIAC's each, and 5 boards with 50 digital inputs each, all Euro-Format 4" x 6". There have been another boards, one with TTL-PROMs to store the program (I did not like MOS memories, because they needed three different voltages at that time), a decoder board to control the 16 interface boards, one board with a little CMOS memory, and one time- and date-board, using some CMOS-counters to be able to have the right time after a power outage.
This was really tricky. A 32kHz quartz crystal oscillator controlled the time, the frequency was divided to get minute-pulses, and these minute-pulses went into a counter. The second part of this timer-unit read the counter until it was empty, so when power came back, the time was running very fast until the current time was there again - some electro-mechanical master clock systems did the same.
The microprocessor did not only recognize the pressing of a key, storing that information, switching the TRIAC's at zero-crossing, but there was also a printer for documentation and a remote keypad connected with a proprietary serial interface. In theory I did know, that, using a Round Robin for Multitasking, everything will work simultaneously, but when we had a first test, I was totally surprised, that it really worked as intended. With this project I learned structural and incremental programming, because the only storage I had for my program was a tape recorder. So I had to write a little part of the program, test if it works, burn it into the bipolar PROM, and do the next programming step. Making a mistake would have been fatal, because there was no insert or copy/paste! This way I learned to program very careful und structured, and I used flowcharts for planning.
As I mentioned, it was my first big project.
This was the beginning of the microprocessor era. Later we used video-boards and Monitors, and I wrote my own database system, everything in assembler, until I got my RSC-Forth from Rockwell.
Nowadays, with GUI's, the keypad is on the screen, and instead of a real button a mouse is used to click or push the button. In former times manufacturing of a keyboard was a lot of work, with each illuminated key separately mounted.
What is the computer and the software good for? It should make our lives easier.
So I decided that a keypad-generator, or let us say a feature to generate an array of pushbuttons with a minimum of mouse clicks, is a must for visualFORTH's Beta-Version, coming soon.
I just did some research and read in a tutorial for the standard GUI-programming language "Now copy and paste this button 12 times" - with visualFORTH it is much easier:
Open the Properties Popup with a right mouse click, set the intended number of rows and columns, click on the PushButton symbol (or RadioButton or CheckButton or BitmapButton or any of these objects), click on the area where you like to have the array of objects, use the mouse to draw a frame which sets the array area, and click on "To Box" on the Properties Popup - and there they are, your buttons, well aligned in rows and columns as intended.
If you are missing features on your GUI-software, please let me know. I will do my best to add it to visualFORTH.