element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Experts, Learning and Guidance
  • Technologies
  • More
Experts, Learning and Guidance
Ask an Expert Forum Any interest in collaborating on a REBOOT for the Apple II?
  • Blog
  • Forum
  • Documents
  • Leaderboard
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Experts, Learning and Guidance to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 41 replies
  • Answers 1 answer
  • Subscribers 295 subscribers
  • Views 5549 views
  • Users 0 members are here
  • esp32
  • io
  • apple
  • arduino
Related
See a helpful answer?

Be sure to click 'more' and select 'suggest as answer'!

If you're the thread creator, be sure to click 'more' then 'Verify as Answer'!

Any interest in collaborating on a REBOOT for the Apple II?

barryhills
barryhills over 1 year ago

I am seeking a solution for a single pushbutton reset/reboot for the Apple II. In my volunteer work with young children (8-10 yrs old) using the Apple II they frequently want or need to reset the Apple II (we use both //e and II+). There are several obsticals to doing a clean hard reset on the Apple. The primary issues are the reset vectors in dynamic ram, the nuanced multi-finger reset options, and the fragility of the Apple II switching power supply. The kids need a one button reset for the Apple without hitting the power supply with another power-on surge in the hope they left it off long enough for the dynamic ram to "clear" and without needing to learn a multi-finger keyboard sequence.

I understand this project is a little silly, but I prefer to think of it as a small interesting technical challenges for the right person.

Here are some of the rabbit holes I have wandered....

a) I want to keep the base machine clean and thus want to avoid custom ROMs.

b) It would be "nice" to use the existing reset button on the keyboard but a tethered reset button is perfectly ok and what I anticipate will be needed.

c) I've always assumed the solution must clear memory prior to doing the clean reboot.

d) Mostly, I've assumed a small (minimal) I/O card would be the best way to cause an interrupt and pass 6502 control over to an alternate code path to clear memory and reboot. A plug-in card would also provide an electrical home for a tethered reboot button.

e) Traditional I/O cards use a small PROM or EPROM which is ok; but the current trend of using a SOC would also be ok if it makes programming and/or hardware for the new REBOOT code easier.

f) As a side note, there was a card called the "Wildcard" that had a tethered button that presented a menu when pressed. One of the menu options was "clear memory and reboot". It seems to be exactly the functionality I want but don't want a menu and don't want to hunt down a Wildcard for all of the Apples we have in our little lab.

Ideally, I would find someone who thinks a small project like this could be fun. My hope is there are lots of I/O cards, past and modern that can be borrowed from to make such a project trivial for someone comfortable with Apple II hardware. Software is my primary domain and while I am generally comfortable with hardware, getting into memory bus timing phases is beyond my skills.

Anybody think this could be fun? Any other clever considerations to accomplish my objective?

TIA

Barry

UPDATE:

A long time later this project is done.  Check out the story here...... https://csguy.org/technotes/white-whale-reboot-project/

image

  • Sign in to reply
  • Cancel

Top Replies

  • barryhills
    barryhills over 1 year ago in reply to Fred27 +4
    These kids grow up thinking knowing little more than icons on a phone. You are correct that the Apple is "my" passion and I am sharing it with them. But I would also say the simple nature of the machine…
  • Andrew J
    Andrew J over 1 year ago in reply to Fred27 +4
    Then you'd be amazed Fred. The STEM work at The National Museum of Computing involves lots of old computers - a lot is done with BBC Micros for example - as well as newer types of technology, e.g. VR,…
  • barryhills
    barryhills over 1 year ago +4
    A long time later this project is done. Check out the story here...... https://csguy.org/technotes/white-whale-reboot-project/
Parents
  • phoenixcomm
    0 phoenixcomm over 1 year ago

     barryhills image Oh, well, some folks are blind, others are lazy, Google Image Search revealed this image (on the right). I would use a double-pole push-button. Now you have three connections:

    • Common is wired to the CPU's pin 40
    • ON is wired to a 10k resistor to p5v (this keeps the pin from flopping around
    • OFF is wired to ground.

    You will have to, do some investigation, and trace the wire on the PCB as there may be a pull-up on pin 40 already, If there is remove the resistor. 

    One word of warning.... NEVER SOLDER TO THE CPU!! I believe they were socketed. 

    ~~ Cris H. 

    Oh BTW I also have the Programers Reference & Application manuals

    let me know If you want copies there in pdf format I will have to hang them on my server. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • barryhills
    0 barryhills over 1 year ago in reply to phoenixcomm

    I am familiar with the 6502 pin definitions. The challenge has little to do with the 6502 and everything to do with the reset and power-up logic (in ROM) for the APPLE II.  I tried to make this clear.  This is an idea specifically for the Apple II. The 6502 reset simply transfers control to a routine in ROM where a multi step ridiculous flow of logic triggers various forms of soft reset and is reliant on the contents of vectors in RAM.  Dynamic Ram does not fade quickly like static ram which is why I imagine the solution will require a routine to clear memory or at least the reset vectors.

    As an aside, I posted on Element 14 in search of thoughtful professionals, enthusiasts, and experts.  I never expected the very first reply to my very first post to include  snarky BS.  If I wanted snarky I would have posted on Reddit, Twitter, or Facebook.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • PPE_COOP
    0 PPE_COOP over 1 year ago in reply to barryhills

    Funny you should say "As an aside, I posted on Element 14 in search of thoughtful professionals, enthusiasts, and experts.  I never expected the very first reply to my very first post to include  snarky BS.  If I wanted snarky I would have posted on Reddit, Twitter, or Facebook." I recently had a similar experience. Eventually the real community began to respond but one of the first comments was meant to intimidate and shame me for posting. Sorry I can't help with your current project. I just thought I would help drive your other point home.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • shabaz
    0 shabaz over 1 year ago in reply to barryhills

    Cris is being humorous, you'd recognize it after seeing more messages over time (You can see that Cris also offered to provide you with reference manuals, it's actually a friendly response, i.e. It's easy to accidentally misinterpret the tone from text alone basically, is what I'm trying to say.

    PPE_COOP's situation was actually different, people had comments on technical points solely in that case, and probably saved PPE_COOP effort and cost in patenting something (which is what they originally referred to) that wouldn't have helped them.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • phoenixcomm
    0 phoenixcomm over 1 year ago in reply to barryhills

    imagebarryhills  Ok, I'm a little snarky, but your question centered around a manual reset of sorts, I got answers in 2 attempts from your friend Google. Your question is at best ambiguous. Yes, I have a long history with the 6800 family, but not much on the 6802, as I thought it was a bad joke, I owned the 6800 Micro Module. And I had it running in an S100 chassis, but obviously, It plugged into its own connector.  Here are two pages from the 6802 Technical Data. BTW I also have this book as well, So let me know If you want them. ~~Cris

    AFTER THOUGHT: you might also play with the NMI line. I also have to modify my previous answer about a switch, If you read the spec below they claim It must be held down for some number of Clock Cycles. without bounce. ~~ 

    imageimage

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • phoenixcomm
    0 phoenixcomm over 1 year ago in reply to barryhills

    imagebarryhills  Ok, I'm a little snarky, but your question centered around a manual reset of sorts, I got answers in 2 attempts from your friend Google. Your question is at best ambiguous. Yes, I have a long history with the 6800 family, but not much on the 6802, as I thought it was a bad joke, I owned the 6800 Micro Module. And I had it running in an S100 chassis, but obviously, It plugged into its own connector.  Here are two pages from the 6802 Technical Data. BTW I also have this book as well, So let me know If you want them. ~~Cris

    AFTER THOUGHT: you might also play with the NMI line. I also have to modify my previous answer about a switch, If you read the spec below they claim It must be held down for some number of Clock Cycles. without bounce. ~~ 

    imageimage

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
  • barryhills
    0 barryhills over 1 year ago in reply to phoenixcomm

    The following is a layman's explanation of the hardware problem from the perspective of the Apple II specific issues.  

    Yes, NMI from an IO card interrupts the 6502 and causes a JMP to the interrupt handler in system ROM.  The interrupt handler determines which slot caused the interrupt, and yes about this time HALT is asserted....  but I am vague on who and why HALT is asserted.  In my experiments it is quite possible I did not hold HALT long enough as you suggest.  The IO card has a small amount of rom which is mapped into the memory address space available to the 6502.   The interrupt handler jumps to the program in the IO card p/rom.  IO cards in the Apple II have full access to signals for address, data, reset, halt, nmi, as well as the 2 DMA clocks for managing memory, and more.  The timing of the DMA clocks is fairly tight.  A P/ROM can sit directly on the address bus and be fast enough to play well with the timing of the DMA phases.  IO cards that need to manage DMA have generally adopted 2 different approaches to control modern Apple II IO cards; they have either used an FPGA or a PiPico.  Arduino for example is not fast enough.   FPGA is way outside my skillset.  PiPico is interesting because it's fast enough to do DMA and can easily be reprogrammed. The ONLY thing I need to do is have the 6502 execute a small program from the IO card p/rom to clear memory and JMP.  An eprom (or PiPico emulating rom) is all need plus perhaps some glue logic.  The Wildcard is a good example of how simple this should be....but I want to do MUCH less than the Wildcard (see link in this thread).  I have done enough homework to be fairly certain the hardware is a somewhat pedestrian challenge for the right person (which I am not).  Thats it for the hardware (I think).  

    BUT it's what Apple did to the SOFTWARE logic (in system ROM) for reset/reboot that is the part that really annoys me and the motivation for the project.  There are several kinds of reset using different combinations of keys, not worth explaining except to say a hard reboot is not one of the options and certainly not with 1 finger.  The part that annoys me the most is that any programs is allowed to load their own reset vector into memory (DRAM) which is then used by the reset logic in system ROM.  The lore is Apple did this to prevent users from exiting a  program and to bolster copy protection.  As an aside the Wildcard works around this by taking full control of the 6502 and its memory.  This is why a simplified modern Wildcard is an appealing approach to me.  So back to hardware for a minute.  The reset vector in DRAM decays at an unpredictable (slow) rate and on PON the reset vector is frequently found to be in a corrupted state.  A subsequent attempt at one of the several reset sequences can easily send you off into never never land.  This is why one of the features of the Wildcard is EXACTLY what I want, they implemented a "clear memory and reboot" option that runs from the PROM in the Wildcard.

    I know of S100 but have never owned a system with an S100 bus.  My first computer was the Apple II in 1978.  Actually not true, my first computer was a Bendix G15 acquired in 1973.  It ran in my garage for 5 years till mice made a nest out of the hand wired backplane.  I was in school during the peak S100 days and focused more on software.  

    I appreciate your offer of documentation but I think I have all the documentation imaginable on the 6502 and the Apple II architecture.  But 50% of it is over my head and I certainly lack the tools to debug any significant hardware.  Especially the DMA stuff.   It may  be the case that I am making this harder than it needs to be since my proposed project ONLY is used to run a small program that clears the system DRAM then JMP to the reboot routine in system ROM.  

    As for snarky, forget it.  As for being ambiguous, the original post came from the perspective of an Apple II enthusiast and some assumptions about the Element14 community so perhaps that is why parts of it seems vague.

    cheers

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • phoenixcomm
    0 phoenixcomm over 1 year ago in reply to barryhills

     barryhills again Google to the rescue.  https://www.applefritter.com/content/apple-ii-hard-reset topic #3 ~~ Cris H. 

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • barryhills
    0 barryhills over 1 year ago in reply to phoenixcomm

    thank you.  yes, I am on that thread (twice).  The OP opted for a solution using the ROMX product.  The spirit is certainly aligned with mine but they have had issues getting the ROM code right and I believe this approach requires a different ROMX image for each different system ROM family. I think my IO card idea is a more universal solution that would drop into any Apple II.  I need to look at the ROMX based solution more deeply.  The advantage is of course the hardware is done but I would be turning a pretty nice product into a 1 trick pony in my environment.  I'd really like to ROM agnostic.  

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube