Prev: 55985 Up: Map Next: 56110
55999: Routine at DABF
Used by the routines at 54098 and Handler_Bombs.
55999 LD A,(59229) A=*Tile_Horizontal_Position.
56002 DEC A Decrease A by one.
56003 LD (59231),A Write A to *Tile_Horizontal_Coordinate.
56006 LD A,(59230) A=*Tile_Vertical_Position.
56009 DEC A Decrease A by one.
56010 LD (59232),A Write A to *Tile_Vertical_Coordinate.
56013 LD B,4 B=4.
56015 HALT Halt operation (suspend CPU until the next interrupt).
56016 PUSH BC Stash BC on the stack.
56017 LD A,(59231) B=*Tile_Horizontal_Coordinate.
56020 LD B,A
56021 LD A,(59232) C=*Tile_Vertical_Coordinate.
56024 LD C,A
56025 CALL Calculate_ScreenBlockAddress Call Calculate_ScreenBlockAddress.
56028 PUSH HL Stash HL on the stack.
56029 LD A,0 A=0.
56031 LD B,8 B=8.
56033 PUSH BC Stash BC and HL on the stack.
56034 PUSH HL
56035 LD B,4 B=4.
56037 LD (HL),A Write A to *HL.
56038 INC HL Increment HL by one.
56039 DJNZ 56037 Decrease counter by one and loop back to 56037 until counter is zero.
56041 POP HL Restore HL and BC from the stack.
56042 POP BC
56043 INC H Increment H by one.
56044 DJNZ 56033 Decrease counter by one and loop back to 56033 until counter is zero.
56046 POP HL Restore HL from the stack.
56047 CALL Calculate_AttributeAddress Call Calculate_AttributeAddress.
56050 LD A,71 A=71.
56052 LD B,4 B=4.
56054 LD (DE),A Write A to *DE.
56055 INC DE Increment DE by one.
56056 DJNZ 56054 Decrease counter by one and loop back to 56054 until counter is zero.
56058 POP BC Restore BC from the stack.
56059 LD HL,59231 HL=Tile_Horizontal_Coordinate.
56062 INC (HL) Increment *HL by one.
56063 DJNZ 56016 Decrease counter by one and loop back to 56016 until counter is zero.
56065 LD A,(55347) Return if *55347 is equal to 0.
56068 CP 0
56070 RET Z
56071 LD B,3 B=3.
56073 PUSH BC Stash BC on the stack.
56074 LD A,5 A=5.
56076 LD C,30 C=30.
56078 LD B,40 B=40.
56080 SLA B Shift B left (with carry).
56082 DJNZ 56082 Decrease counter by one and loop back to 56082 until counter is zero.
56084 XOR %00010000 Flip bit 4.
56086 OUT (254),A Set border to the colour held by A.
56088 DEC C Decrease C by one.
56089 JR NZ,56078 Jump to 56078 if C is not zero.
56091 LD C,20 C=20.
56093 LD B,60 B=60.
56095 SLA B Shift B left (with carry).
56097 DJNZ 56097 Decrease counter by one and loop back to 56097 until counter is zero.
56099 XOR %00010000 Flip bit 4.
56101 OUT (254),A Set border to the colour held by A.
56103 DEC C Decrease C by one.
56104 JR NZ,56093 Jump to 56093 if C is not zero.
56106 POP BC Restore BC from the stack.
56107 DJNZ 56073 Decrease counter by one and loop back to 56073 until counter is zero.
56109 RET Return.
Prev: 55985 Up: Map Next: 56110