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.