I've now posted a full explanation of the BASIC and machine language code, and even fixed a bug, in this video on my main channel: ua-cam.com/video/kumqDIgo_X8/v-deo.html
I still have memories of spending hours typing in listings from magazines, then run it and have it crash and reset and everything is gone because I forgot to save before running.
The issue I faced is typing in programs which were written for non-commodore, non-Vic20 programs... that sucked. I only ever typed one program in fully. If I recall correctly, it was from Mad Magazine. It didn't work at the end, and I had no way to save when I was told to turn the computer off. Bummer.
My mom and I would “pair program” on anything but the shortest of listings. She’s type in a few dozen lines while I read the program and double-checked, then we’d switch. Sometimes it would take several two hour sessions across a few days for the really long ones.
I thought this was super cool! I’d love to see you do more of these as I used to type in games from magazines as well and they almost never worked the first time
I heard sometimes there were typographical errors within the code and that you'd either have to figure out how to fix it yourself or hope that the next issue had it listed as part of an erratum. This era of computing was before my time but that sounds downright irritating!
My father and I did the same back in the day. And yup...one mistake and we had to go back line by line checking for mistakes. So awesome when we got it right! :)
I can’t count all the hours I spent with an issue of COMPUTE! And typing in programs, then going back to find errors and fix them. About 10 years ago I was able to purchase a collection of all the Compute magazines and add them to my collection of 80’s computer life.
Ah yes, I remember doing this in the 80s. I loved it when they came out with the programs that used the checksum for each line. Also probably related, my poor mom had to wait until I was almost 40 to get her first grandchild. :(
Certainly do things like this.. This is such a trip down memory lane.. I guess me and my school friend had a 10-20% success rate when we were typing in listings from magazines...
Since my early years in programming, I've found that I can never type the phrase "go to" without leaving that space out. Like, "I'll goto the store". It just looks so foreign if I add the space between the words "go" and "to". --- Super cool watching you type in a miniature program in real time. :) My Uncle gifted me his old Atari Mega ST and his hundreds of Atari magazines, with tons of code spread across them all. It was great fun to type them all in and watch something start to take shape.
I used to type in so many programs from Byte, InCider, and David Ahl's books. Of course, I was almost invariably disappointed, but it didn't stop me. Sometimes I enjoyed the inevitable debugging more than the ultimate result. To make the typing go a little faster, I would ask my mom to read the listings to me so I could keep my hands and eyes on the computer..
I actually liked the video. I'm flooded with memories of being a little kid having a Texas Instruments TI99/ 4A. I remember getting magazines with programs in "TI Basic" and trying to program games. Phone modems were new. The movies Tron and War Games were awesome. It was a magical time as a kid. We saw limitless possibilities!
Ha! That extra byte on line 1040 is brutal! Somehow watching you type in code while I do my own computer work makes me feel more productive overall. :D I appreciate your true hardware (and true paper) approach. For the rest of us, when I have to enter printed BASIC code, I use Capture2Text (windows app) that OCRs anything you draw a bounding box around on the screen, then I literally just paste that into an active VICE window, and watch the lines get quickly entered one at a time.
"I used to do this all time time in the 80s." - me too! I recall back to 1987, when I typed in a program from the C64 manual. When typing the DATA-commands followed by a sequence of integers (basically creating a vector) I mistyped some of the numbers and a broken balloon flew over the screen. Thanks for sharing!
I learned and became pretty proficient at coding C-64 BASIC by not only typing in listings from Compute magazine, but I would pick apart the code as I was typing it in. I would make alterations to the code; simple graphics changes at first but eventually I would analyze the logic and program flow and try to optimize the code. While Compute magazine's mission was to present listings for all available platforms in the mid to late 80s, Compute's Gazette was all about the C-64 and would break down various sections of the code to help understand what the program was doing. I wrote my own *wedge program for entering in DATA numbers that switched the keyboard into a number pad under the right hand.* The little finger would enter the comma and [ENTER] key, and automatically type in the next line number and the word "DATA" . [SPACE] was '0' and entered with the thumb. Once you established muscle memory for the number pad entry, you could enter the data without looking away from the listing which reduced the chance of typing errors by 98%. The biggest problem then became "fat finger" mistakes.
This brings back memories of typing in programs into the Apple to back in junior high and high school for me. I would sit in classes and write code in my notebooks while the teacher thought I was doing homework or what not and I couldn’t wait to get to the computer lab to type in what I thought up. Of course we also looked at the magazines and books and transpose them from there also. Great video thank you sir.
Just want to say that David Crane is THE MAN! He wrote games for numerous systems back in the day. Most impressed with what he was able to accomplish with the Atari 2600 (with only 128 bytes, yes bytes, of RAM and 4k of storage).
I love typing in programs...it's the anticipation of what game or program you'll get. One of my worst debugging sessions was when the checksum was dead on, and I had two errors. It turned out after a lot of searching and more searching I had swapped an 8 and a 0 on the same line. The program I still use now 5 years after typing it in, it is 'fasttape' from the book, 'The cassette book for the commodore 64' by Databecker. Makes the tape drive faster than disk. That's no false claim either. It can save 80 blocks in around 5-7 seconds. Well worth typing in. At first it was a basic loader that poked the program in from basic memory data statements like this program. Eventually i saved it from a monitor to tape so it would load a lot faster. I finally made a basic program with a machine language program loader for it that was even easier and moved the program up to C000 so you can just load and run it instead of typing SYS49152 after loading. It loaded the command with the machine language written after basic's start of variables. When it runs, it just copies the entire program stored in low memory up to C000 and then jumps into it. It was my first self written machine language program! I know it's only a loader...but it worked the first try so there!
When I was a kid my dad used to help me type in those massive data sets you get when typing in basic programs. Hex dumps on the spectrum were even worse, I remember in issue of Your Sinclair, there was a program called INFOLOAD, and it would show you the data what the game was loading, but visually on the screen. kinda like the way a c64 game loader screen looked. there was a small program you had to type in first which was the loader for the hex dump, then the hex data part which was over 200 lines long, its was either 8 or 16 bytes of hex codes you had to type in and it had a checksum on every line. like.. 00 00 00 00 00 00 00 00 = 03e8 or something like that. A ruler or a bit of paper was mandatory lol. Great video Robin would love to see more. :D
I just wanted to note about checksum programs but then you did in the video. Of course to get those checksum programs we typed them in, too. As everybody I typed in a couple of programs or games back then. Type in listings typically were present in nearly each computer magazine, and I clearly remember magazines consisting of only type in listings - compare this to nowadays haha. This episode was fun, yes please "load" another game the _really_ oldschool way ;)
I’d love to see a video that starts with the graph paper rendering for these sprites, then maps that to a machine language rendering, then maps that to this inline asm. I think that end-to-end would be a great tutorial for my 5 year old daughter, for instance. Then the viewer have a mental model of going from art -> playable game. It would also be nice if you added little “unit test” lines so you can run the program at various points in the typing and verify the previous N lines didn’t have obvious mistakes. Wouldn’t help for tons of DATA lines, but for actual BASIC logic and variable assignment, it would make this more digestible/debuggable. I wish Compute magazine had given us that back in the day! Love the channel, keep up the good work! :)
Actually this is pretty therapeutic to watch. There are some old books on Amazon (for a few bucks) that have tons of old type in programs from those old C64 magazines back in the day. How about typing in some of those and maybe trying to improve them (i.e. Use some of your speed up tricks to make them run faster or better), especially for the pure BASIC ones. Could be a fun and interesting learning experience for all of us!
Ahhhh the hideous "Out of Data" error. I must have received thousands in my young programming days. Lots of memories (not all of them good! lol), but overall it takes me back to a happy moment in my childhood. Thanks for sharing. Greetings from Argentina.
The best one of these was allowing the C64 to use 80 characters instead of 40. That made all the difference in the world when accessing my college’s DEC machine with my 300 baud modem. I did a lot of this at two in the morning after closing the pizza parlor where I worked. I still procrastinate...(Shout out to David Crane)
I didn't watch the whole video (hope to get back to it) but I enjoyed what I saw. It's a nice way of seeing the programme getting typed in but not so lonely because there's a whole community watching along at the same time. A nice meeting of the old and the new.
I remember checking the alignment of the last digit on each line as a simple check point to be sure to have the correct number of data. Of course, it doesn't cover many cases, but it was a simple visual check. I wished to have a buddy like you to teach me assembler at that time. No internet and not a lot of books in my language to progress that far. I got stuck with basic.
Alignment: Especially with long PRINT statements. Double especially when they used several spaces or cursor codes to place the text being printed. At least some publishers (COMPUTE!) were nice enough to use shorthand like {10 SPACES} or {12 DOWN}.
@@WY.C64-Guy Oh ya me too. I hated when listings in books had scores of screen control symbols and spaces. The worst by far being 'Using the Commodore 64 in the Home'. There is a game called 'Pirates!' which looks really fun. Problem is that almost the entire game is done that way and the print is tiny. The only possible way to figure out how many spaces is by reference of other lines. What is worse is that you have 13 spaces on top of 23 spaces etc. So you might have to trace up 10 lines to get any reference at all. After the second map I took a break and never got back to it. I don't even know where the disk is now.
I don't know why, but that was so much fun to watch! All those pokes for sprite were coming back to me as you were typing them. I had such a big smile of familiarity the whole time I was watching! Thank you so much
I enjoyed this video, it brought back memories of typing in programs from Ahoy and Gazette nearly 40 years ago. One of the best ones I typed in was a hex entry tool that made entering machine code so easy.
I was skeptical that I would enjoy this, but it sure brought back memories. too bad you didnt hear me yell about that missing 0 in 1040 :D I really do think they should bring back that sort of zine too. I would subscribe for the nostalgia alone.
I remember impatiently waiting each month for Compute and later Computes Gazette magazines to show up at Hastings book and record store. It wasnt uncommon for me to call in sick at work so I could read every article, examine every ad, and begin typing in the programs. Many many hours typing in programs that invariably wouldn't work correctly or at all. Far to often in would be an error in the listing and you would then have to wait and read the next months errata page! As I began to learn basic I was able to figure out some of the errors on my own.
I miss those UNBELIEVABLY EXPANSIVE import magazines as a kid too. I remember on one there was the full code to run Super Maria, probably Giana before Giana, I don't know. I don't even remeber which system was that code for. C64, Zx, Msx. Can't tell. Was it on Zap? This is HERO content. I admire you, TY!
Ooo! Looking for typos in DATA statements were hard! The 64 still amaze me. A sprite moving while basic runs is interesting too. I typed in an azimut program with machine code in data statements when i only had a tape drive in 2015 for one of my first videos. It worked 🙂
you need a ruler to mark under the current line to type. We had a cool stand with a clear ruler attached at school, for typists i think. really useful for typing in your homework.
I'm so excited to see this pamphlet! Years ago I read about it in a small magazine blurb (I want to say Commodore Power/Play or Commodore Magazine, but I'm not sure). Having forgot where I read it, I could never find it again. Thank you so much! I also typed in listings from magazines, and was amazed you could read it off a stand.I did too, but needed to put a piece of paper under the current line because it was so easy for my eyes to jump around. It was a painful process, but I don't regret it.
Hey! I was viewer number 64. I think that has to count for a prize or something. Maybe it is the universe's way of telling me it's time to play a C64 game?
I somehow convinced my sister back in the day, to hand over £5 in exchange for a computer lesson. Lesson one, readout the data statements from a magazine. It took all Sunday. 😂
14:00 I noticed a typo, line 1040 isn’t identical like you said it was. You missed a ,0 I realize there may be a reason why it doesn’t matter but now I’m on the edge of my seat to see if it matters in someway :) this is awesome. personally I would LOVE to see more like this. I was watching with rapt attention and so many memories came up. For me this was one of the most engaging video I’ve seen on UA-cam. Thank you!
Ahhh... I was like 10 years old when I used to do the same. I remind I programmed a sort of pinball with a ball just bouncing around. Good old times...
Ah writing games from magazines, those were the days. I wonder if any other magazine used the "checksummer" app. It was a really tiny app you would first write and run and it then would give out checksum for each basic line you wrote. Was were handy to check for typos as the magazine printed the checksum number for each line in their printouts.
0:20 People might be disappointed picking up an Activision game and getting whatever can be done in a short BASIC program. Not to mention the typing mistakes that most people would never figure out. (Assuming the listing is correct in the first place.) 1:30 On the plus side, we're getting two-handed action today! 1:40 Would an OCR scanner read the program listing accurately? 2:21 Unlike on the VIC-20, you don't have to put your ML routines into the cassette buffer. 5:00 I spell a lot of words the American way. "Color" doesn't make an "ooo" sound like "ou" should. 5:17 Are expressions like «V+21» actually faster than «53269»? Maybe it's less error-prone. 7:20 He could use some cursor controls, though I his printer can't print them. 9:15 That is pretty strange, to POKE the same value into the same location 200 times in a row with a few milliseconds between each POKE. I guess that's a variable in the interrupt routine, though this POKE will be reasserted much more frequently than the interrupt runs. 9:55 Who uses STOP instead of END? What a nerd! 12:50 Might be better to have put a multiple of 3 numbers in each DATA statement. 13:14 Ha - you just torched line 120! At lest you have the listing right in front of you. 20:36 It would probably go faster with two people, one doing the typing and the other reading the program aloud and verifying what's entered. 24:40 ?S-8192 25:03 It wouldn't be in the machine language, because that has a sentinel value of 999. The READing failed in the sprite graphics. Not that the ML couldn't use a second verification. 30:33 I thought it would be tedious, but it gives us both the opportunity to analyze the program.
That takes me so far back! I remember spending hours doing this, only to type RUN & get the same errors as you lol! It always gave me such a sense of achievement though, when I finally got it up & running. Would love to have taken it further & designed games of my own.
My national library used to have a selection of Commodore C64 books in Computer section. They got pretty a lot type-in programme in it and I borrowed it many times. Recently when the library shifted, all that's book are gone. Maybe the librarian now the Commodore computer are already obsolete and nobody care about it anymore and they take it out off the shelf. What a pity😔
What a coincidence, I just spent my morning typing in an old sprite collision program from the purple Phil Cornes books and then tweaking and extending it. Teaching my 7yo son to code, figured C64 is a good place to start. Before I show him how easy Python and whatnot make everything these days, I want him to understand the concept of designing sprites on paper, using registers, thinking about how memory and the stack actually work, etc. He was whinging about having to type in all the numbers, but once we got it working, he thought it was really cool. More of these videos would be great.
My brother or my friend would help me enter the programs back in the day. I ended up getting a numeric keypad for my Atari 800 for those data statements.
@@8-bitshowandtell247 Unfortunately it does not. But I used my left hand for the comma and my right hand to type the numbers. It actually went pretty quick for me.
This is really fun to watch. Especially when I lost my own type-in to a non @OVERWRITE thing I didn't even know about as a newb. To get the ML version, we'd look at where the stuff is poked in AFTER basic runs, then disassemble that to see it as ML like normal, correct? You probably answer this in your video but I'm impatient. Thanks Robin :)
Line 700: the original source uses a double hyphen there. Obviously it doesn’t affect execution, but if the goal is to replicate the printed listing exactly... I’m trying to find treatment for seeing stuff like that, but so far no luck. 8-) Great video, thanks for sharing this!
I always make a point of spelling colour correctly in code, even when it refers to a Color type. Robin I think you made that 1040 mistake on purpose to boost engagement ;) I really enjoyed the video. Would be nice to do it on Twitch or something so we can follow along live. "extreme" pair programming!
Find the c128 manual. That thing was awesome, a complete BASIC dictionary. That's how I got started back then. I'm still trying to find the SID file for "the magic flute" out of it's pages. It seemed as though it took me hours to copy that program in, and I didn't save the work, nor ever redo it again, but I still remember the sounds of the music it played. If you have a 128, see if you can set that up sometime.
Good grief my first machine was vic20, I recall doing this kinda thing. I back then didn't know what it ment. Really pleased to discover that Canada spells colour properly, like us here in the Uk!
I'd love for you to do more program type-ins. I'd type in the programs from Family Computing magazine all the time back in the day. I always found typing BASIC programs and debugging the errors to be fun, feels kind of unfortunate kids today will never know that joy.
There are a few tricks to debug typos. You can compare the line length quite easily, especially inside DATA lines. Since both the listing and the screen uses fixed lengths for characters, you can see if the last character of a line is under or above the same character of the line above or below. This way you can make sure that you have entered the same amount of characters so you didn't miss a number/colon or have added an extra number/colon. In case of missing DATA entries, add a new DATA line at the end and keep adding numbers until the out of data error stops. Then you know how much entries you have missed. Sprites or music will "tear up" at one point. Add another DATA entry at the bottom. Now go through the DATA lines top to bottom and remove the last entry of a line temporary. You can use :REM to do that or just memorize the number you delete. The sprite/music will tear up earlier. After a few lines, you can have a good guess how many lines you can skip testing. When the sprite/music tears up at the original error, your error is in the same line or just above this line.
It doesn't. Proper typing position is the same as playing the piano. Look at old typewriter typists from the 60s. Your typing speed will increase massively. There shouldn't be a bend in your wrists at all and you hold your hands aloft allowing a full range of movement. Keeping your wrists on a rest puts your wrists at a bad angle and compresses the tendons. The clue is in the name. Wrist REST. Between typing sessions you rest your hands on there, and even then only if the rest is at the correct height.
Several thoughts about this video. First.. I LOVE MY NUMERIC KEYPAD... Second.. I miss MetaBasic and AUTO for Autonumbering... Third.. Touch Typing FTW!
Robin! You just have SO much content! Help me find what I'm looking for? I seem to remember you going over something that looked like matrix rain code with the C64. Was it something you were simply showing or something you did?
Speaking of type-in programs, I was wondering if you recall any checksum programs that would help you type in the program by giving you a short checksum code so you would know if you made a mistake. I found a few mentioned on some forums and found the magazines in the internet archive. But I hadn't found any for the C64 yet. I was looking into type-in program checkers thinking if I understood how they worked I might be able to use a similar process at work. Some typing checkers had a code at the end, some told you a line or range of lines there was an error. Anyway this might be an interesting topic, if you hadn't covered it, how so many programs were distributed by paper that typing checkers were developed.
Strictly speaking there may be copyright issues but I have never heard of them being enforced on magazines and books that are 30-40+ years out of print. IANAL but I have shown the insides of magazines several times in videos and have never had any trouble.
@@8-bitshowandtell247 IANAL also ;-) my take is that the article in question was created with the express purpose of "use and share"... but we would be making a very tiny (not) profit on re-sharing it. To me you provide a ton of value above and beyond the article and the article is just a catalyst - "fair use" says that you can do so if you provide commentary, and you certainly are doing that. /shrug. I've emailed the publisher and I'm waiting for an answer...
Yeah, getting permission is best! Short of that I just accept it's possible that someday I'll get some kind of takedown on some of my videos and if it seems credible, I'll remove the video (and possibly re-edit and re-upload if possible).
8:03 ... for the uninitiated... An atomic operation is something that cannot (or rather should not) be interrupted (and often an atomic operation is implemented in such a way that it only takes a single cpu instruction). With interrupts enabled it is possible for the CPU to do something in-between the execution of the two POKE commands. 510 POKE 788,66:POKE 789,3 The reason this is bad is because the original author is modifying the interrupt vector, but did not prevent it from executing during the change. *$0314-$0315 (788-789): Execution address of interrupt service routine. Default: $EA31* see: sta.c64.org/cbm64mem.html If you started to modified the value, then an interrupt occured, and you then completed the update to the interrupt table -- it could put the system into an unknown or incomplete state.
Lol, I had an Atari 800 and entered programs like that from magazines. What’s surprising is that I knew you were missing a DATA entry when you ran and it errored out!
I've now posted a full explanation of the BASIC and machine language code, and even fixed a bug, in this video on my main channel: ua-cam.com/video/kumqDIgo_X8/v-deo.html
I still have memories of spending hours typing in listings from magazines, then run it and have it crash and reset and everything is gone because I forgot to save before running.
Ugh, yes, I had that happen too, but I learned my lesson after the first time or two! Painful :)
@@8-bitshowandtell247 I see you're being paranoid about the save-with-replace bug, as well!
Ah yes, type it in, RUN it and only get greeted by ?SYNTAX ERROR
The issue I faced is typing in programs which were written for non-commodore, non-Vic20 programs... that sucked.
I only ever typed one program in fully. If I recall correctly, it was from Mad Magazine. It didn't work at the end, and I had no way to save when I was told to turn the computer off. Bummer.
My mom and I would “pair program” on anything but the shortest of listings. She’s type in a few dozen lines while I read the program and double-checked, then we’d switch. Sometimes it would take several two hour sessions across a few days for the really long ones.
1986 me: typing in basic loader and columns of data...
2021 also me: watching some guy typing in basic loader and columns of data ...
I thought this was super cool! I’d love to see you do more of these as I used to type in games from magazines as well and they almost never worked the first time
Same here, I used to use “Compute’s Gazette” magazine to type in games and programs in the Vic-20 and C64. Those were the days
I heard sometimes there were typographical errors within the code and that you'd either have to figure out how to fix it yourself or hope that the next issue had it listed as part of an erratum. This era of computing was before my time but that sounds downright irritating!
My father and I did the same back in the day. And yup...one mistake and we had to go back line by line checking for mistakes. So awesome when we got it right! :)
The first time? After a handful, I only got one to ever work! At all! I think Basic scared me away from programming for good.
I was yelling at the screen at 1040 :)
Me too
saying: check the lines carefully then blunders.... there's no same line there twice. there's ,0 extra in there....
I can’t count all the hours I spent with an issue of COMPUTE! And typing in programs, then going back to find errors and fix them. About 10 years ago I was able to purchase a collection of all the Compute magazines and add them to my collection of 80’s computer life.
Ah yes, I remember doing this in the 80s. I loved it when they came out with the programs that used the checksum for each line.
Also probably related, my poor mom had to wait until I was almost 40 to get her first grandchild. :(
Typing in Basic listings, those were the days!
Certainly do things like this.. This is such a trip down memory lane.. I guess me and my school friend had a 10-20% success rate when we were typing in listings from magazines...
Since my early years in programming, I've found that I can never type the phrase "go to" without leaving that space out. Like, "I'll goto the store". It just looks so foreign if I add the space between the words "go" and "to". --- Super cool watching you type in a miniature program in real time. :) My Uncle gifted me his old Atari Mega ST and his hundreds of Atari magazines, with tons of code spread across them all. It was great fun to type them all in and watch something start to take shape.
Takes me back to 1984 when I typed in a fully BASIC program. Fun times.
I used to type in so many programs from Byte, InCider, and David Ahl's books. Of course, I was almost invariably disappointed, but it didn't stop me. Sometimes I enjoyed the inevitable debugging more than the ultimate result. To make the typing go a little faster, I would ask my mom to read the listings to me so I could keep my hands and eyes on the computer..
I was a COMPUTE! Gazette subscriber until the very end. Wish I still had those!
@@brianfix4404 if you don't mind bits instead of atoms, they're probably all online
Mom's were awesome. I sure miss mine.
Oh man this brings back memories
I actually liked the video. I'm flooded with memories of being a little kid having a Texas Instruments TI99/ 4A. I remember getting magazines with programs in "TI Basic" and trying to program games. Phone modems were new. The movies Tron and War Games were awesome. It was a magical time as a kid. We saw limitless possibilities!
Ha! That extra byte on line 1040 is brutal! Somehow watching you type in code while I do my own computer work makes me feel more productive overall. :D
I appreciate your true hardware (and true paper) approach. For the rest of us, when I have to enter printed BASIC code, I use Capture2Text (windows app) that OCRs anything you draw a bounding box around on the screen, then I literally just paste that into an active VICE window, and watch the lines get quickly entered one at a time.
Hey, that's pretty sweet though
Great memories of typing endless DATA statements. Years later I have a better idea of what's actually going on with them. Thanks!
That typing, it brings back memories. I'd like to watch some more of that. :P
"I used to do this all time time in the 80s." - me too! I recall back to 1987, when I typed in a program from the C64 manual. When typing the DATA-commands followed by a sequence of integers (basically creating a vector) I mistyped some of the numbers and a broken balloon flew over the screen.
Thanks for sharing!
I learned and became pretty proficient at coding C-64 BASIC by not only typing in listings from Compute magazine, but I would pick apart the code as I was typing it in. I would make alterations to the code; simple graphics changes at first but eventually I would analyze the logic and program flow and try to optimize the code. While Compute magazine's mission was to present listings for all available platforms in the mid to late 80s, Compute's Gazette was all about the C-64 and would break down various sections of the code to help understand what the program was doing. I wrote my own *wedge program for entering in DATA numbers that switched the keyboard into a number pad under the right hand.* The little finger would enter the comma and [ENTER] key, and automatically type in the next line number and the word "DATA" . [SPACE] was '0' and entered with the thumb. Once you established muscle memory for the number pad entry, you could enter the data without looking away from the listing which reduced the chance of typing errors by 98%. The biggest problem then became "fat finger" mistakes.
This brings back memories of typing in programs into the Apple to back in junior high and high school for me. I would sit in classes and write code in my notebooks while the teacher thought I was doing homework or what not and I couldn’t wait to get to the computer lab to type in what I thought up. Of course we also looked at the magazines and books and transpose them from there also. Great video thank you sir.
Just want to say that David Crane is THE MAN! He wrote games for numerous systems back in the day. Most impressed with what he was able to accomplish with the Atari 2600 (with only 128 bytes, yes bytes, of RAM and 4k of storage).
Yes, this is my cup of tea. Thank you may I have another.
Me as well. This is great.
I love typing in programs...it's the anticipation of what game or program you'll get. One of my worst debugging sessions was when the checksum was dead on, and I had two errors. It turned out after a lot of searching and more searching I had swapped an 8 and a 0 on the same line. The program I still use now 5 years after typing it in, it is 'fasttape' from the book, 'The cassette book for the commodore 64' by Databecker. Makes the tape drive faster than disk. That's no false claim either. It can save 80 blocks in around 5-7 seconds. Well worth typing in. At first it was a basic loader that poked the program in from basic memory data statements like this program. Eventually i saved it from a monitor to tape so it would load a lot faster. I finally made a basic program with a machine language program loader for it that was even easier and moved the program up to C000 so you can just load and run it instead of typing SYS49152 after loading. It loaded the command with the machine language written after basic's start of variables. When it runs, it just copies the entire program stored in low memory up to C000 and then jumps into it. It was my first self written machine language program! I know it's only a loader...but it worked the first try so there!
When I was a kid my dad used to help me type in those massive data sets you get when typing in basic programs.
Hex dumps on the spectrum were even worse, I remember in issue of Your Sinclair, there was a program called INFOLOAD, and it would show you the data what the game was loading, but visually on the screen. kinda like the way a c64 game loader screen looked. there was a small program you had to type in first which was the loader for the hex dump, then the hex data part which was over 200 lines long, its was either 8 or 16 bytes of hex codes you had to type in and it had a checksum on every line. like.. 00 00 00 00 00 00 00 00 = 03e8 or something like that. A ruler or a bit of paper was mandatory lol. Great video Robin would love to see more. :D
As soon as I heard you say "line 1040 is the same" I was yelling at the computer "NO! NO! IT'S NOT THE SAME!!! AAAAHHHHHHH!"
I just wanted to note about checksum programs but then you did in the video. Of course to get those checksum programs we typed them in, too. As everybody I typed in a couple of programs or games back then. Type in listings typically were present in nearly each computer magazine, and I clearly remember magazines consisting of only type in listings - compare this to nowadays haha. This episode was fun, yes please "load" another game the _really_ oldschool way ;)
I’d love to see a video that starts with the graph paper rendering for these sprites, then maps that to a machine language rendering, then maps that to this inline asm. I think that end-to-end would be a great tutorial for my 5 year old daughter, for instance. Then the viewer have a mental model of going from art -> playable game. It would also be nice if you added little “unit test” lines so you can run the program at various points in the typing and verify the previous N lines didn’t have obvious mistakes. Wouldn’t help for tons of DATA lines, but for actual BASIC logic and variable assignment, it would make this more digestible/debuggable. I wish Compute magazine had given us that back in the day! Love the channel, keep up the good work! :)
Actually this is pretty therapeutic to watch. There are some old books on Amazon (for a few bucks) that have tons of old type in programs from those old C64 magazines back in the day. How about typing in some of those and maybe trying to improve them (i.e. Use some of your speed up tricks to make them run faster or better), especially for the pure BASIC ones. Could be a fun and interesting learning experience for all of us!
Ahhhh the hideous "Out of Data" error. I must have received thousands in my young programming days. Lots of memories (not all of them good! lol), but overall it takes me back to a happy moment in my childhood. Thanks for sharing. Greetings from Argentina.
The best one of these was allowing the C64 to use 80 characters instead of 40. That made all the difference in the world when accessing my college’s DEC machine with my 300 baud modem. I did a lot of this at two in the morning after closing the pizza parlor where I worked. I still procrastinate...(Shout out to David Crane)
next time lets analyze that data stuff. convert it into hex, then disassamble it and lets see the mnemonics and sprites.
Working on that now, should be on the main channel in a few days :)
I didn't watch the whole video (hope to get back to it) but I enjoyed what I saw. It's a nice way of seeing the programme getting typed in but not so lonely because there's a whole community watching along at the same time. A nice meeting of the old and the new.
I remember checking the alignment of the last digit on each line as a simple check point to be sure to have the correct number of data. Of course, it doesn't cover many cases, but it was a simple visual check.
I wished to have a buddy like you to teach me assembler at that time. No internet and not a lot of books in my language to progress that far. I got stuck with basic.
Alignment: Especially with long PRINT statements. Double especially when they used several spaces or cursor codes to place the text being printed. At least some publishers (COMPUTE!) were nice enough to use shorthand like {10 SPACES} or {12 DOWN}.
@@WY.C64-Guy Oh ya me too. I hated when listings in books had scores of screen control symbols and spaces. The worst by far being 'Using the Commodore 64 in the Home'. There is a game called 'Pirates!' which looks really fun. Problem is that almost the entire game is done that way and the print is tiny. The only possible way to figure out how many spaces is by reference of other lines. What is worse is that you have 13 spaces on top of 23 spaces etc. So you might have to trace up 10 lines to get any reference at all. After the second map I took a break and never got back to it. I don't even know where the disk is now.
I don't know why, but that was so much fun to watch! All those pokes for sprite were coming back to me as you were typing them. I had such a big smile of familiarity the whole time I was watching! Thank you so much
I enjoyed this video, it brought back memories of typing in programs from Ahoy and Gazette nearly 40 years ago. One of the best ones I typed in was a hex entry tool that made entering machine code so easy.
And yes, please keep making videos like this. I promise to speak up when I see you make a mistake
On Ahoy! I think that hex entry program was called "Flankspeed". And Gazette had "MLX" I believe.
@@8-bitshowandtell247 My memory is less capable than my old C64 these days. Thanks for the reminder.
I was skeptical that I would enjoy this, but it sure brought back memories. too bad you didnt hear me yell about that missing 0 in 1040 :D
I really do think they should bring back that sort of zine too. I would subscribe for the nostalgia alone.
I think I speak for most of your followers when I say yes, this is our cup of tea. Thanks :)
I remember impatiently waiting each month for Compute and later Computes Gazette magazines to show up at Hastings book and record store.
It wasnt uncommon for me to call in sick at work so I could read every article, examine every ad, and begin typing in the programs.
Many many hours typing in programs that invariably wouldn't work correctly or at all. Far to often in would be an error in the listing and you would then have to wait and read the next months errata page! As I began to learn basic I was able to figure out some of the errors on my own.
I miss those UNBELIEVABLY EXPANSIVE import magazines as a kid too. I remember on one there was the full code to run Super Maria, probably Giana before Giana, I don't know. I don't even remeber which system was that code for. C64, Zx, Msx. Can't tell. Was it on Zap? This is HERO content. I admire you, TY!
Ooo! Looking for typos in DATA statements were hard! The 64 still amaze me. A sprite moving while basic runs is interesting too.
I typed in an azimut program with machine code in data statements when i only had a tape drive in 2015 for one of my first videos. It worked 🙂
I used speech routines to read the data while I checked on the page that helped me a lot when typing those huge data parts.
SAM
you need a ruler to mark under the current line to type. We had a cool stand with a clear ruler attached at school, for typists i think. really useful for typing in your homework.
Commodore 128 numpad FTW :) I still fondly remember typing in programs from Compute!, Compute!'s Gazette, and Ahoy.
That was fun... Brings back memories of typing in programs before I had a floppy drive to save to... I soon after got a floppy drive.
I'm so excited to see this pamphlet! Years ago I read about it in a small magazine blurb (I want to say Commodore Power/Play or Commodore Magazine, but I'm not sure). Having forgot where I read it, I could never find it again. Thank you so much!
I also typed in listings from magazines, and was amazed you could read it off a stand.I did too, but needed to put a piece of paper under the current line because it was so easy for my eyes to jump around. It was a painful process, but I don't regret it.
Hey! I was viewer number 64. I think that has to count for a prize or something. Maybe it is the universe's way of telling me it's time to play a C64 game?
Yes, do more of these! I enjoyed the commentary. Just pre-enter the DATA statements, maybe. :)
I always dreaded type-ins with a lot of DATA statements. Reversing a number or forgetting a comma was a pain!
Reminded me of Bender from Futurama while you were reading out all those data statements. lol.
I somehow convinced my sister back in the day, to hand over £5 in exchange for a computer lesson. Lesson one, readout the data statements from a magazine. It took all Sunday. 😂
14:00 I noticed a typo, line 1040 isn’t identical like you said it was. You missed a ,0 I realize there may be a reason why it doesn’t matter but now I’m on the edge of my seat to see if it matters in someway :) this is awesome.
personally I would LOVE to see more like this. I was watching with rapt attention and so many memories came up. For me this was one of the most engaging video I’ve seen on UA-cam. Thank you!
It is like the magazine gave you a code to spend hours writing only to create a commercial for the game and makenyou buy pitfall. This is hilarious.
I looooooove all your clips. Memories coming back
Typed it in with you (on Vice) and after some debugging it ran! Woot! In fact, Harry is still running. Loads of fun, please do this again!
Lots of memories of typing in huge basic programs being brought back here.. Thanks!
Yes that takes me back. This was a good video you should do more of this.
Love it. Much more instructive than just typing in mlx
Ahhh... I was like 10 years old when I used to do the same. I remind I programmed a sort of pinball with a ball just bouncing around. Good old times...
Ah writing games from magazines, those were the days. I wonder if any other magazine used the "checksummer" app. It was a really tiny app you would first write and run and it then would give out checksum for each basic line you wrote. Was were handy to check for typos as the magazine printed the checksum number for each line in their printouts.
0:20 People might be disappointed picking up an Activision game and getting whatever can be done in a short BASIC program. Not to mention the typing mistakes that most people would never figure out. (Assuming the listing is correct in the first place.)
1:30 On the plus side, we're getting two-handed action today!
1:40 Would an OCR scanner read the program listing accurately?
2:21 Unlike on the VIC-20, you don't have to put your ML routines into the cassette buffer.
5:00 I spell a lot of words the American way. "Color" doesn't make an "ooo" sound like "ou" should.
5:17 Are expressions like «V+21» actually faster than «53269»? Maybe it's less error-prone.
7:20 He could use some cursor controls, though I his printer can't print them.
9:15 That is pretty strange, to POKE the same value into the same location 200 times in a row with a few milliseconds between each POKE. I guess that's a variable in the interrupt routine, though this POKE will be reasserted much more frequently than the interrupt runs.
9:55 Who uses STOP instead of END? What a nerd!
12:50 Might be better to have put a multiple of 3 numbers in each DATA statement.
13:14 Ha - you just torched line 120! At lest you have the listing right in front of you.
20:36 It would probably go faster with two people, one doing the typing and the other reading the program aloud and verifying what's entered.
24:40 ?S-8192
25:03 It wouldn't be in the machine language, because that has a sentinel value of 999. The READing failed in the sprite graphics. Not that the ML couldn't use a second verification.
30:33 I thought it would be tedious, but it gives us both the opportunity to analyze the program.
STOP is a breakpoint command. END doesn't tell you anything.
That takes me so far back! I remember spending hours doing this, only to type RUN & get the same errors as you lol! It always gave me such a sense of achievement though, when I finally got it up & running. Would love to have taken it further & designed games of my own.
My national library used to have a selection of Commodore C64 books in Computer section. They got pretty a lot type-in programme in it and I borrowed it many times. Recently when the library shifted, all that's book are gone. Maybe the librarian now the Commodore computer are already obsolete and nobody care about it anymore and they take it out off the shelf. What a pity😔
What a coincidence, I just spent my morning typing in an old sprite collision program from the purple Phil Cornes books and then tweaking and extending it. Teaching my 7yo son to code, figured C64 is a good place to start. Before I show him how easy Python and whatnot make everything these days, I want him to understand the concept of designing sprites on paper, using registers, thinking about how memory and the stack actually work, etc. He was whinging about having to type in all the numbers, but once we got it working, he thought it was really cool. More of these videos would be great.
My brother or my friend would help me enter the programs back in the day. I ended up getting a numeric keypad for my Atari 800 for those data statements.
Does the keypad for the Atari have a comma? I remember looking at one for the C64 but since it didn't have a comma I wasn't sure I'd be far ahead.
@@8-bitshowandtell247 Unfortunately it does not. But I used my left hand for the comma and my right hand to type the numbers. It actually went pretty quick for me.
This is really fun to watch. Especially when I lost my own type-in to a non @OVERWRITE thing I didn't even know about as a newb. To get the ML version, we'd look at where the stuff is poked in AFTER basic runs, then disassemble that to see it as ML like normal, correct? You probably answer this in your video but I'm impatient. Thanks Robin :)
Wow how was I not subscribed to this channel, I binged everything you put out after I found your channel lol
Line 700: the original source uses a double hyphen there. Obviously it doesn’t affect execution, but if the goal is to replicate the printed listing exactly... I’m trying to find treatment for seeing stuff like that, but so far no luck. 8-) Great video, thanks for sharing this!
AHH THE PTSD! :D Great work 8BST! :) It was like watching a wrenching video where the engine backfires the first time it gets started :)
It brings good memories back, thanks.
Watching you type with all fingers on a C64 keyboard, must be sorcery.
I am still sad that my knowledge at this time i had the C64 lacked of programming skills :D - i would like to turn back the time and do this.
This is strangely cathartic. I remember typing in pages and pages of things back in the day.
I always make a point of spelling colour correctly in code, even when it refers to a Color type. Robin I think you made that 1040 mistake on purpose to boost engagement ;) I really enjoyed the video. Would be nice to do it on Twitch or something so we can follow along live. "extreme" pair programming!
Find the c128 manual. That thing was awesome, a complete BASIC dictionary. That's how I got started back then.
I'm still trying to find the SID file for "the magic flute" out of it's pages. It seemed as though it took me hours to copy that program in, and I didn't save the work, nor ever redo it again, but I still remember the sounds of the music it played.
If you have a 128, see if you can set that up sometime.
This was fun! Almost like C64 ASMR with the keyboard noises. Would definitely watch more!!
I'm learning to program in BASIC, so, yes, I'd love to see more videos like this! :)
Good grief my first machine was vic20, I recall doing this kinda thing. I back then didn't know what it ment. Really pleased to discover that Canada spells colour properly, like us here in the Uk!
I'd love for you to do more program type-ins. I'd type in the programs from Family Computing magazine all the time back in the day. I always found typing BASIC programs and debugging the errors to be fun, feels kind of unfortunate kids today will never know that joy.
I'd like to see more of these, particularly on the Commodore 64 and 128.
There are a few tricks to debug typos.
You can compare the line length quite easily, especially inside DATA lines. Since both the listing and the screen uses fixed lengths for characters, you can see if the last character of a line is under or above the same character of the line above or below. This way you can make sure that you have entered the same amount of characters so you didn't miss a number/colon or have added an extra number/colon.
In case of missing DATA entries, add a new DATA line at the end and keep adding numbers until the out of data error stops. Then you know how much entries you have missed. Sprites or music will "tear up" at one point. Add another DATA entry at the bottom. Now go through the DATA lines top to bottom and remove the last entry of a line temporary. You can use :REM to do that or just memorize the number you delete. The sprite/music will tear up earlier. After a few lines, you can have a good guess how many lines you can skip testing. When the sprite/music tears up at the original error, your error is in the same line or just above this line.
This was just what i needed, some relaxing moment watching someone program, great idea. would love to see more of those =)
Well that was fun!
I'm going to port this to Atari like the adventure game, stay tuned!
Love this stuff Robin! More please!
If there ever was a computer that badly needs a wrist rest, it’s a breadbin Commodore.
It doesn't. Proper typing position is the same as playing the piano. Look at old typewriter typists from the 60s. Your typing speed will increase massively.
There shouldn't be a bend in your wrists at all and you hold your hands aloft allowing a full range of movement. Keeping your wrists on a rest puts your wrists at a bad angle and compresses the tendons.
The clue is in the name. Wrist REST. Between typing sessions you rest your hands on there, and even then only if the rest is at the correct height.
@@benanderson89 I'm brand new to typing so thanks for the correction.
@@MichaelDoornbos I have problems with my left wrist thanks to bad form for years. Hopefully that info helps.
I used to use a pen as a kid to act as a place marker. My trick was to leave the cap on so it could hold its place even with it propped up.
27:26 how lovely "oh no"
Several thoughts about this video. First.. I LOVE MY NUMERIC KEYPAD... Second.. I miss MetaBasic and AUTO for Autonumbering... Third.. Touch Typing FTW!
I remember altering the code on Sorceror's Island and Perlious Swamp on the Sinclair ZX81 to give myself more health and magic rings.
Robin! You just have SO much content! Help me find what I'm looking for? I seem to remember you going over something that looked like matrix rain code with the C64. Was it something you were simply showing or something you did?
Hi Anjin, sorry I don't remember doing a Matrix code rain before but I remember @fuzzybad playing with that recently on Twitter, I think I retweeted?
Speaking of type-in programs, I was wondering if you recall any checksum programs that would help you type in the program by giving you a short checksum code so you would know if you made a mistake. I found a few mentioned on some forums and found the magazines in the internet archive. But I hadn't found any for the C64 yet. I was looking into type-in program checkers thinking if I understood how they worked I might be able to use a similar process at work. Some typing checkers had a code at the end, some told you a line or range of lines there was an error. Anyway this might be an interesting topic, if you hadn't covered it, how so many programs were distributed by paper that typing checkers were developed.
I really enjoyed this - thanks!
I’m in a Python class this semester, what a better way to wind down than watch you type code😂
This is great. Are there any copyright issues associated with doing something like this? I have a few programs I want to type into my channel.
Strictly speaking there may be copyright issues but I have never heard of them being enforced on magazines and books that are 30-40+ years out of print. IANAL but I have shown the insides of magazines several times in videos and have never had any trouble.
@@8-bitshowandtell247 IANAL also ;-) my take is that the article in question was created with the express purpose of "use and share"... but we would be making a very tiny (not) profit on re-sharing it. To me you provide a ton of value above and beyond the article and the article is just a catalyst - "fair use" says that you can do so if you provide commentary, and you certainly are doing that. /shrug. I've emailed the publisher and I'm waiting for an answer...
Yeah, getting permission is best! Short of that I just accept it's possible that someday I'll get some kind of takedown on some of my videos and if it seems credible, I'll remove the video (and possibly re-edit and re-upload if possible).
@@8-bitshowandtell247 totally agree. Thanks!
great little exercise thanks for your video
8:03 ... for the uninitiated...
An atomic operation is something that cannot (or rather should not) be interrupted (and often an atomic operation is implemented in such a way that it only takes a single cpu instruction).
With interrupts enabled it is possible for the CPU to do something in-between the execution of the two POKE commands.
510 POKE 788,66:POKE 789,3
The reason this is bad is because the original author is modifying the interrupt vector, but did not prevent it from executing during the change.
*$0314-$0315 (788-789): Execution address of interrupt service routine. Default: $EA31*
see: sta.c64.org/cbm64mem.html
If you started to modified the value, then an interrupt occured, and you then completed the update to the interrupt table -- it could put the system into an unknown or incomplete state.
No modern keyboards replicate the c64 high rise yet easy to push keys.
I despise pretty much every low button style keyboard I have ever had.
In the 80s I spent so much time writing programs and on CRT tv isn't very good for the eyes...but a lot of fun😀👍🏻
My cousin and I would sit at the Atari taking turns typing a paragraph each of a game listing from the Antic magazine for Creepy Caverns and Biffdrop
Okie ! i had my hopes up for something like the Classic Pitfall game but this aint too bad :)
Lol, I had an Atari 800 and entered programs like that from magazines. What’s surprising is that I knew you were missing a DATA entry when you ran and it errored out!