[comp.sys.mac.programmer] Creating cdevs II

mm3d+@andrew.cmu.edu (Matt McNally) (10/28/88)

My cdev woes continue...

Well I'm still trying to create (compile and link) Apple's example
cdev that they provide in Inside Macintosh Volume V.  After my last
post I received an example cdev that, although it actually worked,
doesn't use any of the PackIntf routines for strings and such.  As
Apple's example "Uses Memtypes, QuickDraw, OSIntf, ToolIntf, PackIntf"
I would like to get cdev running that also uses all of those libraries.

I have included the header of the Pascal code below as well as the
output that occurs when I attempt to link the object code.  I'm
guessing when I link with 'Interface.o' and 'PasLib.o', but I haven't
been able to locate a special runtime library for cdev's like
DRVRRuntime.

I PETITION YOU! If you can help me out or know of someone who has built
Apple's sample CDEV (which I assume *someone* at Apple has done :-)
could you please send me the correct variation of the Link command.
I'm sure I'm missing something fairly obvious, but I think I may be
on the verge of going insane and purchasing a Windows environment
machine...

Please send replies to mm3d@andrew.cmu.edu

If there is an interest I'll post the finalized sources and make
instructions to the net upon completion.

Matt McNally  Macintosh II Project Dugan/Programmer
              Carnegie Mellon, College of Humanities and Social Sciences
              ARPANET: mm3d@andrew.cmu.edu  Office: BH239, (412) 268-8454


=====Header For A Sample CDEV=====

{ *** CDEVSamp.P ***: Sample source code for a Macintosh CDEV.
                      All Pascal and Rez sources extracted from
                      Inside Macintosh V pp.336-345  -MMM [10/17/88]}


{Portions Copyright 1986,1987 Apple Computer, Inc.
                                All rights reserved. Etc etc.}

(*  === Compilation Parameters ===
pascal CDEVSamp.p
rez CDEVSamp.r -o CDEVSamp
link -t cdev -c McCD -rt cdev=-4064 CDEVSamp.p.o
        {MPW}Libraries:Interface.o
        {MPW}Libraries:Runtime.o
        {MPW}PLibraries:PasLib.o
        -o CDEVSamp
*)

Unit cdev;

Interface

Uses
        Memtypes, QuickDraw, OSIntf, ToolIntf, PackIntf;
Function CDEVSamp(message, item, numItems, CPanelID:Integer;
                              theEvent: EventRecord; cdevValue: LongInt;
                              CPDialog:DialogPtr) :LongInt;

Implementation

        ...

=====Example Compilation=====

        .... Here's how I attempt to compile and link the source code,
             please note that the errors only occurr during the link...

pascal CDEVSamp.p
rez CDEVSamp.r -o CDEVSamp
link -t cdev -c McCD -rt cdev=-4064 CDEVSamp.p.o
        {MPW}Libraries:Interface.o
        {MPW}Libraries:Runtime.o
        {MPW}PLibraries:PasLib.o
        -o CDEVSamp


### While reading file ""BH239:MPW:Libraries:Runtime.o""
### link: Error  Linker error: uninitialized jump table offset =  -1
[Repeats Six Above Error 6 times]
### link: Error  Linker error: uninitialized jump table offset =  -1

### While reading file ""BH239:MPW:PLibraries:PasLib.o""
### link: Error  Linker error: uninitialized jump table offset =  -1
[...Repeat Above Error 3 times...]
### link: Error  Linker error: uninitialized jump table offset =  -1

### While reading file ""BH239:MPW:Libraries:Runtime.o""
### link: Error  Linker error: uninitialized jump table offset =  -1

### link: Error  Data to Code reference not supported (no Jump Table).

### link: Errors prevented normal completion.


        ...As the example cdev uses strings and calls the PackIntf I assume
        that I at least have to link with PasLib (and subsequently Runtime),
        although I have indeed tried linking without them to no avail...

Thanks in advance for any help.