Инструменты пользователя

Инструменты сайта


msx:assembler_programming_guide-fakhrutdinov_bocharov:02

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
msx:assembler_programming_guide-fakhrutdinov_bocharov:02 [2021-07-28 17:26]
brawaga [2.23.1. Троянские кони]
msx:assembler_programming_guide-fakhrutdinov_bocharov:02 [2022-09-09 22:17] (текущий)
GreyWolf
Строка 1812: Строка 1812:
 В этом случае можно либо попытаться включить необходимые слоты и вызвать подпрограмму,​ либо выполнить межслотовый вызов. В этом случае можно либо попытаться включить необходимые слоты и вызвать подпрограмму,​ либо выполнить межслотовый вызов.
  
-Межслотовый вызов выполняется подпрограммой BIOS ''​CALSLT''​ по адресу 1Ch. [[msx:​dos|MSX-DOS]] также поддерживает эту подпрограмму. Перед вызовом в регистр ''​IX''​ нужно загрузить адрес требуемой подпрограммы BIOS, а в ''​IY''​ — указатель слота в виде:+Межслотовый вызов выполняется подпрограммой BIOS ''​CALSLT''​ по адресу 1Ch. [[msx:dos:|MSX-DOS]] также поддерживает эту подпрограмму. Перед вызовом в регистр ''​IX''​ нужно загрузить адрес требуемой подпрограммы BIOS, а в ''​IY''​ — указатель слота в виде:
 <​code>​ <​code>​
     ┌───┬───┬───┬───┬───┬───┬───┬───┐     ┌───┬───┬───┬───┬───┬───┬───┬───┐
Строка 1986: Строка 1986:
 Приведём несколько примеров. Приведём несколько примеров.
  
-Первый пример — обязательная чистка экрана перед выполнением команды ''​[[msx:​basic_programming_guide:02#​list|LIST]]''​ языка [[msx:​basic:​]]. Ловушка для ''​[[msx:​basic_programming_guide:02#​list|LIST]]''​ и ''​[[msx:​basic_programming_guide:​02#​llist|LLIST]]''​ находится по адресу FF89h. Мы можем заполнить её следующими кодами:​+Первый пример — обязательная чистка экрана перед выполнением команды ''​[[msx:​basic_dialogue_programming_language:002#​list|LIST]]''​ языка [[msx:​basic:​]]. Ловушка для ''​[[msx:​basic_dialogue_programming_language:002#​list|LIST]]''​ и ''​[[msx:​basic_dialogue_programming_language:​002#​llist|LLIST]]''​ находится по адресу FF89h. Мы можем заполнить её следующими кодами:​
 <​code>​ <​code>​
 Адрес ​    ​Код ​    ​Команда ассембл. Адрес ​    ​Код ​    ​Команда ассембл.
Строка 1995: Строка 1995:
 </​code>​ </​code>​
  
-На языке [[msx:​basic:​]] заполнить ловушку можно при помощи команды ''​[[msx:​basic_programming_guide:10#​poke|POKE]]''​. После этого перед выполнением команды ''​[[msx:​basic_programming_guide:​02#​list|LIST]]''​ ловушкой будет выполняться чистка экрана.+На языке [[msx:​basic:​]] заполнить ловушку можно при помощи команды ''​[[msx:​basic_dialogue_programming_language:010#​poke|POKE]]''​. После этого перед выполнением команды ''​[[msx:​basic_dialogue_programming_language:​002#​list|LIST]]''​ ловушкой будет выполняться чистка экрана.
  
 {{anchor:​n2141}} {{anchor:​n2141}}
 ==== 2.14.1. Работа с файлами ==== ==== 2.14.1. Работа с файлами ====
  
-Рассмотрим установку ловушки для команды [[msx:basic_programming_guide:​09#​files|FILES]],​ которая должна очистить экран и вывести список файлов. Особенность здесь заключается в том, что ловушку на эту команду устанавливает и [[msx:​disk_basic|]]. Поэтому вначале будет работать наша ловушка,​ а затем нужно обеспечить выполнение ловушки [[msx:​disk_basic|]].+Рассмотрим установку ловушки для команды [[msx:basic_dialogue_programming_language:​009#​files|FILES]],​ которая должна очистить экран и вывести список файлов. Особенность здесь заключается в том, что ловушку на эту команду устанавливает и [[msx:​disk_basic|]]. Поэтому вначале будет работать наша ловушка,​ а затем нужно обеспечить выполнение ловушки [[msx:​disk_basic|]].
 <​code>​ <​code>​
                   Z80-Assembler ​  ​Page: ​   1                   Z80-Assembler ​  ​Page: ​   1
Строка 2142: Строка 2142:
 Список входных точек и правила вызова операций и функций [[msx:​basic:​]] приведены в книге "​Архитектура микрокомпьютера MSX-2"​. Список входных точек и правила вызова операций и функций [[msx:​basic:​]] приведены в книге "​Архитектура микрокомпьютера MSX-2"​.
  
-Не забывайте,​ что вызов подпрограмм [[msx:​basic:​]] возможен,​ например,​ либо если Вы работаете в обычном режиме [[msx:​basic:​]] (слот 0 активен),​ либо если в режиме [[msx:​dos|]] выполняется межслотовый вызов MSX-BASIC BIOS.+Не забывайте,​ что вызов подпрограмм [[msx:​basic:​]] возможен,​ например,​ либо если Вы работаете в обычном режиме [[msx:​basic:​]] (слот 0 активен),​ либо если в режиме [[msx:dos:|]] выполняется межслотовый вызов MSX-BASIC BIOS.
  
 При возникновении ошибки при выполнении подпрограмм происходит обращение к программе обработки ошибки [[msx:​basic:​]]. Для применения своей реакции на ошибку следует использовать хук H.ERRO (FFB1h). При возникновении ошибки при выполнении подпрограмм происходит обращение к программе обработки ошибки [[msx:​basic:​]]. Для применения своей реакции на ошибку следует использовать хук H.ERRO (FFB1h).
Строка 2362: Строка 2362:
 [[msx:​yamaha_local_network:​yamaha_local_network|Локальная сеть КУВТ-2]] имеет систему стандартных сетевых функций ввода/​вывода (Net ROM BIOS), включающую в себя функции инициализации сети, проверки номера компьютера,​ передачи/​приёма программ и данных,​ чтения/​записи из памяти своего компьютера или компьютера ученика и другие. [[msx:​yamaha_local_network:​yamaha_local_network|Локальная сеть КУВТ-2]] имеет систему стандартных сетевых функций ввода/​вывода (Net ROM BIOS), включающую в себя функции инициализации сети, проверки номера компьютера,​ передачи/​приёма программ и данных,​ чтения/​записи из памяти своего компьютера или компьютера ученика и другие.
  
-Сетевые функции могут быть вызваны как при работе в режиме [[msx:​basic:​]],​ так и при работе в [[msx:dos|MSX-DOS]]. Список сетевых функций дан в книге "​Архитектура микрокомпьютера MSX-2"​.+Сетевые функции могут быть вызваны как при работе в режиме [[msx:​basic:​]],​ так и при работе в [[msx:dos:|]]. Список сетевых функций дан в книге "​Архитектура микрокомпьютера MSX-2"​.
  
 Для проверки,​ имеет ли система сетевое ПЗУ, можно посмотреть,​ хранится ли по вызываемому адресу "​заглушка"​ RST30 (F7h) или записан ли идентификатор "​RNT"​ в сетевом ПЗУ по адресам 4040h-4042h. Для проверки,​ имеет ли система сетевое ПЗУ, можно посмотреть,​ хранится ли по вызываемому адресу "​заглушка"​ RST30 (F7h) или записан ли идентификатор "​RNT"​ в сетевом ПЗУ по адресам 4040h-4042h.
  
-Для инициализации сети в стандартной [[msx:dos|MSX-DOS]] необходимо вызвать подпрограмму по адресу F98Eh.+Для инициализации сети в стандартной [[msx:dos:|]] необходимо вызвать подпрограмму по адресу F98Eh.
  
 Для вызова сетевой функции нужно поместить код функции (01h-1Ah) в регистр ''​C'',​ начальный адрес блока параметров в регистровую пару DE и вызвать подпрограмму по адресу F989h. Для вызова сетевой функции нужно поместить код функции (01h-1Ah) в регистр ''​C'',​ начальный адрес блока параметров в регистровую пару DE и вызвать подпрограмму по адресу F989h.
Строка 2372: Строка 2372:
 Для окончания работы с сетью вызывается подпрограмма по адресу F984h. Для окончания работы с сетью вызывается подпрограмма по адресу F984h.
  
-Посмотрите пример программы,​ работающей с локальной сетью в стандартной [[msx:dos|MSX-DOS]].+Посмотрите пример программы,​ работающей с локальной сетью в стандартной [[msx:dos:|]].
 <​code>​ <​code>​
        ​MSX.M-80 1.00   ​01-Apr-85 ​      ​PAGE ​   1        ​MSX.M-80 1.00   ​01-Apr-85 ​      ​PAGE ​   1
Строка 3420: Строка 3420:
 </​code>​ </​code>​
  
-Таким образом,​ например,​ ячейка RAM с адресом FD02h отвечает за страницу 1 слота 3-2, т.е. за страницу RAM по адресу 4000h. Запись числа 32 в ячейку FD02h означает разрешение обработки расширенного оператора ''​[[msx:​basic_programming_guide:​07#​call|CALL]]''​ [[msx:​basic:​]] подпрограммами RAM по адресу 4000h.+Таким образом,​ например,​ ячейка RAM с адресом FD02h отвечает за страницу 1 слота 3-2, т.е. за страницу RAM по адресу 4000h. Запись числа 32 в ячейку FD02h означает разрешение обработки расширенного оператора ''​[[msx:​basic_dialogue_programming_language:​007#​call|CALL]]''​ [[msx:​basic:​]] подпрограммами RAM по адресу 4000h.
  
 [[msx:​basic:​]] просматривает все слоты (включая вторичные) по адресам с 4000H по 0BFFFH для нахождения ID устройства,​ начинающего каждую страницу. Формат заголовка кассеты,​ содержащего ID, приведён ниже. [[msx:​basic:​]] просматривает все слоты (включая вторичные) по адресам с 4000H по 0BFFFH для нахождения ID устройства,​ начинающего каждую страницу. Формат заголовка кассеты,​ содержащего ID, приведён ниже.
Строка 3440: Строка 3440:
   * ''​ID''​ — это двухбайтовая строка,​ при помощи которой можно отличить картридж ROM или SUB-ROM от пустой страницы. Картридж ROM обозначается строкой "​AB"​ (41h,42h), а картридж SUB-ROM — строкой "​CD"​.   * ''​ID''​ — это двухбайтовая строка,​ при помощи которой можно отличить картридж ROM или SUB-ROM от пустой страницы. Картридж ROM обозначается строкой "​AB"​ (41h,42h), а картридж SUB-ROM — строкой "​CD"​.
   * ''​INIT''​ содержит адрес процедуры инициализации этого картриджа. Ноль записывается,​ если такой процедуры нет. Программы,​ которые нуждаются в связи с интерпретатором языка BASIC, возвращают управление командой Z80 ''​RET''​. Все регистры,​ за исключением указателя стека SP, могут быть изменены. Для некоторых программ (например,​ для игр) соблюдать соглашение о вызове ''​INIT''​ не нужно, поэтому игры могут запускаться процедурой инициализации.   * ''​INIT''​ содержит адрес процедуры инициализации этого картриджа. Ноль записывается,​ если такой процедуры нет. Программы,​ которые нуждаются в связи с интерпретатором языка BASIC, возвращают управление командой Z80 ''​RET''​. Все регистры,​ за исключением указателя стека SP, могут быть изменены. Для некоторых программ (например,​ для игр) соблюдать соглашение о вызове ''​INIT''​ не нужно, поэтому игры могут запускаться процедурой инициализации.
-  * <​WRAP>''​STATEMENT''​ содержит адрес обработки расширенного оператора ''​[[msx:​basic_programming_guide:07#​call|CALL]]'',​ если его обработка в картридже предусмотрена. Ноль записывается в том случае,​ если обработки оператора ''​[[msx:​basic_programming_guide:​07#​call|CALL]]''​ нет.+  * <​WRAP>''​STATEMENT''​ содержит адрес обработки расширенного оператора ''​[[msx:​basic_dialogue_programming_language:007#​call|CALL]]'',​ если его обработка в картридже предусмотрена. Ноль записывается в том случае,​ если обработки оператора ''​[[msx:​basic_dialogue_programming_language:​007#​call|CALL]]''​ нет.
  
-Когда [[msx:​basic:​]] встречает оператор ''​[[msx:​basic_programming_guide:​07#​call|CALL]]'',​ то он записывает его имя в PROCNM (FD89h), в регистр ''​HL''​ — указатель на текст, следующий за ''​CALL (список параметров)'',​ и вызывает адрес STATEMENT.+Когда [[msx:​basic:​]] встречает оператор ''​[[msx:​basic_dialogue_programming_language:​007#​call|CALL]]'',​ то он записывает его имя в PROCNM (FD89h), в регистр ''​HL''​ — указатель на текст, следующий за ''​CALL (список параметров)'',​ и вызывает адрес STATEMENT.
  
 Картридж может быть расположен по адресам с 4000H по 7FFFH. Картридж может быть расположен по адресам с 4000H по 7FFFH.
  
-Синтаксис оператора расширения ''​[[msx:​basic_programming_guide:​07#​call|CALL]]'':​+Синтаксис оператора расширения ''​[[msx:​basic_dialogue_programming_language:​007#​call|CALL]]'':​
 <​code>​ <​code>​
 CALL <​инструкция>​ [(<​параметр>​[,<​параметр>​])] CALL <​инструкция>​ [(<​параметр>​[,<​параметр>​])]
Строка 3493: Строка 3493:
 ==== 2.21.2. Создание CALL-подпрограмм пользователем ==== ==== 2.21.2. Создание CALL-подпрограмм пользователем ====
  
-Приведём пример программы создания следующих подпрограмм пользователя,​ вызываемых из [[msx:​basic:​]] оператором ''​[[msx:​basic_programming_guide:​07#​call|CALL]]''​ :+Приведём пример программы создания следующих подпрограмм пользователя,​ вызываемых из [[msx:​basic:​]] оператором ''​[[msx:​basic_dialogue_programming_language:​007#​call|CALL]]''​ :
   * ''​CALL RUSON''​ — включение русских букв;   * ''​CALL RUSON''​ — включение русских букв;
   * ''​CALL RUSOFF''​ — выключение русских букв;   * ''​CALL RUSOFF''​ — выключение русских букв;
Строка 3858: Строка 3858:
 Как уже говорилось,​ для работы с файлами имеются стандартные функции ввода/​вывода BDOS. Они вызываются по адресу 0005h (дисковая операционная система) или F37Dh ([[msx:​disk_basic|]]). При этом надо занести в регистр C номер вызываемой функции,​ а через остальные регистры передать необходимые параметры. Как уже говорилось,​ для работы с файлами имеются стандартные функции ввода/​вывода BDOS. Они вызываются по адресу 0005h (дисковая операционная система) или F37Dh ([[msx:​disk_basic|]]). При этом надо занести в регистр C номер вызываемой функции,​ а через остальные регистры передать необходимые параметры.
  
-Для того, чтобы открыть файл, необходимо подготовить FCB — блок управления файлом. Его можно создать в любом месте оперативной памяти (при работе в [[msx:dos|MSX-DOS]]) и в области 8000h–FFFFh (при работе в [[msx:​basic:​]]).+Для того, чтобы открыть файл, необходимо подготовить FCB — блок управления файлом. Его можно создать в любом месте оперативной памяти (при работе в [[msx:dos:|]]) и в области 8000h–FFFFh (при работе в [[msx:​basic:​]]).
  
 Как Вы можете убедиться,​ номер функции "​открыть файл"​ равен 0Fh. Поэтому для обращения к этой функции в регистр C надо занести 0Fh, в регистровую пару DE — адрес FCB и затем обратиться по указанному адресу BDOS. Как Вы можете убедиться,​ номер функции "​открыть файл"​ равен 0Fh. Поэтому для обращения к этой функции в регистр C надо занести 0Fh, в регистровую пару DE — адрес FCB и затем обратиться по указанному адресу BDOS.
Строка 3954: Строка 3954:
 ==== 2.23.2. Компьютерные вирусы ==== ==== 2.23.2. Компьютерные вирусы ====
  
-Компьютерный вирус — это программа,​ обычно скрыто располагающаяся на диске, обладающая возможностью к "саморазмножению" ​(копированию на другие диски или файлы) и имеющая некоторый вредоносный эффект,​ который проявляется через определённое время после заражения.+Компьютерный вирус — это программа,​ обычно скрыто располагающаяся на диске, обладающая возможностью к «саморазмножению» (копированию на другие диски или файлы) и имеющая некоторый вредоносный эффект,​ который проявляется через определённое время после заражения.
  
-Таким образом,​ некоторое время вирус ​"размножается" ​и только потом начинает производить эффекты. В самых простых случаях это уничтожение директория и FAT. Более коварные вирусы слегка портят информацию или уничтожают её не сразу, а незаметными порциями.+Таким образом,​ некоторое время вирус ​«размножается» и только потом начинает производить эффекты. В самых простых случаях это уничтожение директорий и FAT. Более коварные вирусы слегка портят информацию или уничтожают её не сразу, а незаметными порциями.
 Особенно подлым является незаметное изменение цифр в больших массивах числовых данных. Особенно подлым является незаметное изменение цифр в больших массивах числовых данных.
  
 Три основных типа вирусов,​ разработанных в настоящее время для системы MSX — это: Три основных типа вирусов,​ разработанных в настоящее время для системы MSX — это:
   - Загрузочные вирусы;​   - Загрузочные вирусы;​
-  - Вирусы [[msx:​dos|]];​+  - Вирусы [[msx:dos:|]];
   - Файловые вирусы.   - Файловые вирусы.
  
-Для понимания основных принципов их работы необходимо хорошо знать архитектуру компьютера и основы функционирования операционной системы [[msx:​dos|]].+Для понимания основных принципов их работы необходимо хорошо знать архитектуру компьютера и основы функционирования операционной системы [[msx:dos:|]].
  
 Рассмотрим процесс начальной загрузки системы MSX. Система MSX запускается следующим образом:​ Рассмотрим процесс начальной загрузки системы MSX. Система MSX запускается следующим образом:​
   - Сброс питания компьютера приводит к тому, что в процессе перезагрузки сначала проверяются все слоты, и если в вершине проверяемого слота записаны 2 байта 41Н и 42Н, слот интерпретируется как относящийся к определённой части ПЗУ. После этого выполняется программа ''​INIT''​ (инициализация),​ адрес которой установлен в верхней части ПЗУ. В случае использования программы ''​INIT''​ из ПЗУ дискового интерфейса в первую очередь определяется рабочая область для относящегося к нему дисковода.   - Сброс питания компьютера приводит к тому, что в процессе перезагрузки сначала проверяются все слоты, и если в вершине проверяемого слота записаны 2 байта 41Н и 42Н, слот интерпретируется как относящийся к определённой части ПЗУ. После этого выполняется программа ''​INIT''​ (инициализация),​ адрес которой установлен в верхней части ПЗУ. В случае использования программы ''​INIT''​ из ПЗУ дискового интерфейса в первую очередь определяется рабочая область для относящегося к нему дисковода.
   - Когда все слоты проверены,​ машина обращается к адресу FEDAh (H.STKE). Если содержимое этого адреса не равно C9h (т.е. если в этот хук не был записан вызов определённой программы при выполнении процедуры INIT), подготавливается конфигурация DISK-BASIC и управление передаётся на H.STKE.   - Когда все слоты проверены,​ машина обращается к адресу FEDAh (H.STKE). Если содержимое этого адреса не равно C9h (т.е. если в этот хук не был записан вызов определённой программы при выполнении процедуры INIT), подготавливается конфигурация DISK-BASIC и управление передаётся на H.STKE.
-  - Если же содержимое H.STKE равно C9h, во всех слотах ищется кассета со входом TEXT. В случае её нахождения подготавливается конфигурация [[msx:​disk_basic|]] и выполняется ​[[msx:​basic:​]]–программа из этой кассеты.+  - Если же содержимое H.STKE равно C9h, во всех слотах ищется кассета со входом TEXT. В случае её нахождения подготавливается конфигурация [[msx:​disk_basic|]] и выполняется программа ​[[msx:​basic:​]] ​из этой кассеты.
   - Затем содержимое загрузочного сектора диска (логический сектор #0) передаётся в память на адреса с C000H по C0FFH. При этом, если возникает ошибка неготовности диска или ошибка чтения,​ или если значение первого байта этого сектора не равно ни EBh, ни E9h, вызывается [[msx:​disk_basic|]].   - Затем содержимое загрузочного сектора диска (логический сектор #0) передаётся в память на адреса с C000H по C0FFH. При этом, если возникает ошибка неготовности диска или ошибка чтения,​ или если значение первого байта этого сектора не равно ни EBh, ни E9h, вызывается [[msx:​disk_basic|]].
   - Вызывается подпрограмма по адресу C01Eh, и происходит сброс флага ''​C''​. При нормальной работе,​ поскольку по этому адресу записан код ''​RET NC'',​ ничего не выполняется,​ и управление возвращается обратно. Любая записанная здесь на языке ассемблера программа запустится автоматически (первый вход в BOOT-программу).   - Вызывается подпрограмма по адресу C01Eh, и происходит сброс флага ''​C''​. При нормальной работе,​ поскольку по этому адресу записан код ''​RET NC'',​ ничего не выполняется,​ и управление возвращается обратно. Любая записанная здесь на языке ассемблера программа запустится автоматически (первый вход в BOOT-программу).
   - Проверяется ёмкость ОЗУ (его содержимое при этом не разрушается). Если она менее 64 Кбайт, вызывается [[msx:​disk_basic|]].   - Проверяется ёмкость ОЗУ (его содержимое при этом не разрушается). Если она менее 64 Кбайт, вызывается [[msx:​disk_basic|]].
-  - 7. Подготавливается конфигурация [[msx:​dos|]] и вызывается C01EH, на этот раз с установленным флагом C (второй вызов BOOT-программы). Загружается ''​MSXDOS.SYS''​ с адреса 100Н, и на этот же адрес передаётся управление (т.е. начинает работать [[msx:​dos|]]). После этого [[msx:​dos|]] переносит себя на более высокий адрес. Если файл ''​MSXDOS.SYS''​ на диске отсутствует,​ вызывается [[msx:​disk_basic|]].+  - 7. Подготавливается конфигурация [[msx:dos:|]] и вызывается C01EH, на этот раз с установленным флагом C (второй вызов BOOT-программы). Загружается ''​MSXDOS.SYS''​ с адреса 100Н, и на этот же адрес передаётся управление (т.е. начинает работать [[msx:dos:|]]). После этого [[msx:dos:|]] переносит себя на более высокий адрес. Если файл ''​MSXDOS.SYS''​ на диске отсутствует,​ вызывается [[msx:​disk_basic|]].
   - 8. ''​MSXDOS.SYS''​ загружает ''​COMMAND.COM''​ с диска по адресу 100Н и выполняет переход на его начальный адрес. ''​COMMAND.COM''​ тоже переносит себя на более высокий адрес и запускается. Если ''​COMMAND.COM''​ отсутствует,​ появляется сообщение "​INSERT DOS DISKEТТЕ"​ (вставьте системный диск), и выполнение прерывается до тех пор, пока в дисковод не будет вставлена соответствующая дискета.   - 8. ''​MSXDOS.SYS''​ загружает ''​COMMAND.COM''​ с диска по адресу 100Н и выполняет переход на его начальный адрес. ''​COMMAND.COM''​ тоже переносит себя на более высокий адрес и запускается. Если ''​COMMAND.COM''​ отсутствует,​ появляется сообщение "​INSERT DOS DISKEТТЕ"​ (вставьте системный диск), и выполнение прерывается до тех пор, пока в дисковод не будет вставлена соответствующая дискета.
-  - 9. При первой загрузке [[msx:​disk_basic|]],​ если существует файл с именем ''​AUTOEXEC.BAT'',​ он выполняется как обычный пакетный файл. Когда [[msx:disk_basic|]] не запущена и работает [[msx:​disk_basic|]],​ и если на диске имеется файл ''​AUTOEXEC.BAS'',​ то он будет автоматически запущен.+  - 9. При первой загрузке [[msx:​disk_basic|]],​ если существует файл с именем ''​AUTOEXEC.BAT'',​ он выполняется как обычный пакетный файл. Когда [[msx:dos:|]] не запущен и работает [[msx:​disk_basic|]],​ и если на диске имеется файл ''​AUTOEXEC.BAS'',​ то он будет автоматически запущен.
  
 === Загрузочные вирусы === === Загрузочные вирусы ===
  
-Бутовыми вирусами называют вирусы,​ которые размещают себя в загрузочном (BOOTсекторе) диска и изменяют программу начальной загрузки таким образом,​ чтобы получать управление до начала работы ​"настоящей" ​загрузочной программы. Получив управление,​ вирус устанавливает ловушки так, что при записи информации на другой диск на него записывается и заражённый вирусом загрузочный сектор.+Бутовыми вирусами называют вирусы,​ которые размещают себя в загрузочном (BOOT-секторе) диска и изменяют программу начальной загрузки таким образом,​ чтобы получать управление до начала работы ​«настоящей» загрузочной программы. Получив управление,​ вирус устанавливает ловушки так, что при записи информации на другой диск на него записывается и заражённый вирусом загрузочный сектор.
  
 === Вирусы MSX-DOS === === Вирусы MSX-DOS ===
Строка 4036: Строка 4036:
   * Используйте программное обеспечение,​ полученное (приобретённое) только от лиц или организаций,​ которым Вы полностью доверяете. Приобретайте программы законным образом,​ поскольку защита от копирования может быть выполнена в виде вирусов,​ а украденные программы могут оказаться троянскими конями или программами,​ инфицированными вирусами.   * Используйте программное обеспечение,​ полученное (приобретённое) только от лиц или организаций,​ которым Вы полностью доверяете. Приобретайте программы законным образом,​ поскольку защита от копирования может быть выполнена в виде вирусов,​ а украденные программы могут оказаться троянскими конями или программами,​ инфицированными вирусами.
   * Не работайте с оригиналами дистрибутивных дисков. Делайте с них (если это разрешено поставщиком) копии и работайте с копиями.   * Не работайте с оригиналами дистрибутивных дисков. Делайте с них (если это разрешено поставщиком) копии и работайте с копиями.
-  * Лучше иметь не одну, а несколько копий. Под рукой всегда должна быть защищённая от записи дискета с "​чистой"​ [[msx:​dos|]],​ оболочкой [[msx:​nd:​nd|ND]],​ антивирусами и утилитами восстановления ''​FIXER'',​ ''​DBG'',​ ''​VFY'',​ ''​DSKVER''​ и т.п.+  * Лучше иметь не одну, а несколько копий. Под рукой всегда должна быть защищённая от записи дискета с "​чистой"​ [[msx:dos:|]], оболочкой [[msx:​nd:​nd|ND]],​ антивирусами и утилитами восстановления ''​FIXER'',​ ''​DBG'',​ ''​VFY'',​ ''​DSKVER''​ и т.п.
   * Не пользуйтесь "​чужими"​ дискетами на своём компьютере. Не запускайте с них операционную систему и программы. Не давайте свои дискеты для работы на других компьютерах. Не запускайте программы,​ назначение которых Вам точно неизвестно.   * Не пользуйтесь "​чужими"​ дискетами на своём компьютере. Не запускайте с них операционную систему и программы. Не давайте свои дискеты для работы на других компьютерах. Не запускайте программы,​ назначение которых Вам точно неизвестно.
-  * В конце работы делайте копии того, что было сделано,​ на дисках-архивах,​ с которыми не ведётся никакая другая работа,​ кроме записи на них копий файлов. Лучше всего копировать исходные файлы программ в текстовом виде (в том числе и программы на языке BASIC — в коде ASCII). Перед копированием выключите ненадолго компьютер и затем загрузите "​чистую"​ [[msx:​dos|]] или [[msx:​nd:​nd|ND]]. Перед копированием можно просмотреть файл, но нельзя запускать никакие программы. +  * В конце работы делайте копии того, что было сделано,​ на дисках-архивах,​ с которыми не ведётся никакая другая работа,​ кроме записи на них копий файлов. Лучше всего копировать исходные файлы программ в текстовом виде (в том числе и программы на языке BASIC — в коде ASCII). Перед копированием выключите ненадолго компьютер и затем загрузите "​чистую"​ [[msx:dos:|]] или [[msx:​nd:​nd|ND]]. Перед копированием можно просмотреть файл, но нельзя запускать никакие программы. 
-  * Если Вы хотите поработать на уже включённом кемто компьютере MSX, обязательно выключите его ненадолго и затем произведите загрузку со своей дискеты. Компьютер мог быть умышленно или случайно заражён вирусом,​ а его выключение,​ к счастью,​ уничтожает все вирусы. +  * Если Вы хотите поработать на уже включённом кем-то компьютере MSX, обязательно выключите его ненадолго и затем произведите загрузку со своей дискеты. Компьютер мог быть умышленно или случайно заражён вирусом,​ а его выключение,​ к счастью,​ уничтожает все вирусы. 
-  * Если Вы поняли,​ что диск заражён вирусом,​ выключите компьютер,​ загрузите ​"чистую" ​систему с эталонного диска [[msx:​dos|]] или [[msx:​nd:​nd|ND]],​ перепишите файлы с заражённой дискеты,​ за исключением файлов типа ''​COM'',​ ''​SYS'',​ ''​OBJ'',​ ''​GM''​ (а лучше всего переписывать только текстовые файлы),​ на чистую дискету,​ отформатируйте и отверифицируйте заражённую дискету и восстановите на ней файлы.+  * Если Вы поняли,​ что диск заражён вирусом,​ выключите компьютер,​ загрузите ​«чистую» систему с эталонного диска [[msx:dos:|]] или [[msx:​nd:​nd|ND]],​ перепишите файлы с заражённой дискеты,​ за исключением файлов типа ''​COM'',​ ''​SYS'',​ ''​OBJ'',​ ''​GM''​ (а лучше всего переписывать только текстовые файлы),​ на чистую дискету,​ отформатируйте и отверифицируйте заражённую дискету и восстановите на ней файлы.
  
  
msx/assembler_programming_guide-fakhrutdinov_bocharov/02.1627482369.txt.gz · Последние изменения: 2021-07-28 17:26 — brawaga