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

Death or Glory (ZX Spectrum)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Death or Glory

Developer: Wise Owl Software
Publisher: CRL Group
Platform: ZX Spectrum
Released in EU: 1987


SourceIcon.png This game has uncompiled source code.


Source Code Fragment

Some sections of the code are left in the game. The code seen below can be seen with a hex editor at the addresses listed below in the .tap dump of the game.

766F:

    ADD	A,A ;*8
	LD	L,A
    LD	HL,(xpos)
	LD	DE,=0
	ADD	HL,DE
	LD	(xpost),HL
	LD	HL,(ypos)
	LD	DE,=1
	ADD	HL,DE
	LD	(ypost),HL
	CALL	pcal

7B0F:

	    ORG	25000
	    CALL	INIT
	    LD	BC,START
	    RET
	
	    START
	    EXX
	    PUSH	HL
	    CALL	TEST
	    POP	HL
	    EXX
	    LD	BC,(xpos)
	    RET

	;===================================================
	;
	;DEATH OR GLORY
	;
	;===================================================
	;SYSTEM:             ZX Spectrum 48k/128k
	;ASSEMBLER:          Hisoft DevPac
	;JOB FOR:            C.R.L. & Wise Owl
	;PROGRAMMER:         Brian Pollock
	;
	;___________________________________________________
	;
	;Version             DOG01may
	;
	;
	;
	;___________________________________________________
	;
	;
	;Put udg on pseudo screen using HL' as cursor
	    
;Vertically
putv	MAC
	    EXX
	    LD	C,A
	    LD	B,udgs/256
	    LD	DE,32
;DEFBs= lda(bc) ld(hl)a   inc b addhlde
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    JP	NC,$+7
	    LD	DE,-4096
	    ADD	HL,DE
	    EXX
	    ENDM
	    
;Put horizontally
puth	MAC
	    EXX
	    PUSH	HL
	    LD	C,A
	    LD	B,udgs/256
	    LD	DE,32
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    POP	HL
	    INC	L
	    EXX
	    ENDM


;PUT TEXT (HORIZONTAL+LF)
;subroutine
putt	EXX
	    PUSH	HL
	    LD	C,A
	    LD	B,udgs/256
	    LD	DE,32
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    DEFB	10,119,4,25
	    POP	HL
	    INC	L
	    JR	NZ,putt1
	    INC	H
putt1	EXX
	    RET


;*** Tester Control Code ***
slowas	EQU	0 ;1=assemble long  forms.0=short forms
	    TEST	CALL	input
	    CALL	explode
	    LD	A,0
	    OUT	(254),A
	    CALL	movedozer
	    CALL	m_aliens
	    CALL	p_alien
	    CALL	p_spdz
	    CALL	co_exb   ;Uncolour last explosion
	    CALL	onstars
	    CALL	dups1
	    CALL	ofstars
	    CALL	co_exp   ;Colour Explosion
	    CALL	e

890F:

co_xy	DEFW	0
un_col	DEFB	0
exp_ad	DEFW	0
co_add	DEFW	0
ytab
*L-
*F 1:DOGYTAB
*F 1:input
*F 1:MoveDozer
*F 1:Stars


;Dump pseudo screen to display file 
;No input/output params
;Pseudo Screen begins at 'page0
;
dups1	DI
;SOUND TESTER
	    EX	AF,AF
	    LD	A,0
	    EX	AF,AF
	    EXX
	    LD	A,(direction)
	    INC	A
	    LD	B,A
	    LD	C,A
	    EXX
;END OF SOUND TESTER

    LD	HL,page0+1
    LD	DE,(top_ptr)
    ADD	HL,DE
    LD	(m_stk),SP
    LD	SP,ytab
    LD	A,(top_nl)
    CP	112
    JP	NC,dups1b
dups1a	POP	DE

	IF	slowasm
	
*F 1:Move_30

	ELSE
	LD	BC,30
	LDIR
	END

;CONSTANT SOUND RTN
	EXX
	DJNZ	SND1
	LD	B,C
	EX	AF,AF
	XOR	16
	OUT	(254),A
	EX	AF,AF

SND1	EXX
    	INC	HL
    	INC	HL
    	DEC	A
    	JP	NZ,dups1a
    	LD	HL,page0+1
    
	    LD	A,(bot_nl)
˜
dups1b	POP	DE    
	IF	slowasm
*F 1:Move_30

	ELSE
	LD	BC,30
	LDIR
	END

;other part of sound
	EXX
	DJNZ	SN