[comp.sys.mac] New master pointer query.

wmcb@ecsvax.UUCP (William C. Bauldry) (09/04/87)

 Having little printed resources available now...
Since addresses have jumped to 32 bits how is the master
pointer handled (bad pun)? The old format stole the high
order byte for flags, i.e. handle locked, etc. Could
some kind soul enlighten me and raise my consciousness
to the new type ?
thanks in advance.

Bill

drc@dbase.UUCP (09/07/87)

In article <3819@ecsvax.UUCP>, wmcb@ecsvax.UUCP (William C. Bauldry) writes:
> 
> 
>  Having little printed resources available now...
> Since addresses have jumped to 32 bits how is the master
> pointer handled (bad pun)? The old format stole the high
> order byte for flags, i.e. handle locked, etc. Could
> some kind soul enlighten me and raise my consciousness
> to the new type ?
> thanks in advance.
> 
> Bill

You address it the same way you did in the past (if you followed Apple's rules)
and call routines for HLock, HUnlock, HGetState, HSetState, HSetRBit, HGetRBit,
etc.  If you want to munge the bits yourself, let your customers beware that
the software you produce will almost surely break soon (and it AIN'T Apple's
fault, but is yours).

Dennis Cohen
Ashton-Tate Glendale Development Center
dBASE Mac Development Team
--------------------------
Disclaimer: Opinions expressed above are my own.  I don't know what (if any)
opinions my employer has.

wmcb@ecsvax.UUCP (William C. Bauldry) (09/09/87)

 The query: What is the format of a new master pointer - i.e. where
do the flags go if the address length is 32 bits ?

In article <232@dbase.UUCP> drc@dbase.UUCP (Dennis Cohen) writes:
>You address it the same way you did in the past (if you followed Apple's rules)
>and call routines for HLock, HUnlock, HGetState, HSetState, HSetRBit, HGetRBit,
>etc.  If you want to munge the bits yourself, let your customers beware that
>the software you produce will almost surely break soon (and it AIN'T Apple's
>fault, but is yours).

 Please don't shoot - i'm not really munging the bits...   
The problem is: I'm passing a dereferenced handle as a parameter to
an assembled routine - IM II (pg25) and the reference section to
the MM chapter say use Lo3byte mask to strip off the high order byte
that contains the flags to leave the address ( in fact my old "phone
book" copy of IM has a constant AddrMask to do this with ). That's
why i'm concerned about the new address length - so that the software
won't break (i don't want it to be my fault either).
 BTW - thanks for answering - i should have been more explicit in the
request.

-Bill

keith@apple.UUCP (Keith Rollin) (09/11/87)

In article <232@dbase.UUCP> drc@dbase.UUCP (Dennis Cohen) writes:
>In article <3819@ecsvax.UUCP>, wmcb@ecsvax.UUCP (William C. Bauldry) writes:
>> 
>> 
>>  Having little printed resources available now...
>> Since addresses have jumped to 32 bits how is the master
>> pointer handled (bad pun)? The old format stole the high
>> order byte for flags, i.e. handle locked, etc. Could
>> some kind soul enlighten me and raise my consciousness
>> to the new type ?
>> thanks in advance.
>> 
>> Bill
>
>You address it the same way you did in the past (if you followed Apple's rules)
>and call routines for HLock, HUnlock, HGetState, HSetState, HSetRBit, HGetRBit,
>etc.  If you want to munge the bits yourself, let your customers beware that
>the software you produce will almost surely break soon (and it AIN'T Apple's
>fault, but is yours).
>
>Dennis Cohen
>Ashton-Tate Glendale Development Center
>dBASE Mac Development Team

The writing between the lines here is that we STILL use those bits in the 
master pointers (i.e. the Memory Manager is still limited to 24-bit addressing
even on a Mac II). 32-bit addressing cannot be performed under the Mac OS (as
opposed to something like A/UX) without scrapping the current methods of
tagging memory blocks and using something that stores those bits elsewhere.

Keith Rollin
Sales Tech Support
Apple Computer

Disclaimer: Any rumours I spread I got somewhere else first.

lsr@apple.UUCP (Larry Rosenstein) (09/22/87)

In article <3841@ecsvax.UUCP> wmcb@ecsvax.UUCP (William C. Bauldry) writes:
>
> Please don't shoot - i'm not really munging the bits...   
>The problem is: I'm passing a dereferenced handle as a parameter to
>an assembled routine - IM II (pg25) and the reference section to
>the MM chapter say use Lo3byte mask to strip off the high order byte

Inside Mac volume 5 describes a new trap called StripAddress to do this.
StripAddress will adn with Lo3Byte mask if the system is running in 24-bit
mode and will leave the address unchanged otherwise.

System 4.1 includes a patch to implement StripAddress on the Mac Plus.  If
the trap is not implemented (because the machine is not running System 4.1),
then you can do the masking yourself, since the machine must be in 24-bit
mode. 

-- 
Larry Rosenstein

Object Specialist
Apple Computer

AppleLink: Rosenstein1
UUCP:  {sun, voder, nsc, mtxinu, dual}!apple!lsr
CSNET: lsr@Apple.com