Boot Logo Needed!
I’ve made some additions to the ROM-based boot loader, so BMOW now has a proper boot logo paired with cool yet useless system diagnostics. All it needs now is a groovy start-up sound, and it will be a proper retro-80’s wanna-be machine! Power it up, or hit the reset button, and you’ll see this boot screen. You can then upload your program via USB from an attached PC to get something interesting going.
I spent quite a lot of time with a paint program attempting to create a cool boot logo, before admitting defeat and making this utilitarian 4-color logo. It’s actually a 16 color image, and the logo text is anti-aliased using additional colors, but it’s hard to see in the photo.
I’ve been pleased to discover that quite a few people are following BMOW’s evolution, and if anyone with better artistic chops wants to take a crack at making a more impressive BMOW logo, I’d love to hear from you! You’ll win fame (of a sort), fortune (not so much), and my gratitude. If this interests you, post a link in the comments, or send me an email. My address is in the “About BMOW” page. Some details on the format:
- Images can be either 252×64 with16 colors, or 126×64 with 256 colors.
- For 256 color images, the pixels will be twice as wide as they are tall. This is probably best achieved using a paint program by creating a 252×64 image with 256 colors, then scaling it by 50% horizontally when you’re done.
- Uncompressed BMP images are best.
- I lied about the height being 64: any image height that’s a multiple of eight is OK, but 64 is a good guide.
- I lied about the 256 color images: they actually must be 240 colors, but I can do that conversion myself if your image is 256 colors.
Things That Break
No blog update would be complete without a list of all the new things that have broken. Maybe some of you who are working on your own projects will feel better knowing how many random weird problems I have with BMOW.
1. Bootloader Abort – If you press ENTER while on the boot screen, BMOW will skip the USB download step, and jump directly to the program in RAM that you (presumably) downloaded earlier. This is handy after you reset from a program crash, since there’s no need to download the same program again. After I added the boot logo, though, the “ENTER to skip” behavior stopped working. It seemed that it wasn’t recognizing any input from the keyboard at all. With some experimentation, I found that this was influenced by what memory addresses the bootloader code was assembled to. By strategic placement of some NOP instructions, I was able to “fix” it, but I really don’t understand how it broke or why the NOPs make any difference.
2. Missed Keys – Once you load the Apple II monitor program, you can type a monitor command and hit ENTER, and it works fine. But for the next command you type, and all commands thereafter, the first key you press isn’t recognized, so “LIST” becomes “IST”. I think this has something to do with disabling interrupts for too long a period of time, and missing keyboard interrupts. Actually, I have no idea, but I like to make up plausible-sounding explanations.
3. Loss of VSYNC – A while back, I was having some troubles where clearing the video screen would cause a temporary loss of VSYNC, switching my display into power-saving mode. I made some adjustments, and the problem mostly went away. Well, now it’s back. When the video screen is displaying a full screen of text, and the text needs to be scrolled upward by one line, VSYNC is lost and the display retreats into power-saving mode again. At first this was happening almost 100% of the time when text was scrolled. Eventually I discovered that putting the functions in a different order in the file dropped the frequency of the problem to about 10%, even though the functions themselves were unchanged. The only difference was what addresses the code was assembled to. I have no explanation for that, but it hints at some deeper hardware problems that I’d prefer to sweep under the rug for now.
Read 1 comment and join the conversation1 Comment so far
Leave a reply. For customer support issues, please use the Customer Support link instead of writing comments.
“plausible-sounding explanations”
I’m convinced! 😛
Got no better ideas off the top of my head…