As the previous owner of your book, I can verify that it was sent out for scanning, and that is indeed why your copy is spiral bound. Scanning was done by the gentleman who runs the bombjack website, and it can be found there for anyone who wants to follow along at home :)
This is a great book, I got my mom to buy it for me when I was around 12 years old together with a copy of Mapping the Commodore 64. I don't know why, but I was somewhat obsessed with programming and especially assembly language. Didn't understand everything but it was a great guide from back before you could just look up things on the Internet. Cheers, Jake
Butterfield's machine language book is priced like that online also. Your best bet is to get a pdf of the book and get it printed via an online service.
Just to make it clear, don't bother looking for a spiral bound version: this book had its spine chopped off so the loose pages could be scanned in cleanly. The spiral binding is an "aftermarket mod" so to speak :D
Man, I remember trying to follow Butterfield's examples and having a blast just making the border of my screen a different color. Like I was some sort of warlock now with superpowers. Compute! and authors like Butterfield helped make my career and life. Thanks for bringing me RTS $1987. :)
The little historical notes interspersed within the narrative are so interesting! The links to particular episodes that provide more information will be invaluable too. Thanks again Robin!
Talking about mixing ML with BASIC: 30+ years ago I was working on a game and I wanted the intro to have a scrolling line at the bottom with credits. I wrote it in BASIC on the 128 and it was so slow you could see it copying characters one position left then poking the new character at the right side. So I dug out ML reference stuff and struggled for several hours to craft a routine to do that one line scroll faster. And it worked! I was so proud! Of course, at that point it was far *too* fast and the scrolling message was completely unreadable.
This is probably the best C64 ML intro text of the classic era. I sorely wish I'd owned a copy of it back then - I tried mightily to teach myself ML using only the PRG, but all of my attempts were for naught.
Ever since you made these videos about the Raeto Collin West book, I've had an eye out for it. This week I found a copy of the original edition (paper back, printed in 1985) for only 18 euros from a store in the UK. It's not arrived yet, but I'm anxious to see the actual state it's in and also to finally be able to read it.
I wish I had a good assembler and monitor when I was a kid. I think I might have had supermon, but working without labels was a pain. I think I actually just did the writing bytes myself at least when I started programming C64 assembly, and kept track of my program on a sheet of paper because I didn't have any way to save the assembly or assemble it on the C64. When I updated the program in my notebook I had to re-write all the offsets myself. I remember writing a simple C64 game with the ai in assembly for speed so it could look several moves ahead, and copying the bytes to enter into an Apple II which they had at school for a project.
In addition to all of the more obvious technical delights in your videos Robin, I got a kick out of that little taste of retro computer industry drama between Jim Butterfield and Raeto Colin West. What's been missing from the bland documentaries about that beige era is the occasional high-heeled, shoulder-padded throwing of shade so plentiful in TV shows like Dynasty. Who can ignore the rumours that Jim was an extra on Dallas in season two?
I agree with your opinion on Jim Butterfield‘s introduction to ML. Just like 2 years ago I decided to read myself a little into ML - and I did with Jim‘s book. And I must say that I understood it perfectly because it was made in a great didactical manner. I can still remember how amazed I was. Jim did a great job.
My first exposure to the indexed indirect and indirect indexed addressing modes was in the C64 Programmer's Reference Guide. Needless to say I was confused.
Around the 25 minute mark, you discuss the LADS Assembler. The last paragraph on page 237 mentions that it was included in The Second Book of Machine Language. It also came out as a book on it own. I know this because I had the book and I typed it in in 1985. It didn't use the BASIC editor. I know this because I changed the code I entered to make it work with the BASIC editor. However, the main reason why I'm making this comment is because there was a massive bug in the code with the branch instruction. I can't recall now which branch instruction it was, but it got the offset wrong. I don't know if they ever fixed that in later revisions but you may wish to look into it if you are curious.
The example at 19:30 seems to have an error. The `.A C002 STA $400` is followed by `.A C004 BRK`. The STA is 3 bytes though (as shown below it) so the BRK assembly would overwrite the 4...
Programing in Hex? Reminds me of my attempts in writing system exclusive commands for my keyboard. Yamaha XG compatible. I wasn't very fluent and it's a lot of reference reading in the small print part on the last pages of the manual. F0 something something F7 Yeah midi was awesome.
6:00 Classic problem - assumes the screen has a visible background color. 13:52 Why is he combining «LDX #8» with «DEX : BPL -»? This will execute the body of the loop nine times! Also, it seems that the low-byte is being held in the accumulator and he ultimately makes $FC the high-byte and $FD the low-byte. This seems too clever by half, like that Copy routine from another book. 14:06 Ben Eater has a good introduction to two's complement: ua-cam.com/video/4qH4unVtJkE/v-deo.html . 22:17 This program includes «ASL A» and a label of «A». Seems ambiguous. What if you wanted to ASL the absolute address A? 25:54 I don't recall Buddy storing assembly programs in BASIC format. (At least, I never used it in that way.) Maybe you're thinking of the analogously named PAL assembler. 29:42 +1
I agree, I don't like that "ASL A" notation. I've often wished there was an implied INC to match INX and INY, for example. I wonder how assemblers that support the "A" notation would react to "INC A"; is "A" just a regular label, or is it some special register field? And, yes, I'm probably thinking of PAL. Thanks Buddy!
I have that exact Revised edition on my shelf. Dang if I can remember where i got it from, but it is a good book. Though I still have to encounter a book that does a good job on sound - they all give a thorough technical explanation, but you get no feel for what to do with that knowledge.
Finding a new Super Snapshot or Action Replay is difficult; they sometimes show up on eBay. But the Easy Flash 3 cartridge can act like either, and it's available newly made for purchase.
Robin, I have a bunch of C64 Software from the NB Bilingual Curriculum in the 80s. I have both English and French Disk packs in their binders. I want to preserve them, but I'm not having much luck with my XU1541 adapter. Help?
Hi! I never did use a XU1541 and went right to the XUM1541 aka ZoomFloppy which I have working pretty good with my old MacBook Pro and OpenCBM. I assume you've installed OpenCBM? Does the command "cbmctrl detect" without quotes return any info?
If there are any kind of copy protection or even errors on the disk, then I think XU1541 can't handle it. Check out the "Design goals" section on the XU1541 page: spiro.trikaliotis.net/xu1541 Which OpenCBM command are you using to do the copy? There's a few choices. You may be able to copy the disk file-by-file instead of block-by-block and get most of the data off it.
Apparently Commodore put the wrong capacitor on the Restore key line! There are some articles online about how to fix this. Some revisions don't have this problem, apparently.
@@8_Bit I was told as a 5+yo kid that it was deliberate so you can’t do it by accident. It’d be a good topic for a video. This computer is something special if we’re STILL dissecting it and finding out it’s capabilities 40 years later. I will never understand it all, but your videos help.
SHIFT/LOCK :) It's interesting to note that the original PET didn't have a SHIFT LOCK key so it perfectly complied with the rule of shift accessing the function on the upper part of the key. The addition of SHIFT LOCK broke that rule.
SHIFT LOCK is one function, so it should be called "SHIFT LOCK". It locks the shift. RUN and STOP are two different functions, like 4, $, and CYN are three different characters/function, so you should only say the function or character you are referencing.
@@csbruce I would argue that this depends on your audience. When I am teaching how to get to these keys I would mention what keys are involved. If I am positive that my audience knows, then I agree. As a teacher who has taught to people completely new, when I explain bold, I have to say CTRL-B to them on a PC because they don't know where to find "Bold" yet. Years ago, in the days of typewriters, I had to explain that the enter key was like the carriage return key on the typewriter. As late as 1990 I had to explain this to someone from another first world country because he had never seen a computer. I even had one person that I had to explain it differently because that person had seen NEITHER. They were both from Siberia. I had a student who had never seen the triangular shaped "play" button on ANY device he had ever used because he had only seen live music. As teachers, we have to be cognizant of the audience. I'm not trying to disagree, just pointing out that context makes a difference.
As the previous owner of your book, I can verify that it was sent out for scanning, and that is indeed why your copy is spiral bound. Scanning was done by the gentleman who runs the bombjack website, and it can be found there for anyone who wants to follow along at home :)
Thanks again!
@@8_Bit Glad to see the book getting some love, that's why I shared it in the first place! So you're welcome, and thank you, too!
This is a great book, I got my mom to buy it for me when I was around 12 years old together with a copy of Mapping the Commodore 64. I don't know why, but I was somewhat obsessed with programming and especially assembly language. Didn't understand everything but it was a great guide from back before you could just look up things on the Internet.
Cheers,
Jake
Lol, this book is $1,000 on Amazon without spiral binding. Still looking. Lot of good info. Thanks for showing us this book!
Butterfield's machine language book is priced like that online also. Your best bet is to get a pdf of the book and get it printed via an online service.
Just to make it clear, don't bother looking for a spiral bound version: this book had its spine chopped off so the loose pages could be scanned in cleanly. The spiral binding is an "aftermarket mod" so to speak :D
@@DaneArcher I have a local printing company that does my honey labels that can do that for me. Thanks.
Man, I remember trying to follow Butterfield's examples and having a blast just making the border of my screen a different color. Like I was some sort of warlock now with superpowers. Compute! and authors like Butterfield helped make my career and life. Thanks for bringing me RTS $1987. :)
The little historical notes interspersed within the narrative are so interesting! The links to particular episodes that provide more information will be invaluable too. Thanks again Robin!
Great insight into the inner working of low-level programming on the C64. Thanks!
Talking about mixing ML with BASIC: 30+ years ago I was working on a game and I wanted the intro to have a scrolling line at the bottom with credits. I wrote it in BASIC on the 128 and it was so slow you could see it copying characters one position left then poking the new character at the right side. So I dug out ML reference stuff and struggled for several hours to craft a routine to do that one line scroll faster. And it worked! I was so proud! Of course, at that point it was far *too* fast and the scrolling message was completely unreadable.
A couple of NOPs (0xEA) in the main loop should do; that, and some experimentation!
@@williamsquires3070 of course, it was dealt with at the time. Just written from the point of view of a first time ML coder.
This is probably the best C64 ML intro text of the classic era. I sorely wish I'd owned a copy of it back then - I tried mightily to teach myself ML using only the PRG, but all of my attempts were for naught.
The key: Literally "RUN STOP"
Robin every time he sees it: It's called the STOP key * internal screaming *
Ever since you made these videos about the Raeto Collin West book, I've had an eye out for it. This week I found a copy of the original edition (paper back, printed in 1985) for only 18 euros from a store in the UK. It's not arrived yet, but I'm anxious to see the actual state it's in and also to finally be able to read it.
Great, congrats!!
This book is ridiculously hard to come by. Glad I have mine from back in the day, but I will probably use the PDF more - lays flat.
Was rewatching some of your videos when the YT notification popped up. Love your content.
I wish I had a good assembler and monitor when I was a kid. I think I might have had supermon, but working without labels was a pain. I think I actually just did the writing bytes myself at least when I started programming C64 assembly, and kept track of my program on a sheet of paper because I didn't have any way to save the assembly or assemble it on the C64. When I updated the program in my notebook I had to re-write all the offsets myself. I remember writing a simple C64 game with the ai in assembly for speed so it could look several moves ahead, and copying the bytes to enter into an Apple II which they had at school for a project.
In addition to all of the more obvious technical delights in your videos Robin, I got a kick out of that little taste of retro computer industry drama between Jim Butterfield and Raeto Colin West. What's been missing from the bland documentaries about that beige era is the occasional high-heeled, shoulder-padded throwing of shade so plentiful in TV shows like Dynasty. Who can ignore the rumours that Jim was an extra on Dallas in season two?
Are you serious about the Dallas rumours?? First time I've heard this one; tell me more if there's anything else to say :)
I agree with your opinion on Jim Butterfield‘s introduction to ML. Just like 2 years ago I decided to read myself a little into ML - and I did with Jim‘s book. And I must say that I understood it perfectly because it was made in a great didactical manner. I can still remember how amazed I was. Jim did a great job.
My first exposure to the indexed indirect and indirect indexed addressing modes was in the C64 Programmer's Reference Guide. Needless to say I was confused.
29:20 CHROUT a personal favorite 😃
I'd love to have that book. Great find.
Wow this is awesome, thank you!
Around the 25 minute mark, you discuss the LADS Assembler. The last paragraph on page 237 mentions that it was included in The Second Book of Machine Language. It also came out as a book on it own. I know this because I had the book and I typed it in in 1985. It didn't use the BASIC editor. I know this because I changed the code I entered to make it work with the BASIC editor.
However, the main reason why I'm making this comment is because there was a massive bug in the code with the branch instruction. I can't recall now which branch instruction it was, but it got the offset wrong. I don't know if they ever fixed that in later revisions but you may wish to look into it if you are curious.
The example at 19:30 seems to have an error. The `.A C002 STA $400` is followed by `.A C004 BRK`. The STA is 3 bytes though (as shown below it) so the BRK assembly would overwrite the 4...
Shoutout to Superman for making numerous cameo appearances in the closed captioning. ;-)
Thanks for sharing!!
I had this book too, it was my basic go to. I perferred Jim Butterfields book on machine language, it was just easier for me to understand.
Yes, for a tutorial the Butterfield book is the best there is. And I think for a general reference for looking stuff up, this one is the best.
Programing in Hex? Reminds me of my attempts in writing system exclusive commands for my keyboard. Yamaha XG compatible.
I wasn't very fluent and it's a lot of reference reading in the small print part on the last pages of the manual.
F0 something something F7
Yeah midi was awesome.
6:00 Classic problem - assumes the screen has a visible background color.
13:52 Why is he combining «LDX #8» with «DEX : BPL -»? This will execute the body of the loop nine times! Also, it seems that the low-byte is being held in the accumulator and he ultimately makes $FC the high-byte and $FD the low-byte. This seems too clever by half, like that Copy routine from another book.
14:06 Ben Eater has a good introduction to two's complement: ua-cam.com/video/4qH4unVtJkE/v-deo.html .
22:17 This program includes «ASL A» and a label of «A». Seems ambiguous. What if you wanted to ASL the absolute address A?
25:54 I don't recall Buddy storing assembly programs in BASIC format. (At least, I never used it in that way.) Maybe you're thinking of the analogously named PAL assembler.
29:42 +1
I agree, I don't like that "ASL A" notation. I've often wished there was an implied INC to match INX and INY, for example. I wonder how assemblers that support the "A" notation would react to "INC A"; is "A" just a regular label, or is it some special register field?
And, yes, I'm probably thinking of PAL. Thanks Buddy!
@@8_Bit Modern 65C02 has INC A as a separate opcode. Doesn't help on the C64, of course.
I have that exact Revised edition on my shelf. Dang if I can remember where i got it from, but it is a good book. Though I still have to encounter a book that does a good job on sound - they all give a thorough technical explanation, but you get no feel for what to do with that knowledge.
compute did a similar book for atari that was spiral bound too
I still prefer “CALL -151” on the Apple ][ series, myself. No disk, tape, or cartridge needed. 😌
...And I end up wondering what that program was in Appendix R, with all the data statements.Either ML or something with sprites, I'm guessing.
haha nostalcic, i remember poke and peek systems has lot. wery young boy has learn commordore and make some games.
Where do you get the super snapshot or action replay?
Finding a new Super Snapshot or Action Replay is difficult; they sometimes show up on eBay. But the Easy Flash 3 cartridge can act like either, and it's available newly made for purchase.
Robin, I have a bunch of C64 Software from the NB Bilingual Curriculum in the 80s. I have both English and French Disk packs in their binders. I want to preserve them, but I'm not having much luck with my XU1541 adapter. Help?
Hi! I never did use a XU1541 and went right to the XUM1541 aka ZoomFloppy which I have working pretty good with my old MacBook Pro and OpenCBM. I assume you've installed OpenCBM? Does the command "cbmctrl detect" without quotes return any info?
@@8_Bit I suppose i should be more specific. I can get some copying to work, its more like some sort of copy protect stops most of it.
If there are any kind of copy protection or even errors on the disk, then I think XU1541 can't handle it. Check out the "Design goals" section on the XU1541 page: spiro.trikaliotis.net/xu1541
Which OpenCBM command are you using to do the copy? There's a few choices. You may be able to copy the disk file-by-file instead of block-by-block and get most of the data off it.
@@8_Bit I'll take a look thanks. I was using a full disk copy, unsure which command ATM.
I’ve never found out why the RESTORE key needs a sharp whack to do anything.?
Apparently Commodore put the wrong capacitor on the Restore key line! There are some articles online about how to fix this. Some revisions don't have this problem, apparently.
@@8_Bit I was told as a 5+yo kid that it was deliberate so you can’t do it by accident.
It’d be a good topic for a video. This computer is something special if we’re STILL dissecting it and finding out it’s capabilities 40 years later. I will never understand it all, but your videos help.
@@JesusisJesus It probably was somewhat on purpose, but they probably didn't intend it to require THAT sharp a hit.
LOAD "$" ,8,1
👍
So... what do you call SHIFT LOCK?😀
SHIFT/LOCK :) It's interesting to note that the original PET didn't have a SHIFT LOCK key so it perfectly complied with the rule of shift accessing the function on the upper part of the key. The addition of SHIFT LOCK broke that rule.
SHIFT LOCK is one function, so it should be called "SHIFT LOCK". It locks the shift. RUN and STOP are two different functions, like 4, $, and CYN are three different characters/function, so you should only say the function or character you are referencing.
@@csbruce I would argue that this depends on your audience. When I am teaching how to get to these keys I would mention what keys are involved. If I am positive that my audience knows, then I agree. As a teacher who has taught to people completely new, when I explain bold, I have to say CTRL-B to them on a PC because they don't know where to find "Bold" yet. Years ago, in the days of typewriters, I had to explain that the enter key was like the carriage return key on the typewriter. As late as 1990 I had to explain this to someone from another first world country because he had never seen a computer. I even had one person that I had to explain it differently because that person had seen NEITHER. They were both from Siberia. I had a student who had never seen the triangular shaped "play" button on ANY device he had ever used because he had only seen live music. As teachers, we have to be cognizant of the audience.
I'm not trying to disagree, just pointing out that context makes a difference.