1. A digital computer on a single substrate comprising: a bidirectional data bus; memory for the storage of data or code, said memory comprising: one or more registers used for the temporary storage of data during the operation of said digital computer; means for addressing said memory, said addressing means comprising: means for including the addresses of external device registers, not located on said substrate, within the same address space used for said memory, said means permitting the same degree of direct manipulation of said external registers as is permitted registers located on said substrate; and a central processing unit which interprets and executes macroinstructions, and which performs arithmetic and logical operations, said central processing unit coupled to said data bus, to said memory and to said addressing means, said central processing unit comprising: a microengine for controlling the operation of said computer, said microengine comprising: macroinstruction memory for storing one or more of the macroinstructions to be executed by said computer; microcode memory, said microcode memory comprising one or more microinstructions, each of said microinstructions comprising one or more control signals to control the execution of said macroinstructions; means for receiving each of said macroinstructions and mapping said macroinstructions into a sequence of microinstructions, said means causing the first microinstruction of said sequence of microinstructions to be executed; and means for sequencing the execution of said microinstructions; and means for generating, independently of the operation of said data bus, the address of memory external to said substrate, and the address of the next of said macroinstructions to be executed by said microengine.