TweetFollow Us on Twitter

Talking HangMan
Volume Number:2
Issue Number:4
Column Tag:Basic School

Play the Talking HangMan Game!

By Dave Kelly, Engineer, MacTutor Editorial Board

This month I would like to thank Clear Lake Research for kindly sending me a copy of their SpeechLib Library. [Available through MacTutor's Technical Software Store. -Ed] As computers become smarter and smarter, we are sure to find those that will do many of the same tasks that humans do. Already, I get sales recordings on my telephone from some computer that goes through a list of numbers and presents their sales pitch. We can't even comprehend how far computers will take us in the future. In fact, in 1979 when I bought my first Apple ][+, I was thrilled to have that much capability. I never thought that computers would become much different, until Macintosh came along.

I've seen a large variety of speech synthesizer cards for the Apple ][. When they first came out, the speech was hardly recognizable. I've seen good ones and bad ones. When I got my Macintosh, I was excited that the Mac had a built in synthesizer, however, I was disappointed to find that the software to program the synthesizer had not been written. Well, enough talk. The CLR SpeechLib Libraries provide a low cost way to provide speech from within your MSBASIC programs (version 2.0 or greater).

MacinTalk is a copyrighted program of Apple Computer, Inc. licensed to Clear Lake Research to distribute for use with SpeechLib. SpeechLib allows you to use the MacinTalk speech synthesis system developed by Apple from MSBASIC. SpeechLib statements are similar to other CLR library statements as we have discussed in past issues of MacTutor.

Speaking of libraries, I hereby wish to make a correction to a statement that I made a couple of months ago. I stated that for some reason when you use DEFINT a-z an error results. Well, the error was partially mine. When you call a library, the library name (example: SpeechOn) will be specified as if it were an integer variable if you have used DEFINT a-z. The library name must be declared as a single precision variable type by placing an exclaimation point after the library name (example: SpeechOn! ). Therefore, when you want to use DEFINT and libraries, you should use an exclaimation point after the library name.

If you are using MacinTalk from another language, parts of the following discussion may be useful to you. SpeechLib accepts either English or phonemic spellings. Phonemic spellings produce much better sounding speech and are highly recommended. However, English is much easier to use. Phonemic sounds are shown below:

By mixing combinations of these phonemic spellings, you can form the sound that you want. You can see why it takes more time to program in phonemic spellings; each sound must be matched to the phonemes.



AA hot AX about IX solid

AE bat EH bet IY beet

AH under ER bird OH border

AO talk IH bit UH look

AX and IX should not be used in stressed syllables!


B but K camp T toy

CH check L yellow TH thin

/C loch M men V very

D dog N men W away

DH then NX sing Y yellow

F fed P put Z has

G guest R red ZH pleasure

/H hole S sail

J judge SH rush


AW power EY made OY boil

AY hide OW low UW crew


DX pity Q kitt_en RX car

LX call QX silent vowel UL=AXL




digits 1-9 stress marks - phrase delimiter

. sentence terminator , clause delimiter

? sentence terminator ( ) noun phrase delimiters

Also included with the SpeechLib disk is the program ExceptionEdit. This program was witten by Apple to be used to create a dictionary of words and their phonemic spellings. When a word in the dictionary is encountered by MacinTalk, the phoemic spelling in the dictionary determines the pronounciation of the word. This makes using English instead of phonemic spellings possible for hard to pronounce (or spell) words. It is possible to mispell words in english to 'fool' MacinTalk into pronoucing them correctly. If you do this, then the exception dictionary is not necessary. However, you may want to read aloud a text file which must have correct spellings. You should create an exceptions dictionary in this case.

There are two SpeechLib statements used to initialize the speech output. First open the Library and define variables for the handle! (SpeechHand!=0), for possible speech errors (SpeechErr%=0), and for the phonemic spelling of the string to be output (Phon$=""). The statement SpeechOn "",SpeechHand!,SpeechErr% turns on and initializes MacinTalk.

To use english spellings with SpeechLib, you first must put the desired text into a string (example: Eng$). MacinTalk understands phonemic spellings, therefore your string must be converted before the string can be spoken. The SpeechLib command for this is:

 ReaderString SpeechHand!,Eng$, Phon$,SpeechErr%.

To use phonemic spellings or the converted Eng$ spelling (Phon$), you use the statement:

 SoundOutString SpeechHand!, Phon$, SpeechErr%

Statements are provided to change the pitch, mode and speech rate of the speech (SpeechPitch and SpeechRate). The pitch can range from 65-500. The mode selects a natural or a robotic sounding voice. The speech rate can be adjusted from 85-425 words per minute. The volume is controlled by poking the volume desired into address &H208. The range of the volume is 0 to 7, where 7 is the loudest.

The best way to sample the speech and test out phrases you want to use is to use the speech demo provided on the SpeechLib disk. This way you can find out how words sound before using them in your program. Phonemic spellings take much longer time to program until you start to learn the phonemic spelling chart. Some words may take some work to get them to sound just like you want. In fact, there are some words that I couldn't quite get to sound like I wanted. Be careful to use uppercase only for phonemic spellings and follow the Phonemic Spelling table to obtain the desired sounds. Try some out till they have the sound you want. The limitation is in the capabilities of the speech synthesizer. I found that the first few sentences that I heard were hard to understand. After getting used to it, I have no trouble distinguishing the speech. I tried it out on my 4 year old boy who seemed to catch on to the sound after a few sentences also. All things considered, the Macintosh still has a better synthesizer than I had seen prior to it's design in the early eighties (83-84?).


The inspiration for HangMac came from the hand held Speak-N-Spell games. Word type games are probably the most suited to adding speech. I give you this example to show how speech could be added to a program, even after it was already written. In fact, most of the programming time was spent on the game itself and not the speech. Adding speech was a very simple task.

HangMac was written first without speech. Two basic modules were added to introduce speech. The first one I call InitTalk.

    SpeechOn! "",SpeechHand!,SpeechErr%
    SpeechPitch! SpeechHand!,hertz%,mode%
    SpeechRate! SpeechHand!,Wpm%
    POKE &H208,5

InitTalk sets up all the variables used by SpeechLib. The rate, pitch, volume and mode is set up here. The other major speech module is Speakup:


ReaderString! SpeechHand!, Eng$,Phon$,SpeechErr%

SoundOutString! SpeechHand!,Phon$,SpeechErr%


Speakup converts the string Eng$ to Phonemic spelling (Phon$) and outputs Phon$ to MacinTalk. Other than these two routines, the only requirement is to open and close the library properly. A note: MacinTalk must be on the same disk as BASIC in order to work. Any exception dictionaries must also be on the same disk as BASIC in order to work. You may note that some words sent to the SpeechLib routines appear to be mispelled. This is to correct some mispronounciations of english spelled words. Don't attempt to correct the spellings or the words just won't sound right.

The LIBRARY statement specifies the disk and filename of the SpeechLib library. Be sure that your disk has the right name or modify the LIBRARY statement to match the name of the disk and filename of the SpeechLib Library. The fact that all this stuff has to be contained on one disk makes this just a bit of a hassle. An 800K disk drive or a hard disk should solve that problem.

Please note that HangMac has not been tried out on a 128K Mac. When using libraries, more heap space may be required. The SpeechErr% variable returned in most of the SpeechLib calls should return a zero. HangMac does not check for this, so if you get an speech error, check to see what value SpeechErr% returns by typing PRINT SpeechErr% in the command window and hitting return just after the error occurs. If SpeechErr% is not zero after the SpeechOn call, then MacinTalk could not be opened. The most likely problem is that MacinTalk is not on the same disk as BASIC. Another possiblity is that you have run out of heap space. Use BASIC's FRE() to check on available memory space and BASIC's CLEAR statement to allocate more or less as necessary. HangMac is already set up for a data segment size of 20000. Without the statement CLEAR 20000! at the beginning of the program, the heap size is too small, which causes the disk to run alot more.

SpeechLib also provides a more efficient memory management method by storing strings on the heap. The strings may be used later by referencing the desired string. HangMac does not use this feature. If you use it, you may have to watch your heap space more closely. If you are using other CLR (or others) libraries with SpeechLib, memory management is more of a concern.

HangMac automatically checks to see if you have CLR SpeechLib and disables all the talking parts of the program through the use of the variable talk. This enables you to run HangMac without sound if you don't have CLR SpeechLib. If speech is enabled, the speech can be turned on or off at any time (it speeds up the game) by selecting the speech menu.

I recommend, before you start to play HangMac, that you add more words to the program. I have started with 15 words (words related to the MAC). To add words, add to the DATA statements at the end of the program. Next change the line toward the beginning of the HangMac program which sets the variable number to the number of words (currently 15). That's all there is to it. The more words you have the more chance there is of getting a different word every time. When I was first creating the program I started with five words, and I often got the same word more than once. The words are randomized each time a new word is selected, so you don't know which word will be used.

Choose Instructions for a quick overview of the program. If speech is turned on, the instruction window will let you choose a TALK button to have the instructions read to you. Choose OK to close the instruction window.

Choose Start Game to begin HangMac. Most of your selections will have an audio response if the speech is turned on. Three windows are displayed. The first window shows the characters which have been used or guessed already. The second window shows the word to be guessed by displaying blanks for the characters until they are guessed correctly. You may type the whole word in if you think you know what it is. If you are wrong a new part of the HangMac man is drawn on the hanging post. You have 10 tries and then you're hung.

This may not be the best Hangman game you have ever seen, but it must be the first one you have had talk to you. HangMac will mostly be exciting for younger aged children. Even now as I approach the deadline for this column, my young sons are leaning over my shoulder waiting for me to finish so they can try it. Well, I guess it's time to play.

'©MACTUTOR, 1986
'by David Kelly

    DEFINT a-z
    DIM wordchar(1)
    false=0:true=NOT false
    DIM wordarray$(number)
    LIBRARY "CLR SpeechLib:SpeechLib"
    IF talk=true THEN GOSUB InitTalk
    FOR i=1 TO number
        READ wordarray$(i)
    NEXT i
    FOR i=1 TO 40:blank$=blank$+" ":NEXT i
    FOR i=1 TO 5
        MENU i,0,0,""
    NEXT i
    MENU 1,0,1,"File"
    MENU 1,1,1,"Instructions"
    MENU 1,2,1,"Start Game"
    MENU 1,3,1,"Quit"
    MENU 2,0,1,"Speech"
    MENU 2,1,2,"ON"
    MENU 2,2,1,"OFF"
    IF talk=false THEN MENU 2,0,0
    GOSUB HangSetup
    GOSUB DrawHangMac
    ON MENU GOSUB menuevent
idleloop: GOTO idleloop

    menunumber=MENU(0):IF menunumber=2 THEN Speechmenu
    MENU 1,0,0
    ON menuitem GOSUB Instructions,Start,Quit

    IF menuitem=1 THEN MENU 2,1,2:MENU 2,2,1:talk=true
    IF menuitem=2 THEN MENU 2,1,1:MENU 2,2,2:talk=false
    SpeechOn! "",SpeechHand!,SpeechErr%
    SpeechPitch! SpeechHand!,hertz%,mode%
    SpeechRate! SpeechHand!,Wpm%
    POKE &H208,5
    GOSUB ClearKeyboard
    IF talk=true THEN Eng$="Good buy.   Play again             sometime.":GOSUB 
    IF talk=true THEN SpeechOff! SpeechHand!  :LIBRARY CLOSE
    IF index=0 THEN Start
    GOSUB HangSetup
    ERASE wordchar
    DIM wordchar(LEN(word$))
    FOR i=1 TO LEN(word$)
    NEXT i
    GOSUB DisplayWord
    IF talk=false THEN inputchar
    Eng$="Your word is "+STR$(LEN(word$))+" characters long."
    GOSUB Speakup
    WINDOW 1
    GOSUB DrawHangPost
    GOSUB ClearKeyboard
    EDIT FIELD 1,"",(95,190)-(410,210),1,2
    IF talk=false THEN charloop
    Eng$="Please choose a letter"
    GOSUB Speakup
    IF d<>6 THEN charloop
    IF char$="" THEN inputchar
    IF talk=false THEN checkchar
    Eng$="You have selected, "+char$+".  "
    IF char$<"A" OR char$>"Z" THEN Eng$=Eng$+"That character is not aloud."
    IF INSTR(used$,char$)<>0 THEN Eng$=Eng$+"That letter is already used."
Wrong:IF char$<>word$ AND LEN(char$)<>1 THEN Eng$=Eng$+"WRONGE!"
    GOSUB Speakup
    IF char$<"A" OR char$ >"Z" THEN inputchar
    IF INSTR(used$,char$)<>0 THEN inputchar
    IF char$=word$ THEN GOSUB foundword
    IF char$<>word$ AND LEN(char$)<>1 THEN WrongGuess=WrongGuess+1:GOSUB 
DrawHangMac :GOTO inputchar
    used$=used$+char$+" "
    FOR i=1 TO LEN(word$)
        IF char$=MID$(word$,i,1) THEN wordchar(i)=true
    NEXT i
    Eng$="That's "
    IF oldsum=sumword THEN WrongGuess=WrongGuess+1: Eng$=Eng$+"WRONG!"
    IF sumword=-LEN(word$) THEN wflag=true
    IF (wflag=false) AND (oldsum<>sumword) THEN Eng$=Eng$+"Right.   There 
is at least one " +char$+" in the word."
    IF wflag=true THEN Eng$=Eng$+"Right.  You have guessed the word."
    IF talk=true THEN GOSUB Speakup
    GOSUB DisplayUsedChars
    GOSUB DrawHangMac
    GOSUB DisplayWord
    IF wflag=false AND lose=false THEN inputchar
    IF wflag=true THEN Eng$="You Won.  The word is "+word$+".  Select 
Start Game to Play again."
    IF lose=true THEN Eng$="You're dead.  The word is "+word$+". Select 
Start Game to Play again."
    IF talk=true THEN GOSUB Speakup
    FOR i=1 TO LEN(word$)
    NEXT i
    WINDOW 1
    MENU 1,0,1

    WINDOW 1,"HangMac",(10,100)-(500,320),2
    LOCATE 1,1:PRINT "HangMac"
    PRINT " Copyright ©MacTutor, 1986"
    PRINT" by David Kelly."
    WINDOW 2,"",(95,30)-(410,45),2
    WINDOW 3,"",(95,65)-(410,80),2
    WINDOW 1

    FOR i=1 TO LEN(word$)
    NEXT i

    WINDOW 3
    LOCATE 1,1
    PRINT blank$:LOCATE 1,1
    IF lose=true THEN PRINT word$;:RETURN
    FOR j=1 TO LEN(word$)
        IF wordchar(j)=true THEN PRINT MID$(word$,j,1); ELSE PRINT "_ 
    NEXT j
    IF LEN(char$)>1 THEN RETURN
    WINDOW 2
    LOCATE 1,1
    PRINT used$;
    WINDOW 1
    GOSUB DrawHangPost
    IF WrongGuess >=1 THEN CIRCLE(250,35),25
    IF WrongGuess >=2 THEN CIRCLE(260,25),5
    IF WrongGuess >=3 THEN CIRCLE(240,25),5
    IF WrongGuess >=4 THEN LINE(240,45)-(260,45)
    CALL MOVETO(250,60)
    IF WrongGuess >=5 THEN CALL LINETO(250,125)
    IF WrongGuess >=6 THEN CALL LINE(45,45)
    IF WrongGuess >=7 THEN CALL MOVETO(250,125):CALL           LINE(-45,45)
    IF WrongGuess >=8 THEN CALL MOVETO(250,90):CALL            LINE(25,-25)
    IF WrongGuess >=9 THEN CALL MOVETO(250,90):CALL            LINE(-25,-25)
    IF WrongGuess >=9 THEN CALL MOVETO(255,20):CALL            LINE(10,10):CALL 
MOVETO(255,30):CALL  LINE(10,-10)
    IF WrongGuess >=9 THEN CALL MOVETO(235,20):CALL            LINE(10,10):CALL 
MOVETO(235,30):CALL  LINE(10,-10)
    IF WrongGuess >=9 THEN lose=true
    CALL MOVETO(250,5)
    CALL LINETO(310,5)
    CALL LINETO(310,185)
    WHILE key$ <>""

10 :IF ERR=53 THEN talk=false
    RESUME 5
    WINDOW 1,"Instructions",(10,30)-(500,330),-2
    LOCATE 1,15:PRINT "HangMac"
    LOCATE 3,1:PRINT "HangMac is the audio version of the traditional 
game of";
    PRINT" Hangman.  To play":PRINT"the game just choose ";
    TEXTFONT(0):PRINT"Start Game";:TEXTFONT(2)
    PRINT" from the File menu.   The hanging post is"
    PRINT "drawn and you may start guessing letters by typing them onto 
the base of"
    PRINT"the hanging post.  The uppermost window will display the characters 
    PRINT"you have used.  The next window shows the characters, or blanks 
for the"
    PRINT"word that you are guessing.  Each time you miss, a new part 
of the HangMac"
    PRINT"man will be drawn until the entire body is drawn.  If you guess 
wrong ten"
    PRINT"times then you lose.  Type the whole word to guess the word."
    PRINT"This program features CLR SpeechLib procedures for calling 
    PRINT"To use the speech feature you must have CLR SpeechLib (available 
    PRINT"Clear Lake Research, 5353 Dora Street, Suite 7, Houston, Texas 
    PRINT"(800-835-2246 X 199).  However, the program will still work 
    PRINT"the speech libraries being available."
    PRINT:PRINT"HangMac, Copyright ©MacTutor, 1986, by David Kelly."
    BUTTON 1,1,"OK",(445,260)-(475,290)
    IF talk=true THEN BUTTON 2,1,"TALK",(365,260)-(425,290)
    buttonpushed = DIALOG(1)
    IF buttonpushed=2 THEN GOSUB SpeakInstructions:GOTO WaitforButton
    MENU 1,0,1
    BUTTON 1,0:BUTTON 2,0
    Eng$=" HangMac is the audio version of the traditional game of Hangman. 
 To play"
    Eng$=Eng$+" the game just choose Start Game from the File menu. The 
hanging post is"
    Eng$=Eng$+" drawn and  you may start guessing letters by typing them 
onto the base of"
    Eng$=Eng$+" the hanging post.  The uppermost wyndoe will display 
the charactors which"
    Eng$=Eng$+" you have used.  The next wyndoe shows the characters, 
or blanks for the"
    Eng$=Eng$+" word that you are guessing.  Each time you miss, a new 
part of the HangMac"
    Eng$=Eng$+"-man will be drawn until the entire body is drawn.  If 
you guess wrong ten"
    Eng$=Eng$+" times then you luse. Type the whole word to guess the 
    ReaderString! SpeechHand!,Eng$,Phon$,SpeechErr%
    SoundOutString! SpeechHand!,Phon$,SpeechErr%
    Eng$="This program features CLR SpeechLib proseedures for calling 
    Eng$=Eng$+" To use the speech feature you must have CLR SpeechLib 
(available from"
    Eng$=Eng$+" Clear Lake Reserch, 5353 Dora Street, sweet 7, Huse ton, 
Texas 77005."
    Eng$=Eng$+" phone- eight hundred 835-2246 extension199.  However, 
the program will still work without the speech lybraries"
    Eng$=Eng$+" being available."
    Eng$=Eng$+" HangMac, Copy right MacTutor, nineteen eighty six, by 
Dayvid Kelly."
    ReaderString! SpeechHand!,Eng$,Phon$,SpeechErr%
    SoundOutString! SpeechHand!,Phon$,SpeechErr%
    BUTTON 1,1:BUTTON 2,1

    ReaderString! SpeechHand!, Eng$,Phon$,SpeechErr%
    SoundOutString! SpeechHand!,Phon$,SpeechErr%
'Add additional words (as you please)
'by adding to the DATA statements below
'change the variable 'number' at the beginning
'of the program to reflect the number of words


Community Search:
MacTech Search:

Software Updates via MacUpdate

Apple iOS 10.3 - The latest version of A...
iOS 10 is the biggest release of iOS ever. A massive update to Messages brings the power of the App Store to your conversations and makes messaging more personal than ever. Find your route with... Read more
Postbox 5.0.12 - Powerful and flexible e...
Postbox is a new email application that helps you organize your work life and get stuff done. It has all the elegance and simplicity of Apple Mail, but with more power and flexibility to manage even... Read more
Apple Keynote 7.1 - Apple's present...
Easily create gorgeous presentations with the all-new Keynote, featuring powerful yet easy-to-use tools and dazzling effects that will make you a very hard act to follow. The Theme Chooser lets you... Read more
Apple Pages 6.1 - Apple's word proc...
Apple Pages is a powerful word processor that gives you everything you need to create documents that look beautiful. And read beautifully. It lets you work seamlessly between Mac and iOS devices, and... Read more
Apple Numbers 4.1 - Apple's spreads...
With Apple Numbers, sophisticated spreadsheets are just the start. The whole sheet is your canvas. Just add dramatic interactive charts, tables, and images that paint a revealing picture of your data... Read more
Apple macOS Sierra 10.12.4 - The latest...
With Apple macOS Sierra, Siri makes its debut on Mac, with new features designed just for the desktop. Your Mac works with iCloud and your Apple devices in smart new ways, and intelligent... Read more
Xcode 8.3 - Integrated development envir...
Xcode includes everything developers need to create great applications for Mac, iPhone, iPad, and Apple Watch. Xcode provides developers a unified workflow for user interface design, coding, testing... Read more
Skype - Voice-over-internet p...
Skype allows you to talk to friends, family and co-workers across the Internet without the inconvenience of long distance telephone charges. Using peer-to-peer data transmission technology, Skype... Read more
Dropbox 22.4.24 - Cloud backup and synch...
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
Posterino 3.3.5 - Create posters, collag...
Posterino offers enhanced customization and flexibility including a variety of new, stylish templates featuring grids of identical or odd-sized image boxes. You can customize the size and shape of... Read more

The best deals on the App Store this wee...
Deals, deals, deals. We're all about a good bargain here on 148Apps, and luckily this was another fine week in App Store discounts. There's a big board game sale happening right now, and a few fine indies are still discounted through the weekend.... | Read more »
The best new games we played this week
It's been quite the week, but now that all of that business is out of the way, it's time to hunker down with some of the excellent games that were released over the past few days. There's a fair few to help you relax in your down time or if you're... | Read more »
Orphan Black: The Game (Games)
Orphan Black: The Game 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: Dive into a dark and twisted puzzle-adventure that retells the pivotal events of Orphan Black. | Read more »
The Elder Scrolls: Legends is now availa...
| Read more »
Ticket to Earth beginner's guide: H...
Robot Circus launched Ticket to Earth as part of the App Store's indie games event last week. If you're not quite digging the space operatics Mass Effect: Andromeda is serving up, you'll be pleased to know that there's a surprising alternative on... | Read more »
Leap to victory in Nexx Studios new plat...
You’re always a hop, skip, and a jump away from a fiery death in Temple Jump, a new platformer-cum-endless runner from Nexx Studio. It’s out now on both iOS and Android if you’re an adventurer seeking treasure in a crumbling, pixel-laden temple. | Read more »
Failbetter Games details changes coming...
Sunless Sea, Failbetter Games' dark and gloomy sea explorer, sets sail for the iPad tomorrow. Ahead of the game's launch, Failbetter took to Twitter to discuss what will be different in the mobile version of the game. Many of the changes make... | Read more »
Splish, splash! The Pokémon GO Water Fes...
Niantic is back with a new festival for dedicated Pokémon GO collectors. The Water Festival officially kicks off today at 1 P.M. PDT and runs through March 29. Magikarp, Squirtle, Totodile, and their assorted evolved forms will be appearing at... | Read more »
Death Road to Canada (Games)
Death Road to Canada 1.0 Device: iOS Universal Category: Games Price: $7.99, Version: 1.0 (iTunes) Description: Get it now at the low launch price! Price will go up a dollar every major update. Update news at the bottom of this... | Read more »
Bean's Quest Beginner's Guide:...
Bean's Quest is a new take on both the classic platformer and the endless runner, and it's free on the App Store for the time being. Instead of running constantly, you can't stop jumping. That adds a surprising new level of challenge to the game... | Read more »

Price Scanner via

13-inch MacBook Airs, Apple refurbished, in s...
Apple has Certified Refurbished 2016 13″ MacBook Airs available starting at $849. An Apple one-year warranty is included with each MacBook, and shipping is free: - 13″ 1.6GHz/8GB/128GB MacBook Air: $... Read more
12-inch Retina MacBooks on sale for $1199, sa...
B&H has 12″ 1.1GHz Retina MacBooks on sale for $100 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 12″ 1.1GHz Space Gray Retina MacBook: $1199 $100 off MSRP - 12″ 1.1GHz... Read more
Save up to $260 with Apple refurbished 12-inc...
Apple has Certified Refurbished 2016 12″ Retina MacBooks available for $200-$260 off MSRP. Apple will include a standard one-year warranty with each MacBook, and shipping is free. The following... Read more
13-inch 2.7GHz Retina MacBook Pro on sale for...
B&H Photo has the 2015 13″ 2.7GHz/128GB Retina Apple MacBook Pro on sale for $170 off MSRP. Shipping is free, and B&H charges NY tax only: - 13″ 2.7GHz/128GB Retina MacBook Pro (MF839LL/A): $... Read more
15-inch 2.2GHz Retina MacBook Pro on sale for...
B&H Photo has the 2015 15″ 2.2GHz Retina MacBook Pro (MJLQ2LL/A) on sale for $1799.99 including free shipping plus NY sales tax only. Their price is $200 off MSRP. Read more
Save up to $160 with Apple refurbished 9-inch...
Apple has Certified Refurbished 9″ and 12″ Apple 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 9″... Read more
Apple Chip Foundry TSMC To Begin A11 System-o...
Digitimes’ Steve Shen is reporting today that according to the Chinese-language Economic Daily News (EDN), chipmaker and major Apple supplier foundery Taiwan Semiconductor Manufacturing Company (TSMC... Read more
MacX MediaTrans 3.5 iOS Data Transfer Spring...
MacXDVD Software has announced general availability of the latest MacX MedTrans 3.5, featuring a new user interface (UI). MacX MediaTrans is ann iPhone manager that enables free data transfer between... Read more
Regular Price $19.95 DupeZap 4 Finder For OS...
Hyperbolic Software has announced the release of DupeZap 4.0.2, their modern duplicate finder developed exclusively for macOS. DupeZap 4 is an utility for Mac owners seeking to reclaim disk space... Read more
B-Eng Releases SSD Health Check for MVNe for...
Fehraltorf, Switzerland based B-Eng has announced the release and immediate availability of SSD Health Check for MVNe for MacBook Pro, their app that delivers important data and insights for MVNe... Read more

Jobs Board

Fulltime aan de slag als shopmanager in een h...
Ben jij helemaal gek van Apple -producten en vind je het helemaal super om fulltime shopmanager te zijn in een jonge en hippe elektronicazaak? Wil jij werken in Read more
*Apple* Mobile Master - Best Buy (United Sta...
**492889BR** **Job Title:** Apple Mobile Master **Location Number:** 000886-Norwalk-Store **Job Description:** **What does a Best Buy Apple Mobile Master do?** Read more
*Apple* Mobile Master - Best Buy (United Sta...
**492472BR** **Job Title:** Apple Mobile Master **Location Number:** 000470-Seattle-Store **Job Description:** **What does a Best Buy Apple Mobile Master do?** Read more
*Apple* Mobile Master - Best Buy (United Sta...
**492562BR** **Job Title:** Apple Mobile Master **Location Number:** 000853-Jackson-Store **Job Description:** **What does a Best Buy Apple Mobile Master do?** Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.