If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Firetrap (Amstrad CPC)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Firetrap

Developer: Source
Publisher: Electric Dreams
Platform: Amstrad CPC
Released in EU: 1987


SourceIcon.png This game has uncompiled source code.


Source Code Fragments

A moderate amount of code was left inside the disk version of the game. The addresses below are from a dump of the original disk.

Track 6, Sector 0, AF9:

MVFL.2	INC	HL
	INC	HL
	INC	HL
	DJNZ	MVFL.1
	RET

ZIBBO	EQU	274

NEW_FLAME	LD	A,(NUM_FLAM)
	CP	4
	RET	Z
	LD	A,(HEIGHT)
	OR	A
	CP	#60
	RET	NC
	CALL	RND
	OR	A
	CP	220
FOZZIE	EQU	$-1
	RET	C
	CALL	RND
	AND	7
	LD	(ZIBBO),A
	ADD	A,A
	ADD	A,A
	ADD	A,A
	ADD	A,8
	LD	C,A
	CALL	RND
	AND	32
	LD	B,A
;	PUSH	BC
;	LD	A,8
;	ADD	A,B
;	LD	B,A
;	CALL	MAP_FIND
;	POP	BC
;	RET	NZ
	LD	A,(MAP_COUNT)
	LD	L,A
	LD	A,3
	SUB	L
	ADD	A,A
	ADD	A,A
	ADD	A,A
	ADD	A,B
	LD	B,A
	LD	A,(ZIBBO)
	LD	HL,ZIBBER
KERMIT	EQU	$-2
	ADD	A,L
	LD	L,A
	LD	A,(HL)
	ADD	A,B
	LD	B,A
	PUSH	BC
	XOR	A
	CALL	MAP_FIND
	POP	BC
	RET	NZ
	LD	HL,FLAMES
	LD	D,4
NEWF.1	LD	A,(HL)
	OR	A
	JR	NZ,NEWF.2
	LD	(HL),20
	INC	HL
	LD	(HL),C
	INC	HL
	LD	A,B
	SUB	16
	LD	B,A
	LD	(HL),B
	LD	HL,NUM_FLAM
	INC	(HL)
	RET
NEWF.2	INC	HL
	INC	HL
	INC	HL
	DEC	D
	JP	NZ,NEWF.1
	RET

FLAME_DO	LD	A,15
	LD	(SPMASK),A
	EXX
	LD	HL,FLAME_STR
	EXX
	LD	HL,FLAMES
	LD	D,4
FLOD.1	LD	A,(HL)
	OR	A
	JR	Z,FLOD.2
	EXX
	PUSH	HL
	EXX
	PUSH	HL
	PUSH	DE
	LD	A,(HL)
	XOR	1
	LD	(HL),A
	INC	HL
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	CALL	SP_DRAW
	POP	DE
	POP	HL
	EXX
	POP	HL
	EXX
FLOD.2	EXX
	INC	H
	EXX
	INC	HL
	INC	HL
	INC	HL
	DEC	D
	JP	NZ,FLOD.1
	RET

WIPE_FLAME	LD	DE,FLAME_

Track 7, Sector 0, 0:

	LD	A,4
	LD	HL,FLAMES+9
FLIP.1	PUSH	AF
	PUSH	HL
	LD	A,(HL)
	OR	A
	JR	Z,FLIP.2
	PUSH	DE
	INC	HL
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	CALL	SP_WIPE
	POP	DE
FLIP.2	DEC	D
	POP	HL
	DEC	HL
	DEC	HL
	DEC	HL
	POP	AF
	DEC	A
	JP	NZ,FLIP:

Track 8, Sector 0, 145:

-ball from flames

FALLERS2	CALL	RND
	OR	A
	CP	220
	RET	C
	CALL	RND
	AND	3
	LD	HL,FLAMES
	LD	D,A
	ADD	A,A
	ADD	A,D
	ADD	A,L
	LD	L,A
	LD	A,(HL)
	OR	A
	RET	Z
	INC	HL
	LD	C,(HL)
	INC	C
	INC	C
	INC	HL
	LD	B,(HL)
	LD	HL,SPRITE_DAT+9
	LD	E,5
FAL.2A	LD	A,(HL)
	INC	A
	JR	Z,FAL.3A
	INC	HL
	INC	HL
	INC	HL
	DEC	E
	JP	NZ,FAL.2A
	RET
FAL.3A	SET	7,C
	LD	(HL),C
	INC	HL
	LD	(HL),B
	INC	HL
	LD	(HL),11 ; fire-ball code
	RET

BIGGY	EQU	278
BIG_STORE	DEFS	256

BIG_FALL	LD	A,(BIGGY)

Track 9, Sector 0, 10B:

	OR	A
	JP	Z,POP.1
	LD	B,6
	LD	HL,PARA_DAT
PARM.1A	LD	A,(HL)
	CP	255
	JR	Z,PARM.2A
	INC	HL
	LD	A,(HL)
	SUB	A,8
	LD	(HL),A
	DEC	HL
PARM.2A	INC	HL
	INC	HL
	DJNZ	PARM.1A
POP.1	LD	B,3
	LD	HL,SHEEP
MVSH.1A	LD	A,(HL)
	OR	A
	JR	Z,MVSH.2A
	INC	HL
	INC	HL
	LD	A,(HL)
	SUB	8
	OR	A
	CP	9
	JR	NC,MVSH.3A
	DEC	HL
	DEC	HL
	LD	(HL),0
	JP	MVSH.2A
MVSH.3A	LD	(HL),A
	DEC	HL
	DEC	HL
MVSH.2A	INC	HL
	INC	HL
	INC	HL
	DJNZ	MVSH.1A
	LD	B,4
	LD	HL,FLAMES
MVFL.1A	LD	A,(HL)
	OR	A
	JR	Z,MVFL.2A
	INC	HL
	INC	HL
	LD	A,(HL)
	SUB	8
	OR	A
	CP	9
	JR	NC,MVFL.3A
	DEC	HL
	DEC	HL
	LD	(HL),0
	JP	MVFL.2A
MVFL.3A	LD	(HL),A
	DEC	HL
	DEC	HL
MVFL.2A	INC	HL
	INC	HL
	INC	HL
	DJNZ	MVFL.1A
	LD	B,8
	LD	HL,SPRITE_DAT
MV.1A	LD	A,(HL)
	INC	A
	JR	Z,MV.2A
	INC	HL
	LD	A,(HL)
	SUB	8
	LD	(HL),A
	DEC	HL
MV.2A	INC	HL
	INC	HL
	INC	HL
	DJNZ	MV.1A
	LD	A,(HEIGHT)
	DEC	A
	LD	(HEIGHT),A
	LD	HL,(OFFSET)
	LD	DE,80
	ADD	HL,DE
	LD	A,H
	AND	7
	LD	H,A
	LD	(OFFSET),HL
	CALL	STAT_LINE
	JP	BO

Track 9, Sector 0, 5E4:

	AND	3
	LD	(MAP_COUNT),A
	OR	A
	LD	HL,(MAP_ADD)
	JR	NZ,$3
	LD	DE,48
	JR	$1
$3	LD	DE,56
$1	OR	A
	JR	NZ,$2
	EXX
	LD	HL,(MAP_ADD)
	LD	DE,8
	SBC	HL,DE
	LD	(MAP_ADD),HL
	EXX
$2	DEC	A
	AND	3
	ADD	A,A
	ADD	A,A
	LD	(PLUSTIP),A
	LD	BC,#B808
	LD	HL,(MAP_ADD)
	OR	A
	SBC	HL,DE
	PUSH	BC
	LD	B,8
BOTTOM.2	LD	A,(HL)
	EXX
	LD	DE,BLOCKS
	LD	H,0
	LD	L,A
	ADD	HL,HL
	ADD	HL,HL
	ADD	HL,HL
	ADD	HL,HL
	ADD	HL,DE
	LD	DE,0
PLUSTIP	EQU	$-2
	ADD	HL,DE
	EX	HL,DE
	POP	BC
	PUSH	BC
	LD	A,4
	CALL	PSTRING3
	POP	BC
	LD	A,C
	ADD	A,8
	LD	C,A
	PUSH	BC
	EXX
	INC	HL
	DJNZ	BOTTOM.2
	POP	BC
	LD	HL,CHARDATA-32*16
	LD	(BANK),HL
	LD	A,(MAP_COUNT)
	OR	A
	JR	NZ,BOT.3
	LD	HL,(MAP_ADD)
	LD	DE,8
	OR	A
	SBC	HL,DE
	LD	B,E
	LD	IX,MAP_GRAFIX

Track 9, Sector 0, B20:

BC
	LD	A,8
	ADD	A,B
	LD	B,A
	POP	AF
	DEC	A
	JP	NZ,LOG.1
	POP	BC
	LD	A,C
	ADD	A,32
	LD	C,A
	PUSH	BC
	LD	A,8
	ADD	A,B
	LD	B,A
	CALL	PSPEC
	POP	BC
	PUSH	BC
	LD	A,B
	ADD	A,16
	LD	B,A
	CALL	PSPEC
	POP	BC
	PUSH	BC
	LD	A,B
	ADD	A,24
	LD:
(Source: CPC Power)