gudleifr писал(а):
Попробую по-порядку: в DOS-версиях FOBOS я тупо вводил с консоли по INT 21(0A), понятно, если комментарий не успевал закончиться до конца строки, это было его проблемой (но кто будет вводить с консоли комментарии?). В качестве "дисковой памяти" использовал блоки, очевидно, т.к. блок читался в память целиком, проблемы "конца строки" у него не было.
В Win-версии я считываю в память весь файл целиком - т.к. он играет роль исключительно загрузочную. А в Win-приложениях ввод идет через органы управления - там свои прибабахи. Т.е. опять, концы строк - это обычные пробелы.
Это вопрос исповедуемой идеологии. У вас клавиатура - это одно, а файл это другое.
Я же исповедую идеологию, взятую от RT-11 и от Unix, кстати и под MS-DOS она
есть, только несколько в убогом виде. Есть понятие поток - stream.
Форт принимает поток, который называется "стандартный ввод".
А откуда я этот поток физически запущу - с клавиатуры или
из файла - это мое дело. Форт одно от другого не различит.
Грубо говоря, если я под MS-DOS запушу Форт так
forth.exe
то он будет принимать с клавиатуры.
Если так
forth.exe < source.txt
то из файла, поскольку я переназначит стандартный ввод на файл.
Если Вы пользовались INT 21(0A) , то с чего вы решили, что это был
обязательно ввод с консоли ? Это поток "стандартного ввода" и этот
стандартный ввод может идти не только с клавиатуры, но и из файла и
из другого устройства. Если Вашу систему запустить с переназначением
ввода
forth.exe < source.txt
, то ввод пойдет из файла source.txt , а в нем
вполне естественны комментарии.
gudleifr писал(а):
P.S. Кстати, то, что Вы употребляете слово "файл" свидетельствует о том, что ОС присутствует и не только в виде FORTH-огрызка. Просто она стоит на другом конце Вашей двухмашинной связки, в которй "младший брат" не является вполне самостоятельным.
Младший брат не вполне самостоятелен только в процессе сборки
приложения и его отладки. После того как приложение собрано старший брат
в виде ПК от младшего брата отключается и младший брат работает совершенно
самостоятельно.
При таком подходе достигаются следующие преимущества.
1.) Мне не надо реализовывать никаких блоков или файловой системы на
младшем брате. Только посимвольный ввод и вывод через UART
2.) Я при сборке приложения пользуюсь всеми благами ОС и редактирую исходники
в виде файлов на ПК. Подключившись терминальной программой к младшему брату
или с клаваитуры им управляю, или скармливаю ему текстовые файлы с ПК, просто
переназначая входной поток на файл.
3.) Все, что на младшем брате не нужно после сборки приложения (ОС, шмос), так его там и нет. Все (почти) лишнее после сборки приложения отключается/отсекается. ОС, использовавшаяся до этого, отключается простым отключением кабеля от ПК. Словарь тоже отсекается. Он или в отдельной микросхемке ведется 24c256, тогда когда приложение собрано, микросхемка вынимается из колодки и все, словаря нет, или в хвосте EEPROM и тогда после сборки напоследок этот кусок памяти затирается.