# ISMPAR > [HTML Version](ismpar_sbx.htm) **xcall ISMPAR, ifname, ismpak \{,lvl1cnt, keyalc\}** ISMPAR.SBX is a variation of the internal ISMROK[xs](keyword-types.htm.md), with the main distinction being that it takes a filespec rather than an open file channel and thereby avoids potential file locking conflicts. The source for the routine can be found in [ISMPAR.BP in SOSLIB:\[907,22\]](https://bitbucket.org/microsabio/soslib/src/master/907022/ismpar.bp). **Parameters** MAP1 ISMPAK MAP2 I'DEV,S,4 device name (ASCII) MAP2 I'UNIT,B,2 unit # MAP2 I'UPDCNT,B,4 update counter MAP2 I'RECSIZ,B,2 rec size MAP2 I'KEYSIZ,B,2 key size MAP2 I'KEYPOS,B,2 key position MAP2 I'IDAFRE,B,4 IDA free pointer MAP2 I'IDAFRC,B,4 IDA freecount MAP2 I'IDXFRE,B,4 IDX free pointer MAP2 I'IDXFRC,B,4 IDX freecount MAP2 I'RECALC,B,4 records allocated \* MAP2 I'TOPDIR,B,4 top directory block MAP2 I'LEVELS,B,2 # IDX levels MAP2 I'BLKSIZ,B,2 IDX blk size MAP2 I'IDXTYP,B,2 IDX type flags MAP1 IFNAME,S,64 IDX filespec MAP1 LVL1CNT,B,2 # of idx blocks at top level (max 100) MAP1 KEYALC,B,4 # of keys allocated in the IDX file. In a typical file, this should match idaalc—i.e. one key per data record. **History** 2022 February, A-Shell 6.5.1711: Add new optional argument _keyalc_ to return the new keys allocated value.