Yup - DOS system calls were done using a INT 21H instruction. That made for slightly shorter code (no need to use a 5 byte far call instruction), and it also made it easy to "hook" OS calls if you wanted by re-pointing the int 21 interrupt vector at your code, and then chaining to the real one after you have done what you wanted.
Yup it updated the software version of system time, and turned off the floppy motors after 5 secs of inactivity. Originally generated by an
8254 Programmable Interval Timer (these days built into one of the "bridge" chipsets).(I quite often used to disable it when I needed precise timing control when writing simulators)
:-)
Yup much fun could be had with TSR programs -
Yup the Program Segment Prefix (PSP) - a data structure built for each COM or EXE program as it loaded, was based on the CP/M version[1]. It included a far call instruction at offset 5, that would call the OS entry point, so you could do a CALL BDOS instruction as you would on CP/M and it would work.
[1] Which arguably much of DOS was since it was based on Seattle Computer Products QDOS (Quick and Dirty Operating System), which was basically a 16 OS shall we say "heavily influenced" by CP/M. MS Licenses QDOS from SCP, and then later bought it outright.