mriendeau@vicr.com wrote: > We're talking about a couple of milliseconds. Surely that's > fast enough, especially considering the fact that the program's > out of control anyway. A couple of milliseconds at line frequencies, involving power devices which are switching over 800W of power is quite significant. > Maybe I'm misunderstanding what you mean here, but I don't think > so. If the PC is allowed to execute all the instructions in the > "unused" space, it'll eventually wrap around to address 0000, on > page 0. Again, the issue is the time it takes to wrap-around. The following program is an example of the macro (Which can be assembled, and tested with MPSIM). The maximum time till the program delivers a reset condition is only a few instructions. Forgive the previous post which implied the "detection of page change". You have to manually insert the few lines of code for the PCLATH modification to each page. Regards, Mike ---------------------------------------------------------------------- TITLE "Reset test program" ; ; Processor 16C73 Radix HEX EXPAND ; PCLATH equ 0x0A ; ; Status register bits ; CRY equ 0 DCRY equ 1 Z equ 2 PD equ 3 TO equ 4 RP0 equ 5 ORG 0x00 Start: nop ; ; ;*** Test Fault **** bsf PCLATH,3 goto 0x900 ;******************* ; ; your first page code goes here ; fill (goto Start),0x800-$ ; ; ORG 0x800 bcf PCLATH,3 goto 0x00 ; ; Any routines you want to add to this page go here ; fill (goto 0x800),0x1000-$ END