
                        .FILE     H:\PROJAVR\MP3SOURCE\MP3source.pas

                        ; Compiled by E-LAB AVRco PASCAL Compiler Rev 3.55
                        ; Version     : Profi
                        ;
                        ; Licenced to : Redaktion CT P1
                        ;
                        ; (c)E-LAB Computers, Grombacherstr. 27  e-mail info@e-lab.de
                        ; D-74906 Bad Rappenau  Tel. 07268/9124-0 Fax. 07268/9124-24
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Source File : MP3source.pas
                        ; Compiled    : 30. Oktober 2005  18:21:11
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .SMALL
                        .ROMEND         01FFFh;

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Constants and Variables definition
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


                        ; === Internal used memory and constants ===

FALSE                   .EQU    000h            ; const 
TRUE                    .EQU    0FFh            ; const 
NIL                     .EQU    000h            ; const 
PI                      .EQU    000h            ; const 
COMPILERREV             .EQU    163h            ; const 
COMPILERBUILD_Y         .EQU    005h            ; const 
COMPILERBUILD_M         .EQU    00Ah            ; const 
COMPILERBUILD_D         .EQU    004h            ; const 
COMPILEYEAR             .EQU    005h            ; const 
COMPILEMONTH            .EQU    00Ah            ; const 
COMPILEDAY              .EQU    01Eh            ; const 
COMPILEHOUR             .EQU    012h            ; const 
COMPILEMINUTE           .EQU    015h            ; const 
PROJECTBUILD            .EQU    04Ah            ; const 
OPTIMISERREV            .EQU    000h            ; const 
OPTIMISERBUILD          .EQU    000h            ; const 
INTFLAG                 .EQU    007h            ; const 
_EEPROM                 .EQU    006h            ; const 
_SIGN                   .EQU    005h            ; const 
_WAITLCD                .EQU    004h            ; const 
_STRCONST               .EQU    004h            ; const 
_DEVICE                 .EQU    003h            ; const 
_NEGATIVE               .EQU    002h            ; const 
_ERRFLAG                .EQU    001h            ; const 
_I2C2BYTE               .EQU    000h            ; const 
_TOGGLE300              .EQU    000h            ; const 
_LCDLOWER               .EQU    001h            ; const 
_DSP7RFR                .EQU    002h            ; const 
_PWRSAVFLG              .EQU    003h            ; const 
_STEPCW                 .EQU    004h            ; const 
_STEPDEST               .EQU    005h            ; const 
_FREQCNTFLAG            .EQU    006h            ; const 
_AUTOACK                .EQU    007h            ; const 
_ACCGLO                 .EQU    000h            ; var Data   byte
_ACCGHI                 .EQU    001h            ; var Data   byte
_ACCHLO                 .EQU    002h            ; var Data   byte
_ACCHHI                 .EQU    003h            ; var Data   byte
_ACCB                   .EQU    010h            ; var Data   byte
_ACCA                   .EQU    011h            ; var Data   byte
_ACCALO                 .EQU    012h            ; var Data   byte
_ACCAHI                 .EQU    013h            ; var Data   byte
_ACCDLO                 .EQU    014h            ; var Data   byte
_ACCDHI                 .EQU    015h            ; var Data   byte
_ACCELO                 .EQU    016h            ; var Data   byte
_ACCEHI                 .EQU    017h            ; var Data   byte
_ACCFLO                 .EQU    018h            ; var Data   byte
_ACCFHI                 .EQU    019h            ; var Data   byte
_ACCBLO                 .EQU    01Ah            ; var Data   byte
_ACCBHI                 .EQU    01Bh            ; var Data   byte
_FRAMEPTR               .EQU    01Ch            ; var Data   byte
_FPTRHI                 .EQU    01Dh            ; var Data   byte
_ACCCLO                 .EQU    01Eh            ; var Data   byte
_ACCCHI                 .EQU    01Fh            ; var Data   byte
FLAGS                   .EQU    004h            ; var Data   byte
FLAGS2                  .EQU    005h            ; var Data   byte
_SYSTFLAGS              .EQU    006h            ; var Data   byte
SYSTICK                 .EQU    001h            ; const 
PROCCLOCK               .EQU    0F42400h        ; const 
DECIMALSEP              .EQU    02Eh            ; const 
ROMconstPage            .EQU    0FFFFFFFFh      ; const 
STACKSIZE               .EQU    080h            ; const 
FRAMESIZE               .EQU    060h            ; const 
SREG                    .EQU    05Fh            ; var pData  byte
SPH                     .EQU    05Eh            ; var pData  byte
SPL                     .EQU    05Dh            ; var pData  byte
GIMSK                   .EQU    05Bh            ; var pData  byte
GICR                    .EQU    05Bh            ; var pData  byte
GIFR                    .EQU    05Ah            ; var pData  byte
TIMSK                   .EQU    059h            ; var pData  byte
TIFR                    .EQU    058h            ; var pData  byte
SPMCR                   .EQU    057h            ; var pData  byte
SPMCSR                  .EQU    057h            ; var pData  byte
TWCR                    .EQU    056h            ; var pData  byte
MCUCR                   .EQU    055h            ; var pData  byte
MCUCSR                  .EQU    054h            ; var pData  byte
MCUSR                   .EQU    054h            ; var pData  byte
TCCR0                   .EQU    053h            ; var pData  byte
TCNT0                   .EQU    052h            ; var pData  byte
OSCCAL                  .EQU    051h            ; var pData  byte
SFIOR                   .EQU    050h            ; var pData  byte
TCCR1A                  .EQU    04Fh            ; var pData  byte
TCCR1B                  .EQU    04Eh            ; var pData  byte
TCNT1H                  .EQU    04Dh            ; var pData  byte
TCNT1L                  .EQU    04Ch            ; var pData  byte
OCR1AH                  .EQU    04Bh            ; var pData  byte
OCR1AL                  .EQU    04Ah            ; var pData  byte
OCR1BH                  .EQU    049h            ; var pData  byte
OCR1BL                  .EQU    048h            ; var pData  byte
ICR1H                   .EQU    047h            ; var pData  byte
ICR1L                   .EQU    046h            ; var pData  byte
TCCR2                   .EQU    045h            ; var pData  byte
TCCR2A                  .EQU    045h            ; var pData  byte
TCNT2                   .EQU    044h            ; var pData  byte
OCR2                    .EQU    043h            ; var pData  byte
OCR2A                   .EQU    043h            ; var pData  byte
ASSR                    .EQU    042h            ; var pData  byte
WDTCR                   .EQU    041h            ; var pData  byte
UBRR1H                  .EQU    040h            ; var pData  byte
UBRRH                   .EQU    040h            ; var pData  byte
UCSRC                   .EQU    040h            ; var pData  byte
UCSR0C                  .EQU    040h            ; var pData  byte
EEARH                   .EQU    03Fh            ; var pData  byte
EEARL                   .EQU    03Eh            ; var pData  byte
EEDR                    .EQU    03Dh            ; var pData  byte
EECR                    .EQU    03Ch            ; var pData  byte
PORTB                   .EQU    038h            ; var pData  byte
DDRB                    .EQU    037h            ; var pData  byte
PINB                    .EQU    036h            ; var pData  byte
MASKB                   .EQU    03Fh            ; var pData  byte
PORTC                   .EQU    035h            ; var pData  byte
DDRC                    .EQU    034h            ; var pData  byte
PINC                    .EQU    033h            ; var pData  byte
MASKC                   .EQU    03Fh            ; var pData  byte
PORTD                   .EQU    032h            ; var pData  byte
DDRD                    .EQU    031h            ; var pData  byte
PIND                    .EQU    030h            ; var pData  byte
SPDR                    .EQU    02Fh            ; var pData  byte
SPSR                    .EQU    02Eh            ; var pData  byte
SPCR                    .EQU    02Dh            ; var pData  byte
UDR1                    .EQU    02Ch            ; var pData  byte
USR1                    .EQU    02Bh            ; var pData  byte
UCSRA                   .EQU    02Bh            ; var pData  byte
UCR1                    .EQU    02Ah            ; var pData  byte
UCSRB                   .EQU    02Ah            ; var pData  byte
UBRR1                   .EQU    029h            ; var pData  byte
UBRRL                   .EQU    029h            ; var pData  byte
ACSR                    .EQU    028h            ; var pData  byte
ADMUX                   .EQU    027h            ; var pData  byte
ADCSR                   .EQU    026h            ; var pData  byte
ADCSRA                  .EQU    026h            ; var pData  byte
ADCH                    .EQU    025h            ; var pData  byte
ADCL                    .EQU    024h            ; var pData  byte
TWDR                    .EQU    023h            ; var pData  byte
TWAR                    .EQU    022h            ; var pData  byte
TWSR                    .EQU    021h            ; var pData  byte
TWBR                    .EQU    020h            ; var pData  byte
TCNT1                   .EQU    04Ch            ; var pData  word
OCR1A                   .EQU    04Ah            ; var pData  word
OCR1B                   .EQU    048h            ; var pData  word
ICR1                    .EQU    046h            ; var pData  word
EEAR                    .EQU    03Eh            ; var pData  word
ADC                     .EQU    025h            ; var pData  word
_iDataStart             .EQU    060h            ; const 
_iDataEnd               .EQU    45Fh            ; const 
_EEpromStart            .EQU    000h            ; const 
_EEpromEnd              .EQU    1FFh            ; const 
_FlashStart             .EQU    000h            ; const 
_FlashEnd               .EQU    1FFFh           ; const 
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    062h            ; var iData  byte
TWI_DevLock             .EQU    063h            ; var iData  DeviceLock
EEPROM                  .EQU    000h            ; var EEprom array



                        .RESET     000000h
                        .ORG       0, CODE_START
                        .STARTCODE 000026h


                        .XDATASTART -1


                        ; ============ user definitions module: SoftDDS ============

SoftDDS.ItemOffset      .EQU    002h            ; const byte     2
SoftDDS.DDRBinit        .EQU    03Fh            ; const byte     63
SoftDDS.PortBinit       .EQU    0E0h            ; const byte     224
SoftDDS.DDRCinit        .EQU    00Fh            ; const byte     15
SoftDDS.PortCinit       .EQU    0FBh            ; const byte     251
SoftDDS.DDRDinit        .EQU    004h            ; const byte     4
SoftDDS.PortDinit       .EQU    0FFh            ; const byte     255
SoftDDS.BtnInPortReg    .EQU    030h            ; const byte     48
SoftDDS.LEDOutPort      .EQU    032h            ; const byte     50
SoftDDS.R2ROutPort      .EQU    038h            ; const byte     56
SoftDDS.MP3OutPort      .EQU    035h            ; const byte     53
;fhz                     .EQU    '$001'; const String
;fdhz                    .EQU    '$000'; const String

                        .FILE     sinus.txt

                        .FILE     H:\PROJAVR\MP3SOURCE\MP3source.pas
;Vers1Str                .EQU    'MP3-FG1  V#0.101'; const String
;Vers2Str                .EQU    'C. Meyer 10/05�'; const String
;InitStr                 .EQU    'Initialising... '; const String
;MemStr                  .EQU    'Memory �'; const String
;PresetStr               .EQU    'Preset �'; const String
;HzStr                   .EQU    ' Hz�'; const String
;dBStr                   .EQU    ' dB�'; const String
;SinStr                  .EQU    'Sin�'; const String
;SquStr                  .EQU    'Sqr�'; const String
;TriStr                  .EQU    'Tri�'; const String
;ExtStr                  .EQU    'Ext�'; const String
;PwrStr                  .EQU    'Pwr�'; const String
;NrmStr                  .EQU    'Nrm�'; const String
;EmptyItemStr            .EQU    '-*-�'; const String
;FrequStr                .EQU    'Frequency Hz    '; const String
;OptStr                  .EQU    'Out dB Brst Wav '; const String
SoftDDS.high            .EQU    0FFh            ; const boolean  true
SoftDDS.low             .EQU    000h            ; const boolean  false
SoftDDS.MP3playstop     .EQU    001h            ; const byte     1
SoftDDS.MP3rev          .EQU    002h            ; const byte     2
SoftDDS.MP3forw         .EQU    003h            ; const byte     3
SoftDDS.MP3repeat       .EQU    004h            ; const byte     4
SoftDDS.MP3volplus      .EQU    005h            ; const byte     5
SoftDDS.MP3equ          .EQU    006h            ; const byte     6
SoftDDS.MP3inh          .EQU    008h            ; const byte     8
;TerzArray               .EQU    '$04E20'; const String
SoftDDS.EEprime         .EQU    00000h          ; var EEprom word
                        .SYM      EEprime, 00000h, 0400Eh, 3
SoftDDS.EElastPatch     .EQU    00002h          ; var EEprom byte
                        .SYM      EElastPatch, 00002h, 0400Dh, 3
SoftDDS.EEaux           .EQU    00003h          ; var EEprom byte
                        .SYM      EEaux, 00003h, 0400Dh, 3
SoftDDS.EEPatchArray    .EQU    00004h          ; var EEprom array
                        .SYM      EEPatchArray, 00004h, 0403Dh, 3
                        .SYM      i, 00007h, 0000Dh, 3
SoftDDS.i               .EQU    007h            ; var Data   byte
                        .SYM      k, 00008h, 0000Dh, 3
SoftDDS.k               .EQU    008h            ; var Data   byte
                        .SYM      m, 00009h, 0000Dh, 3
SoftDDS.m               .EQU    009h            ; var Data   byte
                        .SYM      DDSL, 0000Ah, 0000Dh, 3
SoftDDS.DDSL            .EQU    00Ah            ; var Data   byte
                        .SYM      DDSM, 0000Bh, 0000Dh, 3
SoftDDS.DDSM            .EQU    00Bh            ; var Data   byte
                        .SYM      DDSH, 0000Ch, 0000Dh, 3
SoftDDS.DDSH            .EQU    00Ch            ; var Data   byte
                        .SYM      MP3Port, 00064h, 0000Dh, 3
SoftDDS.MP3Port         .EQU    064h            ; var iData  byte
                        .SYM      BtnInPort, 00065h, 0000Dh, 3
SoftDDS.BtnInPort       .EQU    065h            ; var iData  byte
                        .SYM      EditWhich, 00066h, 0000Ah, 3
SoftDDS.EditWhich       .EQU    066h            ; var iData  enum
                        .SYM      DisplayValue, 00067h, 0000Dh, 3
SoftDDS.DisplayValue    .EQU    067h            ; var iData  byte
                        .SYM      EditValue, 00068h, 0000Dh, 3
SoftDDS.EditValue       .EQU    068h            ; var iData  byte
                        .SYM      ItemUpperLimit, 00069h, 0000Dh, 3
SoftDDS.ItemUpperLimit  .EQU    069h            ; var iData  byte
                        .SYM      ItemLowerLimit, 0006Ah, 0000Dh, 3
SoftDDS.ItemLowerLimit  .EQU    06Ah            ; var iData  byte
                        .SYM      x, 0006Bh, 0000Dh, 3
SoftDDS.x               .EQU    06Bh            ; var iData  byte
                        .SYM      y, 0006Ch, 0000Dh, 3
SoftDDS.y               .EQU    06Ch            ; var iData  byte
                        .SYM      digits, 0006Dh, 0000Dh, 3
SoftDDS.digits          .EQU    06Dh            ; var iData  byte
                        .SYM      BtnTime, 0006Eh, 0000Dh, 3
SoftDDS.BtnTime         .EQU    06Eh            ; var iData  byte
                        .SYM      BtnTime2, 0006Fh, 0000Dh, 3
SoftDDS.BtnTime2        .EQU    06Fh            ; var iData  byte
                        .SYM      BurstCount, 00070h, 0000Dh, 3
SoftDDS.BurstCount      .EQU    070h            ; var iData  byte
                        .SYM      Modified, 00071h, 00003h, 3
SoftDDS.Modified        .EQU    071h            ; var iData  boolean
                        .SYM      aBool, 00072h, 00003h, 3
SoftDDS.aBool           .EQU    072h            ; var iData  boolean
                        .SYM      PresetOn, 00073h, 00003h, 3
SoftDDS.PresetOn        .EQU    073h            ; var iData  boolean
                        .SYM      BurstPrime, 00074h, 00003h, 3
SoftDDS.BurstPrime      .EQU    074h            ; var iData  boolean
                        .SYM      prime, 00075h, 00003h, 3
SoftDDS.prime           .EQU    075h            ; var iData  boolean
                        .SYM      MP3command, 00076h, 0000Dh, 3
SoftDDS.MP3command      .EQU    076h            ; var iData  byte
                        .SYM      PatchNum, 00077h, 0000Dh, 3
SoftDDS.PatchNum        .EQU    077h            ; var iData  byte
                        .SYM      PresetNum, 00078h, 0000Dh, 3
SoftDDS.PresetNum       .EQU    078h            ; var iData  byte
                        .SYM      EditArray, 00079h, 0003Dh, 3
SoftDDS.EditArray       .EQU    079h            ; var iData  array
                        .SYM      Frequ1, 00079h, 0000Dh, 3
SoftDDS.Frequ1          .EQU    079h            ; var iData  byte
                        .SYM      Frequ2, 0007Ah, 0000Dh, 3
SoftDDS.Frequ2          .EQU    07Ah            ; var iData  byte
                        .SYM      Frequ3, 0007Bh, 0000Dh, 3
SoftDDS.Frequ3          .EQU    07Bh            ; var iData  byte
                        .SYM      Frequ4, 0007Ch, 0000Dh, 3
SoftDDS.Frequ4          .EQU    07Ch            ; var iData  byte
                        .SYM      Frequ5, 0007Dh, 0000Dh, 3
SoftDDS.Frequ5          .EQU    07Dh            ; var iData  byte
                        .SYM      Frequ6, 0007Eh, 0000Dh, 3
SoftDDS.Frequ6          .EQU    07Eh            ; var iData  byte
                        .SYM      Frequ7, 0007Fh, 0000Dh, 3
SoftDDS.Frequ7          .EQU    07Fh            ; var iData  byte
                        .SYM      FrequDez, 00080h, 0000Dh, 3
SoftDDS.FrequDez        .EQU    080h            ; var iData  byte
                        .SYM      OutputMode, 00081h, 0000Dh, 3
SoftDDS.OutputMode      .EQU    081h            ; var iData  byte
                        .SYM      GainOffset, 00082h, 0000Dh, 3
SoftDDS.GainOffset      .EQU    082h            ; var iData  byte
                        .SYM      Burstmode, 00083h, 0000Dh, 3
SoftDDS.Burstmode       .EQU    083h            ; var iData  byte
                        .SYM      Wave, 00084h, 0000Dh, 3
SoftDDS.Wave            .EQU    084h            ; var iData  byte
                        .SYM      LeveldB, 00085h, 0000Dh, 3
SoftDDS.LeveldB         .EQU    085h            ; var iData  byte
SoftDDS.FreqStr         .EQU    089h            ; var iData  string
                        .SYM      FreqStr, 00089h, 0303Ch, 3
SoftDDS.IncrTimeOut     .EQU    092h            ; var iData  byte
                        .SYM      IncrTimeOut, 00092h, 0000Dh, 3
SoftDDS.LevelArrOffs    .EQU    008h            ; const byte     8
SoftDDS.EditArrayLen    .EQU    00Ch            ; const byte     12
                        .FUNC     myDDS, 242, 00020h
SoftDDS.myDDS:
                        .BLOCK    243
                        .LINE     244
                        CLI
                        LDI       _ACCA, 0FEH ROLB IntFlag
                        AND       Flags, _ACCA
                        .LINE     245
                        LDS       _ACCA, SoftDDS.wave
                        .LINE     246
                        CPI       _ACCA, 0
                        .BRANCH   3,SoftDDS.L0003
                        BREQ      SoftDDS.L0003
                        .BRANCH   20,SoftDDS.L0002
                        RJMP      SoftDDS.L0002
SoftDDS.L0003:
SoftDDS.L0001:
                        .BLOCK    247
                        .ASM
                        in          SoftDDS.m,PIND       ;  m:=PinD;
                        ; set sinewave output as default
                        .LINE     250
                        ldi		_ACCCHI, SoftDDS.sinus SHRB 8	; setup Z pointer hi
                        .LINE     251
                        ldi		_ACCCLO, SoftDDS.sinus AND $FF	; setup Z pointer lo
                        .LINE     252
                        ldi 	_ACCDHI,$00		; clear accumulator
                        .LINE     253
                        ldi 	_ACCDLO,$00
                        .LINE     254
                        mov   _ACCA,SoftDDS.DDSL    ; setup adder registers
                        .LINE     255
                        mov 	_ACCFLO,_ACCA
                        .LINE     256
                        mov   _ACCA,SoftDDS.DDSM
                        .LINE     257
                        mov 	_ACCFHI,_ACCA
                        .LINE     258
                        mov   _ACCA,SoftDDS.DDSH
                        .LINE     259
                        mov 	_ACCBLO,_ACCA		;
                        ; main loop
                        ;	_ACCDLO,_ACCDHI,_ACCCLO is the phase accumulator
                        ;  	_ACCFLO,_ACCFHI,_ACCBLO is the adder value determining frequency
                        ; 	add value to accumulator
                        ;	load byte from current table in ROM
                        ;	output byte to port
                        ;	repeat
                        SoftDDS.LOOP1:
                        .LINE     268
                        add	_ACCDLO,_ACCFLO			; 1
                        .LINE     269
                        adc	_ACCDHI,_ACCFHI			; 1
                        .LINE     270
                        adc	_ACCCLO,_ACCBLO			; 1
                        .LINE     271
                        lpm					; 3, ROM access
                        .LINE     272
                        out	PORTB,_ACCGLO		        ; 1
                        .LINE     273
                        in        _ACCA,PIND                ; 1
                        .LINE     274
                        CPSE      _ACCA,SoftDDS.m  ; 2, bei Änderung an Taster-Port abbrechen
                        .LINE     275
                        rjmp	SoftDDS.ENDLOOP1     ; bei Abbruch
                        .LINE     276
                        rjmp	SoftDDS.LOOP1	     ; 2 => 12 cycles
                        SoftDDS.ENDLOOP1:
                        .LINE     278
                        ldi 	_ACCA,32	; Ausgang auf 6-Bit-Mittelwert
                        .LINE     279
                        out	PORTB,_ACCA
                        .endasm
                        .ENDBLOCK 281
                        .BRANCH   20,SoftDDS.L0000
                        RJMP      SoftDDS.L0000
SoftDDS.L0002:
                        .LINE     282
                        CPI       _ACCA, 1
                        .BRANCH   3,SoftDDS.L0006
                        BREQ      SoftDDS.L0006
                        .BRANCH   20,SoftDDS.L0005
                        RJMP      SoftDDS.L0005
SoftDDS.L0006:
SoftDDS.L0004:
                        .BRANCH   20,SoftDDS.L0000
                        RJMP      SoftDDS.L0000
SoftDDS.L0005:
                        .LINE     284
                        CPI       _ACCA, 2
                        .BRANCH   3,SoftDDS.L0009
                        BREQ      SoftDDS.L0009
                        .BRANCH   20,SoftDDS.L0008
                        RJMP      SoftDDS.L0008
SoftDDS.L0009:
SoftDDS.L0007:
                        .BRANCH   20,SoftDDS.L0000
                        RJMP      SoftDDS.L0000
SoftDDS.L0008:
                        .LINE     286
                        CPI       _ACCA, 3
                        .BRANCH   3,SoftDDS.L0012
                        BREQ      SoftDDS.L0012
                        .BRANCH   20,SoftDDS.L0011
                        RJMP      SoftDDS.L0011
SoftDDS.L0012:
SoftDDS.L0010:
                        .BRANCH   20,SoftDDS.L0000
                        RJMP      SoftDDS.L0000
SoftDDS.L0011:
SoftDDS.L0000:
                        .LINE     289
                        LDI       _ACCA, 1 SHLB IntFlag
                        OR        Flags, _ACCA
                        SEI
                        .ENDBLOCK 290
SoftDDS.myDDS_X:
                        .LINE     290
                        .BRANCH   19
                        RET
                        .ENDFUNC  290

                        .FUNC     SendSR, 292, 00020h
SoftDDS.SendSR:
                        .BLOCK    294
                        .LINE     295
                        SBI       00035h, 002h
                        .LINE     296
                        CBI       00035h, 000h
                        .LINE     297
                        LDS       _ACCA, SoftDDS.MP3Port
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     298
                        LDI       _ACCCLO, SoftDDS.i AND 0FFh
                        LDI       _ACCCHI, SoftDDS.i SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        Z, _ACCA
                        LDI       _ACCA, 007h
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
SoftDDS.L0015:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0016
                        CLR       _ACCA
SoftDDS.L0016:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0017
                        BREQ      SoftDDS.L0017
                        .BRANCH   20,SoftDDS.L0014
                        RJMP      SoftDDS.L0014
SoftDDS.L0017:
                        .BLOCK    299
                        .LINE     299
                        LDI       _ACCBLO, SoftDDS.k AND 0FFh
                        LDI       _ACCBHI, SoftDDS.k SHRB 8
                        LDI       _ACCA, 007h
                        RCALL     SYSTEM.TestBit8
                        CLT
                        TST       _ACCA
                        BREQ      SoftDDS.L0018
                        SET
SoftDDS.L0018:
                        IN        _ACCA, 00035h
                        BLD       _ACCA, 001h
                        OUT       00035h, _ACCA
                        .LINE     300
                        SBI       00035h, 000h
                        .LINE     301
                        MOV       _ACCA, SoftDDS.k
                        LSL       _ACCA
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     302
                        CBI       00035h, 000h
                        .ENDBLOCK 303
SoftDDS.L0013:
                        .LINE     303
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0014
                        BREQ      SoftDDS.L0014
                        .BRANCH   20,SoftDDS.L0015
                        RJMP      SoftDDS.L0015
SoftDDS.L0014:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     304
                        CBI       00035h, 002h
                        .ENDBLOCK 306
SoftDDS.SendSR_X:
                        .LINE     306
                        .BRANCH   19
                        RET
                        .ENDFUNC  306

                        .FUNC     SetFrequ, 308, 00020h
SoftDDS.SetFrequ:
                        SBIW      _FRAMEPTR, 16
                        .BLOCK    312
                        .LINE     313
                        LDI       _ACCB, 000000000h AND 0FFh
                        LDI       _ACCA, 000000000h SHRB 8
                        LDI       _ACCALO, 000000000h SHRB 16
                        LDI       _ACCAHI, 000000000h SHRB 24
                        STD       Y+00Fh, _ACCAHI
                        STD       Y+00Eh, _ACCALO
                        STD       Y+00Dh, _ACCA
                        STD       Y+00Ch, _ACCB
                        .LINE     314
                        LDI       _ACCCLO, SoftDDS.i AND 0FFh
                        LDI       _ACCCHI, SoftDDS.i SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        Z, _ACCA
                        LDI       _ACCA, 006h
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
SoftDDS.L0021:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0022
                        CLR       _ACCA
SoftDDS.L0022:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0023
                        BREQ      SoftDDS.L0023
                        .BRANCH   20,SoftDDS.L0020
                        RJMP      SoftDDS.L0020
SoftDDS.L0023:
                        .BLOCK    315
                        .LINE     315
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.EditArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EditArray SHRB 8
                        ANDI      _ACCA, 15
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LD        _ACCA, Z
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        CLR       _ACCAHI
                        CLR       _ACCALO
                        STD       Y+00Eh, _ACCAHI
                        STD       Y+00Dh, _ACCALO
                        STD       Y+00Ch, _ACCA
                        STD       Y+00Bh, _ACCB
                        .LINE     316
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.fhz AND 0FFh
                        LDI       _ACCCHI, SoftDDS.fhz SHRB 8
                        ANDI      _ACCA, 7
                        CLR       _ACCB
                        LSL       _ACCA
                        ROL       _ACCB
                        LSL       _ACCA
                        ROL       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCB, Z+
                        LPM       _ACCA, Z+
                        LPM       _ACCALO, Z+
                        LPM       _ACCAHI, Z
                        STD       Y+00Ah, _ACCAHI
                        STD       Y+009h, _ACCALO
                        STD       Y+008h, _ACCA
                        STD       Y+007h, _ACCB
                        .LINE     317
                        LDD       _ACCAHI, Y+012h
                        LDD       _ACCALO, Y+011h
                        LDD       _ACCA, Y+010h
                        LDD       _ACCB, Y+00Fh
                        PUSH      _ACCB
                        PUSH      _ACCA
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
                        LDD       _ACCAHI, Y+00Ah
                        LDD       _ACCALO, Y+009h
                        LDD       _ACCA, Y+008h
                        LDD       _ACCB, Y+007h
                        PUSH      _ACCB
                        PUSH      _ACCA
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
                        LDD       _ACCAHI, Y+00Eh
                        LDD       _ACCALO, Y+00Dh
                        LDD       _ACCA, Y+00Ch
                        LDD       _ACCB, Y+00Bh
                        SET
                        BLD       Flags, _SIGN
                        RCALL     SYSTEM.MUL32
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCBHI
                        POP       _ACCBLO
                        ADD       _ACCB, _ACCBLO
                        ADC       _ACCA, _ACCBHI
                        ADC       _ACCALO, _ACCCLO
                        ADC       _ACCAHI, _ACCCHI
                        STD       Y+012h, _ACCAHI
                        STD       Y+011h, _ACCALO
                        STD       Y+010h, _ACCA
                        STD       Y+00Fh, _ACCB
                        .ENDBLOCK 318
SoftDDS.L0019:
                        .LINE     318
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0020
                        BREQ      SoftDDS.L0020
                        .BRANCH   20,SoftDDS.L0021
                        RJMP      SoftDDS.L0021
SoftDDS.L0020:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     319
                        LDS       _ACCA, SoftDDS.FrequDez
                        LDI       _ACCCLO, SoftDDS.fdhz AND 0FFh
                        LDI       _ACCCHI, SoftDDS.fdhz SHRB 8
                        ANDI      _ACCA, 15
                        CLR       _ACCB
                        LSL       _ACCA
                        ROL       _ACCB
                        LSL       _ACCA
                        ROL       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCB, Z+
                        LPM       _ACCA, Z+
                        LPM       _ACCALO, Z+
                        LPM       _ACCAHI, Z
                        STD       Y+007h, _ACCAHI
                        STD       Y+006h, _ACCALO
                        STD       Y+005h, _ACCA
                        STD       Y+004h, _ACCB
                        .LINE     320
                        LDD       _ACCAHI, Y+00Fh
                        LDD       _ACCALO, Y+00Eh
                        LDD       _ACCA, Y+00Dh
                        LDD       _ACCB, Y+00Ch
                        PUSH      _ACCB
                        PUSH      _ACCA
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
                        LDD       _ACCAHI, Y+007h
                        LDD       _ACCALO, Y+006h
                        LDD       _ACCA, Y+005h
                        LDD       _ACCB, Y+004h
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCBHI
                        POP       _ACCBLO
                        ADD       _ACCB, _ACCBLO
                        ADC       _ACCA, _ACCBHI
                        ADC       _ACCALO, _ACCCLO
                        ADC       _ACCAHI, _ACCCHI
                        STD       Y+00Fh, _ACCAHI
                        STD       Y+00Eh, _ACCALO
                        STD       Y+00Dh, _ACCA
                        STD       Y+00Ch, _ACCB
                        .LINE     321
                        LDD       _ACCAHI, Y+00Fh
                        LDD       _ACCALO, Y+00Eh
                        LDD       _ACCA, Y+00Dh
                        LDD       _ACCB, Y+00Ch
                        MOVW      _ACCB, _ACCALO
                        STD       Y+003h, _ACCA
                        STD       Y+002h, _ACCB
                        .LINE     322
                        LDD       _ACCAHI, Y+00Fh
                        LDD       _ACCALO, Y+00Eh
                        LDD       _ACCA, Y+00Dh
                        LDD       _ACCB, Y+00Ch
                        STD       Y+001h, _ACCA
                        STD       Y+000h, _ACCB
                        .LINE     323
                        LDD       _ACCB, Y+000h
                        LDD       _ACCA, Y+001h
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.DDSL, _ACCA
                        .LINE     324
                        LDD       _ACCB, Y+000h
                        LDD       _ACCA, Y+001h
                        MOV       SOFTDDS.DDSM, _ACCA
                        .LINE     325
                        LDD       _ACCB, Y+002h
                        LDD       _ACCA, Y+003h
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.DDSH, _ACCA
                        .ENDBLOCK 326
SoftDDS.SetFrequ_X:
                        .LINE     326
                        .BRANCH   19
                        RET
                        .ENDFUNC  326

                        .FUNC     SetLevel, 328, 00020h
SoftDDS.SetLevel:
                        SBIW      _FRAMEPTR, 1
                        .BLOCK    330
                        .LINE     331
                        LDS       _ACCA, SoftDDS.LeveldB
                        LDI       _ACCB, 007h AND 0FFh
                        SUB       _ACCB, _ACCA
                        MOV       _ACCA, _ACCB
                        STD       Y+000h, _ACCA
                        .LINE     332
                        LDD       _ACCA, Y+000h
                        ORI       _ACCA, 080h
                        STS       SOFTDDS.MP3PORT, _ACCA
                        .LINE     333
                        .BRANCH   17,SoftDDS.SENDSR
                        RCALL     SoftDDS.SENDSR
                        .ENDBLOCK 334
SoftDDS.SetLevel_X:
                        .LINE     334
                        .BRANCH   19
                        RET
                        .ENDFUNC  334

                        .FUNC     MP3remote, 340, 00020h
SoftDDS.MP3remote:
                        SBIW      _FRAMEPTR, 1
                        .BLOCK    342
                        .LINE     343
                        LDS       _ACCA, SoftDDS.LeveldB
                        LDI       _ACCB, 007h AND 0FFh
                        SUB       _ACCB, _ACCA
                        MOV       _ACCA, _ACCB
                        STD       Y+000h, _ACCA
                        .LINE     344
                        LDS       _ACCA, SoftDDS.MP3command
                        LDI       _ACCALO, 004h
                        RCALL     SYSTEM.SHL8_R
                        PUSH      _ACCA
                        LDD       _ACCA, Y+000h
                        POP       _ACCB
                        OR        _ACCA, _ACCB
                        STS       SOFTDDS.MP3PORT, _ACCA
                        .LINE     345
                        .BRANCH   17,SoftDDS.SENDSR
                        RCALL     SoftDDS.SENDSR
                        .LINE     346
                        LDI       _ACCA, 00064h SHRB 8
                        LDI       _ACCB, 00064h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .LINE     347
                        LDD       _ACCA, Y+000h
                        ORI       _ACCA, 080h
                        STS       SOFTDDS.MP3PORT, _ACCA
                        .LINE     348
                        .BRANCH   17,SoftDDS.SENDSR
                        RCALL     SoftDDS.SENDSR
                        .LINE     349
                        LDI       _ACCA, 0012Ch SHRB 8
                        LDI       _ACCB, 0012Ch AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .ENDBLOCK 350
SoftDDS.MP3remote_X:
                        .LINE     350
                        .BRANCH   19
                        RET
                        .ENDFUNC  350

                        .FUNC     PresetCopyFromROM, 354, 00020h
SoftDDS.PresetCopyFromROM:
                        .BLOCK    356
                        .LINE     357
                        LDI       _ACCCLO, SoftDDS.FreqStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.FreqStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        ADIW      _ACCCLO, 1
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        LDI       _ACCA, 008h
                        ST        -Y, _ACCA
                        LDI       _ACCA, 0FEH ROLB _DEVICE
                        AND       Flags, _ACCA
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        .FRAME  3
                        LDS       _ACCA, SoftDDS.PresetNum
                        LDI       _ACCCLO, SoftDDS.TerzArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.TerzArray SHRB 8
                        ANDI      _ACCA, 31
                        CLR       _ACCB
                        LSL       _ACCA
                        ROL       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCB, Z+
                        LPM       _ACCA, Z
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDI       _ACCA, 007h
                        PUSH      _ACCA
                        LDI       _ACCB, 000h
                        PUSH      _ACCB
                        LDI       _ACCA, 020h
                        PUSH      _ACCA
                        SET
                        BLD       Flags, _SIGN
                        RCALL     SYSTEM.Int2Str
                        LDI       _ACCA, 008h
                        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     358
                        LDI       _ACCCLO, SoftDDS.FreqStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.FreqStr SHRB 8
                        ADIW      _ACCCLO, 00008h
                        LDI       _ACCA, 030h
                        ST        Z+, _ACCA
                        .LINE     359
                        LDI       _ACCCLO, SoftDDS.i AND 0FFh
                        LDI       _ACCCHI, SoftDDS.i SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        Z, _ACCA
                        LDI       _ACCA, 007h
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
SoftDDS.L0026:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0027
                        CLR       _ACCA
SoftDDS.L0027:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0028
                        BREQ      SoftDDS.L0028
                        .BRANCH   20,SoftDDS.L0025
                        RJMP      SoftDDS.L0025
SoftDDS.L0028:
                        .BLOCK    360
                        .LINE     360
                        LDI       _ACCCLO, SoftDDS.FreqStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.FreqStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        MOV       _ACCA, SoftDDS.i
                        SUBI      _ACCA, -001h AND 0FFh
                        POP       _ACCCHI
                        POP       _ACCCLO
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LD        _ACCA, Z+
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     361
                        MOV       _ACCA, SoftDDS.k
                        CPI       _ACCA, 020h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0029
                        SER       _ACCA
SoftDDS.L0029:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0032
                        BRNE      SoftDDS.L0032
                        .BRANCH   20,SoftDDS.L0030
                        RJMP      SoftDDS.L0030
SoftDDS.L0032:
                        .BLOCK    362
                        .LINE     362
                        LDI       _ACCA, 030h
                        MOV       SOFTDDS.K, _ACCA
                        .ENDBLOCK 363
SoftDDS.L0030:
SoftDDS.L0031:
                        .LINE     364
                        MOV       _ACCA, SoftDDS.i
                        PUSH      _ACCA
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, 030h AND 0FFh
                        LDI       _ACCCLO, SoftDDS.EditArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EditArray SHRB 8
                        POP       _ACCBLO
                        ANDI      _ACCBLO, 15
                        CLR       _ACCBHI
                        ADD       _ACCCLO, _ACCBLO
                        ADC       _ACCCHI, _ACCBHI
                        ST        Z, _ACCA
                        .ENDBLOCK 365
SoftDDS.L0024:
                        .LINE     365
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0025
                        BREQ      SoftDDS.L0025
                        .BRANCH   20,SoftDDS.L0026
                        RJMP      SoftDDS.L0026
SoftDDS.L0025:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 366
SoftDDS.PresetCopyFromROM_X:
                        .LINE     366
                        .BRANCH   19
                        RET
                        .ENDFUNC  366

                        .FUNC     PatchCopyFromEE, 368, 00020h
SoftDDS.PatchCopyFromEE:
                        SBIW      _FRAMEPTR, 2
                        .BLOCK    371
                        .LINE     372
                        LDI       _ACCCLO, SoftDDS.i AND 0FFh
                        LDI       _ACCCHI, SoftDDS.i SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        Z, _ACCA
                        LDI       _ACCA, 00Ch
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
SoftDDS.L0035:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0036
                        CLR       _ACCA
SoftDDS.L0036:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0037
                        BREQ      SoftDDS.L0037
                        .BRANCH   20,SoftDDS.L0034
                        RJMP      SoftDDS.L0034
SoftDDS.L0037:
                        .BLOCK    373
                        .LINE     373
                        MOV       _ACCA, SoftDDS.i
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.PatchNum
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        LDI       _ACCALO, 004h
                        RCALL     SYSTEM.SHL16_R
                        POP       _ACCAHI
                        POP       _ACCALO
                        ADD       _ACCB, _ACCALO
                        ADC       _ACCA, _ACCAHI
                        STD       Y+004h, _ACCA
                        STD       Y+003h, _ACCB
                        .LINE     374
                        MOV       _ACCA, SoftDDS.i
                        PUSH      _ACCA
                        LDI       _ACCCLO, SoftDDS.EEPatchArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EEPatchArray SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDD       _ACCB, Y+003h
                        LDD       _ACCA, Y+004h
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        RCALL     SYSTEM.ReadEEp8
                        LDI       _ACCCLO, SoftDDS.EditArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EditArray SHRB 8
                        POP       _ACCBLO
                        ANDI      _ACCBLO, 15
                        CLR       _ACCBHI
                        ADD       _ACCCLO, _ACCBLO
                        ADC       _ACCCHI, _ACCBHI
                        ST        Z, _ACCA
                        .ENDBLOCK 375
SoftDDS.L0033:
                        .LINE     375
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0034
                        BREQ      SoftDDS.L0034
                        .BRANCH   20,SoftDDS.L0035
                        RJMP      SoftDDS.L0035
SoftDDS.L0034:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 376
SoftDDS.PatchCopyFromEE_X:
                        .LINE     376
                        .BRANCH   19
                        RET
                        .ENDFUNC  376

                        .FUNC     PatchCopyToEE, 378, 00020h
SoftDDS.PatchCopyToEE:
                        SBIW      _FRAMEPTR, 2
                        .BLOCK    381
                        .LINE     382
                        LDI       _ACCCLO, SoftDDS.i AND 0FFh
                        LDI       _ACCCHI, SoftDDS.i SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        Z, _ACCA
                        LDI       _ACCA, 00Ch
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
SoftDDS.L0040:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0041
                        CLR       _ACCA
SoftDDS.L0041:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0042
                        BREQ      SoftDDS.L0042
                        .BRANCH   20,SoftDDS.L0039
                        RJMP      SoftDDS.L0039
SoftDDS.L0042:
                        .BLOCK    383
                        .LINE     383
                        MOV       _ACCA, SoftDDS.i
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.PatchNum
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        LDI       _ACCALO, 004h
                        RCALL     SYSTEM.SHL16_R
                        POP       _ACCAHI
                        POP       _ACCALO
                        ADD       _ACCB, _ACCALO
                        ADC       _ACCA, _ACCAHI
                        STD       Y+004h, _ACCA
                        STD       Y+003h, _ACCB
                        .LINE     384
                        LDI       _ACCCLO, SoftDDS.EEPatchArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EEPatchArray SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDD       _ACCB, Y+003h
                        LDD       _ACCA, Y+004h
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.EditArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EditArray SHRB 8
                        ANDI      _ACCA, 15
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LD        _ACCA, Z
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RCALL     SYSTEM.WriteEEp8
                        .ENDBLOCK 385
SoftDDS.L0038:
                        .LINE     385
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0039
                        BREQ      SoftDDS.L0039
                        .BRANCH   20,SoftDDS.L0040
                        RJMP      SoftDDS.L0040
SoftDDS.L0039:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 386
SoftDDS.PatchCopyToEE_X:
                        .LINE     386
                        .BRANCH   19
                        RET
                        .ENDFUNC  386

                        .FUNC     LCD1xy, 391, 00020h
SoftDDS.LCD1xy:
                        .BLOCK    392
                        .LINE     393
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDS       _ACCA, SoftDDS.x
                        ST        -Y, _ACCA
                        .FRAME  2
                        LDS       _ACCA, SoftDDS.y
                        ST        -Y, _ACCA
                        .FRAME  3
                        .FRAME  0
                        RCALL     SYSTEM.LCDXY_M
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 394
SoftDDS.LCD1xy_X:
                        .LINE     394
                        .BRANCH   19
                        RET
                        .ENDFUNC  394

                        .FUNC     LCD1x0y0, 396, 00020h
SoftDDS.LCD1x0y0:
                        .BLOCK    397
                        .LINE     398
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     399
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     400
                        .BRANCH   17,SoftDDS.LCD1XY
                        RCALL     SoftDDS.LCD1XY
                        .ENDBLOCK 401
SoftDDS.LCD1x0y0_X:
                        .LINE     401
                        .BRANCH   19
                        RET
                        .ENDFUNC  401

                        .FUNC     LCD1x0y1, 403, 00020h
SoftDDS.LCD1x0y1:
                        .BLOCK    404
                        .LINE     405
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     406
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     407
                        .BRANCH   17,SoftDDS.LCD1XY
                        RCALL     SoftDDS.LCD1XY
                        .ENDBLOCK 408
SoftDDS.LCD1x0y1_X:
                        .LINE     408
                        .BRANCH   19
                        RET
                        .ENDFUNC  408


                        .FILE     buttons.pas
                        .FUNC     FastRepeatRelease, 1, 00020h
SoftDDS.FastRepeatRelease:
                        .BLOCK    3
                        .LINE     12
                        CLR       _ACCA
                        LDS       _ACCB, SoftDDS.BtnTime2
                        LDI       _ACCEHI, 000h
                        CP        _ACCEHI, _ACCB
                        BRCC      SoftDDS.L0043
                        DEC       _ACCB
                        STS       SoftDDS.BtnTime2, _ACCB
                        SER       _ACCA
SoftDDS.L0043:
SoftDDS.L0044:
                        .BLOCK    13
                        .LINE     14
                        LDS       _ACCA, SoftDDS.BtnTime
                        DEC       _ACCA
                        STS       SoftDDS.BtnTime, _ACCA
                        .LINE     15
                        LDS       _ACCA, SoftDDS.BtnTime2
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0047
                        SER       _ACCA
SoftDDS.L0047:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0050
                        BRNE      SoftDDS.L0050
                        .BRANCH   20,SoftDDS.L0048
                        RJMP      SoftDDS.L0048
SoftDDS.L0050:
                        .BLOCK    15
                        .LINE     16
                        LDI       _ACCA, 00004h SHRB 8
                        LDI       _ACCB, 00004h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .ENDBLOCK 17
                        .BRANCH   20,SoftDDS.L0049
                        RJMP      SoftDDS.L0049
SoftDDS.L0048:
                        .BLOCK    17
                        .LINE     18
                        LDI       _ACCA, 0000Dh SHRB 8
                        LDI       _ACCB, 0000Dh AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .ENDBLOCK 19
SoftDDS.L0049:
                        .LINE     20
                        IN        _ACCA, PinD
                        STS       SOFTDDS.BTNINPORT, _ACCA
                        .LINE     21
                        LDS       _ACCA, SoftDDS.BtnInPort
                        ORI       _ACCA, 007h
                        MOV       SOFTDDS.I, _ACCA
                        .ENDBLOCK 22
                        .LINE     22
SoftDDS.L0045:
                        MOV       _ACCA, SoftDDS.i
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0051
                        SER       _ACCA
SoftDDS.L0051:
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.BtnTime
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0052
                        SER       _ACCA
SoftDDS.L0052:
                        POP       _ACCB
                        OR        _ACCA, _ACCB
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0053
                        BRNE      SoftDDS.L0053
                        .BRANCH   20,SoftDDS.L0044
                        RJMP      SoftDDS.L0044
SoftDDS.L0053:
SoftDDS.L0046:
                        .LINE     23
                        MOV       _ACCA, SoftDDS.i
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0054
                        SER       _ACCA
SoftDDS.L0054:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0057
                        BRNE      SoftDDS.L0057
                        .BRANCH   20,SoftDDS.L0055
                        RJMP      SoftDDS.L0055
SoftDDS.L0057:
                        .BLOCK    24
                        .LINE     24
                        LDI       _ACCA, 028h
                        STS       SOFTDDS.BTNTIME, _ACCA
                        .LINE     25
                        LDI       _ACCA, 00Ah
                        STS       SOFTDDS.BTNTIME2, _ACCA
                        .ENDBLOCK 26
                        .BRANCH   20,SoftDDS.L0056
                        RJMP      SoftDDS.L0056
SoftDDS.L0055:
                        .BLOCK    26
                        .LINE     27
                        LDI       _ACCA, 00Ah
                        STS       SOFTDDS.BTNTIME, _ACCA
                        .ENDBLOCK 28
SoftDDS.L0056:
                        .ENDBLOCK 30
SoftDDS.FastRepeatRelease_X:
                        .LINE     30
                        .BRANCH   19
                        RET
                        .ENDFUNC  30

                        .FUNC     SlowRepeatRelease, 32, 00020h
SoftDDS.SlowRepeatRelease:
                        .BLOCK    33
                        .LINE     34
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.BTNTIME2, _ACCA
                        .LINE     35
                        .BRANCH   17,SoftDDS.FASTREPEATRELEASE
                        RCALL     SoftDDS.FASTREPEATRELEASE
                        .ENDBLOCK 36
SoftDDS.SlowRepeatRelease_X:
                        .LINE     36
                        .BRANCH   19
                        RET
                        .ENDFUNC  36

                        .FUNC     NaviButton, 38, 00020h
SoftDDS.NaviButton:
                        .BLOCK    40
                        .LINE     41
                        IN        _ACCA, PinD
                        STS       SOFTDDS.BTNINPORT, _ACCA
                        .LINE     42
                        LDS       _ACCA, SoftDDS.BtnInPort
                        ORI       _ACCA, 067h
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0058
                        SER       _ACCA
SoftDDS.L0058:
                        STS       SOFTDDS.ABOOL, _ACCA
                        .LINE     43
                        LDS       _ACCA, SoftDDS.aBool
                        .ENDBLOCK 44
SoftDDS.NaviButton_X:
                        .LINE     44
                        .BRANCH   19
                        RET
                        .ENDFUNC  44

                        .FUNC     UpDownButton, 46, 00020h
SoftDDS.UpDownButton:
                        .BLOCK    48
                        .LINE     49
                        IN        _ACCA, PinD
                        STS       SOFTDDS.BTNINPORT, _ACCA
                        .LINE     50
                        LDS       _ACCA, SoftDDS.BtnInPort
                        ORI       _ACCA, 09Fh
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0059
                        SER       _ACCA
SoftDDS.L0059:
                        STS       SOFTDDS.ABOOL, _ACCA
                        .LINE     51
                        LDS       _ACCA, SoftDDS.aBool
                        .ENDBLOCK 52
SoftDDS.UpDownButton_X:
                        .LINE     52
                        .BRANCH   19
                        RET
                        .ENDFUNC  52

                        .FUNC     ROMStr16Out, 54, 00020h
SoftDDS.ROMStr16Out:
                        .BLOCK    58
                        .ASM
                        .LINE     60
                        LDD       _ACCCLO, Y+000h
                        .LINE     61
                        LDI       _ACCA,1
                        .LINE     62
                        ADD       _ACCCLO,_ACCA     ;Pascal-Längenbyte übergehen (+1)
                        .LINE     63
                        CLR       _ACCA
                        .LINE     64
                        LDD       _ACCCHI, Y+001h
                        .LINE     65
                        ADC       _ACCCHI,_ACCA
                        .LINE     67
                        PUSH      _FRAMEPTR
                        .LINE     68
                        PUSH      _FPTRHI
                        .LINE     69
                        LDI       _ACCA, 1 SHLB _DEVICE
                        .LINE     70
                        OR        Flags, _ACCA
                        .LINE     71
                        LDI       _ACCB, SYSTEM.LCDOut_M SHRB 1
                        .LINE     72
                        LDI       _ACCA, SYSTEM.LCDOut_M SHRB 9
                        .LINE     73
                        ST        -Y, _ACCA
                        .LINE     74
                        ST        -Y, _ACCB
                        .LINE     75
                        LDI       _ACCBHI, 16
                        StrConst2Str:
                        .LINE     77
                        LPM       _ACCA, Z+
                        .LINE     78
                        TST       _ACCA
                        .LINE     79
                        BREQ      ROMStr16OutEnd    ;wenn 0-Byte, abbrechen
                        .LINE     80
                        RCALL     SYSTEM.Char2Str
                        .LINE     81
                        DEC       _ACCBHI
                        .LINE     82
                        BRNE      StrConst2Str
                        ROMStr16OutEnd:
                        .LINE     84
                        POP       _FPTRHI
                        .LINE     85
                        POP       _FRAMEPTR
                        .endasm
                        .ENDBLOCK 87
SoftDDS.ROMStr16Out_X:
                        .LINE     87
                        .BRANCH   19
                        RET
                        .ENDFUNC  87


                        .FILE     H:\PROJAVR\MP3SOURCE\MP3source.pas
                        .FUNC     CheckItemLimits, 412, 00020h
SoftDDS.CheckItemLimits:
                        .BLOCK    414
                        .LINE     415
                        LDS       _ACCA, SoftDDS.EditValue
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0060
                        SER       _ACCA
SoftDDS.L0060:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0063
                        BRNE      SoftDDS.L0063
                        .BRANCH   20,SoftDDS.L0061
                        RJMP      SoftDDS.L0061
SoftDDS.L0063:
                        .BLOCK    415
                        .LINE     416
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 417
SoftDDS.L0061:
SoftDDS.L0062:
                        .LINE     418
                        LDS       _ACCA, SoftDDS.EditValue
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.ItemUpperLimit
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0064
                        BRLO      SoftDDS.L0064
                        SER       _ACCA
SoftDDS.L0064:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0067
                        BRNE      SoftDDS.L0067
                        .BRANCH   20,SoftDDS.L0065
                        RJMP      SoftDDS.L0065
SoftDDS.L0067:
                        .BLOCK    418
                        .LINE     419
                        LDS       _ACCA, SoftDDS.ItemUpperLimit
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 420
SoftDDS.L0065:
SoftDDS.L0066:
                        .LINE     421
                        LDS       _ACCA, SoftDDS.EditValue
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.ItemlowerLimit
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0068
                        CLR       _ACCA
SoftDDS.L0068:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0071
                        BRNE      SoftDDS.L0071
                        .BRANCH   20,SoftDDS.L0069
                        RJMP      SoftDDS.L0069
SoftDDS.L0071:
                        .BLOCK    421
                        .LINE     422
                        LDS       _ACCA, SoftDDS.ItemlowerLimit
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 423
SoftDDS.L0069:
SoftDDS.L0070:
                        .ENDBLOCK 424
SoftDDS.CheckItemLimits_X:
                        .LINE     424
                        .BRANCH   19
                        RET
                        .ENDFUNC  424

                        .FUNC     SetItemLimPos, 426, 00020h
SoftDDS.SetItemLimPos:
                        .BLOCK    428
                        .LINE     429
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.ITEMLOWERLIMIT, _ACCA
                        .LINE     430
                        LDI       _ACCA, 009h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .LINE     431
                        LDI       _ACCA, 003h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     432
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     433
                        LDS       _ACCA, SoftDDS.EditWhich
                        .LINE     434
                        CPI       _ACCA, 0
                        .BRANCH   3,SoftDDS.L0075
                        BREQ      SoftDDS.L0075
                        .BRANCH   20,SoftDDS.L0074
                        RJMP      SoftDDS.L0074
SoftDDS.L0075:
SoftDDS.L0073:
                        .BLOCK    435
                        .LINE     435
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     436
                        LDI       _ACCA, 01Fh
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .LINE     437
                        LDS       _ACCA, SoftDDS.PresetOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0078
                        BRNE      SoftDDS.L0078
                        .BRANCH   20,SoftDDS.L0076
                        RJMP      SoftDDS.L0076
SoftDDS.L0078:
                        .BLOCK    437
                        .LINE     438
                        LDS       _ACCA, SoftDDS.ItemUpperLimit
                        DEC       _ACCA
                        STS       SoftDDS.ItemUpperLimit, _ACCA
                        .ENDBLOCK 439
SoftDDS.L0076:
SoftDDS.L0077:
                        .LINE     440
                        LDI       _ACCA, 007h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     441
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.Y, _ACCA
                        .ENDBLOCK 442
                        .BRANCH   20,SoftDDS.L0072
                        RJMP      SoftDDS.L0072
SoftDDS.L0074:
                        .LINE     443
                        CPI       _ACCA, 1
                        .BRANCH   3,SoftDDS.L0081
                        BREQ      SoftDDS.L0081
                        .BRANCH   20,SoftDDS.L0080
                        RJMP      SoftDDS.L0080
SoftDDS.L0081:
SoftDDS.L0079:
                        .BLOCK    444
                        .LINE     444
                        LDI       _ACCA, 004h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     445
                        LDI       _ACCA, 007h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .LINE     446
                        LDI       _ACCA, 009h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     447
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.Y, _ACCA
                        .ENDBLOCK 448
                        .BRANCH   20,SoftDDS.L0072
                        RJMP      SoftDDS.L0072
SoftDDS.L0080:
                        .LINE     449
                        CPI       _ACCA, 2
                        .BRANCH   2,SoftDDS.L0084
                        BRCC      SoftDDS.L0084
                        .BRANCH   20,SoftDDS.L0083
                        RJMP      SoftDDS.L0083
SoftDDS.L0084:
                        CPI       _ACCA, 9
                        .BRANCH   3,SoftDDS.L0085
                        BREQ      SoftDDS.L0085
                        .BRANCH   1,SoftDDS.L0083
                        BRCS      SoftDDS.L0085
                        .BRANCH   20,SoftDDS.L0083
                        RJMP      SoftDDS.L0083
SoftDDS.L0085:
SoftDDS.L0082:
                        .BLOCK    450
                        .LINE     450
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     451
                        LDS       _ACCA, SoftDDS.EditWhich
                        SUBI      _ACCA, 002h AND 0FFh
                        ANDI      _ACCA, 007h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     452
                        LDS       _ACCA, SoftDDS.x
                        LSL       _ACCA
                        STS       SOFTDDS.X, _ACCA
                        .LINE     453
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     454
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 002h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0086
                        SER       _ACCA
SoftDDS.L0086:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0089
                        BRNE      SoftDDS.L0089
                        .BRANCH   20,SoftDDS.L0087
                        RJMP      SoftDDS.L0087
SoftDDS.L0089:
                        .BLOCK    454
                        .LINE     455
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .ENDBLOCK 456
SoftDDS.L0087:
SoftDDS.L0088:
                        .ENDBLOCK 457
                        .BRANCH   20,SoftDDS.L0072
                        RJMP      SoftDDS.L0072
SoftDDS.L0083:
                        .LINE     458
                        CPI       _ACCA, 10
                        .BRANCH   3,SoftDDS.L0092
                        BREQ      SoftDDS.L0092
                        .BRANCH   20,SoftDDS.L0091
                        RJMP      SoftDDS.L0091
SoftDDS.L0092:
SoftDDS.L0090:
                        .BLOCK    459
                        .LINE     459
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     460
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .ENDBLOCK 461
                        .BRANCH   20,SoftDDS.L0072
                        RJMP      SoftDDS.L0072
SoftDDS.L0091:
                        .LINE     462
                        CPI       _ACCA, 11
                        .BRANCH   3,SoftDDS.L0095
                        BREQ      SoftDDS.L0095
                        .BRANCH   20,SoftDDS.L0094
                        RJMP      SoftDDS.L0094
SoftDDS.L0095:
SoftDDS.L0093:
                        .BLOCK    463
                        .LINE     463
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     464
                        LDI       _ACCA, 004h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     465
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .ENDBLOCK 466
                        .BRANCH   20,SoftDDS.L0072
                        RJMP      SoftDDS.L0072
SoftDDS.L0094:
                        .LINE     467
                        CPI       _ACCA, 12
                        .BRANCH   3,SoftDDS.L0098
                        BREQ      SoftDDS.L0098
                        .BRANCH   20,SoftDDS.L0097
                        RJMP      SoftDDS.L0097
SoftDDS.L0098:
SoftDDS.L0096:
                        .BLOCK    468
                        .LINE     468
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     469
                        LDI       _ACCA, 008h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     470
                        LDI       _ACCA, 063h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .ENDBLOCK 471
                        .BRANCH   20,SoftDDS.L0072
                        RJMP      SoftDDS.L0072
SoftDDS.L0097:
                        .LINE     472
                        CPI       _ACCA, 13
                        .BRANCH   3,SoftDDS.L0101
                        BREQ      SoftDDS.L0101
                        .BRANCH   20,SoftDDS.L0100
                        RJMP      SoftDDS.L0100
SoftDDS.L0101:
SoftDDS.L0099:
                        .BLOCK    473
                        .LINE     473
                        LDI       _ACCA, 00Ch
                        STS       SOFTDDS.X, _ACCA
                        .LINE     474
                        LDI       _ACCA, 003h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .ENDBLOCK 475
                        .BRANCH   20,SoftDDS.L0072
                        RJMP      SoftDDS.L0072
SoftDDS.L0100:
SoftDDS.L0072:
                        .ENDBLOCK 477
SoftDDS.SetItemLimPos_X:
                        .LINE     477
                        .BRANCH   19
                        RET
                        .ENDFUNC  477

                        .FUNC     SetCursor, 479, 00020h
SoftDDS.SetCursor:
                        .BLOCK    480
                        .LINE     481
                        .BRANCH   17,SoftDDS.SETITEMLIMPOS
                        RCALL     SoftDDS.SETITEMLIMPOS
                        .LINE     482
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDS       _ACCA, SoftDDS.x
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.digits
                        POP       _ACCB
                        ADD       _ACCA, _ACCB
                        ST        -Y, _ACCA
                        .FRAME  2
                        LDS       _ACCA, SoftDDS.y
                        ST        -Y, _ACCA
                        .FRAME  3
                        .FRAME  0
                        RCALL     SYSTEM.LCDXY_M
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     483
                        LDI       _ACCA, 000h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT_M
                        .ENDBLOCK 484
SoftDDS.SetCursor_X:
                        .LINE     484
                        .BRANCH   19
                        RET
                        .ENDFUNC  484

                        .FUNC     WriteWave, 486, 00020h
SoftDDS.WriteWave:
                        .BLOCK    487
                        .LINE     488
                        LDS       _ACCA, SoftDDS.DisplayValue
                        .LINE     489
                        CPI       _ACCA, 0
                        .BRANCH   3,SoftDDS.L0105
                        BREQ      SoftDDS.L0105
                        .BRANCH   20,SoftDDS.L0104
                        RJMP      SoftDDS.L0104
SoftDDS.L0105:
SoftDDS.L0103:
                        .BLOCK    490
                        .LINE     490
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.SinStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.SinStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 491
                        .BRANCH   20,SoftDDS.L0102
                        RJMP      SoftDDS.L0102
SoftDDS.L0104:
                        .LINE     492
                        CPI       _ACCA, 1
                        .BRANCH   3,SoftDDS.L0108
                        BREQ      SoftDDS.L0108
                        .BRANCH   20,SoftDDS.L0107
                        RJMP      SoftDDS.L0107
SoftDDS.L0108:
SoftDDS.L0106:
                        .BLOCK    493
                        .LINE     493
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.TriStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.TriStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 494
                        .BRANCH   20,SoftDDS.L0102
                        RJMP      SoftDDS.L0102
SoftDDS.L0107:
                        .LINE     495
                        CPI       _ACCA, 2
                        .BRANCH   3,SoftDDS.L0111
                        BREQ      SoftDDS.L0111
                        .BRANCH   20,SoftDDS.L0110
                        RJMP      SoftDDS.L0110
SoftDDS.L0111:
SoftDDS.L0109:
                        .BLOCK    496
                        .LINE     496
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.SquStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.SquStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 497
                        .BRANCH   20,SoftDDS.L0102
                        RJMP      SoftDDS.L0102
SoftDDS.L0110:
                        .LINE     498
                        CPI       _ACCA, 3
                        .BRANCH   3,SoftDDS.L0114
                        BREQ      SoftDDS.L0114
                        .BRANCH   20,SoftDDS.L0113
                        RJMP      SoftDDS.L0113
SoftDDS.L0114:
SoftDDS.L0112:
                        .BLOCK    499
                        .LINE     499
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.ExtStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.ExtStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 500
                        .BRANCH   20,SoftDDS.L0102
                        RJMP      SoftDDS.L0102
SoftDDS.L0113:
SoftDDS.L0102:
                        .ENDBLOCK 504
SoftDDS.WriteWave_X:
                        .LINE     504
                        .BRANCH   19
                        RET
                        .ENDFUNC  504

                        .FUNC     WriteOutput, 506, 00020h
SoftDDS.WriteOutput:
                        .BLOCK    507
                        .LINE     508
                        LDS       _ACCA, SoftDDS.DisplayValue
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0115
                        SER       _ACCA
SoftDDS.L0115:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0118
                        BRNE      SoftDDS.L0118
                        .BRANCH   20,SoftDDS.L0116
                        RJMP      SoftDDS.L0116
SoftDDS.L0118:
                        .BLOCK    508
                        .LINE     509
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.NrmStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.NrmStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 510
                        .BRANCH   20,SoftDDS.L0117
                        RJMP      SoftDDS.L0117
SoftDDS.L0116:
                        .BLOCK    510
                        .LINE     511
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.PwrStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.PwrStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 512
SoftDDS.L0117:
                        .ENDBLOCK 513
SoftDDS.WriteOutput_X:
                        .LINE     513
                        .BRANCH   19
                        RET
                        .ENDFUNC  513

                        .FUNC     WriteItem, 515, 00020h
SoftDDS.WriteItem:
                        .BLOCK    517
                        .LINE     521
                        LDS       _ACCA, SoftDDS.digits
                        CPI       _ACCA, 001h
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0119
                        BRLO      SoftDDS.L0119
                        SER       _ACCA
SoftDDS.L0119:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0122
                        BRNE      SoftDDS.L0122
                        .BRANCH   20,SoftDDS.L0120
                        RJMP      SoftDDS.L0120
SoftDDS.L0122:
                        .BLOCK    521
                        .LINE     522
                        LDS       _ACCA, SoftDDS.DisplayValue
                        LDI       _ACCB, 064h
                        RCALL     SYSTEM.DIV8_R
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     523
                        MOV       _ACCA, SoftDDS.k
                        LDI       _ACCB, 00Ah
                        RCALL     SYSTEM.DIV8_R
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     524
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT_M
                        .ENDBLOCK 525
SoftDDS.L0120:
SoftDDS.L0121:
                        .LINE     526
                        LDS       _ACCA, SoftDDS.DisplayValue
                        LDI       _ACCB, 00Ah
                        RCALL     SYSTEM.DIV8_R
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     527
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT_M
                        .ENDBLOCK 529
SoftDDS.WriteItem_X:
                        .LINE     529
                        .BRANCH   19
                        RET
                        .ENDFUNC  529

                        .FUNC     WriteFrequArrayData, 531, 00020h
SoftDDS.WriteFrequArrayData:
                        .BLOCK    533
                        .LINE     534
                        .BRANCH   17,SoftDDS.LCD1X0Y1
                        RCALL     SoftDDS.LCD1X0Y1
                        .LINE     535
                        LDI       _ACCCLO, SoftDDS.i AND 0FFh
                        LDI       _ACCCHI, SoftDDS.i SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        Z, _ACCA
                        LDI       _ACCA, 007h
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
SoftDDS.L0125:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0126
                        CLR       _ACCA
SoftDDS.L0126:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0127
                        BREQ      SoftDDS.L0127
                        .BRANCH   20,SoftDDS.L0124
                        RJMP      SoftDDS.L0124
SoftDDS.L0127:
                        .BLOCK    536
                        .LINE     536
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.EditArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EditArray SHRB 8
                        ANDI      _ACCA, 15
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LD        _ACCA, Z
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     537
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  3
                        RCALL     SYSTEM.LCDOUT_M
                        .LINE     538
                        MOV       _ACCA, SoftDDS.i
                        CPI       _ACCA, 006h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0128
                        SER       _ACCA
SoftDDS.L0128:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0131
                        BRNE      SoftDDS.L0131
                        .BRANCH   20,SoftDDS.L0129
                        RJMP      SoftDDS.L0129
SoftDDS.L0131:
                        .BLOCK    538
                        .LINE     539
                        LDI       _ACCA, 02Eh
                        .FRAME  3
                        RCALL     SYSTEM.LCDOUT_M
                        .ENDBLOCK 540
                        .BRANCH   20,SoftDDS.L0130
                        RJMP      SoftDDS.L0130
SoftDDS.L0129:
                        .BLOCK    540
                        .LINE     541
                        LDI       _ACCA, 020h
                        .FRAME  3
                        RCALL     SYSTEM.LCDOUT_M
                        .ENDBLOCK 542
SoftDDS.L0130:
                        .ENDBLOCK 543
SoftDDS.L0123:
                        .LINE     543
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0124
                        BREQ      SoftDDS.L0124
                        .BRANCH   20,SoftDDS.L0125
                        RJMP      SoftDDS.L0125
SoftDDS.L0124:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 544
SoftDDS.WriteFrequArrayData_X:
                        .LINE     544
                        .BRANCH   19
                        RET
                        .ENDFUNC  544

                        .FUNC     WriteOptionsArrayData, 546, 00020h
SoftDDS.WriteOptionsArrayData:
                        .BLOCK    548
                        .LINE     549
                        .BRANCH   17,SoftDDS.LCD1X0Y1
                        RCALL     SoftDDS.LCD1X0Y1
                        .LINE     550
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     551
                        LDS       _ACCA, SoftDDS.OutputMode
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     552
                        .BRANCH   17,SoftDDS.WRITEOUTPUT
                        RCALL     SoftDDS.WRITEOUTPUT
                        .LINE     553
                        LDI       _ACCA, 020h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT_M
                        .LINE     554
                        LDS       _ACCA, SoftDDS.GainOffset
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     555
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     556
                        .BRANCH   17,SoftDDS.WRITEITEM
                        RCALL     SoftDDS.WRITEITEM
                        .LINE     557
                        LDI       _ACCA, 030h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT_M
                        .LINE     558
                        LDI       _ACCA, 020h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT_M
                        .LINE     559
                        LDI       _ACCA, 020h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT_M
                        .LINE     560
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     561
                        LDS       _ACCA, SoftDDS.Burstmode
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     562
                        .BRANCH   17,SoftDDS.WRITEITEM
                        RCALL     SoftDDS.WRITEITEM
                        .LINE     563
                        LDI       _ACCA, 020h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT_M
                        .LINE     564
                        LDI       _ACCA, 020h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT_M
                        .LINE     565
                        LDS       _ACCA, SoftDDS.Wave
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     566
                        .BRANCH   17,SoftDDS.WRITEWAVE
                        RCALL     SoftDDS.WRITEWAVE
                        .LINE     567
                        LDI       _ACCA, 020h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT_M
                        .ENDBLOCK 568
SoftDDS.WriteOptionsArrayData_X:
                        .LINE     568
                        .BRANCH   19
                        RET
                        .ENDFUNC  568

                        .FUNC     WriteFrequency, 570, 00020h
SoftDDS.WriteFrequency:
                        SBIW      _FRAMEPTR, 1
                        .BLOCK    573
                        .LINE     574
                        LDI       _ACCA, 0FFh
                        STD       Y+000h, _ACCA
                        .LINE     575
                        LDI       _ACCCLO, SoftDDS.i AND 0FFh
                        LDI       _ACCCHI, SoftDDS.i SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        Z, _ACCA
                        LDI       _ACCA, 006h
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
SoftDDS.L0134:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0135
                        CLR       _ACCA
SoftDDS.L0135:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0136
                        BREQ      SoftDDS.L0136
                        .BRANCH   20,SoftDDS.L0133
                        RJMP      SoftDDS.L0133
SoftDDS.L0136:
                        .BLOCK    576
                        .LINE     576
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.EditArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EditArray SHRB 8
                        ANDI      _ACCA, 15
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LD        _ACCA, Z
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     577
                        LDS       _ACCA, SoftDDS.DisplayValue
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0137
                        SER       _ACCA
SoftDDS.L0137:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0140
                        BRNE      SoftDDS.L0140
                        .BRANCH   20,SoftDDS.L0138
                        RJMP      SoftDDS.L0138
SoftDDS.L0140:
                        .BLOCK    577
                        .LINE     578
                        LDI       _ACCA, 000h
                        STD       Y+003h, _ACCA
                        .ENDBLOCK 579
SoftDDS.L0138:
SoftDDS.L0139:
                        .LINE     580
                        LDS       _ACCA, SoftDDS.DisplayValue
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0141
                        SER       _ACCA
SoftDDS.L0141:
                        PUSH      _ACCA
                        LDD       _ACCA, Y+003h
                        POP       _ACCB
                        AND       _ACCA, _ACCB
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0144
                        BRNE      SoftDDS.L0144
                        .BRANCH   20,SoftDDS.L0142
                        RJMP      SoftDDS.L0142
SoftDDS.L0144:
                        .BLOCK    580
                        .LINE     581
                        LDI       _ACCA, 020h
                        .FRAME  3
                        RCALL     SYSTEM.LCDOUT_M
                        .ENDBLOCK 582
                        .BRANCH   20,SoftDDS.L0143
                        RJMP      SoftDDS.L0143
SoftDDS.L0142:
                        .BLOCK    582
                        .LINE     583
                        LDS       _ACCA, SoftDDS.DisplayValue
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  3
                        RCALL     SYSTEM.LCDOUT_M
                        .ENDBLOCK 584
SoftDDS.L0143:
                        .ENDBLOCK 585
SoftDDS.L0132:
                        .LINE     585
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0133
                        BREQ      SoftDDS.L0133
                        .BRANCH   20,SoftDDS.L0134
                        RJMP      SoftDDS.L0134
SoftDDS.L0133:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     586
                        LDI       _ACCA, 02Eh
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT_M
                        .LINE     587
                        LDS       _ACCA, SoftDDS.FrequDez
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     588
                        LDS       _ACCA, SoftDDS.DisplayValue
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT_M
                        .LINE     589
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.HzStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.HzStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 590
SoftDDS.WriteFrequency_X:
                        .LINE     590
                        .BRANCH   19
                        RET
                        .ENDFUNC  590

                        .FUNC     WriteLeveldB, 593, 00020h
SoftDDS.WriteLeveldB:
                        SBIW      _FRAMEPTR, 2
                        .BLOCK    595
                        .LINE     597
                        LDS       _ACCA, SoftDDS.LeveldB
                        LDI       _ACCB, 00Ah
                        RCALL     SYSTEM.MUL8
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        SUBI      _ACCB, 0003Ch AND 0FFh
                        SBCI      _ACCA, 0003Ch SHRB 8
                        STD       Y+001h, _ACCA
                        STD       Y+000h, _ACCB
                        .LINE     598
                        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
                        LDD       _ACCB, Y+002h
                        LDD       _ACCA, Y+003h
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDI       _ACCA, 004h
                        PUSH      _ACCA
                        LDI       _ACCB, 000h
                        PUSH      _ACCB
                        LDI       _ACCA, 020h
                        PUSH      _ACCA
                        SET
                        BLD       Flags, _SIGN
                        RCALL     SYSTEM.Int2Str
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .LINE     599
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.dBStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.dBStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 600
SoftDDS.WriteLeveldB_X:
                        .LINE     600
                        .BRANCH   19
                        RET
                        .ENDFUNC  600

                        .FUNC     EditItem, 602, 00020h
SoftDDS.EditItem:
                        SBIW      _FRAMEPTR, 1
                        .BLOCK    605
                        .LINE     606
                        LDI       _ACCA, 000h
                        STD       Y+000h, _ACCA
                        .LINE     607
                        .BRANCH   17,SoftDDS.MYDDS
                        RCALL     SoftDDS.MYDDS
                        .LINE     608
SoftDDS.L0145:
                        .BRANCH   17,SoftDDS.UPDOWNBUTTON
                        RCALL      SoftDDS.UPDOWNBUTTON
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0147
                        BRNE      SoftDDS.L0147
                        .BRANCH   20,SoftDDS.L0146
                        RJMP      SoftDDS.L0146
SoftDDS.L0147:
                        .BLOCK    608
                        .LINE     612
                        LDI       _ACCA, 0FFh
                        STD       Y+000h, _ACCA
                        .LINE     613
                        LDS       _ACCB, 00065h
                        CLR       _ACCA
                        SBRC      _ACCB, 005h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0150
                        BRNE      SoftDDS.L0150
                        .BRANCH   20,SoftDDS.L0148
                        RJMP      SoftDDS.L0148
SoftDDS.L0150:
                        .BLOCK    613
                        .LINE     614
                        LDS       _ACCA, SoftDDS.EditValue
                        INC       _ACCA
                        STS       SoftDDS.EditValue, _ACCA
                        .ENDBLOCK 615
SoftDDS.L0148:
SoftDDS.L0149:
                        .LINE     616
                        LDS       _ACCB, 00065h
                        CLR       _ACCA
                        SBRC      _ACCB, 006h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0153
                        BRNE      SoftDDS.L0153
                        .BRANCH   20,SoftDDS.L0151
                        RJMP      SoftDDS.L0151
SoftDDS.L0153:
                        .BLOCK    616
                        .LINE     617
                        LDS       _ACCA, SoftDDS.EditValue
                        DEC       _ACCA
                        STS       SoftDDS.EditValue, _ACCA
                        .ENDBLOCK 618
SoftDDS.L0151:
SoftDDS.L0152:
                        .LINE     624
                        .BRANCH   17,SoftDDS.CHECKITEMLIMITS
                        RCALL     SoftDDS.CHECKITEMLIMITS
                        .LINE     625
                        .BRANCH   17,SoftDDS.LCD1XY
                        RCALL     SoftDDS.LCD1XY
                        .LINE     626
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     628
                        LDS       _ACCA, SoftDDS.EditWhich
                        .LINE     629
                        CPI       _ACCA, 13
                        .BRANCH   3,SoftDDS.L0157
                        BREQ      SoftDDS.L0157
                        .BRANCH   20,SoftDDS.L0156
                        RJMP      SoftDDS.L0156
SoftDDS.L0157:
SoftDDS.L0155:
                        .BLOCK    630
                        .LINE     630
                        .BRANCH   17,SoftDDS.WRITEWAVE
                        RCALL     SoftDDS.WRITEWAVE
                        .ENDBLOCK 631
                        .BRANCH   20,SoftDDS.L0154
                        RJMP      SoftDDS.L0154
SoftDDS.L0156:
                        .LINE     632
                        CPI       _ACCA, 10
                        .BRANCH   3,SoftDDS.L0160
                        BREQ      SoftDDS.L0160
                        .BRANCH   20,SoftDDS.L0159
                        RJMP      SoftDDS.L0159
SoftDDS.L0160:
SoftDDS.L0158:
                        .BLOCK    633
                        .LINE     633
                        .BRANCH   17,SoftDDS.WRITEOUTPUT
                        RCALL     SoftDDS.WRITEOUTPUT
                        .ENDBLOCK 634
                        .BRANCH   20,SoftDDS.L0154
                        RJMP      SoftDDS.L0154
SoftDDS.L0159:
                        .LINE     635
                        CPI       _ACCA, 1
                        .BRANCH   3,SoftDDS.L0163
                        BREQ      SoftDDS.L0163
                        .BRANCH   20,SoftDDS.L0162
                        RJMP      SoftDDS.L0162
SoftDDS.L0163:
SoftDDS.L0161:
                        .BLOCK    636
                        .LINE     636
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.WRITELEVELDB
                        RCALL     SoftDDS.WRITELEVELDB
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 637
                        .BRANCH   20,SoftDDS.L0154
                        RJMP      SoftDDS.L0154
SoftDDS.L0162:
                        .LINE     638
                        .BLOCK    638
                        .LINE     639
                        .BRANCH   17,SoftDDS.WRITEITEM
                        RCALL     SoftDDS.WRITEITEM
                        .ENDBLOCK 640
SoftDDS.L0154:
                        .LINE     644
                        .BRANCH   17,SoftDDS.FASTREPEATRELEASE
                        RCALL     SoftDDS.FASTREPEATRELEASE
                        .ENDBLOCK 646
                        .LINE     646
                        .BRANCH   20,SoftDDS.L0145
                        RJMP      SoftDDS.L0145
SoftDDS.L0146:
                        .LINE     649
                        LDD       _ACCA, Y+000h
                        .ENDBLOCK 650
SoftDDS.EditItem_X:
                        .LINE     650
                        .BRANCH   19
                        RET
                        .ENDFUNC  650

                        .FUNC     UpDownData, 653, 00020h
SoftDDS.UpDownData:
                        .BLOCK    654
                        .LINE     655
                        LDS       _ACCA, SoftDDS.EditWhich
                        SUBI      _ACCA, 002h AND 0FFh
                        LDI       _ACCCLO, SoftDDS.EditArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EditArray SHRB 8
                        ANDI      _ACCA, 15
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LD        _ACCA, Z
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .LINE     656
                        .BRANCH   17,SoftDDS.SETITEMLIMPOS
                        RCALL     SoftDDS.SETITEMLIMPOS
                        .LINE     657
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.EDITITEM
                        RCALL      SoftDDS.EDITITEM
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        STS       SOFTDDS.MODIFIED, _ACCA
                        .LINE     658
                        LDS       _ACCA, SoftDDS.Modified
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0166
                        BRNE      SoftDDS.L0166
                        .BRANCH   20,SoftDDS.L0164
                        RJMP      SoftDDS.L0164
SoftDDS.L0166:
                        .BLOCK    658
                        .LINE     660
                        LDS       _ACCA, SoftDDS.EditWhich
                        SUBI      _ACCA, 002h AND 0FFh
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.EditValue
                        LDI       _ACCCLO, SoftDDS.EditArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EditArray SHRB 8
                        POP       _ACCBLO
                        ANDI      _ACCBLO, 15
                        CLR       _ACCBHI
                        ADD       _ACCCLO, _ACCBLO
                        ADC       _ACCCHI, _ACCBHI
                        ST        Z, _ACCA
                        .LINE     661
                        LDS       _ACCA, SoftDDS.PresetOn
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0169
                        BRNE      SoftDDS.L0169
                        .BRANCH   20,SoftDDS.L0167
                        RJMP      SoftDDS.L0167
SoftDDS.L0169:
                        .BLOCK    661
                        .LINE     662
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYTOEE
                        RCALL     SoftDDS.PATCHCOPYTOEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 663
SoftDDS.L0167:
SoftDDS.L0168:
                        .LINE     665
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.SETFREQU
                        RCALL     SoftDDS.SETFREQU
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     666
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.SETLEVEL
                        RCALL     SoftDDS.SETLEVEL
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 667
SoftDDS.L0164:
SoftDDS.L0165:
                        .ENDBLOCK 668
SoftDDS.UpDownData_X:
                        .LINE     668
                        .BRANCH   19
                        RET
                        .ENDFUNC  668

                        .FUNC     ShowDefaultDisp, 670, 00020h
SoftDDS.ShowDefaultDisp:
                        .BLOCK    672
                        .LINE     673
                        .BRANCH   17,SoftDDS.LCD1X0Y0
                        RCALL     SoftDDS.LCD1X0Y0
                        .LINE     674
                        LDS       _ACCA, SoftDDS.PresetOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0172
                        BRNE      SoftDDS.L0172
                        .BRANCH   20,SoftDDS.L0170
                        RJMP      SoftDDS.L0170
SoftDDS.L0172:
                        .BLOCK    674
                        .LINE     675
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.PresetStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.PresetStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     676
                        LDS       _ACCA, SoftDDS.PresetNum
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .ENDBLOCK 677
                        .BRANCH   20,SoftDDS.L0171
                        RJMP      SoftDDS.L0171
SoftDDS.L0170:
                        .BLOCK    677
                        .LINE     678
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.MemStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.MemStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     679
                        LDS       _ACCA, SoftDDS.PatchNum
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .ENDBLOCK 680
SoftDDS.L0171:
                        .LINE     681
                        LDI       _ACCA, 007h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     682
                        .BRANCH   17,SoftDDS.LCD1XY
                        RCALL     SoftDDS.LCD1XY
                        .LINE     683
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     684
                        .BRANCH   17,SoftDDS.WRITEITEM
                        RCALL     SoftDDS.WRITEITEM
                        .LINE     685
                        LDI       _ACCA, 020h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT_M
                        .LINE     687
                        LDI       _ACCA, 009h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     688
                        .BRANCH   17,SoftDDS.LCD1XY
                        RCALL     SoftDDS.LCD1XY
                        .LINE     689
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.WRITELEVELDB
                        RCALL     SoftDDS.WRITELEVELDB
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     690
                        .BRANCH   17,SoftDDS.LCD1X0Y1
                        RCALL     SoftDDS.LCD1X0Y1
                        .LINE     691
                        LDI       _ACCA, 000h
                        .FRAME  0
                        RCALL     SYSTEM.LCDCLREOL_M
                        .LINE     692
                        LDS       _ACCA, SoftDDS.Wave
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     693
                        .BRANCH   17,SoftDDS.WRITEWAVE
                        RCALL     SoftDDS.WRITEWAVE
                        .LINE     695
                        LDI       _ACCA, 004h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     696
                        .BRANCH   17,SoftDDS.LCD1XY
                        RCALL     SoftDDS.LCD1XY
                        .LINE     697
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.WRITEFREQUENCY
                        RCALL     SoftDDS.WRITEFREQUENCY
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     698
                        .BRANCH   17,SoftDDS.SETCURSOR
                        RCALL     SoftDDS.SETCURSOR
                        .ENDBLOCK 699
SoftDDS.ShowDefaultDisp_X:
                        .LINE     699
                        .BRANCH   19
                        RET
                        .ENDFUNC  699

                        .FUNC     WaitForDisp, 701, 00020h
SoftDDS.WaitForDisp:
                        .BLOCK    702
                        .LINE     703
                        SER       _ACCA
                        LDS       _ACCB, SoftDDS.IncrTimeOut
                        TST       _ACCB
                        BREQ      SoftDDS.L0173
                        COM       _ACCA
SoftDDS.L0173:
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.prime
                        POP       _ACCB
                        AND       _ACCA, _ACCB
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0176
                        BRNE      SoftDDS.L0176
                        .BRANCH   20,SoftDDS.L0174
                        RJMP      SoftDDS.L0174
SoftDDS.L0176:
                        .BLOCK    703
                        .LINE     704
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PRIME, _ACCA
                        .LINE     705
                        .BRANCH   17,SoftDDS.SHOWDEFAULTDISP
                        RCALL     SoftDDS.SHOWDEFAULTDISP
                        .ENDBLOCK 706
SoftDDS.L0174:
SoftDDS.L0175:
                        .ENDBLOCK 707
SoftDDS.WaitForDisp_X:
                        .LINE     707
                        .BRANCH   19
                        RET
                        .ENDFUNC  707

                        .FUNC     initall, 711, 00020h
SoftDDS.initall:
                        .BLOCK    713
                        .LINE     714
                        LDI       _ACCA, 03Fh
                        OUT       DDRB, _ACCA
                        .LINE     715
                        LDI       _ACCA, 0E0h
                        OUT       PORTB, _ACCA
                        .LINE     717
                        LDI       _ACCA, 00Fh
                        OUT       DDRC, _ACCA
                        .LINE     718
                        LDI       _ACCA, 0FBh
                        OUT       PORTC, _ACCA
                        .LINE     720
                        LDI       _ACCA, 004h
                        OUT       DDRD, _ACCA
                        .LINE     721
                        LDI       _ACCA, 0FFh
                        OUT       PORTD, _ACCA
                        .LINE     723
                        LDI       _ACCA, 000h
                        OUT       TCNT2, _ACCA
                        .LINE     724
                        LDI       _ACCA, 001h
                        LDI       _ACCCLO, SoftDDS.sinus AND 0FFh
                        LDI       _ACCCHI, SoftDDS.sinus SHRB 8
                        ANDI      _ACCA, 255
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCA, Z
                        MOV       SOFTDDS.I, _ACCA
                        .LINE     726
                        LDI       _ACCA, 017h
                        STS       SOFTDDS.MP3PORT, _ACCA
                        .LINE     727
                        .BRANCH   17,SoftDDS.SENDSR
                        RCALL     SoftDDS.SENDSR
                        .LINE     729
                        LDI       _ACCA, 000h
                        .FRAME  0
                        RCALL      SYSTEM.LCDSETUP_M
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0179
                        BRNE      SoftDDS.L0179
                        .BRANCH   20,SoftDDS.L0177
                        RJMP      SoftDDS.L0177
SoftDDS.L0179:
                        .BLOCK    729
                        .LINE     730
                        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
                        RCALL     SYSTEM.LCDCURSOR_M
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     731
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  2
                        LDI       _ACCA, 002h
                        ST        -Y, _ACCA
                        .FRAME  3
                        LDI       _ACCA, 006h
                        ST        -Y, _ACCA
                        .FRAME  4
                        LDI       _ACCA, 00Eh
                        ST        -Y, _ACCA
                        .FRAME  5
                        LDI       _ACCA, 01Eh
                        ST        -Y, _ACCA
                        .FRAME  6
                        LDI       _ACCA, 00Eh
                        ST        -Y, _ACCA
                        .FRAME  7
                        LDI       _ACCA, 006h
                        ST        -Y, _ACCA
                        .FRAME  8
                        LDI       _ACCA, 002h
                        ST        -Y, _ACCA
                        .FRAME  9
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  10
                        .FRAME  0
                        RCALL     SYSTEM.LCDCHARSET_M
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     733
                        LDI       _ACCA, 000h
                        .FRAME  0
                        RCALL     SYSTEM.LCDCLR_M
                        .LINE     734
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.Vers1Str AND 0FFh
                        LDI       _ACCCHI, SoftDDS.Vers1Str SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     735
                        .BRANCH   17,SoftDDS.LCD1X0Y1
                        RCALL     SoftDDS.LCD1X0Y1
                        .LINE     736
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.Vers2Str AND 0FFh
                        LDI       _ACCCHI, SoftDDS.Vers2Str SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 737
SoftDDS.L0177:
SoftDDS.L0178:
                        .LINE     738
                        LDI       _ACCA, 005DCh SHRB 8
                        LDI       _ACCB, 005DCh AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .LINE     739
                        .BRANCH   17,SoftDDS.LCD1X0Y1
                        RCALL     SoftDDS.LCD1X0Y1
                        .LINE     740
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.InitStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.InitStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     741
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PATCHNUM, _ACCA
                        .LINE     742
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYFROMEE
                        RCALL     SoftDDS.PATCHCOPYFROMEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     743
                        IN        _ACCA, PinD
                        STS       SOFTDDS.BTNINPORT, _ACCA
                        .LINE     745
                        LDS       _ACCB, 00065h
                        CLR       _ACCA
                        SBRC      _ACCB, 007h
                        SER       _ACCA
                        COM       _ACCA
                        PUSH      _ACCA
                        LDI       _ACCCLO, SoftDDS.EEprime AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EEprime SHRB 8
                        RCALL     SYSTEM._ReadEEp16
                        CPI       _ACCA, 0AAh
                        BRNE      SoftDDS.L0180
                        CPI       _ACCB, 055h
SoftDDS.L0180:
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0181
                        SER       _ACCA
SoftDDS.L0181:
                        POP       _ACCB
                        OR        _ACCA, _ACCB
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0184
                        BRNE      SoftDDS.L0184
                        .BRANCH   20,SoftDDS.L0182
                        RJMP      SoftDDS.L0182
SoftDDS.L0184:
                        .BLOCK    745
                        .LINE     747
                        LDI       _ACCCLO, SoftDDS.PatchNum AND 0FFh
                        LDI       _ACCCHI, SoftDDS.PatchNum SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        Z, _ACCA
                        LDI       _ACCA, 01Eh
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
SoftDDS.L0187:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0188
                        CLR       _ACCA
SoftDDS.L0188:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0189
                        BREQ      SoftDDS.L0189
                        .BRANCH   20,SoftDDS.L0186
                        RJMP      SoftDDS.L0186
SoftDDS.L0189:
                        .BLOCK    748
                        .LINE     748
                        LDS       _ACCA, SoftDDS.PatchNum
                        STS       SOFTDDS.PRESETNUM, _ACCA
                        .LINE     749
                        CLR       _ACCA
                        SBIC      032h, 002h
                        SER       _ACCA
                        COM       _ACCA
                        CLT
                        TST       _ACCA
                        BREQ      SoftDDS.L0190
                        SET
SoftDDS.L0190:
                        IN        _ACCA, 00032h
                        BLD       _ACCA, 002h
                        OUT       00032h, _ACCA
                        .LINE     750
                        .BRANCH   17,SoftDDS.PRESETCOPYFROMROM
                        RCALL     SoftDDS.PRESETCOPYFROMROM
                        .LINE     751
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYTOEE
                        RCALL     SoftDDS.PATCHCOPYTOEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 752
SoftDDS.L0185:
                        .LINE     752
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0186
                        BREQ      SoftDDS.L0186
                        .BRANCH   20,SoftDDS.L0187
                        RJMP      SoftDDS.L0187
SoftDDS.L0186:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     753
                        SBI       00032h, 002h
                        .LINE     754
                        LDI       _ACCA, 0AA55h SHRB 8
                        LDI       _ACCB, 0AA55h AND 0FFh
                        LDI       _ACCCLO, SOFTDDS.EEPRIME AND 0FFh
                        LDI       _ACCCHI, SOFTDDS.EEPRIME SHRB 8
                        MOVW      _ACCALO, _ACCB
                        RCALL     SYSTEM._WriteEEp16
                        ADIW      _ACCCLO, 01h
                        .LINE     755
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PATCHNUM, _ACCA
                        .LINE     756
                        LDS       _ACCA, SoftDDS.PatchNum
                        LDI       _ACCCLO, SOFTDDS.EELASTPATCH AND 0FFh
                        LDI       _ACCCHI, SOFTDDS.EELASTPATCH SHRB 8
                        RCALL     SYSTEM.WriteEEp8
                        ADIW      _ACCCLO, 01h
                        .ENDBLOCK 757
                        .BRANCH   20,SoftDDS.L0183
                        RJMP      SoftDDS.L0183
SoftDDS.L0182:
                        .BLOCK    757
                        .LINE     758
                        LDI       _ACCA, 009C4h SHRB 8
                        LDI       _ACCB, 009C4h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .ENDBLOCK 759
SoftDDS.L0183:
                        .LINE     761
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.LEVELDB, _ACCA
                        .LINE     763
                        LDI       _ACCA, 087h
                        STS       SOFTDDS.MP3PORT, _ACCA
                        .LINE     764
                        .BRANCH   17,SoftDDS.SENDSR
                        RCALL     SoftDDS.SENDSR
                        .LINE     765
                        LDI       _ACCA, 0012Ch SHRB 8
                        LDI       _ACCB, 0012Ch AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .LINE     768
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.MP3COMMAND, _ACCA
                        .LINE     769
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.MP3REMOTE
                        RCALL     SoftDDS.MP3REMOTE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     770
                        LDI       _ACCA, 003E8h SHRB 8
                        LDI       _ACCB, 003E8h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .LINE     771
                        LDI       _ACCA, 004h
                        STS       SOFTDDS.MP3COMMAND, _ACCA
                        .LINE     772
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.MP3REMOTE
                        RCALL     SoftDDS.MP3REMOTE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     773
                        LDI       _ACCA, 005h
                        STS       SOFTDDS.MP3COMMAND, _ACCA
                        .LINE     774
                        LDI       _ACCCLO, SoftDDS.m AND 0FFh
                        LDI       _ACCCHI, SoftDDS.m SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        Z, _ACCA
                        LDI       _ACCA, 007h
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
SoftDDS.L0193:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0194
                        CLR       _ACCA
SoftDDS.L0194:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0195
                        BREQ      SoftDDS.L0195
                        .BRANCH   20,SoftDDS.L0192
                        RJMP      SoftDDS.L0192
SoftDDS.L0195:
                        .BLOCK    775
                        .LINE     775
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.MP3REMOTE
                        RCALL     SoftDDS.MP3REMOTE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 776
SoftDDS.L0191:
                        .LINE     776
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0192
                        BREQ      SoftDDS.L0192
                        .BRANCH   20,SoftDDS.L0193
                        RJMP      SoftDDS.L0193
SoftDDS.L0192:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     777
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.MP3COMMAND, _ACCA
                        .LINE     778
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.MP3REMOTE
                        RCALL     SoftDDS.MP3REMOTE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     780
                        LDI       _ACCCLO, SoftDDS.EElastpatch AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EElastpatch SHRB 8
                        RCALL     SYSTEM.ReadEEp8
                        STS       SOFTDDS.PATCHNUM, _ACCA
                        .LINE     781
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYFROMEE
                        RCALL     SoftDDS.PATCHCOPYFROMEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     782
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PRESETNUM, _ACCA
                        .LINE     783
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.PRESETON, _ACCA
                        .LINE     784
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.BURSTPRIME, _ACCA
                        .LINE     785
                        LDI       _ACCA, 000h
                        .FRAME  0
                        RCALL     SYSTEM.LCDCLR_M
                        .LINE     786
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MODIFIED, _ACCA
                        .LINE     787
                        LDI       _ACCA, 1 SHLB IntFlag
                        OR        Flags, _ACCA
                        SEI
                        .ENDBLOCK 788
SoftDDS.initall_X:
                        .LINE     788
                        .BRANCH   19
                        RET
                        .ENDFUNC  788



                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Program body
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .FUNC     $_Main, 794, 00020h
                        .ENTRYMAIN $
SoftDDS.$_Main:

                        .BLOCK    794
                        .LINE     795
                        .BRANCH   17,SoftDDS.INITALL
                        RCALL     SoftDDS.INITALL
                        .LINE     796
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PRIME, _ACCA
SoftDDS.L0196:
                        .BLOCK    797
                        .LINE     798
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.SETLEVEL
                        RCALL     SoftDDS.SETLEVEL
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     799
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.SETFREQU
                        RCALL     SoftDDS.SETFREQU
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     800
                        .BRANCH   17,SoftDDS.SETITEMLIMPOS
                        RCALL     SoftDDS.SETITEMLIMPOS
                        .LINE     801
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.BURSTCOUNT, _ACCA
                        .LINE     802
                        LDS       _ACCA, SoftDDS.EditWhich
                        .LINE     803
                        CPI       _ACCA, 0
                        .BRANCH   3,SoftDDS.L0201
                        BREQ      SoftDDS.L0201
                        .BRANCH   20,SoftDDS.L0200
                        RJMP      SoftDDS.L0200
SoftDDS.L0201:
SoftDDS.L0199:
                        .BLOCK    804
                        .LINE     804
                        .BRANCH   17,SoftDDS.SHOWDEFAULTDISP
                        RCALL     SoftDDS.SHOWDEFAULTDISP
                        .LINE     805
                        .BRANCH   17,SoftDDS.SLOWREPEATRELEASE
                        RCALL     SoftDDS.SLOWREPEATRELEASE
                        .LINE     806
                        LDS       _ACCA, SoftDDS.PresetOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0204
                        BRNE      SoftDDS.L0204
                        .BRANCH   20,SoftDDS.L0202
                        RJMP      SoftDDS.L0202
SoftDDS.L0204:
                        .BLOCK    806
                        .LINE     807
                        LDS       _ACCA, SoftDDS.PresetNum
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 808
                        .BRANCH   20,SoftDDS.L0203
                        RJMP      SoftDDS.L0203
SoftDDS.L0202:
                        .BLOCK    808
                        .LINE     809
                        LDS       _ACCA, SoftDDS.PatchNum
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 810
SoftDDS.L0203:
                        .LINE     811
                        .BRANCH   17,SoftDDS.SETITEMLIMPOS
                        RCALL     SoftDDS.SETITEMLIMPOS
SoftDDS.L0205:
                        .BLOCK    812
                        .LINE     813
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.EDITITEM
                        RCALL      SoftDDS.EDITITEM
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0210
                        BRNE      SoftDDS.L0210
                        .BRANCH   20,SoftDDS.L0208
                        RJMP      SoftDDS.L0208
SoftDDS.L0210:
                        .BLOCK    813
                        .LINE     814
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.PRIME, _ACCA
                        .LINE     815
                        LDS       _ACCA, SoftDDS.PresetOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0213
                        BRNE      SoftDDS.L0213
                        .BRANCH   20,SoftDDS.L0211
                        RJMP      SoftDDS.L0211
SoftDDS.L0213:
                        .BLOCK    815
                        .LINE     816
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.PRESETNUM, _ACCA
                        .LINE     817
                        .BRANCH   17,SoftDDS.PRESETCOPYFROMROM
                        RCALL     SoftDDS.PRESETCOPYFROMROM
                        .ENDBLOCK 818
                        .BRANCH   20,SoftDDS.L0212
                        RJMP      SoftDDS.L0212
SoftDDS.L0211:
                        .BLOCK    818
                        .LINE     819
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.PATCHNUM, _ACCA
                        .LINE     820
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYFROMEE
                        RCALL     SoftDDS.PATCHCOPYFROMEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 821
SoftDDS.L0212:
                        .LINE     822
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.SETFREQU
                        RCALL     SoftDDS.SETFREQU
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     823
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.SETLEVEL
                        RCALL     SoftDDS.SETLEVEL
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 824
SoftDDS.L0208:
SoftDDS.L0209:
                        .LINE     825
                        .BRANCH   17,SoftDDS.WAITFORDISP
                        RCALL     SoftDDS.WAITFORDISP
                        .ENDBLOCK 826
                        .LINE     826
SoftDDS.L0206:
                        .BRANCH   17,SoftDDS.NAVIBUTTON
                        RCALL      SoftDDS.NAVIBUTTON
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0214
                        BRNE      SoftDDS.L0214
                        .BRANCH   20,SoftDDS.L0205
                        RJMP      SoftDDS.L0205
SoftDDS.L0214:
SoftDDS.L0207:
                        .ENDBLOCK 827
                        .BRANCH   20,SoftDDS.L0198
                        RJMP      SoftDDS.L0198
SoftDDS.L0200:
                        .LINE     828
                        CPI       _ACCA, 1
                        .BRANCH   3,SoftDDS.L0217
                        BREQ      SoftDDS.L0217
                        .BRANCH   20,SoftDDS.L0216
                        RJMP      SoftDDS.L0216
SoftDDS.L0217:
SoftDDS.L0215:
                        .BLOCK    829
                        .LINE     829
                        .BRANCH   17,SoftDDS.SHOWDEFAULTDISP
                        RCALL     SoftDDS.SHOWDEFAULTDISP
                        .LINE     830
                        .BRANCH   17,SoftDDS.SLOWREPEATRELEASE
                        RCALL     SoftDDS.SLOWREPEATRELEASE
                        .LINE     831
                        LDS       _ACCA, SoftDDS.LeveldB
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .LINE     832
                        .BRANCH   17,SoftDDS.SETITEMLIMPOS
                        RCALL     SoftDDS.SETITEMLIMPOS
SoftDDS.L0218:
                        .BLOCK    833
                        .LINE     834
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.EDITITEM
                        RCALL      SoftDDS.EDITITEM
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0223
                        BRNE      SoftDDS.L0223
                        .BRANCH   20,SoftDDS.L0221
                        RJMP      SoftDDS.L0221
SoftDDS.L0223:
                        .BLOCK    834
                        .LINE     835
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.PRIME, _ACCA
                        .LINE     836
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.LEVELDB, _ACCA
                        .LINE     837
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.SETLEVEL
                        RCALL     SoftDDS.SETLEVEL
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     838
                        LDS       _ACCA, SoftDDS.PresetOn
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0226
                        BRNE      SoftDDS.L0226
                        .BRANCH   20,SoftDDS.L0224
                        RJMP      SoftDDS.L0224
SoftDDS.L0226:
                        .BLOCK    838
                        .LINE     839
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYTOEE
                        RCALL     SoftDDS.PATCHCOPYTOEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 840
SoftDDS.L0224:
SoftDDS.L0225:
                        .ENDBLOCK 841
SoftDDS.L0221:
SoftDDS.L0222:
                        .LINE     842
                        .BRANCH   17,SoftDDS.WAITFORDISP
                        RCALL     SoftDDS.WAITFORDISP
                        .ENDBLOCK 843
                        .LINE     843
SoftDDS.L0219:
                        .BRANCH   17,SoftDDS.NAVIBUTTON
                        RCALL      SoftDDS.NAVIBUTTON
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0227
                        BRNE      SoftDDS.L0227
                        .BRANCH   20,SoftDDS.L0218
                        RJMP      SoftDDS.L0218
SoftDDS.L0227:
SoftDDS.L0220:
                        .ENDBLOCK 844
                        .BRANCH   20,SoftDDS.L0198
                        RJMP      SoftDDS.L0198
SoftDDS.L0216:
                        .LINE     845
                        CPI       _ACCA, 2
                        .BRANCH   2,SoftDDS.L0230
                        BRCC      SoftDDS.L0230
                        .BRANCH   20,SoftDDS.L0229
                        RJMP      SoftDDS.L0229
SoftDDS.L0230:
                        CPI       _ACCA, 9
                        .BRANCH   3,SoftDDS.L0231
                        BREQ      SoftDDS.L0231
                        .BRANCH   1,SoftDDS.L0229
                        BRCS      SoftDDS.L0231
                        .BRANCH   20,SoftDDS.L0229
                        RJMP      SoftDDS.L0229
SoftDDS.L0231:
SoftDDS.L0228:
                        .BLOCK    846
                        .LINE     846
                        .BRANCH   17,SoftDDS.LCD1X0Y0
                        RCALL     SoftDDS.LCD1X0Y0
                        .LINE     847
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.FrequStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.FrequStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     848
                        .BRANCH   17,SoftDDS.WRITEFREQUARRAYDATA
                        RCALL     SoftDDS.WRITEFREQUARRAYDATA
                        .LINE     849
                        .BRANCH   17,SoftDDS.SETCURSOR
                        RCALL     SoftDDS.SETCURSOR
                        .LINE     850
                        .BRANCH   17,SoftDDS.SLOWREPEATRELEASE
                        RCALL     SoftDDS.SLOWREPEATRELEASE
SoftDDS.L0232:
                        .BLOCK    851
                        .LINE     852
                        .BRANCH   17,SoftDDS.UPDOWNDATA
                        RCALL     SoftDDS.UPDOWNDATA
                        .ENDBLOCK 853
                        .LINE     853
SoftDDS.L0233:
                        .BRANCH   17,SoftDDS.NAVIBUTTON
                        RCALL      SoftDDS.NAVIBUTTON
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0235
                        BRNE      SoftDDS.L0235
                        .BRANCH   20,SoftDDS.L0232
                        RJMP      SoftDDS.L0232
SoftDDS.L0235:
SoftDDS.L0234:
                        .ENDBLOCK 854
                        .BRANCH   20,SoftDDS.L0198
                        RJMP      SoftDDS.L0198
SoftDDS.L0229:
                        .LINE     855
                        CPI       _ACCA, 10
                        .BRANCH   2,SoftDDS.L0238
                        BRCC      SoftDDS.L0238
                        .BRANCH   20,SoftDDS.L0237
                        RJMP      SoftDDS.L0237
SoftDDS.L0238:
                        CPI       _ACCA, 13
                        .BRANCH   3,SoftDDS.L0239
                        BREQ      SoftDDS.L0239
                        .BRANCH   1,SoftDDS.L0237
                        BRCS      SoftDDS.L0239
                        .BRANCH   20,SoftDDS.L0237
                        RJMP      SoftDDS.L0237
SoftDDS.L0239:
SoftDDS.L0236:
                        .BLOCK    856
                        .LINE     856
                        .BRANCH   17,SoftDDS.LCD1X0Y0
                        RCALL     SoftDDS.LCD1X0Y0
                        .LINE     857
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.OptStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.OptStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.ROMSTR16OUT
                        RCALL     SoftDDS.ROMSTR16OUT
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     858
                        .BRANCH   17,SoftDDS.WRITEOPTIONSARRAYDATA
                        RCALL     SoftDDS.WRITEOPTIONSARRAYDATA
                        .LINE     859
                        .BRANCH   17,SoftDDS.SETCURSOR
                        RCALL     SoftDDS.SETCURSOR
                        .LINE     860
                        .BRANCH   17,SoftDDS.SLOWREPEATRELEASE
                        RCALL     SoftDDS.SLOWREPEATRELEASE
SoftDDS.L0240:
                        .BLOCK    861
                        .LINE     862
                        .BRANCH   17,SoftDDS.UPDOWNDATA
                        RCALL     SoftDDS.UPDOWNDATA
                        .ENDBLOCK 863
                        .LINE     863
SoftDDS.L0241:
                        .BRANCH   17,SoftDDS.NAVIBUTTON
                        RCALL      SoftDDS.NAVIBUTTON
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0243
                        BRNE      SoftDDS.L0243
                        .BRANCH   20,SoftDDS.L0240
                        RJMP      SoftDDS.L0240
SoftDDS.L0243:
SoftDDS.L0242:
                        .ENDBLOCK 864
                        .BRANCH   20,SoftDDS.L0198
                        RJMP      SoftDDS.L0198
SoftDDS.L0237:
SoftDDS.L0198:
                        .LINE     867
                        LDS       _ACCB, 00065h
                        CLR       _ACCA
                        SBRC      _ACCB, 003h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0246
                        BRNE      SoftDDS.L0246
                        .BRANCH   20,SoftDDS.L0244
                        RJMP      SoftDDS.L0244
SoftDDS.L0246:
                        .BLOCK    867
                        .LINE     868
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0247
                        SER       _ACCA
SoftDDS.L0247:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0250
                        BRNE      SoftDDS.L0250
                        .BRANCH   20,SoftDDS.L0248
                        RJMP      SoftDDS.L0248
SoftDDS.L0250:
                        .BLOCK    868
                        .LINE     869
                        LDI       _ACCA, 00Dh
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .ENDBLOCK 870
                        .BRANCH   20,SoftDDS.L0249
                        RJMP      SoftDDS.L0249
SoftDDS.L0248:
                        .BLOCK    870
                        .LINE     871
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 0
                        BREQ      SoftDDS.L0251
                        DEC       _ACCA
SoftDDS.L0251:
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .ENDBLOCK 872
SoftDDS.L0249:
                        .LINE     873
                        LDS       _ACCA, SoftDDS.PatchNum
                        LDI       _ACCCLO, SOFTDDS.EELASTPATCH AND 0FFh
                        LDI       _ACCCHI, SOFTDDS.EELASTPATCH SHRB 8
                        RCALL     SYSTEM.WriteEEp8
                        ADIW      _ACCCLO, 01h
                        .ENDBLOCK 874
SoftDDS.L0244:
SoftDDS.L0245:
                        .LINE     875
                        LDS       _ACCB, 00065h
                        CLR       _ACCA
                        SBRC      _ACCB, 004h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0254
                        BRNE      SoftDDS.L0254
                        .BRANCH   20,SoftDDS.L0252
                        RJMP      SoftDDS.L0252
SoftDDS.L0254:
                        .BLOCK    875
                        .LINE     876
                        LDS       _ACCA, SoftDDS.PatchNum
                        LDI       _ACCCLO, SOFTDDS.EELASTPATCH AND 0FFh
                        LDI       _ACCCHI, SOFTDDS.EELASTPATCH SHRB 8
                        RCALL     SYSTEM.WriteEEp8
                        ADIW      _ACCCLO, 01h
                        .LINE     877
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 00Dh
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0255
                        SER       _ACCA
SoftDDS.L0255:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0258
                        BRNE      SoftDDS.L0258
                        .BRANCH   20,SoftDDS.L0256
                        RJMP      SoftDDS.L0256
SoftDDS.L0258:
                        .BLOCK    877
                        .LINE     878
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .ENDBLOCK 879
                        .BRANCH   20,SoftDDS.L0257
                        RJMP      SoftDDS.L0257
SoftDDS.L0256:
                        .BLOCK    879
                        .LINE     880
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 14
                        BRPL      SoftDDS.L0259
                        INC       _ACCA
SoftDDS.L0259:
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .ENDBLOCK 881
SoftDDS.L0257:
                        .ENDBLOCK 882
SoftDDS.L0252:
SoftDDS.L0253:
                        .LINE     883
                        LDS       _ACCB, 00065h
                        CLR       _ACCA
                        SBRC      _ACCB, 007h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0262
                        BRNE      SoftDDS.L0262
                        .BRANCH   20,SoftDDS.L0260
                        RJMP      SoftDDS.L0260
SoftDDS.L0262:
                        .BLOCK    883
                        .LINE     884
                        LDS       _ACCA, SoftDDS.PresetOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0265
                        BRNE      SoftDDS.L0265
                        .BRANCH   20,SoftDDS.L0263
                        RJMP      SoftDDS.L0263
SoftDDS.L0265:
                        .BLOCK    884
                        .LINE     885
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PRESETON, _ACCA
                        .LINE     886
                        CBI       00032h, 002h
                        .LINE     887
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYFROMEE
                        RCALL     SoftDDS.PATCHCOPYFROMEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 888
                        .BRANCH   20,SoftDDS.L0264
                        RJMP      SoftDDS.L0264
SoftDDS.L0263:
                        .BLOCK    888
                        .LINE     889
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.PRESETON, _ACCA
                        .LINE     890
                        SBI       00032h, 002h
                        .LINE     891
                        .BRANCH   17,SoftDDS.PRESETCOPYFROMROM
                        RCALL     SoftDDS.PRESETCOPYFROMROM
                        .ENDBLOCK 892
SoftDDS.L0264:
                        .ENDBLOCK 893
SoftDDS.L0260:
SoftDDS.L0261:
                        .ENDBLOCK 894
                        .LINE     894
                        .BRANCH   20,SoftDDS.L0196
                        RJMP      SoftDDS.L0196
SoftDDS.L0197:
                        .ENDBLOCK 895

SoftDDS.$_MAINEX:
                        .LINE     895
                        .BRANCH   20,SoftDDS.$_MAINEX
                        RJMP      SoftDDS.$_MAINEX


                        .ENDFUNC  895

SYSTEM.$Main_stk        .EQU    00093h          ; var iData  Process stack area
SYSTEM.$Main_stk_e      .EQU    00112h          ; var iData  Process stack area
SYSTEM.$Main_Frame      .EQU    00113h          ; var iData  Process stack area
SYSTEM.$Main_Frame_e    .EQU    00172h          ; var iData  Process stack area

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Initialisation and Library Routines
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .ENTRY
SYSTEM.RESET:
                        CLI
                        ; >> Stack Init [main process only] <<
                        LDI       _ACCA, 001h
                        LDI       _ACCB, 012h
                        OUT       sph, _ACCA
                        OUT       spl, _ACCB


                        ; >> Memory Init <<
                        CLR       _ACCA
                        LDI       _ACCCLO, 00009h AND 0FFh
                        LDI       _ACCCHI, 00009h SHRB 8
                        LDI       _ACCBLO, 00006h AND 0FFh
                        LDI       _ACCBHI, 00006h SHRB 8
                        ADIW      _ACCCLO, 1
SYSTEM.L0266:
                        SBIW      _ACCCLO, 001h
                        BREQ      SYSTEM.L0268
SYSTEM.L0267:
                        ST        X+, _ACCA
                        RJMP      SYSTEM.L0266
SYSTEM.L0268:
                        LDI       _ACCBLO, 00060h AND 0FFh
                        LDI       _ACCBHI, 00060h SHRB 8
                        LDI       _ACCCLO, 00400h AND 0FFh
                        LDI       _ACCCHI, 00400h SHRB 8
                        ADIW      _ACCCLO, 1
SYSTEM.L0269:
                        SBIW      _ACCCLO, 001h
                        BREQ      SYSTEM.L0271
SYSTEM.L0270:
                        ST        X+, _ACCA
                        RJMP      SYSTEM.L0269
SYSTEM.L0271:
                        LDI       _FRAMEPTR, 00172h AND 0FFh
                        LDI       _FPTRHI, 00172h SHRB 8

                        CLI
                        LDI       _ACCA, 0FEH ROLB IntFlag
                        AND       Flags, _ACCA

                        ; ============ init structured constants ============
                        ; >> Hardware Init <<

                        ; >> SysTick init: 1msec <<
                        ; >> real SysTick (exact): 1.000 msec <<
                        LDI       _ACCA, 006h
                        STS       SysTickTime, _ACCA
                        OUT       tcnt0, _ACCA
                        LDI       _ACCA, 3
                        OUT       tccr0, _ACCA
                        LDI       _ACCA, 001h
                        OUT       timsk, _ACCA

                        ; >> 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
                        RJMP      SoftDDS.$_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.L0272
                        DEC       _ACCB
                        STS       _TWI_TO, _ACCB
SYSTEM.L0272:
                        LDS       _ACCA, SoftDDS.IncrTimeOut
                        TST       _ACCA
                        BREQ      SYSTEM.L0273
                        SUBI      _ACCA, 1
                        STS       SoftDDS.IncrTimeOut, _ACCA
SYSTEM.L0273:
                        LDI       _ACCA, 1 SHLB IntFlag
                        OR        Flags, _ACCA
                        POP       _ACCA
                        OUT       SREG, _ACCA
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        .DEB      SYSTICKEXIT
                        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
                        RCALL     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
                        RCALL     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
                        RCALL     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
                        RCALL     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
                        RCALL     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.L0274
                        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
                        RCALL     SYSTEM.TWIout
                        RJMP      SYSTEM.L0275
SYSTEM.L0274:
                        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
                        RCALL     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
                        RCALL     SYSTEM.TWIout
SYSTEM.L0275:
                        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
                        RCALL     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
                        RCALL     SYSTEM.TWIout
                        POP       _ACCELO
                        ANDI      _ACCELO, 2
                        BREQ       SYSTEM.L0276
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00000h AND 0FFh
                        LDI       _ACCBHI, 00000h SHRB 8
                        LDI       _ACCAHI, 000h
                        LDI       _ACCDHI, 000h
                        RCALL     SYSTEM.TWIout
SYSTEM.L0276:
                        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
                        RCALL     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.L0277:
                        RCALL     SYSTEM._LCDM_Busy_Rd
                        TST       _ACCA
                        BRPL       SYSTEM.L0278
                        SBIW      _ACCCLO, 1
                        BRNE      SYSTEM.L0277
                        CLR       _ACCB
                        CLR       _ACCA
                        RET
SYSTEM.L0278:
                        MOV       _ACCB, _ACCA
                        SER       _ACCA
                        RET

SYSTEM._LCDM_Ctrl_Wr:
                        PUSH      _ACCA
                        RCALL     SYSTEM._LCDWAIT_M
                        TST       _ACCA
                        BRNE      SYSTEM.L0279
                        POP       _ACCB
                        RET
SYSTEM.L0279:
                        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
                        RCALL     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
                        RCALL     SYSTEM.TWIstat
                        .DEB      I2CSTAT_M
                        TST       _ACCA
                        BRNE       SYSTEM.L0280
                        RET
SYSTEM.L0280:
                        RCALL     SYSTEM._LCDM_ini
                        LDI       _ACCB, 16
                        CLR       _ACCA
                        RCALL     SYSTEM.MDELAY
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr_NW
                        LDI       _ACCB, 5
                        CLR       _ACCA
                        RCALL     SYSTEM.MDELAY
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr_NW
                        LDI       _ACCB, 1
                        CLR       _ACCA
                        RCALL     SYSTEM.MDELAY
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr_NW
                        LDI       _ACCB, 1
                        CLR       _ACCA
                        RCALL     SYSTEM.MDELAY
                        LDI       _ACCA, 38h
                        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.L0281
SYSTEM.LCDCURSOR_M:
                        LDD       _ACCA, Y+002h
                        STS       _LCDM_PORT, _ACCA
                        LDD       _ACCA, Y+000h
                        LDD       _ACCB, Y+001h
SYSTEM.L0281:
                        TST       _ACCA
                        BRNE       SYSTEM.L0282
                        LDI       _ACCA, 0Ch
                        RJMP      SYSTEM.L0283

SYSTEM.L0282:
                        LDI       _ACCA, 0Dh
SYSTEM.L0283:
                        TST       _ACCB
                        BREQ       SYSTEM.L0284
                        ORI       _ACCA, 2
SYSTEM.L0284:
                        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.L0285
                        LDI       _ACCA, 080h
                        RJMP      SYSTEM.L0289

SYSTEM.L0285:
                        CPI       _ACCA, 1
                        BRNE       SYSTEM.L0286
                        LDI       _ACCA, 0C0h
                        RJMP      SYSTEM.L0289

SYSTEM.L0286:
                        CPI       _ACCA, 2
                        BRNE       SYSTEM.L0287
                        LDI       _ACCA, 090h
                        RJMP      SYSTEM.L0289

SYSTEM.L0287:
                        CPI       _ACCA, 3
                        BRNE       SYSTEM.L0288
                        LDI       _ACCA, 0D0h
                        RJMP      SYSTEM.L0289

SYSTEM.L0288:
                        LDI       _ACCA, 080h
SYSTEM.L0289:
                        ADD       _ACCA, _ACCB
                        RJMP      SYSTEM._LCDM_Ctrl_Wr_NW

SYSTEM.LCDCLR_M:
                        STS       _LCDM_PORT, _ACCA
                        LDI       _ACCA, 01h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr
                        LDI       _ACCB, 5
                        CLR       _ACCA
                        RCALL     SYSTEM.MDELAY
                        RET

SYSTEM.LCDCLREOL_M:
                        STS       _LCDM_PORT, _ACCA
                        RCALL     SYSTEM._LCDWAIT_M
                        RCALL     SYSTEM._LCDM_Busy_Rd
                        ORI       _ACCA, 80h
                        PUSH      _ACCA
                        ANDI      _ACCA, 0Fh
                        LDI       _ACCB, 010h
                        SUB       _ACCB, _ACCA
SYSTEM.L0290:
                        PUSH      _ACCB
                        LDI       _ACCA, 20h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        POP       _ACCB
                        DEC       _ACCB
                        BRNE       SYSTEM.L0290
                        POP       _ACCA
                        RJMP      SYSTEM._LCDM_Ctrl_Wr

SYSTEM.LCDCHARSET_M:
                        LDD       _ACCA, Y+009h
                        STS       _LCDM_PORT, _ACCA
                        LDD       _ACCA, Y+008h
                        ANDI      _ACCA, 0Fh
                        LSL       _ACCA
                        LSL       _ACCA
                        LSL       _ACCA
                        ORI       _ACCA, 40h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr
                        LDD       _ACCA, Y+007h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDD       _ACCA, Y+006h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDD       _ACCA, Y+005h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDD       _ACCA, Y+004h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDD       _ACCA, Y+003h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDD       _ACCA, Y+002h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDD       _ACCA, Y+001h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDD       _ACCA, Y+000h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDI       _ACCA, 80h
                        RJMP      SYSTEM._LCDM_Ctrl_Wr

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
                        RCALL     SYSTEM.TWIout
                        POP       _ACCDLO
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        RCALL     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.L0302
                        LDI       _ACCA, 090h
                        OUT       TWCR, _ACCA
SYSTEM.L0302:
                        LDI       _ACCA, 0A4h
                        OUT       TWCR, _ACCA
                        LDI       _ACCA, 100
                        STS       _TWI_TO, _ACCA
SYSTEM.L0300:
                        IN        _ACCA, TWCR
                        ANDI      _ACCA, 080h
                        BRNE      SYSTEM.L0303
                        LDS       _ACCA, _TWI_TO
                        TST       _ACCA
                        BRNE      SYSTEM.L0300
                        OUT       TWCR, _ACCA
                        RJMP      SYSTEM.TWI_ERROR
SYSTEM.L0303:
                        IN        _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 008h
                        BRNE      SYSTEM.L0307
                        RJMP      SYSTEM.TWI_ERROR
SYSTEM.L0307:
                        RJMP      SYSTEM.TWI_OK

SYSTEM.TWISTOPB:
SYSTEM.L0308:
                        IN        _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 0F8h
                        BREQ      SYSTEM.L0308
                        CPI       _ACCA, 000h
                        BRNE      SYSTEM.L0309
                        LDI       _ACCA, 090h
                        OUT       TWCR, _ACCA
                        NOP
SYSTEM.L0309:
                        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, 100
                        STS       _TWI_TO, _ACCA
SYSTEM.L0311:
                        IN        _ACCA, TWCR
                        ANDI      _ACCA, 080h
                        BRNE      SYSTEM.L0312
                        LDS       _ACCA, _TWI_TO
                        TST       _ACCA
                        BRNE      SYSTEM.L0311
                        RJMP      SYSTEM.TWI_ERROR
SYSTEM.L0312:
                        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.L0313
                        LDI       _ACCA, 084h
SYSTEM.L0313:
                        OUT       TWCR, _ACCA
SYSTEM.L0314:
                        IN        _ACCA, TWCR
                        SBRS      _ACCA, 7
                        RJMP      SYSTEM.L0314
                        IN        _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 058h
                        BREQ      SYSTEM.L0316
                        CPI       _ACCA, 050h
                        BRNE      SYSTEM.TWI_ERROR
SYSTEM.L0316:
                        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.L0315
                        LDI       _ACCA, 090h
                        OUT       TWCR, _ACCA
SYSTEM.L0315:
                        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.L0318
                        RCALL     SYSTEM.TWIRECVBYTE
                        TST       _ACCA
                        BREQ      SYSTEM.L0318
                        RJMP      SYSTEM.TWI_OK
SYSTEM.L0318:
                        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.L0324
SYSTEM.L0319:
                        MOV       _ACCDLO, _ACCAHI
                        RCALL     SYSTEM.TWISENDBYTE
                        TST       _ACCA
                        BREQ      SYSTEM.L0324
                        BST       Flags, _I2C2BYTE
                        BRTC      SYSTEM.L0323
                        MOV       _ACCDLO, _ACCALO
SYSTEM.L0321:
                        RCALL     SYSTEM.TWISENDBYTE
                        TST       _ACCA
                        BREQ      SYSTEM.L0324
SYSTEM.L0323:
                        TST       _ACCBLO
                        BRNE       SYSTEM.L0328
                        TST       _ACCBHI
                        BREQ       SYSTEM.L0322
SYSTEM.L0328:
                        TST       _ACCDHI
                        BRNE      SYSTEM.L0325
                        LD        _ACCDLO, Z+
                        RJMP      SYSTEM.L0327
SYSTEM.L0325:
                        CPI       _ACCDHI, 1
                        BRNE      SYSTEM.L0326
                        LPM       _ACCDLO, Z+
                        RJMP      SYSTEM.L0327
SYSTEM.L0326:
                        RCALL     SYSTEM.ReadEEp8D
                        ADIW      _ACCCLO, 01h
SYSTEM.L0327:
                        SBIW      _ACCBLO, 1
                        RJMP      SYSTEM.L0321
SYSTEM.L0322:
                        RCALL     SYSTEM.TWISTOPB
                        RJMP      SYSTEM.TWI_OK
SYSTEM.L0324:
                        RCALL     SYSTEM.TWI_ERROR
                        SER       _ACCB
                        STS       TWI_DevLock, _ACCB
                        CLR       _ACCA
                        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.L0329:
                        SUBI      _ACCALO, 001h
                        SBCI      _ACCAHI, 000h
                        BRCS      SYSTEM.L0330
                        LD        _ACCA, Z+
                        ST        X+, _ACCA
                        RJMP      SYSTEM.L0329
SYSTEM.L0330:
                        RET

SYSTEM._EEpWaitReady:
                        SBRC      Flags, IntFlag
                        SEI
                        SBIC      eecr, 1
                        RJMP      SYSTEM._EEpWaitReady

                        CLI
                        SBIC      eecr, 1
                        RJMP      SYSTEM._EEpWaitReady

                        RET

SYSTEM.WriteEEp8:
                        RCALL     SYSTEM._EEpWaitReady
                        PUSH      _ACCDLO
                        OUT       eearl, _ACCCLO
                        OUT       eearh, _ACCCHI
                        SBI       eecr, 0
                        NOP
                        IN        _ACCDLO, eedr
                        CP        _ACCA, _ACCDLO
                        BREQ      SYSTEM.L0331
                        OUT       eedr, _ACCA
                        SBI       eecr, 2
                        SBI       eecr, 1
SYSTEM.L0331:
                        POP       _ACCDLO
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM._WriteEEp16:
                        MOV       _ACCA, _ACCALO
                        RCALL     SYSTEM.WriteEEp8
                        MOV       _ACCA, _ACCAHI
                        ADIW      _ACCCLO, 01h
                        RCALL     SYSTEM.WriteEEp8
                        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._ReadEEp16:
                        RCALL     SYSTEM.ReadEEp8
                        MOV       _ACCB, _ACCA
                        ADIW      _ACCCLO, 01h
                        RCALL     SYSTEM.ReadEEp8
                        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._ArrToStr:
                        MOV       _ACCBHI, _ACCA
SYSTEM.L0332:
                        LD        _ACCA, Z+
                        TST       _ACCA
                        BREQ      SYSTEM.L0333
                        RCALL     SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM.L0332
SYSTEM.L0333:
                        RET


SYSTEM.Byte2Str_X:
                        LD        _ACCB, X+
SYSTEM.L0334:
                        LD        _ACCA, X+
                        RCALL     SYSTEM.Char2Str
                        DEC       _ACCAHI
                        BRNE      SYSTEM.L0335
                        LDI       _ACCA, DECIMALSEP
                        RCALL     SYSTEM.Char2Str
SYSTEM.L0335:
                        DEC       _ACCB
                        BRNE      SYSTEM.L0334
                        POP       _ACCCHI
                        POP       _ACCCLO
                        LDD       _ACCB, Y+0
                        STD       Z+0, _ACCB
                        LDD       _ACCB, Y+1
                        STD       Z+1, _ACCB
                        LDD       _ACCB, Y+2
                        STD       Z+2, _ACCB
                        MOVW      _FRAMEPTR, _ACCCLO
                        RET

SYSTEM.Byte2Str_P:
                        LDD       _ACCCLO, Y+0
                        TST       _ACCCLO
                        BRNE      SYSTEM.L0336
                        TST       _ACCA
                        BREQ      SYSTEM.L0337
SYSTEM.L0336:
                        INC       _ACCCLO
                        STD       Y+0, _ACCCLO
                        CLR       _ACCCHI
                        ADD       _ACCCLO, _FRAMEPTR
                        ADC       _ACCCHI, _FPTRHI
                        ORI       _ACCA, 030h
                        STD       Z+0, _ACCA
SYSTEM.L0337:
                        RET


SYSTEM.Int2Str:
                        POP       _ACCBHI
                        POP       _ACCBLO
                        POP       _ACCCLO
                        POP       _ACCDLO
                        POP       _ACCDHI
                        POP       _ACCA
                        POP       _ACCB
                        PUSH      _ACCBLO
                        PUSH      _ACCBHI
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        SBIW      _FRAMEPTR, 9
                        CLR       _ACCBLO
                        STD       Y+0, _ACCBLO
                        STD       Y+7, _ACCDHI
                        STD       Y+8, _ACCDLO
                        PUSH      _ACCCLO
                        LDI       _ACCCLO, SYSTEM.IntDivTab AND 0FFh
                        LDI       _ACCCHI, SYSTEM.IntDivTab SHRB 8
                        MOVW      _ACCBLO, _ACCB
                        CLT
                        BLD       Flags, _NEGATIVE
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.L0338
                        SBRC      _ACCA, 7
                        BLD       Flags, _NEGATIVE
SYSTEM.L0338:
                        LDI       _ACCELO, 4
SYSTEM.L0339:
                        LPM       _ACCALO, Z+
                        LPM       _ACCAHI, Z+
                        ADIW      _ACCCLO, 02h
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        RCALL     SYSTEM.DIV16_R
                        MOVW      _ACCBLO, _ACCCLO
                        MOV       _ACCA, _ACCB
                        TST       _ACCA
                        BRPL      SYSTEM.L0340
                        NEG       _ACCA
SYSTEM.L0340:
                        RCALL     SYSTEM.Byte2Str_P
                        POP       _ACCCHI
                        POP       _ACCCLO
                        DEC       _ACCELO
                        BRNE      SYSTEM.L0339
                        MOV       _ACCA, _ACCBLO
                        RCALL     SYSTEM.Byte2Str_P
                        POP       _ACCDHI
                        POP       _ACCCHI
                        POP       _ACCCLO
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        MOVW      _ACCBLO, _FRAMEPTR
                        LDD       _ACCALO, Y+8
                        LDD       _ACCAHI, Y+7
                        RJMP      SYSTEM.Byte2Str_F

SYSTEM.Byte2Str_F:
                        LDD       _ACCB, Y+0
                        TST       _ACCB
                        BRNE      SYSTEM.L0341
                        INC       _ACCB
                        STD       Y+0, _ACCB
                        LDI       _ACCA, 30h
                        STD       Y+1, _ACCA
SYSTEM.L0341:
                        SBIW      _FRAMEPTR, 3
                        LDD       _ACCB, Z+0
                        STD       Y+0, _ACCB
                        LDD       _ACCB, Z+1
                        STD       Y+1, _ACCB
                        LDD       _ACCB, Z+2
                        STD       Y+2, _ACCB
                        TST       _ACCAHI
                        BREQ      SYSTEM.Int2Str_A
                        TST       _ACCALO
                        BREQ      SYSTEM.Int2Str_A
                        LD        _ACCDLO, X
                        DEC       _ACCAHI
                        CP        _ACCDLO, _ACCAHI
                        BRCS      SYSTEM.L0343
                        MOV       _ACCAHI, _ACCDLO
                        SUB       _ACCAHI, _ACCALO
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0342
                        LDI       _ACCA, 2Dh
                        RCALL     SYSTEM.Char2Str
SYSTEM.L0342:
                        RJMP      SYSTEM.Byte2Str_X
SYSTEM.L0343:
                        MOV       _ACCB, _ACCDLO
                        CP        _ACCALO, _ACCDLO
                        BRLT      SYSTEM.L0344
                        MOV       _ACCB, _ACCALO
                        INC       _ACCB
SYSTEM.L0344:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0350
                        DEC       _ACCAHI
SYSTEM.L0350:
                        MOV       _ACCA, _ACCDHI
                        SUB       _ACCB, _ACCAHI
                        NEG       _ACCB
                        BREQ      SYSTEM.L0346
                        BRMI      SYSTEM.L0346
SYSTEM.L0345:
                        RCALL     SYSTEM.Char2Str
                        DEC       _ACCAHI
                        DEC       _ACCB
                        BRNE      SYSTEM.L0345
SYSTEM.L0346:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0349
                        LDI       _ACCA, 2Dh
                        RCALL     SYSTEM.Char2Str
SYSTEM.L0349:
                        SUB       _ACCAHI, _ACCALO
                        CP        _ACCALO, _ACCDLO
                        BRCS      SYSTEM.L0348
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM.Char2Str
                        LDI       _ACCA, DECIMALSEP
                        RCALL     SYSTEM.Char2Str
                        CLR       _ACCAHI
                        SUB       _ACCALO, _ACCDLO
                        BREQ      SYSTEM.L0348
SYSTEM.L0347:
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM.Char2Str
                        DEC       _ACCALO
                        BRNE      SYSTEM.L0347
SYSTEM.L0348:
                        RJMP      SYSTEM.Byte2Str_X
SYSTEM.Int2Str_A:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0351
                        DEC       _ACCAHI
                        BRMI      SYSTEM.L0353
SYSTEM.L0351:
                        LD        _ACCB, X
                        SUB       _ACCAHI, _ACCB
                        BREQ      SYSTEM.L0353
                        BRCS      SYSTEM.L0353
                        MOV       _ACCA, _ACCDHI
SYSTEM.L0352:
                        RCALL     SYSTEM.Char2Str
                        DEC       _ACCAHI
                        BRNE      SYSTEM.L0352
SYSTEM.L0353:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0354
                        LDI       _ACCA, 2Dh
                        RCALL     SYSTEM.Char2Str
SYSTEM.L0354:
                        RJMP      SYSTEM.Byte2Str_X

SYSTEM.Char2Str:
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        BST       Flags, _DEVICE
                        BRTS      SYSTEM.L0358
                        PUSH      _ACCA
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LDD       _ACCA, Y+000h
                        TST       _ACCA
                        BRNE      SYSTEM.L0355
                        POP       _ACCA
                        SET
                        BLD       Flags, _ERRFLAG
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RET
SYSTEM.L0355:
                        DEC       _ACCA
                        STD       Y+000h, _ACCA
                        POP       _ACCA
                        BST       Flags, _EEPROM
                        BRTS      SYSTEM.L0356
                        ST        Z+, _ACCA
                        RJMP      SYSTEM.L0357
SYSTEM.L0356:
                        RCALL     SYSTEM.WriteEEp8
                        ADIW      _ACCCLO, 01h
SYSTEM.L0357:
                        STD       Y+002h, _ACCCHI
                        STD       Y+001h, _ACCCLO
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RET
SYSTEM.L0358:
                        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
                        ICALL
                        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.SHL8:
                        MOV       _ACCALO, _ACCA
                        POP       _ACCDHI
                        POP       _ACCDLO
                        POP       _ACCA
                        PUSH      _ACCDLO
                        PUSH      _ACCDHI
SYSTEM.SHL8_R:
                        TST       _ACCALO
                        BREQ      SYSTEM.L0360
                        CPI       _ACCALO, 08h
                        BRCS      SYSTEM.L0359
                        CLR       _ACCA
                        RET
SYSTEM.L0359:
                        LSL       _ACCA
                        DEC       _ACCALO
                        BRNE      SYSTEM.L0359
SYSTEM.L0360:
                        RET


SYSTEM.MUL8:
                        MUL       _ACCA, _ACCB
                        MOV       _ACCA, _ACCGLO
                        MOV       _ACCB, _ACCGHI
                        RET


SYSTEM.DIV8:
                        POP       _ACCAHI
                        POP       _ACCALO
                        MOV       _ACCB, _ACCA
                        POP       _ACCA
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
SYSTEM.DIV8_R:
                        CLR       _ACCAHI
                        LDI       _ACCALO, 9
SYSTEM.L0361:
                        ROL       _ACCA
                        DEC       _ACCALO
                        BRNE      SYSTEM.L0362
                        MOV       _ACCB, _ACCAHI
                        RET
SYSTEM.L0362:
                        ROL       _ACCAHI
                        SUB       _ACCAHI, _ACCB
                        BRCC      SYSTEM.L0363
                        ADD       _ACCAHI, _ACCB
                        CLC
                        RJMP      SYSTEM.L0361
SYSTEM.L0363:
                        SEC
                        RJMP      SYSTEM.L0361


SYSTEM.DIV16:
                        MOVW      _ACCALO, _ACCB
SYSTEM.DIV16_R:
                        CLR       _ACCDHI
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.L0364
                        MOV       _ACCDHI, _ACCBHI
                        MOV       _ACCDLO, _ACCAHI
                        EOR       _ACCDLO, _ACCBHI
                        CLT
                        SBRS      _ACCDLO, 7
                        BLD       Flags, _SIGN
                        SBRS      _ACCAHI, 7
                        RJMP      SYSTEM.L0366
                        NEG       _ACCALO
                        BRNE      SYSTEM.L0367
                        DEC       _ACCAHI
SYSTEM.L0367:
                        COM       _ACCAHI
SYSTEM.L0366:
                        SBRS      _ACCBHI, 7
                        RJMP      SYSTEM.L0364
                        NEG       _ACCBLO
                        BRNE      SYSTEM.L0368
                        DEC       _ACCBHI
SYSTEM.L0368:
                        COM       _ACCBHI
SYSTEM.L0364:
                        CLR       _ACCCLO
                        SUB       _ACCCHI, _ACCCHI
                        LDI       _ACCA, 17
SYSTEM.L0369:
                        ROL       _ACCBLO
                        ROL       _ACCBHI
                        DEC       _ACCA
                        BRNE      SYSTEM.L0370
                        MOVW      _ACCB, _ACCBLO
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.L0365
                        NEG       _ACCB
                        BRNE      SYSTEM.L0372
                        DEC       _ACCA
SYSTEM.L0372:
                        COM       _ACCA
SYSTEM.L0365:
                        RET
SYSTEM.L0370:
                        ROL       _ACCCLO
                        ROL       _ACCCHI
                        SUB       _ACCCLO, _ACCALO
                        SBC       _ACCCHI, _ACCAHI
                        BRCC      SYSTEM.L0371
                        ADD       _ACCCLO, _ACCALO
                        ADC       _ACCCHI, _ACCAHI
                        CLC
                        RJMP      SYSTEM.L0369
SYSTEM.L0371:
                        SEC
                        RJMP      SYSTEM.L0369


SYSTEM.MUL32:
                        MOVW      _ACCBLO, _ACCB
                        MOVW      _ACCCLO, _ACCALO
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCEHI
                        POP       _ACCELO
                        POP       _ACCDHI
                        POP       _ACCDLO
                        PUSH      _ACCB
                        PUSH      _ACCA
                        RJMP      SYSTEM.L0373
SYSTEM.MUL32_R:
                        MOVW      _ACCBLO, _ACCB
                        MOVW      _ACCCLO, _ACCALO
SYSTEM.L0373:
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.L0374
                        MOV       _ACCFLO, _ACCCHI
                        EOR       _ACCFLO, _ACCEHI
                        CLT
                        SBRS      _ACCFLO, 7
                        BLD       Flags, _SIGN
                        SBRS      _ACCCHI, 7
                        RJMP      SYSTEM.L0376
                        COM       _ACCBLO
                        COM       _ACCBHI
                        COM       _ACCCLO
                        COM       _ACCCHI
                        SUBI      _ACCBLO, 0FFh
                        SBCI      _ACCBHI, 0FFh
                        SBCI      _ACCCLO, 0FFh
                        SBCI      _ACCCHI, 0FFh
SYSTEM.L0376:
                        SBRS      _ACCEHI, 7
                        RJMP      SYSTEM.L0374
                        COM       _ACCDLO
                        COM       _ACCDHI
                        COM       _ACCELO
                        COM       _ACCEHI
                        SUBI      _ACCDLO, 0FFh
                        SBCI      _ACCDHI, 0FFh
                        SBCI      _ACCELO, 0FFh
                        SBCI      _ACCEHI, 0FFh
SYSTEM.L0374:
                        CLR       _ACCFHI
                        CLR       _ACCFLO
                        CLR       _ACCGHI
                        CLR       _ACCGLO
                        LDI       _ACCA, 32
                        LSR       _ACCEHI
                        ROR       _ACCELO
                        ROR       _ACCDHI
                        ROR       _ACCDLO
SYSTEM.L0378:
                        BRCC      SYSTEM.L0377
                        ADD       _ACCFLO, _ACCBLO
                        ADC       _ACCFHI, _ACCBHI
                        ADC       _ACCGLO, _ACCCLO
                        ADC       _ACCGHI, _ACCCHI
SYSTEM.L0377:
                        ROR       _ACCGHI
                        ROR       _ACCGLO
                        ROR       _ACCFHI
                        ROR       _ACCFLO
                        ROR       _ACCEHI
                        ROR       _ACCELO
                        ROR       _ACCDHI
                        ROR       _ACCDLO
                        DEC       _ACCA
                        BRNE      SYSTEM.L0378
                        MOVW      _ACCB, _ACCDLO
                        MOVW      _ACCALO, _ACCELO
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.L0375
                        SUBI      _ACCB, 01h
                        SBCI      _ACCA, 00h
                        SBCI      _ACCALO, 00h
                        SBCI      _ACCAHI, 00h
                        COM       _ACCALO
                        COM       _ACCAHI
                        COM       _ACCA
                        COM       _ACCB
SYSTEM.L0375:
                        RET



SYSTEM.SHL16:
                        MOV       _ACCALO, _ACCA
                        POP       _ACCDHI
                        POP       _ACCDLO
                        POP       _ACCA
                        POP       _ACCB
                        PUSH      _ACCDLO
                        PUSH      _ACCDHI
SYSTEM.SHL16_R:
                        TST       _ACCALO
                        BREQ      SYSTEM.L0380
                        CPI       _ACCALO, 10h
                        BRCS      SYSTEM.L0379
                        CLR       _ACCA
                        CLR       _ACCB
                        RET
SYSTEM.L0379:
                        LSL       _ACCB
                        ROL       _ACCA
                        DEC       _ACCALO
                        BRNE      SYSTEM.L0379
SYSTEM.L0380:
                        RET


SYSTEM.TestBit8:
                        ANDI      _ACCA, 7
                        LDI       _ACCCLO, SYSTEM.BitMaskTab AND 0FFh
                        LDI       _ACCCHI, SYSTEM.BitMaskTab SHRB 8
                        CLR       _ACCGLO
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCGLO
                        LPM
                        CLR       _ACCA
                        LD        _ACCB, X
                        AND       _ACCB, _ACCGLO
                        CPSE      _ACCB, _ACCA
                        SER       _ACCA
                        RET

SYSTEM.DefIntErr:
                        RETI


                        .ROMCONST $

SYSTEM.BitMaskTab:
                        .BYTE     001h
                        .BYTE     002h
                        .BYTE     004h
                        .BYTE     008h
                        .BYTE     010h
                        .BYTE     020h
                        .BYTE     040h
                        .BYTE     080h

SYSTEM.IntDivTab:
                        .Byte     010h
                        .Byte     027h
                        .Byte     000h
                        .Byte     000h
                        .Byte     0E8h
                        .Byte     003h
                        .Byte     000h
                        .Byte     000h
                        .Byte     064h
                        .Byte     000h
                        .Byte     000h
                        .Byte     000h
                        .Byte     00Ah
                        .Byte     000h
                        .Byte     000h
                        .Byte     000h
SYSTEM.StrDivTabX:

                        ; ============ String-constant tables ============
                        .SYM      SoftDDS.Vers1Str
SoftDDS.Vers1Str:
                        .BYTE     16
                        .ASCII    "MP3-FG1  V#0.101"

                        .SYM      SoftDDS.Vers2Str
SoftDDS.Vers2Str:
                        .BYTE     15
                        .ASCII    "C. Meyer 10/05"
                        .BYTE     000h

                        .SYM      SoftDDS.InitStr
SoftDDS.InitStr:
                        .BYTE     16
                        .ASCII    "Initialising... "

                        .SYM      SoftDDS.MemStr
SoftDDS.MemStr:
                        .BYTE     8
                        .ASCII    "Memory "
                        .BYTE     000h

                        .SYM      SoftDDS.PresetStr
SoftDDS.PresetStr:
                        .BYTE     8
                        .ASCII    "Preset "
                        .BYTE     000h

                        .SYM      SoftDDS.HzStr
SoftDDS.HzStr:
                        .BYTE     4
                        .ASCII    " Hz"
                        .BYTE     000h

                        .SYM      SoftDDS.dBStr
SoftDDS.dBStr:
                        .BYTE     4
                        .ASCII    " dB"
                        .BYTE     000h

                        .SYM      SoftDDS.SinStr
SoftDDS.SinStr:
                        .BYTE     4
                        .ASCII    "Sin"
                        .BYTE     000h

                        .SYM      SoftDDS.SquStr
SoftDDS.SquStr:
                        .BYTE     4
                        .ASCII    "Sqr"
                        .BYTE     000h

                        .SYM      SoftDDS.TriStr
SoftDDS.TriStr:
                        .BYTE     4
                        .ASCII    "Tri"
                        .BYTE     000h

                        .SYM      SoftDDS.ExtStr
SoftDDS.ExtStr:
                        .BYTE     4
                        .ASCII    "Ext"
                        .BYTE     000h

                        .SYM      SoftDDS.PwrStr
SoftDDS.PwrStr:
                        .BYTE     4
                        .ASCII    "Pwr"
                        .BYTE     000h

                        .SYM      SoftDDS.NrmStr
SoftDDS.NrmStr:
                        .BYTE     4
                        .ASCII    "Nrm"
                        .BYTE     000h

                        .SYM      SoftDDS.FrequStr
SoftDDS.FrequStr:
                        .BYTE     16
                        .ASCII    "Frequency Hz    "

                        .SYM      SoftDDS.OptStr
SoftDDS.OptStr:
                        .BYTE     16
                        .ASCII    "Out dB Brst Wav "


                        ; ============ array-constant tables ============
                        .SYM      SoftDDS.fhz
SoftDDS.fhz:
                        .WORD     00000h
                        .WORD     000C0h
                        .WORD     03333h
                        .WORD     00013h
                        .WORD     0EB85h
                        .WORD     00001h
                        .WORD     03127h
                        .WORD     00000h
                        .WORD     004EAh
                        .WORD     00000h
                        .WORD     0007Eh
                        .WORD     00000h
                        .WORD     0000Dh
                        .WORD     00000h
                        .WORD     00001h
                        .WORD     00000h

                        .SYM      SoftDDS.fdhz
SoftDDS.fdhz:
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00001h
                        .WORD     00000h
                        .WORD     00002h
                        .WORD     00000h
                        .WORD     00003h
                        .WORD     00000h
                        .WORD     00005h
                        .WORD     00000h
                        .WORD     00006h
                        .WORD     00000h
                        .WORD     00007h
                        .WORD     00000h
                        .WORD     00008h
                        .WORD     00000h
                        .WORD     0000Ah
                        .WORD     00000h
                        .WORD     0000Ch
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h

                        .SYM      SoftDDS.TerzArray
SoftDDS.TerzArray:
                        .WORD     003E8h
                        .WORD     00014h
                        .WORD     00019h
                        .WORD     0001Fh
                        .WORD     00028h
                        .WORD     00032h
                        .WORD     0003Fh
                        .WORD     00050h
                        .WORD     00064h
                        .WORD     0007Dh
                        .WORD     000A0h
                        .WORD     000C8h
                        .WORD     000FAh
                        .WORD     0013Bh
                        .WORD     00190h
                        .WORD     001F4h
                        .WORD     00276h
                        .WORD     00320h
                        .WORD     003E8h
                        .WORD     004E2h
                        .WORD     00640h
                        .WORD     007D0h
                        .WORD     009C4h
                        .WORD     00C4Eh
                        .WORD     00FA0h
                        .WORD     01388h
                        .WORD     0189Ch
                        .WORD     01F40h
                        .WORD     02710h
                        .WORD     030D4h
                        .WORD     03E80h
                        .WORD     04E20h


                        ; ============ Fixed addr String-constant tables ============

                        ; ============ fixed addr array-constant tables ============
                        .ORG      01F00h
                        .CONST    1
SoftDDS.sinus:
                        .BYTE     020h
                        .BYTE     020h
                        .BYTE     021h
                        .BYTE     022h
                        .BYTE     023h
                        .BYTE     023h
                        .BYTE     024h
                        .BYTE     025h
                        .BYTE     026h
                        .BYTE     026h
                        .BYTE     027h
                        .BYTE     028h
                        .BYTE     029h
                        .BYTE     029h
                        .BYTE     02Ah
                        .BYTE     02Bh
                        .BYTE     02Ch
                        .BYTE     02Ch
                        .BYTE     02Dh
                        .BYTE     02Eh
                        .BYTE     02Eh
                        .BYTE     02Fh
                        .BYTE     030h
                        .BYTE     030h
                        .BYTE     031h
                        .BYTE     032h
                        .BYTE     032h
                        .BYTE     033h
                        .BYTE     033h
                        .BYTE     034h
                        .BYTE     035h
                        .BYTE     035h
                        .BYTE     036h
                        .BYTE     036h
                        .BYTE     037h
                        .BYTE     037h
                        .BYTE     038h
                        .BYTE     038h
                        .BYTE     039h
                        .BYTE     039h
                        .BYTE     03Ah
                        .BYTE     03Ah
                        .BYTE     03Bh
                        .BYTE     03Bh
                        .BYTE     03Bh
                        .BYTE     03Ch
                        .BYTE     03Ch
                        .BYTE     03Ch
                        .BYTE     03Dh
                        .BYTE     03Dh
                        .BYTE     03Dh
                        .BYTE     03Dh
                        .BYTE     03Eh
                        .BYTE     03Eh
                        .BYTE     03Eh
                        .BYTE     03Eh
                        .BYTE     03Eh
                        .BYTE     03Fh
                        .BYTE     03Fh
                        .BYTE     03Fh
                        .BYTE     03Fh
                        .BYTE     03Fh
                        .BYTE     03Fh
                        .BYTE     03Fh
                        .BYTE     03Fh
                        .BYTE     03Fh
                        .BYTE     03Fh
                        .BYTE     03Fh
                        .BYTE     03Fh
                        .BYTE     03Fh
                        .BYTE     03Fh
                        .BYTE     03Fh
                        .BYTE     03Eh
                        .BYTE     03Eh
                        .BYTE     03Eh
                        .BYTE     03Eh
                        .BYTE     03Eh
                        .BYTE     03Dh
                        .BYTE     03Dh
                        .BYTE     03Dh
                        .BYTE     03Dh
                        .BYTE     03Ch
                        .BYTE     03Ch
                        .BYTE     03Ch
                        .BYTE     03Bh
                        .BYTE     03Bh
                        .BYTE     03Bh
                        .BYTE     03Ah
                        .BYTE     03Ah
                        .BYTE     039h
                        .BYTE     039h
                        .BYTE     038h
                        .BYTE     038h
                        .BYTE     037h
                        .BYTE     037h
                        .BYTE     036h
                        .BYTE     036h
                        .BYTE     035h
                        .BYTE     035h
                        .BYTE     034h
                        .BYTE     033h
                        .BYTE     033h
                        .BYTE     032h
                        .BYTE     032h
                        .BYTE     031h
                        .BYTE     030h
                        .BYTE     030h
                        .BYTE     02Fh
                        .BYTE     02Eh
                        .BYTE     02Eh
                        .BYTE     02Dh
                        .BYTE     02Ch
                        .BYTE     02Ch
                        .BYTE     02Bh
                        .BYTE     02Ah
                        .BYTE     029h
                        .BYTE     029h
                        .BYTE     028h
                        .BYTE     027h
                        .BYTE     026h
                        .BYTE     026h
                        .BYTE     025h
                        .BYTE     024h
                        .BYTE     023h
                        .BYTE     023h
                        .BYTE     022h
                        .BYTE     021h
                        .BYTE     020h
                        .BYTE     020h
                        .BYTE     01Fh
                        .BYTE     01Eh
                        .BYTE     01Dh
                        .BYTE     01Ch
                        .BYTE     01Ch
                        .BYTE     01Bh
                        .BYTE     01Ah
                        .BYTE     019h
                        .BYTE     019h
                        .BYTE     018h
                        .BYTE     017h
                        .BYTE     016h
                        .BYTE     016h
                        .BYTE     015h
                        .BYTE     014h
                        .BYTE     013h
                        .BYTE     013h
                        .BYTE     012h
                        .BYTE     011h
                        .BYTE     011h
                        .BYTE     010h
                        .BYTE     00Fh
                        .BYTE     00Fh
                        .BYTE     00Eh
                        .BYTE     00Dh
                        .BYTE     00Dh
                        .BYTE     00Ch
                        .BYTE     00Ch
                        .BYTE     00Bh
                        .BYTE     00Ah
                        .BYTE     00Ah
                        .BYTE     009h
                        .BYTE     009h
                        .BYTE     008h
                        .BYTE     008h
                        .BYTE     007h
                        .BYTE     007h
                        .BYTE     006h
                        .BYTE     006h
                        .BYTE     005h
                        .BYTE     005h
                        .BYTE     004h
                        .BYTE     004h
                        .BYTE     004h
                        .BYTE     003h
                        .BYTE     003h
                        .BYTE     003h
                        .BYTE     002h
                        .BYTE     002h
                        .BYTE     002h
                        .BYTE     002h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     002h
                        .BYTE     002h
                        .BYTE     002h
                        .BYTE     002h
                        .BYTE     003h
                        .BYTE     003h
                        .BYTE     003h
                        .BYTE     004h
                        .BYTE     004h
                        .BYTE     004h
                        .BYTE     005h
                        .BYTE     005h
                        .BYTE     006h
                        .BYTE     006h
                        .BYTE     007h
                        .BYTE     007h
                        .BYTE     008h
                        .BYTE     008h
                        .BYTE     009h
                        .BYTE     009h
                        .BYTE     00Ah
                        .BYTE     00Ah
                        .BYTE     00Bh
                        .BYTE     00Ch
                        .BYTE     00Ch
                        .BYTE     00Dh
                        .BYTE     00Dh
                        .BYTE     00Eh
                        .BYTE     00Fh
                        .BYTE     00Fh
                        .BYTE     010h
                        .BYTE     011h
                        .BYTE     011h
                        .BYTE     012h
                        .BYTE     013h
                        .BYTE     013h
                        .BYTE     014h
                        .BYTE     015h
                        .BYTE     016h
                        .BYTE     016h
                        .BYTE     017h
                        .BYTE     018h
                        .BYTE     019h
                        .BYTE     019h
                        .BYTE     01Ah
                        .BYTE     01Bh
                        .BYTE     01Ch
                        .BYTE     01Ch
                        .BYTE     01Dh
                        .BYTE     01Eh
                        .BYTE     01Fh


                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Reset and Interrupt vectors
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


                        .ENDCODE
                        .ORG       0, VECTTAB
                        .VECTTAB
SYSTEM.VectTab:
                        RJMP      SYSTEM.RESET
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.$INTERRUPT_TIMER0
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr

                        .VECTTABE
SYSTEM.ENDPROG:

                        .END

                        ; ============ End of Program ============


                        ; System uses registers
                        ; from bottom     = 00000h
                        ; upto            = 00006h
                        ; and
                        ; from            = 00010h
                        ; upto            = 0001Fh
                        ;
                        ; Stackframe at   = ...00112h


                        ; ===== Current top of User Vars in Data is 0000Ch =====

                        ; ===== Current top of User Vars in IData is 00172h =====

                        ; ===== Current top of User Vars in EEprom is 00013h =====


                        ; ===== Imported Library Routines =====

                        ; Shift  left  byte SHL8
                        ; Multiply     byte MUL8
                        ; Divide       byte DIV8
                        ; Divide       word DIV16
                        ; Shift  left  word SHL16
                        ; LongWord and LongInt types
                        ; Multiply     long MUL32
                        ; TestBit8
                        ; Convert int to string
                        ; EEprom read
                        ; EEprom write

                        ; Pascal Statements : 408
                        ; Assembler Lines   : 11630
                        ; Optimizer removed : 227 lines = 454Bytes

                        ; >> real SysTick (exact): 1.000 msec <<

;  Linker removed the following functions and procedures
;
;  Module/Unit             Function/Procedure
;  ------------------------------------------
;
