Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Абель.docx
Скачиваний:
13
Добавлен:
26.11.2018
Размер:
569.84 Кб
Скачать

Int 21h ;Вызов dos

CMP ROW,18 ;Последняя строка экрана?

JAE E20 ; да - обойти,

INC ROW ; нет - увеличить строку

RET

E20:

MOV AX,0601H ;Прокрутка на 1 строку

CALL Q10SCR

CALL Q20CURS ;Установить курсор

RET

E10DISP ENDP

; Запись на диск:

; --------------

F10WRIT PROC NEAR

MOV AH,15H ;Функция записи

LEA DX,FCBREC

INT 21H

CMP AL,00 ;Запись без ошибок?

JZ F20 ; да

LEA DX,WRTMSG ; нет -

CALL X10ERR ; выдать сообщение

MOV NAMELEN,00

F20: RET

F10WRIT ENDP

; Закрытие дискового файла:

; ------------------------

G10CLSE PROC NEAR

MOV NAMEDTA,1AH ;Установить EOF

CALL F10WRIT

MOV AH,10H ;Функция закрытия

LEA DX,FCBREC

INT 21H

RET

G10CLSE ENDP

; Прокрутка экрана:

; ----------------

Q10SCR PROC NEAR ;AX уже установлен

MOV BH,1EH ;Цвет желтый на синем

MOV CX,0000

MOV DX,184FH

INT 10H ;Прокрутка

RET

Q10SCR ENDP

; Установка курсора:

; -----------------

Q20CURS PROC NEAR

MOV AH,02

MOV BH,00

MOV DL,00

MOV DH,ROW ;Установить курсор

INT 10H

RET

Q20CURS ENDP

; Вывод сообщения об ошибке на диске:

; ----------------------------------

X10ERR PROC NEAR

MOV AH,09 ;DX содержит

INT 21H ; адрес сообщения

MOV ERRCDE,01 ;Установить код ошибки

RET

X10ERR ENDP

CODESG ENDS

END BEGIN

__________________________________________________________________________

Рис.16.1. Создание дискового файла.

Программа, приведенная на рис.16.1, создает дисковый файл по имени,

которое вводится пользователем с клавиатуры. Блок FCB (FCBREC) в данной

программе содержит следующие поля:

FCBDRIV Программа должна создать файл на диске в дисководе 4 (или D).

FCBNAME Имя файла - NAMEFILE.

FCBEXT Тип файла - DAT.

FCBBLK Начальное значение номера текущего блока - 0.

FCBRCSZ Размер записей неопределен, так как операция открытия

устанавливает в данном поле значение 128.

FCBSQRC Начальное значение номера текущей записи - 0.

В программе организованы следующие процедуры:

BEGIN Инициализирует сегментные регистры, вызывает C10OPEN для

создания файла и установки адреса DTA для DOS, вызывает D10PROC

для ввода имени файла. Если ввод пустой, то происходит вызов

G10PROC для завершения программы.

C10OPEN Создает для файла элемент в директории, устанавливает размер

записей - 32 (шест.20) и инициализирует адрес буфера DTA для

DOS.

D10PROC Выдает запрос на ввод имен, вводит имена с клавиатуры и

вызывает процедуру F10WRIT для записи вводимых имен на диск

E10DISP Управляет прокруткой и установкой курсора.

F10WRIT Записывает имена в дисковой файл.

G10CLSE Записывает маркер конца файла и закрывает файл.