home *** CD-ROM | disk | FTP | other *** search
- fROM KOLSTAD%JOMBY.CS.WISC.EDU@CS.WISC.EDU sAT aPR 20 08:07 mdt 1991
- rECEIVED: FROM HPGRLA.GR.HP.COM BY HPGREA.GR.HP.COM WITH smtp
- (15.11/15.5+ios 3.20) ID aa01996; sAT, 20 aPR 91 08:07:47 MDT
- rETURN-pATH: <KOLSTAD%JOMBY.CS.WISC.EDU@CS.WISC.EDU>
- rECEIVED: FROM RELAY.HP.COM BY HPGRLA.GR.HP.COM WITH smtp
- (15.11/15.5+ios 3.20+om) ID aa14260; sAT, 20 aPR 91 08:13:23 MDT
- rECEIVED: FROM JOMBY.CS.WISC.EDU BY RELAY.HP.COM WITH smtp
- (16.5/15.5+ios 3.13) ID aa05298; sAT, 20 aPR 91 07:12:08 -0700
- dATE: sAT, 20 aPR 91 09:10:47 -0500
- fROM: KOLSTAD%JOMBY.CS.WISC.EDU@CS.WISC.EDU (jOEL kOLSTAD)
- mESSAGE-iD: <9104201410.aa14513@JOMBY.CS.WISC.EDU>
- rECEIVED: BY JOMBY.CS.WISC.EDU; sAT, 20 aPR 91 09:10:47 -0500
- tO: MARKP@HPGRLA.GR.HP.COM
-
- a ibm pc TO c-64 kEYBOARD cONVERTER
- bY jOEL kOLSTAD
- aPRIL, 1991
-
- aFTER YEARS OF USE OF MY cOMMODORE 64, ITS KEYBOARD STARTED TO BECOME
- UNRESPONSIVE AND NOT AT ALL VERY USEABLE. i TRIED ALL THE USUAL REMEDIES
- -- CLEANING THE KEY PADS, BUFFING THE CONTACTS, ETC., BUT FOUND THAT SOONER
- OR LATER THE KEYBOARD WOULD START EXHIBITING THE SAME PROBLEMS ONCE AGAIN.
- i GOT SO FED UP WITH NOT HAVING A DECENT KEYBOARD, i FINALLY DECIDED TO
- TAKE A DRASTIC STEP -- INTERFACE AN ibm pc KEYBOARD TO THE c-64.
-
- nOTE THAT WHEN i SAY "ibm pc KEYBOARD," i _MEAN_ ibm pc OR ibm xt
- KEYBOARD. not ibm at OR ps/2 KEYBOARD. tHE ibm at AND ps/2 KEYBOARDS USE
- SOMEWHAT DIFFERENT METHODS OF SENDING KEYCODES THAN THE pc/xt KEYBOARDS,
- AND WILL NOT WORK WITH MY CONVERTER. aLTHOUGH YOU PROBABLY WON'T HARM
- ANYTHING IN TRYING, YOU CERTAINLY WON'T ACCOMPLISH ANYTHING USEFUL EITHER.
- nOTE ALSO THAT THERE ARE SOME SO-CALLED "UNIVERSAL" KEYBOARDS OUT THERE
- THAT ARE SUPPOSED TO ADAPT THEMSELVES TO THE COMPUTER IN USE. i KNOW
- LITTLE ABOUT THESE, AND HAVEN'T TRIED ANY OF THEM, SO i CANNOT SAY IF THEY
- WORK OR NOT. i WOULD PRESUME THEY WOULD, THOUGH.
-
- lUCKILY FOR MOST OF US, pc/xt KEYBOARDS ARE THE KIND MOST COMMONLY
- FOUND AT SURPLUS STORES AND SWAP MEETS. tHEY ALSO TEND TO BE QUITE
- INEXPENSIVE -- $20-$40 IS NOT AT ALL UNCOMMON. pc/xt KEYBOARDS ARE SO
- CHEAP BECAUSE THEY'RE QUITE DUMB; ALL THEY KNOW HOW TO DO IS SEND KEY SCAN
- CODES. tHIS IS FINE FOR MY APPLICATION.
-
- tHE CONVERTER i BUILT IS BASED ON AN iNTEL 8748 MICROCONTROLLER, AND A
- dALLAS sEMICONDUCTORS ds1277 8X8 CROSSPOINT SWITCH. tHE iNTEL 8748
- MICROCONTROLLER IS A NOW-ANCIENT (ABOUT 10 YEARS OLD, i BELIEVE) CHIP
- CONTAINING A cpu, A 1k eprom, 32 BYTES OF ram, A TIMER/COUNTER, SOME
- INTERRUPT SOURCES, AND SOME i/o. aN INTERESTING BIT OF TRIVIA IS THAT MANY
- pc/xt KEYBOARDS USE AN 8748 (OR CLOSE DERIVITIVE) MICROCONTROLLER
- THEMSELVES! tHIS BASICALLY LEAVES US WITH SOME MECHANICAL SWITCHES TALKING
- TO AN 8748, TALKING TO AN 8748, TALKING TO A ds1277 BEING READ BY THE 6526
- IN THE c-64. tHE ds1277 IS A NEWLY INTRODUCED CHIP THAT CONTAINS AN 8X8
- BANK OF ANALOG SWITCHES -- A "CROSSPOINT SWITCH." tHIS 8X8 BANK OF SWITCHES
- HAPPENS TO BE EXACTLY HOW THE cOMMODORE 64 KEYBOARD IS LAID OUT, AND
- THEREFORE PROVED QUITE USEFUL IN DESIGNING THIS CIRCUIT. tHE ds1277
- REPLACES AT LEAST 8 CONVENTIONAL ttl CHIPS. iT UTILIZES A SIMPLE SERIAL
- INTERFACE, AND EVEN CONTAINS PROVISION FOR BATTERY BACKUP OF THE SWITCH
- SETTING (NOT USED HERE, FOR OBVIOUS REASONS :-) ).
-
- iN MAKING THE 8748 SOFTWARE, i ATTEMPTED TO CREATE A PROGRAM THAT
- ALLOWED AS COMPLETE OF A KEYBOARD EMULATION AS POSSIBLE, WITHOUT SETTING ME
- BACK A FEW YEARS ON MY COLLEGE EDUCATION (OK, JUST KIDDING... IT REALLY
- ONLY TOOK A WEEK TO WRITE AND ANOTHER OR SO TO GET WORKING...). tHE
- EMULATION IS VERY GOOD -- CAPS LOCK AND NUM LOCK MODES ARE SUPPORTED,
- CURSOR KEYS DO WHAT THEY DO, AND HITTING SHIFTED KEYS ENTERS WHAT'S LABELED
- ON THE pc KEYBOARD (AS OPPOSED TO THE c-64 KEYBOARD!).
-
- hERE'S HOW IT WORKS...
-
- nORMALLY YOU TYPE AWAY...
- tO ENTER CAPS LOCK MODE, HIT CAPS LOCK. you cannot be pressing a-z
- while hitting caps lock (wHY WOULD YOU?), or it will be ignored. uNLESS
- THE CAPS LOCK IS IGNORED, A CAPS LOCK INDICATOR LIGHTS ON THE pc KEYBOARD
- IS INDICATIVE OF THE CAPS LOCK MODE. iF THE CAPS LOCK IS IGNORED, YOU'LL
- HAVE TO HIT CAPS LOCK TWICE TO ENGAGE IT -- ONCE TO TURN OFF THE CAPS LOCK
- INDICATOR LIGHT, AND AGAIN TO TURN IT BACK ON.
- nUM LOCK IS QUITE SIMILAR TO CAPS LOCK. yOU CANNOT BE PRESSING 0-9 OR
- . WHILE ENTERING THE NUM LOCK MODE, OR IT WILL BE IGNORED IN THE SAME VEIN
- AS CAPS LOCK.
- wHEN NOT IN CAPS LOCK MODE, CURSOR KEYS AUTOMATICALLY HAVE SHIFTS ADDED
- WHEN NEEDED -- THAT IS, IF YOU HIT THE LEFT ARROW KEY, THE c-64 WILL
- ACTUALLY "SEE" THE RIGHT ARROW KEY AND A SHIFT.
- tO ENTER SHIFTED SYMBOLS (THE ONES ABOVE 0-9, THE BRACKETS, ETC.), YOU
- HIT sHIFT AND THE KEY WITH THE SYMBOL ON IT. dUH. bUT SERIOUSLY, WHAT'S
- IMPORTANT HERE IS THAT YOU HIT sHIFT FIRST, LIKE YOUR HIGH SCHOOL TYPING
- TEAHER TAUGHT YOU. fOR INSTANCE, HITTING sHIFT-2 WILL LET THE c-64
- KEYBOARD "SEE" AN @ SIGN (AN UNSHIFTED KEY OF c-64 KEYBOARDS). hOWEVER, IF
- YOU HIT 2 AND _THEN_ SHIFT, c-64 WILL "SEE" A SHIFTED 2 ON THE c-64
- KEYBOARD... WHICH IT MAY DECIDE IS A DOUBLE QUOTE. lIKEWISE, YOU SHOULD
- RELEASE THE CHARACTER KEY BEFORE THE SHIFT KEY, OR YOU MAY RUN INTO THE
- SMALL PROBLEM AS ABOVE. sO JUST REMEMBER: sHIFT-hIT CHARACTER-rELEASE
- CHARACTER-uNSHIFT. bUT THAT'S HOW YOU TYPE ANYWAY, RIGHT? jUST LIKE mR.
- rELPH TAUGHT YOU IN HIGH SCHOOL...
- tRYING TO DECIDE WHAT TO DO WITH "NON-STANDARD" CHARACTERS WAS A LITTLE
- TRICKY... SINCE WHAT KEY CREATES THESE CHARACTERS IS COMPLETELY UP TO THE
- PROGRAMMER. hOWEVER, i'VE TRIED TO BE AS CONSISTENT AS POSSIBLE WITH AS
- MANY PROGRAMS AS i HAVE THAT USE THESE CHARACTERS, AND THIS IS WHAT i CAME
- UP WITH:
-
- {$60} --> ' {$7e} --> PI (sH. UP ARROW) _ --> sHIFT @
- \ --> bRITISH POUND KEY {$7c} --> sHIFT bRIT. lB. {$7b} --> sHIFT +
- {$7d} --> sHIFT -
-
- tAB, pG uP AND pG dOWN DON'T DO A DARN THING, AT THE MOMENT.
- bACK SPACE AND DELETE ARE SYNONYMOUS. iNSERT IS STILL SHIFTED
- DELETE...
- f1-f8 ARE STILL f1-f8. eVEN NUMBERS ADD A SHIFT.
- f9 AND f10 ARE _BOTH_ DEFINED AS stop.
- aLT IS DEFINED AS THE cOMMODORE (c=) KEY.
-
- sCROLL lOCK IS NOW rESTORE. rEALLY. sO NOW YOU HIT f10-sCROLL lOCK.
- :-) aPOLOGIES TO THOSE WHO MIGHT BE ANNOYED BY SCROLL LIGHT INDICATOR
- LIGHTS -- THEY LATCH, rESTORE DOESN'T. bUT i COULDN'T FIND ANY OTHER GOOD
- KEYS...
-
- fINALLY, AS A TOKEN OF APPRECIATION TO THE ms-dos WORLD THAT GIVES US
- THESE KEYBOARDS TO BEGIN WITH, cTRL-aLT-dELETE WILL RESET THE
- MICROCONTROLLER AND KEYBOARD. bUT NO, IT WON'T HELP A RUNAWAY c-64
- PROGRAM. :-)
-
- bY NOW YOU MIGHT BE WONDERING HOW TO BUILD THE THING. iF YOU ASKED FOR
- THEM, YOU GOT A SCHEMATIC OF THE CIRCUIT AND THE MACHINE LANGUAGE PROGRAM
- THAT RUNS THE 8748. yOU CAN BUILD THE CIRCUIT JUST ABOUT ANYWAY YOU WANT
- -- NOTHING IS REALLY CRITICAL. kEEP THE .1UF CLOSE TO THE POWER LEADS,
- THOUGH.
-
- yOU MIGHT HAVE A HARD TIME GETTING THE 8748 PROGRAMMED -- MANY PLACES
- HAVE STANDARD eprom PROGRAMMERS, BUT NOWHERE NEAR AS MANY HAVE 8748
- PROGRAMMERS. aCTUALLY, SINCE THE CIRCUIT DOESN'T USE THE bus LINES OF THE
- 8748, YOU COULD USE AN 8048 (epromLESS 8748) AND AN eprom TO RUN THE CODE.
- tHIS ARRANGEMENT ALSO REQUIRES AN ADDRESS LATCH TO WORK. iT DOES SAVE ALL
- OF ABOUT $2 ON PARTS COST, BUT PERSONALLY i DON'T THINK IT'S WORTH IT GIVEN
- THE CONSIDERABLE EXTRA WIRING TO TWO MORE CHIPS. aND BESIDES, A TWO CHIP
- CIRCUIT THAT DOES SOMETHING VAGUELY USEFUL IS KIND OF SLICK. hOWEVER, IF
- YOU REALLY WANT TO TAKE THIS ROUTE, i REFER YOU TO THE iNTEL "eMBEDDED
- cONTROLLER sYSTEMS hANDBOOK." iNTEL CAN BE REACHED AT 1-800-548-4725.
-
- iF YOU WANT TO GET AN 8748 PROGRAMMED AND CAN'T DO IT LOCALLY, i CAN DO
- IT FOR YOU FOR A NOMINAL FEE. iN FACT, i KEEP ALL THE PARTS FOR SOMETHING
- THIS SIMPLE AROUND MOST OF THE TIME, AND CAN SELL THEM TO YOU IF NEED BE.
- tHIS WHOLE PROJECT IS SUPPOSED TO BE MORE OR LESS IN THE "PUBLIC DOMAIN,"
- THOUGH, SO i'D FEEL A LITTLE GUILTY IF i DIDN'T TELL YOU WHERE TO GET THE
- PARTS YOURSELF:
-
- --> 8748: mANY PLACES. i LIKE jdr mICRODEVICES ($7.95). 1-800-538-5000
- (ASK FOR A CATALOG). dIGIKEY (1-800-digi-key) AND jAMEcO (1-415-592-8097) HAVE THEM TOO.
- --> ds1277: dALLAS sEMICONDUCTORS. cALLING dALLAS DIRECTLY AT 1-800-336-6933
- IS THE EASIEST WAY TO GET ONE, AND THEY'RE PERFECTLY HAPPY SHIPPING
- YOU ONE FOR $4.85 PLUS POSTAGE. oTHERWISE, _WELL STOCKED_ dALLAS
- DISTRIBUTORS SHOULD HAVE THEM.
- --> 11mhZ CRYSTAL: dIGIKEY HAS THESE. a BUCK OR SO.
- --> cONNECTORS: iF YOU WANT TO GET A FEMALE 20 PIN CONNECTOR THAT PLUGS
- INTO A CIRCUIT BOARD, YOU MIGHT HAVE A HARD TIME FINDING OUT. aLLIED (1-800-433-5700)
- AND nEWARK (VARIOUS PHONE NUMBERS NATION WIDE) SELL THEM, BUT THEY UNFORTUNATELY HAVE $25 AND $50 MINIMUM
- ORDERS, RESPECTIVELY. oTHERWISE, dIGIKEY SELLS LOTS OF wALDHOM
- "HEADER CONNECTORS" -- i USED A PAIR OF 10 PIN FEMALE-FEMALE CONNECTORS
- GOING TO (2) 10 PIN MALE HEADERS ON THE CIRCUIT BOARD. aLSO, A SIMPLE
- "PASS THROUGH" FOR ALL 20 PINS WILL LET YOU USE AN ibm pc KEYBOARD AND
- THE cOMMODORE KEYBOARD TOGETHER. tHIS MEANS THAT YOU CAN STILL USE
- YOUR ORIGINAL c-64 KEYBOARD JUST LIKE YOU COULD BEFORE (THE c-64 WILL SEE
- THE UNION OF TRUE c-64 KEYS AND ibm pc KEYS, IN THIS CASE). iF YOU EVER
- TAKE YOUR c-64 SOMEWHERE WITHOUT A pc KEYBOARD, YOU WON'T NOTICE A
- THING.
- --> mISCELLANEOUS CAPACITORS, ETC: mOUSER (1-800-34-mouser) OR dIGIKEY.
-
- wELL, THAT SHOULD BE EVERYTHING YOU'LL EVER NEED TO KNOW ABOUT THE ibm
- pc/xt TO c-64 KEYBOARD CONVERTER. sHOULD YOU HAVE ANY QUESTIONS, COMMENTS,
- ETC., YOU CAN E-MAIL ME AT: KOLSTAD@JOMBY.CS.WISC.EDU, OR
- KOLSTAD@CAE.WISC.EDU.
-
- uNLESS YOU HAVE A CLOSE TO DEATH c-64 KEYBOARD LIKE i DID, THIS HACK IS
- MORE OF A GIMMICK THAN ANYTHING ELSE. :-) hOWEVER, IT WORKS WELL, AND i
- THINK IT'S BETTER THAN THE ORIGINAL KEYBOARD ITSELF.
-
- ---jOEL kOLSTAD
-
- note #1: aS OF aPRIL 17TH, 1991, MY PROTOTYPE IS USING AN 8749 INSTEAD OF
- AN 8748. aN 8749 IS AN 8748 WITH A 2k eprom AND 64 BYTES OF ram. uNLESS
- THERE'S A BUG SOMEWHERE IN THE PROGRAM, THIS MAKES _NO DIFFERENCE
- WHATSOEVER_ -- THE TWO DEVICES ARE COMPLETELY CODE COMPATIBLE, OF COURSE.
- hOWEVER, i CANNOT PROMISE AN 8748 WILL WORK UNTIL i GET SOME TO TRY. i DO
- HAVE SOME ON ORDER -- THEY SHOULD BE HERE WITHIN A WEEK. iF i DO FIND ANY
- PROBLEMS, i'LL SEND OUT A NEW VERSION OF THE SOFTWARE.
-
- note #2: fOR AWHILE, i HAD TURNED THE dALLAS PART NUMBER 1277 INTO 1127.
- oOPS. i BELIEVE i'VE GOTTEN RID OF ALL OF THOSE REFERENCES, BUT IF YOU DO
- SEE ANYTHING REFERRING TO A "ds1127", ignore it. tHE RIGHT PART NUMBER IS
- ds1277. sORRY ABOUT THAT.
-
-