This article is from the Apple II Programming FAQ, by Jeff Hurlburt with numerous contributions by others.
All Apple II's come with some version of BASIC installed in-ROM on the motherboard. The original Apple II's have Integer BASIC. Starting with the II+ model, all Apple II's have floating-point Applesoft in-ROM. Owners of early Apple II's can load in Applesoft or plug in a card with Applesoft ROMs. All Apple II's include a "monitor" program in ROM. Entering CALL-151 from the BASIC prompt puts you 'in' the monitor. Here you can view and change values in key memory locations and enter machine language routines. Besides these built-in languages, many others can be loaded in. There are several good places on the net to find out about programming: Apple II and BASIC programming books on-line http://www.1000bit.net/support/manuali/manuali.asphttp://www.atariarchives.org/http://apple2.callapple.org/manuals/index.htmlhttp://www.apple-iigs.info/home.htm (mostly English, some French) http://www3.telus.net/waynes/http://linux.cis.monroeccc.edu/~paulrsm/6502/http://www.chez.com/apple1/Apple2cDskArchive/index.htm (in French). Apple II comp.sys.apple2 newsgroup news:comp.sys.apple2 Frequently Asked Questions (FAQs) distributed worldwide via USENET; available as html and Text: http://home.swbell.net/rubywand/A2FAQs1START.htmlhttp://apple2.org.za/gswv/a2zine/faqs/ftp://ground.ecn.uiowa.edu/apple2/Faqs/ftp://ground.ecn.uiowa.edu/apple2/Faqs/Formatted/ Apple II comp.sys.apple2.programmer newsgroup news:comp.sys.apple2.programmer Frequently Asked Questions (FAQs) distributed worldwide via USENET; available as html and Text: http://home.swbell.net/rubywand/csa2pfaq.htmlftp://rtfm.mit.edu/pub/usenet/comp.sys.apple2.programmer/ Apple II DOS and ProDOS mini manual http://home.swbell.net/rubywand/Csa2DOSMM.htmlhttp://apple2.org.za/gswv/a2zine/faqs/Csa2DOSMM.txt Apple II game authoring links http://home.swbell.net/rubywand/A2FAQs7GAMESITES.html#004 Apple II Textfiles http://www.textfiles.com/apple/ Applesoft BASIC FAQs on 'Another Computer Museum http://www.xs4all.nl/~fjkraan/comp/apple2faq/app2asoftfaq.html Asimov ftp://ftp.apple.asimov.net/pub/apple_II/documentation/ Ground Ground: /MiscInfo/Applesoft/ Ground: /MiscInfo/Programming/ Ground: /apple8/Beagle.Oldies/ Ground: /MiscInfo/ GS WorldView http://apple2.org.za/gswv/a2zine/Docs/ Terry Allen's Home of the Apple II- manual reprints, programming info http://www.callapple.org/apple2/ LandSnail Apple II References- Applesoft, Integer BASIC, DOS 3.3, and ProDOS commands with brief descriptions. http://www.landsnail.com/a2ref.htm Magazine and on-line 'zine issues and back issues (see Publishers) Major Apple II Sites- many Apple II links http://home.swbell.net/rubywand/A2FAQs4MAJORSITES.html Niel Parker's Home Page- Apple IIgs progamming information http://axis.llx.com/~nparker/a2/ Paul Schlyter's Apple II Stuff- compilers, S-C assemblers, utilities, Assembly Line disks, ... http://www.stjarnhimlen.se/apple2/ Ron Kneusel's 6502 page- 6502 info, assem tutorials, software http://www.geocities.com/oneelkruns/65index.html The Fridge- 6502 info, tutorials, assembly language routines http://www.ffd2.com/fridge/www.6502.org- 6502 info, tutorials, assembly language routines http://www.6502.org/ Be sure to keep a look out for Apple II books, charts, software packages, etc. when you visit used book stores, swap meets, school sales, ..., or peruse comp.sys.apple2 marketplace. Applesoft BASIC The #1 Applesoft information source is the Basic Programming Reference Manual from Apple. Here are some other good Applesoft materials to look for ... Apple II User's Guide by Poole, Martin, and Cook Note: Third Edition (Apple II User's Guide for APPLE II Plus and APPLE IIe) is completely revised to include ProDOS coverage Apple II Reference Manual from Apple Peeks, Pokes, and monitor routines info (see below) DOS & ProDOS books (see below) GSoft BASIC (New IIgs BASIC from Byte Works) Learning to Program in GSoft BASIC by Mike Westerfield (Byte Works) Assembly Language and Machine Language Coding Machine coding is when you enter 6502 (65816, ...) instructions directly-- as in going to the Apple II monitor (CALL-151) and typing in hexadecimal codes at specific addresses, like 300:A9 7F (instruction to load Accumulator with the value $7F entered at address $300). Assembly coding substitutes easy-to-remember text for the numeric codes-- as in LDA#7F to load the Accumulator with the value $7F. Assembly coding is done using assembler software (like Merlin or Orca/M). A major advantage of assembly coding is that routines and other places in your program can be tagged with text labels and referenced this way in your program. The assembler software figures out things like Jump addresses. Assembly Lines: The Book by Roger Wagner Programming Manual (for 6502 from Mos Technology, 1976) What's Where in the Apple II? by William F. Luebbert Beagle Bros "Peeks, Pokes, and Pointers" (poster) Programming the 65816 Including the 6502, 65C02, and 65802 by David Eyes and Ron Lichty 65816/65802 Assembly Language Programming by Michael Fischer Other Languages Apple Pascal: a hands-on approach by Luehrmann & Peckham Learning to Program in C by Mike Westerfield (Byte Works) Learning to Program in Pascal by Mike Westerfield (Byte Works) Logo Plus manual from Terrapin HyperCard IIGS Script Language Guide (Apple/ Addison-Wesley) DOS, ProDOS, and GS/OS The DOS Manual from Apple Beneath Apple DOS by Worth & Lechner Beneath Apple ProDOS by Worth & Lechner Supplement to Beneath Apple ProDOS For ProDOS8 (v1.2,1.3) by Worth & Lechner ProDOS Inside and Out by Doms and Weishaar ProDOS Technical Reference Manual (Apple/ Addison-Wesley) Apple IIGS GS/OS Technical Reference (Apple/ Addison-Wesley) Apple IIGS GS/OS Device Driver Reference (Apple/ Addison-Wesley) Apple IIGS System 6 User's Reference (Apple/ Addison-Wesley) The System 6 Book by Jerry Kindal (Quality Computers) Apple IIGS ProDOS 8 Reference (Apple/ Addison-Wesley) Apple IIGS ProDOS 16 Reference (Apple/ Addison-Wesley) Apple IIGS Toolbox Reference v. 1-3 (Apple/ Addison-Wesley) Exploring Apple GS/OS and ProDOS 8 by Gary Little Toolbox Programming in C by Mike Westerfield (Byte Works) Toolbox Programming in Pascal by Mike Westerfield (Byte Works) One of the best ways to learn programming is to find some old game you like and experiment with customizing it. This works especially well for learning Applesoft BASIC and machine language coding. If your Apple II is a 64k IIe or later machine, be sure to get Program Writer. It's a vintage Applesoft program editing utility for DOS 3.3 or ProDOS from Beagle which makes writing and debugging BASIC programs much easier: http://apple2.org.za/gswv/a2zine/Utils/ Ground: /apple8/Beagle.Oldies/ For 48k or larger II+, check out Global Program Line Editor: ftp://ftp.apple.asimov.net/pub/apple_II/images/utility/programming/ --Rubywand, Terence J. Boldt, Tony Cianfaglione, Steve Sanders, Wayne Stewart, Charles T. Turley