× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: Save files
  • From: Dave McKenzie <davemck@xxxxxxxxxx>
  • Date: Thu, 25 Jan 2001 20:34:33 -0800

Some objects don't have descriptors.  This include msgq's and logicals.
However, as you observed, there's a list of structures at the beginning that
contains all saved objects.  The header that has the library name is 80 bytes
long.  It's followed by the list of 151-byte structures, one per object:

Offset  Length  Description
x00     30      Object name
x1E     2       Object type & subtype
x20     30      Owner
x42     1       Flags - x80=additional info is present
x43     4       Size of object
x47     4       Offset to additional info
x4B     4       Offset to OIR info

The offsets are from the beginning of the header.

The OIR info includes most of the stuff you see in DSPOBJD--text etc.  It also
appears at the bottom of DMPOBJ listings after the string "OIR DATA-".  (OIR =
Object Information Repository, actually part of the library, not the objects.)

The additional info is present for some object types, including database
files.  Its format is different for various object types, but always starts
with a 16 byte header:

Offset  Length  Description
x00     4       Number of MI objects comprising the object
x04     4       Length of additional info

Database files have a 48-byte structure after this header:

Offset  Length  Description
x00     4       Length of FDT
x04     4       Offset (from begin of this structure) to first member
description (see below)

This is followed by the FDT, File Definition Template, which is the first
object you see in a DMPOBJ listing of a file, after the string "SPACE-".  After
the FDT comes the *FMT structure, also visibile in a DMPOBJ listing.

Then come member description(s):

Offset  Length  Description
x00     4       Length of mbr desc (less x10)
x04     10      Member name

Each member description starts on a 16-byte boundary.

After this there may be various structures describing the MI objects that
comprise the file (Data Spaces & Data Space Indexes), and the complicated
relations between logical file members, physical members they're based on, and
access paths.

--Dave


"James H. H. Lampert" wrote:

> Fellow Programmers:
>
> I'm successfully analyzing save files with one difficulty:
>
> When I step through the "L/D OBJECT DESCRIPTOR" records, I don't see any
> message queues or logical files. I do, however, see a list of names
> (including, apparently, everything) in the master header data. Do we
> know how this is organized, and whether there's any further useful
> information there besides the names?
>
> Just getting the original library is adequate, but the more I know about
> the contents, the better, considering as how this is intended to go into
> a save-file-aware FTP client.
>
> --
> James H. H. Lampert
> Professional Dilettante who sometimes codes in MI, OPM RPG, ILE RPG, OPM
> CL, ILE C, and Java, all in the same day.
> http://www.hb.quik.com/jamesl
> Have you visited http://www.thehungersite.com today?

+---
| This is the MI Programmers Mailing List!
| To submit a new message, send your mail to MI400@midrange.com.
| To subscribe to this list send email to MI400-SUB@midrange.com.
| To unsubscribe from this list send email to MI400-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: dr2@cssas400.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.