
                        .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    : 13. November 2005  17:23:45
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .MEDIUM
                        .ROMEND         03FFFh;

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; 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    00Bh            ; const 
COMPILEDAY              .EQU    00Dh            ; const 
COMPILEHOUR             .EQU    011h            ; const 
COMPILEMINUTE           .EQU    017h            ; const 
PROJECTBUILD            .EQU    179h            ; 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    00Ah            ; const 
PROCCLOCK               .EQU    0F42400h        ; const 
DECIMALSEP              .EQU    02Eh            ; const 
ROMconstPage            .EQU    0FFFFFFFFh      ; const 
STACKSIZE               .EQU    080h            ; const 
FRAMESIZE               .EQU    060h            ; const 
UDR1                    .EQU    0C6h            ; var iData  byte
UBRR1H                  .EQU    0C5h            ; var iData  byte
UBRRH                   .EQU    0C5h            ; var iData  byte
UBRR1                   .EQU    0C4h            ; var iData  byte
UBRRL                   .EQU    0C4h            ; var iData  byte
UCSRC                   .EQU    0C2h            ; var iData  byte
UCSR0C                  .EQU    0C2h            ; var iData  byte
UCR1                    .EQU    0C1h            ; var iData  byte
UCSRB                   .EQU    0C1h            ; var iData  byte
USR1                    .EQU    0C0h            ; var iData  byte
UCSRA                   .EQU    0C0h            ; var iData  byte
TWAMR                   .EQU    0BDh            ; var iData  byte
TWCR                    .EQU    0BCh            ; var iData  byte
TWDR                    .EQU    0BBh            ; var iData  byte
TWAR                    .EQU    0BAh            ; var iData  byte
TWSR                    .EQU    0B9h            ; var iData  byte
TWBR                    .EQU    0B8h            ; var iData  byte
ASSR                    .EQU    0B6h            ; var iData  byte
OCR2B                   .EQU    0B4h            ; var iData  byte
OCR2A                   .EQU    0B3h            ; var iData  byte
OCR2                    .EQU    0B3h            ; var iData  byte
TCNT2                   .EQU    0B2h            ; var iData  byte
TCCR2B                  .EQU    0B1h            ; var iData  byte
TCCR2A                  .EQU    0B0h            ; var iData  byte
TCCR2                   .EQU    0B1h            ; var iData  byte
OCR1BH                  .EQU    08Bh            ; var iData  byte
OCR1BL                  .EQU    08Ah            ; var iData  byte
OCR1AH                  .EQU    089h            ; var iData  byte
OCR1AL                  .EQU    088h            ; var iData  byte
ICR1H                   .EQU    087h            ; var iData  byte
ICR1L                   .EQU    086h            ; var iData  byte
TCNT1H                  .EQU    085h            ; var iData  byte
TCNT1L                  .EQU    084h            ; var iData  byte
TCCR1C                  .EQU    082h            ; var iData  byte
TCCR1B                  .EQU    081h            ; var iData  byte
TCCR1A                  .EQU    080h            ; var iData  byte
DIDR1                   .EQU    07Fh            ; var iData  byte
DIDR0                   .EQU    07Eh            ; var iData  byte
ADMUX                   .EQU    07Ch            ; var iData  byte
ADCSR                   .EQU    07Ah            ; var iData  byte
ADCSRB                  .EQU    07Bh            ; var iData  byte
ADCSRA                  .EQU    07Ah            ; var iData  byte
ADCH                    .EQU    079h            ; var iData  byte
ADCL                    .EQU    078h            ; var iData  byte
TIMSK2                  .EQU    070h            ; var iData  byte
TIMSK1                  .EQU    06Fh            ; var iData  byte
TIMSK0                  .EQU    06Eh            ; var iData  byte
PCMSK2                  .EQU    06Dh            ; var iData  byte
PCMSK1                  .EQU    06Ch            ; var iData  byte
PCMSK0                  .EQU    06Bh            ; var iData  byte
EICRA                   .EQU    069h            ; var iData  byte
GICR                    .EQU    069h            ; var iData  byte
PCICR                   .EQU    068h            ; var iData  byte
OSCCAL                  .EQU    066h            ; var iData  byte
PRR                     .EQU    064h            ; var iData  byte
CLKPR                   .EQU    061h            ; var iData  byte
WDTCR                   .EQU    060h            ; var iData  byte
SREG                    .EQU    05Fh            ; var pData  byte
SPH                     .EQU    05Eh            ; var pData  byte
SPL                     .EQU    05Dh            ; var pData  byte
SPMCR                   .EQU    057h            ; var pData  byte
SPMCSR                  .EQU    057h            ; var pData  byte
MCUCR                   .EQU    055h            ; var pData  byte
MCUCSR                  .EQU    054h            ; var pData  byte
MCUSR                   .EQU    054h            ; var pData  byte
SMCR                    .EQU    053h            ; var pData  byte
MONDR                   .EQU    051h            ; var pData  byte
ACSR                    .EQU    050h            ; var pData  byte
SPDR                    .EQU    04Eh            ; var pData  byte
SPSR                    .EQU    04Dh            ; var pData  byte
SPCR                    .EQU    04Ch            ; var pData  byte
GPIOR2                  .EQU    04Bh            ; var pData  byte
GPIOR1                  .EQU    04Ah            ; var pData  byte
OCR0B                   .EQU    048h            ; var pData  byte
OCR0A                   .EQU    047h            ; var pData  byte
TCNT0                   .EQU    046h            ; var pData  byte
TCCR0B                  .EQU    045h            ; var pData  byte
TCCR0A                  .EQU    044h            ; var pData  byte
TCCR0                   .EQU    045h            ; var pData  byte
GTCCR                   .EQU    043h            ; var pData  byte
EEARH                   .EQU    042h            ; var pData  byte
EEARL                   .EQU    041h            ; var pData  byte
EEDR                    .EQU    040h            ; var pData  byte
EECR                    .EQU    03Fh            ; var pData  byte
GPIOR0                  .EQU    03Eh            ; var pData  byte
GIMSK                   .EQU    03Dh            ; var pData  byte
EIMSK                   .EQU    03Dh            ; var pData  byte
GIFR                    .EQU    03Ch            ; var pData  byte
EIFR                    .EQU    03Ch            ; var pData  byte
PCIFR                   .EQU    03Bh            ; var pData  byte
TIFR2                   .EQU    037h            ; var pData  byte
TIFR1                   .EQU    036h            ; var pData  byte
TIFR0                   .EQU    035h            ; var pData  byte
PORTD                   .EQU    02Bh            ; var pData  byte
DDRD                    .EQU    02Ah            ; var pData  byte
PIND                    .EQU    029h            ; var pData  byte
PORTC                   .EQU    028h            ; var pData  byte
DDRC                    .EQU    027h            ; var pData  byte
PINC                    .EQU    026h            ; var pData  byte
MASKC                   .EQU    07Fh            ; var iData  byte
PORTB                   .EQU    025h            ; var pData  byte
DDRB                    .EQU    024h            ; var pData  byte
PINB                    .EQU    023h            ; var pData  byte
OCR1B                   .EQU    08Ah            ; var iData  word
OCR1A                   .EQU    088h            ; var iData  word
ICR1                    .EQU    086h            ; var iData  word
TCNT1                   .EQU    084h            ; var iData  word
ADC                     .EQU    078h            ; var iData  word
EEAR                    .EQU    041h            ; var pData  word
_iDataStart             .EQU    100h            ; const 
_iDataEnd               .EQU    4FFh            ; const 
_EEpromStart            .EQU    000h            ; const 
_EEpromEnd              .EQU    1FFh            ; const 
_FlashStart             .EQU    000h            ; const 
_FlashEnd               .EQU    3FFFh           ; 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    100h            ; var iData  byte
TWI_BR100               .EQU    048h            ; const 
TWI_BR400               .EQU    00Ch            ; const 
SysTickTime             .EQU    101h            ; var iData  byte
_INCRSTATE4             .EQU    102h            ; var iData  byte
_INCRCOUNT4_0           .EQU    103h            ; var iData  integer
_INCRCOUNT4_D0          .EQU    105h            ; var iData  integer
_TWI_TO                 .EQU    107h            ; var iData  byte
TWI_DevLock             .EQU    108h            ; var iData  DeviceLock
EEPROM                  .EQU    000h            ; var EEprom array



                        .RESET     000000h
                        .ORG       0, CODE_START
                        .STARTCODE 000068h


                        .XDATASTART -1


                        ; ============ user definitions module: SoftDDS ============

SoftDDS.c_sinw          .EQU    000h            ; const byte     0
SoftDDS.c_triw          .EQU    001h            ; const byte     1
SoftDDS.c_squw          .EQU    002h            ; const byte     2
SoftDDS.c_audio         .EQU    003h            ; const byte     3
SoftDDS.c_nrmo          .EQU    000h            ; const byte     0
SoftDDS.c_symo          .EQU    001h            ; const byte     1
SoftDDS.c_pwro          .EQU    002h            ; const byte     2
SoftDDS.c_psymo         .EQU    003h            ; const byte     3
SoftDDS.m_lastmenu      .EQU    00Dh            ; const enum     13
SoftDDS.DDRBinit        .EQU    03Fh            ; const byte     63
SoftDDS.PortBinit       .EQU    0EFh            ; const byte     239
SoftDDS.DDRCinit        .EQU    00Ch            ; const byte     12
SoftDDS.PortCinit       .EQU    0F3h            ; const byte     243
SoftDDS.DDRDinit        .EQU    004h            ; const byte     4
SoftDDS.PortDinit       .EQU    0FCh            ; const byte     252
SoftDDS.BtnInPortReg    .EQU    029h            ; const byte     41
SoftDDS.LEDOutPort      .EQU    02Bh            ; const byte     43
SoftDDS.DDSOutPort      .EQU    025h            ; const byte     37
SoftDDS.b_SCLK          .EQU    000h            ; const byte     0
SoftDDS.b_SDATA         .EQU    001h            ; const byte     1
SoftDDS.b_FSYNC         .EQU    002h            ; const byte     2
SoftDDS.b_LOADPOT       .EQU    003h            ; const byte     3
SoftDDS.b_STROBE        .EQU    004h            ; const byte     4
SoftDDS.c_ddsresetcmd   .EQU    02100h          ; const integer  8448
SoftDDS.c_ddssinecmd    .EQU    02000h          ; const integer  8192
SoftDDS.c_ddstrianglecmd      .EQU              02002h      ; const integer  8194
SoftDDS.c_ddssquarecmd  .EQU    02028h          ; const integer  8232
;fhz                     .EQU    '$006'; const String
;fdhz                    .EQU    '$020'; const String

                        .FILE     dBadj.txt

                        .FILE     H:\PROJAVR\MP3SOURCE\MP3source.pas
;dBadj                   .EQU    '$02D'; const String

                        .FILE     dB775mV.txt

                        .FILE     H:\PROJAVR\MP3SOURCE\MP3source.pas
;dBfac                   .EQU    '$000'; const String
;posx                    .EQU    '$004'; const String
;cursx                   .EQU    '$000'; const String
;posy                    .EQU    '$001'; const String
;Vers1Str                .EQU    'Audio-DDS V#1.10'; const String
;Vers2Str                .EQU    'C. Meyer 11/05'; 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
;NrmStr                  .EQU    'Nrm'; const String
;SymStr                  .EQU    'Sym'; const String
;PwrStr                  .EQU    'Pwr'; const String
;SymPwrStr               .EQU    'PSy'; const String
;PlayStr                 .EQU    'Play   '; const String
;WaitStr                 .EQU    'Wait'; const String
;InitStr                 .EQU    'Initialising...'; const String
;MemStr                  .EQU    'Memory '; const String
;PresetStr               .EQU    'Preset '; const String
;FrequStr                .EQU    'Frequency Hz    '; const String
;OptStr                  .EQU    'Wav Rpt Out Brst'; const String
SoftDDS.high            .EQU    0FFh            ; const boolean  true
SoftDDS.low             .EQU    000h            ; const boolean  false
SoftDDS.c_MP3playstop   .EQU    020h            ; const byte     32
SoftDDS.c_MP3rev        .EQU    040h            ; const byte     64
SoftDDS.c_MP3forw       .EQU    060h            ; const byte     96
SoftDDS.c_MP3repeat     .EQU    080h            ; const byte     128
SoftDDS.c_MP3volplus    .EQU    0A0h            ; const byte     160
SoftDDS.c_MP3equ        .EQU    0C0h            ; const byte     192
SoftDDS.c_MP3inh        .EQU    000h            ; const byte     0
;TerzArray               .EQU    '$04E20'; const String
SoftDDS.EEPatchArray    .EQU    00000h          ; var EEprom array
                        .SYM      EEPatchArray, 00000h, 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      dss_cmd, 00109h, 0000Eh, 3
SoftDDS.dss_cmd         .EQU    109h            ; var iData  word
                        .SYM      wave_cmd, 0010Bh, 0000Eh, 3
SoftDDS.wave_cmd        .EQU    10Bh            ; var iData  word
                        .SYM      incrDelta, 0010Dh, 00004h, 3
SoftDDS.incrDelta       .EQU    10Dh            ; var iData  integer
                        .SYM      MP3switchTemp, 0010Fh, 0000Dh, 3
SoftDDS.MP3switchTemp   .EQU    10Fh            ; var iData  byte
                        .SYM      MP3State, 00110h, 0000Dh, 3
SoftDDS.MP3State        .EQU    110h            ; var iData  byte
                        .SYM      SwitchState, 00111h, 0000Dh, 3
SoftDDS.SwitchState     .EQU    111h            ; var iData  byte
                        .SYM      BtnInState, 00112h, 0000Dh, 3
SoftDDS.BtnInState      .EQU    112h            ; var iData  byte
                        .SYM      EditWhich, 00113h, 0000Ah, 3
SoftDDS.EditWhich       .EQU    113h            ; var iData  enum
                        .SYM      DispWhich, 00114h, 0000Ah, 3
SoftDDS.DispWhich       .EQU    114h            ; var iData  enum
                        .SYM      LastMenu, 00115h, 0000Ah, 3
SoftDDS.LastMenu        .EQU    115h            ; var iData  enum
                        .SYM      EditedItem, 00116h, 0000Dh, 3
SoftDDS.EditedItem      .EQU    116h            ; var iData  byte
                        .SYM      DisplayValue, 00117h, 0000Dh, 3
SoftDDS.DisplayValue    .EQU    117h            ; var iData  byte
                        .SYM      EditValue, 00118h, 0000Dh, 3
SoftDDS.EditValue       .EQU    118h            ; var iData  byte
                        .SYM      ItemUpperLimit, 00119h, 0000Dh, 3
SoftDDS.ItemUpperLimit  .EQU    119h            ; var iData  byte
                        .SYM      ItemLowerLimit, 0011Ah, 0000Dh, 3
SoftDDS.ItemLowerLimit  .EQU    11Ah            ; var iData  byte
                        .SYM      x, 0011Bh, 0000Dh, 3
SoftDDS.x               .EQU    11Bh            ; var iData  byte
                        .SYM      y, 0011Ch, 0000Dh, 3
SoftDDS.y               .EQU    11Ch            ; var iData  byte
                        .SYM      GainOffset, 0011Dh, 0000Dh, 3
SoftDDS.GainOffset      .EQU    11Dh            ; var iData  byte
                        .SYM      digits, 0011Eh, 0000Dh, 3
SoftDDS.digits          .EQU    11Eh            ; var iData  byte
                        .SYM      BtnTime, 0011Fh, 0000Dh, 3
SoftDDS.BtnTime         .EQU    11Fh            ; var iData  byte
                        .SYM      BtnTime2, 00120h, 0000Dh, 3
SoftDDS.BtnTime2        .EQU    120h            ; var iData  byte
                        .SYM      BurstCount, 00121h, 0000Dh, 3
SoftDDS.BurstCount      .EQU    121h            ; var iData  byte
                        .SYM      prime, 00122h, 00003h, 3
SoftDDS.prime           .EQU    122h            ; var iData  boolean
                        .SYM      BurstPrime, 00123h, 00003h, 3
SoftDDS.BurstPrime      .EQU    123h            ; var iData  boolean
                        .SYM      Modified, 00124h, 00003h, 3
SoftDDS.Modified        .EQU    124h            ; var iData  boolean
                        .SYM      aBool, 00125h, 00003h, 3
SoftDDS.aBool           .EQU    125h            ; var iData  boolean
                        .SYM      PresetOn, 00126h, 00003h, 3
SoftDDS.PresetOn        .EQU    126h            ; var iData  boolean
                        .SYM      MP3isOn, 00127h, 00003h, 3
SoftDDS.MP3isOn         .EQU    127h            ; var iData  boolean
                        .SYM      MP3command, 00128h, 0000Dh, 3
SoftDDS.MP3command      .EQU    128h            ; var iData  byte
                        .SYM      MP3currenttrack, 00129h, 0000Dh, 3
SoftDDS.MP3currenttrack .EQU    129h            ; var iData  byte
                        .SYM      MP3repeatBset, 0012Ah, 00003h, 3
SoftDDS.MP3repeatBset   .EQU    12Ah            ; var iData  boolean
                        .SYM      PatchNum, 0012Bh, 0000Dh, 3
SoftDDS.PatchNum        .EQU    12Bh            ; var iData  byte
                        .SYM      PresetNum, 0012Ch, 0000Dh, 3
SoftDDS.PresetNum       .EQU    12Ch            ; var iData  byte
                        .SYM      MP3Track, 0012Dh, 0000Dh, 3
SoftDDS.MP3Track        .EQU    12Dh            ; var iData  byte
                        .SYM      EditArray, 0012Eh, 0003Dh, 3
SoftDDS.EditArray       .EQU    12Eh            ; var iData  array
                        .SYM      Edit1, 0012Eh, 0000Dh, 3
SoftDDS.Edit1           .EQU    12Eh            ; var iData  byte
                        .SYM      Frequ1, 0012Eh, 0000Dh, 3
SoftDDS.Frequ1          .EQU    12Eh            ; var iData  byte
                        .SYM      Frequ2, 0012Fh, 0000Dh, 3
SoftDDS.Frequ2          .EQU    12Fh            ; var iData  byte
                        .SYM      Frequ3, 00130h, 0000Dh, 3
SoftDDS.Frequ3          .EQU    130h            ; var iData  byte
                        .SYM      Frequ4, 00131h, 0000Dh, 3
SoftDDS.Frequ4          .EQU    131h            ; var iData  byte
                        .SYM      Frequ5, 00132h, 0000Dh, 3
SoftDDS.Frequ5          .EQU    132h            ; var iData  byte
                        .SYM      Frequ6, 00133h, 0000Dh, 3
SoftDDS.Frequ6          .EQU    133h            ; var iData  byte
                        .SYM      Frequ7, 00134h, 0000Dh, 3
SoftDDS.Frequ7          .EQU    134h            ; var iData  byte
                        .SYM      FrequDez, 00135h, 0000Dh, 3
SoftDDS.FrequDez        .EQU    135h            ; var iData  byte
                        .SYM      Wave, 00136h, 0000Dh, 3
SoftDDS.Wave            .EQU    136h            ; var iData  byte
                        .SYM      MP3sec, 00137h, 0000Dh, 3
SoftDDS.MP3sec          .EQU    137h            ; var iData  byte
                        .SYM      OutputMode, 00138h, 0000Dh, 3
SoftDDS.OutputMode      .EQU    138h            ; var iData  byte
                        .SYM      BurstMode, 00139h, 0000Dh, 3
SoftDDS.BurstMode       .EQU    139h            ; var iData  byte
                        .SYM      LeveldB, 0013Ah, 0000Dh, 3
SoftDDS.LeveldB         .EQU    13Ah            ; var iData  byte
                        .SYM      PwrGain, 0013Dh, 0000Dh, 3
SoftDDS.PwrGain         .EQU    13Dh            ; var iData  byte
                        .SYM      SaveArray, 0013Eh, 0003Dh, 3
SoftDDS.SaveArray       .EQU    13Eh            ; var iData  array
                        .SYM      Save1, 0013Eh, 0000Dh, 3
SoftDDS.Save1           .EQU    13Eh            ; var iData  byte
SoftDDS.LevelStr        .EQU    14Eh            ; var iData  string
                        .SYM      LevelStr, 0014Eh, 0303Ch, 3
SoftDDS.FreqStr         .EQU    156h            ; var iData  string
                        .SYM      FreqStr, 00156h, 0303Ch, 3
SoftDDS.MP3repeatTimer  .EQU    15Fh            ; var iData  word
                        .SYM      MP3repeatTimer, 0015Fh, 0000Eh, 3
SoftDDS.BurstTimer      .EQU    161h            ; var iData  byte
                        .SYM      BurstTimer, 00161h, 0000Dh, 3
                        .SYM      MP3runningTimer, 00162h, 0000Dh, 3
SoftDDS.MP3runningTimer .EQU    162h            ; var iData  byte
                        .SYM      MP3runningSeconds, 00163h, 0000Dh, 3
SoftDDS.MP3runningSeconds     .EQU              163h        ; var iData  byte
SoftDDS.EditArrayLen    .EQU    00Fh            ; const byte     15
                        .FUNC     OnSysTick, 396, 00020h
SoftDDS.OnSysTick:
                        .BLOCK    397
                        .LINE     398
                        LDS       _ACCA, SoftDDS.MP3runningTimer
                        INC       _ACCA
                        STS       SoftDDS.MP3runningTimer, _ACCA
                        .LINE     399
                        LDS       _ACCA, SoftDDS.MP3runningTimer
                        CPI       _ACCA, 064h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0000
                        SER       _ACCA
SoftDDS.L0000:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0003
                        BRNE      SoftDDS.L0003
                        .BRANCH   20,SoftDDS.L0001
                        JMP       SoftDDS.L0001
SoftDDS.L0003:
                        .BLOCK    399
                        .LINE     400
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3RUNNINGTIMER, _ACCA
                        .LINE     401
                        LDS       _ACCA, SoftDDS.MP3runningSeconds
                        INC       _ACCA
                        STS       SoftDDS.MP3runningSeconds, _ACCA
                        .LINE     402
                        LDS       _ACCA, SoftDDS.MP3runningSeconds
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.MP3sec
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0004
                        SER       _ACCA
SoftDDS.L0004:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0007
                        BRNE      SoftDDS.L0007
                        .BRANCH   20,SoftDDS.L0005
                        JMP       SoftDDS.L0005
SoftDDS.L0007:
                        .BLOCK    402
                        .LINE     403
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3RUNNINGSECONDS, _ACCA
                        .ENDBLOCK 404
SoftDDS.L0005:
SoftDDS.L0006:
                        .ENDBLOCK 405
SoftDDS.L0001:
SoftDDS.L0002:
                        .ENDBLOCK 406
SoftDDS.OnSysTick_X:
                        .LINE     406
                        .BRANCH   19
                        RET
                        .ENDFUNC  406

                        .FUNC     SetupDSS, 415, 00020h
SoftDDS.SetupDSS:
                        .BLOCK    416
                        .ENDBLOCK 417
SoftDDS.SetupDSS_X:
                        .LINE     417
                        .BRANCH   19
                        RET
                        .ENDFUNC  417

                        .FUNC     SetLevelDDS, 418, 00020h
SoftDDS.SetLevelDDS:
                        .BLOCK    419
                        .ENDBLOCK 420
SoftDDS.SetLevelDDS_X:
                        .LINE     420
                        .BRANCH   19
                        RET
                        .ENDFUNC  420

                        .FUNC     SendDDS, 421, 00020h
SoftDDS.SendDDS:
                        .BLOCK    422
                        .ENDBLOCK 423
SoftDDS.SendDDS_X:
                        .LINE     423
                        .BRANCH   19
                        RET
                        .ENDFUNC  423

                        .FUNC     SendSR, 424, 00020h
SoftDDS.SendSR:
                        .BLOCK    425
                        .ENDBLOCK 426
SoftDDS.SendSR_X:
                        .LINE     426
                        .BRANCH   19
                        RET
                        .ENDFUNC  426

                        .FUNC     miniDDS, 427, 00020h
SoftDDS.miniDDS:
                        .BLOCK    428
                        .ENDBLOCK 429
SoftDDS.miniDDS_X:
                        .LINE     429
                        .BRANCH   19
                        RET
                        .ENDFUNC  429

                        .FUNC     PresetCopyFromROM, 435, 00020h
SoftDDS.PresetCopyFromROM:
                        .BLOCK    437
                        .LINE     439
                        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
                        CALL      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     440
                        LDI       _ACCCLO, SoftDDS.FreqStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.FreqStr SHRB 8
                        ADIW      _ACCCLO, 00008h
                        LDI       _ACCA, 030h
                        ST        Z+, _ACCA
                        .LINE     441
                        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.L0010:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0011
                        CLR       _ACCA
SoftDDS.L0011:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0012
                        BREQ      SoftDDS.L0012
                        .BRANCH   20,SoftDDS.L0009
                        JMP       SoftDDS.L0009
SoftDDS.L0012:
                        .BLOCK    442
                        .LINE     442
                        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     443
                        MOV       _ACCA, SoftDDS.k
                        CPI       _ACCA, 020h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0013
                        SER       _ACCA
SoftDDS.L0013:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0016
                        BRNE      SoftDDS.L0016
                        .BRANCH   20,SoftDDS.L0014
                        JMP       SoftDDS.L0014
SoftDDS.L0016:
                        .BLOCK    444
                        .LINE     444
                        LDI       _ACCA, 030h
                        MOV       SOFTDDS.K, _ACCA
                        .ENDBLOCK 445
SoftDDS.L0014:
SoftDDS.L0015:
                        .LINE     446
                        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 447
SoftDDS.L0008:
                        .LINE     447
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0009
                        BREQ      SoftDDS.L0009
                        .BRANCH   20,SoftDDS.L0010
                        JMP       SoftDDS.L0010
SoftDDS.L0009:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 448
SoftDDS.PresetCopyFromROM_X:
                        .LINE     448
                        .BRANCH   19
                        RET
                        .ENDFUNC  448

                        .FUNC     PresetSave, 450, 00020h
SoftDDS.PresetSave:
                        .BLOCK    452
                        .LINE     453
                        LDI       _ACCA, SoftDDS.Frequ1 SHRB 8
                        LDI       _ACCB, SoftDDS.Frequ1 AND 0FFh
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDI       _ACCA, SoftDDS.Save1 SHRB 8
                        LDI       _ACCB, SoftDDS.Save1 AND 0FFh
                        MOVW      _ACCCLO, _ACCB
                        MOVW      _ACCBLO, _ACCCLO
                        POP       _ACCCHI
                        POP       _ACCCLO
                        LDI       _ACCALO, 00010h AND 0FFh
                        LDI       _ACCAHI, 00010h SHRB 8
                        CALL      SYSTEM.BlockCopyC
                        .ENDBLOCK 454
SoftDDS.PresetSave_X:
                        .LINE     454
                        .BRANCH   19
                        RET
                        .ENDFUNC  454

                        .FUNC     PresetRestore, 456, 00020h
SoftDDS.PresetRestore:
                        .BLOCK    458
                        .LINE     459
                        LDI       _ACCA, SoftDDS.Save1 SHRB 8
                        LDI       _ACCB, SoftDDS.Save1 AND 0FFh
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDI       _ACCA, SoftDDS.Frequ1 SHRB 8
                        LDI       _ACCB, SoftDDS.Frequ1 AND 0FFh
                        MOVW      _ACCCLO, _ACCB
                        MOVW      _ACCBLO, _ACCCLO
                        POP       _ACCCHI
                        POP       _ACCCLO
                        LDI       _ACCALO, 00010h AND 0FFh
                        LDI       _ACCAHI, 00010h SHRB 8
                        CALL      SYSTEM.BlockCopyC
                        .ENDBLOCK 460
SoftDDS.PresetRestore_X:
                        .LINE     460
                        .BRANCH   19
                        RET
                        .ENDFUNC  460

                        .FUNC     PatchCopyFromEE, 462, 00020h
SoftDDS.PatchCopyFromEE:
                        SBIW      _FRAMEPTR, 2
                        .BLOCK    465
                        .LINE     466
                        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, 00Fh
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
SoftDDS.L0019:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0020
                        CLR       _ACCA
SoftDDS.L0020:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0021
                        BREQ      SoftDDS.L0021
                        .BRANCH   20,SoftDDS.L0018
                        JMP       SoftDDS.L0018
SoftDDS.L0021:
                        .BLOCK    467
                        .LINE     467
                        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
                        CALL      SYSTEM.SHL16_R
                        POP       _ACCAHI
                        POP       _ACCALO
                        ADD       _ACCB, _ACCALO
                        ADC       _ACCA, _ACCAHI
                        STD       Y+004h, _ACCA
                        STD       Y+003h, _ACCB
                        .LINE     468
                        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
                        CALL      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 469
SoftDDS.L0017:
                        .LINE     469
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0018
                        BREQ      SoftDDS.L0018
                        .BRANCH   20,SoftDDS.L0019
                        JMP       SoftDDS.L0019
SoftDDS.L0018:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 470
SoftDDS.PatchCopyFromEE_X:
                        .LINE     470
                        .BRANCH   19
                        RET
                        .ENDFUNC  470

                        .FUNC     PatchCopyToEE, 472, 00020h
SoftDDS.PatchCopyToEE:
                        SBIW      _FRAMEPTR, 2
                        .BLOCK    475
                        .LINE     476
                        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, 00Fh
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
SoftDDS.L0024:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0025
                        CLR       _ACCA
SoftDDS.L0025:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0026
                        BREQ      SoftDDS.L0026
                        .BRANCH   20,SoftDDS.L0023
                        JMP       SoftDDS.L0023
SoftDDS.L0026:
                        .BLOCK    477
                        .LINE     477
                        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
                        CALL      SYSTEM.SHL16_R
                        POP       _ACCAHI
                        POP       _ACCALO
                        ADD       _ACCB, _ACCALO
                        ADC       _ACCA, _ACCAHI
                        STD       Y+004h, _ACCA
                        STD       Y+003h, _ACCB
                        .LINE     478
                        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
                        CALL      SYSTEM.WriteEEp8
                        .ENDBLOCK 479
SoftDDS.L0022:
                        .LINE     479
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0023
                        BREQ      SoftDDS.L0023
                        .BRANCH   20,SoftDDS.L0024
                        JMP       SoftDDS.L0024
SoftDDS.L0023:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 480
SoftDDS.PatchCopyToEE_X:
                        .LINE     480
                        .BRANCH   19
                        RET
                        .ENDFUNC  480

                        .FUNC     LCD1xy, 485, 00020h
SoftDDS.LCD1xy:
                        .BLOCK    486
                        .LINE     490
                        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
                        CALL      SYSTEM.LCDXY_M
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 492
SoftDDS.LCD1xy_X:
                        .LINE     492
                        .BRANCH   19
                        RET
                        .ENDFUNC  492

                        .FUNC     SetPos, 494, 00020h
SoftDDS.SetPos:
                        .BLOCK    495
                        .LINE     496
                        LDS       _ACCA, SoftDDS.DispWhich
                        MOV       SOFTDDS.I, _ACCA
                        .LINE     497
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.posx AND 0FFh
                        LDI       _ACCCHI, SoftDDS.posx SHRB 8
                        ANDI      _ACCA, 15
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCA, Z
                        STS       SOFTDDS.X, _ACCA
                        .LINE     498
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.posy AND 0FFh
                        LDI       _ACCCHI, SoftDDS.posy SHRB 8
                        ANDI      _ACCA, 15
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCA, Z
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     499
                        .BRANCH   17,SoftDDS.LCD1XY
                        CALL      SoftDDS.LCD1XY
                        .ENDBLOCK 500
SoftDDS.SetPos_X:
                        .LINE     500
                        .BRANCH   19
                        RET
                        .ENDFUNC  500

                        .FUNC     SetCursor, 502, 00020h
SoftDDS.SetCursor:
                        .BLOCK    503
                        .LINE     504
                        LDS       _ACCA, SoftDDS.EditWhich
                        MOV       SOFTDDS.I, _ACCA
                        .LINE     505
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.cursx AND 0FFh
                        LDI       _ACCCHI, SoftDDS.cursx SHRB 8
                        ANDI      _ACCA, 15
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCA, Z
                        STS       SOFTDDS.X, _ACCA
                        .LINE     506
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.posy AND 0FFh
                        LDI       _ACCCHI, SoftDDS.posy SHRB 8
                        ANDI      _ACCA, 15
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCA, Z
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     507
                        .BRANCH   17,SoftDDS.LCD1XY
                        CALL      SoftDDS.LCD1XY
                        .LINE     512
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .ENDBLOCK 514
SoftDDS.SetCursor_X:
                        .LINE     514
                        .BRANCH   19
                        RET
                        .ENDFUNC  514

                        .FUNC     LCD1x0y0, 517, 00020h
SoftDDS.LCD1x0y0:
                        .BLOCK    518
                        .LINE     522
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL      SYSTEM.LCDHOME_M
                        .LINE     524
                        LDI       _ACCA, 00001h SHRB 8
                        LDI       _ACCB, 00001h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .ENDBLOCK 525
SoftDDS.LCD1x0y0_X:
                        .LINE     525
                        .BRANCH   19
                        RET
                        .ENDFUNC  525

                        .FUNC     LCD1x0y1, 527, 00020h
SoftDDS.LCD1x0y1:
                        .BLOCK    528
                        .LINE     529
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     530
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     531
                        .BRANCH   17,SoftDDS.LCD1XY
                        CALL      SoftDDS.LCD1XY
                        .ENDBLOCK 532
SoftDDS.LCD1x0y1_X:
                        .LINE     532
                        .BRANCH   19
                        RET
                        .ENDFUNC  532


                        .FILE     buttons.pas
                        .FUNC     WriteLCD, 84, 00020h
SoftDDS.WriteLCD:
                        .BLOCK    87
                        .ASM
                        .LINE     90
                        LDD       _ACCCLO, Y+000h
                        .LINE     91
                        CLR       _ACCA
                        .LINE     92
                        LDD       _ACCCHI, Y+001h
                        .LINE     93
                        ADC       _ACCCHI, _ACCA
                        .LINE     95
                        PUSH      _FRAMEPTR
                        .LINE     96
                        PUSH      _FPTRHI
                        .LINE     97
                        LDI       _ACCA, 1 SHLB _DEVICE
                        .LINE     98
                        OR        Flags, _ACCA
                        .LINE     99
                        LDI       _ACCB, SYSTEM.LCDOut_M SHRB 1
                        .LINE     100
                        LDI       _ACCA, SYSTEM.LCDOut_M SHRB 9
                        .LINE     101
                        ST        -Y, _ACCA
                        .LINE     102
                        ST        -Y, _ACCB
                        .LINE     103
                        LPM       _ACCBHI, Z+      ; Pascal-Längenbyte
                        WriteLCDLoop:
                        .LINE     105
                        LPM       _ACCA, Z+
                        .LINE     106
                        CALL     SYSTEM.Char2Str
                        .LINE     107
                        DEC       _ACCBHI
                        .LINE     108
                        BRNE      WriteLCDLoop
                        .LINE     109
                        POP       _FPTRHI
                        .LINE     110
                        POP       _FRAMEPTR
                        .endasm
                        .ENDBLOCK 112
SoftDDS.WriteLCD_X:
                        .LINE     112
                        .BRANCH   19
                        RET
                        .ENDFUNC  112

                        .FUNC     FastRepeatRelease, 114, 00020h
SoftDDS.FastRepeatRelease:
                        .BLOCK    116
                        .LINE     125
                        CLR       _ACCA
                        LDS       _ACCB, SoftDDS.BtnTime2
                        LDI       _ACCEHI, 000h
                        CP        _ACCEHI, _ACCB
                        BRCC      SoftDDS.L0027
                        DEC       _ACCB
                        STS       SoftDDS.BtnTime2, _ACCB
                        SER       _ACCA
SoftDDS.L0027:
SoftDDS.L0028:
                        .BLOCK    126
                        .LINE     127
                        LDS       _ACCA, SoftDDS.BtnTime
                        DEC       _ACCA
                        STS       SoftDDS.BtnTime, _ACCA
                        .LINE     128
                        LDS       _ACCA, SoftDDS.BtnTime2
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0031
                        SER       _ACCA
SoftDDS.L0031:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0034
                        BRNE      SoftDDS.L0034
                        .BRANCH   20,SoftDDS.L0032
                        JMP       SoftDDS.L0032
SoftDDS.L0034:
                        .BLOCK    128
                        .LINE     129
                        LDI       _ACCA, 00004h SHRB 8
                        LDI       _ACCB, 00004h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .ENDBLOCK 130
                        .BRANCH   20,SoftDDS.L0033
                        JMP       SoftDDS.L0033
SoftDDS.L0032:
                        .BLOCK    130
                        .LINE     131
                        LDI       _ACCA, 0000Fh SHRB 8
                        LDI       _ACCB, 0000Fh AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .ENDBLOCK 132
SoftDDS.L0033:
                        .LINE     133
                        IN        _ACCA, PinD
                        STS       SOFTDDS.BTNINSTATE, _ACCA
                        .LINE     134
                        LDS       _ACCA, SoftDDS.BtnInState
                        ORI       _ACCA, 007h
                        MOV       SOFTDDS.I, _ACCA
                        .ENDBLOCK 135
                        .LINE     135
SoftDDS.L0029:
                        MOV       _ACCA, SoftDDS.i
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0035
                        SER       _ACCA
SoftDDS.L0035:
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.BtnTime
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0036
                        SER       _ACCA
SoftDDS.L0036:
                        POP       _ACCB
                        OR        _ACCA, _ACCB
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0037
                        BRNE      SoftDDS.L0037
                        .BRANCH   20,SoftDDS.L0028
                        JMP       SoftDDS.L0028
SoftDDS.L0037:
SoftDDS.L0030:
                        .LINE     136
                        MOV       _ACCA, SoftDDS.i
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0038
                        SER       _ACCA
SoftDDS.L0038:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0041
                        BRNE      SoftDDS.L0041
                        .BRANCH   20,SoftDDS.L0039
                        JMP       SoftDDS.L0039
SoftDDS.L0041:
                        .BLOCK    137
                        .LINE     137
                        LDI       _ACCA, 028h
                        STS       SOFTDDS.BTNTIME, _ACCA
                        .LINE     138
                        LDI       _ACCA, 005h
                        STS       SOFTDDS.BTNTIME2, _ACCA
                        .ENDBLOCK 139
                        .BRANCH   20,SoftDDS.L0040
                        JMP       SoftDDS.L0040
SoftDDS.L0039:
                        .BLOCK    139
                        .LINE     140
                        LDI       _ACCA, 00Ah
                        STS       SOFTDDS.BTNTIME, _ACCA
                        .ENDBLOCK 141
SoftDDS.L0040:
                        .ENDBLOCK 143
SoftDDS.FastRepeatRelease_X:
                        .LINE     143
                        .BRANCH   19
                        RET
                        .ENDFUNC  143

                        .FUNC     SlowRepeatRelease, 145, 00020h
SoftDDS.SlowRepeatRelease:
                        .BLOCK    146
                        .LINE     147
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.BTNTIME2, _ACCA
                        .LINE     148
                        .BRANCH   17,SoftDDS.FASTREPEATRELEASE
                        CALL      SoftDDS.FASTREPEATRELEASE
                        .ENDBLOCK 149
SoftDDS.SlowRepeatRelease_X:
                        .LINE     149
                        .BRANCH   19
                        RET
                        .ENDFUNC  149

                        .FUNC     NaviButton, 151, 00020h
SoftDDS.NaviButton:
                        .BLOCK    153
                        .LINE     154
                        IN        _ACCA, PinD
                        STS       SOFTDDS.BTNINSTATE, _ACCA
                        .LINE     155
                        LDS       _ACCA, SoftDDS.BtnInState
                        ORI       _ACCA, 067h
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0042
                        SER       _ACCA
SoftDDS.L0042:
                        STS       SOFTDDS.ABOOL, _ACCA
                        .LINE     156
                        LDS       _ACCA, SoftDDS.aBool
                        .ENDBLOCK 157
SoftDDS.NaviButton_X:
                        .LINE     157
                        .BRANCH   19
                        RET
                        .ENDFUNC  157

                        .FUNC     UpDownButton, 159, 00020h
SoftDDS.UpDownButton:
                        .BLOCK    161
                        .LINE     162
                        IN        _ACCA, PinD
                        STS       SOFTDDS.BTNINSTATE, _ACCA
                        .LINE     163
                        LDS       _ACCA, SoftDDS.BtnInState
                        ORI       _ACCA, 09Fh
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0043
                        SER       _ACCA
SoftDDS.L0043:
                        STS       SOFTDDS.ABOOL, _ACCA
                        .LINE     164
                        LDS       _ACCA, SoftDDS.aBool
                        .ENDBLOCK 165
SoftDDS.UpDownButton_X:
                        .LINE     165
                        .BRANCH   19
                        RET
                        .ENDFUNC  165


                        .FILE     H:\PROJAVR\MP3SOURCE\MP3source.pas

                        .FILE     mp3control.pas
                        .FUNC     MP3remote, 5, 00020h
SoftDDS.MP3remote:
                        .BLOCK    7
                        .LINE     8
                        LDS       _ACCA, SoftDDS.MP3command
                        STS       SOFTDDS.MP3STATE, _ACCA
                        .LINE     9
                        .BRANCH   17,SoftDDS.SENDSR
                        CALL      SoftDDS.SENDSR
                        .LINE     10
                        LDI       _ACCA, 00064h SHRB 8
                        LDI       _ACCB, 00064h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .LINE     11
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3STATE, _ACCA
                        .LINE     12
                        .BRANCH   17,SoftDDS.SENDSR
                        CALL      SoftDDS.SENDSR
                        .LINE     13
                        LDI       _ACCA, 00096h SHRB 8
                        LDI       _ACCB, 00096h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .ENDBLOCK 14
SoftDDS.MP3remote_X:
                        .LINE     14
                        .BRANCH   19
                        RET
                        .ENDFUNC  14

                        .FUNC     MP3setRepeatA, 16, 00020h
SoftDDS.MP3setRepeatA:
                        SBIW      _FRAMEPTR, 2
                        .BLOCK    19
                        .LINE     20
                        LDS       _ACCA, SoftDDS.MP3sec
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        LDI       _ACCBLO, 00064h AND 0FFh
                        LDI       _ACCBHI, 00064h SHRB 8
                        CLT
                        BLD       Flags, _SIGN
                        CALL      SYSTEM.MUL16
                        SUBI      _ACCB, -00004h AND 0FFh
                        SBCI      _ACCA, -00004h SHRB 8
                        STD       Y+001h, _ACCA
                        STD       Y+000h, _ACCB
                        .LINE     21
                        LDD       _ACCB, Y+000h
                        LDD       _ACCA, Y+001h
                        LDI       _ACCCLO, SoftDDS.MP3repeatTimer AND 0FFh
                        LDI       _ACCCHI, SoftDDS.MP3repeatTimer SHRB 8
                        LDI       _ACCBHI, 001h
                        CALL      SYSTEM.SetSysTimer
                        .LINE     22
                        LDI       _ACCA, 00064h SHRB 8
                        LDI       _ACCB, 00064h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .LINE     23
                        LDI       _ACCA, 080h
                        STS       SOFTDDS.MP3COMMAND, _ACCA
                        .LINE     24
                        .BRANCH   17,SoftDDS.MP3REMOTE
                        CALL      SoftDDS.MP3REMOTE
                        .LINE     25
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3REPEATBSET, _ACCA
                        .LINE     26
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3RUNNINGSECONDS, _ACCA
                        .LINE     27
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3RUNNINGTIMER, _ACCA
                        .ENDBLOCK 28
SoftDDS.MP3setRepeatA_X:
                        .LINE     28
                        .BRANCH   19
                        RET
                        .ENDFUNC  28

                        .FUNC     MP3setRepeatB, 30, 00020h
SoftDDS.MP3setRepeatB:
                        .BLOCK    32
                        .LINE     33
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.MP3SETREPEATA
                        CALL      SoftDDS.MP3SETREPEATA
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     34
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.MP3REPEATBSET, _ACCA
                        .ENDBLOCK 35
SoftDDS.MP3setRepeatB_X:
                        .LINE     35
                        .BRANCH   19
                        RET
                        .ENDFUNC  35

                        .FUNC     MP3next, 37, 00020h
SoftDDS.MP3next:
                        .BLOCK    39
                        .LINE     40
                        LDI       _ACCA, 060h
                        STS       SOFTDDS.MP3COMMAND, _ACCA
                        .LINE     41
                        .BRANCH   17,SoftDDS.MP3REMOTE
                        CALL      SoftDDS.MP3REMOTE
                        .LINE     42
                        LDS       _ACCA, SoftDDS.MP3currenttrack
                        INC       _ACCA
                        STS       SoftDDS.MP3currenttrack, _ACCA
                        .ENDBLOCK 43
SoftDDS.MP3next_X:
                        .LINE     43
                        .BRANCH   19
                        RET
                        .ENDFUNC  43

                        .FUNC     MP3prev, 45, 00020h
SoftDDS.MP3prev:
                        .BLOCK    47
                        .LINE     48
                        LDI       _ACCA, 040h
                        STS       SOFTDDS.MP3COMMAND, _ACCA
                        .LINE     49
                        .BRANCH   17,SoftDDS.MP3REMOTE
                        CALL      SoftDDS.MP3REMOTE
                        .LINE     50
                        LDS       _ACCA, SoftDDS.MP3currenttrack
                        DEC       _ACCA
                        STS       SoftDDS.MP3currenttrack, _ACCA
                        .ENDBLOCK 51
SoftDDS.MP3prev_X:
                        .LINE     51
                        .BRANCH   19
                        RET
                        .ENDFUNC  51

                        .FUNC     MP3gotoTrack, 53, 00020h
SoftDDS.MP3gotoTrack:
                        .BLOCK    55
                        .LINE     56
                        LDS       _ACCA, SoftDDS.MP3Track
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.MP3currenttrack
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0044
                        BRLO      SoftDDS.L0044
                        SER       _ACCA
SoftDDS.L0044:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0047
                        BRNE      SoftDDS.L0047
                        .BRANCH   20,SoftDDS.L0045
                        JMP       SoftDDS.L0045
SoftDDS.L0047:
                        .BLOCK    56
SoftDDS.L0048:
                        .BLOCK    57
                        .LINE     58
                        .BRANCH   17,SoftDDS.MP3NEXT
                        CALL      SoftDDS.MP3NEXT
                        .ENDBLOCK 59
                        .LINE     59
SoftDDS.L0049:
                        LDS       _ACCA, SoftDDS.MP3currenttrack
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.MP3Track
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0051
                        SER       _ACCA
SoftDDS.L0051:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0052
                        BRNE      SoftDDS.L0052
                        .BRANCH   20,SoftDDS.L0048
                        JMP       SoftDDS.L0048
SoftDDS.L0052:
SoftDDS.L0050:
                        .ENDBLOCK 60
SoftDDS.L0045:
SoftDDS.L0046:
                        .LINE     61
                        LDS       _ACCA, SoftDDS.MP3Track
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.MP3currenttrack
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0053
                        CLR       _ACCA
SoftDDS.L0053:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0056
                        BRNE      SoftDDS.L0056
                        .BRANCH   20,SoftDDS.L0054
                        JMP       SoftDDS.L0054
SoftDDS.L0056:
                        .BLOCK    61
SoftDDS.L0057:
                        .BLOCK    62
                        .LINE     63
                        .BRANCH   17,SoftDDS.MP3PREV
                        CALL      SoftDDS.MP3PREV
                        .ENDBLOCK 64
                        .LINE     64
SoftDDS.L0058:
                        LDS       _ACCA, SoftDDS.MP3currenttrack
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.MP3Track
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0060
                        SER       _ACCA
SoftDDS.L0060:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0061
                        BRNE      SoftDDS.L0061
                        .BRANCH   20,SoftDDS.L0057
                        JMP       SoftDDS.L0057
SoftDDS.L0061:
SoftDDS.L0059:
                        .ENDBLOCK 65
SoftDDS.L0054:
SoftDDS.L0055:
                        .LINE     66
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.MP3SETREPEATA
                        CALL      SoftDDS.MP3SETREPEATA
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 67
SoftDDS.MP3gotoTrack_X:
                        .LINE     67
                        .BRANCH   19
                        RET
                        .ENDFUNC  67

                        .FUNC     MP3checkRepeat, 69, 00020h
SoftDDS.MP3checkRepeat:
                        .BLOCK    72
                        .LINE     73
                        CLR       _ACCA
                        MOV       _ACCB, _SYSTFLAGS
                        ANDI      _ACCB, 001h
                        BRNE      SoftDDS.L0062
                        COM       _ACCA
SoftDDS.L0062:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0065
                        BRNE      SoftDDS.L0065
                        .BRANCH   20,SoftDDS.L0063
                        JMP       SoftDDS.L0063
SoftDDS.L0065:
                        .BLOCK    73
                        .LINE     74
                        LDS       _ACCA, SoftDDS.MP3repeatBset
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0068
                        BRNE      SoftDDS.L0068
                        .BRANCH   20,SoftDDS.L0066
                        JMP       SoftDDS.L0066
SoftDDS.L0068:
                        .BLOCK    74
                        .LINE     75
                        .BRANCH   17,SoftDDS.MP3SETREPEATB
                        CALL      SoftDDS.MP3SETREPEATB
                        .ENDBLOCK 76
SoftDDS.L0066:
SoftDDS.L0067:
                        .ENDBLOCK 81
SoftDDS.L0063:
SoftDDS.L0064:
                        .ENDBLOCK 82
SoftDDS.MP3checkRepeat_X:
                        .LINE     82
                        .BRANCH   19
                        RET
                        .ENDFUNC  82

                        .FUNC     MP3on, 84, 00020h
SoftDDS.MP3on:
                        .BLOCK    86
                        .LINE     87
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.MP3ISON, _ACCA
                        .LINE     88
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3STATE, _ACCA
                        .LINE     89
                        .BRANCH   17,SoftDDS.SENDSR
                        CALL      SoftDDS.SENDSR
                        .LINE     90
                        LDI       _ACCA, 00064h SHRB 8
                        LDI       _ACCB, 00064h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .LINE     91
                        LDI       _ACCA, 020h
                        STS       SOFTDDS.MP3STATE, _ACCA
                        .LINE     92
                        .BRANCH   17,SoftDDS.SENDSR
                        CALL      SoftDDS.SENDSR
                        .LINE     93
                        LDI       _ACCA, 004B0h SHRB 8
                        LDI       _ACCB, 004B0h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .LINE     95
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3COMMAND, _ACCA
                        .LINE     96
                        .BRANCH   17,SoftDDS.MP3REMOTE
                        CALL      SoftDDS.MP3REMOTE
                        .LINE     97
                        LDI       _ACCA, 000C8h SHRB 8
                        LDI       _ACCB, 000C8h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .LINE     98
                        LDI       _ACCA, 060h
                        STS       SOFTDDS.MP3STATE, _ACCA
                        .LINE     99
                        .BRANCH   17,SoftDDS.SENDSR
                        CALL      SoftDDS.SENDSR
                        .LINE     100
                        LDI       _ACCA, 00BB8h SHRB 8
                        LDI       _ACCB, 00BB8h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .LINE     101
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3COMMAND, _ACCA
                        .LINE     102
                        .BRANCH   17,SoftDDS.MP3REMOTE
                        CALL      SoftDDS.MP3REMOTE
                        .LINE     103
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.MP3CURRENTTRACK, _ACCA
                        .LINE     104
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.MP3SETREPEATA
                        CALL      SoftDDS.MP3SETREPEATA
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 105
SoftDDS.MP3on_X:
                        .LINE     105
                        .BRANCH   19
                        RET
                        .ENDFUNC  105

                        .FUNC     MP3off, 107, 00020h
SoftDDS.MP3off:
                        .BLOCK    109
                        .LINE     110
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3ISON, _ACCA
                        .LINE     111
                        .BRANCH   17,SoftDDS.SENDSR
                        CALL      SoftDDS.SENDSR
                        .ENDBLOCK 112
SoftDDS.MP3off_X:
                        .LINE     112
                        .BRANCH   19
                        RET
                        .ENDFUNC  112


                        .FILE     H:\PROJAVR\MP3SOURCE\MP3source.pas
                        .FUNC     CheckItemLimits, 537, 00020h
SoftDDS.CheckItemLimits:
                        .BLOCK    539
                        .LINE     540
                        LDS       _ACCA, SoftDDS.EditValue
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0069
                        SER       _ACCA
SoftDDS.L0069:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0072
                        BRNE      SoftDDS.L0072
                        .BRANCH   20,SoftDDS.L0070
                        JMP       SoftDDS.L0070
SoftDDS.L0072:
                        .BLOCK    540
                        .LINE     541
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 542
SoftDDS.L0070:
SoftDDS.L0071:
                        .LINE     543
                        LDS       _ACCA, SoftDDS.EditValue
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.ItemUpperLimit
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0073
                        BRLO      SoftDDS.L0073
                        SER       _ACCA
SoftDDS.L0073:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0076
                        BRNE      SoftDDS.L0076
                        .BRANCH   20,SoftDDS.L0074
                        JMP       SoftDDS.L0074
SoftDDS.L0076:
                        .BLOCK    543
                        .LINE     544
                        LDS       _ACCA, SoftDDS.ItemUpperLimit
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 545
SoftDDS.L0074:
SoftDDS.L0075:
                        .LINE     546
                        LDS       _ACCA, SoftDDS.EditValue
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.ItemlowerLimit
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0077
                        CLR       _ACCA
SoftDDS.L0077:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0080
                        BRNE      SoftDDS.L0080
                        .BRANCH   20,SoftDDS.L0078
                        JMP       SoftDDS.L0078
SoftDDS.L0080:
                        .BLOCK    546
                        .LINE     547
                        LDS       _ACCA, SoftDDS.ItemlowerLimit
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 548
SoftDDS.L0078:
SoftDDS.L0079:
                        .ENDBLOCK 549
SoftDDS.CheckItemLimits_X:
                        .LINE     549
                        .BRANCH   19
                        RET
                        .ENDFUNC  549

                        .FUNC     SetItemLimPos, 551, 00020h
SoftDDS.SetItemLimPos:
                        .BLOCK    553
                        .LINE     554
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.ITEMLOWERLIMIT, _ACCA
                        .LINE     555
                        LDI       _ACCA, 009h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .LINE     556
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     557
                        LDS       _ACCA, SoftDDS.EditWhich
                        .LINE     558
                        CPI       _ACCA, 8
                        .BRANCH   3,SoftDDS.L0084
                        BREQ      SoftDDS.L0084
                        .BRANCH   20,SoftDDS.L0083
                        JMP       SoftDDS.L0083
SoftDDS.L0084:
SoftDDS.L0082:
                        .BLOCK    559
                        .LINE     559
                        LDI       _ACCA, 01Fh
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .ENDBLOCK 560
                        .BRANCH   20,SoftDDS.L0081
                        JMP       SoftDDS.L0081
SoftDDS.L0083:
                        .LINE     561
                        CPI       _ACCA, 9
                        .BRANCH   3,SoftDDS.L0087
                        BREQ      SoftDDS.L0087
                        .BRANCH   20,SoftDDS.L0086
                        JMP       SoftDDS.L0086
SoftDDS.L0087:
SoftDDS.L0085:
                        .BLOCK    565
                        .LINE     565
                        LDI       _ACCA, 050h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .ENDBLOCK 567
                        .BRANCH   20,SoftDDS.L0081
                        JMP       SoftDDS.L0081
SoftDDS.L0086:
                        .LINE     568
                        CPI       _ACCA, 0
                        .BRANCH   2,SoftDDS.L0090
                        BRCC      SoftDDS.L0090
                        .BRANCH   20,SoftDDS.L0089
                        JMP       SoftDDS.L0089
SoftDDS.L0090:
                        CPI       _ACCA, 7
                        .BRANCH   3,SoftDDS.L0091
                        BREQ      SoftDDS.L0091
                        .BRANCH   1,SoftDDS.L0089
                        BRCS      SoftDDS.L0091
                        .BRANCH   20,SoftDDS.L0089
                        JMP       SoftDDS.L0089
SoftDDS.L0091:
SoftDDS.L0088:
                        .BLOCK    569
                        .LINE     569
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0092
                        SER       _ACCA
SoftDDS.L0092:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0095
                        BRNE      SoftDDS.L0095
                        .BRANCH   20,SoftDDS.L0093
                        JMP       SoftDDS.L0093
SoftDDS.L0095:
                        .BLOCK    569
                        .LINE     570
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .ENDBLOCK 571
SoftDDS.L0093:
SoftDDS.L0094:
                        .LINE     572
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .ENDBLOCK 573
                        .BRANCH   20,SoftDDS.L0081
                        JMP       SoftDDS.L0081
SoftDDS.L0089:
                        .LINE     574
                        CPI       _ACCA, 10
                        .BRANCH   3,SoftDDS.L0098
                        BREQ      SoftDDS.L0098
                        .BRANCH   20,SoftDDS.L0097
                        JMP       SoftDDS.L0097
SoftDDS.L0098:
SoftDDS.L0096:
                        .BLOCK    575
                        .LINE     575
                        LDI       _ACCA, 063h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .ENDBLOCK 576
                        .BRANCH   20,SoftDDS.L0081
                        JMP       SoftDDS.L0081
SoftDDS.L0097:
                        .LINE     577
                        CPI       _ACCA, 11
                        .BRANCH   3,SoftDDS.L0101
                        BREQ      SoftDDS.L0101
                        .BRANCH   20,SoftDDS.L0100
                        JMP       SoftDDS.L0100
SoftDDS.L0101:
SoftDDS.L0099:
                        .BLOCK    578
                        .LINE     578
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.ITEMLOWERLIMIT, _ACCA
                        .LINE     579
                        LDI       _ACCA, 063h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .ENDBLOCK 580
                        .BRANCH   20,SoftDDS.L0081
                        JMP       SoftDDS.L0081
SoftDDS.L0100:
                        .LINE     581
                        CPI       _ACCA, 12
                        .BRANCH   3,SoftDDS.L0104
                        BREQ      SoftDDS.L0104
                        .BRANCH   20,SoftDDS.L0103
                        JMP       SoftDDS.L0103
SoftDDS.L0104:
SoftDDS.L0102:
                        .BLOCK    582
                        .LINE     582
                        LDI       _ACCA, 003h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .ENDBLOCK 583
                        .BRANCH   20,SoftDDS.L0081
                        JMP       SoftDDS.L0081
SoftDDS.L0103:
SoftDDS.L0081:
                        .ENDBLOCK 585
SoftDDS.SetItemLimPos_X:
                        .LINE     585
                        .BRANCH   19
                        RET
                        .ENDFUNC  585

                        .FUNC     WriteItem, 587, 00020h
SoftDDS.WriteItem:
                        .BLOCK    589
                        .LINE     592
                        LDS       _ACCA, SoftDDS.digits
                        CPI       _ACCA, 001h
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0105
                        BRLO      SoftDDS.L0105
                        SER       _ACCA
SoftDDS.L0105:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0108
                        BRNE      SoftDDS.L0108
                        .BRANCH   20,SoftDDS.L0106
                        JMP       SoftDDS.L0106
SoftDDS.L0108:
                        .BLOCK    592
                        .LINE     593
                        LDS       _ACCA, SoftDDS.DisplayValue
                        LDI       _ACCB, 064h
                        CALL      SYSTEM.DIV8_R
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     594
                        MOV       _ACCA, SoftDDS.k
                        LDI       _ACCB, 00Ah
                        CALL      SYSTEM.DIV8_R
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     598
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .ENDBLOCK 600
SoftDDS.L0106:
SoftDDS.L0107:
                        .LINE     601
                        LDS       _ACCA, SoftDDS.DisplayValue
                        LDI       _ACCB, 00Ah
                        CALL      SYSTEM.DIV8_R
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     605
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .ENDBLOCK 607
SoftDDS.WriteItem_X:
                        .LINE     607
                        .BRANCH   19
                        RET
                        .ENDFUNC  607

                        .FUNC     WriteWave, 610, 00020h
SoftDDS.WriteWave:
                        .BLOCK    612
                        .LINE     613
                        LDI       _ACCA, 00Ah
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     614
                        .BRANCH   17,SoftDDS.SETPOS
                        CALL      SoftDDS.SETPOS
                        .LINE     615
                        LDS       _ACCA, SoftDDS.Wave
                        .LINE     616
                        CPI       _ACCA, 0
                        .BRANCH   2,SoftDDS.L0112
                        BRCC      SoftDDS.L0112
                        .BRANCH   20,SoftDDS.L0111
                        JMP       SoftDDS.L0111
SoftDDS.L0112:
                        CPI       _ACCA, 2
                        .BRANCH   3,SoftDDS.L0113
                        BREQ      SoftDDS.L0113
                        .BRANCH   1,SoftDDS.L0111
                        BRCS      SoftDDS.L0113
                        .BRANCH   20,SoftDDS.L0111
                        JMP       SoftDDS.L0111
SoftDDS.L0113:
SoftDDS.L0110:
                        .BLOCK    617
                        .LINE     617
                        LDS       _ACCA, SoftDDS.wave
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0114
                        SER       _ACCA
SoftDDS.L0114:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0117
                        BRNE      SoftDDS.L0117
                        .BRANCH   20,SoftDDS.L0115
                        JMP       SoftDDS.L0115
SoftDDS.L0117:
                        .BLOCK    617
                        .LINE     618
                        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.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 619
SoftDDS.L0115:
SoftDDS.L0116:
                        .LINE     620
                        LDS       _ACCA, SoftDDS.wave
                        CPI       _ACCA, 001h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0118
                        SER       _ACCA
SoftDDS.L0118:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0121
                        BRNE      SoftDDS.L0121
                        .BRANCH   20,SoftDDS.L0119
                        JMP       SoftDDS.L0119
SoftDDS.L0121:
                        .BLOCK    620
                        .LINE     621
                        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.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 622
SoftDDS.L0119:
SoftDDS.L0120:
                        .LINE     623
                        LDS       _ACCA, SoftDDS.wave
                        CPI       _ACCA, 002h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0122
                        SER       _ACCA
SoftDDS.L0122:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0125
                        BRNE      SoftDDS.L0125
                        .BRANCH   20,SoftDDS.L0123
                        JMP       SoftDDS.L0123
SoftDDS.L0125:
                        .BLOCK    623
                        .LINE     624
                        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.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 625
SoftDDS.L0123:
SoftDDS.L0124:
                        .ENDBLOCK 626
                        .BRANCH   20,SoftDDS.L0109
                        JMP       SoftDDS.L0109
SoftDDS.L0111:
                        .LINE     627
                        CPI       _ACCA, 3
                        .BRANCH   2,SoftDDS.L0128
                        BRCC      SoftDDS.L0128
                        .BRANCH   20,SoftDDS.L0127
                        JMP       SoftDDS.L0127
SoftDDS.L0128:
                        CPI       _ACCA, 99
                        .BRANCH   3,SoftDDS.L0129
                        BREQ      SoftDDS.L0129
                        .BRANCH   1,SoftDDS.L0127
                        BRCS      SoftDDS.L0129
                        .BRANCH   20,SoftDDS.L0127
                        JMP       SoftDDS.L0127
SoftDDS.L0129:
SoftDDS.L0126:
                        .BLOCK    633
                        .LINE     633
                        LDI       _ACCA, 041h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     635
                        LDS       _ACCA, SoftDDS.Wave
                        SUBI      _ACCA, 002h AND 0FFh
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     636
                        MOV       _ACCA, SoftDDS.k
                        STS       SOFTDDS.MP3TRACK, _ACCA
                        .LINE     637
                        MOV       _ACCA, SoftDDS.k
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     638
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     639
                        .BRANCH   17,SoftDDS.WRITEITEM
                        CALL      SoftDDS.WRITEITEM
                        .ENDBLOCK 640
                        .BRANCH   20,SoftDDS.L0109
                        JMP       SoftDDS.L0109
SoftDDS.L0127:
SoftDDS.L0109:
                        .ENDBLOCK 642
SoftDDS.WriteWave_X:
                        .LINE     642
                        .BRANCH   19
                        RET
                        .ENDFUNC  642

                        .FUNC     WriteOutputMode, 645, 00020h
SoftDDS.WriteOutputMode:
                        .BLOCK    647
                        .LINE     648
                        LDI       _ACCA, 00Ch
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     649
                        .BRANCH   17,SoftDDS.SETPOS
                        CALL      SoftDDS.SETPOS
                        .LINE     650
                        LDS       _ACCA, SoftDDS.OutputMode
                        .LINE     651
                        CPI       _ACCA, 0
                        .BRANCH   3,SoftDDS.L0133
                        BREQ      SoftDDS.L0133
                        .BRANCH   20,SoftDDS.L0132
                        JMP       SoftDDS.L0132
SoftDDS.L0133:
SoftDDS.L0131:
                        .BLOCK    652
                        .LINE     652
                        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.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 653
                        .BRANCH   20,SoftDDS.L0130
                        JMP       SoftDDS.L0130
SoftDDS.L0132:
                        .LINE     654
                        CPI       _ACCA, 1
                        .BRANCH   3,SoftDDS.L0136
                        BREQ      SoftDDS.L0136
                        .BRANCH   20,SoftDDS.L0135
                        JMP       SoftDDS.L0135
SoftDDS.L0136:
SoftDDS.L0134:
                        .BLOCK    655
                        .LINE     655
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.SymStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.SymStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 656
                        .BRANCH   20,SoftDDS.L0130
                        JMP       SoftDDS.L0130
SoftDDS.L0135:
                        .LINE     657
                        CPI       _ACCA, 2
                        .BRANCH   3,SoftDDS.L0139
                        BREQ      SoftDDS.L0139
                        .BRANCH   20,SoftDDS.L0138
                        JMP       SoftDDS.L0138
SoftDDS.L0139:
SoftDDS.L0137:
                        .BLOCK    658
                        .LINE     658
                        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.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 659
                        .BRANCH   20,SoftDDS.L0130
                        JMP       SoftDDS.L0130
SoftDDS.L0138:
                        .LINE     660
                        CPI       _ACCA, 3
                        .BRANCH   3,SoftDDS.L0142
                        BREQ      SoftDDS.L0142
                        .BRANCH   20,SoftDDS.L0141
                        JMP       SoftDDS.L0141
SoftDDS.L0142:
SoftDDS.L0140:
                        .BLOCK    661
                        .LINE     661
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.SymPwrStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.SymPwrStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 662
                        .BRANCH   20,SoftDDS.L0130
                        JMP       SoftDDS.L0130
SoftDDS.L0141:
SoftDDS.L0130:
                        .ENDBLOCK 664
SoftDDS.WriteOutputMode_X:
                        .LINE     664
                        .BRANCH   19
                        RET
                        .ENDFUNC  664

                        .FUNC     WriteFrequSpaced, 667, 00020h
SoftDDS.WriteFrequSpaced:
                        .BLOCK    670
                        .LINE     671
                        .BRANCH   17,SoftDDS.LCD1X0Y1
                        CALL      SoftDDS.LCD1X0Y1
                        .LINE     672
                        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.L0145:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0146
                        CLR       _ACCA
SoftDDS.L0146:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0147
                        BREQ      SoftDDS.L0147
                        .BRANCH   20,SoftDDS.L0144
                        JMP       SoftDDS.L0144
SoftDDS.L0147:
                        .BLOCK    673
                        .LINE     673
                        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     677
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  3
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     679
                        MOV       _ACCA, SoftDDS.i
                        CPI       _ACCA, 006h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0148
                        SER       _ACCA
SoftDDS.L0148:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0151
                        BRNE      SoftDDS.L0151
                        .BRANCH   20,SoftDDS.L0149
                        JMP       SoftDDS.L0149
SoftDDS.L0151:
                        .BLOCK    679
                        .LINE     683
                        LDI       _ACCA, 02Eh
                        .FRAME  3
                        CALL      SYSTEM.LCDOUT_M
                        .ENDBLOCK 685
                        .BRANCH   20,SoftDDS.L0150
                        JMP       SoftDDS.L0150
SoftDDS.L0149:
                        .BLOCK    685
                        .LINE     689
                        LDI       _ACCA, 020h
                        .FRAME  3
                        CALL      SYSTEM.LCDOUT_M
                        .ENDBLOCK 691
SoftDDS.L0150:
                        .ENDBLOCK 692
SoftDDS.L0143:
                        .LINE     692
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0144
                        BREQ      SoftDDS.L0144
                        .BRANCH   20,SoftDDS.L0145
                        JMP       SoftDDS.L0145
SoftDDS.L0144:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 693
SoftDDS.WriteFrequSpaced_X:
                        .LINE     693
                        .BRANCH   19
                        RET
                        .ENDFUNC  693

                        .FUNC     WriteFrequency, 696, 00020h
SoftDDS.WriteFrequency:
                        SBIW      _FRAMEPTR, 1
                        .BLOCK    699
                        .LINE     700
                        LDI       _ACCA, 00Eh
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     701
                        .BRANCH   17,SoftDDS.SETPOS
                        CALL      SoftDDS.SETPOS
                        .LINE     702
                        LDI       _ACCA, 0FFh
                        STD       Y+000h, _ACCA
                        .LINE     703
                        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.L0154:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0155
                        CLR       _ACCA
SoftDDS.L0155:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0156
                        BREQ      SoftDDS.L0156
                        .BRANCH   20,SoftDDS.L0153
                        JMP       SoftDDS.L0153
SoftDDS.L0156:
                        .BLOCK    704
                        .LINE     704
                        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     705
                        LDS       _ACCA, SoftDDS.DisplayValue
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0157
                        SER       _ACCA
SoftDDS.L0157:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0160
                        BRNE      SoftDDS.L0160
                        .BRANCH   20,SoftDDS.L0158
                        JMP       SoftDDS.L0158
SoftDDS.L0160:
                        .BLOCK    705
                        .LINE     706
                        LDI       _ACCA, 000h
                        STD       Y+003h, _ACCA
                        .ENDBLOCK 707
SoftDDS.L0158:
SoftDDS.L0159:
                        .LINE     708
                        LDS       _ACCA, SoftDDS.DisplayValue
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0161
                        SER       _ACCA
SoftDDS.L0161:
                        PUSH      _ACCA
                        LDD       _ACCA, Y+003h
                        POP       _ACCB
                        AND       _ACCA, _ACCB
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0164
                        BRNE      SoftDDS.L0164
                        .BRANCH   20,SoftDDS.L0162
                        JMP       SoftDDS.L0162
SoftDDS.L0164:
                        .BLOCK    708
                        .LINE     712
                        LDI       _ACCA, 020h
                        .FRAME  3
                        CALL      SYSTEM.LCDOUT_M
                        .ENDBLOCK 714
                        .BRANCH   20,SoftDDS.L0163
                        JMP       SoftDDS.L0163
SoftDDS.L0162:
                        .BLOCK    714
                        .LINE     718
                        LDS       _ACCA, SoftDDS.DisplayValue
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  3
                        CALL      SYSTEM.LCDOUT_M
                        .ENDBLOCK 720
SoftDDS.L0163:
                        .ENDBLOCK 721
SoftDDS.L0152:
                        .LINE     721
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0153
                        BREQ      SoftDDS.L0153
                        .BRANCH   20,SoftDDS.L0154
                        JMP       SoftDDS.L0154
SoftDDS.L0153:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     725
                        LDI       _ACCA, 02Eh
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     727
                        LDS       _ACCA, SoftDDS.FrequDez
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     731
                        LDS       _ACCA, SoftDDS.DisplayValue
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     733
                        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.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 734
SoftDDS.WriteFrequency_X:
                        .LINE     734
                        .BRANCH   19
                        RET
                        .ENDFUNC  734

                        .FUNC     WriteLevelmV, 736, 00020h
SoftDDS.WriteLevelmV:
                        SBIW      _FRAMEPTR, 3
                        .BLOCK    742
                        .LINE     743
                        LDI       _ACCA, 00Fh
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     744
                        .BRANCH   17,SoftDDS.SETPOS
                        CALL      SoftDDS.SETPOS
                        .LINE     749
                        LDS       _ACCA, SoftDDS.LeveldB
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.GainOffset
                        POP       _ACCB
                        ADD       _ACCA, _ACCB
                        SUBI      _ACCA, -00Ah AND 0FFh
                        STD       Y+001h, _ACCA
                        .LINE     752
                        LDD       _ACCA, Y+001h
                        LDI       _ACCB, 014h
                        CALL      SYSTEM.DIV8_R
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.I, _ACCA
                        .LINE     753
                        LDD       _ACCA, Y+001h
                        SUBI      _ACCA, -00Ah AND 0FFh
                        LDI       _ACCB, 014h
                        CALL      SYSTEM.DIV8_R
                        SUBI      _ACCA, -002h AND 0FFh
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     754
                        LDI       _ACCA, 06Dh
                        STD       Y+000h, _ACCA
                        .LINE     755
                        LDI       _ACCCLO, SoftDDS.LevelStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.LevelStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        ADIW      _ACCCLO, 1
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        LDI       _ACCA, 007h
                        ST        -Y, _ACCA
                        LDI       _ACCA, 0FEH ROLB _DEVICE
                        AND       Flags, _ACCA
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        .FRAME  3
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.dBfac AND 0FFh
                        LDI       _ACCCHI, SoftDDS.dBfac 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, 006h
                        PUSH      _ACCA
                        LDI       _ACCB, 000h
                        PUSH      _ACCB
                        LDI       _ACCA, 020h
                        PUSH      _ACCA
                        CLT
                        BLD       Flags, _SIGN
                        CALL      SYSTEM.Int2Str
                        LDI       _ACCA, 007h
                        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     759
                        LDD       _ACCA, Y+001h
                        .LINE     760
                        CPI       _ACCA, 10
                        .BRANCH   2,SoftDDS.L0168
                        BRCC      SoftDDS.L0168
                        .BRANCH   20,SoftDDS.L0167
                        JMP       SoftDDS.L0167
SoftDDS.L0168:
                        CPI       _ACCA, 29
                        .BRANCH   3,SoftDDS.L0169
                        BREQ      SoftDDS.L0169
                        .BRANCH   1,SoftDDS.L0167
                        BRCS      SoftDDS.L0169
                        .BRANCH   20,SoftDDS.L0167
                        JMP       SoftDDS.L0167
SoftDDS.L0169:
SoftDDS.L0166:
                        .BLOCK    761
                        .LINE     761
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -003h AND 0FFh
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     762
                        LDI       _ACCCLO, $St_String26 AND 0FFh
                        LDI       _ACCCHI, $St_String26 SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCCLO, SoftDDS.LevelStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.LevelStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCA, 007h
                        PUSH      _ACCA
                        MOV       _ACCA, SoftDDS.k
                        LDI       _ACCFHI, 002h
                        CALL      SYSTEM.StringInsert
                        .LINE     763
                        LDI       _ACCA, 0E4h
                        STD       Y+000h, _ACCA
                        .ENDBLOCK 764
                        .BRANCH   20,SoftDDS.L0165
                        JMP       SoftDDS.L0165
SoftDDS.L0167:
                        .LINE     765
                        CPI       _ACCA, 30
                        .BRANCH   2,SoftDDS.L0172
                        BRCC      SoftDDS.L0172
                        .BRANCH   20,SoftDDS.L0171
                        JMP       SoftDDS.L0171
SoftDDS.L0172:
                        CPI       _ACCA, 89
                        .BRANCH   3,SoftDDS.L0173
                        BREQ      SoftDDS.L0173
                        .BRANCH   1,SoftDDS.L0171
                        BRCS      SoftDDS.L0173
                        .BRANCH   20,SoftDDS.L0171
                        JMP       SoftDDS.L0171
SoftDDS.L0173:
SoftDDS.L0170:
                        .BLOCK    766
                        .LINE     766
                        LDI       _ACCCLO, $St_String26 AND 0FFh
                        LDI       _ACCCHI, $St_String26 SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCCLO, SoftDDS.LevelStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.LevelStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCA, 007h
                        PUSH      _ACCA
                        MOV       _ACCA, SoftDDS.k
                        LDI       _ACCFHI, 002h
                        CALL      SYSTEM.StringInsert
                        .ENDBLOCK 767
                        .BRANCH   20,SoftDDS.L0165
                        JMP       SoftDDS.L0165
SoftDDS.L0171:
                        .LINE     768
                        CPI       _ACCA, 90
                        .BRANCH   2,SoftDDS.L0176
                        BRCC      SoftDDS.L0176
                        .BRANCH   20,SoftDDS.L0175
                        JMP       SoftDDS.L0175
SoftDDS.L0176:
                        CPI       _ACCA, 109
                        .BRANCH   3,SoftDDS.L0177
                        BREQ      SoftDDS.L0177
                        .BRANCH   1,SoftDDS.L0175
                        BRCS      SoftDDS.L0177
                        .BRANCH   20,SoftDDS.L0175
                        JMP       SoftDDS.L0175
SoftDDS.L0177:
SoftDDS.L0174:
                        .BLOCK    769
                        .LINE     769
                        LDI       _ACCCLO, $St_String26 AND 0FFh
                        LDI       _ACCCHI, $St_String26 SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCCLO, SoftDDS.LevelStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.LevelStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCA, 007h
                        PUSH      _ACCA
                        LDI       _ACCA, 004h
                        LDI       _ACCFHI, 002h
                        CALL      SYSTEM.StringInsert
                        .LINE     770
                        LDI       _ACCA, 020h
                        STD       Y+000h, _ACCA
                        .ENDBLOCK 771
                        .BRANCH   20,SoftDDS.L0165
                        JMP       SoftDDS.L0165
SoftDDS.L0175:
                        .LINE     772
                        CPI       _ACCA, 110
                        .BRANCH   3,SoftDDS.L0180
                        BREQ      SoftDDS.L0180
                        .BRANCH   20,SoftDDS.L0179
                        JMP       SoftDDS.L0179
SoftDDS.L0180:
SoftDDS.L0178:
                        .BLOCK    773
                        .LINE     773
                        LDI       _ACCCLO, $St_String26 AND 0FFh
                        LDI       _ACCCHI, $St_String26 SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCCLO, SoftDDS.LevelStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.LevelStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCA, 007h
                        PUSH      _ACCA
                        LDI       _ACCA, 005h
                        LDI       _ACCFHI, 002h
                        CALL      SYSTEM.StringInsert
                        .LINE     774
                        LDI       _ACCA, 020h
                        STD       Y+000h, _ACCA
                        .ENDBLOCK 775
                        .BRANCH   20,SoftDDS.L0165
                        JMP       SoftDDS.L0165
SoftDDS.L0179:
SoftDDS.L0165:
                        .LINE     785
                        LDI       _ACCA, 020h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     786
                        LDI       _ACCA, 020h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     787
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 1 SHLB _DEVICE
                        OR        Flags, _ACCA
                        LDI       _ACCB, SYSTEM.lcdout_m SHRB 1
                        LDI       _ACCA, SYSTEM.lcdout_m SHRB 9
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        LDI       _ACCCLO, SoftDDS.LevelStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.LevelStr SHRB 8
                        CALL      SYSTEM.StrVar2Str
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .LINE     788
                        LDI       _ACCA, 020h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     789
                        LDD       _ACCA, Y+000h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     790
                        LDI       _ACCA, 056h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .ENDBLOCK 792
SoftDDS.WriteLevelmV_X:
                        .LINE     792
                        .BRANCH   19
                        RET
                        .ENDFUNC  792

                        .FUNC     WriteLeveldB, 794, 00020h
SoftDDS.WriteLeveldB:
                        SBIW      _FRAMEPTR, 2
                        .BLOCK    797
                        .LINE     798
                        LDI       _ACCA, 009h
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     799
                        .BRANCH   17,SoftDDS.SETPOS
                        CALL      SoftDDS.SETPOS
                        .LINE     808
                        LDS       _ACCA, SoftDDS.LeveldB
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        SUBI      _ACCB, 00046h AND 0FFh
                        SBCI      _ACCA, 00046h SHRB 8
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.GainOffset
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        POP       _ACCAHI
                        POP       _ACCALO
                        ADD       _ACCB, _ACCALO
                        ADC       _ACCA, _ACCAHI
                        STD       Y+001h, _ACCA
                        STD       Y+000h, _ACCB
                        .LINE     809
                        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
                        CALL      SYSTEM.Int2Str
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .LINE     810
                        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.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 812
SoftDDS.WriteLeveldB_X:
                        .LINE     812
                        .BRANCH   19
                        RET
                        .ENDFUNC  812

                        .FUNC     WriteWaveMP3trackTime, 815, 00020h
SoftDDS.WriteWaveMP3trackTime:
                        .BLOCK    818
                        .LINE     819
                        .BRANCH   17,SoftDDS.WRITEWAVE
                        CALL      SoftDDS.WRITEWAVE
                        .LINE     820
                        LDS       _ACCA, SoftDDS.MP3isOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0183
                        BRNE      SoftDDS.L0183
                        .BRANCH   20,SoftDDS.L0181
                        JMP       SoftDDS.L0181
SoftDDS.L0183:
                        .BLOCK    820
                        .LINE     821
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     822
                        LDI       _ACCA, 004h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     823
                        .BRANCH   17,SoftDDS.LCD1XY
                        CALL      SoftDDS.LCD1XY
                        .LINE     824
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.PlayStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.PlayStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     825
                        LDS       _ACCA, SoftDDS.MP3runningSeconds
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     826
                        .BRANCH   17,SoftDDS.WRITEITEM
                        CALL      SoftDDS.WRITEITEM
                        .LINE     830
                        LDI       _ACCA, 03Ah
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     832
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     833
                        LDS       _ACCA, SoftDDS.MP3runningTimer
                        LDI       _ACCB, 00Ah
                        CALL      SYSTEM.DIV8_R
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     834
                        .BRANCH   17,SoftDDS.WRITEITEM
                        CALL      SoftDDS.WRITEITEM
                        .LINE     838
                        LDI       _ACCA, 030h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     840
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .ENDBLOCK 841
                        .BRANCH   20,SoftDDS.L0182
                        JMP       SoftDDS.L0182
SoftDDS.L0181:
                        .BLOCK    841
                        .LINE     845
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL      SYSTEM.LCDCLREOL_M
                        .ENDBLOCK 847
SoftDDS.L0182:
                        .ENDBLOCK 848
SoftDDS.WriteWaveMP3trackTime_X:
                        .LINE     848
                        .BRANCH   19
                        RET
                        .ENDFUNC  848

                        .FUNC     MP3waitMessage, 850, 00020h
SoftDDS.MP3waitMessage:
                        .BLOCK    852
                        .LINE     853
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     854
                        LDI       _ACCA, 004h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     855
                        .BRANCH   17,SoftDDS.LCD1XY
                        CALL      SoftDDS.LCD1XY
                        .LINE     856
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.WaitStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.WaitStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     860
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL      SYSTEM.LCDCLREOL_M
                        .ENDBLOCK 862
SoftDDS.MP3waitMessage_X:
                        .LINE     862
                        .BRANCH   19
                        RET
                        .ENDFUNC  862

                        .FUNC     ShowOptionsLower, 864, 00020h
SoftDDS.ShowOptionsLower:
                        .BLOCK    866
                        .LINE     867
                        .BRANCH   17,SoftDDS.WRITEWAVEMP3TRACKTIME
                        CALL      SoftDDS.WRITEWAVEMP3TRACKTIME
                        .LINE     868
                        LDS       _ACCA, SoftDDS.MP3isOn
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0186
                        BRNE      SoftDDS.L0186
                        .BRANCH   20,SoftDDS.L0184
                        JMP       SoftDDS.L0184
SoftDDS.L0186:
                        .BLOCK    868
                        .LINE     869
                        LDI       _ACCA, 00Bh
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     870
                        .BRANCH   17,SoftDDS.SETPOS
                        CALL      SoftDDS.SETPOS
                        .LINE     871
                        LDS       _ACCA, SoftDDS.MP3sec
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     872
                        .BRANCH   17,SoftDDS.WRITEITEM
                        CALL      SoftDDS.WRITEITEM
                        .LINE     874
                        .BRANCH   17,SoftDDS.WRITEOUTPUTMODE
                        CALL      SoftDDS.WRITEOUTPUTMODE
                        .LINE     875
                        LDI       _ACCA, 00Dh
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     876
                        .BRANCH   17,SoftDDS.SETPOS
                        CALL      SoftDDS.SETPOS
                        .LINE     877
                        LDS       _ACCA, SoftDDS.BurstMode
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     878
                        .BRANCH   17,SoftDDS.WRITEITEM
                        CALL      SoftDDS.WRITEITEM
                        .ENDBLOCK 880
SoftDDS.L0184:
SoftDDS.L0185:
                        .ENDBLOCK 881
SoftDDS.ShowOptionsLower_X:
                        .LINE     881
                        .BRANCH   19
                        RET
                        .ENDFUNC  881

                        .FUNC     ShowDefaultUpper, 883, 00020h
SoftDDS.ShowDefaultUpper:
                        .BLOCK    885
                        .LINE     886
                        .BRANCH   17,SoftDDS.LCD1X0Y0
                        CALL      SoftDDS.LCD1X0Y0
                        .LINE     887
                        LDS       _ACCA, SoftDDS.PresetOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0189
                        BRNE      SoftDDS.L0189
                        .BRANCH   20,SoftDDS.L0187
                        JMP       SoftDDS.L0187
SoftDDS.L0189:
                        .BLOCK    887
                        .LINE     888
                        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.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     889
                        LDS       _ACCA, SoftDDS.PresetNum
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .ENDBLOCK 890
                        .BRANCH   20,SoftDDS.L0188
                        JMP       SoftDDS.L0188
SoftDDS.L0187:
                        .BLOCK    890
                        .LINE     891
                        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.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     892
                        LDS       _ACCA, SoftDDS.PatchNum
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .ENDBLOCK 893
SoftDDS.L0188:
                        .LINE     894
                        LDI       _ACCA, 008h
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     895
                        .BRANCH   17,SoftDDS.SETPOS
                        CALL      SoftDDS.SETPOS
                        .LINE     896
                        .BRANCH   17,SoftDDS.WRITEITEM
                        CALL      SoftDDS.WRITEITEM
                        .LINE     900
                        LDI       _ACCA, 020h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     903
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.WRITELEVELDB
                        CALL      SoftDDS.WRITELEVELDB
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     904
                        .BRANCH   17,SoftDDS.SETCURSOR
                        CALL      SoftDDS.SETCURSOR
                        .LINE     905
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     906
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     907
                        .BRANCH   17,SoftDDS.LCD1XY
                        CALL      SoftDDS.LCD1XY
                        .LINE     911
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL      SYSTEM.LCDCLREOL_M
                        .ENDBLOCK 913
SoftDDS.ShowDefaultUpper_X:
                        .LINE     913
                        .BRANCH   19
                        RET
                        .ENDFUNC  913

                        .FUNC     ShowDefaultLower, 915, 00020h
SoftDDS.ShowDefaultLower:
                        .BLOCK    917
                        .LINE     918
                        .BRANCH   17,SoftDDS.WRITEWAVEMP3TRACKTIME
                        CALL      SoftDDS.WRITEWAVEMP3TRACKTIME
                        .LINE     919
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 009h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0190
                        SER       _ACCA
SoftDDS.L0190:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0193
                        BRNE      SoftDDS.L0193
                        .BRANCH   20,SoftDDS.L0191
                        JMP       SoftDDS.L0191
SoftDDS.L0193:
                        .BLOCK    919
                        .LINE     920
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.WRITELEVELMV
                        CALL      SoftDDS.WRITELEVELMV
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 921
                        .BRANCH   20,SoftDDS.L0192
                        JMP       SoftDDS.L0192
SoftDDS.L0191:
                        .BLOCK    921
                        .LINE     922
                        LDS       _ACCA, SoftDDS.MP3isOn
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0196
                        BRNE      SoftDDS.L0196
                        .BRANCH   20,SoftDDS.L0194
                        JMP       SoftDDS.L0194
SoftDDS.L0196:
                        .BLOCK    922
                        .LINE     923
                        LDS       _ACCA, SoftDDS.Wave
                        CPI       _ACCA, 003h
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0197
                        CLR       _ACCA
SoftDDS.L0197:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0200
                        BRNE      SoftDDS.L0200
                        .BRANCH   20,SoftDDS.L0198
                        JMP       SoftDDS.L0198
SoftDDS.L0200:
                        .BLOCK    924
                        .LINE     924
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.WRITEFREQUENCY
                        CALL      SoftDDS.WRITEFREQUENCY
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 925
SoftDDS.L0198:
SoftDDS.L0199:
                        .ENDBLOCK 926
SoftDDS.L0194:
SoftDDS.L0195:
                        .ENDBLOCK 927
SoftDDS.L0192:
                        .ENDBLOCK 928
SoftDDS.ShowDefaultLower_X:
                        .LINE     928
                        .BRANCH   19
                        RET
                        .ENDFUNC  928

                        .FUNC     ShowDefault, 930, 00020h
SoftDDS.ShowDefault:
                        .BLOCK    932
                        .LINE     933
                        .BRANCH   17,SoftDDS.SHOWDEFAULTUPPER
                        CALL      SoftDDS.SHOWDEFAULTUPPER
                        .LINE     934
                        .BRANCH   17,SoftDDS.SHOWDEFAULTLOWER
                        CALL      SoftDDS.SHOWDEFAULTLOWER
                        .ENDBLOCK 935
SoftDDS.ShowDefault_X:
                        .LINE     935
                        .BRANCH   19
                        RET
                        .ENDFUNC  935

                        .FUNC     SetupMP3, 937, 00020h
SoftDDS.SetupMP3:
                        .BLOCK    939
                        .LINE     940
                        .BRANCH   17,SoftDDS.UPDOWNBUTTON
                        CALL       SoftDDS.UPDOWNBUTTON
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0203
                        BRNE      SoftDDS.L0203
                        .BRANCH   20,SoftDDS.L0201
                        JMP       SoftDDS.L0201
SoftDDS.L0203:
                        .BLOCK    940
                        .LINE     941
                        LDS       _ACCA, SoftDDS.Wave
                        CPI       _ACCA, 002h
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0204
                        BRLO      SoftDDS.L0204
                        SER       _ACCA
SoftDDS.L0204:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0207
                        BRNE      SoftDDS.L0207
                        .BRANCH   20,SoftDDS.L0205
                        JMP       SoftDDS.L0205
SoftDDS.L0207:
                        .BLOCK    942
                        .LINE     942
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PRESETNUM, _ACCA
                        .LINE     943
                        LDS       _ACCA, SoftDDS.MP3isOn
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0210
                        BRNE      SoftDDS.L0210
                        .BRANCH   20,SoftDDS.L0208
                        JMP       SoftDDS.L0208
SoftDDS.L0210:
                        .BLOCK    943
                        .LINE     944
                        .BRANCH   17,SoftDDS.MP3WAITMESSAGE
                        CALL      SoftDDS.MP3WAITMESSAGE
                        .LINE     945
                        .BRANCH   17,SoftDDS.MP3ON
                        CALL      SoftDDS.MP3ON
                        .ENDBLOCK 946
SoftDDS.L0208:
SoftDDS.L0209:
                        .LINE     947
                        LDS       _ACCA, SoftDDS.MP3isOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0213
                        BRNE      SoftDDS.L0213
                        .BRANCH   20,SoftDDS.L0211
                        JMP       SoftDDS.L0211
SoftDDS.L0213:
                        .BLOCK    947
                        .LINE     948
                        LDS       _ACCA, SoftDDS.MP3Track
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.MP3currenttrack
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0214
                        SER       _ACCA
SoftDDS.L0214:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0217
                        BRNE      SoftDDS.L0217
                        .BRANCH   20,SoftDDS.L0215
                        JMP       SoftDDS.L0215
SoftDDS.L0217:
                        .BLOCK    948
                        .LINE     949
                        .BRANCH   17,SoftDDS.SETPOS
                        CALL      SoftDDS.SETPOS
                        .LINE     950
                        .BRANCH   17,SoftDDS.MP3WAITMESSAGE
                        CALL      SoftDDS.MP3WAITMESSAGE
                        .LINE     951
                        .BRANCH   17,SoftDDS.MP3GOTOTRACK
                        CALL      SoftDDS.MP3GOTOTRACK
                        .ENDBLOCK 952
SoftDDS.L0215:
SoftDDS.L0216:
                        .LINE     953
                        .BRANCH   17,SoftDDS.WRITEWAVEMP3TRACKTIME
                        CALL      SoftDDS.WRITEWAVEMP3TRACKTIME
                        .ENDBLOCK 954
SoftDDS.L0211:
SoftDDS.L0212:
                        .ENDBLOCK 955
                        .BRANCH   20,SoftDDS.L0206
                        JMP       SoftDDS.L0206
SoftDDS.L0205:
                        .BLOCK    955
                        .LINE     956
                        LDS       _ACCA, SoftDDS.MP3isOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0220
                        BRNE      SoftDDS.L0220
                        .BRANCH   20,SoftDDS.L0218
                        JMP       SoftDDS.L0218
SoftDDS.L0220:
                        .BLOCK    957
                        .LINE     957
                        .BRANCH   17,SoftDDS.MP3OFF
                        CALL      SoftDDS.MP3OFF
                        .LINE     958
                        .BRANCH   17,SoftDDS.SHOWOPTIONSLOWER
                        CALL      SoftDDS.SHOWOPTIONSLOWER
                        .LINE     959
                        .BRANCH   17,SoftDDS.SETCURSOR
                        CALL      SoftDDS.SETCURSOR
                        .ENDBLOCK 960
SoftDDS.L0218:
SoftDDS.L0219:
                        .ENDBLOCK 961
SoftDDS.L0206:
                        .ENDBLOCK 962
SoftDDS.L0201:
SoftDDS.L0202:
                        .ENDBLOCK 963
SoftDDS.SetupMP3_X:
                        .LINE     963
                        .BRANCH   19
                        RET
                        .ENDFUNC  963

                        .FUNC     EditSelectedItem, 966, 00020h
SoftDDS.EditSelectedItem:
                        SBIW      _FRAMEPTR, 3
                        .BLOCK    971
                        .LINE     973
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL       SYSTEM.GETINCRREL4
                        STD       Y+001h, _ACCA
                        STD       Y+000h, _ACCB
                        .LINE     976
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        .FRAME  0
                        CALL      SYSTEM.CLEARINCRVAL4
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     978
                        LDI       _ACCA, 000h
                        STD       Y+002h, _ACCA
                        .LINE     989
SoftDDS.L0221:
                        .BRANCH   17,SoftDDS.UPDOWNBUTTON
                        CALL       SoftDDS.UPDOWNBUTTON
                        PUSH      _ACCA
                        LDD       _ACCB, Y+000h
                        LDD       _ACCA, Y+001h
                        LDI       _ACCBLO, 080h
                        EOR       _ACCA, _ACCBLO
                        CPI       _ACCA, 080h
                        BRNE      SoftDDS.L0223
                        CPI       _ACCB, 000h
SoftDDS.L0223:
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0224
                        SER       _ACCA
SoftDDS.L0224:
                        POP       _ACCB
                        OR        _ACCA, _ACCB
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0225
                        BRNE      SoftDDS.L0225
                        .BRANCH   20,SoftDDS.L0222
                        JMP       SoftDDS.L0222
SoftDDS.L0225:
                        .BLOCK    989
                        .LINE     990
                        LDI       _ACCA, 0FFh
                        STD       Y+002h, _ACCA
                        .LINE     991
                        LDS       _ACCB, 00112h
                        CLR       _ACCA
                        SBRC      _ACCB, 005h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0228
                        BRNE      SoftDDS.L0228
                        .BRANCH   20,SoftDDS.L0226
                        JMP       SoftDDS.L0226
SoftDDS.L0228:
                        .BLOCK    991
                        .LINE     992
                        LDS       _ACCA, SoftDDS.EditValue
                        INC       _ACCA
                        STS       SoftDDS.EditValue, _ACCA
                        .ENDBLOCK 993
SoftDDS.L0226:
SoftDDS.L0227:
                        .LINE     994
                        LDS       _ACCB, 00112h
                        CLR       _ACCA
                        SBRC      _ACCB, 006h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0231
                        BRNE      SoftDDS.L0231
                        .BRANCH   20,SoftDDS.L0229
                        JMP       SoftDDS.L0229
SoftDDS.L0231:
                        .BLOCK    994
                        .LINE     995
                        LDS       _ACCA, SoftDDS.EditValue
                        DEC       _ACCA
                        STS       SoftDDS.EditValue, _ACCA
                        .ENDBLOCK 996
SoftDDS.L0229:
SoftDDS.L0230:
                        .LINE     997
                        LDS       _ACCA, SoftDDS.EditValue
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDD       _ACCB, Y+000h
                        LDD       _ACCA, Y+001h
                        POP       _ACCAHI
                        POP       _ACCALO
                        ADD       _ACCB, _ACCALO
                        ADC       _ACCA, _ACCAHI
                        MOV       _ACCA, _ACCB
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .LINE     998
                        LDI       _ACCA, 00000h SHRB 8
                        LDI       _ACCB, 00000h AND 0FFh
                        STD       Y+001h, _ACCA
                        STD       Y+000h, _ACCB
                        .LINE     999
                        .BRANCH   17,SoftDDS.CHECKITEMLIMITS
                        CALL      SoftDDS.CHECKITEMLIMITS
                        .LINE     1000
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     1001
                        LDS       _ACCA, SoftDDS.EditWhich
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     1002
                        .BRANCH   17,SoftDDS.SETPOS
                        CALL      SoftDDS.SETPOS
                        .LINE     1003
                        LDS       _ACCA, SoftDDS.EditWhich
                        .LINE     1004
                        CPI       _ACCA, 8
                        .BRANCH   3,SoftDDS.L0235
                        BREQ      SoftDDS.L0235
                        .BRANCH   20,SoftDDS.L0234
                        JMP       SoftDDS.L0234
SoftDDS.L0235:
SoftDDS.L0233:
                        .BLOCK    1005
                        .LINE     1005
                        .BRANCH   17,SoftDDS.WRITEITEM
                        CALL      SoftDDS.WRITEITEM
                        .LINE     1006
                        LDS       _ACCA, SoftDDS.PresetOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0238
                        BRNE      SoftDDS.L0238
                        .BRANCH   20,SoftDDS.L0236
                        JMP       SoftDDS.L0236
SoftDDS.L0238:
                        .BLOCK    1006
                        .LINE     1007
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.PRESETNUM, _ACCA
                        .LINE     1008
                        .BRANCH   17,SoftDDS.PRESETCOPYFROMROM
                        CALL      SoftDDS.PRESETCOPYFROMROM
                        .ENDBLOCK 1009
                        .BRANCH   20,SoftDDS.L0237
                        JMP       SoftDDS.L0237
SoftDDS.L0236:
                        .BLOCK    1009
                        .LINE     1010
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.PATCHNUM, _ACCA
                        .LINE     1011
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYFROMEE
                        CALL      SoftDDS.PATCHCOPYFROMEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 1012
SoftDDS.L0237:
                        .LINE     1013
                        .BRANCH   17,SoftDDS.SHOWDEFAULTLOWER
                        CALL      SoftDDS.SHOWDEFAULTLOWER
                        .ENDBLOCK 1014
                        .BRANCH   20,SoftDDS.L0232
                        JMP       SoftDDS.L0232
SoftDDS.L0234:
                        .LINE     1015
                        CPI       _ACCA, 10
                        .BRANCH   3,SoftDDS.L0241
                        BREQ      SoftDDS.L0241
                        .BRANCH   20,SoftDDS.L0240
                        JMP       SoftDDS.L0240
SoftDDS.L0241:
SoftDDS.L0239:
                        .BLOCK    1016
                        .LINE     1016
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.WAVE, _ACCA
                        .LINE     1017
                        .BRANCH   17,SoftDDS.WRITEWAVE
                        CALL      SoftDDS.WRITEWAVE
                        .ENDBLOCK 1018
                        .BRANCH   20,SoftDDS.L0232
                        JMP       SoftDDS.L0232
SoftDDS.L0240:
                        .LINE     1020
                        CPI       _ACCA, 12
                        .BRANCH   3,SoftDDS.L0244
                        BREQ      SoftDDS.L0244
                        .BRANCH   20,SoftDDS.L0243
                        JMP       SoftDDS.L0243
SoftDDS.L0244:
SoftDDS.L0242:
                        .BLOCK    1021
                        .LINE     1021
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.OUTPUTMODE, _ACCA
                        .LINE     1022
                        .BRANCH   17,SoftDDS.WRITEOUTPUTMODE
                        CALL      SoftDDS.WRITEOUTPUTMODE
                        .ENDBLOCK 1023
                        .BRANCH   20,SoftDDS.L0232
                        JMP       SoftDDS.L0232
SoftDDS.L0243:
                        .LINE     1025
                        CPI       _ACCA, 11
                        .BRANCH   3,SoftDDS.L0247
                        BREQ      SoftDDS.L0247
                        .BRANCH   20,SoftDDS.L0246
                        JMP       SoftDDS.L0246
SoftDDS.L0247:
SoftDDS.L0245:
                        .BLOCK    1026
                        .LINE     1026
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.MP3SEC, _ACCA
                        .LINE     1027
                        LDI       _ACCA, 00Bh
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     1028
                        .BRANCH   17,SoftDDS.WRITEITEM
                        CALL      SoftDDS.WRITEITEM
                        .ENDBLOCK 1029
                        .BRANCH   20,SoftDDS.L0232
                        JMP       SoftDDS.L0232
SoftDDS.L0246:
                        .LINE     1030
                        CPI       _ACCA, 9
                        .BRANCH   3,SoftDDS.L0250
                        BREQ      SoftDDS.L0250
                        .BRANCH   20,SoftDDS.L0249
                        JMP       SoftDDS.L0249
SoftDDS.L0250:
SoftDDS.L0248:
                        .BLOCK    1031
                        .LINE     1031
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.LEVELDB, _ACCA
                        .LINE     1032
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.WRITELEVELDB
                        CALL      SoftDDS.WRITELEVELDB
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     1033
                        .BRANCH   17,SoftDDS.SETCURSOR
                        CALL      SoftDDS.SETCURSOR
                        .LINE     1034
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.WRITELEVELMV
                        CALL      SoftDDS.WRITELEVELMV
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     1036
                        LDS       _ACCA, SoftDDS.LeveldB
                        LDI       _ACCB, 00Ah
                        CALL      SYSTEM.DIV8_R
                        MOV       _ACCA, _ACCB
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0251
                        SER       _ACCA
SoftDDS.L0251:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0254
                        BRNE      SoftDDS.L0254
                        .BRANCH   20,SoftDDS.L0252
                        JMP       SoftDDS.L0252
SoftDDS.L0254:
                        .BLOCK    1036
                        .LINE     1037
                        LDI       _ACCA, 019h
                        STS       SOFTDDS.BTNTIME, _ACCA
                        .LINE     1038
                        LDI       _ACCA, 005h
                        STS       SOFTDDS.BTNTIME2, _ACCA
                        .ENDBLOCK 1039
SoftDDS.L0252:
SoftDDS.L0253:
                        .ENDBLOCK 1041
                        .BRANCH   20,SoftDDS.L0232
                        JMP       SoftDDS.L0232
SoftDDS.L0249:
                        .LINE     1042
                        .BLOCK    1042
                        .LINE     1043
                        LDS       _ACCA, SoftDDS.editedItem
                        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     1044
                        .BRANCH   17,SoftDDS.WRITEITEM
                        CALL      SoftDDS.WRITEITEM
                        .ENDBLOCK 1045
SoftDDS.L0232:
                        .LINE     1047
                        .BRANCH   17,SoftDDS.SETLEVELDDS
                        CALL      SoftDDS.SETLEVELDDS
                        .LINE     1048
                        .BRANCH   17,SoftDDS.FASTREPEATRELEASE
                        CALL      SoftDDS.FASTREPEATRELEASE
                        .ENDBLOCK 1049
                        .LINE     1049
                        .BRANCH   20,SoftDDS.L0221
                        JMP       SoftDDS.L0221
SoftDDS.L0222:
                        .LINE     1052
                        LDS       _ACCA, SoftDDS.BurstMode
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0255
                        SER       _ACCA
SoftDDS.L0255:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0258
                        BRNE      SoftDDS.L0258
                        .BRANCH   20,SoftDDS.L0256
                        JMP       SoftDDS.L0256
SoftDDS.L0258:
                        .BLOCK    1052
                        .LINE     1053
                        SER       _ACCA
                        LDS       _ACCB, SoftDDS.BurstTimer
                        TST       _ACCB
                        BREQ      SoftDDS.L0259
                        COM       _ACCA
SoftDDS.L0259:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0262
                        BRNE      SoftDDS.L0262
                        .BRANCH   20,SoftDDS.L0260
                        JMP       SoftDDS.L0260
SoftDDS.L0262:
                        .BLOCK    1053
                        .LINE     1054
                        LDI       _ACCA, 001h
                        STS       SoftDDS.BurstTimer, _ACCA
                        .LINE     1055
                        LDS       _ACCA, SoftDDS.BurstCount
                        DEC       _ACCA
                        STS       SoftDDS.BurstCount, _ACCA
                        .LINE     1056
                        LDS       _ACCA, SoftDDS.BurstCount
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0263
                        SER       _ACCA
SoftDDS.L0263:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0266
                        BRNE      SoftDDS.L0266
                        .BRANCH   20,SoftDDS.L0264
                        JMP       SoftDDS.L0264
SoftDDS.L0266:
                        .BLOCK    1056
                        .LINE     1057
                        LDI       _ACCA, 02100h SHRB 8
                        LDI       _ACCB, 02100h AND 0FFh
                        STS       SOFTDDS.DSS_CMD, _ACCB
                        STS       SOFTDDS.DSS_CMD+1, _ACCA
                        .LINE     1058
                        .BRANCH   17,SoftDDS.SENDDDS
                        CALL      SoftDDS.SENDDDS
                        .LINE     1059
                        LDS       _ACCA, SoftDDS.BurstMode
                        SUBI      _ACCA, -001h AND 0FFh
                        STS       SOFTDDS.BURSTCOUNT, _ACCA
                        .LINE     1060
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.BURSTPRIME, _ACCA
                        .ENDBLOCK 1061
SoftDDS.L0264:
SoftDDS.L0265:
                        .ENDBLOCK 1062
SoftDDS.L0260:
SoftDDS.L0261:
                        .LINE     1063
                        LDS       _ACCA, SoftDDS.BurstCount
                        CPI       _ACCA, 001h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0267
                        SER       _ACCA
SoftDDS.L0267:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0270
                        BRNE      SoftDDS.L0270
                        .BRANCH   20,SoftDDS.L0268
                        JMP       SoftDDS.L0268
SoftDDS.L0270:
                        .BLOCK    1063
                        .LINE     1064
                        LDS       _ACCA, SoftDDS.BurstPrime
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0273
                        BRNE      SoftDDS.L0273
                        .BRANCH   20,SoftDDS.L0271
                        JMP       SoftDDS.L0271
SoftDDS.L0273:
                        .BLOCK    1064
                        .LINE     1065
                        LDS       _ACCB, SoftDDS.wave_cmd
                        LDS       _ACCA, SoftDDS.wave_cmd+1
                        STS       SOFTDDS.DSS_CMD, _ACCB
                        STS       SOFTDDS.DSS_CMD+1, _ACCA
                        .LINE     1066
                        .BRANCH   17,SoftDDS.SENDDDS
                        CALL      SoftDDS.SENDDDS
                        .LINE     1067
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.BURSTPRIME, _ACCA
                        .ENDBLOCK 1068
SoftDDS.L0271:
SoftDDS.L0272:
                        .ENDBLOCK 1069
SoftDDS.L0268:
SoftDDS.L0269:
                        .ENDBLOCK 1070
SoftDDS.L0256:
SoftDDS.L0257:
                        .LINE     1072
                        LDD       _ACCA, Y+002h
                        .ENDBLOCK 1073
SoftDDS.EditSelectedItem_X:
                        .LINE     1073
                        .BRANCH   19
                        RET
                        .ENDFUNC  1073

                        .FUNC     UpDownData, 1076, 00020h
SoftDDS.UpDownData:
                        .BLOCK    1079
                        .LINE     1080
                        LDS       _ACCA, SoftDDS.EditWhich
                        STS       SOFTDDS.EDITEDITEM, _ACCA
                        .LINE     1081
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 008h
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0274
                        BRLO      SoftDDS.L0274
                        SER       _ACCA
SoftDDS.L0274:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0277
                        BRNE      SoftDDS.L0277
                        .BRANCH   20,SoftDDS.L0275
                        JMP       SoftDDS.L0275
SoftDDS.L0277:
                        .BLOCK    1082
                        .LINE     1082
                        LDS       _ACCA, SoftDDS.editedItem
                        SUBI      _ACCA, 002h AND 0FFh
                        STS       SOFTDDS.EDITEDITEM, _ACCA
                        .ENDBLOCK 1083
SoftDDS.L0275:
SoftDDS.L0276:
                        .LINE     1084
                        LDS       _ACCA, SoftDDS.editedItem
                        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     1085
                        .BRANCH   17,SoftDDS.SETITEMLIMPOS
                        CALL      SoftDDS.SETITEMLIMPOS
                        .LINE     1086
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.EDITSELECTEDITEM
                        CALL       SoftDDS.EDITSELECTEDITEM
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        STS       SOFTDDS.MODIFIED, _ACCA
                        .LINE     1087
                        LDS       _ACCA, SoftDDS.Modified
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0280
                        BRNE      SoftDDS.L0280
                        .BRANCH   20,SoftDDS.L0278
                        JMP       SoftDDS.L0278
SoftDDS.L0280:
                        .BLOCK    1087
                        .LINE     1089
                        LDS       _ACCA, SoftDDS.PresetOn
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0283
                        BRNE      SoftDDS.L0283
                        .BRANCH   20,SoftDDS.L0281
                        JMP       SoftDDS.L0281
SoftDDS.L0283:
                        .BLOCK    1089
                        .LINE     1090
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYTOEE
                        CALL      SoftDDS.PATCHCOPYTOEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 1091
SoftDDS.L0281:
SoftDDS.L0282:
                        .ENDBLOCK 1092
SoftDDS.L0278:
SoftDDS.L0279:
                        .LINE     1093
                        .BRANCH   17,SoftDDS.MP3CHECKREPEAT
                        CALL      SoftDDS.MP3CHECKREPEAT
                        .ENDBLOCK 1094
SoftDDS.UpDownData_X:
                        .LINE     1094
                        .BRANCH   19
                        RET
                        .ENDFUNC  1094

                        .FUNC     initall, 1100, 00020h
SoftDDS.initall:
                        .BLOCK    1102
                        .LINE     1107
                        LDI       _ACCA, 03Fh
                        OUT       DDRB, _ACCA
                        .LINE     1108
                        LDI       _ACCA, 0EFh
                        OUT       PORTB, _ACCA
                        .LINE     1109
                        LDI       _ACCA, 00Ch
                        OUT       DDRC, _ACCA
                        .LINE     1110
                        LDI       _ACCA, 0F3h
                        OUT       PORTC, _ACCA
                        .LINE     1111
                        LDI       _ACCA, 004h
                        OUT       DDRD, _ACCA
                        .LINE     1112
                        LDI       _ACCA, 0FCh
                        OUT       PORTD, _ACCA
                        .LINE     1123
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL       SYSTEM.LCDSETUP_M
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0286
                        BRNE      SoftDDS.L0286
                        .BRANCH   20,SoftDDS.L0284
                        JMP       SoftDDS.L0284
SoftDDS.L0286:
                        .BLOCK    1123
                        .LINE     1124
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  3
                        .FRAME  0
                        CALL      SYSTEM.LCDCURSOR_M
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     1125
                        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
                        CALL      SYSTEM.LCDCHARSET_M
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 1126
SoftDDS.L0284:
SoftDDS.L0285:
                        .LINE     1127
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL      SYSTEM.LCDCLR_M
                        .LINE     1130
                        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.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     1131
                        .BRANCH   17,SoftDDS.LCD1X0Y1
                        CALL      SoftDDS.LCD1X0Y1
                        .LINE     1132
                        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.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     1133
                        LDI       _ACCA, 003E8h SHRB 8
                        LDI       _ACCB, 003E8h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .LINE     1135
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PATCHNUM, _ACCA
                        .LINE     1136
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYFROMEE
                        CALL      SoftDDS.PATCHCOPYFROMEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     1137
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PRESETNUM, _ACCA
                        .LINE     1139
                        LDI       _ACCA, 028h
                        STS       SOFTDDS.BTNTIME, _ACCA
                        .LINE     1140
                        LDI       _ACCA, 00Ah
                        STS       SOFTDDS.BTNTIME2, _ACCA
                        .LINE     1142
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.GAINOFFSET, _ACCA
                        .LINE     1143
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.PRESETON, _ACCA
                        .LINE     1149
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL      SYSTEM.LCDCLR_M
                        .LINE     1151
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MODIFIED, _ACCA
                        .LINE     1152
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3ISON, _ACCA
                        .LINE     1153
                        LDI       _ACCA, 1 SHLB IntFlag
                        OR        Flags, _ACCA
                        SEI
                        .LINE     1154
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PRIME, _ACCA
                        .LINE     1155
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.BURSTCOUNT, _ACCA
                        .LINE     1156
                        LDI       _ACCA, 001h
                        STS       SoftDDS.BurstTimer, _ACCA
                        .LINE     1157
                        .BRANCH   17,SoftDDS.SETLEVELDDS
                        CALL      SoftDDS.SETLEVELDDS
                        .LINE     1158
                        CALL      SYSTEM.INCRCOUNT4START
                        .LINE     1159
                        CALL      SYSTEM.CLEARINCRALL4
                        .LINE     1160
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL       SYSTEM.GETINCRREL4
                        STS       SOFTDDS.INCRDELTA, _ACCB
                        STS       SOFTDDS.INCRDELTA+1, _ACCA
                        .ENDBLOCK 1161
SoftDDS.initall_X:
                        .LINE     1161
                        .BRANCH   19
                        RET
                        .ENDFUNC  1161



                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Program body
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .FUNC     $_Main, 1167, 00020h
                        .ENTRYMAIN $
SoftDDS.$_Main:

                        .BLOCK    1167
                        .LINE     1168
                        .BRANCH   17,SoftDDS.INITALL
                        CALL      SoftDDS.INITALL
                        .LINE     1169
                        LDI       _ACCA, 008h
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .LINE     1171
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 00037h SHRB 8
                        LDI       _ACCB, 00037h AND 0FFh
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  3
                        .FRAME  0
                        CALL      SYSTEM.SETINCRVAL4
                        POP       _FPTRHI
                        POP       _FRAMEPTR
SoftDDS.L0287:
                        .BLOCK    1172
                        .LINE     1174
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL       SYSTEM.GETINCRVAL4
                        MOV       _ACCA, _ACCB
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .LINE     1175
                        .BRANCH   17,SoftDDS.LCD1X0Y0
                        CALL      SoftDDS.LCD1X0Y0
                        .LINE     1176
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 1 SHLB _DEVICE
                        OR        Flags, _ACCA
                        LDI       _ACCB, SYSTEM.lcdout_m SHRB 1
                        LDI       _ACCA, SYSTEM.lcdout_m SHRB 9
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        LDS       _ACCA, SoftDDS.Editvalue
                        PUSH      _ACCA
                        LDI       _ACCA, 004h
                        PUSH      _ACCA
                        LDI       _ACCB, 000h
                        PUSH      _ACCB
                        LDI       _ACCA, 020h
                        PUSH      _ACCA
                        CALL      SYSTEM.Byte2Str
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .LINE     1177
                        LDI       _ACCA, 00064h SHRB 8
                        LDI       _ACCB, 00064h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .ENDBLOCK 1178
                        .LINE     1178
                        .BRANCH   20,SoftDDS.L0287
                        JMP       SoftDDS.L0287
SoftDDS.L0288:
SoftDDS.L0289:
                        .BLOCK    1180
                        .LINE     1181
                        .BRANCH   17,SoftDDS.SETLEVELDDS
                        CALL      SoftDDS.SETLEVELDDS
                        .LINE     1182
                        .BRANCH   17,SoftDDS.SETITEMLIMPOS
                        CALL      SoftDDS.SETITEMLIMPOS
                        .LINE     1183
                        LDI       _ACCA, 00Dh
                        STS       SOFTDDS.LASTMENU, _ACCA
                        .LINE     1184
                        LDS       _ACCA, SoftDDS.EditWhich
                        .LINE     1185
                        CPI       _ACCA, 8
                        .BRANCH   3,SoftDDS.L0294
                        BREQ      SoftDDS.L0294
                        .BRANCH   20,SoftDDS.L0293
                        JMP       SoftDDS.L0293
SoftDDS.L0294:
SoftDDS.L0292:
                        .BLOCK    1186
                        .LINE     1186
                        .BRANCH   17,SoftDDS.SHOWDEFAULT
                        CALL      SoftDDS.SHOWDEFAULT
                        .LINE     1187
                        LDI       _ACCA, 028h
                        STS       SOFTDDS.BTNTIME, _ACCA
                        .LINE     1188
                        .BRANCH   17,SoftDDS.SLOWREPEATRELEASE
                        CALL      SoftDDS.SLOWREPEATRELEASE
                        .LINE     1189
                        LDS       _ACCA, SoftDDS.PresetOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0297
                        BRNE      SoftDDS.L0297
                        .BRANCH   20,SoftDDS.L0295
                        JMP       SoftDDS.L0295
SoftDDS.L0297:
                        .BLOCK    1189
                        .LINE     1190
                        LDS       _ACCA, SoftDDS.PresetNum
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 1191
                        .BRANCH   20,SoftDDS.L0296
                        JMP       SoftDDS.L0296
SoftDDS.L0295:
                        .BLOCK    1191
                        .LINE     1192
                        LDS       _ACCA, SoftDDS.PatchNum
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 1193
SoftDDS.L0296:
                        .LINE     1194
                        .BRANCH   17,SoftDDS.SETITEMLIMPOS
                        CALL      SoftDDS.SETITEMLIMPOS
SoftDDS.L0298:
                        .BLOCK    1195
                        .LINE     1196
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.EDITSELECTEDITEM
                        CALL       SoftDDS.EDITSELECTEDITEM
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0303
                        BRNE      SoftDDS.L0303
                        .BRANCH   20,SoftDDS.L0301
                        JMP       SoftDDS.L0301
SoftDDS.L0303:
                        .BLOCK    1196
                        .LINE     1197
                        .BRANCH   17,SoftDDS.SHOWDEFAULTUPPER
                        CALL      SoftDDS.SHOWDEFAULTUPPER
                        .LINE     1198
                        .BRANCH   17,SoftDDS.SETUPMP3
                        CALL      SoftDDS.SETUPMP3
                        .LINE     1199
                        .BRANCH   17,SoftDDS.SHOWDEFAULTLOWER
                        CALL      SoftDDS.SHOWDEFAULTLOWER
                        .ENDBLOCK 1200
SoftDDS.L0301:
SoftDDS.L0302:
                        .LINE     1201
                        .BRANCH   17,SoftDDS.MP3CHECKREPEAT
                        CALL      SoftDDS.MP3CHECKREPEAT
                        .LINE     1202
                        LDS       _ACCA, SoftDDS.MP3isOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0306
                        BRNE      SoftDDS.L0306
                        .BRANCH   20,SoftDDS.L0304
                        JMP       SoftDDS.L0304
SoftDDS.L0306:
                        .BLOCK    1202
                        .LINE     1203
                        .BRANCH   17,SoftDDS.WRITEWAVEMP3TRACKTIME
                        CALL      SoftDDS.WRITEWAVEMP3TRACKTIME
                        .ENDBLOCK 1204
SoftDDS.L0304:
SoftDDS.L0305:
                        .ENDBLOCK 1205
                        .LINE     1205
SoftDDS.L0299:
                        .BRANCH   17,SoftDDS.NAVIBUTTON
                        CALL       SoftDDS.NAVIBUTTON
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0307
                        BRNE      SoftDDS.L0307
                        .BRANCH   20,SoftDDS.L0298
                        JMP       SoftDDS.L0298
SoftDDS.L0307:
SoftDDS.L0300:
                        .ENDBLOCK 1206
                        .BRANCH   20,SoftDDS.L0291
                        JMP       SoftDDS.L0291
SoftDDS.L0293:
                        .LINE     1207
                        CPI       _ACCA, 9
                        .BRANCH   3,SoftDDS.L0310
                        BREQ      SoftDDS.L0310
                        .BRANCH   20,SoftDDS.L0309
                        JMP       SoftDDS.L0309
SoftDDS.L0310:
SoftDDS.L0308:
                        .BLOCK    1208
                        .LINE     1208
                        .BRANCH   17,SoftDDS.SHOWDEFAULT
                        CALL      SoftDDS.SHOWDEFAULT
                        .LINE     1209
                        .BRANCH   17,SoftDDS.SLOWREPEATRELEASE
                        CALL      SoftDDS.SLOWREPEATRELEASE
                        .LINE     1210
                        LDS       _ACCA, SoftDDS.LeveldB
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .LINE     1211
                        .BRANCH   17,SoftDDS.SETITEMLIMPOS
                        CALL      SoftDDS.SETITEMLIMPOS
SoftDDS.L0311:
                        .BLOCK    1212
                        .LINE     1213
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.EDITSELECTEDITEM
                        CALL       SoftDDS.EDITSELECTEDITEM
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0316
                        BRNE      SoftDDS.L0316
                        .BRANCH   20,SoftDDS.L0314
                        JMP       SoftDDS.L0314
SoftDDS.L0316:
                        .BLOCK    1213
                        .LINE     1214
                        LDS       _ACCA, SoftDDS.PresetOn
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0319
                        BRNE      SoftDDS.L0319
                        .BRANCH   20,SoftDDS.L0317
                        JMP       SoftDDS.L0317
SoftDDS.L0319:
                        .BLOCK    1214
                        .LINE     1215
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYTOEE
                        CALL      SoftDDS.PATCHCOPYTOEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 1216
SoftDDS.L0317:
SoftDDS.L0318:
                        .LINE     1217
                        .BRANCH   17,SoftDDS.SHOWDEFAULT
                        CALL      SoftDDS.SHOWDEFAULT
                        .ENDBLOCK 1218
SoftDDS.L0314:
SoftDDS.L0315:
                        .LINE     1219
                        .BRANCH   17,SoftDDS.MP3CHECKREPEAT
                        CALL      SoftDDS.MP3CHECKREPEAT
                        .ENDBLOCK 1220
                        .LINE     1220
SoftDDS.L0312:
                        .BRANCH   17,SoftDDS.NAVIBUTTON
                        CALL       SoftDDS.NAVIBUTTON
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0320
                        BRNE      SoftDDS.L0320
                        .BRANCH   20,SoftDDS.L0311
                        JMP       SoftDDS.L0311
SoftDDS.L0320:
SoftDDS.L0313:
                        .ENDBLOCK 1221
                        .BRANCH   20,SoftDDS.L0291
                        JMP       SoftDDS.L0291
SoftDDS.L0309:
                        .LINE     1222
                        CPI       _ACCA, 0
                        .BRANCH   2,SoftDDS.L0323
                        BRCC      SoftDDS.L0323
                        .BRANCH   20,SoftDDS.L0322
                        JMP       SoftDDS.L0322
SoftDDS.L0323:
                        CPI       _ACCA, 7
                        .BRANCH   3,SoftDDS.L0324
                        BREQ      SoftDDS.L0324
                        .BRANCH   1,SoftDDS.L0322
                        BRCS      SoftDDS.L0324
                        .BRANCH   20,SoftDDS.L0322
                        JMP       SoftDDS.L0322
SoftDDS.L0324:
SoftDDS.L0321:
                        .BLOCK    1223
                        .LINE     1223
                        .BRANCH   17,SoftDDS.LCD1X0Y0
                        CALL      SoftDDS.LCD1X0Y0
                        .LINE     1224
                        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.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     1225
                        .BRANCH   17,SoftDDS.WRITEFREQUSPACED
                        CALL      SoftDDS.WRITEFREQUSPACED
                        .LINE     1226
                        .BRANCH   17,SoftDDS.SETCURSOR
                        CALL      SoftDDS.SETCURSOR
                        .LINE     1227
                        .BRANCH   17,SoftDDS.SLOWREPEATRELEASE
                        CALL      SoftDDS.SLOWREPEATRELEASE
SoftDDS.L0325:
                        .BLOCK    1228
                        .LINE     1229
                        .BRANCH   17,SoftDDS.UPDOWNDATA
                        CALL      SoftDDS.UPDOWNDATA
                        .ENDBLOCK 1230
                        .LINE     1230
SoftDDS.L0326:
                        .BRANCH   17,SoftDDS.NAVIBUTTON
                        CALL       SoftDDS.NAVIBUTTON
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0328
                        BRNE      SoftDDS.L0328
                        .BRANCH   20,SoftDDS.L0325
                        JMP       SoftDDS.L0325
SoftDDS.L0328:
SoftDDS.L0327:
                        .ENDBLOCK 1231
                        .BRANCH   20,SoftDDS.L0291
                        JMP       SoftDDS.L0291
SoftDDS.L0322:
                        .LINE     1232
                        CPI       _ACCA, 10
                        .BRANCH   2,SoftDDS.L0331
                        BRCC      SoftDDS.L0331
                        .BRANCH   20,SoftDDS.L0330
                        JMP       SoftDDS.L0330
SoftDDS.L0331:
                        CPI       _ACCA, 13
                        .BRANCH   3,SoftDDS.L0332
                        BREQ      SoftDDS.L0332
                        .BRANCH   1,SoftDDS.L0330
                        BRCS      SoftDDS.L0332
                        .BRANCH   20,SoftDDS.L0330
                        JMP       SoftDDS.L0330
SoftDDS.L0332:
SoftDDS.L0329:
                        .BLOCK    1233
                        .LINE     1233
                        .BRANCH   17,SoftDDS.LCD1X0Y0
                        CALL      SoftDDS.LCD1X0Y0
                        .LINE     1234
                        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.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     1235
                        .BRANCH   17,SoftDDS.SHOWOPTIONSLOWER
                        CALL      SoftDDS.SHOWOPTIONSLOWER
                        .LINE     1236
                        .BRANCH   17,SoftDDS.SETCURSOR
                        CALL      SoftDDS.SETCURSOR
                        .LINE     1237
                        .BRANCH   17,SoftDDS.SLOWREPEATRELEASE
                        CALL      SoftDDS.SLOWREPEATRELEASE
SoftDDS.L0333:
                        .BLOCK    1238
                        .LINE     1239
                        .BRANCH   17,SoftDDS.UPDOWNDATA
                        CALL      SoftDDS.UPDOWNDATA
                        .LINE     1240
                        .BRANCH   17,SoftDDS.SETUPMP3
                        CALL      SoftDDS.SETUPMP3
                        .ENDBLOCK 1241
                        .LINE     1241
SoftDDS.L0334:
                        .BRANCH   17,SoftDDS.NAVIBUTTON
                        CALL       SoftDDS.NAVIBUTTON
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0336
                        BRNE      SoftDDS.L0336
                        .BRANCH   20,SoftDDS.L0333
                        JMP       SoftDDS.L0333
SoftDDS.L0336:
SoftDDS.L0335:
                        .ENDBLOCK 1242
                        .BRANCH   20,SoftDDS.L0291
                        JMP       SoftDDS.L0291
SoftDDS.L0330:
SoftDDS.L0291:
                        .LINE     1245
                        LDS       _ACCB, 00112h
                        CLR       _ACCA
                        SBRC      _ACCB, 003h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0339
                        BRNE      SoftDDS.L0339
                        .BRANCH   20,SoftDDS.L0337
                        JMP       SoftDDS.L0337
SoftDDS.L0339:
                        .BLOCK    1245
                        .LINE     1246
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 008h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0340
                        SER       _ACCA
SoftDDS.L0340:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0343
                        BRNE      SoftDDS.L0343
                        .BRANCH   20,SoftDDS.L0341
                        JMP       SoftDDS.L0341
SoftDDS.L0343:
                        .BLOCK    1246
                        .LINE     1247
                        LDI       _ACCA, 007h
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .ENDBLOCK 1248
                        .BRANCH   20,SoftDDS.L0342
                        JMP       SoftDDS.L0342
SoftDDS.L0341:
                        .BLOCK    1248
                        .LINE     1249
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 0
                        BREQ      SoftDDS.L0344
                        DEC       _ACCA
SoftDDS.L0344:
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .ENDBLOCK 1250
SoftDDS.L0342:
                        .ENDBLOCK 1251
SoftDDS.L0337:
SoftDDS.L0338:
                        .LINE     1252
                        LDS       _ACCB, 00112h
                        CLR       _ACCA
                        SBRC      _ACCB, 004h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0347
                        BRNE      SoftDDS.L0347
                        .BRANCH   20,SoftDDS.L0345
                        JMP       SoftDDS.L0345
SoftDDS.L0347:
                        .BLOCK    1252
                        .LINE     1253
                        LDS       _ACCA, SoftDDS.EditWhich
                        INC       _ACCA
                        CPI       _ACCA, 16
                        BRCS      SoftDDS.L0348
                        CLR       _ACCA
SoftDDS.L0348:
                        STS       SoftDDS.EditWhich, _ACCA
                        .LINE     1254
                        LDS       _ACCA, SoftDDS.MP3isOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0351
                        BRNE      SoftDDS.L0351
                        .BRANCH   20,SoftDDS.L0349
                        JMP       SoftDDS.L0349
SoftDDS.L0351:
                        .BLOCK    1254
                        .LINE     1255
                        LDI       _ACCA, 00Ah
                        STS       SOFTDDS.LASTMENU, _ACCA
                        .ENDBLOCK 1256
SoftDDS.L0349:
SoftDDS.L0350:
                        .LINE     1257
                        LDS       _ACCA, SoftDDS.EditWhich
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.LastMenu
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0352
                        BRLO      SoftDDS.L0352
                        SER       _ACCA
SoftDDS.L0352:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0355
                        BRNE      SoftDDS.L0355
                        .BRANCH   20,SoftDDS.L0353
                        JMP       SoftDDS.L0353
SoftDDS.L0355:
                        .BLOCK    1257
                        .LINE     1258
                        LDS       _ACCA, SoftDDS.LastMenu
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .ENDBLOCK 1259
SoftDDS.L0353:
SoftDDS.L0354:
                        .ENDBLOCK 1260
SoftDDS.L0345:
SoftDDS.L0346:
                        .LINE     1261
                        LDS       _ACCB, 00112h
                        CLR       _ACCA
                        SBRC      _ACCB, 007h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0358
                        BRNE      SoftDDS.L0358
                        .BRANCH   20,SoftDDS.L0356
                        JMP       SoftDDS.L0356
SoftDDS.L0358:
                        .BLOCK    1261
                        .LINE     1262
                        LDS       _ACCA, SoftDDS.PresetOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0361
                        BRNE      SoftDDS.L0361
                        .BRANCH   20,SoftDDS.L0359
                        JMP       SoftDDS.L0359
SoftDDS.L0361:
                        .BLOCK    1262
                        .LINE     1263
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PRESETON, _ACCA
                        .LINE     1264
                        CBI       0002Bh, 002h
                        .LINE     1265
                        .BRANCH   17,SoftDDS.PRESETSAVE
                        CALL      SoftDDS.PRESETSAVE
                        .LINE     1266
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYFROMEE
                        CALL      SoftDDS.PATCHCOPYFROMEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 1267
                        .BRANCH   20,SoftDDS.L0360
                        JMP       SoftDDS.L0360
SoftDDS.L0359:
                        .BLOCK    1267
                        .LINE     1268
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.PRESETON, _ACCA
                        .LINE     1269
                        SBI       0002Bh, 002h
                        .LINE     1270
                        .BRANCH   17,SoftDDS.PRESETRESTORE
                        CALL      SoftDDS.PRESETRESTORE
                        .ENDBLOCK 1271
SoftDDS.L0360:
                        .LINE     1272
                        .BRANCH   17,SoftDDS.SETUPMP3
                        CALL      SoftDDS.SETUPMP3
                        .LINE     1273
                        .BRANCH   17,SoftDDS.SHOWDEFAULTLOWER
                        CALL      SoftDDS.SHOWDEFAULTLOWER
                        .ENDBLOCK 1274
SoftDDS.L0356:
SoftDDS.L0357:
                        .ENDBLOCK 1275
                        .LINE     1275
                        .BRANCH   20,SoftDDS.L0289
                        JMP       SoftDDS.L0289
SoftDDS.L0290:
                        .ENDBLOCK 1276

SoftDDS.$_MAINEX:
                        .LINE     1276
                        .BRANCH   20,SoftDDS.$_MAINEX
                        RJMP      SoftDDS.$_MAINEX


                        .ENDFUNC  1276

SYSTEM.$Main_stk        .EQU    00164h          ; var iData  Process stack area
SYSTEM.$Main_stk_e      .EQU    001E3h          ; var iData  Process stack area
SYSTEM.$Main_Frame      .EQU    001E4h          ; var iData  Process stack area
SYSTEM.$Main_Frame_e    .EQU    00243h          ; var iData  Process stack area

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Initialisation and Library Routines
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .ENTRY
SYSTEM.RESET:
                        CLI
                        ; >> Stack Init [main process only] <<
                        LDI       _ACCA, 001h
                        LDI       _ACCB, 0E3h
                        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.L0362:
                        SBIW      _ACCCLO, 001h
                        BREQ      SYSTEM.L0364
SYSTEM.L0363:
                        ST        X+, _ACCA
                        RJMP      SYSTEM.L0362
SYSTEM.L0364:
                        LDI       _ACCBLO, 00100h AND 0FFh
                        LDI       _ACCBHI, 00100h SHRB 8
                        LDI       _ACCCLO, 00400h AND 0FFh
                        LDI       _ACCCHI, 00400h SHRB 8
                        ADIW      _ACCCLO, 1
SYSTEM.L0365:
                        SBIW      _ACCCLO, 001h
                        BREQ      SYSTEM.L0367
SYSTEM.L0366:
                        ST        X+, _ACCA
                        RJMP      SYSTEM.L0365
SYSTEM.L0367:
                        LDI       _FRAMEPTR, 00243h AND 0FFh
                        LDI       _FPTRHI, 00243h SHRB 8

                        CLI
                        LDI       _ACCA, 0FEH ROLB IntFlag
                        AND       Flags, _ACCA

                        ; ============ init structured constants ============
                        ; >> Hardware Init <<

                        ; >> SysTick init: 10msec <<
                        ; >> real SysTick (exact): 9.984 msec <<
                        LDI       _ACCA, 064h
                        STS       SysTickTime, _ACCA
                        OUT       tcnt0, _ACCA
                        LDI       _ACCA, 5
                        OUT       tccr0, _ACCA
                        LDI       _ACCA, 001h
                        STS       timsk0, _ACCA

                        ; >> IncrPort4 Init <<
                        LDI       _ACCA, 0
                        STS       TCCR1A, _ACCA
                        LDI       _ACCA, 009h
                        STS       TCCR1B, _ACCA
                        LDI       _ACCA, 00FA0h SHRB 8
                        LDI       _ACCB, 00FA0h AND 0FFh
                        STS       OCR1AH, _ACCA
                        STS       OCR1AL, _ACCB

                        ; >> TWIPORT Init <<
                        LDI       _ACCA, 00Ch
                        STS       TWBR, _ACCA
                        LDI       _ACCA, 0FFh
                        STS       TWI_DevLock, _ACCA

                        CLR       Flags
                        CLR       Flags2

                        ; ============ Start User Main Program ============

                        .DEB      MAINENTRY
                        JMP       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
                        CALL      SoftDDS.onSysTick
                        LDS       _ACCB, _TWI_TO
                        TST       _ACCB
                        BREQ      SYSTEM.L0368
                        DEC       _ACCB
                        STS       _TWI_TO, _ACCB
SYSTEM.L0368:
                        LDS       _ACCCLO, SoftDDS.MP3repeatTimer
                        LDS       _ACCCHI, SoftDDS.MP3repeatTimer+1
                        TST       _ACCCHI
                        BRNE      SYSTEM.L0369
                        TST       _ACCCLO
                        BREQ      SYSTEM.L0370
SYSTEM.L0369:
                        SBIW      _ACCCLO, 1
                        STS       SoftDDS.MP3repeatTimer, _ACCCLO
                        STS       SoftDDS.MP3repeatTimer+1, _ACCCHI
                        RJMP      SYSTEM.L0371
SYSTEM.L0370:
                        MOV       _ACCA, _SYSTFLAGS
                        ANDI      _ACCA, 0FEh
                        MOV       _SYSTFLAGS, _ACCA
SYSTEM.L0371:
                        LDS       _ACCA, SoftDDS.BurstTimer
                        TST       _ACCA
                        BREQ      SYSTEM.L0372
                        SUBI      _ACCA, 1
                        STS       SoftDDS.BurstTimer, _ACCA
SYSTEM.L0372:
                        LDI       _ACCA, 1 SHLB IntFlag
                        OR        Flags, _ACCA
                        POP       _ACCA
                        OUT       SREG, _ACCA
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        .DEB      SYSTICKEXIT
                        RETI

SYSTEM.$INTERRUPT_TIMER1COMPA:
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        PUSH      _ACCB
                        PUSH      _ACCA
                        IN        _ACCA, SREG
                        PUSH      _ACCA
                        RJMP      SYSTEM.L0377

SYSTEM.L0373:
                        MOV       _ACCB, _ACCA
                        LSR       _ACCA
                        LSR       _ACCA
                        ANDI      _ACCB, 3
                        BRNE      SYSTEM.L0374
                        ADIW      _ACCCLO, 2
                        RET
SYSTEM.L0374:
                        CPI       _ACCB, 1
                        BREQ      SYSTEM.L0375
                        LDD       _ACCALO, Z+0
                        LDD       _ACCAHI, Z+1
                        SUBI      _ACCALO, 0FFh
                        SBCI      _ACCAHI, 0FFh
                        RJMP      SYSTEM.L0376
SYSTEM.L0375:
                        LDD       _ACCALO, Z+0
                        LDD       _ACCAHI, Z+1
                        SUBI      _ACCALO, 1
                        SBCI      _ACCAHI, 0
SYSTEM.L0376:
                        ST        Z+, _ACCALO
                        ST        Z+, _ACCAHI
                        RET

SYSTEM.L0377:
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
                        PUSH      _ACCDLO
                        PUSH      _ACCDHI
                        IN        _ACCA, PINC
                        .DEB      Incr4Int
                        ANDI      _ACCA, 03h;
                        LDI       _ACCCLO, _INCRSTATE4 AND 0FFh
                        LDI       _ACCCHI, _INCRSTATE4 SHRB 8
                        LDD       _ACCB, Z+0
                        STD       Z+0, _ACCA
                        MOV       _ACCALO, _ACCB;
                        EOR       _ACCALO, _ACCA;
                        BREQ      SYSTEM.L0378
                        MOV       _ACCAHI, _ACCALO;
                        ANDI      _ACCALO, 055h;
                        ANDI      _ACCAHI, 0AAh;
                        MOV       _ACCDLO, _ACCALO;
                        EOR       _ACCDLO, _ACCAHI;
                        AND       _ACCALO, _ACCDLO
                        AND       _ACCAHI, _ACCDLO
                        MOV       _ACCCLO, _ACCB;
                        ANDI      _ACCCLO, 055h;
                        MOV       _ACCDLO, _ACCB;
                        ANDI      _ACCDLO, 0AAh;
                        LSR       _ACCDLO;
                        EOR       _ACCCLO, _ACCDLO;
                        COM       _ACCCLO;
                        MOV       _ACCCHI, _ACCA;
                        ANDI      _ACCCHI, 055h;
                        MOV       _ACCDLO, _ACCA;
                        ANDI      _ACCDLO, 0AAh;
                        LSR       _ACCDLO;
                        EOR       _ACCCHI, _ACCDLO;
                        COM       _ACCCHI;
                        MOV       _ACCA, _ACCALO;
                        AND       _ACCA, _ACCCLO;
                        MOV       _ACCB, _ACCCHI;
                        LSL       _ACCB;
                        AND       _ACCB, _ACCAHI;
                        LSR       _ACCB;
                        OR        _ACCA, _ACCB;
                        AND       _ACCALO, _ACCCHI;
                        LSL       _ACCALO;
                        LSL       _ACCCLO;
                        AND       _ACCAHI, _ACCCLO;
                        OR        _ACCALO, _ACCAHI;
                        OR        _ACCA, _ACCALO;
                        LDI       _ACCCLO, _INCRCOUNT4_0 AND 0FFh
                        LDI       _ACCCHI, _INCRCOUNT4_0 SHRB 8
                        RCALL     SYSTEM.L0373
SYSTEM.L0378:
                        POP       _ACCDHI
                        POP       _ACCDLO
                        POP       _ACCAHI
                        POP       _ACCALO
                        POP       _ACCA
                        OUT       SREG, _ACCA
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RETI


                        ; ============ Library ============

SYSTEM._LCDM_ini:
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00002h AND 0FFh
                        LDI       _ACCBHI, 00002h SHRB 8
                        LDI       _ACCAHI, 002h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 00000h AND 0FFh
                        LDI       _ACCEHI, 00000h SHRB 8
                        CLT
                        BLD       Flags, _I2C2BYTE
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00002h AND 0FFh
                        LDI       _ACCBHI, 00002h SHRB 8
                        LDI       _ACCAHI, 004h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 00000h AND 0FFh
                        LDI       _ACCEHI, 00000h SHRB 8
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00002h AND 0FFh
                        LDI       _ACCBHI, 00002h SHRB 8
                        LDI       _ACCAHI, 006h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 0F800h AND 0FFh
                        LDI       _ACCEHI, 0F800h SHRB 8
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        RET

SYSTEM._LCDM_CLOSE:
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 003h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        CLT
                        BLD       Flags, _I2C2BYTE
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 003h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 000h
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        RET

SYSTEM._LCDM_START_RW:
                        PUSH      _ACCELO
                        MOV       _ACCALO, _ACCA
                        LDI       _ACCELO, 000h
                        RCALL     SYSTEM._LCDM_CLOSE
                        POP       _ACCELO
                        PUSH      _ACCELO
                        ANDI      _ACCELO, 2
                        BREQ       SYSTEM.L0379
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 006h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 0FFh
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        RJMP      SYSTEM.L0380
SYSTEM.L0379:
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 006h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 000h
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 006h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        MOV       _ACCELO, _ACCALO
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
SYSTEM.L0380:
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 003h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        POP       _ACCELO
                        PUSH      _ACCELO
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 003h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        POP       _ACCELO
                        PUSH      _ACCELO
                        ORI       _ACCELO, 1
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        POP       _ACCELO
                        ANDI      _ACCELO, 2
                        BREQ       SYSTEM.L0381
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00000h AND 0FFh
                        LDI       _ACCBHI, 00000h SHRB 8
                        LDI       _ACCAHI, 000h
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
SYSTEM.L0381:
                        RET

SYSTEM._LCDM_Busy_Rd:
                        LDI       _ACCELO, 002h
                        RCALL     SYSTEM._LCDM_START_RW
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        CALL      SYSTEM.TWIinp
                        PUSH      _ACCELO
                        LDI       _ACCELO, 002h
                        RCALL     SYSTEM._LCDM_CLOSE
                        POP       _ACCA
                        .DEB      LCDBUSY_RD
                        RET

SYSTEM._LCDWAIT_M:
                        LDI       _ACCCLO, 00280h AND 0FFh
                        LDI       _ACCCHI, 00280h SHRB 8
SYSTEM.L0382:
                        RCALL     SYSTEM._LCDM_Busy_Rd
                        TST       _ACCA
                        BRPL       SYSTEM.L0383
                        SBIW      _ACCCLO, 1
                        BRNE      SYSTEM.L0382
                        CLR       _ACCB
                        CLR       _ACCA
                        RET
SYSTEM.L0383:
                        MOV       _ACCB, _ACCA
                        SER       _ACCA
                        RET

SYSTEM._LCDM_Ctrl_Wr:
                        PUSH      _ACCA
                        RCALL     SYSTEM._LCDWAIT_M
                        TST       _ACCA
                        BRNE      SYSTEM.L0384
                        POP       _ACCB
                        RET
SYSTEM.L0384:
                        POP       _ACCA
SYSTEM._LCDM_Ctrl_Wr_NW:
                        .DEB      LCDCTRL_WR
                        LDI       _ACCELO, 000h
                        RCALL     SYSTEM._LCDM_START_RW
                        LDI       _ACCELO, 000h
                        RCALL     SYSTEM._LCDM_CLOSE
                        SER       _ACCA
                        RET

SYSTEM._LCDM_Data_Wr:
                        .DEB      LCDOUT_M
                        LDI       _ACCELO, 004h
                        RCALL     SYSTEM._LCDM_START_RW
                        LDI       _ACCELO, 004h
                        RCALL     SYSTEM._LCDM_CLOSE
                        SER       _ACCA
                        RET

SYSTEM._LCDM_Data_Rd:
                        LDI       _ACCELO, 006h
                        RCALL     SYSTEM._LCDM_START_RW
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        CALL      SYSTEM.TWIinp
                        PUSH      _ACCELO
                        LDI       _ACCELO, 006h
                        RCALL     SYSTEM._LCDM_CLOSE
                        POP       _ACCA
                        .DEB      LCDINP_M
                        RET

SYSTEM.LCDSETUP_M:
                        STS       _LCDM_PORT, _ACCA
                        ORI       _ACCA, 20h
                        CALL      SYSTEM.TWIstat
                        .DEB      I2CSTAT_M
                        TST       _ACCA
                        BRNE       SYSTEM.L0385
                        RET
SYSTEM.L0385:
                        RCALL     SYSTEM._LCDM_ini
                        LDI       _ACCB, 16
                        CLR       _ACCA
                        CALL      SYSTEM.MDELAY
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr_NW
                        LDI       _ACCB, 5
                        CLR       _ACCA
                        CALL      SYSTEM.MDELAY
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr_NW
                        LDI       _ACCB, 1
                        CLR       _ACCA
                        CALL      SYSTEM.MDELAY
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr_NW
                        LDI       _ACCB, 1
                        CLR       _ACCA
                        CALL      SYSTEM.MDELAY
                        LDI       _ACCA, 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.L0386
SYSTEM.LCDCURSOR_M:
                        LDD       _ACCA, Y+002h
                        STS       _LCDM_PORT, _ACCA
                        LDD       _ACCA, Y+000h
                        LDD       _ACCB, Y+001h
SYSTEM.L0386:
                        TST       _ACCA
                        BRNE       SYSTEM.L0387
                        LDI       _ACCA, 0Ch
                        RJMP      SYSTEM.L0388

SYSTEM.L0387:
                        LDI       _ACCA, 0Dh
SYSTEM.L0388:
                        TST       _ACCB
                        BREQ       SYSTEM.L0389
                        ORI       _ACCA, 2
SYSTEM.L0389:
                        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.L0390
                        LDI       _ACCA, 080h
                        RJMP      SYSTEM.L0394

SYSTEM.L0390:
                        CPI       _ACCA, 1
                        BRNE       SYSTEM.L0391
                        LDI       _ACCA, 0C0h
                        RJMP      SYSTEM.L0394

SYSTEM.L0391:
                        CPI       _ACCA, 2
                        BRNE       SYSTEM.L0392
                        LDI       _ACCA, 090h
                        RJMP      SYSTEM.L0394

SYSTEM.L0392:
                        CPI       _ACCA, 3
                        BRNE       SYSTEM.L0393
                        LDI       _ACCA, 0D0h
                        RJMP      SYSTEM.L0394

SYSTEM.L0393:
                        LDI       _ACCA, 080h
SYSTEM.L0394:
                        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
                        CALL      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.L0395:
                        PUSH      _ACCB
                        LDI       _ACCA, 20h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        POP       _ACCB
                        DEC       _ACCB
                        BRNE       SYSTEM.L0395
                        POP       _ACCA
                        RJMP      SYSTEM._LCDM_Ctrl_Wr

SYSTEM.LCDHOME_M:
                        STS       _LCDM_PORT, _ACCA
                        LDI       _ACCA, 02h
                        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
                        CALL      SYSTEM.TWIout
                        POP       _ACCDLO
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        CALL      SYSTEM.TWIinp
                        MOV       _ACCA, _ACCELO
                        ANDI      _ACCA, 0F8h
                        RET

SYSTEM.TWISTARTB:
                        LDI       _ACCA, 0
                        STS       TWI_DevLock, _ACCA
                        LDS       _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 000h
                        BRNE      SYSTEM.L0407
                        LDI       _ACCA, 090h
                        STS       TWCR, _ACCA
SYSTEM.L0407:
                        LDI       _ACCA, 0A4h
                        STS       TWCR, _ACCA
                        LDI       _ACCA, 10
                        STS       _TWI_TO, _ACCA
SYSTEM.L0405:
                        LDS       _ACCA, TWCR
                        ANDI      _ACCA, 080h
                        BRNE      SYSTEM.L0408
                        LDS       _ACCA, _TWI_TO
                        TST       _ACCA
                        BRNE      SYSTEM.L0405
                        STS       TWCR, _ACCA
                        RJMP      SYSTEM.TWI_ERROR
SYSTEM.L0408:
                        LDS       _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 008h
                        BRNE      SYSTEM.L0412
                        RJMP      SYSTEM.TWI_ERROR
SYSTEM.L0412:
                        RJMP      SYSTEM.TWI_OK

SYSTEM.TWISTOPB:
SYSTEM.L0413:
                        LDS       _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 0F8h
                        BREQ      SYSTEM.L0413
                        CPI       _ACCA, 000h
                        BRNE      SYSTEM.L0414
                        LDI       _ACCA, 090h
                        STS       TWCR, _ACCA
                        NOP
SYSTEM.L0414:
                        LDI       _ACCB, 094h
                        STS       TWCR, _ACCB
                        SER       _ACCA
                        STS       TWI_DevLock, _ACCA
                        RET

SYSTEM.TWISENDBYTE:
                        STS       TWDR, _ACCDLO
                        LDI       _ACCA, 084h
                        STS       TWCR, _ACCA
                        LDI       _ACCA, 10
                        STS       _TWI_TO, _ACCA
SYSTEM.L0416:
                        LDS       _ACCA, TWCR
                        ANDI      _ACCA, 080h
                        BRNE      SYSTEM.L0417
                        LDS       _ACCA, _TWI_TO
                        TST       _ACCA
                        BRNE      SYSTEM.L0416
                        RJMP      SYSTEM.TWI_ERROR
SYSTEM.L0417:
                        LDS       _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
                        STS       TWCR, _ACCA
                        SBIW      _ACCBLO, 1
                        BRMI      SYSTEM.TWISTOPB
                        BRNE      SYSTEM.L0418
                        LDI       _ACCA, 084h
SYSTEM.L0418:
                        STS       TWCR, _ACCA
SYSTEM.L0419:
                        LDS       _ACCA, TWCR
                        SBRS      _ACCA, 7
                        RJMP      SYSTEM.L0419
                        LDS       _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 058h
                        BREQ      SYSTEM.L0421
                        CPI       _ACCA, 050h
                        BRNE      SYSTEM.TWI_ERROR
SYSTEM.L0421:
                        LDS       _ACCA, TWDR
                        ST        Z+, _ACCA
                        RJMP      SYSTEM.TWIRECVBYTE
SYSTEM.TWI_OK:
                        LDI       _ACCA, true
                        RET
SYSTEM.TWI_ERROR:
                        LDS       _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 000h
                        BRNE      SYSTEM.L0420
                        LDI       _ACCA, 090h
                        STS       TWCR, _ACCA
SYSTEM.L0420:
                        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.L0423
                        RCALL     SYSTEM.TWIRECVBYTE
                        TST       _ACCA
                        BREQ      SYSTEM.L0423
                        RJMP      SYSTEM.TWI_OK
SYSTEM.L0423:
                        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.L0429
SYSTEM.L0424:
                        MOV       _ACCDLO, _ACCAHI
                        RCALL     SYSTEM.TWISENDBYTE
                        TST       _ACCA
                        BREQ      SYSTEM.L0429
                        BST       Flags, _I2C2BYTE
                        BRTC      SYSTEM.L0428
                        MOV       _ACCDLO, _ACCALO
SYSTEM.L0426:
                        RCALL     SYSTEM.TWISENDBYTE
                        TST       _ACCA
                        BREQ      SYSTEM.L0429
SYSTEM.L0428:
                        TST       _ACCBLO
                        BRNE       SYSTEM.L0433
                        TST       _ACCBHI
                        BREQ       SYSTEM.L0427
SYSTEM.L0433:
                        TST       _ACCDHI
                        BRNE      SYSTEM.L0430
                        LD        _ACCDLO, Z+
                        RJMP      SYSTEM.L0432
SYSTEM.L0430:
                        CPI       _ACCDHI, 1
                        BRNE      SYSTEM.L0431
                        LPM       _ACCDLO, Z+
                        RJMP      SYSTEM.L0432
SYSTEM.L0431:
                        CALL      SYSTEM.ReadEEp8D
                        ADIW      _ACCCLO, 01h
SYSTEM.L0432:
                        SBIW      _ACCBLO, 1
                        RJMP      SYSTEM.L0426
SYSTEM.L0427:
                        RCALL     SYSTEM.TWISTOPB
                        RJMP      SYSTEM.TWI_OK
SYSTEM.L0429:
                        RCALL     SYSTEM.TWI_ERROR
                        SER       _ACCB
                        STS       TWI_DevLock, _ACCB
                        CLR       _ACCA
                        RET

SYSTEM.IncrCount4start:
                        CLI
                        LDS       _ACCA, TIMSK1
                        ORI       _ACCA, 002h
                        STS       TIMSK1, _ACCA
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.GetIncrVal4:
                        LDI       _ACCCLO, _INCRCOUNT4_0 AND 0FFh
                        LDI       _ACCCHI, _INCRCOUNT4_0 SHRB 8
                        CPI       _ACCA, 1
                        BRCS      SYSTEM.L0434
                        LDI       _ACCB, 0
                        LDI       _ACCA, 0
                        RET
SYSTEM.L0434:
                        CLR       _ACCB
                        LSL       _ACCA
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        CLI
                        LD        _ACCB, Z+
                        LD        _ACCA, Z+
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.SetIncrVal4:
                        LDD       _ACCA, Y+002h
                        CPI       _ACCA, 1
                        BRCS      SYSTEM.L0435
                        RET
SYSTEM.L0435:
                        LDI       _ACCCLO, _INCRCOUNT4_0 AND 0FFh
                        LDI       _ACCCHI, _INCRCOUNT4_0 SHRB 8
                        CLR       _ACCB
                        LSL       _ACCA
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LDD       _ACCB, Y+000h
                        LDD       _ACCA, Y+001h
                        CLI
                        ST        Z+, _ACCB
                        ST        Z+, _ACCA
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.GetIncrRel4:
                        CPI       _ACCA, 1
                        BRCS      SYSTEM.L0436
                        LDI       _ACCB, 0
                        LDI       _ACCA, 0
                        RET
SYSTEM.L0436:
                        LDI       _ACCCLO, _INCRCOUNT4_0 AND 0FFh
                        LDI       _ACCCHI, _INCRCOUNT4_0 SHRB 8
                        CLR       _ACCB
                        LSL       _ACCA
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        CLI
                        LDD       _ACCB, Z+0
                        LDD       _ACCA, Z+1
                        ADIW      _ACCCLO, 2
                        LDD       _ACCDLO, Z+0
                        LDD       _ACCDHI, Z+1
                        ST        Z+, _ACCB
                        ST        Z+, _ACCA
                        SBRC      Flags, IntFlag
                        SEI
                        SUB       _ACCB, _ACCDLO
                        SBC       _ACCA, _ACCDHI
                        RET

SYSTEM.ClearIncrAll4:
                        CLR       _ACCA
                        LDI       _ACCB, 5
                        LDI       _ACCCLO, _INCRSTATE4 AND 0FFh
                        LDI       _ACCCHI, _INCRSTATE4 SHRB 8
                        CLI
SYSTEM.L0437:
                        ST        Z+, _ACCA
                        DEC       _ACCB
                        BRNE      SYSTEM.L0437
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.ClearIncrVal4:
                        LDD       _ACCA, Y+000h
                        CPI       _ACCA, 1
                        BRCS      SYSTEM.L0438
                        RET
SYSTEM.L0438:
                        LDI       _ACCCLO, _INCRSTATE4 AND 0FFh
                        LDI       _ACCCHI, _INCRSTATE4 SHRB 8
                        LDI       _ACCB, 03
                        TST       _ACCA
                        BREQ      SYSTEM.L0440
SYSTEM.L0439:
                        LSL       _ACCB
                        DEC       _ACCA
                        BRNE      SYSTEM.L0439
SYSTEM.L0440:
                        CLI
                        LDD       _ACCA, Z+0
                        COM       _ACCB
                        AND       _ACCA, _ACCB
                        ST        Z+, _ACCA
                        LDD       _ACCA, Y+000h
                        CLR       _ACCB
                        LSL       _ACCA
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        CLR       _ACCA
                        LDI       _ACCB, 2
SYSTEM.L0441:
                        STD       Z+2, _ACCA
                        ST        Z+, _ACCA
                        DEC       _ACCB
                        BRNE      SYSTEM.L0441
                        SBRC      Flags, IntFlag
                        SEI
                        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.L0442:
                        SUBI      _ACCALO, 001h
                        SBCI      _ACCAHI, 000h
                        BRCS      SYSTEM.L0443
                        LD        _ACCA, Z+
                        ST        X+, _ACCA
                        RJMP      SYSTEM.L0442
SYSTEM.L0443:
                        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.L0444
                        OUT       eedr, _ACCA
                        SBI       eecr, 2
                        SBI       eecr, 1
SYSTEM.L0444:
                        POP       _ACCDLO
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.ReadEEp8:
                        RCALL     SYSTEM._EEpWaitReady
                        OUT       eearl, _ACCCLO
                        OUT       eearh, _ACCCHI
                        SBI       eecr, 0
                        NOP
                        IN        _ACCA, eedr
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.ReadEEp8D:
                        RCALL     SYSTEM._EEpWaitReady
                        OUT       eearl, _ACCCLO
                        OUT       eearh, _ACCCHI
                        SBI       eecr, 0
                        NOP
                        IN        _ACCDLO, eedr
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.StringInsert:
                        POP       _ACCAHI
                        POP       _ACCALO
                        POP       _ACCB
                        POP       _ACCBHI
                        POP       _ACCBLO
                        POP       _ACCCHI
                        POP       _ACCCLO
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
SYSTEM._StrIns:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 3
                        TST       _ACCFLO
                        BREQ      SYSTEM.L0445
                        LSR       _ACCFLO
                        BRNE      SYSTEM.L0447
                        PUSH      _ACCA
                        CALL      SYSTEM.ReadEEp8
                        MOV       _ACCAHI, _ACCA
                        POP       _ACCA
                        ADIW      _ACCCLO, 01h
                        RJMP      SYSTEM.L0446
SYSTEM.L0447:
                        LPM       _ACCAHI, Z+
                        RJMP      SYSTEM.L0446
SYSTEM.L0445:
                        LD        _ACCAHI, Z+
SYSTEM.L0446:
                        TST       _ACCAHI
                        BREQ      SYSTEM.L0454
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM.L0449
SYSTEM.L0449:
                        LD        _ACCALO, X
SYSTEM.L0451:
                        CP        _ACCB, _ACCA
                        BRCC      SYSTEM.L0453
SYSTEM.L0454:
                        RET
SYSTEM.L0453:
                        MOV       _ACCDLO, _ACCB
                        SUB       _ACCDLO, _ACCA
                        MOV       _ACCDHI, _ACCDLO
                        SUB       _ACCDLO, _ACCAHI
                        BRCS      SYSTEM.L0459
                        CP        _ACCALO, _ACCA
                        BRCC      SYSTEM.L0456
                        MOV       _ACCELO, _ACCAHI
                        ADD       _ACCELO, _ACCALO
                        CP        _ACCB, _ACCELO
                        BRCS      SYSTEM.L0455
                        MOV       _ACCB, _ACCELO
SYSTEM.L0455:
                        RJMP      SYSTEM.L0459
SYSTEM.L0456:
                        PUSH      _ACCBLO
                        PUSH      _ACCBHI
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        MOV       _ACCDHI, _ACCALO
                        SUB       _ACCDHI, _ACCA
                        CP        _ACCDHI, _ACCDLO
                        BRCC      SYSTEM.L0457
                        MOV       _ACCDLO, _ACCDHI
SYSTEM.L0457:
                        CLR       _ACCDHI
                        ADD       _ACCBLO, _ACCA
                        ADC       _ACCBHI, _ACCDHI
                        ADD       _ACCBLO, _ACCDLO
                        ADC       _ACCBHI, _ACCDHI
                        ADIW      _ACCBLO, 1
                        MOVW      _ACCCLO, _ACCBLO
                        ADD       _ACCCLO, _ACCAHI
                        ADC       _ACCCHI, _ACCDHI
                        MOV       _ACCDHI, _ACCDLO
                        INC       _ACCDHI
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM.L0458
SYSTEM.L0458:
                        LD        _ACCGLO, -X
                        ST        -Z, _ACCGLO
                        DEC       _ACCDHI
                        BRNE     SYSTEM.L0458
SYSTEM.L0452:
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCBHI
                        POP       _ACCBLO
                        MOV       _ACCB, _ACCA
                        ADD       _ACCB, _ACCAHI
                        ADD       _ACCB, _ACCDLO
                        BRNE     SYSTEM.L0463
SYSTEM.L0459:
                        ADD       _ACCAHI, _ACCDLO
                        INC       _ACCAHI
SYSTEM.L0463:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM.L0466
SYSTEM.L0466:
                        ST        X, _ACCB
SYSTEM.L0465:
                        CLR       _ACCALO
                        ADD       _ACCBLO, _ACCA
                        ADC       _ACCBHI, _ACCALO
SYSTEM.L0464:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 3
                        TST       _ACCFLO
                        BREQ      SYSTEM.L0467
                        LSR       _ACCFLO
                        BRNE      SYSTEM.L0469
                        CALL      SYSTEM.ReadEEp8
                        MOV       _ACCGLO, _ACCA
                        ADIW      _ACCCLO, 01h
                        RJMP      SYSTEM.L0468
SYSTEM.L0469:
                        LPM       _ACCGLO, Z+
                        RJMP      SYSTEM.L0468
SYSTEM.L0467:
                        LD        _ACCGLO, Z+
SYSTEM.L0468:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM.L0470
SYSTEM.L0470:
                        ST        X+, _ACCGLO
SYSTEM.L0471:
                        DEC       _ACCAHI
                        BRNE     SYSTEM.L0464
SYSTEM.L0462:
                        RET


SYSTEM._ArrToStr:
                        MOV       _ACCBHI, _ACCA
SYSTEM.L0472:
                        LD        _ACCA, Z+
                        TST       _ACCA
                        BREQ      SYSTEM.L0473
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM.L0472
SYSTEM.L0473:
                        RET


SYSTEM.StrConst2Str:
SYSTEM.L0474:
                        LPM      _ACCA, Z+
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM.L0474
                        RET


SYSTEM.StrVar2Str:
                        LD        _ACCA, Z+
                        TST       _ACCA
                        BREQ      SYSTEM.L0476
                        MOV       _ACCBHI, _ACCA
SYSTEM.L0475:
                        LD        _ACCA, Z+
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM.L0475
SYSTEM.L0476:
                        RET


SYSTEM.Byte2Str:
                        POP       _ACCBHI
                        POP       _ACCBLO
                        POP       _ACCCLO
                        POP       _ACCDLO
                        POP       _ACCDHI
                        POP       _ACCA
                        PUSH      _ACCBLO
                        PUSH      _ACCBHI
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        SBIW      _FRAMEPTR, 7
                        CLT
                        BLD       Flags, _NEGATIVE
                        CLR       _ACCBLO
                        STD       Y+0, _ACCBLO
                        STD       Y+5, _ACCDHI
                        STD       Y+6, _ACCDLO
                        PUSH      _ACCCLO
                        LDI       _ACCB, 100
                        CALL      SYSTEM.DIV8_R
                        RCALL     SYSTEM.Byte2Str_P
                        MOV       _ACCA, _ACCB
                        LDI       _ACCB, 10
                        CALL      SYSTEM.DIV8_R
                        RCALL     SYSTEM.Byte2Str_P
                        MOV       _ACCA, _ACCB
                        RCALL     SYSTEM.Byte2Str_P
                        POP       _ACCDHI
                        POP       _ACCCHI
                        POP       _ACCCLO
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        MOVW      _ACCBLO, _FRAMEPTR
                        LDD       _ACCALO, Y+6
                        LDD       _ACCAHI, Y+5
                        RJMP      SYSTEM.Byte2Str_F


SYSTEM.Byte2Str_X:
                        LD        _ACCB, X+
SYSTEM.L0484:
                        LD        _ACCA, X+
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCAHI
                        BRNE      SYSTEM.L0485
                        LDI       _ACCA, DECIMALSEP
                        CALL      SYSTEM.Char2Str
SYSTEM.L0485:
                        DEC       _ACCB
                        BRNE      SYSTEM.L0484
                        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.L0486
                        TST       _ACCA
                        BREQ      SYSTEM.L0487
SYSTEM.L0486:
                        INC       _ACCCLO
                        STD       Y+0, _ACCCLO
                        CLR       _ACCCHI
                        ADD       _ACCCLO, _FRAMEPTR
                        ADC       _ACCCHI, _FPTRHI
                        ORI       _ACCA, 030h
                        STD       Z+0, _ACCA
SYSTEM.L0487:
                        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.L0488
                        SBRC      _ACCA, 7
                        BLD       Flags, _NEGATIVE
SYSTEM.L0488:
                        LDI       _ACCELO, 4
SYSTEM.L0489:
                        LPM       _ACCALO, Z+
                        LPM       _ACCAHI, Z+
                        ADIW      _ACCCLO, 02h
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        CALL      SYSTEM.DIV16_R
                        MOVW      _ACCBLO, _ACCCLO
                        MOV       _ACCA, _ACCB
                        TST       _ACCA
                        BRPL      SYSTEM.L0490
                        NEG       _ACCA
SYSTEM.L0490:
                        RCALL     SYSTEM.Byte2Str_P
                        POP       _ACCCHI
                        POP       _ACCCLO
                        DEC       _ACCELO
                        BRNE      SYSTEM.L0489
                        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.L0491
                        INC       _ACCB
                        STD       Y+0, _ACCB
                        LDI       _ACCA, 30h
                        STD       Y+1, _ACCA
SYSTEM.L0491:
                        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.L0493
                        MOV       _ACCAHI, _ACCDLO
                        SUB       _ACCAHI, _ACCALO
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0492
                        LDI       _ACCA, 2Dh
                        CALL      SYSTEM.Char2Str
SYSTEM.L0492:
                        RJMP      SYSTEM.Byte2Str_X
SYSTEM.L0493:
                        MOV       _ACCB, _ACCDLO
                        CP        _ACCALO, _ACCDLO
                        BRLT      SYSTEM.L0494
                        MOV       _ACCB, _ACCALO
                        INC       _ACCB
SYSTEM.L0494:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0500
                        DEC       _ACCAHI
SYSTEM.L0500:
                        MOV       _ACCA, _ACCDHI
                        SUB       _ACCB, _ACCAHI
                        NEG       _ACCB
                        BREQ      SYSTEM.L0496
                        BRMI      SYSTEM.L0496
SYSTEM.L0495:
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCAHI
                        DEC       _ACCB
                        BRNE      SYSTEM.L0495
SYSTEM.L0496:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0499
                        LDI       _ACCA, 2Dh
                        CALL      SYSTEM.Char2Str
SYSTEM.L0499:
                        SUB       _ACCAHI, _ACCALO
                        CP        _ACCALO, _ACCDLO
                        BRCS      SYSTEM.L0498
                        LDI       _ACCA, 30h
                        CALL      SYSTEM.Char2Str
                        LDI       _ACCA, DECIMALSEP
                        CALL      SYSTEM.Char2Str
                        CLR       _ACCAHI
                        SUB       _ACCALO, _ACCDLO
                        BREQ      SYSTEM.L0498
SYSTEM.L0497:
                        LDI       _ACCA, 30h
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCALO
                        BRNE      SYSTEM.L0497
SYSTEM.L0498:
                        RJMP      SYSTEM.Byte2Str_X
SYSTEM.Int2Str_A:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0501
                        DEC       _ACCAHI
                        BRMI      SYSTEM.L0503
SYSTEM.L0501:
                        LD        _ACCB, X
                        SUB       _ACCAHI, _ACCB
                        BREQ      SYSTEM.L0503
                        BRCS      SYSTEM.L0503
                        MOV       _ACCA, _ACCDHI
SYSTEM.L0502:
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCAHI
                        BRNE      SYSTEM.L0502
SYSTEM.L0503:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0504
                        LDI       _ACCA, 2Dh
                        CALL      SYSTEM.Char2Str
SYSTEM.L0504:
                        RJMP      SYSTEM.Byte2Str_X

SYSTEM.Char2Str:
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        BST       Flags, _DEVICE
                        BRTS      SYSTEM.L0508
                        PUSH      _ACCA
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LDD       _ACCA, Y+000h
                        TST       _ACCA
                        BRNE      SYSTEM.L0505
                        POP       _ACCA
                        SET
                        BLD       Flags, _ERRFLAG
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RET
SYSTEM.L0505:
                        DEC       _ACCA
                        STD       Y+000h, _ACCA
                        POP       _ACCA
                        BST       Flags, _EEPROM
                        BRTS      SYSTEM.L0506
                        ST        Z+, _ACCA
                        RJMP      SYSTEM.L0507
SYSTEM.L0506:
                        CALL      SYSTEM.WriteEEp8
                        ADIW      _ACCCLO, 01h
SYSTEM.L0507:
                        STD       Y+002h, _ACCCHI
                        STD       Y+001h, _ACCCLO
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RET
SYSTEM.L0508:
                        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.DIV8:
                        POP       _ACCAHI
                        POP       _ACCALO
                        MOV       _ACCB, _ACCA
                        POP       _ACCA
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
SYSTEM.DIV8_R:
                        CLR       _ACCAHI
                        LDI       _ACCALO, 9
SYSTEM.L0509:
                        ROL       _ACCA
                        DEC       _ACCALO
                        BRNE      SYSTEM.L0510
                        MOV       _ACCB, _ACCAHI
                        RET
SYSTEM.L0510:
                        ROL       _ACCAHI
                        SUB       _ACCAHI, _ACCB
                        BRCC      SYSTEM.L0511
                        ADD       _ACCAHI, _ACCB
                        CLC
                        RJMP      SYSTEM.L0509
SYSTEM.L0511:
                        SEC
                        RJMP      SYSTEM.L0509


SYSTEM.MUL16:
                        MOVW      _ACCALO, _ACCB
                        CLR       _ACCDLO
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.MUL16_G
                        MOVW      _ACCELO, _ACCBLO
                        MULS      _ACCAHI, _ACCEHI
                        MOVW      _ACCCLO, _ACCGLO
                        MUL       _ACCALO, _ACCELO
                        MOVW      _ACCB, _ACCGLO
                        MULSU     _ACCAHI, _ACCELO
                        SBC       _ACCCHI, _ACCDLO
                        ADD       _ACCA, _ACCGLO
                        ADC       _ACCCLO, _ACCGHI
                        ADC       _ACCCHI, _ACCDLO
                        MULSU     _ACCEHI, _ACCALO
                        SBC       _ACCCHI, _ACCDLO
                        ADD       _ACCA, _ACCGLO
                        ADC       _ACCCLO, _ACCGHI
                        ADC       _ACCCHI, _ACCDLO
                        RET

SYSTEM.MUL16_G:
                        MUL       _ACCAHI, _ACCBHI
                        MOVW      _ACCCLO, _ACCGLO
                        MUL       _ACCALO, _ACCBLO
                        MOVW      _ACCB, _ACCGLO
                        MUL       _ACCAHI, _ACCBLO
                        ADD       _ACCA, _ACCGLO
                        ADC       _ACCCLO, _ACCGHI
                        ADC       _ACCCHI, _ACCDLO
                        MUL       _ACCALO, _ACCBHI
                        ADD       _ACCA, _ACCGLO
                        ADC       _ACCCLO, _ACCGHI
                        ADC       _ACCCHI, _ACCDLO
                        RET


SYSTEM.DIV16:
                        MOVW      _ACCALO, _ACCB
SYSTEM.DIV16_R:
                        CLR       _ACCDHI
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.L0513
                        MOV       _ACCDHI, _ACCBHI
                        MOV       _ACCDLO, _ACCAHI
                        EOR       _ACCDLO, _ACCBHI
                        CLT
                        SBRS      _ACCDLO, 7
                        BLD       Flags, _SIGN
                        SBRS      _ACCAHI, 7
                        RJMP      SYSTEM.L0515
                        NEG       _ACCALO
                        BRNE      SYSTEM.L0516
                        DEC       _ACCAHI
SYSTEM.L0516:
                        COM       _ACCAHI
SYSTEM.L0515:
                        SBRS      _ACCBHI, 7
                        RJMP      SYSTEM.L0513
                        NEG       _ACCBLO
                        BRNE      SYSTEM.L0517
                        DEC       _ACCBHI
SYSTEM.L0517:
                        COM       _ACCBHI
SYSTEM.L0513:
                        CLR       _ACCCLO
                        SUB       _ACCCHI, _ACCCHI
                        LDI       _ACCA, 17
SYSTEM.L0518:
                        ROL       _ACCBLO
                        ROL       _ACCBHI
                        DEC       _ACCA
                        BRNE      SYSTEM.L0519
                        MOVW      _ACCB, _ACCBLO
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.L0514
                        NEG       _ACCB
                        BRNE      SYSTEM.L0521
                        DEC       _ACCA
SYSTEM.L0521:
                        COM       _ACCA
SYSTEM.L0514:
                        RET
SYSTEM.L0519:
                        ROL       _ACCCLO
                        ROL       _ACCCHI
                        SUB       _ACCCLO, _ACCALO
                        SBC       _ACCCHI, _ACCAHI
                        BRCC      SYSTEM.L0520
                        ADD       _ACCCLO, _ACCALO
                        ADC       _ACCCHI, _ACCAHI
                        CLC
                        RJMP      SYSTEM.L0518
SYSTEM.L0520:
                        SEC
                        RJMP      SYSTEM.L0518


SYSTEM.SHL16:
                        MOV       _ACCALO, _ACCA
                        POP       _ACCDHI
                        POP       _ACCDLO
                        POP       _ACCA
                        POP       _ACCB
                        PUSH      _ACCDLO
                        PUSH      _ACCDHI
SYSTEM.SHL16_R:
                        TST       _ACCALO
                        BREQ      SYSTEM.L0523
                        CPI       _ACCALO, 10h
                        BRCS      SYSTEM.L0522
                        CLR       _ACCA
                        CLR       _ACCB
                        RET
SYSTEM.L0522:
                        LSL       _ACCB
                        ROL       _ACCA
                        DEC       _ACCALO
                        BRNE      SYSTEM.L0522
SYSTEM.L0523:
                        RET

SYSTEM.SetSysTimer:
                        CLI
                        ST        Z+, _ACCB
                        ST        Z+, _ACCA
                        MOV       _ACCBLO, _SYSTFLAGS
                        TST       _ACCA
                        BRNE       SYSTEM.L0524
                        TST       _ACCB
                        BRNE       SYSTEM.L0524
                        COM       _ACCBHI
                        AND       _ACCBLO, _ACCBHI
                        MOV       _SYSTFLAGS, _ACCBLO
                        SBRC      Flags, IntFlag
                        SEI
                        RET
SYSTEM.L0524:
                        OR        _ACCBLO, _ACCBHI
                        MOV       _SYSTFLAGS, _ACCBLO
                        SBRC      Flags, IntFlag
                        SEI
                        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    "Audio-DDS V#1.10"

                        .SYM      SoftDDS.Vers2Str
SoftDDS.Vers2Str:
                        .BYTE     14
                        .ASCII    "C. Meyer 11/05"

                        .SYM      SoftDDS.HzStr
SoftDDS.HzStr:
                        .BYTE     3
                        .ASCII    " Hz"

                        .SYM      SoftDDS.dBStr
SoftDDS.dBStr:
                        .BYTE     3
                        .ASCII    " dB"

                        .SYM      SoftDDS.SinStr
SoftDDS.SinStr:
                        .BYTE     3
                        .ASCII    "Sin"

                        .SYM      SoftDDS.SquStr
SoftDDS.SquStr:
                        .BYTE     3
                        .ASCII    "Sqr"

                        .SYM      SoftDDS.TriStr
SoftDDS.TriStr:
                        .BYTE     3
                        .ASCII    "Tri"

                        .SYM      SoftDDS.NrmStr
SoftDDS.NrmStr:
                        .BYTE     3
                        .ASCII    "Nrm"

                        .SYM      SoftDDS.SymStr
SoftDDS.SymStr:
                        .BYTE     3
                        .ASCII    "Sym"

                        .SYM      SoftDDS.PwrStr
SoftDDS.PwrStr:
                        .BYTE     3
                        .ASCII    "Pwr"

                        .SYM      SoftDDS.SymPwrStr
SoftDDS.SymPwrStr:
                        .BYTE     3
                        .ASCII    "PSy"

                        .SYM      SoftDDS.PlayStr
SoftDDS.PlayStr:
                        .BYTE     7
                        .ASCII    "Play   "

                        .SYM      SoftDDS.WaitStr
SoftDDS.WaitStr:
                        .BYTE     4
                        .ASCII    "Wait"

                        .SYM      SoftDDS.MemStr
SoftDDS.MemStr:
                        .BYTE     7
                        .ASCII    "Memory "

                        .SYM      SoftDDS.PresetStr
SoftDDS.PresetStr:
                        .BYTE     7
                        .ASCII    "Preset "

                        .SYM      SoftDDS.FrequStr
SoftDDS.FrequStr:
                        .BYTE     16
                        .ASCII    "Frequency Hz    "

                        .SYM      SoftDDS.OptStr
SoftDDS.OptStr:
                        .BYTE     16
                        .ASCII    "Wav Rpt Out Brst"

$St_String26:
                        .BYTE     1
                        .ASCII    "."


                        ; ============ array-constant tables ============
                        .SYM      SoftDDS.dBfac
SoftDDS.dBfac:
                        .WORD     01E46h
                        .WORD     021F7h
                        .WORD     0261Ch
                        .WORD     02AC2h
                        .WORD     02FFAh
                        .WORD     035D5h
                        .WORD     03C67h
                        .WORD     043C5h
                        .WORD     04C0Bh
                        .WORD     05552h
                        .WORD     00993h
                        .WORD     00ABDh
                        .WORD     00C0Dh
                        .WORD     00D85h
                        .WORD     00F2Ch
                        .WORD     01105h
                        .WORD     0131Ah
                        .WORD     0156Eh
                        .WORD     0180Bh
                        .WORD     01AFBh
                        .WORD     01E46h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h

                        .SYM      SoftDDS.posx
SoftDDS.posx:
                        .BYTE     000h
                        .BYTE     002h
                        .BYTE     004h
                        .BYTE     006h
                        .BYTE     008h
                        .BYTE     00Ah
                        .BYTE     00Ch
                        .BYTE     00Eh
                        .BYTE     007h
                        .BYTE     009h
                        .BYTE     000h
                        .BYTE     005h
                        .BYTE     008h
                        .BYTE     00Dh
                        .BYTE     004h
                        .BYTE     004h

                        .SYM      SoftDDS.cursx
SoftDDS.cursx:
                        .BYTE     001h
                        .BYTE     003h
                        .BYTE     005h
                        .BYTE     007h
                        .BYTE     009h
                        .BYTE     00Bh
                        .BYTE     00Dh
                        .BYTE     00Fh
                        .BYTE     009h
                        .BYTE     00Dh
                        .BYTE     003h
                        .BYTE     007h
                        .BYTE     00Bh
                        .BYTE     00Fh
                        .BYTE     000h
                        .BYTE     000h

                        .SYM      SoftDDS.posy
SoftDDS.posy:
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h

                        .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 ============

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Reset and Interrupt vectors
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


                        .ENDCODE
                        .ORG       0, VECTTAB
                        .VECTTAB
SYSTEM.VectTab:
                        JMP       SYSTEM.RESET
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.$INTERRUPT_TIMER1COMPA
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.$INTERRUPT_TIMER0
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr

                        .VECTTABE
SYSTEM.ENDPROG:

                        .END

                        ; ============ End of Program ============


                        ; System uses registers
                        ; from bottom     = 00000h
                        ; upto            = 00006h
                        ; and
                        ; from            = 00010h
                        ; upto            = 0001Fh
                        ;
                        ; Stackframe at   = ...001E3h


                        ; ===== Current top of User Vars in Data is 0000Ch =====

                        ; ===== Current top of User Vars in IData is 00243h =====

                        ; ===== Current top of User Vars in EEprom is 0003Fh =====


                        ; ===== Imported Library Routines =====

                        ; Divide       byte DIV8
                        ; Multiply     word MUL16
                        ; Divide       word DIV16
                        ; Shift  left  word SHL16
                        ; LongWord and LongInt types
                        ; Convert byte to string
                        ; Convert int to string
                        ; EEprom read
                        ; EEprom write

                        ; Pascal Statements : 468
                        ; Assembler Lines   : 13737
                        ; Optimizer removed : 241 lines = 482Bytes

                        ; >> real SysTick (exact): 9.984 msec <<

;  Linker removed the following functions and procedures
;
;  Module/Unit             Function/Procedure
;  ------------------------------------------
;
