IBM 1401
1401向けソフトウェアとしては、次のようなものがあった。
IBM 1401 Symbolic Programming System (SPS) - 単純なアセンブラ。SPS-1 は1.4Kメモリのマシンでも動作可能。SPS-2 は4K以上のメモリが必要。
Autocoder - より高度なアセンブラ。4Kメモリと4台のテープ装置を必要とする。
FARGO (Fourteen-o-one [1401] Automatic Report Generation Operation) - RPGの前身。4Kメモリが必要。
FORTRAN II - 8Kメモリが必要。後のPコードのようなコードを生成し、インタプリタで実行する方式で、小規模なメモリで実行可能。
FORTRAN IV - 12Kメモリと4台のテープ装置か1台の IBM 1311 ディスク装置を必要とする。
COBOL - 4Kメモリと4台のテープ装置を必要とする。
IBM RPG (Report Program Generator) - Basic RPG は4Kメモリで動作。
多くの命令は後続文字(通常、次の命令の命令コード)にワードマークを必要とする。
命令一覧は、文字コードと命令コードの節を参照。
命令で使用するメモリアドレスは3文字だが、これは5文字で表されるメモリアドレスを符号化したものである。5文字アドレスの下3桁 000 から 999 までは3文字の数字ビット列を使って指定する。最上位の桁を表す文字のゾーンビットがその3桁への加算値を表しており、A なら 1000、B なら 2000、B,A なら 3000 を加算するので、0から3,999番地までを表現できる。さらに最下位の桁を表す文字のゾーンビットで、A なら 4000、B なら 8000、B,A なら 12000 を加算するので、最大16,000文字までのメモリ位置を指定できる。例えば3文字アドレス "I99" は 3000 + 999 であり、3,999番地を指している。
アドレスの真ん中の文字のゾーンビットはオプション機能のインデックスレジスタを指定するのに使用される。
A-address と B-address が指しているオペランドは、1文字、可変長フィールド、可変長レコードの場合がある。可変長フィールドを指す場合はアドレスの大きい端(数値の場合は最下位の桁)を指し、終端は最後の文字(最上位の桁)にワードマークをセットすることで示す。