Один раз в начале при автодетекте этот блок из 12 байт (sd_tab0...sd_tab0+11) LDIR-ом меняется на соответствующий аппаратной схеме (init пройдет только на соответствующей схеме, а схем две сразу не может быть распаяно). А программа всегда делает вызовы на "sd_wiggle, sd_fini, sd_put, sd_get", которые к моменту начала работы логики уже соответствуют реальному контроллеру. Это в большинстве утилит. В Альтаир-ДОС для экономии места сделано по-другому: там при старте ОС из блока INITа (который позже используется как буфер диска и поэтому позволяет быть большим) в тело BIOS записывается один или другой набор подпрограмм для соответствующего типа схемы SD.





Ответить с цитированием