.FILE X:\ENTWICKLUNG\PVS_AVR_CPU\PVS_AVRCO\TESTBIT\MainTestBit.pas ; Compiled by E-LAB AVRco PASCAL Compiler Rev 5.02.05 ; Version : Profi ; ; Licenced to : PVS Thorsten Deck ; ; (c)E-LAB Computers, Grombacherstr. 27 e-mail info@e-lab.de ; D-74906 Bad Rappenau Tel. 07268/9124-0 Fax. 07268/9124-24 ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; Source File : MainTestBit.pas ; Compiled : 21. Mai 2012 16:55:34 ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .LARGE .XMEGA .ROMEND 41FFFh; .APPEND 3FFFFh; .EEPROMEND 00FFFh; ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; Constants and Variables definition ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; === Internal used memory and constants === FALSE .EQU 000h ; const TRUE .EQU 0FFh ; const NIL .EQU 000h ; const PI .EQU 000h ; const COMPILERREV .EQU 1F6h ; const COMPILERBUILD_Y .EQU 00Ch ; const COMPILERBUILD_M .EQU 005h ; const COMPILERBUILD_D .EQU 014h ; const COMPILEYEAR .EQU 00Ch ; const COMPILEMONTH .EQU 005h ; const COMPILEDAY .EQU 015h ; const COMPILEHOUR .EQU 010h ; const COMPILEMINUTE .EQU 037h ; const PROJECTBUILD .EQU 002h ; const OPTIMISERREV .EQU 0301h ; const OPTIMISERBUILD .EQU 0001h ; const INTFLAG .EQU 007h ; const _EEPROM .EQU 006h ; const _SIGN .EQU 005h ; const _WAITLCD .EQU 004h ; const _STRCONST .EQU 004h ; const _DEVICE .EQU 003h ; const _NEGATIVE .EQU 002h ; const _ERRFLAG .EQU 001h ; const _I2C2BYTE .EQU 000h ; const _TOGGLE300 .EQU 000h ; const _LCDLOWER .EQU 001h ; const _DSP7RFR .EQU 002h ; const _PWRSAVFLG .EQU 003h ; const _F64StrInt .EQU 004h ; const _F64StrFrac .EQU 005h ; const _FREQCNTFLAG .EQU 006h ; const _AUTOACK .EQU 007h ; const _ACCGLO .EQU 000h ; var Data byte _ACCGHI .EQU 001h ; var Data byte _ACCB .EQU 010h ; var Data byte _ACCA .EQU 011h ; var Data byte _ACCALO .EQU 012h ; var Data byte _ACCAHI .EQU 013h ; var Data byte _ACCDLO .EQU 014h ; var Data byte _ACCDHI .EQU 015h ; var Data byte _ACCELO .EQU 016h ; var Data byte _ACCEHI .EQU 017h ; var Data byte _ACCFLO .EQU 018h ; var Data byte _ACCFHI .EQU 019h ; var Data byte _ACCBLO .EQU 01Ah ; var Data byte _ACCBHI .EQU 01Bh ; var Data byte _FRAMEPTR .EQU 01Ch ; var Data byte _FPTRHI .EQU 01Dh ; var Data byte _ACCCLO .EQU 01Eh ; var Data byte _ACCCHI .EQU 01Fh ; var Data byte FLAGS .EQU 002h ; var Data byte FLAGS2 .EQU 003h ; var Data byte _SYSTFLAGS .EQU 004h ; var Data byte SYSTICK .EQU 00Ah ; const PROCCLOCK .EQU 1DE2F9Bh ; const DECIMALSEP .EQU 02Eh ; const CPU_ID .EQU 1E9842h ; const Flash_Page_Size .EQU 200h ; const ROMconstPage .EQU 0FFFFFFFFFFFFFFFFh ; const STACKSIZE .EQU 512h ; const FRAMESIZE .EQU 512h ; const _SCRATCH0 .EQU 000h ; var Data byte _SCRATCH1 .EQU 001h ; var Data byte _SCRATCH2 .EQU 002h ; var Data byte _SCRATCH3 .EQU 003h ; var Data byte _SCRATCH4 .EQU 004h ; var Data byte _SCRATCH5 .EQU 005h ; var Data byte _SCRATCH6 .EQU 006h ; var Data byte _SCRATCH7 .EQU 007h ; var Data byte GPIO8 .EQU 008h ; var Data byte GPIO9 .EQU 009h ; var Data byte GPIOA .EQU 00Ah ; var Data byte GPIOB .EQU 00Bh ; var Data byte GPIOC .EQU 00Ch ; var Data byte GPIOD .EQU 00Dh ; var Data byte GPIOE .EQU 00Eh ; var Data byte GPIOF .EQU 00Fh ; var Data byte VPORT0DDR .EQU 010h ; var Data byte VPORT0PORT .EQU 011h ; var Data byte VPORT0PIN .EQU 012h ; var Data byte VPORT0INTFLAGS .EQU 013h ; var Data byte VPORT1DDR .EQU 014h ; var Data byte VPORT1PORT .EQU 015h ; var Data byte VPORT1PIN .EQU 016h ; var Data byte VPORT1INTFLAGS .EQU 017h ; var Data byte VPORT2DDR .EQU 018h ; var Data byte VPORT2PORT .EQU 019h ; var Data byte VPORT2PIN .EQU 01Ah ; var Data byte VPORT2INTFLAGS .EQU 01Bh ; var Data byte VPORT3DDR .EQU 01Ch ; var Data byte VPORT3PORT .EQU 01Dh ; var Data byte VPORT3PIN .EQU 01Eh ; var Data byte VPORT3INTFLAGS .EQU 01Fh ; var Data byte CCP .EQU 034h ; var pData byte RAMPD .EQU 038h ; var pData byte RAMPX .EQU 039h ; var pData byte RAMPY .EQU 03Ah ; var pData byte RAMPZ .EQU 03Bh ; var pData byte EIND .EQU 03Ch ; var pData byte SPL .EQU 03Dh ; var pData byte SPH .EQU 03Eh ; var pData byte SREG .EQU 03Fh ; var pData byte CLOCKCTRL .EQU 040h ; var pData byte CLOCKPSCTRL .EQU 041h ; var pData byte CLOCKLOCK .EQU 042h ; var pData byte CLOCKRTCCTRL .EQU 043h ; var pData byte SLEEPCTRL .EQU 048h ; var pData byte OSCCTRL .EQU 050h ; var pData byte OSCSTATUS .EQU 051h ; var pData byte XOSCCTRL .EQU 052h ; var pData byte XOSCFAIL .EQU 053h ; var pData byte RC32KCAL .EQU 054h ; var pData byte PLLCTRL .EQU 055h ; var pData byte DFLLCTRL .EQU 056h ; var pData byte DFLL32CTRL .EQU 060h ; var iData byte DFLL32CALA .EQU 062h ; var iData byte DFLL32CALB .EQU 063h ; var iData byte DFLL32COMP0 .EQU 064h ; var iData byte DFLL32COMP1 .EQU 065h ; var iData byte DFLL32COMP2 .EQU 066h ; var iData byte DFLL32COMP3 .EQU 067h ; var iData byte DFLL2CTRL .EQU 068h ; var iData byte DFLL2CALA .EQU 06Ah ; var iData byte DFLL2CALB .EQU 06Bh ; var iData byte DFLL2COMP0 .EQU 06Ch ; var iData byte DFLL2COMP1 .EQU 06Dh ; var iData byte DFLL2COMP2 .EQU 06Eh ; var iData byte DFLL2COMP3 .EQU 06Fh ; var iData byte PRGEN .EQU 070h ; var iData byte PRPA .EQU 071h ; var iData byte PRPB .EQU 072h ; var iData byte PRPC .EQU 073h ; var iData byte PRPD .EQU 074h ; var iData byte PRPE .EQU 075h ; var iData byte PRPF .EQU 076h ; var iData byte RESETSTATUS .EQU 078h ; var iData byte RESETCTRL .EQU 079h ; var iData byte WDTCTRL .EQU 080h ; var iData byte WINCTRL .EQU 081h ; var iData byte WDTSTATUS .EQU 082h ; var iData byte DEVID0 .EQU 090h ; var iData byte DEVID1 .EQU 091h ; var iData byte DEVID2 .EQU 092h ; var iData byte REVID .EQU 093h ; var iData byte JTAGUID .EQU 094h ; var iData byte MCUCR .EQU 096h ; var iData byte EVSYSLOCK .EQU 098h ; var iData byte AWEXLOCK .EQU 099h ; var iData byte PMICSTATUS .EQU 0A0h ; var iData byte PMICINTPRI .EQU 0A1h ; var iData byte PMICCTRL .EQU 0A2h ; var iData byte MPCMASK .EQU 0B0h ; var iData byte VPCTRLA .EQU 0B2h ; var iData byte VPCTRLB .EQU 0B3h ; var iData byte CLKEVOUT .EQU 0B4h ; var iData byte AESCTRL .EQU 0C0h ; var iData byte AESSTATUS .EQU 0C1h ; var iData byte AESSTATE .EQU 0C2h ; var iData byte AESKEY .EQU 0C3h ; var iData byte AESINTCTRL .EQU 0C4h ; var iData byte DMACTRL .EQU 100h ; var iData byte DMAINTFLAGS .EQU 103h ; var iData byte DMASTATUS .EQU 104h ; var iData byte DMATEMPL .EQU 106h ; var iData byte DMATEMPH .EQU 107h ; var iData byte DMACH0CTRLA .EQU 110h ; var iData byte DMACH0CTRLB .EQU 111h ; var iData byte DMACH0ADDRCTRL .EQU 112h ; var iData byte DMACH0TRIGSRC .EQU 113h ; var iData byte DMACH0TRFCNTL .EQU 114h ; var iData byte DMACH0TRFCNTH .EQU 115h ; var iData byte DMACH0REPCNT .EQU 116h ; var iData byte DMACH0SRCADDR0 .EQU 118h ; var iData byte DMACH0SRCADDR1 .EQU 119h ; var iData byte DMACH0SRCADDR2 .EQU 11Ah ; var iData byte DMACH0DESTADDR0 .EQU 11Ch ; var iData byte DMACH0DESTADDR1 .EQU 11Dh ; var iData byte DMACH0DESTADDR2 .EQU 11Eh ; var iData byte DMACH1CTRLA .EQU 120h ; var iData byte DMACH1CTRLB .EQU 121h ; var iData byte DMACH1ADDRCTRL .EQU 122h ; var iData byte DMACH1TRIGSRC .EQU 123h ; var iData byte DMACH1TRFCNTL .EQU 124h ; var iData byte DMACH1TRFCNTH .EQU 125h ; var iData byte DMACH1REPCNT .EQU 126h ; var iData byte DMACH1SRCADDR0 .EQU 128h ; var iData byte DMACH1SRCADDR1 .EQU 129h ; var iData byte DMACH1SRCADDR2 .EQU 12Ah ; var iData byte DMACH1DESTADDR0 .EQU 12Ch ; var iData byte DMACH1DESTADDR1 .EQU 12Dh ; var iData byte DMACH1DESTADDR2 .EQU 12Eh ; var iData byte DMACH2CTRLA .EQU 130h ; var iData byte DMACH2CTRLB .EQU 131h ; var iData byte DMACH2ADDRCTRL .EQU 132h ; var iData byte DMACH2TRIGSRC .EQU 133h ; var iData byte DMACH2TRFCNTL .EQU 134h ; var iData byte DMACH2TRFCNTH .EQU 135h ; var iData byte DMACH2REPCNT .EQU 136h ; var iData byte DMACH2SRCADDR0 .EQU 138h ; var iData byte DMACH2SRCADDR1 .EQU 139h ; var iData byte DMACH2SRCADDR2 .EQU 13Ah ; var iData byte DMACH2DESTADDR0 .EQU 13Ch ; var iData byte DMACH2DESTADDR1 .EQU 13Dh ; var iData byte DMACH2DESTADDR2 .EQU 13Eh ; var iData byte DMACH3CTRLA .EQU 140h ; var iData byte DMACH3CTRLB .EQU 141h ; var iData byte DMACH3ADDRCTRL .EQU 142h ; var iData byte DMACH3TRIGSRC .EQU 143h ; var iData byte DMACH3TRFCNTL .EQU 144h ; var iData byte DMACH3TRFCNTH .EQU 145h ; var iData byte DMACH3REPCNT .EQU 146h ; var iData byte DMACH3SRCADDR0 .EQU 148h ; var iData byte DMACH3SRCADDR1 .EQU 149h ; var iData byte DMACH3SRCADDR2 .EQU 14Ah ; var iData byte DMACH3DESTADDR0 .EQU 14Ch ; var iData byte DMACH3DESTADDR1 .EQU 14Dh ; var iData byte DMACH3DESTADDR2 .EQU 14Eh ; var iData byte EVCH0MUX .EQU 180h ; var iData byte EVCH1MUX .EQU 181h ; var iData byte EVCH2MUX .EQU 182h ; var iData byte EVCH3MUX .EQU 183h ; var iData byte EVCH4MUX .EQU 184h ; var iData byte EVCH5MUX .EQU 185h ; var iData byte EVCH6MUX .EQU 186h ; var iData byte EVCH7MUX .EQU 187h ; var iData byte EVCH0CTRL .EQU 188h ; var iData byte EVCH1CTRL .EQU 189h ; var iData byte EVCH2CTRL .EQU 18Ah ; var iData byte EVCH3CTRL .EQU 18Bh ; var iData byte EVCH4CTRL .EQU 18Ch ; var iData byte EVCH5CTRL .EQU 18Dh ; var iData byte EVCH6CTRL .EQU 18Eh ; var iData byte EVCH7CTRL .EQU 18Fh ; var iData byte EVSTROBE .EQU 190h ; var iData byte EVDATA .EQU 191h ; var iData byte NVMADDR0 .EQU 1C0h ; var iData byte NVMADDR1 .EQU 1C1h ; var iData byte NVMADDR2 .EQU 1C2h ; var iData byte NVMDATA0 .EQU 1C4h ; var iData byte NVMDATA1 .EQU 1C5h ; var iData byte NVMDATA2 .EQU 1C6h ; var iData byte NVMCMD .EQU 1CAh ; var iData byte NVMCTRLA .EQU 1CBh ; var iData byte NVMCTRLB .EQU 1CCh ; var iData byte NVMINTCTRL .EQU 1CDh ; var iData byte NVMSTATUS .EQU 1CFh ; var iData byte NVMLOCKBITS .EQU 1D0h ; var iData byte ADCACTRLA .EQU 200h ; var iData byte ADCACTRLB .EQU 201h ; var iData byte ADCAREFCTRL .EQU 202h ; var iData byte ADCAEVCTRL .EQU 203h ; var iData byte ADCAPRESCALER .EQU 204h ; var iData byte ADCAINTFLAGS .EQU 206h ; var iData byte ADCATEMP .EQU 207h ; var iData byte ADCACALL .EQU 20Ch ; var iData byte ADCACALH .EQU 20Dh ; var iData byte ADCACH0RESL .EQU 210h ; var iData byte ADCACH0RESH .EQU 211h ; var iData byte ADCACH1RESL .EQU 212h ; var iData byte ADCACH1RESH .EQU 213h ; var iData byte ADCACH2RESL .EQU 214h ; var iData byte ADCACH2RESH .EQU 215h ; var iData byte ADCACH3RESL .EQU 216h ; var iData byte ADCACH3RESH .EQU 217h ; var iData byte ADCACMPL .EQU 218h ; var iData byte ADCACMPH .EQU 219h ; var iData byte ADCACH0CTRL .EQU 220h ; var iData byte ADCACH0MUXCTRL .EQU 221h ; var iData byte ADCACH0INTCTRL .EQU 222h ; var iData byte ADCACH0INTFLAG .EQU 223h ; var iData byte ADCARESLCH0 .EQU 224h ; var iData byte ADCARESHCH0 .EQU 225h ; var iData byte ADCACH1CTRL .EQU 228h ; var iData byte ADCACH1MUXCTRL .EQU 229h ; var iData byte ADCACH1INTCTRL .EQU 22Ah ; var iData byte ADCACH1INTFLAG .EQU 22Bh ; var iData byte ADCARESLCH1 .EQU 22Ch ; var iData byte ADCARESHCH1 .EQU 22Dh ; var iData byte ADCACH2CTRL .EQU 230h ; var iData byte ADCACH2MUXCTRL .EQU 231h ; var iData byte ADCACH2INTCTRL .EQU 232h ; var iData byte ADCACH2INTFLAG .EQU 233h ; var iData byte ADCARESLCH2 .EQU 234h ; var iData byte ADCARESHCH2 .EQU 235h ; var iData byte ADCACH3CTRL .EQU 238h ; var iData byte ADCACH3MUXCTRL .EQU 239h ; var iData byte ADCACH3INTCTRL .EQU 23Ah ; var iData byte ADCACH3INTFLAG .EQU 23Bh ; var iData byte ADCARESLCH3 .EQU 23Ch ; var iData byte ADCARESHCH3 .EQU 23Dh ; var iData byte ADCBCTRLA .EQU 240h ; var iData byte ADCBCTRLB .EQU 241h ; var iData byte ADCBREFCTRL .EQU 242h ; var iData byte ADCBEVCTRL .EQU 243h ; var iData byte ADCBPRESCALER .EQU 244h ; var iData byte ADCBINTFLAGS .EQU 246h ; var iData byte ADCBTEMP .EQU 247h ; var iData byte ADCBCALL .EQU 24Ch ; var iData byte ADCBCALH .EQU 24Dh ; var iData byte ADCBCH0RESL .EQU 250h ; var iData byte ADCBCH0RESH .EQU 251h ; var iData byte ADCBCH1RESL .EQU 252h ; var iData byte ADCBCH1RESH .EQU 253h ; var iData byte ADCBCH2RESL .EQU 254h ; var iData byte ADCBCH2RESH .EQU 255h ; var iData byte ADCBCH3RESL .EQU 256h ; var iData byte ADCBCH3RESH .EQU 257h ; var iData byte ADCBCMPL .EQU 258h ; var iData byte ADCBCMPH .EQU 259h ; var iData byte ADCBCH0CTRL .EQU 260h ; var iData byte ADCBCH0MUXCTRL .EQU 261h ; var iData byte ADCBCH0INTCTRL .EQU 262h ; var iData byte ADCBCH0INTFLAG .EQU 263h ; var iData byte ADCBRESLCH0 .EQU 264h ; var iData byte ADCBRESHCH0 .EQU 265h ; var iData byte ADCBCH1CTRL .EQU 268h ; var iData byte ADCBCH1MUXCTRL .EQU 269h ; var iData byte ADCBCH1INTCTRL .EQU 26Ah ; var iData byte ADCBCH1INTFLAG .EQU 26Bh ; var iData byte ADCBRESLCH1 .EQU 26Ch ; var iData byte ADCBRESHCH1 .EQU 26Dh ; var iData byte ADCBCH2CTRL .EQU 270h ; var iData byte ADCBCH2MUXCTRL .EQU 271h ; var iData byte ADCBCH2INTCTRL .EQU 272h ; var iData byte ADCBCH2INTFLAG .EQU 273h ; var iData byte ADCBRESLCH2 .EQU 274h ; var iData byte ADCBRESHCH2 .EQU 275h ; var iData byte ADCBCH3CTRL .EQU 278h ; var iData byte ADCBCH3MUXCTRL .EQU 279h ; var iData byte ADCBCH3INTCTRL .EQU 27Ah ; var iData byte ADCBCH3INTFLAG .EQU 27Bh ; var iData byte ADCBRESLCH3 .EQU 27Ch ; var iData byte ADCBRESHCH3 .EQU 27Dh ; var iData byte DACBCTRLA .EQU 320h ; var iData byte DACBCTRLB .EQU 321h ; var iData byte DACBCTRLC .EQU 322h ; var iData byte DACBEVCTRL .EQU 323h ; var iData byte DACBTIMCTRL .EQU 324h ; var iData byte DACBSTATUS .EQU 325h ; var iData byte DACBGAINCAL .EQU 328h ; var iData byte DACBOFFSETCAL .EQU 329h ; var iData byte DACBCH0DATAL .EQU 338h ; var iData byte DACBCH0DATAH .EQU 339h ; var iData byte DACBCH1DATAL .EQU 33Ah ; var iData byte DACBCH1DATAH .EQU 33Bh ; var iData byte ACAAC0CTRL .EQU 380h ; var iData byte ACAAC1CTRL .EQU 381h ; var iData byte ACAAC0MUXCTR .EQU 382h ; var iData byte ACAAC1MUXCTR .EQU 383h ; var iData byte ACACTRLA .EQU 384h ; var iData byte ACACTRLB .EQU 385h ; var iData byte ACAWINCTRL .EQU 386h ; var iData byte ACASTATUS .EQU 387h ; var iData byte ACBAC0CTRL .EQU 390h ; var iData byte ACBAC1CTRL .EQU 391h ; var iData byte ACBAC0MUXCTR .EQU 392h ; var iData byte ACBAC1MUXCTR .EQU 393h ; var iData byte ACBCTRLA .EQU 394h ; var iData byte ACBCTRLB .EQU 395h ; var iData byte ACBWINCTRL .EQU 396h ; var iData byte ACBSTATUS .EQU 397h ; var iData byte RTCCTRL .EQU 400h ; var iData byte RTCSTATUS .EQU 401h ; var iData byte RTCINTCTRL .EQU 402h ; var iData byte RTCINTFLAGS .EQU 403h ; var iData byte RTCTEMP .EQU 404h ; var iData byte RTCCNTL .EQU 408h ; var iData byte RTCCNTH .EQU 409h ; var iData byte RTCPERL .EQU 40Ah ; var iData byte RTCPERH .EQU 40Bh ; var iData byte RTCCOMPL .EQU 40Ch ; var iData byte RTCCOMPH .EQU 40Dh ; var iData byte TWICCTRL .EQU 480h ; var iData byte TWICMASTERCTRLA .EQU 481h ; var iData byte TWICMASTERCTRLB .EQU 482h ; var iData byte TWICMASTERCTRLC .EQU 483h ; var iData byte TWICMASTERSTATUS .EQU 484h ; var iData byte TWICMASTERBAUD .EQU 485h ; var iData byte TWICMASTERADDR .EQU 486h ; var iData byte TWICMASTERDATA .EQU 487h ; var iData byte TWICSLAVECTRLA .EQU 488h ; var iData byte TWICSLAVECTRLB .EQU 489h ; var iData byte TWICSLAVESTATUS .EQU 48Ah ; var iData byte TWICSLAVEADDR .EQU 48Bh ; var iData byte TWICSLAVEDATA .EQU 48Ch ; var iData byte TWICSLAVEADDRMASK .EQU 48Dh ; var iData byte TWIECTRL .EQU 4A0h ; var iData byte TWIEMASTERCTRLA .EQU 4A1h ; var iData byte TWIEMASTERCTRLB .EQU 4A2h ; var iData byte TWIEMASTERCTRLC .EQU 4A3h ; var iData byte TWIEMASTERSTATUS .EQU 4A4h ; var iData byte TWIEMASTERBAUD .EQU 4A5h ; var iData byte TWIEMASTERADDR .EQU 4A6h ; var iData byte TWIEMASTERDATA .EQU 4A7h ; var iData byte TWIESLAVECTRLA .EQU 4A8h ; var iData byte TWIESLAVECTRLB .EQU 4A9h ; var iData byte TWIESLAVESTATUS .EQU 4AAh ; var iData byte TWIESLAVEADDR .EQU 4ABh ; var iData byte TWIESLAVEDATA .EQU 4ACh ; var iData byte TWIESLAVEADDRMASK .EQU 4ADh ; var iData byte DDRA .EQU 600h ; var iData byte DIRSETA .EQU 601h ; var iData byte DIRCLRA .EQU 602h ; var iData byte DIRTGLA .EQU 603h ; var iData byte PORTA .EQU 604h ; var iData byte OUTSETA .EQU 605h ; var iData byte OUTCLRA .EQU 606h ; var iData byte OUTTGLA .EQU 607h ; var iData byte PINA .EQU 608h ; var iData byte INTCTRLA .EQU 609h ; var iData byte INT0MASKA .EQU 60Ah ; var iData byte INT1MASKA .EQU 60Bh ; var iData byte INTFLAGSA .EQU 60Ch ; var iData byte PIN0CTRLA .EQU 610h ; var iData byte PIN1CTRLA .EQU 611h ; var iData byte PIN2CTRLA .EQU 612h ; var iData byte PIN3CTRLA .EQU 613h ; var iData byte PIN4CTRLA .EQU 614h ; var iData byte PIN5CTRLA .EQU 615h ; var iData byte PIN6CTRLA .EQU 616h ; var iData byte PIN7CTRLA .EQU 617h ; var iData byte DDRB .EQU 620h ; var iData byte DIRSETB .EQU 621h ; var iData byte DIRCLRB .EQU 622h ; var iData byte DIRTGLB .EQU 623h ; var iData byte PORTB .EQU 624h ; var iData byte OUTSETB .EQU 625h ; var iData byte OUTCLRB .EQU 626h ; var iData byte OUTTGLB .EQU 627h ; var iData byte PINB .EQU 628h ; var iData byte INTCTRLB .EQU 629h ; var iData byte INT0MASKB .EQU 62Ah ; var iData byte INT1MASKB .EQU 62Bh ; var iData byte INTFLAGSB .EQU 62Ch ; var iData byte PIN0CTRLB .EQU 630h ; var iData byte PIN1CTRLB .EQU 631h ; var iData byte PIN2CTRLB .EQU 632h ; var iData byte PIN3CTRLB .EQU 633h ; var iData byte PIN4CTRLB .EQU 634h ; var iData byte PIN5CTRLB .EQU 635h ; var iData byte PIN6CTRLB .EQU 636h ; var iData byte PIN7CTRLB .EQU 637h ; var iData byte DDRC .EQU 640h ; var iData byte DIRSETC .EQU 641h ; var iData byte DIRCLRC .EQU 642h ; var iData byte DIRTGLC .EQU 643h ; var iData byte PORTC .EQU 644h ; var iData byte OUTSETC .EQU 645h ; var iData byte OUTCLRC .EQU 646h ; var iData byte OUTTGLC .EQU 647h ; var iData byte PINC .EQU 648h ; var iData byte INTCTRLC .EQU 649h ; var iData byte INT0MASKC .EQU 64Ah ; var iData byte INT1MASKC .EQU 64Bh ; var iData byte INTFLAGSC .EQU 64Ch ; var iData byte PIN0CTRLC .EQU 650h ; var iData byte PIN1CTRLC .EQU 651h ; var iData byte PIN2CTRLC .EQU 652h ; var iData byte PIN3CTRLC .EQU 653h ; var iData byte PIN4CTRLC .EQU 654h ; var iData byte PIN5CTRLC .EQU 655h ; var iData byte PIN6CTRLC .EQU 656h ; var iData byte PIN7CTRLC .EQU 657h ; var iData byte DDRD .EQU 660h ; var iData byte DIRSETD .EQU 661h ; var iData byte DIRCLRD .EQU 662h ; var iData byte DIRTGLD .EQU 663h ; var iData byte PORTD .EQU 664h ; var iData byte OUTSETD .EQU 665h ; var iData byte OUTCLRD .EQU 666h ; var iData byte OUTTGLD .EQU 667h ; var iData byte PIND .EQU 668h ; var iData byte INTCTRLD .EQU 669h ; var iData byte INT0MASKD .EQU 66Ah ; var iData byte INT1MASKD .EQU 66Bh ; var iData byte INTFLAGSD .EQU 66Ch ; var iData byte PIN0CTRLD .EQU 670h ; var iData byte PIN1CTRLD .EQU 671h ; var iData byte PIN2CTRLD .EQU 672h ; var iData byte PIN3CTRLD .EQU 673h ; var iData byte PIN4CTRLD .EQU 674h ; var iData byte PIN5CTRLD .EQU 675h ; var iData byte PIN6CTRLD .EQU 676h ; var iData byte PIN7CTRLD .EQU 677h ; var iData byte DDRE .EQU 680h ; var iData byte DIRSETE .EQU 681h ; var iData byte DIRCLRE .EQU 682h ; var iData byte DIRTGLE .EQU 683h ; var iData byte PORTE .EQU 684h ; var iData byte OUTSETE .EQU 685h ; var iData byte OUTCLRE .EQU 686h ; var iData byte OUTTGLE .EQU 687h ; var iData byte PINE .EQU 688h ; var iData byte INTCTRLE .EQU 689h ; var iData byte INT0MASKE .EQU 68Ah ; var iData byte INT1MASKE .EQU 68Bh ; var iData byte INTFLAGSE .EQU 68Ch ; var iData byte PIN0CTRLE .EQU 690h ; var iData byte PIN1CTRLE .EQU 691h ; var iData byte PIN2CTRLE .EQU 692h ; var iData byte PIN3CTRLE .EQU 693h ; var iData byte PIN4CTRLE .EQU 694h ; var iData byte PIN5CTRLE .EQU 695h ; var iData byte PIN6CTRLE .EQU 696h ; var iData byte PIN7CTRLE .EQU 697h ; var iData byte DDRF .EQU 6A0h ; var iData byte DIRSETF .EQU 6A1h ; var iData byte DIRCLRF .EQU 6A2h ; var iData byte DIRTGLF .EQU 6A3h ; var iData byte PORTF .EQU 6A4h ; var iData byte OUTSETF .EQU 6A5h ; var iData byte OUTCLRF .EQU 6A6h ; var iData byte OUTTGLF .EQU 6A7h ; var iData byte PINF .EQU 6A8h ; var iData byte INTCTRLF .EQU 6A9h ; var iData byte INT0MASKF .EQU 6AAh ; var iData byte INT1MASKF .EQU 6ABh ; var iData byte INTFLAGSF .EQU 6ACh ; var iData byte PIN0CTRLF .EQU 6B0h ; var iData byte PIN1CTRLF .EQU 6B1h ; var iData byte PIN2CTRLF .EQU 6B2h ; var iData byte PIN3CTRLF .EQU 6B3h ; var iData byte PIN4CTRLF .EQU 6B4h ; var iData byte PIN5CTRLF .EQU 6B5h ; var iData byte PIN6CTRLF .EQU 6B6h ; var iData byte PIN7CTRLF .EQU 6B7h ; var iData byte DDRR .EQU 7E0h ; var iData byte DIRSETR .EQU 7E1h ; var iData byte DIRCLRR .EQU 7E2h ; var iData byte DIRTGLR .EQU 7E3h ; var iData byte PORTR .EQU 7E4h ; var iData byte OUTSETR .EQU 7E5h ; var iData byte OUTCLRR .EQU 7E6h ; var iData byte OUTTGLR .EQU 7E7h ; var iData byte PINR .EQU 7E8h ; var iData byte INTCTRLR .EQU 7E9h ; var iData byte INT0MASKR .EQU 7EAh ; var iData byte INT1MASKR .EQU 7EBh ; var iData byte INTFLAGSR .EQU 7ECh ; var iData byte PIN0CTRLR .EQU 7F0h ; var iData byte PIN1CTRLR .EQU 7F1h ; var iData byte PIN2CTRLR .EQU 7F2h ; var iData byte PIN3CTRLR .EQU 7F3h ; var iData byte PIN4CTRLR .EQU 7F4h ; var iData byte PIN5CTRLR .EQU 7F5h ; var iData byte PIN6CTRLR .EQU 7F6h ; var iData byte PIN7CTRLR .EQU 7F7h ; var iData byte TCC0CTRLA .EQU 800h ; var iData byte TCC0CTRLB .EQU 801h ; var iData byte TCC0CTRLC .EQU 802h ; var iData byte TCC0CTRLD .EQU 803h ; var iData byte TCC0CTRLE .EQU 804h ; var iData byte TCC0INTCTRLA .EQU 806h ; var iData byte TCC0INTCTRLB .EQU 807h ; var iData byte TCC0CTRLFCLR .EQU 808h ; var iData byte TCC0CTRLFSET .EQU 809h ; var iData byte TCC0CTRLGCLR .EQU 80Ah ; var iData byte TCC0CTRLGSET .EQU 80Bh ; var iData byte TCC0INTFLAGS .EQU 80Ch ; var iData byte TCC0TEMP .EQU 80Fh ; var iData byte TCC0CNTL .EQU 820h ; var iData byte TCC0CNTH .EQU 821h ; var iData byte TCC0PERL .EQU 826h ; var iData byte TCC0PERH .EQU 827h ; var iData byte TCC0CCAL .EQU 828h ; var iData byte TCC0CCAH .EQU 829h ; var iData byte TCC0CCBL .EQU 82Ah ; var iData byte TCC0CCBH .EQU 82Bh ; var iData byte TCC0CCCL .EQU 82Ch ; var iData byte TCC0CCCH .EQU 82Dh ; var iData byte TCC0CCDL .EQU 82Eh ; var iData byte TCC0CCDH .EQU 82Fh ; var iData byte TCC0PERBUFL .EQU 836h ; var iData byte TCC0PERBUFH .EQU 837h ; var iData byte TCC0CCABUFL .EQU 838h ; var iData byte TCC0CCABUFH .EQU 839h ; var iData byte TCC0CCBBUFL .EQU 83Ah ; var iData byte TCC0CCBBUFH .EQU 83Bh ; var iData byte TCC0CCCBUFL .EQU 83Ch ; var iData byte TCC0CCCBUFH .EQU 83Dh ; var iData byte TCC0CCDBUFL .EQU 83Eh ; var iData byte TCC0CCDBUFH .EQU 83Fh ; var iData byte TCC1CTRLA .EQU 840h ; var iData byte TCC1CTRLB .EQU 841h ; var iData byte TCC1CTRLC .EQU 842h ; var iData byte TCC1CTRLD .EQU 843h ; var iData byte TCC1CTRLE .EQU 844h ; var iData byte TCC1INTCTRLA .EQU 846h ; var iData byte TCC1INTCTRLB .EQU 847h ; var iData byte TCC1CTRLFCLR .EQU 848h ; var iData byte TCC1CTRLFSET .EQU 849h ; var iData byte TCC1CTRLGCLR .EQU 84Ah ; var iData byte TCC1CTRLGSET .EQU 84Bh ; var iData byte TCC1INTFLAGS .EQU 84Ch ; var iData byte TCC1TEMP .EQU 84Fh ; var iData byte TCC1CNTL .EQU 860h ; var iData byte TCC1CNTH .EQU 861h ; var iData byte TCC1PERL .EQU 866h ; var iData byte TCC1PERH .EQU 867h ; var iData byte TCC1CCAL .EQU 868h ; var iData byte TCC1CCAH .EQU 869h ; var iData byte TCC1CCBL .EQU 86Ah ; var iData byte TCC1CCBH .EQU 86Bh ; var iData byte TCC1CCCL .EQU 86Ch ; var iData byte TCC1CCCH .EQU 86Dh ; var iData byte TCC1CCDL .EQU 86Eh ; var iData byte TCC1CCDH .EQU 86Fh ; var iData byte TCC1PERBUFL .EQU 876h ; var iData byte TCC1PERBUFH .EQU 877h ; var iData byte TCC1CCABUFL .EQU 878h ; var iData byte TCC1CCABUFH .EQU 879h ; var iData byte TCC1CCBBUFL .EQU 87Ah ; var iData byte TCC1CCBBUFH .EQU 87Bh ; var iData byte TCC1CCCBUFL .EQU 87Ch ; var iData byte TCC1CCCBUFH .EQU 87Dh ; var iData byte TCC1CCDBUFL .EQU 87Eh ; var iData byte TCC1CCDBUFH .EQU 87Fh ; var iData byte AWEXCCTRL .EQU 880h ; var iData byte AWEXCFDEMASK .EQU 882h ; var iData byte AWEXCFDCTRL .EQU 883h ; var iData byte AWEXCSTATUS .EQU 884h ; var iData byte AWEXCDTBOTH .EQU 886h ; var iData byte AWEXCDTBOTHBUF .EQU 887h ; var iData byte AWEXCDTLS .EQU 888h ; var iData byte AWEXCDTHS .EQU 889h ; var iData byte AWEXCDTLSBUF .EQU 88Ah ; var iData byte AWEXCDTHSBUF .EQU 88Bh ; var iData byte AWEXCOUTOVEN .EQU 88Ch ; var iData byte HIRESCCTRLA .EQU 890h ; var iData byte USARTC0DATA .EQU 8A0h ; var iData byte USARTC0STATUS .EQU 8A1h ; var iData byte USARTC0CTRLA .EQU 8A3h ; var iData byte USARTC0CTRLB .EQU 8A4h ; var iData byte USARTC0CTRLC .EQU 8A5h ; var iData byte USARTC0BAUDCTRLA .EQU 8A6h ; var iData byte USARTC0BAUDCTRLB .EQU 8A7h ; var iData byte USARTC1DATA .EQU 8B0h ; var iData byte USARTC1STATUS .EQU 8B1h ; var iData byte USARTC1CTRLA .EQU 8B3h ; var iData byte USARTC1CTRLB .EQU 8B4h ; var iData byte USARTC1CTRLC .EQU 8B5h ; var iData byte USARTC1BAUDCTRLA .EQU 8B6h ; var iData byte USARTC1BAUDCTRLB .EQU 8B7h ; var iData byte SPICCTRL .EQU 8C0h ; var iData byte SPICINTCTRL .EQU 8C1h ; var iData byte SPICSTATUS .EQU 8C2h ; var iData byte SPICDATA .EQU 8C3h ; var iData byte IRCOMTXPLCTRL .EQU 8F0h ; var iData byte IRCOMRXPLCTRL .EQU 8F1h ; var iData byte IRCOMCTRL .EQU 8F2h ; var iData byte TCD0CTRLA .EQU 900h ; var iData byte TCD0CTRLB .EQU 901h ; var iData byte TCD0CTRLC .EQU 902h ; var iData byte TCD0CTRLD .EQU 903h ; var iData byte TCD0CTRLE .EQU 904h ; var iData byte TCD0INTCTRLA .EQU 906h ; var iData byte TCD0INTCTRLB .EQU 907h ; var iData byte TCD0CTRLFCLR .EQU 908h ; var iData byte TCD0CTRLFSET .EQU 909h ; var iData byte TCD0CTRLGCLR .EQU 90Ah ; var iData byte TCD0CTRLGSET .EQU 90Bh ; var iData byte TCD0INTFLAGS .EQU 90Ch ; var iData byte TCD0TEMP .EQU 90Fh ; var iData byte TCD0CNTL .EQU 920h ; var iData byte TCD0CNTH .EQU 921h ; var iData byte TCD0PERL .EQU 926h ; var iData byte TCD0PERH .EQU 927h ; var iData byte TCD0CCAL .EQU 928h ; var iData byte TCD0CCAH .EQU 929h ; var iData byte TCD0CCBL .EQU 92Ah ; var iData byte TCD0CCBH .EQU 92Bh ; var iData byte TCD0CCCL .EQU 92Ch ; var iData byte TCD0CCCH .EQU 92Dh ; var iData byte TCD0CCDL .EQU 92Eh ; var iData byte TCD0CCDH .EQU 92Fh ; var iData byte TCD0PERBUFL .EQU 936h ; var iData byte TCD0PERBUFH .EQU 937h ; var iData byte TCD0CCABUFL .EQU 938h ; var iData byte TCD0CCABUFH .EQU 939h ; var iData byte TCD0CCBBUFL .EQU 93Ah ; var iData byte TCD0CCBBUFH .EQU 93Bh ; var iData byte TCD0CCCBUFL .EQU 93Ch ; var iData byte TCD0CCCBUFH .EQU 93Dh ; var iData byte TCD0CCDBUFL .EQU 93Eh ; var iData byte TCD0CCDBUFH .EQU 93Fh ; var iData byte TCD1CTRLA .EQU 940h ; var iData byte TCD1CTRLB .EQU 941h ; var iData byte TCD1CTRLC .EQU 942h ; var iData byte TCD1CTRLD .EQU 943h ; var iData byte TCD1CTRLE .EQU 944h ; var iData byte TCD1INTCTRLA .EQU 946h ; var iData byte TCD1INTCTRLB .EQU 947h ; var iData byte TCD1CTRLFCLR .EQU 948h ; var iData byte TCD1CTRLFSET .EQU 949h ; var iData byte TCD1CTRLGCLR .EQU 94Ah ; var iData byte TCD1CTRLGSET .EQU 94Bh ; var iData byte TCD1INTFLAGS .EQU 94Ch ; var iData byte TCD1TEMP .EQU 94Fh ; var iData byte TCD1CNTL .EQU 960h ; var iData byte TCD1CNTH .EQU 961h ; var iData byte TCD1PERL .EQU 966h ; var iData byte TCD1PERH .EQU 967h ; var iData byte TCD1CCAL .EQU 968h ; var iData byte TCD1CCAH .EQU 969h ; var iData byte TCD1CCBL .EQU 96Ah ; var iData byte TCD1CCBH .EQU 96Bh ; var iData byte TCD1CCCL .EQU 96Ch ; var iData byte TCD1CCCH .EQU 96Dh ; var iData byte TCD1CCDL .EQU 96Eh ; var iData byte TCD1CCDH .EQU 96Fh ; var iData byte TCD1PERBUFL .EQU 976h ; var iData byte TCD1PERBUFH .EQU 977h ; var iData byte TCD1CCABUFL .EQU 978h ; var iData byte TCD1CCABUFH .EQU 979h ; var iData byte TCD1CCBBUFL .EQU 97Ah ; var iData byte TCD1CCBBUFH .EQU 97Bh ; var iData byte TCD1CCCBUFL .EQU 97Ch ; var iData byte TCD1CCCBUFH .EQU 97Dh ; var iData byte TCD1CCDBUFL .EQU 97Eh ; var iData byte TCD1CCDBUFH .EQU 97Fh ; var iData byte HIRESDCTRLA .EQU 990h ; var iData byte USARTD0DATA .EQU 9A0h ; var iData byte USARTD0STATUS .EQU 9A1h ; var iData byte USARTD0CTRLA .EQU 9A3h ; var iData byte USARTD0CTRLB .EQU 9A4h ; var iData byte USARTD0CTRLC .EQU 9A5h ; var iData byte USARTD0BAUDCTRLA .EQU 9A6h ; var iData byte USARTD0BAUDCTRLB .EQU 9A7h ; var iData byte USARTD1DATA .EQU 9B0h ; var iData byte USARTD1STATUS .EQU 9B1h ; var iData byte USARTD1CTRLA .EQU 9B3h ; var iData byte USARTD1CTRLB .EQU 9B4h ; var iData byte USARTD1CTRLC .EQU 9B5h ; var iData byte USARTD1BAUDCTRLA .EQU 9B6h ; var iData byte USARTD1BAUDCTRLB .EQU 9B7h ; var iData byte SPIDCTRL .EQU 9C0h ; var iData byte SPIDINTCTRL .EQU 9C1h ; var iData byte SPIDSTATUS .EQU 9C2h ; var iData byte SPIDDATA .EQU 9C3h ; var iData byte TCE0CTRLA .EQU 0A00h ; var iData byte TCE0CTRLB .EQU 0A01h ; var iData byte TCE0CTRLC .EQU 0A02h ; var iData byte TCE0CTRLD .EQU 0A03h ; var iData byte TCE0CTRLE .EQU 0A04h ; var iData byte TCE0INTCTRLA .EQU 0A06h ; var iData byte TCE0INTCTRLB .EQU 0A07h ; var iData byte TCE0CTRLFCLR .EQU 0A08h ; var iData byte TCE0CTRLFSET .EQU 0A09h ; var iData byte TCE0CTRLGCLR .EQU 0A0Ah ; var iData byte TCE0CTRLGSET .EQU 0A0Bh ; var iData byte TCE0INTFLAGS .EQU 0A0Ch ; var iData byte TCE0TEMP .EQU 0A0Fh ; var iData byte TCE0CNTL .EQU 0A20h ; var iData byte TCE0CNTH .EQU 0A21h ; var iData byte TCE0PERL .EQU 0A26h ; var iData byte TCE0PERH .EQU 0A27h ; var iData byte TCE0CCAL .EQU 0A28h ; var iData byte TCE0CCAH .EQU 0A29h ; var iData byte TCE0CCBL .EQU 0A2Ah ; var iData byte TCE0CCBH .EQU 0A2Bh ; var iData byte TCE0CCCL .EQU 0A2Ch ; var iData byte TCE0CCCH .EQU 0A2Dh ; var iData byte TCE0CCDL .EQU 0A2Eh ; var iData byte TCE0CCDH .EQU 0A2Fh ; var iData byte TCE0PERBUFL .EQU 0A36h ; var iData byte TCE0PERBUFH .EQU 0A37h ; var iData byte TCE0CCABUFL .EQU 0A38h ; var iData byte TCE0CCABUFH .EQU 0A39h ; var iData byte TCE0CCBBUFL .EQU 0A3Ah ; var iData byte TCE0CCBBUFH .EQU 0A3Bh ; var iData byte TCE0CCCBUFL .EQU 0A3Ch ; var iData byte TCE0CCCBUFH .EQU 0A3Dh ; var iData byte TCE0CCDBUFL .EQU 0A3Eh ; var iData byte TCE0CCDBUFH .EQU 0A3Fh ; var iData byte TCE1CTRLA .EQU 0A40h ; var iData byte TCE1CTRLB .EQU 0A41h ; var iData byte TCE1CTRLC .EQU 0A42h ; var iData byte TCE1CTRLD .EQU 0A43h ; var iData byte TCE1CTRLE .EQU 0A44h ; var iData byte TCE1INTCTRLA .EQU 0A46h ; var iData byte TCE1INTCTRLB .EQU 0A47h ; var iData byte TCE1CTRLFCLR .EQU 0A48h ; var iData byte TCE1CTRLFSET .EQU 0A49h ; var iData byte TCE1CTRLGCLR .EQU 0A4Ah ; var iData byte TCE1CTRLGSET .EQU 0A4Bh ; var iData byte TCE1INTFLAGS .EQU 0A4Ch ; var iData byte TCE1TEMP .EQU 0A4Fh ; var iData byte TCE1CNTL .EQU 0A60h ; var iData byte TCE1CNTH .EQU 0A61h ; var iData byte TCE1PERL .EQU 0A66h ; var iData byte TCE1PERH .EQU 0A67h ; var iData byte TCE1CCAL .EQU 0A68h ; var iData byte TCE1CCAH .EQU 0A69h ; var iData byte TCE1CCBL .EQU 0A6Ah ; var iData byte TCE1CCBH .EQU 0A6Bh ; var iData byte TCE1CCCL .EQU 0A6Ch ; var iData byte TCE1CCCH .EQU 0A6Dh ; var iData byte TCE1CCDL .EQU 0A6Eh ; var iData byte TCE1CCDH .EQU 0A6Fh ; var iData byte TCE1PERBUFL .EQU 0A76h ; var iData byte TCE1PERBUFH .EQU 0A77h ; var iData byte TCE1CCABUFL .EQU 0A78h ; var iData byte TCE1CCABUFH .EQU 0A79h ; var iData byte TCE1CCBBUFL .EQU 0A7Ah ; var iData byte TCE1CCBBUFH .EQU 0A7Bh ; var iData byte TCE1CCCBUFL .EQU 0A7Ch ; var iData byte TCE1CCCBUFH .EQU 0A7Dh ; var iData byte TCE1CCDBUFL .EQU 0A7Eh ; var iData byte TCE1CCDBUFH .EQU 0A7Fh ; var iData byte AWEXECTRL .EQU 0A80h ; var iData byte AWEXEFDEMASK .EQU 0A82h ; var iData byte AWEXEFDCTRL .EQU 0A83h ; var iData byte AWEXESTATUS .EQU 0A84h ; var iData byte AWEXEDTBOTH .EQU 0A86h ; var iData byte AWEXEDTBOTHBUF .EQU 0A87h ; var iData byte AWEXEDTLS .EQU 0A88h ; var iData byte AWEXEDTHS .EQU 0A89h ; var iData byte AWEXEDTLSBUF .EQU 0A8Ah ; var iData byte AWEXEDTHSBUF .EQU 0A8Bh ; var iData byte AWEXEOUTOVEN .EQU 0A8Ch ; var iData byte HIRESECTRLA .EQU 0A90h ; var iData byte USARTE0DATA .EQU 0AA0h ; var iData byte USARTE0STATUS .EQU 0AA1h ; var iData byte USARTE0CTRLA .EQU 0AA3h ; var iData byte USARTE0CTRLB .EQU 0AA4h ; var iData byte USARTE0CTRLC .EQU 0AA5h ; var iData byte USARTE0BAUDCTRLA .EQU 0AA6h ; var iData byte USARTE0BAUDCTRLB .EQU 0AA7h ; var iData byte USARTE1DATA .EQU 0AB0h ; var iData byte USARTE1STATUS .EQU 0AB1h ; var iData byte USARTE1CTRLA .EQU 0AB3h ; var iData byte USARTE1CTRLB .EQU 0AB4h ; var iData byte USARTE1CTRLC .EQU 0AB5h ; var iData byte USARTE1BAUDCTRLA .EQU 0AB6h ; var iData byte USARTE1BAUDCTRLB .EQU 0AB7h ; var iData byte SPIECTRL .EQU 0AC0h ; var iData byte SPIEINTCTRL .EQU 0AC1h ; var iData byte SPIESTATUS .EQU 0AC2h ; var iData byte SPIEDATA .EQU 0AC3h ; var iData byte TCF0CTRLA .EQU 0B00h ; var iData byte TCF0CTRLB .EQU 0B01h ; var iData byte TCF0CTRLC .EQU 0B02h ; var iData byte TCF0CTRLD .EQU 0B03h ; var iData byte TCF0CTRLE .EQU 0B04h ; var iData byte TCF0INTCTRLA .EQU 0B06h ; var iData byte TCF0INTCTRLB .EQU 0B07h ; var iData byte TCF0CTRLFCLR .EQU 0B08h ; var iData byte TCF0CTRLFSET .EQU 0B09h ; var iData byte TCF0CTRLGCLR .EQU 0B0Ah ; var iData byte TCF0CTRLGSET .EQU 0B0Bh ; var iData byte TCF0INTFLAGS .EQU 0B0Ch ; var iData byte TCF0TEMP .EQU 0B0Fh ; var iData byte TCF0CNTL .EQU 0B20h ; var iData byte TCF0CNTH .EQU 0B21h ; var iData byte TCF0PERL .EQU 0B26h ; var iData byte TCF0PERH .EQU 0B27h ; var iData byte TCF0CCAL .EQU 0B28h ; var iData byte TCF0CCAH .EQU 0B29h ; var iData byte TCF0CCBL .EQU 0B2Ah ; var iData byte TCF0CCBH .EQU 0B2Bh ; var iData byte TCF0CCCL .EQU 0B2Ch ; var iData byte TCF0CCCH .EQU 0B2Dh ; var iData byte TCF0CCDL .EQU 0B2Eh ; var iData byte TCF0CCDH .EQU 0B2Fh ; var iData byte TCF0PERBUFL .EQU 0B36h ; var iData byte TCF0PERBUFH .EQU 0B37h ; var iData byte TCF0CCABUFL .EQU 0B38h ; var iData byte TCF0CCABUFH .EQU 0B39h ; var iData byte TCF0CCBBUFL .EQU 0B3Ah ; var iData byte TCF0CCBBUFH .EQU 0B3Bh ; var iData byte TCF0CCCBUFL .EQU 0B3Ch ; var iData byte TCF0CCCBUFH .EQU 0B3Dh ; var iData byte TCF0CCDBUFL .EQU 0B3Eh ; var iData byte TCF0CCDBUFH .EQU 0B3Fh ; var iData byte AWEXFCTRL .EQU 0B80h ; var iData byte AWEXFFDEMASK .EQU 0B82h ; var iData byte AWEXFFDCTRL .EQU 0B83h ; var iData byte AWEXFSTATUS .EQU 0B84h ; var iData byte AWEXFDTBOTH .EQU 0B86h ; var iData byte AWEXFDTBOTHBUF .EQU 0B87h ; var iData byte AWEXFDTLS .EQU 0B88h ; var iData byte AWEXFDTHS .EQU 0B89h ; var iData byte AWEXFDTLSBUF .EQU 0B8Ah ; var iData byte AWEXFDTHSBUF .EQU 0B8Bh ; var iData byte AWEXFOUTOVEN .EQU 0B8Ch ; var iData byte HIRESFCTRLA .EQU 0B90h ; var iData byte USARTF0DATA .EQU 0BA0h ; var iData byte USARTF0STATUS .EQU 0BA1h ; var iData byte USARTF0CTRLA .EQU 0BA3h ; var iData byte USARTF0CTRLB .EQU 0BA4h ; var iData byte USARTF0CTRLC .EQU 0BA5h ; var iData byte USARTF0BAUDCTRLA .EQU 0BA6h ; var iData byte USARTF0BAUDCTRLB .EQU 0BA7h ; var iData byte RCOSC2M .EQU 000h ; const RCOSC32K .EQU 002h ; const RCOSC32M .EQU 003h ; const LOTNUM0 .EQU 008h ; const LOTNUM1 .EQU 009h ; const LOTNUM2 .EQU 00Ah ; const LOTNUM3 .EQU 00Bh ; const LOTNUM4 .EQU 00Ch ; const LOTNUM5 .EQU 00Dh ; const WAFNUM .EQU 010h ; const COORDX0 .EQU 012h ; const COORDX1 .EQU 013h ; const COORDY0 .EQU 014h ; const COORDY1 .EQU 015h ; const ADCACAL0 .EQU 020h ; const ADCACAL1 .EQU 021h ; const ADCBCAL0 .EQU 024h ; const ADCBCAL1 .EQU 025h ; const TEMPSENSE0 .EQU 02Eh ; const TEMPSENSE1 .EQU 02Fh ; const DACAOFFCAL .EQU 030h ; const DACACAINCAL .EQU 031h ; const DACBOFFCAL .EQU 032h ; const DACBCAINCAL .EQU 033h ; const SERPORTC0 .EQU 4B00h ; const OSCtype .EQU 000h ; const _iDataStart .EQU 2000h ; const _iDataEnd .EQU 5FFFh ; const _EEpromStart .EQU 000h ; const _EEpromEnd .EQU 0FFFh ; const _FlashStart .EQU 000h ; const _FlashEnd .EQU 3FFFFh ; const parNone .EQU 000h ; const parEven .EQU 001h ; const parOdd .EQU 002h ; const DataBit5 .EQU 000h ; const DataBit6 .EQU 001h ; const DataBit7 .EQU 002h ; const DataBit8 .EQU 003h ; const StopBit1 .EQU 000h ; const StopBit2 .EQU 001h ; const _RXINPC0 .EQU 2001h ; var iData byte _RXOUTPC0 .EQU 2002h ; var iData byte _RXCOUNTC0 .EQU 2003h ; var iData byte _RXBUFFC0 .EQU 2004h ; var iData byte SysTickTime .EQU 2000h ; var iData byte FLAGS3 .EQU 2103h ; var iData byte _SERCTRLC0 .EQU 000h ; const _SERCTRLC1 .EQU 001h ; const _SERCTRLD0 .EQU 002h ; const _SERCTRLD1 .EQU 003h ; const _SERCTRLE0 .EQU 004h ; const _SERCTRLE1 .EQU 005h ; const _SERCTRLF0 .EQU 006h ; const _SERCTRLF1 .EQU 007h ; const FLAGS4 .EQU 2103h ; var iData byte _SERXONRXC0 .EQU 000h ; const _SERXONRXC1 .EQU 001h ; const _SERXONRXD0 .EQU 002h ; const _SERXONRXD1 .EQU 003h ; const _SERXONRXE0 .EQU 004h ; const _SERXONRXE1 .EQU 005h ; const _SERXONRXF0 .EQU 006h ; const _SERXONRXF1 .EQU 007h ; const UsartC0 .EQU 000h ; const I2C_DevLock .EQU 2104h ; var iData DeviceLock EEPROM .EQU 000h ; var EEprom array EEPROMEND .EQU 0FFFh ; const .RESET 000000h .ORG 000000h, CODE_START .STARTCODE 0001F4h .UNIT TestBit .XDATASTART -1 ; ============ user definitions module: TestBit ============ .SYM TestByte, 02105h, 0000Dh, 3 TestBit.TestByte .EQU 2105h ; var iData byte ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; Program body ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .FUNC $_Main, 00046h, 00020h .ENTRYMAIN $ TestBit.$_Main: .BLOCK 70 .LINE 72 LDI _ACCA, 1 SHLB IntFlag OR Flags, _ACCA LDI _ACCA, 087h LDS _ACCB, PMICCTRL ANDI _ACCB, 40h OR _ACCA, _ACCB STS PMICCTRL, _ACCA SEI TestBit._L0000: .BLOCK 73 .LINE 74 PUSH _FRAMEPTR PUSH _FPTRHI LDI _ACCA, 1 SHLB _DEVICE OR Flags, _ACCA LDI _ACCB, SYSTEM.SeroutC0 SHRB 1 LDI _ACCA, SYSTEM.SeroutC0 SHRB 9 LDI _ACCALO, SYSTEM.SeroutC0 SHRB 17 ST -Y, _ACCA ST -Y, _ACCB ST -Y, _ACCALO .FRAME 3 LDI _ACCCLO, $St_String1 AND 0FFh LDI _ACCCHI, $St_String1 SHRB 8 RCALL SYSTEM.StrConst2Str LDI _ACCA, 00Dh RCALL SYSTEM.Char2Str LDI _ACCA, 00Ah RCALL SYSTEM.Char2Str POP _FPTRHI POP _FRAMEPTR .FRAME 0 .LINE 75 LDI _ACCA, 000h .LINE 76 SBR _ACCA, 008h STS 02105h, _ACCA .LINE 77 PUSH _FRAMEPTR PUSH _FPTRHI LDI _ACCA, 1 SHLB _DEVICE OR Flags, _ACCA LDI _ACCB, SYSTEM.SeroutC0 SHRB 1 LDI _ACCA, SYSTEM.SeroutC0 SHRB 9 LDI _ACCALO, SYSTEM.SeroutC0 SHRB 17 ST -Y, _ACCA ST -Y, _ACCB ST -Y, _ACCALO .FRAME 3 LDI _ACCCLO, $St_String2 AND 0FFh LDI _ACCCHI, $St_String2 SHRB 8 RCALL SYSTEM.StrConst2Str LDS _ACCDLO, TestBit.TestByte SET BLD Flags, _DEVICE RCALL SYSTEM.Bin2Str8 LDI _ACCA, 00Dh RCALL SYSTEM.Char2Str LDI _ACCA, 00Ah RCALL SYSTEM.Char2Str POP _FPTRHI POP _FRAMEPTR .FRAME 0 .LINE 78 LDI _ACCA, 003E8h SHRB 8 LDI _ACCB, 003E8h AND 0FFh .FRAME 0 RCALL SYSTEM.MDELAY .LINE 80 LDI _ACCA, 000h .LINE 81 SBR _ACCA, 004h STS 02105h, _ACCA .LINE 82 PUSH _FRAMEPTR PUSH _FPTRHI LDI _ACCA, 1 SHLB _DEVICE OR Flags, _ACCA LDI _ACCB, SYSTEM.SeroutC0 SHRB 1 LDI _ACCA, SYSTEM.SeroutC0 SHRB 9 LDI _ACCALO, SYSTEM.SeroutC0 SHRB 17 ST -Y, _ACCA ST -Y, _ACCB ST -Y, _ACCALO .FRAME 3 LDI _ACCCLO, $St_String3 AND 0FFh LDI _ACCCHI, $St_String3 SHRB 8 RCALL SYSTEM.StrConst2Str LDS _ACCDLO, TestBit.TestByte SET BLD Flags, _DEVICE RCALL SYSTEM.Bin2Str8 LDI _ACCA, 00Dh RCALL SYSTEM.Char2Str LDI _ACCA, 00Ah RCALL SYSTEM.Char2Str POP _FPTRHI POP _FRAMEPTR .FRAME 0 .LINE 83 LDI _ACCA, 003E8h SHRB 8 LDI _ACCB, 003E8h AND 0FFh .FRAME 0 RCALL SYSTEM.MDELAY .LINE 85 LDI _ACCA, 000h .LINE 86 ORI _ACCA, 002h STS TESTBIT.TESTBYTE, _ACCA .LINE 87 PUSH _FRAMEPTR PUSH _FPTRHI LDI _ACCA, 1 SHLB _DEVICE OR Flags, _ACCA LDI _ACCB, SYSTEM.SeroutC0 SHRB 1 LDI _ACCA, SYSTEM.SeroutC0 SHRB 9 LDI _ACCALO, SYSTEM.SeroutC0 SHRB 17 ST -Y, _ACCA ST -Y, _ACCB ST -Y, _ACCALO .FRAME 3 LDI _ACCCLO, $St_String4 AND 0FFh LDI _ACCCHI, $St_String4 SHRB 8 RCALL SYSTEM.StrConst2Str LDS _ACCDLO, TestBit.TestByte SET BLD Flags, _DEVICE RCALL SYSTEM.Bin2Str8 LDI _ACCA, 00Dh RCALL SYSTEM.Char2Str LDI _ACCA, 00Ah RCALL SYSTEM.Char2Str POP _FPTRHI POP _FRAMEPTR .FRAME 0 .LINE 89 LDI _ACCA, 003E8h SHRB 8 LDI _ACCB, 003E8h AND 0FFh .FRAME 0 RCALL SYSTEM.MDELAY .LINE 90 LDI _ACCA, 000h STS TESTBIT.TESTBYTE, _ACCA .LINE 91 LDI _ACCBLO, TestBit.TESTBYTE AND 0FFh LDI _ACCBHI, TestBit.TESTBYTE SHRB 8 LDI _ACCA, 004h RCALL SYSTEM.InclBit8 .LINE 92 PUSH _FRAMEPTR PUSH _FPTRHI LDI _ACCA, 1 SHLB _DEVICE OR Flags, _ACCA LDI _ACCB, SYSTEM.SeroutC0 SHRB 1 LDI _ACCA, SYSTEM.SeroutC0 SHRB 9 LDI _ACCALO, SYSTEM.SeroutC0 SHRB 17 ST -Y, _ACCA ST -Y, _ACCB ST -Y, _ACCALO .FRAME 3 LDI _ACCCLO, $St_String5 AND 0FFh LDI _ACCCHI, $St_String5 SHRB 8 RCALL SYSTEM.StrConst2Str LDS _ACCDLO, TestBit.TestByte SET BLD Flags, _DEVICE RCALL SYSTEM.Bin2Str8 LDI _ACCA, 00Dh RCALL SYSTEM.Char2Str LDI _ACCA, 00Ah RCALL SYSTEM.Char2Str POP _FPTRHI POP _FRAMEPTR .FRAME 0 .LINE 93 LDI _ACCA, 003E8h SHRB 8 LDI _ACCB, 003E8h AND 0FFh .FRAME 0 RCALL SYSTEM.MDELAY .LINE 96 LDI _ACCA, 002h STS TESTBIT.TESTBYTE, _ACCA .LINE 97 PUSH _FRAMEPTR PUSH _FPTRHI LDI _ACCA, 1 SHLB _DEVICE OR Flags, _ACCA LDI _ACCB, SYSTEM.SeroutC0 SHRB 1 LDI _ACCA, SYSTEM.SeroutC0 SHRB 9 LDI _ACCALO, SYSTEM.SeroutC0 SHRB 17 ST -Y, _ACCA ST -Y, _ACCB ST -Y, _ACCALO .FRAME 3 LDI _ACCCLO, $St_String6 AND 0FFh LDI _ACCCHI, $St_String6 SHRB 8 RCALL SYSTEM.StrConst2Str LDS _ACCDLO, TestBit.TestByte SET BLD Flags, _DEVICE RCALL SYSTEM.Bin2Str8 LDI _ACCA, 00Dh RCALL SYSTEM.Char2Str LDI _ACCA, 00Ah RCALL SYSTEM.Char2Str POP _FPTRHI POP _FRAMEPTR .FRAME 0 .LINE 98 LDI _ACCA, 003E8h SHRB 8 LDI _ACCB, 003E8h AND 0FFh .FRAME 0 RCALL SYSTEM.MDELAY .LINE 100 LDI _ACCA, 0FFh STS TESTBIT.TESTBYTE, _ACCA .LINE 101 LDI _ACCBLO, TestBit.TESTBYTE AND 0FFh LDI _ACCBHI, TestBit.TESTBYTE SHRB 8 MOVW _ACCCLO, _ACCBLO LDI _ACCA, 004h LAC Z, _ACCA .LINE 102 PUSH _FRAMEPTR PUSH _FPTRHI LDI _ACCA, 1 SHLB _DEVICE OR Flags, _ACCA LDI _ACCB, SYSTEM.SeroutC0 SHRB 1 LDI _ACCA, SYSTEM.SeroutC0 SHRB 9 LDI _ACCALO, SYSTEM.SeroutC0 SHRB 17 ST -Y, _ACCA ST -Y, _ACCB ST -Y, _ACCALO .FRAME 3 LDI _ACCCLO, $St_String7 AND 0FFh LDI _ACCCHI, $St_String7 SHRB 8 RCALL SYSTEM.StrConst2Str LDS _ACCDLO, TestBit.TestByte SET BLD Flags, _DEVICE RCALL SYSTEM.Bin2Str8 LDI _ACCA, 00Dh RCALL SYSTEM.Char2Str LDI _ACCA, 00Ah RCALL SYSTEM.Char2Str POP _FPTRHI POP _FRAMEPTR .FRAME 0 .LINE 103 LDI _ACCA, 003E8h SHRB 8 LDI _ACCB, 003E8h AND 0FFh .FRAME 0 RCALL SYSTEM.MDELAY .ENDBLOCK 105 .LINE 105 .BRANCH 20,TestBit._L0000 RJMP TestBit._L0000 .ENDBLOCK 106 TestBit.$_MAINEX: .LINE 106 NOP .LINE 106 .BRANCH 20,TestBit.$_MAINEX RJMP TestBit.$_MAINEX .ENDFUNC 106 SYSTEM.$Main_stk .EQU 02106h ; var iData Process stack area SYSTEM.$Main_stk_e .EQU 02617h ; var iData Process stack area SYSTEM.$Main_Frame .EQU 02618h ; var iData Process stack area SYSTEM.$Main_Frame_e .EQU 02B29h ; var iData Process stack area ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; Initialisation and Library Routines ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .ENTRY SYSTEM.RESET: ; >> XMega clock system init << ldi _ACCA, 0D1h sts PLLCTRL, _ACCA ldi _ACCA, 019h sts OSCCTRL, _ACCA .EXECOFF _OscReady: lds _ACCB, OSCSTATUS cpse _ACCB, _ACCA rjmp _OscReady .EXECON ldi _ACCB, 0D8h ldi _ACCA, 004h out CCP, _ACCB sts CLOCKCTRL, _ACCA nop nop ldi _ACCA, 018h sts OSCCTRL, _ACCA LDI _ACCA, 0 OUT EIND, _ACCA LDI _ACCA, 0 OUT RAMPZ, _ACCA CLI ; >> Stack Init [main process only] << LDI _ACCA, 026h LDI _ACCB, 017h STS sph, _ACCA STS spl, _ACCB ; >> Memory init << CLR R0 CLR R1 CLR R2 CLR R3 CLR R4 CLR R5 CLR R6 CLR R7 CLR R8 CLR R9 CLR R10 CLR R11 CLR R12 CLR R13 CLR R14 CLR R15 CLR R16 CLR R17 LDI _ACCBLO, 02000h AND 0FFh LDI _ACCBHI, 02000h SHRB 8 LDI _ACCCLO, 04000h AND 0FFh LDI _ACCCHI, 04000h SHRB 8 ADIW _ACCCLO, 1 SYSTEM._L0009: SBIW _ACCCLO, 001h BREQ SYSTEM._L0011 ST X+, _ACCA RJMP SYSTEM._L0009 SYSTEM._L0011: LDI _FRAMEPTR, 02B29h AND 0FFh LDI _FPTRHI, 02B29h SHRB 8 CLI LDI _ACCA, 0FEH ROLB IntFlag AND Flags, _ACCA ; ============ init structured constants ============ ; >> Hardware Init << ; >> SysTick init: 10msec << LDI _ACCA, 5 STS CLOCKRTCCTRL, _ACCA SYSTEM._L0012: LDS _ACCB, RTCSTATUS TST _ACCB BRNE SYSTEM._L0012 LDI _ACCA, 0 STS RTCCNTL, _ACCA SYSTEM._L0013: LDS _ACCB, RTCSTATUS TST _ACCB BRNE SYSTEM._L0013 STS RTCCNTH, _ACCA SYSTEM._L0014: LDS _ACCB, RTCSTATUS TST _ACCB BRNE SYSTEM._L0014 LDI _ACCB, 0 LDI _ACCA, 00Ah STS RTCPERL, _ACCA STS RTCPERH, _ACCB SYSTEM._L0015: LDS _ACCB, RTCSTATUS TST _ACCB BRNE SYSTEM._L0015 LDI _ACCA, 0 STS RTCPERH, _ACCA SYSTEM._L0016: LDS _ACCB, RTCSTATUS TST _ACCB BRNE SYSTEM._L0016 LDI _ACCA, 1 STS RTCCTRL, _ACCA SYSTEM._L0017: LDS _ACCB, RTCSTATUS TST _ACCB BRNE SYSTEM._L0017 LDI _ACCA, 2 STS RTCINTCTRL, _ACCA LDI _ACCA, 3 STS RTCINTFLAGS, _ACCA ; >> SERPORTC0 Init << ; >> Baudrate 19200 = 19202 << ; percent Baudrate error : >> 0.013% << LDI _ACCA, 018h STS USARTC0CTRLB, _ACCA LDI _ACCA, 0A0h STS USARTC0BAUDCTRLA, _ACCA LDI _ACCA, 0BCh STS USARTC0BAUDCTRLB, _ACCA LDS _ACCA, DDRC SBR _ACCA, 008h STS DDRC, _ACCA LDI _ACCA, 0 STS _RXINPC0, _ACCA STS _RXOUTPC0, _ACCA STS _RXCOUNTC0, _ACCA LDS _ACCA, USARTC0CTRLA SBR _ACCA, 20h STS USARTC0CTRLA, _ACCA LDI _ACCA, 00Bh STS USARTC0CTRLC, _ACCA LDS _ACCA, USARTC0DATA .DEB USART_IAC02 ; >> I2CPORT Init << LDS _ACCA, DDRC CBR _ACCA, 001h STS DDRC, _ACCA NOP LDS _ACCA, DDRC CBR _ACCA, 002h STS DDRC, _ACCA LDS _ACCA, PORTC CBR _ACCA, 001h STS PORTC, _ACCA NOP LDS _ACCA, PORTC CBR _ACCA, 002h STS PORTC, _ACCA LDI _ACCA, 0FFh STS I2C_DevLock, _ACCA CLR Flags CLR Flags2 ; ============ Start User Main Program ============ .DEB MAINENTRY RJMP TestBit.$_Main ; ============ Interrupt Service ============ SYSTEM.$INTERRUPT_RTC_INTOVF: CLI .DEB SYSTICKENTRY PUSH _ACCCLO PUSH _ACCCHI PUSH _ACCB PUSH _ACCA IN _ACCA, SREG PUSH _ACCA IN _ACCA, EIND PUSH _ACCA LDI _ACCA, 0FEH ROLB IntFlag AND Flags, _ACCA LDI _ACCA, 1 SHLB IntFlag OR Flags, _ACCA POP _ACCA OUT EIND, _ACCA POP _ACCA OUT SREG, _ACCA POP _ACCA POP _ACCB POP _ACCCHI POP _ACCCLO .DEB SYSTICKEXIT SEI RETI SYSTEM.$INTERRUPT_USARTC0_INTRXC: CLI PUSH _ACCCLO PUSH _ACCCHI PUSH _ACCB PUSH _ACCA IN _ACCA, SREG PUSH _ACCA IN _ACCA, EIND PUSH _ACCA SYSTEM._L0024: LDS _ACCA, _RXCOUNTC0 CPI _ACCA, 255 BRNE SYSTEM._L0019 LDS _ACCB, USARTC0DATA .DEB USART_IBC00 RJMP SYSTEM._L0021 SYSTEM._L0019: LDS _ACCA, USARTC0DATA .DEB USART_IAC00 PUSH _ACCA CLR _ACCA LDS _ACCB, _RXINPC0 LDI _ACCCLO, _RXBUFFC0 AND 0FFh LDI _ACCCHI, _RXBUFFC0 SHRB 8 ADD _ACCCLO, _ACCB ADC _ACCCHI, _ACCA POP _ACCA ST Z, _ACCA LDS _ACCA, _RXCOUNTC0 INC _ACCA STS _RXCOUNTC0, _ACCA INC _ACCB CPI _ACCB, 255 BRNE SYSTEM._L0020 CLR _ACCB SYSTEM._L0020: STS _RXINPC0, _ACCB LDS _ACCB, USARTC0STATUS SBRC _ACCB, 7 RJMP SYSTEM._L0024 SYSTEM._L0021: POP _ACCA OUT EIND, _ACCA POP _ACCA OUT SREG, _ACCA POP _ACCA POP _ACCB POP _ACCCHI POP _ACCCLO SEI RETI ; ============ Library ============ SYSTEM._L0027: LDS _ACCA, DDRC SBR _ACCA, 002h STS DDRC, _ACCA ROL _ACCDLO BRCS $SYSTEM._L0027 SBR _ACCA, 001h STS DDRC, _ACCA RJMP $1SYSTEM._L0027 $SYSTEM._L0027: CBR _ACCA, 001h STS DDRC, _ACCA $1SYSTEM._L0027: LDI _ACCA, 001h CALL SYSTEM.uDelay LDS _ACCA, DDRC CBR _ACCA, 002h STS DDRC, _ACCA CLR _ACCGLO SYSTEM._L0028: LDI _ACCA, 001h CALL SYSTEM.uDelay DEC _ACCGLO .BRANCH 3, SYSTEM.I2Cerr BREQ SYSTEM.I2Cerr LDS _ACCA, PINC BST _ACCA, 1 BRTC SYSTEM._L0028 DEC _ACCDHI BRNE SYSTEM._L0027 LDS _ACCA, DDRC SBR _ACCA, 002h STS DDRC, _ACCA NOP CBR _ACCA, 001h STS DDRC, _ACCA LDI _ACCA, 001h CALL SYSTEM.uDelay LDS _ACCA, DDRC CBR _ACCA, 002h STS DDRC, _ACCA LDI _ACCA, 001h CALL SYSTEM.uDelay LDS _ACCA, PINC BST _ACCA, 0 BRTS SYSTEM._L0029 LDS _ACCA, DDRC SBR _ACCA, 002h STS DDRC, _ACCA LDI _ACCA, true RET SYSTEM._L0029: LDS _ACCA, DDRC CBR _ACCA, 002h STS DDRC, _ACCA NOP CBR _ACCA, 001h STS DDRC, _ACCA LDI _ACCA, 001h CALL SYSTEM.uDelay LDI _ACCA, false RET SYSTEM.I2Cerr: LDS _ACCA, DDRC CBR _ACCA, 002h STS DDRC, _ACCA NOP CBR _ACCA, 001h STS DDRC, _ACCA LDI _ACCA, 001h CALL SYSTEM.uDelay LDS _ACCA, DDRC SBR _ACCA, 002h STS DDRC, _ACCA NOP SBR _ACCA, 001h STS DDRC, _ACCA NOP CBR _ACCA, 002h STS DDRC, _ACCA LDI _ACCA, 001h CALL SYSTEM.uDelay LDS _ACCA, DDRC CBR _ACCA, 001h STS DDRC, _ACCA LDI _ACCA, 001h CALL SYSTEM.uDelay LDI _ACCA, False RET SYSTEM.I2CRECVBYTE: LDI _ACCAHI, 8 LDS _ACCB, DDRC CBR _ACCB, 001h STS DDRC, _ACCB NOP SYSTEM._L0031: LDS _ACCB, DDRC SBR _ACCB, 002h STS DDRC, _ACCB LDI _ACCA, 001h CALL SYSTEM.uDelay LDS _ACCB, DDRC CBR _ACCB, 002h STS DDRC, _ACCB CLR _ACCALO SYSTEM._L0032: LDI _ACCA, 001h CALL SYSTEM.uDelay DEC _ACCALO BRNE SYSTEM._L0034 RJMP SYSTEM.I2Cerr SYSTEM._L0034: LDS _ACCB, PINC BST _ACCB, 1 BRTC SYSTEM._L0032 CLC LDS _ACCB, PINC BST _ACCB, 0 BRTC $SYSTEM._L0034 SEC $SYSTEM._L0034: ROL _ACCDLO DEC _ACCAHI BRNE SYSTEM._L0031 MOV _ACCA, _ACCDLO ST Z, _ACCA ADIW _ACCCLO, 1 LDS _ACCB, DDRC SBR _ACCB, 002h STS DDRC, _ACCB NOP SBR _ACCB, 001h STS DDRC, _ACCB SET BLD Flags, _I2C2BYTE SBIW _ACCBLO, 1 BRNE SYSTEM._L0036 MOV _ACCB, _ACCBLO TST _ACCB BRNE SYSTEM._L0036 CLT BLD Flags, _I2C2BYTE LDS _ACCA, DDRC CBR _ACCA, 001h STS DDRC, _ACCA SYSTEM._L0036: LDI _ACCA, 001h CALL SYSTEM.uDelay LDS _ACCA, DDRC CBR _ACCA, 002h STS DDRC, _ACCA LDI _ACCA, 001h CALL SYSTEM.uDelay LDS _ACCA, DDRC SBR _ACCA, 002h STS DDRC, _ACCA LDI _ACCA, 001h CALL SYSTEM.uDelay BST Flags, _I2C2BYTE BRTC SYSTEM._L0035 RJMP SYSTEM.I2CRECVBYTE SYSTEM._L0035: LDI _ACCA, true RET SYSTEM.SEROUTC0: SYSTEM._L0038: LDS _ACCB, USARTC0STATUS .DEB USART_SBC03 SBRS _ACCB, 5 .EXECOFF RJMP SYSTEM._L0038 .EXECON .DEB USART_OAC02 STS USARTC0DATA, _ACCA RET SYSTEM.MDELAY: .DEB DEBdelay MOVW _ACCDLO, _ACCB CLR _ACCA CP _ACCDLO, _ACCA CPC _ACCDHI, _ACCA BREQ SYSTEM.MDELAY3 SYSTEM.MDELAY1: LDI _ACCB, 0186Fh AND 0FFh LDI _ACCA, 0186Fh SHRB 8 SYSTEM.MDELAY2: SUBI _ACCB, 001h SBCI _ACCA, 000h NOP BRNE SYSTEM.MDELAY2 SUBI _ACCDLO, 001h SBCI _ACCDHI, 000h BRNE SYSTEM.MDELAY1 SYSTEM.MDELAY3: RET SYSTEM.UDELAY: TST _ACCA BREQ SYSTEM.UDELAY3 SYSTEM.UDELAY1: LDI _ACCB, 0004Bh AND 0FFh SYSTEM.UDELAY2: DEC _ACCB NOP BRNE SYSTEM.UDELAY2 DEC _ACCA BRNE SYSTEM.UDELAY1 SYSTEM.UDELAY3: RET SYSTEM._L0043: SUBI _ACCALO, 001h SBCI _ACCAHI, 000h BRCS SYSTEM._L0044 LD _ACCA, Z+ ST X+, _ACCA RJMP SYSTEM._L0043 SYSTEM._L0044: RET SYSTEM.StrConst2Str: CLI IN _ACCGHI, RAMPZ LDI _ACCBHI, 03h OUT RAMPZ, _ACCBHI ELPM _ACCBHI, Z+ OUT RAMPZ, _ACCGHI SBRC Flags, IntFlag SEI TST _ACCBHI BREQ SYSTEM._L0046 SYSTEM._L0045: CLI IN _ACCGHI, RAMPZ LDI _ACCA, 03h OUT RAMPZ, _ACCA ELPM _ACCA, Z+ OUT RAMPZ, _ACCGHI SBRC Flags, IntFlag SEI RCALL SYSTEM.Char2Str DEC _ACCBHI BRNE SYSTEM._L0045 SYSTEM._L0046: RET SYSTEM.Bin2Str8: LDI _ACCBHI, 8 SYSTEM._L0047: LDI _ACCA, 30h LSL _ACCDLO BRCC SYSTEM._L0048 INC _ACCA SYSTEM._L0048: RCALL SYSTEM.Char2Str DEC _ACCBHI BRNE SYSTEM._L0047 RET SYSTEM.Char2Str: PUSH _ACCCLO PUSH _ACCCHI BST Flags, _DEVICE BRTS SYSTEM._L0052 PUSH _ACCA LDD _ACCCLO, Y+001h LDD _ACCCHI, Y+002h LDD _ACCA, Y+000h TST _ACCA BRNE SYSTEM._L0049 POP _ACCA SET BLD Flags, _ERRFLAG POP _ACCCHI POP _ACCCLO RET SYSTEM._L0049: DEC _ACCA STD Y+000h, _ACCA POP _ACCA ST Z+, _ACCA STD Y+002h, _ACCCHI STD Y+001h, _ACCCLO POP _ACCCHI POP _ACCCLO RET SYSTEM._L0052: LDD _ACCCLO, Y+000h OUT EIND, _ACCCLO LDD _ACCCLO, Y+001h LDD _ACCCHI, Y+002h PUSH _ACCA PUSH _ACCB PUSH _ACCALO PUSH _ACCAHI PUSH _ACCBLO PUSH _ACCBHI PUSH _ACCELO PUSH _ACCEHI PUSH _ACCDLO PUSH _ACCDHI PUSH _ACCFLO PUSH _ACCFHI EICALL POP _ACCFHI POP _ACCFLO POP _ACCDHI POP _ACCDLO POP _ACCEHI POP _ACCELO POP _ACCBHI POP _ACCBLO POP _ACCAHI POP _ACCALO POP _ACCB POP _ACCA POP _ACCCHI POP _ACCCLO RET SYSTEM.InclBit8: ANDI _ACCA, 7 LDI _ACCCLO, SYSTEM.BitMaskTab AND 0FFh LDI _ACCCHI, SYSTEM.BitMaskTab SHRB 8 CLR _ACCGLO ADD _ACCCLO, _ACCA ADC _ACCCHI, _ACCGLO CLI IN _ACCGHI, RAMPZ LDI _ACCA, 03h OUT RAMPZ, _ACCA ELPM OUT RAMPZ, _ACCGHI SBRC Flags, IntFlag SEI LD _ACCA, X OR _ACCA, _ACCGLO ST X, _ACCA RET SYSTEM.DefIntErr: SEI RETI .ROMCONST 30000h SYSTEM.BitMaskTab: .BYTE 001h .BYTE 002h .BYTE 004h .BYTE 008h .BYTE 010h .BYTE 020h .BYTE 040h .BYTE 080h ; ============ String-constant tables ============ $St_String1: .BYTE 10 .ASCII "----------" $St_String2: .BYTE 6 .ASCII "BYTE0:" $St_String3: .BYTE 6 .ASCII "BYTE1:" $St_String4: .BYTE 6 .ASCII "BYTE2:" $St_String5: .BYTE 6 .ASCII "BYTE3:" $St_String6: .BYTE 6 .ASCII "BYTE4:" $St_String7: .BYTE 6 .ASCII "BYTE5:" ; ============ Fixed addr String-constant tables ============ ; ============ fixed addr array-constant tables ============ ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; Reset and Interrupt vectors ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .ENDCODE .ORG 000000h, VECTTAB .VECTTAB JMP SYSTEM.RESET JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.$INTERRUPT_RTC_INTOVF JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.$INTERRUPT_USARTC0_INTRXC JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr JMP SYSTEM.DefIntErr .VECTTABE .END ; ============ End of Program ============ ; System uses registers ; from bottom = 00000h ; upto = 00004h ; and ; from = 00010h ; upto = 0001Fh ; ; Stackframe at = ...02617h ; ===== Current top of User Vars in Data is 00004h ===== ; ===== Current top of User Vars in IData is 02B29h ===== ; ===== EEprom currently not used ===== ; ===== Imported Library Routines ===== ; LongWord and LongInt types ; InclBit8 ; Pascal Statements : 27 ; Assembler Lines : 6073 ; Optimizer removed : 6 lines = 12Bytes ; Merlin Optimiser Version 3.1.0.1 saved 296 bytes. ; Original size was 2446 so % saved = 12% ; Elapsed Time (hh:mm:ss) : 00:00:00