OS/M, первые загрузки приложений
Сегодня ночью первый раз начал запускать приложения в своем pet-project ))
Одно из приложений выглядит так:
Вызов (сильно вкратце) выглядит так:Код:org #8000 ld (syscall+1),hl ;установить адрес системного вызова ld a,#0 ;#00 - запросить указатель на системную функцию ld hl,sc ;с именем ("sc") на которое указывает HL call syscall ;получить указатель на системную функцию ld (console+1),hl ;установить адрес вызова системной функции "sc" ld a,#02 ;#02 - печать строки ld hl,helloworld ;указатель на строку в HL call console ;вызов системной функции "sc" (System Console) ret helloworld db "Hello World!",#0d ;-- таблица имен необходимых функций sc db 3,"sc" ;-- таблица вызовов системных функций syscall db #c3,0,0 console db #c3,0,0
1. sh (такая же внешняя программа как и hello) вызывает функцию exec
2. функция exec вызывает виртуальную файловую систему (fs), которая встретив в системной MountTable (создается из fstab при загрузке или патчится программой mount/umount в процессе) запись "fd0 / trd" обращается к драйверу-описателю tr-dos формата, так как CurrentPath="/" (я пока без каталогов всяких)
4. а драйвер tr-dos в свою очередь обращается к аппаратно-зависимому драйверу "fd" дисковода по своим правилам (согласно формату диска)
Чот прям рад, действительно )
Комментарии
Трекбэков
Всего трекбэков 0
Ссылка трекбэка: