For the guys who don't have a PCIF -
From the BASIC command line, enter the following line:
100 DATA #################################
Yep, that's 33 of them... Now, enter CALL DEBUG. In the monitor,
enter "D 4FD4". Press [ENTER].
Enter the bytes listed in the attachment, pressing [+] after each entry.
Your last entry should be >0A at >4FF4. Double-check your entries.
If it's not exactly as listed results will be "undefined"...
Exit the monitor, & from the BASIC command line enter:
110 PAGE=5
120 CALL POKE(20469,PAGE):CALL EXEC(20436)
130 PRINT "BREAK"

AUSE ! demonstrates that routine returns to BASIC
Once more, the DATA statement must be the first line in your pgm for the
offset addresses to be correct. The routine assumes it's running on an 18K
CC40 - If you have something else then you'll have to recalculate the CALL
addresses. The PAGE offset is 11 bytes from HIRAM; EXEC offset is 43.
If you use the routine from assembler it can go anywhere; put the Page #
in A and call the address @ >4FD7 (in this case.)
I'll post a loadable subpgm soon.
One more thing - If you do have a PCIF, you can enter the pgm as above,
and then SAVE it to PC - The DATA statement looks odd, but can be cut &
pasted without problems, as long as you don't inadvertently truncate it.
Have fun