# create-abs command

The create-abs command sets aside a
contiguous set of frames as the destination for loading the ABS code
(the D3 virtual code). This space is called the ABS area.

**For Windows:**Not Supported

## Syntax

```
create-abs file.reference([l|{z} number])
```

## Parameter(s)

| options | item-size | Specifies the number of frames, in decimal, to set aside for the machine code (new ABS area). The frames must be contiguous. If there are not enough contiguous frames, an error message displays. |
| --- | --- | --- |
| l | Prompts user for source file and copies the system modes from the source abs used in booting the system (boot abs) to the destination ABS area, initializing the file for future loads. If a numeric parameter is not specified, it uses the ABS size of the source file to create the ABS area. This option overrides the z option. | |
| {z}number | z, followed by a number, zeroes out the frames in the ABS area. This option requires a numeric parameter to specify the size of the ABS area, and is incompatible with the l option. The prompt below displays: ```
Enter source data-abs file name (RTN for ABS):
``` To run the boot ABS, enter boot.abs. To run a different ABS, enter the name of the abs. | |
This command provides the ability to create a whole new
executable ABS to avoid the risk of corrupting the existing ABS.

The %abs% item (located in the dictionary of the abs file), is a pointer to the ABS area. The first frame in the
ABS area contains the date and implementation of the ABS.

The
data section is used as a cross-reference file by the incremental
loader.

The create-abs command executes a clear-file on the data section of the abs file, then creates one item in the data section for each frame in
the ABS area. These items contain an f in attribute 1. The item-IDs
are sequential numbers, starting with 000.

The file reference
indicates the file where the modes are to be loaded.

If a `dbsym` data file for both source and destination files exists,
the destination is cleared and the source copied over.

Warning: The %abs% file should not be
deleted while running under it. The file *must* have a dictionary
and data level, and it is advised to create the `dbsym` data section, as shown in the example.

## Example(s)

```
create-file abs.test 3 395
create-abs abs.test (l
Enter source abs file name (return for boot ABS):
[1005] abs file creation successfully completed.
```

## See also

- [ABS](https://d3codex.com/definitions/abs/)
- [abs file](https://d3codex.com/systemfiles/abs-file/)
- [exec command](https://d3codex.com/tcl/exec-command/)
- [list-abs macro](https://d3codex.com/tcl/list-abs-macro/)
- [mload command](https://d3codex.com/tcl/mload-command/)
- [mverify command](https://d3codex.com/tcl/mverify-command/)

---
Source: https://d3codex.com/tcl/create-abs-command/ - part of the D3Codex reference.
