BMOVE

Syntax BMOVE adr1a, adr1b, adr2
Location HCO

BMOVE is a procedure which copies the whole of the memory stored between the two addresses adr1a and adr1b to the new address pointed to by adr2, so the number of bytes moved is adr1b-adr1a.

Example

Dump some memory to screen (note that this only works with the screen at 131072 and at 512 x 256 resolution):

100 FOR a = 0 TO 10240 STEP 128
110   BMOVE a, a+HEX("8000") TO HEX("20000")
120 END FOR a

WARNING

Always ensure that there is sufficient available free memory at adr2 to hold the data from adr1a to adr1b, otherwise your machine is most likely to crash.

CROSS-REFERENCE

It is a good idea to check with VER$ if Minerva is present and use its extremely fast MM.MOVE machine code trap via CALL as an alternative to BMOVE; this is demonstrated by the example at LDRAW.

COPY_B, TTPOKEM, COPY_W and COPY_L also allow you to move memory.