Hardware for page swaps is a simplest part. Software support for it is much more complex. MMU enables systems can completely hide page swap from user program, but this is not your case. User software should handle it manually.
The single arrangement for this is an Overlay system (as far as I know). Overlays required support from compiler (if it is high level compiler, like C). In your case (assembler) you will require support for Overlay from linker.
Overlay system has some limitation:
- You should use stack for functions/procedures (in C it used automatically, for assembler you should use it mandatory)
- Biggest procedure in Overlay part should fit in Overlay area (in your case - 512 bytes)
- Only executable code can be overlayed, not Data
- Overlay support code should resides in not overlayed area
- Overlayed ROM code is possible, but required extra support
And the last one - there is no requirement for split area for ROM and RAM overlays, you can use one (1K preferably) for both