What a wonderful "IDE"...
Something earlier reminded me of this...
For the most part I'm self-taught, and started this off as a kid with my old C64 writing games and stuff. Nothing special, but I soon ran into the limitations of BASIC and just before giving up, found out about machine code through some of the "type in and run" cheat programs and a half page article in a magazine on assembly.
So after a few weeks working away, what was the end result of my labour? Something like this...
10 FOR A = x to y
11 READ B
12 POKE A,B
14 SYS x
20 DATA 255, 13, 128, 23, 45, 68, 15, 87, 192, 16
21 DATA 45, 67, 0, 18, 95, 67, 33, 176, 152, 145
500 DATA 36, 12, 67
For those not knowing the wonders of C64 BASIC, the above loops through from values x to y, reads an item from the enormous list (hundreds/thousands of lines) of DATA one at a time, and puts that value into the specified memory location, then moves onto the next memory location. The SYS then runs the program at memory location x.
My "IDE" was a few dozen sheets of paper with nothing but lines and lines of 8 bit decimals! Compiling involved saving to tape for a few minutes (since the limited 64K of RAM combined with the ultra bloated way of storing the program meant that the program overwrote itself as it went along) and running, noting the result, reloading from tape for a few minutes, and carrying on.
Want to insert a few commands somewhere? You have to either then go through your "program" and redo all of your branches (e.g. 56,128,45 would have to change to 56,128,47 if you inserted two bytes before it where 56 is JMP and 128+45 is the high and low byte of the address to jump to) or goto out to some new code at the end, run it, and goto back to where you were. Removing instructions left big holes in your code unless you did likewise. Invariably these holes were filled with new code that needed to go elsewhere, and you just goto'd around it.
Still, it did run fast!
In my defence though, I was only about 11, and working with no documentation.... I just wish I still had some of those old tapes and a working C64 around, just to see the full horror of what I made.
Still better than the way such programs were written on the ZX81(my first computer)
Because of the limited memory, the program looked like that:
10 REM 1& THEN !"5 GOTO 2?-ZLB... (a very very long line of weird characters, mixed with keywords)
20 RAND USR 16514
The REM statement in line 10 contained the machine program (binary code translated to whatever it looks like in the character coding; keywords also had their binary code); at some positions, POKEs were necessary to fill the bytes with a binary value which has no enterable translation.
There were definite advantages to starting with BBC BASIC. Like a built-in assembler.
There were definite advantages to starting with BBC BASIC. Like a built-in assembler.Ooh that would have been nice.