;**************************************************************************
;
; Filename : RELAIS.ASM
; ---------------------
;
; (c) 1990 by Thomas Lehmann
;
;
; Jackophone V5.00
;
;
; verschiedene Relais ein/ausschalten
;
;
;**************************************************************************


	; NSI-Relais einschalten
	; ----------------------
nsi_on	sei
	lda Via_portb	; Zustand der VIA einlesen
	ora #NSI	; NSI BIT setzen
	sta Via_portb	; und NSI-Relais einschalten
	cli

	.ifdef RELTEST
	lda #$ff
	sta led_ram+YL4+11
	.endif

	rts

	; NSI-Relais ausschalten
	; ----------------------
nsi_off	sei
	lda Via_portb	; Zustand der VIA einlesen
	and #$ff^NSI	; NSI BIT austragen
	sta Via_portb	; und NSI-Relais ausschalten
	cli

	.ifdef RELTEST
	stz led_ram+YL4+11
	.endif

	rts

; **********

	; NSA-Relais einschalten
	; ----------------------
nsa_on	sei
	lda Via_portb	; Zustand der VIA einlesen
	ora #NSA	; NSA BIT setzen
	sta Via_portb	; und NSA-Relais einschalten
	cli

	.ifdef RELTEST
	lda #$ff
	sta led_ram+YL4+9
	.endif

	rts

	; NSA-Relais ausschalten
	; ----------------------
nsa_off	sei
	lda Via_portb	; Zustand der VIA einlesen
	and #$ff^NSA	; NSA BIT austragen
	sta Via_portb	; und NSA-Relais ausschalten
	cli

	.ifdef RELTEST
	stz led_ram+YL4+9
	.endif

	rts

; **********

	; a/b-Relais einschalten
	; ----------------------
ab_on	lda #$ff
	sta led_ram+LD_AB	; a/b Relais einschalten
	rts

	; a/b-Relais ausschalten
	; ----------------------
ab_off	stz led_ram+LD_AB	; a/b Relais auschalten
	rts

; **********

	; Halten-Relais einschalten
	; -------------------------
ha_on	lda #$ff
	sta led_ram+LD_HALT
	rts

	; Halten-Relais ausschalten
	; -------------------------
ha_off	stz led_ram+LD_HALT
	rts

; **********

	; Postapparat anschalten
	; ----------------------
post_on	stz led_ram+LD_POST	; Postapparat einschalten
	ldy #LD_L|LD_R|LD_OFF	; LED Status laden
	lda #KEY_POST	; Tastenwert laden
	jmp set_prgled

	; Postapparat abschalten
	; ----------------------
post_off	lda #$ff
	sta led_ram+LD_POST	
	ldy #LD_L|LD_ON	; LED Status laden
	bbs ST_POST,feap_stat,post_off_1	; Postapparat ist abgeschaltet

	ldy #LD_L|LD_N	; LED Status laden
post_off_1	lda #KEY_POST	; Tastenwert laden
	jmp set_prgled


; **********

	; Modem anschalten
	; ----------------
mod_on	lda #$ff
	sta led_ram+LD_MODEM
	ldy #LD_L|LD_R|LD_ON	; LED Status laden
	lda #KEY_MOD	; Tastenwert laden
	jmp set_prgled

	; Modem abschalten
	; ----------------
mod_off	stz led_ram+LD_MODEM
	ldy #LD_L|LD_R|LD_OFF	; LED Status laden
	lda #KEY_MOD	; Tastenwert laden
	jmp set_prgled

; **********

	; Anrufbeantworter anschalten
	; ---------------------------
beantw_on	lda #$ff
	sta led_ram+LD_BEANTW
	ldy #LD_L|LD_R|LD_OFF	; LED Status laden
	lda #KEY_BEA	; Tastenwert laden
	jmp set_prgled

	; Anrufbeantworter abschalten
	; ---------------------------
beantw_off	stz led_ram+LD_BEANTW
	ldy #LD_L|LD_ON	; LED Status laden
	bbr ST_BEANTW,feap_stat,bea_off_1	; Beantw. ist abgeschaltet

	ldy #LD_L|LD_N	; LED Status laden
bea_off_1	lda #KEY_BEA	; Tastenwert laden
	jmp set_prgled

; **********

	; frei Programierbares Relais 1 einschalten
	; -----------------------------------------
rel1_on	lda #$ff
	sta led_ram+LD_REL1
	rts

	; frei Programierbares Relais 1 ausschalten
	; -----------------------------------------
rel1_off	stz led_ram+LD_REL1
	rts

; **********

	; frei Programierbares Relais 2 einschalten
	; -----------------------------------------
rel2_on	lda #$ff
	sta led_ram+LD_REL2
	rts

	; frei Programierbares Relais 2 ausschalten
	; -----------------------------------------
rel2_off	stz led_ram+LD_REL2
	rts

; **********

	; frei Programierbares Relais 3 einschalten
	; -----------------------------------------
rel3_on	lda #$ff
	sta led_ram+LD_REL3
	rts

	; frei Programierbares Relais 3 ausschalten
	; -----------------------------------------
rel3_off	stz led_ram+LD_REL3
	rts

; **********

	; Freisprech-Relais einschalten
	; -----------------------------
fs_on	sei
	lda Via_portb	; Zustand der VIA einlesen
	ora #FS		; FS BIT setzen
	sta Via_portb	; und Freisprech-Relais einschalten
	cli
	rts

	; Freisprech-Relais ausschalten
	; -----------------------------
fs_off	sei
	lda Via_portb	; Zustand der VIA einlesen
	and #$ff^FS	; FS BIT austragen
	sta Via_portb	; und Freisprech-Relais ausschalten
	cli
	rts

; **********

	; Summer-Relais einschalten
	; -------------------------
su_on	sei
	lda Via_portb	; Zustand der VIA einlesen
	ora #SU		; Summer BIT setzen
	sta Via_portb	; und Summer-Relais einschalten
	cli
	rts

	; Freisprech-Relais ausschalten
	; -----------------------------
su_off	sei
	lda Via_portb	; Zustand der VIA einlesen
	and #$ff^SU	; Summer BIT austragen
	sta Via_portb	; und Summer-Relais ausschalten
	cli
	rts


; =========================================================================
;
; Type	: Unterprg.
;
; Eingang	: bei Endetaste
;
; Ausgang	: Relais und LED von Post und Anrufbeantw. entsprechend dem
;	: Status geschaltet
;
; Register	: ------
;
; (c) by Thomas Lehmann März 1990
;
; =========================================================================

set_postbea	jsr beantw_off	; Beantworter ausschalten

	bbr ST_BEANTW,feap_stat,postbea_1	; Beantworter war ausgesch.
	jsr beantw_on	; Beantworter wieder einschalten

postbea_1	jsr post_off	; Postapparat ausschalten

	bbs ST_POST,feap_stat,postbea_e	; Postapp. war abgeschaltet
	jsr post_on	; Postapp. wieder einschalten

postbea_e	rts


