diff -urN -x '*~' fboot21-orig/bootload/bootload.asm fboot21-atmega1281/bootload/bootload.asm
--- fboot21-orig/bootload/bootload.asm	2008-04-16 00:13:22.000000000 +0200
+++ fboot21-atmega1281/bootload/bootload.asm	2014-09-14 17:24:53.877038560 +0200
@@ -26,15 +26,16 @@
 ;.include "m88def.inc"
 ;.include "m16def.inc"
 ;.include "m162def.inc"
-.include "m168def.inc"
+;.include "m168def.inc"
 
 ;			set the FirstBootStart fuse on these AVRs:
 ;.include "m32def.inc"
 ;.include "m64def.inc"
 ;.include "m644def.inc"
 ;.include "m128def.inc"
-;.include "m1281def.inc"
+.include "m1281def.inc"
 ;.include "m2561def.inc"
+;.include "m328Pdef.inc"
 
 
 ;			remove comment sign to exclude API-Call:
@@ -55,11 +56,11 @@
 ;-------------------------------------------------------------------------
 ;			set both lines equal for inverted onewire mode:
 
-.equ    STX_PORT        = PORTD
-.equ    STX             = PD1
+.equ    STX_PORT        = PORTE
+.equ    STX             = PE1
 
-.equ    SRX_PORT        = PORTD
-.equ    SRX             = PD0
+.equ    SRX_PORT        = PORTE
+.equ    SRX             = PE0
 ;-------------------------------------------------------------------------
 .include "fastload.inc"
 ;-------------------------------------------------------------------------
diff -urN -x '*~' fboot21-orig/bootload/fastload.h fboot21-atmega1281/bootload/fastload.h
--- fboot21-orig/bootload/fastload.h	2008-04-23 22:16:18.000000000 +0200
+++ fboot21-atmega1281/bootload/fastload.h	2013-02-22 11:06:11.000000000 +0100
@@ -6,7 +6,12 @@
 ;-------------------------------------------------------------------------
 .equ	VERSION		= 0x0201
 
+#if defined F_CPU
+.equ	XTAL		= F_CPU		; defined elsewhere (eg Makefile)
+#else
 .equ	XTAL		= 8000000	; 8MHz, not critical 
+#endif
+
 .equ	BootDelay	= XTAL / 3	; 0.33s
 
 ;------------------------------	select UART mode -------------------------
diff -urN -x '*~' fboot21-orig/bootload/Makefile fboot21-atmega1281/bootload/Makefile
--- fboot21-orig/bootload/Makefile	1970-01-01 01:00:00.000000000 +0100
+++ fboot21-atmega1281/bootload/Makefile	2014-07-24 00:36:33.229211922 +0200
@@ -0,0 +1,129 @@
+# AVR-ASM Makefile, derived from the WinAVR template (which
+# is public domain), believed to be neutral to any flavor of "make"
+# (GNU make, BSD make, SysV make)
+
+#MCU = atmega8
+MCU = atmega1281
+
+F_CPU = 18432000
+
+
+TARGET = bootload
+ASRC  = bootload.asm 
+
+ASRC += fastload.inc abaud.inc password.inc command.inc message.inc uart.inc
+ASRC += fastload.h compat.h protocol.h 
+ASRC += watchdog.inc verify.inc apicall.inc
+ASRC += progmega.inc progtiny.inc
+
+#ifneq ($(),0)
+#  ASRC += 
+#else
+#  ASRC += 
+#endif
+
+
+# Place -D or -U options here
+CDEFS = -DF_CPU=$(F_CPU) -D$(MCU)
+
+ASPATH = C:/Programme/Atmel/AVR\ Tools/AvrAssembler2
+DEFS = $(ASPATH)/Appnotes
+
+ifeq "$(OS)" "Windows_NT"
+  PLATFORM=win32
+else
+  PLATFORM=Linux
+endif
+
+WINE =
+ifeq ($(PLATFORM),Linux)
+  WINE = wine
+endif
+
+AS = $(WINE) $(ASPATH)/avrasm2.exe
+ASFLAGS = -I $(DEFS) $(CDEFS)
+
+# Programming support using avrdude. Settings and variables.
+
+AVRDUDE_PROGRAMMER = dragon_isp
+AVRDUDE_PORT = usb
+
+AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
+AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
+
+
+# Uncomment the following if you want avrdude's erase cycle counter.
+# Note that this counter needs to be initialized first using -Yn,
+# see avrdude manual.
+#AVRDUDE_ERASE_COUNTER = -y
+
+# Uncomment the following if you do /not/ wish a verification to be
+# performed after programming the device.
+#AVRDUDE_NO_VERIFY = -V
+
+# Increase verbosity level.  Please use this when submitting bug
+# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude> 
+# to submit bug reports.
+#AVRDUDE_VERBOSE = -v -v
+
+AVRDUDE_BASIC = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
+AVRDUDE_FLAGS = $(AVRDUDE_BASIC) $(AVRDUDE_NO_VERIFY) $(AVRDUDE_VERBOSE) $(AVRDUDE_ERASE_COUNTER)
+
+AVRDUDE = avrdude
+REMOVE = rm -f
+MV = mv -f
+
+
+# Define all listing files.
+#LST = $(ASRC:.asm=.lst)
+
+# Combine all necessary flags and optional flags.
+# Add target processor to flags.
+ALL_ASFLAGS =  $(ASFLAGS)
+
+.PHONY:	all hex eep lst map program flash eeprom tags clean
+
+# Default target.
+all: hex lst
+
+hex: $(TARGET).hex $(ASRC)
+eep: $(TARGET).eep $(ASRC)
+lst: $(TARGET).lst $(ASRC)
+map: $(TARGET).map $(ASRC)
+
+
+# Program the device.  
+program: $(TARGET).hex $(TARGET).eep
+	$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
+
+flash: $(TARGET).hex
+	$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH)
+
+eeprom: $(TARGET).hex $(TARGET).eep
+	$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_EEPROM)
+
+
+$(TARGET).hex: $(ASRC)
+$(TARGET).eep: $(ASRC)
+$(TARGET).lst: $(ASRC)
+$(TARGET).map: $(ASRC)
+
+#.SUFFIXES: .hex .eep .lst
+.SUFFIXES:
+
+%.hex: %.asm
+	$(AS) $(ALL_ASFLAGS) -fI -o $@ $<
+
+%.lst: %.asm
+	@$(AS) $(ALL_ASFLAGS) -v0 -f- -l $@ $<
+
+%.map: %.asm
+	$(AS) $(ALL_ASFLAGS) -v0 -f- -m $@ $<
+
+tags: $(SRC) $(ASRC)
+	ctags $(SRC) $(ASRC)
+
+# Target: clean project.
+clean:
+	$(REMOVE) $(TARGET).hex $(TARGET).eep $(TARGET).obj $(TARGET).map $(TARGET).lst
+
