Da die AS/400 in EBCDIC arbeitet, hast du da schlechte Karten. A-Z sind nicht lückenlos aufsteigend.

Ich würde die Werte 0-9 und A-z in eine Tabelle stellen und dann per LOKUP jedes Zeichen in der Tabelle suchen.
Der "Index - 1" ergibt dann den Wert für die Berechnung.
Eine Ersetzung des Originalstrings würde ich nicht vornehmen.