
                        .FILE     H:\PROJAVR\ADA-C\DDS2313.pas

                        ; Compiled by E-LAB AVRco PASCAL Compiler Rev 4.37
                        ; Version     : Profi
                        ;
                        ; Licenced to : Redaktion CT P1
                        ;
                        ; (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 : DDS2313.pas
                        ; Compiled    : 03. Oktober 2006  15:17:42
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .SMALL
                        .ROMEND         01FFFh;

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; 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    1B5h            ; const 
COMPILERBUILD_Y         .EQU    006h            ; const 
COMPILERBUILD_M         .EQU    007h            ; const 
COMPILERBUILD_D         .EQU    017h            ; const 
COMPILEYEAR             .EQU    006h            ; const 
COMPILEMONTH            .EQU    00Ah            ; const 
COMPILEDAY              .EQU    003h            ; const 
COMPILEHOUR             .EQU    00Fh            ; const 
COMPILEMINUTE           .EQU    011h            ; const 
PROJECTBUILD            .EQU    00Ah            ; const 
OPTIMISERREV            .EQU    000h            ; const 
OPTIMISERBUILD          .EQU    000h            ; 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 
_STEPCW                 .EQU    004h            ; const 
_STEPDEST               .EQU    005h            ; const 
_FREQCNTFLAG            .EQU    006h            ; const 
_AUTOACK                .EQU    007h            ; const 
_ACCGLO                 .EQU    000h            ; var Data   byte
_ACCGHI                 .EQU    001h            ; var Data   byte
_ACCHLO                 .EQU    002h            ; var Data   byte
_ACCHHI                 .EQU    003h            ; 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    004h            ; var Data   byte
FLAGS2                  .EQU    005h            ; var Data   byte
_SYSTFLAGS              .EQU    006h            ; var Data   byte
SYSTICK                 .EQU    001h            ; const 
PROCCLOCK               .EQU    7A1200h         ; const 
DECIMALSEP              .EQU    02Eh            ; const 
CPU_ID                  .EQU    1E9307h         ; const 
ROMconstPage            .EQU    0FFFFFFFFFFFFFFFFh          ; const 
STACKSIZE               .EQU    080h            ; const 
FRAMESIZE               .EQU    100h            ; const 
SERPORT                 .EQU    2580h           ; const 
SREG                    .EQU    05Fh            ; var pData  byte
SPH                     .EQU    05Eh            ; var pData  byte
SPL                     .EQU    05Dh            ; var pData  byte
GIMSK                   .EQU    05Bh            ; var pData  byte
GICR                    .EQU    05Bh            ; var pData  byte
GIFR                    .EQU    05Ah            ; var pData  byte
TIMSK                   .EQU    059h            ; var pData  byte
TIFR                    .EQU    058h            ; var pData  byte
SPMCR                   .EQU    057h            ; var pData  byte
SPMCSR                  .EQU    057h            ; var pData  byte
TWCR                    .EQU    056h            ; var pData  byte
MCUCR                   .EQU    055h            ; var pData  byte
MCUCSR                  .EQU    054h            ; var pData  byte
MCUSR                   .EQU    054h            ; var pData  byte
TCCR0                   .EQU    053h            ; var pData  byte
TCNT0                   .EQU    052h            ; var pData  byte
OSCCAL                  .EQU    051h            ; var pData  byte
SFIOR                   .EQU    050h            ; var pData  byte
TCCR1A                  .EQU    04Fh            ; var pData  byte
TCCR1B                  .EQU    04Eh            ; var pData  byte
TCNT1H                  .EQU    04Dh            ; var pData  byte
TCNT1L                  .EQU    04Ch            ; var pData  byte
OCR1AH                  .EQU    04Bh            ; var pData  byte
OCR1AL                  .EQU    04Ah            ; var pData  byte
OCR1BH                  .EQU    049h            ; var pData  byte
OCR1BL                  .EQU    048h            ; var pData  byte
ICR1H                   .EQU    047h            ; var pData  byte
ICR1L                   .EQU    046h            ; var pData  byte
TCCR2                   .EQU    045h            ; var pData  byte
TCCR2A                  .EQU    045h            ; var pData  byte
TCNT2                   .EQU    044h            ; var pData  byte
OCR2                    .EQU    043h            ; var pData  byte
OCR2A                   .EQU    043h            ; var pData  byte
ASSR                    .EQU    042h            ; var pData  byte
WDTCR                   .EQU    041h            ; var pData  byte
UBRR1H                  .EQU    040h            ; var pData  byte
UBRRH                   .EQU    040h            ; var pData  byte
UCSRC                   .EQU    040h            ; var pData  byte
UCSR0C                  .EQU    040h            ; var pData  byte
EEARH                   .EQU    03Fh            ; var pData  byte
EEARL                   .EQU    03Eh            ; var pData  byte
EEDR                    .EQU    03Dh            ; var pData  byte
EECR                    .EQU    03Ch            ; var pData  byte
PORTB                   .EQU    038h            ; var pData  byte
DDRB                    .EQU    037h            ; var pData  byte
PINB                    .EQU    036h            ; var pData  byte
MASKB                   .EQU    03Fh            ; var pData  byte
PORTC                   .EQU    035h            ; var pData  byte
DDRC                    .EQU    034h            ; var pData  byte
PINC                    .EQU    033h            ; var pData  byte
MASKC                   .EQU    03Fh            ; var pData  byte
PORTD                   .EQU    032h            ; var pData  byte
DDRD                    .EQU    031h            ; var pData  byte
PIND                    .EQU    030h            ; var pData  byte
SPDR                    .EQU    02Fh            ; var pData  byte
SPSR                    .EQU    02Eh            ; var pData  byte
SPCR                    .EQU    02Dh            ; var pData  byte
UDR1                    .EQU    02Ch            ; var pData  byte
USR1                    .EQU    02Bh            ; var pData  byte
UCSRA                   .EQU    02Bh            ; var pData  byte
UCR1                    .EQU    02Ah            ; var pData  byte
UCSRB                   .EQU    02Ah            ; var pData  byte
UBRR1                   .EQU    029h            ; var pData  byte
UBRRL                   .EQU    029h            ; var pData  byte
ACSR                    .EQU    028h            ; var pData  byte
ADMUX                   .EQU    027h            ; var pData  byte
ADCSR                   .EQU    026h            ; var pData  byte
ADCSRA                  .EQU    026h            ; var pData  byte
ADCH                    .EQU    025h            ; var pData  byte
ADCL                    .EQU    024h            ; var pData  byte
TWDR                    .EQU    023h            ; var pData  byte
TWAR                    .EQU    022h            ; var pData  byte
TWSR                    .EQU    021h            ; var pData  byte
TWBR                    .EQU    020h            ; var pData  byte
TCNT1                   .EQU    04Ch            ; var pData  word
OCR1A                   .EQU    04Ah            ; var pData  word
OCR1B                   .EQU    048h            ; var pData  word
ICR1                    .EQU    046h            ; var pData  word
EEAR                    .EQU    03Eh            ; var pData  word
ADC                     .EQU    025h            ; var pData  word
_iDataStart             .EQU    060h            ; const 
_iDataEnd               .EQU    45Fh            ; const 
_EEpromStart            .EQU    000h            ; const 
_EEpromEnd              .EQU    1FFh            ; const 
_FlashStart             .EQU    000h            ; const 
_FlashEnd               .EQU    1FFFh           ; 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 
_RXINP                  .EQU    060h            ; var iData  byte
_RXOUTP                 .EQU    061h            ; var iData  byte
_RXCOUNT                .EQU    062h            ; var iData  byte
_RXBUFF                 .EQU    063h            ; var iData  byte
_TXINP                  .EQU    073h            ; var iData  byte
_TXOUTP                 .EQU    074h            ; var iData  byte
_TXCOUNT                .EQU    075h            ; var iData  byte
_TXBUFF                 .EQU    076h            ; var iData  byte
SysTickTime             .EQU    086h            ; var iData  byte
EEPROM                  .EQU    000h            ; var EEprom array



                        .RESET     000000h
                        .ORG       0, CODE_START
                        .STARTCODE 000026h


                        .XDATASTART -1


                        ; ============ user definitions module: ADAC ============

ADAC.DDRBinit           .EQU    03Fh            ; const byte     63
ADAC.PortBinit          .EQU    0EFh            ; const byte     239
ADAC.DDRCinit           .EQU    00Ch            ; const byte     12
ADAC.PortCinit          .EQU    0FFh            ; const byte     255
ADAC.DDRDinit           .EQU    004h            ; const byte     4
ADAC.PortDinit          .EQU    0FCh            ; const byte     252
ADAC.LEDOutPort         .EQU    032h            ; const byte     50
ADAC.DDSOutPort         .EQU    038h            ; const byte     56
ADAC.b_SCLK             .EQU    000h            ; const byte     0
ADAC.b_SDATA            .EQU    001h            ; const byte     1
ADAC.b_FSYNC            .EQU    002h            ; const byte     2
ADAC.b_LOADPOT          .EQU    003h            ; const byte     3
ADAC.b_STROBE           .EQU    004h            ; const byte     4
ADAC.b_SerAux           .EQU    005h            ; const byte     5
;Vers1Str                .EQU    'ADA-C V#0.02'; const String
;Vers2Str                .EQU    'C.Meyer 09/2006'; const String
;StopStr                 .EQU    'STOP'; const String
ADAC.high               .EQU    0FFh            ; const boolean  true
ADAC.low                .EQU    000h            ; const boolean  false
ADAC.EEPatchArray       .EQU    00000h          ; var EEprom array
                        .SYM      EEPatchArray, 00000h, 0403Dh, 3
                        .SYM      i, 00007h, 0000Dh, 3
ADAC.i                  .EQU    007h            ; var Data   byte
                        .SYM      k, 00008h, 0000Dh, 3
ADAC.k                  .EQU    008h            ; var Data   byte
                        .SYM      m, 00009h, 0000Dh, 3
ADAC.m                  .EQU    009h            ; var Data   byte
                        .SYM      SweepStarted, 00087h, 00003h, 3
ADAC.SweepStarted       .EQU    087h            ; var iData  boolean
                        .SYM      DDSfrequ, 00088h, 00005h, 3
ADAC.DDSfrequ           .EQU    088h            ; var iData  longint
                        .SYM      AktuelleFrequenz, 0008Ch, 00005h, 3
ADAC.AktuelleFrequenz   .EQU    08Ch            ; var iData  longint
                        .SYM      FrequFak, 00090h, 00005h, 3
ADAC.FrequFak           .EQU    090h            ; var iData  longint
                        .SYM      BurstCount, 00094h, 0000Dh, 3
ADAC.BurstCount         .EQU    094h            ; var iData  byte
                        .SYM      SweepOnce, 00095h, 00003h, 3
ADAC.SweepOnce          .EQU    095h            ; var iData  boolean
                        .SYM      BurstPrime, 00096h, 00003h, 3
ADAC.BurstPrime         .EQU    096h            ; var iData  boolean
                        .SYM      Modified, 00097h, 00003h, 3
ADAC.Modified           .EQU    097h            ; var iData  boolean
                        .SYM      aBool, 00098h, 00003h, 3
ADAC.aBool              .EQU    098h            ; var iData  boolean
                        .SYM      MemoryNum, 00099h, 0000Dh, 3
ADAC.MemoryNum          .EQU    099h            ; var iData  byte
                        .SYM      SweepUpper, 0009Ah, 00005h, 3
ADAC.SweepUpper         .EQU    09Ah            ; var iData  longint
                        .SYM      EditArray, 0009Eh, 0003Dh, 3
ADAC.EditArray          .EQU    09Eh            ; var iData  array
                        .SYM      Edit1, 0009Eh, 0000Dh, 3
ADAC.Edit1              .EQU    09Eh            ; var iData  byte
                        .SYM      Frequenz, 0009Eh, 00005h, 3
ADAC.Frequenz           .EQU    09Eh            ; var iData  longint
                        .SYM      SweepRange, 000A6h, 0000Dh, 3
ADAC.SweepRange         .EQU    0A6h            ; var iData  byte
                        .SYM      SweepTime, 000A7h, 0000Dh, 3
ADAC.SweepTime          .EQU    0A7h            ; var iData  byte
                        .SYM      BurstMode, 000A8h, 0000Dh, 3
ADAC.BurstMode          .EQU    0A8h            ; var iData  byte
                        .SYM      Wave, 000A9h, 0000Dh, 3
ADAC.Wave               .EQU    0A9h            ; var iData  byte
                        .SYM      AttnStep, 000AAh, 0000Dh, 3
ADAC.AttnStep           .EQU    0AAh            ; var iData  byte
                        .SYM      SaveArray, 000AEh, 0003Dh, 3
ADAC.SaveArray          .EQU    0AEh            ; var iData  array
                        .SYM      Save1, 000AEh, 0000Dh, 3
ADAC.Save1              .EQU    0AEh            ; var iData  byte
ADAC.EditString         .EQU    0BEh            ; var iData  string
                        .SYM      EditString, 000BEh, 0303Ch, 3
                        .SYM      EditString1, 000BFh, 0000Ch, 3
ADAC.EditString1        .EQU    0BFh            ; var iData  char
ADAC.SaveEditString     .EQU    0CFh            ; var iData  string
                        .SYM      SaveEditString, 000CFh, 0303Ch, 3
ADAC.LevelStr           .EQU    0E0h            ; var iData  string
                        .SYM      LevelStr, 000E0h, 0303Ch, 3
ADAC.FreqStr            .EQU    0E8h            ; var iData  string
                        .SYM      FreqStr, 000E8h, 0303Ch, 3
ADAC.BurstTimer         .EQU    0F1h            ; var iData  byte
                        .SYM      BurstTimer, 000F1h, 0000Dh, 3
ADAC.EditArrayLen       .EQU    00Dh            ; const byte     13
                        .FUNC     PatchCopyFromEE, 0009Dh, 00020h
ADAC.PatchCopyFromEE:
                        SBIW      _FRAMEPTR, 2
                        .BLOCK    160
                        .LINE     161
                        LDS       _ACCA, ADAC.MemoryNum
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        LDI       _ACCBLO, 0000Dh AND 0FFh
                        LDI       _ACCBHI, 0000Dh SHRB 8
                        CLT
                        BLD       Flags, _SIGN
                        RCALL     SYSTEM.MUL16
                        STD       Y+001h, _ACCA
                        STD       Y+000h, _ACCB
                        .LINE     162
                        LDI       _ACCCLO, ADAC.i AND 0FFh
                        LDI       _ACCCHI, ADAC.i SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        Z, _ACCA
                        LDI       _ACCA, 00Ch
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
ADAC._L0002:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      ADAC._L0003
                        CLR       _ACCA
ADAC._L0003:
                        TST       _ACCA
                        .BRANCH   3,ADAC._L0004
                        BREQ      ADAC._L0004
                        .BRANCH   20,ADAC._L0001
                        RJMP      ADAC._L0001
ADAC._L0004:
                        .BLOCK    163
                        .LINE     163
                        MOV       _ACCA, ADAC.i
                        PUSH      _ACCA
                        LDI       _ACCCLO, ADAC.EEPatchArray AND 0FFh
                        LDI       _ACCCHI, ADAC.EEPatchArray SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDD       _ACCB, Y+003h
                        LDD       _ACCA, Y+004h
                        PUSH      _ACCB
                        PUSH      _ACCA
                        MOV       _ACCA, ADAC.i
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        POP       _ACCAHI
                        POP       _ACCALO
                        ADD       _ACCB, _ACCALO
                        ADC       _ACCA, _ACCAHI
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        RCALL     SYSTEM.ReadEEp8
                        LDI       _ACCCLO, ADAC.EditArray AND 0FFh
                        LDI       _ACCCHI, ADAC.EditArray SHRB 8
                        POP       _ACCBLO
                        ANDI      _ACCBLO, 15
                        CLR       _ACCBHI
                        ADD       _ACCCLO, _ACCBLO
                        ADC       _ACCCHI, _ACCBHI
                        ST        Z, _ACCA
                        .ENDBLOCK 164
ADAC._L0000:
                        .LINE     164
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,ADAC._L0001
                        BREQ      ADAC._L0001
                        .BRANCH   20,ADAC._L0002
                        RJMP      ADAC._L0002
ADAC._L0001:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 165
ADAC.PatchCopyFromEE_X:
                        .LINE     165
                        .BRANCH   19
                        RET
                        .ENDFUNC  165

                        .FUNC     BurstGen, 000A9h, 00020h
ADAC.BurstGen:
                        .BLOCK    171
                        .LINE     172
                        LDS       _ACCA, ADAC.BurstMode
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BREQ      ADAC._L0005
                        SER       _ACCA
ADAC._L0005:
                        TST       _ACCA
                        .BRANCH   4,ADAC._L0008
                        BRNE      ADAC._L0008
                        .BRANCH   20,ADAC._L0006
                        RJMP      ADAC._L0006
ADAC._L0008:
                        .BLOCK    172
                        .LINE     173
                        SER       _ACCA
                        LDS       _ACCB, ADAC.BurstTimer
                        TST       _ACCB
                        BREQ      ADAC._L0009
                        COM       _ACCA
ADAC._L0009:
                        TST       _ACCA
                        .BRANCH   4,ADAC._L0012
                        BRNE      ADAC._L0012
                        .BRANCH   20,ADAC._L0010
                        RJMP      ADAC._L0010
ADAC._L0012:
                        .BLOCK    173
                        .LINE     174
                        LDI       _ACCA, 00Ah
                        STS       ADAC.BurstTimer, _ACCA
                        .LINE     175
                        LDS       _ACCA, ADAC.BurstCount
                        DEC       _ACCA
                        STS       ADAC.BurstCount, _ACCA
                        .LINE     176
                        LDS       _ACCA, ADAC.BurstCount
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      ADAC._L0013
                        SER       _ACCA
ADAC._L0013:
                        TST       _ACCA
                        .BRANCH   4,ADAC._L0016
                        BRNE      ADAC._L0016
                        .BRANCH   20,ADAC._L0014
                        RJMP      ADAC._L0014
ADAC._L0016:
                        .BLOCK    176
                        .LINE     179
                        LDS       _ACCA, ADAC.BurstMode
                        SUBI      _ACCA, -001h AND 0FFh
                        STS       ADAC.BURSTCOUNT, _ACCA
                        .LINE     180
                        LDI       _ACCA, 0FFh
                        STS       ADAC.BURSTPRIME, _ACCA
                        .ENDBLOCK 181
ADAC._L0014:
ADAC._L0015:
                        .ENDBLOCK 182
ADAC._L0010:
ADAC._L0011:
                        .LINE     183
                        LDS       _ACCA, ADAC.BurstCount
                        CPI       _ACCA, 001h
                        LDI       _ACCA, 0h
                        BRNE      ADAC._L0017
                        SER       _ACCA
ADAC._L0017:
                        TST       _ACCA
                        .BRANCH   4,ADAC._L0020
                        BRNE      ADAC._L0020
                        .BRANCH   20,ADAC._L0018
                        RJMP      ADAC._L0018
ADAC._L0020:
                        .BLOCK    183
                        .LINE     184
                        LDS       _ACCA, ADAC.BurstPrime
                        TST       _ACCA
                        .BRANCH   4,ADAC._L0023
                        BRNE      ADAC._L0023
                        .BRANCH   20,ADAC._L0021
                        RJMP      ADAC._L0021
ADAC._L0023:
                        .BLOCK    184
                        .LINE     187
                        LDI       _ACCA, 000h
                        STS       ADAC.BURSTPRIME, _ACCA
                        .ENDBLOCK 188
ADAC._L0021:
ADAC._L0022:
                        .ENDBLOCK 189
ADAC._L0018:
ADAC._L0019:
                        .ENDBLOCK 190
ADAC._L0006:
ADAC._L0007:
                        .ENDBLOCK 191
ADAC.BurstGen_X:
                        .LINE     191
                        .BRANCH   19
                        RET
                        .ENDFUNC  191

                        .FUNC     SerCRLF, 000C6h, 00020h
ADAC.SerCRLF:
                        .BLOCK    199
                        .LINE     200
                        LDI       _ACCA, 00Dh
                        .FRAME  0
                        RCALL     SYSTEM.SEROUT
                        .LINE     201
                        LDI       _ACCA, 00Ah
                        .FRAME  0
                        RCALL     SYSTEM.SEROUT
                        .ENDBLOCK 202
ADAC.SerCRLF_X:
                        .LINE     202
                        .BRANCH   19
                        RET
                        .ENDFUNC  202

                        .FUNC     serprompt, 000CCh, 00020h
ADAC.serprompt:
                        .BLOCK    205
                        .LINE     206
                        LDD       _ACCA, Y+000h
                        TST       _ACCA
                        .BRANCH   4,ADAC._L0026
                        BRNE      ADAC._L0026
                        .BRANCH   20,ADAC._L0024
                        RJMP      ADAC._L0024
ADAC._L0026:
                        .BLOCK    206
                        .LINE     207
                        LDI       _ACCA, 03Dh
                        .FRAME  0
                        RCALL     SYSTEM.SEROUT
                        .ENDBLOCK 208
                        .BRANCH   20,ADAC._L0025
                        RJMP      ADAC._L0025
ADAC._L0024:
                        .BLOCK    208
                        .LINE     209
                        LDI       _ACCA, 03Fh
                        .FRAME  0
                        RCALL     SYSTEM.SEROUT
                        .ENDBLOCK 210
ADAC._L0025:
                        .LINE     211
                        LDI       _ACCA, 03Eh
                        .FRAME  0
                        RCALL     SYSTEM.SEROUT
                        .LINE     212
                        .BRANCH   17,ADAC.SERCRLF
                        RCALL     ADAC.SERCRLF
                        .LINE     213
                        LDD       _ACCA, Y+000h
                        STS       ADAC.ABOOL, _ACCA
                        .ENDBLOCK 214
ADAC.serprompt_X:
                        .LINE     214
                        .BRANCH   19
                        RET
                        .ENDFUNC  214

                        .FUNC     ParseCmd, 000DBh, 00020h
ADAC.ParseCmd:
                        LDI       _ACCBLO, 89 AND 0FFh
                        LDI       _ACCBHI, 89 SHRB 8
                        SUB       _FRAMEPTR, _ACCBLO
                        SBC       _FPTRHI, _ACCBHI
                        .BLOCK    229
                        .LINE     230
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 000019h
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        ADIW      _ACCCLO, 00001h
                        .FRAME  2
                        LDI       _ACCA, 00Dh
                        MOV       _ACCDLO, _ACCA
                        LDI       _ACCBHI, 03Fh
                        CLT
                        BLD       Flags, _ERRFLAG
                        CLR       _ACCBLO
ADAC._L0028:
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        PUSH      _ACCBLO
                        PUSH      _ACCBHI
                        PUSH      _ACCDLO
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        RCALL      SYSTEM.SerInp
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        POP       _ACCDLO
                        POP       _ACCBHI
                        POP       _ACCBLO
                        POP       _ACCCHI
                        POP       _ACCCLO
                        CP        _ACCA, _ACCDLO
                        BRNE      ADAC._L0030
                        CPI       _ACCDLO, 10
                        BREQ      ADAC._L0029
                        LDI       _ACCDLO, 10
                        RJMP      ADAC._L0028
ADAC._L0030:
                        ST        Z+, _ACCA
                        INC       _ACCBLO
                        DEC       _ACCBHI
                        BRNE      ADAC._L0028
ADAC._L0029:
                        LDD       _ACCCLO, Y+000h
                        LDD       _ACCCHI, Y+001h
                        ADIW      _FRAMEPTR, 2
                        .FRAME  0
                        ST        Z, _ACCBLO
                        .LINE     231
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 000019h
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        ADIW      _ACCCLO, 1
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        LDI       _ACCA, 03Fh
                        ST        -Y, _ACCA
                        LDI       _ACCA, 0FEH ROLB _DEVICE
                        AND       Flags, _ACCA
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        .FRAME  3
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 00001Ch
                        RCALL     SYSTEM.UpperCaseStr
                        LDI       _ACCA, 03Fh
                        PUSH      _ACCA
                        LDD       _ACCA, Y+000h
                        POP       _ACCB
                        SUB       _ACCB, _ACCA
                        MOV       _ACCA, _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ST        Z, _ACCA
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     232
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 000019h
                        LD        _ACCA, Z
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      ADAC._L0032
                        SER       _ACCA
ADAC._L0032:
                        TST       _ACCA
                        .BRANCH   4,ADAC._L0035
                        BRNE      ADAC._L0035
                        .BRANCH   20,ADAC._L0033
                        RJMP      ADAC._L0033
ADAC._L0035:
                        .BLOCK    232
                        .LINE     233
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 0FFh
                        ST        -Y, _ACCA
                        .FRAME  1
                        .FRAME  0
                        .BRANCH   17,ADAC.SERPROMPT
                        RCALL     ADAC.SERPROMPT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     234
                        .BRANCH   20,ADAC.ParseCmd_X
                        RJMP      ADAC.ParseCmd_X
                        .ENDBLOCK 235
ADAC._L0033:
ADAC._L0034:
                        .LINE     237
                        LDI       _ACCA, 020h
                        PUSH      _ACCA
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 000019h
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCELO, 001h
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCB
                        RCALL     SYSTEM.PosChInVarStr
                        MOV       ADAC.I, _ACCA
                        .LINE     238
                        LDI       _ACCA, 03Fh
                        PUSH      _ACCA
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 000019h
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCELO, 001h
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCB
                        RCALL     SYSTEM.PosChInVarStr
                        CPI       _ACCA, 001h
                        LDI       _ACCA, 0h
                        BREQ      ADAC._L0036
                        BRLO      ADAC._L0036
                        SER       _ACCA
ADAC._L0036:
                        STD       Y+002h, _ACCA
                        .LINE     239
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 000019h
                        ADIW      _ACCCLO, 00001h
                        LD        _ACCA, Z+
                        STD       Y+001h, _ACCA
                        .LINE     240
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 000019h
                        ADIW      _ACCCLO, 00002h
                        LD        _ACCA, Z+
                        STD       Y+000h, _ACCA
                        .LINE     241
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 000009h
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        ADIW      _ACCCLO, 1
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        LDI       _ACCA, 00Fh
                        ST        -Y, _ACCA
                        LDI       _ACCA, 0FEH ROLB _DEVICE
                        AND       Flags, _ACCA
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        .FRAME  3
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 00001Ch
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        MOV       _ACCA, ADAC.i
                        SUBI      _ACCA, -001h AND 0FFh
                        PUSH      _ACCA
                        LDI       _ACCA, 00Fh
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RCALL     SYSTEM.StrCopyV
                        LDI       _ACCA, 00Fh
                        PUSH      _ACCA
                        LDD       _ACCA, Y+000h
                        POP       _ACCB
                        SUB       _ACCB, _ACCA
                        MOV       _ACCA, _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ST        Z, _ACCA
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     242
                        LDI       _ACCA, 02Eh
                        PUSH      _ACCA
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 000009h
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCELO, 001h
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCB
                        RCALL     SYSTEM.PosChInVarStr
                        MOV       ADAC.I, _ACCA
                        .LINE     243
                        LDI       _ACCA, 000h
                        STD       Y+003h, _ACCA
                        .LINE     244
                        MOV       _ACCA, ADAC.i
                        CPI       _ACCA, 001h
                        LDI       _ACCA, 0h
                        BREQ      ADAC._L0037
                        BRLO      ADAC._L0037
                        SER       _ACCA
ADAC._L0037:
                        TST       _ACCA
                        .BRANCH   4,ADAC._L0040
                        BRNE      ADAC._L0040
                        .BRANCH   20,ADAC._L0038
                        RJMP      ADAC._L0038
ADAC._L0040:
                        .BLOCK    244
                        .LINE     245
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 000009h
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        ADIW      _ACCCLO, 1
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        LDI       _ACCA, 00Fh
                        ST        -Y, _ACCA
                        LDI       _ACCA, 0FEH ROLB _DEVICE
                        AND       Flags, _ACCA
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        .FRAME  3
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 00000Ch
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCA, 001h
                        PUSH      _ACCA
                        MOV       _ACCA, ADAC.i
                        SUBI      _ACCA, 001h AND 0FFh
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RCALL     SYSTEM.StrCopyV
                        LDI       _ACCA, 00Fh
                        PUSH      _ACCA
                        LDD       _ACCA, Y+000h
                        POP       _ACCB
                        SUB       _ACCB, _ACCA
                        MOV       _ACCA, _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ST        Z, _ACCA
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     246
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 000009h
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        MOV       _ACCA, ADAC.i
                        SUBI      _ACCA, -001h AND 0FFh
                        POP       _ACCCHI
                        POP       _ACCCLO
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LD        _ACCA, Z+
                        SUBI      _ACCA, 030h AND 0FFh
                        STD       Y+003h, _ACCA
                        .ENDBLOCK 247
ADAC._L0038:
ADAC._L0039:
                        .LINE     248
                        MOVW      _ACCCLO, _FRAMEPTR
                        ADIW      _ACCCLO, 000009h
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        CLT
                        BLD       Flags, _ERRFLAG
                        LDI       _ACCB, 000h
                        RCALL     SYSTEM.Str2Int
                        STD       Y+008h, _ACCAHI
                        STD       Y+007h, _ACCALO
                        STD       Y+006h, _ACCA
                        STD       Y+005h, _ACCB
                        .LINE     249
                        LDD       _ACCAHI, Y+008h
                        LDD       _ACCALO, Y+007h
                        LDD       _ACCA, Y+006h
                        LDD       _ACCB, Y+005h
                        MOV       _ACCA, _ACCB
                        STD       Y+004h, _ACCA
                        .LINE     250
                        LDI       _ACCA, 0FFh
                        STS       ADAC.ABOOL, _ACCA
                        .LINE     252
                        LDD       _ACCA, Y+002h
                        TST       _ACCA
                        .BRANCH   4,ADAC._L0043
                        BRNE      ADAC._L0043
                        .BRANCH   20,ADAC._L0041
                        RJMP      ADAC._L0041
ADAC._L0043:
                        .BLOCK    252
                        .LINE     253
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        .FRAME  0
                        .BRANCH   17,ADAC.SERPROMPT
                        RCALL     ADAC.SERPROMPT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 255
                        .BRANCH   20,ADAC._L0042
                        RJMP      ADAC._L0042
ADAC._L0041:
                        .BLOCK    255
                        .LINE     255
                        LDD       _ACCA, Y+001h
                        .LINE     256
                        CPI       _ACCA, 70
                        .BRANCH   3,ADAC._L0047
                        BREQ      ADAC._L0047
                        .BRANCH   20,ADAC._L0046
                        RJMP      ADAC._L0046
ADAC._L0047:
ADAC._L0045:
                        .BLOCK    257
                        .LINE     257
                        LDD       _ACCAHI, Y+008h
                        LDD       _ACCALO, Y+007h
                        LDD       _ACCA, Y+006h
                        LDD       _ACCB, Y+005h
                        LDI       _ACCDLO, 00000000Ah AND 0FFh
                        LDI       _ACCDHI, 00000000Ah SHRB 8
                        LDI       _ACCELO, 00000000Ah SHRB 16
                        LDI       _ACCEHI, 00000000Ah SHRB 24
                        SET
                        BLD       Flags, _SIGN
                        RCALL     SYSTEM.MUL32_R
                        PUSH      _ACCB
                        PUSH      _ACCA
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
                        LDD       _ACCA, Y+003h
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        CLR       _ACCAHI
                        CLR       _ACCALO
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCBHI
                        POP       _ACCBLO
                        ADD       _ACCB, _ACCBLO
                        ADC       _ACCA, _ACCBHI
                        ADC       _ACCALO, _ACCCLO
                        ADC       _ACCAHI, _ACCCHI
                        STS       ADAC.AKTUELLEFREQUENZ, _ACCB
                        STS       ADAC.AKTUELLEFREQUENZ+1, _ACCA
                        STS       ADAC.AKTUELLEFREQUENZ+2, _ACCALO
                        STS       ADAC.AKTUELLEFREQUENZ+3, _ACCAHI
                        .LINE     258
                        LDS       _ACCB, ADAC.AktuelleFrequenz
                        LDS       _ACCA, ADAC.AktuelleFrequenz+1
                        LDS       _ACCALO, ADAC.AktuelleFrequenz+2
                        LDS       _ACCAHI, ADAC.AktuelleFrequenz+3
                        STS       ADAC.FREQUENZ, _ACCB
                        STS       ADAC.FREQUENZ+1, _ACCA
                        STS       ADAC.FREQUENZ+2, _ACCALO
                        STS       ADAC.FREQUENZ+3, _ACCAHI
                        .ENDBLOCK 259
                        .BRANCH   20,ADAC._L0044
                        RJMP      ADAC._L0044
ADAC._L0046:
                        .LINE     260
                        CPI       _ACCA, 87
                        .BRANCH   3,ADAC._L0050
                        BREQ      ADAC._L0050
                        .BRANCH   20,ADAC._L0049
                        RJMP      ADAC._L0049
ADAC._L0050:
ADAC._L0048:
                        .BLOCK    261
                        .LINE     261
                        LDD       _ACCA, Y+004h
                        STS       ADAC.WAVE, _ACCA
                        .ENDBLOCK 262
                        .BRANCH   20,ADAC._L0044
                        RJMP      ADAC._L0044
ADAC._L0049:
                        .LINE     263
                        CPI       _ACCA, 76
                        .BRANCH   3,ADAC._L0053
                        BREQ      ADAC._L0053
                        .BRANCH   20,ADAC._L0052
                        RJMP      ADAC._L0052
ADAC._L0053:
ADAC._L0051:
                        .BLOCK    264
                        .LINE     264
                        LDD       _ACCA, Y+004h
                        STS       ADAC.ATTNSTEP, _ACCA
                        .ENDBLOCK 265
                        .BRANCH   20,ADAC._L0044
                        RJMP      ADAC._L0044
ADAC._L0052:
                        .LINE     266
                        CPI       _ACCA, 66
                        .BRANCH   3,ADAC._L0056
                        BREQ      ADAC._L0056
                        .BRANCH   20,ADAC._L0055
                        RJMP      ADAC._L0055
ADAC._L0056:
ADAC._L0054:
                        .BLOCK    267
                        .LINE     267
                        LDD       _ACCA, Y+004h
                        STS       ADAC.BURSTMODE, _ACCA
                        .ENDBLOCK 268
                        .BRANCH   20,ADAC._L0044
                        RJMP      ADAC._L0044
ADAC._L0055:
                        .LINE     269
                        CPI       _ACCA, 83
                        .BRANCH   3,ADAC._L0059
                        BREQ      ADAC._L0059
                        .BRANCH   20,ADAC._L0058
                        RJMP      ADAC._L0058
ADAC._L0059:
ADAC._L0057:
                        .BLOCK    270
                        .LINE     270
                        LDD       _ACCA, Y+004h
                        STS       ADAC.SWEEPRANGE, _ACCA
                        .LINE     271
                        LDI       _ACCA, 0FFh
                        STS       ADAC.SWEEPONCE, _ACCA
                        .LINE     274
                        LDI       _ACCA, 02Ch
                        .FRAME  0
                        RCALL     SYSTEM.SEROUT
                        .LINE     275
                        LDI       _ACCA, 020h
                        .FRAME  0
                        RCALL     SYSTEM.SEROUT
                        .LINE     277
                        .BRANCH   17,ADAC.SERCRLF
                        RCALL     ADAC.SERCRLF
                        .ENDBLOCK 278
                        .BRANCH   20,ADAC._L0044
                        RJMP      ADAC._L0044
ADAC._L0058:
                        .LINE     279
                        CPI       _ACCA, 84
                        .BRANCH   3,ADAC._L0062
                        BREQ      ADAC._L0062
                        .BRANCH   20,ADAC._L0061
                        RJMP      ADAC._L0061
ADAC._L0062:
ADAC._L0060:
                        .BLOCK    280
                        .LINE     280
                        LDD       _ACCA, Y+004h
                        STS       ADAC.SWEEPTIME, _ACCA
                        .ENDBLOCK 281
                        .BRANCH   20,ADAC._L0044
                        RJMP      ADAC._L0044
ADAC._L0061:
                        .BLOCK    282
                        .LINE     283
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        .FRAME  0
                        .BRANCH   17,ADAC.SERPROMPT
                        RCALL     ADAC.SERPROMPT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 284
ADAC._L0044:
                        .ENDBLOCK 285
ADAC._L0042:
                        .LINE     287
                        LDS       _ACCA, ADAC.aBool
                        TST       _ACCA
                        .BRANCH   4,ADAC._L0065
                        BRNE      ADAC._L0065
                        .BRANCH   20,ADAC._L0063
                        RJMP      ADAC._L0063
ADAC._L0065:
                        .BLOCK    287
                        .LINE     288
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 0FFh
                        ST        -Y, _ACCA
                        .FRAME  1
                        .FRAME  0
                        .BRANCH   17,ADAC.SERPROMPT
                        RCALL     ADAC.SERPROMPT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 289
ADAC._L0063:
ADAC._L0064:
                        .ENDBLOCK 291
ADAC.ParseCmd_X:
                        .LINE     291
                        .BRANCH   19
                        RET
                        .ENDFUNC  291

                        .FUNC     initall, 00129h, 00020h
ADAC.initall:
                        .BLOCK    299
                        .LINE     300
                        LDI       _ACCA, 03Fh
                        OUT       DDRB, _ACCA
                        .LINE     301
                        LDI       _ACCA, 0EFh
                        OUT       PORTB, _ACCA
                        .LINE     302
                        LDI       _ACCA, 00Ch
                        OUT       DDRC, _ACCA
                        .LINE     303
                        LDI       _ACCA, 0FFh
                        OUT       PORTC, _ACCA
                        .LINE     304
                        LDI       _ACCA, 004h
                        OUT       DDRD, _ACCA
                        .LINE     305
                        LDI       _ACCA, 0FCh
                        OUT       PORTD, _ACCA
                        .LINE     307
                        IN        _ACCA, ADMUX
                        ORI       _ACCA, 0C0h
                        OUT       ADMUX, _ACCA
                        .LINE     310
                        LDI       _ACCA, 000h
                        STS       ADAC.MEMORYNUM, _ACCA
                        .LINE     311
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,ADAC.PATCHCOPYFROMEE
                        RCALL     ADAC.PATCHCOPYFROMEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     313
                        LDI       _ACCA, 000h
                        STS       ADAC.MODIFIED, _ACCA
                        .LINE     314
                        LDI       _ACCA, 1 SHLB IntFlag
                        OR        Flags, _ACCA
                        SEI
                        .LINE     315
                        LDI       _ACCA, 001h
                        STS       ADAC.BURSTCOUNT, _ACCA
                        .LINE     316
                        LDI       _ACCA, 001h
                        STS       ADAC.BurstTimer, _ACCA
                        .LINE     317
                        LDS       _ACCB, ADAC.Frequenz
                        LDS       _ACCA, ADAC.Frequenz+1
                        LDS       _ACCALO, ADAC.Frequenz+2
                        LDS       _ACCAHI, ADAC.Frequenz+3
                        STS       ADAC.AKTUELLEFREQUENZ, _ACCB
                        STS       ADAC.AKTUELLEFREQUENZ+1, _ACCA
                        STS       ADAC.AKTUELLEFREQUENZ+2, _ACCALO
                        STS       ADAC.AKTUELLEFREQUENZ+3, _ACCAHI
                        .ENDBLOCK 319
ADAC.initall_X:
                        .LINE     319
                        .BRANCH   19
                        RET
                        .ENDFUNC  319



                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Program body
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .FUNC     $_Main, 00143h, 00020h
                        .ENTRYMAIN $
ADAC.$_Main:

                        .BLOCK    323
                        .LINE     324
                        .BRANCH   17,ADAC.INITALL
                        RCALL     ADAC.INITALL
ADAC._L0066:
                        .BLOCK    325
                        .LINE     326
                        RCALL      SYSTEM.SERSTAT
                        TST       _ACCA
                        .BRANCH   4,ADAC._L0070
                        BRNE      ADAC._L0070
                        .BRANCH   20,ADAC._L0068
                        RJMP      ADAC._L0068
ADAC._L0070:
                        .BLOCK    326
                        .LINE     327
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,ADAC.PARSECMD
                        RCALL     ADAC.PARSECMD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 328
ADAC._L0068:
ADAC._L0069:
                        .LINE     331
                        .BRANCH   17,ADAC.BURSTGEN
                        RCALL     ADAC.BURSTGEN
                        .ENDBLOCK 333
                        .LINE     333
                        .BRANCH   20,ADAC._L0066
                        RJMP      ADAC._L0066
ADAC._L0067:
                        .ENDBLOCK 334

ADAC.$_MAINEX:
                        .LINE     334
                        NOP
                        .LINE     334
                        .BRANCH   20,ADAC.$_MAINEX
                        RJMP      ADAC.$_MAINEX


                        .ENDFUNC  334

SYSTEM.$Main_stk        .EQU    000F2h          ; var iData  Process stack area
SYSTEM.$Main_stk_e      .EQU    00171h          ; var iData  Process stack area
SYSTEM.$Main_Frame      .EQU    00172h          ; var iData  Process stack area
SYSTEM.$Main_Frame_e    .EQU    00271h          ; var iData  Process stack area

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Initialisation and Library Routines
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .ENTRY
SYSTEM.RESET:
                        CLI
                        ; >> Stack Init [main process only] <<
                        LDI       _ACCA, 001h
                        LDI       _ACCB, 071h
                        OUT       sph, _ACCA
                        OUT       spl, _ACCB


                        ; >> Memory Init <<
                        CLR       _ACCA
                        LDI       _ACCCLO, 16
                        LDI       _ACCCHI, 0
                        LDI       _ACCBLO, 0
                        LDI       _ACCBHI, 0
                        ADIW      _ACCCLO, 1
SYSTEM._L0071:
                        SBIW      _ACCCLO, 001h
                        BREQ      SYSTEM._L0073
SYSTEM._L0072:
                        ST        X+, _ACCA
                        RJMP      SYSTEM._L0071
SYSTEM._L0073:
                        LDI       _ACCBLO, 00060h AND 0FFh
                        LDI       _ACCBHI, 00060h SHRB 8
                        LDI       _ACCCLO, 00400h AND 0FFh
                        LDI       _ACCCHI, 00400h SHRB 8
                        ADIW      _ACCCLO, 1
SYSTEM._L0074:
                        SBIW      _ACCCLO, 001h
                        BREQ      SYSTEM._L0076
SYSTEM._L0075:
                        ST        X+, _ACCA
                        RJMP      SYSTEM._L0074
SYSTEM._L0076:
                        LDI       _FRAMEPTR, 00271h AND 0FFh
                        LDI       _FPTRHI, 00271h SHRB 8

                        CLI
                        LDI       _ACCA, 0FEH ROLB IntFlag
                        AND       Flags, _ACCA

                        ; ============ init structured constants ============
                        ; >> Hardware Init <<

                        ; >> SysTick init: 1msec <<
                        ; >> real SysTick (exact): 1.000 msec <<
                        LDI       _ACCA, 083h
                        STS       SysTickTime, _ACCA
                        OUT       tcnt0, _ACCA
                        LDI       _ACCA, 3
                        OUT       tccr0, _ACCA
                        LDI       _ACCA, 001h
                        OUT       timsk, _ACCA

                        ; >> SERPORT Init <<
                        ; >> Baudrate 9600Baud <<
                        
                        ; percent Baudrate error : >> 0.160% <<
                        LDI       _ACCA, 018h
                        OUT       ucr1, _ACCA
                        LDI       _ACCA, 033h
                        OUT       ubrr1, _ACCA
                        LDI       _ACCA, 000h
                        OUT       ubrrh, _ACCA
                        LDI       _ACCA, 0
                        STS       _RXINP, _ACCA
                        STS       _RXOUTP, _ACCA
                        STS       _RXCOUNT, _ACCA
                        SBI       ucr1, 7
                        LDI       _ACCA, 0
                        STS       _TXINP, _ACCA
                        STS       _TXOUTP, _ACCA
                        STS       _TXCOUNT, _ACCA
                        LDI       _ACCA, 08Eh
                        OUT       ucsrc, _ACCA
                        IN        _ACCA, UDR1

                        CLR       Flags
                        CLR       Flags2

                        ; ============ Start User Main Program ============

                        .DEB      MAINENTRY
                        RJMP      ADAC.$_Main

                        ; ============ Interrupt Service ============

SYSTEM.$INTERRUPT_TIMER0:
                        .DEB      SYSTICKENTRY
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        PUSH      _ACCB
                        PUSH      _ACCA
                        IN        _ACCA, SREG
                        PUSH      _ACCA
                        LDS       _ACCA, SysTickTime
                        IN        _ACCB, tcnt0
                        ADD       _ACCA, _ACCB
                        OUT       tcnt0, _ACCA
                        LDI       _ACCA, 0FEH ROLB IntFlag
                        AND       Flags, _ACCA
                        LDS       _ACCA, ADAC.BurstTimer
                        TST       _ACCA
                        BREQ      SYSTEM._L0077
                        SUBI      _ACCA, 1
                        STS       ADAC.BurstTimer, _ACCA
SYSTEM._L0077:
                        LDI       _ACCA, 1 SHLB IntFlag
                        OR        Flags, _ACCA
                        POP       _ACCA
                        OUT       SREG, _ACCA
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        .DEB      SYSTICKEXIT
                        RETI

SYSTEM.$INTERRUPT_TXEMPTY:
SYSTEM.$INTERRUPT_UDRE:
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        PUSH      _ACCB
                        PUSH      _ACCA
                        IN        _ACCA, SREG
                        PUSH      _ACCA
                        LDS       _ACCA, _TXCOUNT
                        TST       _ACCA
                        BRNE      SYSTEM._L0078
SYSTEM._L0082:
                        CBI       ucr1, 5
                        RJMP      SYSTEM._L0080
SYSTEM._L0078:
                        LDS       _ACCB, _TXOUTP
                        CLR       _ACCA
                        LDI       _ACCCLO, _TXBUFF AND 0FFh
                        LDI       _ACCCHI, _TXBUFF SHRB 8
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LD        _ACCA, Z
                        OUT       UDR1, _ACCA
                        LDS       _ACCA, _TXCOUNT
                        DEC       _ACCA
                        STS       _TXCOUNT, _ACCA
                        BRNE      SYSTEM._L0081
                        CBI       ucr1, 5
SYSTEM._L0081:
                        INC       _ACCB
                        CPI       _ACCB, 16
                        BRNE      SYSTEM._L0079
                        CLR       _ACCB
SYSTEM._L0079:
                        STS       _TXOUTP, _ACCB
SYSTEM._L0080:
                        POP       _ACCA
                        OUT       SREG, _ACCA
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RETI

SYSTEM.$INTERRUPT_RXRDY:
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        PUSH      _ACCB
                        PUSH      _ACCA
                        IN        _ACCA, SREG
                        PUSH      _ACCA
SYSTEM._L0088:
                        LDS       _ACCA, _RXCOUNT
                        CPI       _ACCA, 16
                        BRNE      SYSTEM._L0083
                        IN        _ACCB, UDR1
                        RJMP      SYSTEM._L0085
SYSTEM._L0083:
                        IN        _ACCA, UDR1
                        PUSH      _ACCA
                        CLR       _ACCA
                        LDS       _ACCB, _RXINP
                        LDI       _ACCCLO, _RXBUFF AND 0FFh
                        LDI       _ACCCHI, _RXBUFF SHRB 8
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        POP       _ACCA
                        ST        Z, _ACCA
                        LDS       _ACCA, _RXCOUNT
                        INC       _ACCA
                        STS       _RXCOUNT, _ACCA
                        INC       _ACCB
                        CPI       _ACCB, 16
                        BRNE      SYSTEM._L0084
                        CLR       _ACCB
SYSTEM._L0084:
                        STS       _RXINP, _ACCB
                        SBIC      usr1, 7
                        RJMP      SYSTEM._L0088
SYSTEM._L0085:
SYSTEM._L0090:
                        POP       _ACCA
                        OUT       SREG, _ACCA
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RETI


                        ; ============ Library ============

SYSTEM.SERINP:
SYSTEM._L0091:
                        LDS       _ACCA, _RXCOUNT
                        TST       _ACCA
                        BREQ      SYSTEM._L0091
                        LDS       _ACCB, _RXOUTP
                        CLR       _ACCA
                        LDI       _ACCCLO, _RXBUFF AND 0FFh
                        LDI       _ACCCHI, _RXBUFF SHRB 8
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LD        _ACCA, Z
                        CLI
                        LDS       _ACCCLO, _RXCOUNT
                        DEC       _ACCCLO
                        STS       _RXCOUNT, _ACCCLO
                        SBRC      Flags, IntFlag
                        SEI
                        LDS       _ACCB, _RXOUTP
                        INC       _ACCB
                        CPI       _ACCB, 16
                        BRNE      SYSTEM._L0092
                        CLR       _ACCB
SYSTEM._L0092:
                        STS       _RXOUTP, _ACCB
                        RET

SYSTEM.SERSTAT:
                        CLR       _ACCA
                        LDS       _ACCB, _RXCOUNT
                        TST       _ACCB
                        BREQ      SYSTEM._L0094
                        COM       _ACCA
SYSTEM._L0094:
                        RET

SYSTEM.SEROUT:
SYSTEM._L0095:
                        LDS       _ACCB, _TXCOUNT
                        CPI       _ACCB, 16
                        BREQ      SYSTEM._L0095
                        CLI
                        LDS       _ACCB, _TXINP
                        LDI       _ACCCLO, _TXBUFF AND 0FFh
                        LDI       _ACCCHI, _TXBUFF SHRB 8
                        ADD       _ACCCLO, _ACCB
                        CLR       _ACCB
                        ADC       _ACCCHI, _ACCB
                        ST        Z, _ACCA
                        LDS       _ACCB, _TXCOUNT
                        INC       _ACCB
                        STS       _TXCOUNT, _ACCB
                        LDS       _ACCB, _TXINP
                        INC       _ACCB
                        CPI       _ACCB, 16
                        BRNE      SYSTEM._L0096
                        CLR       _ACCB
SYSTEM._L0096:
                        STS       _TXINP, _ACCB
                        SBI       ucr1, 5
                        SBRC      Flags, IntFlag
                        SEI
                        RET


SYSTEM.BlockCopyC:
SYSTEM._L0097:
                        SUBI      _ACCALO, 001h
                        SBCI      _ACCAHI, 000h
                        BRCS      SYSTEM._L0098
                        LD        _ACCA, Z+
                        ST        X+, _ACCA
                        RJMP      SYSTEM._L0097
SYSTEM._L0098:
                        RET

SYSTEM._EEpWaitReady:
                        SBRC      Flags, IntFlag
                        SEI
                        SBIC      eecr, 1
                        RJMP      SYSTEM._EEpWaitReady

                        CLI
                        SBIC      eecr, 1
                        RJMP      SYSTEM._EEpWaitReady

                        RET

SYSTEM.ReadEEp8:
                        RCALL     SYSTEM._EEpWaitReady
                        OUT       eearl, _ACCCLO
                        OUT       eearh, _ACCCHI
                        SBI       eecr, 0
                        NOP
                        IN        _ACCA, eedr
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.Str2Int:
                        CLR       _ACCAHI
                        CLR       _ACCALO
                        CLR       _ACCBHI
                        CLR       _ACCBLO
                        BST       Flags, _EEPROM
                        BRTC      SYSTEM._L0103
                        RCALL     SYSTEM.ReadEEp8
                        ADIW      _ACCCLO, 01h
                        RJMP     SYSTEM._L0104
SYSTEM._L0103:
                        LD        _ACCA, Z+
SYSTEM._L0104:
                        TST       _ACCA
                        BRNE      SYSTEM._L0100
SYSTEM._L0099:
                        CLR       _ACCA
                        CLR       _ACCB
                        RET

SYSTEM._L0100:
                        MOV       _ACCDHI, _ACCA
                        TST       _ACCB
                        BREQ      SYSTEM._L0105
                        INC       _ACCDHI
                        RJMP      SYSTEM.Hex2Int
SYSTEM._L0105:
                        BST       Flags, _EEPROM
                        BRTC      SYSTEM._L0106
                        RCALL     SYSTEM.ReadEEp8
                        ADIW      _ACCCLO, 01h
                        RJMP     SYSTEM._L0107
SYSTEM._L0106:
                        LD        _ACCA, Z+
SYSTEM._L0107:
                        CLT
                        BLD       Flags, _NEGATIVE
                        CPI       _ACCA, 02Dh
                        BRNE      SYSTEM._L0101
                        DEC       _ACCDHI
                        BREQ      SYSTEM._L0099
                        SET
                        BLD       Flags, _NEGATIVE
                        BST       Flags, _EEPROM
                        BRTC      SYSTEM._L0108
                        RCALL     SYSTEM.ReadEEp8
                        ADIW      _ACCCLO, 01h
                        RJMP     SYSTEM._L0109
SYSTEM._L0108:
                        LD        _ACCA, Z+
SYSTEM._L0109:
                        RJMP      SYSTEM.Dec2Int
SYSTEM._L0101:
                        CPI       _ACCA, 02Bh
                        BRNE      SYSTEM._L0102
                        DEC       _ACCDHI
                        BREQ      SYSTEM._L0099
                        CLT
                        BLD       Flags, _NEGATIVE
                        BST       Flags, _EEPROM
                        BRTC      SYSTEM._L0110
                        RCALL     SYSTEM.ReadEEp8
                        ADIW      _ACCCLO, 01h
                        RJMP     SYSTEM._L0111
SYSTEM._L0110:
                        LD        _ACCA, Z+
SYSTEM._L0111:
                        RJMP      SYSTEM.Dec2Int
SYSTEM._L0102:
                        CPI       _ACCA, 024h
                        BRNE      SYSTEM.Dec2Int
                        RJMP      SYSTEM.Hex2Int
SYSTEM.Dec2Int:
                        MOV       _ACCB, _ACCDHI
                        DEC       _ACCB
                        BRMI      SYSTEM._L0099
                        CLR       _ACCDHI
                        CLR       _ACCEHI
                        CLR       _ACCFHI
                        CLR       _ACCFLO
                        PUSH      _ACCB
                        RJMP      SYSTEM.Dec2Int1
SYSTEM._L0112:
                        PUSH      _ACCB
                        BST       Flags, _EEPROM
                        BRTC      SYSTEM._L0115
                        RCALL     SYSTEM.ReadEEp8
                        ADIW      _ACCCLO, 01h
                        RJMP     SYSTEM._L0116
SYSTEM._L0115:
                        LD        _ACCA, Z+
SYSTEM._L0116:
SYSTEM.Dec2Int1:
                        CPI       _ACCA, 030h
                        BRCS      SYSTEM.Str2Ierr1
                        CPI       _ACCA, 03Ah
                        BRCC      SYSTEM.Str2Ierr1
                        SUBI      _ACCA, 030h
                        MOV       _ACCDLO, _ACCA
                        MOVW      _ACCB, _ACCBLO
                        LSL       _ACCB
                        ROL       _ACCA
                        ROL       _ACCEHI
                        ROL       _ACCFHI
                        LSL       _ACCB
                        ROL       _ACCA
                        ROL       _ACCEHI
                        ROL       _ACCFHI
                        ADD       _ACCB, _ACCBLO
                        ADC       _ACCA, _ACCBHI
                        ADC       _ACCEHI, _ACCFLO
                        ADC       _ACCFHI, _ACCFLO
                        ADD       _ACCEHI, _ACCALO
                        ADC       _ACCFHI, _ACCAHI
                        LSL       _ACCB
                        ROL       _ACCA
                        ROL       _ACCEHI
                        ROL       _ACCFHI
                        ADD       _ACCB, _ACCDLO
                        ADC       _ACCA, _ACCDHI
                        ADC       _ACCEHI, _ACCFLO
                        ADC       _ACCFHI, _ACCFLO
                        MOVW      _ACCBLO, _ACCB
                        MOV       _ACCALO, _ACCEHI
                        MOV       _ACCAHI, _ACCFHI
                        POP       _ACCB
                        DEC       _ACCB
                        BRMI      SYSTEM.Str2Iex
                        RJMP      SYSTEM._L0112
SYSTEM.Str2Ierr1:
                        POP       _ACCB
SYSTEM.Str2Ierr:
                        SET
                        BLD       Flags, _ERRFLAG
                        CLR       _ACCA
                        CLR       _ACCB
                        CLR       _ACCAHI
                        CLR       _ACCALO
                        RET

SYSTEM.Str2Iex:
                        MOVW      _ACCB, _ACCBLO
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM._L0117
                        SUBI      _ACCB, 01h
                        SBCI      _ACCA, 00h
                        SBCI      _ACCALO, 00h
                        SBCI      _ACCAHI, 00h
                        COM       _ACCALO
                        COM       _ACCAHI
                        COM       _ACCA
                        COM       _ACCB
SYSTEM._L0117:
                        RET

SYSTEM.Hex2Int:
                        CLT
                        BLD       Flags, _NEGATIVE
                        DEC       _ACCDHI
                        BREQ      SYSTEM._L0117
                        CPI       _ACCDHI, 009h
                        BRSH      SYSTEM.Str2Ierr
SYSTEM._L0118:
                        BST       Flags, _EEPROM
                        BRTC      SYSTEM._L0122
                        RCALL     SYSTEM.ReadEEp8
                        ADIW      _ACCCLO, 01h
                        RJMP     SYSTEM._L0123
SYSTEM._L0122:
                        LD        _ACCA, Z+
SYSTEM._L0123:
                        CPI       _ACCA, 061h
                        BRLO      SYSTEM._L0119
                        SUBI      _ACCA, 020h
SYSTEM._L0119:
                        CPI       _ACCA, 030h
                        BRLO      SYSTEM.Str2Ierr
                        CPI       _ACCA, 03Ah
                        BRLO      SYSTEM._L0120
                        CPI       _ACCA, 041h
                        BRLO      SYSTEM.Str2Ierr
                        CPI       _ACCA, 047h
                        BRSH      SYSTEM.Str2Ierr
                        SUBI      _ACCA, -9 AND 0FFh
SYSTEM._L0120:
                        ANDI      _ACCA, 00Fh
                        LDI       _ACCB, 4
SYSTEM._L0121:
                        LSL       _ACCBLO
                        ROL       _ACCBHI
                        ROL       _ACCALO
                        ROL       _ACCAHI
                        DEC       _ACCB
                        BRNE      SYSTEM._L0121
                        OR        _ACCBLO, _ACCA
                        DEC       _ACCDHI
                        BRNE      SYSTEM._L0118
                        RJMP      SYSTEM.Str2Iex
SYSTEM.PosChInVarStr:
                        CLR       _ACCA
                        LD        _ACCBHI, Z
                        TST       _ACCBHI
                        BREQ      SYSTEM._L0125
                        TST       _ACCELO
                        BRNE      SYSTEM._L0124
                        INC       _ACCELO
SYSTEM._L0124:
                        CP        _ACCBHI, _ACCELO
                        BRCS      SYSTEM._L0125
                        ADD       _ACCCLO, _ACCELO
                        ADC       _ACCCHI, _ACCA
                        DEC       _ACCELO
                        SUB       _ACCBHI, _ACCELO
                        MOV       _ACCA, _ACCELO
SYSTEM._L0126:
                        INC       _ACCA
                        LD        _ACCBLO, Z+
                        CP        _ACCB, _ACCBLO
                        BREQ      SYSTEM._L0125
                        DEC       _ACCBHI
                        BRNE      SYSTEM._L0126
                        CLR       _ACCA
SYSTEM._L0125:
                        RET


SYSTEM.UpperCaseStr:
                        LD        _ACCA, Z+
                        TST       _ACCA
                        BREQ      SYSTEM._L0128
                        MOV       _ACCBHI, _ACCA
SYSTEM._L0127:
                        LD        _ACCA, Z+
                        CPI       _ACCA, 061h
                        BRCS      SYSTEM._L0129
                        CPI       _ACCA, 07Bh
                        BRCC      SYSTEM._L0129
                        ANDI      _ACCA, 0DFh
SYSTEM._L0129:
                        RCALL     SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM._L0127
SYSTEM._L0128:
                        RET


SYSTEM.StrCopyV:
                        TST       _ACCA
                        BREQ      SYSTEM._L0132
                        LD        _ACCBHI, Z
                        TST       _ACCBHI
                        BREQ      SYSTEM._L0132
                        SUB       _ACCBHI, _ACCB
                        BRCS      SYSTEM._L0132
                        INC       _ACCBHI
                        CLR       _ACCBLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCBLO
                        CP        _ACCBHI, _ACCA
                        BRCS      SYSTEM._L0131
                        MOV       _ACCBHI, _ACCA
SYSTEM._L0131:
                        LD        _ACCA, Z+
                        RCALL     SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM._L0131
SYSTEM._L0132:
                        RET


SYSTEM.Char2Str:
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        BST       Flags, _DEVICE
                        BRTS      SYSTEM._L0136
                        PUSH      _ACCA
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LDD       _ACCA, Y+000h
                        TST       _ACCA
                        BRNE      SYSTEM._L0133
                        POP       _ACCA
                        SET
                        BLD       Flags, _ERRFLAG
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RET
SYSTEM._L0133:
                        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._L0136:
                        LDD       _ACCCLO, Y+000h
                        LDD       _ACCCHI, Y+001h
                        PUSH      _ACCA
                        PUSH      _ACCB
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
                        PUSH      _ACCBLO
                        PUSH      _ACCBHI
                        PUSH      _ACCELO
                        PUSH      _ACCEHI
                        PUSH      _ACCDLO
                        PUSH      _ACCDHI
                        PUSH      _ACCFLO
                        PUSH      _ACCFHI
                        ICALL
                        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.MUL16:
                        MOVW      _ACCALO, _ACCB
                        CLR       _ACCDLO
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.MUL16_G
                        MOVW      _ACCELO, _ACCBLO
                        MULS      _ACCAHI, _ACCEHI
                        MOVW      _ACCCLO, _ACCGLO
                        MUL       _ACCALO, _ACCELO
                        MOVW      _ACCB, _ACCGLO
                        MULSU     _ACCAHI, _ACCELO
                        SBC       _ACCCHI, _ACCDLO
                        ADD       _ACCA, _ACCGLO
                        ADC       _ACCCLO, _ACCGHI
                        ADC       _ACCCHI, _ACCDLO
                        MULSU     _ACCEHI, _ACCALO
                        SBC       _ACCCHI, _ACCDLO
                        ADD       _ACCA, _ACCGLO
                        ADC       _ACCCLO, _ACCGHI
                        ADC       _ACCCHI, _ACCDLO
                        RET

SYSTEM.MUL16_G:
                        MUL       _ACCAHI, _ACCBHI
                        MOVW      _ACCCLO, _ACCGLO
                        MUL       _ACCALO, _ACCBLO
                        MOVW      _ACCB, _ACCGLO
                        MUL       _ACCAHI, _ACCBLO
                        ADD       _ACCA, _ACCGLO
                        ADC       _ACCCLO, _ACCGHI
                        ADC       _ACCCHI, _ACCDLO
                        MUL       _ACCALO, _ACCBHI
                        ADD       _ACCA, _ACCGLO
                        ADC       _ACCCLO, _ACCGHI
                        ADC       _ACCCHI, _ACCDLO
                        RET


SYSTEM.MUL32:
                        MOVW      _ACCBLO, _ACCB
                        MOVW      _ACCCLO, _ACCALO
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCEHI
                        POP       _ACCELO
                        POP       _ACCDHI
                        POP       _ACCDLO
                        PUSH      _ACCB
                        PUSH      _ACCA
                        RJMP      SYSTEM._L0138
SYSTEM.MUL32_R:
                        MOVW      _ACCBLO, _ACCB
                        MOVW      _ACCCLO, _ACCALO
SYSTEM._L0138:
                        BST       Flags, _SIGN
                        BRTC      SYSTEM._L0139
                        MOV       _ACCFLO, _ACCCHI
                        EOR       _ACCFLO, _ACCEHI
                        CLT
                        SBRS      _ACCFLO, 7
                        BLD       Flags, _SIGN
                        SBRS      _ACCCHI, 7
                        RJMP      SYSTEM._L0141
                        COM       _ACCBLO
                        COM       _ACCBHI
                        COM       _ACCCLO
                        COM       _ACCCHI
                        SUBI      _ACCBLO, 0FFh
                        SBCI      _ACCBHI, 0FFh
                        SBCI      _ACCCLO, 0FFh
                        SBCI      _ACCCHI, 0FFh
SYSTEM._L0141:
                        SBRS      _ACCEHI, 7
                        RJMP      SYSTEM._L0139
                        COM       _ACCDLO
                        COM       _ACCDHI
                        COM       _ACCELO
                        COM       _ACCEHI
                        SUBI      _ACCDLO, 0FFh
                        SBCI      _ACCDHI, 0FFh
                        SBCI      _ACCELO, 0FFh
                        SBCI      _ACCEHI, 0FFh
SYSTEM._L0139:
                        CLR       _ACCFHI
                        CLR       _ACCFLO
                        CLR       _ACCGHI
                        CLR       _ACCGLO
                        LDI       _ACCA, 32
                        LSR       _ACCEHI
                        ROR       _ACCELO
                        ROR       _ACCDHI
                        ROR       _ACCDLO
SYSTEM._L0143:
                        BRCC      SYSTEM._L0142
                        ADD       _ACCFLO, _ACCBLO
                        ADC       _ACCFHI, _ACCBHI
                        ADC       _ACCGLO, _ACCCLO
                        ADC       _ACCGHI, _ACCCHI
SYSTEM._L0142:
                        ROR       _ACCGHI
                        ROR       _ACCGLO
                        ROR       _ACCFHI
                        ROR       _ACCFLO
                        ROR       _ACCEHI
                        ROR       _ACCELO
                        ROR       _ACCDHI
                        ROR       _ACCDLO
                        DEC       _ACCA
                        BRNE      SYSTEM._L0143
                        MOVW      _ACCB, _ACCDLO
                        MOVW      _ACCALO, _ACCELO
                        BST       Flags, _SIGN
                        BRTC      SYSTEM._L0140
                        SUBI      _ACCB, 01h
                        SBCI      _ACCA, 00h
                        SBCI      _ACCALO, 00h
                        SBCI      _ACCAHI, 00h
                        COM       _ACCALO
                        COM       _ACCAHI
                        COM       _ACCA
                        COM       _ACCB
SYSTEM._L0140:
                        RET


SYSTEM.DefIntErr:
                        RETI


                        .ROMCONST $

                        ; ============ String-constant tables ============

                        ; ============ array-constant tables ============

                        ; ============ Fixed addr String-constant tables ============

                        ; ============ fixed addr array-constant tables ============

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Reset and Interrupt vectors
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


                        .ENDCODE
SYSTEM.ENDCODE:
                        .ORG       0, VECTTAB
                        .VECTTAB
SYSTEM.VectTab:
                        RJMP      SYSTEM.RESET
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.$INTERRUPT_TIMER0
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.$INTERRUPT_RXRDY
                        RJMP      SYSTEM.$INTERRUPT_TXEMPTY
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr

                        .VECTTABE
SYSTEM.ENDPROG:

                        .END

                        ; ============ End of Program ============


                        ; System uses registers
                        ; from bottom     = 00000h
                        ; upto            = 00006h
                        ; and
                        ; from            = 00010h
                        ; upto            = 0001Fh
                        ;
                        ; Stackframe at   = ...00171h


                        ; ===== Current top of User Vars in Data is 00009h =====

                        ; ===== Current top of User Vars in IData is 00271h =====

                        ; ===== Current top of User Vars in EEprom is 0000Ch =====


                        ; ===== Imported Library Routines =====

                        ; Multiply     word MUL16
                        ; LongWord and LongInt types
                        ; Multiply     long MUL32
                        ; Convert string to int
                        ; Copy partial String
                        ; EEprom read

                        ; Pascal Statements : 75
                        ; Assembler Lines   : 4314
                        ; Optimizer removed : 84 lines = 168Bytes

                        ; >> real SysTick (exact): 1.000 msec <<

;  Linker removed the following functions and procedures
;
;  Module/Unit             Function/Procedure
;  ------------------------------------------
;
