Compucolor.org – Virtual Media

Listing of file='SWARE.SRC;01' on disk='vmedia/life-sector.ccvf'

	ASEG
	ORG	1

SW000:	DB	50
SW001:	DB	0
SW002:	DB	15
SW003:	DB	0
SW004:	DB	0
SW005:	DB	0
SW006:	DB	0

	MOV	A,E
	ORA	A
	JNZ	SW00E
	MVI	E,8
	MVI	A,8
;
	OUT	48	;TURN OFF SOUND AND SELECT CHANNEL A
	XRA	A
	OUT	49
	MVI	A,7
	OUT	48
	MVI	A,62
	OUT	49
;
	DI
	LDA	SW005
	MOV	D,A
	LDA	SW006
	ORA	A
	JNZ	SW007
	MOV	A,D
	STA	SW006
SW007:	LHLD	SW000
	SHLD	SW00B
	LHLD	SW002
	SHLD	SW009
	CALL	SOUND	;START SOUND
SW008:	DB	(LXI H)
SW009:	DW	0
SW00A:	DB	(LXI B)
SW00B:	DW	0
SW00C:	DCX	B
	MOV	A,B
	ORA	C
	JNZ	SW00C
	MOV	A,E
	XRI	2
	OUT	4
	MOV	E,A
	DCX	H
	MOV	A,H
	ORA	L
	JNZ	SW00A
	LDA	SW004
	ORA	A
	JZ	SW00D
	DCR	A
	STA	SW004
	LDA	SW00B
	ADD	D
	STA	SW00B
	CALL	SOUND	;CHANGE PITCH
	LDA	SW006
	MOV	H,A
	MOV	A,D
	STA	SW006
	MOV	D,H
	JMP	SW008

SW00D:
;
	MVI	A,8	;TURN OFF SOUND
	OUT	48
	XRA	A
	OUT	49
;
	STA	SW006
	STA	SW003
	STA	SW001
	MVI	A,00FH
	STA	SW002
	MVI	A,032H
	STA	SW000
	EI
	RET

SW00E:	CPI	1
	JNZ	SW011
	LXI	H,0
	MVI	B,4
SW00F:	MVI	C,11H
SW010:	LXI	D,80H
	DAD	D
	MOV	A,M
	LXI	D,0FF80H
	DAD	D
	MOV	M,A
	INX	H
	NOP
	DCR	C
	JNZ	SW010
	LXI	D,8
	DAD	D
	DCR	B
	JNZ	SW00F
	RET

SW011:	CPI	2
	JNZ	SW013
	PUSH	PSW
	PUSH	H
	PUSH	B
SW012:	CALL	0024H
	JNZ	SW012
	MOV	E,A
	XRA	A
	MOV	D,A
	STA	81FFH
	POP	B
	POP	H
	POP	PSW
	RET
SW013:	RET
	JMP	SW00B
	NOP
	NOP
	DAD	D
	MOV	A,M

;
;	SOUND PATCH FOR AY-3-8910 CHIP
;
SOUND:	LHLD	SW00B
	MOV	B,H
	MOV	C,L
	DAD	B
	DAD	B
	MVI	A,1
	OUT	48
	MOV	A,H
	OUT	49
	XRA	A
	OUT	48
	MOV	A,L
	OUT	49
	MVI	A,8
	OUT	48
	MVI	A,0FH
	OUT	49
	RET

	END