ChronosMM | Routines |
Prev: 58863 | Up: Map | Next: 59174 |
Used by the routine PLAY_GAME.
|
||||
SETUP_GAME | 58893 | LD IX,59789 | ||
58897 | LD A,0 | |||
SETUP_GAME_0 | 58899 | PUSH AF | ||
58900 | LD C,16 | |||
58902 | CALL 8880 | Call into ROM PIXEL-ADD routine (LD B,A) | ||
58905 | LD (IX+0),L | Copy pixel address from HL to (IX) in reverse order. This address will be used by COPY_BUFFER_TO_SCREEN | ||
58908 | INC IX | |||
58910 | LD (IX+0),H | |||
58913 | INC IX | |||
58915 | POP AF | |||
58916 | INC A | |||
58917 | CP 128 | Check bit 7 | ||
58919 | JP NZ,SETUP_GAME_0 | |||
58922 | XOR A | Clear carry flag, set A to zero | ||
58923 | LD (59674),A | |||
58926 | LD (59786),A | Clear L59786 | ||
58929 | LD (59785),A | Clear L59785 | ||
58932 | LD (59666),A | |||
58935 | OUT (254),A | |||
58937 | LD HL,36864 | Point HL at TILE_MAP | ||
58940 | LD (59783),HL | Point TILE_MAP_ADDR at TILE_MAP | ||
58943 | LD B,16 | Prepare to loop 16 times | ||
58945 | LD HL,60389 | Point HL at the screen buffer | ||
SETUP_GAME_1 | 58948 | PUSH BC | ||
58949 | PUSH HL | |||
58950 | CALL L58392_1 | |||
58953 | POP HL | |||
58954 | INC HL | |||
58955 | INC HL | |||
58956 | POP BC | |||
58957 | DJNZ SETUP_GAME_1 | Loop 16 times | ||
58959 | LD A,32 | |||
58961 | LD IX,59687 | |||
SETUP_GAME_2 | 58965 | PUSH AF | ||
58966 | CALL L58863 | |||
58969 | LD (IX+0),A | |||
58972 | INC IX | |||
58974 | CALL L58863 | |||
58977 | AND 15 | |||
58979 | LD (IX+0),A | |||
58982 | INC IX | |||
58984 | CALL L58863 | |||
58987 | AND 3 | |||
58989 | INC A | |||
58990 | LD (IX+0),64 | |||
SETUP_GAME_3 | 58994 | RLC (IX+0) | ||
58998 | RLC (IX+0) | |||
59002 | DEC A | |||
59003 | JP NZ,SETUP_GAME_3 | |||
59006 | INC IX | |||
59008 | POP AF | |||
59009 | DEC A | |||
59010 | JP NZ,SETUP_GAME_2 | |||
59013 | LD HL,0 | |||
59016 | LD (59671),HL | |||
59019 | LD HL,16384 | Clear top two thirds of screen | ||
59022 | LD DE,16385 | |||
59025 | LD BC,4095 | |||
59028 | LD (HL),0 | |||
59030 | LDIR | |||
59032 | LD A,70 | |||
59034 | LD (59686),A | |||
59037 | LD HL,22528 | Clear top two thirds of attributes | ||
59040 | LD DE,22529 | |||
59043 | LD BC,511 | |||
59046 | LD (HL),A | |||
59047 | LDIR | |||
59049 | LD A,1 | |||
59051 | LD (59667),A | |||
59054 | LD H,16 | |||
59056 | LD L,8 | |||
59058 | LD (59649),HL | Set default player position at PLAYER_X_COORD and PLAYER_Y_COORD | ||
59061 | XOR A | Clear carry flag, set A to zero | ||
59062 | LD (59648),A | |||
Disable upward-firing bullets
|
||||
59065 | LD HL,60081 | Point HL at UP_BULLETS | ||
59068 | LD DE,60082 | |||
59071 | LD BC,11 | |||
59074 | LD (HL),255 | |||
59076 | LDIR | Set 60081-60091 to 255 | ||
Disable bullets
|
||||
59078 | LD HL,60093 | Point HL at PLAYER_SHOTS | ||
59081 | LD DE,60094 | |||
59084 | LD BC,47 | |||
59087 | LD (HL),255 | |||
59089 | LDIR | Set 60093-60139 to 255 | ||
Disable something
|
||||
59091 | LD HL,60141 | |||
59094 | LD DE,60142 | |||
59097 | LD BC,95 | |||
59100 | LD (HL),255 | |||
59102 | LDIR | Set 60141-60235 to 255 | ||
Disable enemies
|
||||
59104 | LD HL,60045 | Point HL at ENEMY_DATA | ||
59107 | LD DE,60046 | |||
59110 | LD BC,11 | |||
59113 | LD (HL),255 | Set 60045-60055 to 255 | ||
59115 | LDIR | |||
59117 | LD A,31 | |||
59119 | LD (59652),A | |||
59122 | LD A,255 | |||
59124 | LD (59644),A | |||
59127 | XOR A | Clear carry flag, set A to zero | ||
59128 | LD (59646),A | |||
59131 | LD (59645),A | |||
59134 | LD A,67 | |||
59136 | LD (59653),A | |||
59139 | LD A,16 | |||
59141 | LD (59675),A | |||
59144 | XOR A | Clear carry flag, set A to zero | ||
59145 | LD (59678),A | |||
59148 | LD (59677),A | |||
59151 | LD (59682),A | |||
59154 | LD (59679),A | |||
59157 | LD HL,59174 | Point HL at the end of game text | ||
59160 | LD (59680),HL | Store the address of the end of game text in 59680 | ||
59163 | LD A,50 | |||
59165 | LD (59684),A | |||
59168 | LD A,20 | |||
59170 | LD (59685),A | |||
59173 | RET |
Prev: 58863 | Up: Map | Next: 59174 |