Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
system_routines:screen_handler [2016/06/05 16:23] ex_writer [Screen Handler] |
system_routines:screen_handler [2016/06/10 23:05] (current) ex_writer [Screen Handler System Routines] |
||
---|---|---|---|
Line 15: | Line 15: | ||
| [[#fill|FILL]] | Fill a contiguous memory range with a constant | | | [[#fill|FILL]] | Fill a contiguous memory range with a constant | | ||
| [[#rectan|RECTAN]] | Paint a rectangle of specified size, color, and coordinates | | | [[#rectan|RECTAN]] | Paint a rectangle of specified size, color, and coordinates | | ||
- | | [[#relab1|RELAB1]] | Non-Magic RELABS | | ||
| [[#relabs|RELABS]] | Relative to absolute conversion | | | [[#relabs|RELABS]] | Relative to absolute conversion | | ||
+ | | [[#relab1|RELAB1]] | Non-Magic RELABS | | ||
| [[#restore|RESTOR]] | Restores area previously saved (using SAVE) | | | [[#restore|RESTOR]] | Restores area previously saved (using SAVE) | | ||
| [[#save|SAVE]] | Preserves specified screen area that is 'underneath' a moving pattern | | | [[#save|SAVE]] | Preserves specified screen area that is 'underneath' a moving pattern | | ||
Line 154: | Line 154: | ||
DB 10101010B | DB 10101010B | ||
</code> | | </code> | | ||
- | ==== RELAB1 ==== | ||
- | CONVERT RELATIVE ADDRESS TO ABSOLUTE NORMAL ADDRESS | ||
- | |||
- | | Calling Sequence: | <code z80>SYSTEM RELAB1</code> or <code z80>SYSSUK RELAB1 | ||
- | DB (Magic register value)</code>| | ||
- | | Arguments: | A = Magic register value to combine with shift amount\\ D = Y-coordinate\\ E = X-coordinate | | ||
- | | Output: | A = Combined Magic register value\\ DE = Absolute normal address (non-Magic) | | ||
- | | Description: | This routine is identical to [[#relabs|RELABS]] except that a non-Magic address is returned, and the hardware [[hardware:magic system|Magic register]] is not set. The flopped bit is interrogated, and the flopped coordinate system is used, if optioned. | | ||
==== RELABS ==== | ==== RELABS ==== | ||
Line 174: | Line 166: | ||
{{:relabs_coords.png}} | {{:relabs_coords.png}} | ||
+ | |||
+ | Lance Squire: "RELABS converts X/Y to MAGIC RAM addresses plus sets the shift bits for | ||
+ | the MAGIC register." | ||
+ | |||
+ | ==== RELAB1 ==== | ||
+ | |||
+ | CONVERT RELATIVE ADDRESS TO ABSOLUTE NORMAL ADDRESS | ||
+ | |||
+ | | Calling Sequence: | <code z80>SYSTEM RELAB1</code> or <code z80>SYSSUK RELAB1 | ||
+ | DB (Magic register value)</code>| | ||
+ | | Arguments: | A = Magic register value to combine with shift amount\\ D = Y-coordinate\\ E = X-coordinate | | ||
+ | | Output: | A = Combined Magic register value\\ DE = Absolute normal address (non-Magic) | | ||
+ | | Description: | This routine is identical to [[#relabs|RELABS]] except that a non-Magic address is returned, and the hardware [[hardware:magic system|Magic register]] is not set. The flopped bit is interrogated, and the flopped coordinate system is used, if optioned. | | ||
+ | |||
+ | Lance Squire: "RELABS1 converts X/Y to SCREEN RAM addresses. Any pixel shifting is up | ||
+ | to the user." | ||
==== RESTOR ==== | ==== RESTOR ==== | ||