Eric Seeley wrote: > Does anyone know a way to modify the routine so that I can call a > subroutine (I am also using Long Calls as in AN 581) and "return" to > the "bottom" half of a page? You mean the top half. The half with higher value of PC<8>. ;-) The only way I know how to do it is with a vector. Messy. Have the macro save the current "$", add a "goto" to a place in bottom half (PC<8> = 0) of program memory, encode a long call there, and then a goto to return to the current code address. The limits on 12C509 with respect to GOTO and CALL and number of file registers have already pushed me to a data stack architecture for almost all file register usage ... I may go to a manual return stack as well, and build a sort of token interpreter. Needs more thinking. I wonder why I am trying to cram so much into a 12C509 when I should go buy something with more ROM and same number of legs? ;-) -- James Cameron (cameron@stl.dec.com) OpenVMS, Linux, Firewalls, Software Engineering, CGI, HTTP, X, C, FORTH, COBOL, BASIC, DCL, csh, bash, ksh, sh, Electronics, Microcontrollers, Disability Engineering, Netrek, Bicycles, Pedant, Farming, Home Control, Remote Area Power, Greek Scholar, Tenor Vocalist, Church Sound, Husband. "Specialisation is for insects." -- Robert Heinlein.