      ====================================================================
	DR  6502    AER 201S Engineering Design 6502 Execution Simulator
      ====================================================================

      Supplementary Notes                                   By: M.J.Malone

      
		     Trouble Shooting the 6502 Project Board
		     =======================================
      
      Quick Checks
      ============
      
	   There is only one important thing to keep in  mind  when  faced
      with  a  non-functioning  6502 board.  The board is just a series of
      traces.  The errors in the trace pattern are  well  known  and  once
      fixed  using the jumpers described in the project board notes, their
      is no reason for a board not to work except for reasons of software,
      power, bad chips and wiring mistakes.  The quick  diagnosis  methods
      and quick are given below.
      
      
      A Software Error
      ----------------
 
	   Many  times  when  a  design group is trying something the test
      fails, the software person  is  blamed.   After  a  recheck  of  the
      program  source code, the programmer says confidently, "Just look at
      this code, it is so simple how could there be an error?  It must  be
      'the  board'  !".  After several hours the software person discovers
      that they have typed:
 
	   lda DDRA_Port_Mask    ;  The mask for the I/O pattern of Port A
	   sta DDRA
 
      	instead of:
 
	   lda #DDRA_Port_Mask   ;  The mask for the I/O pattern of Port A
	   sta DDRA
 
      If the bit pattern 'DDRA_Port_Mask' were interpreted as  an  address
      as in the first example, of course nothing works.
 
	   There  are  many  such  one  character  errors  that  are  very
      difficult to see late at night on the fourth  check  of  the  source
      code  especially  when  the  checker is convinced there is no error.
      The solution is to have a test EPROM around at all times that checks
      all components of the computer.  Whenever a dispute of 'Is the error
      in hardware or software?' arises simply plug in the test  EPROM  and
      see if the board performs as expected or not.  An example test EPROM
      program  is  given in BOARDTST.ASM.  If your board has failed such a
      test as the one given in BOARDTST.ASM then continue.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                                            page 2 
 
      Bad/No Power
      ------------
 
	   Check the power supply, batteries and connections.  Check  WITH
      A  VOLTMETER  the  actual  voltage  being produced by the 7805 power
      regulator.  The +5 volt trace is the one connected to the  regulator
      pin  next  to  the edge of the board.  This trace runs the length of
      the board and has connections to several 10K resistors and at  least
      one  capacitor.   The ground trace is connected to the middle pin on
      the power regulator.  If the voltage is greater than 5  volts  (like
      maybe 7-12 volts) see: 'Over Voltage' below.  If the voltage is less
      than  5  volts (like maybe 0-4 volts) see 'Under Voltage' below.  If
      the voltage is 5 +/- .1 volts then proceed.
 
 
      Bad Chip
      --------
 
	   It is possible that you have a bad chip.  First check that your
      check EPROM is good  by  checking  it  on  someone  else's  computer
      board.   If  the EPROM is OK then put it back in the non-functioning
      board and proceed to swap chips with the  working  board  ONE  AT  A
      TIME.   If  at  some  time  the  working  board stops working or the
      non-functioning board checks out you can determine which of and  how
      many bad chips you have.
 
 
      Wiring Mistakes
      ---------------
 
	   Probably  the fastest way to check if there is a wiring mistake
      is to have someone else look  at  your  computer  board,  preferably
      comparing  it  to  a  functioning  board.  Check the EPROM jumper is
      correct and in place and measures 5 volts.  Check that there are two
      jumpers near the 74xx04.  Check that one has a polarity  of  +5volts
      and  the  other  GND.  Check that there is a jumper near the 74xx74.
      Check that this jumper has a voltage of GND.  Check that there is  a
      jumper  on  the  bottom  of  the  6502 and that it measures 5 volts.
      Check the polarity of the tantalum capacitors.
 
 
      Trouble Shooting Procedure
      ==========================
 
	   Though all non-functioning computers will fail to function from
      one of the above causes, a more detailed trouble-shooting  procedure
      will  be  developed.   After this several symptom-solution scenarios
      will be presented.
 
      1) Connect the computer board to +12  and  GND  connections  on  the
      power  supply.   Place  you  finger  on  the  back of the 7805 power
      regulator and turn on the power supply.  If  the  regulator  becomes
      uncomfortable  to  touch  then  go  to 'High Current Drain'.  If the
      regulator does not become hot then continue.
 
 
 
 
 
 
 
 
 
 
                                                            page 3 
 
      2) First we will check the output of the 2 MHz clock circuit.  Check
      pin  #6 on the 74xx04 chip with an oscilloscope set to 1 microsecond
      per division and 1 volt per division  with  the  GND  level  at  the
      bottom  of  the  screen.   If  the  pin shows an AC signal that is a
      rounded square wave of 2 MHz  frequency  (two  complete  cycles  per
      division)  then  advance  to  step  5.  If the signal is at either 0
      volts or 5 volts (almost exactly) then go to step 3.  If the  signal
      is between .7 volts and 2.7 volts then go to 4).
 
      3)  You  are  at  this  step  because  the clock oscillator which is
      supposed to be astable has latched into the high or low state.  This
      is simply not possible if everything is connected and the 74xx04  is
      even  close  to  working.   Check the connection of the crystal, two
      resistors and the .1  microF  capacitor.   Try  also  replacing  the
      74xx04 chip.
 
      4) You are at this step because your clock signal is not starting by
      itself but instead is sitting in an equilibrium state.  We will  try
      disturbing  its  equilibrium  a bit.  Touch the leads of the crystal
      with your finger while continuing to probe the 74xx04 chip.   If  an
      AC  signal develops then the solution to this problem is to turn off
      the power, connect a 100-1000pF capacitor from the square  GND  area
      to  one  of  the  leads of the crystal and then power up.  If the AC
      signal develops  immediately  then  continue  to  step  5  otherwise
      increase the capacitance and try again.
 
      5) You now have a functioning 2 MHz clock unit.  Probe  pin  #37  of
      the  6502.   The  signal should be a square wave of frequency 1 MHz,
      one cycle per division.  If this is the case advance to step 8).  If
      the signal is a square wave but at a frequency of 2 MHz then  go  to
      step 7) otherwise continue to step 6).
 
      6)  You  are  here  because  your  74xx74  chip  is   probably   not
      functioning.   Check  it  by  swapping  the  chip and also check the
      jumper near the 74xx74 chip that it is 0 volts.   Try  removing  the
      6502  chip  and  see  if  the problem persists.  If the clock signal
      becomes normal then perhaps the 6502  is  blown  or  the  74xx74  is
      blown.
 
      7)  You  are  here  because  you  have  the  2  MHz clock problem as
      described in the assembly notes.  Try the solution as  described  in
      the printed notes you received with your computer board.
 
      8)  You  have  a  proven  CPU  clock.   Next test to see if the 6502
      properly resets.  Check the voltage on pin #40 of the 6502 using  an
      oscilloscope.   The  voltage should be 5 volts.  It is normal to see
      small spikes in the 5  volt  level  of  approximately  +/-.3  volts.
      Press  the  reset  button and check that the voltage is 0 volts.  If
      the voltage is the opposite to that expected  then  it  is  probably
      that  you have a momentary open switch not a momentary closed switch
      as specified.  If this is the case then  you  can  still  test  your
      computer  temporarily  by  holding  the  reset switch but you should
      replace the switch at the earliest opportunity.
 
 
 
 
 
 
 
 
 
 
 
                                                            page 4 
 
      9) You now have a proven Reset circuit.  Next test  to  see  if  the
      6502  is  executing  instructions  by probing the SYNC signal of the
      CPU.  The SYNC signal goes high every time the CPU fetches an opcode
      of program.  The SYNC signal can be monitored by probing pin  #7  of
      the 6502.
	   Note:  to  get the pulse pattern to be stationary on the screen
      and not covered with ghosts and flickers, set the time  base  on  10
      microseconds  per  division and then adjust the time base 'cal' knob
      slightly until the pattern locks in with the fewest ghosts.  Set the
      times 10 sweep magnification on the time base.  The time base should
      be effectively just a bit more than 1 microsecond per division.   By
      adjusting  the  horizontal  position  knob, you will be able to scan
      through the series of pulses.
	   The  opcode  fetch will last 1 microsecond.  This pulse will be
      followed by at least 1 microsecond low.  NOP, LDA #, TAY,  BNE  (not
      taken),  SEC  are all instructions that will take two machine cycles
      (microseconds) and will be seen on the  oscilloscope  as  one  cycle
      high  followed  by one cycle low.  The longest instructions (cycles)
      are RTS (6), BRK (8) and Reset (6).  On average,  most  instructions
      will  show 3 or 4 cycles since all non-indexed memory fetches, jumps
      and arithmetic or logical statements are 3 or 4 cycles.  It may seem
      for very long programs that it would be impossible to use this  sort
      of count the cycles type analysis but it is usually not.  Since most
      programs have one small segment of the code that is executed most of
      the time (like the innermost nest of a delay loop) it is possible to
      assume  that  most  of what you see on the screen that small part of
      the program with the ghosts being the other parts  of  the  program.
      By  this  method  it  is  possible  to determine whether the 6502 is
      executing the program intended or not.
 
 
      Summary
      -------
 
	   If  the above procedure does not lead to a cause of the problem
      then the recommended procedure is to trim down the  program  to  its
      minimum, and attempt chip swapping again paying particular attention
      to  the  VIA's,  CPU, EPROM and RAM.  It may also be possible that a
      poor soldering job may have left some connection not connected.   If
      this is suspected then it is recommended that the board be inspected
      by someone, preferably someone else, and suspicious areas be touched
      up.
	   Your  computer  board  will  work  eventually.  If there are no
      missing jumpers and no bad chips the test EPROM must check out.
 
 
      Symptoms/Cures
      ==============
 
 
      Symptom: Over Voltage
      ---------------------
	   First there are three possible  causes  for  this.   The  power
      regulator  is  designed  to  produce  at least 5 volts.  If there is
      another source of voltage on the board of greater than 5 volts,  the
 
 
 
 
 
 
 
 
 
                                                            page 5 
 
      system  voltage  may rise above 5 volts.  This is commonly caused by
      some user circuit or input to a CMOS VIA.  The obvious remedy is  to
      turn  off  all  external  voltage  sources  and  recheck  the system
      voltage.
 
	   The second problem may be simply that the +12 volt power supply
      has been mistakenly connected to  the  +5  volt  connection  on  the
      bottom of the circuit board.
	   The  third  possible  problem may be that the 7805 is blown and
      not operating properly.
	   The over voltage condition is very  serious  and  can  lead  to
      destruction of ALL of the chips in the system (the $35 mistake).
 
 
      Symptom: Under Voltage
      ----------------------
	   If  the  voltage  in  the  system  is  low  and  the 7805 power
      regulator is not getting uncomfortably warm then this can only  mean
      that  the  7805  is  defective  or  is not properly connected or the
      measurement of voltage is not being done properly.  If the  7805  is
      getting  uncomfortably  hot  to  touch  then  go on to 'High Current
      Drain'.
 
 
      Symptom: High Current Drain
      ---------------------------
	   This assumes that the VIA's are not connected to any  circuitry
      which  may be causing large currents to be drawn from the board.  If
      the VIA's are connected to external circuitry then  disconnect  them
      and begin again.
	   If  NMOS  6502  or  6522  chips have been used then it is quite
      possible that there is nothing wrong at all.  An  computer  with  an
      NMOS 6502 and two NMOS 6522s can easily draw 1 ampere as compared to
      0.024  milliamperes  (yes a factor of 40!) for an all CMOS computer.
      This extra current draw is enough to make any 7805 a bit  hot.   For
      testing,  it  is  possible  to  bypass  the  regulator  and feed the
      computer board from a high current supply for testing  purposes  but
      it  is recommended that the NMOS components be replaced with CMOS at
      the earliest possible opportunity.  It is entirely possible that the
      board may not work at all with too many NMOS components  because  of
      voltage  drops  over the lengths of the fine traces used to make the
      circuit.
	   This can be caused by a bad chip, a short circuit in the wiring
      or a bad tantalum capacitor.  To check to see if a bad  chip  is  to
      blame,  try  removing  the  chips  one  by one and trying again each
      time.  If the current drain disappears then the  last  chip  removed
      may  be the cause.  Another troubleshooting method recommended is to
      bypass the 7805 and connect a high current 5 volt supply directly to
      the 5 volt rail of the board.  Turn on the power and  quickly  check
      all chips with the back of a finger (because it is most sensitive to
      heat)  to  look for one that may be heating.  NMOS and TTL chips may
      become  warm  but  will  never  be  hot  under   normal   operation.
      Transistors  and  regulators  may  become  hot  but  will  never  be
      uncomfortable to touch.  If none of the chips  seem  to  be  heating
      then  leave  the  power  on  and check the voltage and current being
 
 
 
 
 
 
 
 
 
                                                            page 6 
 
      output by the supply.  If the supply voltage is very close  to  zero
      then there is likely a short in the wiring (see next heading).  Wait
      a short time and look for smoke (big white clouds of smoke) from one
      of the tantalum capacitors.  If one of the capacitors is bad it will
      progress  from  smoke  to flames quickly so stand by the off switch.
      As soon as heat is detected from a chip or smoke  from  a  capacitor
      shut  off  the  supply  and  replace the component.  See if there is
      still a problem with a high current drain.
 
 
      Symptom: Unlocatable Short Circuit
      ----------------------------------
	   Sometimes there is an unlocatable short  circuit  somewhere  on
      the  board, usually the result of a poor soldering job or a resistor
      or capacitor lead bent over and touching another area.  If the board
      has been thoroughly inspected by several people and the error is not
      obvious then there is another suggested course of action.
	   Remove all the chips from the board and  bypass  the  regulator
      with a high current variable supply.  Adjust the current limiting or
      the voltage until the current flowing through the board is something
      between  .05  and  .1  amperes.   Using  a  voltmeter  set  to  read
      millivolts, measure the voltage across the  power  supply.   If  the
      voltage is too great to be read in millivolts do not become alarmed,
      this is actually better.
	   The idea here is than any trace  that  has  a  current  flowing
      through  it  also has a small voltage drop along its length.  If you
      start where you have connected the -ve lead of the power supply  and
      test  all paths leading from it there will be one with a significant
      voltage difference in millivolts along some test length.  This  path
      is  the  one that leads to the short circuit.  Continue to leap frog
      along until you find your way back to the  +ve  lead  of  the  power
      supply.   Somewhere on the path you will discover a wrong connection
      and there is your short.
