Jump to content
IGNORED

SWUtils (SimCheck, SimTest, OSDump)


Panther

Recommended Posts

SimCheck is a utility that's possibly useful for those with more Atari computers than they can keep track of.  SimCheck detects and displays information on the following:

 

System type (XL/XE or 400/800)

CPU type (6502, 65C02, 65C816)

Base memory size

High memory size (65C816)

XL/XE (PORTB), Axlon, and Mosaic banks

PORTB bank bits and compability (Compy-Shop / RAMBO)

OS version

BASIC version

Video system, frequency, and GTIA or CTIA

U1MB/Incognito

VBXE

Sophia 2

PokeyMAX

Display of base and extended memory maps, Axlon banks

Executable and 8K cartridge version included.

 

SimCheck-1.0.jpg
SimCheck-1.7.xexSimCheck-1.7.bin

Version 1.2: Minor updates including some text and additional Axlon info in the memory map.
Version 1.2a: Corrects Axlon detection bank order.

Version 1.2c: Fixes issues with Axlon/Mosaic bank detection.

Version 1.3: Adds display of writable base memory in 4K blocks.  Minor fixes.

Version 1.4: Reorganized memory allocation, fixes to cartridge behavior, corrected Mosaic memory detection issues, minor display updates, added GTIA/CTIA detection.

Version 1.4a: Fixed GTIA/CTIA detection not always working (OS dependent).

Version 1.5: Various fixes, added 65C816 high memory detection.

Version 1.6: Corrects issues with GTIA/CTIA detection (finally?), now shows when unable to detect Basic version (typically when run from cartridge).

Version 1.7: Fixed bug (introduce in v1.5) in extended bank mapping, new indexing method and other memory reductions.

 

 

 

SimTest is a memory test utility, available in both executable and cartridge versions.  SimTest is still being developed and currently tests base memory, extended memory, and Axlon banks.  It is completely non-destructive and tests all available base memory, including its own program space.  On an XL/XE system with no cartridges loaded, SimTest can test all 64KB base memory except the hardware register range, D000-D7FF.  Features are still being added.

 

SimTest-0.8.thumb.png.0b8d1b00a39754d7520940e110d8ce1b.png

SimTest-0.10.xexSimTest-0.10.bin

Version 0.7: Added Axlon bank testing, improved test information.

Version 0.8: Added extended memory testing, fixed test of 1MB Axlon.

Version 0.9: Allow additional tests after failed test (clear display and reset error count), show extended memory map at startup, other fixes.

Version 0.10: Fixed bug in extended bank mapping display.

 

 

OSDump allows dumping a system's OS to disk and detects whether a system is an XL/XE or 400/800, providing the appropriate options.  Each OS can be dumped in its entirety, or you can select individual portions (E000-FFFF main OS, D800-DFFF floating point math package, etc.), with support for OmniMon/OmniView and other OS's residing at C000-CFFF on a 400/800.  Currently the system stores ROMs to default filenames on D:, but future versions will likely allow selecting save paths.

 

OSDump-1.2.thumb.png.f1ac1e126b776928e4a737dd78cc639d.png

OSDump-1.2.xex

Version 1.2: Added menu with dump options.

 

 

MFDisk is designed to work with the internal Atari 800 version of the MyIDE interface, such as the one found on the GPB by Panos.  It's a rewrite of the FDISK.BAS program that was included on the utility disk from Mr. Atari.  It might also work with other versions of the MyIDE, including the external version.

 

MyIDE-FDisk.thumb.png.c1c6a1a76bdb87a9d85b8bc974d3c939.png

MFDisk.xex

Edited by Panther
Updated SimCheck to version 1.7 and SimTest to version 0.10 (bug fixes).
  • Like 26
  • Thanks 12
Link to comment
Share on other sites

Outstanding job as always @Panther!

 

Small footprint, great mileage. :D

 

Question for @Simius: Panther actually looked into detecting SECAM video with the help of an 800XLF Secam Rose (FGTIA).

 

Is there a way -via Poking an address or else?- to distinguish the SECAM FGTIA from the PAL GTIA?

 

Beyond the limited palette of the SECAM FGTIA, the 2 chips have their fair share of differences.

 

Would it be possible to detect which one we're dealing with based on architecture alone?

 

Following the custom SOPHIA solutions you previously created for the SECAM systems, I wonder if you'd have an angle on this.

 

Thank you!

Link to comment
Share on other sites

When I checked this SECAM 800XL, it appeared that even though there may be differences in output capabilities, everything returned in the $d000-$d0ff registers were identical to what could be read from a standard PAL version.  I don't think there is any way to distinguish the two from the CPU side.

 

Link to comment
Share on other sites

SECAM needs extra GTIA pins for the video output, which are taken from TRIGs.  TRIG inputs are combined into a single serial input which is updated once per scanline.

Likely this could be used to distinguish PAL and SECAM but you'd probably need a dongle that joins a PORTA output but to fire button input.

 

An alternative method might be to get the user to plug in a joystick and press the button a few times.

Monitor the transitions and if all occur close to where the HSync takes place on the scanline, then it's probably SECAM.

Edited by Rybags
  • Thanks 1
Link to comment
Share on other sites

 

Excellent - the more memory checkers the better! Tried it out this evening on two machines, and I may have found some bugs / nuances with different hardware...

 

With my NTSC 800XL with tf_hh 512KB SRAM memory expansion (the one that sits under ANTIC)

 

Running the .CAR from Ultimate Cart, SimCheck initially detects this system as 576KB Rambo with 32 banks using bits 7 6 5 3 2, but after pressing reset, it then shows 560KB/31 banks, with bank $2D missing.

 

On the same system running the XEX from SpartaDOS X 4.49c on SIDE2 cart also I get 560KB/31 banks also showing $2D as the missing bank. Mucking with CONFIG.SYS to USE=OSRAM, disabling RAMDISK, etc, it intermittently reports the correct 32 banks.

 

Running disk based spartados or Realdos while SIDE2 cart is present (booting via COLD /N) shows similar results, unless the SIDE2 cart is removed completely.

Only if there is no SIDE2 or Ultimate cart in the system does it reliably show 32 banks.

 

Lastly I tested it in a 256K XL with ICD RAMBO upgrade, and it correctly detects 256KB/12 banks using bits 6 5 3 2.

 

If run in SDX without X command, screen is not restored to SDX command prompt when exiting: typing SDX CLI commands work, but I cannot see anything until pressing reset.. Using X to run SimCheck restores screen properly on exit. This is true for both the 576K 800XL, and the 256K 800XL.

Link to comment
Share on other sites

11 hours ago, Rybags said:

SECAM needs extra GTIA pins for the video output, which are taken from TRIGs.  TRIG inputs are combined into a single serial input which is updated once per scanline.

Likely this could be used to distinguish PAL and SECAM but you'd probably need a dongle that joins a PORTA output but to fire button input.

 

An alternative method might be to get the user to plug in a joystick and press the button a few times.

Monitor the transitions and if all occur close to where the HSync takes place on the scanline, then it's probably SECAM.

A dongle sounds excessive, and the joystick method sounds iffy, so I think I'll pass on trying to implement these.  I guess the user is simply going to need to peek his or her head around to the back of the system and see what monitor port it has.  Only slightly worse than having to figure out of they're on an XL/XE or 800 to determine if they have a U1MB or Incognito, for which I recommended the digital scale interface method since it would be difficult to load enough accessories into an XL or XE to make them weigh as much as an 800.

 

  • Like 1
Link to comment
Share on other sites

9 hours ago, Nezgar said:

Running the .CAR from Ultimate Cart, SimCheck initially detects this system as 576KB Rambo with 32 banks using bits 7 6 5 3 2, but after pressing reset, it then shows 560KB/31 banks, with bank $2D missing.

 

On the same system running the XEX from SpartaDOS X 4.49c on SIDE2 cart also I get 560KB/31 banks also showing $2D as the missing bank. Mucking with CONFIG.SYS to USE=OSRAM, disabling RAMDISK, etc, it intermittently reports the correct 32 banks.

 

Running disk based spartados or Realdos while SIDE2 cart is present (booting via COLD /N) shows similar results, unless the SIDE2 cart is removed completely.

Only if there is no SIDE2 or Ultimate cart in the system does it reliably show 32 banks.

 

Lastly I tested it in a 256K XL with ICD RAMBO upgrade, and it correctly detects 256KB/12 banks using bits 6 5 3 2.

 

If run in SDX without X command, screen is not restored to SDX command prompt when exiting: typing SDX CLI commands work, but I cannot see anything until pressing reset.. Using X to run SimCheck restores screen properly on exit. This is true for both the 576K 800XL, and the 256K 800XL.

Thank you for the input, I was able to replicate bank $2D showing as missing and will get to the bottom of where it's hiding.

 

I have a RAMBO 256K XL and when I hooked it up to test I was surprised to see it come up with 14 banks until I read the RAMBO manual and saw that it actually swaps in the base memory banks, so I added a check so that any memory mod that tries to swap in main memory banks into the extended location will be detected.  Axlon does this too, which is why the first bank of Axlon memory is not counted.

 

The last issue I've not been able to replicate, but it's what happens if the display list does not get put back properly.  Are you using the default configuration (no CONFIG.SYS)?

 

Link to comment
Share on other sites

43 minutes ago, Panther said:

This should fix the missing bank problem.  I've also cleaned up one of the routines, thus the smaller size.  I would like to be able to edit the initial post so I can post updates there.

You can now edit the first post indefinitely.

 

 ..Al

  • Like 2
Link to comment
Share on other sites

I think the joystick method would work well.

Horizontal timing can be tricky if you're doing other things but PMGs could be used - overlay in pairs through the screen (they can be invisible) - when fire button transition occurs, do HITCLR then check the first collision that occurs.

You'd miss them during the vertical offscreen (72 of 312 scanlines) but otherwise a few button press/release cycles should get the info you need.

 

Alternative to that might be to use WSYNC and a countdown - the CSYNC occurs not too long after a WSYNC release so shouldn't be too hard to implement.

Link to comment
Share on other sites

3 hours ago, Rybags said:

I think the joystick method would work well.

Horizontal timing can be tricky if you're doing other things but PMGs could be used - overlay in pairs through the screen (they can be invisible) - when fire button transition occurs, do HITCLR then check the first collision that occurs.

You'd miss them during the vertical offscreen (72 of 312 scanlines) but otherwise a few button press/release cycles should get the info you need.

 

Alternative to that might be to use WSYNC and a countdown - the CSYNC occurs not too long after a WSYNC release so shouldn't be too hard to implement.

I'll see what I can do, though I'm not entirely convinced of the usefulness of something that determines the video type for machines that use completely different video connectors.

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

  • 4 weeks later...

I'm fairly certain I'm not in Tawain.  Also, I was thinking of dropping the "Simple Checker" and just calling it SimCheck since that's what I keep referring to it as anyway.

 

As for changes, one issue I'm not quite sure how to deal with is where a cartridge is installed that covers up the RAM on a 48K Atari (800 or 400), so SimCheck can only see the 40K or 32K below the cartridge(s).  I'm thinking of maybe just listing it as 32K or 40K and if a ROM is detected above that then suggest that it might be 48K.

  • Haha 1
Link to comment
Share on other sites

2 minutes ago, reifsnyderb said:

On a more serious note...

 

I was wondering why with my Axlon card, under "Banks Detected" shows None/Unknown but then shows the Axlon banks.  Is this a bug?

 

Because the "banks detected" refers to the standard XL/XE memory banks.  It actually used to say "XL/XE Banks Detected:", but I had to shorted it to make more room in the right column.  Maybe I can word it differently.

  • Like 1
Link to comment
Share on other sites

27 minutes ago, Panther said:

I'm fairly certain I'm not in Tawain.  Also, I was thinking of dropping the "Simple Checker" and just calling it SimCheck since that's what I keep referring to it as anyway.

 

As for changes, one issue I'm not quite sure how to deal with is where a cartridge is installed that covers up the RAM on a 48K Atari (800 or 400), so SimCheck can only see the 40K or 32K below the cartridge(s).  I'm thinking of maybe just listing it as 32K or 40K and if a ROM is detected above that then suggest that it might be 48K.

Just joking about Taiwan.  I knew better.   :-D

 

While it's possible to check to see if a cartridge is inserted, I don't know of any way to determine if there is RAM present but unusable.

 

Best Regards,

 

Brian

 

Edit To Add:  I know screen real-estate is pretty tight, but maybe just look for a cartridge and somehow note on the line of the base memory that having a cartridge installed makes it impossible to accurately determine base RAM?  (i.e.  "Cartridge Detected")

 

 

 

 

Edited by reifsnyderb
Link to comment
Share on other sites

23 minutes ago, Panther said:

Because the "banks detected" refers to the standard XL/XE memory banks.  It actually used to say "XL/XE Banks Detected:", but I had to shorted it to make more room in the right column.  Maybe I can word it differently.

Makes sense.  Yeah, just a minor wording change would help.  It is hard to fit everything onto a 40 column display, though.  Maybe just "XL/XE Banks"?

 

Either way, your program does a good job.  Thanks!

Edited by reifsnyderb
Link to comment
Share on other sites

59 minutes ago, reifsnyderb said:

Makes sense.  Yeah, just a minor wording change would help.  It is hard to fit everything onto a 40 column display, though.  Maybe just "XL/XE Banks"?

 

Either way, your program does a good job.  Thanks!

Done, will be clearer in the next release.

Thank you!

Link to comment
Share on other sites

  • 1 month later...
2 hours ago, Frankie said:

Been so long since I opened my machine ... I don't have a Sophia 2!! I have an original Sophia with DVI output. 

I believe that would be the Sophia rev. C.  Unfortunately, the versions before the Sophia 2 don't provide any signature in the hardware registers to go on.

 

Link to comment
Share on other sites

2 hours ago, reifsnyderb said:

For the next version, could the version of Altirra Basic be detected and shown as well?  Thanks!

This capability was already added, but detection is going to depend on how you launch SimCheck.  To begin with, it needs to be with the executable version, not the cartridge.  If you're running in Altirra and emulating a 400/800 then you'll need to launch it from a DOS or menu system since if you launch an executable directly from Altirra it detaches any cartridges.

 

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...