Commodore 128 MONITOR has another command: J -- which does JSR to your code, instead of JMP, so after it ends with RTS, it exits cleanly. It also allows L to load to a certain address, and allows use of other numerical systems (% for binary, & for decimal), defaulting to hex (do .C00 LDAFE, and it assembles). I miss it here. Plus/4 is fun still: no sprites, but still, the colors =]
It's + for decimal; & is octal. The C128 monitor also takes 5-hex-digit addresses, where the high nybble is actually the BANK configuration to use when referencing the memory. So bank 15 addresses start with F, bank 0 RAM starts with 0, etc. Oh, and as a side note: on the 128, you have to type moN to abbreviate MONITOR; mO is instead MOVSPR.
Hello from BC. You made a great contribution to the community, Robin. If I wanted to create software and/document it, then you'd be the first person that I'd turn to, because of your expertise, teaching ability, and ability to put it in a video. Good job!
My intent was to comment on each of these videos as I went along. But life has a way of making things more complicated than desired.. and you're probably getting tired of my ramblings. I love these. I've watched 20 or 21 now.. skipped one about an Atari pad or something (but will eventually go back and watch that one as well). Not sure which video it was now, but it might be more than one.. something you said about "working it out as you record" instead of editing it before release? Anyway, I prefer these "uncut" ones myself. Please don't heavily edit them. It's much more helpful and informative to me to get the full picture. Keep up the good work!
Thanks for the trip down memory lane Robin. The +4 was my first computer as I couldn't afford a C64 back then. I learnt so much from it, it was a great little programmers machine, I was kind of disappointed when I got a 64 as it didn't have a monitor or built in bitmap commands. C64 became my "console" for gaming and the + 4 stayed as my PC, that's how I'd think of them now. I still have my +4 but it suffered the failing CPU/TED chip death. Maybe my Grans old +4 in a relatives attic still works though.....
I remember being very disappointed when the Plus/4 was released, it looked so cool compared to the old bread box, but besides more colors it was totally inferior. It would've been great if instead Commodore had developed a new VIC chip with more colors and allowing the 6510 to run at it's full 3-4MHz and perhaps added a built in REU with 256kB plus maybe 2 SID chips and a parallel floppy interface, now that would've been an exciting machine.
They had tons of possibilities, instead they released a device that almost got the whole company killed (well, it kind of did - they never fully recovered from that blow). Even in hindsight, I can't find any redeeming feature about, it was such an abomination.
I liked the Plus/4, especially because of the hugely better BASIC and faster floppy drive. To me, the C64 felt the weaker machine, and I had both. Sprites were probably the biggest loss of the Plus/4.
The thing I recall clearly from back then is that the electronics surplus place suddenly had light gray Commodore 16 keyboards for like 5$. I bought a few to create festive C64 keyboards.
The processor was faster and the basic was better as well. It had lots of graphics commands like Circle and draw with the C64 didn't making writing cool basic games way easier for a kid.
I started learning about computers with the Plus/4 and the C16 at around age 8, but in the end I only learned a bit of 6502 assembly as an adult, so the MONITOR was always a bit of a blindspot for me. Even if the manual describes it, just watching a pro using and adding useful bits of trivial (also including other C= 8 bits) it helps so much to have a more in-depth understanding of the thing. Thanks!
Oh boy, this was my first encounter with a computer at the age of 14 in 1985. After learning some BASIC I discovered the monitor and was so fascinated by the guts of the machine. It was on a C116. 😍
If you hold [RUN STOP] and press the reset button, you'll land directly into the monitor. If my memory serves me, that combination works on the Commodore 128 as well.
One of the nice things about TED/264-series machines is that pulling out the BASIC ROM IC will still yield a working computer. In this case, the machine should still "boot" directly to the monitor. I think you can boot directly to the monitor by holding down STOP or C= on power-on (the correct key/sequence eludes me right now). On a side note, the C=16 manual is terribly brief and doesn't explain many concepts found in the Plus/4 counterpart, even though they are similar machines. I remember seeing the MONITOR command in my manual and thought it had something to do with computer screens. I had a B/W TV with my C=16 and was so confused as to what this command did for TV screens and why it showed some cryptic numbers and letters. It wasn't until I got my Super Snapshot years later (on a different computer) that I understood the intent!
Thank you for showing that to me! I just took my plus 4 out of the box again, and hooked it up next to my 64! I played with the spread sheet and word processor a couple years ago. Guess I should have got deeper in the book!
I talk about my Timex/Sinclair 1000 more than some of my viewers like! :) ua-cam.com/video/yxdxah0B3qo/v-deo.html I've also shown my TRS-80 Model III in a video about TRS-80 easter eggs.
@@8_Bit true true, actually I should have said I wonder if we’ll see any Z80 assembly language? Even if it’s totally biased about how much better 6502 is, it would be interesting to see a compare/contrast on them.
7:08 Clever use of BCC instead of JMP, to save a byte and speed program execution. I'm guessing the BSOUT routine never sets the carry flag on return, so this is probably a reliable use case. 👍 I know it takes up four more bytes, but I like the idea of substituting JSR $FFE4, BEQ $2000, RTS so the user can press a key to exit instead of needing to reset the machine. 😁
I admire you that you want to understand it all. especially for various platforms and computers. like you don't get lost in all of this. I do not know. greetings.
Hahaha "Fill" @ 18:13 Beautiful. And you left in the AODY in the credits. haha Did you figure out what you had to change the O to in that byte to print an N?
I remember seeing the monitor command in my c16 manual which had no other reference on how it worked. I had some knowledge of 6502 from the Vic20 and I reverse engineered the operations of monitor with plokta.
Boy, if I had anyone around back in the day with a spare hour to explain this... but assembly remained a mystery for a very long time. I had a book about BASIC long before I got the machine, I was crazy into programming, with a blind spot of the size of the Universe. Or at least 64K. So many lost opportunities... Alright, it would have clearly taken more than an hour, but in a few days, that kid would have understood the principles. Parents, educate your children.
The page numbers were probably in the correct spot before someone decided to produce the book in a ringbound format. If you don't do it right the pages will swap sides. The simple solution is to insert a blank page at the beginning of the book before you ring bind it.
I'm not sure how the binding method has anything to do with it. You'd need to add an extra blank page either way, because which pages are on which sides of the binding also affects which pairs of pages are printed on the same piece of paper.
The page numbering is really bizarre. It changes from even on the left to odd on the left between chapters. Chapter-ending empty pages on the left are unnumbered, which causes the shift. However, page numbers are consistently near the binding.
nice thing about it is that it does not 'display what you just typed in'. it actually does a full disassembly/dump and rewrites that editor line every time again. so if you try to assemble code to rom areas it will not display what you just typed in but what is actually still there. also immediately disclosing defects such as broken ram.
A few years ago, I found a pristine-in-box Plus/4 for $50. I was quite pleased with the new addition to the collection, but I made a serious mistake by not immediately heat-sinking the TED and CPU. It died after just a few hours of use. (black screen)
Every time I power on my Plus/4 I wonder if this power cycle will be the one that it dies on. I repair quite a few Commodores for folks and the TED line is by far the least reliable. I still love them for all of their strange quirks.
@@MichaelDoornbos You should thank Commodore marketing for that! They are, of course, responsible for *all the other flaws* if we believe the engineers.
3:36 Worse than having inferior hardware, it was extremely incompatible with the C64, including for peripherals and most importantly for software. 27:26 That might be because the Kernal Save call uses an exclusive end address. 33:21 The song's out of order: the PET was released in December 1977 while the Atari 2600 was released in September 1977. 33:58 This part's right. Was there any other popular processor that was purely 8-bit? The Z-80 and 6809 had 16-bit data registers.
Well, to be fair the 6502 isn't itself purely 8-bit either. 16 address lines, 16-bit program counter, and the zero page and stack resolve (eventually) to 16-bit addresses as well, only with fixed upper bytes ($00 and $01 respectively). Plus, y'know, sta $d020. The only chips that were ever "purely" their bittage was the early 32-bit CPUs like the 68020 or 80386...but even there, you can often have a 32-bit register+8 or 16 bit offset, or 16-bit I/O addresses in the case of x86 etc. Later x86 chips like the Pentium have 64-bit data busses despite being otherwise purely 32-bit, and IIRC the Pentium Pro introduced PAE and 36+ address lines etc. amd64-based systems aren't purely 64-bit either: none of 'em have 64 address lines.
I like how they named the command Hunt, presumably because Search or Find would conflict with Save and Fill. Personally, I would have gone with Search and Put. That's probably a property of the English language. If you have more than N one-letter commands, at least one of them will be awkwardly named and hard to remember.
Yes, another command some of these monitors have is Step (single-step through code) but due to the S already being used, it's commonly assigned to Z. Ztep.
In addition N is commonly used as "step next" which does not follow a JSR, executes the subroutine just like it would be an atomic 6502 instruction. Very helpful for debugging.
hmm despite save automatically including the prg load offset header it does not change target pc automatically for g upon load to the start of the loaded code. but rather to the end of it :P
would probably have opted to display the processor status in binary tho. with the letters above it like they are in the 6502 datasheet. don't think anyone is used to seing that displayed in hex :P also typing in a BRK should result in target address being increased by 2 and another line to appear with the nop or ff but i guess the cbm editor code cannot facilitate that extra line in the middle of existing code (in which case i'd still increase the address by 2 and just not show the extra new line)... so you can just G 2000 G G G your way through the breakpoints. which currently you can't.
I wonder how much code is shared between the 3 models I can think of that have a monitor in ROM (the PET, the Plus4/16, the 128) or if they have an identical feature set. And I wish the C-64 had a resident monitor. The one in my Epyx Fastload was not very feature rich (no assembler)
As far as I know, the Plus/4 monitor was modified and expanded into the C128 monitor. The PET monitor (aka TIM) is extremely bare bones and doesn't have an assembler either.
I should check out how the Plus/4 memory was mapped, it looks odd that it says ~60K bytes free, then some BASIC interpreter data is at around $8100, mid-way thru the addressing space. Guess those 60K are not contiguous?
Plus/4 BASIC has a contiguous ~60K bytes of RAM free, but from $8000 up is the ROM and I/O overlays that can be switched in and out. I haven't seen any benchmarks (or attempted them myself) but BASIC performance must suffer due to the extra overhead due to switching the BASIC interpreter etc. in and out. I know for sure that BASIC 7 on the C128 is significantly slower than BASIC 2 on the C64 due to similar bank-switching, at least when running BASIC 2-only code. In some cases I'm sure the extra functionality of BASIC 7 makes up for the loss of pure speed, and this may be true for BASIC 3.5 as well.
@@8_Bit Seems like a natural segue with your previous video about measuring time delays. Does a FOR-NEXT at the start of a BASIC program run faster than the same loop at the end of a ~60K BASIC program on a Plus4/ or 128? I am far too lazy to do it myself ... :)
Yes, it is a really nice looking machine. I find the arrow keys tolerable; at least they're "intuitive" unlike the various computers that put all 4 cursor keys in a single horizontal row, like later Apple II machines, and Spectrum. Ugh!
@@8BitNaptime I strongly dislike those top-row cursor keys on the 128 too, and never use them, since fortunately they kept the C64 style keys below the return key.
The Plus/4 was such a bizarre result of what they wanted to do. If they wanted to capture the ultra-low-end market so badly, they should have just made a cost-reduced VIC-20, like what the 64C was to the 64. Wikipedia says that even as early as '83, people were getting sick of their habit of releasing new machines that were incompatible with all the others and came to suspect that the 64 wasn't going to stay on the market very long either before it was replaced with something else. Which is ironic in hindsight but understandable in context.
The Commodore 16, and in some markets, the C116, partly fulfilled the goal of the TED project. For a short time the C16 did replace the VIC-20 in stores, but few wanted it when the C64 was available for not a lot more money, especially when you start adding things like disk drives and monitors.
You're on the right track, but the quest for the ultra-low-end market was a poor call to begin with. Even at the time these machines were being green-lit it should have been abundantly clear that computers in that market segment were aggressively terrible. Better still to have focused those R&D resources on continuing to brutally cost-reduce the machine that *was already successful* (the 64) and to come up with an actually-viable, non-waste-of-time Next Act. By dithering with terrible ideas like the TED, they just put themselves further into the crosshairs of the inevitable.
@@jpcompton They were a '70s company that was lucky enough with the 64 that they could continue with their '70s attitude for 10 years too long. I'd even put the 128 in the category of "what were they thinking". But when they put their minds to it, they got some nice 8-bit hardware done, like the REU, 1351 mouse, 1571 and 1541-II.
@@8BitNaptime I overall agree on your assessment of the 128, a machine which sold in surprisingly large numbers for just how little value it added over a C64. I'm intrigued by the idea that a "'70s attitude" was responsible, though: the C64's win-at-retail success was born of a substantially different strategy than the PET's. I'd need more convincing on that front. In hindsight, the winning move of the 1980s was Intel/Microsoft's "become too big to fail" strategy and no amount of 8-bit cost-optimization and/or superior 16-bit rollout strategy was going to beat that. But I don't see that PET-era thinking was the underlying reason. Can you elaborate?
One thing I never understood is, if the Plus/4 has the same amount of memory as the C64 _and_ has a superior BASIC, how can it also have about 20,000 more bytes available to BASIC?
The BASIC ROM overlays RAM at $8000 and up (which I touch upon near the end of the video in the discussion of location $07F8) so it needs to be switched in and out as the code is executed. This undoubtedly slows down BASIC 3.5 compared to BASIC 2.0, but I'm not sure how much. I know the C128's BASIC 7.0 is significantly slower than BASIC 2.0.
@@8_Bit Well, I guess engineering is about compromises. Some good, some bad. I do remember being disappointed in BASIC 7.0 when I was messing around with a friend's 128 back in the day. As a kid I assumed "7.0" would mean "better in every way" to "2.0". Although it is certainly more user-friendly, it is quite a bit slower as you say. When using BASIC on the Plus/4 this switching is done automatically, but I guess asm programmers have to manage all that themselves.
why oh why their own tedmon thinks brk is a one bye instruction tho... they literally made the 6502 :P and when you enter brk it only increases the address by 1 instead of also autofilling a nop behind it :P
The BRK instruction is meant for software interrupts. I have never seen anyone utilize a software interrupt on the Commodore 8-bit computers. Ironically, software interrupts are heavily used on UNIX operating system, on hardware far more powerful than 8-bit computers.
The only inferior aspects of the Plus/4 is lack of hardware sprites and at least the SID chip or better sound circuitry. The Commodore Plus/4 is superior to Commodore 64 in every other aspect. Also, the TED was the first ever system-on-a-chip.
@@colinstu Oh, right, I see. $D2 is $52 with the high bit set, or in other words, the bottom 7 bits of both $52 and $D2 are identical: %1010010. For the BASIC keywords like MONITOR, Commodore BASIC only needs or cares about the low 7 bits, as 2^7 is 128 characters, way more than is needed to spell any keywords. So the high bit is used to flag the end of a keyword, so they don't have to use an extra delimiter between the words in the list in ROM, like a comma or space or a zero (null) byte. So basically Commodore BASIC sees either $52 or $D2 as an "R" while parsing the word MONITOR, but when it sees that high bit set in $D2, it also knows it's the end of the word. Hopefully that helps. It's kind of a tricky concept.
I came here looking for the C16 and instead found it's ugly sister. Could you please do more on the C16 as I feel it was a great machine, kinda the lovechild of the Vic20 and C64 🤣
Uh oh, better go check my machines to make sure they're still functional... or should I just leave them off and just assume they still work? I'm scared to open Schrodinger's box and make the observation. :(
@@retroCombs The merest mention of a T*D machine causes a T*D machine somewhere in the world to fail. The only way to keep those fragile mistakes operable is to STOP TALKING ABOUT THEM
Love the outro music
My thoughts exactly. Just enjoying and exploring, that's why I love this channel.
I love how you slow this complex subject down and articulate all your hard-won knowledge bit by bit.
I absolutely loved my Plus4. Underrated machine. Flawed but Underrated. Some recent games really show what it could do.
Commodore 128 MONITOR has another command: J -- which does JSR to your code, instead of JMP, so after it ends with RTS, it exits cleanly. It also allows L to load to a certain address, and allows use of other numerical systems (% for binary, & for decimal), defaulting to hex (do .C00 LDAFE, and it assembles). I miss it here. Plus/4 is fun still: no sprites, but still, the colors =]
It's + for decimal; & is octal. The C128 monitor also takes 5-hex-digit addresses, where the high nybble is actually the BANK configuration to use when referencing the memory. So bank 15 addresses start with F, bank 0 RAM starts with 0, etc.
Oh, and as a side note: on the 128, you have to type moN to abbreviate MONITOR; mO is instead MOVSPR.
@@markjreed Indeed 😸
LOL @18:14, I see what you did there. 😀
I actually learned to program in machine language on my C64 using the Super Snapshot 5 monitor. Loved it.
So happy to get my plus/4 working once again. Lovely machines, they are!
Hello from BC.
You made a great contribution to the community, Robin. If I wanted to create software and/document it, then you'd be the first person that I'd turn to, because of your expertise, teaching ability, and ability to put it in a video.
Good job!
My intent was to comment on each of these videos as I went along. But life has a way of making things more complicated than desired.. and you're probably getting tired of my ramblings.
I love these. I've watched 20 or 21 now.. skipped one about an Atari pad or something (but will eventually go back and watch that one as well).
Not sure which video it was now, but it might be more than one.. something you said about "working it out as you record" instead of editing it before release?
Anyway, I prefer these "uncut" ones myself. Please don't heavily edit them. It's much more helpful and informative to me to get the full picture. Keep up the good work!
Thanks for the trip down memory lane Robin.
The +4 was my first computer as I couldn't afford a C64 back then. I learnt so much from it, it was a great little programmers machine, I was kind of disappointed when I got a 64 as it didn't have a monitor or built in bitmap commands. C64 became my "console" for gaming and the + 4 stayed as my PC, that's how I'd think of them now.
I still have my +4 but it suffered the failing CPU/TED chip death. Maybe my Grans old +4 in a relatives attic still works though.....
I remember being very disappointed when the Plus/4 was released, it looked so cool compared to the old bread box, but besides more colors it was totally inferior.
It would've been great if instead Commodore had developed a new VIC chip with more colors and allowing the 6510 to run at it's full 3-4MHz and perhaps added a built in REU with 256kB plus maybe 2 SID chips and a parallel floppy interface, now that would've been an exciting machine.
They had tons of possibilities, instead they released a device that almost got the whole company killed (well, it kind of did - they never fully recovered from that blow). Even in hindsight, I can't find any redeeming feature about, it was such an abomination.
I liked the Plus/4, especially because of the hugely better BASIC and faster floppy drive. To me, the C64 felt the weaker machine, and I had both. Sprites were probably the biggest loss of the Plus/4.
It was confusing back then when the TED machines came out. We were kinda expecting to see a C64 with a stack of new tricks.
The thing I recall clearly from back then is that the electronics surplus place suddenly had light gray Commodore 16 keyboards for like 5$. I bought a few to create festive C64 keyboards.
The processor was faster and the basic was better as well. It had lots of graphics commands like Circle and draw with the C64 didn't making writing cool basic games way easier for a kid.
Awesome video! I'd love to see more TED machines on your channel!
I started learning about computers with the Plus/4 and the C16 at around age 8, but in the end I only learned a bit of 6502 assembly as an adult, so the MONITOR was always a bit of a blindspot for me. Even if the manual describes it, just watching a pro using and adding useful bits of trivial (also including other C= 8 bits) it helps so much to have a more in-depth understanding of the thing. Thanks!
Oh boy, this was my first encounter with a computer at the age of 14 in 1985. After learning some BASIC I discovered the monitor and was so fascinated by the guts of the machine. It was on a C116. 😍
another great video and useful information that brings back so sweet memories of coding from the “talking hand”. love it, thank you again, Robin!
So awesome, I was thinking of hooking up my Plus/4 to mess around with the BASIC! Now I just need to sit back and relax...
Your explanations are super. Bravo!
If you hold [RUN STOP] and press the reset button, you'll land directly into the monitor. If my memory serves me, that combination works on the Commodore 128 as well.
I swear watching Robin and some of the other retrotubers is like having the computer programme 30 years late but still great.
One of the nice things about TED/264-series machines is that pulling out the BASIC ROM IC will still yield a working computer. In this case, the machine should still "boot" directly to the monitor. I think you can boot directly to the monitor by holding down STOP or C= on power-on (the correct key/sequence eludes me right now).
On a side note, the C=16 manual is terribly brief and doesn't explain many concepts found in the Plus/4 counterpart, even though they are similar machines. I remember seeing the MONITOR command in my manual and thought it had something to do with computer screens. I had a B/W TV with my C=16 and was so confused as to what this command did for TV screens and why it showed some cryptic numbers and letters. It wasn't until I got my Super Snapshot years later (on a different computer) that I understood the intent!
Thank you for showing that to me! I just took my plus 4 out of the box again, and hooked it up next to my 64! I played with the spread sheet and word processor a couple years ago. Guess I should have got deeper in the book!
6502 song is hilarious. I was just wondering if we’d ever see a Z80 machine on this channel but probably not!
I talk about my Timex/Sinclair 1000 more than some of my viewers like! :) ua-cam.com/video/yxdxah0B3qo/v-deo.html
I've also shown my TRS-80 Model III in a video about TRS-80 easter eggs.
Like the C128?
@@8_Bit true true, actually I should have said I wonder if we’ll see any Z80 assembly language? Even if it’s totally biased about how much better 6502 is, it would be interesting to see a compare/contrast on them.
@@Okurka. I see what you did there
Great walkthrough Robin, the built in monitor looks like a neat tool, even if it's a bit simplistic. Cool song as well!
Thank you for this video! That was so clear and consistent and easy to follow.
7:08 Clever use of BCC instead of JMP, to save a byte and speed program execution. I'm guessing the BSOUT routine never sets the carry flag on return, so this is probably a reliable use case. 👍 I know it takes up four more bytes, but I like the idea of substituting JSR $FFE4, BEQ $2000, RTS so the user can press a key to exit instead of needing to reset the machine. 😁
I admire you that you want to understand it all. especially for various platforms and computers. like you don't get lost in all of this. I do not know. greetings.
Hahaha "Fill" @ 18:13 Beautiful.
And you left in the AODY in the credits. haha
Did you figure out what you had to change the O to in that byte to print an N?
It now seems that I have bad RAM in the Plus/4 - I couldn't get it to print that N no matter what I tried. Pretty bizarre! :)
I remember seeing the monitor command in my c16 manual which had no other reference on how it worked. I had some knowledge of 6502 from the Vic20 and I reverse engineered the operations of monitor with plokta.
Boy, if I had anyone around back in the day with a spare hour to explain this... but assembly remained a mystery for a very long time. I had a book about BASIC long before I got the machine, I was crazy into programming, with a blind spot of the size of the Universe. Or at least 64K. So many lost opportunities... Alright, it would have clearly taken more than an hour, but in a few days, that kid would have understood the principles. Parents, educate your children.
The page numbers were probably in the correct spot before someone decided to produce the book in a ringbound format. If you don't do it right the pages will swap sides. The simple solution is to insert a blank page at the beginning of the book before you ring bind it.
I'm not sure how the binding method has anything to do with it. You'd need to add an extra blank page either way, because which pages are on which sides of the binding also affects which pairs of pages are printed on the same piece of paper.
Usually, the even-numbered pages are on the left, and the odd-numbered pages are on the right. This copy of the manual has them the other way around.
The page numbering is really bizarre. It changes from even on the left to odd on the left between chapters. Chapter-ending empty pages on the left are unnumbered, which causes the shift. However, page numbers are consistently near the binding.
Very nicely explained. 👍
Man I wish this existed when I was tryna learn 6502 ml!
nice thing about it is that it does not 'display what you just typed in'. it actually does a full disassembly/dump and rewrites that editor line every time again. so if you try to assemble code to rom areas it will not display what you just typed in but what is actually still there. also immediately disclosing defects such as broken ram.
Great tune
A few years ago, I found a pristine-in-box Plus/4 for $50. I was quite pleased with the new addition to the collection, but I made a serious mistake by not immediately heat-sinking the TED and CPU. It died after just a few hours of use. (black screen)
Every time I power on my Plus/4 I wonder if this power cycle will be the one that it dies on. I repair quite a few Commodores for folks and the TED line is by far the least reliable. I still love them for all of their strange quirks.
It's just all so terrible.
@@jpcompton as a kid I always thought they looked cool
So funny! I have that same feeling. Even bought a modern power supply for it.
@@MichaelDoornbos You should thank Commodore marketing for that! They are, of course, responsible for *all the other flaws* if we believe the engineers.
@@jpcompton marketing is ALWAYS responsible for anything that goes wrong. Followed closely by managers.
This was my first computer. I am so old.
3:36 Worse than having inferior hardware, it was extremely incompatible with the C64, including for peripherals and most importantly for software.
27:26 That might be because the Kernal Save call uses an exclusive end address.
33:21 The song's out of order: the PET was released in December 1977 while the Atari 2600 was released in September 1977.
33:58 This part's right. Was there any other popular processor that was purely 8-bit? The Z-80 and 6809 had 16-bit data registers.
The lyricist probably had a few too many pints of 8-Bit Pale Ale while composing this ditty.
It had a IEC port for a 1541.
@@8BitNaptime But still won't run C64 software.
Z80 also had 4b ALU, so on average it's 8b 😸
Well, to be fair the 6502 isn't itself purely 8-bit either. 16 address lines, 16-bit program counter, and the zero page and stack resolve (eventually) to 16-bit addresses as well, only with fixed upper bytes ($00 and $01 respectively). Plus, y'know, sta $d020.
The only chips that were ever "purely" their bittage was the early 32-bit CPUs like the 68020 or 80386...but even there, you can often have a 32-bit register+8 or 16 bit offset, or 16-bit I/O addresses in the case of x86 etc. Later x86 chips like the Pentium have 64-bit data busses despite being otherwise purely 32-bit, and IIRC the Pentium Pro introduced PAE and 36+ address lines etc. amd64-based systems aren't purely 64-bit either: none of 'em have 64 address lines.
I like how they named the command Hunt, presumably because Search or Find would conflict with Save and Fill. Personally, I would have gone with Search and Put.
That's probably a property of the English language. If you have more than N one-letter commands, at least one of them will be awkwardly named and hard to remember.
Yes, another command some of these monitors have is Step (single-step through code) but due to the S already being used, it's commonly assigned to Z. Ztep.
In addition N is commonly used as "step next" which does not follow a JSR, executes the subroutine just like it would be an atomic 6502 instruction. Very helpful for debugging.
When you do the reset while holding Run/Stop key you'll go directly to Tedmon and if I remember correctly Basic program will also survive this reset.
hmm despite save automatically including the prg load offset header it does not change target pc automatically for g upon load to the start of the loaded code. but rather to the end of it :P
would probably have opted to display the processor status in binary tho. with the letters above it like they are in the 6502 datasheet. don't think anyone is used to seing that displayed in hex :P also typing in a BRK should result in target address being increased by 2 and another line to appear with the nop or ff but i guess the cbm editor code cannot facilitate that extra line in the middle of existing code (in which case i'd still increase the address by 2 and just not show the extra new line)... so you can just G 2000 G G G your way through the breakpoints. which currently you can't.
hey is this possible that you show us about assembly charachter scrolling or bullet routines please.
The Phil Collins command was pretty unknowns to me lol 18:00
Fill Collins! :)
My first forays into assembly programming were from using Tedmon. The Plus/4 was generally a nice machine to use, but not much of a games console.
It had some neat games like Trailblazer and Winter Events
I wonder how much code is shared between the 3 models I can think of that have a monitor in ROM (the PET, the Plus4/16, the 128) or if they have an identical feature set. And I wish the C-64 had a resident monitor. The one in my Epyx Fastload was not very feature rich (no assembler)
As far as I know, the Plus/4 monitor was modified and expanded into the C128 monitor. The PET monitor (aka TIM) is extremely bare bones and doesn't have an assembler either.
@ 6:23 Oh yeah :)
Just got hold of a +4 and love it......Though the keyboard is not very responsive... What's the best way to clean it?
I've never worked on a +4 keyboard; this seems like a thorough article though: plus4world.powweb.com/plus4encyclopedia/500009
Who's the guy who pops up down at the bottom left when you talk about the Fill command at 18:14?
Fill ;-)
I'm more familiar with the Apple //e monitor, which has similar functionality.
Not really interested in "Minus/60", but stayed for the outro song.
The plus 4 had a 7501 chip. Does that make much difference? Instruction set etc?
Same instruction set and makes no difference for programming it. It just has a slightly different pin configuration.
I should check out how the Plus/4 memory was mapped, it looks odd that it says ~60K bytes free, then some BASIC interpreter data is at around $8100, mid-way thru the addressing space. Guess those 60K are not contiguous?
Plus/4 BASIC has a contiguous ~60K bytes of RAM free, but from $8000 up is the ROM and I/O overlays that can be switched in and out. I haven't seen any benchmarks (or attempted them myself) but BASIC performance must suffer due to the extra overhead due to switching the BASIC interpreter etc. in and out. I know for sure that BASIC 7 on the C128 is significantly slower than BASIC 2 on the C64 due to similar bank-switching, at least when running BASIC 2-only code. In some cases I'm sure the extra functionality of BASIC 7 makes up for the loss of pure speed, and this may be true for BASIC 3.5 as well.
whoops, didn;t watch thru the end, it was explained right there :D
@@8_Bit Seems like a natural segue with your previous video about measuring time delays. Does a FOR-NEXT at the start of a BASIC program run faster than the same loop at the end of a ~60K BASIC program on a Plus4/ or 128? I am far too lazy to do it myself ... :)
@@8_Bit whoa, that was thorough. Thanks. ^^
who the heck was that, that flashed in the bottom left corner of the screen when you were talking about the F command?
That's Fill Collins!
@@8_Bit ohhh
I don't care for the arrow keys but I've always thought the Plus/4 is one of the best looking PC's of all time.
Yes, it is a really nice looking machine. I find the arrow keys tolerable; at least they're "intuitive" unlike the various computers that put all 4 cursor keys in a single horizontal row, like later Apple II machines, and Spectrum. Ugh!
@@8_Bit How about the 128?
@@8BitNaptime I strongly dislike those top-row cursor keys on the 128 too, and never use them, since fortunately they kept the C64 style keys below the return key.
@@8_Bit Perhaps Commodore thought humanity was going to evolve a long finger, like an aye-aye, to use those keys...
It is definitely a sexy beast. Deserves a space on the lookers shelf next to an 800XL.
The Plus/4 was such a bizarre result of what they wanted to do. If they wanted to capture the ultra-low-end market so badly, they should have just made a cost-reduced VIC-20, like what the 64C was to the 64. Wikipedia says that even as early as '83, people were getting sick of their habit of releasing new machines that were incompatible with all the others and came to suspect that the 64 wasn't going to stay on the market very long either before it was replaced with something else. Which is ironic in hindsight but understandable in context.
The Commodore 16, and in some markets, the C116, partly fulfilled the goal of the TED project. For a short time the C16 did replace the VIC-20 in stores, but few wanted it when the C64 was available for not a lot more money, especially when you start adding things like disk drives and monitors.
You're on the right track, but the quest for the ultra-low-end market was a poor call to begin with. Even at the time these machines were being green-lit it should have been abundantly clear that computers in that market segment were aggressively terrible. Better still to have focused those R&D resources on continuing to brutally cost-reduce the machine that *was already successful* (the 64) and to come up with an actually-viable, non-waste-of-time Next Act. By dithering with terrible ideas like the TED, they just put themselves further into the crosshairs of the inevitable.
@@jpcompton They were a '70s company that was lucky enough with the 64 that they could continue with their '70s attitude for 10 years too long. I'd even put the 128 in the category of "what were they thinking". But when they put their minds to it, they got some nice 8-bit hardware done, like the REU, 1351 mouse, 1571 and 1541-II.
@@8BitNaptime I overall agree on your assessment of the 128, a machine which sold in surprisingly large numbers for just how little value it added over a C64. I'm intrigued by the idea that a "'70s attitude" was responsible, though: the C64's win-at-retail success was born of a substantially different strategy than the PET's. I'd need more convincing on that front. In hindsight, the winning move of the 1980s was Intel/Microsoft's "become too big to fail" strategy and no amount of 8-bit cost-optimization and/or superior 16-bit rollout strategy was going to beat that. But I don't see that PET-era thinking was the underlying reason. Can you elaborate?
Takk!
Thank you!
Oh yes tip: hold stop to reset straight into tedmon.
you can hold the commodore key and reset. Takes you to the monitor.
As far as I remember, it's not the Commodore but the Run/Stop key you have to hold when resetting to get into TEDMON.
Similar to C128
One thing I never understood is, if the Plus/4 has the same amount of memory as the C64 _and_ has a superior BASIC, how can it also have about 20,000 more bytes available to BASIC?
The BASIC ROM overlays RAM at $8000 and up (which I touch upon near the end of the video in the discussion of location $07F8) so it needs to be switched in and out as the code is executed. This undoubtedly slows down BASIC 3.5 compared to BASIC 2.0, but I'm not sure how much. I know the C128's BASIC 7.0 is significantly slower than BASIC 2.0.
@@8_Bit Well, I guess engineering is about compromises. Some good, some bad. I do remember being disappointed in BASIC 7.0 when I was messing around with a friend's 128 back in the day. As a kid I assumed "7.0" would mean "better in every way" to "2.0". Although it is certainly more user-friendly, it is quite a bit slower as you say. When using BASIC on the Plus/4 this switching is done automatically, but I guess asm programmers have to manage all that themselves.
wow
why oh why their own tedmon thinks brk is a one bye instruction tho... they literally made the 6502 :P and when you enter brk it only increases the address by 1 instead of also autofilling a nop behind it :P
The BRK instruction is meant for software interrupts. I have never seen anyone utilize a software interrupt on the Commodore 8-bit computers. Ironically, software interrupts are heavily used on UNIX operating system, on hardware far more powerful than 8-bit computers.
hmm. the save command automatially adds the prg load offset header for ,8,1 loading. 00000000 00 20 a9 00 8d 19 ff 00 |. ......|
The only inferior aspects of the Plus/4 is lack of hardware sprites and at least the SID chip or better sound circuitry. The Commodore Plus/4 is superior to Commodore 64 in every other aspect. Also, the TED was the first ever system-on-a-chip.
Why do 52 and 55 both result in R?
Sorry, I'm not sure what part of the video you're referring to. Can you give me a rough time stamp of the part you're asking about?
@@8_Bit 25:35, sorry, D2 and 52... the high bit thing was confusing me.
@@colinstu Oh, right, I see. $D2 is $52 with the high bit set, or in other words, the bottom 7 bits of both $52 and $D2 are identical: %1010010. For the BASIC keywords like MONITOR, Commodore BASIC only needs or cares about the low 7 bits, as 2^7 is 128 characters, way more than is needed to spell any keywords. So the high bit is used to flag the end of a keyword, so they don't have to use an extra delimiter between the words in the list in ROM, like a comma or space or a zero (null) byte. So basically Commodore BASIC sees either $52 or $D2 as an "R" while parsing the word MONITOR, but when it sees that high bit set in $D2, it also knows it's the end of the word. Hopefully that helps. It's kind of a tricky concept.
@@8_Bit Interesting! Ty
I came here looking for the C16 and instead found it's ugly sister. Could you please do more on the C16 as I feel it was a great machine, kinda the lovechild of the Vic20 and C64 🤣
Uh oh, better go check my machines to make sure they're still functional... or should I just leave them off and just assume they still work? I'm scared to open Schrodinger's box and make the observation. :(
DO NOT DO IT
DO NOT THINK ABOUT IT
JUST WALK AWAY
Hunt is clever not to pick screen memory...
Oh lordy, I guess it's too late to issue my usual warning about wanton TED destruction. Sigh.
You were the first person I thought of when I saw this video ;)
Wait, I've not heard this warning. What did I miss? 😄
@@retroCombs The merest mention of a T*D machine causes a T*D machine somewhere in the world to fail. The only way to keep those fragile mistakes operable is to STOP TALKING ABOUT THEM
@@jpcompton Oh so it's talking about them that's the problem? I can keep running with wool socks on a carpet in winter and touch the bare motherboard?
Your pronunciation of "TED Mon" sounds suspiciously like "TECH Moan". Co-incidence?