The long and short of it

There are two approaches to hardware of today. First a little history is in order. Our Hardware systems of today conform to strict standards. In the early times (pre 1980)  hardware used discrete components known as IC's transistors, resistors and capacitors. Hardware did not contain anything but the simplest built in control. There were no ROMS allowing easy interfacing. Each manufacturer gave a spec sheet on his device and if you wanted to use it you would need to develop a program that both satisfied the timing requirements and functional requirements for your purpose.

   For Example:
      To print to a printer, you would build your data as a stream of bytes that precisely matched the timing needed to evenly print on the paper.   Thusly, if 1 line of print from the printer view contains 960 dots and takes 1.5 seconds for the head to make the journey, then you need to consider this when you build your block of data for the line. Additionally, you needed to consider the timing of the computer and adjust the data to reflect this too. This was the norm for all devices of the era.

Today with the exception of Winmodems, our devices have well written programs called firmware that handle the real basics depicted above.