home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / documents / projects / memory / reu / Beyond512K.txt < prev    next >
Encoding:
Text File  |  1998-01-13  |  21.6 KB  |  661 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.      tHE MATERIAL CONTAINED IN THIS DOCUMENT IS OF AN EXPERIMENTAL NATURE. aS
  14.  SUCH, ALL CONSEQUENCES RESULTING FROM THE USE OF THE INFORMATION IS THE
  15.  EXPRESS RESPONSIBILITY OF THE USER. tHE AUTHOR SHALL NOT BE HELD LIABLE, AND
  16.  IMPLIES NO WARRANTIES OR GUARANTEES WHAT SO EVER. tHE AUTHOR DOES CERTIFY THAT
  17.  THE INFORMATION PRESENTED WAS CORRECT, TO HIS KNOWLEDGE, AT THE TIME OF THE
  18.  FIRST DISTRIBUTION OF THE DOCUMENT.
  19.  
  20.  
  21.  
  22.  
  23.  
  24.      tHIS DOCUMENT AND THE INFORMATION IT CONTAINS IS THE SOLE PROPERTY OF THE
  25.  AUTHOR, WHO RETAINS ALL COPYRIGHTS, AND PATENTS TO THE MATERIAL PRESENTED.
  26.  
  27.  
  28.  
  29.  
  30.  
  31.      tHE AUTHOR DOES GRANT A LIMITED DISTRIBUTION RIGHT TO ALL IF THE FOLLOWING
  32.  CONDITIONS ARE SATISFIED: tHE DOCUMENT IS DISTRIBUTED IN COMPLETE AND
  33.  UNALTERED FORM, WITH THIS LEGAL FORM INCLUDED. nO COMMERCIAL DISTRIBUTION (IE.
  34.  PUBLISHING) OF THE DOCUMENT IS ENTERED INTO WITHOUT THE WRITTEN CONSENT OF THE
  35.  AUTHOR. lASTLY, NO MONIES SHALL BE EXCHANGED FOR THE DISTRIBUTION OF THE
  36.  DOCUMENT, EXCEPT FOR REPRODUCTION AND SHIPPING CHARGES, WITHOUT THE WRITTEN
  37.  PERMISSION OF THE AUTHOR. wITH THESE CONDITIONS FULFILLED, THE LIMITED
  38.  DISTRIBUTION LICENSE GRANTS THE HOLDER OF THE DOCUMENT TO OTHERWISE FREELY
  39.  DISTRIBUTE, AND STORE IT IN ANY MANNER.
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.                       bEYOND 512 KB: tHE tWO mEGABYTE reu
  74.                       -----------------------------------
  75.  
  76.                               bY aNDREW e. mILESKI
  77.  
  78.                            cOPYRIGHT oCTOBER 3, 1989.
  79.  
  80.  
  81.      iN vOLUME 9, iSSUE 6 OF THE tRANSACTOR, pAUL bOSACKI SHOWED US A MIRACLE;
  82.  THE ONE MEGABYTE c64. pAUL HAD DEVELOPED AN ELEGANT METHOD OF ALLOWING THE c64
  83.  TO ACCESS THIS EXTRA MEMORY OUT OF THE c64'S OWN MEMORY MAP. uNFORTUNATELY,
  84.  THIS EXTRA ram IS RATHER DIFFICULT TO ACCESS, NOT ALL OF IT IS AVAILABLE TO
  85.  THE USER, AND c128 OWNERS CANNOT EXPAND THERE MACHINES IN THE SAME MANNER. tHE
  86.  CIRCUIT NECESSARY FOR THIS FEAT ALLOWS A c64 TO USE 256 K ram CHIPS, INSTEAD
  87.  OF THE 64 K ram CHIPS IT WAS DESIGNED TO USE. aLTHOUGH A BRILLIANTLY SIMPLE
  88.  CIRCUIT, IT IS OVER-KILL WHEN ONE ALREADY HAS A rAM eXPANSION uNIT (reu) THAT
  89.  DIRECTLY SUPPORTS 256 K ram CHIPS!
  90.  
  91.      eXPANDING A reu IS RELATIVELY SIMPLE, AND IF YOU ALREADY KNOW HOW TO
  92.  PROGRAM A reu YOU CAN EASILY TAKE ADVANTAGE OF AN EXPANDED ONE. iN FACT, ALL
  93.  YOUR SOFTWARE THAT USES A reu IS COMPLETELY COMPATIBLE! nOW ARE FELLOW c128
  94.  OWNERS CAN EXPAND THEIR MACHINES EASILY TOO, SINCE THE EXTRA ram IS ACCESSED
  95.  OUT OF A reu, AND NOT OFF A MODIFIED MOTHER-BOARD!
  96.  
  97.      iN A 512 KB reu, THERE ARE TWO DYNAMIC ram CHIP BANKS ON THE CIRCUIT
  98.  BOARD. tHEY EACH CONSIST OF EIGHT, 1 BIT BY 256 K DYNAMIC ram CHIPS, WHICH
  99.  GIVES US OUR 512 K BYTES. tHE reu'S INTERNAL BANK REGISTER AT $df06 WORKS IN
  100.  64 KB INCREMENTS, AND HAS ONLY EIGHT OF THESE reu BANKS. bANKS 0 TO 3 ARE
  101.  ACCESSED OUT OF CHIP BANK ONE (u2 TO u9), AND BANKS 4 TO 7 ARE ACCESSED OUT OF
  102.  CHIP BANK TWO (u10 TO u17). pLEASE NOTE THE DISTINCTION BETWEEN CHIP BANKS,
  103.  AND reu BANKS.
  104.  
  105.  nOTE: SIGNALS PRECEEDED BY AN ASTERISK INDICATE THAT THEY ARE ACTIVE LOW
  106.  
  107.  dYNAMIC ram bASICS
  108.  ------------------
  109.  
  110.      dYNAMIC ram MEMORY CHIPS ARE CONSTRUCTED WITH MULTIPLEXED ADDRESS INPUTS.
  111.  tHIS MEANS THAT THEY CARRY DIFFERENT INFORMATION AT DIFFERENT TIMES. tO ACCESS
  112.  A PARTICULAR MEMORY CELL, WE FIRST SUPPLY THE CHIP WITH HALF OF THE ACTUAL
  113.  ADDRESS, A ROW ADDRESS. nEXT WE LATCH THIS ADDRESS INTO THE CHIP BY ASSERTING
  114.  THE rOW aDDRESS sTROBE (*ras). nOW WE SUPPLY THE CHIP WITH THE OTHER HALF OF
  115.  THE ADDRESS, THE COLUMN ADDRESS. oNCE AGAIN WE LATCH THIS ADDRESS INTO THE
  116.  CHIP BY ASSERTING THE cOLUMN aDDRESS sTROBE (*cas). dEPENDING ON THE STATE OF
  117.  THE wRITE eNABLE (*we) SIGNAL, A READ OR WRITE MEMORY CYCLE WILL OCCUR.
  118.  
  119.      uNFORTUNATELY DYNAMIC ramS FORGET EVERYTHING UNLESS THEY ARE REMINDED, OR
  120.  REFRESHED. tHIS MUST BE DONE ABOUT EVERY 4 MILLISECONDS! tO REFRESH THE MEMORY
  121.  A ras ONLY CYCLE MUST BE DONE FOR EVERY ROW ADDRESS. tHIS MEANS THAT ONLY THE
  122.  ROW ADDRESS IS LATCHED INTO THE CHIP; THE COLUMN ADDRESS IS NOT NEEDED HERE.
  123.  tHE ENTIRE ROW OF DATA STORED IN THE CHIP WILL BE REFRESHED, AND OUR DATA WILL
  124.  BE SAFE FOR ANOTHER FEW MILLISECONDS. iN A reu THE ram eXPANSION cONTROLLER
  125.  (rec) CHIP TAKES CARE OF ALL THIS FOR US.
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  fOOLING THE rec
  140.  ---------------
  141.  
  142.      sINCE A reu WAS ONLY DESIGNED TO ACCESS 512 KB OF EXPANSION MEMORY, WE
  143.  MUST FOOL IT IN ORDER TO ACCESS MORE. wE DO THIS BY LETTING THE reu THINK THAT
  144.  IT HAS ONLY 512 KB AVAILABLE AT ANY ONE TIME. tHIS MEANS WE NEED SOME WAY TO
  145.  SWITCH BETWEEN THE EXTRA BANKS OF MEMORY. tHE CIRCUIT SHOWN IN THE SCHEMATIC
  146.  HELPS US TO DO THIS BY ADDING TWO BITS TO THE reu BANK SELECT REGISTER. tHIS
  147.  TWO BIT OUTPUT PORT LETS US SELECT ONE OF FOUR BANKS OF 512 KB. sO IN OTHER
  148.  WORDS, ARE reu NOW THINKS IT IS FOUR SEPERATE 512 KB reuS. nOW WE CAN EASILY
  149.  ACCESS UP TO 2 mB OUT OF A reu!
  150.  
  151.  hOW THE CIRCUIT WORKS
  152.  ---------------------
  153.  
  154.      tHE SECRET TO EXPANDING DYNAMIC MEMORY LIES IN THE *cas SIGNAL. sINCE ALL
  155.  THE ram CHIPS NEED TO BE REFRESHED WITH *ras, WE DON'T DO ANYTHING TO THIS
  156.  SIGNAL AND PASS IT TO ALL MEMORY CHIPS. tHIS LEAVES US WITH MANIPULATING *cas.
  157.  
  158.      mANIPULATION OF *cas IS THE JOB OF ic1, A DUAL TWO TO FOUR LINE
  159.  DECODER/DEMULTIPLEXOR. iT IS USED TO DIRECT THE rec SIGNALS *cas0 (CHIP BANK
  160.  ONE), AND *cas1 (CHIP BANK TWO), TO THE CORRECT BANK OF EIGHT ram CHIPS. wHEN
  161.  ONE OF THE rec cas SIGNALS IS ASSERTED, THE cas SIGNAL OF THE SELECTED BANK IS
  162.  ASSERTED. tHE BANK SELECTION IS DONE WITH THE TWO SELECT INPUTS s0 AND s1 OF
  163.  ic1.
  164.  
  165.      ic2 AND ic3 FORM A TWO BIT WRITE-ONLY REGISTER, WHOSE OUTPUTS ARE THE BANK
  166.  SELECT INPUTS TO ic1. bITS 3 AND 4 OF THE reu BANK REGISTER AT $df06 ARE
  167.  LATCHED INTO ic2, TWO d TYPE FLIP-FLOPS, ON THE NEGATIVE EDGE OF THE SYSTEM
  168.  CLOCK (THETA2). bY MAPPING OUR NEW TWO BIT REGISTER TO THESE NORMALLY UNUSED
  169.  BITS, THE EXTRA MEMORY APPEARS TO THE USER AS EXTRA 64K BANKS BEYOND THE
  170.  NORMAL MAXIMUM OF 512 KB. ic3 IS A 3 TO 8 LINE DECODER/DEMULTIPLEXOR, WHICH IS
  171.  USED TO DECODE THE LOWEST THREE BITS OF THE i/o2 PAGE ($df00 TO $dfff)
  172.  ADDRESS. tHE ic3 SIGNAL *o6 IS USED AS THE CLOCK SIGNAL FOR THE TWO
  173.  FLIP-FLOPS, WHICH LATCHES BITS 3 AND 4 OF THE DATA BUS ON THE POSITIVE EDGE.
  174.  tHIS HAPPENS WHENEVER $df06 IS WRITTEN TO. oN A READ MEMORY CYCLE TO $df06,
  175.  ic3 IS DISABLED AND THE reu'S REGULAR INTERNAL REGISTER APPEARS ON THE DATA
  176.  BUS.
  177.  
  178.      a SWITCH PULLS THE *clr INPUTS TO EACH OF THE FLIP-FLOPS LOW WHEN IT IS
  179.  CLOSED  (POSITION 1). tHIS FORCES THEM TO SELECT BANK ZERO OF 512 KB AT ALL
  180.  TIMES, WHICH IS PRESENT IN ALL 512KB reuS. wHEN THE SWITCH IS OPEN (POSITION
  181.  2), THE FLIP-FLOPS CAN FREELY TAKE ON THE VALUES OF BITS 3 AND 4 OF $df06.
  182.  tHIS ALLOWS COMPLETE SOFTWARE COMPATIBILITY WITH A 1750 (512 KB) reu.
  183.  
  184.      lASTLY, THE TWO lIGHT eMITTING dIODES (ledS), WHICH ARE OPTIONAL, SIMPLY
  185.  SHOW US (IN BINARY) WHAT BANK OF 512K WE ARE USING. tHEY ALLOW US TO QUICKLY
  186.  CHECK SOFTWARE COMPATIBILITY, AS EXPLAINED LATER.
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  iNSTALLATION
  206.  ------------
  207.  
  208.      aLL THE EXPANSION HARDWARE FITS INSIDE THE reu CASE. yOU WILL NOT BE ABLE
  209.  TO USE THE rf SHIELD, AND IT WILL BE A VERY TIGHT FIT WITH ALL 2 mB  INSTALLED
  210.  (DON'T USE ic SOCKETS!). sTART BY EXPANDING YOUR reu TO 512 KB, OR IN OTHER
  211.  WORDS YOU NEED A 1750 reu. sEE vOLUME 9, iSSUE 5 OF THE tRANSACTOR, OR THE
  212.  ARTICLE BY sCOTTb30 ON qUANTUM lINK FOR EXPANDING 1764 AND 1700 reuS. tAKE THE
  213.  USUAL STATIC PRECAUTIONS, AND OF COURSE, ANY MODIFICATION TO THE reu WILL VOID
  214.  THE WARRANTY! pROCEED AT YOUR SOLE RISK!
  215.  
  216.      oN THE COMPONENT SIDE OF THE reu, WITH THE EDGE CONNECTOR TOWARDS YOU,
  217.  LOCATE rESISTOR pACKAGE rp3 ON THE LEFT SIDE NEAR THE MIDDLE OF THE BOARD.
  218.  fLIP THE BOARD OVER TO THE SOLDER SIDE, AGAIN WITH THE EDGE CONNECTOR TOWARDS
  219.  YOU. lOCATE rp3 AGAIN ON THE RIGHT SIDE OF THE BOARD. fROM THE TOP OF THE
  220.  BOARD, FIND PIN 7 OF rp3 AND CUT THE TRACE LEADING AWAY FROM THE PIN. sOLDER A
  221.  WIRE TO THIS PIN (PIN 7); THIS IS THE *cas0 SIGNAL. fIND PIN 3 OF rp3 AND
  222.  AGAIN CUT THE TRACE LEADING AWAY FROM THE PIN. sOLDER A WIRE TO THIS PIN (PIN
  223.  3); THIS IS THE *cas1 SIGNAL.
  224.  
  225.      fLIP THE BOARD OVER TO THE COMPONENT SIDE WITH THE EDGE CONNECTOR TOWARDS
  226.  YOU, AND LOCATE RAM CHIPS u2 AND u10 ON THE TOP LEFT SIDE OF THE BOARD. fLIP
  227.  THE BOARD OVER TO THE SOLDER SIDE AND AGAIN LOCATE THESE CHIPS. tO PIN 15 OF
  228.  u2 SOLDER A WIRE; THIS IS THE *casbank0 SIGNAL. sOLDER A WIRE TO PIN 15 OF
  229.  u10; THIS IS THE *casbank1 SIGNAL. rUN THE FOUR WIRES YOU NOW HAVE, DOWN TO
  230.  THE RIGHT SIDE OF THE EDGE CONNECTOR AND SECURE THEM IN THE CORNER WITH A
  231.  PIECE OF ELECTRICAL TAPE. tHIS COMPLETES ALL THE SOLDER CONNECTIONS TO THE
  232.  SOLDER SIDE OF THE BOARD.
  233.  
  234.      lOCATE THE FIFTH PIN FROM THE RIGHT ON THE EDGE CONNECTOR AND FOLLOW THE
  235.  TRACE TO A COMPONENT LEG; NOTE THE PLACEMENT. fLIP THE BOARD TO THE COMPONENT
  236.  SIDE FOR THE LAST TIME, AND LOCATE THE COMPONENT. iT IS LABELED fb2, AND
  237.  SHOULD BE A fERRITE bUTTON, BUT IS A 430 oHM RESISTOR (YELLOW, ORANGE, BROWN,
  238.  GOLD BANDS) ON MY reu. tO THE OPPOSITE END OF THE COMPONENT, AWAY FROM THE
  239.  EDGE CONNECTOR, SOLDER A WIRE; THIS IS THE SYSTEM CLOCK SIGNAL THETA2.
  240.  
  241.      lOCATE THE THIRTEENTH PIN FROM THE RIGHT ON THE EDGE CONNECTOR. fOLLOW THE
  242.  TRACE TO A PASS-THROUGH, AND SOLDER A WIRE INTO IT; THIS IS THE *i/o2 SIGNAL.
  243.  
  244.      lOCATE THE EIGHTEENTH PIN FROM THE RIGHT OF THE EDGE CONNECTOR, AND FOLLOW
  245.  THE TRACE TO fERRITE bUTTON fb1. tO THE SIDE AWAY FROM THE EDGE CONNECTOR
  246.  SOLDER A WIRE; THIS IS THE r/*w SIGNAL.
  247.  
  248.      lOCATE THE EMPTY PINOUT (u18) NEXT TO THE SQUARE rec CHIP. sOLDER WIRES
  249.  INTO THE HOLES FOR PINS 8, 9, 10, 14, 15, 16, AND 28. tHESE ARE THE SIGNALS
  250.  a2, a1, a0, gROUND, d3, d4, AND +5 VOLTS RESPECTIVELY. tHIS COMPLETES THE
  251.  SIGNAL HUNTING.
  252.  
  253.  lAY A 2 INCH STRIP OF DOUBLE-SIDED FOAM TAPE DOWN THE CENTER OF THE MISSING ic
  254.  (u18) PATTERN. tRY TO LEAVE ROOM NEAR THE RIGHT EDGE OF THE CASE SO YOU CAN
  255.  MOUNT A SWITCH. mOUNT THE icS, IN ORDER FROM LEFT TO RIGHT, TO THE TAPE upside
  256.  down (PINS STICKING UP) WITH THE NOTCHES (OR DOTS) TOWARDS THE TOP OF THE
  257.  BOARD. pLACE THEM AS FAR APART AS YOU CAN ON THE TAPE.
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.     nOW CONNECT THE icS USING (CAREFULLY!) POINT TO POINT SOLDERING, OR
  272.  WIRE-WRAP directly ON THE ic PINS (YES, IT CAN BE DONE). iF YOU DO WIRE-WRAP,
  273.  ONLY 4 WRAPS PER CONNECTION ARE NECESSARY, AND "OVER WRAPPING" (WRAPPING ON
  274.  TOP OF WRAPPING) IS RECOMMENDED FOR THE SECOND CONNECTION TO A PIN. kEEP THE
  275.  CONNECTIONS AS SHORT AS POSSIBLE EG. +5 VOLTS TO PIN 14 OF ic1 IN MINE IS 1/4
  276.  OF AN INCH LONG.
  277.  
  278.      mOUNT THE SWITCH IN THE TOP HALF AND ON THE EDGE OF THE reu'S CASE IN A
  279.  CONVENIENT PLACE. i RECOMMEND PLACING IT NEAR THE BOTTOM RIGHT CORNER, NEAR
  280.  THE PLASTIC POST SINCE THERE IS NOTHING IN THE WAY HERE. a SLIDE SWITCH IS
  281.  NEATER THAN A TOGGLE SWITCH, BUT IT ISN'T VERY MUCH FUN TRYING TO MAKE A
  282.  SQUARE HOLE FOR A THE SLIDE SWITCH! mARK (OR JUST NOTE) THE POSITION OF THE
  283.  SWITCH ON THE CASE (OPEN: 2 mB, CLOSED: 512 KB) WITH A MARKER (sANFORD
  284.  "sHARPIE" WRITES PERMANENTLY ON ANYTHING!) OR USE "lETTRA sET" TYPE LETTERING.
  285.  
  286.      tHE NEXT STEP, AND LAST STEP, IS TO WIRE AND MOUNT THE TWO OPTIONAL led
  287.  INDICATORS. sOLDER WIRES TO ALL THE LEADS OF BOTH THE ledS. dRILL HOLES FOR
  288.  THEM AT THE TOP EDGE, OF THE TOP HALF OF THE CASE, SO THEY'RE VISABLE WITH THE
  289.  reu INSTALLED. mAKE SURE TO PUT led1 ON THE LEFT AND led0 ON THE RIGHT, SO YOU
  290.  CAN READ THE BANK OF 512 KB  IN BINARY (0=UN-LIGHTED, 1=LIGHTED).
  291.  
  292.      yOUR reu NOW WORKS THE SAME AS BEFORE, AT LEAST IT SHOULD! pLUG IT IN,
  293.  MOVE THE SWITCH TO  POSITION 1 (SWITCH CLOSED, THE OPTIONAL ledS SHOULD BOTH
  294.  BE UN-LIGHTED) AND GIVE THE reu A SPIN WITH ANY TEST PROGRAM OF YOUR CHOICE.
  295.  iF THINGS LOOK BAD, POWER DOWN AND RECHECK ALL CONNECTIONS! iF IT DOES WORK,
  296.  CONGRATULATIONS! yOU NOW HAVE AN reu THAT CAN BE EXPANDED TO 2 mB  BY ADDING A
  297.  MEAGER (48) ram CHIPS.
  298.  
  299.  aDDING MEMORY
  300.  -------------
  301.  
  302.      eXPAND THE MEMORY BY PIGGY-BACKING THE EXISTING ram CHIPS IN CHIP BANKS
  303.  ONE OR TWO, STARTING WITH CHIP BANK 1. bEND PIN 15 UP, TO A 45 DEGREE ANGLE,
  304.  ON EACH OF THE ram CHIPS TO BE ADDED. cONNECT A WIRE TO THIS PIN BEFORE
  305.  SOLDERING IT TO THE OTHER ram CHIP. oNCE THE CHIP IS SOLDERED IN PLACE,
  306.  CONNECT THE WIRE TO PIN 15 OF THE NEXT ram CHIP TO BE ADDED. sOLDER ANOTHER
  307.  WIRE TO ITS PIN 15, AND SOLDER THE CHIP IN PLACE NEXT TO THE OTHER. cONTINUE
  308.  IN THIS WAY UNTIL ALL THE ramS IN A CHIP BANK ARE PIGGY-BACKED, AND ALL PINS
  309.  15 ARE CONNECTED IN A DAISY-CHAIN FASHION IN EACH CHIP BANK. sOLDER A WIRE TO
  310.  PIN 15 OF THE RIGHTMOST ram CHIP IN THE BANK; THIS IS THE *casbankX SIGNAL.
  311.  nOW USE AN OHMMETER OR CONTINUITY TESTER TO SEE THAT ALL THE CHIPS IN THE
  312.  NEWLY ADDED BANK SHARE THE SAME SIGNALS ON PINS 1, 3 TO 13, AND 15 AND 16.
  313.  
  314.      aLL THAT IS LEFT IS TO CONNECT THE WIRE *casbankX TO AN APPROPRIATE
  315.  NUMBERED SIGNAL ON ic1.  oDD NUMBERED casbank SIGNALS ARE FOR ram CHIPS
  316.  PIGGY-BACKED IN CHIP BANK ONE, EVEN NUMBERED ONES ARE FOR ram CHIPS
  317.  PIGGY-BACKED IN CHIP BANK TWO. cHOOSE THE NEXT AVAILABLE SIGNAL WHEN ADDING A
  318.  NEW BANK OF ramS. *casbank0 AND *casbank1 ARE RESERVED FOR THE TWO CHIP BANKS
  319.  ALREADY IN A 512 KB reu. cONNECT THE *casbankX SIGNAL, AND YOU NOW HAVE
  320.  ANOTHER 256 KB OF MEMORY! rEPEAT FOR CHIP BANK TWO FOR 512 KB EXTRA ram. aDD
  321.  JUST AS MUCH ram AS YOU NEED IN 256 KB  INCREMENTS!
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  pROGRAMMING AN EXPANDED reu
  338.  ---------------------------
  339.  
  340.      yOU DON'T NEED TO DO ANYTHING DIFFERENT TO USE THE EXTRA MEMORY IN THE
  341.  reu. jUST REMEMBER THAT YOU NOW HAVE MORE 64 KB BANKS THAT YOU CAN ACCESS
  342.  THROUGH THE BANK REGISTER AT $df06 WHEN IN 2 mB MODE (SWITCH IN POSITION 2).
  343.  wHEN IN THE 1750 EMULATION (512 KB) MODE (SWITCH IN POSITION 1), REMEMBER YOU
  344.  ONLY HAVE ACCESS TO BANKS 0 TO 7 OF 64 KB. kEEP IN MIND THE PECULIARITIES OF
  345.  THE 2 mB MODE AS WELL. tHAT'S ALL THERE IS TO IT! tHE NUMBER OF BANKS DEPENDS
  346.  ON HOW MUCH MEMORY YOU ADDED; 0 TO 15 WITH 1 mB, AND 0 TO 31 WITH 2 mB FOR
  347.  EXAMPLE.
  348.  
  349.      nOTE THAT ALL SOFTWARE THAT TESTS FOR A reu WILL ONLY FIND 512 KB
  350.  AVAILABLE, SO A SLIGHTLY DIFFERENT MEMORY TEST IS NECESSARY TO CHECK ON HOW
  351.  MUCH EXPANSION MEMORY WE HAVE. sINCE THE reu CAN BE EXPANDED UP TO 2 mB  IN
  352.  256 KB INCREMENTS AT THE USERS DISCRETION, A SLIGHTLY DIFFERENT TEST IS
  353.  MANDATORY TO FIGURE OUT JUST HOW BIG THE reu IS. sEE LISTING 1 FOR AN EXAMPLE.
  354.  
  355.  pECULIARITIES
  356.  -------------
  357.  
  358.      tHERE ARE A FEW VERY MINOR INCONVENIENCES WITH THIS EXPANSION PROJECT
  359.  DETAILED AS FOLLOWS:
  360.           1) tHE reu WILL NOT WRAP INTERNALLY BETWEEN BANKS OF 512 KB,
  361.           INSTEAD THE reu WILL WRAP TO THE BEGINNING OF THE SAME 512K
  362.           BANK. fOR EXAMPLE, SAVING 2 BYTES TO $ffff IN BANK 7 WILL
  363.           PUT ONE BYTE AT $ffff IN BANK 7, AND THE OTHER AT $0000 IN
  364.           BANK 0 not BANK 8 AS EXPECTED. tHIS IS BECAUSE THE rec CHIP
  365.           DOES NOT RECOGNIZE MORE THAN 512 KB DIRECTLY; WE HAVE FOOLED
  366.           IT TO USE MORE ram.
  367.           
  368.           2) bANK REGISTER AT $df06 IS WRITE-ONLY WHERE BITS 3 AND 4
  369.           ARE CONCERNED. iF $df06 IS READ, BITS 3 AND 4 (AS WELL AS
  370.           BITS 5, 6, AND 7) WILL ALWAYS BE ONE NO MATTER WHAT BANK OF
  371.           512 KB THE reu IS IN.
  372.           
  373.           3) bITS 3 AND 4 OF THE BANK REGISTER AT $df06 ARE NOW
  374.           SIGNIFICANT, BUT IN AN UNEXPANDED reu THEY ARE IGNORED. tHIS
  375.           WHY WE HAVE A SWITCH TO DISABLE ALL BUT 512K OF MEMORY WHEN
  376.           WE RUN INTO NON-COMPATIBLE SOFTWARE. sEE THE NEXT SECTION
  377.           FOR DETAILS.
  378.           
  379.           4) tHE 512 KB BANK SELECT BITS ARE MEMORY MAPPED BY ONLY THE
  380.           THREE LOWEST ADDRESS BITS. tHIS MEANS THERE ARE IMAGES OF
  381.           THESE BITS AT $df0e, $df16, $df1e, ETC. tHIS IS A TRIVIAL
  382.           MATTER SINCE NO SANE PERSON USES IMAGE ADDRESSES!
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  cOMPATIBILITY
  404.  -------------
  405.  
  406.      tHERE IS ONLY ONE SOURCE OF SOFTWARE INCOMPATIBILITY IN THIS MODIFICATION;
  407.  THE 2 BIT 512 KB BANK SELECT REGISTER WE HAD ADDED TO $df06. sINCE THESE TWO
  408.  BITS ARE NOW SIGNIFICANT AND DIDN'T USED TO BE, WE COULD HAVE A PROBLEM;
  409.  SOFTWARE THAT DOESN'T SET THESE BITS TO THE SAME VALUE AT ALL TIMES, OR SETS
  410.  THE BITS TO A BANK OF 512 KB THAT ISN'T INSTALLED YET, WON'T WORK. bUT THIS IS
  411.  WHAT THE SWITCH IS FOR!
  412.  
  413.      tHE 2 mB MODIFICATION IS 100% COMPATIBLE WITH ANY SOFTWARE WRITTEN FOR A
  414.  1750 (512KB) reu, WHEN IN THE SWITCH SELECTABLE 1750 EMULATION MODE (POSITION
  415.  1, SWITCH CLOSED). uNFORTUNATELY NONE OF THE EXTRA MEMORY BEYOND THIS CAN BE
  416.  ACCESSED WHEN IN THIS MODE. tHIS IS OF NO CONSEQUENCE, SINCE THE SOFTWARE
  417.  CAN'T MAKE USE OF ANY ADDITIONAL MEMORY ANYWAY.
  418.  
  419.      wHEN THE 2 mB MODE IS SWITCH SELECTED (POSITION 2, SWITCH OPEN), WE HAVE
  420.  COMPLETE ACCESS TO HOW EVER MUCH MEMORY WE HAVE ADDED. tHE SWITCH SHOULD BE IN
  421.  POSITION 2 WHENEVER POSSIBLE! mOST SOFTWARE CAN FUNCTION IN THIS MODE,
  422.  INCLUDING geos!
  423.  
  424.      tHE TWO OPTIONAL ledS ARE VERY USEFUL TO DETERMINE IF THE SOFTWARE IS
  425.  COMPATIBLE IN THE 2 mB MODE. iF YOU ARE USING SOFTWARE MEANT TO BE USED WITH A
  426.  1750 reu, YOU CAN USE THE SOFTWARE IN THE 2 mB MODE IF: DURING A reu TRANSFER
  427.  THE ledS ARE ALWAYS SHOWING THE SAME BANK OF 512 KB IS BEING ACCESSED (ledS
  428.  NOT FLICKERING), AND THEY INDICATE A BANK THAT IS INSTALLED (BANK 0 OF 512 KB
  429.  IS ALWAYS PRESENT). wITHOUT THE ledS, IT IS SIMPLY A MATTER OF SAYING "iT
  430.  WORKS", OR "iT DOESN'T WORK" WHEN YOU USE SOFTWARE FOR A 1750 reu.
  431.  
  432.  fINAL WORDS
  433.  -----------
  434.  
  435.      dON'T LET THE LENGTH OF THIS ARTICLE DISCOURAGE YOU; IT ONLY SEEMS
  436.  DIFFICULT IN PRINT! yOUR reu CAN NOW CONTAIN MORE MEMORY THAN AN AVERAGE ibm
  437.  pc. sO BE NICE TO YOUR ibm BUDDIES, AND DON'T BRAG TOO MUCH! i CAN BE REACHED
  438.  ON q-LINK (SCREEN NAME rECURSION), OR YOU CAN WRITE ME DIRECTLY IF YOU HAVE
  439.  ANY QUESTIONS, COMMENTS, OR CONSTRUCTION IDEAS.
  440.  
  441.                                aNDREW e. mILESKI
  442.                               210-180 lEES aVENUE
  443.                                 oTTAWA, oNTARIO
  444.                                 cANADA, k1s 5j6
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  lISTING 1: rECOMMENDED TYPE OF reu MEMORY CHECK
  470.  -----------------------------------------------
  471.  
  472.      iT IS IMPLIMENTED HERE IN basic WITH A reu WEDGE FOR THE c64, BUT CAN
  473.  EASILY BE TRANSLATED INTO ASSEMBLY. tHIS CHECK WILL ALWAYS RETURN THE NUMBER
  474.  OF 64 K BYTE BANKS THAT ARE USEABLE IN THE reu. fetch AND stash DO EXACTLY
  475.  WHAT YOU MIGHT THINK. tHE OPERANDS ARE BYTES TO TRANSFER, COMPUTER BASE
  476.  ADDRESS, reu BASE ADDRESS, AND reu BANK (OF 64 KB) NUMBER.
  477.  
  478.  2000 rem ****initialize ****
  479.  2010 rem pUT A SINGLE STATUS BYTE, THAT SHOWS AN UNCHECKED BANK, IN EACH BANK
  480.  OF 64KB.
  481.  2020 poke 49152,136
  482.  2030 for i=0 to 255
  483.  2040 !stash 1,49152,0,i
  484.  2050 next
  485.  2060 rem ****    test    ****
  486.  2070 rem tEST FOR # BANKS PRESENT BY SEEING IF BANK CHECKED YET. iF NOT,
  487.  CHANGE STATUS OF
  488.  2080 rem BANK TO CHECKED, AND ADD 1 TO THE # OF BANKS. eLSE, BANK IS CHECKED
  489.  ALREADY AND 
  490.  2090 rem WE'RE DONE! nOTE THAT WE ONLY TEST ONE BYTE PER BANK TO SPEED THINGS
  491.  UP.
  492.  2100 poke 49152,27
  493.  2110 i=0
  494.  2120 !fetch 1,49152,0,i
  495.  2130 if peek(49152)<>136 then 2190
  496.  2140 poke 49152,27
  497.  2150 !stash 1,49152,0,i
  498.  2160 i=i+1:if i<256 then 2120
  499.  2170 rem ****    done    ****
  500.  2180 rem nUMBER OF BANKS OF 64KB IS NOW IN i.
  501.  2190 if i=0 then print "reu not present, or not seated properly"
  502.  2200 if i=2 then print "this is a  1700 (128 k) reu"
  503.  2210 if i=4 then print "this is a  1764 (256 k) reu"
  504.  2220 if i=8 then print "this is a  1750 (512 k) reu"
  505.  2230 if i>8 then print "this is an expanded"; 64*i ;"k reu"
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  pARTS lIST AND mISCELLANEOUS dATA
  536.  ---------------------------------
  537.  
  538.  rEQUIRED PARTS
  539.  
  540.  ic1:   74f139      dUAL 2 TO 4 LINE DECODER/DEMULTIPLEXOR.
  541.  ic2:   74f74       dUAL d-TYPE FLIP-FLOPS.
  542.  ic3:   74f138      3 TO 8 LINE DECODER/DEMULTIPLEXOR.
  543.  fast SERIES COMPONENTS RECOMMENDED!
  544.  
  545.  3.3K oHM rESISTOR, 1/4 WATT AND 5% TOLERANCE.
  546.  spst MICRO-MINI TOGGLE, OR SLIDE SWITCH.
  547.  tWO INCH STRIP OF DOUBLE-SIDED FOAM TAPE.
  548.  sUPPLY OF 30 GAUGE WIRE.
  549.  aND OTHER STANDARD TOOLS AND EQUIPMENT.
  550.  
  551.  oPTIONAL
  552.  
  553.  tWO ledS t-1 SIZE.
  554.  tWO 390 oHM RESISTORS, 1/4 WATT AND 5% TOLERANCE.
  555.  
  556.  pIN CONNECTIONS
  557.  ---------------
  558.  
  559.  ic1
  560.  pIN 16: +5 vOLTS        1: *cas0
  561.      15: *cas1           2: ic2 PIN 5
  562.      14: ic1 PIN 2       3: ic2 PIN 9
  563.      13: ic1 PIN 3       4: *casbank0
  564.      12: *casbank1       5: *casbank2
  565.      11: *casbank3       6: *casbank4
  566.      10: *casbank5       7: *casbank6
  567.       9: *casbank7       8: gROUND
  568.  
  569.  ic2
  570.  pIN 14: +5 vOLTS        1: **1**
  571.      13: **1**           2: d3
  572.      12: d4              3: ic3 PIN 9
  573.      11: ic2 PIN 3       4: +5 vOLTS
  574.      10: +5 vOLTS        5: ic1 PINS 2,14
  575.       9: ic1 PINS 3,13   6: led0 **2**
  576.       8: led1 **2**      7: gROUND
  577.  
  578.  ic3
  579.  pIN 16: +5 vOLTS        1: a0
  580.      15: nO CONNECTION   2: a1
  581.      14: nO CONNECTION   3: a2
  582.      13: nO CONNECTION   4: *i/o
  583.      12: nO CONNECTION   5: r/*w
  584.      11: nO CONNECTION   6: tHETA2
  585.      10: nO CONNECTION   7: nO CONNECTION
  586.       9: ic2 PINS 3,11   8: gROUND
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  **1** cONNECT THIS PIN TO ONE SIDE OF THE SWITCH. tHERE SHOULD BE TWO PINS
  603.  CONNECTED TO THE SAME SIDE OF THE SWITCH. tO THE SAME SIDE OF THE SWITCH
  604.  CONNECT A SINGLE 3.3K oHM RESISTOR. cONNECT THE FREE END OF THE RESITOR TO +5
  605.  vOLTS. cONNECT THE OTHER SIDE OF THE SWITCH TO GROUND.
  606.  
  607.  **2** cONNECT THIS PIN TO THE CATHODE OF THE led SHOWN. cONNECT THE ANODE OF
  608.  EACH led TO ITS OWN 390 oHM RESISTOR. cONNECT THE FREE END OF EACH RESISTOR TO
  609.  +5 vOLTS.
  610.  
  611.  tOP OF icS ARE INDICATED BY A DOT OR NOTCH. wHEN THE CHIPS ARE INSTALLED
  612.  UP-SIDE-DOWN, THE PIN NUMBERING IS CLOCKWISE FROM THE TOP RIGHT PIN! sINCE THE
  613.  ram CHIPS ARE INSTALLED RIGHT-SIDE UP, THEIR PIN NUMBERING IS COUNTER
  614.  CLOCKWISE FROM THE TOP LEFT PIN. dON'T MIX UP THE NUMBERING!!!
  615.  
  616.  
  617.  
  618.  
  619.  ***nOTE***
  620.  
  621.  tHIS FILE WAS CONVERTED FROM THE ORIGINAL GEOwRITE 2.1 FILE BY THE AUTHOR. tHE
  622.  SCHEMATIC IN GEOpAINT FORMAT HAS BEEN REDUCED INTO THE PIN CONNECTION TABLE
  623.  SHOWN ABOVE. iF YOU HAVE geos 2.0 i RECOMMEND YOU OBTAIN THE ORIGINAL arcED
  624.  FILES FROM q-lINK ("beyond512kb.sda" BY rECURSION)                            
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.