Stephen Boyd wrote:lewiscole wrote:
Setting aside the issue of whether or not you are legally allowed to
look at the internals of the disk file image (I thought disassembly was
one of the things forbidden in the license),
Not sure how this differs from using IOW$ to explore the file system
from within OS2200 itself. The same info is being looked at one way or another. This way is just easier since I don't have to mess with MASM.
Also, like I said, this is strictly an academic exercise. It's not like
I'm trying to reverse engineer Exec. That would be a career not a hobby
and I'm way too old for that.
Unfortunately, Univac/Sperry Univac/Sperry/Unisys (USUSU) has had a long
standing habit of making such old manuals disappear and so I suspect
that it will be virtually impossible for you to find such a manual.
Very true. I have an old version of the Data Structures manual and there
is a lot of stuff in there that isn't in the new one. There are problems
with even the old manual though. First, it assumes a level of knowledge
of Exec internals that I simply don't have. [...]
[...] Second, it is out of date. The structures described in the manual
don't always match the latest version. [...]
[...] Third, it is just plain vague in places. Which was always a
problem
with Univac docs, 1100 or otherwise.
I even tried looking at the source for an old version of the MFD
processor. But, like the manual, it is out of date and some of the code simply doesn't match the modern reality.
Stephen Boyd wrote:lewiscole wrote:
Not sure how this differs from using IOW$ to explore the file system
from within OS2200 itself. The same info is being looked at one way or
another. This way is just easier since I don't have to mess with MASM.
Well, I could be wrong, but I suspect that the Exec won't allow a user
to arbitrarily look at anything on disk using a IOW$ or any other I/O
related ER.
--
Stephen Boyd wrote:
lewiscole wrote:
It could be a coincidence, but I can't help but feel that there's a
possible correlation between your having to subtract 18 (i.e. 2 * 9) in
order to get your addresses to work out.
It's just a thought.
I've wondered about the same thing myself but have been unable to come
up with any logical reason for it.
Stephen Boyd wrote:
lewiscole wrote:
It could be a coincidence, but I can't help but feel that there's a
possible correlation between your having to subtract 18 (i.e. 2 * 9) in
order to get your addresses to work out.
It's just a thought.
I've wondered about the same thing myself but have been unable to come
up with any logical reason for it.
Okay, I'm just a poor dumb former bootstrap programmer (not a File
Control expert by any means), but long, long ago, I was interested in
how to go about find bits and pieces of a file on a disk (just like
other Bootstrap programmers have at one time or another) while playing
with the idea of putting the Exec in a file.
(And yes, this was a long time ago, back in the 2200/900 days before
MFA, et. al., actually did manage to put the Exec in a file.)
So, I'm not entirely ignorant about the joys of dealing with directory
tracks as they used to work, but it's clear to me that there's not
enough information here to make much sense of what's going on (at least
based on what I know).
Okay, let's start from the beginning again, shall we?
A directory track is a 1792-word long unit of storage made up of 28-word >sectors where a word is 36-bits long.
A DAS relative track number is the number of the directory track
starting at zero (0), so the first directory track is directory track 0,
the next directory track is directory track 1, and so on, up to a
maximum number of 4096 (AKA 010000) tracks per logical device (at least
in the Good Old Days).
To keep track of what sectors are in use within a directory track,
there's a Directory Allocation Sector (DAS) which internally contains
enough descriptors to describe the allocation of sectors in up to 9
directory tracks.
But there's also a pointer at the end of the each DAS, in the form of a
DAS relative track number, which points to the next directory track that >contains a DAS in it.
The directory tracks aren't so much a table as a linked list so I'm
somewhat confused by your reference to indexing into a table of DAS
entries.
To find the sector of the first directory track (assuming that there's
no Exec available to ask for help), one presumably would read the disk's >label (VOL1) which is to say read the third record (counting from one
[1]).
The sector address of the first directory track is kept in the label.
So when you talk about finding a DAS, how did you find it?
How do you know it's actually a DAS?
When you say that you have to "subtract 18 from the relative track
number", where did you get that track number to start with?
How do you know that the track number you got after subtracting 18 from
it was somehow "correct"?
And are all relative track numbers off by the same amount or does it
change as you make your way through the directory track chain?
And just to be thorough ...
What does the label say is the size of a sector in 36-bit words? (4,,H2)
What does the label say the size of track is in sectors? (4,,H1)
Where is the first directory track (in sectors?)? (3,,W)
And is the disk "fixed" (so that it has a non-zero LDAT index) or
"removable" (so that it has a zero LDAT index)?
Enquiring minds want to know ....
On 2025-01-12 1:49 p.m., lewiscole wrote:
Well, I could be wrong, but I suspect that the Exec won't allow a user
to arbitrarily look at anything on disk using a IOW$ or any other I/O
related ER.
From looking at an admittedly old version of MFD, this is exactly how
it reads the MFD. It uses ER IOW$, reads sector 0 to get the pointer to
the MFD and starts to read certain parts of the MFD into a temporary file.
David W. Schroth wrote:
Lewis Cole wrote:
Okay, I'm just a poor dumb former bootstrap programmer (not a File
Control expert by any means), but long, long ago, I was interested in
how to go about find bits and pieces of a file on a disk (just like
other Bootstrap programmers have at one time or another) while playing
with the idea of putting the Exec in a file.
(And yes, this was a long time ago, back in the 2200/900 days before
MFA, et. al., actually did manage to put the Exec in a file.)
While MFA is a Mike, they didn't put the Exec in a file. That was
done by Mikey and CWeed.
David W. Schroth wrote:
Lewis Cole wrote:
Okay, I'm just a poor dumb former bootstrap programmer (not a File
Control expert by any means), but long, long ago, I was interested in
how to go about find bits and pieces of a file on a disk (just like
other Bootstrap programmers have at one time or another) while playing
with the idea of putting the Exec in a file.
(And yes, this was a long time ago, back in the 2200/900 days before
MFA, et. al., actually did manage to put the Exec in a file.)
While MFA is a Mike, they didn't put the Exec in a file. That was
done by Mikey and CWeed.
Thank you for the correction.
Having said that, let me dig myself a deeper hole by waving my arms at
my understanding/recollection of the events surrounding the
implementation of the Exec in a file effort.
Feel free to elaborate upon and/or make corrects to my >understandings/recollections.
<snip fascinating recollection>
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 546 |
Nodes: | 16 (3 / 13) |
Uptime: | 19:24:33 |
Calls: | 10,390 |
Calls today: | 1 |
Files: | 14,061 |
Messages: | 6,416,962 |