TweetFollow Us on Twitter

Teaching
Volume Number:3
Issue Number:12
Column Tag:Basic School

Games for Teaching Children

By Dave Kelly, MacTutor Editorial Board

Happy 3rd Birthday MacTutor!!! I can hardly believe that MacTutor has been around for a whole 3 years. The Macintosh has certainly come a long way in that time. All the way from a puny 128K RAM model to the gobs of memory available for the Macintosh II. Let’s celebrate!

Every celebration should not be complete with out friends. First I thank all of you readers that have supported MacTutor these past years. But all of this would not be possible if not for the vision of one special, although fictitious character, Professor Mac. For those of you that have not met the Professor, turn to your front cover and take a look just in front of the big ‘M’ in MacTutor. The Professor started out teaching you Apple II Pascal in the “Apple Shoppe” (also published by David Smith). Since that time we’ve seen him popping in and out of the covers of MacTutor. (see Best of MacTutor Vol 1, pg. 1, 8, 13, 61, 71, 92, 107, 313; Best of MacTutor Vol 2, pg. 2, 20, 42, 357, 371-375; not to mention the numerous times the Professor appears at the end of each and every MacTutor column.

A few days ago, the Professor reminded me that I haven’t written any games lately. So what should the game do? Well, my oldest son, who was 3 (now age 6) when we started up MacTutor, is now in first grade. Thanks to vol. 1 no. 1, Kevin now knows his ABC’s. (see Best of MacTutor Vol 1, pg. 298). I guess besides learning to read the next thing that first graders learn to do is count. So a counting game!!!

Last week Kevin brought home some homework that was just type of game I was looking for. The problems showed a price tag with a price. To solve the problem, he had to cut and paste pictures of coins under the price tag to equal the amount on the tag. So Professor Mac’s coin game was born. The object of the game is to click on the fewest possible number of coins to equal the amount of money shown in the price tag. If too many coins are selected the answer is not wrong, but the program lets you know that you could have done it with fewer coins. If you know that you have too many coins you may subtract coins by clicking the radio button named subtract and clicking on the coin you want to remove. The game does require some ability to read. Children that don’t know their numbers will have problems with this. At least it passed my kid test Kevin loved it.

Fig. 1 Our coin game display

On the technical side: the program doesn’t have any real surprizes technically. However, there are a few annoyances that appear to be ZBasic’s fault. In fact, sometimes I wish I was writing in Pascal or C. The blow by blow description follows:

There are four PICT resources, a quarter, a dime, a nickel, and a penny, which are used. These resources should be installed in the application itself in order to work. Creation of the coins was done via Thunderscan® by clipping the scanned pictures into a resource file using ResEdit. The “Get Coin Resources” subroutine gets the handles to the resources by using the ROM function GETNAMEDRESOURCE. Each resource is then loaded into memory (from the disk). Each coin is displayed on right side of the screen to give you something to click on to select the coins in the game. The ZBasic PICTURE statement will display the PICT resources by using the handle for the resource which was retrieved with GETNAMED RESOURCE. The active area to select each coin is marked by the Qrect, Drect, Nrect and Prect rectangles. Here is where the first problem shows up. The SETRECT call is used to set up the coordinates of each rectangle. But the SETRECT parameters are mixed up. Inside Macintosh shows SetRect parameters as being left, top, right, bottom in that order (see IM page I-174), but the ZBasic manual says the ZBasic parameters for SETRECT are Top, Left, Bottom, Right. The call (fortunately) works like IM; there is a typo in the ZBasic manual, pg. E-169.

The event loop is established using menu, dialog and mouse events in the same way that has been demonstrated in other programs. There are a few funnies that show up though. In earlier versions of the program, when I was still working on it, I used MOUSE ON, MOUSE OFF to control the About menu dialog. The problem was that when the About dialog was closed the screen erased itself just after the refresh routine did its refresh. This left a blank where the dialog window was. The screen had been updated, but something in ZBasic was trying to do its own refresh (I guess?). When I turned off all the event trapping for the About routine, the screen refreshed properly. This appears to be one of those little obscure bugs in ZBasic that nobody has fixed yet. This one problem turned what should have been a few minutes of programming into several hours trying to figure out what was going on. The GETMOUSE routine turned out to be just the solution. I get the feeling that I should be writing all my code using the toolbox calls and leave the ZBasic routines to the cockroaches (or other ‘bugs’).

‘Professor Mac’s Coin Game
‘By Dave Kelly
‘ ©MacTutor, DEC.1987
‘ For ZBasic™ version 4.0

WINDOW OFF
COORDINATE WINDOW
DEF MOUSE=-1
False=0:True=NOT False
DIM Qrect%(3), Drect%(3), Nrect%(3), Prect%(3),    Displayrect%(3)
DIM 63 A$(4)
Mousy=0:’Set up point record
Mousx=0:’for mouse location
WINDOW 1,””,(2,22)-(510,335),4
CALL SETRECT(Qrect(0),388,0,510,80)
CALL SETRECT(Drect(0),388,81,510,140)
CALL SETRECT(Nrect(0),388,141,510,215)
CALL SETRECT(Prect(0),388,216,510,310)
CALL SETRECT(Displayrect(0),0,140,385,250)
BUTTON 1,0,”Add Coins”,(300,80)-(375,100),2
BUTTON 2,0,”Subtract”,(300,110)-(375,130),2
APPLE MENU “About Professor Mac’s Coins ”
MENU 1,0,1,”File”
MENU 1,1,1,”New Amount/N”
MENU 1,2,1,”Quit/Q”
EDIT MENU 2
Amount!=0
GOSUB “Get Coin Resources”
GOSUB “Draw Page”
ON MENU GOSUB “MenuEvent”
ON DIALOG GOSUB “DialogEvent”
ON MOUSE GOSUB “MouseEvent”
MENU ON:DIALOG ON:MOUSE ON
DO
UNTIL TheEnd
MENU OFF:DIALOG OFF:MOUSE OFF
END

“MenuEvent”
Menunumber=MENU(0)
Menuitem=MENU(1)
MENU
SELECT Menunumber
 CASE 255
 GOSUB “AppleMenu”
 GOSUB “Display Amount”
 GOSUB “Draw Page”
 CASE 1
 GOSUB “FileMenu”
 CASE 2
END SELECT
RETURN

“AppleMenu”
WINDOW 2,””,(100,40)-(415,310),-2
TEXT 0,12
PRINT @(5,1)”Professor Mac’s Coin Game”
PRINT @(10,2)”by”
PRINT @(8,3)”Dave Kelly”
PRINT @(7,4)”©MacTutor, 1987"
PRINT @(7,5)”ZBasic version 4.0"
PRINT @(3,8)”Professor Mac’s MacTutor Store will”
PRINT @(3,9)”display prices on the price tag.”
PRINT @(3,10)”The object is to select (by clicking)”
PRINT @(3,11)”the fewest number of coins to equal”
PRINT @(3,12)”the price. Hopefully this may be of”
PRINT @(3,13)”assistance to children first learning”
PRINT @(3,14)”about money.”
DO
CALL GETMOUSE(Mousy)
outsiderect=(Mousx<0 OR Mousx>300 OR Mousy<0 OR Mousy>270)
UNTIL FN BUTTON AND NOT (outsiderect)
WINDOW CLOSE 2
RETURN

“FileMenu”
SELECT Menuitem
 CASE 1
 GOSUB “New”
 CASE 2
 GOSUB “Quit”
END SELECT
RETURN

“Quit”
‘Release all resource handles
CALL RELEASERESOURCE(QHndl&)
CALL RELEASERESOURCE(DHndl&)
CALL RELEASERESOURCE(NHndl&)
CALL RELEASERESOURCE(PHndl&)
CALL RELEASERESOURCE(THndl&)
CALL RELEASERESOURCE(MHndl&)
END

“New”
RANDOMIZE TIMER
Amount!=RND(100)*.01
Add=True
NumOfQ%=0
NumOfD%=0
NumOfN%=0
NumOfP%=0
Total!=0
GOSUB “Display Amount”
GOSUB “Display Total”
GOSUB “Draw Display”
BUTTON 1,2
BUTTON 2,1
RETURN

“DialogEvent”
Dilg=DIALOG(0)
SELECT Dilg
 CASE 5
 RefWin=DIALOG(5)
 ‘Get window to refresh
 WINDOW 1
 GOSUB “Display Amount”
 GOSUB “Draw Page”
 CASE 1
 Buttonpressed=DIALOG(1)
 BUTTON Buttonpressed,2
 LONG IF Buttonpressed=1
 BUTTON 2,1
 Add=True
 XELSE
 BUTTON 1,1
 Add=False
 END IF
END SELECT
RETURN

“Display Amount”
 TEXT 3,24,1,0
 PICTURE (60,50),THndl&
 CALL MOVETO (130,100)
 PRINT USING “$#.##”;Amount!;SPC(2)
RETURN

“Display Total”
 TEXT 2,12,1,0
 CALL MOVETO(5,285)
 PRINT NumOfQ;” Quarters, “; NumOfD;” Dimes, “;    NumOfN; “ Nickels, 
“; NumOfP;” Pennies”
 CALL MOVETO(5,300)
 PRINT “Total:”;USING “$#.##”;Total!
 ‘Check for winner
 IF Total!=Amount! AND Total!<>0 THEN GOSUB “WinDialog”

RETURN

“WinDialog”
Temp!=Amount!
CorrectNumOfQ%=Temp!/.25
Temp!=Temp!-CorrectNumOfQ%*.25
CorrectNumOfD%=Temp!/.1
Temp!=Temp!-CorrectNumOfD%*.1
CorrectNumOfN%=Temp!/.05
Temp!=Temp!-CorrectNumOfN%*.05
CorrectNumOfP%=Temp!*100
LONG IF NumOfQ%=CorrectNumOfQ% AND NumOfD%=        CorrectNumOfD% AND 
NumOfN%=  CorrectNumOfN% AND NumOfP%= CorrectNumOfP%
 A$(1)=”TA-DA!  You Did it!”
 A$(2)=”Select ‘New Amount’ to start again”
 A$(3)=””
 A$(4)=””
 CALL PARAMTEXT(A$(1),A$(2),A$(3),A$(4))
 Response%=FN ALERT(1,0)
XELSE
 A$(1)=”Nice Try!”
 A$(2)=”You have too many coins!”
 A$(3)=”You should have: “+ STR$(CorrectNumOfQ%)+ “ Quarters, “ +STR$(CorrectNumOfD%)+ 
“ Dimes,”
 A$(4)=STR$(CorrectNumOfN%)+” Nickels, “+   STR$(CorrectNumOfP%)+” Pennies”
 CALL PARAMTEXT(A$(1),A$(2),A$(3),A$(4))
 Response%=FN ALERT(1,0)
END IF
Amount!=0
BUTTON 1,0
BUTTON 2,0
RETURN

“TooMuchDialog”
 A$(1)=”Adding that coin will give you “+ USING  “$#.##”;Total!
 A$(2)=”Try a different coin!”
 A$(3)=” “
 A$(4)=” “
 CALL PARAMTEXT(A$(1),A$(2),A$(3),A$(4))
 Response%=FN ALERT(1,0)
RETURN

“No More Coins”
 A$(1)=”Sorry, You don’t have any more “+Coin$
 A$(2)=” “
 A$(3)=” “
 A$(4)=” “
 CALL PARAMTEXT(A$(1),A$(2),A$(3),A$(4))
 Response%=FN ALERT(1,0)
RETURN

“Get Coin Resources”
 QHndl&=FN GETNAMEDRESOURCE(  CVI(“PICT”),”Quarter”)
 CALL LOADRESOURCE(QHndl&)
 DHndl&=FN GETNAMEDRESOURCE(  CVI(“PICT”),”Dime”)
 CALL LOADRESOURCE(DHndl&)
 NHndl&=FN GETNAMEDRESOURCE(  CVI(“PICT”),”Nickel”)
 CALL LOADRESOURCE(NHndl&)
 PHndl&=FN GETNAMEDRESOURCE(  CVI(“PICT”),”Penny”)
 CALL LOADRESOURCE(PHndl&)
 THndl&=FN GETNAMEDRESOURCE(  CVI(“PICT”),”Tag”)
 CALL LOADRESOURCE(THndl&)
 MHndl&=FN GETNAMEDRESOURCE(  CVI(“PICT”),”Professor Mac”)
 CALL LOADRESOURCE(MHndl&)
RETURN

“Draw Page”
 PICTURE (400,0),QHndl&
 PICTURE (406,78),DHndl&
 PICTURE (400,138),NHndl&
 PICTURE (406,220),PHndl&
 CALL MOVETO(385,0)
 CALL PENSIZE(2,2)
 CALL LINETO(385,340)
 CALL MOVETO(0,135)
 CALL LINETO(385,135)
 CALL PENNORMAL
 PICTURE (0,0),MHndl&
 CALL MOVETO(60,40)
 TEXT 2,18,0,0
 PRINT “Professor Mac’s Coin Game”
“Draw Display”
 CALL ERASERECT(Displayrect(0))
 IF NumOfQ>0 THEN PICTURE (0,140),QHndl&
 IF NumOfD>0 THEN PICTURE (100,140),DHndl&
 IF NumOfN>0 THEN PICTURE (200,140),NHndl&
 IF NumOfP>0 THEN PICTURE (300,140),PHndl&
RETURN

“MouseEvent”
IF Amount!=0 THEN FLUSHEVENTS:RETURN
CALL GETMOUSE(Mousy)
LONG IF (FN PTINRECT(Mousy,Qrect%(0)))
 LONG IF Add=True
 Total!=Total!+.25
 NumOfQ=NumOfQ+1
 GOSUB “Draw Display”
 XELSE
 LONG IF NumOfQ-1<0
 Coin$=”Quarters!”
 GOSUB “No More Coins”
 XELSE
 NumOfQ=NumOfQ-1
 Total!=Total!-.25
 IF Total!<0 THEN Total!=Total!+.25
 GOSUB “Draw Display”
 END IF
 END IF
 LONG IF Total!>Amount! 
 GOSUB “TooMuchDialog”
 Total!=Total!-.25
 NumOfQ=NumOfQ-1
 END IF
 GOSUB “Display Total”
END IF
LONG IF FN PTINRECT(Mousy,Drect(0))
 LONG IF Add=True
 Total!=Total!+.1
 NumOfD=NumOfD+1
 GOSUB “Draw Display”
 XELSE
 LONG IF NumOfD-1<0
 Coin$=”Dimes!”
 GOSUB “No More Coins”
 XELSE
 NumOfD=NumOfD-1
 Total!=Total!-.1
 IF Total!<0 THEN Total!=Total!+.1
 GOSUB “Draw Display”
 END IF
 END IF
 LONG IF Total!>Amount! 
 GOSUB “TooMuchDialog”
 Total!=Total!-.1
 NumOfD=NumOfD-1
 END IF
 GOSUB “Display Total”
END IF
LONG IF FN PTINRECT(Mousy,Nrect(0))
 LONG IF Add=True
 Total!=Total!+.05
 NumOfN=NumOfN+1
 GOSUB “Draw Display”
 XELSE
 LONG IF NumOfN-1<0
 Coin$=”Nickels!”
 GOSUB “No More Coins”
 XELSE
 NumOfN=NumOfN-1
 Total!=Total!-.05
 IF Total!<0 THEN Total!=Total!+.05
 GOSUB “Draw Display”
 END IF
 END IF
 LONG IF Total!>Amount! 
 GOSUB “TooMuchDialog”
 Total!=Total!-.05
 NumOfN=NumOfN-1
 END IF
 GOSUB “Display Total”
END IF
LONG IF FN PTINRECT(Mousy,Prect(0))
 LONG IF Add=True
 Total!=Total!+.01
 NumOfP=NumOfP+1
 GOSUB “Draw Display”
 XELSE
 LONG IF NumOfP-1<0
 Coin$=”Pennies!”
 GOSUB “No More Coins”
 XELSE
 NumOfP=NumOfP-1
 Total!=Total!-.01
 IF Total!<0 THEN Total!=Total!+.01
 GOSUB “Draw Display”
 END IF
 END IF
 LONG IF Total!>Amount! 
 GOSUB “TooMuchDialog”
 Total!=Total!-.01
 NumOfP=NumOfP-1
 END IF
 GOSUB “Display Total”
END IF
DO:UNTIL NOT (FN BUTTON)
FLUSHEVENTS
RETURN

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

TextSoap 8.4 - Automate tedious text doc...
TextSoap can automatically remove unwanted characters, fix up messed up carriage returns, and do pretty much anything else that we can think of to text. Save time and effort. Be more productive. Stop... Read more
Smultron 9.4 - Easy-to-use, powerful tex...
Smultron 9 is an elegant and powerful text editor that is easy to use. Use it to create or edit any text document. Everything from a web page, a note or a script to any single piece of text or code.... Read more
QuarkXPress 13.0.0.0 - Desktop publishin...
QuarkXPress 2017 is the new version that raises the bar for design and productivity. With non-destructive graphics and image editing directly within your layout, you no longer have to choose between... Read more
Brackets 1.9.0 - Open Source Web design...
Brackets is an Open-Source editor for Web design and development built on top of Web technologies such as HTML, CSS, and JavaScript. The project was created and is maintained by Adobe, and is... Read more
Audio Hijack 3.3.4 - Record and enhance...
Audio Hijack (was Audio Hijack Pro) drastically changes the way you use audio on your computer, giving you the freedom to listen to audio when you want and how you want. Record and enhance any audio... Read more
Tunnelblick 3.7.1a - GUI for OpenVPN.
Tunnelblick is a free, open source graphic user interface for OpenVPN on OS X. It provides easy control of OpenVPN client and/or server connections. It comes as a ready-to-use application with all... Read more
Amazon Chime 4.3.5721 - Amazon-based com...
Amazon Chime is a communications service that transforms online meetings with a secure, easy-to-use application that you can trust. Amazon Chime works seamlessly across your devices so that you can... Read more
BBEdit 11.6.6 - Powerful text and HTML e...
BBEdit is the leading professional HTML and text editor for the Mac. Specifically crafted in response to the needs of Web authors and software developers, this award-winning product provides a... Read more
BBEdit 11.6.6 - Powerful text and HTML e...
BBEdit is the leading professional HTML and text editor for the Mac. Specifically crafted in response to the needs of Web authors and software developers, this award-winning product provides a... Read more
Brackets 1.9.0 - Open Source Web design...
Brackets is an Open-Source editor for Web design and development built on top of Web technologies such as HTML, CSS, and JavaScript. The project was created and is maintained by Adobe, and is... Read more

Latest Forum Discussions

See All

Subdivision Infinity (Games)
Subdivision Infinity 1.03 Device: iOS Universal Category: Games Price: $2.99, Version: 1.03 (iTunes) Description: Launch sale! 40% Off! Subdivision Infinity is an immersive and pulse pounding sci-fi 3D space shooter. https://www.... | Read more »
Clash of Clans' gets a huge new upd...
Clash of Clans just got a massive new update, and that's not hyperbole. The update easily tacks on a whole new game's worth of content to the hit base building game. In the update, that mysterious boat on the edge of the map has been repaired and... | Read more »
Thimbleweed Park officially headed to iO...
Welp, it's official. Thimbleweed Park will be getting a mobile version. After lots of wondering and speculation, the developers confirmed it today. Thimbleweed Park will be available on both iOS and Android sometime in the near future. There's no... | Read more »
Pokémon GO might be getting legendaries...
The long-awaited legendary Pokémon may soon be coming to Pokémon GO at long last. Data miners have already discovered that the legendary birds, Articuno, Moltres, and Zapdos are already in the game, it’s just a matter of time. [Read more] | Read more »
The best deals on the App Store this wee...
If you’ve got the Monday blues we have just the thing to cheer you up. The week is shaping up to be a spectacular one for sales. We’ve got a bunch of well-loved indie games at discounted prices this week along with a few that are a little more... | Read more »
Honor 8 Pro, a great choice for gamers
Honor is making strides to bring its brand to the forefront of mobile gaming with its latest phone, the Honor 8 Pro. The Pro sets itself apart from its predecessor, the Honor 8, with a host of premium updates that boost the device’s graphical and... | Read more »
The 4 best outdoor adventure apps
Now that we're well into the pleasant, warmer months, it's time to start making the most of the great outdoors. Spring and summer are ideal times for a bit of trekking or exploration. You don't have to go it alone, though. There are plenty of... | Read more »
Things 3 (Productivity)
Things 3 3.0.1 Device: iOS iPhone Category: Productivity Price: $7.99, Version: 3.0.1 (iTunes) Description: Meet the all-new Things! A complete rethinking of the original, award-winning task manager – with a perfect balance between... | Read more »
Oddball mash-up Arkanoid vs Space Invade...
In a move no one was really expecting, Square Enix has put forth an Arkanoid/Space Invaders mash-up aptly titled Arkanoid vs Space Invaders. The game launched today on both iOS and Android and the reviews are actually quite good. [Read more] | Read more »
Arkanoid vs Space Invaders (Games)
Arkanoid vs Space Invaders 1.0 Device: iOS Universal Category: Games Price: $3.99, Version: 1.0 (iTunes) Description: LAUNCH SALE: GET THE GAME AT 20% OFF! Two of the most iconic classic games ever made meet in Arkanoid vs Space... | Read more »

Price Scanner via MacPrices.net

A Kaby Lake Processor Upgrade For The MacBook...
Now they tell me! Well, actually Apple hasn’t said anything official on the subject, but last week Bloomberg News’s Mark Gurman and Alex Webb cited unnamed “people familiar with the matter”... Read more
Kodak’s Camera-First Smartphone EKTRA Launche...
The Eastman Kodak Company and Bullitt Group have announced the availability of a U.S. GSM version of the KODAK EKTRA Smartphone. The U.S. launch coincides with a software update addressing requests... Read more
Apple Launches App Development Curriculum for...
Apple today launched a new app development curriculum designed for students who want to pursue careers in the fast-growing app economy. The curriculum is available as a free download today from Apple... 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
9.7-inch 2017 iPad available for $298, save $...
Sams Club has 32GB 9.7″ Apple iPads available for $298 for Sams Club members. That’s $21 off MSRP. Order online and choose free local store pickup (if available) or free shipping. Read more
touchbyte Releases PhotoSync 3.2 for iOS With...
Hamburg, Germany based touchbyte has announced the release of PhotoSync 3.2 for iOS, a major upgrade to the versatile and powerful app to transfer, backup and share photos and videos over the air.... Read more
Emerson Adds Touchscreen Display and Apple Ho...
Emerson has announced the next evolution of its nationally recognized smart thermostat. The new Sensi Touch Wi-Fi Thermostat combines proven smarthome technology with a color touchscreen display and... Read more
SurfPro VPN for Mac Protects Data While Offer...
XwaveSoft has announced announce the release and immediate availability of SurfPro VPN 1.0, their secure VPN client for macOS. SurfPro VPN allows Mac users to protect their internet traffic from... Read more
13-inch Touch Bar MacBook Pros on sale for $1...
B&H Photo has 13″ MacBook Pros in stock today for up to $150 off MSRP. Shipping is free, and B&H charges NY & NJ sales tax only: - 13″ 2.9GHz/512GB Touch Bar MacBook Pro Space Gray (... Read more
Tuesday deal: $200 off 27-inch Apple iMacs
Amazon has select 27″ iMacs on sale for $200 off MSRP, each including free shipping: - 27″ 3.3GHz iMac 5K: $2099 $200 off MSRP - 27″ 3.2GHz/1TB Fusion iMac 5K: $1799 $200 off MSRP Keep an eye on our... Read more

Jobs Board

*Apple* Mobile Master - Best Buy (United Sta...
**508456BR** **Job Title:** Apple Mobile Master **Location Number:** 000040-Eau Claire-Store **Job Description:** **What does a Best Buy Apple Mobile Master Read more
Director *Apple* ERP Integration Lead - Ast...
…make a real difference. Come, shine with us! Astellas is announcing a Director Apple ERP Integration Lead opportunity in Northbrook, IL. Purpose & Scope: This role Read more
Director *Apple* Platform, IS Data Manageme...
…a real difference. Come, shine with us! Astellas is announcing a Director Apple Platform, IS Data Management Lead opportunity in Northbrook, IL. Purpose & Scope: Read more
Associate Director *Apple* Platform -- SAP...
…real difference. Come, shine with us! Astellas is announcing a Associate Director Apple Platform -- SAP Security, Risks and Controls Lead opportunity in Northbrook, Read more
*Apple* Media Products - Commerce Engineerin...
Apple Media Products - Commerce Engineering Manager Job Number: 57037480 Santa Clara Valley, California, United States Posted: Apr. 18, 2017 Weekly Hours: 40.00 Job Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.