
                        .FILE     H:\PROJAVR\ADA-C\COMTEST.pas

                        ; Compiled by E-LAB AVRco PASCAL Compiler Rev 4.67
                        ; Version     : Profi
                        ;
                        ; Licenced to : Demo Version
                        ;
                        ; (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 : COMTEST.pas
                        ; Compiled    : 24. Juli 2007  20:38:46
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .MEDIUM
                        .ROMEND         07FFFh;

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; 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    1D3h            ; const 
COMPILERBUILD_Y         .EQU    007h            ; const 
COMPILERBUILD_M         .EQU    004h            ; const 
COMPILERBUILD_D         .EQU    016h            ; const 
COMPILEYEAR             .EQU    007h            ; const 
COMPILEMONTH            .EQU    007h            ; const 
COMPILEDAY              .EQU    018h            ; const 
COMPILEHOUR             .EQU    014h            ; const 
COMPILEMINUTE           .EQU    026h            ; const 
PROJECTBUILD            .EQU    048h            ; 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
$_SAVERET               .EQU    004h            ; var Data   byte
$_SAVERET1              .EQU    005h            ; var Data   byte
FLAGS                   .EQU    006h            ; var Data   byte
FLAGS2                  .EQU    007h            ; var Data   byte
_SYSTFLAGS              .EQU    008h            ; var Data   byte
SYSTICK                 .EQU    00Ah            ; const 
PROCCLOCK               .EQU    0F42400h        ; const 
DECIMALSEP              .EQU    02Eh            ; const 
CPU_ID                  .EQU    1E9502h         ; const 
ROMconstPage            .EQU    0FFFFFFFFFFFFFFFFh          ; const 
STACKSIZE               .EQU    080h            ; const 
FRAMESIZE               .EQU    080h            ; const 
SERPORT                 .EQU    9600h           ; const 
SREG                    .EQU    05Fh            ; var pData  byte
SPH                     .EQU    05Eh            ; var pData  byte
SPL                     .EQU    05Dh            ; var pData  byte
OCR0                    .EQU    05Ch            ; var pData  byte
OCR0A                   .EQU    05Ch            ; 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
MCUSR                   .EQU    054h            ; var pData  byte
MCUCSR                  .EQU    054h            ; var pData  byte
TCCR0                   .EQU    053h            ; var pData  byte
TCCR0A                  .EQU    053h            ; var pData  byte
TCNT0                   .EQU    052h            ; var pData  byte
OSCCAL                  .EQU    051h            ; var pData  byte
OCDR                    .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
PORTA                   .EQU    03Bh            ; var pData  byte
DDRA                    .EQU    03Ah            ; var pData  byte
PINA                    .EQU    039h            ; var pData  byte
PORTB                   .EQU    038h            ; var pData  byte
DDRB                    .EQU    037h            ; var pData  byte
PINB                    .EQU    036h            ; var pData  byte
PORTC                   .EQU    035h            ; var pData  byte
DDRC                    .EQU    034h            ; var pData  byte
PINC                    .EQU    033h            ; 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    024h            ; var pData  word
_iDataStart             .EQU    060h            ; const 
_iDataEnd               .EQU    85Fh            ; const 
_EEpromStart            .EQU    000h            ; const 
_EEpromEnd              .EQU    3FFh            ; const 
_FlashStart             .EQU    000h            ; const 
_FlashEnd               .EQU    7FFFh           ; 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 
_RXTIMEOUT              .EQU    062h            ; var iData  byte
_RXINP                  .EQU    063h            ; var iData  byte
_RXOUTP                 .EQU    064h            ; var iData  byte
_RXCOUNT                .EQU    065h            ; var iData  byte
_RXBUFF                 .EQU    066h            ; var iData  byte
_TXINP                  .EQU    165h            ; var iData  byte
_TXOUTP                 .EQU    166h            ; var iData  byte
_TXCOUNT                .EQU    167h            ; var iData  byte
_TXBUFF                 .EQU    168h            ; var iData  byte
LCD_m1                  .EQU    000h            ; const 
LCD_m2                  .EQU    001h            ; const 
LCD_m3                  .EQU    002h            ; const 
LCD_m4                  .EQU    003h            ; const 
LCD_m5                  .EQU    004h            ; const 
LCD_m6                  .EQU    005h            ; const 
LCD_m7                  .EQU    006h            ; const 
LCD_m8                  .EQU    007h            ; const 
_LCDM_PORT              .EQU    060h            ; var iData  byte
TWI_BR100               .EQU    048h            ; const 
TWI_BR400               .EQU    00Ch            ; const 
SysTickTime             .EQU    061h            ; var iData  byte
_TWI_TO                 .EQU    267h            ; var iData  byte
TWI_DevLock             .EQU    268h            ; var iData  DeviceLock
EEPROM                  .EQU    000h            ; var EEprom array



                        .RESET     000000h
                        .ORG       0, CODE_START
                        .STARTCODE 000054h

                        .UNIT     COMTEST

                        .XDATASTART -1


                        ; ============ user definitions module: COMTEST ============

COMTEST.DDRDinit        .EQU    004h            ; const byte     4
COMTEST.PortDinit       .EQU    0FCh            ; const byte     252
;Vers1Str                .EQU    'COMTEST '; const String
COMTEST.LEDOutPort      .EQU    032h            ; const byte     50
COMTEST.ErrSubCh        .EQU    0FFh            ; const byte     255
;ErrStrArr               .EQU    ; const Array
;CmdStrArr               .EQU    ; const Array
;Cmd2SubChArr            .EQU    ; const Array
COMTEST.high            .EQU    0FFh            ; const boolean  true
COMTEST.low             .EQU    000h            ; const boolean  false
                        .SYM      i, 00009h, 0000Dh, 3
COMTEST.i               .EQU    009h            ; var Data   byte
                        .SYM      k, 0000Ah, 0000Dh, 3
COMTEST.k               .EQU    00Ah            ; var Data   byte
                        .SYM      verbose, 00269h, 00003h, 3
COMTEST.verbose         .EQU    269h            ; var iData  boolean
                        .SYM      CmdWhich, 0026Ah, 0000Ah, 3
COMTEST.CmdWhich        .EQU    26Ah            ; var iData  enum
COMTEST.CmdStr          .EQU    26Bh            ; var iData  string
                        .SYM      CmdStr, 0026Bh, 0303Ch, 3
                        .SYM      Param, 0026Fh, 00006h, 3
COMTEST.Param           .EQU    26Fh            ; var iData  Float
                        .SYM      ParamInt, 00273h, 00004h, 3
COMTEST.ParamInt        .EQU    273h            ; var iData  integer
                        .SYM      ParamLong, 00275h, 00005h, 3
COMTEST.ParamLong       .EQU    275h            ; var iData  longint
                        .SYM      ParamByte, 00279h, 0000Dh, 3
COMTEST.ParamByte       .EQU    279h            ; var iData  byte
COMTEST.SerInpStr       .EQU    27Ah            ; var iData  string
                        .SYM      SerInpStr, 0027Ah, 0303Ch, 3
COMTEST.ParamStr        .EQU    2BAh            ; var iData  string
                        .SYM      ParamStr, 002BAh, 0303Ch, 3
                        .SYM      SerInpPtr, 002E3h, 0000Dh, 3
COMTEST.SerInpPtr       .EQU    2E3h            ; var iData  byte
                        .SYM      SlaveCh, 002E4h, 0000Dh, 3
COMTEST.SlaveCh         .EQU    2E4h            ; var iData  byte
                        .SYM      SubCh, 002E5h, 0000Dh, 3
COMTEST.SubCh           .EQU    2E5h            ; var iData  byte
                        .SYM      CurrentCh, 002E6h, 0000Dh, 3
COMTEST.CurrentCh       .EQU    2E6h            ; var iData  byte
COMTEST.SerInpStr2      .EQU    2E7h            ; var iData  string
                        .SYM      SerInpStr2, 002E7h, 0303Ch, 3
COMTEST.ActivityTimer   .EQU    327h            ; var iData  word
                        .SYM      ActivityTimer, 00327h, 0000Eh, 3
                        .SYM      ErrCount, 00329h, 00004h, 3
COMTEST.ErrCount        .EQU    329h            ; var iData  integer
                        .SYM      ErrFlag, 0032Bh, 00003h, 3
COMTEST.ErrFlag         .EQU    32Bh            ; var iData  boolean
                        .FUNC     SerCRLF, 0007Bh, 00020h
COMTEST.SerCRLF:
                        .BLOCK    124
                        .LINE     125
                        LDI       _ACCA, 00Dh
                        .FRAME  0
                        CALL      SYSTEM.SEROUT
                        .LINE     126
                        LDI       _ACCA, 00Ah
                        .FRAME  0
                        CALL      SYSTEM.SEROUT
                        .ENDBLOCK 127
COMTEST.SerCRLF_X:
                        .LINE     127
                        .BRANCH   19
                        RET
                        .ENDFUNC  127

                        .FUNC     WriteSerInp, 00081h, 00020h
COMTEST.WriteSerInp:
                        .BLOCK    130
                        .LINE     131
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 1 SHLB _DEVICE
                        OR        Flags, _ACCA
                        LDI       _ACCB, SYSTEM.serout SHRB 1
                        LDI       _ACCA, SYSTEM.serout SHRB 9
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        CALL      SYSTEM.StrVar2Str
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .LINE     132
                        .BRANCH   17,COMTEST.SERCRLF
                        CALL      COMTEST.SERCRLF
                        .ENDBLOCK 133
COMTEST.WriteSerInp_X:
                        .LINE     133
                        .BRANCH   19
                        RET
                        .ENDFUNC  133

                        .FUNC     WriteChPrefix, 00087h, 00020h
COMTEST.WriteChPrefix:
                        .BLOCK    136
                        .LINE     137
                        LDI       _ACCA, 023h
                        .FRAME  0
                        CALL      SYSTEM.SEROUT
                        .LINE     138
                        LDS       _ACCA, COMTEST.SlaveCh
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.SEROUT
                        .LINE     139
                        LDI       _ACCA, 03Ah
                        .FRAME  0
                        CALL      SYSTEM.SEROUT
                        .LINE     140
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 1 SHLB _DEVICE
                        OR        Flags, _ACCA
                        LDI       _ACCB, SYSTEM.Serout SHRB 1
                        LDI       _ACCA, SYSTEM.Serout SHRB 9
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        LDS       _ACCA, COMTEST.SubCh
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        ST        -Y, _ACCA
                        .FRAME  3
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        LDI       _ACCA, 020h
                        ST        -Y, _ACCA
                        .FRAME  6
                        CALL      SYSTEM.Byte2Str
                        .FRAME  2
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .LINE     141
                        LDI       _ACCA, 03Dh
                        .FRAME  0
                        CALL      SYSTEM.SEROUT
                        .ENDBLOCK 142
COMTEST.WriteChPrefix_X:
                        .LINE     142
                        .BRANCH   19
                        RET
                        .ENDFUNC  142

                        .FUNC     SerPrompt, 00090h, 00020h
COMTEST.SerPrompt:
                        .BLOCK    147
                        .LINE     148
                        LDS       _ACCA, COMTEST.verbose
                        PUSH      _ACCA
                        LDD       _ACCA, Y+001h
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BREQ      COMTEST._L0000
                        SER       _ACCA
COMTEST._L0000:
                        POP       _ACCB
                        OR        _ACCA, _ACCB
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0003
                        BRNE      COMTEST._L0003
                        .BRANCH   20,COMTEST._L0001
                        JMP       COMTEST._L0001
COMTEST._L0003:
                        .BLOCK    148
                        .LINE     149
                        LDI       _ACCA, 0FFh
                        STS       COMTEST.SUBCH, _ACCA
                        .LINE     150
                        .BRANCH   17,COMTEST.WRITECHPREFIX
                        CALL      COMTEST.WRITECHPREFIX
                        .LINE     151
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 1 SHLB _DEVICE
                        OR        Flags, _ACCA
                        LDI       _ACCB, SYSTEM.Serout SHRB 1
                        LDI       _ACCA, SYSTEM.Serout SHRB 9
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        LDD       _ACCA, Y+003h
                        PUSH      _ACCA
                        LDD       _ACCA, Y+002h
                        POP       _ACCB
                        ADD       _ACCA, _ACCB
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        ST        -Y, _ACCA
                        .FRAME  3
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        LDI       _ACCA, 020h
                        ST        -Y, _ACCA
                        .FRAME  6
                        CALL      SYSTEM.Byte2Str
                        .FRAME  2
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .LINE     152
                        LDI       _ACCA, 020h
                        .FRAME  0
                        CALL      SYSTEM.SEROUT
                        .LINE     153
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 1 SHLB _DEVICE
                        OR        Flags, _ACCA
                        LDI       _ACCB, SYSTEM.serout SHRB 1
                        LDI       _ACCA, SYSTEM.serout SHRB 9
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        LDI       _ACCCLO, COMTEST.ErrStrArr AND 0FFh
                        LDI       _ACCCHI, COMTEST.ErrStrArr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDD       _ACCA, Y+003h
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        LDI       _ACCBLO, 0000Ah AND 0FFh
                        LDI       _ACCBHI, 0000Ah SHRB 8
                        CLT
                        BLD       Flags, _SIGN
                        CALL      SYSTEM.MUL16
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LPM       _ACCBHI, Z+
                        TST       _ACCBHI
                        BREQ      COMTEST._L0004
                        CALL      SYSTEM.StrConst2Str
COMTEST._L0004:
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .LINE     154
                        .BRANCH   17,COMTEST.SERCRLF
                        CALL      COMTEST.SERCRLF
                        .LINE     155
                        LDD       _ACCA, Y+001h
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BREQ      COMTEST._L0005
                        SER       _ACCA
COMTEST._L0005:
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0008
                        BRNE      COMTEST._L0008
                        .BRANCH   20,COMTEST._L0006
                        JMP       COMTEST._L0006
COMTEST._L0008:
                        .BLOCK    155
                        .LINE     156
                        LDS       _ACCBLO, COMTEST.ErrCount
                        LDS       _ACCBHI, COMTEST.ErrCount+1
                        ADIW      _ACCBLO, 1
                        STS       COMTEST.ErrCount, _ACCBLO
                        STS       COMTEST.ErrCount+1, _ACCBHI
                        .LINE     157
                        LDI       _ACCA, 0FFh
                        STS       COMTEST.ERRFLAG, _ACCA
                        .ENDBLOCK 158
COMTEST._L0006:
COMTEST._L0007:
                        .ENDBLOCK 159
COMTEST._L0001:
COMTEST._L0002:
                        .ENDBLOCK 160
COMTEST.SerPrompt_X:
                        .LINE     160
                        .BRANCH   19
                        RET
                        .ENDFUNC  160

                        .FUNC     ParseGetParam, 000A2h, 00020h
COMTEST.ParseGetParam:
                        .BLOCK    163
                        .ENDBLOCK 165
COMTEST.ParseGetParam_X:
                        .LINE     165
                        .BRANCH   19
                        RET
                        .ENDFUNC  165

                        .FUNC     ParseSetParam, 000A7h, 00020h
COMTEST.ParseSetParam:
                        .BLOCK    168
                        .ENDBLOCK 170
COMTEST.ParseSetParam_X:
                        .LINE     170
                        .BRANCH   19
                        RET
                        .ENDFUNC  170

                        .FUNC     Cmd2Index, 000B1h, 00020h
COMTEST.Cmd2Index:
                        SBIW      _FRAMEPTR, 1
                        .BLOCK    180
                        .LINE     181
                        LDI       _ACCCLO, COMTEST.ParamStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.ParamStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        ADIW      _ACCCLO, 1
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        LDI       _ACCA, 028h
                        ST        -Y, _ACCA
                        LDI       _ACCA, 0FEH ROLB _DEVICE
                        AND       Flags, _ACCA
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        .FRAME  3
                        LDI       _ACCCLO, COMTEST.ParamStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.ParamStr SHRB 8
                        CALL      SYSTEM.UpperCaseStr
                        LDI       _ACCA, 028h
                        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     182
                        .LOOP
                        MOVW      _ACCCLO, _FRAMEPTR
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        Z, _ACCA
                        LDI       _ACCA, 011h
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
COMTEST._L0011:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      COMTEST._L0012
                        CLR       _ACCA
COMTEST._L0012:
                        TST       _ACCA
                        .BRANCH   3,COMTEST._L0013
                        BREQ      COMTEST._L0013
                        .BRANCH   20,COMTEST._L0010
                        JMP       COMTEST._L0010
COMTEST._L0013:
                        .BLOCK    183
                        .LINE     183
                        LDI       _ACCCLO, COMTEST.ParamStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.ParamStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCCLO, COMTEST.CmdStrArr AND 0FFh
                        LDI       _ACCCHI, COMTEST.CmdStrArr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDD       _ACCA, Y+003h
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        LDI       _ACCBLO, 00004h AND 0FFh
                        LDI       _ACCBHI, 00004h SHRB 8
                        CLT
                        BLD       Flags, _SIGN
                        CALL      SYSTEM.MUL16
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        POP       _ACCBHI
                        POP       _ACCBLO
                        SET
                        BLD       Flags, _STRCONST
                        CALL      SYSTEM.StringComp
                        LDI       _ACCA, 0h
                        BRNE      COMTEST._L0014
                        SER       _ACCA
COMTEST._L0014:
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0017
                        BRNE      COMTEST._L0017
                        .BRANCH   20,COMTEST._L0015
                        JMP       COMTEST._L0015
COMTEST._L0017:
                        .BLOCK    183
                        .LINE     184
                        LDD       _ACCA, Y+003h
                        ADIW      _FRAMEPTR, 3
                        .BRANCH   20,COMTEST.Cmd2Index_X
                        JMP       COMTEST.Cmd2Index_X
                        .ENDBLOCK 185
COMTEST._L0015:
COMTEST._L0016:
                        .ENDBLOCK 186
COMTEST._L0009:
                        .LINE     186
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,COMTEST._L0010
                        BREQ      COMTEST._L0010
                        .BRANCH   20,COMTEST._L0011
                        JMP       COMTEST._L0011
COMTEST._L0010:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDLOOP
                        .LINE     187
                        LDI       _ACCA, 012h
                        .ENDBLOCK 188
COMTEST.Cmd2Index_X:
                        .LINE     188
                        .BRANCH   19
                        RET
                        .ENDFUNC  188

                        .FUNC     ParseExtract, 000BEh, 00020h
COMTEST.ParseExtract:
                        SBIW      _FRAMEPTR, 2
                        .BLOCK    194
                        .LINE     195
                        LDI       _ACCCLO, COMTEST.ParamStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.ParamStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        ADIW      _ACCCLO, 1
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        LDI       _ACCA, 028h
                        ST        -Y, _ACCA
                        LDI       _ACCA, 0FEH ROLB _DEVICE
                        AND       Flags, _ACCA
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        .FRAME  3
                        LDI       _ACCA, 028h
                        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     196
                        LDI       _ACCA, 000h
                        STD       Y+000h, _ACCA
                        .LINE     197
COMTEST._L0018:
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        LDS       _ACCA, COMTEST.SerInpPtr
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LD        _ACCA, Z+
                        CPI       _ACCA, 020h
                        LDI       _ACCA, 0h
                        BRNE      COMTEST._L0020
                        SER       _ACCA
COMTEST._L0020:
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0021
                        BRNE      COMTEST._L0021
                        .BRANCH   20,COMTEST._L0019
                        JMP       COMTEST._L0019
COMTEST._L0021:
                        .BLOCK    198
                        .LINE     198
                        LDS       _ACCA, COMTEST.serInpPtr
                        INC       _ACCA
                        STS       COMTEST.serInpPtr, _ACCA
                        .ENDBLOCK 199
                        .LINE     199
                        .BRANCH   20,COMTEST._L0018
                        JMP       COMTEST._L0018
COMTEST._L0019:
                        .LINE     200
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        LDS       _ACCA, COMTEST.SerInpPtr
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LD        _ACCA, Z+
                        CPI       _ACCA, 039h
                        .BRANCH   3,COMTEST._L0022
                        BREQ      COMTEST._L0022
                        .BRANCH   1,COMTEST._L0023
                        BRSH      COMTEST._L0023
                        CPI       _ACCA, 02Ah
                        .BRANCH   1,COMTEST._L0023
                        BRLO      COMTEST._L0023
                        CLR       _ACCDLO
                        .BRANCH   20,COMTEST._L0022
                        RJMP      COMTEST._L0022
COMTEST._L0023:
                        LDI       _ACCDLO, 001h
COMTEST._L0022:
                        LDI       _ACCA, 0h
                        BRNE      COMTEST._L0024
                        SER       _ACCA
COMTEST._L0024:
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0027
                        BRNE      COMTEST._L0027
                        .BRANCH   20,COMTEST._L0025
                        JMP       COMTEST._L0025
COMTEST._L0027:
                        .BLOCK    201
                        .LINE     201
                        LDI       _ACCA, 0FFh
                        STD       Y+000h, _ACCA
                        .LINE     202
                        .LOOP
                        LDI       _ACCCLO, COMTEST.i AND 0FFh
                        LDI       _ACCCHI, COMTEST.i SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDS       _ACCA, COMTEST.SerInpPtr
                        ST        Z, _ACCA
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        LD        _ACCA, Z
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
COMTEST._L0030:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      COMTEST._L0031
                        CLR       _ACCA
COMTEST._L0031:
                        TST       _ACCA
                        .BRANCH   3,COMTEST._L0032
                        BREQ      COMTEST._L0032
                        .BRANCH   20,COMTEST._L0029
                        JMP       COMTEST._L0029
COMTEST._L0032:
                        .BLOCK    203
                        .LINE     203
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        MOV       _ACCA, COMTEST.i
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LD        _ACCA, Z+
                        STD       Y+004h, _ACCA
                        .LINE     204
                        LDD       _ACCA, Y+004h
                        CPI       _ACCA, 039h
                        LDI       _ACCA, 0FFh
                        BRLO      COMTEST._L0033
                        BREQ      COMTEST._L0033
                        CLR       _ACCA
COMTEST._L0033:
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0036
                        BRNE      COMTEST._L0036
                        .BRANCH   20,COMTEST._L0034
                        JMP       COMTEST._L0034
COMTEST._L0036:
                        .BLOCK    204
                        .LINE     205
                        LDD       _ACCA, Y+004h
                        MOV       _ACCEHI, _ACCA
                        LDI       _ACCELO, 001h
                        LDI       _ACCA, _ACCELO SHRB 8
                        LDI       _ACCB, _ACCELO AND 0FFh
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDI       _ACCCLO, COMTEST.ParamStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.ParamStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCA, 028h
                        PUSH      _ACCA
                        LDI       _ACCFHI, 000h
                        CALL      SYSTEM.StringAppend
                        .ENDBLOCK 207
                        .BRANCH   20,COMTEST._L0035
                        JMP       COMTEST._L0035
COMTEST._L0034:
                        .BLOCK    207
                        .LINE     207
                        MOV       _ACCA, COMTEST.i
                        STS       COMTEST.SERINPPTR, _ACCA
                        .LINE     208
                        LDD       _ACCA, Y+003h
                        ADIW      _FRAMEPTR, 3
                        .BRANCH   20,COMTEST.ParseExtract_X
                        JMP       COMTEST.ParseExtract_X
                        .ENDBLOCK 209
COMTEST._L0035:
                        .ENDBLOCK 210
COMTEST._L0028:
                        .LINE     210
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,COMTEST._L0029
                        BREQ      COMTEST._L0029
                        .BRANCH   20,COMTEST._L0030
                        JMP       COMTEST._L0030
COMTEST._L0029:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDLOOP
                        .ENDBLOCK 211
                        .BRANCH   20,COMTEST._L0026
                        JMP       COMTEST._L0026
COMTEST._L0025:
                        .BLOCK    211
                        .LINE     212
                        .LOOP
                        LDI       _ACCCLO, COMTEST.i AND 0FFh
                        LDI       _ACCCHI, COMTEST.i SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDS       _ACCA, COMTEST.SerInpPtr
                        ST        Z, _ACCA
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        LD        _ACCA, Z
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
COMTEST._L0039:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      COMTEST._L0040
                        CLR       _ACCA
COMTEST._L0040:
                        TST       _ACCA
                        .BRANCH   3,COMTEST._L0041
                        BREQ      COMTEST._L0041
                        .BRANCH   20,COMTEST._L0038
                        JMP       COMTEST._L0038
COMTEST._L0041:
                        .BLOCK    213
                        .LINE     213
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        MOV       _ACCA, COMTEST.i
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LD        _ACCA, Z+
                        STD       Y+004h, _ACCA
                        .LINE     214
                        LDD       _ACCA, Y+004h
                        CPI       _ACCA, 041h
                        LDI       _ACCA, 0
                        BRLO      COMTEST._L0042
                        LDI       _ACCA, 0FFh
COMTEST._L0042:
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0045
                        BRNE      COMTEST._L0045
                        .BRANCH   20,COMTEST._L0043
                        JMP       COMTEST._L0043
COMTEST._L0045:
                        .BLOCK    214
                        .LINE     215
                        LDD       _ACCA, Y+004h
                        MOV       _ACCEHI, _ACCA
                        LDI       _ACCELO, 001h
                        LDI       _ACCA, _ACCELO SHRB 8
                        LDI       _ACCB, _ACCELO AND 0FFh
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDI       _ACCCLO, COMTEST.ParamStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.ParamStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCA, 028h
                        PUSH      _ACCA
                        LDI       _ACCFHI, 000h
                        CALL      SYSTEM.StringAppend
                        .ENDBLOCK 217
                        .BRANCH   20,COMTEST._L0044
                        JMP       COMTEST._L0044
COMTEST._L0043:
                        .BLOCK    217
                        .LINE     217
                        MOV       _ACCA, COMTEST.i
                        STS       COMTEST.SERINPPTR, _ACCA
                        .LINE     218
                        LDD       _ACCA, Y+003h
                        ADIW      _FRAMEPTR, 3
                        .BRANCH   20,COMTEST.ParseExtract_X
                        JMP       COMTEST.ParseExtract_X
                        .ENDBLOCK 219
COMTEST._L0044:
                        .ENDBLOCK 220
COMTEST._L0037:
                        .LINE     220
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,COMTEST._L0038
                        BREQ      COMTEST._L0038
                        .BRANCH   20,COMTEST._L0039
                        JMP       COMTEST._L0039
COMTEST._L0038:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDLOOP
                        .ENDBLOCK 221
COMTEST._L0026:
                        .LINE     222
                        LDD       _ACCA, Y+000h
                        .ENDBLOCK 223
COMTEST.ParseExtract_X:
                        .LINE     223
                        .BRANCH   19
                        RET
                        .ENDFUNC  223

                        .FUNC     ParseSubCh, 000E1h, 00020h
COMTEST.ParseSubCh:
                        SBIW      _FRAMEPTR, 12
                        .BLOCK    236
                        .LINE     237
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        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
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LD        _ACCB, Z+
                        LDI       _ACCALO, 1
COMTEST._L0046:
                        TST       _ACCB
                        BREQ      COMTEST._L0047
                        LD        _ACCA, Z+
                        CPI       _ACCA, 20h
                        BRNE      COMTEST._L0047
                        INC       _ACCALO
                        DEC       _ACCB
                        RJMP      COMTEST._L0046
COMTEST._L0047:
                        MOV       _ACCA, _ACCB
                        CLR       _ACCAHI
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCAHI
                        SBIW      _ACCCLO, 02h
COMTEST._L0048:
                        TST       _ACCB
                        BREQ      COMTEST._L0049
                        LD        _ACCA, Z
                        SBIW      _ACCCLO, 01h
                        CPI       _ACCA, 20h
                        BRNE      COMTEST._L0049
                        DEC       _ACCB
                        RJMP      COMTEST._L0048
COMTEST._L0049:
                        MOV       _ACCA, _ACCB
                        PUSH      _ACCALO
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        CALL      SYSTEM.StrCopyV
                        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     238
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCCLO, $St_String2 AND 0FFh
                        LDI       _ACCCHI, $St_String2 SHRB 8
                        POP       _ACCBHI
                        POP       _ACCBLO
                        SET
                        BLD       Flags, _STRCONST
                        CALL      SYSTEM.StringComp
                        LDI       _ACCA, 0h
                        BRNE      COMTEST._L0050
                        SER       _ACCA
COMTEST._L0050:
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0053
                        BRNE      COMTEST._L0053
                        .BRANCH   20,COMTEST._L0051
                        JMP       COMTEST._L0051
COMTEST._L0053:
                        .BLOCK    238
                        .LINE     239
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,COMTEST.SERPROMPT
                        CALL      COMTEST.SERPROMPT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     240
                        .BRANCH   20,COMTEST.ParseSubCh_X
                        JMP       COMTEST.ParseSubCh_X
                        .ENDBLOCK 241
COMTEST._L0051:
COMTEST._L0052:
                        .LINE     243
                        LDI       _ACCA, 024h
                        PUSH      _ACCA
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCELO, 001h
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCB
                        CALL      SYSTEM.PosChInVarStr
                        STD       Y+00Ah, _ACCA
                        .LINE     244
                        LDD       _ACCA, Y+00Ah
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BREQ      COMTEST._L0054
                        BRLO      COMTEST._L0054
                        SER       _ACCA
COMTEST._L0054:
                        STD       Y+004h, _ACCA
                        .LINE     245
                        LDD       _ACCA, Y+004h
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0057
                        BRNE      COMTEST._L0057
                        .BRANCH   20,COMTEST._L0055
                        JMP       COMTEST._L0055
COMTEST._L0057:
                        .BLOCK    245
                        .LINE     246
                        LDI       _ACCCLO, COMTEST.ParamStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.ParamStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        ADIW      _ACCCLO, 1
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        LDI       _ACCA, 028h
                        ST        -Y, _ACCA
                        LDI       _ACCA, 0FEH ROLB _DEVICE
                        AND       Flags, _ACCA
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        .FRAME  3
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDD       _ACCA, Y+00Dh
                        SUBI      _ACCA, -001h AND 0FFh
                        PUSH      _ACCA
                        LDI       _ACCA, 002h
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        CALL      SYSTEM.StrCopyV
                        LDI       _ACCA, 028h
                        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     247
                        LDI       _ACCCLO, COMTEST.ParamStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.ParamStr SHRB 8
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        CLT
                        BLD       Flags, _ERRFLAG
                        LDI       _ACCB, 0FFh
                        CALL      SYSTEM.Str2Int
                        MOV       _ACCA, _ACCB
                        STD       Y+008h, _ACCA
                        .LINE     248
                        LDI       _ACCA, 000h
                        STD       Y+009h, _ACCA
                        .LINE     249
                        .LOOP
                        LDI       _ACCCLO, COMTEST.i AND 0FFh
                        LDI       _ACCCHI, COMTEST.i SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 001h
                        ST        Z, _ACCA
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDD       _ACCA, Y+00Ch
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
COMTEST._L0060:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      COMTEST._L0061
                        CLR       _ACCA
COMTEST._L0061:
                        TST       _ACCA
                        .BRANCH   3,COMTEST._L0062
                        BREQ      COMTEST._L0062
                        .BRANCH   20,COMTEST._L0059
                        JMP       COMTEST._L0059
COMTEST._L0062:
                        .BLOCK    250
                        .LINE     250
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        MOV       _ACCA, COMTEST.i
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LD        _ACCA, Z+
                        STD       Y+009h, _ACCA
                        .LINE     251
                        LDD       _ACCA, Y+00Ch
                        PUSH      _ACCA
                        LDD       _ACCA, Y+009h
                        POP       _ACCB
                        EOR       _ACCA, _ACCB
                        STD       Y+00Ch, _ACCA
                        .ENDBLOCK 252
COMTEST._L0058:
                        .LINE     252
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,COMTEST._L0059
                        BREQ      COMTEST._L0059
                        .BRANCH   20,COMTEST._L0060
                        JMP       COMTEST._L0060
COMTEST._L0059:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDLOOP
                        .LINE     253
                        LDD       _ACCA, Y+009h
                        PUSH      _ACCA
                        LDD       _ACCA, Y+008h
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BREQ      COMTEST._L0063
                        SER       _ACCA
COMTEST._L0063:
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0066
                        BRNE      COMTEST._L0066
                        .BRANCH   20,COMTEST._L0064
                        JMP       COMTEST._L0064
COMTEST._L0066:
                        .BLOCK    253
                        .LINE     254
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 007h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,COMTEST.SERPROMPT
                        CALL      COMTEST.SERPROMPT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     255
                        .BRANCH   20,COMTEST.ParseSubCh_X
                        JMP       COMTEST.ParseSubCh_X
                        .ENDBLOCK 256
COMTEST._L0064:
COMTEST._L0065:
                        .ENDBLOCK 257
COMTEST._L0055:
COMTEST._L0056:
                        .LINE     259
                        LDI       _ACCA, 03Ah
                        PUSH      _ACCA
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCELO, 001h
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCB
                        CALL      SYSTEM.PosChInVarStr
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BREQ      COMTEST._L0067
                        BRLO      COMTEST._L0067
                        SER       _ACCA
COMTEST._L0067:
                        STD       Y+005h, _ACCA
                        .LINE     260
                        LDI       _ACCA, 03Dh
                        PUSH      _ACCA
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCELO, 001h
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCB
                        CALL      SYSTEM.PosChInVarStr
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BREQ      COMTEST._L0068
                        BRLO      COMTEST._L0068
                        SER       _ACCA
COMTEST._L0068:
                        COM       _ACCA
                        STD       Y+001h, _ACCA
                        .LINE     261
                        LDI       _ACCA, 02Ah
                        PUSH      _ACCA
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCELO, 001h
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCB
                        CALL      SYSTEM.PosChInVarStr
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BREQ      COMTEST._L0069
                        BRLO      COMTEST._L0069
                        SER       _ACCA
COMTEST._L0069:
                        STD       Y+002h, _ACCA
                        .LINE     262
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        ADIW      _ACCCLO, 00001h
                        LD        _ACCA, Z+
                        CPI       _ACCA, 023h
                        LDI       _ACCA, 0h
                        BRNE      COMTEST._L0070
                        SER       _ACCA
COMTEST._L0070:
                        STD       Y+003h, _ACCA
                        .LINE     263
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        LD        _ACCA, Z
                        MOV       COMTEST.I, _ACCA
                        .LINE     264
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        MOV       _ACCA, COMTEST.i
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LD        _ACCA, Z+
                        CPI       _ACCA, 021h
                        LDI       _ACCA, 0h
                        BRNE      COMTEST._L0071
                        SER       _ACCA
COMTEST._L0071:
                        PUSH      _ACCA
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        MOV       _ACCA, COMTEST.i
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LD        _ACCA, Z+
                        CPI       _ACCA, 03Fh
                        LDI       _ACCA, 0h
                        BRNE      COMTEST._L0072
                        SER       _ACCA
COMTEST._L0072:
                        POP       _ACCB
                        OR        _ACCA, _ACCB
                        STS       COMTEST.VERBOSE, _ACCA
                        .LINE     265
                        LDD       _ACCA, Y+003h
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0075
                        BRNE      COMTEST._L0075
                        .BRANCH   20,COMTEST._L0073
                        JMP       COMTEST._L0073
COMTEST._L0075:
                        .BLOCK    265
                        .LINE     266
                        .BRANCH   17,COMTEST.WRITESERINP
                        CALL      COMTEST.WRITESERINP
                        .LINE     267
                        .BRANCH   20,COMTEST.ParseSubCh_X
                        JMP       COMTEST.ParseSubCh_X
                        .ENDBLOCK 268
COMTEST._L0073:
COMTEST._L0074:
                        .LINE     269
                        LDI       _ACCA, 001h
                        STS       COMTEST.SERINPPTR, _ACCA
                        .LINE     270
                        LDD       _ACCA, Y+005h
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0078
                        BRNE      COMTEST._L0078
                        .BRANCH   20,COMTEST._L0076
                        JMP       COMTEST._L0076
COMTEST._L0078:
                        .BLOCK    270
                        .LINE     271
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,COMTEST.PARSEEXTRACT
                        CALL       COMTEST.PARSEEXTRACT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        STD       Y+000h, _ACCA
                        .LINE     272
                        LDS       _ACCA, COMTEST.SerInpPtr
                        INC       _ACCA
                        STS       COMTEST.SerInpPtr, _ACCA
                        .LINE     273
                        LDD       _ACCA, Y+002h
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0081
                        BRNE      COMTEST._L0081
                        .BRANCH   20,COMTEST._L0079
                        JMP       COMTEST._L0079
COMTEST._L0081:
                        .BLOCK    274
                        .LINE     274
                        .BRANCH   17,COMTEST.WRITESERINP
                        CALL      COMTEST.WRITESERINP
                        .ENDBLOCK 275
                        .BRANCH   20,COMTEST._L0080
                        JMP       COMTEST._L0080
COMTEST._L0079:
                        .BLOCK    275
                        .LINE     276
                        LDI       _ACCCLO, COMTEST.ParamStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.ParamStr SHRB 8
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        CLT
                        BLD       Flags, _ERRFLAG
                        LDI       _ACCB, 000h
                        CALL      SYSTEM.Str2Int
                        MOV       _ACCA, _ACCB
                        STS       COMTEST.CURRENTCH, _ACCA
                        .ENDBLOCK 277
COMTEST._L0080:
                        .ENDBLOCK 278
COMTEST._L0076:
COMTEST._L0077:
                        .LINE     279
                        LDD       _ACCA, Y+002h
                        COM       _ACCA
                        PUSH      _ACCA
                        LDS       _ACCA, COMTEST.CurrentCh
                        PUSH      _ACCA
                        LDS       _ACCA, COMTEST.SlaveCh
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BREQ      COMTEST._L0082
                        SER       _ACCA
COMTEST._L0082:
                        POP       _ACCB
                        AND       _ACCA, _ACCB
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0085
                        BRNE      COMTEST._L0085
                        .BRANCH   20,COMTEST._L0083
                        JMP       COMTEST._L0083
COMTEST._L0085:
                        .BLOCK    280
                        .LINE     280
                        .BRANCH   17,COMTEST.WRITESERINP
                        CALL      COMTEST.WRITESERINP
                        .LINE     281
                        .BRANCH   20,COMTEST.ParseSubCh_X
                        JMP       COMTEST.ParseSubCh_X
                        .ENDBLOCK 282
COMTEST._L0083:
COMTEST._L0084:
                        .LINE     283
                        LDD       _ACCA, Y+00Ch
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0088
                        BRNE      COMTEST._L0088
                        .BRANCH   20,COMTEST._L0086
                        JMP       COMTEST._L0086
COMTEST._L0088:
                        .BLOCK    284
                        .LINE     284
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 002h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,COMTEST.SERPROMPT
                        CALL      COMTEST.SERPROMPT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     285
                        .BRANCH   20,COMTEST.ParseSubCh_X
                        JMP       COMTEST.ParseSubCh_X
                        .ENDBLOCK 286
COMTEST._L0086:
COMTEST._L0087:
                        .LINE     288
                        LDI       _ACCA, 001F4h SHRB 8
                        LDI       _ACCB, 001F4h AND 0FFh
                        LDI       _ACCCLO, COMTEST.ActivityTimer AND 0FFh
                        LDI       _ACCCHI, COMTEST.ActivityTimer SHRB 8
                        LDI       _ACCBHI, 001h
                        CALL      SYSTEM.SetSysTimer
                        .LINE     289
                        CBI       00032h, 002h
                        .LINE     292
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,COMTEST.PARSEEXTRACT
                        CALL       COMTEST.PARSEEXTRACT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0091
                        BRNE      COMTEST._L0091
                        .BRANCH   20,COMTEST._L0089
                        JMP       COMTEST._L0089
COMTEST._L0091:
                        .BLOCK    292
                        .LINE     293
                        LDI       _ACCA, 000h
                        STD       Y+007h, _ACCA
                        .ENDBLOCK 294
                        .BRANCH   20,COMTEST._L0090
                        JMP       COMTEST._L0090
COMTEST._L0089:
                        .BLOCK    294
                        .LINE     295
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,COMTEST.CMD2INDEX
                        CALL       COMTEST.CMD2INDEX
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        STS       COMTEST.CMDWHICH, _ACCA
                        .LINE     296
                        LDS       _ACCA, COMTEST.CmdWhich
                        CPI       _ACCA, 012h
                        LDI       _ACCA, 0h
                        BRNE      COMTEST._L0092
                        SER       _ACCA
COMTEST._L0092:
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0095
                        BRNE      COMTEST._L0095
                        .BRANCH   20,COMTEST._L0093
                        JMP       COMTEST._L0093
COMTEST._L0095:
                        .BLOCK    296
                        .LINE     297
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 004h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,COMTEST.SERPROMPT
                        CALL      COMTEST.SERPROMPT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     298
                        .BRANCH   20,COMTEST.ParseSubCh_X
                        JMP       COMTEST.ParseSubCh_X
                        .ENDBLOCK 299
COMTEST._L0093:
COMTEST._L0094:
                        .LINE     300
                        LDI       _ACCCLO, COMTEST.Cmd2SubChArr AND 0FFh
                        LDI       _ACCCHI, COMTEST.Cmd2SubChArr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDS       _ACCA, COMTEST.CmdWhich
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LPM       _ACCA, Z
                        STD       Y+007h, _ACCA
                        .LINE     301
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,COMTEST.PARSEEXTRACT
                        CALL       COMTEST.PARSEEXTRACT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        STD       Y+000h, _ACCA
                        .ENDBLOCK 302
COMTEST._L0090:
                        .LINE     303
                        LDI       _ACCCLO, COMTEST.ParamStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.ParamStr SHRB 8
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        CLT
                        BLD       Flags, _ERRFLAG
                        LDI       _ACCB, 000h
                        CALL      SYSTEM.Str2Int
                        MOV       _ACCA, _ACCB
                        PUSH      _ACCA
                        LDD       _ACCA, Y+007h
                        POP       _ACCB
                        ADD       _ACCA, _ACCB
                        STS       COMTEST.SUBCH, _ACCA
                        .LINE     305
                        LDD       _ACCA, Y+001h
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0098
                        BRNE      COMTEST._L0098
                        .BRANCH   20,COMTEST._L0096
                        JMP       COMTEST._L0096
COMTEST._L0098:
                        .BLOCK    305
                        .LINE     306
                        .BRANCH   17,COMTEST.PARSEGETPARAM
                        CALL      COMTEST.PARSEGETPARAM
                        .ENDBLOCK 307
                        .BRANCH   20,COMTEST._L0097
                        JMP       COMTEST._L0097
COMTEST._L0096:
                        .BLOCK    307
                        .LINE     308
                        LDI       _ACCA, 03Dh
                        PUSH      _ACCA
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCELO, 001h
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCB
                        CALL      SYSTEM.PosChInVarStr
                        SUBI      _ACCA, -001h AND 0FFh
                        STS       COMTEST.SERINPPTR, _ACCA
                        .LINE     309
                        LDS       _ACCA, COMTEST.SerInpPtr
                        CPI       _ACCA, 001h
                        LDI       _ACCA, 0h
                        BREQ      COMTEST._L0099
                        BRLO      COMTEST._L0099
                        SER       _ACCA
COMTEST._L0099:
                        PUSH      _ACCA
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,COMTEST.PARSEEXTRACT
                        CALL       COMTEST.PARSEEXTRACT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        POP       _ACCB
                        AND       _ACCA, _ACCB
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0102
                        BRNE      COMTEST._L0102
                        .BRANCH   20,COMTEST._L0100
                        JMP       COMTEST._L0100
COMTEST._L0102:
                        .BLOCK    309
                        .LINE     310
                        LDI       _ACCCLO, COMTEST.ParamStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.ParamStr SHRB 8
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        CALL      SYSTEM.Str2Float
                        STS       COMTEST.PARAM, _ACCB
                        STS       COMTEST.PARAM+1, _ACCA
                        STS       COMTEST.PARAM+2, _ACCALO
                        STS       COMTEST.PARAM+3, _ACCAHI
                        .LINE     311
                        LDS       _ACCB, COMTEST.Param
                        LDS       _ACCA, COMTEST.Param+1
                        LDS       _ACCALO, COMTEST.Param+2
                        LDS       _ACCAHI, COMTEST.Param+3
                        CLT
                        BLD       Flags, _ERRFLAG
                        CALL      SYSTEM.FloatToLInt
                        SBRC      _ACCAHI, 7
                        RJMP      COMTEST._L0103
                        OR        _ACCAHI, _ACCALO
                        BRNE      COMTEST._L0104
                        RJMP      COMTEST._L0105
COMTEST._L0103:
                        CPI       _ACCAHI, 0FFh
                        BRNE      COMTEST._L0104
                        CPI       _ACCALO, 0FFh
                        BREQ      COMTEST._L0105
COMTEST._L0104:
                        SET
                        BLD       Flags, _ERRFLAG
COMTEST._L0105:
                        STS       COMTEST.PARAMINT, _ACCB
                        STS       COMTEST.PARAMINT+1, _ACCA
                        .LINE     312
                        LDS       _ACCB, COMTEST.ParamInt
                        LDS       _ACCA, COMTEST.ParamInt+1
                        MOV       _ACCA, _ACCB
                        STS       COMTEST.PARAMBYTE, _ACCA
                        .ENDBLOCK 313
                        .BRANCH   20,COMTEST._L0101
                        JMP       COMTEST._L0101
COMTEST._L0100:
                        .BLOCK    313
                        .LINE     314
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 005h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,COMTEST.SERPROMPT
                        CALL      COMTEST.SERPROMPT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     315
                        .BRANCH   20,COMTEST.ParseSubCh_X
                        JMP       COMTEST.ParseSubCh_X
                        .ENDBLOCK 316
COMTEST._L0101:
                        .ENDBLOCK 318
COMTEST._L0097:
                        .ENDBLOCK 319
COMTEST.ParseSubCh_X:
                        .LINE     319
                        .BRANCH   19
                        RET
                        .ENDFUNC  319

                        .FUNC     CheckSer, 00142h, 00020h
COMTEST.CheckSer:
                        SBIW      _FRAMEPTR, 1
                        .BLOCK    325
                        .LINE     326
COMTEST._L0106:
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        MOVW      _ACCCLO, _FRAMEPTR
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 002h
                        ST        -Y, _ACCA
                        .FRAME  3
                        .FRAME  0
                        CALL       SYSTEM.SERINP_TO
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0108
                        BRNE      COMTEST._L0108
                        .BRANCH   20,COMTEST._L0107
                        JMP       COMTEST._L0107
COMTEST._L0108:
                        .BLOCK    326
                        .LINE     328
                        LDD       _ACCA, Y+000h
                        CPI       _ACCA, 07Fh
                        .BRANCH   3,COMTEST._L0109
                        BREQ      COMTEST._L0109
                        .BRANCH   1,COMTEST._L0110
                        BRSH      COMTEST._L0110
                        CPI       _ACCA, 020h
                        .BRANCH   1,COMTEST._L0110
                        BRLO      COMTEST._L0110
                        CLR       _ACCDLO
                        .BRANCH   20,COMTEST._L0109
                        RJMP      COMTEST._L0109
COMTEST._L0110:
                        LDI       _ACCDLO, 001h
COMTEST._L0109:
                        LDI       _ACCA, 0h
                        BRNE      COMTEST._L0111
                        SER       _ACCA
COMTEST._L0111:
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0114
                        BRNE      COMTEST._L0114
                        .BRANCH   20,COMTEST._L0112
                        JMP       COMTEST._L0112
COMTEST._L0114:
                        .BLOCK    329
                        .LINE     329
                        LDD       _ACCA, Y+000h
                        MOV       _ACCEHI, _ACCA
                        LDI       _ACCELO, 001h
                        LDI       _ACCA, _ACCELO SHRB 8
                        LDI       _ACCB, _ACCELO AND 0FFh
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCA, 03Fh
                        PUSH      _ACCA
                        LDI       _ACCFHI, 000h
                        CALL      SYSTEM.StringAppend
                        .ENDBLOCK 330
COMTEST._L0112:
COMTEST._L0113:
                        .LINE     331
                        LDD       _ACCA, Y+000h
                        CPI       _ACCA, 008h
                        LDI       _ACCA, 0h
                        BRNE      COMTEST._L0115
                        SER       _ACCA
COMTEST._L0115:
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0118
                        BRNE      COMTEST._L0118
                        .BRANCH   20,COMTEST._L0116
                        JMP       COMTEST._L0116
COMTEST._L0118:
                        .BLOCK    332
                        .LINE     332
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        LD        _ACCA, Z
                        SUBI      _ACCA, 001h AND 0FFh
                        POP       _ACCCHI
                        POP       _ACCCLO
                        CPI       _ACCA, 63
                        BRCS      COMTEST._L0119
                        LDI       _ACCA, 63
COMTEST._L0119:
                        ST        Z+, _ACCA
                        .ENDBLOCK 333
COMTEST._L0116:
COMTEST._L0117:
                        .LINE     334
                        LDD       _ACCA, Y+000h
                        CPI       _ACCA, 00Dh
                        LDI       _ACCA, 0h
                        BRNE      COMTEST._L0120
                        SER       _ACCA
COMTEST._L0120:
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0123
                        BRNE      COMTEST._L0123
                        .BRANCH   20,COMTEST._L0121
                        JMP       COMTEST._L0121
COMTEST._L0123:
                        .BLOCK    334
                        .LINE     335
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        .FRAME  0
                        .BRANCH   17,COMTEST.PARSESUBCH
                        CALL      COMTEST.PARSESUBCH
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     337
                        LDS       _ACCA, COMTEST.ErrFlag
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0126
                        BRNE      COMTEST._L0126
                        .BRANCH   20,COMTEST._L0124
                        JMP       COMTEST._L0124
COMTEST._L0126:
                        .BLOCK    337
                        .LINE     338
                        LDI       _ACCA, 000h
                        STS       COMTEST.ERRFLAG, _ACCA
                        .LINE     339
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  2
                        LDI       _ACCA, 001h
                        ST        -Y, _ACCA
                        .FRAME  3
                        .FRAME  0
                        CALL      SYSTEM.LCDXY_M
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     340
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 1 SHLB _DEVICE
                        OR        Flags, _ACCA
                        LDI       _ACCB, SYSTEM.lcdout_m SHRB 1
                        LDI       _ACCA, SYSTEM.lcdout_m SHRB 9
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        LDS       _ACCB, COMTEST.errcount
                        LDS       _ACCA, COMTEST.errcount+1
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  4
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        LDI       _ACCA, 020h
                        ST        -Y, _ACCA
                        .FRAME  7
                        SET
                        BLD       Flags, _SIGN
                        CALL      SYSTEM.Int2Str
                        .FRAME  2
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .ENDBLOCK 341
                        .BRANCH   20,COMTEST._L0125
                        JMP       COMTEST._L0125
COMTEST._L0124:
                        .BLOCK    341
                        .LINE     342
                        .BRANCH   17,COMTEST.WRITESERINP
                        CALL      COMTEST.WRITESERINP
                        .ENDBLOCK 343
COMTEST._L0125:
                        .LINE     345
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        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
                        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
                        .ENDBLOCK 346
COMTEST._L0121:
COMTEST._L0122:
                        .ENDBLOCK 347
                        .LINE     347
                        .BRANCH   20,COMTEST._L0106
                        JMP       COMTEST._L0106
COMTEST._L0107:
                        .ENDBLOCK 348
COMTEST.CheckSer_X:
                        .LINE     348
                        .BRANCH   19
                        RET
                        .ENDFUNC  348

                        .FUNC     initall, 00161h, 00020h
COMTEST.initall:
                        .BLOCK    355
                        .LINE     356
                        LDI       _ACCA, 004h
                        OUT       DDRD, _ACCA
                        .LINE     357
                        LDI       _ACCA, 0FCh
                        OUT       PORTD, _ACCA
                        .LINE     359
                        LDI       _ACCA, 1 SHLB IntFlag
                        OR        Flags, _ACCA
                        SEI
                        .LINE     363
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL       SYSTEM.LCDSETUP_M
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0129
                        BRNE      COMTEST._L0129
                        .BRANCH   20,COMTEST._L0127
                        JMP       COMTEST._L0127
COMTEST._L0129:
                        .BLOCK    363
                        .LINE     364
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  3
                        .FRAME  0
                        CALL      SYSTEM.LCDCURSOR_M
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     365
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 1 SHLB _DEVICE
                        OR        Flags, _ACCA
                        LDI       _ACCB, SYSTEM.lcdout_m SHRB 1
                        LDI       _ACCA, SYSTEM.lcdout_m SHRB 9
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        LDI       _ACCCLO, COMTEST.Vers1Str AND 0FFh
                        LDI       _ACCCHI, COMTEST.Vers1Str SHRB 8
                        LPM       _ACCBHI, Z+
                        TST       _ACCBHI
                        BREQ      COMTEST._L0130
                        CALL      SYSTEM.StrConst2Str
COMTEST._L0130:
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .ENDBLOCK 366
COMTEST._L0127:
COMTEST._L0128:
                        .LINE     367
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  3
                        .FRAME  0
                        CALL      SYSTEM.LCDXY_M
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     369
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 1 SHLB _DEVICE
                        OR        Flags, _ACCA
                        LDI       _ACCB, SYSTEM.Serout SHRB 1
                        LDI       _ACCA, SYSTEM.Serout SHRB 9
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        LDI       _ACCCLO, COMTEST.Vers1Str AND 0FFh
                        LDI       _ACCCHI, COMTEST.Vers1Str SHRB 8
                        LPM       _ACCBHI, Z+
                        TST       _ACCBHI
                        BREQ      COMTEST._L0131
                        CALL      SYSTEM.StrConst2Str
COMTEST._L0131:
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .LINE     370
                        .BRANCH   17,COMTEST.SERCRLF
                        CALL      COMTEST.SERCRLF
                        .LINE     371
                        LDI       _ACCCLO, COMTEST.SerInpStr AND 0FFh
                        LDI       _ACCCHI, COMTEST.SerInpStr SHRB 8
                        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
                        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     373
                        LDI       _ACCA, 0FFFFh SHRB 8
                        LDI       _ACCB, 0FFFFh AND 0FFh
                        STS       COMTEST.ERRCOUNT, _ACCB
                        STS       COMTEST.ERRCOUNT+1, _ACCA
                        .ENDBLOCK 374
COMTEST.initall_X:
                        .LINE     374
                        .BRANCH   19
                        RET
                        .ENDFUNC  374



                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Program body
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .FUNC     $_Main, 0017Ah, 00020h
                        .ENTRYMAIN $
COMTEST.$_Main:

                        .BLOCK    378
                        .LINE     379
                        .BRANCH   17,COMTEST.INITALL
                        CALL      COMTEST.INITALL
COMTEST._L0132:
                        .BLOCK    380
                        .LINE     381
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,COMTEST.CHECKSER
                        CALL      COMTEST.CHECKSER
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     382
                        LDI       _ACCA, 00001h SHRB 8
                        LDI       _ACCB, 00001h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .LINE     383
                        CLR       _ACCA
                        MOV       _ACCB, _SYSTFLAGS
                        ANDI      _ACCB, 001h
                        BRNE      COMTEST._L0134
                        COM       _ACCA
COMTEST._L0134:
                        TST       _ACCA
                        .BRANCH   4,COMTEST._L0137
                        BRNE      COMTEST._L0137
                        .BRANCH   20,COMTEST._L0135
                        JMP       COMTEST._L0135
COMTEST._L0137:
                        .BLOCK    383
                        .LINE     384
                        SBI       00032h, 002h
                        .ENDBLOCK 385
COMTEST._L0135:
COMTEST._L0136:
                        .ENDBLOCK 386
                        .LINE     386
                        .BRANCH   20,COMTEST._L0132
                        JMP       COMTEST._L0132
COMTEST._L0133:
                        .ENDBLOCK 387

COMTEST.$_MAINEX:
                        .LINE     387
                        NOP
                        .LINE     387
                        .BRANCH   20,COMTEST.$_MAINEX
                        RJMP      COMTEST.$_MAINEX


                        .ENDFUNC  387

SYSTEM.$Main_stk        .EQU    0032Ch          ; var iData  Process stack area
SYSTEM.$Main_stk_e      .EQU    003ABh          ; var iData  Process stack area
SYSTEM.$Main_reg        .EQU    003ACh          ; var iData  Process register area
SYSTEM.$Main_reg_e      .EQU    003BEh          ; var iData  Process register area
SYSTEM.$Main_Frame      .EQU    003BFh          ; var iData  Process stack area
SYSTEM.$Main_Frame_e    .EQU    0043Eh          ; var iData  Process stack area

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Initialisation and Library Routines
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .ENTRY
SYSTEM.RESET:
                        CLI
                        ; >> Stack Init [main process only] <<
                        LDI       _ACCA, 003h
                        LDI       _ACCB, 0ABh
                        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._L0138:
                        SBIW      _ACCCLO, 001h
                        BREQ      SYSTEM._L0140
SYSTEM._L0139:
                        ST        X+, _ACCA
                        RJMP      SYSTEM._L0138
SYSTEM._L0140:
                        LDI       _ACCBLO, 00060h AND 0FFh
                        LDI       _ACCBHI, 00060h SHRB 8
                        LDI       _ACCCLO, 00800h AND 0FFh
                        LDI       _ACCCHI, 00800h SHRB 8
                        ADIW      _ACCCLO, 1
SYSTEM._L0141:
                        SBIW      _ACCCLO, 001h
                        BREQ      SYSTEM._L0143
SYSTEM._L0142:
                        ST        X+, _ACCA
                        RJMP      SYSTEM._L0141
SYSTEM._L0143:
                        LDI       _FRAMEPTR, 0043Eh AND 0FFh
                        LDI       _FPTRHI, 0043Eh SHRB 8

                        CLI
                        LDI       _ACCA, 0FEH ROLB IntFlag
                        AND       Flags, _ACCA

                        ; ============ init structured constants ============
                        ; >> Hardware Init <<

                        ; >> SysTick init: 10msec <<
                        ; >> real SysTick (exact): 9.984 msec <<
                        LDI       _ACCA, 064h
                        STS       SysTickTime, _ACCA
                        OUT       tcnt0, _ACCA
                        LDI       _ACCA, 5
                        OUT       tccr0, _ACCA
                        LDI       _ACCA, 001h
                        OUT       timsk, _ACCA

                        ; >> SERPORT Init <<
                        ; >> Baudrate 38400Baud <<
                        
                        ; percent Baudrate error : >> 0.160% <<
                        LDI       _ACCA, 018h
                        OUT       ucr1, _ACCA
                        LDI       _ACCA, 019h
                        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, 086h
                        OUT       ucsrc, _ACCA
                        IN        _ACCA, UDR1

                        ; >> TWIPORT Init <<
                        LDI       _ACCA, 00Ch
                        OUT       TWBR, _ACCA
                        LDI       _ACCA, 0FFh
                        STS       TWI_DevLock, _ACCA

                        CLR       Flags
                        CLR       Flags2

                        ; ============ Start User Main Program ============

                        .DEB      MAINENTRY
                        JMP       COMTEST.$_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       _ACCB, _TWI_TO
                        TST       _ACCB
                        BREQ      SYSTEM._L0144
                        DEC       _ACCB
                        STS       _TWI_TO, _ACCB
SYSTEM._L0144:
                        LDS       _ACCA, _RXTIMEOUT
                        TST       _ACCA
                        BREQ      SYSTEM._L0145
                        DEC       _ACCA
                        STS       _RXTIMEOUT, _ACCA
SYSTEM._L0145:
                        LDS       _ACCCLO, COMTEST.ActivityTimer
                        LDS       _ACCCHI, COMTEST.ActivityTimer+1
                        TST       _ACCCHI
                        BRNE      SYSTEM._L0146
                        TST       _ACCCLO
                        BREQ      SYSTEM._L0147
SYSTEM._L0146:
                        SBIW      _ACCCLO, 1
                        STS       COMTEST.ActivityTimer, _ACCCLO
                        STS       COMTEST.ActivityTimer+1, _ACCCHI
                        RJMP      SYSTEM._L0148
SYSTEM._L0147:
                        MOV       _ACCA, _SYSTFLAGS
                        ANDI      _ACCA, 0FEh
                        MOV       _SYSTFLAGS, _ACCA
SYSTEM._L0148:
                        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._L0149
SYSTEM._L0153:
                        CBI       ucr1, 5
                        RJMP      SYSTEM._L0151
SYSTEM._L0149:
                        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._L0152
                        CBI       ucr1, 5
SYSTEM._L0152:
                        INC       _ACCB
                        CPI       _ACCB, 255
                        BRNE      SYSTEM._L0150
                        CLR       _ACCB
SYSTEM._L0150:
                        STS       _TXOUTP, _ACCB
SYSTEM._L0151:
                        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._L0159:
                        LDS       _ACCA, _RXCOUNT
                        CPI       _ACCA, 255
                        BRNE      SYSTEM._L0154
                        IN        _ACCB, UDR1
                        RJMP      SYSTEM._L0156
SYSTEM._L0154:
                        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, 255
                        BRNE      SYSTEM._L0155
                        CLR       _ACCB
SYSTEM._L0155:
                        STS       _RXINP, _ACCB
                        SBIC      usr1, 7
                        RJMP      SYSTEM._L0159
SYSTEM._L0156:
SYSTEM._L0161:
                        POP       _ACCA
                        OUT       SREG, _ACCA
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RETI


                        ; ============ Library ============

SYSTEM._LCDM_ini:
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00002h AND 0FFh
                        LDI       _ACCBHI, 00002h SHRB 8
                        LDI       _ACCAHI, 002h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 00000h AND 0FFh
                        LDI       _ACCEHI, 00000h SHRB 8
                        CLT
                        BLD       Flags, _I2C2BYTE
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00002h AND 0FFh
                        LDI       _ACCBHI, 00002h SHRB 8
                        LDI       _ACCAHI, 004h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 00000h AND 0FFh
                        LDI       _ACCEHI, 00000h SHRB 8
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00002h AND 0FFh
                        LDI       _ACCBHI, 00002h SHRB 8
                        LDI       _ACCAHI, 006h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 0F800h AND 0FFh
                        LDI       _ACCEHI, 0F800h SHRB 8
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        RET

SYSTEM._LCDM_CLOSE:
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 003h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        CLT
                        BLD       Flags, _I2C2BYTE
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 003h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 000h
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        RET

SYSTEM._LCDM_START_RW:
                        PUSH      _ACCELO
                        MOV       _ACCALO, _ACCA
                        LDI       _ACCELO, 000h
                        RCALL     SYSTEM._LCDM_CLOSE
                        POP       _ACCELO
                        PUSH      _ACCELO
                        ANDI      _ACCELO, 2
                        BREQ       SYSTEM._L0162
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 006h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 0FFh
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        RJMP      SYSTEM._L0163
SYSTEM._L0162:
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 006h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 000h
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 006h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        MOV       _ACCELO, _ACCALO
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
SYSTEM._L0163:
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 003h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        POP       _ACCELO
                        PUSH      _ACCELO
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 003h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        POP       _ACCELO
                        PUSH      _ACCELO
                        ORI       _ACCELO, 1
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        POP       _ACCELO
                        ANDI      _ACCELO, 2
                        BREQ       SYSTEM._L0164
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00000h AND 0FFh
                        LDI       _ACCBHI, 00000h SHRB 8
                        LDI       _ACCAHI, 000h
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
SYSTEM._L0164:
                        RET

SYSTEM._LCDM_Busy_Rd:
                        LDI       _ACCELO, 002h
                        RCALL     SYSTEM._LCDM_START_RW
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        CALL      SYSTEM.TWIinp
                        PUSH      _ACCELO
                        LDI       _ACCELO, 002h
                        RCALL     SYSTEM._LCDM_CLOSE
                        POP       _ACCA
                        .DEB      LCDBUSY_RD
                        RET

SYSTEM._LCDWAIT_M:
                        LDI       _ACCCLO, 00280h AND 0FFh
                        LDI       _ACCCHI, 00280h SHRB 8
SYSTEM._L0165:
                        RCALL     SYSTEM._LCDM_Busy_Rd
                        TST       _ACCA
                        BRPL       SYSTEM._L0166
                        SBIW      _ACCCLO, 1
                        BRNE      SYSTEM._L0165
                        CLR       _ACCB
                        CLR       _ACCA
                        RET
SYSTEM._L0166:
                        MOV       _ACCB, _ACCA
                        SER       _ACCA
                        RET

SYSTEM._LCDM_Ctrl_Wr:
                        PUSH      _ACCA
                        RCALL     SYSTEM._LCDWAIT_M
                        TST       _ACCA
                        BRNE      SYSTEM._L0167
                        POP       _ACCB
                        RET
SYSTEM._L0167:
                        POP       _ACCA
SYSTEM._LCDM_Ctrl_Wr_NW:
                        .DEB      LCDCTRL_WR
                        LDI       _ACCELO, 000h
                        RCALL     SYSTEM._LCDM_START_RW
                        LDI       _ACCELO, 000h
                        RCALL     SYSTEM._LCDM_CLOSE
                        SER       _ACCA
                        RET

SYSTEM._LCDM_Data_Wr:
                        .DEB      LCDOUT_M
                        LDI       _ACCELO, 004h
                        RCALL     SYSTEM._LCDM_START_RW
                        LDI       _ACCELO, 004h
                        RCALL     SYSTEM._LCDM_CLOSE
                        SER       _ACCA
                        RET

SYSTEM._LCDM_Data_Rd:
                        LDI       _ACCELO, 006h
                        RCALL     SYSTEM._LCDM_START_RW
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        CALL      SYSTEM.TWIinp
                        PUSH      _ACCELO
                        LDI       _ACCELO, 006h
                        RCALL     SYSTEM._LCDM_CLOSE
                        POP       _ACCA
                        .DEB      LCDINP_M
                        RET

SYSTEM.LCDSETUP_M:
                        STS       _LCDM_PORT, _ACCA
                        ORI       _ACCA, 20h
                        CALL      SYSTEM.TWIstat
                        .DEB      I2CSTAT_M
                        TST       _ACCA
                        BRNE       SYSTEM._L0168
                        RET
SYSTEM._L0168:
                        RCALL     SYSTEM._LCDM_ini
                        LDI       _ACCB, 16
                        CLR       _ACCA
                        CALL      SYSTEM.MDELAY
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr_NW
                        LDI       _ACCB, 5
                        CLR       _ACCA
                        CALL      SYSTEM.MDELAY
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr_NW
                        LDI       _ACCB, 1
                        CLR       _ACCA
                        CALL      SYSTEM.MDELAY
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr_NW
                        LDI       _ACCB, 1
                        CLR       _ACCA
                        CALL      SYSTEM.MDELAY
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr
                        LDI       _ACCA, 08h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr
                        LDI       _ACCA, 1
                        RCALL     SYSTEM._LCDM_Ctrl_Wr
                        LDI       _ACCA, 6
                        RCALL     SYSTEM._LCDM_Ctrl_Wr_NW
                        RET

SYSTEM.LCDOUT_M:
                        RJMP      SYSTEM._LCDM_Data_Wr

SYSTEM.LCDCTRL_M:
                        LDD       _ACCA, Y+001h
                        STS       _LCDM_PORT, _ACCA
                        LDD       _ACCA, Y+000h
                        RJMP      SYSTEM._LCDM_Ctrl_Wr

SYSTEM.LCDINP_M:
                        STS       _LCDM_PORT, _ACCA
                        RJMP      SYSTEM._LCDM_Data_Rd

SYSTEM.LCDSTAT_M:
                        STS       _LCDM_PORT, _ACCA
                        RJMP      SYSTEM._LCDM_Busy_Rd

SYSTEM.LCDsetPort_M:
                        STS       _LCDM_PORT, _ACCA
                        RET

SYSTEM.LCDgetPort_M:
                        LDS       _ACCA, _LCDM_PORT
                        RET

SYSTEM.LCDON_M:
                        LDD       _ACCA, Y+000h
                        STS       _LCDM_PORT, _ACCA
                        LDI       _ACCA, 0FFh
                        LDI       _ACCB, 0FFh
                        RJMP      SYSTEM._L0169
SYSTEM.LCDCURSOR_M:
                        LDD       _ACCA, Y+002h
                        STS       _LCDM_PORT, _ACCA
                        LDD       _ACCA, Y+000h
                        LDD       _ACCB, Y+001h
SYSTEM._L0169:
                        TST       _ACCA
                        BRNE       SYSTEM._L0170
                        LDI       _ACCA, 0Ch
                        RJMP      SYSTEM._L0171

SYSTEM._L0170:
                        LDI       _ACCA, 0Dh
SYSTEM._L0171:
                        TST       _ACCB
                        BREQ       SYSTEM._L0172
                        ORI       _ACCA, 2
SYSTEM._L0172:
                        RJMP      SYSTEM._LCDM_Ctrl_Wr

SYSTEM.LCDXY_M:
                        LDD       _ACCA, Y+002h
                        STS       _LCDM_PORT, _ACCA
                        LDD       _ACCA, Y+000h
                        LDD       _ACCB, Y+001h
                        CPI       _ACCA, 0
                        BRNE       SYSTEM._L0173
                        LDI       _ACCA, 080h
                        RJMP      SYSTEM._L0177

SYSTEM._L0173:
                        CPI       _ACCA, 1
                        BRNE       SYSTEM._L0174
                        LDI       _ACCA, 0C0h
                        RJMP      SYSTEM._L0177

SYSTEM._L0174:
                        CPI       _ACCA, 2
                        BRNE       SYSTEM._L0175
                        LDI       _ACCA, 088h
                        RJMP      SYSTEM._L0177

SYSTEM._L0175:
                        CPI       _ACCA, 3
                        BRNE       SYSTEM._L0176
                        LDI       _ACCA, 0C8h
                        RJMP      SYSTEM._L0177

SYSTEM._L0176:
                        LDI       _ACCA, 080h
SYSTEM._L0177:
                        ADD       _ACCA, _ACCB
                        RJMP      SYSTEM._LCDM_Ctrl_Wr_NW

SYSTEM.LCDportInp_M:
                        MOV       _ACCDLO, _ACCA
                        ORI       _ACCDLO, 20h
                        PUSH      _ACCDLO
                        LDI       _ACCBLO, 00000h AND 0FFh
                        LDI       _ACCBHI, 00000h SHRB 8
                        LDI       _ACCAHI, 001h
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        POP       _ACCDLO
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        CALL      SYSTEM.TWIinp
                        MOV       _ACCA, _ACCELO
                        ANDI      _ACCA, 0F8h
                        RET

SYSTEM.TWISTARTB:
                        LDI       _ACCA, 0
                        STS       TWI_DevLock, _ACCA
                        IN        _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 000h
                        BRNE      SYSTEM._L0180
                        LDI       _ACCA, 090h
                        OUT       TWCR, _ACCA
SYSTEM._L0180:
                        LDI       _ACCA, 0A4h
                        OUT       TWCR, _ACCA
                        LDI       _ACCA, 10
                        STS       _TWI_TO, _ACCA
SYSTEM._L0178:
                        IN        _ACCA, TWCR
                        ANDI      _ACCA, 080h
                        BRNE      SYSTEM._L0181
                        LDS       _ACCA, _TWI_TO
                        TST       _ACCA
                        BRNE      SYSTEM._L0178
                        OUT       TWCR, _ACCA
                        RJMP      SYSTEM.TWI_ERROR
SYSTEM._L0181:
                        IN        _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 008h
                        BRNE      SYSTEM._L0185
                        RJMP      SYSTEM.TWI_ERROR
SYSTEM._L0185:
                        RJMP      SYSTEM.TWI_OK

SYSTEM.TWISTOPB:
SYSTEM._L0186:
                        IN        _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 0F8h
                        BREQ      SYSTEM._L0186
                        CPI       _ACCA, 000h
                        BRNE      SYSTEM._L0187
                        LDI       _ACCA, 090h
                        OUT       TWCR, _ACCA
                        NOP
SYSTEM._L0187:
                        LDI       _ACCB, 094h
                        OUT       TWCR, _ACCB
                        SER       _ACCA
                        STS       TWI_DevLock, _ACCA
                        RET

SYSTEM.TWISENDBYTE:
                        OUT       TWDR, _ACCDLO
                        LDI       _ACCA, 084h
                        OUT       TWCR, _ACCA
                        LDI       _ACCA, 10
                        STS       _TWI_TO, _ACCA
SYSTEM._L0189:
                        IN        _ACCA, TWCR
                        ANDI      _ACCA, 080h
                        BRNE      SYSTEM._L0190
                        LDS       _ACCA, _TWI_TO
                        TST       _ACCA
                        BRNE      SYSTEM._L0189
                        RJMP      SYSTEM.TWI_ERROR
SYSTEM._L0190:
                        IN        _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 028h
                        BREQ      SYSTEM.TWI_OK
                        CPI       _ACCA, 018h
                        BREQ      SYSTEM.TWI_OK
                        CPI       _ACCA, 040h
                        BREQ      SYSTEM.TWI_OK
                        RJMP      SYSTEM.TWI_ERROR

SYSTEM.TWIRECVBYTE:
                        LDI       _ACCA, 0C4h
                        OUT       TWCR, _ACCA
                        SBIW      _ACCBLO, 1
                        BRMI      SYSTEM.TWISTOPB
                        BRNE      SYSTEM._L0191
                        LDI       _ACCA, 084h
SYSTEM._L0191:
                        OUT       TWCR, _ACCA
SYSTEM._L0192:
                        IN        _ACCA, TWCR
                        SBRS      _ACCA, 7
                        RJMP      SYSTEM._L0192
                        IN        _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 058h
                        BREQ      SYSTEM._L0194
                        CPI       _ACCA, 050h
                        BRNE      SYSTEM.TWI_ERROR
SYSTEM._L0194:
                        IN        _ACCA, TWDR
                        ST        Z+, _ACCA
                        RJMP      SYSTEM.TWIRECVBYTE
SYSTEM.TWI_OK:
                        LDI       _ACCA, true
                        RET
SYSTEM.TWI_ERROR:
                        IN        _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 000h
                        BRNE      SYSTEM._L0193
                        LDI       _ACCA, 090h
                        OUT       TWCR, _ACCA
SYSTEM._L0193:
                        LDI       _ACCA, false
                        RET

SYSTEM.TWISTAT:
                        MOV       _ACCDLO, _ACCA
                        RCALL     SYSTEM.TWISTARTB
                        CLC
                        ROL       _ACCDLO
                        RCALL     SYSTEM.TWISENDBYTE
                        MOV       _ACCBHI, _ACCA
                        RCALL     SYSTEM.TWISTOPB
                        MOV       _ACCA, _ACCBHI
                        RET

SYSTEM.TWIINP:
                        RCALL     SYSTEM.TWISTARTB
                        SEC
                        ROL       _ACCDLO
                        RCALL     SYSTEM.TWISENDBYTE
                        TST       _ACCA
                        BREQ      SYSTEM._L0196
                        RCALL     SYSTEM.TWIRECVBYTE
                        TST       _ACCA
                        BREQ      SYSTEM._L0196
                        RJMP      SYSTEM.TWI_OK
SYSTEM._L0196:
                        RCALL     SYSTEM.TWI_ERROR
                        SER       _ACCB
                        STS       TWI_DevLock, _ACCB
                        RET

SYSTEM.TWIOUT:
                        RCALL     SYSTEM.TWISTARTB
                        CLC
                        ROL       _ACCDLO
                        RCALL     SYSTEM.TWISENDBYTE
                        TST       _ACCA
                        BREQ      SYSTEM._L0202
SYSTEM._L0197:
                        MOV       _ACCDLO, _ACCAHI
                        RCALL     SYSTEM.TWISENDBYTE
                        TST       _ACCA
                        BREQ      SYSTEM._L0202
                        BST       Flags, _I2C2BYTE
                        BRTC      SYSTEM._L0201
                        MOV       _ACCDLO, _ACCALO
SYSTEM._L0199:
                        RCALL     SYSTEM.TWISENDBYTE
                        TST       _ACCA
                        BREQ      SYSTEM._L0202
SYSTEM._L0201:
                        TST       _ACCBLO
                        BRNE       SYSTEM._L0206
                        TST       _ACCBHI
                        BREQ       SYSTEM._L0200
SYSTEM._L0206:
                        TST       _ACCDHI
                        BRNE      SYSTEM._L0203
                        LD        _ACCDLO, Z+
                        RJMP      SYSTEM._L0205
SYSTEM._L0203:
                        CPI       _ACCDHI, 1
                        BRNE      SYSTEM._L0204
                        LPM       _ACCDLO, Z+
                        RJMP      SYSTEM._L0205
SYSTEM._L0204:
                        CALL      SYSTEM.ReadEEp8D
                        ADIW      _ACCCLO, 01h
SYSTEM._L0205:
                        SBIW      _ACCBLO, 1
                        RJMP      SYSTEM._L0199
SYSTEM._L0200:
                        RCALL     SYSTEM.TWISTOPB
                        RJMP      SYSTEM.TWI_OK
SYSTEM._L0202:
                        RCALL     SYSTEM.TWI_ERROR
                        SER       _ACCB
                        STS       TWI_DevLock, _ACCB
                        CLR       _ACCA
                        RET

SYSTEM.SERINP_TO:
                        LDD       _ACCA, Y+000h
                        STS       _RXTIMEOUT, _ACCA
SYSTEM._L0207:
                        RCALL     SYSTEM.SERSTAT
                        TST       _ACCA
                        BRNE      SYSTEM._L0208
                        LDS       _ACCA, _RXTIMEOUT
                        TST       _ACCA
                        BRNE      SYSTEM._L0207
                        RET
SYSTEM._L0208:
                        RCALL     SYSTEM.SERINP
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        ST        Z+, _ACCA
                        STD       Y+002h, _ACCCHI
                        STD       Y+001h, _ACCCLO
                        SER       _ACCA
                        RET

SYSTEM.SERINP:
SYSTEM._L0209:
                        LDS       _ACCA, _RXCOUNT
                        TST       _ACCA
                        BREQ      SYSTEM._L0209
                        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, 255
                        BRNE      SYSTEM._L0210
                        CLR       _ACCB
SYSTEM._L0210:
                        STS       _RXOUTP, _ACCB
                        RET

SYSTEM.SERSTAT:
                        CLR       _ACCA
                        LDS       _ACCB, _RXCOUNT
                        TST       _ACCB
                        BREQ      SYSTEM._L0212
                        COM       _ACCA
SYSTEM._L0212:
                        RET

SYSTEM.SEROUT:
SYSTEM._L0213:
                        LDS       _ACCB, _TXCOUNT
                        CPI       _ACCB, 255
                        BREQ      SYSTEM._L0213
                        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, 255
                        BRNE      SYSTEM._L0214
                        CLR       _ACCB
SYSTEM._L0214:
                        STS       _TXINP, _ACCB
                        SBI       ucr1, 5
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.SaveAllRegs:
                        POP       $_SaveRet1
                        POP       $_SaveRet
                        STS       SYSTEM.$Main_reg, _ACCA
                        STS       SYSTEM.$Main_reg+1, _ACCB
                        IN        _ACCA, SREG
                        PUSH      _ACCA
                        STS       SYSTEM.$Main_reg+2, _ACCAHI
                        STS       SYSTEM.$Main_reg+3, _ACCALO
                        STS       SYSTEM.$Main_reg+4, _ACCBHI
                        STS       SYSTEM.$Main_reg+5, _ACCBLO
                        STS       SYSTEM.$Main_reg+6, _ACCCHI
                        STS       SYSTEM.$Main_reg+7, _ACCCLO
                        STS       SYSTEM.$Main_reg+8, _ACCDHI
                        STS       SYSTEM.$Main_reg+9, _ACCDLO
                        STS       SYSTEM.$Main_reg+10, _ACCEHI
                        STS       SYSTEM.$Main_reg+11, _ACCELO
                        STS       SYSTEM.$Main_reg+12, Flags
                        STS       SYSTEM.$Main_reg+13, _ACCGLO
                        STS       SYSTEM.$Main_reg+14, _ACCFHI
                        STS       SYSTEM.$Main_reg+15, _ACCFLO
                        STS       SYSTEM.$Main_reg+16, _ACCGHI
                        STS       SYSTEM.$Main_reg+17, _ACCHHI
                        STS       SYSTEM.$Main_reg+18, _ACCHLO
                        CLT
                        BLD       Flags, IntFlag
                        MOVW      _ACCCLO, $_SaveRet
                        IJMP

SYSTEM.RestoreAllRegs:
                        LDS       _ACCA, SYSTEM.$Main_reg
                        LDS       _ACCB, SYSTEM.$Main_reg+1
                        LDS       _ACCAHI, SYSTEM.$Main_reg+2
                        LDS       _ACCALO, SYSTEM.$Main_reg+3
                        LDS       _ACCBHI, SYSTEM.$Main_reg+4
                        LDS       _ACCBLO, SYSTEM.$Main_reg+5
                        LDS       _ACCCHI, SYSTEM.$Main_reg+6
                        LDS       _ACCCLO, SYSTEM.$Main_reg+7
                        LDS       _ACCDHI, SYSTEM.$Main_reg+8
                        LDS       _ACCDLO, SYSTEM.$Main_reg+9
                        LDS       _ACCEHI, SYSTEM.$Main_reg+10
                        LDS       _ACCELO, SYSTEM.$Main_reg+11
                        LDS       Flags, SYSTEM.$Main_reg+12
                        LDS       _ACCGLO, SYSTEM.$Main_reg+13
                        LDS       _ACCFHI, SYSTEM.$Main_reg+14
                        LDS       _ACCFLO, SYSTEM.$Main_reg+15
                        LDS       _ACCGHI, SYSTEM.$Main_reg+16
                        LDS       _ACCHHI, SYSTEM.$Main_reg+17
                        LDS       _ACCHLO, SYSTEM.$Main_reg+18
                        SET
                        BLD       Flags, IntFlag
                        RET

SYSTEM.MDELAY:
                        .DEB      DEBdelay
                        MOVW      _ACCDLO, _ACCB
                        CLR       _ACCA
                        CP        _ACCDLO, _ACCA
                        CPC       _ACCDHI, _ACCA
                        BREQ      SYSTEM.MDELAY3
SYSTEM.MDELAY1:
                        LDI       _ACCB, 00C7Ah AND 0FFh
                        LDI       _ACCA, 00C7Ah 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, 00026h AND 0FFh
SYSTEM.UDELAY2:
                        DEC       _ACCB
                        NOP
                        BRNE      SYSTEM.UDELAY2
                        DEC       _ACCA
                        BRNE      SYSTEM.UDELAY1
SYSTEM.UDELAY3:
                        RET

SYSTEM.BlockCopyC:
SYSTEM._L0217:
                        SUBI      _ACCALO, 001h
                        SBCI      _ACCAHI, 000h
                        BRCS      SYSTEM._L0218
                        LD        _ACCA, Z+
                        ST        X+, _ACCA
                        RJMP      SYSTEM._L0217
SYSTEM._L0218:
                        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.ReadEEp8D:
                        RCALL     SYSTEM._EEpWaitReady
                        OUT       eearl, _ACCCLO
                        OUT       eearh, _ACCCHI
                        SBI       eecr, 0
                        NOP
                        IN        _ACCDLO, eedr
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.StringAppend:
                        POP       _ACCAHI
                        POP       _ACCALO
                        POP       _ACCB
                        POP       _ACCBHI
                        POP       _ACCBLO
                        POP       _ACCCHI
                        POP       _ACCCLO
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM._L0219
SYSTEM._L0219:
                        LD        _ACCA, X
                        INC       _ACCA
                        RJMP      SYSTEM._StrIns

SYSTEM.StringInsert:
                        POP       _ACCAHI
                        POP       _ACCALO
                        POP       _ACCB
                        POP       _ACCBHI
                        POP       _ACCBLO
                        POP       _ACCCHI
                        POP       _ACCCLO
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
SYSTEM._StrIns:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 3
                        TST       _ACCFLO
                        BREQ      SYSTEM._L0220
                        LSR       _ACCFLO
                        BRNE      SYSTEM._L0222
                        PUSH      _ACCA
                        CALL      SYSTEM.ReadEEp8
                        MOV       _ACCAHI, _ACCA
                        POP       _ACCA
                        ADIW      _ACCCLO, 01h
                        RJMP      SYSTEM._L0221
SYSTEM._L0222:
                        LPM       _ACCAHI, Z+
                        RJMP      SYSTEM._L0221
SYSTEM._L0220:
                        LD        _ACCAHI, Z+
SYSTEM._L0221:
                        TST       _ACCAHI
                        BREQ      SYSTEM._L0229
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM._L0224
SYSTEM._L0224:
                        LD        _ACCALO, X
SYSTEM._L0226:
                        CP        _ACCB, _ACCA
                        BRCC      SYSTEM._L0228
SYSTEM._L0229:
                        RET
SYSTEM._L0228:
                        MOV       _ACCDLO, _ACCB
                        SUB       _ACCDLO, _ACCA
                        MOV       _ACCDHI, _ACCDLO
                        SUB       _ACCDLO, _ACCAHI
                        BRCS      SYSTEM._L0234
                        CP        _ACCALO, _ACCA
                        BRCC      SYSTEM._L0231
                        MOV       _ACCELO, _ACCAHI
                        ADD       _ACCELO, _ACCALO
                        CP        _ACCB, _ACCELO
                        BRCS      SYSTEM._L0230
                        MOV       _ACCB, _ACCELO
SYSTEM._L0230:
                        RJMP      SYSTEM._L0234
SYSTEM._L0231:
                        PUSH      _ACCBLO
                        PUSH      _ACCBHI
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        MOV       _ACCDHI, _ACCALO
                        SUB       _ACCDHI, _ACCA
                        CP        _ACCDHI, _ACCDLO
                        BRCC      SYSTEM._L0232
                        MOV       _ACCDLO, _ACCDHI
SYSTEM._L0232:
                        CLR       _ACCDHI
                        ADD       _ACCBLO, _ACCA
                        ADC       _ACCBHI, _ACCDHI
                        ADD       _ACCBLO, _ACCDLO
                        ADC       _ACCBHI, _ACCDHI
                        ADIW      _ACCBLO, 1
                        MOVW      _ACCCLO, _ACCBLO
                        ADD       _ACCCLO, _ACCAHI
                        ADC       _ACCCHI, _ACCDHI
                        MOV       _ACCDHI, _ACCDLO
                        INC       _ACCDHI
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM._L0233
SYSTEM._L0233:
                        LD        _ACCGLO, -X
                        ST        -Z, _ACCGLO
                        DEC       _ACCDHI
                        BRNE     SYSTEM._L0233
SYSTEM._L0227:
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCBHI
                        POP       _ACCBLO
                        MOV       _ACCB, _ACCA
                        ADD       _ACCB, _ACCAHI
                        ADD       _ACCB, _ACCDLO
                        BRNE     SYSTEM._L0238
SYSTEM._L0234:
                        ADD       _ACCAHI, _ACCDLO
                        INC       _ACCAHI
SYSTEM._L0238:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM._L0241
SYSTEM._L0241:
                        ST        X, _ACCB
SYSTEM._L0240:
                        CLR       _ACCALO
                        ADD       _ACCBLO, _ACCA
                        ADC       _ACCBHI, _ACCALO
SYSTEM._L0239:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 3
                        TST       _ACCFLO
                        BREQ      SYSTEM._L0242
                        LSR       _ACCFLO
                        BRNE      SYSTEM._L0244
                        CALL      SYSTEM.ReadEEp8
                        MOV       _ACCGLO, _ACCA
                        ADIW      _ACCCLO, 01h
                        RJMP      SYSTEM._L0243
SYSTEM._L0244:
                        LPM       _ACCGLO, Z+
                        RJMP      SYSTEM._L0243
SYSTEM._L0242:
                        LD        _ACCGLO, Z+
SYSTEM._L0243:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM._L0245
SYSTEM._L0245:
                        ST        X+, _ACCGLO
SYSTEM._L0246:
                        DEC       _ACCAHI
                        BRNE     SYSTEM._L0239
SYSTEM._L0237:
                        RET

SYSTEM.Str2Int:
                        CLR       _ACCAHI
                        CLR       _ACCALO
                        CLR       _ACCBHI
                        CLR       _ACCBLO
                        BST       Flags, _EEPROM
                        BRTC      SYSTEM._L0251
                        CALL      SYSTEM.ReadEEp8
                        ADIW      _ACCCLO, 01h
                        RJMP     SYSTEM._L0252
SYSTEM._L0251:
                        LD        _ACCA, Z+
SYSTEM._L0252:
                        TST       _ACCA
                        BRNE      SYSTEM._L0248
SYSTEM._L0247:
                        CLR       _ACCA
                        CLR       _ACCB
                        RET

SYSTEM._L0248:
                        MOV       _ACCDHI, _ACCA
                        TST       _ACCB
                        BREQ      SYSTEM._L0253
                        INC       _ACCDHI
                        RJMP      SYSTEM.Hex2Int
SYSTEM._L0253:
                        BST       Flags, _EEPROM
                        BRTC      SYSTEM._L0254
                        CALL      SYSTEM.ReadEEp8
                        ADIW      _ACCCLO, 01h
                        RJMP     SYSTEM._L0255
SYSTEM._L0254:
                        LD        _ACCA, Z+
SYSTEM._L0255:
                        CLT
                        BLD       Flags, _NEGATIVE
                        CPI       _ACCA, 02Dh
                        BRNE      SYSTEM._L0249
                        DEC       _ACCDHI
                        BREQ      SYSTEM._L0247
                        SET
                        BLD       Flags, _NEGATIVE
                        BST       Flags, _EEPROM
                        BRTC      SYSTEM._L0256
                        CALL      SYSTEM.ReadEEp8
                        ADIW      _ACCCLO, 01h
                        RJMP     SYSTEM._L0257
SYSTEM._L0256:
                        LD        _ACCA, Z+
SYSTEM._L0257:
                        RJMP      SYSTEM.Dec2Int
SYSTEM._L0249:
                        CPI       _ACCA, 02Bh
                        BRNE      SYSTEM._L0250
                        DEC       _ACCDHI
                        BREQ      SYSTEM._L0247
                        CLT
                        BLD       Flags, _NEGATIVE
                        BST       Flags, _EEPROM
                        BRTC      SYSTEM._L0258
                        CALL      SYSTEM.ReadEEp8
                        ADIW      _ACCCLO, 01h
                        RJMP     SYSTEM._L0259
SYSTEM._L0258:
                        LD        _ACCA, Z+
SYSTEM._L0259:
                        RJMP      SYSTEM.Dec2Int
SYSTEM._L0250:
                        CPI       _ACCA, 024h
                        BRNE      SYSTEM.Dec2Int
                        RJMP      SYSTEM.Hex2Int
SYSTEM.Dec2Int:
                        MOV       _ACCB, _ACCDHI
                        DEC       _ACCB
                        BRMI      SYSTEM._L0247
                        CLR       _ACCDHI
                        CLR       _ACCEHI
                        CLR       _ACCFHI
                        CLR       _ACCFLO
                        PUSH      _ACCB
                        RJMP      SYSTEM.Dec2Int1
SYSTEM._L0260:
                        PUSH      _ACCB
                        BST       Flags, _EEPROM
                        BRTC      SYSTEM._L0263
                        CALL      SYSTEM.ReadEEp8
                        ADIW      _ACCCLO, 01h
                        RJMP     SYSTEM._L0264
SYSTEM._L0263:
                        LD        _ACCA, Z+
SYSTEM._L0264:
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._L0260
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._L0265
                        SUBI      _ACCB, 01h
                        SBCI      _ACCA, 00h
                        SBCI      _ACCALO, 00h
                        SBCI      _ACCAHI, 00h
                        COM       _ACCALO
                        COM       _ACCAHI
                        COM       _ACCA
                        COM       _ACCB
SYSTEM._L0265:
                        RET

SYSTEM.Hex2Int:
                        CLT
                        BLD       Flags, _NEGATIVE
                        DEC       _ACCDHI
                        BREQ      SYSTEM._L0265
                        CPI       _ACCDHI, 009h
                        BRSH      SYSTEM.Str2Ierr
SYSTEM._L0266:
                        BST       Flags, _EEPROM
                        BRTC      SYSTEM._L0270
                        CALL      SYSTEM.ReadEEp8
                        ADIW      _ACCCLO, 01h
                        RJMP     SYSTEM._L0271
SYSTEM._L0270:
                        LD        _ACCA, Z+
SYSTEM._L0271:
                        CPI       _ACCA, 061h
                        BRLO      SYSTEM._L0267
                        SUBI      _ACCA, 020h
SYSTEM._L0267:
                        CPI       _ACCA, 030h
                        BRLO      SYSTEM.Str2Ierr
                        CPI       _ACCA, 03Ah
                        BRLO      SYSTEM._L0268
                        CPI       _ACCA, 041h
                        BRLO      SYSTEM.Str2Ierr
                        CPI       _ACCA, 047h
                        BRSH      SYSTEM.Str2Ierr
                        SUBI      _ACCA, -9 AND 0FFh
SYSTEM._L0268:
                        ANDI      _ACCA, 00Fh
                        LDI       _ACCB, 4
SYSTEM._L0269:
                        LSL       _ACCBLO
                        ROL       _ACCBHI
                        ROL       _ACCALO
                        ROL       _ACCAHI
                        DEC       _ACCB
                        BRNE      SYSTEM._L0269
                        OR        _ACCBLO, _ACCA
                        DEC       _ACCDHI
                        BRNE      SYSTEM._L0266
                        RJMP      SYSTEM.Str2Iex
SYSTEM.PosChInVarStr:
                        CLR       _ACCA
                        LD        _ACCBHI, Z
                        TST       _ACCBHI
                        BREQ      SYSTEM._L0273
                        TST       _ACCELO
                        BRNE      SYSTEM._L0272
                        INC       _ACCELO
SYSTEM._L0272:
                        CP        _ACCBHI, _ACCELO
                        BRCS      SYSTEM._L0273
                        ADD       _ACCCLO, _ACCELO
                        ADC       _ACCCHI, _ACCA
                        DEC       _ACCELO
                        SUB       _ACCBHI, _ACCELO
                        MOV       _ACCA, _ACCELO
SYSTEM._L0274:
                        INC       _ACCA
                        LD        _ACCBLO, Z+
                        CP        _ACCB, _ACCBLO
                        BREQ      SYSTEM._L0273
                        DEC       _ACCBHI
                        BRNE      SYSTEM._L0274
                        CLR       _ACCA
SYSTEM._L0273:
                        RET


SYSTEM.UpperCaseStr:
                        LD        _ACCA, Z+
                        TST       _ACCA
                        BREQ      SYSTEM._L0276
                        MOV       _ACCBHI, _ACCA
SYSTEM._L0275:
                        LD        _ACCA, Z+
                        CPI       _ACCA, 061h
                        BRCS      SYSTEM._L0277
                        CPI       _ACCA, 07Bh
                        BRCC      SYSTEM._L0277
                        ANDI      _ACCA, 0DFh
SYSTEM._L0277:
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM._L0275
SYSTEM._L0276:
                        RET


SYSTEM.StrCopyV:
                        TST       _ACCA
                        BREQ      SYSTEM._L0280
                        LD        _ACCBHI, Z
                        TST       _ACCBHI
                        BREQ      SYSTEM._L0280
                        SUB       _ACCBHI, _ACCB
                        BRCS      SYSTEM._L0280
                        INC       _ACCBHI
                        CLR       _ACCBLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCBLO
                        CP        _ACCBHI, _ACCA
                        BRCS      SYSTEM._L0279
                        MOV       _ACCBHI, _ACCA
SYSTEM._L0279:
                        LD        _ACCA, Z+
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM._L0279
SYSTEM._L0280:
                        RET


SYSTEM.StrConst2Str:
SYSTEM._L0281:
                        LPM      _ACCA, Z+
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM._L0281
                        RET


SYSTEM.StrVar2Str:
                        LD        _ACCA, Z+
                        TST       _ACCA
                        BREQ      SYSTEM._L0283
                        MOV       _ACCBHI, _ACCA
SYSTEM._L0282:
                        LD        _ACCA, Z+
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM._L0282
SYSTEM._L0283:
                        RET


SYSTEM.Byte2Str:
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        SBIW      _FRAMEPTR, 6
                        LDD       _ACCB, Y+9
                        CLR       _ACCA
                        MOVW      _ACCALO, _ACCB
                        ANDI      _ACCB, 0Fh
                        SWAP      _ACCALO
                        ANDI      _ACCALO, 0Fh
                        MOVW      _ACCELO, _ACCALO
                        LSL       _ACCELO
                        ROL       _ACCEHI
                        LSL       _ACCELO
                        ROL       _ACCEHI
                        MOVW      _ACCDLO, _ACCB
                        SUB       _ACCDLO, _ACCELO
                        SBC       _ACCDHI, _ACCEHI
                        SUBI      _ACCDLO, 20 AND 0FFh
                        SBCI      _ACCDHI, 0
                        STD       Y+0, _ACCDLO
                        STD       Y+1, _ACCDHI
                        MOVW      _ACCDLO, _ACCALO
                        LSL       _ACCDLO
                        ROL       _ACCDHI
                        SUBI      _ACCDLO, 38 AND 0FFh
                        SBCI      _ACCDHI, 0
                        STD       Y+2, _ACCDLO
                        STD       Y+3, _ACCDHI
                        LDI       _ACCDLO, 4
                        STD       Y+4, _ACCDLO
                        STD       Y+5, _ACCA
                        MOVW      _ACCCLO, _FRAMEPTR
                        LDI       _ACCA, 2
                        LDD       R24, Z+0
                        LDD       R25, Z+1
                        LDD       R26, Z+2
                        LDD       R27, Z+3
SYSTEM._cv8_1:
                        TST       R25
                        BRPL      SYSTEM._cv8_2
                        ADIW      R24, 10
                        SBIW      R26, 1
                        RJMP      SYSTEM._cv8_1
SYSTEM._cv8_2:
                        ST        Z+, R24
                        ST        Z+, R25
                        MOVW      R24, R26
                        DEC       _ACCA
                        BREQ      SYSTEM._cv8_X
                        LDD       R26, Z+2
                        LDD       R27, Z+3
                        RJMP      SYSTEM._cv8_1
SYSTEM._cv8_X:
                        ST        Z+, R24
                        ST        Z+, R25
                        LDD       _ACCALO, Y+8
                        LDD       _ACCAHI, Y+7
                        LDD       _ACCDLO, Y+6
                        LDI       _ACCDHI, 3
                        LDI       _ACCFLO, 0
                        MOVW      _ACCCLO, _FRAMEPTR
                        MOVW      _ACCBLO, _FRAMEPTR
                        ADIW      XL, 10
                        RCALL     SYSTEM._B2STR
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        RET

SYSTEM._B2STR:
                        PUSH      _ACCBLO
                        PUSH      _ACCBHI
                        LD        _ACCA, X+
                        LD        _ACCB, X+
                        LD        _ACCELO, X+
                        ST        -Y, _ACCELO
                        ST        -Y, _ACCB
                        ST        -Y, _ACCA
                        TST       _ACCFLO
                        BREQ       SYSTEM._B2STR_NM
                        TST       _ACCALO
                        BREQ       SYSTEM._B2STR_NM
                        DEC       _ACCALO
SYSTEM._B2STR_NM:
                        MOV       _ACCELO, _ACCDHI
                        MOV       _ACCEHI, _ACCDHI
                        LSL       _ACCEHI
                        DEC       _ACCEHI
                        MOVW      _ACCBLO, _ACCCLO
                        CLR       _ACCB
                        ADD       XL, _ACCEHI
                        ADC       XH, _ACCB
SYSTEM._B2STR_0:
                        LD        _ACCA, -X
                        TST       _ACCA
                        BRNE       SYSTEM._B2STR_1
                        SBIW      XL, 1
                        DEC       _ACCELO
                        BRNE       SYSTEM._B2STR_0
SYSTEM._B2STR_1:
                        TST       _ACCELO
                        BRNE       SYSTEM._B2STR_2
                        ADIW      XL, 1
                        INC       _ACCELO
SYSTEM._B2STR_2:
                        ADIW      XL, 2
                        TST       _ACCAHI
                        BRNE       SYSTEM._B2STR_PNT
                        TST       _ACCALO
                        BREQ       SYSTEM._B2STR_3
                        RJMP       SYSTEM._B2STR_FILL
SYSTEM._B2STR_3:
                        RJMP       SYSTEM._B2STR_WR
SYSTEM._B2STR_PNT:
                        TST       _ACCALO
                        BREQ       SYSTEM._B2STR_PNTE0
                        DEC       _ACCALO
SYSTEM._B2STR_PNTE0:
                        CLR       _ACCB
                        MOVW      _ACCBLO, _ACCCLO
                        CP        _ACCAHI, _ACCDHI
                        BRCC       SYSTEM._B2STR_PNTGT
                        MOV       _ACCEHI, _ACCAHI
                        LSL       _ACCEHI
                        ADD       XL, _ACCEHI
                        ADC       XH, _ACCB
                        LDI       _ACCA, 2Eh
                        ST        -X, _ACCA
                        CP        _ACCAHI, _ACCELO
                        BRCS       SYSTEM._B2STR_PNTE1
                        MOV       _ACCELO, _ACCAHI
                        INC       _ACCELO
SYSTEM._B2STR_PNTE1:
                        MOV       _ACCEHI, _ACCELO
                        LSL       _ACCEHI
                        MOVW      _ACCBLO, _ACCCLO
                        ADD       XL, _ACCEHI
                        ADC       XH, _ACCB
                        RJMP       SYSTEM._B2STR_FILL
SYSTEM._B2STR_PNTGT:
                        ADD       XL, _ACCEHI
                        ADC       XH, _ACCB
                        ADIW      XL, 1
                        MOV       _ACCEHI, _ACCAHI
                        ADDI      _ACCEHI, 2
                        CP        _ACCALO, _ACCEHI
                        BRCS       SYSTEM._B2STR_PNTG0
                        MOV       _ACCB, _ACCALO
                        SUB       _ACCB, _ACCEHI
                        INC       _ACCB
                        RJMP       SYSTEM._B2STR_PNTG1
SYSTEM._B2STR_PNTG0:
                        CLR       _ACCB
SYSTEM._B2STR_PNTG1:
                        MOV       _ACCALO, _ACCB
SYSTEM._B2STR_PNTG2:
                        TST       _ACCB
                        BREQ       SYSTEM._B2STR_PNTG3
                        MOV       _ACCA, _ACCDLO
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCB
                        RJMP       SYSTEM._B2STR_PNTG2
SYSTEM._B2STR_PNTG3:
                        MOV       _ACCEHI, _ACCAHI
                        SUB       _ACCEHI, _ACCDHI
                        MOV       _ACCELO, _ACCDHI
                        ADD       _ACCALO, _ACCEHI
                        TST       _ACCFLO
                        BREQ       SYSTEM._B2STR_PNTG4
                        MOV       _ACCA, _ACCFLO
                        CALL      SYSTEM.Char2Str
                        CLR       _ACCFLO
                        INC       _ACCALO
SYSTEM._B2STR_PNTG4:
                        ADDI      _ACCALO, 2
                        LDI       _ACCA, 30h
                        CALL      SYSTEM.Char2Str
                        LDI       _ACCA, 2Eh
                        CALL      SYSTEM.Char2Str
                        LDI       _ACCA, 30h
SYSTEM._B2STR_PNTG5:
                        TST       _ACCEHI
                        BREQ       SYSTEM._B2STR_WR
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCEHI
                        RJMP       SYSTEM._B2STR_PNTG5
SYSTEM._B2STR_FILL:
                        CP        _ACCELO, _ACCALO
                        BRCS       SYSTEM._B2STR_F0
                        CLR       _ACCALO
                        RJMP       SYSTEM._B2STR_WR
SYSTEM._B2STR_F0:
                        SUB       _ACCALO, _ACCELO
                        MOV       _ACCB, _ACCALO
SYSTEM._B2STR_F1:
                        MOV       _ACCA, _ACCDLO
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCB
                        BRNE       SYSTEM._B2STR_F1
SYSTEM._B2STR_WR:
                        TST       _ACCFLO
                        BREQ       SYSTEM._B2STR_WR0
                        MOV       _ACCA, _ACCFLO
                        CALL      SYSTEM.Char2Str
SYSTEM._B2STR_WR0:
                        LD        _ACCA, -X
                        TST       _ACCA
                        BREQ       SYSTEM._B2STR_WR1
                        CALL      SYSTEM.Char2Str
SYSTEM._B2STR_WR1:
                        LD        _ACCA, -X
                        ORI       _ACCA, 30h
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCELO
                        BRNE       SYSTEM._B2STR_WR0
                        POP       _ACCBHI
                        POP       _ACCBLO
                        LDD        _ACCA, Y+0
                        ST         X+, _ACCA
                        LDD        _ACCA, Y+1
                        ST         X+, _ACCA
                        LDD        _ACCA, Y+2
                        ST         X+, _ACCA
                        RET


SYSTEM.Int2Str:
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        SBIW      _FRAMEPTR, 10
                        LDD       XL, Y+13
                        LDD       XH, Y+14
                        CLR       _ACCFLO
                        BST       Flags, _SIGN
                        BRTC      SYSTEM._cv16_0
                        TST       XH
                        BRPL      SYSTEM._cv16_0
                        LDI       _ACCFLO, 2Dh
                        SUBI      XL, 01h
                        SBCI      XH, 00h
                        COM       XL
                        COM       XH
SYSTEM._cv16_0:
                        PUSH      _ACCFLO
                        mov       r24, XH
                        swap      r24
                        andi      r24, 0Fh
                        subi      r24, -0F0h and 0FFh
                        mov       r19, r24
                        add       r19, r24
                        subi      r24, -0E2h and 0ffh
                        mov       r18, r24
                        subi      r24, -32h and 0ffh
                        mov       r16, r24
                        mov       r24, XH
                        andi      r24, 0Fh
                        add       r18, r24
                        add       r18, r24
                        add       r16, r24
                        subi      r24, -0E9h and $ff
                        mov       r17, r24
                        add       r17, r24
                        add       r17, r24
                        mov       r24, XL
                        swap      r24
                        andi      r24, 0Fh
                        add       r17, r24
                        add       r16, r24
                        rol       r17
                        rol       r16
                        com       r16
                        clc
                        rol       r16
                        mov       r24, XL
                        andi      r24, 0Fh
                        add       r16, r24
                        rol       r19
                        ldi       r24, 07h
                        mov       r20, r24
                        ldi       r24, 0Ah
SYSTEM._cv16_1:
                        add       r16,r24
                        dec       r17
                        brcc      SYSTEM._cv16_1
SYSTEM._cv16_2:
                        add       r17, r24
                        dec       r18
                        brcc      SYSTEM._cv16_2
SYSTEM._cv16_3:
                        add       r18, r24
                        dec       r19
                        brcc      SYSTEM._cv16_3
SYSTEM._cv16_4:
                        add       r19, r24
                        dec       r20
                        brcc      SYSTEM._cv16_4
SYSTEM._cv16_5:
                        MOVW      _ACCBLO, _FRAMEPTR
                        clr       ZH
                        ldi       ZL, 16
                        ldi       r25, 5
                        ldi       r23, 0
SYSTEM._cv16_6:
                        ld        r24, Z+
                        st        X+, r24
                        st        X+, r23
                        dec       r25
                        brne      SYSTEM._cv16_6
                        LDD       _ACCALO, Y+12
                        LDD       _ACCAHI, Y+11
                        LDD       _ACCDLO, Y+10
                        LDI       _ACCDHI, 5
                        POP       _ACCFLO
                        MOVW      _ACCCLO, _FRAMEPTR
                        MOVW      _ACCBLO, _FRAMEPTR
                        ADIW      XL, 15
                        RCALL     SYSTEM._B2STR
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        RET


SYSTEM.StringComp:
                        LD        _ACCB, X+
                        SBRC      FLAGS, _STRCONST
                        RJMP      SYSTEM._L0284
                        LD        _ACCGLO, Z+
                        RJMP      SYSTEM._L0285
SYSTEM._L0284:
                        LPM       _ACCGLO, Z+
SYSTEM._L0285:
                        CP        _ACCB, _ACCGLO
                        BREQ      SYSTEM._L0286
                        CLZ
                        RET
SYSTEM._L0286:
                        TST       _ACCB
                        BRNE      SYSTEM._L0287
                        SEZ
                        RET
SYSTEM._L0287:
                        DEC       _ACCB
                        LD        _ACCA, X+
                        SBRC      FLAGS, _STRCONST
                        RJMP      SYSTEM._L0288
                        LD        _ACCGLO, Z+
                        RJMP      SYSTEM._L0289
SYSTEM._L0288:
                        LPM       _ACCGLO, Z+
SYSTEM._L0289:
                        CP        _ACCA, _ACCGLO
                        BREQ      SYSTEM._L0286
                        CLZ
                        RET


SYSTEM.Char2Str:
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        BST       Flags, _DEVICE
                        BRTS      SYSTEM._L0293
                        PUSH      _ACCA
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LDD       _ACCA, Y+000h
                        TST       _ACCA
                        BRNE      SYSTEM._L0290
                        POP       _ACCA
                        SET
                        BLD       Flags, _ERRFLAG
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RET
SYSTEM._L0290:
                        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._L0293:
                        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.FTRUNCX:
                        PUSH      _ACCELO
                        PUSH      _ACCEHI
                        MOV       _ACCEHI, _ACCAHI
                        MOV       _ACCELO, _ACCALO
                        ROL       _ACCELO
                        ROL       _ACCEHI
                        SUBI      _ACCEHI, 127
                        BRCC      SYSTEM._L0294
                        POP       _ACCEHI
                        POP       _ACCELO
                        CLR       _ACCA
                        CLR       _ACCB
                        CLR       _ACCAHI
                        CLR       _ACCALO
                        RET
SYSTEM._L0294:
                        ORI       _ACCALO, 080h
                        MOV       _ACCELO, _ACCAHI
                        CLR       _ACCAHI
                        CPI       _ACCEHI, 24
                        BRSH      SYSTEM._L0296
                        SUBI      _ACCEHI, 23
                        NEG       _ACCEHI
SYSTEM._L0295:
                        BREQ      SYSTEM._L0298
                        LSR       _ACCAHI
                        ROR       _ACCALO
                        ROR       _ACCA
                        ROR       _ACCB
                        DEC       _ACCEHI
                        RJMP      SYSTEM._L0295
SYSTEM._L0296:
                        SUBI      _ACCEHI, 23
SYSTEM._L0297:
                        BREQ      SYSTEM._L0298
                        LSL       _ACCB
                        ROL       _ACCA
                        ROL       _ACCALO
                        ROL       _ACCAHI
                        DEC       _ACCEHI
                        RJMP      SYSTEM._L0297
SYSTEM._L0298:
                        SBRS      _ACCELO, 7
                        RJMP      SYSTEM._L0299
                        SUBI      _ACCB, 01h
                        SBCI      _ACCA, 00h
                        SBCI      _ACCALO, 00h
                        SBCI      _ACCAHI, 00h
                        COM       _ACCB
                        COM       _ACCA
                        COM       _ACCAHI
                        COM       _ACCALO
SYSTEM._L0299:
                        POP       _ACCEHI
                        POP       _ACCELO
                        RET

SYSTEM.FENTIERx:
                        CPI       _ACCAHI, 0CFh
                        BRLO      SYSTEM._L0300
                        LDI       _ACCAHI, 080h
                        CLR       _ACCALO
                        CLR       _ACCA
                        CLR       _ACCB
                        RET
SYSTEM._L0300:
                        SBRC      _ACCAHI, 7
                        RJMP      SYSTEM._L0301
                        CPI       _ACCAHI, 04Fh
                        BRLO      SYSTEM._L0301
                        LDI       _ACCAHI, 07Fh
                        LDI       _ACCALO, 0FFh
                        LDI       _ACCA, 0FFh
                        LDI       _ACCB, 0FFh
                        RET
SYSTEM._L0301:
                        SBRS      _ACCAHI, 7
                        RJMP      SYSTEM.FTRUNCX
                        ANDI      _ACCAHI, 07Fh
                        CALL      SYSTEM.FTRUNCX
                        SUBI      _ACCB, 01h
                        SBCI      _ACCA, 00h
                        SBCI      _ACCALO, 00h
                        SBCI      _ACCAHI, 00h
                        COM       _ACCALO
                        COM       _ACCAHI
                        COM       _ACCA
                        COM       _ACCB
                        RET

SYSTEM.FloatToLInt:
                        MOV       _ACCDHI, _ACCAHI
                        MOV       _ACCBHI, _ACCAHI
                        MOV       _ACCBLO, _ACCALO
                        CLR       _ACCAHI
                        ORI       _ACCALO, 080h
                        ANDI      _ACCBHI, 07Fh
                        ANDI      _ACCBLO, 080h
                        ROL       _ACCBLO
                        ROL       _ACCBHI
                        SUBI      _ACCBHI, 07Fh
                        BRPL      SYSTEM._L0303
                        CLR       _ACCAHI
                        CLR       _ACCALO
                        CLR       _ACCA
                        CLR       _ACCB
                        RET
SYSTEM._L0303:
                        CPI       _ACCBHI, 23
                        BRCC      SYSTEM._L0305
                        LDI       _ACCBLO, 23
                        SUB       _ACCBLO, _ACCBHI
                        BREQ      SYSTEM._L0307
SYSTEM._L0304:
                        LSR       _ACCAHI
                        ROR       _ACCALO
                        ROR       _ACCA
                        ROR       _ACCB
                        DEC       _ACCBLO
                        BRNE      SYSTEM._L0304
                        RJMP      SYSTEM._L0307
SYSTEM._L0305:
                        SUBI      _ACCBHI, 23
                        BREQ      SYSTEM._L0307
                        MOV       _ACCBLO, _ACCBHI
SYSTEM._L0306:
                        LSL       _ACCB
                        ROL       _ACCA
                        ROL       _ACCALO
                        ROL       _ACCAHI
                        BRCC      SYSTEM._L0308
                        SET
                        BLD       Flags, _ERRFLAG
SYSTEM._L0308:
                        DEC       _ACCBLO
                        BRNE      SYSTEM._L0306
SYSTEM._L0307:
                        SBRS      _ACCDHI, 7
                        RET
                        SUBI      _ACCB, 01h
                        SBCI      _ACCA, 00h
                        SBCI      _ACCALO, 00h
                        SBCI      _ACCAHI, 00h
                        COM       _ACCALO
                        COM       _ACCAHI
                        COM       _ACCA
                        COM       _ACCB
                        RET

SYSTEM.LIntToFloat:
                        TST       _ACCAHI
                        BRNE      SYSTEM._L0309
                        TST       _ACCALO
                        BRNE      SYSTEM._L0309
                        TST       _ACCA
                        BRNE      SYSTEM._L0309
                        TST       _ACCB
                        BRNE      SYSTEM._L0309
                        RET
SYSTEM._L0309:
                        CLR       _ACCBLO
                        SBRS      Flags, _SIGN
                        RJMP      SYSTEM._L0310
                        MOV       _ACCBLO, _ACCAHI
                        ANDI      _ACCBLO, 080h
                        TST       _ACCAHI
                        BRPL      SYSTEM._L0315
                        SUBI      _ACCB, 01h
                        SBCI      _ACCA, 00h
                        SBCI      _ACCALO, 00h
                        SBCI      _ACCAHI, 00h
                        COM       _ACCALO
                        COM       _ACCAHI
                        COM       _ACCA
                        COM       _ACCB
SYSTEM._L0315:
SYSTEM._L0310:
                        LDI       _ACCBHI, 150
SYSTEM._L0311:
                        TST       _ACCAHI
                        BREQ      SYSTEM._L0312
                        LSR       _ACCAHI
                        ROR       _ACCALO
                        ROR       _ACCA
                        ROR       _ACCB
                        INC       _ACCBHI
                        RJMP      SYSTEM._L0311
SYSTEM._L0312:
                        SBRC      _ACCALO, 7
                        RJMP      SYSTEM._L0313
                        LSL       _ACCB
                        ROL       _ACCA
                        ROL       _ACCALO
                        ROL       _ACCAHI
                        DEC       _ACCBHI
                        RJMP      SYSTEM._L0312
SYSTEM._L0313:
                        ANDI      _ACCALO, 07Fh
                        MOV       _ACCAHI, _ACCBHI
                        LSR       _ACCAHI
                        BRCC      SYSTEM._L0314
                        ORI       _ACCALO, 080h
SYSTEM._L0314:
                        OR        _ACCAHI, _ACCBLO
                        RET

SYSTEM.MulFloat:
                        MOVW      _ACCBLO, _ACCB
                        MOVW      _ACCCLO, _ACCALO
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCEHI
                        POP       _ACCELO
                        POP       _ACCDHI
                        POP       _ACCDLO
                        PUSH      _ACCB
                        PUSH      _ACCA
SYSTEM.MulFloat_R:
                        TST       _ACCCHI
                        BREQ      SYSTEM._L0316
                        TST       _ACCEHI
                        BRNE      SYSTEM._L0317
SYSTEM._L0316:
                        CLR       _ACCB
                        CLR       _ACCA
                        CLR       _ACCALO
                        CLR       _ACCAHI
                        RET
SYSTEM._L0317:
                        MOV       _ACCAHI, _ACCCHI
                        EOR       _ACCAHI, _ACCEHI
                        ANDI      _ACCAHI, 080h
                        ROL       _ACCCLO
                        ROL       _ACCCHI
                        SEC
                        ROR       _ACCCLO
                        ROL       _ACCELO
                        ROL       _ACCEHI
                        SEC
                        ROR       _ACCELO
                        CLR       _ACCA
                        ADD       _ACCCHI, _ACCEHI
                        ADC       _ACCA, _ACCA
                        SUBI      _ACCCHI, 07Fh
                        SBCI      _ACCA, 00h
                        TST       _ACCA
                        BRNE      SYSTEM._L0318
                        CPI       _ACCCHI, 0FFh
                        BRLO      SYSTEM._L0319
SYSTEM._L0318:
                        SET
                        BLD       Flags, _ERRFLAG
                        ANDI      _ACCAHI, 080h
                        ORI       _ACCAHI, 07Eh
                        LDI       _ACCALO, 0FFh
                        LDI       _ACCB, 0FFh
                        LDI       _ACCA, 0FFh
                        RET
SYSTEM._L0319:
                        CPI       _ACCCHI, 01h
                        BRSH      SYSTEM._L0320
                        CLR       _ACCAHI
                        CLR       _ACCALO
                        CLR       _ACCB
                        CLR       _ACCA
                        SET
                        BLD       Flags, _ERRFLAG
                        RET
SYSTEM._L0320:
                        PUSH      _ACCAHI
                        PUSH      _ACCCHI
                        CLR       _ACCCHI
                        CLR       _ACCEHI
                        CLR       _ACCFHI
                        CLR       _ACCFLO
                        CLR       _ACCGHI
                        CLR       _ACCGLO
                        LSR       _ACCEHI
                        ROR       _ACCELO
                        ROR       _ACCDHI
                        ROR       _ACCDLO
                        LDI       _ACCA, 32
SYSTEM._L0321:
                        BRCC      SYSTEM._L0322
                        ADD       _ACCFLO, _ACCBLO
                        ADC       _ACCFHI, _ACCBHI
                        ADC       _ACCGLO, _ACCCLO
                        ADC       _ACCGHI, _ACCCHI
SYSTEM._L0322:
                        ROR       _ACCGHI
                        ROR       _ACCGLO
                        ROR       _ACCFHI
                        ROR       _ACCFLO
                        ROR       _ACCEHI
                        ROR       _ACCELO
                        ROR       _ACCDHI
                        ROR       _ACCDLO
                        DEC       _ACCA
                        BRNE      SYSTEM._L0321
                        LDI       _ACCALO, 23
SYSTEM._L0323:
                        LSR       _ACCGHI
                        ROR       _ACCGLO
                        ROR       _ACCFHI
                        ROR       _ACCFLO
                        ROR       _ACCEHI
                        ROR       _ACCELO
                        ROR       _ACCDHI
                        ROR       _ACCDLO
                        DEC       _ACCALO
                        BRNE      SYSTEM._L0323
                        MOV       _ACCB, _ACCDLO
                        MOV       _ACCA, _ACCDHI
                        MOV       _ACCALO, _ACCELO
                        MOV       _ACCAHI, _ACCEHI
                        POP       _ACCBHI
                        POP       _ACCGLO
                        TST       _ACCAHI
                        BREQ      SYSTEM._L0324
                        LSR       _ACCAHI
                        ROR       _ACCALO
                        ROR       _ACCA
                        ROR       _ACCB
                        INC       _ACCBHI
SYSTEM._L0324:
                        MOV       _ACCAHI, _ACCGLO
                        ROL       _ACCALO
                        LSR       _ACCBHI
                        ROR       _ACCALO
                        OR        _ACCAHI, _ACCBHI
                        RET

SYSTEM.Str2Float:
                        CLT
                        BLD       Flags, _ERRFLAG
                        CLR       _ACCHHI
                        CLR       _ACCHLO
                        CLR       _ACCA
                        CLR       _ACCB
                        CLR       _ACCAHI
                        CLR       _ACCALO
                        PUSH      _ACCALO
                        RCALL     SYSTEM.Str2FltRdChr
                        MOV       _ACCBLO, _ACCDLO
                        ADIW      _ACCCLO, 1
                        RCALL     SYSTEM.ACSkipSpace
SYSTEM.Str2Flt1:
                        RCALL     SYSTEM.ACNUM
                        BRCS      SYSTEM.Str2Flt4
                        CPI       _ACCDLO, 2Bh
                        BRNE      SYSTEM.Str2Flt2
                        ADIW      _ACCCLO, 1
                        DEC       _ACCBLO
                        RJMP      SYSTEM.Str2Flt1
SYSTEM.Str2Flt2:
                        CPI       _ACCDLO, 2Dh
                        BRNE      SYSTEM.Str2Flt3
                        POP       _ACCDLO
                        COM       _ACCDLO
                        PUSH      _ACCDLO
                        ADIW      _ACCCLO, 1
                        DEC       _ACCBLO
                        RCALL     SYSTEM.ACNUM
                        BRCS      SYSTEM.Str2Flt4
SYSTEM.Str2Flt3:
                        CPI       _ACCDLO, DECIMALSEP
                        BRNE      SYSTEM.Str2Flt5
                        ADIW      _ACCCLO, 1
                        DEC       _ACCBLO
                        RCALL     SYSTEM.ACNUM
                        BRCC      SYSTEM.Str2Flt5
                        RJMP      SYSTEM.Str2Flt11
SYSTEM.Str2Flt5:
                        POP       _ACCDLO
                        CLR       _ACCHHI
                        CLR       _ACCHLO
                        CLR       _ACCA
                        CLR       _ACCB
                        SET
                        BLD       Flags, _ERRFLAG
                        SEC
                        RET

SYSTEM.Str2Flt4:
                        RCALL     SYSTEM.ACNUM
                        BRCC      SYSTEM.Str2Flt10
                        RCALL     SYSTEM.ADDNXT
                        ADIW      _ACCCLO, 1
                        DEC       _ACCBLO
                        TST       _ACCDLO
                        BREQ      SYSTEM.Str2Flt4
SYSTEM.Str2Flt6:
                        INC       _ACCAHI
                        ADIW      _ACCCLO, 1
                        DEC       _ACCBLO
                        RCALL     SYSTEM.ACNUM
                        BRCS      SYSTEM.Str2Flt6
                        CPI       _ACCDLO, DECIMALSEP
                        BRNE      SYSTEM.Str2Flt7
SYSTEM.Str2Flt8:
                        RCALL     SYSTEM.ACNUM
                        BRCC      SYSTEM.Str2Flt7
                        ADIW      _ACCCLO, 1
                        DEC       _ACCBLO
                        RJMP      SYSTEM.Str2Flt8
SYSTEM.Str2Flt7:
                        CPI       _ACCDLO, 45h
                        BREQ      SYSTEM.Str2Flt13
                        CPI       _ACCDLO, 65h
                        BREQ      SYSTEM.Str2Flt13
                        RJMP      SYSTEM.ACFIN
SYSTEM.Str2Flt13:
                        ADIW      _ACCCLO, 1
                        DEC       _ACCBLO
                        RCALL     SYSTEM.ACNUM
                        BRCS      SYSTEM.Str2Flt9
                        CPI       _ACCDLO, 2Dh
                        BREQ      SYSTEM.Str2Flt15
                        CPI       _ACCDLO, 2Bh
                        BREQ      SYSTEM.Str2Flt16
                        RJMP      SYSTEM.Str2Flt5
SYSTEM.Str2Flt15:
                        COM       _ACCHLO
SYSTEM.Str2Flt16:
                        ADIW      _ACCCLO, 1
                        DEC       _ACCBLO
                        RCALL     SYSTEM.ACNUM
                        BRCC      SYSTEM.Str2Flt5
SYSTEM.Str2Flt9:
                        SUBI      _ACCDLO, 30h
                        MOV       _ACCHHI, _ACCDLO
                        ADIW      _ACCCLO, 1
                        DEC       _ACCBLO
                        RCALL     SYSTEM.ACNUM
                        BRCC      SYSTEM.Str2Flt14
                        MOV       _ACCDHI, _ACCHHI
                        LSL       _ACCDHI
                        LSL       _ACCDHI
                        ADD       _ACCDHI, _ACCHHI
                        LSL       _ACCDHI
                        SUBI      _ACCDLO, 30h
                        ADD       _ACCDLO, _ACCDHI
                        MOV       _ACCHHI, _ACCDLO
                        CPI       _ACCDLO, 38
                        BRSH      SYSTEM.Str2Flt5
SYSTEM.Str2Flt14:
                        MOV       _ACCDLO, _ACCHHI
                        TST       _ACCHLO
                        BRPL      SYSTEM.Str2Flt12
                        NEG       _ACCDLO
SYSTEM.Str2Flt12:
                        ADD       _ACCDLO, _ACCAHI
                        MOV       _ACCAHI, _ACCDLO
                        RJMP      SYSTEM.ACFIN
SYSTEM.Str2Flt10:
                        CPI       _ACCDLO, DECIMALSEP
                        BRNE      SYSTEM.Str2Flt7
                        ADIW      _ACCCLO, 1
                        DEC       _ACCBLO
SYSTEM.Str2Flt11:
                        RCALL     SYSTEM.ACNUM
                        BRCC      SYSTEM.Str2Flt7
                        RCALL     SYSTEM.ADDNXT
                        ADIW      _ACCCLO, 1
                        DEC       _ACCBLO
                        TST       _ACCDLO
                        BRNE      SYSTEM.Str2Flt8
                        DEC       _ACCAHI
                        RJMP      SYSTEM.Str2Flt11

SYSTEM.ADDNXT:
                        MOV       _ACCFLO, _ACCALO
                        MOV       _ACCEHI, _ACCA
                        MOV       _ACCELO, _ACCB
                        LSL       _ACCB
                        ROL       _ACCA
                        ROL       _ACCALO
                        BRCS      SYSTEM.ADDNXT1
                        LSL       _ACCB
                        ROL       _ACCA
                        ROL       _ACCALO
                        BRCS      SYSTEM.ADDNXT1
                        ADD       _ACCB, _ACCELO
                        ADC       _ACCA, _ACCEHI
                        ADC       _ACCALO, _ACCFLO
                        BRCS      SYSTEM.ADDNXT1
                        LSL       _ACCB
                        ROL       _ACCA
                        ROL       _ACCALO
                        BRCS      SYSTEM.ADDNXT1
                        RCALL     SYSTEM.Str2FltRdChr
                        SUBI      _ACCDLO, 30h
                        CLR       _ACCDHI
                        ADD       _ACCB, _ACCDLO
                        ADC       _ACCA, _ACCDHI
                        ADC       _ACCALO, _ACCDHI
                        BRCS      SYSTEM.ADDNXT1
                        CLR       _ACCDLO
                        RET

SYSTEM.ADDNXT1:
                        MOV       _ACCALO, _ACCFLO
                        MOV       _ACCA, _ACCEHI
                        MOV       _ACCB, _ACCELO
                        SER       _ACCDLO
                        RET

SYSTEM.ACFIN:
                        POP       _ACCDLO
                        RCALL     SYSTEM.CHCK0
                        BREQ      SYSTEM.ACFIN3
                        MOV       _ACCHHI, _ACCAHI
                        CLR       _ACCAHI
                        CLT
                        BLD       Flags, _ERRFLAG
                        CLT
                        BLD       Flags, _SIGN
                        CALL      SYSTEM.LIntToFloat
                        SBRC      _ACCDLO, 7
                        ORI       _ACCAHI, 80h
                        MOV       _ACCHLO, _ACCHHI
                        TST       _ACCHHI
                        BREQ      SYSTEM.ACFIN3
                        BRPL      SYSTEM.ACFIN1
                        NEG       _ACCHHI
SYSTEM.ACFIN1:
                        TST       _ACCHLO
                        BRMI      SYSTEM.ACFIN2
                        LDI       _ACCBLO, 000h
                        LDI       _ACCBHI, 000h
                        LDI       _ACCCLO, 020h
                        LDI       _ACCCHI, 041h
                        RJMP      SYSTEM.ACFIN4
SYSTEM.ACFIN2:
                        LDI       _ACCBLO, 0CDh
                        LDI       _ACCBHI, 0CCh
                        LDI       _ACCCLO, 0CCh
                        LDI       _ACCCHI, 03Dh
SYSTEM.ACFIN4:
                        MOV       _ACCDLO, _ACCB
                        MOV       _ACCDHI, _ACCA
                        MOV       _ACCELO, _ACCALO
                        MOV       _ACCEHI, _ACCAHI
                        CLT
                        BLD       Flags, _ERRFLAG
                        CALL      SYSTEM.MulFloat_R
                        DEC       _ACCHHI
                        BRNE      SYSTEM.ACFIN1
SYSTEM.ACFIN3:
                        RET

SYSTEM.ACSkipSpace:
                        TST       _ACCBLO
                        BRNE      SYSTEM._L0325
                        RET
SYSTEM._L0325:
                        RCALL     SYSTEM.Str2FltRdChr
                        CPI       _ACCDLO, 020h
                        BRNE      SYSTEM._L0326
                        ADIW      _ACCCLO, 1
                        DEC       _ACCBLO
                        RJMP      SYSTEM.ACSkipSpace
SYSTEM._L0326:
                        RET

SYSTEM.ACNUM:
                        TST       _ACCBLO
                        BRNE      SYSTEM.ACNUM0
                        CLR       _ACCDLO
                        CLC
                        RET
SYSTEM.ACNUM0:
                        RCALL     SYSTEM.Str2FltRdChr
                        CPI       _ACCDLO, 030h
                        BRLO      SYSTEM.ACNUM1
                        CPI       _ACCDLO, 03Ah
                        BRSH      SYSTEM.ACNUM1
                        SEC
                        RET
SYSTEM.ACNUM1:
                        CLC
                        RET

SYSTEM.CHCK0:
                        TST       _ACCAHI
                        BRNE      SYSTEM.CHCK01
                        TST       _ACCALO
                        BRNE      SYSTEM.CHCK01
                        TST       _ACCA
                        BRNE      SYSTEM.CHCK01
                        TST       _ACCB
SYSTEM.CHCK01:
                        RET

SYSTEM.Str2FltRdChr:
                        BST       Flags, _EEPROM
                        BRTC      SYSTEM._L0327
                        CALL      SYSTEM.ReadEEp8D
                        RET
SYSTEM._L0327:
                        LD        _ACCDLO, Z
                        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.SetSysTimer:
                        CLI
                        ST        Z+, _ACCB
                        ST        Z+, _ACCA
                        MOV       _ACCBLO, _SYSTFLAGS
                        TST       _ACCA
                        BRNE       SYSTEM._L0329
                        TST       _ACCB
                        BRNE       SYSTEM._L0329
                        COM       _ACCBHI
                        AND       _ACCBLO, _ACCBHI
                        MOV       _SYSTFLAGS, _ACCBLO
                        SBRC      Flags, IntFlag
                        SEI
                        RET
SYSTEM._L0329:
                        OR        _ACCBLO, _ACCBHI
                        MOV       _SYSTFLAGS, _ACCBLO
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.GetBitCount8:
                        LDI       _ACCCLO, 8
                        LDI       _ACCCHI, 0
SYSTEM._L0330:
                        LSL       _ACCA
                        BRCC      SYSTEM._L0331
                        INC       _ACCCHI
SYSTEM._L0331:
                        DEC       _ACCCLO
                        BRNE      SYSTEM._L0330
                        MOV       _ACCA, _ACCCHI
                        RET

SYSTEM.GetBitCount16:
                        LDI       _ACCCLO, 16
                        LDI       _ACCCHI, 0
SYSTEM._L0332:
                        LSL       _ACCB
                        ROL       _ACCA
                        BRCC      SYSTEM._L0333
                        INC       _ACCCHI
SYSTEM._L0333:
                        DEC       _ACCCLO
                        BRNE      SYSTEM._L0332
                        MOV       _ACCA, _ACCCHI
                        RET

SYSTEM.GetBitCount32:
                        LDI       _ACCCLO, 32
                        LDI       _ACCCHI, 0
SYSTEM._L0334:
                        LSL       _ACCB
                        ROL       _ACCA
                        ROL       _ACCALO
                        ROL       _ACCAHI
                        BRCC      SYSTEM._L0335
                        INC       _ACCCHI
SYSTEM._L0335:
                        DEC       _ACCCLO
                        BRNE      SYSTEM._L0334
                        MOV       _ACCA, _ACCCHI
                        RET

SYSTEM.GetBitCount64:
                        LDI       _ACCCLO, 64
                        LDI       _ACCCHI, 0
SYSTEM._L0336:
                        LSL       _ACCB
                        ROL       _ACCA
                        ROL       _ACCALO
                        ROL       _ACCAHI
                        ROL       _ACCDLO
                        ROL       _ACCDHI
                        ROL       _ACCELO
                        ROL       _ACCEHI
                        BRCC      SYSTEM._L0337
                        INC       _ACCCHI
SYSTEM._L0337:
                        DEC       _ACCCLO
                        BRNE      SYSTEM._L0336
                        MOV       _ACCA, _ACCCHI
                        RET

SYSTEM.DefIntErr:
                        RETI


                        .ROMCONST $

                        ; ============ String-constant tables ============
                        .SYM      COMTEST.Vers1Str
COMTEST.Vers1Str:
                        .BYTE     8
                        .ASCII    "COMTEST "

$St_String2:
                        .BYTE     0


                        ; ============ array-constant tables ============
                        .SYM      COMTEST.ErrStrArr
COMTEST.ErrStrArr:
                        .BYTE     4
                        .ASCII    "[OK]"
                        .BYTE     00h
                        .BYTE     00h
                        .BYTE     00h
                        .BYTE     00h
                        .BYTE     00h

                        .BYTE     8
                        .ASCII    "[SRQUSR]"
                        .BYTE     00h

                        .BYTE     6
                        .ASCII    "[BUSY]"
                        .BYTE     00h
                        .BYTE     00h
                        .BYTE     00h

                        .BYTE     8
                        .ASCII    "[OVERLD]"
                        .BYTE     00h

                        .BYTE     8
                        .ASCII    "[CMDERR]"
                        .BYTE     00h

                        .BYTE     8
                        .ASCII    "[PARERR]"
                        .BYTE     00h

                        .BYTE     8
                        .ASCII    "[LOCKED]"
                        .BYTE     00h

                        .BYTE     8
                        .ASCII    "[CHKSUM]"
                        .BYTE     00h


                        .SYM      COMTEST.CmdStrArr
COMTEST.CmdStrArr:
                        .BYTE     3
                        .ASCII    "STR"

                        .BYTE     3
                        .ASCII    "IDN"

                        .BYTE     3
                        .ASCII    "TRG"

                        .BYTE     3
                        .ASCII    "VAL"

                        .BYTE     3
                        .ASCII    "FRQ"

                        .BYTE     3
                        .ASCII    "LVL"

                        .BYTE     3
                        .ASCII    "LVP"

                        .BYTE     3
                        .ASCII    "DBU"

                        .BYTE     3
                        .ASCII    "WAV"

                        .BYTE     3
                        .ASCII    "BST"

                        .BYTE     3
                        .ASCII    "INL"

                        .BYTE     3
                        .ASCII    "RNG"

                        .BYTE     3
                        .ASCII    "DCO"

                        .BYTE     3
                        .ASCII    "DSP"

                        .BYTE     3
                        .ASCII    "ALL"

                        .BYTE     3
                        .ASCII    "SCL"

                        .BYTE     3
                        .ASCII    "WEN"

                        .BYTE     3
                        .ASCII    "NOP"


                        .SYM      COMTEST.Cmd2SubChArr
COMTEST.Cmd2SubChArr:
                        .BYTE     0FFh
                        .BYTE     0FEh
                        .BYTE     0F9h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     001h
                        .BYTE     002h
                        .BYTE     003h
                        .BYTE     004h
                        .BYTE     005h
                        .BYTE     00Ah
                        .BYTE     013h
                        .BYTE     014h
                        .BYTE     050h
                        .BYTE     063h
                        .BYTE     0C8h
                        .BYTE     0FAh
                        .BYTE     000h


                        ; ============ Fixed addr String-constant tables ============

                        ; ============ fixed addr array-constant tables ============

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Reset and Interrupt vectors
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


                        .ENDCODE
SYSTEM.ENDCODE:
                        .ORG       0, VECTTAB
                        .VECTTAB
SYSTEM.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.DefIntErr
                        JMP       SYSTEM.$INTERRUPT_TIMER0
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.$INTERRUPT_RXRDY
                        JMP       SYSTEM.$INTERRUPT_TXEMPTY
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr

                        .VECTTABE
SYSTEM.ENDPROG:

                        .END

                        ; ============ End of Program ============


                        ; System uses registers
                        ; from bottom     = 00000h
                        ; upto            = 00008h
                        ; and
                        ; from            = 00010h
                        ; upto            = 0001Fh
                        ;
                        ; Stackframe at   = ...003ABh


                        ; ===== Current top of User Vars in Data is 0000Ah =====

                        ; ===== Current top of User Vars in IData is 0043Eh =====

                        ; ===== EEprom currently not used =====


                        ; ===== Imported Library Routines =====

                        ; Multiply     word MUL16
                        ; LongWord and LongInt types
                        ; Convert byte to string
                        ; Convert int to string
                        ; Convert string to int
                        ; String compare
                        ; Copy partial String
                        ; Floating point type
                        ; float multiply
                        ; float float to int
                        ; float int to float
                        ; float string to float
                        ; EEprom read

                        ; Pascal Statements : 131
                        ; Assembler Lines   : 10184
                        ; Optimizer removed : 188 lines = 376Bytes

                        ; >> real SysTick (exact): 9.984 msec <<

;  Linker removed the following functions and procedures
;
;  Module/Unit             Function/Procedure
;  ------------------------------------------
;
