
                        .FILE     H:\PROJAVR\MINIDDS-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    : 20. März 2006  01:52:23
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .SMALL
                        .ROMEND         01FFFh;

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Constants and Variables definition
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


                        ; === Internal used memory and constants ===

FALSE                   .EQU    000h            ; const 
TRUE                    .EQU    0FFh            ; const 
NIL                     .EQU    000h            ; const 
PI                      .EQU    000h            ; const 
COMPILERREV             .EQU    163h            ; const 
COMPILERBUILD_Y         .EQU    005h            ; const 
COMPILERBUILD_M         .EQU    00Ah            ; const 
COMPILERBUILD_D         .EQU    004h            ; const 
COMPILEYEAR             .EQU    006h            ; const 
COMPILEMONTH            .EQU    003h            ; const 
COMPILEDAY              .EQU    014h            ; const 
COMPILEHOUR             .EQU    001h            ; const 
COMPILEMINUTE           .EQU    034h            ; const 
PROJECTBUILD            .EQU    050h            ; 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 
SREG                    .EQU    05Fh            ; var pData  byte
SPH                     .EQU    05Eh            ; var pData  byte
SPL                     .EQU    05Dh            ; var pData  byte
GIMSK                   .EQU    05Bh            ; var pData  byte
GICR                    .EQU    05Bh            ; var pData  byte
GIFR                    .EQU    05Ah            ; var pData  byte
TIMSK                   .EQU    059h            ; var pData  byte
TIFR                    .EQU    058h            ; var pData  byte
SPMCR                   .EQU    057h            ; var pData  byte
SPMCSR                  .EQU    057h            ; var pData  byte
EMCUCR                  .EQU    056h            ; var pData  byte
MCUCR                   .EQU    055h            ; var pData  byte
MCUCSR                  .EQU    054h            ; var pData  byte
MCUSR                   .EQU    054h            ; var pData  byte
TCCR0                   .EQU    053h            ; var pData  byte
TCCR0A                  .EQU    053h            ; var pData  byte
TCNT0                   .EQU    052h            ; var pData  byte
OCR0                    .EQU    051h            ; var pData  byte
OCR0A                   .EQU    051h            ; var pData  byte
SFIOR                   .EQU    050h            ; var pData  byte
TCCR1A                  .EQU    04Fh            ; var pData  byte
TCCR1B                  .EQU    04Eh            ; var pData  byte
TCNT1H                  .EQU    04Dh            ; var pData  byte
TCNT1L                  .EQU    04Ch            ; var pData  byte
OCR1AH                  .EQU    04Bh            ; var pData  byte
OCR1AL                  .EQU    04Ah            ; var pData  byte
OCR1BH                  .EQU    049h            ; var pData  byte
OCR1BL                  .EQU    048h            ; var pData  byte
ICR1H                   .EQU    045h            ; var pData  byte
ICR1L                   .EQU    044h            ; var pData  byte
WDTCR                   .EQU    041h            ; var pData  byte
UBRR1H                  .EQU    040h            ; var pData  byte
UBRRH                   .EQU    040h            ; var pData  byte
UCSRC                   .EQU    040h            ; var pData  byte
UCSR0C                  .EQU    040h            ; var pData  byte
EEARH                   .EQU    03Fh            ; var pData  byte
EEARL                   .EQU    03Eh            ; var pData  byte
EEDR                    .EQU    03Dh            ; var pData  byte
EECR                    .EQU    03Ch            ; var pData  byte
PORTA                   .EQU    03Bh            ; var pData  byte
PINA                    .EQU    039h            ; var pData  byte
DDRA                    .EQU    03Ah            ; var pData  byte
PORTB                   .EQU    038h            ; var pData  byte
PINB                    .EQU    036h            ; var pData  byte
DDRB                    .EQU    037h            ; var pData  byte
PORTC                   .EQU    035h            ; var pData  byte
PINC                    .EQU    033h            ; var pData  byte
DDRC                    .EQU    034h            ; var pData  byte
PORTD                   .EQU    032h            ; var pData  byte
PIND                    .EQU    030h            ; var pData  byte
DDRD                    .EQU    031h            ; var pData  byte
SPDR                    .EQU    02Fh            ; var pData  byte
SPSR                    .EQU    02Eh            ; var pData  byte
SPCR                    .EQU    02Dh            ; var pData  byte
UDR                     .EQU    02Ch            ; var pData  byte
UDR1                    .EQU    02Ch            ; var pData  byte
USR1                    .EQU    02Bh            ; var pData  byte
UCSRA                   .EQU    02Bh            ; var pData  byte
UCR1                    .EQU    02Ah            ; var pData  byte
UCSRB                   .EQU    02Ah            ; var pData  byte
UBRR1                   .EQU    029h            ; var pData  byte
UBRRL                   .EQU    029h            ; var pData  byte
ACSR                    .EQU    028h            ; var pData  byte
PORTE                   .EQU    027h            ; var pData  byte
PINE                    .EQU    025h            ; var pData  byte
DDRE                    .EQU    026h            ; var pData  byte
OSCCAL                  .EQU    024h            ; var pData  byte
TCNT1                   .EQU    04Ch            ; var pData  word
OCR1A                   .EQU    04Ah            ; var pData  word
OCR1B                   .EQU    048h            ; var pData  word
ICR1                    .EQU    044h            ; var pData  word
EEAR                    .EQU    03Eh            ; var pData  word
_iDataStart             .EQU    060h            ; const 
_iDataEnd               .EQU    25Fh            ; const 
_EEpromStart            .EQU    000h            ; const 
_EEpromEnd              .EQU    1FFh            ; const 
_FlashStart             .EQU    000h            ; const 
_FlashEnd               .EQU    1FFFh           ; const 
SysTickTime             .EQU    060h            ; var iData  byte
EEPROM                  .EQU    000h            ; var EEprom array



                        .RESET     000000h
                        .ORG       0, CODE_START
                        .STARTCODE 000022h


                        .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    00Bh            ; const enum     11
SoftDDS.DDRAinit        .EQU    0FFh            ; const byte     255
SoftDDS.PortAinit       .EQU    080h            ; const byte     128
SoftDDS.DDRBinit        .EQU    0FFh            ; const byte     255
SoftDDS.PortBinit       .EQU    08Fh            ; const byte     143
SoftDDS.DDRCinit        .EQU    080h            ; const byte     128
SoftDDS.PortCinit       .EQU    080h            ; const byte     128
SoftDDS.DDRDinit        .EQU    000h            ; const byte     0
SoftDDS.PortDinit       .EQU    0FFh            ; const byte     255
SoftDDS.BtnInPortReg    .EQU    030h            ; const byte     48
SoftDDS.LEDOutPort      .EQU    035h            ; const byte     53
SoftDDS.R2ROutPort      .EQU    03Bh            ; const byte     59
SoftDDS.MPXPort         .EQU    038h            ; const byte     56
;fhz                     .EQU    '$001'; const String
;fdhz                    .EQU    '$000'; const String

                        .FILE     dB775mV.txt

                        .FILE     H:\PROJAVR\MINIDDS-MP3SOURCE\MP3source.pas
;dBfac                   .EQU    '$000'; const String

                        .FILE     sinus.txt

                        .FILE     H:\PROJAVR\MINIDDS-MP3SOURCE\MP3source.pas
;posx                    .EQU    '$004'; const String
;cursx                   .EQU    '$000'; const String
;posy                    .EQU    '$001'; const String
;Vers1Str                .EQU    'miniDDS V#2.11'; const String
;Vers2Str                .EQU    'C. Meyer 03/06'; const String
;HzStr                   .EQU    ' Hz'; const String
;dBStr                   .EQU    ' dB'; const String
;SinStr                  .EQU    'Sin'; const String
;SquStr                  .EQU    'Sqr'; const String
;TriStr                  .EQU    'Swt'; const String
;EmptyStr                .EQU    '-*-'; const String
;PlayStr                 .EQU    'Play       '; const String
;WaitStr                 .EQU    'Wait...'; const String
;MemStr                  .EQU    'Memory '; const String
;PresetStr               .EQU    'Preset '; const String
;TerzStr                 .EQU    'TerzFr '; const String
;AudioStr                .EQU    'Audio  '; const String
;FrequStr                .EQU    'Frequency Hz    '; const String
;OptStr                  .EQU    'Wav Rpt         '; const String
SoftDDS.high            .EQU    0FFh            ; const boolean  true
SoftDDS.low             .EQU    000h            ; const boolean  false
SoftDDS.b_SCLK          .EQU    000h            ; const byte     0
SoftDDS.b_SDATA         .EQU    001h            ; const byte     1
SoftDDS.b_STROBE        .EQU    002h            ; const byte     2
;TerzArray               .EQU    '$04E20'; const String
SoftDDS.EEPatchArray    .EQU    00000h          ; var EEprom array
                        .SYM      EEPatchArray, 00000h, 0403Dh, 3
SoftDDS.EEPwrGain       .EQU    00034h          ; var EEprom byte
                        .SYM      EEPwrGain, 00034h, 0400Dh, 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, 00061h, 0000Eh, 3
SoftDDS.dss_cmd         .EQU    061h            ; var iData  word
                        .SYM      wave_cmd, 00063h, 0000Eh, 3
SoftDDS.wave_cmd        .EQU    063h            ; var iData  word
                        .SYM      Out4094, 00065h, 0000Dh, 3
SoftDDS.Out4094         .EQU    065h            ; var iData  byte
                        .SYM      BtnInState, 00066h, 0000Dh, 3
SoftDDS.BtnInState      .EQU    066h            ; var iData  byte
                        .SYM      EditWhich, 00067h, 0000Ah, 3
SoftDDS.EditWhich       .EQU    067h            ; var iData  enum
                        .SYM      DispWhich, 00068h, 0000Ah, 3
SoftDDS.DispWhich       .EQU    068h            ; var iData  enum
                        .SYM      CurItemNumber, 00069h, 0000Dh, 3
SoftDDS.CurItemNumber   .EQU    069h            ; var iData  byte
                        .SYM      DisplayValue, 0006Ah, 0000Dh, 3
SoftDDS.DisplayValue    .EQU    06Ah            ; var iData  byte
                        .SYM      EditValue, 0006Bh, 0000Dh, 3
SoftDDS.EditValue       .EQU    06Bh            ; var iData  byte
                        .SYM      ItemUpperLimit, 0006Ch, 0000Dh, 3
SoftDDS.ItemUpperLimit  .EQU    06Ch            ; var iData  byte
                        .SYM      ItemLowerLimit, 0006Dh, 0000Dh, 3
SoftDDS.ItemLowerLimit  .EQU    06Dh            ; var iData  byte
                        .SYM      x, 0006Eh, 0000Dh, 3
SoftDDS.x               .EQU    06Eh            ; var iData  byte
                        .SYM      y, 0006Fh, 0000Dh, 3
SoftDDS.y               .EQU    06Fh            ; var iData  byte
                        .SYM      GainOffset, 00070h, 0000Dh, 3
SoftDDS.GainOffset      .EQU    070h            ; var iData  byte
                        .SYM      digits, 00071h, 0000Dh, 3
SoftDDS.digits          .EQU    071h            ; var iData  byte
                        .SYM      BtnTime, 00072h, 0000Dh, 3
SoftDDS.BtnTime         .EQU    072h            ; var iData  byte
                        .SYM      BtnTime2, 00073h, 0000Dh, 3
SoftDDS.BtnTime2        .EQU    073h            ; var iData  byte
                        .SYM      BurstCount, 00074h, 0000Dh, 3
SoftDDS.BurstCount      .EQU    074h            ; var iData  byte
                        .SYM      prime, 00075h, 00003h, 3
SoftDDS.prime           .EQU    075h            ; var iData  boolean
                        .SYM      BurstPrime, 00076h, 00003h, 3
SoftDDS.BurstPrime      .EQU    076h            ; var iData  boolean
                        .SYM      Modified, 00077h, 00003h, 3
SoftDDS.Modified        .EQU    077h            ; var iData  boolean
                        .SYM      aBool, 00078h, 00003h, 3
SoftDDS.aBool           .EQU    078h            ; var iData  boolean
                        .SYM      PresetOn, 00079h, 00003h, 3
SoftDDS.PresetOn        .EQU    079h            ; var iData  boolean
                        .SYM      MP3isOn, 0007Ah, 00003h, 3
SoftDDS.MP3isOn         .EQU    07Ah            ; var iData  boolean
                        .SYM      MP3repeatBset, 0007Bh, 00003h, 3
SoftDDS.MP3repeatBset   .EQU    07Bh            ; var iData  boolean
                        .SYM      PwrGain, 0007Ch, 0000Dh, 3
SoftDDS.PwrGain         .EQU    07Ch            ; var iData  byte
                        .SYM      MemoryNum, 0007Dh, 0000Dh, 3
SoftDDS.MemoryNum       .EQU    07Dh            ; var iData  byte
                        .SYM      MP3Track, 0007Eh, 0000Dh, 3
SoftDDS.MP3Track        .EQU    07Eh            ; var iData  byte
                        .SYM      EditArray, 0007Fh, 0003Dh, 3
SoftDDS.EditArray       .EQU    07Fh            ; var iData  array
                        .SYM      Edit1, 0007Fh, 0000Dh, 3
SoftDDS.Edit1           .EQU    07Fh            ; var iData  byte
                        .SYM      Frequ1, 0007Fh, 0000Dh, 3
SoftDDS.Frequ1          .EQU    07Fh            ; var iData  byte
                        .SYM      Frequ2, 00080h, 0000Dh, 3
SoftDDS.Frequ2          .EQU    080h            ; var iData  byte
                        .SYM      Frequ3, 00081h, 0000Dh, 3
SoftDDS.Frequ3          .EQU    081h            ; var iData  byte
                        .SYM      Frequ4, 00082h, 0000Dh, 3
SoftDDS.Frequ4          .EQU    082h            ; var iData  byte
                        .SYM      Frequ5, 00083h, 0000Dh, 3
SoftDDS.Frequ5          .EQU    083h            ; var iData  byte
                        .SYM      Frequ6, 00084h, 0000Dh, 3
SoftDDS.Frequ6          .EQU    084h            ; var iData  byte
                        .SYM      Frequ7, 00085h, 0000Dh, 3
SoftDDS.Frequ7          .EQU    085h            ; var iData  byte
                        .SYM      FrequDez, 00086h, 0000Dh, 3
SoftDDS.FrequDez        .EQU    086h            ; var iData  byte
                        .SYM      Wave, 00087h, 0000Dh, 3
SoftDDS.Wave            .EQU    087h            ; var iData  byte
                        .SYM      MP3sec, 00088h, 0000Dh, 3
SoftDDS.MP3sec          .EQU    088h            ; var iData  byte
                        .SYM      OutputMode, 00089h, 0000Dh, 3
SoftDDS.OutputMode      .EQU    089h            ; var iData  byte
                        .SYM      BurstMode, 0008Ah, 0000Dh, 3
SoftDDS.BurstMode       .EQU    08Ah            ; var iData  byte
                        .SYM      AttnStep, 0008Bh, 0000Dh, 3
SoftDDS.AttnStep        .EQU    08Bh            ; var iData  byte
                        .SYM      PresetNum, 0008Ch, 0000Dh, 3
SoftDDS.PresetNum       .EQU    08Ch            ; var iData  byte
                        .SYM      SaveArray, 0008Fh, 0003Dh, 3
SoftDDS.SaveArray       .EQU    08Fh            ; var iData  array
                        .SYM      Save1, 0008Fh, 0000Dh, 3
SoftDDS.Save1           .EQU    08Fh            ; var iData  byte
SoftDDS.LevelStr        .EQU    09Fh            ; var iData  string
                        .SYM      LevelStr, 0009Fh, 0303Ch, 3
SoftDDS.FreqStr         .EQU    0A7h            ; var iData  string
                        .SYM      FreqStr, 000A7h, 0303Ch, 3
SoftDDS.MP3repeatTimer  .EQU    0B0h            ; var iData  word
                        .SYM      MP3repeatTimer, 000B0h, 0000Eh, 3
SoftDDS.BurstTimer      .EQU    0B2h            ; var iData  byte
                        .SYM      BurstTimer, 000B2h, 0000Dh, 3
                        .SYM      MP3runningTimer, 000B3h, 0000Dh, 3
SoftDDS.MP3runningTimer .EQU    0B3h            ; var iData  byte
                        .SYM      MP3runningSeconds, 000B4h, 0000Dh, 3
SoftDDS.MP3runningSeconds     .EQU              0B4h        ; var iData  byte
                        .SYM      MP3currenttrack, 000B5h, 0000Dh, 3
SoftDDS.MP3currenttrack .EQU    0B5h            ; var iData  byte
SoftDDS.EditArrayLen    .EQU    00Dh            ; const byte     13
                        .FUNC     OnSysTick, 271, 00020h
SoftDDS.OnSysTick:
                        .BLOCK    272
                        .LINE     273
                        LDS       _ACCA, SoftDDS.MP3runningTimer
                        INC       _ACCA
                        STS       SoftDDS.MP3runningTimer, _ACCA
                        .LINE     274
                        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
                        RJMP      SoftDDS.L0001
SoftDDS.L0003:
                        .BLOCK    274
                        .LINE     275
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3RUNNINGTIMER, _ACCA
                        .LINE     276
                        LDS       _ACCA, SoftDDS.MP3runningSeconds
                        INC       _ACCA
                        STS       SoftDDS.MP3runningSeconds, _ACCA
                        .LINE     277
                        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
                        RJMP      SoftDDS.L0005
SoftDDS.L0007:
                        .BLOCK    277
                        .LINE     278
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3RUNNINGSECONDS, _ACCA
                        .ENDBLOCK 279
SoftDDS.L0005:
SoftDDS.L0006:
                        .ENDBLOCK 280
SoftDDS.L0001:
SoftDDS.L0002:
                        .ENDBLOCK 281
SoftDDS.OnSysTick_X:
                        .LINE     281
                        .BRANCH   19
                        RET
                        .ENDFUNC  281


                        .FILE     MP3source-HW.pas
                        .FUNC     miniDDS, 4, 00020h
SoftDDS.miniDDS:
                        .BLOCK    5
                        .LINE     6
                        CLI
                        LDI       _ACCA, 0FEH ROLB IntFlag
                        AND       Flags, _ACCA
                        .LINE     7
                        LDS       _ACCA, SoftDDS.wave
                        MOV       SOFTDDS.M, _ACCA
                        .ASM
                        .LINE     9
                        mov  _ACCA, SoftDDS.m
                        .LINE     10
                        ldi  _ACCDLO, $FF; kein Taster gedrückt-Vergleich
                        .LINE     11
                        mov  SoftDDS.m, _ACCDLO
                        ; set sinewave output as default
                        .LINE     13
                        ldi  _ACCCHI, SoftDDS.sinus SHRB 8; setup Z pointer hi
                        .LINE     14
                        ldi  _ACCCLO, SoftDDS.sinus AND $FF; setup Z pointer lo
                        .LINE     15
                        ldi  _ACCDHI, $00; clear accumulator
                        .LINE     16
                        ldi  _ACCDLO, $00
                        .LINE     17
                        mov  _ACCFLO, SoftDDS.DDSL; setup adder registers
                        .LINE     18
                        mov  _ACCFHI, SoftDDS.DDSM
                        .LINE     19
                        mov  _ACCBLO, SoftDDS.DDSH;
                        .LINE     20
                        tst  _ACCA
                        .LINE     21
                        breq  SoftDDS.SinLoop
                        .LINE     22
                        dec  _ACCA
                        .LINE     23
                        breq  SoftDDS.TriLoop
                        .LINE     24
                        dec  _ACCA
                        .LINE     25
                        breq  SoftDDS.SquLoop
                        .LINE     26
                        rjmp  SoftDDS.myExit
                        ; _ACCDLO, _ACCDHI, _ACCCLO is the phase accumulator
                        ; _ACCFLO, _ACCFHI, _ACCBLO is the adder value determining frequency
                        ; Sinus:
                        SoftDDS.SinLoop:
                        .LINE     33
                        add _ACCDLO, _ACCFLO; 1  add value to accumulator
                        .LINE     34
                        adc _ACCDHI, _ACCFHI; 1
                        .LINE     35
                        adc _ACCCLO, _ACCBLO; 1
                        .LINE     36
                        lpm; 3, ROM Zugriff Sinustabelle
                        .LINE     37
                        out PORTA, _ACCGLO; 1  output byte to port
                        .LINE     38
                        in        _ACCA, PIND; 1
                        .LINE     39
                        CPSE      _ACCA, SoftDDS.m; 2, bei Änderung an Taster-Port abbrechen
                        .LINE     40
                        rjmp SoftDDS.myExit; bei Abbruch
                        .LINE     41
                        rjmp SoftDDS.SinLoop; 2 = > 12 cycles
                        ; Rechteck:
                        SoftDDS.SquLoop:
                        .LINE     45
                        add _ACCDLO, _ACCFLO; 1
                        .LINE     46
                        adc _ACCDHI, _ACCFHI; 1
                        .LINE     47
                        adc _ACCCLO, _ACCBLO; 1
                        .LINE     48
                        ldi  _ACCA, $00; 1
                        .LINE     49
                        brmi  SoftDDS.setsqu; 1 / 2
                        .LINE     50
                        ldi  _ACCA, $FF; 0 / 1
                        SoftDDS.setsqu:
                        .LINE     52
                        out PORTA, _ACCA; 1
                        .LINE     53
                        in        _ACCA, PIND; 1
                        .LINE     54
                        CPSE      _ACCA, SoftDDS.m; 2, bei Änderung an Taster-Port abbrechen
                        .LINE     55
                        rjmp SoftDDS.myExit; bei Abbruch
                        .LINE     56
                        rjmp SoftDDS.SquLoop; 2 = > 12 cycles
                        in          SoftDDS.m, PIND;  m:= PinD;
                        .LINE     59
                        ldi  _ACCDHI, $00; clear accumulator
                        .LINE     60
                        ldi  _ACCDLO, $00
                        .LINE     61
                        mov  _ACCFLO, SoftDDS.DDSL; setup adder registers
                        .LINE     62
                        mov  _ACCFHI, SoftDDS.DDSM
                        .LINE     63
                        mov  _ACCBLO, SoftDDS.DDSH;
                        ; Sägezahn:
                        SoftDDS.TriLoop:
                        .LINE     67
                        add _ACCDLO, _ACCFLO; 1
                        .LINE     68
                        adc _ACCDHI, _ACCFHI; 1
                        .LINE     69
                        adc _ACCCLO, _ACCBLO; 1
                        .LINE     71
                        mov _ACCA, _ACCCLO; Zählerstand LSB
                        .LINE     72
                        nop
                        .LINE     73
                        nop
                        .LINE     75
                        out PORTA, _ACCA; 1
                        .LINE     76
                        in        _ACCA, PIND; 1
                        .LINE     77
                        CPSE      _ACCA, SoftDDS.m; 2, bei Änderung an Taster-Port abbrechen
                        .LINE     78
                        rjmp SoftDDS.myExit; bei Abbruch
                        .LINE     79
                        rjmp SoftDDS.TriLoop; 2 = > 12 cycles
                        SoftDDS.myExit:
                        .LINE     82
                        ldi  _ACCA, 128; Ausgang auf 8-Bit-Mittelwert
                        .LINE     83
                        out PORTA, _ACCA
                        .endasm
                        .LINE     85
                        LDI       _ACCA, 1 SHLB IntFlag
                        OR        Flags, _ACCA
                        SEI
                        .ENDBLOCK 86
SoftDDS.miniDDS_X:
                        .LINE     86
                        .BRANCH   19
                        RET
                        .ENDFUNC  86

                        .FUNC     Shift4094, 90, 00020h
SoftDDS.Shift4094:
                        .BLOCK    91
                        .ASM
                        .LINE     93
                        LDS _ACCA, SoftDDS.Out4094;
                        .LINE     94
                        sbi  SoftDDS.MPXPort, SoftDDS.b_STROBE
                        .LINE     95
                        cbi  SoftDDS.MPXPort, SoftDDS.b_SCLK
                        .LINE     96
                        ldi  _ACCB, 8
                        SoftDDS.srloop:
                        .LINE     99
                        LSL  _ACCA
                        .LINE     100
                        brcs SoftDDS.datahigh1
                        .LINE     101
                        cbi  SoftDDS.MPXPort, SoftDDS.b_SDATA
                        .LINE     102
                        rjmp SoftDDS.dataset1
                        SoftDDS.datahigh1:
                        .LINE     104
                        sbi  SoftDDS.MPXPort, SoftDDS.b_SDATA
                        SoftDDS.dataset1:
                        .LINE     106
                        nop
                        .LINE     107
                        sbi  SoftDDS.MPXPort, SoftDDS.b_SCLK
                        .LINE     108
                        nop
                        .LINE     109
                        cbi  SoftDDS.MPXPort, SoftDDS.b_SCLK
                        .LINE     110
                        dec _ACCB
                        .LINE     111
                        BRNE  SoftDDS.srloop
                        .LINE     113
                        cbi  SoftDDS.MPXPort, SoftDDS.b_STROBE
                        .LINE     114
                        sbi  SoftDDS.MPXPort, SoftDDS.b_SCLK
                        .endasm
                        .ENDBLOCK 117
SoftDDS.Shift4094_X:
                        .LINE     117
                        .BRANCH   19
                        RET
                        .ENDFUNC  117

                        .FUNC     SetLevelDDS, 121, 00020h
SoftDDS.SetLevelDDS:
                        SBIW      _FRAMEPTR, 16
                        .BLOCK    126
                        .LINE     128
                        LDS       _ACCA, SoftDDS.AttnStep
                        LDI       _ACCB, 050h AND 0FFh
                        SUB       _ACCB, _ACCA
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     129
                        MOV       _ACCA, SoftDDS.k
                        LDI       _ACCB, 00Ah
                        RCALL     SYSTEM.DIV8_R
                        LDI       _ACCALO, 005h
                        RCALL     SYSTEM.SHL8_R
                        STS       SOFTDDS.OUT4094, _ACCA
                        .LINE     130
                        MOV       _ACCA, SoftDDS.k
                        LDI       _ACCB, 00Ah
                        RCALL     SYSTEM.DIV8_R
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     131
                        MOV       _ACCA, SoftDDS.k
                        CPI       _ACCA, 007h
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0008
                        BRLO      SoftDDS.L0008
                        SER       _ACCA
SoftDDS.L0008:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0011
                        BRNE      SoftDDS.L0011
                        .BRANCH   20,SoftDDS.L0009
                        RJMP      SoftDDS.L0009
SoftDDS.L0011:
                        .BLOCK    131
                        .LINE     132
                        MOV       _ACCA, SoftDDS.k
                        ORI       _ACCA, 010h
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     133
                        MOV       _ACCA, SoftDDS.k
                        ANDI      _ACCA, 0F7h
                        MOV       SOFTDDS.K, _ACCA
                        .ENDBLOCK 134
                        .BRANCH   20,SoftDDS.L0010
                        RJMP      SoftDDS.L0010
SoftDDS.L0009:
                        .BLOCK    134
                        .LINE     135
                        MOV       _ACCA, SoftDDS.k
                        ORI       _ACCA, 008h
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     136
                        MOV       _ACCA, SoftDDS.k
                        ANDI      _ACCA, 0EFh
                        MOV       SOFTDDS.K, _ACCA
                        .ENDBLOCK 137
SoftDDS.L0010:
                        .LINE     138
                        LDS       _ACCA, SoftDDS.Out4094
                        PUSH      _ACCA
                        MOV       _ACCA, SoftDDS.k
                        POP       _ACCB
                        OR        _ACCA, _ACCB
                        STS       SOFTDDS.OUT4094, _ACCA
                        .LINE     139
                        .BRANCH   17,SoftDDS.SHIFT4094
                        RCALL     SoftDDS.SHIFT4094
                        .LINE     142
                        LDI       _ACCB, 000000000h AND 0FFh
                        LDI       _ACCA, 000000000h SHRB 8
                        LDI       _ACCALO, 000000000h SHRB 16
                        LDI       _ACCAHI, 000000000h SHRB 24
                        STD       Y+00Fh, _ACCAHI
                        STD       Y+00Eh, _ACCALO
                        STD       Y+00Dh, _ACCA
                        STD       Y+00Ch, _ACCB
                        .LINE     143
                        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.L0014:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0015
                        CLR       _ACCA
SoftDDS.L0015:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0016
                        BREQ      SoftDDS.L0016
                        .BRANCH   20,SoftDDS.L0013
                        RJMP      SoftDDS.L0013
SoftDDS.L0016:
                        .BLOCK    144
                        .LINE     144
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.EditArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EditArray SHRB 8
                        ANDI      _ACCA, 15
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LD        _ACCA, Z
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        CLR       _ACCAHI
                        CLR       _ACCALO
                        STD       Y+00Eh, _ACCAHI
                        STD       Y+00Dh, _ACCALO
                        STD       Y+00Ch, _ACCA
                        STD       Y+00Bh, _ACCB
                        .LINE     145
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.fhz AND 0FFh
                        LDI       _ACCCHI, SoftDDS.fhz SHRB 8
                        ANDI      _ACCA, 7
                        CLR       _ACCB
                        LSL       _ACCA
                        ROL       _ACCB
                        LSL       _ACCA
                        ROL       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCB, Z+
                        LPM       _ACCA, Z+
                        LPM       _ACCALO, Z+
                        LPM       _ACCAHI, Z
                        STD       Y+00Ah, _ACCAHI
                        STD       Y+009h, _ACCALO
                        STD       Y+008h, _ACCA
                        STD       Y+007h, _ACCB
                        .LINE     146
                        LDD       _ACCAHI, Y+012h
                        LDD       _ACCALO, Y+011h
                        LDD       _ACCA, Y+010h
                        LDD       _ACCB, Y+00Fh
                        PUSH      _ACCB
                        PUSH      _ACCA
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
                        LDD       _ACCAHI, Y+00Ah
                        LDD       _ACCALO, Y+009h
                        LDD       _ACCA, Y+008h
                        LDD       _ACCB, Y+007h
                        PUSH      _ACCB
                        PUSH      _ACCA
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
                        LDD       _ACCAHI, Y+00Eh
                        LDD       _ACCALO, Y+00Dh
                        LDD       _ACCA, Y+00Ch
                        LDD       _ACCB, Y+00Bh
                        SET
                        BLD       Flags, _SIGN
                        RCALL     SYSTEM.MUL32
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCBHI
                        POP       _ACCBLO
                        ADD       _ACCB, _ACCBLO
                        ADC       _ACCA, _ACCBHI
                        ADC       _ACCALO, _ACCCLO
                        ADC       _ACCAHI, _ACCCHI
                        STD       Y+012h, _ACCAHI
                        STD       Y+011h, _ACCALO
                        STD       Y+010h, _ACCA
                        STD       Y+00Fh, _ACCB
                        .ENDBLOCK 147
SoftDDS.L0012:
                        .LINE     147
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0013
                        BREQ      SoftDDS.L0013
                        .BRANCH   20,SoftDDS.L0014
                        RJMP      SoftDDS.L0014
SoftDDS.L0013:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     148
                        LDS       _ACCA, SoftDDS.FrequDez
                        LDI       _ACCCLO, SoftDDS.fdhz AND 0FFh
                        LDI       _ACCCHI, SoftDDS.fdhz SHRB 8
                        ANDI      _ACCA, 15
                        CLR       _ACCB
                        LSL       _ACCA
                        ROL       _ACCB
                        LSL       _ACCA
                        ROL       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCB, Z+
                        LPM       _ACCA, Z+
                        LPM       _ACCALO, Z+
                        LPM       _ACCAHI, Z
                        STD       Y+007h, _ACCAHI
                        STD       Y+006h, _ACCALO
                        STD       Y+005h, _ACCA
                        STD       Y+004h, _ACCB
                        .LINE     149
                        LDD       _ACCAHI, Y+00Fh
                        LDD       _ACCALO, Y+00Eh
                        LDD       _ACCA, Y+00Dh
                        LDD       _ACCB, Y+00Ch
                        PUSH      _ACCB
                        PUSH      _ACCA
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
                        LDD       _ACCAHI, Y+007h
                        LDD       _ACCALO, Y+006h
                        LDD       _ACCA, Y+005h
                        LDD       _ACCB, Y+004h
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCBHI
                        POP       _ACCBLO
                        ADD       _ACCB, _ACCBLO
                        ADC       _ACCA, _ACCBHI
                        ADC       _ACCALO, _ACCCLO
                        ADC       _ACCAHI, _ACCCHI
                        STD       Y+00Fh, _ACCAHI
                        STD       Y+00Eh, _ACCALO
                        STD       Y+00Dh, _ACCA
                        STD       Y+00Ch, _ACCB
                        .LINE     150
                        LDD       _ACCAHI, Y+00Fh
                        LDD       _ACCALO, Y+00Eh
                        LDD       _ACCA, Y+00Dh
                        LDD       _ACCB, Y+00Ch
                        MOVW      _ACCB, _ACCALO
                        STD       Y+003h, _ACCA
                        STD       Y+002h, _ACCB
                        .LINE     151
                        LDD       _ACCAHI, Y+00Fh
                        LDD       _ACCALO, Y+00Eh
                        LDD       _ACCA, Y+00Dh
                        LDD       _ACCB, Y+00Ch
                        STD       Y+001h, _ACCA
                        STD       Y+000h, _ACCB
                        .LINE     152
                        LDD       _ACCB, Y+000h
                        LDD       _ACCA, Y+001h
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.DDSL, _ACCA
                        .LINE     153
                        LDD       _ACCB, Y+000h
                        LDD       _ACCA, Y+001h
                        MOV       SOFTDDS.DDSM, _ACCA
                        .LINE     154
                        LDD       _ACCB, Y+002h
                        LDD       _ACCA, Y+003h
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.DDSH, _ACCA
                        .ENDBLOCK 155
SoftDDS.SetLevelDDS_X:
                        .LINE     155
                        .BRANCH   19
                        RET
                        .ENDFUNC  155


                        .FILE     H:\PROJAVR\MINIDDS-MP3SOURCE\MP3source.pas
                        .FUNC     PresetCopyFromROM, 310, 00020h
SoftDDS.PresetCopyFromROM:
                        .BLOCK    312
                        .LINE     314
                        LDI       _ACCCLO, SoftDDS.FreqStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.FreqStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        ADIW      _ACCCLO, 1
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        LDI       _ACCA, 008h
                        ST        -Y, _ACCA
                        LDI       _ACCA, 0FEH ROLB _DEVICE
                        AND       Flags, _ACCA
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        .FRAME  3
                        LDS       _ACCA, SoftDDS.PresetNum
                        LDI       _ACCCLO, SoftDDS.TerzArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.TerzArray SHRB 8
                        ANDI      _ACCA, 31
                        CLR       _ACCB
                        LSL       _ACCA
                        ROL       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCB, Z+
                        LPM       _ACCA, Z
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDI       _ACCA, 007h
                        PUSH      _ACCA
                        LDI       _ACCB, 000h
                        PUSH      _ACCB
                        LDI       _ACCA, 020h
                        PUSH      _ACCA
                        SET
                        BLD       Flags, _SIGN
                        RCALL     SYSTEM.Int2Str
                        LDI       _ACCA, 008h
                        PUSH      _ACCA
                        LDD       _ACCA, Y+000h
                        POP       _ACCB
                        SUB       _ACCB, _ACCA
                        MOV       _ACCA, _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ST        Z, _ACCA
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     315
                        LDI       _ACCCLO, SoftDDS.FreqStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.FreqStr SHRB 8
                        ADIW      _ACCCLO, 00008h
                        LDI       _ACCA, 030h
                        ST        Z+, _ACCA
                        .LINE     316
                        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.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
                        RJMP      SoftDDS.L0018
SoftDDS.L0021:
                        .BLOCK    317
                        .LINE     317
                        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     318
                        MOV       _ACCA, SoftDDS.k
                        CPI       _ACCA, 020h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0022
                        SER       _ACCA
SoftDDS.L0022:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0025
                        BRNE      SoftDDS.L0025
                        .BRANCH   20,SoftDDS.L0023
                        RJMP      SoftDDS.L0023
SoftDDS.L0025:
                        .BLOCK    319
                        .LINE     319
                        LDI       _ACCA, 030h
                        MOV       SOFTDDS.K, _ACCA
                        .ENDBLOCK 320
SoftDDS.L0023:
SoftDDS.L0024:
                        .LINE     321
                        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 322
SoftDDS.L0017:
                        .LINE     322
                        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
                        RJMP      SoftDDS.L0019
SoftDDS.L0018:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 323
SoftDDS.PresetCopyFromROM_X:
                        .LINE     323
                        .BRANCH   19
                        RET
                        .ENDFUNC  323

                        .FUNC     PresetSave, 325, 00020h
SoftDDS.PresetSave:
                        .BLOCK    327
                        .LINE     328
                        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
                        RCALL     SYSTEM.BlockCopyC
                        .ENDBLOCK 329
SoftDDS.PresetSave_X:
                        .LINE     329
                        .BRANCH   19
                        RET
                        .ENDFUNC  329

                        .FUNC     PresetRestore, 331, 00020h
SoftDDS.PresetRestore:
                        .BLOCK    333
                        .LINE     334
                        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
                        RCALL     SYSTEM.BlockCopyC
                        .ENDBLOCK 335
SoftDDS.PresetRestore_X:
                        .LINE     335
                        .BRANCH   19
                        RET
                        .ENDFUNC  335

                        .FUNC     PatchCopyFromEE, 337, 00020h
SoftDDS.PatchCopyFromEE:
                        SBIW      _FRAMEPTR, 2
                        .BLOCK    340
                        .LINE     341
                        LDS       _ACCA, SoftDDS.MemoryNum
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        LDI       _ACCBLO, 0000Dh AND 0FFh
                        LDI       _ACCBHI, 0000Dh SHRB 8
                        CLT
                        BLD       Flags, _SIGN
                        RCALL     SYSTEM.MUL16
                        STD       Y+001h, _ACCA
                        STD       Y+000h, _ACCB
                        .LINE     342
                        LDI       _ACCCLO, SoftDDS.i AND 0FFh
                        LDI       _ACCCHI, SoftDDS.i SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        Z, _ACCA
                        LDI       _ACCA, 00Ch
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
SoftDDS.L0028:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0029
                        CLR       _ACCA
SoftDDS.L0029:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0030
                        BREQ      SoftDDS.L0030
                        .BRANCH   20,SoftDDS.L0027
                        RJMP      SoftDDS.L0027
SoftDDS.L0030:
                        .BLOCK    343
                        .LINE     343
                        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
                        PUSH      _ACCB
                        PUSH      _ACCA
                        MOV       _ACCA, SoftDDS.i
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        POP       _ACCAHI
                        POP       _ACCALO
                        ADD       _ACCB, _ACCALO
                        ADC       _ACCA, _ACCAHI
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        RCALL     SYSTEM.ReadEEp8
                        LDI       _ACCCLO, 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 344
SoftDDS.L0026:
                        .LINE     344
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0027
                        BREQ      SoftDDS.L0027
                        .BRANCH   20,SoftDDS.L0028
                        RJMP      SoftDDS.L0028
SoftDDS.L0027:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 345
SoftDDS.PatchCopyFromEE_X:
                        .LINE     345
                        .BRANCH   19
                        RET
                        .ENDFUNC  345

                        .FUNC     PatchCopyToEE, 347, 00020h
SoftDDS.PatchCopyToEE:
                        SBIW      _FRAMEPTR, 2
                        .BLOCK    350
                        .LINE     351
                        LDS       _ACCA, SoftDDS.MemoryNum
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        LDI       _ACCBLO, 0000Dh AND 0FFh
                        LDI       _ACCBHI, 0000Dh SHRB 8
                        CLT
                        BLD       Flags, _SIGN
                        RCALL     SYSTEM.MUL16
                        STD       Y+001h, _ACCA
                        STD       Y+000h, _ACCB
                        .LINE     352
                        LDI       _ACCCLO, SoftDDS.i AND 0FFh
                        LDI       _ACCCHI, SoftDDS.i SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        Z, _ACCA
                        LDI       _ACCA, 00Ch
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
SoftDDS.L0033:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0034
                        CLR       _ACCA
SoftDDS.L0034:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0035
                        BREQ      SoftDDS.L0035
                        .BRANCH   20,SoftDDS.L0032
                        RJMP      SoftDDS.L0032
SoftDDS.L0035:
                        .BLOCK    353
                        .LINE     353
                        LDI       _ACCCLO, SoftDDS.EEPatchArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EEPatchArray SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDD       _ACCB, Y+003h
                        LDD       _ACCA, Y+004h
                        PUSH      _ACCB
                        PUSH      _ACCA
                        MOV       _ACCA, SoftDDS.i
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        POP       _ACCAHI
                        POP       _ACCALO
                        ADD       _ACCB, _ACCALO
                        ADC       _ACCA, _ACCAHI
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.EditArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EditArray SHRB 8
                        ANDI      _ACCA, 15
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LD        _ACCA, Z
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RCALL     SYSTEM.WriteEEp8
                        .ENDBLOCK 354
SoftDDS.L0031:
                        .LINE     354
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0032
                        BREQ      SoftDDS.L0032
                        .BRANCH   20,SoftDDS.L0033
                        RJMP      SoftDDS.L0033
SoftDDS.L0032:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 355
SoftDDS.PatchCopyToEE_X:
                        .LINE     355
                        .BRANCH   19
                        RET
                        .ENDFUNC  355

                        .FUNC     LCD1xy, 360, 00020h
SoftDDS.LCD1xy:
                        .BLOCK    361
                        .LINE     362
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDS       _ACCA, SoftDDS.x
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDS       _ACCA, SoftDDS.y
                        ST        -Y, _ACCA
                        .FRAME  2
                        .FRAME  0
                        RCALL     SYSTEM.LCDXY
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 363
SoftDDS.LCD1xy_X:
                        .LINE     363
                        .BRANCH   19
                        RET
                        .ENDFUNC  363

                        .FUNC     SetPos, 365, 00020h
SoftDDS.SetPos:
                        .BLOCK    366
                        .LINE     367
                        LDS       _ACCA, SoftDDS.DispWhich
                        MOV       SOFTDDS.I, _ACCA
                        .LINE     368
                        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     369
                        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     370
                        .BRANCH   17,SoftDDS.LCD1XY
                        RCALL     SoftDDS.LCD1XY
                        .ENDBLOCK 371
SoftDDS.SetPos_X:
                        .LINE     371
                        .BRANCH   19
                        RET
                        .ENDFUNC  371

                        .FUNC     SetCursor, 373, 00020h
SoftDDS.SetCursor:
                        .BLOCK    374
                        .LINE     375
                        LDS       _ACCA, SoftDDS.EditWhich
                        MOV       SOFTDDS.I, _ACCA
                        .LINE     376
                        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     377
                        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     378
                        .BRANCH   17,SoftDDS.LCD1XY
                        RCALL     SoftDDS.LCD1XY
                        .LINE     380
                        LDI       _ACCA, 000h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .ENDBLOCK 381
SoftDDS.SetCursor_X:
                        .LINE     381
                        .BRANCH   19
                        RET
                        .ENDFUNC  381

                        .FUNC     LCD1x0y0, 384, 00020h
SoftDDS.LCD1x0y0:
                        .BLOCK    385
                        .LINE     386
                        RCALL     SYSTEM.LCDHOME
                        .LINE     387
                        LDI       _ACCA, 00001h SHRB 8
                        LDI       _ACCB, 00001h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .ENDBLOCK 388
SoftDDS.LCD1x0y0_X:
                        .LINE     388
                        .BRANCH   19
                        RET
                        .ENDFUNC  388

                        .FUNC     LCD1x0y1, 390, 00020h
SoftDDS.LCD1x0y1:
                        .BLOCK    391
                        .LINE     392
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     393
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     394
                        .BRANCH   17,SoftDDS.LCD1XY
                        RCALL     SoftDDS.LCD1XY
                        .ENDBLOCK 395
SoftDDS.LCD1x0y1_X:
                        .LINE     395
                        .BRANCH   19
                        RET
                        .ENDFUNC  395


                        .FILE     buttons.pas
                        .FUNC     WriteLCD, 4, 00020h
SoftDDS.WriteLCD:
                        .BLOCK    7
                        .ASM
                        .LINE     10
                        LDD       _ACCCLO, Y+000h
                        .LINE     11
                        CLR       _ACCA
                        .LINE     12
                        LDD       _ACCCHI, Y+001h
                        .LINE     13
                        ADC       _ACCCHI, _ACCA   ; Z-Pointer gesetzt auf String-Adresse
                        .LINE     14
                        LPM       _ACCDLO, Z+      ; Pascal-Längenbyte
                        WriteLCDLoop:
                        .LINE     16
                        LPM       _ACCA, Z+        ; nächstes Zeichen in _ACCA
                        .LINE     17
                        PUSH      _ACCCHI
                        .LINE     18
                        PUSH      _ACCCLO
                        .LINE     19
                        RCALL     SYSTEM.LCDOUT
                        .LINE     20
                        POP       _ACCCLO
                        .LINE     21
                        POP       _ACCCHI
                        .LINE     22
                        DEC       _ACCDLO
                        .LINE     23
                        BRNE      WriteLCDLoop
                        .endasm
                        .ENDBLOCK 25
SoftDDS.WriteLCD_X:
                        .LINE     25
                        .BRANCH   19
                        RET
                        .ENDFUNC  25

                        .FUNC     FastRepeatRelease, 27, 00020h
SoftDDS.FastRepeatRelease:
                        .BLOCK    29
                        .LINE     30
                        CLR       _ACCA
                        LDS       _ACCB, SoftDDS.BtnTime2
                        LDI       _ACCEHI, 000h
                        CP        _ACCEHI, _ACCB
                        BRCC      SoftDDS.L0036
                        DEC       _ACCB
                        STS       SoftDDS.BtnTime2, _ACCB
                        SER       _ACCA
SoftDDS.L0036:
SoftDDS.L0037:
                        .BLOCK    31
                        .LINE     32
                        LDS       _ACCA, SoftDDS.BtnTime
                        DEC       _ACCA
                        STS       SoftDDS.BtnTime, _ACCA
                        .LINE     33
                        LDS       _ACCA, SoftDDS.BtnTime2
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0040
                        SER       _ACCA
SoftDDS.L0040:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0043
                        BRNE      SoftDDS.L0043
                        .BRANCH   20,SoftDDS.L0041
                        RJMP      SoftDDS.L0041
SoftDDS.L0043:
                        .BLOCK    33
                        .LINE     34
                        LDI       _ACCA, 00004h SHRB 8
                        LDI       _ACCB, 00004h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .ENDBLOCK 35
                        .BRANCH   20,SoftDDS.L0042
                        RJMP      SoftDDS.L0042
SoftDDS.L0041:
                        .BLOCK    35
                        .LINE     36
                        LDI       _ACCA, 0000Fh SHRB 8
                        LDI       _ACCB, 0000Fh AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .ENDBLOCK 37
SoftDDS.L0042:
                        .LINE     38
                        IN        _ACCA, PinD
                        STS       SOFTDDS.BTNINSTATE, _ACCA
                        .LINE     39
                        LDS       _ACCA, SoftDDS.BtnInState
                        ORI       _ACCA, 043h
                        MOV       SOFTDDS.I, _ACCA
                        .ENDBLOCK 40
                        .LINE     40
SoftDDS.L0038:
                        MOV       _ACCA, SoftDDS.i
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0044
                        SER       _ACCA
SoftDDS.L0044:
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.BtnTime
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0045
                        SER       _ACCA
SoftDDS.L0045:
                        POP       _ACCB
                        OR        _ACCA, _ACCB
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0046
                        BRNE      SoftDDS.L0046
                        .BRANCH   20,SoftDDS.L0037
                        RJMP      SoftDDS.L0037
SoftDDS.L0046:
SoftDDS.L0039:
                        .LINE     41
                        MOV       _ACCA, SoftDDS.i
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0047
                        SER       _ACCA
SoftDDS.L0047:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0050
                        BRNE      SoftDDS.L0050
                        .BRANCH   20,SoftDDS.L0048
                        RJMP      SoftDDS.L0048
SoftDDS.L0050:
                        .BLOCK    42
                        .LINE     42
                        LDI       _ACCA, 028h
                        STS       SOFTDDS.BTNTIME, _ACCA
                        .LINE     43
                        LDI       _ACCA, 005h
                        STS       SOFTDDS.BTNTIME2, _ACCA
                        .ENDBLOCK 44
                        .BRANCH   20,SoftDDS.L0049
                        RJMP      SoftDDS.L0049
SoftDDS.L0048:
                        .BLOCK    44
                        .LINE     45
                        LDI       _ACCA, 00Ah
                        STS       SOFTDDS.BTNTIME, _ACCA
                        .ENDBLOCK 46
SoftDDS.L0049:
                        .ENDBLOCK 47
SoftDDS.FastRepeatRelease_X:
                        .LINE     47
                        .BRANCH   19
                        RET
                        .ENDFUNC  47

                        .FUNC     SlowRepeatRelease, 49, 00020h
SoftDDS.SlowRepeatRelease:
                        .BLOCK    50
                        .LINE     51
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.BTNTIME2, _ACCA
                        .LINE     52
                        .BRANCH   17,SoftDDS.FASTREPEATRELEASE
                        RCALL     SoftDDS.FASTREPEATRELEASE
                        .ENDBLOCK 53
SoftDDS.SlowRepeatRelease_X:
                        .LINE     53
                        .BRANCH   19
                        RET
                        .ENDFUNC  53

                        .FUNC     NaviButton, 55, 00020h
SoftDDS.NaviButton:
                        .BLOCK    57
                        .LINE     58
                        IN        _ACCA, PinD
                        STS       SOFTDDS.BTNINSTATE, _ACCA
                        .LINE     59
                        LDS       _ACCA, SoftDDS.BtnInState
                        ORI       _ACCA, 00Fh
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0051
                        SER       _ACCA
SoftDDS.L0051:
                        STS       SOFTDDS.ABOOL, _ACCA
                        .LINE     60
                        LDS       _ACCA, SoftDDS.aBool
                        .ENDBLOCK 61
SoftDDS.NaviButton_X:
                        .LINE     61
                        .BRANCH   19
                        RET
                        .ENDFUNC  61

                        .FUNC     UpDownButton, 63, 00020h
SoftDDS.UpDownButton:
                        .BLOCK    65
                        .LINE     66
                        IN        _ACCA, PinD
                        STS       SOFTDDS.BTNINSTATE, _ACCA
                        .LINE     67
                        LDS       _ACCA, SoftDDS.BtnInState
                        ORI       _ACCA, 0F3h
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0052
                        SER       _ACCA
SoftDDS.L0052:
                        STS       SOFTDDS.ABOOL, _ACCA
                        .LINE     68
                        LDS       _ACCA, SoftDDS.aBool
                        .ENDBLOCK 69
SoftDDS.UpDownButton_X:
                        .LINE     69
                        .BRANCH   19
                        RET
                        .ENDFUNC  69


                        .FILE     H:\PROJAVR\MINIDDS-MP3SOURCE\MP3source.pas

                        .FILE     mp3control.pas
SoftDDS.c_MP3playstop   .EQU    010h            ; const byte     16
SoftDDS.c_MP3rev        .EQU    020h            ; const byte     32
SoftDDS.c_MP3forw       .EQU    030h            ; const byte     48
SoftDDS.c_MP3repeat     .EQU    040h            ; const byte     64
SoftDDS.c_MP3volplus    .EQU    050h            ; const byte     80
SoftDDS.c_MP3equ        .EQU    060h            ; const byte     96
SoftDDS.c_MP3inh        .EQU    080h            ; const byte     128
                        .FUNC     MP3remote, 88, 00020h
SoftDDS.MP3remote:
                        .BLOCK    90
                        .LINE     91
                        LDD       _ACCA, Y+000h
                        OUT       PORTB, _ACCA
                        .LINE     92
                        LDI       _ACCA, 00064h SHRB 8
                        LDI       _ACCB, 00064h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .LINE     93
                        LDI       _ACCA, 080h
                        OUT       PORTB, _ACCA
                        .LINE     94
                        LDI       _ACCA, 00096h SHRB 8
                        LDI       _ACCB, 00096h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .ENDBLOCK 95
SoftDDS.MP3remote_X:
                        .LINE     95
                        .BRANCH   19
                        RET
                        .ENDFUNC  95

                        .FUNC     MP3setRepeatA, 97, 00020h
SoftDDS.MP3setRepeatA:
                        SBIW      _FRAMEPTR, 2
                        .BLOCK    100
                        .LINE     101
                        LDS       _ACCA, SoftDDS.MP3sec
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        LDI       _ACCBLO, 00064h AND 0FFh
                        LDI       _ACCBHI, 00064h SHRB 8
                        CLT
                        BLD       Flags, _SIGN
                        RCALL     SYSTEM.MUL16
                        SUBI      _ACCB, -00004h AND 0FFh
                        SBCI      _ACCA, -00004h SHRB 8
                        STD       Y+001h, _ACCA
                        STD       Y+000h, _ACCB
                        .LINE     102
                        LDD       _ACCB, Y+000h
                        LDD       _ACCA, Y+001h
                        LDI       _ACCCLO, SoftDDS.MP3repeatTimer AND 0FFh
                        LDI       _ACCCHI, SoftDDS.MP3repeatTimer SHRB 8
                        LDI       _ACCBHI, 001h
                        RCALL     SYSTEM.SetSysTimer
                        .LINE     103
                        LDI       _ACCA, 00064h SHRB 8
                        LDI       _ACCB, 00064h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .LINE     104
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 040h
                        ST        -Y, _ACCA
                        .FRAME  1
                        .FRAME  0
                        .BRANCH   17,SoftDDS.MP3REMOTE
                        RCALL     SoftDDS.MP3REMOTE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     105
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3REPEATBSET, _ACCA
                        .LINE     106
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3RUNNINGSECONDS, _ACCA
                        .LINE     107
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3RUNNINGTIMER, _ACCA
                        .ENDBLOCK 108
SoftDDS.MP3setRepeatA_X:
                        .LINE     108
                        .BRANCH   19
                        RET
                        .ENDFUNC  108

                        .FUNC     MP3setRepeatB, 110, 00020h
SoftDDS.MP3setRepeatB:
                        .BLOCK    112
                        .LINE     113
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.MP3SETREPEATA
                        RCALL     SoftDDS.MP3SETREPEATA
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     114
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.MP3REPEATBSET, _ACCA
                        .ENDBLOCK 115
SoftDDS.MP3setRepeatB_X:
                        .LINE     115
                        .BRANCH   19
                        RET
                        .ENDFUNC  115

                        .FUNC     MP3next, 117, 00020h
SoftDDS.MP3next:
                        .BLOCK    119
                        .LINE     120
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 030h
                        ST        -Y, _ACCA
                        .FRAME  1
                        .FRAME  0
                        .BRANCH   17,SoftDDS.MP3REMOTE
                        RCALL     SoftDDS.MP3REMOTE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     121
                        LDS       _ACCA, SoftDDS.MP3currenttrack
                        INC       _ACCA
                        STS       SoftDDS.MP3currenttrack, _ACCA
                        .ENDBLOCK 122
SoftDDS.MP3next_X:
                        .LINE     122
                        .BRANCH   19
                        RET
                        .ENDFUNC  122

                        .FUNC     MP3prev, 124, 00020h
SoftDDS.MP3prev:
                        .BLOCK    126
                        .LINE     127
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 020h
                        ST        -Y, _ACCA
                        .FRAME  1
                        .FRAME  0
                        .BRANCH   17,SoftDDS.MP3REMOTE
                        RCALL     SoftDDS.MP3REMOTE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     128
                        LDS       _ACCA, SoftDDS.MP3currenttrack
                        DEC       _ACCA
                        STS       SoftDDS.MP3currenttrack, _ACCA
                        .ENDBLOCK 129
SoftDDS.MP3prev_X:
                        .LINE     129
                        .BRANCH   19
                        RET
                        .ENDFUNC  129

                        .FUNC     MP3gotoTrack, 131, 00020h
SoftDDS.MP3gotoTrack:
                        .BLOCK    133
                        .LINE     134
                        LDS       _ACCA, SoftDDS.MP3Track
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.MP3currenttrack
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0053
                        BRLO      SoftDDS.L0053
                        SER       _ACCA
SoftDDS.L0053:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0056
                        BRNE      SoftDDS.L0056
                        .BRANCH   20,SoftDDS.L0054
                        RJMP      SoftDDS.L0054
SoftDDS.L0056:
                        .BLOCK    134
SoftDDS.L0057:
                        .BLOCK    135
                        .LINE     136
                        .BRANCH   17,SoftDDS.MP3NEXT
                        RCALL     SoftDDS.MP3NEXT
                        .ENDBLOCK 137
                        .LINE     137
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
                        RJMP      SoftDDS.L0057
SoftDDS.L0061:
SoftDDS.L0059:
                        .ENDBLOCK 138
SoftDDS.L0054:
SoftDDS.L0055:
                        .LINE     139
                        LDS       _ACCA, SoftDDS.MP3Track
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.MP3currenttrack
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0062
                        CLR       _ACCA
SoftDDS.L0062:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0065
                        BRNE      SoftDDS.L0065
                        .BRANCH   20,SoftDDS.L0063
                        RJMP      SoftDDS.L0063
SoftDDS.L0065:
                        .BLOCK    139
SoftDDS.L0066:
                        .BLOCK    140
                        .LINE     141
                        .BRANCH   17,SoftDDS.MP3PREV
                        RCALL     SoftDDS.MP3PREV
                        .ENDBLOCK 142
                        .LINE     142
SoftDDS.L0067:
                        LDS       _ACCA, SoftDDS.MP3currenttrack
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.MP3Track
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0069
                        SER       _ACCA
SoftDDS.L0069:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0070
                        BRNE      SoftDDS.L0070
                        .BRANCH   20,SoftDDS.L0066
                        RJMP      SoftDDS.L0066
SoftDDS.L0070:
SoftDDS.L0068:
                        .ENDBLOCK 143
SoftDDS.L0063:
SoftDDS.L0064:
                        .LINE     144
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.MP3SETREPEATA
                        RCALL     SoftDDS.MP3SETREPEATA
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 145
SoftDDS.MP3gotoTrack_X:
                        .LINE     145
                        .BRANCH   19
                        RET
                        .ENDFUNC  145

                        .FUNC     MP3checkRepeat, 147, 00020h
SoftDDS.MP3checkRepeat:
                        .BLOCK    150
                        .LINE     151
                        CLR       _ACCA
                        MOV       _ACCB, _SYSTFLAGS
                        ANDI      _ACCB, 001h
                        BRNE      SoftDDS.L0071
                        COM       _ACCA
SoftDDS.L0071:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0074
                        BRNE      SoftDDS.L0074
                        .BRANCH   20,SoftDDS.L0072
                        RJMP      SoftDDS.L0072
SoftDDS.L0074:
                        .BLOCK    151
                        .LINE     152
                        LDS       _ACCA, SoftDDS.MP3repeatBset
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0077
                        BRNE      SoftDDS.L0077
                        .BRANCH   20,SoftDDS.L0075
                        RJMP      SoftDDS.L0075
SoftDDS.L0077:
                        .BLOCK    152
                        .LINE     153
                        .BRANCH   17,SoftDDS.MP3SETREPEATB
                        RCALL     SoftDDS.MP3SETREPEATB
                        .ENDBLOCK 154
SoftDDS.L0075:
SoftDDS.L0076:
                        .ENDBLOCK 159
SoftDDS.L0072:
SoftDDS.L0073:
                        .ENDBLOCK 160
SoftDDS.MP3checkRepeat_X:
                        .LINE     160
                        .BRANCH   19
                        RET
                        .ENDFUNC  160

                        .FUNC     MP3on, 162, 00020h
SoftDDS.MP3on:
                        .BLOCK    164
                        .LINE     165
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.MP3ISON, _ACCA
                        .LINE     166
                        LDI       _ACCA, 080h
                        OUT       PORTB, _ACCA
                        .LINE     167
                        LDI       _ACCA, 00064h SHRB 8
                        LDI       _ACCB, 00064h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .LINE     168
                        LDI       _ACCA, 010h
                        OUT       PORTB, _ACCA
                        .LINE     169
                        LDI       _ACCA, 004B0h SHRB 8
                        LDI       _ACCB, 004B0h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .LINE     171
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 080h
                        ST        -Y, _ACCA
                        .FRAME  1
                        .FRAME  0
                        .BRANCH   17,SoftDDS.MP3REMOTE
                        RCALL     SoftDDS.MP3REMOTE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     172
                        LDI       _ACCA, 000C8h SHRB 8
                        LDI       _ACCB, 000C8h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .LINE     173
                        LDI       _ACCA, 030h
                        OUT       PORTB, _ACCA
                        .LINE     174
                        LDI       _ACCA, 00BB8h SHRB 8
                        LDI       _ACCB, 00BB8h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .LINE     175
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 080h
                        ST        -Y, _ACCA
                        .FRAME  1
                        .FRAME  0
                        .BRANCH   17,SoftDDS.MP3REMOTE
                        RCALL     SoftDDS.MP3REMOTE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     176
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.MP3CURRENTTRACK, _ACCA
                        .LINE     177
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.MP3SETREPEATA
                        RCALL     SoftDDS.MP3SETREPEATA
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 178
SoftDDS.MP3on_X:
                        .LINE     178
                        .BRANCH   19
                        RET
                        .ENDFUNC  178

                        .FUNC     MP3off, 180, 00020h
SoftDDS.MP3off:
                        .BLOCK    182
                        .LINE     183
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MP3ISON, _ACCA
                        .LINE     184
                        SBI       00038h, 003h
                        .ENDBLOCK 185
SoftDDS.MP3off_X:
                        .LINE     185
                        .BRANCH   19
                        RET
                        .ENDFUNC  185


                        .FILE     H:\PROJAVR\MINIDDS-MP3SOURCE\MP3source.pas
                        .FUNC     CheckItemLimits, 401, 00020h
SoftDDS.CheckItemLimits:
                        .BLOCK    403
                        .LINE     404
                        LDS       _ACCA, SoftDDS.EditValue
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0078
                        SER       _ACCA
SoftDDS.L0078:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0081
                        BRNE      SoftDDS.L0081
                        .BRANCH   20,SoftDDS.L0079
                        RJMP      SoftDDS.L0079
SoftDDS.L0081:
                        .BLOCK    404
                        .LINE     405
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 406
SoftDDS.L0079:
SoftDDS.L0080:
                        .LINE     407
                        LDS       _ACCA, SoftDDS.EditValue
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.ItemUpperLimit
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0082
                        BRLO      SoftDDS.L0082
                        SER       _ACCA
SoftDDS.L0082:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0085
                        BRNE      SoftDDS.L0085
                        .BRANCH   20,SoftDDS.L0083
                        RJMP      SoftDDS.L0083
SoftDDS.L0085:
                        .BLOCK    407
                        .LINE     408
                        LDS       _ACCA, SoftDDS.ItemUpperLimit
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 409
SoftDDS.L0083:
SoftDDS.L0084:
                        .LINE     410
                        LDS       _ACCA, SoftDDS.EditValue
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.ItemlowerLimit
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0086
                        CLR       _ACCA
SoftDDS.L0086:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0089
                        BRNE      SoftDDS.L0089
                        .BRANCH   20,SoftDDS.L0087
                        RJMP      SoftDDS.L0087
SoftDDS.L0089:
                        .BLOCK    410
                        .LINE     411
                        LDS       _ACCA, SoftDDS.ItemlowerLimit
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 412
SoftDDS.L0087:
SoftDDS.L0088:
                        .ENDBLOCK 413
SoftDDS.CheckItemLimits_X:
                        .LINE     413
                        .BRANCH   19
                        RET
                        .ENDFUNC  413

                        .FUNC     WriteItem, 415, 00020h
SoftDDS.WriteItem:
                        .BLOCK    418
                        .LINE     421
                        LDS       _ACCA, SoftDDS.DisplayValue
                        CPI       _ACCA, 009h
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0090
                        BRLO      SoftDDS.L0090
                        SER       _ACCA
SoftDDS.L0090:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0093
                        BRNE      SoftDDS.L0093
                        .BRANCH   20,SoftDDS.L0091
                        RJMP      SoftDDS.L0091
SoftDDS.L0093:
                        .BLOCK    421
                        .LINE     422
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .ENDBLOCK 423
SoftDDS.L0091:
SoftDDS.L0092:
                        .LINE     424
                        LDS       _ACCA, SoftDDS.digits
                        CPI       _ACCA, 001h
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0094
                        BRLO      SoftDDS.L0094
                        SER       _ACCA
SoftDDS.L0094:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0097
                        BRNE      SoftDDS.L0097
                        .BRANCH   20,SoftDDS.L0095
                        RJMP      SoftDDS.L0095
SoftDDS.L0097:
                        .BLOCK    424
                        .LINE     425
                        LDS       _ACCA, SoftDDS.DisplayValue
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     426
                        MOV       _ACCA, SoftDDS.k
                        LDI       _ACCB, 00Ah
                        RCALL     SYSTEM.DIV8_R
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     427
                        MOV       _ACCA, SoftDDS.k
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0098
                        SER       _ACCA
SoftDDS.L0098:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0101
                        BRNE      SoftDDS.L0101
                        .BRANCH   20,SoftDDS.L0099
                        RJMP      SoftDDS.L0099
SoftDDS.L0101:
                        .BLOCK    427
                        .LINE     428
                        LDI       _ACCA, 020h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .ENDBLOCK 429
                        .BRANCH   20,SoftDDS.L0100
                        RJMP      SoftDDS.L0100
SoftDDS.L0099:
                        .BLOCK    429
                        .LINE     430
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .ENDBLOCK 431
SoftDDS.L0100:
                        .ENDBLOCK 432
SoftDDS.L0095:
SoftDDS.L0096:
                        .LINE     433
                        LDS       _ACCA, SoftDDS.DisplayValue
                        LDI       _ACCB, 00Ah
                        RCALL     SYSTEM.DIV8_R
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     434
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .ENDBLOCK 435
SoftDDS.WriteItem_X:
                        .LINE     435
                        .BRANCH   19
                        RET
                        .ENDFUNC  435

                        .FUNC     WriteWave, 437, 00020h
SoftDDS.WriteWave:
                        .BLOCK    439
                        .LINE     440
                        LDI       _ACCA, 00Ah
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     441
                        .BRANCH   17,SoftDDS.SETPOS
                        RCALL     SoftDDS.SETPOS
                        .LINE     442
                        LDS       _ACCA, SoftDDS.Wave
                        .LINE     443
                        CPI       _ACCA, 0
                        .BRANCH   3,SoftDDS.L0105
                        BREQ      SoftDDS.L0105
                        .BRANCH   20,SoftDDS.L0104
                        RJMP      SoftDDS.L0104
SoftDDS.L0105:
SoftDDS.L0103:
                        .BLOCK    444
                        .LINE     444
                        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
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 445
                        .BRANCH   20,SoftDDS.L0102
                        RJMP      SoftDDS.L0102
SoftDDS.L0104:
                        .LINE     446
                        CPI       _ACCA, 1
                        .BRANCH   3,SoftDDS.L0108
                        BREQ      SoftDDS.L0108
                        .BRANCH   20,SoftDDS.L0107
                        RJMP      SoftDDS.L0107
SoftDDS.L0108:
SoftDDS.L0106:
                        .BLOCK    447
                        .LINE     447
                        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
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 448
                        .BRANCH   20,SoftDDS.L0102
                        RJMP      SoftDDS.L0102
SoftDDS.L0107:
                        .LINE     449
                        CPI       _ACCA, 2
                        .BRANCH   3,SoftDDS.L0111
                        BREQ      SoftDDS.L0111
                        .BRANCH   20,SoftDDS.L0110
                        RJMP      SoftDDS.L0110
SoftDDS.L0111:
SoftDDS.L0109:
                        .BLOCK    450
                        .LINE     450
                        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
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 451
                        .BRANCH   20,SoftDDS.L0102
                        RJMP      SoftDDS.L0102
SoftDDS.L0110:
                        .LINE     452
                        .BLOCK    452
                        .LINE     453
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.EmptyStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EmptyStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.WRITELCD
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 454
SoftDDS.L0102:
                        .ENDBLOCK 455
SoftDDS.WriteWave_X:
                        .LINE     455
                        .BRANCH   19
                        RET
                        .ENDFUNC  455

                        .FUNC     ShowFrequSpaced, 458, 00020h
SoftDDS.ShowFrequSpaced:
                        .BLOCK    461
                        .LINE     462
                        .BRANCH   17,SoftDDS.LCD1X0Y0
                        RCALL     SoftDDS.LCD1X0Y0
                        .LINE     463
                        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
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     464
                        .BRANCH   17,SoftDDS.LCD1X0Y1
                        RCALL     SoftDDS.LCD1X0Y1
                        .LINE     465
                        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.L0114:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0115
                        CLR       _ACCA
SoftDDS.L0115:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0116
                        BREQ      SoftDDS.L0116
                        .BRANCH   20,SoftDDS.L0113
                        RJMP      SoftDDS.L0113
SoftDDS.L0116:
                        .BLOCK    466
                        .LINE     466
                        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     467
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  3
                        RCALL     SYSTEM.LCDOUT
                        .LINE     468
                        MOV       _ACCA, SoftDDS.i
                        CPI       _ACCA, 006h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0117
                        SER       _ACCA
SoftDDS.L0117:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0120
                        BRNE      SoftDDS.L0120
                        .BRANCH   20,SoftDDS.L0118
                        RJMP      SoftDDS.L0118
SoftDDS.L0120:
                        .BLOCK    468
                        .LINE     469
                        LDI       _ACCA, 02Eh
                        .FRAME  3
                        RCALL     SYSTEM.LCDOUT
                        .ENDBLOCK 470
                        .BRANCH   20,SoftDDS.L0119
                        RJMP      SoftDDS.L0119
SoftDDS.L0118:
                        .BLOCK    470
                        .LINE     471
                        LDI       _ACCA, 020h
                        .FRAME  3
                        RCALL     SYSTEM.LCDOUT
                        .ENDBLOCK 472
SoftDDS.L0119:
                        .ENDBLOCK 473
SoftDDS.L0112:
                        .LINE     473
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0113
                        BREQ      SoftDDS.L0113
                        .BRANCH   20,SoftDDS.L0114
                        RJMP      SoftDDS.L0114
SoftDDS.L0113:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 474
SoftDDS.ShowFrequSpaced_X:
                        .LINE     474
                        .BRANCH   19
                        RET
                        .ENDFUNC  474

                        .FUNC     WriteFrequency, 477, 00020h
SoftDDS.WriteFrequency:
                        SBIW      _FRAMEPTR, 1
                        .BLOCK    480
                        .LINE     481
                        LDI       _ACCA, 00Eh
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     482
                        .BRANCH   17,SoftDDS.SETPOS
                        RCALL     SoftDDS.SETPOS
                        .LINE     483
                        LDI       _ACCA, 0FFh
                        STD       Y+000h, _ACCA
                        .LINE     484
                        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.L0123:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0124
                        CLR       _ACCA
SoftDDS.L0124:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0125
                        BREQ      SoftDDS.L0125
                        .BRANCH   20,SoftDDS.L0122
                        RJMP      SoftDDS.L0122
SoftDDS.L0125:
                        .BLOCK    485
                        .LINE     485
                        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     486
                        LDS       _ACCA, SoftDDS.DisplayValue
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0126
                        SER       _ACCA
SoftDDS.L0126:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0129
                        BRNE      SoftDDS.L0129
                        .BRANCH   20,SoftDDS.L0127
                        RJMP      SoftDDS.L0127
SoftDDS.L0129:
                        .BLOCK    486
                        .LINE     487
                        LDI       _ACCA, 000h
                        STD       Y+003h, _ACCA
                        .ENDBLOCK 488
SoftDDS.L0127:
SoftDDS.L0128:
                        .LINE     489
                        LDS       _ACCA, SoftDDS.DisplayValue
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0130
                        SER       _ACCA
SoftDDS.L0130:
                        PUSH      _ACCA
                        LDD       _ACCA, Y+003h
                        POP       _ACCB
                        AND       _ACCA, _ACCB
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0133
                        BRNE      SoftDDS.L0133
                        .BRANCH   20,SoftDDS.L0131
                        RJMP      SoftDDS.L0131
SoftDDS.L0133:
                        .BLOCK    489
                        .LINE     490
                        LDI       _ACCA, 020h
                        .FRAME  3
                        RCALL     SYSTEM.LCDOUT
                        .ENDBLOCK 491
                        .BRANCH   20,SoftDDS.L0132
                        RJMP      SoftDDS.L0132
SoftDDS.L0131:
                        .BLOCK    491
                        .LINE     492
                        LDS       _ACCA, SoftDDS.DisplayValue
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  3
                        RCALL     SYSTEM.LCDOUT
                        .ENDBLOCK 493
SoftDDS.L0132:
                        .ENDBLOCK 494
SoftDDS.L0121:
                        .LINE     494
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0122
                        BREQ      SoftDDS.L0122
                        .BRANCH   20,SoftDDS.L0123
                        RJMP      SoftDDS.L0123
SoftDDS.L0122:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     495
                        LDI       _ACCA, 02Eh
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .LINE     496
                        LDS       _ACCA, SoftDDS.FrequDez
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     497
                        LDS       _ACCA, SoftDDS.DisplayValue
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .LINE     498
                        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
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 499
SoftDDS.WriteFrequency_X:
                        .LINE     499
                        .BRANCH   19
                        RET
                        .ENDFUNC  499

                        .FUNC     WriteLevelmV, 501, 00020h
SoftDDS.WriteLevelmV:
                        SBIW      _FRAMEPTR, 3
                        .BLOCK    507
                        .LINE     508
                        LDI       _ACCA, 00Fh
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     509
                        .BRANCH   17,SoftDDS.SETPOS
                        RCALL     SoftDDS.SETPOS
                        .LINE     511
                        LDS       _ACCA, SoftDDS.AttnStep
                        SUBI      _ACCA, -00Ah AND 0FFh
                        STD       Y+001h, _ACCA
                        .LINE     514
                        LDD       _ACCA, Y+001h
                        LDI       _ACCB, 014h
                        RCALL     SYSTEM.DIV8_R
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.I, _ACCA
                        .LINE     515
                        LDD       _ACCA, Y+001h
                        SUBI      _ACCA, -00Ah AND 0FFh
                        LDI       _ACCB, 014h
                        RCALL     SYSTEM.DIV8_R
                        SUBI      _ACCA, -002h AND 0FFh
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     516
                        LDI       _ACCA, 06Dh
                        STD       Y+000h, _ACCA
                        .LINE     517
                        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
                        RCALL     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     521
                        LDD       _ACCA, Y+001h
                        .LINE     522
                        CPI       _ACCA, 10
                        .BRANCH   2,SoftDDS.L0137
                        BRCC      SoftDDS.L0137
                        .BRANCH   20,SoftDDS.L0136
                        RJMP      SoftDDS.L0136
SoftDDS.L0137:
                        CPI       _ACCA, 29
                        .BRANCH   3,SoftDDS.L0138
                        BREQ      SoftDDS.L0138
                        .BRANCH   1,SoftDDS.L0136
                        BRCS      SoftDDS.L0138
                        .BRANCH   20,SoftDDS.L0136
                        RJMP      SoftDDS.L0136
SoftDDS.L0138:
SoftDDS.L0135:
                        .BLOCK    523
                        .LINE     523
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -003h AND 0FFh
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     524
                        LDI       _ACCCLO, $St_String21 AND 0FFh
                        LDI       _ACCCHI, $St_String21 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
                        RCALL     SYSTEM.StringInsert
                        .LINE     525
                        LDI       _ACCA, 0E4h
                        STD       Y+000h, _ACCA
                        .ENDBLOCK 526
                        .BRANCH   20,SoftDDS.L0134
                        RJMP      SoftDDS.L0134
SoftDDS.L0136:
                        .LINE     527
                        CPI       _ACCA, 30
                        .BRANCH   2,SoftDDS.L0141
                        BRCC      SoftDDS.L0141
                        .BRANCH   20,SoftDDS.L0140
                        RJMP      SoftDDS.L0140
SoftDDS.L0141:
                        CPI       _ACCA, 89
                        .BRANCH   3,SoftDDS.L0142
                        BREQ      SoftDDS.L0142
                        .BRANCH   1,SoftDDS.L0140
                        BRCS      SoftDDS.L0142
                        .BRANCH   20,SoftDDS.L0140
                        RJMP      SoftDDS.L0140
SoftDDS.L0142:
SoftDDS.L0139:
                        .BLOCK    528
                        .LINE     528
                        LDI       _ACCCLO, $St_String21 AND 0FFh
                        LDI       _ACCCHI, $St_String21 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
                        RCALL     SYSTEM.StringInsert
                        .ENDBLOCK 529
                        .BRANCH   20,SoftDDS.L0134
                        RJMP      SoftDDS.L0134
SoftDDS.L0140:
                        .LINE     530
                        CPI       _ACCA, 90
                        .BRANCH   2,SoftDDS.L0145
                        BRCC      SoftDDS.L0145
                        .BRANCH   20,SoftDDS.L0144
                        RJMP      SoftDDS.L0144
SoftDDS.L0145:
                        CPI       _ACCA, 109
                        .BRANCH   3,SoftDDS.L0146
                        BREQ      SoftDDS.L0146
                        .BRANCH   1,SoftDDS.L0144
                        BRCS      SoftDDS.L0146
                        .BRANCH   20,SoftDDS.L0144
                        RJMP      SoftDDS.L0144
SoftDDS.L0146:
SoftDDS.L0143:
                        .BLOCK    531
                        .LINE     531
                        LDI       _ACCCLO, $St_String21 AND 0FFh
                        LDI       _ACCCHI, $St_String21 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
                        RCALL     SYSTEM.StringInsert
                        .LINE     532
                        LDI       _ACCA, 020h
                        STD       Y+000h, _ACCA
                        .ENDBLOCK 533
                        .BRANCH   20,SoftDDS.L0134
                        RJMP      SoftDDS.L0134
SoftDDS.L0144:
SoftDDS.L0134:
                        .LINE     535
                        LDI       _ACCA, 020h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .LINE     536
                        LDI       _ACCA, 020h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .LINE     537
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 1 SHLB _DEVICE
                        OR        Flags, _ACCA
                        LDI       _ACCB, SYSTEM.lcdout SHRB 1
                        LDI       _ACCA, SYSTEM.lcdout SHRB 9
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        LDI       _ACCCLO, SoftDDS.LevelStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.LevelStr SHRB 8
                        RCALL     SYSTEM.StrVar2Str
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .LINE     538
                        LDI       _ACCA, 020h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .LINE     539
                        LDD       _ACCA, Y+000h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .LINE     540
                        LDI       _ACCA, 056h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .ENDBLOCK 541
SoftDDS.WriteLevelmV_X:
                        .LINE     541
                        .BRANCH   19
                        RET
                        .ENDFUNC  541

                        .FUNC     WriteLeveldB, 543, 00020h
SoftDDS.WriteLeveldB:
                        SBIW      _FRAMEPTR, 2
                        .BLOCK    546
                        .LINE     547
                        LDI       _ACCA, 009h
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     548
                        .BRANCH   17,SoftDDS.SETPOS
                        RCALL     SoftDDS.SETPOS
                        .LINE     551
                        LDS       _ACCA, SoftDDS.AttnStep
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        SUBI      _ACCB, 00046h AND 0FFh
                        SBCI      _ACCA, 00046h SHRB 8
                        STD       Y+001h, _ACCA
                        STD       Y+000h, _ACCB
                        .LINE     552
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 1 SHLB _DEVICE
                        OR        Flags, _ACCA
                        LDI       _ACCB, SYSTEM.lcdout SHRB 1
                        LDI       _ACCA, SYSTEM.lcdout SHRB 9
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        LDD       _ACCB, Y+002h
                        LDD       _ACCA, Y+003h
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDI       _ACCA, 004h
                        PUSH      _ACCA
                        LDI       _ACCB, 000h
                        PUSH      _ACCB
                        LDI       _ACCA, 020h
                        PUSH      _ACCA
                        SET
                        BLD       Flags, _SIGN
                        RCALL     SYSTEM.Int2Str
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .LINE     553
                        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
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 554
SoftDDS.WriteLeveldB_X:
                        .LINE     554
                        .BRANCH   19
                        RET
                        .ENDFUNC  554

                        .FUNC     WriteMP3trackTime, 557, 00020h
SoftDDS.WriteMP3trackTime:
                        .BLOCK    560
                        .LINE     561
                        LDS       _ACCA, SoftDDS.MP3isOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0149
                        BRNE      SoftDDS.L0149
                        .BRANCH   20,SoftDDS.L0147
                        RJMP      SoftDDS.L0147
SoftDDS.L0149:
                        .BLOCK    561
                        .LINE     562
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     563
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     564
                        .BRANCH   17,SoftDDS.LCD1XY
                        RCALL     SoftDDS.LCD1XY
                        .LINE     565
                        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
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     566
                        LDS       _ACCA, SoftDDS.MP3runningSeconds
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     567
                        .BRANCH   17,SoftDDS.WRITEITEM
                        RCALL     SoftDDS.WRITEITEM
                        .LINE     568
                        LDI       _ACCA, 03Ah
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .LINE     569
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     570
                        LDS       _ACCA, SoftDDS.MP3runningTimer
                        LDI       _ACCB, 00Ah
                        RCALL     SYSTEM.DIV8_R
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     571
                        .BRANCH   17,SoftDDS.WRITEITEM
                        RCALL     SoftDDS.WRITEITEM
                        .LINE     572
                        LDI       _ACCA, 030h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .LINE     573
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .ENDBLOCK 574
                        .BRANCH   20,SoftDDS.L0148
                        RJMP      SoftDDS.L0148
SoftDDS.L0147:
                        .BLOCK    574
                        .LINE     575
                        RCALL     SYSTEM.LCDCLREOL
                        .ENDBLOCK 576
SoftDDS.L0148:
                        .ENDBLOCK 577
SoftDDS.WriteMP3trackTime_X:
                        .LINE     577
                        .BRANCH   19
                        RET
                        .ENDFUNC  577

                        .FUNC     MP3waitMessage, 579, 00020h
SoftDDS.MP3waitMessage:
                        .BLOCK    581
                        .LINE     582
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     583
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     584
                        .BRANCH   17,SoftDDS.LCD1XY
                        RCALL     SoftDDS.LCD1XY
                        .LINE     585
                        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
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     586
                        RCALL     SYSTEM.LCDCLREOL
                        .ENDBLOCK 587
SoftDDS.MP3waitMessage_X:
                        .LINE     587
                        .BRANCH   19
                        RET
                        .ENDFUNC  587

                        .FUNC     ShowOptionsLower, 589, 00020h
SoftDDS.ShowOptionsLower:
                        .BLOCK    591
                        .LINE     592
                        .BRANCH   17,SoftDDS.WRITEWAVE
                        RCALL     SoftDDS.WRITEWAVE
                        .LINE     593
                        LDI       _ACCA, 020h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .LINE     594
                        LDI       _ACCA, 00Bh
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     595
                        .BRANCH   17,SoftDDS.SETPOS
                        RCALL     SoftDDS.SETPOS
                        .LINE     596
                        LDS       _ACCA, SoftDDS.MP3sec
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     597
                        .BRANCH   17,SoftDDS.WRITEITEM
                        RCALL     SoftDDS.WRITEITEM
                        .LINE     598
                        RCALL     SYSTEM.LCDCLREOL
                        .ENDBLOCK 610
SoftDDS.ShowOptionsLower_X:
                        .LINE     610
                        .BRANCH   19
                        RET
                        .ENDFUNC  610

                        .FUNC     ShowOptions, 612, 00020h
SoftDDS.ShowOptions:
                        .BLOCK    614
                        .LINE     615
                        .BRANCH   17,SoftDDS.LCD1X0Y0
                        RCALL     SoftDDS.LCD1X0Y0
                        .LINE     616
                        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
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     617
                        .BRANCH   17,SoftDDS.SHOWOPTIONSLOWER
                        RCALL     SoftDDS.SHOWOPTIONSLOWER
                        .ENDBLOCK 618
SoftDDS.ShowOptions_X:
                        .LINE     618
                        .BRANCH   19
                        RET
                        .ENDFUNC  618

                        .FUNC     ShowDefaultUpper, 620, 00020h
SoftDDS.ShowDefaultUpper:
                        .BLOCK    622
                        .LINE     623
                        LDI       _ACCA, 008h
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     624
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     625
                        LDS       _ACCA, SoftDDS.PresetOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0152
                        BRNE      SoftDDS.L0152
                        .BRANCH   20,SoftDDS.L0150
                        RJMP      SoftDDS.L0150
SoftDDS.L0152:
                        .BLOCK    625
                        .LINE     626
                        LDS       _ACCA, SoftDDS.PresetNum
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     627
                        LDS       _ACCA, SoftDDS.PresetNum
                        CPI       _ACCA, 01Fh
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0153
                        BRLO      SoftDDS.L0153
                        SER       _ACCA
SoftDDS.L0153:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0156
                        BRNE      SoftDDS.L0156
                        .BRANCH   20,SoftDDS.L0154
                        RJMP      SoftDDS.L0154
SoftDDS.L0156:
                        .BLOCK    627
                        .LINE     628
                        LDS       _ACCA, SoftDDS.PresetNum
                        SUBI      _ACCA, 01Fh AND 0FFh
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     629
                        .BRANCH   17,SoftDDS.LCD1X0Y0
                        RCALL     SoftDDS.LCD1X0Y0
                        .LINE     630
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.AudioStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.AudioStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.WRITELCD
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 631
                        .BRANCH   20,SoftDDS.L0155
                        RJMP      SoftDDS.L0155
SoftDDS.L0154:
                        .BLOCK    631
                        .LINE     632
                        LDS       _ACCA, SoftDDS.PresetNum
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     633
                        .BRANCH   17,SoftDDS.LCD1X0Y0
                        RCALL     SoftDDS.LCD1X0Y0
                        .LINE     634
                        LDS       _ACCA, SoftDDS.PresetNum
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0157
                        SER       _ACCA
SoftDDS.L0157:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0160
                        BRNE      SoftDDS.L0160
                        .BRANCH   20,SoftDDS.L0158
                        RJMP      SoftDDS.L0158
SoftDDS.L0160:
                        .BLOCK    634
                        .LINE     635
                        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
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 636
                        .BRANCH   20,SoftDDS.L0159
                        RJMP      SoftDDS.L0159
SoftDDS.L0158:
                        .BLOCK    636
                        .LINE     637
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.TerzStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.TerzStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.WRITELCD
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 638
SoftDDS.L0159:
                        .ENDBLOCK 639
SoftDDS.L0155:
                        .ENDBLOCK 640
                        .BRANCH   20,SoftDDS.L0151
                        RJMP      SoftDDS.L0151
SoftDDS.L0150:
                        .BLOCK    640
                        .LINE     641
                        .BRANCH   17,SoftDDS.LCD1X0Y0
                        RCALL     SoftDDS.LCD1X0Y0
                        .LINE     642
                        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
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     643
                        LDS       _ACCA, SoftDDS.MemoryNum
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .ENDBLOCK 644
SoftDDS.L0151:
                        .LINE     645
                        .BRANCH   17,SoftDDS.WRITEITEM
                        RCALL     SoftDDS.WRITEITEM
                        .LINE     646
                        LDI       _ACCA, 020h
                        .FRAME  0
                        RCALL     SYSTEM.LCDOUT
                        .LINE     647
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.WRITELEVELDB
                        RCALL     SoftDDS.WRITELEVELDB
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     648
                        .BRANCH   17,SoftDDS.SETCURSOR
                        RCALL     SoftDDS.SETCURSOR
                        .ENDBLOCK 649
SoftDDS.ShowDefaultUpper_X:
                        .LINE     649
                        .BRANCH   19
                        RET
                        .ENDFUNC  649

                        .FUNC     ShowDefaultLower, 651, 00020h
SoftDDS.ShowDefaultLower:
                        .BLOCK    653
                        .LINE     654
                        .BRANCH   17,SoftDDS.LCD1X0Y1
                        RCALL     SoftDDS.LCD1X0Y1
                        .LINE     655
                        RCALL     SYSTEM.LCDCLREOL
                        .LINE     656
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 009h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0161
                        SER       _ACCA
SoftDDS.L0161:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0164
                        BRNE      SoftDDS.L0164
                        .BRANCH   20,SoftDDS.L0162
                        RJMP      SoftDDS.L0162
SoftDDS.L0164:
                        .BLOCK    656
                        .LINE     658
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.WRITELEVELMV
                        RCALL     SoftDDS.WRITELEVELMV
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 659
                        .BRANCH   20,SoftDDS.L0163
                        RJMP      SoftDDS.L0163
SoftDDS.L0162:
                        .BLOCK    659
                        .LINE     660
                        LDS       _ACCA, SoftDDS.MP3isOn
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0167
                        BRNE      SoftDDS.L0167
                        .BRANCH   20,SoftDDS.L0165
                        RJMP      SoftDDS.L0165
SoftDDS.L0167:
                        .BLOCK    660
                        .LINE     661
                        .BRANCH   17,SoftDDS.WRITEWAVE
                        RCALL     SoftDDS.WRITEWAVE
                        .LINE     662
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.WRITEFREQUENCY
                        RCALL     SoftDDS.WRITEFREQUENCY
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 663
                        .BRANCH   20,SoftDDS.L0166
                        RJMP      SoftDDS.L0166
SoftDDS.L0165:
                        .BLOCK    663
                        .LINE     664
                        .BRANCH   17,SoftDDS.WRITEMP3TRACKTIME
                        RCALL     SoftDDS.WRITEMP3TRACKTIME
                        .ENDBLOCK 665
SoftDDS.L0166:
                        .ENDBLOCK 666
SoftDDS.L0163:
                        .ENDBLOCK 667
SoftDDS.ShowDefaultLower_X:
                        .LINE     667
                        .BRANCH   19
                        RET
                        .ENDFUNC  667

                        .FUNC     ShowDefault, 669, 00020h
SoftDDS.ShowDefault:
                        .BLOCK    671
                        .LINE     672
                        .BRANCH   17,SoftDDS.SHOWDEFAULTUPPER
                        RCALL     SoftDDS.SHOWDEFAULTUPPER
                        .LINE     673
                        .BRANCH   17,SoftDDS.SHOWDEFAULTLOWER
                        RCALL     SoftDDS.SHOWDEFAULTLOWER
                        .ENDBLOCK 674
SoftDDS.ShowDefault_X:
                        .LINE     674
                        .BRANCH   19
                        RET
                        .ENDFUNC  674

                        .FUNC     SetupMP3, 676, 00020h
SoftDDS.SetupMP3:
                        .BLOCK    678
                        .LINE     679
                        LDS       _ACCA, SoftDDS.PresetNum
                        CPI       _ACCA, 01Fh
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0168
                        BRLO      SoftDDS.L0168
                        SER       _ACCA
SoftDDS.L0168:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0171
                        BRNE      SoftDDS.L0171
                        .BRANCH   20,SoftDDS.L0169
                        RJMP      SoftDDS.L0169
SoftDDS.L0171:
                        .BLOCK    680
                        .LINE     680
                        LDS       _ACCA, SoftDDS.PresetNum
                        SUBI      _ACCA, 01Fh AND 0FFh
                        STS       SOFTDDS.MP3TRACK, _ACCA
                        .LINE     681
                        LDS       _ACCA, SoftDDS.MP3isOn
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0174
                        BRNE      SoftDDS.L0174
                        .BRANCH   20,SoftDDS.L0172
                        RJMP      SoftDDS.L0172
SoftDDS.L0174:
                        .BLOCK    681
                        .LINE     682
                        .BRANCH   17,SoftDDS.MP3WAITMESSAGE
                        RCALL     SoftDDS.MP3WAITMESSAGE
                        .LINE     683
                        .BRANCH   17,SoftDDS.MP3ON
                        RCALL     SoftDDS.MP3ON
                        .ENDBLOCK 684
SoftDDS.L0172:
SoftDDS.L0173:
                        .LINE     685
                        LDS       _ACCA, SoftDDS.MP3isOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0177
                        BRNE      SoftDDS.L0177
                        .BRANCH   20,SoftDDS.L0175
                        RJMP      SoftDDS.L0175
SoftDDS.L0177:
                        .BLOCK    685
                        .LINE     686
                        LDS       _ACCA, SoftDDS.MP3Track
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.MP3currenttrack
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0178
                        SER       _ACCA
SoftDDS.L0178:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0181
                        BRNE      SoftDDS.L0181
                        .BRANCH   20,SoftDDS.L0179
                        RJMP      SoftDDS.L0179
SoftDDS.L0181:
                        .BLOCK    686
                        .LINE     687
                        .BRANCH   17,SoftDDS.SETPOS
                        RCALL     SoftDDS.SETPOS
                        .LINE     688
                        .BRANCH   17,SoftDDS.MP3WAITMESSAGE
                        RCALL     SoftDDS.MP3WAITMESSAGE
                        .LINE     689
                        .BRANCH   17,SoftDDS.MP3GOTOTRACK
                        RCALL     SoftDDS.MP3GOTOTRACK
                        .ENDBLOCK 690
SoftDDS.L0179:
SoftDDS.L0180:
                        .LINE     691
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 008h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0182
                        SER       _ACCA
SoftDDS.L0182:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0185
                        BRNE      SoftDDS.L0185
                        .BRANCH   20,SoftDDS.L0183
                        RJMP      SoftDDS.L0183
SoftDDS.L0185:
                        .BLOCK    691
                        .LINE     692
                        .BRANCH   17,SoftDDS.WRITEMP3TRACKTIME
                        RCALL     SoftDDS.WRITEMP3TRACKTIME
                        .ENDBLOCK 693
SoftDDS.L0183:
SoftDDS.L0184:
                        .ENDBLOCK 694
SoftDDS.L0175:
SoftDDS.L0176:
                        .ENDBLOCK 695
                        .BRANCH   20,SoftDDS.L0170
                        RJMP      SoftDDS.L0170
SoftDDS.L0169:
                        .BLOCK    695
                        .LINE     696
                        LDS       _ACCA, SoftDDS.MP3isOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0188
                        BRNE      SoftDDS.L0188
                        .BRANCH   20,SoftDDS.L0186
                        RJMP      SoftDDS.L0186
SoftDDS.L0188:
                        .BLOCK    697
                        .LINE     697
                        .BRANCH   17,SoftDDS.MP3OFF
                        RCALL     SoftDDS.MP3OFF
                        .LINE     698
                        .BRANCH   17,SoftDDS.SHOWOPTIONSLOWER
                        RCALL     SoftDDS.SHOWOPTIONSLOWER
                        .LINE     699
                        .BRANCH   17,SoftDDS.SETCURSOR
                        RCALL     SoftDDS.SETCURSOR
                        .ENDBLOCK 700
SoftDDS.L0186:
SoftDDS.L0187:
                        .ENDBLOCK 701
SoftDDS.L0170:
                        .ENDBLOCK 702
SoftDDS.SetupMP3_X:
                        .LINE     702
                        .BRANCH   19
                        RET
                        .ENDFUNC  702

                        .FUNC     initall, 735, 00020h
SoftDDS.initall:
                        .BLOCK    737
                        .LINE     738
                        LDI       _ACCA, 0FFh
                        OUT       DDRA, _ACCA
                        .LINE     739
                        LDI       _ACCA, 080h
                        OUT       PORTA, _ACCA
                        .LINE     740
                        LDI       _ACCA, 0FFh
                        OUT       DDRB, _ACCA
                        .LINE     741
                        LDI       _ACCA, 08Fh
                        OUT       PORTB, _ACCA
                        .LINE     742
                        LDI       _ACCA, 080h
                        OUT       DDRC, _ACCA
                        .LINE     743
                        LDI       _ACCA, 080h
                        OUT       PORTC, _ACCA
                        .LINE     744
                        LDI       _ACCA, 000h
                        OUT       DDRD, _ACCA
                        .LINE     745
                        LDI       _ACCA, 0FFh
                        OUT       PORTD, _ACCA
                        .LINE     747
                        LDI       _ACCA, 001h
                        LDI       _ACCCLO, SoftDDS.sinus AND 0FFh
                        LDI       _ACCCHI, SoftDDS.sinus SHRB 8
                        ANDI      _ACCA, 255
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCA, Z
                        MOV       SOFTDDS.I, _ACCA
                        .LINE     749
                        RCALL     SYSTEM.LCDCLR
                        .LINE     750
                        LDI       _ACCA, 000h
                        PUSH      _ACCA
                        LDI       _ACCA, 000h
                        PUSH      _ACCA
                        .FRAME  0
                        RCALL     SYSTEM.LCDCURSOR
                        .LINE     751
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 002h
                        ST        -Y, _ACCA
                        .FRAME  2
                        LDI       _ACCA, 006h
                        ST        -Y, _ACCA
                        .FRAME  3
                        LDI       _ACCA, 00Eh
                        ST        -Y, _ACCA
                        .FRAME  4
                        LDI       _ACCA, 01Eh
                        ST        -Y, _ACCA
                        .FRAME  5
                        LDI       _ACCA, 00Eh
                        ST        -Y, _ACCA
                        .FRAME  6
                        LDI       _ACCA, 006h
                        ST        -Y, _ACCA
                        .FRAME  7
                        LDI       _ACCA, 002h
                        ST        -Y, _ACCA
                        .FRAME  8
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  9
                        .FRAME  0
                        RCALL     SYSTEM.LCDCHARSET
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     753
                        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
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     754
                        .BRANCH   17,SoftDDS.LCD1X0Y1
                        RCALL     SoftDDS.LCD1X0Y1
                        .LINE     755
                        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
                        RCALL     SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     756
                        LDI       _ACCA, 003E8h SHRB 8
                        LDI       _ACCB, 003E8h AND 0FFh
                        .FRAME  0
                        RCALL     SYSTEM.MDELAY
                        .LINE     758
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MEMORYNUM, _ACCA
                        .LINE     759
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYFROMEE
                        RCALL     SoftDDS.PATCHCOPYFROMEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     760
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PRESETNUM, _ACCA
                        .LINE     762
                        LDI       _ACCA, 028h
                        STS       SOFTDDS.BTNTIME, _ACCA
                        .LINE     763
                        LDI       _ACCA, 00Ah
                        STS       SOFTDDS.BTNTIME2, _ACCA
                        .LINE     765
                        LDI       _ACCCLO, SoftDDS.EEPwrGain AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EEPwrGain SHRB 8
                        RCALL     SYSTEM.ReadEEp8
                        STS       SOFTDDS.PWRGAIN, _ACCA
                        .LINE     767
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.PRESETON, _ACCA
                        .LINE     769
                        SBI       00038h, 003h
                        .LINE     770
                        RCALL     SYSTEM.LCDCLR
                        .LINE     771
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MODIFIED, _ACCA
                        .LINE     772
                        LDI       _ACCA, 1 SHLB IntFlag
                        OR        Flags, _ACCA
                        SEI
                        .LINE     773
                        .BRANCH   17,SoftDDS.MP3OFF
                        RCALL     SoftDDS.MP3OFF
                        .LINE     774
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PRIME, _ACCA
                        .LINE     779
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.SETLEVELDDS
                        RCALL     SoftDDS.SETLEVELDDS
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 780
SoftDDS.initall_X:
                        .LINE     780
                        .BRANCH   19
                        RET
                        .ENDFUNC  780



                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Program body
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .FUNC     $_Main, 784, 00020h
                        .ENTRYMAIN $
SoftDDS.$_Main:

                        .BLOCK    784
                        .LINE     785
                        .BRANCH   17,SoftDDS.INITALL
                        RCALL     SoftDDS.INITALL
                        .LINE     786
                        LDI       _ACCA, 008h
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .LINE     787
                        .BRANCH   17,SoftDDS.SHOWDEFAULT
                        RCALL     SoftDDS.SHOWDEFAULT
SoftDDS.L0189:
                        .BLOCK    790
                        .LINE     791
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.SETLEVELDDS
                        RCALL     SoftDDS.SETLEVELDDS
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     792
                        LDS       _ACCA, SoftDDS.EditWhich
                        STS       SOFTDDS.CURITEMNUMBER, _ACCA
                        .LINE     793
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 008h
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0191
                        BRLO      SoftDDS.L0191
                        SER       _ACCA
SoftDDS.L0191:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0194
                        BRNE      SoftDDS.L0194
                        .BRANCH   20,SoftDDS.L0192
                        RJMP      SoftDDS.L0192
SoftDDS.L0194:
                        .BLOCK    794
                        .LINE     794
                        LDS       _ACCA, SoftDDS.CurItemNumber
                        SUBI      _ACCA, 002h AND 0FFh
                        STS       SOFTDDS.CURITEMNUMBER, _ACCA
                        .ENDBLOCK 795
SoftDDS.L0192:
SoftDDS.L0193:
                        .LINE     796
                        LDS       _ACCA, SoftDDS.CurItemNumber
                        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     797
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.ITEMLOWERLIMIT, _ACCA
                        .LINE     798
                        LDI       _ACCA, 009h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .LINE     799
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     800
                        LDS       _ACCA, SoftDDS.EditWhich
                        .LINE     801
                        CPI       _ACCA, 8
                        .BRANCH   3,SoftDDS.L0198
                        BREQ      SoftDDS.L0198
                        .BRANCH   20,SoftDDS.L0197
                        RJMP      SoftDDS.L0197
SoftDDS.L0198:
SoftDDS.L0196:
                        .BLOCK    802
                        .LINE     802
                        LDI       _ACCA, 029h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .LINE     803
                        LDI       _ACCA, 028h
                        STS       SOFTDDS.BTNTIME, _ACCA
                        .LINE     804
                        LDS       _ACCA, SoftDDS.PresetOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0201
                        BRNE      SoftDDS.L0201
                        .BRANCH   20,SoftDDS.L0199
                        RJMP      SoftDDS.L0199
SoftDDS.L0201:
                        .BLOCK    804
                        .LINE     805
                        LDS       _ACCA, SoftDDS.PresetNum
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 806
                        .BRANCH   20,SoftDDS.L0200
                        RJMP      SoftDDS.L0200
SoftDDS.L0199:
                        .BLOCK    806
                        .LINE     807
                        LDS       _ACCA, SoftDDS.MemoryNum
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 808
SoftDDS.L0200:
                        .LINE     809
                        .BRANCH   17,SoftDDS.SHOWDEFAULT
                        RCALL     SoftDDS.SHOWDEFAULT
                        .ENDBLOCK 810
                        .BRANCH   20,SoftDDS.L0195
                        RJMP      SoftDDS.L0195
SoftDDS.L0197:
                        .LINE     811
                        CPI       _ACCA, 9
                        .BRANCH   3,SoftDDS.L0204
                        BREQ      SoftDDS.L0204
                        .BRANCH   20,SoftDDS.L0203
                        RJMP      SoftDDS.L0203
SoftDDS.L0204:
SoftDDS.L0202:
                        .BLOCK    812
                        .LINE     812
                        LDI       _ACCA, 00Bh
                        STS       SOFTDDS.ITEMLOWERLIMIT, _ACCA
                        .LINE     813
                        LDI       _ACCA, 050h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .LINE     814
                        LDS       _ACCA, SoftDDS.AttnStep
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .LINE     815
                        .BRANCH   17,SoftDDS.SHOWDEFAULT
                        RCALL     SoftDDS.SHOWDEFAULT
                        .ENDBLOCK 816
                        .BRANCH   20,SoftDDS.L0195
                        RJMP      SoftDDS.L0195
SoftDDS.L0203:
                        .LINE     817
                        CPI       _ACCA, 0
                        .BRANCH   2,SoftDDS.L0207
                        BRCC      SoftDDS.L0207
                        .BRANCH   20,SoftDDS.L0206
                        RJMP      SoftDDS.L0206
SoftDDS.L0207:
                        CPI       _ACCA, 7
                        .BRANCH   3,SoftDDS.L0208
                        BREQ      SoftDDS.L0208
                        .BRANCH   1,SoftDDS.L0206
                        BRCS      SoftDDS.L0208
                        .BRANCH   20,SoftDDS.L0206
                        RJMP      SoftDDS.L0206
SoftDDS.L0208:
SoftDDS.L0205:
                        .BLOCK    818
                        .LINE     818
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     819
                        .BRANCH   17,SoftDDS.SHOWFREQUSPACED
                        RCALL     SoftDDS.SHOWFREQUSPACED
                        .ENDBLOCK 820
                        .BRANCH   20,SoftDDS.L0195
                        RJMP      SoftDDS.L0195
SoftDDS.L0206:
                        .LINE     821
                        CPI       _ACCA, 10
                        .BRANCH   3,SoftDDS.L0211
                        BREQ      SoftDDS.L0211
                        .BRANCH   20,SoftDDS.L0210
                        RJMP      SoftDDS.L0210
SoftDDS.L0211:
SoftDDS.L0209:
                        .BLOCK    822
                        .LINE     822
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .LINE     823
                        .BRANCH   17,SoftDDS.SHOWOPTIONS
                        RCALL     SoftDDS.SHOWOPTIONS
                        .ENDBLOCK 824
                        .BRANCH   20,SoftDDS.L0195
                        RJMP      SoftDDS.L0195
SoftDDS.L0210:
                        .LINE     826
                        CPI       _ACCA, 11
                        .BRANCH   3,SoftDDS.L0214
                        BREQ      SoftDDS.L0214
                        .BRANCH   20,SoftDDS.L0213
                        RJMP      SoftDDS.L0213
SoftDDS.L0214:
SoftDDS.L0212:
                        .BLOCK    827
                        .LINE     827
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.ITEMLOWERLIMIT, _ACCA
                        .LINE     828
                        LDI       _ACCA, 063h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .LINE     829
                        .BRANCH   17,SoftDDS.SHOWOPTIONS
                        RCALL     SoftDDS.SHOWOPTIONS
                        .ENDBLOCK 830
                        .BRANCH   20,SoftDDS.L0195
                        RJMP      SoftDDS.L0195
SoftDDS.L0213:
SoftDDS.L0195:
                        .LINE     840
                        .BRANCH   17,SoftDDS.SETCURSOR
                        RCALL     SoftDDS.SETCURSOR
                        .LINE     841
                        .BRANCH   17,SoftDDS.SLOWREPEATRELEASE
                        RCALL     SoftDDS.SLOWREPEATRELEASE
                        .LINE     842
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MODIFIED, _ACCA
SoftDDS.L0215:
                        .BLOCK    844
                        .LINE     845
                        .BRANCH   17,SoftDDS.UPDOWNBUTTON
                        RCALL      SoftDDS.UPDOWNBUTTON
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0220
                        BRNE      SoftDDS.L0220
                        .BRANCH   20,SoftDDS.L0218
                        RJMP      SoftDDS.L0218
SoftDDS.L0220:
                        .BLOCK    845
                        .LINE     846
                        LDS       _ACCB, 00066h
                        CLR       _ACCA
                        SBRC      _ACCB, 002h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0223
                        BRNE      SoftDDS.L0223
                        .BRANCH   20,SoftDDS.L0221
                        RJMP      SoftDDS.L0221
SoftDDS.L0223:
                        .BLOCK    846
                        .LINE     847
                        LDS       _ACCA, SoftDDS.EditValue
                        INC       _ACCA
                        STS       SoftDDS.EditValue, _ACCA
                        .ENDBLOCK 848
SoftDDS.L0221:
SoftDDS.L0222:
                        .LINE     849
                        LDS       _ACCB, 00066h
                        CLR       _ACCA
                        SBRC      _ACCB, 003h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0226
                        BRNE      SoftDDS.L0226
                        .BRANCH   20,SoftDDS.L0224
                        RJMP      SoftDDS.L0224
SoftDDS.L0226:
                        .BLOCK    849
                        .LINE     850
                        CLR       _ACCA
                        LDS       _ACCB, SoftDDS.EditValue
                        LDI       _ACCEHI, 000h
                        CP        _ACCEHI, _ACCB
                        BRCC      SoftDDS.L0227
                        DEC       _ACCB
                        STS       SoftDDS.EditValue, _ACCB
                        SER       _ACCA
SoftDDS.L0227:
                        .ENDBLOCK 851
SoftDDS.L0224:
SoftDDS.L0225:
                        .LINE     852
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.MODIFIED, _ACCA
                        .LINE     853
                        .BRANCH   17,SoftDDS.CHECKITEMLIMITS
                        RCALL     SoftDDS.CHECKITEMLIMITS
                        .LINE     854
                        LDS       _ACCA, SoftDDS.EditWhich
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     855
                        .BRANCH   17,SoftDDS.SETPOS
                        RCALL     SoftDDS.SETPOS
                        .LINE     856
                        LDS       _ACCA, SoftDDS.EditWhich
                        .LINE     857
                        CPI       _ACCA, 8
                        .BRANCH   3,SoftDDS.L0231
                        BREQ      SoftDDS.L0231
                        .BRANCH   20,SoftDDS.L0230
                        RJMP      SoftDDS.L0230
SoftDDS.L0231:
SoftDDS.L0229:
                        .BLOCK    858
                        .LINE     858
                        LDS       _ACCA, SoftDDS.PresetOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0234
                        BRNE      SoftDDS.L0234
                        .BRANCH   20,SoftDDS.L0232
                        RJMP      SoftDDS.L0232
SoftDDS.L0234:
                        .BLOCK    858
                        .LINE     859
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.PRESETNUM, _ACCA
                        .LINE     860
                        LDS       _ACCA, SoftDDS.PresetNum
                        CPI       _ACCA, 020h
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0235
                        CLR       _ACCA
SoftDDS.L0235:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0238
                        BRNE      SoftDDS.L0238
                        .BRANCH   20,SoftDDS.L0236
                        RJMP      SoftDDS.L0236
SoftDDS.L0238:
                        .BLOCK    860
                        .LINE     861
                        .BRANCH   17,SoftDDS.PRESETCOPYFROMROM
                        RCALL     SoftDDS.PRESETCOPYFROMROM
                        .ENDBLOCK 862
SoftDDS.L0236:
SoftDDS.L0237:
                        .ENDBLOCK 863
                        .BRANCH   20,SoftDDS.L0233
                        RJMP      SoftDDS.L0233
SoftDDS.L0232:
                        .BLOCK    863
                        .LINE     864
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.MEMORYNUM, _ACCA
                        .LINE     865
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYFROMEE
                        RCALL     SoftDDS.PATCHCOPYFROMEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 866
SoftDDS.L0233:
                        .LINE     867
                        .BRANCH   17,SoftDDS.SHOWDEFAULTUPPER
                        RCALL     SoftDDS.SHOWDEFAULTUPPER
                        .LINE     868
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.SETLEVELDDS
                        RCALL     SoftDDS.SETLEVELDDS
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     869
                        .BRANCH   17,SoftDDS.SETUPMP3
                        RCALL     SoftDDS.SETUPMP3
                        .LINE     870
                        .BRANCH   17,SoftDDS.SHOWDEFAULTLOWER
                        RCALL     SoftDDS.SHOWDEFAULTLOWER
                        .LINE     871
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MODIFIED, _ACCA
                        .ENDBLOCK 872
                        .BRANCH   20,SoftDDS.L0228
                        RJMP      SoftDDS.L0228
SoftDDS.L0230:
                        .LINE     873
                        CPI       _ACCA, 9
                        .BRANCH   3,SoftDDS.L0241
                        BREQ      SoftDDS.L0241
                        .BRANCH   20,SoftDDS.L0240
                        RJMP      SoftDDS.L0240
SoftDDS.L0241:
SoftDDS.L0239:
                        .BLOCK    874
                        .LINE     874
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.ATTNSTEP, _ACCA
                        .LINE     875
                        .BRANCH   17,SoftDDS.SHOWDEFAULT
                        RCALL     SoftDDS.SHOWDEFAULT
                        .ENDBLOCK 876
                        .BRANCH   20,SoftDDS.L0228
                        RJMP      SoftDDS.L0228
SoftDDS.L0240:
                        .LINE     877
                        CPI       _ACCA, 0
                        .BRANCH   2,SoftDDS.L0244
                        BRCC      SoftDDS.L0244
                        .BRANCH   20,SoftDDS.L0243
                        RJMP      SoftDDS.L0243
SoftDDS.L0244:
                        CPI       _ACCA, 7
                        .BRANCH   3,SoftDDS.L0245
                        BREQ      SoftDDS.L0245
                        .BRANCH   1,SoftDDS.L0243
                        BRCS      SoftDDS.L0245
                        .BRANCH   20,SoftDDS.L0243
                        RJMP      SoftDDS.L0243
SoftDDS.L0245:
SoftDDS.L0242:
                        .BLOCK    879
                        .LINE     879
                        LDS       _ACCA, SoftDDS.EditWhich
                        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     880
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     881
                        .BRANCH   17,SoftDDS.WRITEITEM
                        RCALL     SoftDDS.WRITEITEM
                        .ENDBLOCK 882
                        .BRANCH   20,SoftDDS.L0228
                        RJMP      SoftDDS.L0228
SoftDDS.L0243:
                        .LINE     883
                        CPI       _ACCA, 10
                        .BRANCH   3,SoftDDS.L0248
                        BREQ      SoftDDS.L0248
                        .BRANCH   20,SoftDDS.L0247
                        RJMP      SoftDDS.L0247
SoftDDS.L0248:
SoftDDS.L0246:
                        .BLOCK    884
                        .LINE     884
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.WAVE, _ACCA
                        .LINE     885
                        .BRANCH   17,SoftDDS.WRITEWAVE
                        RCALL     SoftDDS.WRITEWAVE
                        .ENDBLOCK 886
                        .BRANCH   20,SoftDDS.L0228
                        RJMP      SoftDDS.L0228
SoftDDS.L0247:
                        .LINE     887
                        CPI       _ACCA, 11
                        .BRANCH   3,SoftDDS.L0251
                        BREQ      SoftDDS.L0251
                        .BRANCH   20,SoftDDS.L0250
                        RJMP      SoftDDS.L0250
SoftDDS.L0251:
SoftDDS.L0249:
                        .BLOCK    888
                        .LINE     888
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.MP3SEC, _ACCA
                        .LINE     889
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     890
                        .BRANCH   17,SoftDDS.WRITEITEM
                        RCALL     SoftDDS.WRITEITEM
                        .ENDBLOCK 891
                        .BRANCH   20,SoftDDS.L0228
                        RJMP      SoftDDS.L0228
SoftDDS.L0250:
SoftDDS.L0228:
                        .LINE     903
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.SETLEVELDDS
                        RCALL     SoftDDS.SETLEVELDDS
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     904
                        .BRANCH   17,SoftDDS.FASTREPEATRELEASE
                        RCALL     SoftDDS.FASTREPEATRELEASE
                        .ENDBLOCK 906
SoftDDS.L0218:
SoftDDS.L0219:
                        .LINE     908
                        LDS       _ACCA, SoftDDS.Modified
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0254
                        BRNE      SoftDDS.L0254
                        .BRANCH   20,SoftDDS.L0252
                        RJMP      SoftDDS.L0252
SoftDDS.L0254:
                        .BLOCK    908
                        .LINE     910
                        LDS       _ACCA, SoftDDS.PresetOn
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0257
                        BRNE      SoftDDS.L0257
                        .BRANCH   20,SoftDDS.L0255
                        RJMP      SoftDDS.L0255
SoftDDS.L0257:
                        .BLOCK    910
                        .LINE     911
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYTOEE
                        RCALL     SoftDDS.PATCHCOPYTOEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 912
SoftDDS.L0255:
SoftDDS.L0256:
                        .ENDBLOCK 913
SoftDDS.L0252:
SoftDDS.L0253:
                        .LINE     914
                        .BRANCH   17,SoftDDS.MP3CHECKREPEAT
                        RCALL     SoftDDS.MP3CHECKREPEAT
                        .LINE     915
                        .BRANCH   17,SoftDDS.SETUPMP3
                        RCALL     SoftDDS.SETUPMP3
                        .LINE     916
                        LDS       _ACCA, SoftDDS.MP3ison
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0260
                        BRNE      SoftDDS.L0260
                        .BRANCH   20,SoftDDS.L0258
                        RJMP      SoftDDS.L0258
SoftDDS.L0260:
                        .BLOCK    916
                        .LINE     917
                        .BRANCH   17,SoftDDS.MINIDDS
                        RCALL     SoftDDS.MINIDDS
                        .ENDBLOCK 918
SoftDDS.L0258:
SoftDDS.L0259:
                        .ENDBLOCK 919
                        .LINE     919
SoftDDS.L0216:
                        .BRANCH   17,SoftDDS.NAVIBUTTON
                        RCALL      SoftDDS.NAVIBUTTON
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0261
                        BRNE      SoftDDS.L0261
                        .BRANCH   20,SoftDDS.L0215
                        RJMP      SoftDDS.L0215
SoftDDS.L0261:
SoftDDS.L0217:
                        .LINE     921
                        LDS       _ACCB, 00066h
                        CLR       _ACCA
                        SBRC      _ACCB, 004h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0264
                        BRNE      SoftDDS.L0264
                        .BRANCH   20,SoftDDS.L0262
                        RJMP      SoftDDS.L0262
SoftDDS.L0264:
                        .BLOCK    921
                        .LINE     922
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 008h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0265
                        SER       _ACCA
SoftDDS.L0265:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0268
                        BRNE      SoftDDS.L0268
                        .BRANCH   20,SoftDDS.L0266
                        RJMP      SoftDDS.L0266
SoftDDS.L0268:
                        .BLOCK    922
                        .LINE     923
                        LDS       _ACCA, SoftDDS.MP3isOn
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0271
                        BRNE      SoftDDS.L0271
                        .BRANCH   20,SoftDDS.L0269
                        RJMP      SoftDDS.L0269
SoftDDS.L0271:
                        .BLOCK    923
                        .LINE     924
                        LDI       _ACCA, 007h
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .ENDBLOCK 925
SoftDDS.L0269:
SoftDDS.L0270:
                        .ENDBLOCK 926
                        .BRANCH   20,SoftDDS.L0267
                        RJMP      SoftDDS.L0267
SoftDDS.L0266:
                        .BLOCK    926
                        .LINE     927
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 0
                        BREQ      SoftDDS.L0272
                        DEC       _ACCA
SoftDDS.L0272:
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .ENDBLOCK 928
SoftDDS.L0267:
                        .ENDBLOCK 929
SoftDDS.L0262:
SoftDDS.L0263:
                        .LINE     930
                        LDS       _ACCB, 00066h
                        CLR       _ACCA
                        SBRC      _ACCB, 005h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0275
                        BRNE      SoftDDS.L0275
                        .BRANCH   20,SoftDDS.L0273
                        RJMP      SoftDDS.L0273
SoftDDS.L0275:
                        .BLOCK    930
                        .LINE     931
                        LDS       _ACCA, SoftDDS.EditWhich
                        INC       _ACCA
                        CPI       _ACCA, 16
                        BRCS      SoftDDS.L0276
                        CLR       _ACCA
SoftDDS.L0276:
                        STS       SoftDDS.EditWhich, _ACCA
                        .LINE     932
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 00Bh
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0277
                        BRLO      SoftDDS.L0277
                        SER       _ACCA
SoftDDS.L0277:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0280
                        BRNE      SoftDDS.L0280
                        .BRANCH   20,SoftDDS.L0278
                        RJMP      SoftDDS.L0278
SoftDDS.L0280:
                        .BLOCK    932
                        .LINE     933
                        LDI       _ACCA, 00Bh
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .ENDBLOCK 934
SoftDDS.L0278:
SoftDDS.L0279:
                        .ENDBLOCK 935
SoftDDS.L0273:
SoftDDS.L0274:
                        .LINE     936
                        LDS       _ACCB, 00066h
                        CLR       _ACCA
                        SBRC      _ACCB, 007h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0283
                        BRNE      SoftDDS.L0283
                        .BRANCH   20,SoftDDS.L0281
                        RJMP      SoftDDS.L0281
SoftDDS.L0283:
                        .BLOCK    936
                        .LINE     937
                        LDS       _ACCA, SoftDDS.PresetOn
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0286
                        BRNE      SoftDDS.L0286
                        .BRANCH   20,SoftDDS.L0284
                        RJMP      SoftDDS.L0284
SoftDDS.L0286:
                        .BLOCK    937
                        .LINE     938
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PRESETON, _ACCA
                        .LINE     939
                        CBI       00035h, 007h
                        .LINE     940
                        .BRANCH   17,SoftDDS.PRESETSAVE
                        RCALL     SoftDDS.PRESETSAVE
                        .LINE     941
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.PATCHCOPYFROMEE
                        RCALL     SoftDDS.PATCHCOPYFROMEE
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     942
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PRESETNUM, _ACCA
                        .ENDBLOCK 943
                        .BRANCH   20,SoftDDS.L0285
                        RJMP      SoftDDS.L0285
SoftDDS.L0284:
                        .BLOCK    943
                        .LINE     944
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.PRESETON, _ACCA
                        .LINE     945
                        SBI       00035h, 007h
                        .LINE     946
                        .BRANCH   17,SoftDDS.PRESETRESTORE
                        RCALL     SoftDDS.PRESETRESTORE
                        .ENDBLOCK 947
SoftDDS.L0285:
                        .LINE     948
                        .BRANCH   17,SoftDDS.MP3OFF
                        RCALL     SoftDDS.MP3OFF
                        .ENDBLOCK 949
SoftDDS.L0281:
SoftDDS.L0282:
                        .ENDBLOCK 950
                        .LINE     950
                        .BRANCH   20,SoftDDS.L0189
                        RJMP      SoftDDS.L0189
SoftDDS.L0190:
                        .ENDBLOCK 951

SoftDDS.$_MAINEX:
                        .LINE     951
                        .BRANCH   20,SoftDDS.$_MAINEX
                        RJMP      SoftDDS.$_MAINEX


                        .ENDFUNC  951

SYSTEM.$Main_stk        .EQU    000B6h          ; var iData  Process stack area
SYSTEM.$Main_stk_e      .EQU    00135h          ; var iData  Process stack area
SYSTEM.$Main_Frame      .EQU    00136h          ; var iData  Process stack area
SYSTEM.$Main_Frame_e    .EQU    00195h          ; var iData  Process stack area

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Initialisation and Library Routines
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .ENTRY
SYSTEM.RESET:
                        CLI
                        ; >> Stack Init [main process only] <<
                        LDI       _ACCA, 001h
                        LDI       _ACCB, 035h
                        OUT       sph, _ACCA
                        OUT       spl, _ACCB

; one Peripheral sram-waits
                        IN        _ACCA, mcucr
                        SBR       _ACCA, 040h
                        OUT       mcucr, _ACCA

                        ; >> 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.L0287:
                        SBIW      _ACCCLO, 001h
                        BREQ      SYSTEM.L0289
SYSTEM.L0288:
                        ST        X+, _ACCA
                        RJMP      SYSTEM.L0287
SYSTEM.L0289:
                        LDI       _ACCBLO, 00060h AND 0FFh
                        LDI       _ACCBHI, 00060h SHRB 8
                        LDI       _ACCCLO, 00200h AND 0FFh
                        LDI       _ACCCHI, 00200h SHRB 8
                        ADIW      _ACCCLO, 1
SYSTEM.L0290:
                        SBIW      _ACCCLO, 001h
                        BREQ      SYSTEM.L0292
SYSTEM.L0291:
                        ST        X+, _ACCA
                        RJMP      SYSTEM.L0290
SYSTEM.L0292:
                        LDI       _FRAMEPTR, 00195h AND 0FFh
                        LDI       _FPTRHI, 00195h 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, 002h
                        OUT       timsk, _ACCA

                        ; >> LCD Init <<
                        CLI
                        IN        _ACCA, 035h
                        ANDI      _ACCA, 080h
                        OUT       035h, _ACCA
                        IN        _ACCA, 034h
                        ORI       _ACCA, 07Fh
                        OUT       034h, _ACCA
                        LDI       _ACCA, 03h
                        OUT       035h, _ACCA
                        LDI       _ACCB, 16
                        CLR       _ACCA
                        RCALL     SYSTEM.MDELAY
                        IN        _ACCA, 035h
                        ORI       _ACCA, 10h
                        OUT       035h, _ACCA
                        NOP
                        NOP
                        NOP
                        IN        _ACCA, 035h
                        ANDI      _ACCA, 0EFh
                        OUT       035h, _ACCA
                        LDI       _ACCB, 5
                        CLR       _ACCA
                        RCALL     SYSTEM.MDELAY
                        IN        _ACCA, 035h
                        ORI       _ACCA, 10h
                        OUT       035h, _ACCA
                        NOP
                        NOP
                        NOP
                        IN        _ACCA, 035h
                        ANDI      _ACCA, 0EFh
                        OUT       035h, _ACCA
                        LDI       _ACCB, 1
                        CLR       _ACCA
                        RCALL     SYSTEM.MDELAY
                        IN        _ACCA, 035h
                        ORI       _ACCA, 10h
                        OUT       035h, _ACCA
                        NOP
                        NOP
                        NOP
                        IN        _ACCA, 035h
                        ANDI      _ACCA, 0EFh
                        OUT       035h, _ACCA
                        LDI       _ACCA, 2
                        OUT       035h, _ACCA
                        LDI       _ACCB, 1
                        CLR       _ACCA
                        RCALL     SYSTEM.MDELAY
                        IN        _ACCA, 035h
                        ORI       _ACCA, 10h
                        OUT       035h, _ACCA
                        NOP
                        NOP
                        NOP
                        IN        _ACCA, 035h
                        ANDI      _ACCA, 0EFh
                        OUT       035h, _ACCA
                        LDI       _ACCB, 1
                        CLR       _ACCA
                        RCALL     SYSTEM.MDELAY
                        IN        _ACCA, 035h
                        ORI       _ACCA, 10h
                        OUT       035h, _ACCA
                        NOP
                        NOP
                        NOP
                        IN        _ACCA, 035h
                        ANDI      _ACCA, 0EFh
                        OUT       035h, _ACCA
                        LDI       _ACCA, 8
                        OUT       035h, _ACCA
                        LDI       _ACCB, 1
                        CLR       _ACCA
                        RCALL     SYSTEM.MDELAY
                        IN        _ACCA, 035h
                        ORI       _ACCA, 10h
                        OUT       035h, _ACCA
                        NOP
                        NOP
                        NOP
                        IN        _ACCA, 035h
                        ANDI      _ACCA, 0EFh
                        OUT       035h, _ACCA
                        LDI       _ACCA, 0Ch
                        RCALL     SYSTEM.LCDCTRL
                        LDI       _ACCA, 1
                        RCALL     SYSTEM.LCDCTRL
                        LDI       _ACCA, 6
                        RCALL     SYSTEM.LCDCTRL
                        SBRC      Flags, IntFlag
                        SEI

                        CLR       Flags
                        CLR       Flags2

                        ; ============ Start User Main Program ============

                        .DEB      MAINENTRY
                        RJMP      SoftDDS.$_Main

                        ; ============ Interrupt Service ============

SYSTEM.$INTERRUPT_TIMER0:
                        .DEB      SYSTICKENTRY
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        PUSH      _ACCB
                        PUSH      _ACCA
                        IN        _ACCA, SREG
                        PUSH      _ACCA
                        LDS       _ACCA, SysTickTime
                        IN        _ACCB, tcnt0
                        ADD       _ACCA, _ACCB
                        OUT       tcnt0, _ACCA
                        LDI       _ACCA, 0FEH ROLB IntFlag
                        AND       Flags, _ACCA
                        RCALL     SoftDDS.onSysTick
                        LDS       _ACCCLO, SoftDDS.MP3repeatTimer
                        LDS       _ACCCHI, SoftDDS.MP3repeatTimer+1
                        TST       _ACCCHI
                        BRNE      SYSTEM.L0295
                        TST       _ACCCLO
                        BREQ      SYSTEM.L0296
SYSTEM.L0295:
                        SBIW      _ACCCLO, 1
                        STS       SoftDDS.MP3repeatTimer, _ACCCLO
                        STS       SoftDDS.MP3repeatTimer+1, _ACCCHI
                        RJMP      SYSTEM.L0297
SYSTEM.L0296:
                        MOV       _ACCA, _SYSTFLAGS
                        ANDI      _ACCA, 0FEh
                        MOV       _SYSTFLAGS, _ACCA
SYSTEM.L0297:
                        LDS       _ACCA, SoftDDS.BurstTimer
                        TST       _ACCA
                        BREQ      SYSTEM.L0298
                        SUBI      _ACCA, 1
                        STS       SoftDDS.BurstTimer, _ACCA
SYSTEM.L0298:
                        LDI       _ACCA, 1 SHLB IntFlag
                        OR        Flags, _ACCA
                        POP       _ACCA
                        OUT       SREG, _ACCA
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        .DEB      SYSTICKEXIT
                        RETI


                        ; ============ Library ============

                        .DEB      LCDOUT
SYSTEM.LCDOUT:
                        PUSH      _ACCA
                        RCALL     SYSTEM.LCDWAIT
                        IN        _ACCA, 034h
                        ORI       _ACCA, 07Fh
                        OUT       034h, _ACCA
                        IN        _ACCA, 035h
                        ANDI      _ACCA, 0EFh
                        ANDI      _ACCA, 090h
                        ORI       _ACCA, 020h
                        OUT       035h, _ACCA
                        RJMP      SYSTEM.LCDOUTX
                        .DEB      LCDCTRL
SYSTEM.LCDCTRL:
                        PUSH      _ACCA
                        RCALL     SYSTEM.LCDWAIT
                        IN        _ACCA, 034h
                        ORI       _ACCA, 07Fh
                        OUT       034h, _ACCA
                        IN        _ACCA, 035h
                        ANDI      _ACCA, 0EFh
                        ANDI      _ACCA, 090h
                        OUT       035h, _ACCA
SYSTEM.LCDOUTX:
                        POP       _ACCA
                        PUSH      _ACCA
                        SWAP      _ACCA
                        ANDI      _ACCA, 0Fh
                        IN        _ACCB, 035h
                        OR        _ACCB, _ACCA
                        OUT       035h, _ACCB
                        POP       _ACCA
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        ORI       _ACCB, 10h
                        OUT       035h, _ACCB
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        IN        _ACCB, 035h
                        ANDI      _ACCB, 0EFh
                        OUT       035h, _ACCB
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        ANDI      _ACCA, 0Fh
                        IN        _ACCB, 035h
                        ANDI      _ACCB, 0F0h
                        OR        _ACCB, _ACCA
                        OUT       035h, _ACCB
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        ORI       _ACCB, 10h
                        OUT       035h, _ACCB
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        IN        _ACCA, 035h
                        ANDI      _ACCA, 0EFh
                        OUT       035h, _ACCA
                        RET

SYSTEM._LCDrol:
                        TST       _ACCAHI
                        BREQ       SYSTEM.L0300
                        CLC
SYSTEM.L0299:
                        ROL       _ACCA
                        DEC       _ACCAHI
                        BRNE       SYSTEM.L0299
SYSTEM.L0300:
                        RET

SYSTEM.LCDINP:
                        RCALL     SYSTEM.LCDWAIT
                        IN        _ACCA, 034h
                        ANDI      _ACCA, 0F0h
                        OUT       034h, _ACCA
                        IN        _ACCA, 035h
                        ANDI      _ACCA, 0EFh
                        ANDI      _ACCA, 0F0h
                        ORI       _ACCA, 060h
                        OUT       035h, _ACCA
                        CLT
                        BLD       Flags, _WAITLCD
                        RJMP      SYSTEM.LCDINPX

SYSTEM._LCDror:
                        TST       _ACCAHI
                        BREQ       SYSTEM.L0302
                        CLC
SYSTEM.L0301:
                        ROR       _ACCA
                        DEC       _ACCAHI
                        BRNE       SYSTEM.L0301
SYSTEM.L0302:
                        RET

SYSTEM.LCDWAIT:
                        LDI       _ACCCLO, 00280h AND 0FFh
                        LDI       _ACCCHI, 00280h SHRB 8
                        SET
                        BLD       Flags, _WAITLCD
                        RJMP      SYSTEM.LCDSTAT1
SYSTEM.LCDSTAT:
                        CLT
                        BLD       Flags, _WAITLCD
SYSTEM.LCDSTAT1:
                        IN        _ACCA, 034h
                        ANDI      _ACCA, 0F0h
                        ORI       _ACCA, 030h
                        OUT       034h, _ACCA
                        IN        _ACCA, 035h
                        ANDI      _ACCA, 0EFh
                        ANDI      _ACCA, 09Fh
                        OUT       035h, _ACCA
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        ORI       _ACCA, 040h
                        OUT       035h, _ACCA
SYSTEM.LCDINPX:
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        IN        _ACCA, 035h
                        ORI       _ACCA, 10h
                        OUT       035h, _ACCA
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        IN        _ACCB, 033h
                        SWAP      _ACCB
                        ANDI      _ACCB, 0F0H
                        IN        _ACCA, 035h
                        ANDI      _ACCA, 0EFh
                        OUT       035h, _ACCA
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        IN        _ACCA, 035h
                        ORI       _ACCA, 10h
                        OUT       035h, _ACCA
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        NOP
                        IN        _ACCA, 033h
                        ANDI      _ACCA, 0FH
                        OR        _ACCA, _ACCB
                        IN        _ACCB, 035h
                        ANDI      _ACCB, 0EFh
                        ANDI      _ACCB, 0F0h
                        OUT       035h, _ACCB
                        BST       Flags, _WAITLCD
                        BRTS      SYSTEM.L0303
                        .DEB      LCDINP
                        RET
SYSTEM.L0303:
                        SBIW      _ACCCLO, 1
                        BREQ      SYSTEM.L0304
                        ROL       _ACCA
                        BRCC      SYSTEM.L0305
                        RJMP      SYSTEM.LCDINPX
SYSTEM.L0305:
                        RET
SYSTEM.L0304:
                        SER       _ACCA
                        RET

SYSTEM.LCDON:
                        LDI       _ACCA, 0FFh
                        LDI       _ACCB, 0FFh
                        RJMP      SYSTEM.L0306
SYSTEM.LCDCURSOR:
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCA
                        POP       _ACCB
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
SYSTEM.L0306:
                        TST       _ACCA
                        BRNE       SYSTEM.L0307
                        LDI       _ACCA, 0Ch
                        RJMP      SYSTEM.L0308

SYSTEM.L0307:
                        LDI       _ACCA, 0Dh
SYSTEM.L0308:
                        TST       _ACCB
                        BREQ       SYSTEM.L0309
                        ORI       _ACCA, 2
SYSTEM.L0309:
                        RCALL     SYSTEM.LCDCTRL
                        RET

SYSTEM.LCDXY:
                        LDD       _ACCA, Y+000h
                        LDD       _ACCB, Y+001h
                        CPI       _ACCA, 0
                        BRNE       SYSTEM.L0310
                        LDI       _ACCA, 080h
                        RJMP      SYSTEM.L0314

SYSTEM.L0310:
                        CPI       _ACCA, 1
                        BRNE       SYSTEM.L0311
                        LDI       _ACCA, 0C0h
                        RJMP      SYSTEM.L0314

SYSTEM.L0311:
                        CPI       _ACCA, 2
                        BRNE       SYSTEM.L0312
                        LDI       _ACCA, 090h
                        RJMP      SYSTEM.L0314

SYSTEM.L0312:
                        CPI       _ACCA, 3
                        BRNE       SYSTEM.L0313
                        LDI       _ACCA, 0D0h
                        RJMP      SYSTEM.L0314

SYSTEM.L0313:
                        LDI       _ACCA, 080h
SYSTEM.L0314:
                        ADD       _ACCA, _ACCB
                        RCALL     SYSTEM.LCDCTRL
                        RET

SYSTEM.LCDCLR:
                        LDI       _ACCA, 01h
                        RCALL     SYSTEM.LCDCTRL
                        RET

SYSTEM.LCDCLREOL:
                        RCALL     SYSTEM.LCDWAIT
                        RCALL     SYSTEM.LCDSTAT
                        ORI       _ACCA, 80h
                        PUSH      _ACCA
                        ANDI      _ACCA, 0Fh
                        LDI       _ACCB, 010h
                        SUB       _ACCB, _ACCA
SYSTEM.L0315:
                        PUSH      _ACCB
                        LDI       _ACCA, 20h
                        RCALL     SYSTEM.LCDOUT
                        POP       _ACCB
                        DEC       _ACCB
                        BRNE       SYSTEM.L0315
                        POP       _ACCA
                        RCALL     SYSTEM.LCDCTRL
                        RET

SYSTEM.LCDCLRLINE:
                        CPI       _ACCA, 0
                        BRNE       SYSTEM.L0322
                        LDI       _ACCA, 080h
                        RJMP      SYSTEM.L0326

SYSTEM.L0322:
                        CPI       _ACCA, 1
                        BRNE       SYSTEM.L0323
                        LDI       _ACCA, 0C0h
                        RJMP      SYSTEM.L0326

SYSTEM.L0323:
                        CPI       _ACCA, 2
                        BRNE       SYSTEM.L0324
                        LDI       _ACCA, 090h
                        RJMP      SYSTEM.L0326

SYSTEM.L0324:
                        CPI       _ACCA, 3
                        BRNE       SYSTEM.L0325
                        LDI       _ACCA, 0D0h
                        RJMP      SYSTEM.L0326

SYSTEM.L0325:
                        RET
SYSTEM.L0326:
                        PUSH      _ACCA
                        RCALL     SYSTEM.LCDCTRL
                        LDI       _ACCA, 010h
SYSTEM.L0327:
                        PUSH      _ACCA
                        LDI       _ACCA, 20h
                        RCALL     SYSTEM.LCDOUT
                        POP       _ACCA
                        DEC       _ACCA
                        BRNE       SYSTEM.L0327
                        POP       _ACCA
                        RCALL     SYSTEM.LCDCTRL
                        RET

SYSTEM.LCDHOME:
                        LDI       _ACCA, 02h
                        RCALL     SYSTEM.LCDCTRL
                        RET

SYSTEM.LCDCHARSET:
                        LDD       _ACCA, Y+008h
                        ANDI      _ACCA, 0Fh
                        LSL       _ACCA
                        LSL       _ACCA
                        LSL       _ACCA
                        ORI       _ACCA, 40h
                        RCALL     SYSTEM.LCDCTRL
                        LDD       _ACCA, Y+007h
                        RCALL     SYSTEM.LCDOUT
                        LDD       _ACCA, Y+006h
                        RCALL     SYSTEM.LCDOUT
                        LDD       _ACCA, Y+005h
                        RCALL     SYSTEM.LCDOUT
                        LDD       _ACCA, Y+004h
                        RCALL     SYSTEM.LCDOUT
                        LDD       _ACCA, Y+003h
                        RCALL     SYSTEM.LCDOUT
                        LDD       _ACCA, Y+002h
                        RCALL     SYSTEM.LCDOUT
                        LDD       _ACCA, Y+001h
                        RCALL     SYSTEM.LCDOUT
                        LDD       _ACCA, Y+000h
                        RCALL     SYSTEM.LCDOUT
                        LDI       _ACCA, 80h
                        RCALL     SYSTEM.LCDCTRL
                        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.L0331:
                        SUBI      _ACCALO, 001h
                        SBCI      _ACCAHI, 000h
                        BRCS      SYSTEM.L0332
                        LD        _ACCA, Z+
                        ST        X+, _ACCA
                        RJMP      SYSTEM.L0331
SYSTEM.L0332:
                        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.L0333
                        OUT       eedr, _ACCA
                        SBI       eecr, 2
                        SBI       eecr, 1
SYSTEM.L0333:
                        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.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.L0334
                        LSR       _ACCFLO
                        BRNE      SYSTEM.L0336
                        PUSH      _ACCA
                        RCALL     SYSTEM.ReadEEp8
                        MOV       _ACCAHI, _ACCA
                        POP       _ACCA
                        ADIW      _ACCCLO, 01h
                        RJMP      SYSTEM.L0335
SYSTEM.L0336:
                        LPM       _ACCAHI, Z+
                        RJMP      SYSTEM.L0335
SYSTEM.L0334:
                        LD        _ACCAHI, Z+
SYSTEM.L0335:
                        TST       _ACCAHI
                        BREQ      SYSTEM.L0343
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM.L0338
SYSTEM.L0338:
                        LD        _ACCALO, X
SYSTEM.L0340:
                        CP        _ACCB, _ACCA
                        BRCC      SYSTEM.L0342
SYSTEM.L0343:
                        RET
SYSTEM.L0342:
                        MOV       _ACCDLO, _ACCB
                        SUB       _ACCDLO, _ACCA
                        MOV       _ACCDHI, _ACCDLO
                        SUB       _ACCDLO, _ACCAHI
                        BRCS      SYSTEM.L0348
                        CP        _ACCALO, _ACCA
                        BRCC      SYSTEM.L0345
                        MOV       _ACCELO, _ACCAHI
                        ADD       _ACCELO, _ACCALO
                        CP        _ACCB, _ACCELO
                        BRCS      SYSTEM.L0344
                        MOV       _ACCB, _ACCELO
SYSTEM.L0344:
                        RJMP      SYSTEM.L0348
SYSTEM.L0345:
                        PUSH      _ACCBLO
                        PUSH      _ACCBHI
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        MOV       _ACCDHI, _ACCALO
                        SUB       _ACCDHI, _ACCA
                        CP        _ACCDHI, _ACCDLO
                        BRCC      SYSTEM.L0346
                        MOV       _ACCDLO, _ACCDHI
SYSTEM.L0346:
                        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.L0347
SYSTEM.L0347:
                        LD        _ACCGLO, -X
                        ST        -Z, _ACCGLO
                        DEC       _ACCDHI
                        BRNE     SYSTEM.L0347
SYSTEM.L0341:
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCBHI
                        POP       _ACCBLO
                        MOV       _ACCB, _ACCA
                        ADD       _ACCB, _ACCAHI
                        ADD       _ACCB, _ACCDLO
                        BRNE     SYSTEM.L0352
SYSTEM.L0348:
                        ADD       _ACCAHI, _ACCDLO
                        INC       _ACCAHI
SYSTEM.L0352:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM.L0355
SYSTEM.L0355:
                        ST        X, _ACCB
SYSTEM.L0354:
                        CLR       _ACCALO
                        ADD       _ACCBLO, _ACCA
                        ADC       _ACCBHI, _ACCALO
SYSTEM.L0353:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 3
                        TST       _ACCFLO
                        BREQ      SYSTEM.L0356
                        LSR       _ACCFLO
                        BRNE      SYSTEM.L0358
                        RCALL     SYSTEM.ReadEEp8
                        MOV       _ACCGLO, _ACCA
                        ADIW      _ACCCLO, 01h
                        RJMP      SYSTEM.L0357
SYSTEM.L0358:
                        LPM       _ACCGLO, Z+
                        RJMP      SYSTEM.L0357
SYSTEM.L0356:
                        LD        _ACCGLO, Z+
SYSTEM.L0357:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM.L0359
SYSTEM.L0359:
                        ST        X+, _ACCGLO
SYSTEM.L0360:
                        DEC       _ACCAHI
                        BRNE     SYSTEM.L0353
SYSTEM.L0351:
                        RET


SYSTEM._ArrToStr:
                        MOV       _ACCBHI, _ACCA
SYSTEM.L0361:
                        LD        _ACCA, Z+
                        TST       _ACCA
                        BREQ      SYSTEM.L0362
                        RCALL     SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM.L0361
SYSTEM.L0362:
                        RET


SYSTEM.StrConst2Str:
SYSTEM.L0363:
                        LPM      _ACCA, Z+
                        RCALL     SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM.L0363
                        RET


SYSTEM.StrVar2Str:
                        LD        _ACCA, Z+
                        TST       _ACCA
                        BREQ      SYSTEM.L0365
                        MOV       _ACCBHI, _ACCA
SYSTEM.L0364:
                        LD        _ACCA, Z+
                        RCALL     SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM.L0364
SYSTEM.L0365:
                        RET


SYSTEM.Byte2Str_X:
                        LD        _ACCB, X+
SYSTEM.L0366:
                        LD        _ACCA, X+
                        RCALL     SYSTEM.Char2Str
                        DEC       _ACCAHI
                        BRNE      SYSTEM.L0367
                        LDI       _ACCA, DECIMALSEP
                        RCALL     SYSTEM.Char2Str
SYSTEM.L0367:
                        DEC       _ACCB
                        BRNE      SYSTEM.L0366
                        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.L0368
                        TST       _ACCA
                        BREQ      SYSTEM.L0369
SYSTEM.L0368:
                        INC       _ACCCLO
                        STD       Y+0, _ACCCLO
                        CLR       _ACCCHI
                        ADD       _ACCCLO, _FRAMEPTR
                        ADC       _ACCCHI, _FPTRHI
                        ORI       _ACCA, 030h
                        STD       Z+0, _ACCA
SYSTEM.L0369:
                        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.L0370
                        SBRC      _ACCA, 7
                        BLD       Flags, _NEGATIVE
SYSTEM.L0370:
                        LDI       _ACCELO, 4
SYSTEM.L0371:
                        LPM       _ACCALO, Z+
                        LPM       _ACCAHI, Z+
                        ADIW      _ACCCLO, 02h
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        RCALL     SYSTEM.DIV16_R
                        MOVW      _ACCBLO, _ACCCLO
                        MOV       _ACCA, _ACCB
                        TST       _ACCA
                        BRPL      SYSTEM.L0372
                        NEG       _ACCA
SYSTEM.L0372:
                        RCALL     SYSTEM.Byte2Str_P
                        POP       _ACCCHI
                        POP       _ACCCLO
                        DEC       _ACCELO
                        BRNE      SYSTEM.L0371
                        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.L0373
                        INC       _ACCB
                        STD       Y+0, _ACCB
                        LDI       _ACCA, 30h
                        STD       Y+1, _ACCA
SYSTEM.L0373:
                        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.L0375
                        MOV       _ACCAHI, _ACCDLO
                        SUB       _ACCAHI, _ACCALO
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0374
                        LDI       _ACCA, 2Dh
                        RCALL     SYSTEM.Char2Str
SYSTEM.L0374:
                        RJMP      SYSTEM.Byte2Str_X
SYSTEM.L0375:
                        MOV       _ACCB, _ACCDLO
                        CP        _ACCALO, _ACCDLO
                        BRLT      SYSTEM.L0376
                        MOV       _ACCB, _ACCALO
                        INC       _ACCB
SYSTEM.L0376:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0382
                        DEC       _ACCAHI
SYSTEM.L0382:
                        MOV       _ACCA, _ACCDHI
                        SUB       _ACCB, _ACCAHI
                        NEG       _ACCB
                        BREQ      SYSTEM.L0378
                        BRMI      SYSTEM.L0378
SYSTEM.L0377:
                        RCALL     SYSTEM.Char2Str
                        DEC       _ACCAHI
                        DEC       _ACCB
                        BRNE      SYSTEM.L0377
SYSTEM.L0378:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0381
                        LDI       _ACCA, 2Dh
                        RCALL     SYSTEM.Char2Str
SYSTEM.L0381:
                        SUB       _ACCAHI, _ACCALO
                        CP        _ACCALO, _ACCDLO
                        BRCS      SYSTEM.L0380
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM.Char2Str
                        LDI       _ACCA, DECIMALSEP
                        RCALL     SYSTEM.Char2Str
                        CLR       _ACCAHI
                        SUB       _ACCALO, _ACCDLO
                        BREQ      SYSTEM.L0380
SYSTEM.L0379:
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM.Char2Str
                        DEC       _ACCALO
                        BRNE      SYSTEM.L0379
SYSTEM.L0380:
                        RJMP      SYSTEM.Byte2Str_X
SYSTEM.Int2Str_A:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0383
                        DEC       _ACCAHI
                        BRMI      SYSTEM.L0385
SYSTEM.L0383:
                        LD        _ACCB, X
                        SUB       _ACCAHI, _ACCB
                        BREQ      SYSTEM.L0385
                        BRCS      SYSTEM.L0385
                        MOV       _ACCA, _ACCDHI
SYSTEM.L0384:
                        RCALL     SYSTEM.Char2Str
                        DEC       _ACCAHI
                        BRNE      SYSTEM.L0384
SYSTEM.L0385:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0386
                        LDI       _ACCA, 2Dh
                        RCALL     SYSTEM.Char2Str
SYSTEM.L0386:
                        RJMP      SYSTEM.Byte2Str_X

SYSTEM.Char2Str:
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        BST       Flags, _DEVICE
                        BRTS      SYSTEM.L0390
                        PUSH      _ACCA
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LDD       _ACCA, Y+000h
                        TST       _ACCA
                        BRNE      SYSTEM.L0387
                        POP       _ACCA
                        SET
                        BLD       Flags, _ERRFLAG
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RET
SYSTEM.L0387:
                        DEC       _ACCA
                        STD       Y+000h, _ACCA
                        POP       _ACCA
                        BST       Flags, _EEPROM
                        BRTS      SYSTEM.L0388
                        ST        Z+, _ACCA
                        RJMP      SYSTEM.L0389
SYSTEM.L0388:
                        RCALL     SYSTEM.WriteEEp8
                        ADIW      _ACCCLO, 01h
SYSTEM.L0389:
                        STD       Y+002h, _ACCCHI
                        STD       Y+001h, _ACCCLO
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RET
SYSTEM.L0390:
                        LDD       _ACCCLO, Y+000h
                        LDD       _ACCCHI, Y+001h
                        PUSH      _ACCA
                        PUSH      _ACCB
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
                        PUSH      _ACCBLO
                        PUSH      _ACCBHI
                        PUSH      _ACCELO
                        PUSH      _ACCEHI
                        PUSH      _ACCDLO
                        PUSH      _ACCDHI
                        ICALL
                        POP       _ACCDHI
                        POP       _ACCDLO
                        POP       _ACCEHI
                        POP       _ACCELO
                        POP       _ACCBHI
                        POP       _ACCBLO
                        POP       _ACCAHI
                        POP       _ACCALO
                        POP       _ACCB
                        POP       _ACCA
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RET


SYSTEM.SHL8:
                        MOV       _ACCALO, _ACCA
                        POP       _ACCDHI
                        POP       _ACCDLO
                        POP       _ACCA
                        PUSH      _ACCDLO
                        PUSH      _ACCDHI
SYSTEM.SHL8_R:
                        TST       _ACCALO
                        BREQ      SYSTEM.L0392
                        CPI       _ACCALO, 08h
                        BRCS      SYSTEM.L0391
                        CLR       _ACCA
                        RET
SYSTEM.L0391:
                        LSL       _ACCA
                        DEC       _ACCALO
                        BRNE      SYSTEM.L0391
SYSTEM.L0392:
                        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.L0393:
                        ROL       _ACCA
                        DEC       _ACCALO
                        BRNE      SYSTEM.L0394
                        MOV       _ACCB, _ACCAHI
                        RET
SYSTEM.L0394:
                        ROL       _ACCAHI
                        SUB       _ACCAHI, _ACCB
                        BRCC      SYSTEM.L0395
                        ADD       _ACCAHI, _ACCB
                        CLC
                        RJMP      SYSTEM.L0393
SYSTEM.L0395:
                        SEC
                        RJMP      SYSTEM.L0393


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.L0397
                        MOV       _ACCDHI, _ACCBHI
                        MOV       _ACCDLO, _ACCAHI
                        EOR       _ACCDLO, _ACCBHI
                        CLT
                        SBRS      _ACCDLO, 7
                        BLD       Flags, _SIGN
                        SBRS      _ACCAHI, 7
                        RJMP      SYSTEM.L0399
                        NEG       _ACCALO
                        BRNE      SYSTEM.L0400
                        DEC       _ACCAHI
SYSTEM.L0400:
                        COM       _ACCAHI
SYSTEM.L0399:
                        SBRS      _ACCBHI, 7
                        RJMP      SYSTEM.L0397
                        NEG       _ACCBLO
                        BRNE      SYSTEM.L0401
                        DEC       _ACCBHI
SYSTEM.L0401:
                        COM       _ACCBHI
SYSTEM.L0397:
                        CLR       _ACCCLO
                        SUB       _ACCCHI, _ACCCHI
                        LDI       _ACCA, 17
SYSTEM.L0402:
                        ROL       _ACCBLO
                        ROL       _ACCBHI
                        DEC       _ACCA
                        BRNE      SYSTEM.L0403
                        MOVW      _ACCB, _ACCBLO
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.L0398
                        NEG       _ACCB
                        BRNE      SYSTEM.L0405
                        DEC       _ACCA
SYSTEM.L0405:
                        COM       _ACCA
SYSTEM.L0398:
                        RET
SYSTEM.L0403:
                        ROL       _ACCCLO
                        ROL       _ACCCHI
                        SUB       _ACCCLO, _ACCALO
                        SBC       _ACCCHI, _ACCAHI
                        BRCC      SYSTEM.L0404
                        ADD       _ACCCLO, _ACCALO
                        ADC       _ACCCHI, _ACCAHI
                        CLC
                        RJMP      SYSTEM.L0402
SYSTEM.L0404:
                        SEC
                        RJMP      SYSTEM.L0402


SYSTEM.MUL32:
                        MOVW      _ACCBLO, _ACCB
                        MOVW      _ACCCLO, _ACCALO
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCEHI
                        POP       _ACCELO
                        POP       _ACCDHI
                        POP       _ACCDLO
                        PUSH      _ACCB
                        PUSH      _ACCA
                        RJMP      SYSTEM.L0406
SYSTEM.MUL32_R:
                        MOVW      _ACCBLO, _ACCB
                        MOVW      _ACCCLO, _ACCALO
SYSTEM.L0406:
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.L0407
                        MOV       _ACCFLO, _ACCCHI
                        EOR       _ACCFLO, _ACCEHI
                        CLT
                        SBRS      _ACCFLO, 7
                        BLD       Flags, _SIGN
                        SBRS      _ACCCHI, 7
                        RJMP      SYSTEM.L0409
                        COM       _ACCBLO
                        COM       _ACCBHI
                        COM       _ACCCLO
                        COM       _ACCCHI
                        SUBI      _ACCBLO, 0FFh
                        SBCI      _ACCBHI, 0FFh
                        SBCI      _ACCCLO, 0FFh
                        SBCI      _ACCCHI, 0FFh
SYSTEM.L0409:
                        SBRS      _ACCEHI, 7
                        RJMP      SYSTEM.L0407
                        COM       _ACCDLO
                        COM       _ACCDHI
                        COM       _ACCELO
                        COM       _ACCEHI
                        SUBI      _ACCDLO, 0FFh
                        SBCI      _ACCDHI, 0FFh
                        SBCI      _ACCELO, 0FFh
                        SBCI      _ACCEHI, 0FFh
SYSTEM.L0407:
                        CLR       _ACCFHI
                        CLR       _ACCFLO
                        CLR       _ACCGHI
                        CLR       _ACCGLO
                        LDI       _ACCA, 32
                        LSR       _ACCEHI
                        ROR       _ACCELO
                        ROR       _ACCDHI
                        ROR       _ACCDLO
SYSTEM.L0411:
                        BRCC      SYSTEM.L0410
                        ADD       _ACCFLO, _ACCBLO
                        ADC       _ACCFHI, _ACCBHI
                        ADC       _ACCGLO, _ACCCLO
                        ADC       _ACCGHI, _ACCCHI
SYSTEM.L0410:
                        ROR       _ACCGHI
                        ROR       _ACCGLO
                        ROR       _ACCFHI
                        ROR       _ACCFLO
                        ROR       _ACCEHI
                        ROR       _ACCELO
                        ROR       _ACCDHI
                        ROR       _ACCDLO
                        DEC       _ACCA
                        BRNE      SYSTEM.L0411
                        MOVW      _ACCB, _ACCDLO
                        MOVW      _ACCALO, _ACCELO
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.L0408
                        SUBI      _ACCB, 01h
                        SBCI      _ACCA, 00h
                        SBCI      _ACCALO, 00h
                        SBCI      _ACCAHI, 00h
                        COM       _ACCALO
                        COM       _ACCAHI
                        COM       _ACCA
                        COM       _ACCB
SYSTEM.L0408:
                        RET


SYSTEM.SetSysTimer:
                        CLI
                        ST        Z+, _ACCB
                        ST        Z+, _ACCA
                        MOV       _ACCBLO, _SYSTFLAGS
                        TST       _ACCA
                        BRNE       SYSTEM.L0412
                        TST       _ACCB
                        BRNE       SYSTEM.L0412
                        COM       _ACCBHI
                        AND       _ACCBLO, _ACCBHI
                        MOV       _SYSTFLAGS, _ACCBLO
                        SBRC      Flags, IntFlag
                        SEI
                        RET
SYSTEM.L0412:
                        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     14
                        .ASCII    "miniDDS V#2.11"

                        .SYM      SoftDDS.Vers2Str
SoftDDS.Vers2Str:
                        .BYTE     14
                        .ASCII    "C. Meyer 03/06"

                        .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    "Swt"

                        .SYM      SoftDDS.EmptyStr
SoftDDS.EmptyStr:
                        .BYTE     3
                        .ASCII    "-*-"

                        .SYM      SoftDDS.PlayStr
SoftDDS.PlayStr:
                        .BYTE     11
                        .ASCII    "Play       "

                        .SYM      SoftDDS.WaitStr
SoftDDS.WaitStr:
                        .BYTE     7
                        .ASCII    "Wait..."

                        .SYM      SoftDDS.MemStr
SoftDDS.MemStr:
                        .BYTE     7
                        .ASCII    "Memory "

                        .SYM      SoftDDS.PresetStr
SoftDDS.PresetStr:
                        .BYTE     7
                        .ASCII    "Preset "

                        .SYM      SoftDDS.TerzStr
SoftDDS.TerzStr:
                        .BYTE     7
                        .ASCII    "TerzFr "

                        .SYM      SoftDDS.AudioStr
SoftDDS.AudioStr:
                        .BYTE     7
                        .ASCII    "Audio  "

                        .SYM      SoftDDS.FrequStr
SoftDDS.FrequStr:
                        .BYTE     16
                        .ASCII    "Frequency Hz    "

                        .SYM      SoftDDS.OptStr
SoftDDS.OptStr:
                        .BYTE     16
                        .ASCII    "Wav Rpt         "

$St_String21:
                        .BYTE     1
                        .ASCII    "."


                        ; ============ array-constant tables ============
                        .SYM      SoftDDS.fhz
SoftDDS.fhz:
                        .WORD     00000h
                        .WORD     000C0h
                        .WORD     03333h
                        .WORD     00013h
                        .WORD     0EB85h
                        .WORD     00001h
                        .WORD     03127h
                        .WORD     00000h
                        .WORD     004EAh
                        .WORD     00000h
                        .WORD     0007Eh
                        .WORD     00000h
                        .WORD     0000Dh
                        .WORD     00000h
                        .WORD     00001h
                        .WORD     00000h

                        .SYM      SoftDDS.fdhz
SoftDDS.fdhz:
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00001h
                        .WORD     00000h
                        .WORD     00002h
                        .WORD     00000h
                        .WORD     00003h
                        .WORD     00000h
                        .WORD     00005h
                        .WORD     00000h
                        .WORD     00006h
                        .WORD     00000h
                        .WORD     00007h
                        .WORD     00000h
                        .WORD     00008h
                        .WORD     00000h
                        .WORD     0000Ah
                        .WORD     00000h
                        .WORD     0000Ch
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h

                        .SYM      SoftDDS.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 ============
                        .ORG      01F00h
                        .CONST    1
SoftDDS.sinus:
                        .BYTE     080h
                        .BYTE     083h
                        .BYTE     086h
                        .BYTE     089h
                        .BYTE     08Ch
                        .BYTE     08Fh
                        .BYTE     092h
                        .BYTE     095h
                        .BYTE     098h
                        .BYTE     09Bh
                        .BYTE     09Eh
                        .BYTE     0A1h
                        .BYTE     0A4h
                        .BYTE     0A7h
                        .BYTE     0AAh
                        .BYTE     0ADh
                        .BYTE     0B0h
                        .BYTE     0B3h
                        .BYTE     0B6h
                        .BYTE     0B9h
                        .BYTE     0BCh
                        .BYTE     0BEh
                        .BYTE     0C1h
                        .BYTE     0C4h
                        .BYTE     0C6h
                        .BYTE     0C9h
                        .BYTE     0CBh
                        .BYTE     0CEh
                        .BYTE     0D0h
                        .BYTE     0D3h
                        .BYTE     0D5h
                        .BYTE     0D7h
                        .BYTE     0DAh
                        .BYTE     0DCh
                        .BYTE     0DEh
                        .BYTE     0E0h
                        .BYTE     0E2h
                        .BYTE     0E4h
                        .BYTE     0E6h
                        .BYTE     0E8h
                        .BYTE     0E9h
                        .BYTE     0EBh
                        .BYTE     0EDh
                        .BYTE     0EEh
                        .BYTE     0F0h
                        .BYTE     0F1h
                        .BYTE     0F3h
                        .BYTE     0F4h
                        .BYTE     0F5h
                        .BYTE     0F6h
                        .BYTE     0F7h
                        .BYTE     0F8h
                        .BYTE     0F9h
                        .BYTE     0FAh
                        .BYTE     0FBh
                        .BYTE     0FCh
                        .BYTE     0FCh
                        .BYTE     0FDh
                        .BYTE     0FDh
                        .BYTE     0FEh
                        .BYTE     0FEh
                        .BYTE     0FEh
                        .BYTE     0FFh
                        .BYTE     0FFh
                        .BYTE     0FFh
                        .BYTE     0FFh
                        .BYTE     0FFh
                        .BYTE     0FEh
                        .BYTE     0FEh
                        .BYTE     0FEh
                        .BYTE     0FDh
                        .BYTE     0FDh
                        .BYTE     0FCh
                        .BYTE     0FCh
                        .BYTE     0FBh
                        .BYTE     0FAh
                        .BYTE     0F9h
                        .BYTE     0F8h
                        .BYTE     0F7h
                        .BYTE     0F6h
                        .BYTE     0F5h
                        .BYTE     0F4h
                        .BYTE     0F3h
                        .BYTE     0F1h
                        .BYTE     0F0h
                        .BYTE     0EEh
                        .BYTE     0EDh
                        .BYTE     0EBh
                        .BYTE     0E9h
                        .BYTE     0E8h
                        .BYTE     0E6h
                        .BYTE     0E4h
                        .BYTE     0E2h
                        .BYTE     0E0h
                        .BYTE     0DEh
                        .BYTE     0DCh
                        .BYTE     0DAh
                        .BYTE     0D7h
                        .BYTE     0D5h
                        .BYTE     0D3h
                        .BYTE     0D0h
                        .BYTE     0CEh
                        .BYTE     0CBh
                        .BYTE     0C9h
                        .BYTE     0C6h
                        .BYTE     0C4h
                        .BYTE     0C1h
                        .BYTE     0BEh
                        .BYTE     0BCh
                        .BYTE     0B9h
                        .BYTE     0B6h
                        .BYTE     0B3h
                        .BYTE     0B0h
                        .BYTE     0ADh
                        .BYTE     0AAh
                        .BYTE     0A7h
                        .BYTE     0A4h
                        .BYTE     0A1h
                        .BYTE     09Eh
                        .BYTE     09Bh
                        .BYTE     098h
                        .BYTE     095h
                        .BYTE     092h
                        .BYTE     08Fh
                        .BYTE     08Ch
                        .BYTE     089h
                        .BYTE     086h
                        .BYTE     083h
                        .BYTE     080h
                        .BYTE     07Ch
                        .BYTE     079h
                        .BYTE     076h
                        .BYTE     073h
                        .BYTE     070h
                        .BYTE     06Dh
                        .BYTE     06Ah
                        .BYTE     067h
                        .BYTE     064h
                        .BYTE     061h
                        .BYTE     05Eh
                        .BYTE     05Bh
                        .BYTE     058h
                        .BYTE     055h
                        .BYTE     052h
                        .BYTE     04Fh
                        .BYTE     04Ch
                        .BYTE     049h
                        .BYTE     046h
                        .BYTE     043h
                        .BYTE     041h
                        .BYTE     03Eh
                        .BYTE     03Bh
                        .BYTE     039h
                        .BYTE     036h
                        .BYTE     034h
                        .BYTE     031h
                        .BYTE     02Fh
                        .BYTE     02Ch
                        .BYTE     02Ah
                        .BYTE     028h
                        .BYTE     025h
                        .BYTE     023h
                        .BYTE     021h
                        .BYTE     01Fh
                        .BYTE     01Dh
                        .BYTE     01Bh
                        .BYTE     019h
                        .BYTE     017h
                        .BYTE     016h
                        .BYTE     014h
                        .BYTE     012h
                        .BYTE     011h
                        .BYTE     00Fh
                        .BYTE     00Eh
                        .BYTE     00Ch
                        .BYTE     00Bh
                        .BYTE     00Ah
                        .BYTE     009h
                        .BYTE     008h
                        .BYTE     007h
                        .BYTE     006h
                        .BYTE     005h
                        .BYTE     004h
                        .BYTE     003h
                        .BYTE     003h
                        .BYTE     002h
                        .BYTE     002h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     001h
                        .BYTE     002h
                        .BYTE     002h
                        .BYTE     003h
                        .BYTE     003h
                        .BYTE     004h
                        .BYTE     005h
                        .BYTE     006h
                        .BYTE     007h
                        .BYTE     008h
                        .BYTE     009h
                        .BYTE     00Ah
                        .BYTE     00Bh
                        .BYTE     00Ch
                        .BYTE     00Eh
                        .BYTE     00Fh
                        .BYTE     011h
                        .BYTE     012h
                        .BYTE     014h
                        .BYTE     016h
                        .BYTE     017h
                        .BYTE     019h
                        .BYTE     01Bh
                        .BYTE     01Dh
                        .BYTE     01Fh
                        .BYTE     021h
                        .BYTE     023h
                        .BYTE     025h
                        .BYTE     028h
                        .BYTE     02Ah
                        .BYTE     02Ch
                        .BYTE     02Fh
                        .BYTE     031h
                        .BYTE     034h
                        .BYTE     036h
                        .BYTE     039h
                        .BYTE     03Bh
                        .BYTE     03Eh
                        .BYTE     041h
                        .BYTE     043h
                        .BYTE     046h
                        .BYTE     049h
                        .BYTE     04Ch
                        .BYTE     04Fh
                        .BYTE     052h
                        .BYTE     055h
                        .BYTE     058h
                        .BYTE     05Bh
                        .BYTE     05Eh
                        .BYTE     061h
                        .BYTE     064h
                        .BYTE     067h
                        .BYTE     06Ah
                        .BYTE     06Dh
                        .BYTE     070h
                        .BYTE     073h
                        .BYTE     076h
                        .BYTE     079h
                        .BYTE     07Ch


                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Reset and Interrupt vectors
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


                        .ENDCODE
                        .ORG       0, VECTTAB
                        .VECTTAB
SYSTEM.VectTab:
                        RJMP      SYSTEM.RESET
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.$INTERRUPT_TIMER0
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr
                        RJMP      SYSTEM.DefIntErr

                        .VECTTABE
SYSTEM.ENDPROG:

                        .END

                        ; ============ End of Program ============


                        ; System uses registers
                        ; from bottom     = 00000h
                        ; upto            = 00006h
                        ; and
                        ; from            = 00010h
                        ; upto            = 0001Fh
                        ;
                        ; Stackframe at   = ...00135h


                        ; ===== Current top of User Vars in Data is 0000Ch =====

                        ; ===== Current top of User Vars in IData is 00195h =====

                        ; ===== Current top of User Vars in EEprom is 00034h =====


                        ; ===== Imported Library Routines =====

                        ; Shift  left  byte SHL8
                        ; Divide       byte DIV8
                        ; Multiply     word MUL16
                        ; Divide       word DIV16
                        ; LongWord and LongInt types
                        ; Multiply     long MUL32
                        ; Convert int to string
                        ; EEprom read
                        ; EEprom write

                        ; Pascal Statements : 509
                        ; Assembler Lines   : 12914
                        ; Optimizer removed : 250 lines = 500Bytes

                        ; >> real SysTick (exact): 9.984 msec <<

;  Linker removed the following functions and procedures
;
;  Module/Unit             Function/Procedure
;  ------------------------------------------
;
