nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 16 Apr 2024 08:59



Reply to topic  [ 23 posts ]  Go to page 1, 2  Next
Текстовой редактор под CP/M-80 SED.COM 
Author Message
Senior
User avatar

Joined: 11 Oct 2018 00:52
Posts: 199
Location: г. Клинцы, Брянская обл.
Reply with quote
На "Орион-128" есть мощный текстовой редактор под CP/M-80 SED.COM. К сожалению без исходников. Работал в нем. Остались приятные впечатления.

Quote:
Внимание пиратов и "хакеров" !
Программа SED написана на языке Форт фирмы "Техно-Форт" (С-Петербург) и скомпилирована для получения обьектого модуля компилятором шитого кода
этой же фирмы. Автор программы сотрудник фирмы "Техно-Форт" (ранее Форт-Инфо) Владимир Крупский. Благодаря программированию на Форте, невозможно трассирование программы простыми отладчиками (стек не возвратов а данных), для трассирования необходимо использование специального фортпрепроцессора.
Форт позволяет не принимая никаких спец.мер защитить код программы от изменений - например при описании слов-определений Форта используется содержимое ОЗУ. Таким образом в отличие от ассемблерных "защит от модификации кода" собственно п/программ проверки на модификацию кода в программе нет, но модификация ОЗУ приводит к непредсказуемым изменениям в работе программы. Попробуйте сами (на ненужной дискете) изменить например текст в начале "дампа" программы, или любой другой текст в программе. Хакерам гарантирована нелегкая жизнь - чтобы изменить одну ячейку надо высчитать и соответственно изменить сотни других...
Имеется версия для процессора Z80. Программа благодаря применению оптимизированного для Z80 Форта вдвое быстрее, но и почти вдвое больше по обьему.
Текст составил В.Чистяков 03.93


10 May 2020 03:07
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
А вот этот В.Чистяков - он какое отношение имеет к редактору SED.COM? :roll:
Как-то непонятно из текста... автор вроде не он.
А он - рекламный агент SED.COM или распространял его за деньги?

_________________
iLavr


10 May 2020 11:11
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22518
Location: Silicon Valley
Reply with quote
Так ведь он "составил текст" :)

_________________
:dj: https://mastodon.social/@Shaos


10 May 2020 11:43
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Я что-то не видел, чтобы ты составил какой-то текст к софту, что писал совсем не ты...
Да еще давал рекомендации "хакерам" и пр. Вот этот момент и интригует, собственно! :roll:

_________________
iLavr


10 May 2020 12:06
Profile
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 655
Location: Russia, S.- Peterburg
Reply with quote
У нас был редактор ME.COM. Удобный и простой.

Смотри проекты для CP/M https://github.com/lindehaven/CP-M

Визуальный текстовый редактор.
Code:
├── makefile.dat
├── mem
├── README
├── README.OLD
├── test.txt
├── ue.c
├── ue.com
└── ue_make.sub


Micro Editor (ue)

Micro Editor (UE) enables easy editing of small source code files. Source
code files are limited in size to fit into the transient program area (TPA)
of CP/M.

Quote:
The following functions and associated control keys are provided:

^E cursor up
^S cursor left
^D cursor right
^X cursor down
^A word left
^F word right
^[ start of line
^] end of line
^R page up
^C page down
^T top of file
^B bottom of file
^G delete cursor char
^H delete previous char
^Y delete rest of line
^U undo
^W write file to disk
^L look (search)
^Q quit
^I insert <TAB> char


Скачал. Тестирую в эмуляторе под linux.

Редактирование:

Code:
A>UE TEST.TXT

Hello!

Edit text for CP/M

Filename: TEST.TXT                              U:000% T:8 C:001 R:00001/00004


Смотрим результат:

Code:
A>type TEST.TXT
Hello!

Edit text for CP/M

A>

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)


12 May 2020 12:27
Profile WWW
Maniac
User avatar

Joined: 05 Oct 2006 04:45
Posts: 269
Location: Moscow
Reply with quote
"Sed - отличный редактор. От других" :) главным образом тем, что при минимальном для такого функционала коде (да еще и написанного на ЯВУ) и удобном экранном функционале, он виртуализирует буфер и благодаря этому редактирует файлы размера больше чем ТРА (ОЗУ CP/M) чего не скажешь про te/ue и пр. Если у кого-то есть его исходники (или хотя бы грамотный дизасм), прошу поделиться - давно ищу что-то подобное для Uzix (для него редактор придется поправить т.к. в Юниксах конец строки принято обозначать одним байтом, а не двумя как в СРМ). Также принимаются ссылки на другие текстовые редакторы в исходниках, умеющие работать с файлами больше чем наличное ОЗУ.

_________________
Всем добра!


18 Jul 2020 12:57
Profile
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Post 
Дизассемблировать форт программу обычным дизассемблером бессмысленно, разобраться в логике будет сложнее, чем с нуля написать свой аналогичный редактор даже на ассемблере.

Написать аналог этого типового редактора на ассемблере отнимает менее месяца даже у программиста низкой квалификации. А на Турбо-Паскале пишется за 3 дня. Добавление в простой текстов редактор свопинга не сложно и доступно любому программисту. Объём кода занимаемый процедурами свопинга не превышает 0.75 кб. Размер такого редактора написанного на ассемблере для Z80 будет ~6.5 кб. Если на Турбо-Паскале, то (по моим представлениям) где-то 16 кб. На Паскале МТ+ (это для КР580) или Си (BDS, Aztec) ~20 кб.


18 Jul 2020 15:40
Profile
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 655
Location: Russia, S.- Peterburg
Reply with quote
Error404 wrote:
"Sed - отличный редактор.


https://github.com/SmallRoomLabs/sed80

Screen EDitor for Z80 CP/M

Quote:
What Since I can't find a small and easy-to-use fullscreen text editor that supports VT100 and the arrow keys I'll attempt to write one myself.
It is about 30 years since I wrote any real Z80 code so this will most likey be a long painful re-learning curve.

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)


20 Jul 2020 02:45
Profile WWW
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Post 
Кто-нибудь может странслировать версию этого SED для РК86 и Специалиста (в версии для CP/M с низким BDOS и VT52 и для машины "без-DOS"). У меня никогда не получалось странслировать что-то взятое с github. Потому не люблю github и давно уже даже перестал ходить туда по ссылкам. Исходники надо выкладывать так, как это делаю я, чтобы был BAT-файл, запуская который, через секунду получаешь исходник (т.е все потребные для трансляции инструментальные средства должны входить в архив).

Слово SED являющееся акронимом от Screen Editor (в противовес командным редакторам, используемым на заре цивилизации) использовалось много раз разными людьми и для разных платформ. Также, как и название SCREEN для таких же редакторов. Я например 5 лет пользовался редактором SCREEN (о нём есть статья в ж.МПСС) на ДВК и после 3 года на Специалисте и ещё пару лет на ОРИОНЕ. И сам написал на ассемблере редактор SCREEN (5 кб) для РК86. Но это всё абсолютно разные редакторы написанные разными людьми и не имеющие ничего общего.

PS. Считается, что (в соответствии с устоявшимся ударением в слове) правильно писать тЕкстовый редактор, не текстовОй. Или как я пишу по-болгарски - "тЕкстов редактор", т.к так и читать и произносить приятнее.


20 Jul 2020 03:02
Profile
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 655
Location: Russia, S.- Peterburg
Reply with quote
Post Re:
barsik wrote:
У меня никогда не получалось странслировать что-то взятое с github. Потому не люблю github и давно уже даже перестал ходить туда по ссылкам. Исходники надо выкладывать так, как это делаю я, чтобы был BAT-файл, запуская который, через секунду получаешь исходник (т.е все потребные для трансляции инструментальные средства должны входить в архив).


Рабочая станцияUbuntu Linux:

Code:
$ git clone https://github.com/SmallRoomLabs/sed80
$cd sed80
$ sudo apt install z80asm
$ sudo apt install srecord
$ make
$ tree -L 1
.
├── BUFFER.Z80
├── FILE.Z80
├── LICENSE
├── Makefile
├── README.md
├── SED80.hex
├── SED80.lst
├── SED80.Z80
├── STRCONST.Z80
└── UTILS.Z80


В CP/M преобразуй SED80.hex в SED80.com. Испытай C>LOAD SED80.hex.

Диски с CP/M 2.2 в проекте cpm8266-master.


Attachments:
cpm8266-master.zip [1.2 MiB]
Downloaded 303 times
sed80_make.zip [27.23 KiB]
Downloaded 300 times

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
20 Jul 2020 05:34
Profile WWW
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Post 
Это редкий случай, когда в архив, пусть и не COM-, а хотя бы HEX-файл, - уже приложен и транслировать никому неизвестным инструментарием не потребовалось.

Насторожило, что нет даже минимального руководства по пользованию редактором (обычно так бывает, когда продукт сырой) и сразу возникли сомнения, что это оригинальный исторический материал из 80-тых годов. Потому, что все настоящие оригинальные исторические исходники из 70-тых и 80-тых годов, которые я видел (из Public Domain RCPM), написаны для трансляции средствами CP/M (а не кросс-ассемблерами для MSDOS/Windows) и прекрасно транслируются любым CP/M-инструментарием. Данный исходник нет. В CP/M-компиляторах не бывает длинных имён, для них в TPA 8-ми разрядки не хватило бы места. Предположительно это кто-то, используя IBM PC в середине 90-тых или чуть позднее учился программировать, хотя автор написал, что уже 30 лет не видел в глаза Z80-кода и потому всё забыл.

Я потратил менее минуты, чтобы изучить исходник. Когда в исходнике видишь команды LD A,0, CP 0 и RET сразу после CALL, то это сразу наводит на грустные мысли. Вникать особо не стал, но могу сказать, что писал не профессионал, а любитель и даже не особо опытный. Профессионал сделал бы нормальную обработку дисковых ошибок. Естественно, это примитивный редактор без свопинга (сколько влезло в буфер в ОЗУ TPA, такой и максимальный размер файла). Но программист очень трудолюбивый и старательный, предположительно с большим опытом в ЯВУ, использовал говорящие имена и дал подробные комментарии. Исходник годится, как учебный материал.

При запуске с указанием параметром имени нового ещё несуществующего файла, новый файл не создаётся, а выдаётся сообщение об ошибке. Если командой SAVE 0 PROBA.TXT создать новый пустой текстовый файл, то при запуске командой SED80 PROBA.TXT тоже зависает. Редактор судя по приложенному тексту рассчитан на терминал VT100, но у меня такого драйвера нет (т.к в 80-тые, начале 90-тых информации о VT100 у меня просто не было). Похоже на терминале VT52 не работает. По-крайней мере с одним из моих драйверов VT52 редактор зависает. Не разбирался, то ли TPA не хватает (хотя оно у меня более 55 кб, с таким TPA из отечественных машин только Корвет), то ли упр.коды VT100 приводят к завису моего драйвера (что маловероятно), то ли лезет в "железо" или просто версия глючная (там указано, что это ранняя версия, что это значит не ясно).

Когда будет время и желание, возможно, попробую разобраться в исходнике. Похоже не станет проблемой сменить упр.коды на VT52 или можно просто выдрать из редактора редактирующую часть, если станет ясно, что она хороша (важно использует ли с пользой табуляции или нет). Вероятно других модификаций не потребуется, но совсем без модификаций никак не использовать. Да и формат экрана редактора шириной аж в 80 символов в строке неудобен для людей со слабым зрением и не подходит для самодельных отечественных 8-ми разрядок.

Польза от этого исходника могла бы быть, если на его основе сделать редактор для машины без DOS или с мелким TPA. Но тут, к сожалению, нам не повезло с процессором, отчего редактор не годится для советских машин, а т.к широко использует IX IY, его не переделать для процессоров КР580 (ВМ80 и ВМ1) и 1821ВМ85.

- - - Добавлено - - -

От исходника свежего эмулятора CP/M для Windows никому нет пользы, - чтобы это странслировать, (как всегда с исходниками из github) надо быть профессионалом в конкретном ЯВУ и конкретном компиляторе (а в данном случае ещё и в Linux/Unix). Заинтересовало лишь описание отладчика DDT-Z для Z80. Похоже он даже лучше, чем ZSID и ZSID3 (но точно не лучше, чем ZBUG). Но самой программы как раз в архиве не нашёл, - только бесполезное без наличия программы описание. В PD-архивах встречается другой Z80-отладчик ZDT (он 7 кб против 10 кб у ZSID3), полученный доработкой DDT до Z80 (в спойлере текст про него).

 ZDT
Quote:
Documentation for ZDT Version 1.4.14

Software obtained in Seattle, April 1980.

This is a version of DDT that can use TDL Z80 Mnemonics. This software will automatically determine which chip (8080 or Z80) it is running on and will work accordingly.

This software will use TDL Z80 Mnemonics when in the Z80 mode. The commands to utilize this software are the same as for DDT with the addition of a few aditional commands:

Code:
Extra command:                     Action:

 O                  Open File  ie  Ofilename.atr
                         filename is any CP/M legal filename
                         atr is CP/M file atribute ie hex, com, asm

 W                  Write to file  ie  Ws, f[, offset]
                         s=start address   
                         f=finish address
                         offset - optional

 E                  End/Close file  ie E optional hex run address

Since this has been obtained occasionally there is no documentation except for this. The above text was reconstructed by me from scratch. Please feel free to improve this documentation.
.


Last edited by barsik on 21 Jul 2020 00:25, edited 3 times in total.



20 Jul 2020 12:35
Profile
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 655
Location: Russia, S.- Peterburg
Reply with quote
Post Re:
barsik wrote:
Это редкий случай, когда в архив, пусть и не COM-, а хотя бы HEX-файл, - уже приложен и транслировать никому неизвестным инструментарием не потребовалось.

Насторожило, что нет даже минимального руководства по пользованию редактором (обычно так бывает, когда продукт сырой) и сразу возникли сомнения, что это оригинальный исторический материал из 80-тых годов.


У меня вообще возникли сомнения о том, что для CP/M была реализация SED.COM от Digital Research, Inc.

Исторически:

Quote:
Sed Текстовый редактор

Википедия

Потоковый текстовый редактор, применяющий различные предопределённые текстовые преобразования к последовательному потоку текстовых данных. Первоначально был написан как UNIX-утилита Ли Макмэхоном из Bell Labs в 1973-74 годах


"Потоковый редактор" и однозадачная CP/M.

Развей сомнения...

RetroProjects CP/M - https://freesoft.dev/program/55438422

https://github.com/MiguelVis/te

Quote:
TE
A small text editor for CP/M (highly configurable; there are ports for various machines, operating systems and CP/M emulators: Amstrad PCW, Amstrad CPC, Spectrum +3, Kaypro, VT-52, VT-100, WordStar-like key bindings, CP/M-80 program EXEcutor from K. Murakami, CP/M Player from Takeda Toshiya, etc.).

It supports basic editing commands plus: find string and find next string, go to a line number, execute macro from file, help screen, etc.


Attachments:
te-master.zip [121.72 KiB]
Downloaded 306 times

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
21 Jul 2020 00:22
Profile WWW
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Post 
askfind wrote:
"Потоковый редактор" и однозадачная CP/M. Развей сомнения...
Что-то про SED в книге про Unix от Кернигана попадалось. SED для других DOS это просто популярное название, использованное разными людьми (даже не знающими о Unix) множество раз, а SED из Unix может даже и не экранный, а просто один из мелких инструментов, которых там много. Вообще-то консольные ввод и вывод в CP/M можно считать потоками, там даже примитивное переназначение для устройств ввода/вывода есть. Правда в Unix есть ещё поток для вывода ошибок. Открытый CP/M-файл тоже можно рассматривать как отдельный поток, лишь средствами CP/M переназначение его на STD вход не предусмотрен.

Я ещё попробую запустить этот редактор в паре фирменных антикварных эмуляторов CP/M на PC, где поддержан терминал VT100, надо убедиться, что рабочее, - нет смысла разбираться в чужом, что не является законченным и отлаженым до конца полноценным исходником.

Есть странслированная версия этого свежего эмулятора Z80-CP/M из 2016 года?


21 Jul 2020 00:39
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post Re:
barsik wrote:
SED из Unix может даже и не экранный, а просто один из мелких инструментов, которых там много.

SED в UNIX - это скорее построчный редактор, его целесообразно использовать в сценариях и в конвейерах. На интерактивное взаимодействие с пользователем он не рассчитан. Кстати, о Sedtrisе знаете?


21 Jul 2020 10:23
Profile
Maniac
User avatar

Joined: 05 Oct 2006 04:45
Posts: 269
Location: Moscow
Reply with quote
Post Re:
barsik wrote:
Дизассемблировать форт программу обычным дизассемблером бессмысленно, разобраться в логике будет сложнее, чем с нуля написать свой аналогичный редактор даже на ассемблере.


терпимо там дизассемблируется, просто я в свое время поленился этим заняться. Мне всего надо то - в обработке CR-LF скорректировать анализ CR при чтении файла и исключить CR при записи файла.

barsik wrote:
Написать аналог этого типового редактора на ассемблере отнимает менее месяца даже у программиста низкой квалификации. А на Турбо-Паскале пишется за 3 дня. Добавление в простой текстов редактор свопинга не сложно и доступно любому программисту. Объём кода занимаемый процедурами свопинга не превышает 0.75 кб. Размер такого редактора написанного на ассемблере для Z80 будет ~6.5 кб. Если на Турбо-Паскале, то (по моим представлениям) где-то 16 кб. На Паскале МТ+ (это для КР580) или Си (BDS, Aztec) ~20 кб.


Ну то есть в среду уже можно ждать? Пускай будет хоть на Паскале, буфер то виртуализированный.

_________________
Всем добра!


Last edited by Error404 on 24 Jul 2020 09:22, edited 1 time in total.



24 Jul 2020 09:16
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 23 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.