converter_b_k052539_1a.sdlbas 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. function lstinf$(a$,b$,c$)
  2. adra=1:adrb=1:blngt=len(b$):d$=""
  3. while adrb<=blngt
  4. if mid$ (a$,adra,1)=mid$ (b$,adrb,1) then:adrb+=1:end if
  5. adra=adra+1
  6. end while
  7. while mid$(a$,adra,1)<>left$(c$,1)
  8. d$=d$+mid$(a$,adra,1):adra=adra+1
  9. end while
  10. lstinf$=d$
  11. end function
  12. function vldc(a$)
  13. t0$="!"+a$+".0.0.0."
  14. t1$=lstinf$(t0$,"!",".")
  15. t2$=lstinf$(t0$,".",".")
  16. t3=10^(len(t2$))
  17. vldc=val(t1$)+(val(t2$)/t3)
  18. end function
  19. dim chfq[16],chvl[16]
  20. finp$="_.csv"
  21. if argc>2 then:finp$=argv(2):end if
  22. print"56676D20 FFFFFF00 61010000000000000000000023140000512004000000"
  23. print"000000000000000000000000000000000000000000008C00000000000000"
  24. print"000000000000000000000000000000000000000000000000000000000000"
  25. print"000000000000000000000000000000000000000000000000000000000000"
  26. print"00000000C100000000000000000000000000000000000000000000000000"
  27. print"000000000000 4D4F1B80 0000000000000000000000000000000000000000"
  28. print"000000000000000000000000"
  29. print"D20100D4 D201029E D2010478"
  30. print"D2010502 D2010679 D2010702"
  31. print"D2020008 D2020108 D202020B D202030A"
  32. print"D203001F D2030000"
  33. print"D2000000 D2000119 D2000231 D2000347"
  34. print"D200045A D200056A D2000675 D200077D"
  35. print"D200087F D200097D D2000A75 D2000B6A"
  36. print"D2000C5A D2000D47 D2000E31 D2000F19"
  37. print"D2001080 D2001190 D20012A0 D20013B0"
  38. print"D20014C0 D20015D0 D20016E0 D20017F0"
  39. print"D2001800 D2001910 D2001A20 D2001B30"
  40. print"D2001C40 D2001D50 D2001E60 D2001F70"
  41. print"D203001F D2030000"
  42. print"D2002000 D2002119 D2002231 D2002347"
  43. print"D200245A D200256A D2002675 D200277D"
  44. print"D200287F D200297D D2002A75 D2002B6A"
  45. print"D2002C5A D2002D47 D2002E31 D2002F19"
  46. print"D2003080 D2003190 D20032A0 D20033B0"
  47. print"D20034C0 D20035D0 D20036E0 D20037F0"
  48. print"D2003800 D2003910 D2003A20 D2003B30"
  49. print"D2003C40 D2003D50 D2003E60 D2003F70"
  50. print"D203001F D2030000"
  51. print"D2004000 D2004100 D2004200 D2004380"
  52. print"D2004400 D2004570 D2004670 D2004770"
  53. print"D2004800 D2004900 D2004A00 D2004B80"
  54. print"D2004C00 D2004D00 D2004E00 D2004F80"
  55. print"D2005080 D2005180 D2005280 D2005300"
  56. print"D2005480 D2005500 D2005600 D2005700"
  57. print"D2005800 D2005980 D2005A80 D2005B80"
  58. print"D2005C00 D2005D80 D2005E80 D2005F80"
  59. print"D203001F D2030000"
  60. print"D2006000 D2006100 D2006200 D2006380"
  61. print"D2006400 D2006570 D2006670 D2006770"
  62. print"D2006800 D2006900 D2006A00 D2006B80"
  63. print"D2006C00 D2006D00 D2006E00 D2006F80"
  64. print"D2007080 D2007180 D2007280 D2007300"
  65. print"D2007480 D2007500 D2007600 D2007700"
  66. print"D2007800 D2007980 D2007A80 D2007B80"
  67. print"D2007C00 D2007D80 D2007E80 D2007F80"
  68. print"D203001F"
  69. print"D2030000"
  70. print"D2048000 D20481F8 D20482F0 D20483E8"
  71. print"D20484E0 D20485D8 D20486D0 D20487C8"
  72. print"D20488C0 D20489B8 D2048AB0 D2048BA8"
  73. print"D2048CA0 D2048D98 D2048E90 D2048F88"
  74. print"D2049080 D2049178 D2049270 D2049368"
  75. print"D2049460 D2049558 D2049650 D2049748"
  76. print"D2049840 D2049938 D2049A30 D2049B28"
  77. print"D2049C20 D2049D18 D2049E10 D2049F08"
  78. print"D203001F"
  79. lct=0
  80. open finp$ for input as #1
  81. while eof(1)=0
  82. file input #1,txrd$
  83. setcaption("b:"+str$(lct)):lct+=1
  84. if mid$(txrd$,1,1)="[" then:
  85. if mid$(txrd$,2,1)="f" then:
  86. chid=val(mid$(txrd$,3,2))
  87. chid=chid mod 5 'k051649 has 5 channels
  88. chfqv=vldc(lstinf$(txrd$,":","]"))
  89. chfqv2=int(26.6984611843*2^(8-chfqv))
  90. if chfqv2>2047 then:chfqv2=2047:end if
  91. if chfqv2<0 then:chfqv2=0:end if
  92. chchrfq$=right$("000"+hex$(chfqv2),3)
  93. txrgo$="D201"+right$("00"+hex$(1+2*chid),2)+"0"+mid$(chchrfq$,1,1)
  94. txrgo$+=" D201"+right$("00"+hex$(0+2*chid),2)+mid$(chchrfq$,2,2)
  95. print ucase$(txrgo$)
  96. end if
  97. if mid$(txrd$,2,1)="v" then:
  98. chid=val(mid$(txrd$,3,2))
  99. chid=chid mod 5 'k051649 has 5 channels
  100. chvlv=vldc(lstinf$(txrd$,":","]"))*0x10
  101. chchrvl$=right$("00"+hex$(chvlv),2)
  102. txrgo$="D202"+right$("00"+hex$(chid),2)+chchrvl$
  103. print ucase$(txrgo$)
  104. end if
  105. if mid$(txrd$,2,3)="wvb" then:
  106. wvblv=vldc(lstinf$(txrd$,":","]"))
  107. wvblv2=wvblv*44100
  108. wvblv3a=wvblv2 mod 65536
  109. wvblv3b=int(wvblv2/65536)
  110. wvblv3as$=ucase$(right$("0000"+hex$(wvblv3a),4))
  111. for ii=1 to wvblv3b:print"61FFFF":next
  112. print "61"+mid$(wvblv3as$,3,2)+mid$(wvblv3as$,1,2)
  113. end if
  114. end if
  115. wend
  116. print:print "66":print
  117. close #1