Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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 ====