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
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • 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
Ben Heck Featured Content
  • Challenges & Projects
  • element14 presents
  • element14's The Ben Heck Show
  • Ben Heck Featured Content
  • More
  • Cancel
Ben Heck Featured Content
Forum Apple ][
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Ben Heck Featured Content to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 1 reply
  • Subscribers 41 subscribers
  • Views 154 views
  • Users 0 members are here
  • Single Board Computer
Related

Apple ][

Former Member
Former Member over 10 years ago

Problem to be solved is built in Apple ][ sound is lousy. Goal would be without using a sound card but instead using the signal to the Apple speaker get (how about 8-bit) audio. Reading $C030 toggles the Apple speaker. You can't write a 1 or 0 you can only toggle and don't know the state. It would be nice to have a 8-bit number and a small bit of 6502 code that would send the bits out the speaker wire. So have a different interval between toggle for 1 and 0. Some simple circuit that would clock 1 and 0 into a shift register. At the end those 8-bits are input to a 8-bit DAC and then to a different speaker(not current apple speaker). Also always send even number of toggles so original apple speaker state is still there and is un affected. Apple speaker still works the same so software using it still sounds the same... And low audio frequencies hopefully don't mess up the bit shift circuit. Audio sounds frequency is very very low compared to rates used to send out the 1's and 0's.

 

 

Also do this we cheap parts available in 1979 so after this all Apple owners will be thinking... Why didn't we do that way back then or why didn't someone sell one of those so it would of become standard to have decent sound on your Apple instead of the not so great click the speaker sound. Probably some RC circuit which will hold a 1 or 0 logic level for a period of fastest 6502 code to send the shorter toggle period for 1 or 0 but the longer period would let it reliably be read as the opposite bit. Hmmm I guess should try to do this to get my thoughts organized.

 

 

I think first Apple II I saw was at Computer Land of Los Altos when it appeared where the compucolor used to sit.

-Fred

  • Sign in to reply
  • Cancel

Top Replies

  • jack.chaney56
    jack.chaney56 over 10 years ago +1
    Just a few questions to ask about your implementation. Did you incorporate the functionality of the 6522 chip in your system? If you did you should be able to use the timer interrupt to generate your toggle…
Parents
  • jack.chaney56
    jack.chaney56 over 10 years ago

    Just a few questions to ask about your implementation.  Did you incorporate the functionality of the 6522 chip in your system?  If you did you should be able to use the timer interrupt to generate your toggle event.  Then by using the instructions:

     

         LDA     SPKR_ADDR

         XOR     #BIT_TO_FLIP

         STA     SPKR_ADDR

     

    I think that is the right syntax (don't have my old 6502 books). If you do that in the interrupt, along with resetting the timer value to trigger the next event, you should be able to create a nice on/off toggle on the speaker line.  By changing the length of time for the event timer, you change either the frequency or the pulse width.  By varying the pulse width and because the speaker (at least in the old ones) is an RC circuit, you should be able to vary the timbre of the tone as well.  This is the trick that was used to generate "speaking" PCs back in the day.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • jack.chaney56
    jack.chaney56 over 10 years ago

    Just a few questions to ask about your implementation.  Did you incorporate the functionality of the 6522 chip in your system?  If you did you should be able to use the timer interrupt to generate your toggle event.  Then by using the instructions:

     

         LDA     SPKR_ADDR

         XOR     #BIT_TO_FLIP

         STA     SPKR_ADDR

     

    I think that is the right syntax (don't have my old 6502 books). If you do that in the interrupt, along with resetting the timer value to trigger the next event, you should be able to create a nice on/off toggle on the speaker line.  By changing the length of time for the event timer, you change either the frequency or the pulse width.  By varying the pulse width and because the speaker (at least in the old ones) is an RC circuit, you should be able to vary the timbre of the tone as well.  This is the trick that was used to generate "speaking" PCs back in the day.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
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 © 2025 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