;
;         "ddk_avr.txt" ;   /
;
    .org 0x0F00
xkod_tbl:
     .dw 0x0000,0x0101,0x0202,0x0303,0x0404,0x0505,0x0606,0x0707,0x0808,0x0909
     .dw 0x10FF,0x11FF,0x12FF,0x13FF,0x14FF,0x15FF,0x160A,0x170B,0x180C,0x190D
     .dw 0x200E,0x210F,0x2210,0x2311,0x2412,0x2513,0x26FF,0x27FF,0x28FF,0x29FF
     .dw 0x30FF,0x31FF,0x3214,0x3315,0x3416,0x3517,0x3618,0x3719,0x381A,0x391B
     .dw 0x401C,0x411D,0x42FF,0x43FF,0x44FF,0x45FF,0x46FF,0x47FF,0x481E,0x491F
     .dw 0x5020,0x5121,0x5222,0x5323,0x5424,0x5525,0x5626,0x5727,0x58FF,0x59FF
     .dw 0x60FF,0x61FF,0x62FF,0x63FF,0x6428,0x6529,0x662A,0x672B,0x682C,0x692D
     .dw 0x702E,0x712F,0x7230,0x7331,0x74FF,0x75FF,0x76FF,0x77FF,0x78FF,0x79FF
     .dw 0x8032,0x8133,0x8234,0x8335,0x8436,0x8537,0x8638,0x8739,0x883A,0x893B
     .dw 0x90FF,0x91FF,0x92FF,0x93FF,0x94FF,0x95FF,0x963C,0x973D,0x983E,0x993F
     .dw 0xFF40,0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFFFF,0xFFFF,0xFFFF,0xFFFF
     .dw 0xFFFF,0xFFFF,0xFF46,0xFF47,0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D
     .dw 0xFF4E,0xFF4F,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFF50,0xFF51
     .dw 0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57,0xFF58,0xFF59,0xFFFF,0xFFFF
     .dw 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFF5A,0xFF5B,0xFF5C,0xFF5D,0xFF5E,0xFF5F
     .dw 0xFF60,0xFF61,0xFF62,0xFF63
;----------------------------------------------------------
 decobin:
     push zl
     push zh
     push acch
     clr acch
     ldi zl,low(xkod_tbl) ;(dbx_tbl)
     ldi zh,high(xkod_tbl) ;(dbx_tbl)
     add zl,accl
     adc zh,acch
     lsl zl
     rol zh ;        
     rjmp iono0
 binodec:
     push zl
     push zh
     push acch
     clr acch
     ldi zl,low(xkod_tbl) ;(bdx_tbl)
     ldi zh,high(xkod_tbl) ;(bdx_tbl)
     add zl,accl
     adc zh,acch
     lsl zl
     rol zh ;     
     sbr zl,(1<<0) ;   
  iono0:
     lpm accl,z
     pop acch
     pop zh
     pop zl
     ret
;---------------------------------------------------------------------------------------
  sim_tbl:
     .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46
;----------------------------------------------------
 binsim:
     push zl
     push zh
     push cntxl
     mov cntxl,accl
     inc cntxl
     ldi zl,low(sim_tbl*2)
     ldi zh,high(sim_tbl*2)
 rep_ld:
     lpm accl,z+ ;        accl
     dec cntxl ;    
     brne rep_ld
     pop cntxl
     pop zh
     pop zl
     ret
;---------------------------------------------------------------