1;
2; 	ANSI Video handling for the Sharp X1
3;
4; 	BEL - chr(7)   Beep it out
5;
6;
7;	$Id: f_ansi_bel.asm,v 1.6 2016-06-10 23:47:18 dom Exp $
8;
9
10        SECTION code_clib
11	PUBLIC	ansi_BEL
12
13.BEPDAT
14		defw 142	; C channel frequency:  880Hz
15		defb @00111011  ; IO/Noise/tone: B|A|C|B|A|C|B|A
16		defb @00001111  ; C channel level
17
18
19.ansi_BEL
20
21	DI
22
23	CALL	WPSG3
24
25	LD	BC,10000	;10ts
26VBLLP:
27	DEC	BC	; 6ts
28	LD	A,C	; 4ts
29	OR	B	; 4ts
30	JR	NZ,VBLLP	;12ts
31
32	CALL	WPSG3
33
34	EI
35	RET
36
37
38
39WPSG3:
40	LD	HL,BEPDAT
41	LD	A,4
42	CALL	WP3SUB
43	LD	A,5
44	CALL	WP3SUB
45	LD	A,7
46	CALL	WP3SUB
47	LD	A,10
48	CALL	WP3SUB
49	ld	a,(BEPDAT+3)
50	xor	00001111B
51	ld (BEPDAT+3),a
52	RET
53
54WP3SUB:	LD	BC,1C00H
55	OUT	(C),A
56	OUTI   ; (increments HL)
57	RET
58
59
60