После изучения библиотеки NETLIB я доработал программу сетевого обмена. Выкладываю новую версию.
Что добавлено и изменено:
Приделан автозапуск программ на бейсике.В отличии от netlib, я использую более универсальный способ - в буфер командной строки РМУ записывается команда RUN, и затем буфер передается интерпретатору на выполнение. Соответственно, добавлен ключ -pr:
Код:
kl -pr test.bas - загрузка и запуск программы test.bas
Можно указывать этот ключ и без имени файла - тогда будет просто запущена ранее загруженаая программа:
Код:
kl -pu test.bas - загрузка программы
kl -pr - запуск программы
В продолжении предыдущей идеи - добавлен ключ -pi, позволяющий запустить на выполнение любую команду бейсика. Например
Код:
kl -pi "PRINT FRE(0)"
выпооняет команду print fre(0) на РМУ. Так можно и добавлять программные строки в программу, например
добавляет в программу строку 10 с текстом PRINT A.
Добавлена возможность просмотра копии тестового экрана РМУ. Для этого добавлен ключ -ms:
Код:
kl -ms
......................
---------------- Экран РМУ #2 ----------------------------
Бейсик КОРВЕТ в.2.0
Москва 1988
Ok
Ok
LIST
10 INPUT A
20 PRINT A,SQR(A)
30 END
Ok
RUN
? 5534
5534 74.3908
Ok
---------------- Экран РМУ #2 ----------------------------
Эту возможность можно использовать для снятия скриншотов бейсик-программ, и, кроме того, комбинация режимов -ms и -pi позволяет в некоторых, ограниченных пределах организовать общение с бейсик-системой корвета целиком с РС, не подключая к корвету монитор.
Добавлена возможность передачи управления по произвольному адресу без заливки двоичной программы в РМУ. Для этого используется ключ -br без имени файла, например:
Код:
kl -s 9000 -bu gonki.bin - загрузка файла gonki.bin в память с адреса 9000
kl -s 9000 -br - запуск с адреса 9000
Конечно, в данном случае проще обойтись одной командой:
Код:
kl -s 9000 -br gonki.bin
Ну и, наконец, добавлена возможность удаленного программного перезапуска корвета. Для этого введена группа ключей -r:
Код:
-rc - полный холодный перезапуск, как кнопкой RESET, со всеми тестами ОПТС
-rw - теплый перезапуск бейсика, происходит мгновенно.
-rb - принудительная загрузка операционной системы с диска
Режим -rb производит загрузку ОС, даже если сетевой адрес РМУ отличается от 0 - это дает возможность загрузить cp/m, не выдергивая сетевой разъем из корвета. Конечно, если в дисководе нет диска или дисковода вообще нет как такового, то будет запущен бейсик. А режим -rw запускает бейсик всегда, независимо от наличия дискеты в дисководе.
Вот пока вроде все. Вообще, с помощью сетевых средств можно попытаться организовать полноценный удаленный отладчик, с точками останова, просмотром-модификацией ячеек, заливкой программ, дизассемблером, блекджеком, шлюхами итд. Надо будет подумать. Он может очень пригодиться для отладки клиентской части сетевой ОС.
А вот и сама программа: korvet_lan_1.03.7z