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

Minecraft 302 - Popular sandbox building...
Minecraft allows players to build constructions out of textured cubes in a 3D procedurally generated world. Other activities in the game include exploration, gathering resources, crafting, and combat... Read more
FotoMagico 5.2b8 - Powerful slideshow cr...
FotoMagico lets you create professional slideshows from your photos and music with just a few, simple mouse clicks. It sports a very clean and intuitive yet powerful user interface. High image... Read more
TeamViewer 11.0.65452 - Establish remote...
TeamViewer gives you remote control of any computer or Mac over the Internet within seconds, or can be used for online meetings. Find out why more than 200 million users trust TeamViewer! Free for... Read more
Dropbox 9.4.49 - Cloud backup and synchr...
Dropbox is an application that creates a special Finder folder that automatically syncs online and between your computers. It allows you to both backup files and keep them up-to-date between systems... Read more
Geekbench 4.0.0 - Measure processor and...
Geekbench provides a comprehensive set of benchmarks engineered to quickly and accurately measure processor and memory performance. Designed to make benchmarks easy to run and easy to understand,... Read more
Nisus Writer Pro 2.1.5 - Multilingual wo...
Nisus Writer Pro is a powerful multilingual word processor, similar to its entry level products, but brings new features such as table of contents, indexing, bookmarks, widow and orphan control,... Read more
Default Folder X 5.0.6 - Enhances Open a...
Default Folder X attaches a toolbar to the right side of the Open and Save dialogs in any OS X-native application. The toolbar gives you fast access to various folders and commands. You just click on... Read more
Alfred 3.1 - Quick launcher for apps and...
Alfred is an award-winning productivity application for OS X. Alfred saves you time when you search for files online or on your Mac. Be more productive with hotkeys, keywords, and file actions at... Read more
MYStuff Pro 2.0.25 - Create inventories...
MYStuff Pro is the most flexible way to create detail-rich inventories for your home or small business. Add items to MYStuff by dragging and dropping existing information, uploading new images, or... Read more
OmniOutliner Pro 4.6 - Pro version of th...
OmniOutliner Pro is a flexible program for creating, collecting, and organizing information. Give your creativity a kick start by using an application that's actually designed to help you think. It's... Read more

Lifeline: Crisis Line (Games)
Lifeline: Crisis Line 1.0.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0.0 (iTunes) Description: | Read more »
BLUK (Games)
BLUK 1.1 Device: iOS Universal Category: Games Price: $1.99, Version: 1.1 (iTunes) Description: ** ‘Upcoming Game of the Year’ Finalist at NGF Awards 2015 ** ** ‘Big Indie Pitch’ Nominee at Pocket Gamer Connects 2016... | Read more »
Six! Tips, tricks, and hints for beginne...
There's nothing pretentious about Six!, the latest release from Gram Games. As puzzlers go, it's so unassuming that it took me some time to even realize why it was called what it was. Somewhere, my high school geometry teacher is now sobbing... | Read more »
Mobius Final Fantasy: Multiplayer update...
Up until now, Mobius Final Fantasy has been about as single-player an experience as an RPG can be. Not only do you play solo, but you are literally one among a seemingly unending wave of faceless warriors on the road toward the same goal. [Read... | Read more »
Find out the story behind League of Ange...
If you’re looking for a new thrilling MMORPG to play with your friends then you’ll be excited to hear that there is a sequel to one of the most well known titles in the genre – namely League of Angels 2. With a brand new 3D engine offering... | Read more »
Naruto Shippuden: Ultimate Ninja Blazing...
I'm not sure if it's possible to say you are an anime fan but also never have seen one episode of Naruto. If it is, then I resemble that remark, and if not, I offer a hearty apology. [Read more] | Read more »
5 mobile games that let you explore spac...
No Man's Sky hasn't exactly turned out to be everything it was promised. Though its core concept of exploring an unimaginably vast universe of different planets is an intriguing one, the execution has left many PS4 and PC gamers feeling like they... | Read more »
Mummy madness in new action game Tomb He...
Hot on the tail of Bump Hero, ZPlay is giving gamers another reason to get screen bashing with a brand new release. Tomb Heroes is a challenging action game in which you battle enemies in various tombs around the world. You can select from nine... | Read more »
Siralim 2 (RPG / Roguelike) (Games)
Siralim 2 (RPG / Roguelike) 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: Siralim 2 is an old-school monster catching RPG. Summon and customize hundreds of creatures to fight for you as... | Read more »
Clean Text (Productivity)
Clean Text 1.0 Device: iOS Universal Category: Productivity Price: $3.99, Version: 1.0 (iTunes) Description: | Read more »

Price Scanner via MacPrices.net

That Upgrade Itch; How Often Do You Upgrade Y...
I have a quandary to resolve as we head into what is typically a major Apple product upgrade season. My mid-2013 MacBook Air will be three years old and my iPad Air 2 will be two come late November.... Read more
Apple refurbished 12-inch iPad Pros available...
Apple has Certified Refurbished 12″ iPad Pros available for up to $160 off the cost of new iPads. An Apple one-year warranty is included with each model, and shipping is free: - 32GB 12″ iPad Pro... Read more
Tim Cook Posts Open Letter To The Apple Commu...
Apple Inc. CEO Tim Cook has posted an open letter commenting on the European Commission’s bizarre demand that Apple pay more than $14 billion in allegedly underpaid back taxes on its Irish... Read more
Streetwise Drivers Club App Now Features Open...
Streetwise Drivers Club, an app that rewards drivers with deals on everything from dining and gift cards to tires and insurance, has announced the launch of a new enhancement connecting app users... Read more
15-inch Retina MacBook Pros on sale for up to...
B&H Photo has 15″ Retina Apple MacBook Pros on sale for up to $200 off MSRP. Shipping is free, and B&H charges NY tax only: - 15″ 2.2GHz Retina MacBook Pro: $1799 $200 off MSRP - 15″ 2.5GHz... Read more
RESCUECOM 2016 Semi-Annual Computer Reliabili...
The beginning of a new school year is upon us again, in which students and parents have some very important choices to make, often including the purchase of a computer or tablet. Whether you are... Read more
VRS Design Damda Glide Series iPhone 7 and 7...
What makes the Damda Glide Series for the iPhone 7 and iPhone 7 Plus special? Case maker VRS Design says its Damda Glide Series is the first mobile case to incorporate a semi-automatic mechanism for... Read more
Apple refurbished iMacs available for up to $...
Apple has Certified Refurbished 2015 21″ & 27″ iMacs available for up to $350 off MSRP. Apple’s one-year warranty is standard, and shipping is free. The following models are available: - 21″ 3.... Read more
Clearance 2015 13-inch MacBook Airs available...
B&H Photo has clearance 2015 13″ MacBook Airs available for $350 off original MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 1.6GHz/4GB/128GB MacBook Air (MJVE2LL/A): $829... Read more
Check Apple prices on any device with the iTr...
MacPrices is proud to offer readers a free iOS app (iPhones, iPads, & iPod touch) and Android app (Google Play and Amazon App Store) called iTracx, which allows you to glance at today’s lowest... Read more

Jobs Board

*Apple* Retail - Multiple Positions Norfolk,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions- Tampa,...
Job Description:SalesSpecialist - Retail Customer Service and SalesTransform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
SW Engineer *Apple* TV - Apple Inc. (United...
The Apple TV team is looking for excellent software engineers with experience in hardware, media management, media playback, content delivery and a passion for Read more
*Apple* Solutions Consultant - Apple (United...
Apple Solutions ConsultantJob Number: 51218534Pleasant Hill, California, United StatesPosted: Aug. 18, 2016Weekly Hours: 40.00Job SummaryAs an Apple Solutions Read more
*Apple* Solutions Consultant - Apple (United...
# Apple Solutions Consultant Job Number: 51218354 Fredericksburg, Virginia, United States Posted: Aug. 18, 2016 Weekly Hours: 40.00 **Job Summary** As an Apple Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.