Go Back Programming  Go to Contents

How I started...

  People say that the days of lone programmers learning computing in there bedroom and then taking on 'Big Business' are over. Fortunately those people are the very same ones who work for the Big Businesses and so what they say is more than a little biased.

  There can be few businesses where the tools of the trade are so easy to gain access too and where the knowledge required is so cheap, cheap in the sense of Internet access or even cheaper in the sense of learning it yourself, by trial and error. Here's how I learnt to program:
The ZX81 microcomputer
  My brother Nigel bought into the micro computer revolution with a Sinclair ZX81. Now, if the truth be told, we couldn't afford to buy many games etc for it, and indeed the games which were available were total crap. This meant that, if you were to spend any time on the thing, you were going to have to learn how to program something yourself. (Incidentally, in the end my brother came up with the best game I ever saw on the ZX81,a space invaders clone, and heck, it played like it was running on a P200)

  Soon enough it became clear, that there was something about computers in general which was addictive and something (for us at least) about programming, which was very addictive. I mean, programming takes a very long time, requires a great deal of concentration, thought and creativity, and yet thousands of people code into the night... by choice! Something must be dragging them onward.

Our old ZX Spectrum   My brother then upgraded to a Sinclair Spectrum, (Our filthy, battered, and oh-so-tired Spectrum is pictured left - it still works). This computer for me, represents the pinnacle of achievement for the true micro computer, a computer so small and cheap and yet so versatile, and yes, powerful, that by the end of its life, it had been pushed farther than, I think, any computer has been. Hopefully the PC will continue to be pushed, but it can never achieve the same level, since it relies on upgrades every 6 months. The Spectrum was never really upgraded (The Amstrad version was not the same creature at all) and yet was pushed to amazing levels, the last spectrum program I ever loaded, played a digitised tune at me! What? How? Now that was M/C coding for you.

  Anyhow, it was at this stage that I went to my brother with a paper and pencil and asked him to describe how ARRAYS worked for me. Now this was a crucial time for me, since a) I was actually wanting to do something suspiciously like work during my free time, and b) I realised that they were in fact simple enough for me not to worry when programming them.

  There was a gap of years, between then and when I used to use the computers at school. When it finally dawned on me that I was spending all of my free time in school coding, it seemed that I should get a PC.

  Once on the PC I programmed in BASIC again, and soon ended up learning about the really nasty mess which is the inside of the PC.

  Then came Machine Code. I have always worked on the principal that I should only learn things when it becomes absolutely necessary, and this was no exception. I was writing an editor for a BASIC program and became frustrated at the speed of the scroll down function. It had to reprint the entire screen, using BASIC print statements... slow. So I was moved to write a tiny M/C program, using a book, which turned out to be little more than a copy of a technical document from Intel, which listed the 8086 instruction set. (I thought it was going to teach me how to Machine Code program!) So, I wrote my first Machine Code program, and here it is!


sdowndat: 'Machine Code data for scroll-down routine'.


DATA &H1E,&HB8,&H00,&HB8,&H8E,&HD8,&HB9,&HFF

&H0E,&H89,&HCE,&H83,&HEE,&H01


DATA &H8A,&H04,&H81,&HC6,&HA0,&H00,&H88,&H04

&H49,&H75,&Hf0,&h1f,&hca,&h02,&h00


Yes, I know its in Hexadecimal not Assembly Language, that why I refer to learning Machine Code..



  Once I realised the speed of this program, and how M/C was nowhere near as difficult, or tedious as people had told me, I was hooked. Having written an Assembler (in BASIC!) I was off.

  I learned 'C' and programmed with it for a while, but, lets face it, once you have grasped the nettle, of machine code, there is really no point in coding in 'C' ;). So I then began to forget everything I learnt about it. (Hopefully its all gone by now, otherwise it is taking up valuable system resources!).

  That's the story, the only thing left to say was that a few years later, BASIC came back, to help me with quick non-release code needed to create data for the Machine Code programs.

  

  A page from James David Chapman's website.
  Located at: http://www.users.globalnet.co.uk/~jchap/
  
Site mirrored here at: http://www.j.chap.btinternet.co.uk
Go back to the last page you viewed. Go to previous page on this website. Go on to the next page in this sub site. Go to the main contents list. Go to the help page. Please send me *your* home page address!. Go to the web form to simply and quickly send me your comments.
  This page last updated:
  
My rating for the page: How happy I am with this page...