Loading

Software Development

Loading

Software

I have managed a software development team of about 6 people for about 5 years programming in C++ and Java. I have also programmed myself in;

Loading

C   8 Years

The majority of my C was written for my company Nexus Alpha Ltd's product in relation to travel information systems.

See Industrial Design for more information on these products.

Loading

C++   6 months

Using C++ I wrote a web server serving HTML pages on the internet.

The package was about 6 months work and used C++ STLs and other advanced features. I wrote the underlying database and generated the HTML in C++.

I implemented basic time tracking and planning but this has now been re-written in Ada (see next panel).

"Time Dynamics... Projects that deliver on-time and to requirements aren't anomalies. They, too, deal with shifting priorities and resource swaps. What sets them apart from late projects is the ability to foresee problems and prevent major disasters. Much of this battle is won through effective planning and scheduling. ...time is our business."

Loading

Ada   3 months

Using Ada I rewrote a web server and the database program that I had previously written in C++. It now serves about 10 websites of which 2 generating page content on the fly. One of the active websites is Time Dynamics Ltd a major web-based time-management tool.

Today 20th June 2022 I have 1672 hours of Ada programming experience started on 20th February 2020. The code is far more compact than Apachi and SQL based system.

Take a look at AdaWorks.it for yourself, also served from my Ada web-server. Adaworks was created in my spare time to support others entry into Ada programming.

Loading

VHDL   3 months

I Programmed the Xilinx FPGA on a Papilio which is the red PCB at the top left of the picture, so as to frame store the image from the camara on the blue PCB mounted on the red PCB and then generate a VGA compatible output for this rather old LCD monitor.

Java   1 month

In Java I wrote stream parsing code and documented it according to my specification standards. See the Java Docs Click on "InputStreamParser" in order to see the documentation. This took about three weeks to write of which half the time was documentation.

For parsing input streams and feeding the results into output streams, arrays or strings.

"If you have an input stream and need to process the bytes coming in then this class provides the support you need. This class is ideal for extracting data from an input stream. The extracted data can be provided in byte arrays or or fed to any output stream or provided as strings. It can be used simply to extract bytes between two given delemiters, read simple record formats or it can serve to interpret far more complex syntaxes."

Arm Assembler   3 month

I wrote the beginnings of an Optical Mark Reading system in Arm Assembler.

I decided that since one of my prime interests was computer recognition I should start by recognising a tick in a box to mark surveys and the like. I started work on an automatic questionnaire marking system. I stripped down a photocopier and built new electronics to drive the sheet feeder from my computer. A normal video camera scanned an A4 page in two frames and I managed to get the system to recognise a single Biro point in a 3mm box. Most systems at the time involved thick lines in soft pencil. All this was written in Arm Assembler on the then new Archimedes computer.

I did not complete this as work came through from the railways to create the display, the IDU. See Industrial Design.

Loading

68000 Assembler   6 months

I designed and constructed an electronic board for analogue to digital and digital to analogue conversion for use with the Atari 1040st and BBC micro. Plus controlling programs in 68000 and 6502 assembly language. The board was created by plotting using an etch resist pen directly onto the copper its self.

Loading

6502 Assembler   3 years

CAD program to simulate electronic on BBC Micro written in 6502 assembly language to emulate up to 64 freely laid out and wired electronic logic gates at high speed. The gate propagation time was 125ms. Runs in 12Kb!

More about my 6502 programming and design work appears below.

More 6502

Loading

BBC Education

The majority of my BBC Micro work was for BBC Radio Schools. When looking at these images it's worth remembering that I had 4 colours and a screen resolution of 320 x 256, this used 20 Kilobytes of ram leaving 12 Kilobytes to write the program. There was generally 100 kilobytes of floppy disk storage and that was it. So I wrote almost everything in 6502 assembly language and pushed the system to its absolute limits.

Loading

December 1985 Program development and design for part of a mixed media pack involving TV, Radio and software; entitled "Technology and Design". I was responsible for four programs in this pack to teach about Pneumatics, Electronic systems, Motors and Levers. I used a theatre as a means of teaching electronics as a way of hopefully appealing to both sexes.

Loading

In the best of these programs children can build electronic circuits and watch how the circuits control special effects in an on screen theatre. For this I had to write 6502 assembly language to emulate up to 64 electronic logic gates at high speed. The gate propagation time was 125ms. There was 3 bytes of un-used memory when this ran. (This was BBC Education financed by The Gatsby Foundation)

Loading

This was a very short animation project done on a BBC Micro. The sequence starts with a title frame and then the clear mountain is shown. The star becomes gradually brighter and as it reaches its brightest point a halo bursts out and its tiny flames move like blue fire. Then a lightning bolt strikes the mountain from the star and a host of tiny stars grow up to form the castle.

Loading

September 1984 Programming for "Computers at Work" a training pack about computers; how they work and are used. This involved creating 3-d wire frame real-time graphics from scratch, in 6502 assembly language. This was for BBC Education financed by The Micro Education Programme.