#
# $Id: atmega128 244 2002-10-31 19:44:58Z telka $
#
# JTAG declarations for ATmega128
# Copyright (C) 2002 ETC s.r.o.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
#
# Written by Marcel Telka <marcel@telka.sk>, 2002.
#
# Documentation:
# [1] Atmel Corporation, "ATmega128(L) - 8-bit AVR Microcontroller with
#     128K Bytes In-System Programmable Flash", 2002, Rev. 2467E-AVR-05/02
#

# mandatory data registers
register	BSR	205	# see Table 106 in [1]
register	BR	1
# optional data registers
register	DIR	32
# user-defined registers
register	RR	1	# Reset Register
register	PER	16	# Programming Enable Register
register	PCR	15	# Programming Command Register
register	VFPLR	2048	# Virtual Flash Page Load Register
register	VFPRR	2056	# Virtual Flash Page Read Register

# see page 250 in [1]
instruction length 4
# mandatory instructions
instruction EXTEST		0000	BSR	# see page 250 in [1]
instruction SAMPLE/PRELOAD	0010	BSR	# see page 251 in [1]
instruction BYPASS		1111	BR	# see page 251 in [1]
# optional instructions
instruction IDCODE		0001	DIR	# see page 250 in [1]
# user-defined instructions
instruction AVR_RESET		1100	RR	# see page 251 and page 303 in [1]
# unknown data registers for PRIVATE? instructions
#instruction PRIVATE0		1000	# see page 246 in [1]
#instruction PRIVATE1		1001	# see page 246 in [1]
#instruction PRIVATE2		1010	# see page 246 in [1]
#instruction PRIVATE3		1011	# see page 246 in [1]
instruction PROG_ENABLE		0100	PER	# see page 303 in [1]
instruction PROG_COMMANDS	0101	PCR	# see page 304 in [1]
instruction PROG_PAGELOAD	0110	VFPLR	# see page 304 in [1]
instruction PROG_PAGEREAD	0111	VFPRR	# see page 304 in [1]
