home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / documents / projects / interfaces / PCkeyb2C64.shar / c64.kybd.info next >
Encoding:
Text File  |  1993-10-23  |  10.8 KB  |  188 lines

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