This article is from the Apple II Programming FAQ, by Jeff Hurlburt with numerous contributions by others.
When it comes to writing compact fast-executing code, knowing
which Zero Page locations are available is essential information
for assembly language programmers.
The chart here uses information from Apple's Apple II technical
references, Beneath Apple DOS (by Worth and Lechner), and
Exploring Apple GS/OS and ProDOS 8 (by Little). It shows which
Zero Page locations are used by the Monitor, Applesoft BASIC,
Integer BASIC, DOS 3.3, ProDOS, and ProDOS BASIC.SYSTEM.
Apple II Zero Page Usage
Lo Nibble of Address
Hi
Nib 0 1 2 3 4 5 6 7 8 9 A B C D E F
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
0 | A~ A~ A A A A - - - - A A A AI A A
1 | A A A A A A A A A A A A A A - M*
2 | M M M M M3 M MA3 MA3 M3 M3 M3 M3 MA3 MA3 M3 MA3
3 | MA M MA MA3 M M3 M3B M3B M3B M3B M~ M~ MA3~MA3~MA3~MA3~
4 | M3~ M3~ M3~ M3~ M3~ M3~ M3~ M3~ M3~ M3~ I3~ I3~ I3~ I3~ M~ M
5 | MA MA MA MA MA MAI AI AI AI AI AI AI AI AI AI AI
6 | AI AI AI AI AI AI AI AI3 AI3 AI3 AI3 AI AI AI AI AI3
7 | AI3 AI AI AI3 AI3 AI AI3 AI AI AI AI AI AI AI AI AI
8 | AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI
9 | AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI
A | AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI3
B | AI3 AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI
C | AI AI AI AI AI AI AI AI AI AI AI3 AI3 AI3 AI3 I I
D | AI AI AI AI AI AI AI3 I AI3 AI3 AI AI AI AI AI3 AI
E | A A A A A A A A A A A - - - - -
F | A A A A A A A A A A - - - - I AI
M = Used by Monitor; * used in early Apple IIe ROMs-- now free
A = Used by Applesoft BASIC
I = Used by Integer BASIC
3 = Used by DOS 3.3
~ = Used by ProDOS ($40-$4E is saved before and restored after use)
B = Used by ProDOS BASIC.SYSTEM (also uses all Applesoft locations)
- = Free; not used
--Bryan Dunphy, Michael J. Mahon, Rubywand
 
Continue to: