Jump to content
  • entries
    45
  • comments
    10
  • views
    10,372

Disk rot redux, (or fixing ABBUC 454/B)


Atari_Ace

222 views

Recently I've been reading old ACE Eugene newsletters, as Kay Savetz posted a whole slew of them to archive.org.  When I read them, I take the opportunity to clean up the OCR of the issue as well so I can search it in the future.  For program listings, the OCR's tend to be terrible, so I prefer to find the listing on a PD disk if I can, and insert that into the OCR listing instead.

 

So I was reading the November 1983, issue, which has a copy of Stan Ockers "Cannibals and Missionaries".  I searched for a copy on a disk and found one on the ABBUC disk 454 side B, which I believe I obtained from the Pooldisk Too.  It's a saved BASIC copy, so I use the tools I've discussed previously in this blog to extract the file from the disk and parse the BASIC into a listing.  Unfortunately, the parse failed, the image is corrupt, so it needs some attention.

 

The first problem is the parser finds a line that has a zero length declared, so it loops on itself forever.  Actually, it would have except that my parser sees the line numbers aren't increasing and aborts the parse at that point.  The line with this error is the last line, 32768, or the immediate line [not quite, see addenda below].  I put in the correct length ($12 instead of $00) and my parser now outputs a listing.

 

The listing however, doesn't look right.  All the variables seem to be wrong, with FOR loops over string variables and other odd anomalies.  So I examine the variable names and I can see the names go immediate wrong, with the first two variables names being "CHR$(27)" and "$".  Looking at the listing, I know the first variable should be A$, so that I guess that the first value should instead be 'A' and then all the variables after that will shift down by one slot.  This does indeed seem to fix the listing, and I now can run the program from the disk.

 

So two byte changes and the listing is restored.  There may be more "bit rot" on this disk, but here's the "fixed" version for anyone who wants it.

 

Addenda

 

I probably should have examined the rest of the disk, as two more BASIC files have similar changes (SMOKEY and MELTDOWN),  suggesting this is a deliberate change to inhibit listing the programs.  Another common trait shared by these three files is that the last line is actually a valid line number (32767), not 32768 as you'd typically see for a SAVE'd BASIC file.  MELTDOWN is further protected by having the entire variable name table overwritten with $9B, rather than just the first value, so it can't be so easily restored.  In addition, it has an extra 16 bytes of garbage data at the end.

 

Anyhow, I've made similar small adjustments to the other two programs to make them more easily examinable for now.  I'll have to investigate how common this type of listing protection is.

 

454_b.atr

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   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...