There’s more overhead in calling a BIOS or OS routine than in calling one of your program’s subroutines, and your subroutine can take shortcuts, eg not updating display attributes if your program knows from context that the colours aren’t being updated.