README.md

VSC-Nedo

Шаблон asm-решения для VSCode (только для Linux)

Прозволяет скомпилировать и затем распаковать asm-решение для NedoOS на целевой машине в одно нажатие.

Возможности

  • Работа как с эмулятором (localhost), так и с реальной машиной.
  • Выбор режима ftp-соединения.
  • Пересылка всего решения одним архивом.
  • Гибкая настройка через .ini файл.
  • Детальная обработка возможных ошибок исполнения.

Установка

Необходимые приготовления:

  1. Функционирующий в одном из двух режимов ftp-сервер (вариант настройки будет описан далее).
  2. Установленные пакеты “telnet” и “expect” (обычно не нуждаются в настройке).
  3. Наличие ассемблера “sjasmplus”.
  4. Опционально, для работы примера: наличие SDK (требуемое расположение будет описано далее).
  5. Расширение для VSCode “mborik.z80-macroasm”.
  6. Для удобства (рекомендация) - расширения “maziac.z80-instruction-set” и “ms-vscode.hexeditor”.

Пример запуска анонимного ftp-сервера на AltLinux

Официальная инструкция доступна по адресу https://www.altlinux.org/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_FTP
  1. Установить пакеты “vsftpd” и “anonftp”, если не установлены.
  2. В файле “/etc/xinetd.d/vsftpd” в разделе “service ftp” установить значение “disable = no”.
  3. В файле “/etc/xinetd.conf” в разделе “defaults” закомментировать значение “only_from = 127.0.0.1”.
  4. Поддерживаются два режима соединения по ftp - анонимный и с авторизацией. Обычно пакет “vsftpd” в анонимном режиме работает “из коробки”, для использования режима авторизации - в файле “/etc/vsftpd.conf” нужно установить значение “anonymous_enable” в “NO”, а значение “local_enable” в “YES”. При каждой смене режимов будет необходимо перезапускать сервис “xinetd”.
  5. Перезапустить сервис командой “sudo service xinetd restart”.
  6. Для дальнейшего запуска сервиса вместе с системой: “sudo chkconfig xinetd on”.

Настройка шаблона.

  1. Единый конфигурационный файл: “compile_deploy.ini”.
  2. В переменной “sjasmplus_executable_path” следует указать путь к испоняемому файлу ассемблера.
  3. Переменные “target_machine_IP” и “ftp_server_IP” по умолчанию установлены в “127.0.0.1” для работы с эмулятором, для реального соединения следует указать IP целевой машины и ftp-сервера соответственно.
  4. Переменные “ftp_login_username” и “ftp_login_password” содержат имя и пароль пользователя. Режим анонимного ftp выбирается скриптом в случае “ftp_login_username=anonymous”, в этом режиме пароль игнорируется. Для использования режима логинов и паролей указанные переменные нужно заполнить соотв. значениями.
  5. При выборе режима с авторизацией будет использован путь из переменной “ftp_server_secure_folder” для временного создания архива для пересылки. Данный путь должен указывать внутрь корневой папки пользоватея. При работе в анонимном режиме будет использоан путь к публичной папке по умолчанию - “/var/ftp/pub”.
  6. Для успешной компиляции и запуска встроенного примера “HelloWorld” в той же директории, где расположена папка шаблона, должна находиться папка для разработчика “_sdk”, содержание которой можно скачать тут: http://nedoos.ru/svn/ в папке “src/_sdk” (main.asm будет искать SDK по относительному пути).
  7. Остальные описания переменных - см. в конфигурационном файле.

Работа с шаблоном.

  1. На целевой машине должен быть запущен “netterm.com” - из командной строки или в загрузке через “autoexec.bat”.
  2. ftp-сервер должен быть запущен, доступен целевой машине и нормально функционировать.
  3. Сборка и распаковка производится выполнением задачи сборки VSCode. Вызов в VSCode по умолчанию - “Ctrl+Shift+B”, может переопределяться пользователем.
  4. При передаче и распаковке на целевой машине больших объёмов данных, может возникать рассинхрон c telnet. В конфигурационном файле предусмотрена переменная “sleep_for_sync”, увеличивая значение которой, можно добавить время на обработку команд (в секундах).
  5. Папки на целевой машине в результате распаковки не перезаписываются, а дополняются, т.е. могут содержать файлы, уже неактуальные для решения и т.д.
  6. Папка шаблона “HelloWorld/resources” содержит файл изображения для тестовых нужд, в примере “HelloWorld” не используется.
  7. В результате выполнения сборки и распаковки примера “HelloWorld”, на целевой машине в папке “/HelloWorld” в корневой директории должен появиться исполняемый файл “HelloWorld.com” и папка “resources” c тестовым изображением.
Проверено на следующем оборудовании и ПО:
  • Asus IdeaPad Gaming 3: OS AltLinux “Альт Рабочая станция 10.2”, VSCode 1.93.0, UnrealSpeccy 0.39.0 (wine)
  • ZXEVO Revision C, ZXNETUSB: Baseconf, NedoOS 2119

TODO:

  • Дублирование документации на английском.

Apache License Version 2.0

Описание

Шаблон asm-решения для VSCode (только для Linux). Прозволяет скомпилировать и затем распаковать asm-решение для NedoOS на целевой машине в одно нажатие.

Конвейеры
0 успешных
0 с ошибкой