[comp.sys.apple2] 6502 Startup Process

FREE0066@VMD.CSO.UIUC.EDU (Scott Alfter) (05/03/90)

I have a 6502 lying around now from when I put an enhancement kit in my IIe,
and I was thinking of possibly putting it to use outside the Apple--maybe as
a calculator that does logic functions or something.  (It would be handy for
someone like me who does lots of machine-level work, and no, a 6502 would not
be improperly used in a calculator--look at what Hewlett-Packard does with
the 6502 and (more recently) the 65816.)  There's only one problem I can think
of--how does the thing start up?

Every day for the past five years I've taken the 6502's startup process pretty
much for granted when it throws "Apple ][" (or more recently, "Apple //e")
across the top of the monitor and starts loading a DOS in from the drive.  How
does the processor get to that point, though?  I know what ROM routines are
responsible for the boot process, but how does the 65(C)02 know where those
routines are, and how does it call them?  I don't think this is something the
_Apple_IIe_Technical_Reference_Manual_ covers, as it is not a IIe-specific
thing, but is related more to the processor than anything else.

Scott Alfter-------------------------------------------------------------------
  Bitnet: free0066@uiucvmd             _/_ Apple II: the power to be your best!
Internet: alfter@mrcnext.cso.uiuc.edu / v 
          cs122aw@ux1.cso.uiuc.edu   (    (             A keyboard--how quaint!
          saa33413@uxa.cso.uiuc.edu   _^_/                    --M. Scott, STIV

wogg0743@uxa.cso.uiuc.edu (05/04/90)

You have to rig it so when the power comes on, the processor gets a
RESET (you bring high the reset line, I think).  You could do this
simply by providing yourself with a button that completes a circuit
(thus giving you a reset button into the bargain, but also making this
part of the manditory start-up process) or else rig a more complicated
circuit to do this once ever time the power comes on (like Apple uses)

The other half of it is that you have to use a ROM at the top of memory
to hold the interupt vectors (including the one for reset).  Point the
reset vector to your startup code.

John_A_Pham@cup.portal.com (05/05/90)

wogg0743@uxa.cso.uiuc.edu writes:

>You have to rig it so when the power comes on, the processor gets a
>RESET (you bring high the reset line, I think).  You could do this
>simply by providing yourself with a button that completes a circuit
>(thus giving you a reset button into the bargain, but also making this
>part of the manditory start-up process) or else rig a more complicated
>circuit to do this once ever time the power comes on (like Apple uses)
 
Not quite, reset on the 6502 and 658xx require that reset must be held low
for at least two clock cycles after Vdd reaches operating voltage from
a power down.  Also, you don't need to use a fancy 555 for generating 
a reset upon power up,  try a resistor, cap and a diode (a switch for those
hardware/software problems)
.
     +5v----------+--+             
                  \  | 
                  /  - 
             |    \  ^  
            ---   |  | 
      Gnd --o o---+--+---------> /reset
                  |
                 ===
                  |
                 Gnd           you can use a 10uF cap and a 10K ohms resistor 
                               here 
Legend === capacitor
      /\/  Resistor
     ->|-  diode
      |
     ---   toggle switch
    -o o- 

sb@pro-generic.cts.com (Stephen Brown) (05/06/90)

In-Reply-To: message from FREE0066@VMD.CSO.UIUC.EDU

Scott Alfter asks how the 6502 starts up. It starts up via the RESET vector at
$FFFC, $FFFD.  I believe the 65816 powers up in Emulation mode, so you'd find
its reset vector at 00/FFFC, 00/FFFD. Note that the CPU has to be reset when
its turned on, to put the processor into a known state.

UUCP: crash!pro-generic!sb
ARPA: crash!pro-generic!sb@nosc.mil
INET: sb@pro-generic.cts.com

cs17058a@VTTCF.CC.VT.EDU (The Superconductor) (05/07/90)

This message is empty.