Moin,

als Tip zu den Flags: natürlich können auch andere Operationen das Zero-Flag setzen. Deswegen würde ich dir raten, nach Abschluss des Programmteils mit der Operation eine eigene Flag-Variable zu nehmen und auf diese zu testen. Ich weiß jetzt zwar nicht, was du genau machst, aber bei mir ist eigentlich auch immer eine Speicherzelle für 8 Flags in Benutzung.
Wenn du diese auch noch in den Bereich zwischen 70h und 7Fh ablegst, so brauchst du für den Zugriff nichtmal die Bank wechseln.

Ja, das mit dem Quarz oder Keramikresonator geht genauso wie du sagtest. Du darfst mit XT max. 4Mhz dran haben, bei nem Quarz musst du mit der große der Kondesatoren aufpassen, zu groß und der schwingt nicht an. Schau am besten im Datenblatt, ich glaub ich nehm immer 15pF.

Um bei den Config-Words sicher zu gehen, füge ich immer alle ein, die möglich sind. Low Voltage Programming immer abschalten, sonst wird ein Pin von PortB nichtmehr als IO zur Verfügung stehen, Power Up-Timer schadet eigentlich nie, die 72ms merkst du eh nicht, wenn es nicht drauf ankommt. Brown Out würd ich abschalten, wenn du weißt, dass es ne sichere Spannungsversorgung ist, kannst du es anlassen, aber wenn der Innenwiderstand zu groß ist, und du ne recht starke Last einschaltest (z.B. ne IR-Diode für ne Fernbedienung, meine ziehen etwa 100mA), könnte das ausreichen den BrownOutReset auszulösen. Die Code Protection lass ich immer aus, ich bin eh der einzige, der an meine Controller geht.