TJBChris | CoCo 3: LOADM Magic @TJBChris | Uploaded August 2020 | Updated October 2024, 3 hours ago.
The Color Computer's LOADM command may seem mundane, but you can coax it to perform some pretty nifty tricks. In this video, I use LOADM to load a single BIN file that loads multiple non-contiguous blocks of data into different areas of the CoCo's memory. I then expand on it, coaxing LOADM to allow me to load data directly from disk into various control registers in the system, allowing me to manipulate the video and MMU by streaming bytes directly from disk into the control register locations.
Finally, I go into some detail about how I accomplished this, as well as some of the pitfalls encountered. Emulators can present challenges when used for projects like this, as I found out the hard way. My discussion of these issues is not a knock on emulators or emulation, but is intended to be a Public Service Announcement that when it comes to emulators vs. real hardware, YMMV.
For the "get-it-over-with-quick" folks:
Intro (0:00)
Load graphics image, BASIC program, and maniuplate low res text screen (1:40)
LOADM updates low res control registers, shows low res graphics image while loading it (3:25)
LOADM updates MMU blocks, sets hi res (bitplane) mode and window, loads image data into four 8K blocks. (4:30)
Emulator vs. real hardware issues (9:04)
LOADM patch to allow loading into control registers w/out IO ERROR (11:04)
Description of the hi-res loading process - MMU block switching (17:32)
Binary file walkthrough (20:43)
I do these videos unscripted, so I apologize if the in-the-moment descriptions of things are a bit all-over-the-place. If you have any questions/comments about this video, you can find me in any of these fine locations:
The CoCoTALK! Discord Server
The TRS-80 Color Computer (CoCo) group on Facebook
The CoCo Crew Podcast group on Facebook
On the Vintage Computer Forums (vcfed.org)
Thanks for watching!
The Color Computer's LOADM command may seem mundane, but you can coax it to perform some pretty nifty tricks. In this video, I use LOADM to load a single BIN file that loads multiple non-contiguous blocks of data into different areas of the CoCo's memory. I then expand on it, coaxing LOADM to allow me to load data directly from disk into various control registers in the system, allowing me to manipulate the video and MMU by streaming bytes directly from disk into the control register locations.
Finally, I go into some detail about how I accomplished this, as well as some of the pitfalls encountered. Emulators can present challenges when used for projects like this, as I found out the hard way. My discussion of these issues is not a knock on emulators or emulation, but is intended to be a Public Service Announcement that when it comes to emulators vs. real hardware, YMMV.
For the "get-it-over-with-quick" folks:
Intro (0:00)
Load graphics image, BASIC program, and maniuplate low res text screen (1:40)
LOADM updates low res control registers, shows low res graphics image while loading it (3:25)
LOADM updates MMU blocks, sets hi res (bitplane) mode and window, loads image data into four 8K blocks. (4:30)
Emulator vs. real hardware issues (9:04)
LOADM patch to allow loading into control registers w/out IO ERROR (11:04)
Description of the hi-res loading process - MMU block switching (17:32)
Binary file walkthrough (20:43)
I do these videos unscripted, so I apologize if the in-the-moment descriptions of things are a bit all-over-the-place. If you have any questions/comments about this video, you can find me in any of these fine locations:
The CoCoTALK! Discord Server
The TRS-80 Color Computer (CoCo) group on Facebook
The CoCo Crew Podcast group on Facebook
On the Vintage Computer Forums (vcfed.org)
Thanks for watching!