This article is from the Apple II Csa2 FAQ, by Jeff Hurlburt with numerous contributions by others.
A pretty good way is to check the three-byte JMP command starting at $03D0. If it's 4C 00 BE, you're running ProDOS; if it's 4C BF 9D, you're running DOS 3.3 or a compatible variant (such as Prontodos). Two (moderately rare) factors may change the DOS 3.3 JMP: 1- On old "slave disks" created on sub-48k Apple II's, DOS loads in at a lower address; 2- DOS 3.3 is sometimes moved up into the Language Card. So, your best procedure is probably to check for ProDOS and, if it isn't ProDOS, just presume that it's DOS 3.3.
 
Continue to: