GO0A 0A 600B OB 600€ 0€ 600D OD 600E OE 60OF OF (The values entered into these locations are purely for a demonstration of the Insert and Delete commands, and, if.run, will Cause the ZX SPECTRUM to crash). In the above example, the start of the imaginary routine is 6000 and bytes, the first new byte to be at 6004. ; Type X . to restore the prompt and cursor. i Type l to get into the Insert mode. Type 6004 the address of the first byte of the insertion. Type 600F the address of the highest byte to be moved. Type 05 the number of bytes to be inserted (Hex). At any time up to this point, You can type X to escape from this command mode, as no change to RAM has occurred yet. |ndeed, if You maka a typing error at any time, yO0u must type X, and start the command again. ij If you have entered the Insert example correctly, you can now type ENTER to effect the insertion. The screen will scroli up one line, and the prompt and cursor will return to the bottom line, The insertion has been completed. Using the M command, check through the 21 locations from 6000. Addresses 6004 to 6008 inclusive will now Contain the value 00, and 6009 to 5014 will contain the values 04 through to OF. When using the Insert command, any absolute addresses in the remainder of the routine that referred to the area that has been operation of the routine, D — Delete SAJ: This command has the opposite effect to Insert, and takes the form "D aaaa bbbb nn', where D is the Delete command mode, aaaa is the address of the first byte to be deleted, bbbb is the address of the e .. highest byte to be moved down RAM, and nin is the number of bytes to be deleted. ; Assuming that the result of the Insert example is still in memory, let us now move the area of RAM from 6009 to 6014 back to its original place. ; Type X to restore the prompt and cursor. Type D to enter the Delete command, Type 6004 the start of the area to be deleted. Type 6014 the end of the area to be moved. Type 05 the number of bytes to be deleted (Hex). Type ENTER to effect the deletion. The prompt and cursor will reappear on the bottom line, and the deletion will be complete. Now check through addresses 5000 to 6014, using the M command. The contents of these locations will be as they were before the Insert example, and locations 6010 to 6014 will have been loaded with the value 00. Again, any absolute addresses relating to'the area of RAM that has been moved by Delete, wil! now need to be changed. A — Area Relocate The 'A' command block moves a specified area of RAM, and takes the form: 'A sana bbbb cceec" where A is the Area Relocate command, aaaa is the present start address, and bbbb is the present end address of the area to be moved, and ecec is the new starting address. Assuming that the example used for the | and D commands is stil! in memory, let us now move the whole area from 6000 to 600F Up memory, to start at 6200. Type X to restore the prompt and cursor. Type A to enter the. Area Relocate mode. Type 6000 the start address of the area to be moved. Type 600F the end address of the area to be moved, Type 6200 the new start address. Type ENTER to effect the move.