Редактирование:
LORW
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Реализация == Нужный каталог выбирает слово [[КАТ]]. Слово LORW реализует низкоуровневый доступ к файлам текста на внутреннем диске МК-161 и позволяет воплотить различные нестандартные сценарии такого доступа. Прикладному программисту рекомендуются более удобные стандартные и проверенные временем слова [[BLOCK]] [[BUFFER]] [[UPDATE]] и т.п. <pre> 4058 ;#LORW 4059 ; LORW ( a c −− ) Считать/записать (c=1/0) блок из файла с именем из 4 литер по адресу a. 4060 ; Прочесть/записать блока из файла в загруженном каталоге. 4061 ; Если файла нет, создать его. 4062 ; a − адрес имени файла, состоящего из 4 литер 4063 ; c − флаг "чтение−запись" (c=1 для чтения, c=0 для записи) 4064 LLORW: .DB 4 4065 .TEXT "LORW" ; ( a flg −− ) 4066 .DW LRERW 4067 LORW: .DW JLORW 4068 JLORW: PKRM03 MA ; RA := flg ( флаг R/W) 4069 RM3 1 + M7 1 + M3 4070 KRM7 10001 − M7 ; R7 := a−1 ( адрес четырёхлитерного имени файла − 1) 4071 Cx M8 9034 MB ; R8 := 0 ( номер строки в каталоге) ; RB := 9034 ( чтение по индексу 1) 4072 LORWN1: Cx PPM 9030 PPM 9031 ; Сбросить индексные регистры 0 и 1 4073 RM8 PPM 9122 ; Считать строчку каталога 4074 KRMB 5 − FX=0 LORWNXT ; Это файл с текстом? 4075 KRMB KRMB ; Пропустить поле 2 ( двухбайтовое) 4076 RM7 M5 4 M0 ; R5 := R7 ( адрес имени − 1) ; R0 := 4 ( длина имени) 4077 LORWZ: KRMB KRM5 − FX=0 LORWNXT ; Литеры равны? 4078 FL0 LORWZ ; Это Bxxx ? ( сравнить 4 литеры имени) 4079 RMA FX!=0 LORWR1 ; R/W ? 4080 RM8 PPM 9128 PPM 9123 ; Считать найденный файл 4081 KGOTO9 ; NEXT 4082 LORWR1: ;−−− Файл найден, записать в него. 4083 RM8 PPM 9128 PPM 9126 ; Перезаписать найденный файл 4084 KGOTO9 ; NEXT 4085 LORWNXT: RM8 1 + M8 64 − PX=0 LORWN1 ;−−− Перейти к следующей строчке каталога. Закончились? 4086 RMA FX!=0 LORWR2 ; R/W ? 4087 5095 M5 3072 M0 32 ; R5 := 5095 ( начало текста − 1) ; R0 := 3072 ( длина текста) 4088 LORWE: KM5 FL0 LORWE ; Заполнить текст пробелами 4089 KGOTO9 ; Всё, "считан" ещё не существующий блок. Сюрприз: он весь состоит из пробелов! 4090 LORWR2: ;−−− Файл не найден, надо создать и записать текст в него. 4091 PPM 9030 3 PPM 9031 ; Инициализировать индексные регистры 0 и 1 4092 RM7 M5 4 M0 ; R5 := R7 ( адрес имени − 1) ; R0 := 4 ( длина имени) 4093 LORWS: KRM5 KMB FL0 LORWS ; Перенести имя в буфер 4094 16 M0 32 ; R0 := 16 ( кол−во пробелов) ; RX := 32 ( код пробела) 4095 LORWS1: KMB FL0 LORWS1 ; Строка "Bxxx" ( 4 литеры имени + 16 литер пробелов) 4096 5 PPM 9128 PPM 9125 ; Создать файл ( записать текст) 4097 KGOTO9 ; NEXT </pre>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице