BC3E: Copies the backbuffer at $F000 to the screen (and sets attributes)
 
draw_screen 
LD HL,$4811 
 
EXX 
 
LD HL,$F001 
 
LD ($BDBE),SP 
 
 
ds_loop 
LD SP,HL 
 
POP AF 
 
EX AF,AF' 
 
POP DE 
 
POP BC 
 
EXX 
 
POP AF 
 
POP DE 
 
POP BC 
 
POP IX 
 
POP IY 
 
LD SP,HL 
 
PUSH IY 
 
PUSH IX 
 
PUSH BC 
 
PUSH DE 
 
PUSH AF 
 
INC H 
 
EXX 
 
PUSH BC 
 
PUSH DE 
 
EX AF,AF' 
 
PUSH AF 
 
INC H 
 
LD SP,HL 
 
POP AF 
 
EX AF,AF' 
 
POP DE 
 
POP BC 
 
EXX 
 
POP AF 
 
POP DE 
 
POP BC 
 
POP IX 
 
POP IY 
 
LD SP,HL 
 
PUSH IY 
 
PUSH IX 
 
PUSH BC 
 
PUSH DE 
 
PUSH AF 
 
INC H 
 
EXX 
 
PUSH BC 
 
PUSH DE 
 
EX AF,AF' 
 
PUSH AF 
 
INC H 
 
LD SP,HL 
 
POP AF 
 
EX AF,AF' 
 
POP DE 
 
POP BC 
 
EXX 
 
POP AF 
 
POP DE 
 
POP BC 
 
POP IX 
 
POP IY 
 
LD SP,HL 
 
PUSH IY 
 
PUSH IX 
 
PUSH BC 
 
PUSH DE 
 
PUSH AF 
 
INC H 
 
EXX 
 
PUSH BC 
 
PUSH DE 
 
EX AF,AF' 
 
PUSH AF 
 
INC H 
 
LD SP,HL 
 
POP AF 
 
EX AF,AF' 
 
POP DE 
 
POP BC 
 
EXX 
 
POP AF 
 
POP DE 
 
POP BC 
 
POP IX 
 
POP IY 
 
LD SP,HL 
 
PUSH IY 
 
PUSH IX 
 
PUSH BC 
 
PUSH DE 
 
PUSH AF 
 
INC H 
 
EXX 
 
PUSH BC 
 
PUSH DE 
 
EX AF,AF' 
 
PUSH AF 
 
INC H 
 
BIT 2,H 
 
JP NZ,ds_loop  
 
LD DE,$F810 
 
ADD HL,DE 
 
EXX 
 
LD DE,$F80E 
 
ADD HL,DE 
 
EXX 
 
 
draw_screen_0 
LD SP,HL 
 
POP AF 
 
EX AF,AF' 
 
POP DE 
 
POP BC 
 
EXX 
 
POP AF 
 
POP DE 
 
POP BC 
 
POP IX 
 
LD SP,HL 
 
PUSH IX 
 
PUSH BC 
 
PUSH DE 
 
PUSH AF 
 
INC H 
 
EXX 
 
PUSH BC 
 
PUSH DE 
 
EX AF,AF' 
 
PUSH AF 
 
INC H 
 
LD SP,HL 
 
POP AF 
 
EX AF,AF' 
 
POP DE 
 
POP BC 
 
EXX 
 
POP AF 
 
POP DE 
 
POP BC 
 
POP IX 
 
LD SP,HL 
 
PUSH IX 
 
PUSH BC 
 
PUSH DE 
 
PUSH AF 
 
INC H 
 
EXX 
 
PUSH BC 
 
PUSH DE 
 
EX AF,AF' 
 
PUSH AF 
 
INC H 
 
LD SP,HL 
 
POP AF 
 
EX AF,AF' 
 
POP DE 
 
POP BC 
 
EXX 
 
POP AF 
 
POP DE 
 
POP BC 
 
POP IX 
 
LD SP,HL 
 
PUSH IX 
 
PUSH BC 
 
PUSH DE 
 
PUSH AF 
 
INC H 
 
EXX 
 
PUSH BC 
 
PUSH DE 
 
EX AF,AF' 
 
PUSH AF 
 
INC H 
 
LD SP,HL 
 
POP AF 
 
EX AF,AF' 
 
POP DE 
 
POP BC 
 
EXX 
 
POP AF 
 
POP DE 
 
POP BC 
 
POP IX 
 
LD SP,HL 
 
PUSH IX 
 
PUSH BC 
 
PUSH DE 
 
PUSH AF 
 
INC H 
 
EXX 
 
PUSH BC 
 
PUSH DE 
 
EX AF,AF' 
 
PUSH AF 
 
INC H 
 
BIT 2,H 
 
JP NZ,draw_screen_0  
 
BIT 3,H 
 
JR NZ,ds_bd4d  
 
LD H,$F0 
 
LD A,L 
 
SUB H 
 
LD L,A 
 
JP NC,ds_attributes  
 
JP PE,ds_bd45  
 
EXX 
 
LD DE,$F812 
 
ADD HL,DE 
 
EXX 
 
JP ds_loop  
 
ds_bd45 
EXX 
 
LD HL,$5011 
 
EXX 
 
JP ds_loop  
 
ds_bd4d 
EXX 
 
LD DE,$F812 
 
ADD HL,DE 
 
EXX 
 
LD A,L 
 
SUB $10 
 
LD L,A 
 
JP ds_loop  
 
ds_attributes 
LD A,($A220) 
 
AND A 
 
JR NZ,ds_exit  
 
LD HL,$E34C 
 
LD A,(HL) 
 
INC L 
 
LD E,(HL) 
 
LD (HL),A 
 
LD A,E 
 
OR A 
 
JR Z,draw_screen_3  
 
ADD A,A 
 
ADD A,A 
 
LD E,A 
 
SBC A,A 
 
LD D,A 
 
LD HL,($A186) 
 
LD BC,$6868 
 
JR Z,draw_screen_1  
 
LD BC,($5CF4) 
 
ADD HL,DE 
 
draw_screen_1 
LD SP,HL 
 
PUSH BC 
 
PUSH BC 
 
PUSH BC 
 
PUSH BC 
 
PUSH BC 
 
PUSH BC 
 
PUSH BC 
 
PUSH BC 
 
PUSH BC 
 
PUSH BC 
 
PUSH BC 
 
PUSH BC 
 
PUSH BC 
 
PUSH BC 
 
PUSH BC 
 
JR NZ,draw_screen_2  
 
ADD HL,DE 
 
draw_screen_2 
LD ($A186),HL 
 
draw_screen_3 
LD A,($A22E) 
 
AND A 
 
JR Z,ds_exit  
 
LD A,($A230) 
 
CP $03 
 
JR NC,ds_exit  
 
 
LD HL,$5962 
 
LD DE,$0020 
 
LD C,$50 
 
LD (HL),C 
 
ADD HL,DE 
 
LD (HL),C 
 
ADD HL,DE 
 
LD C,$58 
 
LD (HL),C 
 
ADD HL,DE 
 
LD (HL),C 
 
ADD HL,DE 
 
LD C,$60 
 
LD (HL),C 
 
ADD HL,DE 
 
LD (HL),C 
 
ADD HL,DE 
 
LD C,$78 
 
LD (HL),C 
 
ADD HL,DE 
 
LD (HL),C 
 
ds_exit 
LD SP,$0000 
 
RET 
 
The incomplete Chase H.Q. disassembly 20240307
© 1988 Taito Corporation © 1989 Ocean Software Ltd. (Chase H.Q.) © 2023-2024 David Thomas (this disassembly)