![]() |
Routines |
| Prev: 35771 | Up: Map | Next: 35902 |
|
||||||||||||||||||||
|
Stash the lower gauge byte for later.
|
||||||||||||||||||||
| DrawGauge | 35841 | LD C,A | C=A. | |||||||||||||||||
|
Stash the screen location for later, as we'll need it to gain the screen buffer address.
|
||||||||||||||||||||
| 35842 | PUSH HL | Stash HL on the stack. | ||||||||||||||||||
| 35843 | CALL AttributeAddress | Call AttributeAddress. | ||||||||||||||||||
|
Restore the lower gauge byte.
|
||||||||||||||||||||
| 35846 | LD A,C | A=C. | ||||||||||||||||||
|
Rotate off the INK bits.
|
||||||||||||||||||||
| 35847 | RRCA | Rotate the bits right three times (including the carry). | ||||||||||||||||||
| 35848 | RRCA | |||||||||||||||||||
| 35849 | RRCA | |||||||||||||||||||
| 35850 | AND %00011111 | Keep only bits 0-4 (PAPER, BRIGHT and FLASH). | ||||||||||||||||||
| 35852 | JR Z,DrawGauge_Draw | Jump to DrawGauge_Draw if the result is zero (i.e. empty/ blank). | ||||||||||||||||||
| 35854 | LD B,A | B=A. | ||||||||||||||||||
|
This moves along
|
||||||||||||||||||||
| DrawGauge_Find | 35855 | LD A,(HL) | A=attribute byte. | |||||||||||||||||
| 35856 | RLCA | Rotate the bits left three times (including the carry). | ||||||||||||||||||
| 35857 | RLCA | |||||||||||||||||||
| 35858 | RLCA | |||||||||||||||||||
| 35859 | AND %00111000 | Keep only bits 3-5 (INK). | ||||||||||||||||||
| 35861 | OR (HL) | |||||||||||||||||||
| 35862 | LD (HL),A | Write A back to HL. | ||||||||||||||||||
| 35863 | INC HL | Increment HL by one. | ||||||||||||||||||
| 35864 | DJNZ DrawGauge_Find | Decrease counter by one and loop back to DrawGauge_Find until counter is zero. | ||||||||||||||||||
|
Fetch the attribute byte for where the gauge ends.
|
||||||||||||||||||||
| DrawGauge_Draw | 35866 | LD A,(HL) | A=HL. | |||||||||||||||||
|
Remove the PAPER bits.
|
||||||||||||||||||||
| 35867 | AND %11000111 | Keep only bits 0-2, 6-7. | ||||||||||||||||||
| 35869 | LD (HL),A | Write A back to HL. | ||||||||||||||||||
|
Store the attribute buffer address in DE.
|
||||||||||||||||||||
| 35870 | EX DE,HL | Switch the DE and HL registers. | ||||||||||||||||||
|
Restore the screen location for the screen buffer address call.
|
||||||||||||||||||||
| 35871 | POP HL | Restore HL from the stack. | ||||||||||||||||||
| 35872 | CALL ScreenAddress | Call ScreenAddress. | ||||||||||||||||||
| 35875 | LD A,E | A=E. | ||||||||||||||||||
| 35876 | AND %00011111 | Keep only bits 0-4. | ||||||||||||||||||
| 35878 | LD E,A | E=A. | ||||||||||||||||||
| 35879 | LD A,L | A=L. | ||||||||||||||||||
| 35880 | AND %11100000 | Keep only bits 5-7. | ||||||||||||||||||
| 35882 | OR E | |||||||||||||||||||
| 35883 | LD L,A | L=A. | ||||||||||||||||||
|
Restore the lower gauge byte.
|
||||||||||||||||||||
| 35884 | LD A,C | A=C. | ||||||||||||||||||
|
The gradient lines are stored in the font at: 54559.
There are 8 gradient line images, so ensure the number reference is between 0-7.
|
||||||||||||||||||||
| 35885 | AND %00000111 | Keep only bits 0-2. | ||||||||||||||||||
|
The first value is 91 which corresponds to "
" (the smallest gradient).
|
||||||||||||||||||||
| 35887 | ADD A,91 | A=A+91. | ||||||||||||||||||
| 35889 | CALL PrintScreen | Call PrintScreen. | ||||||||||||||||||
|
Restore the lower gauge byte.
|
||||||||||||||||||||
| 35892 | LD A,C | A=C. | ||||||||||||||||||
| 35893 | CPL | Flip the bits. | ||||||||||||||||||
| 35894 | AND %00000111 | Keep only bits 0-2. | ||||||||||||||||||
| 35896 | RET NZ | Return if the result is not zero. | ||||||||||||||||||
| 35897 | LD A,32 | A=32. | ||||||||||||||||||
| 35899 | JP PrintScreen | Jump to PrintScreen. | ||||||||||||||||||
| Prev: 35771 | Up: Map | Next: 35902 |