mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-10 06:18:53 +02:00
+ ATmega48/ATmega88 support
git-svn-id: trunk@30937 -
This commit is contained in:
parent
aadcf9f6bc
commit
0cd521fc8b
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -8300,6 +8300,7 @@ rtl/embedded/arm/stm32f10x_xl.pp svneol=native#text/pascal
|
|||||||
rtl/embedded/arm/stm32f429.pp svneol=native#text/pascal
|
rtl/embedded/arm/stm32f429.pp svneol=native#text/pascal
|
||||||
rtl/embedded/arm/xmc4500.pp svneol=native#text/pascal
|
rtl/embedded/arm/xmc4500.pp svneol=native#text/pascal
|
||||||
rtl/embedded/avr/atmega128.pp svneol=native#text/plain
|
rtl/embedded/avr/atmega128.pp svneol=native#text/plain
|
||||||
|
rtl/embedded/avr/atmega48fam.pp svneol=native#text/plain
|
||||||
rtl/embedded/avr/atmega8.pp svneol=native#text/plain
|
rtl/embedded/avr/atmega8.pp svneol=native#text/plain
|
||||||
rtl/embedded/avr/attinyx4.pp svneol=native#text/plain
|
rtl/embedded/avr/attinyx4.pp svneol=native#text/plain
|
||||||
rtl/embedded/avr/avrcommon.inc svneol=native#text/plain
|
rtl/embedded/avr/avrcommon.inc svneol=native#text/plain
|
||||||
|
@ -62,10 +62,12 @@ Type
|
|||||||
ct_attiny44,
|
ct_attiny44,
|
||||||
ct_attiny84,
|
ct_attiny84,
|
||||||
|
|
||||||
|
ct_atmega48,
|
||||||
|
ct_atmega88,
|
||||||
|
|
||||||
ct_atmega8,
|
ct_atmega8,
|
||||||
ct_atmega16,
|
ct_atmega16,
|
||||||
ct_atmega32,
|
ct_atmega32,
|
||||||
ct_atmega48,
|
|
||||||
ct_atmega64,
|
ct_atmega64,
|
||||||
ct_atmega128
|
ct_atmega128
|
||||||
);
|
);
|
||||||
@ -118,7 +120,7 @@ Const
|
|||||||
{$WARN 3177 OFF}
|
{$WARN 3177 OFF}
|
||||||
embedded_controllers : array [tcontrollertype] of tcontrollerdatatype =
|
embedded_controllers : array [tcontrollertype] of tcontrollerdatatype =
|
||||||
((
|
((
|
||||||
controllertypestr:'';
|
controllertypestr:'';
|
||||||
controllerunitstr:'';
|
controllerunitstr:'';
|
||||||
flashbase:0;
|
flashbase:0;
|
||||||
flashsize:0;
|
flashsize:0;
|
||||||
@ -126,8 +128,8 @@ Const
|
|||||||
sramsize:0;
|
sramsize:0;
|
||||||
eeprombase:0;
|
eeprombase:0;
|
||||||
eepromsize:0
|
eepromsize:0
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
controllertypestr:'AVRSIM';
|
controllertypestr:'AVRSIM';
|
||||||
controllerunitstr:'AVRSIM';
|
controllerunitstr:'AVRSIM';
|
||||||
flashbase:0;
|
flashbase:0;
|
||||||
@ -138,7 +140,7 @@ Const
|
|||||||
eepromsize:4096;
|
eepromsize:4096;
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
controllertypestr:'ATTINY24';
|
controllertypestr:'ATTINY24';
|
||||||
controllerunitstr:'ATTINYX4';
|
controllerunitstr:'ATTINYX4';
|
||||||
flashbase:0;
|
flashbase:0;
|
||||||
flashsize:2048;
|
flashsize:2048;
|
||||||
@ -148,7 +150,7 @@ Const
|
|||||||
eepromsize:128
|
eepromsize:128
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
controllertypestr:'ATTINY44';
|
controllertypestr:'ATTINY44';
|
||||||
controllerunitstr:'ATTINYX4';
|
controllerunitstr:'ATTINYX4';
|
||||||
flashbase:0;
|
flashbase:0;
|
||||||
flashsize:4096;
|
flashsize:4096;
|
||||||
@ -158,7 +160,7 @@ Const
|
|||||||
eepromsize:256
|
eepromsize:256
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
controllertypestr:'ATTINY84';
|
controllertypestr:'ATTINY84';
|
||||||
controllerunitstr:'ATTINYX4';
|
controllerunitstr:'ATTINYX4';
|
||||||
flashbase:0;
|
flashbase:0;
|
||||||
flashsize:8192;
|
flashsize:8192;
|
||||||
@ -167,8 +169,30 @@ Const
|
|||||||
eeprombase:0;
|
eeprombase:0;
|
||||||
eepromsize:512
|
eepromsize:512
|
||||||
),
|
),
|
||||||
|
|
||||||
(
|
(
|
||||||
controllertypestr:'ATMEGA8';
|
controllertypestr:'ATMEGA48';
|
||||||
|
controllerunitstr:'ATMEGA48FAM';
|
||||||
|
flashbase:0;
|
||||||
|
flashsize:4*1024;
|
||||||
|
srambase:0;
|
||||||
|
sramsize:512;
|
||||||
|
eeprombase:0;
|
||||||
|
eepromsize:256;
|
||||||
|
),
|
||||||
|
(
|
||||||
|
controllertypestr:'ATMEGA88';
|
||||||
|
controllerunitstr:'ATMEGA48FAM';
|
||||||
|
flashbase:0;
|
||||||
|
flashsize:8*1024;
|
||||||
|
srambase:0;
|
||||||
|
sramsize:1024;
|
||||||
|
eeprombase:0;
|
||||||
|
eepromsize:512;
|
||||||
|
),
|
||||||
|
|
||||||
|
(
|
||||||
|
controllertypestr:'ATMEGA8';
|
||||||
controllerunitstr:'ATMEGA8';
|
controllerunitstr:'ATMEGA8';
|
||||||
flashbase:0;
|
flashbase:0;
|
||||||
flashsize:$2000;
|
flashsize:$2000;
|
||||||
@ -178,7 +202,7 @@ Const
|
|||||||
eepromsize:512
|
eepromsize:512
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
controllertypestr:'ATMEGA16';
|
controllertypestr:'ATMEGA16';
|
||||||
controllerunitstr:'ATMEGA16';
|
controllerunitstr:'ATMEGA16';
|
||||||
flashbase:0;
|
flashbase:0;
|
||||||
flashsize:$4000;
|
flashsize:$4000;
|
||||||
@ -188,7 +212,7 @@ Const
|
|||||||
eepromsize:512
|
eepromsize:512
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
controllertypestr:'ATMEGA32';
|
controllertypestr:'ATMEGA32';
|
||||||
controllerunitstr:'ATMEGA32';
|
controllerunitstr:'ATMEGA32';
|
||||||
flashbase:0;
|
flashbase:0;
|
||||||
flashsize:$8000;
|
flashsize:$8000;
|
||||||
@ -197,17 +221,7 @@ Const
|
|||||||
eeprombase:0;
|
eeprombase:0;
|
||||||
eepromsize:512
|
eepromsize:512
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
controllertypestr:'ATMEGA48';
|
|
||||||
controllerunitstr:'ATMEGA48';
|
|
||||||
flashbase:0;
|
|
||||||
flashsize:$1000;
|
|
||||||
srambase:0;
|
|
||||||
sramsize:512;
|
|
||||||
eeprombase:0;
|
|
||||||
eepromsize:256;
|
|
||||||
),
|
|
||||||
(
|
|
||||||
controllertypestr:'ATMEGA64';
|
controllertypestr:'ATMEGA64';
|
||||||
controllerunitstr:'ATMEGA64';
|
controllerunitstr:'ATMEGA64';
|
||||||
flashbase:0;
|
flashbase:0;
|
||||||
@ -217,7 +231,7 @@ Const
|
|||||||
eeprombase:0;
|
eeprombase:0;
|
||||||
eepromsize:2048;
|
eepromsize:2048;
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
controllertypestr:'ATMEGA128';
|
controllertypestr:'ATMEGA128';
|
||||||
controllerunitstr:'ATMEGA128';
|
controllerunitstr:'ATMEGA128';
|
||||||
flashbase:0;
|
flashbase:0;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
#
|
#
|
||||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2015-03-17 rev 30250]
|
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2015-05-20 rev 30890]
|
||||||
#
|
#
|
||||||
default: all
|
default: all
|
||||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos aarch64-darwin
|
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos aarch64-linux aarch64-darwin
|
||||||
BSDs = freebsd netbsd openbsd darwin dragonfly
|
BSDs = freebsd netbsd openbsd darwin dragonfly
|
||||||
UNIXs = linux $(BSDs) solaris qnx haiku aix
|
UNIXs = linux $(BSDs) solaris qnx haiku aix
|
||||||
LIMIT83fs = go32v2 os2 emx watcom msdos
|
LIMIT83fs = go32v2 os2 emx watcom msdos
|
||||||
@ -369,7 +369,7 @@ CPU_UNITS=allwinner_a20
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifeq ($(ARCH),avr)
|
ifeq ($(ARCH),avr)
|
||||||
CPU_UNITS=atmega128 atmega8 avrsim attinyx4
|
CPU_UNITS=atmega128 atmega8 avrsim attinyx4 atmega48fam
|
||||||
endif
|
endif
|
||||||
ifeq ($(ARCH),i386)
|
ifeq ($(ARCH),i386)
|
||||||
CPU_SPECIFIC_COMMON_UNITS=sysutils math classes fgl macpas typinfo types rtlconsts getopts lineinfo
|
CPU_SPECIFIC_COMMON_UNITS=sysutils math classes fgl macpas typinfo types rtlconsts getopts lineinfo
|
||||||
@ -617,6 +617,9 @@ endif
|
|||||||
ifeq ($(FULL_TARGET),i8086-msdos)
|
ifeq ($(FULL_TARGET),i8086-msdos)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 strings heapmgr consoleio $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 strings heapmgr consoleio $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(FULL_TARGET),aarch64-linux)
|
||||||
|
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 strings heapmgr consoleio $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
|
||||||
|
endif
|
||||||
ifeq ($(FULL_TARGET),aarch64-darwin)
|
ifeq ($(FULL_TARGET),aarch64-darwin)
|
||||||
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 strings heapmgr consoleio $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
|
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 strings heapmgr consoleio $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
|
||||||
endif
|
endif
|
||||||
@ -854,6 +857,9 @@ endif
|
|||||||
ifeq ($(FULL_TARGET),i8086-msdos)
|
ifeq ($(FULL_TARGET),i8086-msdos)
|
||||||
override TARGET_LOADERS+=$(LOADERS)
|
override TARGET_LOADERS+=$(LOADERS)
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(FULL_TARGET),aarch64-linux)
|
||||||
|
override TARGET_LOADERS+=$(LOADERS)
|
||||||
|
endif
|
||||||
ifeq ($(FULL_TARGET),aarch64-darwin)
|
ifeq ($(FULL_TARGET),aarch64-darwin)
|
||||||
override TARGET_LOADERS+=$(LOADERS)
|
override TARGET_LOADERS+=$(LOADERS)
|
||||||
endif
|
endif
|
||||||
@ -1092,6 +1098,9 @@ endif
|
|||||||
ifeq ($(FULL_TARGET),i8086-msdos)
|
ifeq ($(FULL_TARGET),i8086-msdos)
|
||||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(FULL_TARGET),aarch64-linux)
|
||||||
|
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||||
|
endif
|
||||||
ifeq ($(FULL_TARGET),aarch64-darwin)
|
ifeq ($(FULL_TARGET),aarch64-darwin)
|
||||||
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
|
||||||
endif
|
endif
|
||||||
@ -1329,6 +1338,9 @@ endif
|
|||||||
ifeq ($(FULL_TARGET),i8086-msdos)
|
ifeq ($(FULL_TARGET),i8086-msdos)
|
||||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(FULL_TARGET),aarch64-linux)
|
||||||
|
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||||
|
endif
|
||||||
ifeq ($(FULL_TARGET),aarch64-darwin)
|
ifeq ($(FULL_TARGET),aarch64-darwin)
|
||||||
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
|
||||||
endif
|
endif
|
||||||
@ -1727,6 +1739,10 @@ STATICLIBPREFIX=
|
|||||||
STATICLIBEXT=.a
|
STATICLIBEXT=.a
|
||||||
SHORTSUFFIX=d16
|
SHORTSUFFIX=d16
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(OS_TARGET),embedded)
|
||||||
|
EXEEXT=.bin
|
||||||
|
SHORTSUFFIX=emb
|
||||||
|
endif
|
||||||
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
|
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
|
||||||
FPCMADE=fpcmade.$(SHORTSUFFIX)
|
FPCMADE=fpcmade.$(SHORTSUFFIX)
|
||||||
ZIPSUFFIX=$(SHORTSUFFIX)
|
ZIPSUFFIX=$(SHORTSUFFIX)
|
||||||
|
@ -84,7 +84,7 @@ endif
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(ARCH),avr)
|
ifeq ($(ARCH),avr)
|
||||||
CPU_UNITS=atmega128 atmega8 avrsim attinyx4
|
CPU_UNITS=atmega128 atmega8 avrsim attinyx4 atmega48fam
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(ARCH),i386)
|
ifeq ($(ARCH),i386)
|
||||||
|
667
rtl/embedded/avr/atmega48fam.pp
Normal file
667
rtl/embedded/avr/atmega48fam.pp
Normal file
@ -0,0 +1,667 @@
|
|||||||
|
{******************************************************************************
|
||||||
|
Register definitions and startup code for ATMEL ATmega48/88
|
||||||
|
|
||||||
|
******************************************************************************}
|
||||||
|
unit atmega48fam;
|
||||||
|
|
||||||
|
{$goto on}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
var
|
||||||
|
PINB : byte absolute $23;
|
||||||
|
DDRB : byte absolute $24;
|
||||||
|
PORTB : byte absolute $25;
|
||||||
|
PINC : byte absolute $26;
|
||||||
|
DDRC : byte absolute $27;
|
||||||
|
PORTC : byte absolute $28;
|
||||||
|
PIND : byte absolute $29;
|
||||||
|
DDRD : byte absolute $2A;
|
||||||
|
PORTD : byte absolute $2B;
|
||||||
|
TIFR0 : byte absolute $35;
|
||||||
|
TIFR1 : byte absolute $36;
|
||||||
|
PCIFR : byte absolute $3B;
|
||||||
|
EIFR : byte absolute $3C;
|
||||||
|
EIMSK : byte absolute $3D;
|
||||||
|
GPIOR0 : byte absolute $3E;
|
||||||
|
EECR : byte absolute $3F;
|
||||||
|
EEDR : byte absolute $40;
|
||||||
|
EEARL : byte absolute $41;
|
||||||
|
EEARH : byte absolute $42;
|
||||||
|
EEAR : word absolute $41;
|
||||||
|
GTCCR : byte absolute $43;
|
||||||
|
TCCR0A : byte absolute $44;
|
||||||
|
TCCR0B : byte absolute $45;
|
||||||
|
TCNT0 : byte absolute $46;
|
||||||
|
OCR0A : byte absolute $47;
|
||||||
|
OCR0B : byte absolute $48;
|
||||||
|
GPIOR1 : byte absolute $4A;
|
||||||
|
GPIOR2 : byte absolute $4B;
|
||||||
|
SPCR : byte absolute $4C;
|
||||||
|
SPSR : byte absolute $4D;
|
||||||
|
SPDR : byte absolute $4E;
|
||||||
|
ACSR : byte absolute $50;
|
||||||
|
SMCR : byte absolute $53;
|
||||||
|
MCUSR : byte absolute $54;
|
||||||
|
MCUCR : byte absolute $55;
|
||||||
|
SPMCSR : byte absolute $57;
|
||||||
|
SPL : byte absolute $5D;
|
||||||
|
SPH : byte absolute $5E;
|
||||||
|
SP : word absolute $5D;
|
||||||
|
SREG : byte absolute $5F;
|
||||||
|
WDTCSR : byte absolute $60;
|
||||||
|
CLKPR : byte absolute $61;
|
||||||
|
PRR : byte absolute $64;
|
||||||
|
OSCCAL : byte absolute $66;
|
||||||
|
PCICR : byte absolute $68;
|
||||||
|
EICRA : byte absolute $69;
|
||||||
|
PCMSK0 : byte absolute $6B;
|
||||||
|
PCMSK1 : byte absolute $6C;
|
||||||
|
PCMSK2 : byte absolute $6D;
|
||||||
|
TIMSK0 : byte absolute $6E;
|
||||||
|
TIMSK1 : byte absolute $6F;
|
||||||
|
TIMSK2 : byte absolute $70;
|
||||||
|
ADCL : byte absolute $78;
|
||||||
|
ADCH : byte absolute $79;
|
||||||
|
ADC : word absolute $78;
|
||||||
|
ADCSRA : byte absolute $7A;
|
||||||
|
ADCSRB : byte absolute $7B;
|
||||||
|
ADMUX : byte absolute $7C;
|
||||||
|
DIDR0 : byte absolute $7E;
|
||||||
|
DIDR1 : byte absolute $7F;
|
||||||
|
TCCR1A : byte absolute $80;
|
||||||
|
TCCR1B : byte absolute $81;
|
||||||
|
TCCR1C : byte absolute $82;
|
||||||
|
TCNT1L : byte absolute $84;
|
||||||
|
TCNT1H : byte absolute $85;
|
||||||
|
TCNT1 : word absolute $84;
|
||||||
|
ICRL : byte absolute $86;
|
||||||
|
ICR1H : byte absolute $87;
|
||||||
|
OCR1AL : byte absolute $88;
|
||||||
|
OCR1AH : byte absolute $89;
|
||||||
|
OCR1A : word absolute $88;
|
||||||
|
OCR1BL : byte absolute $8A;
|
||||||
|
OCR1BH : byte absolute $8B;
|
||||||
|
OCR1B : word absolute $8A;
|
||||||
|
TCCR2A : byte absolute $B0;
|
||||||
|
TCCR2B : byte absolute $B1;
|
||||||
|
TCNT2 : byte absolute $B2;
|
||||||
|
OCR2A : byte absolute $B3;
|
||||||
|
OCR2B : byte absolute $B4;
|
||||||
|
ASSR : byte absolute $B6;
|
||||||
|
TWBR : byte absolute $B8;
|
||||||
|
TWSR : byte absolute $B9;
|
||||||
|
TWAR : byte absolute $BA;
|
||||||
|
TWDR : byte absolute $BB;
|
||||||
|
TWCR : byte absolute $BC;
|
||||||
|
TWAMR : byte absolute $BD;
|
||||||
|
UCSR0A : byte absolute $C0;
|
||||||
|
UCSR0B : byte absolute $C1;
|
||||||
|
UCSR0C : byte absolute $C2;
|
||||||
|
UBRR0L : byte absolute $C4;
|
||||||
|
UBRR0H : byte absolute $C5;
|
||||||
|
UBRR0 : word absolute $C4;
|
||||||
|
UDR0 : byte absolute $C6;
|
||||||
|
|
||||||
|
const
|
||||||
|
{ PINB }
|
||||||
|
PINB7 = 7;
|
||||||
|
PINB6 = 6;
|
||||||
|
PINB5 = 5;
|
||||||
|
PINB4 = 4;
|
||||||
|
PINB3 = 3;
|
||||||
|
PINB2 = 2;
|
||||||
|
PINB1 = 1;
|
||||||
|
PINB0 = 0;
|
||||||
|
|
||||||
|
{ DDRB }
|
||||||
|
DDB7 = 7;
|
||||||
|
DDB6 = 6;
|
||||||
|
DDB5 = 5;
|
||||||
|
DDB4 = 4;
|
||||||
|
DDB3 = 3;
|
||||||
|
DDB2 = 2;
|
||||||
|
DDB1 = 1;
|
||||||
|
DDB0 = 0;
|
||||||
|
|
||||||
|
{ PORTB }
|
||||||
|
PORTB7 = 7;
|
||||||
|
PORTB6 = 6;
|
||||||
|
PORTB5 = 5;
|
||||||
|
PORTB4 = 4;
|
||||||
|
PORTB3 = 3;
|
||||||
|
PORTB2 = 2;
|
||||||
|
PORTB1 = 1;
|
||||||
|
PORTB0 = 0;
|
||||||
|
|
||||||
|
{ PINC }
|
||||||
|
PINC6 = 6;
|
||||||
|
PINC5 = 5;
|
||||||
|
PINC4 = 4;
|
||||||
|
PINC3 = 3;
|
||||||
|
PINC2 = 2;
|
||||||
|
PINC1 = 1;
|
||||||
|
PINC0 = 0;
|
||||||
|
|
||||||
|
{ DDRC }
|
||||||
|
DDC6 = 6;
|
||||||
|
DDC5 = 5;
|
||||||
|
DDC4 = 4;
|
||||||
|
DDC3 = 3;
|
||||||
|
DDC2 = 2;
|
||||||
|
DDC1 = 1;
|
||||||
|
DDC0 = 0;
|
||||||
|
|
||||||
|
{ PORTC }
|
||||||
|
PORTC6 = 6;
|
||||||
|
PORTC5 = 5;
|
||||||
|
PORTC4 = 4;
|
||||||
|
PORTC3 = 3;
|
||||||
|
PORTC2 = 2;
|
||||||
|
PORTC1 = 1;
|
||||||
|
PORTC0 = 0;
|
||||||
|
|
||||||
|
{ PIND }
|
||||||
|
PIND7 = 7;
|
||||||
|
PIND6 = 6;
|
||||||
|
PIND5 = 5;
|
||||||
|
PIND4 = 4;
|
||||||
|
PIND3 = 3;
|
||||||
|
PIND2 = 2;
|
||||||
|
PIND1 = 1;
|
||||||
|
PIND0 = 0;
|
||||||
|
|
||||||
|
{ DDRD }
|
||||||
|
DDD7 = 7;
|
||||||
|
DDD6 = 6;
|
||||||
|
DDD5 = 5;
|
||||||
|
DDD4 = 4;
|
||||||
|
DDD3 = 3;
|
||||||
|
DDD2 = 2;
|
||||||
|
DDD1 = 1;
|
||||||
|
DDD0 = 0;
|
||||||
|
|
||||||
|
{ PORTD }
|
||||||
|
PORTD7 = 7;
|
||||||
|
PORTD6 = 6;
|
||||||
|
PORTD5 = 5;
|
||||||
|
PORTD4 = 4;
|
||||||
|
PORTD3 = 3;
|
||||||
|
PORTD2 = 2;
|
||||||
|
PORTD1 = 1;
|
||||||
|
PORTD0 = 0;
|
||||||
|
|
||||||
|
{ TIFR0 }
|
||||||
|
OCF0B = 2;
|
||||||
|
OCF0A = 1;
|
||||||
|
TOV0 = 0;
|
||||||
|
|
||||||
|
{ TIFR1 }
|
||||||
|
ICF1 = 5;
|
||||||
|
OCF1B = 2;
|
||||||
|
OCF1A = 1;
|
||||||
|
TOV1 = 0;
|
||||||
|
|
||||||
|
{ PCIFR }
|
||||||
|
PCIF2 = 2;
|
||||||
|
PCIF1 = 1;
|
||||||
|
PCIF0 = 0;
|
||||||
|
|
||||||
|
{ EIFR }
|
||||||
|
INTF1 = 1;
|
||||||
|
INTF0 = 0;
|
||||||
|
|
||||||
|
{ EIMSK }
|
||||||
|
INT1 = 1;
|
||||||
|
INT0 = 0;
|
||||||
|
|
||||||
|
{ EECR }
|
||||||
|
EEPM1 = 5;
|
||||||
|
EEPM0 = 4;
|
||||||
|
EERIE = 3;
|
||||||
|
EEMPE = 2;
|
||||||
|
EEPE = 1;
|
||||||
|
EERE = 0;
|
||||||
|
|
||||||
|
{ GTCCR }
|
||||||
|
TSM = 7;
|
||||||
|
PSRASY = 1;
|
||||||
|
PSRSYNC = 0;
|
||||||
|
|
||||||
|
{ TCCR0A }
|
||||||
|
COM0A1 = 7;
|
||||||
|
COM0A0 = 6;
|
||||||
|
COM0B1 = 5;
|
||||||
|
COM0B0 = 4;
|
||||||
|
WGM01 = 1;
|
||||||
|
WGM00 = 0;
|
||||||
|
|
||||||
|
{ TCCR0B }
|
||||||
|
FOC0A = 7;
|
||||||
|
FOC0B = 6;
|
||||||
|
WGM02 = 3;
|
||||||
|
CS02 = 2;
|
||||||
|
CS01 = 1;
|
||||||
|
CS00 = 0;
|
||||||
|
|
||||||
|
{ SPCR }
|
||||||
|
SPIE = 7;
|
||||||
|
SPE = 6;
|
||||||
|
DORD = 5;
|
||||||
|
MSTR = 4;
|
||||||
|
CPOL = 3;
|
||||||
|
CPHA = 2;
|
||||||
|
SPR1 = 1;
|
||||||
|
SPR0 = 0;
|
||||||
|
|
||||||
|
{ SPSR }
|
||||||
|
SPIF = 7;
|
||||||
|
WCOL = 6;
|
||||||
|
SPI2X = 0;
|
||||||
|
|
||||||
|
{ ACSR }
|
||||||
|
ACD = 7;
|
||||||
|
ACBG = 6;
|
||||||
|
ACO = 5;
|
||||||
|
ACI = 4;
|
||||||
|
ACIE = 3;
|
||||||
|
ACIC = 2;
|
||||||
|
ACIS1 = 1;
|
||||||
|
ACIS0 = 0;
|
||||||
|
|
||||||
|
{ SMCR }
|
||||||
|
SM2 = 3;
|
||||||
|
SM1 = 2;
|
||||||
|
SM0 = 1;
|
||||||
|
SE = 0;
|
||||||
|
|
||||||
|
{ MCUSR }
|
||||||
|
WDRF = 3;
|
||||||
|
BORF = 2;
|
||||||
|
EXTRF = 1;
|
||||||
|
PORF = 0;
|
||||||
|
|
||||||
|
{ MCUCR }
|
||||||
|
PUD = 4;
|
||||||
|
IVSEL = 1;
|
||||||
|
IVCE = 0;
|
||||||
|
|
||||||
|
{ SPMCSR }
|
||||||
|
SPMIE = 7;
|
||||||
|
RWWSB = 6;
|
||||||
|
RWWSRE = 4;
|
||||||
|
BLBSET = 3;
|
||||||
|
PGWRT = 2;
|
||||||
|
PGERS = 1;
|
||||||
|
SPMEN = 0;
|
||||||
|
|
||||||
|
{ WDTCSR }
|
||||||
|
WDIF = 7;
|
||||||
|
WDIE = 6;
|
||||||
|
WDP3 = 5;
|
||||||
|
WDCE = 4;
|
||||||
|
WDE = 3;
|
||||||
|
WDP2 = 2;
|
||||||
|
WDP1 = 1;
|
||||||
|
WDP0 = 0;
|
||||||
|
|
||||||
|
{ CLKPR }
|
||||||
|
CLKPCE = 7;
|
||||||
|
CLKPS3 = 3;
|
||||||
|
CLKPS2 = 2;
|
||||||
|
CLKPS1 = 1;
|
||||||
|
CLKPS0 = 0;
|
||||||
|
|
||||||
|
{ PRR }
|
||||||
|
PRTWI = 7;
|
||||||
|
PRTIM2 = 6;
|
||||||
|
PRTIM0 = 5;
|
||||||
|
PRTIM1 = 3;
|
||||||
|
PRSPI = 2;
|
||||||
|
PRUSART0 = 1;
|
||||||
|
PRADC = 0;
|
||||||
|
|
||||||
|
{ PCICR }
|
||||||
|
PCIE2 = 2;
|
||||||
|
PCIE1 = 1;
|
||||||
|
PCIE0 = 0;
|
||||||
|
|
||||||
|
{ EICRA }
|
||||||
|
ISC11 = 3;
|
||||||
|
ISC10 = 2;
|
||||||
|
ISC01 = 1;
|
||||||
|
ISC00 = 0;
|
||||||
|
|
||||||
|
{ PCMSK0 }
|
||||||
|
PCINT7 = 7;
|
||||||
|
PCINT6 = 6;
|
||||||
|
PCINT5 = 5;
|
||||||
|
PCINT4 = 4;
|
||||||
|
PCINT3 = 3;
|
||||||
|
PCINT2 = 2;
|
||||||
|
PCINT1 = 1;
|
||||||
|
PCINT0 = 0;
|
||||||
|
|
||||||
|
{ PCMSK1 }
|
||||||
|
PCINT14 = 6;
|
||||||
|
PCINT13 = 5;
|
||||||
|
PCINT12 = 4;
|
||||||
|
PCINT11 = 3;
|
||||||
|
PCINT10 = 2;
|
||||||
|
PCINT9 = 1;
|
||||||
|
PCINT8 = 0;
|
||||||
|
|
||||||
|
{ PCMSK2 }
|
||||||
|
PCINT23 = 7;
|
||||||
|
PCINT22 = 6;
|
||||||
|
PCINT21 = 5;
|
||||||
|
PCINT20 = 4;
|
||||||
|
PCINT19 = 3;
|
||||||
|
PCINT18 = 2;
|
||||||
|
PCINT17 = 1;
|
||||||
|
PCINT16 = 0;
|
||||||
|
|
||||||
|
{ TIMSK0 }
|
||||||
|
OCIE0B = 2;
|
||||||
|
OCIE0A = 1;
|
||||||
|
TOIE0 = 0;
|
||||||
|
|
||||||
|
{ TIMSK1 }
|
||||||
|
ICIE1 = 5;
|
||||||
|
OCIE1B = 2;
|
||||||
|
OCIE1A = 1;
|
||||||
|
TOIE1 = 0;
|
||||||
|
|
||||||
|
{ TIMSK2 }
|
||||||
|
OCIE2B = 2;
|
||||||
|
OCIE2A = 1;
|
||||||
|
TOIE2 = 0;
|
||||||
|
|
||||||
|
{ ADCSRA }
|
||||||
|
ADEN = 7;
|
||||||
|
ADSC = 6;
|
||||||
|
ADATE = 5;
|
||||||
|
ADIF = 4;
|
||||||
|
ADIE = 3;
|
||||||
|
ADPS2 = 2;
|
||||||
|
ADPS1 = 1;
|
||||||
|
ADPS0 = 0;
|
||||||
|
|
||||||
|
{ ADCSRB }
|
||||||
|
ACME = 6;
|
||||||
|
ADTS2 = 2;
|
||||||
|
ADTS1 = 1;
|
||||||
|
ADTS0 = 0;
|
||||||
|
|
||||||
|
{ ADMUX }
|
||||||
|
REFS1 = 7;
|
||||||
|
REFS0 = 6;
|
||||||
|
ADLAR = 5;
|
||||||
|
MUX3 = 3;
|
||||||
|
MUX2 = 2;
|
||||||
|
MUX1 = 1;
|
||||||
|
MUX0 = 0;
|
||||||
|
|
||||||
|
{ DIDR0 }
|
||||||
|
ADC5D = 5;
|
||||||
|
ADC4D = 4;
|
||||||
|
ADC3D = 3;
|
||||||
|
ADC2D = 2;
|
||||||
|
ADC1D = 1;
|
||||||
|
ADC0D = 0;
|
||||||
|
|
||||||
|
{ DIDR1 }
|
||||||
|
AIN1D = 1;
|
||||||
|
AIN0D = 0;
|
||||||
|
|
||||||
|
{ TCCR1A }
|
||||||
|
COM1A1 = 7;
|
||||||
|
COM1A0 = 6;
|
||||||
|
COM1B1 = 5;
|
||||||
|
COM1B0 = 4;
|
||||||
|
WGM11 = 1;
|
||||||
|
WGM10 = 0;
|
||||||
|
|
||||||
|
{ TCCR1B }
|
||||||
|
ICNC1 = 7;
|
||||||
|
ICES1 = 6;
|
||||||
|
WGM13 = 4;
|
||||||
|
WGM12 = 3;
|
||||||
|
CS12 = 2;
|
||||||
|
CS11 = 1;
|
||||||
|
CS10 = 0;
|
||||||
|
|
||||||
|
{ TCCR1C }
|
||||||
|
FOC1A = 7;
|
||||||
|
FOC1B = 6;
|
||||||
|
|
||||||
|
{ TCCR2A }
|
||||||
|
COM2A1 = 7;
|
||||||
|
COM2A0 = 6;
|
||||||
|
COM2B1 = 5;
|
||||||
|
COM2B0 = 4;
|
||||||
|
WGM21 = 1;
|
||||||
|
WGM20 = 0;
|
||||||
|
|
||||||
|
{ TCCR2B }
|
||||||
|
FOC2A = 7;
|
||||||
|
FOC2B = 6;
|
||||||
|
WGM22 = 3;
|
||||||
|
CS22 = 2;
|
||||||
|
CS21 = 1;
|
||||||
|
CS20 = 0;
|
||||||
|
|
||||||
|
{ ASSR }
|
||||||
|
EXCLK = 6;
|
||||||
|
AS2 = 5;
|
||||||
|
TCN2UB = 4;
|
||||||
|
OCR2AUB = 3;
|
||||||
|
OCR2BUB = 2;
|
||||||
|
TCR2AUB = 1;
|
||||||
|
TCR2BUB = 0;
|
||||||
|
|
||||||
|
{ TWSR }
|
||||||
|
TWS7 = 7;
|
||||||
|
TWS6 = 6;
|
||||||
|
TWS5 = 5;
|
||||||
|
TWS4 = 4;
|
||||||
|
TWS3 = 3;
|
||||||
|
TWPS1 = 1;
|
||||||
|
TWPS0 = 0;
|
||||||
|
|
||||||
|
{ TWAR }
|
||||||
|
TWA6 = 7;
|
||||||
|
TWA5 = 6;
|
||||||
|
TWA4 = 5;
|
||||||
|
TWA3 = 4;
|
||||||
|
TWA2 = 3;
|
||||||
|
TWA1 = 2;
|
||||||
|
TWA0 = 1;
|
||||||
|
|
||||||
|
{ TWCR }
|
||||||
|
TWINT = 7;
|
||||||
|
TWEA = 6;
|
||||||
|
TWSTA = 5;
|
||||||
|
TWSTO = 4;
|
||||||
|
TWWC = 3;
|
||||||
|
TWEN = 2;
|
||||||
|
TWIE = 0;
|
||||||
|
|
||||||
|
{ TWAMR }
|
||||||
|
TWAM6 = 7;
|
||||||
|
TWAM5 = 6;
|
||||||
|
TWAM4 = 5;
|
||||||
|
TWAM3 = 4;
|
||||||
|
TWAM2 = 3;
|
||||||
|
TWAM1 = 2;
|
||||||
|
TWAM0 = 1;
|
||||||
|
|
||||||
|
{ UCSR0A }
|
||||||
|
RXC0 = 7;
|
||||||
|
TXC0 = 6;
|
||||||
|
UDRE0 = 5;
|
||||||
|
FE0 = 4;
|
||||||
|
DOR0 = 3;
|
||||||
|
UPE0 = 2;
|
||||||
|
U2X0 = 1;
|
||||||
|
MPCM0 = 0;
|
||||||
|
|
||||||
|
{ UCSR0B }
|
||||||
|
RXCIE0 = 7;
|
||||||
|
TXCIE0 = 6;
|
||||||
|
UDRIE0 = 5;
|
||||||
|
RXEN0 = 4;
|
||||||
|
TXEN0 = 3;
|
||||||
|
UCVSZ02 = 2;
|
||||||
|
RXB80 = 1;
|
||||||
|
TXB80 = 0;
|
||||||
|
|
||||||
|
{ UCSR0C }
|
||||||
|
UMSEL01 = 7;
|
||||||
|
UMSEL00 = 6;
|
||||||
|
UPM01 = 5;
|
||||||
|
UPM00 = 4;
|
||||||
|
USBS0 = 3;
|
||||||
|
UCVSZ01 = 2;
|
||||||
|
UCVSZ00 = 1;
|
||||||
|
UCPOL0 = 0;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$define RELBRANCHES}
|
||||||
|
|
||||||
|
{$i avrcommon.inc}
|
||||||
|
|
||||||
|
procedure Int00Handler; external name 'Int00Handler';
|
||||||
|
procedure Int01Handler; external name 'Int01Handler';
|
||||||
|
procedure Int02Handler; external name 'Int02Handler';
|
||||||
|
procedure Int03Handler; external name 'Int03Handler';
|
||||||
|
procedure Int04Handler; external name 'Int04Handler';
|
||||||
|
procedure Int05Handler; external name 'Int05Handler';
|
||||||
|
procedure Int06Handler; external name 'Int06Handler';
|
||||||
|
procedure Int07Handler; external name 'Int07Handler';
|
||||||
|
procedure Int08Handler; external name 'Int08Handler';
|
||||||
|
procedure Int09Handler; external name 'Int09Handler';
|
||||||
|
procedure Int10Handler; external name 'Int10Handler';
|
||||||
|
procedure Int11Handler; external name 'Int11Handler';
|
||||||
|
procedure Int12Handler; external name 'Int12Handler';
|
||||||
|
procedure Int13Handler; external name 'Int13Handler';
|
||||||
|
procedure Int14Handler; external name 'Int14Handler';
|
||||||
|
procedure Int15Handler; external name 'Int15Handler';
|
||||||
|
procedure Int16Handler; external name 'Int16Handler';
|
||||||
|
procedure Int17Handler; external name 'Int17Handler';
|
||||||
|
procedure Int18Handler; external name 'Int18Handler';
|
||||||
|
procedure Int19Handler; external name 'Int19Handler';
|
||||||
|
procedure Int20Handler; external name 'Int20Handler';
|
||||||
|
procedure Int21Handler; external name 'Int21Handler';
|
||||||
|
procedure Int22Handler; external name 'Int22Handler';
|
||||||
|
procedure Int23Handler; external name 'Int23Handler';
|
||||||
|
procedure Int24Handler; external name 'Int24Handler';
|
||||||
|
procedure Int25Handler; external name 'Int25Handler';
|
||||||
|
procedure Int26Handler; external name 'Int26Handler';
|
||||||
|
procedure Int27Handler; external name 'Int27Handler';
|
||||||
|
procedure Int28Handler; external name 'Int28Handler';
|
||||||
|
procedure Int29Handler; external name 'Int29Handler';
|
||||||
|
procedure Int30Handler; external name 'Int30Handler';
|
||||||
|
procedure Int31Handler; external name 'Int31Handler';
|
||||||
|
procedure Int32Handler; external name 'Int32Handler';
|
||||||
|
procedure Int33Handler; external name 'Int33Handler';
|
||||||
|
procedure Int34Handler; external name 'Int34Handler';
|
||||||
|
|
||||||
|
procedure _FPC_start; assembler; nostackframe;
|
||||||
|
label
|
||||||
|
_start;
|
||||||
|
asm
|
||||||
|
.init
|
||||||
|
.globl _start
|
||||||
|
|
||||||
|
rjmp _start
|
||||||
|
rjmp Int00Handler
|
||||||
|
rjmp Int01Handler
|
||||||
|
rjmp Int02Handler
|
||||||
|
rjmp Int03Handler
|
||||||
|
rjmp Int04Handler
|
||||||
|
rjmp Int05Handler
|
||||||
|
rjmp Int06Handler
|
||||||
|
rjmp Int07Handler
|
||||||
|
rjmp Int08Handler
|
||||||
|
rjmp Int09Handler
|
||||||
|
rjmp Int10Handler
|
||||||
|
rjmp Int11Handler
|
||||||
|
rjmp Int12Handler
|
||||||
|
rjmp Int13Handler
|
||||||
|
rjmp Int14Handler
|
||||||
|
rjmp Int15Handler
|
||||||
|
rjmp Int16Handler
|
||||||
|
rjmp Int17Handler
|
||||||
|
rjmp Int18Handler
|
||||||
|
rjmp Int19Handler
|
||||||
|
rjmp Int20Handler
|
||||||
|
rjmp Int21Handler
|
||||||
|
rjmp Int22Handler
|
||||||
|
rjmp Int23Handler
|
||||||
|
rjmp Int24Handler
|
||||||
|
rjmp Int25Handler
|
||||||
|
|
||||||
|
{
|
||||||
|
all ATMEL MCUs use the same startup code, the details are
|
||||||
|
governed by defines
|
||||||
|
}
|
||||||
|
{$i start.inc}
|
||||||
|
|
||||||
|
.weak Int00Handler
|
||||||
|
.weak Int01Handler
|
||||||
|
.weak Int02Handler
|
||||||
|
.weak Int03Handler
|
||||||
|
.weak Int04Handler
|
||||||
|
.weak Int05Handler
|
||||||
|
.weak Int06Handler
|
||||||
|
.weak Int07Handler
|
||||||
|
.weak Int08Handler
|
||||||
|
.weak Int09Handler
|
||||||
|
.weak Int10Handler
|
||||||
|
.weak Int11Handler
|
||||||
|
.weak Int12Handler
|
||||||
|
.weak Int13Handler
|
||||||
|
.weak Int14Handler
|
||||||
|
.weak Int15Handler
|
||||||
|
.weak Int16Handler
|
||||||
|
.weak Int17Handler
|
||||||
|
.weak Int18Handler
|
||||||
|
.weak Int19Handler
|
||||||
|
.weak Int20Handler
|
||||||
|
.weak Int21Handler
|
||||||
|
.weak Int22Handler
|
||||||
|
.weak Int23Handler
|
||||||
|
.weak Int24Handler
|
||||||
|
.weak Int25Handler
|
||||||
|
|
||||||
|
.set Int00Handler, Default_IRQ_handler
|
||||||
|
.set Int01Handler, Default_IRQ_handler
|
||||||
|
.set Int02Handler, Default_IRQ_handler
|
||||||
|
.set Int03Handler, Default_IRQ_handler
|
||||||
|
.set Int04Handler, Default_IRQ_handler
|
||||||
|
.set Int05Handler, Default_IRQ_handler
|
||||||
|
.set Int06Handler, Default_IRQ_handler
|
||||||
|
.set Int07Handler, Default_IRQ_handler
|
||||||
|
.set Int08Handler, Default_IRQ_handler
|
||||||
|
.set Int09Handler, Default_IRQ_handler
|
||||||
|
.set Int10Handler, Default_IRQ_handler
|
||||||
|
.set Int11Handler, Default_IRQ_handler
|
||||||
|
.set Int12Handler, Default_IRQ_handler
|
||||||
|
.set Int13Handler, Default_IRQ_handler
|
||||||
|
.set Int14Handler, Default_IRQ_handler
|
||||||
|
.set Int15Handler, Default_IRQ_handler
|
||||||
|
.set Int16Handler, Default_IRQ_handler
|
||||||
|
.set Int17Handler, Default_IRQ_handler
|
||||||
|
.set Int18Handler, Default_IRQ_handler
|
||||||
|
.set Int19Handler, Default_IRQ_handler
|
||||||
|
.set Int20Handler, Default_IRQ_handler
|
||||||
|
.set Int21Handler, Default_IRQ_handler
|
||||||
|
.set Int22Handler, Default_IRQ_handler
|
||||||
|
.set Int23Handler, Default_IRQ_handler
|
||||||
|
.set Int24Handler, Default_IRQ_handler
|
||||||
|
.set Int25Handler, Default_IRQ_handler
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
Loading…
Reference in New Issue
Block a user