Prev: 56687 Up: Map Next: 56913
56691: Print Helper Preview Image
Used by the routine at Game_Loop.
Takes the generated image at Buffer_Image, and creates a preview image from it.
Level 1 Level 2 Level 3
helper-image-$5B00 helper-image-$6182 helper-image-$6AFF
Level 4 Level 5 Level 6
helper-image-$730A helper-image-$783C helper-image-$7CFD
Level 7 Level 8 Level 9
helper-image-$8106 helper-image-$89D2 helper-image-$9110
Marilyn Monroe has no preview image, but if she did, it would look like this:
Level 10
helper-image-$9772
Print_HelperPreviewImage 56691 LD B,4 Set the initial X co-ordinate in B.
56693 LD C,22 Set the initial Y co-ordinate in C.
Print_HelperPreviewImage_0 56695 PUSH BC Stash the co-ordinates on the stack.
56696 CALL Calculate_ScreenBlockAddress Call Calculate_ScreenBlockAddress.
56699 LD B,8 Set a counter in B for 8.
Print_HelperPreviewImage_1 56701 PUSH BC Stash the counter on the stack.
56702 LD B,10 Set a counter in B for 10.
56704 PUSH HL Stash the screen buffer address pointer on the stack.
Print_HelperPreviewImage_2 56705 LD (HL),0 Write 0 to *HL.
56707 INC HL Increment the screen buffer address pointer by one.
56708 DJNZ Print_HelperPreviewImage_2 Decrease the counter by one and loop back to Print_HelperPreviewImage_2 until the counter is zero.
56710 POP HL Restore the original screen buffer address from the stack.
56711 INC H Move down one line.
56712 POP BC Restore the counter from the stack.
56713 DJNZ Print_HelperPreviewImage_1 Decrease the counter by one and loop back to Print_HelperPreviewImage_1 until the counter is zero.
56715 POP BC Restore the original co-ordinates from the stack.
56716 INC B Increment B by one.
56717 LD A,12 Jump to Print_HelperPreviewImage_0 if B is not equal to 12.
56719 CP B
56720 JR NZ,Print_HelperPreviewImage_0
56722 LD A,176 Write 176 to *Temp_X_Coordinate.
56724 LD (56687),A
56727 LD A,32 Write 32 to *Temp_Y_Coordinate.
56729 LD (56688),A
56732 LD HL,41187 Write Buffer_Image to *Temp_SourceAddress.
56735 LD (56689),HL
56738 LD B,64 B=64.
Print_HelperPreviewImage_3 56740 PUSH BC Stash BC on the stack.
56741 LD A,(56687) H=*Temp_X_Coordinate.
56744 LD H,A
56745 LD A,(56688) L=*Temp_Y_Coordinate.
56748 LD L,A
56749 CALL CalculateScreenAddress Call CalculateScreenAddress.
56752 PUSH DE Load the screen buffer address into IX (using the stack).
56753 POP IX
56755 LD B,2 Set a counter in B for 2.
Print_HelperPreviewImage_4 56757 PUSH BC Stash the counter and the screen buffer address on the stack.
56758 PUSH IX
56760 LD HL,(56689) HL=*Temp_SourceAddress.
56763 LD B,10 B=10.
Print_HelperPreviewImage_5 56765 XOR A A=0.
56766 LD D,(HL) D=*HL.
56767 INC HL Increment HL by one.
56768 LD E,(HL) E=*HL.
56769 INC HL Increment HL by one.
56770 CALL Print_HelperPreviewImage_6 Call Print_HelperPreviewImage_6.
56773 LD D,(IX+0) D=*IX+0.
56776 OR D Set the bits from D.
56777 LD (IX+0),A Write A to *IX+0.
56780 INC IX Increment IX by one.
56782 DJNZ Print_HelperPreviewImage_5 Decrease counter by one and loop back to Print_HelperPreviewImage_5 until counter is zero.
56784 POP IX Restore IX from the stack.
56786 LD (56689),HL Write HL to *Temp_SourceAddress.
56789 POP BC Restore BC from the stack.
56790 DJNZ Print_HelperPreviewImage_4 Decrease counter by one and loop back to Print_HelperPreviewImage_4 until counter is zero.
56792 LD HL,56688 HL=Temp_Y_Coordinate.
56795 INC (HL) Increment *HL by one.
56796 POP BC Restore BC from the stack.
56797 DJNZ Print_HelperPreviewImage_3 Decrease counter by one and loop back to Print_HelperPreviewImage_3 until counter is zero.
56799 RET Return.
Magic.
Print_HelperPreviewImage_6 56800 RLC D Rotate D left (through the carry flag).
56802 JP NC,Print_HelperPreviewImage_7 Jump to Print_HelperPreviewImage_7 if the carry flag isn't set (if the leftmost bit was 0).
56805 OR %10000000 Set bit 7.
Print_HelperPreviewImage_7 56807 RLC D Rotate D left (through the carry flag).
56809 JP NC,Print_HelperPreviewImage_8 Jump to Print_HelperPreviewImage_8 if the carry flag isn't set (if the leftmost bit was 0).
56812 OR %10000000 Set bit 7.
Print_HelperPreviewImage_8 56814 RLC D Rotate D left (through the carry flag).
56816 JP NC,Print_HelperPreviewImage_9 Jump to Print_HelperPreviewImage_9 if the carry flag isn't set (if the leftmost bit was 0).
56819 OR %01000000 Set bit 6.
Print_HelperPreviewImage_9 56821 RLC D Rotate D left (through the carry flag).
56823 JP NC,Print_HelperPreviewImage_10 Jump to Print_HelperPreviewImage_10 if the carry flag isn't set (if the leftmost bit was 0).
56826 OR %01000000 Set bit 6.
Print_HelperPreviewImage_10 56828 RLC D Rotate D left (through the carry flag).
56830 JP NC,Print_HelperPreviewImage_11 Jump to Print_HelperPreviewImage_11 if the carry flag isn't set (if the leftmost bit was 0).
56833 OR %00100000 Set bit 5.
Print_HelperPreviewImage_11 56835 RLC D Rotate D left (through the carry flag).
56837 JP NC,Print_HelperPreviewImage_12 Jump to Print_HelperPreviewImage_12 if the carry flag isn't set (if the leftmost bit was 0).
56840 OR %00100000 Set bit 5.
Print_HelperPreviewImage_12 56842 RLC D Rotate D left (through the carry flag).
56844 JP NC,Print_HelperPreviewImage_13 Jump to Print_HelperPreviewImage_13 if the carry flag isn't set (if the leftmost bit was 0).
56847 OR %00010000 Set bit 4.
Print_HelperPreviewImage_13 56849 RLC D Rotate D left (through the carry flag).
56851 JP NC,Print_HelperPreviewImage_14 Jump to Print_HelperPreviewImage_14 if the carry flag isn't set (if the leftmost bit was 0).
56854 OR %00010000 Set bit 4.
Print_HelperPreviewImage_14 56856 RLC E Rotate E left (through the carry flag).
56858 JP NC,Print_HelperPreviewImage_15 Jump to Print_HelperPreviewImage_15 if the carry flag isn't set (if the leftmost bit was 0).
56861 OR %00001000 Set bit 3.
Print_HelperPreviewImage_15 56863 RLC E Rotate E left (through the carry flag).
56865 JP NC,Print_HelperPreviewImage_16 Jump to Print_HelperPreviewImage_16 if the carry flag isn't set (if the leftmost bit was 0).
56868 OR %00001000 Set bit 3.
Print_HelperPreviewImage_16 56870 RLC E Rotate E left (through the carry flag).
56872 JP NC,Print_HelperPreviewImage_17 Jump to Print_HelperPreviewImage_17 if the carry flag isn't set (if the leftmost bit was 0).
56875 OR %00000100 Set bit 2.
Print_HelperPreviewImage_17 56877 RLC E Rotate E left (through the carry flag).
56879 JP NC,Print_HelperPreviewImage_18 Jump to Print_HelperPreviewImage_18 if the carry flag isn't set (if the leftmost bit was 0).
56882 OR %00000100 Set bit 2.
Print_HelperPreviewImage_18 56884 RLC E Rotate E left (through the carry flag).
56886 JP NC,Print_HelperPreviewImage_19 Jump to Print_HelperPreviewImage_19 if the carry flag isn't set (if the leftmost bit was 0).
56889 OR %00000010 Set bit 1.
Print_HelperPreviewImage_19 56891 RLC E Rotate E left (through the carry flag).
56893 JP NC,Print_HelperPreviewImage_20 Jump to Print_HelperPreviewImage_20 if the carry flag isn't set (if the leftmost bit was 0).
56896 OR %00000010 Set bit 1.
Print_HelperPreviewImage_20 56898 RLC E Rotate E left (through the carry flag).
56900 JP NC,Print_HelperPreviewImage_21 Jump to Print_HelperPreviewImage_21 if the carry flag isn't set (if the leftmost bit was 0).
56903 OR %00000001 Set bit 0.
Print_HelperPreviewImage_21 56905 RLC E Rotate E left (through the carry flag).
56907 JP NC,Print_HelperPreviewImage_22 Jump to Print_HelperPreviewImage_22 if the carry flag isn't set (if the leftmost bit was 0).
56910 OR %00000001 Set bit 0.
Print_HelperPreviewImage_22 56912 RET Return.
Prev: 56687 Up: Map Next: 56913