;**************************************************************************
;
; Filename : IO.D
; ---------------
;
; (c) 1990 by Thomas Lehmann
;
;
; Jackophone V5.00
;
;
; I/O Adressen
;
;
;**************************************************************************



	; ==========================
	; VIA 65C22 Register Offsets
	; ==========================

IORB	equ	0	; Output Register B
IORA	equ	1	; Output Register A
DDRB	equ	2	; Data Direction Register B
DDRA	equ	3	; Data Direction Register A
T1C_L	equ	4	; Timer 1 low Order Counter
T1C_H	equ	5	; Timer 1 high Order Counter
T2C_L	equ	8	; Timer 2 low Order Counter
T2C_H	equ	9	; Timer 2 high Order Counter
ACR	equ	11	; Auxiliary Control Register
PCR	equ	12	; Peripheral Control Register
IFR	equ	13	; Interrupt Flag Register
IER	equ	14	; Interrupt Enable Register


	; VIA 65C22 IFR-Register, Interrupt Quellen
	; -----------------------------------------

IFR_CA2	equ	%00000001	; CA2 Active Edge
IFR_CA1	equ	%00000010	; CA1 Active Edge
IFR_SHIFT	equ	%00000100	; Complete 8 Shifts
IFR_CB2	equ	%00001000	; CB2 Active Edge
IFR_CB1	equ	%00010000	; CB1 Active Edge
IFR_TIM2	equ	%00100000	; Time Out of Timer 2
IFR_TIM1	equ	%01000000	; Time Out of Timer 1
IFR_IRQ	equ	%10000000	; Any Enabled Interrupt







	;=============
	; I/O Adressen
	;=============

Dp_rs	equ	$1000	; RS-Flag Display
Display	equ	$1600	; Display Adresse
Acia	equ	$2000	; ACIA 6551
Dip_sw	equ	$1700	; DIP-Switch

Via	equ	$2800	; Basisadresse VIA 65C22
Via_portb	equ	Via+IORB	; Via Port B
Via_porta	equ	Via+IORA	; Via Port A
Wta_port	equ	Via+IORA	; VIA Port A, Wähltastatur

Tin	equ	$1100	; Tasten Y00-Y0F
Tout_1	equ	Via+$0c	; Tasten X00-X01
Tout_2	equ	$1000	; Tasten X02-X09
Tout_3	equ	$1500	; Tasten X0A-X0F

Port_yl	equ	$1200	; LED YL0-YL7
Port_xl1	equ	$1300	; LED XL0-XL7
Port_xl2	equ	$1400	; LED XL8-XL15

Port_rl23	equ	$1500	; RL2, RL3




	;=====================
	; I/O BIT Definitionen
	;=====================


	; ----------
	; VIA Port A
	; ----------

HTON	equ	%10000000	; PA7, Hörtonerkennung


	; ----------
	; VIA Port B
	; ----------

FS	equ	%00000001	; Rel1, Freisprechen
SU	equ	%00000010	; Rel2, Summer
STR_REL3	equ	%00000100	; Rel3, frei
NSI	equ	%00001000	; RL0,  nsi Relais
NSA	equ	%00010000	; RL1,  nsa Relais
GU	equ	%00100000	; SW0,  Gabelumschalter
UHR	equ	%01000000	; SW1,  Uhrimpuls 100Hz
ANR	equ	%10000000	; SW2,  Anruferkennung

	; ------
	; VIA CB
	; ------

GEB	equ	%10000000	; CB2, Gebührenimpuls


	; ------------------------
	; Port TX-Enable und RL2/3
	; ------------------------

TX_ENABLE	equ	%00100000	; TX-Enable
RL2	equ	%01000000	; Port RL2, frei programmierbar
RL3	equ	%10000000	; Port RL3, frei programmierbar


	; ------------------------------------------
	; Kopie des DIP Switch in Zeropage: dip_stat
	; ------------------------------------------

DIP_1	equ	0	; DIP 1= frei
DIP_FS_MOD	equ	1	; DIP 2= normale FS Fkt. oder 2x betätigen
DIP_GEB	equ	2	; DIP 3= Gebührenauswertung installiert
DIP_HTON	equ	3	; DIP 4= Hörtonauswertung installiert
DIP_ANRLED	equ	4	; DIP 5= LED`s Anzahl Anrufe ein
DIP_SUMTIME	equ	5	; DIP 6= auto Sommer / Winterzeit Umschaltung
DIP_FS	equ	6	; DIP 7= Freisprechen oder Lauthören
DIP_SS	equ	7	; DIP 8= Schlüsselschalter


