Panther Posted February 23, 2022 Share Posted February 23, 2022 I'm trying to find the best method of determining the presense of Ultimate 1MB or Incognito in a system and whether it's possible to retrieve the firmware version. Quote Link to comment Share on other sites More sharing options...
Beeblebrox Posted February 23, 2022 Share Posted February 23, 2022 @Panther I'd imagine Flashjazzcat is ya man there Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted February 23, 2022 Share Posted February 23, 2022 I believe press "HELP" key during power on for U1M and "Inverse Video" key on Incognito should take you into the BIOS Quote Link to comment Share on other sites More sharing options...
Beeblebrox Posted February 23, 2022 Share Posted February 23, 2022 @TGB1718 I took the OP's question to mean from a programming perspective, (eg what code to use in a program to detect the presence of said upgrades and return the firmware version). Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted February 23, 2022 Share Posted February 23, 2022 2 minutes ago, Beeblebrox said: @TGB1718 I took the OP's question to mean from a programming perspective, (eg what code to use in a program to detect the presence of said upgrades and return the firmware version). Was too early when I read that 1 Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 23, 2022 Share Posted February 23, 2022 (edited) 6 hours ago, Panther said: I'm trying to find the best method of determining the presense of Ultimate 1MB or Incognito in a system and whether it's possible to retrieve the firmware version. This is deliberately difficult since U1MB obfuscates its registers precisely to prevent software from disturbing the configuration or encountering data or registers not compatible with a system without U1MB. Aside from a famously publicised corner case regarding repeated PIA registers which - if deliberately exploited - will simply leave you with a locked up system, the only way to positively ID the hardware is via the same method employed by UFLASH, and that is to manipulate the SDX banking register in order to access the firmware metadata encoded in ROM. The metadata is fully documented in the technical documentation, but if SpartaDOS X happens to be disabled on the target system, even this detection method will be impossible. You could instead try probing the RTC's SPI registers (which should always be present), but it would be impossible to differentiate between an Incognito machine and an U1MB machine in this way, and there are some important differences between the two. Caveat to that last point: you could use the SPI registers to read the NVRAM configuration data. If that produced meaningful data (i.e. a configuration with a valid checksum), you'd then have to discern from the NVRAM data whether it belonged to an U1MB or Incognito system. If SDX is turned off in the configuration, there is absolutely no way to obtain the firmware revision information, let alone positively identify the hardware. Moreover, you have the problem of detecting U1MB and Incognito hardware which uses the original firmware, which had (rudimentary) versioning information which is totally incompatible with the versioning info in the newer firmware. Edited February 23, 2022 by flashjazzcat Quote Link to comment Share on other sites More sharing options...
xxl Posted February 23, 2022 Share Posted February 23, 2022 11 minutes ago, flashjazzcat said: will simply leave you with a locked up system I didn't know that u1mb crashes when reading from repeated registers. I thought it only crashed when writing to repeated registers. Thanks for the info. 2 Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 23, 2022 Share Posted February 23, 2022 (edited) 14 minutes ago, xxl said: I didn't know that u1mb crashes when reading from repeated registers. I thought it only crashed when writing to repeated registers. Thanks for the info. Never tried. Don't know. Could one establish the presence of U1MB merely by reading from the repeated registers? Thanks in advance for the info. By the way: where did I assert that reading from the repeated registers would crash the system? My: you almost had me believing your own bullshit there. I was insinuating that if you wrote to the repeated registers in the manner you're fond of doing, then the locked up system would tell you that the system had U1MB installed. But nowhere did I infer that this outcome was of any practical use whatsoever to the OP. Edited February 23, 2022 by flashjazzcat Quote Link to comment Share on other sites More sharing options...
xxl Posted February 23, 2022 Share Posted February 23, 2022 if it does not hang when reading from repeated registers, it will not give the correct result anyway when we have u1mb, so this moteda could tell if it is u1mb or not. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 23, 2022 Share Posted February 23, 2022 Just now, xxl said: if it does not hang when reading from repeated registers, it will not give the correct result anyway when we have u1mb, so this moteda could tell if it is u1mb or not. Excellent. If this operation can also be used to differentiate between Incognito and U1MB, the OP's problem is solved. Quote Link to comment Share on other sites More sharing options...
xxl Posted February 23, 2022 Share Posted February 23, 2022 so there is need to find a method to distinguish 400/800HW from XL/XE HW and from combining both you will get the answer which modification was instaled ? Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 23, 2022 Share Posted February 23, 2022 1 minute ago, xxl said: so there is need to find a method to distinguish 400/800HW from XL/XE HW and from combining both you will get the answer which modification was instaled ? Seems so, but since Incognito in XL/XE mode impersonates an XL/XE system, attempting to detect 800 hardware will not be much use, and if the Incognito happens to return 'normal' PIA register reads, it will be hard to know whether it's an Incognito machine or a standard XL/XE. This is why I suggested the RTC as a possibility, since SPI reads will return determinate data on an U1MB/Incognito system and random bus data on anything else. The final task would then be to differentiate U1MB NVRAM data from Incognito NVRAM data. Quote Link to comment Share on other sites More sharing options...
Panther Posted February 23, 2022 Author Share Posted February 23, 2022 5 hours ago, flashjazzcat said: Aside from a famously publicised corner case regarding repeated PIA registers which - if deliberately exploited - will simply leave you with a locked up system, the only way to positively ID the hardware is via the same method employed by UFLASH, and that is to manipulate the SDX banking register in order to access the firmware metadata encoded in ROM. The metadata is fully documented in the technical documentation, but if SpartaDOS X happens to be disabled on the target system, even this detection method will be impossible. You could instead try probing the RTC's SPI registers (which should always be present), but it would be impossible to differentiate between an Incognito machine and an U1MB machine in this way, and there are some important differences between the two. Thank you, I will look into how the RTC is accessed. Detecting U1MB vs. Incognito isn't at all important, so I won't worry about that. I'll avoid attacking the U1MB via repeated register writes. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 23, 2022 Share Posted February 23, 2022 42 minutes ago, Panther said: I will look into how the RTC is accessed. This will give you a running start (the U1MB RTC driver I wrote for Sparta 3.x and derivatives). The clock detection routine will effectively confirm the presence of U1MB/Incognito. 1 Quote Link to comment Share on other sites More sharing options...
Panther Posted February 23, 2022 Author Share Posted February 23, 2022 40 minutes ago, flashjazzcat said: This will give you a running start (the U1MB RTC driver I wrote for Sparta 3.x and derivatives). The clock detection routine will effectively confirm the presence of U1MB/Incognito. Thank you. I was looking at a routine posted by Candle at some point, but so far that wasn't working. This shows the addresses $d5fe for select and $d5ff for I/O. I'll look at what your code is doing. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 23, 2022 Share Posted February 23, 2022 14 minutes ago, Panther said: I'll look at what your code is doing. My apologies. I had actually intended to link you to the source code. Here it is: ultd MADS source.zip 1 Quote Link to comment Share on other sites More sharing options...
Panther Posted February 23, 2022 Author Share Posted February 23, 2022 I also just found this with this help of archive.org's Internet Way Back Machine... D3E2 RTCOUT (W) Bit 0 Chip Enable Bit 1 SPI Clock Bit 2 SPI MOSI (Master Out, Slave In) Bits 7-3 Reserved D3E2 RTCIN (R) Bit 0-2 Reserved Bit 3 SPI MISO (Master In, Slave Out) Bit 7-4 Reserved 1 Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 23, 2022 Share Posted February 23, 2022 Yep. That's reflected in the mask equates at the top of the source code. 1 Quote Link to comment Share on other sites More sharing options...
Panther Posted February 23, 2022 Author Share Posted February 23, 2022 The info used to be on spiflash.org when there was actually something there! Now if I can just not be bothered with work so that I may continue with my project. Thank you for the assistance. 1 Quote Link to comment Share on other sites More sharing options...
Panther Posted February 24, 2022 Author Share Posted February 24, 2022 (edited) Your detection method works well, of course. Thank you! Another feature added to my little utility I've been working on the past few days. Edited February 24, 2022 by Panther Added additional image. 1 1 Quote Link to comment Share on other sites More sharing options...
Beeblebrox Posted February 24, 2022 Share Posted February 24, 2022 (edited) @Panther Nice work. Will it also at some stage be able to detect Sophia 1/2, UAV, Super colour board, VXBE and Rapidus? (Will it be able to scan small planets for alien life forms too? ) Also are you planning on incorporating any other features similar to Sysinfo in either this or a future program perchance? (Just curious) Edited February 24, 2022 by Beeblebrox Quote Link to comment Share on other sites More sharing options...
Panther Posted February 24, 2022 Author Share Posted February 24, 2022 I'm not going into so much detail on OS versions and dates, benchmarks, or disk info. I'm designing this to be run from a cartridge so no DOS info either, although it can also be an executable. This is primarily just a basic hardware info screen. I'm just trying to keep this fairly small and simple for some quick info, although I did just add sound output to test POKEY sound with left and right channel capability. I'm not trying to replace SysInfo or XRAM. 1 Quote Link to comment Share on other sites More sharing options...
Beeblebrox Posted February 24, 2022 Share Posted February 24, 2022 (edited) @Panther Cool. Yeah was just curious. UAV, Sophia and VBXE and Rapidus detection would be cool IMHO given it is detecting U1MB and Incognito and general Stero presence/upgrades but I see ya point with the rest. Edited February 24, 2022 by Beeblebrox Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 24, 2022 Share Posted February 24, 2022 Sophia 1, SCCC and UAV would be challenging to detect in software given the fact they are completely passive upgrades which don't show up anywhere on the system bus. Perhaps the software could instruct the user to open the case, look in the machine, and then respond to some Y/N prompts asking what they saw. 1 4 Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted February 24, 2022 Share Posted February 24, 2022 1 hour ago, flashjazzcat said: Perhaps the software could instruct the user to open the case, look in the machine, and then respond to some Y/N prompts asking what they saw. That is so funny ? 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.