;**************************************************************************
;
; Filename : SPEICHER.ASM
; -----------------------
;
; (c) 1990 by Thomas Lehmann
;
;
; Jackophone V5.00
;
;
; Speicher Funktionen
;
;
;**************************************************************************

MODUL_START	set	*	; Größe des Moduls berechnen


; =========================================================================
;
; Funktion	: Speichermodus einleiten
;
; Eingang	: bei Speichertaste
;	: Offset auf Tastaturtabelle in X-Reg.
;
; Ausgang	: Speichertext ausgegeben
;	: LED eingeschaltet
;	: Wähltasten umgeleitet
;	: letzte Textnr. in X-Reg
;	: erste Textnr. in Y-Reg
;
; Register	: Accu, X, Y
;
; (c) by Thomas Lehmann März 1990
;
; =========================================================================

spmenu_tab	word sp_h_menu	; Speichern Hauptmenu
	word rel_out	; Untermenu Relais ist aktiv
	word _rts	; Untermenu Statisktik, nicht bei Speichern
	word term_spkey	; Untermenu Termin ist aktiv
	word _rts	; Untermenu Version, nicht bei Speichern
	word notruf_nxt	; Untermenu Notruf ist aktiv


spwhl_txt	byte	DSP_CLR
	shift "1=NT 2=Term 3=Ports  -->"

	byte	DSP_CLR
	shift "4=Beantw. 5=Zweitapp.-->"

	byte	DSP_CLR
	shift "6=Notruf 7=Gebuehren -->"

	byte	DSP_CLR
	shift "8=Terminzyklus       -->"


speich_tab	word spko_namkey	; 1=Namentaste speichern
	word spko_term	; 2=Termin speichern
	word sp_rel	; 3=Relais speichern
	word spko_bea	; 4=Beantworter ein/aus
	word spko_post	; 5=Postapparat ein/aus
	word sp_notruf	; 6=Notrufnummern
	word sp_gebfakt	; 7=Gebührenfaktor
	word sp_termzykl	; 8=Termin Wiederholung


TAB_LEN	set	*-speich_tab	; Tabellenlänge



key_sp	bbs MOD_KO,modus,sp_h_menu	; Kontrolle ist aktiv, SP einschalten

	ldx menu	; ausgewähltes Menu laden
	jmp (spmenu_tab,x)	; Programm ausführen


sp_h_menu	bbr MOD_SP,modus,key_sp_1	; Speichern nicht aktiviert

	jsr nxt_dsptxt	; nächstes Menu ausgeben
	bra speich_wta	; Wähltastenfunktion installieren

	; Speichermodus einschalten
	; -------------------------
key_sp_1	jsr key_ende	; Kontrolle ausschalten
	smb MOD_SP,modus	; Speichermodus aktiv eintragen

	ldy #LD_L|LD_ON	; LED-Wert laden
	jsr set_prgled	; und LED einschalten

	ldx #<spwhl_txt	; Textadr. laden
	ldy #>spwhl_txt
	lda #ANZ_SPTXT	; Anzahl der Texte laden
	jsr init_dsptxt	; Textwahl initialisieren

	; Funktionstabelle für Wähltasten
	; -------------------------------
speich_wta	lda #TAB_LEN	; Tabellenlänge laden
	ldx #<speich_tab	; Adresse der Tabelle
	ldy #>speich_tab
	jmp set_wta_fkt	; Funktionstabelle für Wähltasten installieren



; =========================================================================
;
; Type	: Hauptprg.
;
; Eingang	: bei 2.Speichertaste
;	: Offset auf Tastaturtabelle in X-Reg.
;	: Tastenwert im Accu
;
; Ausgang	: 2. Speicher aktiv/unaktiv
;
; Register	: Accu
;
; (c) by Thomas Lehmann März 1990
;
; =========================================================================

key_2sp	bbs ST_2SP,feap_stat,zwsp_off	; 2.SP deaktivieren

	smb ST_2SP,feap_stat	; Modus 2.Speicher aktiv eintragen
	ldy #LD_R|LD_ON	; rechte LED einschalten
	bra zwsp_setled	; und LED einschalten

	; Einsprung um 2. SP auszuschalten
	; ================================
zwsp_off	rmb ST_2SP,feap_stat	; Modus 2.Speicher nicht aktiv eintragen
	ldy #LD_R|LD_OFF	; rechte LED ausschalten
zwsp_setled	lda #KEY_2SP	; Tastenwert laden
	jmp set_prgled	; LED ausschalten




; --------------------------------------------------------------------------

HLP	set	*
_SPEICHER	equ	HLP-MODUL_START		; Größe des Moduls

