 **************************************************************************
;
; Filename : EPR2_JMP.ASM
; -----------------------
;
; (c) 1993 by Thomas Lehmann
;
;
; Jackophone V5.00
;
;
; Sprung aus Eprom 1 (standard) ins Erweiterungs Eprom 2
;
;
;**************************************************************************

MODUL_START	set	*	; Größe des Moduls berechnen




	; ====================================
	; Sprung Tabelle für JMP`s aus Eprom 2
	; ====================================

	jmp key_ende
	jmp set_led
	jmp set_prgled
	jmp put_nt
	jmp keynam_sp
	jmp nxt_task
	jmp task_wait
	jmp task_delay
	jmp init_stk

 jmp key_ltg
 jmp key_trenn
 jmp wta_wahl

; =========================================================================
;
; Funktion	: Sprung ins Erweiterungs-Eprom
;
; Eingang	: -------
;
; Ausgang	: -------
;
; Register	: -------
;
; (c) by Thomas Lehmann März 1993
;
; =========================================================================

JMP_OFFS	set 0

Epr2Jmp	macroseg
	phx
	pha
	ldx #!1		; User oder Prg. JMP
	lda #JMP_OFFS	; Sprungadr. low Byte
	bra epr2_jmp
JMP_OFFS	set JMP_OFFS+3	; nächste Adresse
	endmacro

USR_JMP	equ	0
PRG_JMP	equ	1


	; Auswertung der Cmd`s von serieller Schnittstelle (Eprom2-Task)
	; --------------------------------------------------------------
extcmd_task	bbs ST_EPR2,allg_stat,extcmd_jmp	; Eprom 2 ist verfügbar
	lda #$ff	; Anzahl der 10mS Aussetzer
	jsr task_delay	; Task schlafen legen
	bra extcmd_task


extcmd_jmp	?Epr2Jmp PRG_JMP	; Auswertung der Cmd`s von serieller
acia_init	?Epr2Jmp PRG_JMP	; ACIA 6551 initialisieren
acia_irq	?Epr2Jmp PRG_JMP	; ACIA 6551 IRQ behandeln
key_tmode	?Epr2Jmp USR_JMP	; Terminal Mode einleiten
wta_tmode	?Epr2Jmp USR_JMP	; Wähltaste für Terminal Mode


; Telefonbuch Funktionen
key_telbuch	?Epr2Jmp USR_JMP	; Taste TelefonBuch betätigt
telb_name	?Epr2Jmp USR_JMP	; Einsprung bei Text-Taste, ASCII Wert im Accu
put_telnt	?Epr2Jmp USR_JMP	; akt. gespeicherte Telefonbuch Nummer ausgeben
			; wird über namsp_fkt von keynam_sp aufgerufen








	; ================
	; Sprung ausführen
	; ================
epr2_jmp
	block
	sta jmp_adr	; low Byte Sprung Ziel eintragen
	lda #>EPR2_PAGE2	; dito, high Byte
	sta jmp_adr+1
	pla		; Accu zurück
	bbr ST_EPR2,allg_stat,no_epr2	; Eprom 2 nicht verfügbar

	plx
	jmp (jmp_adr)	; und Sprung ins Eprom 2


	; Eprom 2 nicht verfügbar
	; =======================
no_epr2	cpx #PRG_JMP	; muß User benachrichtigt werden ?
	beq end		; nö, Programm jmp

	ldx #<epr2_txt	; Text bis Display Timeout ausgeben
	ldy #>epr2_txt
	lda #NO_DISPL	; kein Display Prg. ausführen
	sta displ_prg
	jsr puttxt
end	plx
	rts

epr2_txt	byte DSP_CLR
	shift "!! kein Zusatz Eprom !!"	
	bend



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

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

