Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1. #include <avr/pgmspace.h>
  2.  
  3. #include "mytypes.h"
  4. #include "main.h"
  5.  
  6. //base configuration version string pointer [far address of PROGMEM]
  7. const ULONG baseVersionAddr = 0x1DFF0;
  8.  
  9. //bootloader version string pointer [far address of PROGMEM]
  10. const ULONG bootVersionAddr = 0x1FFF0;
  11.  
  12. UBYTE GetVersionByte(UBYTE index)
  13. {
  14.         if ( index < 0x10 )
  15.         {
  16.                 if ( flags_register & FLAG_VERSION_TYPE )
  17.                 {
  18.                         //bootloader version
  19.                         return (UBYTE)pgm_read_byte_far(bootVersionAddr+(ULONG)index);
  20.                 }
  21.                 else
  22.                 {
  23.                         //base configuration version
  24.                         return (UBYTE)pgm_read_byte_far(baseVersionAddr+(ULONG)index);
  25.                 }
  26.         }
  27.         return (UBYTE)0xFF;
  28. }
  29.  
  30. void SetVersionType(UBYTE type)
  31. {
  32.         switch(type)
  33.         {
  34.                 case 0:
  35.                         //base configuration
  36.                         flags_register &= ~FLAG_VERSION_TYPE;
  37.                         break;
  38.  
  39.                 case 1:
  40.                         //bootloader
  41.                         flags_register |= FLAG_VERSION_TYPE;
  42.                         break;
  43.         }
  44. }
  45.