#!/bin/bash

awk -F , 'BEGIN { OFS=FS
    pos = "{ABCDEFGHI"; neg = "}JKLMNOPQR";
    for (i=0; i<10; ++i) { p[substr(pos, i+1, 1)] = i; n[substr(neg, i+1, 1)] = i }
}
{ for (i=4; i<=5; i++) {
    where = length($i)
    what = substr($i, where, 1)
    if (what ~ "^[" pos "]$") sign = ""
    else if (what ~ "^[" neg "]$") sign = "-"
    else print "Error: field " i " " $i " malformed" >"/dev/stderr"
    $i = sign substr($i, 1, where-1) (sign ? n[what] : p[what])
    }
}1'