В настоящее время существует большое количество различных программ для редактирования текстов на БК. Вариант, предлагаемый вам, несколько отличается от традиционных программ-редакторов и может найти своих поклонников. Нужно только набраться терпения и ввести исходный код в память БК.

Д.Ю. Усенков (г.Москва)

ТЕКСТОВЫЙ РЕДАКТОР

Существует много программ, позволяющих записывать в память ЭВМ и на дискету текстовые файлы, при необходимости их корректировать, хранить на каком-нибудь внешнем носителе, а когда понадобится - вывести текст на экран и даже распечатать его на принтере. У БК-0010 возможности, конечно, гораздо скромнее: нет принтера, меньше объем памяти, вместо дискеты - магнитная лента, а значит, нельзя, исправив текст, записать его на старое место (хотя иногда, когда программы на ленте записаны не очень плотно, это всё-таки удаётся, но такой случай скорее исключение, чем правило). Однако и для БК существуют программы, позволяющие хотя бы записать текст, хранить его на магнитофоне и потом вывести его на экран. Так, кооперативная служба тиражирования программ СБИС (для интересующихся адрес: 167024, г. Сыктывкар, а/я 430, кооператив СБИС, СТП; телефон в Сыктывкаре: 7-20-69) высылает наложенным платежом среди прочих программы EDASP (экранный редактор текстов), BASE (база данных: справочники, каталоги и т.п.), MBD (микробаза для создания словарей) и т.д. Однако эти программы в кооперативе, мягко говоря, недешёвы, да и не очень это просто - по почте переслать кассету в Сыктывкар и обратно. Кроме того, судя по описанию, эти программы создают файл только в "своём" формате, т.е. для того, чтобы прочитать (вывести на экран) записанный текстовый файл, нужно сначала записать в память программу-редактор, а затем записать в память БК ещё и сам текст.

Текстовый редактор для БК хотя и не имеет возможности редактирования текста, записанного на магнитофон ранее и считанного после этого в память (можно редактировать текст только в процессе записи и в пределах одного окна, об этом см. далее), зато созданный с её помощью текст становится абсолютно самостоятельной программной единицей. И теперь, чтобы вывести текст на экран, достаточно считать его в память БК и запустить как обычную программу в машинных кодах с адреса 1000.

А теперь немного о том, как пользоваться текстовым редактором. Сразу же после запуска Редактора (запускать его можно только из ФОКАЛа, с подключённым блоком МСТД, в режимах ТС или монитора) на экран выводится краткий текст-подсказка о том, как работать с программой, и приглашение: PRESS ANY KEY (НАЖМИТЕ ЛЮБУЮ КЛАВИШУ). После нажатия какой-нибудь клавиши экран очищается и устанавливается режим "64 символа в строке". После этого можно вводить текст и команды управления экраном. В случае ошибки можно тут же её исправить, пользуясь клавишами редактирования (см. прилагаемое к БК-0010 "БЕЙСИК". Руководство оператора. §5.2. Клавиши редактирования.). При этом можно перемежать текст рисунками (операторы ГРАФ, ЗАП, СТИР). Однако нужно помнить, что, во-первых, режимы "32/64 символа в строке", "Инв.экрана", "Курсор" нужно задавать не теми командами, которые указаны в руководстве пользователя БК-0010, а командами: "АР2 + ↓", "СУ + АР2 + Щ", "АР2 + ↑" соответственно, а во-вторых, все включённые в данном окне режимы ("Инв.символы", "Подчёрк." и т.д.) должны быть выключены до смены окна, иначе полученный в результате работы текстового редактора текст не будет соответствовать введённому вами. Когда экран заполнен текстом (следите, чтобы он не сместился вверх, - это бывает, когда вы попытаетесь перевести курсор ниже нижнего края экрана), подайте команду смены окна АР2 + ВВОД. При этом экран очистится и установится в первоначальный режим - БК готов к вводу новой порции текста. Команда смены окна нужна затем, чтобы потом при чтении записанного текста БК остановил вывод текста на экран и дал возможность его прочитать. (После прочтения для продолжения вывода текста достаточно будет нажать любую клавишу.) Когда текст будет введён полностью, нажмите клавишу КТ. Программа-Редактор окончит свою работу, сообщит адреса начала и конца записанного текста и выйдет в монитор. После этого вы должны перейти в режим ТС и записать программу-текст на магнитофон. Переход к ТС из монитора делается так (ответы на запрос БК подчёркнуты):

 ? <РУС> Т
+ ТС
¤

Появление на экране символа-приглашения ¤ означает, что режим ТС включён. После этого с помощью команды М3 запишите текст на магнитофон (адрес - адресу начала; длина = адресу конца-1000). Имя можно дать любое (длина не более 16 символов), но я советую в конце имени писать ".ТХТ", как это делается, например, в MS DOS. Это позволит потом отличить программу-текст от других программ в кодах. После того как текст записан на магнитофон, вы можете проконтролировать результат работы: режим ТС, команда 1000G. И ещё: полученную программу-текст можно запускать как из режима ТС (1000G), так и из обоих мониторов (команда С1000).

Текст программы "Текстовый редактор" в восьмеричных машинных кодах

(по блокам длиной 200 байт, с контрольными суммами):

1000:

104014

012701

001052

012702

37120

021127

000222

001402

 

012122

000773

005012

012701

001734

012702

105000

104020

 

104006

012702

001000

000137

037120

004737

037746

004737

 

037456

005004

010201

005201

005201

010113

104006

020027

 

000212

001416

020027

000003

001425

020027

000201

001452

 

110021

005204

010005

104016

020127

037102

103076

000756

 

110021

005204

000241

006204

103001

005201

010112

010102

 

000734

000765

112721

000212

005204

000241

006204

103001

Контрольная сумма: 144617

1200:

005201

010112

005021

010104

012701

037574

012702

000152

 

104020

162704

000000

032704

100000

001405

012700

000061

 

104016

000404

000445

012700

000060

104016

012705

000004

 

012700

000031

104016

077502

012705

000005

010400

042700

 

177770

062700

000060

104016

012700

000010

104016

104016

 

006204

006204

006204

077516

000000

010146

010246

012701

 

037524

012702

000050

104020

104006

012602

012601

000702

 

032737

000100

177716

001275

010500

104016

011021

005204

Контрольная сумма: 012374

1400:

012700

075000

077001

000764

012705

037504

012704

000010

 

012522

021527

177777

001001

010203

077406

000207

104014

 

012701

177777

012702

105000

104020

104006

000137

025012

 

025052

000000

170000

166741

172361

020370

160772

167760

 

167354

167345

020341

167760

167354

171757

174364

000340

 

000000

025052

005052

015414

014431

171360

163757

160762

 

166755

020341

160772

167753

177356

166351

020341

160762

 

167742

172764

005056

014412

160767

020373

160746

166352

Контрольная сумма: 044025

1600:

167040

164341

162357

172351

170763

173440

170040

166741

 

172361

005351

170031

020357

162341

162762

160763

035355

 

030440

030060

026460

005012

175031

170341

171765

035353

 

030061

030060

027107

015012

015032

030625

032065

112431

 

010046

104034

030027

000001

001403

012700

000233

104016

 

012700

000014

104016

012600

000207

000222

020341

006233

 

116623

015621

014431

014431

014431

172031

165745

172363

 

173757

165371

020040

162762

160744

172353

171357

015412

Контрольная сумма: 151611

2000:

014622

164031

140722

142716

144716

020305

140767

144733

 

020310

151320

143717

140722

146715

153440

014412

014431

 

152431

147704

147302

145317

145454

146717

140720

152313

 

147716

020312

147706

146722

027305

015412

170031

147722

 

151307

146701

140715

155040

150301

151711

153731

142701

 

020324

140767

020333

142724

151713

005324

020327

140706

 

146312

145454

152317

151317

145331

173440

020331

147715

 

142726

142724

155040

150301

026711

151412

152301

020330

Контрольная сумма: 101211

2200:

140716

146440

143057

144054

140722

144716

154324

147040

 

020301

140715

147307

152311

147716

146312

147305

142724

 

144440

153440

153731

142317

152311

020330

140716

156040

 

151313

147301

155054

150301

151725

145455

150701

143040

 

145301

026314

140713

020313

027720

151320

153440

145440

 

142317

144301

151440

140440

026704

151012

151705

020301

 

030621

030060

111060

005056

014433

151360

020311

153727

 

142317

020305

151711

147720

154314

152732

152312

020305

Контрольная сумма: 000174

2400:

147713

140715

142316

035331

005012

014431

031063

033057

 

020064

014323

026430

160621

031362

126453

020040

111040

 

147311

027327

027334

110455

172763

160453

031362

176453

 

111012

014431

152713

151720

014030

151722

026456

160621

 

031362

131453

020040

111040

147720

152327

151317

110455

 

170074

173757

037364

111012

014431

142720

142722

147710

 

020304

020313

146323

142305

147456

147313

026725

160621

 

031362

036053

173767

162357

111076

014431

145717

147317

Контрольная сумма: 166147

2600:

140736

144716

020305

140722

147702

154724

110455

165474

 

037364

005222

014433

151757

140724

154314

154716

020305

 

144723

153715

146317

026731

142702

020332

155311

142715

 

142716

144716

015712

014431

014431

110431

162766

160754

 

020340

172440

170363

164345

020341

003441

003407

003407

 

003407

003407

015407

111010

071120

071545

020163

062553

 

027171

115432

000212

000000

000000

000000

000000

000000

Контрольная сумма: 150337

 

Последний блок неполный и имеет длину 160 байт. Все остальные блоки имеют длины по 200 байт.

Данные для контроля ввода по всей программе:

Адрес: 1000 Длина: 1760 Контрольная сумма: 035170

Программу вводите аккуратно, по блокам, с проверкой по контрольным суммам каждого блока. (Напомню как это делать: команда <А1>А<Дл>ДХ - машина продолжит введённую строку: = хххххх, где <А1 > - адрес начала блока программы, <Дл> - длина блока, а хххххх - выданное машиной значение контрольной суммы.) После ввода последнего блока проверьте контрольную сумму этого блока, а затем контрольную сумму всей программы (команда 1000А1760ДХ). Если ввод произведён верно, запишите программу на магнитофон командой М3.

Комментарий автора к программе

Возможно, кто-то будет несколько удивлён, что и сама программа-редактор, и создаваемый ею текст должны запускаться с адреса 1000. Адрес 1000 считается при программировании БК-0010 как бы стандартным - это наименьший адрес памяти, отводимой под пользовательские программы. Поэтому было желательно запускать и саму программу, и порождаемый ею текст с адреса 1000. Достигается это следующим образом: программа-редактор запускается с адреса 1000, при этом начинает работать первая часть программы, перемещающая загрузчик. Программа, во-первых, выводит на экран текст-подсказку, а во-вторых, перемещает активную часть программы в самый "дальний" конец памяти, освобождая, таким образом место для генерируемого программой текста. Закончив свою работу, загрузчик передаёт управление основной активной части программы, а потом, при работе редактора, текст загрузчика, старая активная часть и текст подсказки замещаются вводимым в редактор текстом. Поэтому после создания и записи на магнитофон текстового файла, если вы захотите записать ещё один новый текст, нужно будет считать с ленты магнитофона программу текстовый редактор заново. И ещё: после того как созданный текст записан на магнитофон, вы можете сразу же, не выключая компьютер, просмотреть его на экране. Для этого нужно ввести команду 1000G (в режиме ТС) или С1000 (для монитора).

Заключение рецензента

Созданный с помощью этой программы многоэкранный текст, который может содержать и рисунки, записывается в файл на магнитной ленте в виде всей последовательности кодов клавиш, нажатых при создании текста. Дополнительно к этим кодам в файл автоматически помещается программа, предъявляющая текст при запуске файла на исполнение с 1000-го адреса. При активизации текста воспроизводится записанная последовательность кодов, вызывающая появление информации на экране и позволяющая произвольно переходить к следующей странице по любой нажатой клавише.

К достоинствам программы Д.Ю. Усенкова относятся простота создания текста с рисунками и удобство просмотра готовой информации. Для просмотра требуются загрузка и запуск только одного файла, а не двух, как это нужно при использовании, например, редакторов EDASP.

Объём записываемого в память БК материала существенно зависит от количества сделанных пользователем исправлений при создании файла.

Вследствие запоминания информации в виде последовательности кодов нажатых клавиш, включая управляющие, можно использовать эту программу и для создания простых "мультиков” и заставок.

К недостаткам следует отнести:

Несмотря на недостатки, программа может найти свою "экологическую нишу" в широком спектре программ - редакторов текстов.

Л.Н. Жариков

Performed by © gid, 2012-2022.