
                        .FILE     H:\PROJAVR\DDS-LM1972ADJ\DDS.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 : DDS.pas
                        ; Compiled    : 17. November 2005  18:55:52
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .MEDIUM
                        .ROMEND         03FFFh;

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Constants and Variables definition
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


                        ; === Internal used memory and constants ===

FALSE                   .EQU    000h            ; const 
TRUE                    .EQU    0FFh            ; const 
NIL                     .EQU    000h            ; const 
PI                      .EQU    000h            ; const 
COMPILERREV             .EQU    163h            ; const 
COMPILERBUILD_Y         .EQU    005h            ; const 
COMPILERBUILD_M         .EQU    009h            ; const 
COMPILERBUILD_D         .EQU    012h            ; const 
COMPILEYEAR             .EQU    005h            ; const 
COMPILEMONTH            .EQU    00Bh            ; const 
COMPILEDAY              .EQU    011h            ; const 
COMPILEHOUR             .EQU    012h            ; const 
COMPILEMINUTE           .EQU    037h            ; const 
PROJECTBUILD            .EQU    11Dh            ; const 
OPTIMISERREV            .EQU    000h            ; const 
OPTIMISERBUILD          .EQU    000h            ; const 
INTFLAG                 .EQU    007h            ; const 
_EEPROM                 .EQU    006h            ; const 
_SIGN                   .EQU    005h            ; const 
_WAITLCD                .EQU    004h            ; const 
_STRCONST               .EQU    004h            ; const 
_DEVICE                 .EQU    003h            ; const 
_NEGATIVE               .EQU    002h            ; const 
_ERRFLAG                .EQU    001h            ; const 
_I2C2BYTE               .EQU    000h            ; const 
_TOGGLE300              .EQU    000h            ; const 
_LCDLOWER               .EQU    001h            ; const 
_DSP7RFR                .EQU    002h            ; const 
_PWRSAVFLG              .EQU    003h            ; const 
_STEPCW                 .EQU    004h            ; const 
_STEPDEST               .EQU    005h            ; const 
_FREQCNTFLAG            .EQU    006h            ; const 
_AUTOACK                .EQU    007h            ; const 
_ACCGLO                 .EQU    000h            ; var Data   byte
_ACCGHI                 .EQU    001h            ; var Data   byte
_ACCHLO                 .EQU    002h            ; var Data   byte
_ACCHHI                 .EQU    003h            ; var Data   byte
_ACCB                   .EQU    010h            ; var Data   byte
_ACCA                   .EQU    011h            ; var Data   byte
_ACCALO                 .EQU    012h            ; var Data   byte
_ACCAHI                 .EQU    013h            ; var Data   byte
_ACCDLO                 .EQU    014h            ; var Data   byte
_ACCDHI                 .EQU    015h            ; var Data   byte
_ACCELO                 .EQU    016h            ; var Data   byte
_ACCEHI                 .EQU    017h            ; var Data   byte
_ACCFLO                 .EQU    018h            ; var Data   byte
_ACCFHI                 .EQU    019h            ; var Data   byte
_ACCBLO                 .EQU    01Ah            ; var Data   byte
_ACCBHI                 .EQU    01Bh            ; var Data   byte
_FRAMEPTR               .EQU    01Ch            ; var Data   byte
_FPTRHI                 .EQU    01Dh            ; var Data   byte
_ACCCLO                 .EQU    01Eh            ; var Data   byte
_ACCCHI                 .EQU    01Fh            ; var Data   byte
FLAGS                   .EQU    004h            ; var Data   byte
FLAGS2                  .EQU    005h            ; var Data   byte
_SYSTFLAGS              .EQU    006h            ; var Data   byte
SYSTICK                 .EQU    00Ah            ; const 
PROCCLOCK               .EQU    0F42400h        ; const 
DECIMALSEP              .EQU    02Eh            ; const 
ROMconstPage            .EQU    0FFFFFFFFh      ; const 
STACKSIZE               .EQU    080h            ; const 
FRAMESIZE               .EQU    060h            ; const 
UDR1                    .EQU    0C6h            ; var iData  byte
UBRR1H                  .EQU    0C5h            ; var iData  byte
UBRRH                   .EQU    0C5h            ; var iData  byte
UBRR1                   .EQU    0C4h            ; var iData  byte
UBRRL                   .EQU    0C4h            ; var iData  byte
UCSRC                   .EQU    0C2h            ; var iData  byte
UCSR0C                  .EQU    0C2h            ; var iData  byte
UCR1                    .EQU    0C1h            ; var iData  byte
UCSRB                   .EQU    0C1h            ; var iData  byte
USR1                    .EQU    0C0h            ; var iData  byte
UCSRA                   .EQU    0C0h            ; var iData  byte
TWAMR                   .EQU    0BDh            ; var iData  byte
TWCR                    .EQU    0BCh            ; var iData  byte
TWDR                    .EQU    0BBh            ; var iData  byte
TWAR                    .EQU    0BAh            ; var iData  byte
TWSR                    .EQU    0B9h            ; var iData  byte
TWBR                    .EQU    0B8h            ; var iData  byte
ASSR                    .EQU    0B6h            ; var iData  byte
OCR2B                   .EQU    0B4h            ; var iData  byte
OCR2A                   .EQU    0B3h            ; var iData  byte
OCR2                    .EQU    0B3h            ; var iData  byte
TCNT2                   .EQU    0B2h            ; var iData  byte
TCCR2B                  .EQU    0B1h            ; var iData  byte
TCCR2A                  .EQU    0B0h            ; var iData  byte
TCCR2                   .EQU    0B1h            ; var iData  byte
OCR1BH                  .EQU    08Bh            ; var iData  byte
OCR1BL                  .EQU    08Ah            ; var iData  byte
OCR1AH                  .EQU    089h            ; var iData  byte
OCR1AL                  .EQU    088h            ; var iData  byte
ICR1H                   .EQU    087h            ; var iData  byte
ICR1L                   .EQU    086h            ; var iData  byte
TCNT1H                  .EQU    085h            ; var iData  byte
TCNT1L                  .EQU    084h            ; var iData  byte
TCCR1C                  .EQU    082h            ; var iData  byte
TCCR1B                  .EQU    081h            ; var iData  byte
TCCR1A                  .EQU    080h            ; var iData  byte
DIDR1                   .EQU    07Fh            ; var iData  byte
DIDR0                   .EQU    07Eh            ; var iData  byte
ADMUX                   .EQU    07Ch            ; var iData  byte
ADCSR                   .EQU    07Ah            ; var iData  byte
ADCSRB                  .EQU    07Bh            ; var iData  byte
ADCSRA                  .EQU    07Ah            ; var iData  byte
ADCH                    .EQU    079h            ; var iData  byte
ADCL                    .EQU    078h            ; var iData  byte
TIMSK2                  .EQU    070h            ; var iData  byte
TIMSK1                  .EQU    06Fh            ; var iData  byte
TIMSK0                  .EQU    06Eh            ; var iData  byte
PCMSK2                  .EQU    06Dh            ; var iData  byte
PCMSK1                  .EQU    06Ch            ; var iData  byte
PCMSK0                  .EQU    06Bh            ; var iData  byte
EICRA                   .EQU    069h            ; var iData  byte
GICR                    .EQU    069h            ; var iData  byte
PCICR                   .EQU    068h            ; var iData  byte
OSCCAL                  .EQU    066h            ; var iData  byte
PRR                     .EQU    064h            ; var iData  byte
CLKPR                   .EQU    061h            ; var iData  byte
WDTCR                   .EQU    060h            ; var iData  byte
SREG                    .EQU    05Fh            ; var pData  byte
SPH                     .EQU    05Eh            ; var pData  byte
SPL                     .EQU    05Dh            ; var pData  byte
SPMCR                   .EQU    057h            ; var pData  byte
SPMCSR                  .EQU    057h            ; var pData  byte
MCUCR                   .EQU    055h            ; var pData  byte
MCUCSR                  .EQU    054h            ; var pData  byte
MCUSR                   .EQU    054h            ; var pData  byte
SMCR                    .EQU    053h            ; var pData  byte
MONDR                   .EQU    051h            ; var pData  byte
ACSR                    .EQU    050h            ; var pData  byte
SPDR                    .EQU    04Eh            ; var pData  byte
SPSR                    .EQU    04Dh            ; var pData  byte
SPCR                    .EQU    04Ch            ; var pData  byte
GPIOR2                  .EQU    04Bh            ; var pData  byte
GPIOR1                  .EQU    04Ah            ; var pData  byte
OCR0B                   .EQU    048h            ; var pData  byte
OCR0A                   .EQU    047h            ; var pData  byte
TCNT0                   .EQU    046h            ; var pData  byte
TCCR0B                  .EQU    045h            ; var pData  byte
TCCR0A                  .EQU    044h            ; var pData  byte
TCCR0                   .EQU    045h            ; var pData  byte
GTCCR                   .EQU    043h            ; var pData  byte
EEARH                   .EQU    042h            ; var pData  byte
EEARL                   .EQU    041h            ; var pData  byte
EEDR                    .EQU    040h            ; var pData  byte
EECR                    .EQU    03Fh            ; var pData  byte
GPIOR0                  .EQU    03Eh            ; var pData  byte
GIMSK                   .EQU    03Dh            ; var pData  byte
EIMSK                   .EQU    03Dh            ; var pData  byte
GIFR                    .EQU    03Ch            ; var pData  byte
EIFR                    .EQU    03Ch            ; var pData  byte
PCIFR                   .EQU    03Bh            ; var pData  byte
TIFR2                   .EQU    037h            ; var pData  byte
TIFR1                   .EQU    036h            ; var pData  byte
TIFR0                   .EQU    035h            ; var pData  byte
PORTD                   .EQU    02Bh            ; var pData  byte
DDRD                    .EQU    02Ah            ; var pData  byte
PIND                    .EQU    029h            ; var pData  byte
PORTC                   .EQU    028h            ; var pData  byte
DDRC                    .EQU    027h            ; var pData  byte
PINC                    .EQU    026h            ; var pData  byte
MASKC                   .EQU    07Fh            ; var iData  byte
PORTB                   .EQU    025h            ; var pData  byte
DDRB                    .EQU    024h            ; var pData  byte
PINB                    .EQU    023h            ; var pData  byte
OCR1B                   .EQU    08Ah            ; var iData  word
OCR1A                   .EQU    088h            ; var iData  word
ICR1                    .EQU    086h            ; var iData  word
TCNT1                   .EQU    084h            ; var iData  word
ADC                     .EQU    078h            ; var iData  word
EEAR                    .EQU    041h            ; var pData  word
_iDataStart             .EQU    100h            ; const 
_iDataEnd               .EQU    4FFh            ; const 
_EEpromStart            .EQU    000h            ; const 
_EEpromEnd              .EQU    1FFh            ; const 
_FlashStart             .EQU    000h            ; const 
_FlashEnd               .EQU    3FFFh           ; const 
LCD_m1                  .EQU    000h            ; const 
LCD_m2                  .EQU    001h            ; const 
LCD_m3                  .EQU    002h            ; const 
LCD_m4                  .EQU    003h            ; const 
LCD_m5                  .EQU    004h            ; const 
LCD_m6                  .EQU    005h            ; const 
LCD_m7                  .EQU    006h            ; const 
LCD_m8                  .EQU    007h            ; const 
_LCDM_PORT              .EQU    100h            ; var iData  byte
TWI_BR100               .EQU    048h            ; const 
TWI_BR400               .EQU    00Ch            ; const 
SysTickTime             .EQU    101h            ; var iData  byte
_INCRSTATE4             .EQU    102h            ; var iData  byte
_INCRCOUNT4_0           .EQU    103h            ; var iData  integer
_INCRCOUNT4_D0          .EQU    105h            ; var iData  integer
_TWI_TO                 .EQU    107h            ; var iData  byte
TWI_DevLock             .EQU    108h            ; var iData  DeviceLock
EEPROM                  .EQU    000h            ; var EEprom array



                        .RESET     000000h
                        .ORG       0, CODE_START
                        .STARTCODE 000068h


                        .XDATASTART -1


                        ; ============ user definitions module: SoftDDS ============

SoftDDS.c_sinw          .EQU    000h            ; const byte     0
SoftDDS.c_triw          .EQU    001h            ; const byte     1
SoftDDS.c_squw          .EQU    002h            ; const byte     2
SoftDDS.c_audio         .EQU    003h            ; const byte     3
SoftDDS.c_nrmo          .EQU    000h            ; const byte     0
SoftDDS.c_symo          .EQU    001h            ; const byte     1
SoftDDS.c_pwro          .EQU    002h            ; const byte     2
SoftDDS.m_lastmenu      .EQU    001h            ; const enum     1
SoftDDS.DDRBinit        .EQU    03Fh            ; const byte     63
SoftDDS.PortBinit       .EQU    0EFh            ; const byte     239
SoftDDS.DDRCinit        .EQU    00Ch            ; const byte     12
SoftDDS.PortCinit       .EQU    0FFh            ; const byte     255
SoftDDS.DDRDinit        .EQU    004h            ; const byte     4
SoftDDS.PortDinit       .EQU    0FCh            ; const byte     252
SoftDDS.BtnInPortReg    .EQU    029h            ; const byte     41
SoftDDS.LEDOutPort      .EQU    02Bh            ; const byte     43
SoftDDS.DDSOutPort      .EQU    025h            ; const byte     37
SoftDDS.b_SCLK          .EQU    000h            ; const byte     0
SoftDDS.b_SDATA         .EQU    001h            ; const byte     1
SoftDDS.b_FSYNC         .EQU    002h            ; const byte     2
SoftDDS.b_LOADPOT       .EQU    003h            ; const byte     3
SoftDDS.b_STROBE        .EQU    004h            ; const byte     4
SoftDDS.c_ddsresetcmd   .EQU    02100h          ; const integer  8448
SoftDDS.c_ddssinecmd    .EQU    02000h          ; const integer  8192
SoftDDS.c_ddstrianglecmd      .EQU              02002h      ; const integer  8194
SoftDDS.c_ddssquarecmd  .EQU    02028h          ; const integer  8232
;fhz                     .EQU    '$006'; const String
;fdhz                    .EQU    '$020'; const String

                        .FILE     dB775mV.txt

                        .FILE     H:\PROJAVR\DDS-LM1972ADJ\DDS.pas
;dBfac                   .EQU    '$000'; const String
;posx                    .EQU    '$004'; const String
;cursx                   .EQU    '$000'; const String
;posy                    .EQU    '$001'; const String
;Vers1Str                .EQU    'DDS9833 V#1.12'; const String
;Vers2Str                .EQU    'LM1972-ADJ/cm'; const String
;HzStr                   .EQU    ' Hz'; const String
;dBStr                   .EQU    ' dB'; const String
;StepStr                 .EQU    '# '; const String
;EmptyStr                .EQU    '**'; const String
;AdjustStr               .EQU    'Adjust '; const String
SoftDDS.high            .EQU    0FFh            ; const boolean  true
SoftDDS.low             .EQU    000h            ; const boolean  false
;TerzArray               .EQU    '$04E20'; const String
SoftDDS.EEPatchArray    .EQU    00000h          ; var EEprom array
                        .SYM      EEPatchArray, 00000h, 0403Dh, 3
SoftDDS.EEAdjArray      .EQU    00010h          ; var EEprom array
                        .SYM      EEAdjArray, 00010h, 0403Dh, 3
                        .SYM      i, 00007h, 0000Dh, 3
SoftDDS.i               .EQU    007h            ; var Data   byte
                        .SYM      k, 00008h, 0000Dh, 3
SoftDDS.k               .EQU    008h            ; var Data   byte
                        .SYM      dss_cmd, 00109h, 0000Eh, 3
SoftDDS.dss_cmd         .EQU    109h            ; var iData  word
                        .SYM      wave_cmd, 0010Bh, 0000Eh, 3
SoftDDS.wave_cmd        .EQU    10Bh            ; var iData  word
                        .SYM      MP3switchTemp, 0010Dh, 0000Dh, 3
SoftDDS.MP3switchTemp   .EQU    10Dh            ; var iData  byte
                        .SYM      MP3State, 0010Eh, 0000Dh, 3
SoftDDS.MP3State        .EQU    10Eh            ; var iData  byte
                        .SYM      SwitchState, 0010Fh, 0000Dh, 3
SoftDDS.SwitchState     .EQU    10Fh            ; var iData  byte
                        .SYM      BtnInState, 00110h, 0000Dh, 3
SoftDDS.BtnInState      .EQU    110h            ; var iData  byte
                        .SYM      IncrValue, 00111h, 00004h, 3
SoftDDS.IncrValue       .EQU    111h            ; var iData  integer
                        .SYM      IncrVerdreht, 00113h, 00003h, 3
SoftDDS.IncrVerdreht    .EQU    113h            ; var iData  boolean
                        .SYM      EditWhich, 00114h, 0000Ah, 3
SoftDDS.EditWhich       .EQU    114h            ; var iData  enum
                        .SYM      DispWhich, 00115h, 0000Ah, 3
SoftDDS.DispWhich       .EQU    115h            ; var iData  enum
                        .SYM      LastMenu, 00116h, 0000Ah, 3
SoftDDS.LastMenu        .EQU    116h            ; var iData  enum
                        .SYM      DisplayValue, 00117h, 0000Dh, 3
SoftDDS.DisplayValue    .EQU    117h            ; var iData  byte
                        .SYM      EditValue, 00118h, 0000Dh, 3
SoftDDS.EditValue       .EQU    118h            ; var iData  byte
                        .SYM      ItemUpperLimit, 00119h, 0000Dh, 3
SoftDDS.ItemUpperLimit  .EQU    119h            ; var iData  byte
                        .SYM      ItemLowerLimit, 0011Ah, 0000Dh, 3
SoftDDS.ItemLowerLimit  .EQU    11Ah            ; var iData  byte
                        .SYM      x, 0011Bh, 0000Dh, 3
SoftDDS.x               .EQU    11Bh            ; var iData  byte
                        .SYM      y, 0011Ch, 0000Dh, 3
SoftDDS.y               .EQU    11Ch            ; var iData  byte
                        .SYM      GainOffset, 0011Dh, 0000Dh, 3
SoftDDS.GainOffset      .EQU    11Dh            ; var iData  byte
                        .SYM      digits, 0011Eh, 0000Dh, 3
SoftDDS.digits          .EQU    11Eh            ; var iData  byte
                        .SYM      BtnTime, 0011Fh, 0000Dh, 3
SoftDDS.BtnTime         .EQU    11Fh            ; var iData  byte
                        .SYM      BtnTime2, 00120h, 0000Dh, 3
SoftDDS.BtnTime2        .EQU    120h            ; var iData  byte
                        .SYM      prime, 00121h, 00003h, 3
SoftDDS.prime           .EQU    121h            ; var iData  boolean
                        .SYM      Modified, 00122h, 00003h, 3
SoftDDS.Modified        .EQU    122h            ; var iData  boolean
                        .SYM      aBool, 00123h, 00003h, 3
SoftDDS.aBool           .EQU    123h            ; var iData  boolean
                        .SYM      PresetOn, 00124h, 00003h, 3
SoftDDS.PresetOn        .EQU    124h            ; var iData  boolean
                        .SYM      AdjValue, 00125h, 0000Dh, 3
SoftDDS.AdjValue        .EQU    125h            ; var iData  byte
                        .SYM      PatchNum, 00126h, 0000Dh, 3
SoftDDS.PatchNum        .EQU    126h            ; var iData  byte
                        .SYM      EditArray, 00127h, 0003Dh, 3
SoftDDS.EditArray       .EQU    127h            ; var iData  array
                        .SYM      Edit1, 00127h, 0000Dh, 3
SoftDDS.Edit1           .EQU    127h            ; var iData  byte
                        .SYM      Frequ1, 00127h, 0000Dh, 3
SoftDDS.Frequ1          .EQU    127h            ; var iData  byte
                        .SYM      Frequ2, 00128h, 0000Dh, 3
SoftDDS.Frequ2          .EQU    128h            ; var iData  byte
                        .SYM      Frequ3, 00129h, 0000Dh, 3
SoftDDS.Frequ3          .EQU    129h            ; var iData  byte
                        .SYM      Frequ4, 0012Ah, 0000Dh, 3
SoftDDS.Frequ4          .EQU    12Ah            ; var iData  byte
                        .SYM      Frequ5, 0012Bh, 0000Dh, 3
SoftDDS.Frequ5          .EQU    12Bh            ; var iData  byte
                        .SYM      Frequ6, 0012Ch, 0000Dh, 3
SoftDDS.Frequ6          .EQU    12Ch            ; var iData  byte
                        .SYM      Frequ7, 0012Dh, 0000Dh, 3
SoftDDS.Frequ7          .EQU    12Dh            ; var iData  byte
                        .SYM      FrequDez, 0012Eh, 0000Dh, 3
SoftDDS.FrequDez        .EQU    12Eh            ; var iData  byte
                        .SYM      Wave, 0012Fh, 0000Dh, 3
SoftDDS.Wave            .EQU    12Fh            ; var iData  byte
                        .SYM      Adj, 00130h, 0000Dh, 3
SoftDDS.Adj             .EQU    130h            ; var iData  byte
                        .SYM      OutputMode, 00131h, 0000Dh, 3
SoftDDS.OutputMode      .EQU    131h            ; var iData  byte
                        .SYM      BurstMode, 00132h, 0000Dh, 3
SoftDDS.BurstMode       .EQU    132h            ; var iData  byte
                        .SYM      LeveldB, 00133h, 0000Dh, 3
SoftDDS.LeveldB         .EQU    133h            ; var iData  byte
                        .SYM      PwrGain, 00136h, 0000Dh, 3
SoftDDS.PwrGain         .EQU    136h            ; var iData  byte
                        .SYM      SaveArray, 00137h, 0003Dh, 3
SoftDDS.SaveArray       .EQU    137h            ; var iData  array
                        .SYM      Save1, 00137h, 0000Dh, 3
SoftDDS.Save1           .EQU    137h            ; var iData  byte
SoftDDS.LevelStr        .EQU    147h            ; var iData  string
                        .SYM      LevelStr, 00147h, 0303Ch, 3
SoftDDS.FreqStr         .EQU    14Fh            ; var iData  string
                        .SYM      FreqStr, 0014Fh, 0303Ch, 3
SoftDDS.EditArrayLen    .EQU    00Fh            ; const byte     15

                        .FILE     DDS-HW.pas
                        .FUNC     SendSR, 3, 00020h
SoftDDS.SendSR:
                        .BLOCK    5
                        .LINE     6
                        LDS       _ACCA, SoftDDS.Wave
                        CPI       _ACCA, 003h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0000
                        SER       _ACCA
SoftDDS.L0000:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0003
                        BRNE      SoftDDS.L0003
                        .BRANCH   20,SoftDDS.L0001
                        JMP       SoftDDS.L0001
SoftDDS.L0003:
                        .BLOCK    6
                        .LINE     7
                        LDS       _ACCA, 0010Fh
                        SBR       _ACCA, 008h
                        STS       0010Fh, _ACCA
                        .ENDBLOCK 8
                        .BRANCH   20,SoftDDS.L0002
                        JMP       SoftDDS.L0002
SoftDDS.L0001:
                        .BLOCK    8
                        .LINE     9
                        LDS       _ACCA, 0010Fh
                        CBR       _ACCA, 008h
                        STS       0010Fh, _ACCA
                        .ENDBLOCK 10
SoftDDS.L0002:
                        .LINE     11
                        LDS       _ACCA, SoftDDS.MP3State
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.SwitchState
                        POP       _ACCB
                        OR        _ACCA, _ACCB
                        STS       SOFTDDS.MP3SWITCHTEMP, _ACCA
                        .ASM
                        .LINE     13
                        LDS _ACCA, SoftDDS.MP3switchTemp;
                        .LINE     14
                        sbi  SoftDDS.DDSOutPort, SoftDDS.b_STROBE
                        .LINE     15
                        cbi  SoftDDS.DDSOutPort, SoftDDS.b_SCLK
                        .LINE     16
                        ldi  _ACCB, 8
                        SoftDDS.srloop:
                        .LINE     19
                        LSL  _ACCA
                        .LINE     20
                        brcs SoftDDS.datahigh1
                        .LINE     21
                        cbi  SoftDDS.DDSOutPort, SoftDDS.b_SDATA
                        .LINE     22
                        rjmp SoftDDS.dataset1
                        SoftDDS.datahigh1:
                        .LINE     24
                        sbi  SoftDDS.DDSOutPort, SoftDDS.b_SDATA
                        SoftDDS.dataset1:
                        .LINE     26
                        nop
                        .LINE     27
                        sbi  SoftDDS.DDSOutPort, SoftDDS.b_SCLK
                        .LINE     28
                        nop
                        .LINE     29
                        cbi  SoftDDS.DDSOutPort, SoftDDS.b_SCLK
                        .LINE     30
                        dec _ACCB
                        .LINE     31
                        BRNE  SoftDDS.srloop
                        .LINE     33
                        cbi  SoftDDS.DDSOutPort, SoftDDS.b_STROBE
                        .LINE     34
                        sbi  SoftDDS.DDSOutPort, SoftDDS.b_SCLK
                        .endasm
                        .ENDBLOCK 36
SoftDDS.SendSR_X:
                        .LINE     36
                        .BRANCH   19
                        RET
                        .ENDFUNC  36

                        .FUNC     SendDDS, 40, 00020h
SoftDDS.SendDDS:
                        .BLOCK    42
                        .ASM
                        .LINE     44
                        lds  _ACCDLO, SoftDDS.dss_cmd
                        .LINE     45
                        lds  _ACCDHI, SoftDDS.dss_cmd+1
                        .LINE     46
                        cbi  SoftDDS.DDSOutPort, SoftDDS.b_FSYNC
                        .LINE     48
                        ldi  _ACCB, 8
                        SoftDDS.ddsloop1:    ; höherwertiges Byte rausschieben
                        .LINE     51
                        lsl  _ACCDHI
                        .LINE     52
                        brcs SoftDDS.ddsdatahigh
                        .LINE     53
                        cbi  SoftDDS.DDSOutPort, SoftDDS.b_SDATA
                        .LINE     54
                        rjmp SoftDDS.ddsdataset
                        SoftDDS.ddsdatahigh:
                        .LINE     56
                        sbi  SoftDDS.DDSOutPort, SoftDDS.b_SDATA
                        SoftDDS.ddsdataset:
                        .LINE     58
                        cbi  SoftDDS.DDSOutPort, SoftDDS.b_SCLK
                        .LINE     59
                        nop
                        .LINE     60
                        sbi  SoftDDS.DDSOutPort, SoftDDS.b_SCLK
                        .LINE     61
                        dec _ACCB
                        .LINE     62
                        brne  SoftDDS.ddsloop1
                        .LINE     64
                        ldi  _ACCB, 8
                        SoftDDS.dssloop2:    ; niederwertiges Byte rausschieben
                        .LINE     67
                        lsl  _ACCDLO
                        .LINE     68
                        brcs SoftDDS.ddsdatahigh2
                        .LINE     69
                        cbi  SoftDDS.DDSOutPort, SoftDDS.b_SDATA
                        .LINE     70
                        rjmp SoftDDS.ddsdataset2
                        SoftDDS.ddsdatahigh2:
                        .LINE     72
                        sbi  SoftDDS.DDSOutPort, SoftDDS.b_SDATA
                        SoftDDS.ddsdataset2:
                        .LINE     74
                        cbi  SoftDDS.DDSOutPort, SoftDDS.b_SCLK
                        .LINE     75
                        nop
                        .LINE     76
                        sbi  SoftDDS.DDSOutPort, SoftDDS.b_SCLK
                        .LINE     77
                        dec _ACCB
                        .LINE     78
                        brne  SoftDDS.dssloop2
                        .LINE     80
                        sbi  SoftDDS.DDSOutPort, SoftDDS.b_FSYNC
                        .endasm
                        .ENDBLOCK 82
SoftDDS.SendDDS_X:
                        .LINE     82
                        .BRANCH   19
                        RET
                        .ENDFUNC  82

                        .FUNC     SendLevel, 86, 00020h
SoftDDS.SendLevel:
                        .BLOCK    87
                        .LINE     90
                        LDD       _ACCA, Y+000h
                        MOV       _ACCDLO, _ACCA
                        .LINE     91
                        LDD       _ACCA, Y+001h
                        MOV       _ACCDHI, _ACCA
                        .ASM
                        .LINE     93
                        sbi SoftDDS.DDSOutPort, SoftDDS.b_FSYNC;
                        .LINE     94
                        cbi SoftDDS.DDSOutPort, SoftDDS.b_SDATA;
                        .LINE     95
                        cbi SoftDDS.DDSOutPort, SoftDDS.b_SCLK;
                        .LINE     96
                        cbi SoftDDS.DDSOutPort, SoftDDS.b_LOADPOT;
                        .LINE     97
                        ldi  _ACCB, 7
                        SoftDDS.levelloop1:    ; 6 Nullen rausschieben
                        .LINE     99
                        sbi SoftDDS.DDSOutPort, SoftDDS.b_SCLK;
                        .LINE     100
                        nop
                        .LINE     101
                        cbi SoftDDS.DDSOutPort, SoftDDS.b_SCLK
                        .LINE     102
                        dec _ACCB
                        .LINE     103
                        brne  SoftDDS.levelloop1
                        .LINE     104
                        dec _ACCDLO
                        .LINE     105
                        brne  SoftDDS.channelset; wenn 0 gewesen, überspringen
                        .LINE     106
                        sbi SoftDDS.DDSOutPort, SoftDDS.b_SDATA;  1 rausschieben
                        .LINE     107
                        nop
                        SoftDDS.channelset:
                        .LINE     109
                        sbi SoftDDS.DDSOutPort, SoftDDS.b_SCLK;
                        .LINE     110
                        nop
                        .LINE     111
                        cbi SoftDDS.DDSOutPort, SoftDDS.b_SCLK;
                        .LINE     113
                        ldi  _ACCB, 8
                        SoftDDS.levelloop2:    ; Byte Step rausschieben
                        .LINE     115
                        lsl  _ACCDHI; step shiften
                        .LINE     116
                        brcs SoftDDS.leveldatahigh2
                        .LINE     117
                        cbi  SoftDDS.DDSOutPort, SoftDDS.b_SDATA
                        .LINE     118
                        rjmp SoftDDS.leveldataset2
                        SoftDDS.leveldatahigh2:
                        .LINE     120
                        sbi  SoftDDS.DDSOutPort, SoftDDS.b_SDATA
                        SoftDDS.leveldataset2:
                        .LINE     122
                        nop;
                        .LINE     123
                        sbi SoftDDS.DDSOutPort, SoftDDS.b_SCLK;
                        .LINE     124
                        nop;
                        .LINE     125
                        nop;
                        .LINE     126
                        cbi SoftDDS.DDSOutPort, SoftDDS.b_SCLK;
                        .LINE     127
                        dec _ACCB
                        .LINE     128
                        brne  SoftDDS.levelloop2
                        .LINE     129
                        sbi SoftDDS.DDSOutPort, SoftDDS.b_LOADPOT;
                        .LINE     130
                        sbi SoftDDS.DDSOutPort, SoftDDS.b_SDATA;
                        .LINE     131
                        sbi SoftDDS.DDSOutPort, SoftDDS.b_SCLK;
                        .endasm
                        .ENDBLOCK 134
SoftDDS.SendLevel_X:
                        .LINE     134
                        .BRANCH   19
                        RET
                        .ENDFUNC  134

                        .FUNC     SetLevelDDS, 136, 00020h
SoftDDS.SetLevelDDS:
                        SBIW      _FRAMEPTR, 18
                        .BLOCK    141
                        .LINE     151
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.SWITCHSTATE, _ACCA
                        .LINE     152
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.GAINOFFSET, _ACCA
                        .LINE     153
                        LDS       _ACCA, SoftDDS.Wave
                        .LINE     154
                        CPI       _ACCA, 0
                        .BRANCH   3,SoftDDS.L0007
                        BREQ      SoftDDS.L0007
                        .BRANCH   20,SoftDDS.L0006
                        JMP       SoftDDS.L0006
SoftDDS.L0007:
SoftDDS.L0005:
                        .BLOCK    155
                        .LINE     155
                        LDI       _ACCA, 02000h SHRB 8
                        LDI       _ACCB, 02000h AND 0FFh
                        STS       SOFTDDS.WAVE_CMD, _ACCB
                        STS       SOFTDDS.WAVE_CMD+1, _ACCA
                        .ENDBLOCK 156
                        .BRANCH   20,SoftDDS.L0004
                        JMP       SoftDDS.L0004
SoftDDS.L0006:
                        .LINE     157
                        CPI       _ACCA, 1
                        .BRANCH   3,SoftDDS.L0010
                        BREQ      SoftDDS.L0010
                        .BRANCH   20,SoftDDS.L0009
                        JMP       SoftDDS.L0009
SoftDDS.L0010:
SoftDDS.L0008:
                        .BLOCK    158
                        .LINE     158
                        LDI       _ACCA, 02002h SHRB 8
                        LDI       _ACCB, 02002h AND 0FFh
                        STS       SOFTDDS.WAVE_CMD, _ACCB
                        STS       SOFTDDS.WAVE_CMD+1, _ACCA
                        .ENDBLOCK 159
                        .BRANCH   20,SoftDDS.L0004
                        JMP       SoftDDS.L0004
SoftDDS.L0009:
                        .LINE     160
                        CPI       _ACCA, 2
                        .BRANCH   3,SoftDDS.L0013
                        BREQ      SoftDDS.L0013
                        .BRANCH   20,SoftDDS.L0012
                        JMP       SoftDDS.L0012
SoftDDS.L0013:
SoftDDS.L0011:
                        .BLOCK    161
                        .LINE     161
                        LDI       _ACCA, 02028h SHRB 8
                        LDI       _ACCB, 02028h AND 0FFh
                        STS       SOFTDDS.WAVE_CMD, _ACCB
                        STS       SOFTDDS.WAVE_CMD+1, _ACCA
                        .LINE     162
                        LDS       _ACCA, 0010Fh
                        SBR       _ACCA, 001h
                        STS       0010Fh, _ACCA
                        .ENDBLOCK 163
                        .BRANCH   20,SoftDDS.L0004
                        JMP       SoftDDS.L0004
SoftDDS.L0012:
SoftDDS.L0004:
                        .LINE     167
                        LDS       _ACCA, SoftDDS.LeveldB
                        NEG       _ACCA
                        SUBI      _ACCA, 0B0h AND 0FFh
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     170
                        LDS       _ACCA, SoftDDS.LeveldB
                        CPI       _ACCA, 014h
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0014
                        CLR       _ACCA
SoftDDS.L0014:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0017
                        BRNE      SoftDDS.L0017
                        .BRANCH   20,SoftDDS.L0015
                        JMP       SoftDDS.L0015
SoftDDS.L0017:
                        .BLOCK    170
                        .LINE     172
                        LDS       _ACCA, 0010Fh
                        SBR       _ACCA, 002h
                        STS       0010Fh, _ACCA
                        .LINE     173
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, 014h AND 0FFh
                        MOV       SOFTDDS.K, _ACCA
                        .ENDBLOCK 174
SoftDDS.L0015:
SoftDDS.L0016:
                        .LINE     175
                        .BRANCH   17,SoftDDS.SENDSR
                        CALL      SoftDDS.SENDSR
                        .LINE     178
                        MOV       _ACCA, SoftDDS.k
                        CPI       _ACCA, 030h
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0018
                        CLR       _ACCA
SoftDDS.L0018:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0021
                        BRNE      SoftDDS.L0021
                        .BRANCH   20,SoftDDS.L0019
                        JMP       SoftDDS.L0019
SoftDDS.L0021:
                        .BLOCK    178
                        .LINE     179
                        MOV       _ACCA, SoftDDS.k
                        LSL       _ACCA
                        MOV       SOFTDDS.K, _ACCA
                        .ENDBLOCK 180
                        .BRANCH   20,SoftDDS.L0020
                        JMP       SoftDDS.L0020
SoftDDS.L0019:
                        .BLOCK    180
                        .LINE     181
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -030h AND 0FFh
                        MOV       SOFTDDS.K, _ACCA
                        .ENDBLOCK 182
SoftDDS.L0020:
                        .LINE     183
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        MOV       _ACCA, SoftDDS.k
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.SENDLEVEL
                        CALL      SoftDDS.SENDLEVEL
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     186
                        LDS       _ACCA, SoftDDS.AdjValue
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     187
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        MOV       _ACCA, SoftDDS.k
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 001h
                        ST        -Y, _ACCA
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.SENDLEVEL
                        CALL      SoftDDS.SENDLEVEL
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     192
                        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     193
                        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.L0024:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0025
                        CLR       _ACCA
SoftDDS.L0025:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0026
                        BREQ      SoftDDS.L0026
                        .BRANCH   20,SoftDDS.L0023
                        JMP       SoftDDS.L0023
SoftDDS.L0026:
                        .BLOCK    194
                        .LINE     194
                        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     195
                        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     196
                        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
                        CALL      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 197
SoftDDS.L0022:
                        .LINE     197
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0023
                        BREQ      SoftDDS.L0023
                        .BRANCH   20,SoftDDS.L0024
                        JMP       SoftDDS.L0024
SoftDDS.L0023:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     198
                        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     199
                        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     207
                        LDD       _ACCAHI, Y+00Fh
                        LDD       _ACCALO, Y+00Eh
                        LDD       _ACCA, Y+00Dh
                        LDD       _ACCB, Y+00Ch
                        ANDI      _ACCB, 0FFh
                        ANDI      _ACCA, 03Fh
                        STS       SOFTDDS.DSS_CMD, _ACCB
                        STS       SOFTDDS.DSS_CMD+1, _ACCA
                        .LINE     208
                        LDS       _ACCB, SoftDDS.dss_cmd
                        LDS       _ACCA, SoftDDS.dss_cmd+1
                        ORI       _ACCB, 000h
                        ORI       _ACCA, 040h
                        STS       SOFTDDS.DSS_CMD, _ACCB
                        STS       SOFTDDS.DSS_CMD+1, _ACCA
                        .LINE     209
                        .BRANCH   17,SoftDDS.SENDDDS
                        CALL      SoftDDS.SENDDDS
                        .LINE     210
                        LDD       _ACCAHI, Y+00Fh
                        LDD       _ACCALO, Y+00Eh
                        LDD       _ACCA, Y+00Dh
                        LDD       _ACCB, Y+00Ch
                        LDI       _ACCCLO, 002h
                        CALL      SYSTEM.SHL32_R
                        STD       Y+00Fh, _ACCAHI
                        STD       Y+00Eh, _ACCALO
                        STD       Y+00Dh, _ACCA
                        STD       Y+00Ch, _ACCB
                        .LINE     211
                        LDD       _ACCAHI, Y+00Fh
                        LDD       _ACCALO, Y+00Eh
                        LDD       _ACCA, Y+00Dh
                        LDD       _ACCB, Y+00Ch
                        MOVW      _ACCB, _ACCALO
                        ANDI      _ACCB, 0FFh
                        ANDI      _ACCA, 03Fh
                        STS       SOFTDDS.DSS_CMD, _ACCB
                        STS       SOFTDDS.DSS_CMD+1, _ACCA
                        .LINE     212
                        LDS       _ACCB, SoftDDS.dss_cmd
                        LDS       _ACCA, SoftDDS.dss_cmd+1
                        ORI       _ACCB, 000h
                        ORI       _ACCA, 040h
                        STS       SOFTDDS.DSS_CMD, _ACCB
                        STS       SOFTDDS.DSS_CMD+1, _ACCA
                        .LINE     213
                        .BRANCH   17,SoftDDS.SENDDDS
                        CALL      SoftDDS.SENDDDS
                        .LINE     214
                        LDS       _ACCB, SoftDDS.wave_cmd
                        LDS       _ACCA, SoftDDS.wave_cmd+1
                        STS       SOFTDDS.DSS_CMD, _ACCB
                        STS       SOFTDDS.DSS_CMD+1, _ACCA
                        .LINE     215
                        .BRANCH   17,SoftDDS.SENDDDS
                        CALL      SoftDDS.SENDDDS
                        .ENDBLOCK 217
SoftDDS.SetLevelDDS_X:
                        .LINE     217
                        .BRANCH   19
                        RET
                        .ENDFUNC  217


                        .FILE     H:\PROJAVR\DDS-LM1972ADJ\DDS.pas
                        .FUNC     PresetCopyFromROM, 244, 00020h
SoftDDS.PresetCopyFromROM:
                        .BLOCK    246
                        .LINE     248
                        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
                        LDI       _ACCA, 000h
                        LDI       _ACCCLO, SoftDDS.TerzArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.TerzArray SHRB 8
                        ANDI      _ACCA, 31
                        CLR       _ACCB
                        LSL       _ACCA
                        ROL       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCB, Z+
                        LPM       _ACCA, Z
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDI       _ACCA, 007h
                        PUSH      _ACCA
                        LDI       _ACCB, 000h
                        PUSH      _ACCB
                        LDI       _ACCA, 020h
                        PUSH      _ACCA
                        SET
                        BLD       Flags, _SIGN
                        CALL      SYSTEM.Int2Str
                        LDI       _ACCA, 008h
                        PUSH      _ACCA
                        LDD       _ACCA, Y+000h
                        POP       _ACCB
                        SUB       _ACCB, _ACCA
                        MOV       _ACCA, _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ST        Z, _ACCA
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     249
                        LDI       _ACCCLO, SoftDDS.FreqStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.FreqStr SHRB 8
                        ADIW      _ACCCLO, 00008h
                        LDI       _ACCA, 030h
                        ST        Z+, _ACCA
                        .LINE     250
                        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.L0029:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0030
                        CLR       _ACCA
SoftDDS.L0030:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0031
                        BREQ      SoftDDS.L0031
                        .BRANCH   20,SoftDDS.L0028
                        JMP       SoftDDS.L0028
SoftDDS.L0031:
                        .BLOCK    251
                        .LINE     251
                        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     252
                        MOV       _ACCA, SoftDDS.k
                        CPI       _ACCA, 020h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0032
                        SER       _ACCA
SoftDDS.L0032:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0035
                        BRNE      SoftDDS.L0035
                        .BRANCH   20,SoftDDS.L0033
                        JMP       SoftDDS.L0033
SoftDDS.L0035:
                        .BLOCK    253
                        .LINE     253
                        LDI       _ACCA, 030h
                        MOV       SOFTDDS.K, _ACCA
                        .ENDBLOCK 254
SoftDDS.L0033:
SoftDDS.L0034:
                        .LINE     255
                        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 256
SoftDDS.L0027:
                        .LINE     256
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0028
                        BREQ      SoftDDS.L0028
                        .BRANCH   20,SoftDDS.L0029
                        JMP       SoftDDS.L0029
SoftDDS.L0028:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 257
SoftDDS.PresetCopyFromROM_X:
                        .LINE     257
                        .BRANCH   19
                        RET
                        .ENDFUNC  257

                        .FUNC     PatchCopyFromEE, 259, 00020h
SoftDDS.PatchCopyFromEE:
                        .BLOCK    261
                        .LINE     262
                        LDI       _ACCCLO, SoftDDS.i AND 0FFh
                        LDI       _ACCCHI, SoftDDS.i SHRB 8
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        Z, _ACCA
                        LDI       _ACCA, 00Fh
                        ST        -Y, _ACCA
                        .FRAME  3
                        LD        _ACCA, Z
SoftDDS.L0038:
                        LDD       _ACCB, Y+000h
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0039
                        CLR       _ACCA
SoftDDS.L0039:
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0040
                        BREQ      SoftDDS.L0040
                        .BRANCH   20,SoftDDS.L0037
                        JMP       SoftDDS.L0037
SoftDDS.L0040:
                        .BLOCK    263
                        .LINE     263
                        MOV       _ACCA, SoftDDS.i
                        PUSH      _ACCA
                        LDI       _ACCCLO, SoftDDS.EEPatchArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EEPatchArray SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        MOV       _ACCA, SoftDDS.i
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        CALL      SYSTEM.ReadEEp8
                        LDI       _ACCCLO, SoftDDS.EditArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EditArray SHRB 8
                        POP       _ACCBLO
                        ANDI      _ACCBLO, 15
                        CLR       _ACCBHI
                        ADD       _ACCCLO, _ACCBLO
                        ADC       _ACCCHI, _ACCBHI
                        ST        Z, _ACCA
                        .ENDBLOCK 264
SoftDDS.L0036:
                        .LINE     264
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LD        _ACCA, Z
                        INC       _ACCA
                        ST        Z, _ACCA
                        TST       _ACCA
                        .BRANCH   3,SoftDDS.L0037
                        BREQ      SoftDDS.L0037
                        .BRANCH   20,SoftDDS.L0038
                        JMP       SoftDDS.L0038
SoftDDS.L0037:
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .ENDBLOCK 265
SoftDDS.PatchCopyFromEE_X:
                        .LINE     265
                        .BRANCH   19
                        RET
                        .ENDFUNC  265

                        .FUNC     LCD1xy, 271, 00020h
SoftDDS.LCD1xy:
                        .BLOCK    272
                        .LINE     273
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDS       _ACCA, SoftDDS.x
                        ST        -Y, _ACCA
                        .FRAME  2
                        LDS       _ACCA, SoftDDS.y
                        ST        -Y, _ACCA
                        .FRAME  3
                        .FRAME  0
                        CALL      SYSTEM.LCDXY_M
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 274
SoftDDS.LCD1xy_X:
                        .LINE     274
                        .BRANCH   19
                        RET
                        .ENDFUNC  274

                        .FUNC     SetPos, 276, 00020h
SoftDDS.SetPos:
                        .BLOCK    277
                        .LINE     278
                        LDS       _ACCA, SoftDDS.DispWhich
                        MOV       SOFTDDS.I, _ACCA
                        .LINE     279
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.posx AND 0FFh
                        LDI       _ACCCHI, SoftDDS.posx SHRB 8
                        ANDI      _ACCA, 3
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCA, Z
                        STS       SOFTDDS.X, _ACCA
                        .LINE     280
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.posy AND 0FFh
                        LDI       _ACCCHI, SoftDDS.posy SHRB 8
                        ANDI      _ACCA, 3
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCA, Z
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     281
                        .BRANCH   17,SoftDDS.LCD1XY
                        CALL      SoftDDS.LCD1XY
                        .ENDBLOCK 282
SoftDDS.SetPos_X:
                        .LINE     282
                        .BRANCH   19
                        RET
                        .ENDFUNC  282

                        .FUNC     SetCursor, 284, 00020h
SoftDDS.SetCursor:
                        .BLOCK    285
                        .LINE     286
                        LDS       _ACCA, SoftDDS.EditWhich
                        MOV       SOFTDDS.I, _ACCA
                        .LINE     287
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.cursx AND 0FFh
                        LDI       _ACCCHI, SoftDDS.cursx SHRB 8
                        ANDI      _ACCA, 3
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCA, Z
                        STS       SOFTDDS.X, _ACCA
                        .LINE     288
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.posy AND 0FFh
                        LDI       _ACCCHI, SoftDDS.posy SHRB 8
                        ANDI      _ACCA, 3
                        CLR       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCA, Z
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     289
                        .BRANCH   17,SoftDDS.LCD1XY
                        CALL      SoftDDS.LCD1XY
                        .LINE     291
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .ENDBLOCK 292
SoftDDS.SetCursor_X:
                        .LINE     292
                        .BRANCH   19
                        RET
                        .ENDFUNC  292

                        .FUNC     LCD1x0y0, 295, 00020h
SoftDDS.LCD1x0y0:
                        .BLOCK    296
                        .LINE     297
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL      SYSTEM.LCDHOME_M
                        .LINE     298
                        LDI       _ACCA, 00001h SHRB 8
                        LDI       _ACCB, 00001h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .ENDBLOCK 299
SoftDDS.LCD1x0y0_X:
                        .LINE     299
                        .BRANCH   19
                        RET
                        .ENDFUNC  299

                        .FUNC     LCD1x0y1, 301, 00020h
SoftDDS.LCD1x0y1:
                        .BLOCK    302
                        .LINE     303
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.X, _ACCA
                        .LINE     304
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.Y, _ACCA
                        .LINE     305
                        .BRANCH   17,SoftDDS.LCD1XY
                        CALL      SoftDDS.LCD1XY
                        .ENDBLOCK 306
SoftDDS.LCD1x0y1_X:
                        .LINE     306
                        .BRANCH   19
                        RET
                        .ENDFUNC  306


                        .FILE     buttons.pas
                        .FUNC     WriteLCD, 84, 00020h
SoftDDS.WriteLCD:
                        .BLOCK    87
                        .ASM
                        .LINE     90
                        LDD       _ACCCLO, Y+000h
                        .LINE     91
                        CLR       _ACCA
                        .LINE     92
                        LDD       _ACCCHI, Y+001h
                        .LINE     93
                        ADC       _ACCCHI, _ACCA
                        .LINE     95
                        PUSH      _FRAMEPTR
                        .LINE     96
                        PUSH      _FPTRHI
                        .LINE     97
                        LDI       _ACCA, 1 SHLB _DEVICE
                        .LINE     98
                        OR        Flags, _ACCA
                        .LINE     99
                        LDI       _ACCB, SYSTEM.LCDOut_M SHRB 1
                        .LINE     100
                        LDI       _ACCA, SYSTEM.LCDOut_M SHRB 9
                        .LINE     101
                        ST        -Y, _ACCA
                        .LINE     102
                        ST        -Y, _ACCB
                        .LINE     103
                        LPM       _ACCBHI, Z+      ; Pascal-Längenbyte
                        WriteLCDLoop:
                        .LINE     105
                        LPM       _ACCA, Z+
                        .LINE     106
                        CALL     SYSTEM.Char2Str
                        .LINE     107
                        DEC       _ACCBHI
                        .LINE     108
                        BRNE      WriteLCDLoop
                        .LINE     109
                        POP       _FPTRHI
                        .LINE     110
                        POP       _FRAMEPTR
                        .endasm
                        .ENDBLOCK 112
SoftDDS.WriteLCD_X:
                        .LINE     112
                        .BRANCH   19
                        RET
                        .ENDFUNC  112

                        .FUNC     FastRepeatRelease, 114, 00020h
SoftDDS.FastRepeatRelease:
                        .BLOCK    116
                        .LINE     125
                        CLR       _ACCA
                        LDS       _ACCB, SoftDDS.BtnTime2
                        LDI       _ACCEHI, 000h
                        CP        _ACCEHI, _ACCB
                        BRCC      SoftDDS.L0041
                        DEC       _ACCB
                        STS       SoftDDS.BtnTime2, _ACCB
                        SER       _ACCA
SoftDDS.L0041:
SoftDDS.L0042:
                        .BLOCK    126
                        .LINE     127
                        LDS       _ACCA, SoftDDS.BtnTime
                        DEC       _ACCA
                        STS       SoftDDS.BtnTime, _ACCA
                        .LINE     128
                        LDS       _ACCA, SoftDDS.BtnTime2
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0045
                        SER       _ACCA
SoftDDS.L0045:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0048
                        BRNE      SoftDDS.L0048
                        .BRANCH   20,SoftDDS.L0046
                        JMP       SoftDDS.L0046
SoftDDS.L0048:
                        .BLOCK    128
                        .LINE     129
                        LDI       _ACCA, 00004h SHRB 8
                        LDI       _ACCB, 00004h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .ENDBLOCK 130
                        .BRANCH   20,SoftDDS.L0047
                        JMP       SoftDDS.L0047
SoftDDS.L0046:
                        .BLOCK    130
                        .LINE     131
                        LDI       _ACCA, 0000Fh SHRB 8
                        LDI       _ACCB, 0000Fh AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .ENDBLOCK 132
SoftDDS.L0047:
                        .LINE     133
                        IN        _ACCA, PinD
                        STS       SOFTDDS.BTNINSTATE, _ACCA
                        .LINE     134
                        LDS       _ACCA, SoftDDS.BtnInState
                        ORI       _ACCA, 007h
                        MOV       SOFTDDS.I, _ACCA
                        .ENDBLOCK 135
                        .LINE     135
SoftDDS.L0043:
                        MOV       _ACCA, SoftDDS.i
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0049
                        SER       _ACCA
SoftDDS.L0049:
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.BtnTime
                        CPI       _ACCA, 000h
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0050
                        SER       _ACCA
SoftDDS.L0050:
                        POP       _ACCB
                        OR        _ACCA, _ACCB
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0051
                        BRNE      SoftDDS.L0051
                        .BRANCH   20,SoftDDS.L0042
                        JMP       SoftDDS.L0042
SoftDDS.L0051:
SoftDDS.L0044:
                        .LINE     136
                        MOV       _ACCA, SoftDDS.i
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0052
                        SER       _ACCA
SoftDDS.L0052:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0055
                        BRNE      SoftDDS.L0055
                        .BRANCH   20,SoftDDS.L0053
                        JMP       SoftDDS.L0053
SoftDDS.L0055:
                        .BLOCK    137
                        .LINE     137
                        LDI       _ACCA, 028h
                        STS       SOFTDDS.BTNTIME, _ACCA
                        .LINE     138
                        LDI       _ACCA, 005h
                        STS       SOFTDDS.BTNTIME2, _ACCA
                        .ENDBLOCK 139
                        .BRANCH   20,SoftDDS.L0054
                        JMP       SoftDDS.L0054
SoftDDS.L0053:
                        .BLOCK    139
                        .LINE     140
                        LDI       _ACCA, 00Ah
                        STS       SOFTDDS.BTNTIME, _ACCA
                        .ENDBLOCK 141
SoftDDS.L0054:
                        .ENDBLOCK 143
SoftDDS.FastRepeatRelease_X:
                        .LINE     143
                        .BRANCH   19
                        RET
                        .ENDFUNC  143

                        .FUNC     SlowRepeatRelease, 145, 00020h
SoftDDS.SlowRepeatRelease:
                        .BLOCK    146
                        .LINE     147
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.BTNTIME2, _ACCA
                        .LINE     148
                        .BRANCH   17,SoftDDS.FASTREPEATRELEASE
                        CALL      SoftDDS.FASTREPEATRELEASE
                        .ENDBLOCK 149
SoftDDS.SlowRepeatRelease_X:
                        .LINE     149
                        .BRANCH   19
                        RET
                        .ENDFUNC  149

                        .FUNC     NaviButton, 151, 00020h
SoftDDS.NaviButton:
                        .BLOCK    153
                        .LINE     154
                        IN        _ACCA, PinD
                        STS       SOFTDDS.BTNINSTATE, _ACCA
                        .LINE     155
                        LDS       _ACCA, SoftDDS.BtnInState
                        ORI       _ACCA, 067h
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0056
                        SER       _ACCA
SoftDDS.L0056:
                        STS       SOFTDDS.ABOOL, _ACCA
                        .LINE     156
                        LDS       _ACCA, SoftDDS.aBool
                        .ENDBLOCK 157
SoftDDS.NaviButton_X:
                        .LINE     157
                        .BRANCH   19
                        RET
                        .ENDFUNC  157

                        .FUNC     UpDownButton, 159, 00020h
SoftDDS.UpDownButton:
                        .BLOCK    161
                        .LINE     162
                        IN        _ACCA, PinD
                        STS       SOFTDDS.BTNINSTATE, _ACCA
                        .LINE     163
                        LDS       _ACCA, SoftDDS.BtnInState
                        ORI       _ACCA, 09Fh
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0057
                        SER       _ACCA
SoftDDS.L0057:
                        STS       SOFTDDS.ABOOL, _ACCA
                        .LINE     164
                        LDS       _ACCA, SoftDDS.aBool
                        .ENDBLOCK 165
SoftDDS.UpDownButton_X:
                        .LINE     165
                        .BRANCH   19
                        RET
                        .ENDFUNC  165


                        .FILE     H:\PROJAVR\DDS-LM1972ADJ\DDS.pas
                        .FUNC     SetIncrValToEditValue, 310, 00020h
SoftDDS.SetIncrValToEditValue:
                        .BLOCK    311
                        .LINE     315
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDS       _ACCA, SoftDDS.EditValue
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        LSL       _ACCB
                        ROL       _ACCA
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  3
                        .FRAME  0
                        CALL      SYSTEM.SETINCRVAL4
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 317
SoftDDS.SetIncrValToEditValue_X:
                        .LINE     317
                        .BRANCH   19
                        RET
                        .ENDFUNC  317

                        .FUNC     CheckItemLimits, 319, 00020h
SoftDDS.CheckItemLimits:
                        .BLOCK    321
                        .LINE     322
                        LDS       _ACCA, SoftDDS.EditValue
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0058
                        SER       _ACCA
SoftDDS.L0058:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0061
                        BRNE      SoftDDS.L0061
                        .BRANCH   20,SoftDDS.L0059
                        JMP       SoftDDS.L0059
SoftDDS.L0061:
                        .BLOCK    322
                        .LINE     323
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 324
SoftDDS.L0059:
SoftDDS.L0060:
                        .LINE     325
                        LDS       _ACCA, SoftDDS.EditValue
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.ItemUpperLimit
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0062
                        BRLO      SoftDDS.L0062
                        SER       _ACCA
SoftDDS.L0062:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0065
                        BRNE      SoftDDS.L0065
                        .BRANCH   20,SoftDDS.L0063
                        JMP       SoftDDS.L0063
SoftDDS.L0065:
                        .BLOCK    325
                        .LINE     326
                        LDS       _ACCA, SoftDDS.ItemUpperLimit
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .LINE     327
                        .BRANCH   17,SoftDDS.SETINCRVALTOEDITVALUE
                        CALL      SoftDDS.SETINCRVALTOEDITVALUE
                        .ENDBLOCK 328
SoftDDS.L0063:
SoftDDS.L0064:
                        .LINE     329
                        LDS       _ACCA, SoftDDS.EditValue
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.ItemlowerLimit
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0066
                        CLR       _ACCA
SoftDDS.L0066:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0069
                        BRNE      SoftDDS.L0069
                        .BRANCH   20,SoftDDS.L0067
                        JMP       SoftDDS.L0067
SoftDDS.L0069:
                        .BLOCK    329
                        .LINE     330
                        LDS       _ACCA, SoftDDS.ItemlowerLimit
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .LINE     331
                        .BRANCH   17,SoftDDS.SETINCRVALTOEDITVALUE
                        CALL      SoftDDS.SETINCRVALTOEDITVALUE
                        .ENDBLOCK 332
SoftDDS.L0067:
SoftDDS.L0068:
                        .ENDBLOCK 333
SoftDDS.CheckItemLimits_X:
                        .LINE     333
                        .BRANCH   19
                        RET
                        .ENDFUNC  333

                        .FUNC     WriteItem, 336, 00020h
SoftDDS.WriteItem:
                        .BLOCK    338
                        .LINE     341
                        LDS       _ACCA, SoftDDS.DisplayValue
                        CPI       _ACCA, 0FFh
                        LDI       _ACCA, 0h
                        BRNE      SoftDDS.L0070
                        SER       _ACCA
SoftDDS.L0070:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0073
                        BRNE      SoftDDS.L0073
                        .BRANCH   20,SoftDDS.L0071
                        JMP       SoftDDS.L0071
SoftDDS.L0073:
                        .BLOCK    341
                        .LINE     342
                        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
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 343
                        .BRANCH   20,SoftDDS.L0072
                        JMP       SoftDDS.L0072
SoftDDS.L0071:
                        .BLOCK    343
                        .LINE     344
                        LDS       _ACCA, SoftDDS.digits
                        CPI       _ACCA, 001h
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0074
                        BRLO      SoftDDS.L0074
                        SER       _ACCA
SoftDDS.L0074:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0077
                        BRNE      SoftDDS.L0077
                        .BRANCH   20,SoftDDS.L0075
                        JMP       SoftDDS.L0075
SoftDDS.L0077:
                        .BLOCK    344
                        .LINE     345
                        LDS       _ACCA, SoftDDS.DisplayValue
                        LDI       _ACCB, 064h
                        CALL      SYSTEM.DIV8_R
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     346
                        MOV       _ACCA, SoftDDS.k
                        LDI       _ACCB, 00Ah
                        CALL      SYSTEM.DIV8_R
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     347
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .ENDBLOCK 348
SoftDDS.L0075:
SoftDDS.L0076:
                        .LINE     349
                        LDS       _ACCA, SoftDDS.DisplayValue
                        LDI       _ACCB, 00Ah
                        CALL      SYSTEM.DIV8_R
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     350
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -030h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .ENDBLOCK 351
SoftDDS.L0072:
                        .ENDBLOCK 352
SoftDDS.WriteItem_X:
                        .LINE     352
                        .BRANCH   19
                        RET
                        .ENDFUNC  352

                        .FUNC     WriteStep, 354, 00020h
SoftDDS.WriteStep:
                        .BLOCK    356
                        .LINE     357
                        .BRANCH   17,SoftDDS.LCD1X0Y1
                        CALL      SoftDDS.LCD1X0Y1
                        .LINE     358
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.StepStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.StepStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     359
                        LDS       _ACCA, SoftDDS.LevelDB
                        LDI       _ACCB, 051h AND 0FFh
                        SUB       _ACCB, _ACCA
                        MOV       _ACCA, _ACCB
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     360
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     361
                        .BRANCH   17,SoftDDS.WRITEITEM
                        CALL      SoftDDS.WRITEITEM
                        .ENDBLOCK 362
SoftDDS.WriteStep_X:
                        .LINE     362
                        .BRANCH   19
                        RET
                        .ENDFUNC  362

                        .FUNC     WriteLevelmV, 364, 00020h
SoftDDS.WriteLevelmV:
                        SBIW      _FRAMEPTR, 3
                        .BLOCK    370
                        .LINE     371
                        LDI       _ACCA, 003h
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     372
                        .BRANCH   17,SoftDDS.SETPOS
                        CALL      SoftDDS.SETPOS
                        .LINE     374
                        LDS       _ACCA, SoftDDS.LeveldB
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.GainOffset
                        POP       _ACCB
                        ADD       _ACCA, _ACCB
                        SUBI      _ACCA, -00Ah AND 0FFh
                        STD       Y+001h, _ACCA
                        .LINE     376
                        LDD       _ACCA, Y+001h
                        LDI       _ACCB, 014h
                        CALL      SYSTEM.DIV8_R
                        MOV       _ACCA, _ACCB
                        MOV       SOFTDDS.I, _ACCA
                        .LINE     377
                        LDD       _ACCA, Y+001h
                        SUBI      _ACCA, -00Ah AND 0FFh
                        LDI       _ACCB, 014h
                        CALL      SYSTEM.DIV8_R
                        SUBI      _ACCA, -002h AND 0FFh
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     378
                        LDI       _ACCA, 06Dh
                        STD       Y+000h, _ACCA
                        .LINE     379
                        LDI       _ACCCLO, SoftDDS.LevelStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.LevelStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        ADIW      _ACCCLO, 1
                        ST        -Y, _ACCCHI
                        ST        -Y, _ACCCLO
                        LDI       _ACCA, 007h
                        ST        -Y, _ACCA
                        LDI       _ACCA, 0FEH ROLB _DEVICE
                        AND       Flags, _ACCA
                        LDI       _ACCA, 0FEH ROLB _EEPROM
                        AND       Flags, _ACCA
                        .FRAME  3
                        MOV       _ACCA, SoftDDS.i
                        LDI       _ACCCLO, SoftDDS.dBfac AND 0FFh
                        LDI       _ACCCHI, SoftDDS.dBfac SHRB 8
                        ANDI      _ACCA, 31
                        CLR       _ACCB
                        LSL       _ACCA
                        ROL       _ACCB
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LPM       _ACCB, Z+
                        LPM       _ACCA, Z
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDI       _ACCA, 006h
                        PUSH      _ACCA
                        LDI       _ACCB, 000h
                        PUSH      _ACCB
                        LDI       _ACCA, 020h
                        PUSH      _ACCA
                        CLT
                        BLD       Flags, _SIGN
                        CALL      SYSTEM.Int2Str
                        LDI       _ACCA, 007h
                        PUSH      _ACCA
                        LDD       _ACCA, Y+000h
                        POP       _ACCB
                        SUB       _ACCB, _ACCA
                        MOV       _ACCA, _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ST        Z, _ACCA
                        ADIW      _FRAMEPTR, 3
                        .FRAME  0
                        .LINE     383
                        LDD       _ACCA, Y+001h
                        .LINE     384
                        CPI       _ACCA, 10
                        .BRANCH   2,SoftDDS.L0081
                        BRCC      SoftDDS.L0081
                        .BRANCH   20,SoftDDS.L0080
                        JMP       SoftDDS.L0080
SoftDDS.L0081:
                        CPI       _ACCA, 29
                        .BRANCH   3,SoftDDS.L0082
                        BREQ      SoftDDS.L0082
                        .BRANCH   1,SoftDDS.L0080
                        BRCS      SoftDDS.L0082
                        .BRANCH   20,SoftDDS.L0080
                        JMP       SoftDDS.L0080
SoftDDS.L0082:
SoftDDS.L0079:
                        .BLOCK    385
                        .LINE     385
                        MOV       _ACCA, SoftDDS.k
                        SUBI      _ACCA, -003h AND 0FFh
                        MOV       SOFTDDS.K, _ACCA
                        .LINE     386
                        LDI       _ACCCLO, $St_String14 AND 0FFh
                        LDI       _ACCCHI, $St_String14 SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCCLO, SoftDDS.LevelStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.LevelStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCA, 007h
                        PUSH      _ACCA
                        MOV       _ACCA, SoftDDS.k
                        LDI       _ACCFHI, 002h
                        CALL      SYSTEM.StringInsert
                        .LINE     387
                        LDI       _ACCA, 0E4h
                        STD       Y+000h, _ACCA
                        .ENDBLOCK 388
                        .BRANCH   20,SoftDDS.L0078
                        JMP       SoftDDS.L0078
SoftDDS.L0080:
                        .LINE     389
                        CPI       _ACCA, 30
                        .BRANCH   2,SoftDDS.L0085
                        BRCC      SoftDDS.L0085
                        .BRANCH   20,SoftDDS.L0084
                        JMP       SoftDDS.L0084
SoftDDS.L0085:
                        CPI       _ACCA, 89
                        .BRANCH   3,SoftDDS.L0086
                        BREQ      SoftDDS.L0086
                        .BRANCH   1,SoftDDS.L0084
                        BRCS      SoftDDS.L0086
                        .BRANCH   20,SoftDDS.L0084
                        JMP       SoftDDS.L0084
SoftDDS.L0086:
SoftDDS.L0083:
                        .BLOCK    390
                        .LINE     390
                        LDI       _ACCCLO, $St_String14 AND 0FFh
                        LDI       _ACCCHI, $St_String14 SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCCLO, SoftDDS.LevelStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.LevelStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCA, 007h
                        PUSH      _ACCA
                        MOV       _ACCA, SoftDDS.k
                        LDI       _ACCFHI, 002h
                        CALL      SYSTEM.StringInsert
                        .ENDBLOCK 391
                        .BRANCH   20,SoftDDS.L0078
                        JMP       SoftDDS.L0078
SoftDDS.L0084:
                        .LINE     392
                        CPI       _ACCA, 90
                        .BRANCH   2,SoftDDS.L0089
                        BRCC      SoftDDS.L0089
                        .BRANCH   20,SoftDDS.L0088
                        JMP       SoftDDS.L0088
SoftDDS.L0089:
                        CPI       _ACCA, 109
                        .BRANCH   3,SoftDDS.L0090
                        BREQ      SoftDDS.L0090
                        .BRANCH   1,SoftDDS.L0088
                        BRCS      SoftDDS.L0090
                        .BRANCH   20,SoftDDS.L0088
                        JMP       SoftDDS.L0088
SoftDDS.L0090:
SoftDDS.L0087:
                        .BLOCK    393
                        .LINE     393
                        LDI       _ACCCLO, $St_String14 AND 0FFh
                        LDI       _ACCCHI, $St_String14 SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCCLO, SoftDDS.LevelStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.LevelStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCA, 007h
                        PUSH      _ACCA
                        LDI       _ACCA, 004h
                        LDI       _ACCFHI, 002h
                        CALL      SYSTEM.StringInsert
                        .LINE     394
                        LDI       _ACCA, 020h
                        STD       Y+000h, _ACCA
                        .ENDBLOCK 395
                        .BRANCH   20,SoftDDS.L0078
                        JMP       SoftDDS.L0078
SoftDDS.L0088:
                        .LINE     396
                        CPI       _ACCA, 110
                        .BRANCH   3,SoftDDS.L0093
                        BREQ      SoftDDS.L0093
                        .BRANCH   20,SoftDDS.L0092
                        JMP       SoftDDS.L0092
SoftDDS.L0093:
SoftDDS.L0091:
                        .BLOCK    397
                        .LINE     397
                        LDI       _ACCCLO, $St_String14 AND 0FFh
                        LDI       _ACCCHI, $St_String14 SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCCLO, SoftDDS.LevelStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.LevelStr SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDI       _ACCA, 007h
                        PUSH      _ACCA
                        LDI       _ACCA, 005h
                        LDI       _ACCFHI, 002h
                        CALL      SYSTEM.StringInsert
                        .LINE     398
                        LDI       _ACCA, 020h
                        STD       Y+000h, _ACCA
                        .ENDBLOCK 399
                        .BRANCH   20,SoftDDS.L0078
                        JMP       SoftDDS.L0078
SoftDDS.L0092:
SoftDDS.L0078:
                        .LINE     401
                        LDI       _ACCA, 020h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     402
                        LDI       _ACCA, 020h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     403
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 1 SHLB _DEVICE
                        OR        Flags, _ACCA
                        LDI       _ACCB, SYSTEM.lcdout_m SHRB 1
                        LDI       _ACCA, SYSTEM.lcdout_m SHRB 9
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        LDI       _ACCCLO, SoftDDS.LevelStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.LevelStr SHRB 8
                        CALL      SYSTEM.StrVar2Str
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .LINE     404
                        LDI       _ACCA, 020h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     405
                        LDD       _ACCA, Y+000h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     406
                        LDI       _ACCA, 056h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .ENDBLOCK 407
SoftDDS.WriteLevelmV_X:
                        .LINE     407
                        .BRANCH   19
                        RET
                        .ENDFUNC  407

                        .FUNC     WriteLeveldB, 409, 00020h
SoftDDS.WriteLeveldB:
                        SBIW      _FRAMEPTR, 2
                        .BLOCK    412
                        .LINE     413
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     414
                        .BRANCH   17,SoftDDS.SETPOS
                        CALL      SoftDDS.SETPOS
                        .LINE     417
                        LDS       _ACCA, SoftDDS.LeveldB
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        SUBI      _ACCB, 00046h AND 0FFh
                        SBCI      _ACCA, 00046h SHRB 8
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.GainOffset
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        POP       _ACCAHI
                        POP       _ACCALO
                        ADD       _ACCB, _ACCALO
                        ADC       _ACCA, _ACCAHI
                        STD       Y+001h, _ACCA
                        STD       Y+000h, _ACCB
                        .LINE     418
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 1 SHLB _DEVICE
                        OR        Flags, _ACCA
                        LDI       _ACCB, SYSTEM.lcdout_m SHRB 1
                        LDI       _ACCA, SYSTEM.lcdout_m SHRB 9
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        LDD       _ACCB, Y+002h
                        LDD       _ACCA, Y+003h
                        PUSH      _ACCB
                        PUSH      _ACCA
                        LDI       _ACCA, 004h
                        PUSH      _ACCA
                        LDI       _ACCB, 000h
                        PUSH      _ACCB
                        LDI       _ACCA, 020h
                        PUSH      _ACCA
                        SET
                        BLD       Flags, _SIGN
                        CALL      SYSTEM.Int2Str
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .FRAME  0
                        .LINE     419
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.dBStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.dBStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 420
SoftDDS.WriteLeveldB_X:
                        .LINE     420
                        .BRANCH   19
                        RET
                        .ENDFUNC  420

                        .FUNC     ShowAdjust, 424, 00020h
SoftDDS.ShowAdjust:
                        .BLOCK    426
                        .LINE     427
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.DISPWHICH, _ACCA
                        .LINE     428
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     429
                        .BRANCH   17,SoftDDS.LCD1X0Y0
                        CALL      SoftDDS.LCD1X0Y0
                        .LINE     430
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.AdjustStr AND 0FFh
                        LDI       _ACCCHI, SoftDDS.AdjustStr SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     431
                        LDS       _ACCA, SoftDDS.AdjValue
                        STS       SOFTDDS.DISPLAYVALUE, _ACCA
                        .LINE     432
                        .BRANCH   17,SoftDDS.WRITEITEM
                        CALL      SoftDDS.WRITEITEM
                        .LINE     433
                        LDI       _ACCA, 020h
                        .FRAME  0
                        CALL      SYSTEM.LCDOUT_M
                        .LINE     434
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.WRITELEVELDB
                        CALL      SoftDDS.WRITELEVELDB
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     435
                        .BRANCH   17,SoftDDS.SETCURSOR
                        CALL      SoftDDS.SETCURSOR
                        .LINE     436
                        .BRANCH   17,SoftDDS.LCD1X0Y1
                        CALL      SoftDDS.LCD1X0Y1
                        .LINE     437
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL      SYSTEM.LCDCLREOL_M
                        .LINE     438
                        .BRANCH   17,SoftDDS.WRITESTEP
                        CALL      SoftDDS.WRITESTEP
                        .LINE     439
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.WRITELEVELMV
                        CALL      SoftDDS.WRITELEVELMV
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 440
SoftDDS.ShowAdjust_X:
                        .LINE     440
                        .BRANCH   19
                        RET
                        .ENDFUNC  440

                        .FUNC     initall, 445, 00020h
SoftDDS.initall:
                        .BLOCK    447
                        .LINE     448
                        LDI       _ACCA, 03Fh
                        OUT       DDRB, _ACCA
                        .LINE     449
                        LDI       _ACCA, 0EFh
                        OUT       PORTB, _ACCA
                        .LINE     450
                        LDI       _ACCA, 00Ch
                        OUT       DDRC, _ACCA
                        .LINE     451
                        LDI       _ACCA, 0FFh
                        OUT       PORTC, _ACCA
                        .LINE     452
                        LDI       _ACCA, 004h
                        OUT       DDRD, _ACCA
                        .LINE     453
                        LDI       _ACCA, 0FCh
                        OUT       PORTD, _ACCA
                        .LINE     455
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL       SYSTEM.LCDSETUP_M
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0096
                        BRNE      SoftDDS.L0096
                        .BRANCH   20,SoftDDS.L0094
                        JMP       SoftDDS.L0094
SoftDDS.L0096:
                        .BLOCK    455
                        .LINE     456
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  2
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  3
                        .FRAME  0
                        CALL      SYSTEM.LCDCURSOR_M
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     457
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  2
                        LDI       _ACCA, 002h
                        ST        -Y, _ACCA
                        .FRAME  3
                        LDI       _ACCA, 006h
                        ST        -Y, _ACCA
                        .FRAME  4
                        LDI       _ACCA, 00Eh
                        ST        -Y, _ACCA
                        .FRAME  5
                        LDI       _ACCA, 01Eh
                        ST        -Y, _ACCA
                        .FRAME  6
                        LDI       _ACCA, 00Eh
                        ST        -Y, _ACCA
                        .FRAME  7
                        LDI       _ACCA, 006h
                        ST        -Y, _ACCA
                        .FRAME  8
                        LDI       _ACCA, 002h
                        ST        -Y, _ACCA
                        .FRAME  9
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  10
                        .FRAME  0
                        CALL      SYSTEM.LCDCHARSET_M
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 458
SoftDDS.L0094:
SoftDDS.L0095:
                        .LINE     459
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL      SYSTEM.LCDCLR_M
                        .LINE     461
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.Vers1Str AND 0FFh
                        LDI       _ACCCHI, SoftDDS.Vers1Str SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     462
                        .BRANCH   17,SoftDDS.LCD1X0Y1
                        CALL      SoftDDS.LCD1X0Y1
                        .LINE     463
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCCLO, SoftDDS.Vers2Str AND 0FFh
                        LDI       _ACCCHI, SoftDDS.Vers2Str SHRB 8
                        MOVW      _ACCB, _ACCCLO
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        .BRANCH   17,SoftDDS.WRITELCD
                        CALL      SoftDDS.WRITELCD
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     464
                        LDI       _ACCA, 003E8h SHRB 8
                        LDI       _ACCB, 003E8h AND 0FFh
                        .FRAME  0
                        CALL      SYSTEM.MDELAY
                        .LINE     466
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PATCHNUM, _ACCA
                        .LINE     467
                        .BRANCH   17,SoftDDS.PATCHCOPYFROMEE
                        CALL      SoftDDS.PATCHCOPYFROMEE
                        .LINE     468
                        LDI       _ACCA, 040h
                        STS       SOFTDDS.ADJVALUE, _ACCA
                        .LINE     470
                        LDI       _ACCA, 028h
                        STS       SOFTDDS.BTNTIME, _ACCA
                        .LINE     471
                        LDI       _ACCA, 00Ah
                        STS       SOFTDDS.BTNTIME2, _ACCA
                        .LINE     473
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.GAINOFFSET, _ACCA
                        .LINE     474
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.PRESETON, _ACCA
                        .LINE     475
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL      SYSTEM.LCDCLR_M
                        .LINE     476
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MODIFIED, _ACCA
                        .LINE     477
                        LDI       _ACCA, 1 SHLB IntFlag
                        OR        Flags, _ACCA
                        SEI
                        .LINE     478
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.PRIME, _ACCA
                        .LINE     479
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.SETLEVELDDS
                        CALL      SoftDDS.SETLEVELDDS
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     480
                        CALL      SYSTEM.INCRCOUNT4START
                        .LINE     481
                        CALL      SYSTEM.CLEARINCRALL4
                        .ENDBLOCK 482
SoftDDS.initall_X:
                        .LINE     482
                        .BRANCH   19
                        RET
                        .ENDFUNC  482



                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Program body
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .FUNC     $_Main, 486, 00020h
                        .ENTRYMAIN $
SoftDDS.$_Main:

                        .BLOCK    486
                        .LINE     487
                        .BRANCH   17,SoftDDS.INITALL
                        CALL      SoftDDS.INITALL
                        .LINE     488
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .LINE     489
                        .BRANCH   17,SoftDDS.SHOWADJUST
                        CALL      SoftDDS.SHOWADJUST
                        .LINE     490
                        LDI       _ACCCLO, SoftDDS.EEAdjArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EEAdjArray SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDS       _ACCA, SoftDDS.LeveldB
                        LDI       _ACCB, 050h AND 0FFh
                        SUB       _ACCB, _ACCA
                        MOV       _ACCA, _ACCB
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        CALL      SYSTEM.ReadEEp8
                        STS       SOFTDDS.ADJVALUE, _ACCA
SoftDDS.L0097:
                        .BLOCK    493
                        .LINE     494
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.SETLEVELDDS
                        CALL      SoftDDS.SETLEVELDDS
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     495
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.ITEMLOWERLIMIT, _ACCA
                        .LINE     496
                        LDI       _ACCA, 002h
                        STS       SOFTDDS.DIGITS, _ACCA
                        .LINE     497
                        LDS       _ACCA, SoftDDS.EditWhich
                        .LINE     498
                        CPI       _ACCA, 0
                        .BRANCH   3,SoftDDS.L0102
                        BREQ      SoftDDS.L0102
                        .BRANCH   20,SoftDDS.L0101
                        JMP       SoftDDS.L0101
SoftDDS.L0102:
SoftDDS.L0100:
                        .BLOCK    499
                        .LINE     499
                        LDI       _ACCA, 063h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .LINE     500
                        LDI       _ACCCLO, SoftDDS.EEAdjArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EEAdjArray SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDS       _ACCA, SoftDDS.LeveldB
                        LDI       _ACCB, 050h AND 0FFh
                        SUB       _ACCB, _ACCA
                        MOV       _ACCA, _ACCB
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        CALL      SYSTEM.ReadEEp8
                        STS       SOFTDDS.ADJVALUE, _ACCA
                        .LINE     501
                        LDS       _ACCA, SoftDDS.AdjValue
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 502
                        .BRANCH   20,SoftDDS.L0099
                        JMP       SoftDDS.L0099
SoftDDS.L0101:
                        .LINE     503
                        CPI       _ACCA, 1
                        .BRANCH   3,SoftDDS.L0105
                        BREQ      SoftDDS.L0105
                        .BRANCH   20,SoftDDS.L0104
                        JMP       SoftDDS.L0104
SoftDDS.L0105:
SoftDDS.L0103:
                        .BLOCK    504
                        .LINE     504
                        LDI       _ACCA, 050h
                        STS       SOFTDDS.ITEMUPPERLIMIT, _ACCA
                        .LINE     505
                        LDS       _ACCA, SoftDDS.LeveldB
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 506
                        .BRANCH   20,SoftDDS.L0099
                        JMP       SoftDDS.L0099
SoftDDS.L0104:
SoftDDS.L0099:
                        .LINE     508
                        .BRANCH   17,SoftDDS.SHOWADJUST
                        CALL      SoftDDS.SHOWADJUST
                        .LINE     509
                        .BRANCH   17,SoftDDS.SETCURSOR
                        CALL      SoftDDS.SETCURSOR
                        .LINE     510
                        .BRANCH   17,SoftDDS.SETINCRVALTOEDITVALUE
                        CALL      SoftDDS.SETINCRVALTOEDITVALUE
                        .LINE     511
                        LDI       _ACCA, 001h
                        STS       SOFTDDS.LASTMENU, _ACCA
                        .LINE     512
                        .BRANCH   17,SoftDDS.SLOWREPEATRELEASE
                        CALL      SoftDDS.SLOWREPEATRELEASE
                        .LINE     513
                        LDI       _ACCA, 000h
                        STS       SOFTDDS.MODIFIED, _ACCA
SoftDDS.L0106:
                        .BLOCK    515
                        .LINE     519
                        LDI       _ACCA, 000h
                        .FRAME  0
                        CALL       SYSTEM.GETINCRVAL4
                        TST       _ACCA
                        BRPL      SoftDDS.L0109
                        SUBI      _ACCB, -00001h AND 0FFh
                        SBCI      _ACCA, -00001h SHRB 8
SoftDDS.L0109:
                        ASR       _ACCA
                        ROR       _ACCB
                        STS       SOFTDDS.INCRVALUE, _ACCB
                        STS       SOFTDDS.INCRVALUE+1, _ACCA
                        .LINE     521
                        LDS       _ACCB, SoftDDS.IncrValue
                        LDS       _ACCA, SoftDDS.IncrValue+1
                        LDI       _ACCBLO, 080h
                        EOR       _ACCA, _ACCBLO
                        CPI       _ACCA, 080h
                        BRNE      SoftDDS.L0110
                        CPI       _ACCB, 000h
SoftDDS.L0110:
                        LDI       _ACCA, 0FFh
                        BRLO      SoftDDS.L0111
                        CLR       _ACCA
SoftDDS.L0111:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0114
                        BRNE      SoftDDS.L0114
                        .BRANCH   20,SoftDDS.L0112
                        JMP       SoftDDS.L0112
SoftDDS.L0114:
                        .BLOCK    522
                        .LINE     522
                        LDI       _ACCA, 00000h SHRB 8
                        LDI       _ACCB, 00000h AND 0FFh
                        STS       SOFTDDS.INCRVALUE, _ACCB
                        STS       SOFTDDS.INCRVALUE+1, _ACCA
                        .LINE     523
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 000h
                        ST        -Y, _ACCA
                        .FRAME  1
                        LDI       _ACCA, 00000h SHRB 8
                        LDI       _ACCB, 00000h AND 0FFh
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  3
                        .FRAME  0
                        CALL      SYSTEM.SETINCRVAL4
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .ENDBLOCK 524
SoftDDS.L0112:
SoftDDS.L0113:
                        .LINE     525
                        LDS       _ACCB, SoftDDS.IncrValue
                        LDS       _ACCA, SoftDDS.IncrValue+1
                        MOV       _ACCA, _ACCB
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.EditValue
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0115
                        SER       _ACCA
SoftDDS.L0115:
                        STS       SOFTDDS.INCRVERDREHT, _ACCA
                        .LINE     526
                        .BRANCH   17,SoftDDS.UPDOWNBUTTON
                        CALL       SoftDDS.UPDOWNBUTTON
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.IncrVerdreht
                        POP       _ACCB
                        OR        _ACCA, _ACCB
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0118
                        BRNE      SoftDDS.L0118
                        .BRANCH   20,SoftDDS.L0116
                        JMP       SoftDDS.L0116
SoftDDS.L0118:
                        .BLOCK    526
                        .LINE     527
                        LDS       _ACCB, 00110h
                        CLR       _ACCA
                        SBRC      _ACCB, 005h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0121
                        BRNE      SoftDDS.L0121
                        .BRANCH   20,SoftDDS.L0119
                        JMP       SoftDDS.L0119
SoftDDS.L0121:
                        .BLOCK    527
                        .LINE     528
                        LDS       _ACCA, SoftDDS.EditValue
                        INC       _ACCA
                        STS       SoftDDS.EditValue, _ACCA
                        .LINE     529
                        .BRANCH   17,SoftDDS.SETINCRVALTOEDITVALUE
                        CALL      SoftDDS.SETINCRVALTOEDITVALUE
                        .ENDBLOCK 530
SoftDDS.L0119:
SoftDDS.L0120:
                        .LINE     531
                        LDS       _ACCB, 00110h
                        CLR       _ACCA
                        SBRC      _ACCB, 006h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0124
                        BRNE      SoftDDS.L0124
                        .BRANCH   20,SoftDDS.L0122
                        JMP       SoftDDS.L0122
SoftDDS.L0124:
                        .BLOCK    531
                        .LINE     532
                        CLR       _ACCA
                        LDS       _ACCB, SoftDDS.EditValue
                        LDI       _ACCEHI, 000h
                        CP        _ACCEHI, _ACCB
                        BRCC      SoftDDS.L0125
                        DEC       _ACCB
                        STS       SoftDDS.EditValue, _ACCB
                        SER       _ACCA
SoftDDS.L0125:
                        .LINE     533
                        .BRANCH   17,SoftDDS.SETINCRVALTOEDITVALUE
                        CALL      SoftDDS.SETINCRVALTOEDITVALUE
                        .ENDBLOCK 534
SoftDDS.L0122:
SoftDDS.L0123:
                        .LINE     535
                        LDS       _ACCA, SoftDDS.IncrVerdreht
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0128
                        BRNE      SoftDDS.L0128
                        .BRANCH   20,SoftDDS.L0126
                        JMP       SoftDDS.L0126
SoftDDS.L0128:
                        .BLOCK    535
                        .LINE     536
                        LDS       _ACCB, SoftDDS.IncrValue
                        LDS       _ACCA, SoftDDS.IncrValue+1
                        MOV       _ACCA, _ACCB
                        STS       SOFTDDS.EDITVALUE, _ACCA
                        .ENDBLOCK 537
SoftDDS.L0126:
SoftDDS.L0127:
                        .LINE     538
                        LDI       _ACCA, 0FFh
                        STS       SOFTDDS.MODIFIED, _ACCA
                        .LINE     539
                        .BRANCH   17,SoftDDS.CHECKITEMLIMITS
                        CALL      SoftDDS.CHECKITEMLIMITS
                        .LINE     540
                        LDS       _ACCA, SoftDDS.EditWhich
                        .LINE     541
                        CPI       _ACCA, 1
                        .BRANCH   3,SoftDDS.L0132
                        BREQ      SoftDDS.L0132
                        .BRANCH   20,SoftDDS.L0131
                        JMP       SoftDDS.L0131
SoftDDS.L0132:
SoftDDS.L0130:
                        .BLOCK    542
                        .LINE     542
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.LEVELDB, _ACCA
                        .LINE     543
                        LDI       _ACCCLO, SoftDDS.EEAdjArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EEAdjArray SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDS       _ACCA, SoftDDS.LeveldB
                        LDI       _ACCB, 050h AND 0FFh
                        SUB       _ACCB, _ACCA
                        MOV       _ACCA, _ACCB
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        CALL      SYSTEM.ReadEEp8
                        STS       SOFTDDS.ADJVALUE, _ACCA
                        .ENDBLOCK 544
                        .BRANCH   20,SoftDDS.L0129
                        JMP       SoftDDS.L0129
SoftDDS.L0131:
                        .LINE     545
                        CPI       _ACCA, 0
                        .BRANCH   3,SoftDDS.L0135
                        BREQ      SoftDDS.L0135
                        .BRANCH   20,SoftDDS.L0134
                        JMP       SoftDDS.L0134
SoftDDS.L0135:
SoftDDS.L0133:
                        .BLOCK    547
                        .LINE     547
                        LDS       _ACCA, SoftDDS.EditValue
                        STS       SOFTDDS.ADJVALUE, _ACCA
                        .LINE     548
                        LDI       _ACCCLO, SoftDDS.EEAdjArray AND 0FFh
                        LDI       _ACCCHI, SoftDDS.EEAdjArray SHRB 8
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        LDS       _ACCA, SoftDDS.LeveldB
                        LDI       _ACCB, 050h AND 0FFh
                        SUB       _ACCB, _ACCA
                        MOV       _ACCA, _ACCB
                        MOV       _ACCB, _ACCA
                        CLR       _ACCA
                        POP       _ACCCHI
                        POP       _ACCCLO
                        ADD       _ACCCLO, _ACCB
                        ADC       _ACCCHI, _ACCA
                        LDS       _ACCA, SoftDDS.EditValue
                        CALL      SYSTEM.WriteEEp8
                        .ENDBLOCK 549
                        .BRANCH   20,SoftDDS.L0129
                        JMP       SoftDDS.L0129
SoftDDS.L0134:
SoftDDS.L0129:
                        .LINE     551
                        .BRANCH   17,SoftDDS.SHOWADJUST
                        CALL      SoftDDS.SHOWADJUST
                        .LINE     552
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        .BRANCH   17,SoftDDS.SETLEVELDDS
                        CALL      SoftDDS.SETLEVELDDS
                        POP       _FPTRHI
                        POP       _FRAMEPTR
                        .LINE     553
                        .BRANCH   17,SoftDDS.FASTREPEATRELEASE
                        CALL      SoftDDS.FASTREPEATRELEASE
                        .ENDBLOCK 554
SoftDDS.L0116:
SoftDDS.L0117:
                        .ENDBLOCK 555
                        .LINE     555
SoftDDS.L0107:
                        .BRANCH   17,SoftDDS.NAVIBUTTON
                        CALL       SoftDDS.NAVIBUTTON
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0136
                        BRNE      SoftDDS.L0136
                        .BRANCH   20,SoftDDS.L0106
                        JMP       SoftDDS.L0106
SoftDDS.L0136:
SoftDDS.L0108:
                        .LINE     557
                        LDS       _ACCB, 00110h
                        CLR       _ACCA
                        SBRC      _ACCB, 007h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0139
                        BRNE      SoftDDS.L0139
                        .BRANCH   20,SoftDDS.L0137
                        JMP       SoftDDS.L0137
SoftDDS.L0139:
                        .BLOCK    557
                        .LINE     558
                        CLR       _ACCA
                        LDS       _ACCB, SoftDDS.LeveldB
                        LDI       _ACCEHI, 000h
                        CP        _ACCEHI, _ACCB
                        BRCC      SoftDDS.L0140
                        DEC       _ACCB
                        STS       SoftDDS.LeveldB, _ACCB
                        SER       _ACCA
SoftDDS.L0140:
                        .ENDBLOCK 559
SoftDDS.L0137:
SoftDDS.L0138:
                        .LINE     560
                        LDS       _ACCB, 00110h
                        CLR       _ACCA
                        SBRC      _ACCB, 003h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0143
                        BRNE      SoftDDS.L0143
                        .BRANCH   20,SoftDDS.L0141
                        JMP       SoftDDS.L0141
SoftDDS.L0143:
                        .BLOCK    560
                        .LINE     561
                        LDS       _ACCA, SoftDDS.EditWhich
                        CPI       _ACCA, 0
                        BREQ      SoftDDS.L0144
                        DEC       _ACCA
SoftDDS.L0144:
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .ENDBLOCK 562
SoftDDS.L0141:
SoftDDS.L0142:
                        .LINE     563
                        LDS       _ACCB, 00110h
                        CLR       _ACCA
                        SBRC      _ACCB, 004h
                        SER       _ACCA
                        COM       _ACCA
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0147
                        BRNE      SoftDDS.L0147
                        .BRANCH   20,SoftDDS.L0145
                        JMP       SoftDDS.L0145
SoftDDS.L0147:
                        .BLOCK    563
                        .LINE     564
                        LDS       _ACCA, SoftDDS.EditWhich
                        INC       _ACCA
                        CPI       _ACCA, 4
                        BRCS      SoftDDS.L0148
                        CLR       _ACCA
SoftDDS.L0148:
                        STS       SoftDDS.EditWhich, _ACCA
                        .LINE     565
                        LDS       _ACCA, SoftDDS.EditWhich
                        PUSH      _ACCA
                        LDS       _ACCA, SoftDDS.LastMenu
                        POP       _ACCB
                        CP        _ACCB, _ACCA
                        LDI       _ACCA, 0h
                        BREQ      SoftDDS.L0149
                        BRLO      SoftDDS.L0149
                        SER       _ACCA
SoftDDS.L0149:
                        TST       _ACCA
                        .BRANCH   4,SoftDDS.L0152
                        BRNE      SoftDDS.L0152
                        .BRANCH   20,SoftDDS.L0150
                        JMP       SoftDDS.L0150
SoftDDS.L0152:
                        .BLOCK    565
                        .LINE     566
                        LDS       _ACCA, SoftDDS.LastMenu
                        STS       SOFTDDS.EDITWHICH, _ACCA
                        .ENDBLOCK 567
SoftDDS.L0150:
SoftDDS.L0151:
                        .ENDBLOCK 568
SoftDDS.L0145:
SoftDDS.L0146:
                        .ENDBLOCK 569
                        .LINE     569
                        .BRANCH   20,SoftDDS.L0097
                        JMP       SoftDDS.L0097
SoftDDS.L0098:
                        .ENDBLOCK 570

SoftDDS.$_MAINEX:
                        .LINE     570
                        .BRANCH   20,SoftDDS.$_MAINEX
                        RJMP      SoftDDS.$_MAINEX


                        .ENDFUNC  570

SYSTEM.$Main_stk        .EQU    00158h          ; var iData  Process stack area
SYSTEM.$Main_stk_e      .EQU    001D7h          ; var iData  Process stack area
SYSTEM.$Main_Frame      .EQU    001D8h          ; var iData  Process stack area
SYSTEM.$Main_Frame_e    .EQU    00237h          ; var iData  Process stack area

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Initialisation and Library Routines
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                        .ENTRY
SYSTEM.RESET:
                        CLI
                        ; >> Stack Init [main process only] <<
                        LDI       _ACCA, 001h
                        LDI       _ACCB, 0D7h
                        OUT       sph, _ACCA
                        OUT       spl, _ACCB


                        ; >> Memory Init <<
                        CLR       _ACCA
                        LDI       _ACCCLO, 00009h AND 0FFh
                        LDI       _ACCCHI, 00009h SHRB 8
                        LDI       _ACCBLO, 00006h AND 0FFh
                        LDI       _ACCBHI, 00006h SHRB 8
                        ADIW      _ACCCLO, 1
SYSTEM.L0153:
                        SBIW      _ACCCLO, 001h
                        BREQ      SYSTEM.L0155
SYSTEM.L0154:
                        ST        X+, _ACCA
                        RJMP      SYSTEM.L0153
SYSTEM.L0155:
                        LDI       _ACCBLO, 00100h AND 0FFh
                        LDI       _ACCBHI, 00100h SHRB 8
                        LDI       _ACCCLO, 00400h AND 0FFh
                        LDI       _ACCCHI, 00400h SHRB 8
                        ADIW      _ACCCLO, 1
SYSTEM.L0156:
                        SBIW      _ACCCLO, 001h
                        BREQ      SYSTEM.L0158
SYSTEM.L0157:
                        ST        X+, _ACCA
                        RJMP      SYSTEM.L0156
SYSTEM.L0158:
                        LDI       _FRAMEPTR, 00237h AND 0FFh
                        LDI       _FPTRHI, 00237h SHRB 8

                        CLI
                        LDI       _ACCA, 0FEH ROLB IntFlag
                        AND       Flags, _ACCA

                        ; ============ init structured constants ============
                        ; >> Hardware Init <<

                        ; >> SysTick init: 10msec <<
                        ; >> real SysTick (exact): 9.984 msec <<
                        LDI       _ACCA, 064h
                        STS       SysTickTime, _ACCA
                        OUT       tcnt0, _ACCA
                        LDI       _ACCA, 5
                        OUT       tccr0, _ACCA
                        LDI       _ACCA, 001h
                        STS       timsk0, _ACCA

                        ; >> IncrPort4 Init <<
                        LDI       _ACCA, 0
                        STS       TCCR1A, _ACCA
                        LDI       _ACCA, 009h
                        STS       TCCR1B, _ACCA
                        LDI       _ACCA, 00FA0h SHRB 8
                        LDI       _ACCB, 00FA0h AND 0FFh
                        STS       OCR1AH, _ACCA
                        STS       OCR1AL, _ACCB

                        ; >> TWIPORT Init <<
                        LDI       _ACCA, 00Ch
                        STS       TWBR, _ACCA
                        LDI       _ACCA, 0FFh
                        STS       TWI_DevLock, _ACCA

                        CLR       Flags
                        CLR       Flags2

                        ; ============ Start User Main Program ============

                        .DEB      MAINENTRY
                        JMP       SoftDDS.$_Main

                        ; ============ Interrupt Service ============

SYSTEM.$INTERRUPT_TIMER0:
                        .DEB      SYSTICKENTRY
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        PUSH      _ACCB
                        PUSH      _ACCA
                        IN        _ACCA, SREG
                        PUSH      _ACCA
                        LDS       _ACCA, SysTickTime
                        IN        _ACCB, tcnt0
                        ADD       _ACCA, _ACCB
                        OUT       tcnt0, _ACCA
                        LDI       _ACCA, 0FEH ROLB IntFlag
                        AND       Flags, _ACCA
                        LDS       _ACCB, _TWI_TO
                        TST       _ACCB
                        BREQ      SYSTEM.L0159
                        DEC       _ACCB
                        STS       _TWI_TO, _ACCB
SYSTEM.L0159:
                        LDI       _ACCA, 1 SHLB IntFlag
                        OR        Flags, _ACCA
                        POP       _ACCA
                        OUT       SREG, _ACCA
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        .DEB      SYSTICKEXIT
                        RETI

SYSTEM.$INTERRUPT_TIMER1COMPA:
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        PUSH      _ACCB
                        PUSH      _ACCA
                        IN        _ACCA, SREG
                        PUSH      _ACCA
                        RJMP      SYSTEM.L0164

SYSTEM.L0160:
                        MOV       _ACCB, _ACCA
                        LSR       _ACCA
                        LSR       _ACCA
                        ANDI      _ACCB, 3
                        BRNE      SYSTEM.L0161
                        ADIW      _ACCCLO, 2
                        RET
SYSTEM.L0161:
                        CPI       _ACCB, 1
                        BREQ      SYSTEM.L0162
                        LDD       _ACCALO, Z+0
                        LDD       _ACCAHI, Z+1
                        SUBI      _ACCALO, 0FFh
                        SBCI      _ACCAHI, 0FFh
                        RJMP      SYSTEM.L0163
SYSTEM.L0162:
                        LDD       _ACCALO, Z+0
                        LDD       _ACCAHI, Z+1
                        SUBI      _ACCALO, 1
                        SBCI      _ACCAHI, 0
SYSTEM.L0163:
                        ST        Z+, _ACCALO
                        ST        Z+, _ACCAHI
                        RET

SYSTEM.L0164:
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
                        PUSH      _ACCDLO
                        PUSH      _ACCDHI
                        IN        _ACCA, PINC
                        .DEB      Incr4Int
                        ANDI      _ACCA, 03h;
                        LDI       _ACCCLO, _INCRSTATE4 AND 0FFh
                        LDI       _ACCCHI, _INCRSTATE4 SHRB 8
                        LDD       _ACCB, Z+0
                        STD       Z+0, _ACCA
                        MOV       _ACCALO, _ACCB;
                        EOR       _ACCALO, _ACCA;
                        BREQ      SYSTEM.L0165
                        MOV       _ACCAHI, _ACCALO;
                        ANDI      _ACCALO, 055h;
                        ANDI      _ACCAHI, 0AAh;
                        MOV       _ACCDLO, _ACCALO;
                        EOR       _ACCDLO, _ACCAHI;
                        AND       _ACCALO, _ACCDLO
                        AND       _ACCAHI, _ACCDLO
                        MOV       _ACCCLO, _ACCB;
                        ANDI      _ACCCLO, 055h;
                        MOV       _ACCDLO, _ACCB;
                        ANDI      _ACCDLO, 0AAh;
                        LSR       _ACCDLO;
                        EOR       _ACCCLO, _ACCDLO;
                        COM       _ACCCLO;
                        MOV       _ACCCHI, _ACCA;
                        ANDI      _ACCCHI, 055h;
                        MOV       _ACCDLO, _ACCA;
                        ANDI      _ACCDLO, 0AAh;
                        LSR       _ACCDLO;
                        EOR       _ACCCHI, _ACCDLO;
                        COM       _ACCCHI;
                        MOV       _ACCA, _ACCALO;
                        AND       _ACCA, _ACCCLO;
                        MOV       _ACCB, _ACCCHI;
                        LSL       _ACCB;
                        AND       _ACCB, _ACCAHI;
                        LSR       _ACCB;
                        OR        _ACCA, _ACCB;
                        AND       _ACCALO, _ACCCHI;
                        LSL       _ACCALO;
                        LSL       _ACCCLO;
                        AND       _ACCAHI, _ACCCLO;
                        OR        _ACCALO, _ACCAHI;
                        OR        _ACCA, _ACCALO;
                        LDI       _ACCCLO, _INCRCOUNT4_0 AND 0FFh
                        LDI       _ACCCHI, _INCRCOUNT4_0 SHRB 8
                        RCALL     SYSTEM.L0160
SYSTEM.L0165:
                        POP       _ACCDHI
                        POP       _ACCDLO
                        POP       _ACCAHI
                        POP       _ACCALO
                        POP       _ACCA
                        OUT       SREG, _ACCA
                        POP       _ACCA
                        POP       _ACCB
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RETI


                        ; ============ Library ============

SYSTEM._LCDM_ini:
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00002h AND 0FFh
                        LDI       _ACCBHI, 00002h SHRB 8
                        LDI       _ACCAHI, 002h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 00000h AND 0FFh
                        LDI       _ACCEHI, 00000h SHRB 8
                        CLT
                        BLD       Flags, _I2C2BYTE
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00002h AND 0FFh
                        LDI       _ACCBHI, 00002h SHRB 8
                        LDI       _ACCAHI, 004h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 00000h AND 0FFh
                        LDI       _ACCEHI, 00000h SHRB 8
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00002h AND 0FFh
                        LDI       _ACCBHI, 00002h SHRB 8
                        LDI       _ACCAHI, 006h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 0F800h AND 0FFh
                        LDI       _ACCEHI, 0F800h SHRB 8
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        RET

SYSTEM._LCDM_CLOSE:
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 003h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        CLT
                        BLD       Flags, _I2C2BYTE
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 003h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 000h
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        RET

SYSTEM._LCDM_START_RW:
                        PUSH      _ACCELO
                        MOV       _ACCALO, _ACCA
                        LDI       _ACCELO, 000h
                        RCALL     SYSTEM._LCDM_CLOSE
                        POP       _ACCELO
                        PUSH      _ACCELO
                        ANDI      _ACCELO, 2
                        BREQ       SYSTEM.L0166
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 006h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 0FFh
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        RJMP      SYSTEM.L0167
SYSTEM.L0166:
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 006h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        LDI       _ACCELO, 000h
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 006h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        MOV       _ACCELO, _ACCALO
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
SYSTEM.L0167:
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 003h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        POP       _ACCELO
                        PUSH      _ACCELO
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCAHI, 003h
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        POP       _ACCELO
                        PUSH      _ACCELO
                        ORI       _ACCELO, 1
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        POP       _ACCELO
                        ANDI      _ACCELO, 2
                        BREQ       SYSTEM.L0168
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00000h AND 0FFh
                        LDI       _ACCBHI, 00000h SHRB 8
                        LDI       _ACCAHI, 000h
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
SYSTEM.L0168:
                        RET

SYSTEM._LCDM_Busy_Rd:
                        LDI       _ACCELO, 002h
                        RCALL     SYSTEM._LCDM_START_RW
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        CALL      SYSTEM.TWIinp
                        PUSH      _ACCELO
                        LDI       _ACCELO, 002h
                        RCALL     SYSTEM._LCDM_CLOSE
                        POP       _ACCA
                        .DEB      LCDBUSY_RD
                        RET

SYSTEM._LCDWAIT_M:
                        LDI       _ACCCLO, 00280h AND 0FFh
                        LDI       _ACCCHI, 00280h SHRB 8
SYSTEM.L0169:
                        RCALL     SYSTEM._LCDM_Busy_Rd
                        TST       _ACCA
                        BRPL       SYSTEM.L0170
                        SBIW      _ACCCLO, 1
                        BRNE      SYSTEM.L0169
                        CLR       _ACCB
                        CLR       _ACCA
                        RET
SYSTEM.L0170:
                        MOV       _ACCB, _ACCA
                        SER       _ACCA
                        RET

SYSTEM._LCDM_Ctrl_Wr:
                        PUSH      _ACCA
                        RCALL     SYSTEM._LCDWAIT_M
                        TST       _ACCA
                        BRNE      SYSTEM.L0171
                        POP       _ACCB
                        RET
SYSTEM.L0171:
                        POP       _ACCA
SYSTEM._LCDM_Ctrl_Wr_NW:
                        .DEB      LCDCTRL_WR
                        LDI       _ACCELO, 000h
                        RCALL     SYSTEM._LCDM_START_RW
                        LDI       _ACCELO, 000h
                        RCALL     SYSTEM._LCDM_CLOSE
                        SER       _ACCA
                        RET

SYSTEM._LCDM_Data_Wr:
                        .DEB      LCDOUT_M
                        LDI       _ACCELO, 004h
                        RCALL     SYSTEM._LCDM_START_RW
                        LDI       _ACCELO, 004h
                        RCALL     SYSTEM._LCDM_CLOSE
                        SER       _ACCA
                        RET

SYSTEM._LCDM_Data_Rd:
                        LDI       _ACCELO, 006h
                        RCALL     SYSTEM._LCDM_START_RW
                        LDS       _ACCDLO, _LCDM_PORT
                        ORI       _ACCDLO, 20h
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        CALL      SYSTEM.TWIinp
                        PUSH      _ACCELO
                        LDI       _ACCELO, 006h
                        RCALL     SYSTEM._LCDM_CLOSE
                        POP       _ACCA
                        .DEB      LCDINP_M
                        RET

SYSTEM.LCDSETUP_M:
                        STS       _LCDM_PORT, _ACCA
                        ORI       _ACCA, 20h
                        CALL      SYSTEM.TWIstat
                        .DEB      I2CSTAT_M
                        TST       _ACCA
                        BRNE       SYSTEM.L0172
                        RET
SYSTEM.L0172:
                        RCALL     SYSTEM._LCDM_ini
                        LDI       _ACCB, 16
                        CLR       _ACCA
                        CALL      SYSTEM.MDELAY
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr_NW
                        LDI       _ACCB, 5
                        CLR       _ACCA
                        CALL      SYSTEM.MDELAY
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr_NW
                        LDI       _ACCB, 1
                        CLR       _ACCA
                        CALL      SYSTEM.MDELAY
                        LDI       _ACCA, 30h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr_NW
                        LDI       _ACCB, 1
                        CLR       _ACCA
                        CALL      SYSTEM.MDELAY
                        LDI       _ACCA, 38h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr
                        LDI       _ACCA, 08h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr
                        LDI       _ACCA, 1
                        RCALL     SYSTEM._LCDM_Ctrl_Wr
                        LDI       _ACCA, 6
                        RCALL     SYSTEM._LCDM_Ctrl_Wr_NW
                        RET

SYSTEM.LCDOUT_M:
                        RJMP      SYSTEM._LCDM_Data_Wr

SYSTEM.LCDCTRL_M:
                        LDD       _ACCA, Y+001h
                        STS       _LCDM_PORT, _ACCA
                        LDD       _ACCA, Y+000h
                        RJMP      SYSTEM._LCDM_Ctrl_Wr

SYSTEM.LCDINP_M:
                        STS       _LCDM_PORT, _ACCA
                        RJMP      SYSTEM._LCDM_Data_Rd

SYSTEM.LCDSTAT_M:
                        STS       _LCDM_PORT, _ACCA
                        RJMP      SYSTEM._LCDM_Busy_Rd

SYSTEM.LCDsetPort_M:
                        STS       _LCDM_PORT, _ACCA
                        RET

SYSTEM.LCDgetPort_M:
                        LDS       _ACCA, _LCDM_PORT
                        RET

SYSTEM.LCDON_M:
                        LDD       _ACCA, Y+000h
                        STS       _LCDM_PORT, _ACCA
                        LDI       _ACCA, 0FFh
                        LDI       _ACCB, 0FFh
                        RJMP      SYSTEM.L0173
SYSTEM.LCDCURSOR_M:
                        LDD       _ACCA, Y+002h
                        STS       _LCDM_PORT, _ACCA
                        LDD       _ACCA, Y+000h
                        LDD       _ACCB, Y+001h
SYSTEM.L0173:
                        TST       _ACCA
                        BRNE       SYSTEM.L0174
                        LDI       _ACCA, 0Ch
                        RJMP      SYSTEM.L0175

SYSTEM.L0174:
                        LDI       _ACCA, 0Dh
SYSTEM.L0175:
                        TST       _ACCB
                        BREQ       SYSTEM.L0176
                        ORI       _ACCA, 2
SYSTEM.L0176:
                        RJMP      SYSTEM._LCDM_Ctrl_Wr

SYSTEM.LCDXY_M:
                        LDD       _ACCA, Y+002h
                        STS       _LCDM_PORT, _ACCA
                        LDD       _ACCA, Y+000h
                        LDD       _ACCB, Y+001h
                        CPI       _ACCA, 0
                        BRNE       SYSTEM.L0177
                        LDI       _ACCA, 080h
                        RJMP      SYSTEM.L0181

SYSTEM.L0177:
                        CPI       _ACCA, 1
                        BRNE       SYSTEM.L0178
                        LDI       _ACCA, 0C0h
                        RJMP      SYSTEM.L0181

SYSTEM.L0178:
                        CPI       _ACCA, 2
                        BRNE       SYSTEM.L0179
                        LDI       _ACCA, 090h
                        RJMP      SYSTEM.L0181

SYSTEM.L0179:
                        CPI       _ACCA, 3
                        BRNE       SYSTEM.L0180
                        LDI       _ACCA, 0D0h
                        RJMP      SYSTEM.L0181

SYSTEM.L0180:
                        LDI       _ACCA, 080h
SYSTEM.L0181:
                        ADD       _ACCA, _ACCB
                        RJMP      SYSTEM._LCDM_Ctrl_Wr_NW

SYSTEM.LCDCLR_M:
                        STS       _LCDM_PORT, _ACCA
                        LDI       _ACCA, 01h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr
                        LDI       _ACCB, 5
                        CLR       _ACCA
                        CALL      SYSTEM.MDELAY
                        RET

SYSTEM.LCDCLREOL_M:
                        STS       _LCDM_PORT, _ACCA
                        RCALL     SYSTEM._LCDWAIT_M
                        RCALL     SYSTEM._LCDM_Busy_Rd
                        ORI       _ACCA, 80h
                        PUSH      _ACCA
                        ANDI      _ACCA, 0Fh
                        LDI       _ACCB, 010h
                        SUB       _ACCB, _ACCA
SYSTEM.L0182:
                        PUSH      _ACCB
                        LDI       _ACCA, 20h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        POP       _ACCB
                        DEC       _ACCB
                        BRNE       SYSTEM.L0182
                        POP       _ACCA
                        RJMP      SYSTEM._LCDM_Ctrl_Wr

SYSTEM.LCDHOME_M:
                        STS       _LCDM_PORT, _ACCA
                        LDI       _ACCA, 02h
                        RJMP      SYSTEM._LCDM_Ctrl_Wr

SYSTEM.LCDCHARSET_M:
                        LDD       _ACCA, Y+009h
                        STS       _LCDM_PORT, _ACCA
                        LDD       _ACCA, Y+008h
                        ANDI      _ACCA, 0Fh
                        LSL       _ACCA
                        LSL       _ACCA
                        LSL       _ACCA
                        ORI       _ACCA, 40h
                        RCALL     SYSTEM._LCDM_Ctrl_Wr
                        LDD       _ACCA, Y+007h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDD       _ACCA, Y+006h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDD       _ACCA, Y+005h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDD       _ACCA, Y+004h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDD       _ACCA, Y+003h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDD       _ACCA, Y+002h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDD       _ACCA, Y+001h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDD       _ACCA, Y+000h
                        RCALL     SYSTEM._LCDM_Data_Wr
                        LDI       _ACCA, 80h
                        RJMP      SYSTEM._LCDM_Ctrl_Wr

SYSTEM.LCDportInp_M:
                        MOV       _ACCDLO, _ACCA
                        ORI       _ACCDLO, 20h
                        PUSH      _ACCDLO
                        LDI       _ACCBLO, 00000h AND 0FFh
                        LDI       _ACCBHI, 00000h SHRB 8
                        LDI       _ACCAHI, 001h
                        LDI       _ACCDHI, 000h
                        CALL      SYSTEM.TWIout
                        POP       _ACCDLO
                        LDI       _ACCBLO, 00001h AND 0FFh
                        LDI       _ACCBHI, 00001h SHRB 8
                        LDI       _ACCCLO, _ACCELO AND 0FFh
                        LDI       _ACCCHI, _ACCELO SHRB 8
                        CALL      SYSTEM.TWIinp
                        MOV       _ACCA, _ACCELO
                        ANDI      _ACCA, 0F8h
                        RET

SYSTEM.TWISTARTB:
                        LDI       _ACCA, 0
                        STS       TWI_DevLock, _ACCA
                        LDS       _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 000h
                        BRNE      SYSTEM.L0194
                        LDI       _ACCA, 090h
                        STS       TWCR, _ACCA
SYSTEM.L0194:
                        LDI       _ACCA, 0A4h
                        STS       TWCR, _ACCA
                        LDI       _ACCA, 10
                        STS       _TWI_TO, _ACCA
SYSTEM.L0192:
                        LDS       _ACCA, TWCR
                        ANDI      _ACCA, 080h
                        BRNE      SYSTEM.L0195
                        LDS       _ACCA, _TWI_TO
                        TST       _ACCA
                        BRNE      SYSTEM.L0192
                        STS       TWCR, _ACCA
                        RJMP      SYSTEM.TWI_ERROR
SYSTEM.L0195:
                        LDS       _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 008h
                        BRNE      SYSTEM.L0199
                        RJMP      SYSTEM.TWI_ERROR
SYSTEM.L0199:
                        RJMP      SYSTEM.TWI_OK

SYSTEM.TWISTOPB:
SYSTEM.L0200:
                        LDS       _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 0F8h
                        BREQ      SYSTEM.L0200
                        CPI       _ACCA, 000h
                        BRNE      SYSTEM.L0201
                        LDI       _ACCA, 090h
                        STS       TWCR, _ACCA
                        NOP
SYSTEM.L0201:
                        LDI       _ACCB, 094h
                        STS       TWCR, _ACCB
                        SER       _ACCA
                        STS       TWI_DevLock, _ACCA
                        RET

SYSTEM.TWISENDBYTE:
                        STS       TWDR, _ACCDLO
                        LDI       _ACCA, 084h
                        STS       TWCR, _ACCA
                        LDI       _ACCA, 10
                        STS       _TWI_TO, _ACCA
SYSTEM.L0203:
                        LDS       _ACCA, TWCR
                        ANDI      _ACCA, 080h
                        BRNE      SYSTEM.L0204
                        LDS       _ACCA, _TWI_TO
                        TST       _ACCA
                        BRNE      SYSTEM.L0203
                        RJMP      SYSTEM.TWI_ERROR
SYSTEM.L0204:
                        LDS       _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 028h
                        BREQ      SYSTEM.TWI_OK
                        CPI       _ACCA, 018h
                        BREQ      SYSTEM.TWI_OK
                        CPI       _ACCA, 040h
                        BREQ      SYSTEM.TWI_OK
                        RJMP      SYSTEM.TWI_ERROR

SYSTEM.TWIRECVBYTE:
                        LDI       _ACCA, 0C4h
                        STS       TWCR, _ACCA
                        SBIW      _ACCBLO, 1
                        BRMI      SYSTEM.TWISTOPB
                        BRNE      SYSTEM.L0205
                        LDI       _ACCA, 084h
SYSTEM.L0205:
                        STS       TWCR, _ACCA
SYSTEM.L0206:
                        LDS       _ACCA, TWCR
                        SBRS      _ACCA, 7
                        RJMP      SYSTEM.L0206
                        LDS       _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 058h
                        BREQ      SYSTEM.L0208
                        CPI       _ACCA, 050h
                        BRNE      SYSTEM.TWI_ERROR
SYSTEM.L0208:
                        LDS       _ACCA, TWDR
                        ST        Z+, _ACCA
                        RJMP      SYSTEM.TWIRECVBYTE
SYSTEM.TWI_OK:
                        LDI       _ACCA, true
                        RET
SYSTEM.TWI_ERROR:
                        LDS       _ACCA, TWSR
                        ANDI      _ACCA, 0FCh
                        CPI       _ACCA, 000h
                        BRNE      SYSTEM.L0207
                        LDI       _ACCA, 090h
                        STS       TWCR, _ACCA
SYSTEM.L0207:
                        LDI       _ACCA, false
                        RET

SYSTEM.TWISTAT:
                        MOV       _ACCDLO, _ACCA
                        RCALL     SYSTEM.TWISTARTB
                        CLC
                        ROL       _ACCDLO
                        RCALL     SYSTEM.TWISENDBYTE
                        MOV       _ACCBHI, _ACCA
                        RCALL     SYSTEM.TWISTOPB
                        MOV       _ACCA, _ACCBHI
                        RET

SYSTEM.TWIINP:
                        RCALL     SYSTEM.TWISTARTB
                        SEC
                        ROL       _ACCDLO
                        RCALL     SYSTEM.TWISENDBYTE
                        TST       _ACCA
                        BREQ      SYSTEM.L0210
                        RCALL     SYSTEM.TWIRECVBYTE
                        TST       _ACCA
                        BREQ      SYSTEM.L0210
                        RJMP      SYSTEM.TWI_OK
SYSTEM.L0210:
                        RCALL     SYSTEM.TWI_ERROR
                        SER       _ACCB
                        STS       TWI_DevLock, _ACCB
                        RET

SYSTEM.TWIOUT:
                        RCALL     SYSTEM.TWISTARTB
                        CLC
                        ROL       _ACCDLO
                        RCALL     SYSTEM.TWISENDBYTE
                        TST       _ACCA
                        BREQ      SYSTEM.L0216
SYSTEM.L0211:
                        MOV       _ACCDLO, _ACCAHI
                        RCALL     SYSTEM.TWISENDBYTE
                        TST       _ACCA
                        BREQ      SYSTEM.L0216
                        BST       Flags, _I2C2BYTE
                        BRTC      SYSTEM.L0215
                        MOV       _ACCDLO, _ACCALO
SYSTEM.L0213:
                        RCALL     SYSTEM.TWISENDBYTE
                        TST       _ACCA
                        BREQ      SYSTEM.L0216
SYSTEM.L0215:
                        TST       _ACCBLO
                        BRNE       SYSTEM.L0220
                        TST       _ACCBHI
                        BREQ       SYSTEM.L0214
SYSTEM.L0220:
                        TST       _ACCDHI
                        BRNE      SYSTEM.L0217
                        LD        _ACCDLO, Z+
                        RJMP      SYSTEM.L0219
SYSTEM.L0217:
                        CPI       _ACCDHI, 1
                        BRNE      SYSTEM.L0218
                        LPM       _ACCDLO, Z+
                        RJMP      SYSTEM.L0219
SYSTEM.L0218:
                        CALL      SYSTEM.ReadEEp8D
                        ADIW      _ACCCLO, 01h
SYSTEM.L0219:
                        SBIW      _ACCBLO, 1
                        RJMP      SYSTEM.L0213
SYSTEM.L0214:
                        RCALL     SYSTEM.TWISTOPB
                        RJMP      SYSTEM.TWI_OK
SYSTEM.L0216:
                        RCALL     SYSTEM.TWI_ERROR
                        SER       _ACCB
                        STS       TWI_DevLock, _ACCB
                        CLR       _ACCA
                        RET

SYSTEM.IncrCount4start:
                        CLI
                        LDS       _ACCA, TIMSK1
                        ORI       _ACCA, 002h
                        STS       TIMSK1, _ACCA
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.GetIncrVal4:
                        LDI       _ACCCLO, _INCRCOUNT4_0 AND 0FFh
                        LDI       _ACCCHI, _INCRCOUNT4_0 SHRB 8
                        CPI       _ACCA, 1
                        BRCS      SYSTEM.L0221
                        LDI       _ACCB, 0
                        LDI       _ACCA, 0
                        RET
SYSTEM.L0221:
                        CLR       _ACCB
                        LSL       _ACCA
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        CLI
                        LD        _ACCB, Z+
                        LD        _ACCA, Z+
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.SetIncrVal4:
                        LDD       _ACCA, Y+002h
                        CPI       _ACCA, 1
                        BRCS      SYSTEM.L0222
                        RET
SYSTEM.L0222:
                        LDI       _ACCCLO, _INCRCOUNT4_0 AND 0FFh
                        LDI       _ACCCHI, _INCRCOUNT4_0 SHRB 8
                        CLR       _ACCB
                        LSL       _ACCA
                        ADD       _ACCCLO, _ACCA
                        ADC       _ACCCHI, _ACCB
                        LDD       _ACCB, Y+000h
                        LDD       _ACCA, Y+001h
                        CLI
                        ST        Z+, _ACCB
                        ST        Z+, _ACCA
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.ClearIncrAll4:
                        CLR       _ACCA
                        LDI       _ACCB, 5
                        LDI       _ACCCLO, _INCRSTATE4 AND 0FFh
                        LDI       _ACCCHI, _INCRSTATE4 SHRB 8
                        CLI
SYSTEM.L0223:
                        ST        Z+, _ACCA
                        DEC       _ACCB
                        BRNE      SYSTEM.L0223
                        SBRC      Flags, IntFlag
                        SEI
                        RET


SYSTEM.MDELAY:
                        .DEB      DEBdelay
                        MOVW      _ACCDLO, _ACCB
                        CLR       _ACCA
                        CP        _ACCDLO, _ACCA
                        CPC       _ACCDHI, _ACCA
                        BREQ      SYSTEM.MDELAY3
SYSTEM.MDELAY1:
                        LDI       _ACCB, 00C7Ah AND 0FFh
                        LDI       _ACCA, 00C7Ah SHRB 8
SYSTEM.MDELAY2:
                        SUBI      _ACCB, 001h
                        SBCI      _ACCA, 000h
                        NOP
                        BRNE      SYSTEM.MDELAY2
                        SUBI      _ACCDLO, 001h
                        SBCI      _ACCDHI, 000h
                        BRNE      SYSTEM.MDELAY1
SYSTEM.MDELAY3:
                        RET

SYSTEM.UDELAY:
                        TST       _ACCA
                        BREQ      SYSTEM.UDELAY3
SYSTEM.UDELAY1:
                        LDI       _ACCB, 00026h AND 0FFh
SYSTEM.UDELAY2:
                        DEC       _ACCB
                        NOP
                        BRNE      SYSTEM.UDELAY2
                        DEC       _ACCA
                        BRNE      SYSTEM.UDELAY1
SYSTEM.UDELAY3:
                        RET

SYSTEM.BlockCopyC:
SYSTEM.L0224:
                        SUBI      _ACCALO, 001h
                        SBCI      _ACCAHI, 000h
                        BRCS      SYSTEM.L0225
                        LD        _ACCA, Z+
                        ST        X+, _ACCA
                        RJMP      SYSTEM.L0224
SYSTEM.L0225:
                        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.L0226
                        OUT       eedr, _ACCA
                        SBI       eecr, 2
                        SBI       eecr, 1
SYSTEM.L0226:
                        POP       _ACCDLO
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.ReadEEp8:
                        RCALL     SYSTEM._EEpWaitReady
                        OUT       eearl, _ACCCLO
                        OUT       eearh, _ACCCHI
                        SBI       eecr, 0
                        NOP
                        IN        _ACCA, eedr
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.ReadEEp8D:
                        RCALL     SYSTEM._EEpWaitReady
                        OUT       eearl, _ACCCLO
                        OUT       eearh, _ACCCHI
                        SBI       eecr, 0
                        NOP
                        IN        _ACCDLO, eedr
                        SBRC      Flags, IntFlag
                        SEI
                        RET

SYSTEM.StringInsert:
                        POP       _ACCAHI
                        POP       _ACCALO
                        POP       _ACCB
                        POP       _ACCBHI
                        POP       _ACCBLO
                        POP       _ACCCHI
                        POP       _ACCCLO
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
SYSTEM._StrIns:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 3
                        TST       _ACCFLO
                        BREQ      SYSTEM.L0227
                        LSR       _ACCFLO
                        BRNE      SYSTEM.L0229
                        PUSH      _ACCA
                        CALL      SYSTEM.ReadEEp8
                        MOV       _ACCAHI, _ACCA
                        POP       _ACCA
                        ADIW      _ACCCLO, 01h
                        RJMP      SYSTEM.L0228
SYSTEM.L0229:
                        LPM       _ACCAHI, Z+
                        RJMP      SYSTEM.L0228
SYSTEM.L0227:
                        LD        _ACCAHI, Z+
SYSTEM.L0228:
                        TST       _ACCAHI
                        BREQ      SYSTEM.L0236
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM.L0231
SYSTEM.L0231:
                        LD        _ACCALO, X
SYSTEM.L0233:
                        CP        _ACCB, _ACCA
                        BRCC      SYSTEM.L0235
SYSTEM.L0236:
                        RET
SYSTEM.L0235:
                        MOV       _ACCDLO, _ACCB
                        SUB       _ACCDLO, _ACCA
                        MOV       _ACCDHI, _ACCDLO
                        SUB       _ACCDLO, _ACCAHI
                        BRCS      SYSTEM.L0241
                        CP        _ACCALO, _ACCA
                        BRCC      SYSTEM.L0238
                        MOV       _ACCELO, _ACCAHI
                        ADD       _ACCELO, _ACCALO
                        CP        _ACCB, _ACCELO
                        BRCS      SYSTEM.L0237
                        MOV       _ACCB, _ACCELO
SYSTEM.L0237:
                        RJMP      SYSTEM.L0241
SYSTEM.L0238:
                        PUSH      _ACCBLO
                        PUSH      _ACCBHI
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        MOV       _ACCDHI, _ACCALO
                        SUB       _ACCDHI, _ACCA
                        CP        _ACCDHI, _ACCDLO
                        BRCC      SYSTEM.L0239
                        MOV       _ACCDLO, _ACCDHI
SYSTEM.L0239:
                        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.L0240
SYSTEM.L0240:
                        LD        _ACCGLO, -X
                        ST        -Z, _ACCGLO
                        DEC       _ACCDHI
                        BRNE     SYSTEM.L0240
SYSTEM.L0234:
                        POP       _ACCCHI
                        POP       _ACCCLO
                        POP       _ACCBHI
                        POP       _ACCBLO
                        MOV       _ACCB, _ACCA
                        ADD       _ACCB, _ACCAHI
                        ADD       _ACCB, _ACCDLO
                        BRNE     SYSTEM.L0245
SYSTEM.L0241:
                        ADD       _ACCAHI, _ACCDLO
                        INC       _ACCAHI
SYSTEM.L0245:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM.L0248
SYSTEM.L0248:
                        ST        X, _ACCB
SYSTEM.L0247:
                        CLR       _ACCALO
                        ADD       _ACCBLO, _ACCA
                        ADC       _ACCBHI, _ACCALO
SYSTEM.L0246:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 3
                        TST       _ACCFLO
                        BREQ      SYSTEM.L0249
                        LSR       _ACCFLO
                        BRNE      SYSTEM.L0251
                        CALL      SYSTEM.ReadEEp8
                        MOV       _ACCGLO, _ACCA
                        ADIW      _ACCCLO, 01h
                        RJMP      SYSTEM.L0250
SYSTEM.L0251:
                        LPM       _ACCGLO, Z+
                        RJMP      SYSTEM.L0250
SYSTEM.L0249:
                        LD        _ACCGLO, Z+
SYSTEM.L0250:
                        MOV       _ACCFLO, _ACCFHI
                        ANDI      _ACCFLO, 10h
                        BREQ      SYSTEM.L0252
SYSTEM.L0252:
                        ST        X+, _ACCGLO
SYSTEM.L0253:
                        DEC       _ACCAHI
                        BRNE     SYSTEM.L0246
SYSTEM.L0244:
                        RET


SYSTEM._ArrToStr:
                        MOV       _ACCBHI, _ACCA
SYSTEM.L0254:
                        LD        _ACCA, Z+
                        TST       _ACCA
                        BREQ      SYSTEM.L0255
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM.L0254
SYSTEM.L0255:
                        RET


SYSTEM.StrConst2Str:
SYSTEM.L0256:
                        LPM      _ACCA, Z+
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM.L0256
                        RET


SYSTEM.StrVar2Str:
                        LD        _ACCA, Z+
                        TST       _ACCA
                        BREQ      SYSTEM.L0258
                        MOV       _ACCBHI, _ACCA
SYSTEM.L0257:
                        LD        _ACCA, Z+
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCBHI
                        BRNE      SYSTEM.L0257
SYSTEM.L0258:
                        RET


SYSTEM.Byte2Str_X:
                        LD        _ACCB, X+
SYSTEM.L0259:
                        LD        _ACCA, X+
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCAHI
                        BRNE      SYSTEM.L0260
                        LDI       _ACCA, DECIMALSEP
                        CALL      SYSTEM.Char2Str
SYSTEM.L0260:
                        DEC       _ACCB
                        BRNE      SYSTEM.L0259
                        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.L0261
                        TST       _ACCA
                        BREQ      SYSTEM.L0262
SYSTEM.L0261:
                        INC       _ACCCLO
                        STD       Y+0, _ACCCLO
                        CLR       _ACCCHI
                        ADD       _ACCCLO, _FRAMEPTR
                        ADC       _ACCCHI, _FPTRHI
                        ORI       _ACCA, 030h
                        STD       Z+0, _ACCA
SYSTEM.L0262:
                        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.L0263
                        SBRC      _ACCA, 7
                        BLD       Flags, _NEGATIVE
SYSTEM.L0263:
                        LDI       _ACCELO, 4
SYSTEM.L0264:
                        LPM       _ACCALO, Z+
                        LPM       _ACCAHI, Z+
                        ADIW      _ACCCLO, 02h
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        CALL      SYSTEM.DIV16_R
                        MOVW      _ACCBLO, _ACCCLO
                        MOV       _ACCA, _ACCB
                        TST       _ACCA
                        BRPL      SYSTEM.L0265
                        NEG       _ACCA
SYSTEM.L0265:
                        RCALL     SYSTEM.Byte2Str_P
                        POP       _ACCCHI
                        POP       _ACCCLO
                        DEC       _ACCELO
                        BRNE      SYSTEM.L0264
                        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.L0266
                        INC       _ACCB
                        STD       Y+0, _ACCB
                        LDI       _ACCA, 30h
                        STD       Y+1, _ACCA
SYSTEM.L0266:
                        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.L0268
                        MOV       _ACCAHI, _ACCDLO
                        SUB       _ACCAHI, _ACCALO
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0267
                        LDI       _ACCA, 2Dh
                        CALL      SYSTEM.Char2Str
SYSTEM.L0267:
                        RJMP      SYSTEM.Byte2Str_X
SYSTEM.L0268:
                        MOV       _ACCB, _ACCDLO
                        CP        _ACCALO, _ACCDLO
                        BRLT      SYSTEM.L0269
                        MOV       _ACCB, _ACCALO
                        INC       _ACCB
SYSTEM.L0269:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0275
                        DEC       _ACCAHI
SYSTEM.L0275:
                        MOV       _ACCA, _ACCDHI
                        SUB       _ACCB, _ACCAHI
                        NEG       _ACCB
                        BREQ      SYSTEM.L0271
                        BRMI      SYSTEM.L0271
SYSTEM.L0270:
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCAHI
                        DEC       _ACCB
                        BRNE      SYSTEM.L0270
SYSTEM.L0271:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0274
                        LDI       _ACCA, 2Dh
                        CALL      SYSTEM.Char2Str
SYSTEM.L0274:
                        SUB       _ACCAHI, _ACCALO
                        CP        _ACCALO, _ACCDLO
                        BRCS      SYSTEM.L0273
                        LDI       _ACCA, 30h
                        CALL      SYSTEM.Char2Str
                        LDI       _ACCA, DECIMALSEP
                        CALL      SYSTEM.Char2Str
                        CLR       _ACCAHI
                        SUB       _ACCALO, _ACCDLO
                        BREQ      SYSTEM.L0273
SYSTEM.L0272:
                        LDI       _ACCA, 30h
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCALO
                        BRNE      SYSTEM.L0272
SYSTEM.L0273:
                        RJMP      SYSTEM.Byte2Str_X
SYSTEM.Int2Str_A:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0276
                        DEC       _ACCAHI
                        BRMI      SYSTEM.L0278
SYSTEM.L0276:
                        LD        _ACCB, X
                        SUB       _ACCAHI, _ACCB
                        BREQ      SYSTEM.L0278
                        BRCS      SYSTEM.L0278
                        MOV       _ACCA, _ACCDHI
SYSTEM.L0277:
                        CALL      SYSTEM.Char2Str
                        DEC       _ACCAHI
                        BRNE      SYSTEM.L0277
SYSTEM.L0278:
                        BST       Flags, _NEGATIVE
                        BRTC      SYSTEM.L0279
                        LDI       _ACCA, 2Dh
                        CALL      SYSTEM.Char2Str
SYSTEM.L0279:
                        RJMP      SYSTEM.Byte2Str_X

SYSTEM.Char2Str:
                        PUSH      _ACCCLO
                        PUSH      _ACCCHI
                        BST       Flags, _DEVICE
                        BRTS      SYSTEM.L0283
                        PUSH      _ACCA
                        LDD       _ACCCLO, Y+001h
                        LDD       _ACCCHI, Y+002h
                        LDD       _ACCA, Y+000h
                        TST       _ACCA
                        BRNE      SYSTEM.L0280
                        POP       _ACCA
                        SET
                        BLD       Flags, _ERRFLAG
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RET
SYSTEM.L0280:
                        DEC       _ACCA
                        STD       Y+000h, _ACCA
                        POP       _ACCA
                        BST       Flags, _EEPROM
                        BRTS      SYSTEM.L0281
                        ST        Z+, _ACCA
                        RJMP      SYSTEM.L0282
SYSTEM.L0281:
                        CALL      SYSTEM.WriteEEp8
                        ADIW      _ACCCLO, 01h
SYSTEM.L0282:
                        STD       Y+002h, _ACCCHI
                        STD       Y+001h, _ACCCLO
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RET
SYSTEM.L0283:
                        LDD       _ACCCLO, Y+000h
                        LDD       _ACCCHI, Y+001h
                        PUSH      _ACCA
                        PUSH      _ACCB
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
                        PUSH      _ACCBLO
                        PUSH      _ACCBHI
                        PUSH      _ACCELO
                        PUSH      _ACCEHI
                        PUSH      _ACCDLO
                        PUSH      _ACCDHI
                        ICALL
                        POP       _ACCDHI
                        POP       _ACCDLO
                        POP       _ACCEHI
                        POP       _ACCELO
                        POP       _ACCBHI
                        POP       _ACCBLO
                        POP       _ACCAHI
                        POP       _ACCALO
                        POP       _ACCB
                        POP       _ACCA
                        POP       _ACCCHI
                        POP       _ACCCLO
                        RET


SYSTEM.DIV8:
                        POP       _ACCAHI
                        POP       _ACCALO
                        MOV       _ACCB, _ACCA
                        POP       _ACCA
                        PUSH      _ACCALO
                        PUSH      _ACCAHI
SYSTEM.DIV8_R:
                        CLR       _ACCAHI
                        LDI       _ACCALO, 9
SYSTEM.L0284:
                        ROL       _ACCA
                        DEC       _ACCALO
                        BRNE      SYSTEM.L0285
                        MOV       _ACCB, _ACCAHI
                        RET
SYSTEM.L0285:
                        ROL       _ACCAHI
                        SUB       _ACCAHI, _ACCB
                        BRCC      SYSTEM.L0286
                        ADD       _ACCAHI, _ACCB
                        CLC
                        RJMP      SYSTEM.L0284
SYSTEM.L0286:
                        SEC
                        RJMP      SYSTEM.L0284


SYSTEM.DIV16:
                        MOVW      _ACCALO, _ACCB
SYSTEM.DIV16_R:
                        CLR       _ACCDHI
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.L0287
                        MOV       _ACCDHI, _ACCBHI
                        MOV       _ACCDLO, _ACCAHI
                        EOR       _ACCDLO, _ACCBHI
                        CLT
                        SBRS      _ACCDLO, 7
                        BLD       Flags, _SIGN
                        SBRS      _ACCAHI, 7
                        RJMP      SYSTEM.L0289
                        NEG       _ACCALO
                        BRNE      SYSTEM.L0290
                        DEC       _ACCAHI
SYSTEM.L0290:
                        COM       _ACCAHI
SYSTEM.L0289:
                        SBRS      _ACCBHI, 7
                        RJMP      SYSTEM.L0287
                        NEG       _ACCBLO
                        BRNE      SYSTEM.L0291
                        DEC       _ACCBHI
SYSTEM.L0291:
                        COM       _ACCBHI
SYSTEM.L0287:
                        CLR       _ACCCLO
                        SUB       _ACCCHI, _ACCCHI
                        LDI       _ACCA, 17
SYSTEM.L0292:
                        ROL       _ACCBLO
                        ROL       _ACCBHI
                        DEC       _ACCA
                        BRNE      SYSTEM.L0293
                        MOVW      _ACCB, _ACCBLO
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.L0288
                        NEG       _ACCB
                        BRNE      SYSTEM.L0295
                        DEC       _ACCA
SYSTEM.L0295:
                        COM       _ACCA
SYSTEM.L0288:
                        RET
SYSTEM.L0293:
                        ROL       _ACCCLO
                        ROL       _ACCCHI
                        SUB       _ACCCLO, _ACCALO
                        SBC       _ACCCHI, _ACCAHI
                        BRCC      SYSTEM.L0294
                        ADD       _ACCCLO, _ACCALO
                        ADC       _ACCCHI, _ACCAHI
                        CLC
                        RJMP      SYSTEM.L0292
SYSTEM.L0294:
                        SEC
                        RJMP      SYSTEM.L0292


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.L0296
SYSTEM.MUL32_R:
                        MOVW      _ACCBLO, _ACCB
                        MOVW      _ACCCLO, _ACCALO
SYSTEM.L0296:
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.L0297
                        MOV       _ACCFLO, _ACCCHI
                        EOR       _ACCFLO, _ACCEHI
                        CLT
                        SBRS      _ACCFLO, 7
                        BLD       Flags, _SIGN
                        SBRS      _ACCCHI, 7
                        RJMP      SYSTEM.L0299
                        COM       _ACCBLO
                        COM       _ACCBHI
                        COM       _ACCCLO
                        COM       _ACCCHI
                        SUBI      _ACCBLO, 0FFh
                        SBCI      _ACCBHI, 0FFh
                        SBCI      _ACCCLO, 0FFh
                        SBCI      _ACCCHI, 0FFh
SYSTEM.L0299:
                        SBRS      _ACCEHI, 7
                        RJMP      SYSTEM.L0297
                        COM       _ACCDLO
                        COM       _ACCDHI
                        COM       _ACCELO
                        COM       _ACCEHI
                        SUBI      _ACCDLO, 0FFh
                        SBCI      _ACCDHI, 0FFh
                        SBCI      _ACCELO, 0FFh
                        SBCI      _ACCEHI, 0FFh
SYSTEM.L0297:
                        CLR       _ACCFHI
                        CLR       _ACCFLO
                        CLR       _ACCGHI
                        CLR       _ACCGLO
                        LDI       _ACCA, 32
                        LSR       _ACCEHI
                        ROR       _ACCELO
                        ROR       _ACCDHI
                        ROR       _ACCDLO
SYSTEM.L0301:
                        BRCC      SYSTEM.L0300
                        ADD       _ACCFLO, _ACCBLO
                        ADC       _ACCFHI, _ACCBHI
                        ADC       _ACCGLO, _ACCCLO
                        ADC       _ACCGHI, _ACCCHI
SYSTEM.L0300:
                        ROR       _ACCGHI
                        ROR       _ACCGLO
                        ROR       _ACCFHI
                        ROR       _ACCFLO
                        ROR       _ACCEHI
                        ROR       _ACCELO
                        ROR       _ACCDHI
                        ROR       _ACCDLO
                        DEC       _ACCA
                        BRNE      SYSTEM.L0301
                        MOVW      _ACCB, _ACCDLO
                        MOVW      _ACCALO, _ACCELO
                        BST       Flags, _SIGN
                        BRTC      SYSTEM.L0298
                        SUBI      _ACCB, 01h
                        SBCI      _ACCA, 00h
                        SBCI      _ACCALO, 00h
                        SBCI      _ACCAHI, 00h
                        COM       _ACCALO
                        COM       _ACCAHI
                        COM       _ACCA
                        COM       _ACCB
SYSTEM.L0298:
                        RET



SYSTEM.SHL32:
                        MOV       _ACCCLO, _ACCA
                        POP       _ACCDHI
                        POP       _ACCDLO
                        POP       _ACCAHI
                        POP       _ACCALO
                        POP       _ACCA
                        POP       _ACCB
                        PUSH      _ACCDLO
                        PUSH      _ACCDHI
SYSTEM.SHL32_R:
                        TST       _ACCCLO
                        BREQ      SYSTEM.L0303
                        CPI       _ACCCLO, 20h
                        BRCS      SYSTEM.L0302
                        CLR       _ACCA
                        CLR       _ACCB
                        CLR       _ACCALO
                        CLR       _ACCAHI
                        RET
SYSTEM.L0302:
                        LSL       _ACCB
                        ROL       _ACCA
                        ROL       _ACCALO
                        ROL       _ACCAHI
                        DEC       _ACCCLO
                        BRNE      SYSTEM.L0302
SYSTEM.L0303:
                        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    "DDS9833 V#1.12"

                        .SYM      SoftDDS.Vers2Str
SoftDDS.Vers2Str:
                        .BYTE     13
                        .ASCII    "LM1972-ADJ/cm"

                        .SYM      SoftDDS.dBStr
SoftDDS.dBStr:
                        .BYTE     3
                        .ASCII    " dB"

                        .SYM      SoftDDS.StepStr
SoftDDS.StepStr:
                        .BYTE     2
                        .ASCII    "# "

                        .SYM      SoftDDS.EmptyStr
SoftDDS.EmptyStr:
                        .BYTE     2
                        .ASCII    "**"

                        .SYM      SoftDDS.AdjustStr
SoftDDS.AdjustStr:
                        .BYTE     7
                        .ASCII    "Adjust "

$St_String14:
                        .BYTE     1
                        .ASCII    "."


                        ; ============ array-constant tables ============
                        .SYM      SoftDDS.fhz
SoftDDS.fhz:
                        .WORD     09000h
                        .WORD     003D0h
                        .WORD     0A800h
                        .WORD     00061h
                        .WORD     0C400h
                        .WORD     00009h
                        .WORD     0FA00h
                        .WORD     00000h
                        .WORD     01900h
                        .WORD     00000h
                        .WORD     00280h
                        .WORD     00000h
                        .WORD     00040h
                        .WORD     00000h
                        .WORD     00006h
                        .WORD     00000h

                        .SYM      SoftDDS.fdhz
SoftDDS.fdhz:
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00006h
                        .WORD     00000h
                        .WORD     0000Dh
                        .WORD     00000h
                        .WORD     00013h
                        .WORD     00000h
                        .WORD     0001Ah
                        .WORD     00000h
                        .WORD     00020h
                        .WORD     00000h
                        .WORD     00026h
                        .WORD     00000h
                        .WORD     0002Dh
                        .WORD     00000h
                        .WORD     00033h
                        .WORD     00000h
                        .WORD     0003Ah
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00000h
                        .WORD     00006h
                        .WORD     00000h
                        .WORD     0000Dh
                        .WORD     00000h
                        .WORD     00013h
                        .WORD     00000h
                        .WORD     0001Ah
                        .WORD     00000h
                        .WORD     00020h
                        .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     007h
                        .BYTE     009h
                        .BYTE     004h
                        .BYTE     004h

                        .SYM      SoftDDS.cursx
SoftDDS.cursx:
                        .BYTE     009h
                        .BYTE     00Dh
                        .BYTE     000h
                        .BYTE     000h

                        .SYM      SoftDDS.posy
SoftDDS.posy:
                        .BYTE     000h
                        .BYTE     000h
                        .BYTE     001h
                        .BYTE     001h

                        .SYM      SoftDDS.TerzArray
SoftDDS.TerzArray:
                        .WORD     003E8h
                        .WORD     00014h
                        .WORD     00019h
                        .WORD     0001Fh
                        .WORD     00028h
                        .WORD     00032h
                        .WORD     0003Fh
                        .WORD     00050h
                        .WORD     00064h
                        .WORD     0007Dh
                        .WORD     000A0h
                        .WORD     000C8h
                        .WORD     000FAh
                        .WORD     0013Bh
                        .WORD     00190h
                        .WORD     001F4h
                        .WORD     00276h
                        .WORD     00320h
                        .WORD     003E8h
                        .WORD     004E2h
                        .WORD     00640h
                        .WORD     007D0h
                        .WORD     009C4h
                        .WORD     00C4Eh
                        .WORD     00FA0h
                        .WORD     01388h
                        .WORD     0189Ch
                        .WORD     01F40h
                        .WORD     02710h
                        .WORD     030D4h
                        .WORD     03E80h
                        .WORD     04E20h


                        ; ============ Fixed addr String-constant tables ============

                        ; ============ fixed addr array-constant tables ============

                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                        ; Reset and Interrupt vectors
                        ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


                        .ENDCODE
                        .ORG       0, VECTTAB
                        .VECTTAB
SYSTEM.VectTab:
                        JMP       SYSTEM.RESET
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.$INTERRUPT_TIMER1COMPA
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.$INTERRUPT_TIMER0
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr
                        JMP       SYSTEM.DefIntErr

                        .VECTTABE
SYSTEM.ENDPROG:

                        .END

                        ; ============ End of Program ============


                        ; System uses registers
                        ; from bottom     = 00000h
                        ; upto            = 00006h
                        ; and
                        ; from            = 00010h
                        ; upto            = 0001Fh
                        ;
                        ; Stackframe at   = ...001D7h


                        ; ===== Current top of User Vars in Data is 00008h =====

                        ; ===== Current top of User Vars in IData is 00237h =====

                        ; ===== Current top of User Vars in EEprom is 0004Fh =====


                        ; ===== Imported Library Routines =====

                        ; Divide       byte DIV8
                        ; Divide       word DIV16
                        ; LongWord and LongInt types
                        ; Multiply     long MUL32
                        ; Shift  left  long SHL32
                        ; Convert int to string
                        ; EEprom read
                        ; EEprom write

                        ; Pascal Statements : 354
                        ; Assembler Lines   : 10024
                        ; Optimizer removed : 184 lines = 368Bytes

                        ; >> real SysTick (exact): 9.984 msec <<

;  Linker removed the following functions and procedures
;
;  Module/Unit             Function/Procedure
;  ------------------------------------------
;
