[comp.sys.amiga] AmigaDOS packet questions

muir@cogsci.berkeley.edu.UUCP (04/11/87)

Dear anybody; I am in need of information on the format of the DOS packet;

ACTION_GET_BLOCK

Which I have partially working, and partially not.  (It seeks, but no data
is to be found.  Perhaps the packet  is being sent to the wrong place??)
It is realized that this packet type is not for general use, and that the
information returned by it will not be transparent to other filesystems or
DOS upgrades.  Using this packet will prevent my needing to go DIRECTLY to
Trackdisk.  Information would also be nice on these packets;

ACTION_NIL , ACTION_SET_MAP , ACTION_DIE , ACTION_EVENT
ACTION_CURRENT_VOLUME , ACTION_INFO , ACTION_DISK_CHANGE
ACTION_DISK_TYPE and any others currently in hiding.

None of which are properly documented in the AmigaDOS Technical Reference
Manual.  Of particular interrest is ACTION_DISK_TYPE.  Please indicate any
restrictions on the use of the above requested information.
------------------
For related reasons I have a need to write a replacement for the V1.2 CLI
command ADDBUFFERS.  The location and linkage of the cache buffers eludes
my probing, and to say that disassembled BCPL is confusing would be an
understatement.
------------------
And finally, I read the V1.2 Gamma 1 autodocs on the QueuePacket and
GetPacket routines and became confused.  Is it safe to ignore these
routines and simply keep calling PutMsg().
------------------
PS. I am coding in 68000 at the moment.
   //
\\// Save the sanity of millions, ban the BPTR! (Can you say "Batty Pointer"??)

daveh@cbmvax.cbm.UUCP (Dave Haynie) (04/13/87)

in article <18276@ucbvax.BERKELEY.EDU>, muir@cogsci.berkeley.edu (David Muir Sharnoff) says:
> Keywords: DOS packet question
> 
> Dear anybody; I am in need of information on the format of the DOS packet;
> 
> ACTION_GET_BLOCK
> 
> Which I have partially working, and partially not.  (It seeks, but no data
> is to be found.  Perhaps the packet  is being sent to the wrong place??)

I asked about this one awhile ago, and since no one around seemed to know
about it, I figured it out on my own.  It is device dependent, and as far as
I can tell the buffer pointer that you send in your packet had better point
to the type of memory appropriate for that type of device (like CHIP|PUBLIC
for a floppy).  In any case, the first argument is a LONG indicating the 
block number you're interested in, the second argument is this buffer
pointer (a BPTR, natch).  The block returned is certainly dependent on the 
file system in use, so anything that requires knowledge of the particular 
block's structure will almost certainly die if used on any device with an 
alternate file handler.  You can always check through some devinfo stuff to 
make sure that your named DOS device does use the proper file handler.  You
should also check things like the device's block size, since conceivably
a device could use a block size larger than 128 longwords and work just the
same in all other aspects of operation.

-- 
Dave Haynie     Commodore Technology              // /|  ___   __   __   __ 
  {ihnp4|caip|rutgers}!cbmvax!daveh          |\  // /_|     | /  \ /  \ /  \
Commodore rarely admits to knowing me,        \\// /  |  +--+ |  | |  | |  |
  much less sharing my personal opinions.      \/ /   |  |___ \__/ \__/ \__/