Important Notice: Our web hosting provider recently started charging us for additional visits, which was unexpected. In response, we're seeking donations. Depending on the situation, we may explore different monetization options for our Community and Expert Contributors. It's crucial to provide more returns for their expertise and offer more Expert Validated Answers or AI Validated Answers. Learn more about our hosting issue here.

How does the Rabbit execute programs larger than the 64K addressing space of the 16-bit addresses used in the instructions?

0
Posted

How does the Rabbit execute programs larger than the 64K addressing space of the 16-bit addresses used in the instructions?

0

A. Traditionally software that supports the Z180/HD64180 uses the memory mapping unit to create overlays using bank switching so that code can be expanded beyond the 64K limit. This scheme typically divides the available 64K space into three zones, root code, data and overlay segment. Calling a function that resides in an overlay requires calling a subroutine resident in the root that changes the mapping and calls the function. Typically this involves painful compromises and substantial overhead both in memory and execution time for each call. A typical scheme might use 6 bytes of root code space for each call and require about 150 clocks to execute a call to a banked routine on a Z180. In addition, the space reserved for banked routines must be large enough to hold the largest function that will be banked. Typically, available memory space tends to be squeezed since the bank may have to be 20K or 30K in size. The Rabbit has dedicated instructions called long calls, long returns and lo

Related Questions

What is your question?

*Sadly, we had to bring back ads too. Hopefully more targeted.

Experts123