Пример 1. В примере представлены программы установки метки на дорожку 41 (а)
В примере представлены программы установки метки на дорожку 41 (а) CODE SEGMENT ASSUME CS: CODE ORG 100H BEGIN: XORCL, CL XORDX, DX /диск А, головка 0 MOVCH, 41; дорожка 41 MOVAL, 9; число секторов LEABX, BUF /описатель секторов MOVAH, 5 /форматировать INT 13H; дорожку JCKON ; если форматирование прошло успешно, ; заполняем сектор 1 из буфера BUFFER XORDX, DX; диск и головка MOVCH, 41; дорожка MOVCL, 1; сектор 1 MOVAL, 1; один сектор MOV АН, 3; писать LEA BX, BUFFER INT 13H JC KON LEA DX, MES MOV AH, 9 INT 21H /сообщение об успешной установке метки KON: RET BUF DB 41, 0, 1, 2 DB 41, 0, 2, 2 DB 41, 0, 3, 2 DB 41, 0, 4, 2 DB 41, 0, 5, 2 DB 41, 0, 6, 2 DB 41, 0, 7, 2 DB 41, 0, 8, 2 DB 41, 0, 9, 2 BUFFER DB 512 DUP(12) MESDB 'На дискете установлена метка! ', 13, 10, ' $ ' CODEENDS ENDBEGIN Меняя описатель и таблицу параметров дискеты, можно произвести нестандартное форматирование дорожки. Вы можете менять нумерацию секторов, длину межсекторного интервала, длину сектора и т.д. Для правильного чтения такой дорожки таблица параметров дискеты должна быть такой же, как при форматировании. Можно произвести форматирование дорожки с большим числом секторов, а затем произвести запись в сектор с большой длиной. При установке физической метки (прожигание, прокол) следует вначале исследовать характер повреждения (количество испорченных секторов и их координаты). Затем характер повреждения должен быть учтен при защите программы. Защита от копирования нужна и инсталляционной дискете. Такие дискеты, как правило, содержат программу установки пакета на жесткий диск. Причем установка может производиться лишь энное число раз. По достижении данного числа данные на дискете безнадежно портятся. Привязка к жесткому диску обладает своей спецификой. Как правило, пакет для постоянной работы устанавливается на винчестер. Дискета же используется в основном в качестве инсталляционной. Установка на дискете ключа, для того чтобы при каждом запуске пакета требовалось вставить эту дискету в дисковод, является не слишком эффективным средством защиты. На жесткий диск невозможно поставить физическую метку. Кроме того, копирование ЖМД один к одному весьма проблематично. При установке пакета на жесткий диск возможна привязка к положению его файлов на диске (физические или логические координаты). Может, однако, возникнуть проблема при реорганизации диска, например, с помощью утилиты SPEEDISK. Правда, файл может быть помечен как неперемещаемый (READONLY). Однако атрибут файла может быть случайно изменен, что приведет к тому, что пакет не будет работать. В качестве примера приведем программу, определяющую начальный кластер заданного файла. Для определения начального кластера файла используется функция 52Н. Конечно, начальный кластер файла можно найти, поработав с FAT, но это гораздо сложнее. Данная программа определяет номер начального кластера файла с именем NONAME.COM и записывает его в него же по смещению OFSET.
|