I am learning about IO devices, and so far I have only seen examples of IO devices that have registers and no memory space. For example, this is a printer that have three registers and no memory space:
If you want to print a character, you would put the ASCII code of the character in the Data register.
But what if you want to print an entire page and not just one character, shouldn't the printer have some memory space that can hold an entire page? or is the printing of an entire page possible by sending the page to the printer device controller one character at a time?
Does all IO devices only have registers, or do some IO devices also have some memory space?