TweetFollow Us on Twitter

Aug 88 Mousehole
Volume Number:4
Issue Number:8
Column Tag:Mousehole Report

Mousehole Report

By Rusty Hodgee, Mousehole BBS

From: gbryan (Geoff Bryan)

Subject: LSP Interfaces

Has anyone seen a more complete set of interfaces for the ROM & System routines beyond what Think put out last fall? If not, it looks like a long session of porting over the MPW 2.0 interface files. (What started me on this quest was the discovery that the Shutdown Manager routines do not seem to be in last fall’s 1.11 update package. Don’t know what else is missing or different.) [We have blasted Think repeatedly for taking so long to keep LS Pascal up to date with the latest set of goodies from Apple. There is a new version coming, they tell me, but, like the LS C update, who knows when? If nothing is forth coming at the Boston Expo, you can bet we will blast them again! They do have a Shutdown Manager glue patch you can get if you call for it. You might want to look at TML’s new MPW Pascal II., available at the MacTutor booth at the Boston Expo. -Ed]

From: pepnerd (Peter Kramer)

Subject: menus

I’m just a beginner at programming the mac. I’m trying to set up menus using the code in “Using the Macintosh Toolbox with C” by Takatsuka et. al. I’m not sure how to call InitGraf() in the situation where I have not set up any windows, only menus. In my development system the example (Aztec C) the call to InitGraf() uses the argument &thePort. However I cannot find where thePort is defined. Its quite distressing to double click on an application icon and get nothing but a bomb!

From: ericlim (Eric Lim, Flushing, NY)

Subject: Re: menus

I’m not familiar with Aztec because I’m using MPW C 2.0.2 and I think the variable thePort is defined in the “Quickdraw.h” header or include file.

From: think

Subject: Re: menus

It’s not important to know where thePort is defined; all that’s important is that you pass the correct series of initializations in order to get your application started:

 {         
 InitGraf(&thePort);         
 InitFonts();         
 InitWindows();         
 InitMenus();         
 TEInit()         
 InitDialogs(NIL); }   

Typically, thePort is defined as an extern GrafPtr in Quickdraw.h (in LightspeedC) or in the appropriate header for other C compilers. --Rich Siegel, THINK Technologies

[The variable thePort is one of those mysterious Quickdraw global variables that no one ever talks about once you are convinced the proper call works correctly. The first few issues of MacTutor, over three years ago, addressed this subject in depth, explaining how the Quickdraw Globals are stored relative to A5 and how they work. The Mac system is responsible for the Quickdraw Globals maintenance. Refer to Volume 1 of The Best of MacTutor for more information. -Ed]

From: laskey (Jim Laskey, Halifax, NS)

Subject: Second Stack

Is there a safe way for an application to allocate a second system stack? TGS systems is currently developing a visual programming language known as Prograph. One of the main features of Prograph is the ability to perform editing and debugging of source code while in an execution state. All routine calling sequences are performed through a system stack as per normal. However, the state of the execution system stack must be kept separate from the system stack used during editing and debugging. The solution was to allocate a second system stack just for execution and use the defacto system stack for debugging and editing. Where does one allocate the second stack? For the sake of the stack sniffer this second stack was allocated between ApplLimit and A5. Early versions of Prograph used the following sequence to allocate the second stack;

newStack = ApplLimit;         
ApplLimit = newStack - DefltStack;         
MaxApplZone();   

Until testing on the Mac II, this worked quite well. On the Mac II, strange things began happening whenever Prograph switched to the second system stack. Text would not show up in menus and window frames were drawn incorrectly. The only notable difference between the Mac II and the other systems was that DefltStack was 16k greater on the Mac II, presumably to handle color Toolbox calls. The stack allocation algorithm was changed to the following;

newStack = ApplLimit + DefltStack / 2;         
MaxApplZone();   

This works fine. However, what happens when a Toolbox call needs a large chunk of the stack? Is there a safe way for an application to allocate a second system stack?

[I don’t think so. This sounds like one of those nifty ideas that will probably never work since it will never quite match up with Apple’s changing system file, and MultiFinder evolution. I suggest you scrap this approach and try something less controversial. Can Apple DTS suggest a safe approach? -Ed]

From: mark (Mark Murphy, Anaheim, CA)

Subject: New Stacks

I need to be able to create a new stack from within a script! The only thing I have found is ‘doMenu “New Stack...”’. Yet, I do not wish the modal dialog to come up to the user. I need to create a stack and be able to name it myself, from the script without user input. Anyone have any ideas?

From: rdclark (Richard Clark, Tustin, CA)

Subject: Re: New Stacks

Well, since you’re probably not planning to use HyperDA with your stack (as it wouldn’t allow you to write to the new stack anyway), you can get away with using an XCMD. What this command should do is to duplicate an existing “template” stack and then rename it. If the template doesn’t exist, then you should put up a dialog box to that effect and execute a “doMenu New Stack” to let the user create the *TEMPLATE*. If you *really* don’t want the user to see a file selection dialog, you could “encapsulate” a new stack as a bunch of resources in your stack. The XCMD would read one of these resources and use it to create the stack’s data fork. The other resources would be copies into the resource fork. However, this second method could get kinda ugly.

Subject: SCSI Accelerator

From: thecloud

I have tried using the SCSI Accelerator INIT (version 1.1) on my Jasmine 20 (miniscribe drive). It doesn’t do ANYTHING for performance; the Disk Timer II numbers “before and after” were exactly the same. The Jasmine formatting software doesn’t let you set the interleave (v.2.34), but I understood it to be 2:1, which was recommended by SCSI Accelerator’s author. So am I missing something, or does this INIT only work on certain brands of hard drives?

Some Responses from Usenet

From: Ephraim Vishniac

The SCSI Accelerator INIT only has the opportunity to work on drives which do all of their SCSI operations through the SCSI manager: there’s no way for it to trap hardware access. In order to get decent performance, the Jasmine software goes straight to the hardware on the Mac Plus. So, the INIT can’t do anything for that drive that it doesn’t do for itself already. Though I haven’t examined it, I expect that what this INIT does is replace Apple’s tight loop for blind transfers with an unrolled loop of some length. This lets you tighten up your interleaving one notch on many drives.

Defense of Apple: They chose the speed of blind reads and writes deliberately to accommodate the varied timing of as many drives as possible. They certainly knew how to write a faster loop, but were aware that it wouldn’t work with many of the then-available drives.

Claimer: I wrote the Jasmine software up to version 1.95 or so.

From: dolf@uva.UUCP (Dolf Starreveld)

As already explained in two previous messages by Maarten Carels and me, the original version of SCSI Accelerator indeed tried to speedup blind SCSI operations by loop unfolding. It installed the patches only on a Plus and one of the two patches was installed in the wrong place. This is a serious BUG. It may cause polled (non-blind) writes to only poll the first byte of a scInc/scNoInc transfer and not the rest, therefore effectively reducing these to blind writes. A good driver uses blind operations when it can, so if a driver uses polled writes there is a very nice probability that in these cases some serious mishap may come to you. Another error was that the patch code always assumed 512 byte transfers in each scInc/scNoInc command. This is incorrect and may also be the cause of the original accelerator failing on certain drives (notably Rodime 20Mb).

I have a new version that fixes all these bugs and installs patches at the correct places. The first version (SCSI-accel) is the one described above. The second version addresses the timing problem Ephraim addresses above under “In defense of Apple” for some drives. As we found out (I have a very old Rodime RO652) some old drives (and maybe even some new ones) can’t keep up with two consecutive move.b instructions. The original Apple code always had the delay of one DBRA between any two bytes transferred. This is, as stated by Ephraim, long enough for the code to work with any drive. The Rodime 652 needs a small delay between each two bytes, but a DBRA is an overkill.

If you don’t use a MacPlus, you might as well stop here. If your driver does not use the SCSI manager SCSIRBlind and SCSWBlind routines, ditto. If you don’t know, install and just see if it works. If not you’re driver either doesn’t use these calls or does polled operations.

Subject: cdev’s and System 6.0

Practically all the public domain/shareware cdevs I used with no problem under System 4.2/Control Panel 3.2 appear to break under System 6.0/CP 3.3. Usually it’s “The Control Panel cannot get enough memory” (with almost 2 megs free?!), but other alerts have popped up as well. One of the “broken” cdevs includes the Apple “Sample” cdev from IM V, which I compiled myself. Hmmmm.... I think the problem may be that these cdev’s do not have a ‘sysz’ resource. Am I right?

Well, after looking more closely, I discovered the reason why various cdev’s were breaking under System 6.0: they check for the presence of certain packages in the System file (usually PACK 7 or PACK 4) that no longer exist! (except in the ROM). Even Apple’s Sample cdev in IM V does this (although there’s a brief disclaimer that you “really should” check for the packages in ROM). Ouch. Then there’s the MultiFinder test. Most sample source code I’ve seen (actually, ALL) checks for MultiFinder’s presence by testing to see whether the WaitNextEvent trap is implemented. Now, in System 6.0, it’s implemented ALL THE TIME, whether you’re in MF or not. So if application X assumes it’s running under MultiFinder when it isn’t, well, look out.

Question: how do you detect MultiFinder’s presence or absence under 6.0? [Answer: Your not supposed to care if MulitFinder is there or not; only check for the various services you expect. -Ed]

From: rusty (Mr. Rusty Hodge, Orange, CA)

Subject: Modem Problems

Hello, glad to see the Usenet stuff here. Did you know about the modem problem on line 2252? I’m using a Novation Professional 2400 modem and when I dial 2252 I connect at a weird level. Your modem answer tone throws my modem into a strange state where I hear a single handshake tone that neither modem seems to recognize. I have to manually hang up to clear my modem or let the S10 register time out. I have only been able to connect once on 2252 at 2400 baud. Line 1190 seems to work fine at 1200 baud. Just thought I’d let you know.

From: billw (Bill White, Santa Ana, CA)

Subject: Re: Modem Problems

I checked the problem with funny carrier tones, and discovered that there is a low-pitched tone being transmitted from one of the system modems.

From: rusty (Mr. Rusty Hodge, Orange, CA)

Subject: Re: Modem Problems

Well, I’ll let you be the test. Here are the 4 mousehole 2400 numbers, in the order of their hunting sequence: 921-2252, 921-2255, 921-1090, 921-1161.

From: billw (Bill White, Santa Ana, CA)

Subject: Re: Modem Problems

I checked all the lines in the hunting sequence and sure enough, the problem is actually on the modem connected to 921-2252. It’s a low-pitched tone that is being sent, and which masks the carrier tone.

From: rusty (Mr. Rusty Hodge, Orange, CA)

Subject: Re: Modem Problems

Okay Bill- Thanks for your hard work and effort. It is apparently something that isn’t consistent: I am on that line now and had no trouble connecting. I’ll check it out though; I’ll stick a spare modem on it and see what happens.

From: stu (Stuart Davison, Tucson, AZ)

Subject: Had some noise problems...

I had some problems so far. They are as follows: sometimes I keep getting cancelled with a ‘**’ and I have to reread the message over and over until I get the full message. It may have been the lines, I called back several times and got through a few times without much of a problem. My question is, is there some way to temporarily disable the interrupt so that if the line is interrupting it won’t cause such a problem?

From: rusty (Mr. Rusty Hodge, Orange, CA)

Subject: Re: Had some noise problems...

The Interrupt key defaults to RUBOUT/DELETE. Delete is a kinda common noise character. Go to ‘M’ on the main menu and change your interrupt key to ^C or something. ^C seems to work well in a noisy environment.

From: rusty (Mr. Rusty Hodge, Orange, CA)

Subject: Security Access Levels

Since I’ve gotten about 15 letters about this, I thought i’d post a bit about security levels. When you initially call, you have a security level of 1. This lets you read and post messages locally. To post to the network, you need a level of at least 2. I will only give people network access (level 2) if they request it. If you request it, it will take about a week before I get around to doing it. So, please be patient and only request network access if you intend to write to the network. Finally- inappropriate network activity will result in your network access being denied. It is suggested that you read the usenet topics a week or two before posting to them. A level of 0 means you have been bad and your account is suspended.

From: rusty (Mr. Rusty Hodge, Orange, CA)

Subject: Modem Info

Wouldn’t you know it- just when we get the 2 new Mitsuba Modems, Mitsuba changes their firmware to be identical with the PP2400SA! So there is the possibility that 2400 will not be 100% reliable until I get around to cloning some ROMS from the old units. HOWEVER, the good modems are on the 921-2252 numbers, the bad ones are on the 1090 numbers. If 2252’s lines are busy you will be bumped to 1090, and may not connect at 2400. ALSO- The 998-1199 number is now using the good old 1200 baud UDS modem (read: ultra-high quality). If you are getting noise connecting to 2252 or 1090 at 1200, please try the 1199 number.

From: rusty (Mr. Rusty Hodge, Orange, CA)

Subject: MouseHole Access

It has been asked by many people if MouseHole is available to non-MacTutor subscribers. Currently, MouseHole is free to all users. In the future there will probably be a small annual charge for non-MacTutor subscribers. The MouseHole download, which is an entirely seperate system, costs $10/year for basic access, and $20/yr for unlimited access.

From: cfuller (Clayton Fuller, Whittier, CA)

Subject: IW spooler

Multifinder is pretty much a curiosity to me at the moment. The two things I need it to do it cannot. More likely I just don’t know how. First, how can I print to the Imagewriter in the background? Second, what terminal emulation programs will allow me to download in the background?

From: ossian1 (Santa Ana, CA)

Subject: Re: term emulator

VersaTerm does just fine in background download mode. It’s also only $99 to normal folk, and who knows, maybe the company will give students a discount. jvs - ossian

From: rusty (Mr. Rusty Hodge, Orange, CA)

Subject: Re: term emulator

I have problems using VersaTerm Pro on MHDL. I stopped using plain-old VersaTerm because I *thought* it didn’t download in the background. I’ll have to try it.

From: rick (Rick Boarman, Claris Corporation)

Subject: Re: term emulator

I use MicroPhone II to down load in the background. It works just fine even if it is a little pricey ($295 I think).

From: greg (Greg Kearney, Casper, WY)

Subject: Re: term emulator

Red Ryder 10.3 will download in the background

From: ms (Michael Steiner, Sierra Vista, AZ)

Subject: IW SPooler

Clayton, Multifinder does not have an IW background print option. If you want to spool to the IW, you will need one of the commercial, shareware or pub domain spoolers. As far as downloading in the background, there are a number of utils that will do that, but for term emul. programs, I think that only MicroPhone II will do that, but I may be mistaken.

From: lnedry (Larry Nedry, Anaheim, CA)

Subject: MouseHole Download

The MouseHole Download can be reached at (714) 533-6112. At present there are two phone lines at 2400 baud. If you are a new caller, type new at the logon: prompt. There is a fee for downloading but you may browse all you want before deciding if you want to join. The cost for 1 year is as follows: For 45 minutes of download time per day - $10.00 For 300 minutes of download time per day - $20.00 You can signup with MasterCard or Visa by typing a ‘$’ at the main menu. Type a ‘?’ for help. 128 and 1024 byte X-Modem is the protocol in use. I’ll be happy to answer any questions you may have. Larry Nedry (MHD sysop)

From: spud (Spud Potato)

Subject: MF Terminal programs...

The new version of AppleLink (v. 5.0) downloads in the background with no apparent slowdown in speed....

From: rich (Rich Siegel, Bedford, MA)

Subject: Re: LS Pascal Radius SANE incompatability

It is, in fact, a problem with Radius SANE. I talked to Ron Marianetti at Radius (who did the Radius SANE INIT), and he did track it down to his bug. There’s a new version. I think it’s 1.1 or 1.2 of Radius SANE that is available to fix the problem. --Rich Rich Siegel THINK Technologies

From: tomh (Tom Herbst, Ithaca, NY)

Subject: Palette Manager in LSP

I am having a great deal of difficulty adding the necessary interface file to use the Palette Manager with LightSpeed Pascal. I manually entered the appropriate data structures, inlines, etc. gleaned from Inside Mac V, the MacTutor articles, and the Programmer’s Online Companion (all consistent), but the SetPalette calls crash even MacsBug with bus errors. Is there a copy of the necessary code along with a simple (i.e. create a palette, a NewCWindow, and draw a rectangle) program example out there somewhere? My PaletteMgr and example program compile ok, but run very inconsistently, sometimes drawing things in the default (startup) palette and more frequently crashing the whole shebang.

From: rick (Rick Boarman, Claris Corporation)

Subject: Re: MacTutor Disks

Many a times we have wished that we could download MacTutor source code from some board (ours?). We’d be willing to pay some fee for this handy service. Can this be setup? [Yes, Rusty and I are setting up a private MacTutor download for a fee, exclusive to the Mousehole. -Ed]

From: ericlim (Eric Lim, Flushing, NY)

Subject: Modeless Dialog/List Manager

HELP! HELP !! Does anyone know of a technique on using the List Manager Package in a UserItem inside a Modeless Dialog? I don’t want to create the window and controls on my own, I want to use IsDialogEvent and DialogSelect. Any suggestions on how I can do this? So far, I’m getting a system error when I use LNEW with rView set to the rectangle of the UserItem. I got the Modeless Dialog to work on a regular dialog with a UserItem. I also got the List Manager to work on a regular window that I created. But it just bombs when I use Modeless Dialog with the List Manager Package. I would appreciate any help or suggestions I could get. Thanks a lot! [Forget the Dialog Manager and just use the list manager into a window. -Ed]

From: tompink (Tom Pinkerton, Iowa City, IA)

Subject: Ending DA drvrCtl routine

For a while now, I’ve been using an ending to the drvrCtl desk accessory routine that was supplied with my MDS development package. That ending, rather than simply returning, calls the low-level Device Manager routine IODone (pointed to by the JIODone global variable) before returning. I’ve been blindly keeping this in all my DA sources without really knowing its purpose. I assume that who ever wrote the sample DA for the MDS development system knew what he or she were doing when they added this call. All I can figure is that the call somehow clears the IO Request sent to the DA from the driver IO Queue so that other devices won’t receive the request (since they needn’t bother with it, I guess). Does anyone know anything about this?

From: asc (Alex Colwell, El Segundo, CA

Subject: Using TTEView in MacApp

Is there anybody using MacApp? We are trying to develop an application using MacApp here at HAC (Hughes Aircraft Company). The application is design to handle various aspects of the mission planning (ie. war games simulation). My problem is trying to create a TTEView object inside another view. Rather creating the text edit view object at the time ‘DoMakeViews’ method is invoked. I would like to able bounce around in the current view and create a TTEView object relative to the mouse click position. The TTEView’s ‘DoKeyCommand’ and ‘DoMouseCommand’ methods are never invoked. The current view methods is always getting it before the TTEView’s methods. I tried to pass the information on to the TEView’s method, but always crashes and transfer to MacApp’s debugger. I have created a TCatView to contain the current view of interest and create the TTEView, but it does not work either. I tried to force setting the current child view using the ‘SetCurrentChild’, but it crashes, too. I am really stump how to make this application work properly. So far, I am really disappointed in MacApp. It’s suppose to be easier to program for the Macintosh, but I think it is worst than traditional Macintosh programming. If anybody has any thoughts, please let me know.

From: david (David Schlesinger)

Subject: DRVRs and Asynch I/O Calls

I’m currently writing a DRVR to handle a network protocol, and one aspect of the dDevice Manager interface has me a little puzzled: I understand that I can make “asynchronous” calls to the driver, and that these will be handled “at interrupt level”. What part of the MAC OS calls my DRVR? How often does this happen? Is my DRVR called only when the driver’s i/o queue is non-empty? I also gather that I can “defer” processing a _Control call by returning with a RTS rather than via jIODone. Will my DRVR be called to service subsequent requests in the queue if I defer a call? Inside Mac doesn’t really detail all the specifics of managing asynch calls to driver id’s. Any wizards who have some insight , your help would be greatly appreciated!

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Latest Forum Discussions

See All

Go from lowly lizard to wicked Wyvern in...
Do you like questing, and do you like dragons? If not then boy is this not the announcement for you, as Loongcheer Game has unveiled Quest Dragon: Idle Mobile Game. Yes, it is amazing Square Enix hasn’t sued them for copyright infringement, but... | Read more »
Aether Gazer unveils Chapter 16 of its m...
After a bit of maintenance, Aether Gazer has released Chapter 16 of its main storyline, titled Night Parade of the Beasts. This big update brings a new character, a special outfit, some special limited-time events, and, of course, an engaging... | Read more »
Challenge those pesky wyverns to a dance...
After recently having you do battle against your foes by wildly flailing Hello Kitty and friends at them, GungHo Online has whipped out another surprising collaboration for Puzzle & Dragons. It is now time to beat your opponents by cha-cha... | Read more »
Pack a magnifying glass and practice you...
Somehow it has already been a year since Torchlight: Infinite launched, and XD Games is celebrating by blending in what sounds like a truly fantastic new update. Fans of Cthulhu rejoice, as Whispering Mist brings some horror elements, and tests... | Read more »
Summon your guild and prepare for war in...
Netmarble is making some pretty big moves with their latest update for Seven Knights Idle Adventure, with a bunch of interesting additions. Two new heroes enter the battle, there are events and bosses abound, and perhaps most interesting, a huge... | Read more »
Make the passage of time your plaything...
While some of us are still waiting for a chance to get our hands on Ash Prime - yes, don’t remind me I could currently buy him this month I’m barely hanging on - Digital Extremes has announced its next anticipated Prime Form for Warframe. Starting... | Read more »
If you can find it and fit through the d...
The holy trinity of amazing company names have come together, to release their equally amazing and adorable mobile game, Hamster Inn. Published by HyperBeard Games, and co-developed by Mum Not Proud and Little Sasquatch Studios, it's time to... | Read more »
Amikin Survival opens for pre-orders on...
Join me on the wonderful trip down the inspiration rabbit hole; much as Palworld seemingly “borrowed” many aspects from the hit Pokemon franchise, it is time for the heavily armed animal survival to also spawn some illegitimate children as Helio... | Read more »
PUBG Mobile teams up with global phenome...
Since launching in 2019, SpyxFamily has exploded to damn near catastrophic popularity, so it was only a matter of time before a mobile game snapped up a collaboration. Enter PUBG Mobile. Until May 12th, players will be able to collect a host of... | Read more »
Embark into the frozen tundra of certain...
Chucklefish, developers of hit action-adventure sandbox game Starbound and owner of one of the cutest logos in gaming, has released their roguelike deck-builder Wildfrost. Created alongside developers Gaziter and Deadpan Games, Wildfrost will... | Read more »

Price Scanner via MacPrices.net

Limited-time sale: 13-inch M3 MacBook Airs fo...
Amazon has the base 13″ M3 MacBook Air (8GB/256GB) in stock and on sale for a limited time for $989 shipped. That’s $110 off MSRP, and it’s the lowest price we’ve seen so far for an M3-powered... Read more
13-inch M2 MacBook Airs in stock today at App...
Apple has 13″ M2 MacBook Airs available for only $849 today in their Certified Refurbished store. These are the cheapest M2-powered MacBooks for sale at Apple. Apple’s one-year warranty is included,... Read more
New today at Apple: Series 9 Watches availabl...
Apple is now offering Certified Refurbished Apple Watch Series 9 models on their online store for up to $80 off MSRP, starting at $339. Each Watch includes Apple’s standard one-year warranty, a new... Read more
The latest Apple iPhone deals from wireless c...
We’ve updated our iPhone Price Tracker with the latest carrier deals on Apple’s iPhone 15 family of smartphones as well as previous models including the iPhone 14, 13, 12, 11, and SE. Use our price... Read more
Boost Mobile will sell you an iPhone 11 for $...
Boost Mobile, an MVNO using AT&T and T-Mobile’s networks, is offering an iPhone 11 for $149.99 when purchased with their $40 Unlimited service plan (12GB of premium data). No trade-in is required... Read more
Free iPhone 15 plus Unlimited service for $60...
Boost Infinite, part of MVNO Boost Mobile using AT&T and T-Mobile’s networks, is offering a free 128GB iPhone 15 for $60 per month including their Unlimited service plan (30GB of premium data).... Read more
$300 off any new iPhone with service at Red P...
Red Pocket Mobile has new Apple iPhones on sale for $300 off MSRP when you switch and open up a new line of service. Red Pocket Mobile is a nationwide MVNO using all the major wireless carrier... Read more
Clearance 13-inch M1 MacBook Airs available a...
Apple has clearance 13″ M1 MacBook Airs, Certified Refurbished, available for $759 for 8-Core CPU/7-Core GPU/256GB models and $929 for 8-Core CPU/8-Core GPU/512GB models. Apple’s one-year warranty is... Read more
Updated Apple MacBook Price Trackers
Our Apple award-winning MacBook Price Trackers are continually updated with the latest information on prices, bundles, and availability for 16″ and 14″ MacBook Pros along with 13″ and 15″ MacBook... Read more
Every model of Apple’s 13-inch M3 MacBook Air...
Best Buy has Apple 13″ MacBook Airs with M3 CPUs in stock and on sale today for $100 off MSRP. Prices start at $999. Their prices are the lowest currently available for new 13″ M3 MacBook Airs among... Read more

Jobs Board

Solutions Engineer - *Apple* - SHI (United...
**Job Summary** An Apple Solution Engineer's primary role is tosupport SHI customers in their efforts to select, deploy, and manage Apple operating systems and Read more
DMR Technician - *Apple* /iOS Systems - Haml...
…relevant point-of-need technology self-help aids are available as appropriate. ** Apple Systems Administration** **:** Develops solutions for supporting, deploying, Read more
Omnichannel Associate - *Apple* Blossom Mal...
Omnichannel Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
Operations Associate - *Apple* Blossom Mall...
Operations Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
Cashier - *Apple* Blossom Mall - JCPenney (...
Cashier - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Blossom Mall Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.