Routines |
Prev: DAE7 | Up: Map | Next: DC5C |
Used by the routine at DemoEntryPoint.
|
||||||
Takes the generated image at Buffer_Image, and creates a preview image from it.
|
||||||
Print_HelperPreviewImage | DB7E | LD B,$04 | Set the initial X co-ordinate in B. | |||
DB80 | LD C,$16 | Set the initial Y co-ordinate in C. | ||||
Print_HelperPreviewImage_0 | DB82 | PUSH BC | Stash the co-ordinates on the stack. | |||
DB83 | CALL Calculate_ScreenBlockAddress | Call Calculate_ScreenBlockAddress. | ||||
DB86 | LD B,$08 | Set a counter in B for 08. | ||||
Print_HelperPreviewImage_1 | DB88 | PUSH BC | Stash the counter on the stack. | |||
DB89 | LD B,$0A | Set a counter in B for 0A. | ||||
DB8B | PUSH HL | Stash the screen buffer address pointer on the stack. | ||||
Print_HelperPreviewImage_2 | DB8C | LD (HL),$00 | Write 00 to *HL. | |||
DB8E | INC HL | Increment the screen buffer address pointer by one. | ||||
DB8F | DJNZ Print_HelperPreviewImage_2 | Decrease the counter by one and loop back to Print_HelperPreviewImage_2 until the counter is zero. | ||||
DB91 | POP HL | Restore the original screen buffer address from the stack. | ||||
DB92 | INC H | Move down one line. | ||||
DB93 | POP BC | Restore the counter from the stack. | ||||
DB94 | DJNZ Print_HelperPreviewImage_1 | Decrease the counter by one and loop back to Print_HelperPreviewImage_1 until the counter is zero. | ||||
DB96 | POP BC | Restore the original co-ordinates from the stack. | ||||
DB97 | INC B | Increment B by one. | ||||
DB98 | LD A,$0C | Jump to Print_HelperPreviewImage_0 if B is not equal to 0C. | ||||
DB9A | CP B | |||||
DB9B | JR NZ,Print_HelperPreviewImage_0 | |||||
DB9D | LD A,$B0 | Write B0 to *DB7A. | ||||
DB9F | LD ($DB7A),A | |||||
DBA2 | LD A,$20 | Write 20 to *DB7B. | ||||
DBA4 | LD ($DB7B),A | |||||
DBA7 | LD HL,$A0E3 | Write Buffer_Image to *DB7C. | ||||
DBAA | LD ($DB7C),HL | |||||
DBAD | LD B,$40 | B=40. | ||||
Print_HelperPreviewImage_3 | DBAF | PUSH BC | Stash BC on the stack. | |||
DBB0 | LD A,($DB7A) | H=*DB7A. | ||||
DBB3 | LD H,A | |||||
DBB4 | LD A,($DB7B) | L=*DB7B. | ||||
DBB7 | LD L,A | |||||
DBB8 | CALL $DC5C | Call DC5C. | ||||
DBBB | PUSH DE | Load the screen buffer address into IX (using the stack). | ||||
DBBC | POP IX | |||||
DBBE | LD B,$02 | Set a counter in B for 02. | ||||
Print_HelperPreviewImage_4 | DBC0 | PUSH BC | Stash the counter and the screen buffer address on the stack. | |||
DBC1 | PUSH IX | |||||
DBC3 | LD HL,($DB7C) | HL=*DB7C. | ||||
DBC6 | LD B,$0A | B=0A. | ||||
Print_HelperPreviewImage_5 | DBC8 | XOR A | A=00. | |||
DBC9 | LD D,(HL) | D=*HL. | ||||
DBCA | INC HL | Increment HL by one. | ||||
DBCB | LD E,(HL) | E=*HL. | ||||
DBCC | INC HL | Increment HL by one. | ||||
DBCD | CALL Print_HelperPreviewImage_6 | Call Print_HelperPreviewImage_6. | ||||
DBD0 | LD D,(IX+$00) | D=*IX+00. | ||||
DBD3 | OR D | Set the bits from D. | ||||
DBD4 | LD (IX+$00),A | Write A to *IX+00. | ||||
DBD7 | INC IX | Increment IX by one. | ||||
DBD9 | DJNZ Print_HelperPreviewImage_5 | Decrease counter by one and loop back to Print_HelperPreviewImage_5 until counter is zero. | ||||
DBDB | POP IX | Restore IX from the stack. | ||||
DBDD | LD ($DB7C),HL | Write HL to *DB7C. | ||||
DBE0 | POP BC | Restore BC from the stack. | ||||
DBE1 | DJNZ Print_HelperPreviewImage_4 | Decrease counter by one and loop back to Print_HelperPreviewImage_4 until counter is zero. | ||||
DBE3 | LD HL,$DB7B | HL=DB7B. | ||||
DBE6 | INC (HL) | Increment *HL by one. | ||||
DBE7 | POP BC | Restore BC from the stack. | ||||
DBE8 | DJNZ Print_HelperPreviewImage_3 | Decrease counter by one and loop back to Print_HelperPreviewImage_3 until counter is zero. | ||||
DBEA | RET | Return. | ||||
Magic.
|
||||||
Print_HelperPreviewImage_6 | DBEB | RLC D | Rotate D left (through the carry flag). | |||
DBED | JP NC,Print_HelperPreviewImage_7 | Jump to Print_HelperPreviewImage_7 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DBF0 | OR %10000000 | Set bit 7. | ||||
Print_HelperPreviewImage_7 | DBF2 | RLC D | Rotate D left (through the carry flag). | |||
DBF4 | JP NC,Print_HelperPreviewImage_8 | Jump to Print_HelperPreviewImage_8 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DBF7 | OR %10000000 | Set bit 7. | ||||
Print_HelperPreviewImage_8 | DBF9 | RLC D | Rotate D left (through the carry flag). | |||
DBFB | JP NC,Print_HelperPreviewImage_9 | Jump to Print_HelperPreviewImage_9 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DBFE | OR %01000000 | Set bit 6. | ||||
Print_HelperPreviewImage_9 | DC00 | RLC D | Rotate D left (through the carry flag). | |||
DC02 | JP NC,Print_HelperPreviewImage_10 | Jump to Print_HelperPreviewImage_10 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DC05 | OR %01000000 | Set bit 6. | ||||
Print_HelperPreviewImage_10 | DC07 | RLC D | Rotate D left (through the carry flag). | |||
DC09 | JP NC,Print_HelperPreviewImage_11 | Jump to Print_HelperPreviewImage_11 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DC0C | OR %00100000 | Set bit 5. | ||||
Print_HelperPreviewImage_11 | DC0E | RLC D | Rotate D left (through the carry flag). | |||
DC10 | JP NC,Print_HelperPreviewImage_12 | Jump to Print_HelperPreviewImage_12 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DC13 | OR %00100000 | Set bit 5. | ||||
Print_HelperPreviewImage_12 | DC15 | RLC D | Rotate D left (through the carry flag). | |||
DC17 | JP NC,Print_HelperPreviewImage_13 | Jump to Print_HelperPreviewImage_13 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DC1A | OR %00010000 | Set bit 4. | ||||
Print_HelperPreviewImage_13 | DC1C | RLC D | Rotate D left (through the carry flag). | |||
DC1E | JP NC,Print_HelperPreviewImage_14 | Jump to Print_HelperPreviewImage_14 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DC21 | OR %00010000 | Set bit 4. | ||||
Print_HelperPreviewImage_14 | DC23 | RLC E | Rotate E left (through the carry flag). | |||
DC25 | JP NC,Print_HelperPreviewImage_15 | Jump to Print_HelperPreviewImage_15 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DC28 | OR %00001000 | Set bit 3. | ||||
Print_HelperPreviewImage_15 | DC2A | RLC E | Rotate E left (through the carry flag). | |||
DC2C | JP NC,Print_HelperPreviewImage_16 | Jump to Print_HelperPreviewImage_16 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DC2F | OR %00001000 | Set bit 3. | ||||
Print_HelperPreviewImage_16 | DC31 | RLC E | Rotate E left (through the carry flag). | |||
DC33 | JP NC,Print_HelperPreviewImage_17 | Jump to Print_HelperPreviewImage_17 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DC36 | OR %00000100 | Set bit 2. | ||||
Print_HelperPreviewImage_17 | DC38 | RLC E | Rotate E left (through the carry flag). | |||
DC3A | JP NC,Print_HelperPreviewImage_18 | Jump to Print_HelperPreviewImage_18 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DC3D | OR %00000100 | Set bit 2. | ||||
Print_HelperPreviewImage_18 | DC3F | RLC E | Rotate E left (through the carry flag). | |||
DC41 | JP NC,Print_HelperPreviewImage_19 | Jump to Print_HelperPreviewImage_19 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DC44 | OR %00000010 | Set bit 1. | ||||
Print_HelperPreviewImage_19 | DC46 | RLC E | Rotate E left (through the carry flag). | |||
DC48 | JP NC,Print_HelperPreviewImage_20 | Jump to Print_HelperPreviewImage_20 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DC4B | OR %00000010 | Set bit 1. | ||||
Print_HelperPreviewImage_20 | DC4D | RLC E | Rotate E left (through the carry flag). | |||
DC4F | JP NC,Print_HelperPreviewImage_21 | Jump to Print_HelperPreviewImage_21 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DC52 | OR %00000001 | Set bit 0. | ||||
Print_HelperPreviewImage_21 | DC54 | RLC E | Rotate E left (through the carry flag). | |||
DC56 | JP NC,Print_HelperPreviewImage_22 | Jump to Print_HelperPreviewImage_22 if the carry flag isn't set (if the leftmost bit was 0). | ||||
DC59 | OR %00000001 | Set bit 0. | ||||
Print_HelperPreviewImage_22 | DC5B | RET | Return. |
Prev: DAE7 | Up: Map | Next: DC5C |