Discussion:
undo C2Plus delete disk
(too old to reply)
engrav
2020-12-05 14:31:32 UTC
Permalink
Well I did it. Using C2Plus and hit delete disk. Poof. Gone.

I have all the stuff on another IIe so data is not lost but...

Would like to restore the drive.

Is there any way to restore the disk deleted with C2Plus delete disk?

Loren
foh
2020-12-06 02:19:23 UTC
Permalink
Post by engrav
Well I did it. Using C2Plus and hit delete disk. Poof. Gone.
I have all the stuff on another IIe so data is not lost but...
Would like to restore the drive.
Is there any way to restore the disk deleted with
C2Plus delete disk?
Loren
If it's a ProDOS fs, there are tools that can recover the
subdirectories. I don't recall which ones.
engrav
2020-12-06 16:59:28 UTC
Permalink
Post by foh
Loren
If it's a ProDOS fs, there are tools that can recover the
subdirectories. I don't recall which ones.
Hi
thanks
will start searching
maybe try first with Bag of Tricks Fixcat
I am Rob
2020-12-09 00:52:23 UTC
Permalink
Post by engrav
Post by foh
Loren
If it's a ProDOS fs, there are tools that can recover the
subdirectories. I don't recall which ones.
Hi
thanks
will start searching
maybe try first with Bag of Tricks Fixcat
Under Dos3.3, you will have to use a sector editor to locate track/sector lists and manually enter them back into the CATALOG area (Track 17 ($11)) along with the file name and sectors used, you believe the file to be.

Under Prodos, Formatting will zero out the Volume Directory. There are lots of utilities to undelete a file, but to recover the Volume Header is almost impossible, as there are no block links left in the main Volume Header. Using a block editor, one has to search the entire disk, block by block, and look for those Subdirectory headers and a File's Master block, that belong to the Volume Header. Then the Volume Bitmap Block needs to be adjusted to protect all the blocks that are used by all the files in the all the directories that are recovered.

This is an extremely arduous task. It can be done, but I know of no software written that can recover a volume. But is possible using a block editor and a great knowledge of the Directory and file structure.

You don't say what size the disk is, but I'm guessing a 5.25 floppy? And what format Prodos/Dos3.3?
engrav
2020-12-09 01:04:44 UTC
Permalink
Post by I am Rob
Post by engrav
Post by foh
Loren
If it's a ProDOS fs, there are tools that can recover the
subdirectories. I don't recall which ones.
Hi
thanks
will start searching
maybe try first with Bag of Tricks Fixcat
Under Dos3.3, you will have to use a sector editor to locate track/sector lists and manually enter them back into the CATALOG area (Track 17 ($11)) along with the file name and sectors used, you believe the file to be.
Under Prodos, Formatting will zero out the Volume Directory. There are lots of utilities to undelete a file, but to recover the Volume Header is almost impossible, as there are no block links left in the main Volume Header. Using a block editor, one has to search the entire disk, block by block, and look for those Subdirectory headers and a File's Master block, that belong to the Volume Header. Then the Volume Bitmap Block needs to be adjusted to protect all the blocks that are used by all the files in the all the directories that are recovered.
This is an extremely arduous task. It can be done, but I know of no software written that can recover a volume. But is possible using a block editor and a great knowledge of the Directory and file structure.
You don't say what size the disk is, but I'm guessing a 5.25 floppy? And what format Prodos/Dos3.3?
Thanks

Sounds bad

Was ProDOS on a Vulcan hard drive

Since I have all the stuff elsewhere
Maybe best to just take the time to restore it from old files

Have gone many years without deleting without a backup but I guess I finally did it

Is kinda humiliating

There was a warning in Copy2Plus but old brain missed it

Will run Fixcat and see what it says

Thanks again
I am Rob
2020-12-09 03:27:38 UTC
Permalink
Here is a hex dump that will find all the blocks that a subdirectory is at. It is fairly short, so type it in and check for errors.
It will list the block# and the subdirectory name. This will find ALL subdirectory headers and not just the ones in the Volume Header. I suppose I could modify this slightly to only find the the subdirectory headers that belong to the Volume Header. But see if this works for you first.

Change $0376 to the slot# x $10 (for drive#1 - slot#1=10, slot#2=20 .. slot#7=70)(for drive #2 add $80: slot#1=90, slot#2=A0 .. slot#7=F0)

0300:A9 00 8D 79 03 8D 7A 03 A2 17 86 06 20 00 BF 80
0310:75 03 AD 04 1E 29 F0 49 E0 D0 4A AD 23 1E C9 27
0320:D0 43 AD 24 1E C9 0D D0 3C AD 7A 03 AE 79 03 20
0330:41 F9 A9 AD 20 ED FD AD 04 1E 29 0F AA A0 00 B9
0340:05 1E 09 80 20 ED FD C8 CA D0 F4 20 8E FD C6 06
0350:D0 13 A9 17 85 06 AD 00 C0 10 FB 2C 10 C0 C9 9B
0360:D0 03 4C D0 03 EE 79 03 D0 A2 EE 7A 03 AD 7A 03
0370:C9 50 90 98 60 03 70 00 1E 00 50 2F F0 15 69 B0
0380:3F
engrav
2020-12-09 16:32:42 UTC
Permalink
Here is a hex dump that will find all the blocks that a subdirectory is at. It is fairly short, so type it in and check for errors.
It will list the block# and the subdirectory name. This will find ALL subdirectory headers and not just the ones in the Volume Header. I suppose I could modify this slightly to only find the the subdirectory headers that belong to the Volume Header. But see if this works for you first.
Change $0376 to the slot# x $10 (for drive#1 - slot#1=10, slot#2=20 .. slot#7=70)(for drive #2 add $80: slot#1=90, slot#2=A0 .. slot#7=F0)
0300:A9 00 8D 79 03 8D 7A 03 A2 17 86 06 20 00 BF 80
0310:75 03 AD 04 1E 29 F0 49 E0 D0 4A AD 23 1E C9 27
0320:D0 43 AD 24 1E C9 0D D0 3C AD 7A 03 AE 79 03 20
0330:41 F9 A9 AD 20 ED FD AD 04 1E 29 0F AA A0 00 B9
0340:05 1E 09 80 20 ED FD C8 CA D0 F4 20 8E FD C6 06
0350:D0 13 A9 17 85 06 AD 00 C0 10 FB 2C 10 C0 C9 9B
0360:D0 03 4C D0 03 EE 79 03 D0 A2 EE 7A 03 AD 7A 03
0370:C9 50 90 98 60 03 70 00 1E 00 50 2F F0 15 69 B0
0380:3F
so I copy paste to Virtual ][ 128k IIe and bsave and brun and get
"no buffers available"
engrav
2020-12-09 17:04:54 UTC
Permalink
Post by engrav
Here is a hex dump that will find all the blocks that a subdirectory is at. It is fairly short, so type it in and check for errors.
It will list the block# and the subdirectory name. This will find ALL subdirectory headers and not just the ones in the Volume Header. I suppose I could modify this slightly to only find the the subdirectory headers that belong to the Volume Header. But see if this works for you first.
Change $0376 to the slot# x $10 (for drive#1 - slot#1=10, slot#2=20 .. slot#7=70)(for drive #2 add $80: slot#1=90, slot#2=A0 .. slot#7=F0)
0300:A9 00 8D 79 03 8D 7A 03 A2 17 86 06 20 00 BF 80
0310:75 03 AD 04 1E 29 F0 49 E0 D0 4A AD 23 1E C9 27
0320:D0 43 AD 24 1E C9 0D D0 3C AD 7A 03 AE 79 03 20
0330:41 F9 A9 AD 20 ED FD AD 04 1E 29 0F AA A0 00 B9
0340:05 1E 09 80 20 ED FD C8 CA D0 F4 20 8E FD C6 06
0350:D0 13 A9 17 85 06 AD 00 C0 10 FB 2C 10 C0 C9 9B
0360:D0 03 4C D0 03 EE 79 03 D0 A2 EE 7A 03 AD 7A 03
0370:C9 50 90 98 60 03 70 00 1E 00 50 2F F0 15 69 B0
0380:3F
so I copy paste to Virtual ][ 128k IIe and bsave and brun and get
"no buffers available"
so solved that; wrong A and L in bsave
now runs but stops and see
0302- A=00 X=20 Y=00 P=36 S=E98
*
did change 0376 to 60
I am Rob
2020-12-09 23:18:47 UTC
Permalink
Post by engrav
Post by engrav
Here is a hex dump that will find all the blocks that a subdirectory is at. It is fairly short, so type it in and check for errors.
It will list the block# and the subdirectory name. This will find ALL subdirectory headers and not just the ones in the Volume Header. I suppose I could modify this slightly to only find the the subdirectory headers that belong to the Volume Header. But see if this works for you first.
Change $0376 to the slot# x $10 (for drive#1 - slot#1=10, slot#2=20 .. slot#7=70)(for drive #2 add $80: slot#1=90, slot#2=A0 .. slot#7=F0)
0300:A9 00 8D 79 03 8D 7A 03 A2 17 86 06 20 00 BF 80
0310:75 03 AD 04 1E 29 F0 49 E0 D0 4A AD 23 1E C9 27
0320:D0 43 AD 24 1E C9 0D D0 3C AD 7A 03 AE 79 03 20
0330:41 F9 A9 AD 20 ED FD AD 04 1E 29 0F AA A0 00 B9
0340:05 1E 09 80 20 ED FD C8 CA D0 F4 20 8E FD C6 06
0350:D0 13 A9 17 85 06 AD 00 C0 10 FB 2C 10 C0 C9 9B
0360:D0 03 4C D0 03 EE 79 03 D0 A2 EE 7A 03 AD 7A 03
0370:C9 50 90 98 60 03 70 00 1E 00 50 2F F0 15 69 B0
0380:3F
so I copy paste to Virtual ][ 128k IIe and bsave and brun and get
"no buffers available"
so solved that; wrong A and L in bsave
now runs but stops and see
0302- A=00 X=20 Y=00 P=36 S=E98
*
did change 0376 to 60
You crashed at $302 which means there is a BRK ($00) at $300. You did not type it in correctly.
engrav
2020-12-14 01:33:57 UTC
Permalink
Here is a hex dump that will find all the blocks that a subdirectory is at. It is fairly short, so type it in and check for errors.
It will list the block# and the subdirectory name. This will find ALL subdirectory headers and not just the ones in the Volume Header. I suppose I could modify this slightly to only find the the subdirectory headers that belong to the Volume Header. But see if this works for you first.
Change $0376 to the slot# x $10 (for drive#1 - slot#1=10, slot#2=20 .. slot#7=70)(for drive #2 add $80: slot#1=90, slot#2=A0 .. slot#7=F0)
0300:A9 00 8D 79 03 8D 7A 03 A2 17 86 06 20 00 BF 80
0310:75 03 AD 04 1E 29 F0 49 E0 D0 4A AD 23 1E C9 27
0320:D0 43 AD 24 1E C9 0D D0 3C AD 7A 03 AE 79 03 20
0330:41 F9 A9 AD 20 ED FD AD 04 1E 29 0F AA A0 00 B9
0340:05 1E 09 80 20 ED FD C8 CA D0 F4 20 8E FD C6 06
0350:D0 13 A9 17 85 06 AD 00 C0 10 FB 2C 10 C0 C9 9B
0360:D0 03 4C D0 03 EE 79 03 D0 A2 EE 7A 03 AD 7A 03
0370:C9 50 90 98 60 03 70 00 1E 00 50 2F F0 15 69 B0
0380:3F
end of first line, is 80 correct?
I am Rob
2020-12-14 07:04:38 UTC
Permalink
Post by engrav
Post by I am Rob
Change $0376 to the slot# x $10 (for drive#1 - slot#1=10, slot#2=20 .. slot#7=70)(for drive #2 add $80: slot#1=90, slot#2=A0 .. slot#7=F0)
0300:A9 00 8D 79 03 8D 7A 03 A2 17 86 06 20 00 BF 80
0310:75 03 AD 04 1E 29 F0 49 E0 D0 4A AD 23 1E C9 27
0320:D0 43 AD 24 1E C9 0D D0 3C AD 7A 03 AE 79 03 20
0330:41 F9 A9 AD 20 ED FD AD 04 1E 29 0F AA A0 00 B9
0340:05 1E 09 80 20 ED FD C8 CA D0 F4 20 8E FD C6 06
0350:D0 13 A9 17 85 06 AD 00 C0 10 FB 2C 10 C0 C9 9B
0360:D0 03 4C D0 03 EE 79 03 D0 A2 EE 7A 03 AD 7A 03
0370:C9 50 90 98 60 03 70 00 1E 00 50 2F F0 15 69 B0
0380:3F
end of first line, is 80 correct?
Yes. 80 stands for an MLI Block Read. It may not show up correctly when you list it in the monitor, but the 3 bytes that follow a JSR $BF00 are picked up by the Prodos MLI. Code will be executed properly upon return from the MLI and after those 3 bytes.
Nick Westgate
2020-12-11 21:14:10 UTC
Permalink
Post by engrav
maybe try first with Bag of Tricks Fixcat
Did you try Bag of Tricks II which handles ProDOS? It's on asimov.

Cheers,
Nick.
engrav
2020-12-12 04:07:03 UTC
Permalink
Post by Nick Westgate
Post by engrav
maybe try first with Bag of Tricks Fixcat
Did you try Bag of Tricks II which handles ProDOS? It's on asimov.
Cheers,
Nick.
Hi
Am gonna try both methods but will take a little time
will report back
engrav
2020-12-14 15:07:08 UTC
Permalink
Post by engrav
Post by Nick Westgate
Post by engrav
maybe try first with Bag of Tricks Fixcat
Did you try Bag of Tricks II which handles ProDOS? It's on asimov.
Cheers,
Nick.
Hi
Am gonna try both methods but will take a little time
will report back
so did both methods
Fixcat searched for lost directories > found many by name
The binary code ran without errors and displayed a long list of addresses, no names
kinda fun
I am Rob
2020-12-15 03:08:35 UTC
Permalink
Post by engrav
so did both methods
Fixcat searched for lost directories > found many by name
The binary code ran without errors and displayed a long list of addresses, no names
kinda fun
My guess is that if my program didn't print any directory names, then the wrong device number was entered at $0376.

$70 for slot #7, $60 for slot #6 ... $10 for slot #1.

Since Fixcat found the deleted directories, now you will have to rebuild them in the Volume directory.

There are two other programs I wrote that might interest you and will need that I don't think any other software can do for you.

The first one is a program that finds deleted files without a filename link. You only have to worry about files stored in the Volume Header. In the subdirectories, all the filenames and their links are still complete. The filename link normally points to the first block of a seedling file or the master block of a sapling or tree file. This first program can find the latter two and only if the master block is not fragmented. The only way to find a seedling file without any filename pointers, is to use a block editor. Look for blocks that don't have code that fully fills the block. Assess that the code is not part of a larger program and try to disassemble it and also make sure it does not already belong in any subdirectories. It is quite possible then that it belongs in the Volume directory.

The 2nd small utility program can actually protect and deprotect blocks. Once all the subdirectory links are re-established in the volume directory, then one can theoretically enter all the blocks numbers that have been reserved by files and directories and set them back to protected mode.

But the easier solution would be to write back to the Volume Bit Map (VBM) and write protect the entire disk. The reason is, you don't want to be able to save any files to the volume as it will definitely overwrite any hidden files that still need to be recovered.
engrav
2020-12-15 04:08:30 UTC
Permalink
Post by I am Rob
Post by engrav
so did both methods
Fixcat searched for lost directories > found many by name
The binary code ran without errors and displayed a long list of addresses, no names
kinda fun
My guess is that if my program didn't print any directory names, then the wrong device number was entered at $0376.
$70 for slot #7, $60 for slot #6 ... $10 for slot #1.
Since Fixcat found the deleted directories, now you will have to rebuild them in the Volume directory.
There are two other programs I wrote that might interest you and will need that I don't think any other software can do for you.
The first one is a program that finds deleted files without a filename link. You only have to worry about files stored in the Volume Header. In the subdirectories, all the filenames and their links are still complete. The filename link normally points to the first block of a seedling file or the master block of a sapling or tree file. This first program can find the latter two and only if the master block is not fragmented. The only way to find a seedling file without any filename pointers, is to use a block editor. Look for blocks that don't have code that fully fills the block. Assess that the code is not part of a larger program and try to disassemble it and also make sure it does not already belong in any subdirectories. It is quite possible then that it belongs in the Volume directory.
The 2nd small utility program can actually protect and deprotect blocks. Once all the subdirectory links are re-established in the volume directory, then one can theoretically enter all the blocks numbers that have been reserved by files and directories and set them back to protected mode.
But the easier solution would be to write back to the Volume Bit Map (VBM) and write protect the entire disk. The reason is, you don't want to be able to save any files to the volume as it will definitely overwrite any hidden files that still need to be recovered.
0376 is 40 and the card is in slot 4 and the little light on the card was constantly on so am 90% sure it was addressing the right card / slot

but Fixcat might be good enough since I have lots of the stuff elsewhere

I will rerun Fixcat and see if it finds anything that I do not have elsewhere

thanx for the program; was fun to try it; will save for the next time (ah er, there will be no next time)
I am Rob
2020-12-15 05:31:42 UTC
Permalink
Post by engrav
Post by I am Rob
Post by engrav
so did both methods
Fixcat searched for lost directories > found many by name
The binary code ran without errors and displayed a long list of addresses, no names
kinda fun
My guess is that if my program didn't print any directory names, then the wrong device number was entered at $0376.
$70 for slot #7, $60 for slot #6 ... $10 for slot #1.
Since Fixcat found the deleted directories, now you will have to rebuild them in the Volume directory.
There are two other programs I wrote that might interest you and will need that I don't think any other software can do for you.
The first one is a program that finds deleted files without a filename link. You only have to worry about files stored in the Volume Header. In the subdirectories, all the filenames and their links are still complete. The filename link normally points to the first block of a seedling file or the master block of a sapling or tree file. This first program can find the latter two and only if the master block is not fragmented. The only way to find a seedling file without any filename pointers, is to use a block editor. Look for blocks that don't have code that fully fills the block. Assess that the code is not part of a larger program and try to disassemble it and also make sure it does not already belong in any subdirectories. It is quite possible then that it belongs in the Volume directory.
The 2nd small utility program can actually protect and deprotect blocks. Once all the subdirectory links are re-established in the volume directory, then one can theoretically enter all the blocks numbers that have been reserved by files and directories and set them back to protected mode.
But the easier solution would be to write back to the Volume Bit Map (VBM) and write protect the entire disk. The reason is, you don't want to be able to save any files to the volume as it will definitely overwrite any hidden files that still need to be recovered.
0376 is 40 and the card is in slot 4 and the little light on the card was constantly on so am 90% sure it was addressing the right card / slot
but Fixcat might be good enough since I have lots of the stuff elsewhere
I will rerun Fixcat and see if it finds anything that I do not have elsewhere
thanx for the program; was fun to try it; will save for the next time (ah er, there will be no next time)
Was wandering how far you wanted to take it.

Loading...