My first experiences with computers were typing things in from manuals when I was six years old. I have a six-year-old now and I don't know how I can give him the same experience that I had.
Our current attempt is using LEGO Mindstorms - he's become such an adept builder over the last few years that he can put together pretty complex robots from instructions without any help. I hope that he can now make the leap to modifying these creations and hacking his own from scratch. No idea if this will give him the same rich experience of creation that I had as a youngster, but I hope so.
Try the arduino. I have a 7 year old niece who types in arduino programs without trouble. She even plugs in the different components (with assistance) into the breadboard.
Whatever you do, don't think they can't do it. You would be surprised.
I, too, fondly remember reading Compute! and Compute's Gazette from cover to cover each month when I was a kid, along with long sessions of typing in programs from the magazine into my C=64.
I remember talking to some adults about Assembly programming, and they were dumping on my beloved 6510, seemingly surprised anyone could get anything done with only three registers (A, X, & Y). They were 8086 guys, of course. All I ever knew at the time was three registers, it never occurred to me other chips had more. You make do with what you have :)
I'm under 30, and I'm probably one of the last programmers who learned assembly language with DOS Debug's 16-bit assembly.
Each register has its own personality: BX is the base, CX is the count, AX is the accumulator, SI and DI are source/destination indices, BP is the stack pointer.
If you have a pointer, you want to put it in SI, DI, or BX so you can use a memory load instruction like MOV AX,[BX]. If you have a pointer and an offset, you want one of them to be in BX, and the other in either SI or DI -- because there are instructions MOV AX,[BX+SI] and MOV AX,[BX+DI], but not MOV AX,[SI+DI].
The x86 16-bit instruction set is full of places where your operands have to be in certain registers. The REP MOVSB instruction requires five registers to be initialized; you don't have any choice of which five.
Kids these days and their RISC machines where there are a hundred registers and they're all the same -- they don't even have names, just numbers. Get off my lawn!
(Yes, I'm aware that your software can be much more efficient with more registers, it's a good investment of increased silicon capacity Moore's law has given us since then, there are fewer compiler writers wandering around who have been driven insane, etc...but the point is, the constraint satisfaction process that's part of writing a 16-bit program is rather fun for the programmer, like Sudoku.)
56 opcodes, plus a few undocumented ones; I think there was a TXY and a TYX on the 6510, for example, which I probably found in one of those Compute magazines. Assembler was a lot of fun on the C64. Let's not forget all that self-modifying assembler. That's how EA, and others, use to copy protect their games. :-)
Is anyone still doing any assembler for any kind of work these days?
The Internet Archive has put up a number of issues of Creative Computing (http://archive.org/search.php?query=collection%3Acreativecom...) but it looks like the first 2 years aren't there. If you'd consider sending them to the Internet Archive I strongly suspect they'd scan and host them.
Oh, the Internet Archive will absolutely scan, host if or when possible and preserve the original content.
Speaking of the Internet Archive, their fundraiser which is matching every donation times three is still active - but soon over: Consider helping them out if you can and like: http://archive.org/donate/
I remember typing pages of numbers... only to find the only program I'm aware of that doesn't work on a C128 in C64 mode. :( (I think it was a disk copier, I forget the name)
They've apparently even got the first 16 years of Byte.
Google also has the complete archive of InfoWorld up to 2007 posted: http://books.google.com/books/serial/tDcEAAAAMBAJ (though you'll have to manually change the "start" parameter in the URL to browse before 1987).
14 comments
[ 3.7 ms ] story [ 48.8 ms ] threadOur current attempt is using LEGO Mindstorms - he's become such an adept builder over the last few years that he can put together pretty complex robots from instructions without any help. I hope that he can now make the leap to modifying these creations and hacking his own from scratch. No idea if this will give him the same rich experience of creation that I had as a youngster, but I hope so.
Also, see a wonderful Ars story on this:
http://arstechnica.com/staff/2012/12/first-encounter-compute...
When Compute/Compute's Gazette came out with MLX I turned my attention to how to control a computer at the very basic levels.
Glad to see the archive is alive and available for free. What should I do with all my old copies now? :)
I remember talking to some adults about Assembly programming, and they were dumping on my beloved 6510, seemingly surprised anyone could get anything done with only three registers (A, X, & Y). They were 8086 guys, of course. All I ever knew at the time was three registers, it never occurred to me other chips had more. You make do with what you have :)
Each register has its own personality: BX is the base, CX is the count, AX is the accumulator, SI and DI are source/destination indices, BP is the stack pointer.
If you have a pointer, you want to put it in SI, DI, or BX so you can use a memory load instruction like MOV AX,[BX]. If you have a pointer and an offset, you want one of them to be in BX, and the other in either SI or DI -- because there are instructions MOV AX,[BX+SI] and MOV AX,[BX+DI], but not MOV AX,[SI+DI].
The x86 16-bit instruction set is full of places where your operands have to be in certain registers. The REP MOVSB instruction requires five registers to be initialized; you don't have any choice of which five.
Kids these days and their RISC machines where there are a hundred registers and they're all the same -- they don't even have names, just numbers. Get off my lawn!
(Yes, I'm aware that your software can be much more efficient with more registers, it's a good investment of increased silicon capacity Moore's law has given us since then, there are fewer compiler writers wandering around who have been driven insane, etc...but the point is, the constraint satisfaction process that's part of writing a 16-bit program is rather fun for the programmer, like Sudoku.)
Is anyone still doing any assembler for any kind of work these days?
I think copyrights ought to expire after 20 years.
re: copyright expiration - Absolutely.
Speaking of the Internet Archive, their fundraiser which is matching every donation times three is still active - but soon over: Consider helping them out if you can and like: http://archive.org/donate/
http://archive.org/stream/1985-03-compute-magazine/Compute_I...
They've apparently even got the first 16 years of Byte.
Google also has the complete archive of InfoWorld up to 2007 posted: http://books.google.com/books/serial/tDcEAAAAMBAJ (though you'll have to manually change the "start" parameter in the URL to browse before 1987).
http://telparia.com/CommodoreMagazineCovers.jpg
I then wrote some more code to try and find the most colorful game ads from the pages and came up with these wallpapers:
http://telparia.com/Commodore_Game_Ads_1.jpg
http://telparia.com/Commodore_Game_Ads_2.jpg
http://telparia.com/Commodore_Game_Ads_3.jpg
http://telparia.com/Commodore_Game_Ads_4.jpg
http://telparia.com/Commodore_Game_Ads_5.jpg
Just thought I would share :)