[feat](trx-rs): add ft8 decoder
Co-authored-by: Codex <codex@openai.com> Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com>
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
program grid4_to_g15
|
||||
|
||||
parameter (MAXGRID4=32400)
|
||||
character*4 w,grid4
|
||||
character c1*1,c2*2
|
||||
logical is_grid4
|
||||
is_grid4(grid4)=len(trim(grid4)).eq.4 .and. &
|
||||
grid4(1:1).ge.'A' .and. grid4(1:1).le.'R' .and. &
|
||||
grid4(2:2).ge.'A' .and. grid4(2:2).le.'R' .and. &
|
||||
grid4(3:3).ge.'0' .and. grid4(3:3).le.'9' .and. &
|
||||
grid4(4:4).ge.'0' .and. grid4(4:4).le.'9'
|
||||
|
||||
nargs=iargc()
|
||||
if(nargs.ne.1) then
|
||||
print*,'Convert a 4-character grid, signal report, etc., to a g15 value.'
|
||||
print*,'Usage examples:'
|
||||
print*,'grid4_to_g15 FN20'
|
||||
print*,'grid4_to_g15 -11'
|
||||
print*,'grid4_to_g15 +02'
|
||||
print*,'grid4_to_g15 RRR'
|
||||
print*,'grid4_to_g15 RR73'
|
||||
print*,'grid4_to_g15 73'
|
||||
print*,'grid4_to_g15 ""'
|
||||
go to 999
|
||||
endif
|
||||
call getarg(1,w)
|
||||
if(is_grid4(w) .and. w.ne.'RR73') then
|
||||
j1=(ichar(w(1:1))-ichar('A'))*18*10*10
|
||||
j2=(ichar(w(2:2))-ichar('A'))*10*10
|
||||
j3=(ichar(w(3:3))-ichar('0'))*10
|
||||
j4=(ichar(w(4:4))-ichar('0'))
|
||||
igrid4=j1+j2+j3+j4
|
||||
else
|
||||
c1=w(1:1)
|
||||
if(c1.ne.'+' .and. c1.ne.'-'.and. trim(w).ne.'RRR' .and. w.ne.'RR73' &
|
||||
.and. trim(w).ne.'73' .and. len(trim(w)).ne.0) go to 900
|
||||
if(c1.eq.'+' .or. c1.eq.'-') then
|
||||
read(w,*,err=900) irpt
|
||||
irpt=irpt+35
|
||||
endif
|
||||
if(len(trim(w)).eq.0) irpt=1
|
||||
if(trim(w).eq.'RRR') irpt=2
|
||||
if(w.eq.'RR73') irpt=3
|
||||
if(trim(w).eq.'73') irpt=4
|
||||
igrid4=MAXGRID4 + irpt
|
||||
endif
|
||||
|
||||
write(*,1000) w,igrid4,igrid4
|
||||
1000 format('Encoded word: ',a4,' g15 in binary: ',b15.15,' decimal:',i6)
|
||||
go to 999
|
||||
|
||||
900 write(*,1900)
|
||||
1900 format('Invalid input')
|
||||
|
||||
999 end program grid4_to_g15
|
||||
Reference in New Issue
Block a user