HDTenEightyP/NetNews huggingface dataset:
From: ross@bnr.ca (Ross Brown)
Subject: Re: What is the structure of WindowList?
Organization: Bell-Northern Research
Date: Fri, 28 Aug 92 15:48:12 GMT

In article <1992Aug28.124209.4159@fwi.uva.nl> bakker@fwi.uva.nl (Harry Bakker
(I87)) writes:
>To all net visitor,
>
>I'm working on a package that manages floating windows. For this purpose
>I need the structure of the WindowList. In IM-1 it says, that the WindowList
>contains ALL windows on the desktop, not just the windows that belong to the
>currently active application. If that is so, how does the WindowManager keeps
>track of which window belongs to which application? You can see that it does
>know that after a context swich. All the windows that belong to the app that's
>becoming active are brought to the front of all other windows.
>Where can I find the root of the windowlist? If I have, say, three windows
>open, and all background applications together have four windows open,
>then how many windows do I count if I walked down the windowlist? Three or
>seven?
>
>Could somebody help me on these questions?

The system window list is a linked list of fake WindowRecords, one per
application, with each application's own window list hanging off this list via
the windowPic field (!).  As far as I know, this is undocumented, and thus
subject to change.  For System 7.0, it works.  Beyond that, who knows?

#define	SaveProc	0x0A90	/* low-memory global, anchor of window list */
{
	WindowPeek	wa, wp;
	/* Traverse all the window list headers. */
	for( wa = *(WindowPeek *) SaveProc; wa != nil; wa = wa->nextWindow )
	{	/* Here is some info about the application owning each window list: */
		char	*funnyPtr = (char *) GetWRefCon( (WindowPtr) wa );
		OSType	type = *(OSType *) ( funnyPtr + 0x4 );
		OSType	signature = *(OSType *) ( funnyPtr + 0x8 );
		ProcessSerialNumberPtr	psnPtr = (ProcessSerialNumberPtr) ( funnyPtr + 0x24 );
		/* Traverse all the window records in each list. */
		for( wp = (WindowPeek) wa->windowPic; wp != nil; wp = wp->nextWindow )
		{
			/* wp points to a real WindowRecord.
			 * You should watch for the following:
			 * wp->visible                    => window is visible (not HideWindow'd)
			 * EmptyRgn( wp->strucRgn )       => window's application is hidden
			 * wp->windowKind == dialogKind   => window is dialog
			 * wp->windowKind >= userKind     => window is normal application window
			 * wp->windowKind < 0             => window is desk accessory window
			 * wp->windowKind == -32767       => window is something unreal (avoid!)
			 * Finder has a fake window named "Desktop" with a nil wp->dataHandle.
			 */
		}
	}
}

W. Ross Brown                 |        from Brown's Bestiary of the Macintosh:
Advisor, Telemanagement Svcs. |  PBCatMoof:  A purring system trap shaped like
Bell-Northern Research Ltd.   | a dog with cow spots and a 3-hr. battery life.
Ottawa, Ontario, Canada       | ----------------------------------------------
ross@bnr.ca                   |      Any opinion expressed is mine, not BNR's.

Newsgroups: comp.sys.mac.programmer
From: Reid Ellis <rae@Alias.com>
Subject: Re: Aliases
Organization: Alias Research, Inc., Toronto ON Canada
Date: Mon, 31 Aug 1992 14:38:28 GMT

Steve Dorner <sdorner@qualcom.qualcomm.com> writes:
|It's nice that aliases can cause volume mounts, no question.
...
|UNIX symlinks with a mount capability would have been cleaner, IMHO.

You mean like you get with auto-mount NFS daemons? ... :-)/2

Reid
--
Reid Ellis                                            
rae@utcs.utoronto.ca        ||           rae@Alias.com
CDA0610@applelink.apple.com ||  +1 416 362 9181 [work]
From: brad@vedge.UUCP (Brad Fowlow)
Newsgroups: comp.sys.mac.programmer
Subject: Top byte of 24-bit offscreen gworld?
Date: 3 Sep 92 18:51:40 GMT
Organization: Visual Edge Software, St. Laurent, Quebec

Can anyone say how quickly or terribly things might
go awry if I try to keep some extra info in the top 8 bits
of the pixel data of a 24-bit offscreen gworld?

That byte is awfully tempting as a place for alpha stuff.
And for the moment I'm not too concerned with how the code
will react under system 12; I just don't want sneaking 
randomness to show up next week. 
Have I missed something in IM6 that unequivocally rules
this out, or permits it?  Has anyone else been similiarly tempted?


-- 
-------------------------------------------------------------
 Brad Fowlow   brad@vedge.com 	Visual Edge Software Limited  
Newsgroups: comp.sys.mac.programmer
From: aep@world.std.com (Andrew E Page)
Subject: AppleTalk Protocol Stack Poster
Organization: The World Public Access UNIX, Brookline, MA
Date: Wed, 2 Sep 1992 17:24:01 GMT


    I saw this quite recently...does anyone know where I could acquire
this poster?  From Apple, Addison-Wessley?  Where?

-- 
Andrew E. Page CTO(Warrior Poet)|   Decision and Effort The Archer and Arrow
DSP Ironworks                   |     The difference between what we are
Macintosh and DSP Technology    |           and what we want to be.
From: chroth@emx.cc.utexas.edu (Charles H. Roth)
Newsgroups: comp.sys.mac.programmer
Subject: INSTALLER NEEDED
Keywords: installer
Date: 26 Aug 92 01:59:08 GMT
Distribution: na
Organization: The University of Texas at Austin; Austin, Texas

Does anyone know where I can get a free installer program to ship
with my application?  Unless the program already has provision for
personalizing the application program on the distribution disk, I'll
need the source code for the installer also.
From: chuck@gte.com (Chuck Hoffman)
Newsgroups: comp.sys.mac.programmer
Subject: Animated Cursor
Date: 4 Sep 92 16:05:58 GMT
Followup-To: comp.sys.mac.programmer
Organization: GTE Laboratories

Can someone point me to documentation about how to do an animated cursor. 
I somehow missed it in the TN's and IM.

Thanks.


Chuck Hoffman
chuck@gte.com
GTE Laboratories, Waltham, Massachusetts, USA
(617) 466-2131
=====================================
I'm not sure why we're here, but I am sure that while we're here we're
supposed to help each other.
=====================================
Newsgroups: comp.sys.mac.programmer
From: bschmidt@bnr.ca
Subject: Re: Map (was: Australian Mac systems)
Organization: Bell-Northern Research
Date: Wed, 26 Aug 1992 11:47:23 GMT

In article <sold.72.714426570@kit.uni-kl.de> sold@kit.uni-kl.de (Christoph
Sold) writes:
>In article <1992Aug18.123145.24941@reed.edu> orpheus@reed.edu (P. Hawthorne)
writes:
>>Subject: Re: Map (was: Australian Mac systems)
>>From: orpheus@reed.edu (P. Hawthorne)
>>Date: 18 Aug 92 12:31:45 GMT
>>
>>  hammett@sbsu1.aukuni.ac.nz (Tim Hammett) writes:
>>: Most users don't bother to set their location in the Map control panel.
>>
>>  klaus@diku.dk (Klaus Ole Kristiansen) writes:
>>: I certainly haven't. Is there any advantage in doing so?
>>
>>  This is the chicken and the egg problem. Nobody uses the map control 
>>  panel because nobody uses the map control panel. Lame.

Pete Resnik's Network Time cdev does. Possibly Jeddak's (sp?) or David Hornby
(sp?)'s TimeLord AppleTalk-based time-setters do as well? Most network time
schemes are based on GMT or UT. The Map cdev provides the logical place for the
user to enter his offset from GMT or UT. You do it by entering your site.
Awkward if you don't know your longitude but perhaps arguably friendlier than
entering an offset from Greenwich?

cheers,

--
Ben Schmidt,P.Eng   Network Applications, Bell-Northern Research
bschmidt@bnr.ca   FAX:613-763-3283  /* My opinions, not BNR's */
From: sc5h+@andrew.cmu.edu (Shawn James Cokus)
Newsgroups: comp.sys.mac.programmer
Subject: MacinTalk MPW C Interfaces
Date: 1 Sep 92 06:33:27 GMT
Article-I.D.: andrew.EecrwrC00YV7Q1Vq9v
Organization: Sophomore, Math/Computer Science, Carnegie Mellon, Pittsburgh, PA


After searching far and wide on Developer CD's (well, just the one I
have access to, Vol. X) and Archie FTP servers, I have been at a total
loss to find a header file for MacinTalk for MPW C and the (I believe)
accompanying glue/library code that goes along with it.  If anyone could
tell me where to get such a beast, or even point me to some C interfaces
that I could convert to MPW C form, it would be most appreciated.

Thanks,
--Shawn.
--sc5h+@andrew.cmu.edu.


-- Shawn Cokus
--   sc5h+@andrew.cmu.edu
--   Carnegie-Mellon University, Pittsburgh, PA
--   (Witty phrase temporarily out of order.)
Newsgroups: comp.sys.mac.programmer
From: rickf@apple.com (Rick Fleischman)
Subject: IMPORTANT MPW C 3.2.3 NOTICE
Date: Fri, 28 Aug 1992 22:36:54 GMT
Organization: Apple Computer, Inc.

IMPORTANT MPW C 3.2.3 NOTICE:
-----------------------------

We have discovered a significant code generation bug in the
MPW C v. 3.2.3 compiler that was recently shipped as part of
"Latest MPW" on E.T.O. #8 and as part of the MPW v. 3.2.3
product family.  You should NOT use this version of the C
compiler for your development work.

We are working to quickly correct the problems in the
MPW C v. 3.2.3 compiler.  Until we can send out an interim
or final fix to this problem, we would recommend that you use
an earlier final version of the MPW C compiler:
--MPW C v. 3.2, or
--MPW C v. 3.2.2, which was only distributed on E.T.O. #7.
  It can be found in the following location:
  "E.T.O. #7:Tools - Objects:MPW:Latest MPW:MPW:Tools:C"

Information on interim and final fixes to this problem will
be posted to this board early next week.  An interim and/or
final fix to this problem will be mailed directly to all
customers affected at no additional charge.

We apologize for any inconvenience this may have caused.
We are commited to keeping you updated on problems such as
this and providing solutions in a timely manner.

Thank you for your continued interest in MPW.

Apple Computer, Inc.
From: REEKES@applelink.apple.com (Jim Reekes)
Newsgroups: comp.sys.mac.programmer
Subject: Re: freqCmd make different sound under sys7 and sys6?
Date: 26 Aug 92 20:10:34 GMT
Followup-To: comp.sys.mac.programmer
Organization: Apple Computer, Inc.

In article <1992Aug20.063649.5204@midway.uchicago.edu>,
hd12@ellis.uchicago.edu (hui  dong) wrote:
> 
> I use SndDoCommand to send freqCmd, with param2=60L. Under sys7, I get
> the sound of middle C, which is what it suppose to be. But under sys 6.1.8,
> I get a sound which is one octave higher (everything is identical, I also use
> debug to make sure the param2 get the value of 60, param1=0). Any help will
> be very appreciated!

What machine and what type of channel?  Show us some code. 

-----------------------------------------------------------------------
Jim Reekes, Polterzeitgeist  |     Macintosh Toolbox Engineering
                             |          Sound Manager Expert
Apple Computer, Inc.         | RAll opinions expressed are mine, and do
20525 Mariani Ave. MS: 81-KS |   not necessarily represent those of my
Cupertino, CA 95014          |       employer, Apple Computer Inc.S
Newsgroups: comp.sys.mac.programmer
From: felciano@summit.stanford.edu (Ramon M. Felciano)
Subject: Q: Why don't drivers appear as resources?
X-Posted-From: InterNews1.0a2@leland.stanford.edu
Organization: Stanford University Medical Media and Information 
 Technologies
Date: Wed, 2 Sep 92 01:58:30 GMT
Xdisclaimer: No attempt was made to authenticate the sender's name.


Hi --

I'm trying to access a video card we just got. My calls to the board
work fine as long as the drivers are installed in my application. But
they're also installed at startup as an extension -- why won't my
application read those?

Ramon

+-------------------------------------------------------------+
| Ramon M. Felciano           felciano@summit.stanford.edu    |
|                             (415) 723-9688                  |
+-------------------------------------------------------------+
From: jasper@obelix.cs.uoregon.edu (Jon Barber)
Newsgroups: comp.sys.mac.programmer
Subject: Re: reverse video mode?
Date: 26 Aug 92 23:35:18 GMT
Article-I.D.: cs.1992Aug26.233518.23862
Organization: University of Oregon Computer and Information Sciences Dept.

In article <177pqkINNk0u@network.ucsd.edu> u_banzai@mcl.ucsb.edu (Marc Tamsky) writes:
>Well I know that Connectix Powerbook Utilites (CPU) has a "Backlight Saver"
>that does exactly what we are looking for.
>I can activate it with the hotkey, and it reverses the screen, and everything
>that updates, like clocks and things like that get updated correctly
>(reversed).
>So this looks like it does everything right.  Now to figure out how they did
>it.

And does anyone actually _know_ how it's done?
Newsgroups: comp.sys.mac.programmer
From: ewright@convex.com (Edward V. Wright)
Subject: Need Develop help
Date: Tue, 1 Sep 1992 16:31:28 GMT
Distribution: comp
Organization: Engineering, CONVEX Computer Corp., Richardson, Tx., USA
X-Disclaimer: This message was written by a user at CONVEX Computer
              Corp. The opinions expressed are those of the user and
              not necessarily those of CONVEX.

I just received my latest issue of Develop, wrapped in a plastic
bag with a note from the Fort Worth Post Office apologizing for
the fact that it was mangled in the mail.  Unfortunately, while
the magazine itself was relatively intact, the Post Awful seems
to have lost the Developer's CD entirely.  I've looked through
the magazine to see if there's a customer service number I could
call to report the problem and get a replacement, but all I found
was the address for ordering a new subscription.  Can anyone help
me out?

Newsgroups: comp.sys.mac.programmer
From: Glen.Stewart@f175.n2240.z1.ieee.org (Glen Stewart)
Subject: RE: ***BASIC PROGRAMMING***
Organization: FidoNet node 1:2240/175 - The Associati, Grand Blanc MI
Date: Tue, 18 Aug 1992 14:24:59 GMT

Shutting the Mac down should be easy.  Starting it up is not possible with a
program.  There is a hardware device on the market that will do this - I think 
with a phone call to it (connects to the phone jack in your house).  I forget
the name of it, but you have a lead now..


--  
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
 Glen Stewart - Internet: Glen.Stewart@f175.n2240.z1.ieee.org
From: rgonzal@gandalf.rutgers.edu (Ralph Gonzalez)
Newsgroups: comp.sys.mac.programmer
Subject: Re: think-c-prog-guide.hqx Problem
Date: 28 Aug 92 15:06:56 GMT
Organization: Rutgers Univ., New Brunswick, N.J.

kanagn@athina.cc.uch.gr (Kostas Anagnostakis) writes:

>Hi..

>I ftp'ed think-c-prog-guide.hqx from sumex and wanted to
>extract the files in a readable form for the Unix box.
>I didn't succeed in any of my attempts. Any helpers ?

The Think C Programming Guide is a HyperCard stack, and is
therefore not readable except on a Mac. I suppose you could
try to extract the text somehow, though...

Incidentally, TCPG teaches object-oriented programming based
on Think C 4.0, which is generally a subset of C++. It is
shareware ($15). I recently completed "Think C/C++ From
Scratch" which uses Think C 5.0 examples, and is therefore
a better introduction to C++. It is $20 ppd (+$2 overseas)
available from:

Ralph Gonzalez
PO Box 54
Newark, DE 19711
USA

(It is a 260-page HyperCard 2.0 stack which teaches OOP without
assuming previous C experience. It includes several examples, plus
a class library for 3D wireframe graphics and animation.)

-Ralph
rgonzal@elbereth.rutgers.edu

-- 
Ralph Gonzalez, Computer Science, Rutgers Univ., Camden, NJ
Phone: (609) 757-6122; Internet: rgonzal@elbereth.rutgers.edu
--
Newsgroups: comp.sys.mac.programmer
From: ryan@dup.cs.fsu.edu (John Ryan)
Subject: -- THINK Pascal 4.0 for sale --
Reply-To: ryan@nu.cs.fsu.edu
Organization: Florida State University Computer Science Department
Date: Tue, 1 Sep 92 14:39:15 GMT


I know this is not the right group to post this, but since all of
you are programmers, I thought that I would be targeting the right
audience...


For Sale:  THINK Pascal 4.0
Price   :  $90.00
Includes:  Everything!  Registration cards, manuals, shipping, original
           box, etc.  I've never even used it, so the manuals are in
           brand new condition.

This is the exact same package as you would get from the store.  The
only reason I'm selling it, is because I only program in C now.  This
package was given to me, and I have no use for it.  First person to 
email me, gets it!

-- 
--------------------------------------------
-John Ryan
ryan@nu.cs.fsu.edu
From: Joe.Francis@dartmouth.edu (Joe Francis)
Newsgroups: comp.sys.mac.programmer
Subject: Re: Optimizing 680x0 code
Date: 26 Aug 92 17:50:46 GMT
Organization: Dartmouth College, Hanover, NH
X-Posted-From: InterNews1.0d56@newshost.dartmouth.edu

In article <1992Aug25.143954.5875@hobbes.kzoo.edu>
k044477@hobbes.kzoo.edu (Jamie R. McCarthy) writes:

> I am in the lucky position of knowing exactly where my program needs to
> be faster.  The time-consuming bits are smallish, fairly straightforward
> routines that extract data from one of a variety of compression
> techniques.  Lots of shuffling bits within words and so forth.

Gee, sounds like a TIFF viewer!
 
> It'd be way cool if some assembler hacker were willing to
> take a look at the code and try to make it faster.  Would anyone with
> time on their hands (yeah right) be willing to partake of a little
> intellectual exercise?...

I doubt it.  But I can opint you to a good article that may allow you
to achieve good results on your own.  One of the recent MacTutors had a
good article on 680x0 assembly optimization.  Check it out.  I'll be
using it myself soon.
Newsgroups: comp.sys.mac.programmer
From: sro@media.mit.edu (Shawn O'Donnell)
Subject: Re: IM 1-7  vs New: FILES, PROCESSES, MEMORY Books
Organization: M.I.T. Media Laboratory
Date: Wed, 26 Aug 1992 20:40:52 GMT

>  Do I STILL need to get IM v1 (with references to 128k MACs and LISA)
>  or should I get one or all of the New books??

Depends on who's paying. And on how long you can wait for the 15-20
volumes that make up the rest of the new series.  But mostly on who's
paying.
Newsgroups: comp.sys.mac.programmer
From: raffuj@aix.rpi.edu (Jose A. Raffucci)
Subject: Spinning cursor -- How?
Organization: Rensselaer Polytechnic Institute, Troy, NY
Distribution: usa
Date: Tue, 25 Aug 1992 20:44:07 GMT

I have  the mac programing secrets 2nd ed, and it sorta
explains how to do it there, but I'd like to know if there's
a system call I can make that will animate the cursor without
a whole lot of thinking and typing on my part.  It's relly
funny how they're forever telling you to use these things 
in IM, but I still haven't found anything in there that tells
ya how to do it.  Maybe I'm just blind....who knows....

-hOz

-- 
X/\/\/\/\/\/\/\/\__/\__/\/\/\/\/\/\__/\__/\/\/\/\/\/\/\--:OO  _________________|
  //  The Amigoids from hell,     raffuj@rpi.edu     Ren & Stimpy (SNICK) 
\X/   Renssepolyinstatechnitute                 New Episodes! Aug 15, 7:00 pm   
Oh my beloved Ice Cream Bar!  How I love to lick your creamy center!  ChowwmP!
From: erh0362@tesla.njit.edu (Elliotte Rusty Harold)
Newsgroups: comp.sys.mac.programmer
Subject: Human Interface questions, specific functionality
Date: 27 Aug 92 22:53:28 GMT
Organization: New Jersey Institute of Technology


	1.  Control-H generates the same ASCII character as the forward delete
	key on the extended keyboard.  Should my application perform a delete
	(i.e. Clear) when Control-H is pressed or should I trap that event? 
	
	2.  A user opens a file on a locked disk and makes changes to it.  
	(Alternately the user locks the disk while the file is open.)  When
	the user attempts to save should I 
	
	  a)  Simply post an error message saying the disk is locked? 
	  b)  Check that the disk is locked before every save (If so how?) 
	  and if it is do a Save As instead?
	  c)  Check that the disk is locked before every save  
	  and eject the disk and post a dialog asking the user to unlock
	  and reinsert it?
	  
	3.  Can an original Mac 128K and/or Mac 512 
	run a system that adds the features described in Inside Mac IV?  
	particularly the List Manager, UpdateControl, TrackBox and ZoomWindow 
	toolbox calls, and the automatic scrolling in TextEdit?  If so what's 
	the earliest system that supports these extensions? 4.0? 4.1?  
	Similarly what's the earliest system and/or ROM version that support
	the non-Color-QuickDraw toolbox calls from Inside Mac V?  
	Particularly SetCmdKey() ?  Is there any easy rule of thumb to tell
	whether a particular call is supported by a particular system
	version or ROM version without having a Macintosh with such a 
	system and ROM  to test it on?  Note that I'd like to know this
	at compile time, not runtime.


Elliotte Rusty Harold		Department of Applied Mathematics
elharo@m.njit.edu		New Jersey Institute of Technology
erh0362@tesla.njit.edu		Newark, NJ 07103
Newsgroups: comp.sys.mac.programmer
From: rajiv@mullian.ee.mu.OZ.AU (rajiv kumar singh)
Subject: Lack of memory in ThC debugger
Organization: Computer Science, University of Melbourne, Australia
Date: Mon, 24 Aug 1992 03:44:01 GMT

Hi

I've been having problems with ThinkC v5.0.2c debugger.
It gives me a warning that the last command could not be completed beacuse of 
lack of memory after every dialog is closed and the funny thing is that as far
as I can gather every thing is completed.

Any advice or suggestion...

By the way the Debugger has a partion of 1000k and ThinkC of 2000k.

Thanks in advance....

Rajiv.
--
Rajiv Singh                _--_|\	rajiv@mullauna.cs.mu.OZ.AU
Computer Science &        /      \	rajiv@mundil.cs.mu.OZ.AU
Electrical Engineering    \_.--._/	rajiv@munagin.ee.mu.OZ.AU
University of Melbourne         v
Newsgroups: comp.sys.mac.programmer
From: nagel@Cigna.COM (Mark Nagel)
Subject: Re: How to get on the THINK C source mailing list
Organization: CIGNA FIRST, Irvine, CA
Date: Thu, 27 Aug 1992 22:17:38 GMT

In <Btn7wo.5Hp@acsu.buffalo.edu> triantos@acsu.buffalo.edu (Nick B Triantos) writes:

>I recently downloaded a file from AOL called StandardGetFolder.c, which talks
>about an internet THINK C mailing list.  How can I subscribe?

Send a request to think-c-request@ics.uci.edu (PLEASE, note the
-request on that address) and I'll add you to the list.  The list
archive is on ftp.ics.uci.edu in /mac/think-c if you are interested
in browsing past messages and archived files.

Mark
-- 
Mark Nagel <nagel@cigna.com>	| DISCLAIMER: Any resemblence of these
Network Administrator		| opinions to those of CIGNA are purely
CIGNA/FIRST			| coincidental.
          (Don't start vast projects with half-vast ideas)
From: danny@utkux1.utk.edu (Danny W. McCampbell)
Newsgroups: comp.sys.mac.programmer
Subject: THINK Pascal 4.0 Question?
Date: 28 Aug 92 16:54:33 GMT
Organization: University of Tennessee

I have a question for those of you who use THINK Pascal.
I am working with AppleEvents so I wrote a simple unit
to get my handlers to the kCoreClass(the four apple 
suggests all applications should have).  Well I added
AppleEvents.p to my project window and noticed that it's
uses included AppleTalk.p, Processes.p, PPCToolbox.p, 
EPPC.p, and Notification.p.  I added these to my project
window as well and I am sure without a shadow of a doubt
that I placed them in the proper build order.  Now when
I build the files I get an error that says:

nReturnReceipt is not declared.  The error was coming from
the AppleEvents.p.  I traced nReturnReceipt and it is 
declared as a constant in EPPC.p as follows:

nReturnReceipt = $00000200;

Why should I get this error if all the files are in the 
proper build order.  I have double and triple checked them
so I know they are in the right build order.

Any ideas?  I was thinking about changing the line in
AppleEvents.p  (kAEWantReceipt = nReturnReceipt) to 
kAEWantReceipt = $00000200 to see what happens.  Any
ideas would be greatly appreciated.  Thanks in advance.

Danny McCampbell