про 8.3 я не подумал, отвык уже от него
точно надо оговаривать в доке !.
про 8.3 я не подумал, отвык уже от него
точно надо оговаривать в доке !.
Доделал черновой вариант доки по железу - выкладываю здесь. Почитайте, может быть какие вопросы и замечания появятся. Исходник .odt, если кому надо, лежит в репозитории https://bitbucket.org/forth32/korvet-extrom
Вроде бы пакет докумнтации готов. Схему я тоже привел в порядок - можно взять в том же репозитории.
правильно ли я понял что
иКод:85 — Получить имя текущего каталога Если бы все образы дисков сваливались в корень карты, то там быстро наступил бы бардак, в котором практичсески невозможно найти нужный образ. Поэтому контроллер дает возможность разложить файлы в несколько каталогов, создаваемых в корне карты. Глубина вложенности каталогов — 1, то есть каталог внутри каталога создавать нельзя, контроллер его не увидит. Команда 85 возвращает имя текущего каталога, того, в котором контроллер будет искать вновь монтируемые образы дисков. После ввода команды контроллер отвечает 1 (ОК) и передает 14-байтовый буфер с именем каталога.
тогда 86 должен называться "Установить текущего каталога" ?Код:86 — Установить каталог по умолчанию Эта команда устанавливает каталог по умолчанию. После ее выполнения все вновь монтируемые образы дисков контроллер будет искать именно в этом каталоге. Если параметр SEC=0, то текущий каталог устанавливается временно, до выключения питания или перезагрузки. При SEC=1 текущий каталог записывается в файл конфигурации MOUNT.CFG и будет сохранен после перезагрузки. После ввода команды контроллер отвечает 1 (ОК) и принимает 14-байтовый буфер с именем каталога. Если указанный каталог не существует на карте, то назначение не выполняется — сохраняется прежний каталог по умолчанию. Это можно проверить с помощью команды 85.
Ну вообщем да, так наверное логичнее ее называть.тогда 86 должен называться "Установить текущего каталога" ?
посмотри демо
из асм слов только работа с get/put byte
вызов - T
можно повторно много раз позапускать
он там сохраняет выделяет текущее ...
О, так ты собрался переписать загрузчик на форте? Вот это ты шикарно придумал. Представляю себе базу биосов в виде набора патчащих слов.
Кстати, загрузчик FreeBSD тоже целиком на форте написан.
Пока такай мысли небыло
Я не настолько хорошо на форте пишу
Хотя идея - заманчивая
Можно для в2 оставить
В теории там всё должно быть просто надо подумать
forth32,
обнаружил тут
если собрать эмулятор с -O то он падает в модуле extrom
если всё кроме него собрать с O3 а его без -O то всё работает.
CFLAGS = -O3 -g -MMD -fomit-frame-pointer -funroll-loops -Isrc
Скрытый текст
esl@esl-hp:~/Dropbox/Emulator/Korvet/korvet-pk8020-emulator$ ./kdbg -e extrom/ 1>z
*** buffer overflow detected ***: ./kdbg terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x73e0f)[0x7f53664b4e0f]
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7f536654c7dc]
/lib/x86_64-linux-gnu/libc.so.6(+0x10a6a0)[0x7f536654b6a0]
/lib/x86_64-linux-gnu/libc.so.6(__fread_chk+0x13c)[0x7f536654bd7c]
./kdbg[0x41a80a]
./kdbg[0x40ee89]
./kdbg[0x40a39d]
./kdbg[0x4030eb]
./kdbg[0x402be2]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7f5366462ec5]
./kdbg[0x402c63]
======= Memory map: ========
00400000-0042f000 r-xp 00000000 08:15 658502 /home/esl/Dropbox/Emulator/Korvet/korvet-pk8020-emulator/kdbg
0062e000-0062f000 r--p 0002e000 08:15 658502 /home/esl/Dropbox/Emulator/Korvet/korvet-pk8020-emulator/kdbg
0062f000-0063e000 rw-p 0002f000 08:15 658502 /home/esl/Dropbox/Emulator/Korvet/korvet-pk8020-emulator/kdbg
....
7f5366d42000-7f5366d43000 rw-p 00000000 00:00 0
7fff94792000-7fff947b3000 rw-p 00000000 00:00 0 [stack]
7fff947b9000-7fff947bb000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Shutting down Allegro due to signal #6
Aborted
[свернуть]
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)