Prev: 6498 Up: Map Next: 66C7
651F: Routine at 651F
651F CALL StoreEntity
6522 LD A,(IX+$04)
6525 BIT 2,A
6527 JP NZ,$659C
652A BIT 1,A
652C JR NZ,$6578
652E BIT 0,A
6530 JR Z,$654B
6532 CALL $6E20
6535 DEC E
6536 JR Z,$655A
6538 CALL $761D
653B BIT 2,E
653D JR NZ,$6545
653F INC (IX+$02) Drop IX+$02 (fuel Y co-ordinate) by two pixels
6542 INC (IX+$02)
6545 CALL $726A
6548 JP ColouriseSprite
654B LD A,($5DF0)
654E RRCA
654F AND $06
6551 CALL $64E5
6554 CALL $729B
6557 JP ColouriseSprite
655A SET 1,(IX+$04)
655E CALL $72A5
6561 LD BC,$0100
6564 CALL $70F9
6567 CALL SoundsPickupFuel
656A LD HL,($5D01)
656D LD (IX+$01),L
6570 LD (IX+$02),H
6573 CALL StoreEntity
6576 JR $6545
6578 LD HL,($5D01)
657B LD (IX+$01),L
657E LD (IX+$02),H
6581 LD A,($5D31)
6584 SUB (IX+$01)
6587 JP P,$658C
658A NEG
658C CP $06
658E JR NC,$6545
6590 SET 2,(IX+$04)
6594 LD A,($5D31)
6597 LD (IX+$01),A
659A JR $6545
659C LD A,(IX+$06)
659F CP $18
65A1 JR Z,$65CE
65A3 SLA A
65A5 ADD A,(IX+$02)
65A8 CP $B7
65AA JP C,$653F
65AD LD A,($5D3C)
65B0 OR $01
65B2 LD ($5D3C),A
65B5 LD A,($5D34)
65B8 INC A
65B9 LD ($5D34),A
65BC LD A,(IX+$06)
65BF ADD A,$08
65C1 CALL $6EF9
65C4 CALL $72A5
65C7 LD (IX+$00),$00
65CB JP SoundsRocketBuild
65CE LD A,(IX+$02) A=(IX+$02) (fuel Y co-ordinate)
65D1 CP $B0 Is A=$B0? (has the fuel reached the ship yet?)
65D3 JP C,$653F If not, jump back to 653F
65D6 LD A,($5D35) Fuel pod deposited correctly; increase ActivePlayerNum_Fuel_Pods by one
65D9 INC A
65DA LD ($5D35),A
65DD JR $65C4 Jump to 65C4
This entry point is used by the routine at 6965.
65DF LD A,($5D00) If JETMAN_FRAME is &$3F then return...
65E2 AND $3F
65E4 RET Z
65E5 CP $03 Return if JETMAN_FRAME is greater than (or equal to) $03
65E7 RET NC
65E8 LD HL,$6038 HL Source address: $6038
65EB LD DE,$5D40 DE Target address: ITEM_VISIBILITY
65EE LD BC,$0008 BC=loop counter
65F1 LD A,(DE) A=(DE)
65F2 AND A
65F3 RET NZ
65F4 LD A,($5DCC)
65F7 AND $7F
65F9 RET NZ
65FA LDIR Action! Copy source to target, decrease counter, repeat until zero
65FC CALL $6612
65FF LD ($5D41),A
6602 LD A,R
6604 AND $0E
6606 BIT 3,A
6608 JR Z,$660C
660A AND $08
660C OR $20
660E LD ($5D46),A
6611 RET
6612 LD HL,$6620
6615 LD A,($5DCE)
6618 AND $0F
661A LD C,A
661B LD B,$00
661D ADD HL,BC
661E LD A,(HL)
661F RET
6620 EX AF,AF'
6621 JR NZ,$664B
6623 JR NC,$665D
6625 LD B,B
6626 LD E,B
6627 LD H,B
6628 LD A,B
6629 ADD A,B
662A ADC A,B
662B RET NZ
662C RET PO
662D EX AF,AF'
662E LD E,B
662F LD H,B
This entry point is used by the routine at 6965.
6630 LD A,($5D00)
6633 AND $3F
6635 RET Z
6636 CP $03
6638 RET NC
6639 LD HL,$6030 HL=$6030
663C LD DE,$5D38 DE=5D38
663F LD BC,$0008 BC=$0008
6642 LD A,(DE) A=(DE)
6643 AND A
6644 RET NZ
6645 LD A,($5D35) Check if ActivePlayerNum_Fuel_Pods is $06? Is the ship full of fuel?
6648 CP $06
664A RET NC
664B LD A,($5DCC)
664E CPL
664F AND $0F
6651 RET NZ
6652 LDIR
6654 CALL $6612
6657 LD ($5D39),A
665A RET Return
This entry point is used by the routine at 66C7.
665B LD HL,$5D38 HL=5D38
665E LD B,$0C B=$0C
This entry point is used by the routine at PlayerReset.
6660 LD DE,$0008 DE=$0008
6663 LD (HL),$00 Reset the memory held at location HL (set to $00)
6665 ADD HL,DE Increase HL by $08
6666 DJNZ $6663 Decrease B by one, and loop back to 6663 until zero
6668 RET Return
This entry point is used by the routines at 66C7 and 66EB.
6669 LD A,(IX+$02)
666C ADD A,$15
666E LD (IX+$02),A
6671 LD HL,$5DC1
6674 LD A,(HL)
6675 ADD A,$15
6677 LD (HL),A
6678 LD A,(IX+$02)
667B CP $B8
667D JR Z,$66B8
667F JR NC,$66A3
6681 LD A,($5DCC)
6684 AND $04
6686 JR NZ,$66B3
6688 LD DE,$7FAF
668B PUSH DE
668C LD DE,$7F8C
668F CALL $72A0
6692 LD DE,$7FAF
6695 CALL $72A0
6698 POP DE
6699 CALL $729B
669C LD (IX+$03),$42
66A0 CALL ColouriseSprite
66A3 LD A,(IX+$02)
66A6 SUB $15
66A8 LD (IX+$02),A
66AB LD HL,$5DC1
66AE LD A,(HL)
66AF SUB $15
66B1 LD (HL),A
66B2 RET
66B3 LD DE,$7F8C
66B6 JR $668B
66B8 LD DE,$7F8C
66BB CALL $72A0
66BE LD DE,$7FAF
66C1 CALL $72A0
66C4 JP $66A3
Prev: 6498 Up: Map Next: 66C7