General Category > LisaList2

An Arduino-Based Parallel Port Hard Drive Troubleshooter

<< < (8/10) > >>

AlexTheCat123:
I just uploaded a new version of the ProFile emulator code to GitHub (https://github.com/alexthecat123/ArduinoFile) with a few changes and bug fixes.

Thanks to James Denton, I was able to fix a timing-related bug that kept the emulator from working on certain people's Lisas that are slower than mine at putting an 0x55 on the parallel bus.

I also fixed a bug where the ready LED sometimes wouldn't come back on after the end of a read or write operation and added enough key-value store functionality to get the Moniker and Autoboot functions in the Selector working. I probably won't ever fully implement the key-value store since these are the only two Selector operations that use it, but I might end up doing it if someone ends up writing an application that actually needs it!

stepleton:
Probably not super necessary to add full key/value store support. I doubt it'll find additional uses anytime soon, but you never know.

One feature I was thinking of adding someday was caching a value for the clock. It's not clear how desirable the feature would be, but the idea goes like this. On startup, the Selector could check the Lisa's idea of the time. If it looked like a sensible value (as if someone had set the clock and then rebooted the machine), then the Selector would save the current time to the key/value store. On the other hand, if the Selector found that the Lisa's clock was clearly unset (as if someone had just plugged in the Lisa and turned it on), then the Selector would load the saved time from the key/value store and set the clock to that.

The time would be incorrect, sure, but these days the Lisa clock is always incorrect. The upside is that the Office System wouldn't have to keep reminding you to set the clock all the time.


Did you implement the "selector restore" functionality? Users encounter it as described here, and the protocol that allows it to work behind the scenes is here. I've found it's helped me out a few times now.

AlexTheCat123:

--- Quote ---One feature I was thinking of adding someday was caching a value for the clock.
--- End quote ---
That sounds like a good idea to me! Even if the time isn't correct, at least the Office System would stop bothering you about it!

Over the past few weeks, I've been thinking about making some sort of daughterboard that lets you connect a battery-backed RTC to the COP421 that will automatically update the clock (excluding the year, of course) to the current time whenever the Lisa is plugged in, but it might be a while before I'll get around to this and your Selector-based solution seems like a really good alternative.


--- Quote ---Did you implement the "selector restore" functionality?
--- End quote ---
Yep! I think I've implemented every Selector feature by now and "selector restore" has come in handy for me a couple of times as well!

rayarachelian:

--- Quote from: stepleton on May 07, 2022, 08:47:04 pm ---One feature I was thinking of adding someday was caching a value for the clock. It's not clear how desirable the feature would be, but the idea goes like this. On startup, the Selector could check the Lisa's idea of the time....

--- End quote ---

This triggers another thought: it might be useful to also save the portion of the 1K floppy RAM that maps to PRAM to the SDXC card and load it back in when the selector profile (or other profile) is loaded. This will likely help with MacWorks, perhaps it can be a switchable option for the end user if desired?

stepleton:

--- Quote from: rayarachelian on May 08, 2022, 12:02:11 pm ---This triggers another thought: it might be useful to also save the portion of the 1K floppy RAM that maps to PRAM to the SDXC card and load it back in when the selector profile (or other profile) is loaded. This will likely help with MacWorks, perhaps it can be a switchable option for the end user if desired?

--- End quote ---

This sounds like a great idea --- the first step of course is to determine what portion of the RAM that is and how to tell when it's initialised vs. uninitialised.

The Selector configuration data structure's feature bitmap is a 32-bit bitmap, and only two bits are used so far. It'll be easy to enable/disable switchable options like these.

Oh hey, speaking of switchable options, I forgot altogether: the Selector has the ability to display a little 128x32 bitmap logo when it starts up, kinda like the little picture you see with old Sun workstations. I forgot that I put that feature in there, and in fact I never tried it. Here's the code that does it. Who knows, maybe it even works! :)

The plan was (and I guess still is) that besides the Selector (which needs to be fairly small so that it boots up quickly), I'd make an additional set of Selector utilities that you could run from the Selector, including something that lets you edit that little bitmap, which lives in the key/value store.

On that note, @AlexTheCat, the list at the bottom of key_value.x68 is the set of all the key/value store elements that the Selector expects to find right now, as you may well know. It includes the entry that holds the logo image data.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version