A blast from the past
Recently I had been unpacking some boxes of older and more obscure belongings that I never felt the need to unpack, I have moved house twice since 2004 and these boxes have only just been unsealed! Whilst looking through the contents, I found some old 3.5” floppy disks and low density ones at that – wow! One of those disks turned out to contain the code for something called “SM~ART”, which made me feel very nostalgic; although for the life of me I cant remember what the acronym stands for!
SM~ART was quite possibly the first serious project that I ever undertook in software. It was 1997 and I was 16 years old and in the final year of my GSCE studies at school. Since as long as I can remember I have always had an interest in electronics, which unfortunately (for my family) as a kid meant me taking things apart (sometimes they also went back together again). With the first family computer an Amstrad PC3286 I became equally as interested in computers. Anyway, I digress, I had been studying GCSE Electronics and with my final year project approaching I decided I should undertake something to get top points and really show everyone that I meant business.
Hardware
With the help of the book “Interfacing PCs and Compatibles” by R.A. Penfold, I embarked on a seriously ambitious project to design a 16-Bit ISA bus card for the PC for data acquisition. The card basically just extended the bus to a socket which was then connected to the data acquisition hardware in an external housing. The ISA bus card had a hard wired address decoder built out of 74LS* TTL logic chips, and the acquisition hardware consisted of an Intel 8225A general purpose I/O chip, and a couple of 8-bit analogue to digital converters; this allowed a configuration of either three 8-bit parallel ports or one 8-bit parallel port and 2 analogue ports. I will publish the schematics if I ever find them.
Software
So I had the hardware, but that would of been useless without some software to operate it – so I developed SM~ART. SM~ART was written in Microsoft QBasic 4.5 on our 286 PC at home. I think I probably chose QBasic at the time because it was just enough to get the job done, I had a couple years hobby QBasic experience and QBasic provided the INP and OUT statements which enabled me to read or write directly to a specific hardware address – in this case my data acquisition hardware.
SM~ART consisted of a very simple graphical interface with a number of screens - Console (for communicating with the hardware), Change Settings (various settings for communicating with the hardware), Change Colours (change the screen colours of the SM~ART interface). All of the settings were persistable to disk and I think it was also possible for it to create log files of data received from the hardware, or for it to accept a file of commands to execute against the hardware.
Conclusions
Well I submitted both the hardware and the software which were graded pretty high. Unfortunately it was never possible to test the two working together, no one had a PC they were willing to risk me destroying with potentially faulty hardware, so that counted against my grade a little.
I had a look through the QBasic source code for SM~ART and I have to say that I am pretty impressed. Whilst its 'basic', it actually seems pretty clean, there are some comments (could probably use more) and its logically organised; I have to say I am quite happy with my yesteryear coding skills :-)
Source code is available here if anyone is interested - SMART.zip
Adam Retter posted on Wednesday, 22nd April 2009 at 12.30 (GMT+01:00)
Updated: Wednesday, 22nd 2009 at April 12.30 (GMT+01:00)
Comments (1)
Posted by dodo on Sunday, 14th August 2011 at 06.48 (GMT+01:00)