# ALLOCATE'INDEXED > [HTML Version](allocate-indexed.htm) **ALLOCATE'INDEXED fspec, allocate'map** ALLOCATE'INDEXED creates a new ISAM-A file (as an alternate to using ISMUTL.LIT). The _allocate'map_ structure contains the configuration details needed to create the file, and must be customized, based on the following: MAP1 ALLOCATE'MAP MAP2 ERROR'OFFSET,B,2,-1 \! Offset if error MAP2 MAX'RECS,B,4 \! (ignored) MAP2 REC'SIZE,B,2 \! total record size MAP2 EXTRA'PCT,B,2 \! extra IDX blocks (ignored) MAP2 LOADING'FACTOR,B,1,100 \! loading factor (ignored) MAP2 RESERVED0,X,11 \! reserved for future MAP2 VARIABLE'REC'SIZE,B,2 \! size of variable portion of rec MAP2 PRIMARY'KEY \! primary key definition MAP2 SECONDARY'KEY \! zero or more secondary key definitions MAP2 ALLOCATE'END,B,2,0 \! marks end of key definitions The layout of the PRIMARY'KEY and SECONDARY'KEY sub-structures should be mapped according to one of the following models, based on the key type: **Alphanumeric Key Definition** MAP2 KEY'ALPHANUMERIC MAP3 KEY'TYPE,B,1,1 \! 1=alphanumeric MAP3 KEY'RESV(3),B,1 \! reserved for expansion MAP3 KEY'NAME,S,20 \! name of key (ignored) MAP3 KEY'NULL1,B,2,0 \! null terminator for name MAP3 KEY'DUP,B,1 \! sum of 1=duplicates allowed, \! 2=compress dupes, 4=leading, 8=trailing MAP3 KEY'CHG,B,1 \! key change permitted (ignored) MAP3 KEY'SIZE,B,2 \! size of key in chars MAP3 KEY'POS,B,2 \! key pos (1=first byte) **Signed Integer Key Definition** MAP2 KEY'INTEGER MAP3 KEY'TYPE,B,1,2 \! 2=integer MAP3 KEY'RESV(3),B,1 \! reserved for expansion MAP3 KEY'NAME,S,20 \! name of key (ignored) MAP3 KEY'NULL1,B,2,0 \! null terminator for name MAP3 KEY'DUP,B,1 \! 1=duplicates allowed MAP3 KEY'CHG,B,1 \! key change permitted (ignored) MAP3 KEY'SIZE,B,2 \! size of key in bytes (2 or 4) MAP3 KEY'POS,B,2 \! key pos (1=first byte) **Unsigned Binary Key Definition** MAP2 KEY'BINARY MAP3 KEY'TYPE,B,1,4 \! 4=binary MAP3 KEY'RESV(3),B,1 \! reserved for expansion MAP3 KEY'NAME,S,20 \! name of key (ignored) MAP3 KEY'NULL1,B,2,0 \! null terminator for name MAP3 KEY'DUP,B,1 \! 1=duplicates allowed MAP3 KEY'CHG,B,1 \! key change permitted (ignored) MAP3 KEY'SIZE,B,2 \! size of key in bytes (1-5) MAP3 KEY'POS,B,2 \! key pos (1=first byte) **Concatenated Key Definition** MAP2 KEY'CONCAT MAP3 KEY'TYPE,B,1,3 \! 3=concatenated MAP3 KEY'RESV(3),B,1 \! reserved for expansion MAP3 KEY'NAME,S,20 \! name of key (ignored) MAP3 KEY'NULL1,B,2,0 \! null terminator for name MAP3 KEY'DUP,B,1 \! 1=duplicates allowed MAP3 KEY'CHG,B,1 \! key change permitted (ignored) MAP3 SUBKEY(?) \! 1 or more subkeys MAP4 SUBKEY'SIZE,B,2 \! size of subkey in chars MAP4 SUBKEY'POS,B,2 \! subkey pos (1=first byte) MAP3 KEY'END,B,2 \! terminate list of subkeys