TweetFollow Us on Twitter

Simon Game
Volume Number:4
Issue Number:7
Column Tag:Basic School

True Basic Plays the Simon Game

By Dave Kelly, MacTutor Editorial Board

The new and improved version of True Basic (ver. 2.01) has just recently started shipping. Some of the new features include: built in support for full color and PICT format images, 68881 coprocessor support, and a more structured environment using modules and workspaces. True Basic also now includes the Runtime package (which used to cost a few hundred dollars), but they are packaging the Macintosh Developer’s Toolkit separately. The toolkit contains all of the libraries which are essential for making “real” Macintosh programs (menus, windows, controls etc). It is obvious to any dedicated Macintosh developer that this package should have been included with the True Basic “Basic” package. However, it is true that when True Basic is sold to a school as a training tool, there is not much need for the Macintosh libraries.

This month, I am not going to do an in depth analysis of True Basic 2.01 (Basic Wars, part ??). I’ll save that for next month. I would like to show off some of True Basic’s new features with respect to Macintosh II color. I’m still impressed by Mac II’s color!

True Basic has its own unique set of statements for using color. The SET COLOR n statement (where n is a number from 0 to 255) sets the drawing pen to the color selected. Then a PLOT or some other graphics command may be given to operate in the selected color. Selecting color is not really very unique. ZBasic uses a similar statement (COLOR=n) to select colors.

The Palette Manager is responsible for monitoring and establishing the color environment on the Mac II. The system provides a default palette of colors which applications may use as desired. The default palette is a set of standard colors which may be selected. Color Quickdraw will match the selected color as best as it can, but there may be times when more shades of a particular color are desired than are available in the default palette.

Most video devices including the Mac II video card use an indexed color model. Each pixel value in the video device’s memory corresponds to an indexed value in the color table. The color display card uses the RGB value found in the look up table to display the desired color. There are several advantages to using this indexed display method. One is that it is faster. Also, it allows color animation to be used. In color animation, the index value is changed to change display colors; the pixel color itself is not changed. You can especially see the effects of this when using Pixel Paint or Modern Artist and changing the palette using the application. Another way to see the effects of changing the palette is by using the Colorizer software, by Palomar. This is recommended to any Mac II user that wants to make better use of color on the Mac II. [The Colorizer and the PICT Dective are available from MacTutor’s Mail Order Store at the back of this issue. -Ed]

Fig. 1 Our Simon Game in True Basic (This is in color on the Mac II!)

Color Palette Manipulation

True Basic allows you to change colors in the color palette. The SET COLOR MIX (x) r,g,b statement sets the color x to the color specified by the red, green, blue values given by r,g and b. In True Basic the values of r,g and b are from 0 to 1 (whereas the hardware is looking for values from 0 to 65535). For the user it is much easier to think in terms of 0 to 1 than 0 to 65535. A SET COLOR MIX (5) .25,0,0 would change color 5 to 25% of the full red value and no green and blue. The number of distinct intensities available on your Mac II depends on the number of colors available. You may use ASK MAX COLOR to determine how many of the colors are available out of the total 256 colors (assuming you can display 256 colors). Actually ASK MAX COLOR returns n-3 colors because some of the colors are already in use by the system. ASK MAX COLOR will only let you know the maximum possible number of colors. SET COLOR MIX is ignored on black and white systems.

Using color is fun as you can see from this months program (see the black and white figure 1; on the Mac II, this Simon game is in color with the background an animated palette). The theme I selected is based on the Simon game (Milton Bradley) which I’m sure you have all seen before. There are a few things which must be done to set up the program if you are starting from scratch. First go to a paint program (color is preferred, but not necessary) and create the main PICT for the game as shown here in figure 2.

Fig. 2 PICT for the Simon Game

It doesn’t matter what colors are used or even the shape of the colored areas. The program will do a fill (FLOOD x,y statement in True Basic) and fill in the correct colors as long as the size of the PICT rectangle remains the same size. If the same color is used as the original, the SET COLOR MIX statement needs to use a different color because the FLOOD statement fills the area till it finds a change in color or it finds the same color as the one being use to fill the area.

Next the PICT should be stored in the clipboard and then run the ‘Save Clip’ program. The purpose of this program is to convert the clipboard PICT file into a disk PICT file. True Basic could read the PICT file direct, but this way we know that we have only selected the actually PICT and not some of the areas surrounding it. When the ‘Save Clip’ program asks for a filename, the name of the file as used in the main program should be used (in this case ‘Prof Says.PICT’ is the filename).

{1}
! Save Clip
! This program will save the contents of the clipboard to a file
LIBRARY “Mactools*”
LIBRARY “PictLib*”
DECLARE DEF MacPutFile$
LET doneflag=0
DO until doneflag=1
   CALL Read_clipboard(“PICT”,s$)
   LET filename$=MacPutFile$(50,50,”Enter Filename to save as ”,””,””)
   IF filename$<>”” THEN
      CALL Write_pictfile(filename$,s$)
      PRINT “Do another?”;
      GET KEY Answer
      IF Answer<>ord(“Y”) OR Answer<>ord(“y”) THEN LET doneflag=1
   ELSE
      LET doneflag=1
   END IF
LOOP
END

The main program requires the use of the MacTools and PictLib Libraries. These are provided with the True Basic package. To help True Basic find the libraries (in case they are moved to a strange place) the ALIAS statement should be used. The manual is not too clear on this, but ALIAS statements should be run from a file ‘TB Startup’ automatically when True Basic is run. This is a satisfactory solution to fix the HFS problems that True Basic 1.0 had.

The next thing that might be different for you is the way that True Basic specifies the window (or screen) coordinates. No matter what kind of computer True Basic is being run on, the coordinates are the same. The coordinates start with 0,0 in the bottom left corner of the screen and go to 1,1 in the top right corner. Then using the SET WINDOW statement any coordinate system may be mapped to the current window. A smaller portion of the screen may be partitioned off to act as a kind of clipping region for text. The PictStuff library seems to only use screen coordinates and doesn’t pay much attention to the location of the window. However, by using the CALL Set_Frame statement, the PICT graphics may be displayed anywhere you want. The OPEN #1:screen left, right, bottom, top statement is set up for the Apple RGB Monitor. These values may have to be adjusted if used on other size monitors.

Of course, True Basic statements are used all the way through the program except for the MacTools calls which are used mostly used to display text. A few of the other Macintosh things which are included in the MacTools Library are:

MacPenSize(width,height)
MacPenMode(mode)
MacTextFont(font)
MacTextFace(style$)
MacTextMode(mode)
MacTextSize(size)
MacTextBox(left,right,bottom,top,s$,just$)
MacSpaceExtra(extra)
MacGetFontInfo(ascent,descent,widmax,leading)
MacGetFile$(h,v,type$,button$)
MacPutFile$(h,v,pr$,iname$,button$)
MacSysBeep(duration)

also other commands for drawing ovals and rectangles.

I am somewhat disappointed that more of the Macintosh Toolbox is not included (built in) to the True Basic system. Of course the Developer Toolkit should include the rest of the Macintosh ROM world, but it would be nice to have it integrated. [We are still waiting for delivery of the Developer Toolkit. True Basic is sending return postcards to order the library but as yet we have not seen it. -Ed] If you use any library a lot, you may load it when you startup and have it resident in memory so at least there is a way to simplify the system. I hope to be able to review the Developer Toolkit when it is released. I will have more to say about True Basic next month.

{2}
! Professor Mac Says 
! By David Kelly
! ©MacTutor, 1988
! With special thanks to Milton Bradley Co.
! For their “Simon” Game

LIBRARY “Mactools*”! MacStuff Library
LIBRARY “PictLib*” ! PICTStuff Library
DECLARE DEF MacGetFile$
DIM notes(31)
RANDOMIZE
LET skilllevel=8 ! Set up levels
LET level=1
SET BACKGROUND COLOR 10 !  Get a Background color
OPEN #1:screen .25,.67,.165,.75    ! open a section of screen
WINDOW #1 ! and use it as a window
SET WINDOW 0,1,0,1
ASK SCREEN a,b,c,d
CALL set_frame(a,b,c,d)

LET filename$=”Prof Says.PICT”! Get the PICT resource
IF filename$<>”” THEN
 CALL Read_pictfile(filename$,s$)
 CALL Draw_string(s$,1)
ELSE
 PRINT “Prof Says.PICT file not found!”
END IF

! Set up the main screen
CALL SetRed
FLOOD .3,.7 ! Fill the shape with Red
CALL SetBlue
FLOOD .7,.7 ! Fill the shape with Blue
CALL SetGreen
FLOOD .3,.3 ! Fill the shape with Green
CALL SetYellow
FLOOD .7,.3 ! Fill the shape with Yellow
! Turn off all shapes
CALL darkred
CALL darkblue
CALL darkgreen
CALL darkyellow
ASK WINDOW a,b,c,d
BOX KEEP a,b,c,d in None$ ! Save PICT so it can be             
 ! restored later
CALL MacTextFont(2)! Get New York font
SET TEXT JUSTIFY “center”,”half”
DO ! Start the Main program loop
 SET COLOR MIX (0) rnd,rnd,rnd   ! change background color
 CALL SetButtons(level)
 DO
 LET Animationcount=Animationcount+1
 IF Animationcount>=500 then
 SET COLOR MIX (0) rnd,rnd,rnd! change the background color
 LET Animationcount=0
 END IF
 GET MOUSE x,y,s ! Check for mouse press
 IF s>=1 then
 GET POINT x,y   ! Get the mouse press
 LET result=0
 CALL PtInRect(x,y,.12,.295,.7,.8,result)    ! Level 1
 IF result=1 then
 LET skilllevel=8
 LET level=1
 CALL SetStartGameButton(Level)
 END IF
 LET result=0
 CALL PtInRect(x,y,.32,.495,.7,.8,result)    ! Level 2
 IF result=1 then
 LET skilllevel=14
 LET level=2
 CALL SetStartGameButton(Level)
 END IF
 LET result=0
 CALL PtInRect(x,y,.505,.680,.7,.8,result)   ! Level 3
 IF result=1 then
 LET skilllevel=20
 LET level=3
 CALL SetStartGameButton(Level)
 END IF
 LET result=0
 CALL PtInRect(x,y,.705,.880,.7,.8,result)   ! Level 4
 IF result=1 then
 LET skilllevel=31
 LET level=4
 CALL SetStartGameButton(Level)
 END IF
 LET result=0
 CALL PtInRect(x,y,.3,.7,.05,.15,result)
 IF result=1 then
 ! Quit Routine
 SET COLOR “White”
 BOX AREA 0,1,0,1
 SET COLOR “Black”
 BOX LINES 0,1,0,1
 SET COLOR “Blue”
 CALL MacTextSize(24)
 PLOT TEXT, AT .5,.6:”Thank you for”
 PLOT TEXT, AT .5,.4:”Reading MacTutor™”
 STOP
 END IF
 LET result=0
 CALL PtInRect(x,y,.3,.7,.2,.3,result)
 IF result=1 then
 ! Play the Game
 BOX SHOW none$ at 0,0
 LET x=0
 LET y=0
 LET numberofnotes=1
 LET tempo=100
 DO until numberofnotes=skilllevel
 CALL PlaySequence(numberofnotes,tempo, notes())
 FOR i=1 to numberofnotes
 SET COLOR MIX (0) rnd,rnd,rnd
 GET POINT x,y
 CALL buttonpress(x,y,selection)
 IF selection<>notes(i) then
 CALL MacSysBeep(500)
 CALL MacSysBeep(500)
 CALL MacSysBeep(500)
 EXIT DO
 END IF
 NEXT i
 LET numberofnotes=numberofnotes+1
 LET tempo=tempo+i*10
 PAUSE 1
 LOOP
 CALL SetButtons(level)
 END IF
 END IF
 LOOP
LOOP
END

SUB SetButtons(GameLevel)     ! Set Game Buttons
 CALL MacTextSize(14)
 SET COLOR “white”
 BOX AREA .3,.7,.05,.15   ! Quit Game Button
 BOX AREA .12,.295,.7,.8  ! Level 1 Button
 BOX AREA .32,.495,.7,.8  ! Level 2 Button
 BOX AREA .505,.680,.7,.8 ! Level 3 Button
 BOX AREA .705,.880,.7,.8 ! Level 4 Button
 SET COLOR “Black”
 BOX LINES .3,.7,.05,.15  ! Quit Game Button
 BOX LINES .12,.295,.7,.8 ! Level 1 Button
 BOX LINES .32,.495,.7,.8 ! Level 2 Button
 BOX LINES .505,.680,.7,.8  ! Level 3 Button
 BOX LINES .705,.880,.7,.8! Level 4 Button
 SET COLOR “Red”
 CALL SetStartGameButton(GameLevel)
 PLOT TEXT, AT .5,.11:”Quit Game”
 CALL MacTextSize(12)
 PLOT TEXT, AT .195,.77:”1"
 PLOT TEXT, AT .4,.77:”2"
 PLOT TEXT, AT .575,.77:”3"
 PLOT TEXT, AT .825,.77:”4"
END SUB

SUB SetStartGameButton(GameLevel)  ! Set up the Start Game Button
 SET COLOR MIX (0) rnd,rnd,rnd
 CALL MacTextSize(14)
 SET COLOR “White”
 BOX AREA .1,.9,.2,.3! Start Game Button
 SET COLOR “Black”
 BOX LINES .1,.9,.2,.3  ! Start Game Button
 SET COLOR “Red”
 PLOT TEXT, AT .5,.26:”Start Game Level “ & STR$(Gamelevel)
END SUB

SUB SetNone ! Display the PICT with colors off
 BOX SHOW None$ at 0,0
END SUB

SUB SetRed
 SET COLOR MIX (13) 1,0,0
 SET COLOR 13
END SUB
SUB DarkRed
 SET COLOR MIX (13) 0,0,0
 SET COLOR 13
END SUB
SUB SetGreen
 SET COLOR MIX (14) 0,1,0
 SET COLOR 14
END SUB

SUB DarkGreen
 SET COLOR MIX (14) 0,0,0
 SET COLOR 14
END SUB
SUB SetBlue
 SET COLOR MIX (15) 0,0,1
 SET COLOR 15
END SUB
SUB DarkBlue
 SET COLOR MIX (15) 0,0,0
 SET COLOR 15
END SUB
SUB SetYellow
 SET COLOR MIX (16) .9,1,0
 SET COLOR 16
END SUB
SUB DarkYellow
 SET COLOR MIX (16) 0,0,0
 SET COLOR 16
END SUB
SUB FlashRed
 SET COLOR MIX (13) 1,0,0
 LET note$=”o5 mf ms c”
 PLAY note$
 PAUSE .5
 SET COLOR MIX (13) 0,0,0
END SUB
SUB FlashGreen
 SET COLOR MIX (14) 0,1,0
 LET note$=”o5 mf ms a”
 PLAY note$
 PAUSE .5
 SET COLOR MIX (14) 0,0,0
END SUB

SUB FlashBlue
 SET COLOR MIX (15) 0,0,1
 LET note$=”o5 mf ms >a”
 PLAY note$
 PAUSE .5
 SET COLOR MIX (15) 0,0,0
END SUB
SUB FlashYellow
 SET COLOR MIX (16) 1,1,0
 LET note$=”o5 mf ms e”
 PLAY note$
 PAUSE .5
 SET COLOR MIX (16) 0,0,0
END SUB
SUB PtInRect(x,y,left,right,bottom,top,Result)     
! See if point is in Rectangle
 IF x>left and x<right and y>bottom and y<top then
 LET Result=1
 ELSE
 LET Result=0
 END IF
END SUB

SUB Buttonpress(x,y,selection)! Handle button press
 CALL PtInRect(x,y,0,.5,.5,1,result)
 IF result=1 then LET selectedcolor=13
 CALL PtInRect(x,y,0,.5,0,.5,result)
 IF result=1 then LET selectedcolor=14
 CALL PtInRect(x,y,.5,1,.5,1,result)
 IF result=1 then LET selectedcolor=15
 CALL PtInRect(x,y,.5,1,0,.5,result)
 IF result=1 then LET selectedcolor=16
 SELECT CASE selectedcolor
 CASE 13
 CALL flashred
 LET selection=1
 CASE 14
 CALL flashgreen
 LET selection=2
 CASE 15
 CALL flashblue
 LET selection=3
 CASE 16
 CALL flashyellow
 LET selection=4
 CASE ELSE
 LET selection=0
 END SELECT
END SUB

SUB PlaySequence(numberofnotes,tempo,notes()) ! Play the notes
 LET tempo$=”t”&str$(tempo)
 PLAY tempo$
 FOR i=1 to numberofnotes
 SET COLOR MIX (0) rnd,rnd,rnd
 IF notes(i)=0 then
 LET note=int(4*rnd)+1
 ELSE
 LET note=notes(i)
 END IF
 SELECT CASE note
 CASE 1
 CALL flashred
 CASE 2
 CALL flashgreen
 CASE 3
 CALL flashblue
 CASE 4
 CALL flashyellow
 END SELECT
 LET notes(i)=note
 NEXT i
END SUB
 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Apple iTunes 12.2 - Play Apple Music...
Apple iTunes lets you organize and stream Apple Music, download and watch video and listen to Podcasts. It can automatically download new music, app, and book purchases across all your devices and... Read more
Apple Security Update 2015-005 - For OS...
Apple Security Update 2015-005 is recommended for all users and improves the security of OS X. For detailed information about the security content of this update, please visit: http://support.apple.... Read more
Apple HP Printer Drivers 3.1 - For OS X...
Apple HP Printer Drivers includes the latest HP printing and scanning software for OS X Lion or later. For information about supported printer models, see this page. Version 3.1: The latest printing... Read more
Epson Printer Drivers 3.1 - For OS X 10....
Epson Printer Drivers installs the latest software for your EPSON printer or scanner for OS X Yosemite, OS X Mavericks, OS X Mountain Lion, and OS X Lion. For more information about printing and... Read more
Xcode 6.4 - Integrated development envir...
Xcode provides everything developers need to create great applications for Mac, iPhone, and iPad. Xcode brings user interface design, coding, testing, and debugging into a united workflow. The Xcode... Read more
OS X Yosemite 10.10.4 - Apple's lat...
OS X Yosemite is Apple's newest operating system for Mac. An elegant design that feels entirely fresh, yet inherently familiar. The apps you use every day, enhanced with new features. And a... Read more
Dash 3.0.2 - Instant search and offline...
Dash is an API Documentation Browser and Code Snippet Manager. Dash helps you store snippets of code, as well as instantly search and browse documentation for almost any API you might use (for a full... Read more
FontExplorer X Pro 5.0 - Font management...
FontExplorer X Pro is optimized for professional use; it's the solution that gives you the power you need to manage all your fonts. Now you can more easily manage, activate and organize your... Read more
Typinator 6.6 - Speedy and reliable text...
Typinator turbo-charges your typing productivity. Type a little. Typinator does the rest. We've all faced projects that require repetitive typing tasks. With Typinator, you can store commonly used... Read more
Arq 4.12.1 - Online backup to Google Dri...
Arq is super-easy online backup for the Mac. Back up to your own Google Drive storage (15GB free storage), your own Amazon Glacier ($.01/GB per month storage) or S3, or any SFTP server. Arq backs up... Read more

Hands-On With Raceline CC
Set for release soon, Rebellion’s motorbike racing game, Raceline CC certainly looks stylish. But how does it play? I got my hands on a preview build to answer exactly that. | Read more »
Siegefall - Tips, Tricks, and Strategies...
So, you fancy establishing a base and ruling the world again. Siegefall is a convenient place to do that, but how about some great tips and tricks on how best to go about it? Here are a few ideas on how to get ahead as a beginner to this medieval... | Read more »
The WWE Comes to Racing Rivals - Because...
Racing Rivals is a racing game that's all about, well, rivalry. And who knows rivalry better than WWE superstars (shhhh, that was rhetorical)? [Read more] | Read more »
Hey, Who Put Apple Music in My SoundHoun...
One of the App Store's popular music discovery sources - SoundHound - has already been updated to include Apple's own music discovery source - Apple Music. That was fast! [Read more] | Read more »
Arcane Legends has a New Expansion Calle...
Arcane Legends has been going strong since it debuted at the tail end of 2012. So well, in fact, that it's already up to its sixth expansion. [Read more] | Read more »
Vector 2 is Officially a Thing and it...
Vector is a pretty cool parkour-driven runner that's gotten a pretty decent following since it first came out - although personally I think more people could stand to show it some love. Anyway, Nekki has announced that a sequel isofficially on its... | Read more »
Get Ready to Trucksform and Roll Out (an...
It looks like NuOxygen is bringing the truck-transforming racer Trucksform (get it?) to iOS in a couple of weeks. Although really it's more of an auto-driver than a racer. But still, transforming trucks! [Read more] | Read more »
This Week at 148Apps:June 22-26, 2015
June's Summer Journey Continues With 148Apps How do you know what apps are worth your time and money? Just look to the review team at 148Apps. We sort through the chaos and find the apps you're looking for. The ones we love become Editor’s Choice,... | Read more »
LEGO® Minifigures Online (Games)
LEGO® Minifigures Online 1.0.1 Device: iOS iPhone Category: Games Price: $4.99, Version: 1.0.1 (iTunes) Description: | Read more »
World of Tanks Blitz celebrates its firs...
Today marks the first anniversary of the launch of World of Tanks Blitz, the mobile version of the PC tank battler, World of Tanks. World of Tanks Blitz launched on iOS and Android on June 26th last year and to celebrate, Wargaming is giving all... | Read more »

Price Scanner via MacPrices.net

Apple Releases OS X 10.10.4 With WIFi Fix, iO...
On Tuesday, Apple released final versions of OS X 10.10.4 and iOS 8.4, as well as updates for the Safari browser for OS X Yosemite, Mavericks, and Mountain Lion. The OS X 10.10.4 update focuses on... Read more
Dual-Band High-Gain Antennas for Home Wi-Fi N...
Linksys has announced what it claims are the first dual-band, omni-directional high-gain antennas for the consumer market. The new Linksys high-gain antennas available in a 2- and 4-pack (WRT004ANT... Read more
Apple refurbished 2014 15-inch Retina MacBook...
The Apple Store has Apple Certified Refurbished 2014 15″ 2.2GHz Retina MacBook Pros available for $1609, $390 off original MSRP. Apple’s one-year warranty is included, and shipping is free. They have... Read more
Clearance 2014 MacBook Airs available for up...
Adorama has 2014 MacBook Airs on sale for up to $301 off original MSRP including NY + NJ sales tax and free shipping: - 11″ 256GB MacBook Air: $798 $301 off original MSRP - 13″ 128GB MacBook Air: $... Read more
5K iMacs on sale for $100 off MSRP, free ship...
B&H Photo has the new 27″ 3.3GHz 5K iMac on sale for $1899.99 including free shipping plus NY tax only. Their price is $100 off MSRP. They have the 27″ 3.5GHz 5K iMac on sale for $2199, also $100... Read more
27-inch 3.2GHz iMac on sale for $1679, save $...
B&H Photo has the 27″ 3.2GHz iMac on sale for $1679.99 including free shipping plus NY sales tax only. Their price is $120 off MSRP. Read more
12-inch 1.2GHz Gray MacBook on sale for $1487...
Amazon.com has the new 12″ 1.2GHz Gray MacBook in stock and on sale for $1487 including free shipping. Their price is $102 off MSRP, and it’s the lowest price available for this model. We expect... Read more
15-inch 2.2GHz Retina MacBook Pro on sale for...
Amazon.com has the 15″ 2.2GHz Retina MacBook Pro on sale for $1819 including free shipping. Their price is $180 off MSRP, and it’s the lowest price available for this model. Read more
OtterBox Releases New Symmetry Series Metalli...
Otterbox’s new Symmetry Series of smartphone cases flaunts the best of both both street style and street smarts with their new metallic finishes and trusted OtterBox protection for iPhone 6 and... Read more
Eliminate Cable Chaos with New GE Branded Wra...
GE licensee Jasco Products has introduced a new line of GE branded Wrap-n-Charge USB wall chargers with built-in cable management. “We are always working to combine great technology with innovative... Read more

Jobs Board

*Apple* TV Live Streaming Frameworks Test En...
**Job Summary** Work and contribute towards the engineering of Apple 's state-of-the-art products involving video, audio, and graphics in Interactive Media Group (IMG) at Read more
Project Manager, WW *Apple* Fulfillment Ope...
…a senior project manager / business analyst to work within our Worldwide Apple Fulfillment Operations and the Business Process Re-engineering team. This role will work Read more
Senior Data Scientist, *Apple* Retail - Onl...
**Job Summary** Apple Retail - Online sells Apple products to customers around the world. In addition to selling Apple products with unique services such as iPad Read more
*Apple* Music Producer - Apple (United State...
**Job Summary** Apple Music seeks a Producer to help shepherd some of the most important content and editorial initiatives within the music app, with a particular focus Read more
Sr. Technical Services Consultant, *Apple*...
**Job Summary** Apple Professional Services (APS) has an opening for a senior technical position that contributes to Apple 's efforts for strategic and transactional Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.