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


; =========================================================================
;
; Type	: Hauptprg.
;
; Eingang	: bei Kontrolltaste
;	: Offset auf Tastaturtabelle in X-Reg.
;	: Tastenwert im Accu
;
; Ausgang	: Kontrolltext 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
;
; =========================================================================

key_kontr	ldy #LAST_KOTXT-1	; Start-Textnr. laden

	lda wta_prg	; Wähltastenprg. laden
	cmp #WTA_KONTR	; ist Kontrollmodus bereits eingeleitet ?
	beq key_ko_1	; ja

	jsr key_ende	; Speichern ausschalten
	sty txtnr	; und für Ausgabe vorbereiten
	smb MOD_KO,modus	; Kontrollmodus aktiv eintragen
	lda #WTA_KONTR	; Kontrollprg. Nr. laden
	sta wta_prg	; und bei Wähltaste ausführen
	lda #LD_L|LD_ON	; LED-Wert laden
	jsr set_led	; und LED einschalten

key_ko_1	ldx #TXT_KO	; letzte Textnr. laden
	jmp show_txtnr	; Text ausgeben
	

ko_txt2	.shift "4=Version            -->"
ko_txt3	.shift "Kontrolltext 3       -->"


; =========================================================================
;
; Type	: Hauptprg.
;
; Eingang	: bei Wähltaste und eingeschaltetem Kontroll-Modus
;	: Tastenwert (1 bis ...) im Accu
;
; Ausgang	: ausgewählte Kontrollfunktion ausgeführt
;
; Register	: Accu, X
;
; (c) by Thomas Lehmann März 1990
;
; =========================================================================

kontr_tab	.rta spko_namkey	; Namentaste kontrollieren
	.rta spko_term	; Termin kontrollieren
	.rta ko_relais	; Relais kontrollieren
	.rta show_vers	; Version anzeigen

TAB_LEN	.set	*-kontr_tab	; Tabellenlänge


wta_kontr	dec a		; Tastenwert 0-... erzeugen
	asl		; mal 2 = Offset auf Programm
	tax
	cpx #TAB_LEN	; ist Auswahl gültig ?
	bcs ko_end	; nein, Ende

	lda kontr_tab+1,x	; low Byte laden
	pha		; und auf den Stack
	lda kontr_tab,x	; high Byte laden
	pha
ko_end	rts		; Programm ausführen



; =====================================
; nicht freigegebene Kontrollfunktionen
; =====================================

ko_relais
	rts
