Insert / Delete

Insert and Delete functions can be used after defining a program configuration. Both functions can only be used between (one of) the defined 'Code start' and '(Program) end' locations. See chapters Program Configuration and Program Configuration - Example for additional details.

The following sub chapters describe the basic functionality of the insert (yellow ellipse) and delete (orange ellipse) buttons:

Insert

Pressing the 'Insert' button will insert one 'NOP', i.e instruction C4 when used on an address with code, otherwise a '0' will be inserted.

The insert feature will check all code and data areas (defined in Program Configurations) for branches, branch data, reversed branch data and LDL/LDRL/RLDL instructions. All branches found that need to 'change' due to the insert instruction will be corrected. e.g. if an insert is done on address hex 2 in the code below:

it will change to:

if however the insert is done on or after address hex 3 the BR 03 will stay the same.

If any short branch can NOT be changed due to the insert it will be changed to a long branch, e.g. if an insert is done on address hex 2 in the code below:

it will change to:

Note that the branch has changed to hex 0101 and NOT hex 0100 as an extra byte had to be inserted to fit the 3 byte long LBR instruction.

Not all short branches have equivalent long branch instructions (i.e. B1, B2 etc). So if an insert is done on address hex 2 in the code below:

The following will happen:

So the B1 FF changed to B1 00 (yellow ellipse) and a warning is shown in the message field (orange ellipse) stating that a check or correction is needed on address 0.

Delete

Pressing the 'Delete' button will delete the current instruction or byte, one or more '0's will be stored just before the code or program end.

The delete feature will check all code and data areas (defined in Program Configurations) for branches, branch data and LDL/LDRL/RLDL instructions. All branches found that need to 'change' due to the delete instruction will be corrected. e.g. if a delete is done on address hex 2 in the code below:

it will change to:

If any long branch can be changed to a short branch due to the delete it will be changed automatically, e.g. if a delete is done on address hex 3 in the code below:

it will change to:

Note that the branch has changed to FE and NOT FF as an extra byte could be deleted because the 3 byte long LBR is replace by a 2 byte long BR.

RCA CDP180x - Instructions

The following CDP180x instructions will be corrected by the insert and delete function:

Following macro's will also be corrected:

Pseudo variants - Instructions

The following chapters list the pseudo instructions per variant that will be corrected by the insert and delete function.

Note: none of the short jumps/branches (kk, aa or bb) and references (2aa, 6aa) will be corrected if the insert or delete cause them to go outside of the page. Instead the address of the instruction will be listed in the message area.

AMVBAS & AM4KBAS

CARDTRAN

Chip-8, 8X, ETI, Elf & Studio

FEL-1 Syntax

FPL-2

FPL-4

GPL-2

GPL-3

GPL-4

GPL-A (2K RAM)

GPL-A (2K ROM)

ST2

ST4

STK

Test-Word

Super-chip Syntax