Внимание пиратов и "хакеров" !
Программа SED написана на языке Форт фирмы "Техно-Форт" (С-Петербург) и скомпилирована для получения обьектого модуля компилятором шитого кода
этой же фирмы. Автор программы сотрудник фирмы "Техно-Форт" (ранее Форт-Инфо) Владимир Крупский. Благодаря программированию на Форте, невозможно трассирование программы простыми отладчиками (стек не возвратов а данных), для трассирования необходимо использование специального фортпрепроцессора.
Форт позволяет не принимая никаких спец.мер защитить код программы от изменений - например при описании слов-определений Форта используется содержимое ОЗУ. Таким образом в отличие от ассемблерных "защит от модификации кода" собственно п/программ проверки на модификацию кода в программе нет, но модификация ОЗУ приводит к непредсказуемым изменениям в работе программы. Попробуйте сами (на ненужной дискете) изменить например текст в начале "дампа" программы, или любой другой текст в программе. Хакерам гарантирована нелегкая жизнь - чтобы изменить одну ячейку надо высчитать и соответственно изменить сотни других...
Имеется версия для процессора Z80. Программа благодаря применению оптимизированного для Z80 Форта вдвое быстрее, но и почти вдвое больше по обьему.
Текст составил В.Чистяков 03.93
Текстовой редактор под CP/M-80 SED.COM
Moderator: Shaos
Текстовой редактор под CP/M-80 SED.COM
На "Орион-128" есть мощный текстовой редактор под CP/M-80 SED.COM. К сожалению без исходников. Работал в нем. Остались приятные впечатления.
Re: Текстовой редактор под CP/M-80 SED.COM
А вот этот В.Чистяков - он какое отношение имеет к редактору SED.COM?
Как-то непонятно из текста... автор вроде не он.
А он - рекламный агент SED.COM или распространял его за деньги?
Как-то непонятно из текста... автор вроде не он.
А он - рекламный агент SED.COM или распространял его за деньги?
iLavr
Re: Текстовой редактор под CP/M-80 SED.COM
Так ведь он "составил текст"
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Текстовой редактор под CP/M-80 SED.COM
Я что-то не видел, чтобы ты составил какой-то текст к софту, что писал совсем не ты...
Да еще давал рекомендации "хакерам" и пр. Вот этот момент и интригует, собственно!
Да еще давал рекомендации "хакерам" и пр. Вот этот момент и интригует, собственно!
iLavr
Re: Текстовой редактор под CP/M-80 SED.COM
У нас был редактор ME.COM. Удобный и простой.
Смотри проекты для CP/M https://github.com/lindehaven/CP-M
Визуальный текстовый редактор.
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.
Редактирование:
Смотрим результат:
Смотри проекты для CP/M https://github.com/lindehaven/CP-M
Визуальный текстовый редактор.
Code: Select all
├── makefile.dat
├── mem
├── README
├── README.OLD
├── test.txt
├── ue.c
├── ue.com
└── ue_make.sub
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.
Скачал. Тестирую в эмуляторе под linux.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
Редактирование:
Code: Select all
A>UE TEST.TXT
Hello!
Edit text for CP/M
Filename: TEST.TXT U:000% T:8 C:001 R:00001/00004
Code: Select all
A>type TEST.TXT
Hello!
Edit text for CP/M
A>
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
Re: Текстовой редактор под CP/M-80 SED.COM
"Sed - отличный редактор. От других" главным образом тем, что при минимальном для такого функционала коде (да еще и написанного на ЯВУ) и удобном экранном функционале, он виртуализирует буфер и благодаря этому редактирует файлы размера больше чем ТРА (ОЗУ CP/M) чего не скажешь про te/ue и пр. Если у кого-то есть его исходники (или хотя бы грамотный дизасм), прошу поделиться - давно ищу что-то подобное для Uzix (для него редактор придется поправить т.к. в Юниксах конец строки принято обозначать одним байтом, а не двумя как в СРМ). Также принимаются ссылки на другие текстовые редакторы в исходниках, умеющие работать с файлами больше чем наличное ОЗУ.
Всем добра!
- barsik
- Doomed
- Posts: 585
- Joined: 19 Feb 2017 10:46
- Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Дизассемблировать форт программу обычным дизассемблером бессмысленно, разобраться в логике будет сложнее, чем с нуля написать свой аналогичный редактор даже на ассемблере.
Написать аналог этого типового редактора на ассемблере отнимает менее месяца даже у программиста низкой квалификации. А на Турбо-Паскале пишется за 3 дня. Добавление в простой текстов редактор свопинга не сложно и доступно любому программисту. Объём кода занимаемый процедурами свопинга не превышает 0.75 кб. Размер такого редактора написанного на ассемблере для Z80 будет ~6.5 кб. Если на Турбо-Паскале, то (по моим представлениям) где-то 16 кб. На Паскале МТ+ (это для КР580) или Си (BDS, Aztec) ~20 кб.
Написать аналог этого типового редактора на ассемблере отнимает менее месяца даже у программиста низкой квалификации. А на Турбо-Паскале пишется за 3 дня. Добавление в простой текстов редактор свопинга не сложно и доступно любому программисту. Объём кода занимаемый процедурами свопинга не превышает 0.75 кб. Размер такого редактора написанного на ассемблере для Z80 будет ~6.5 кб. Если на Турбо-Паскале, то (по моим представлениям) где-то 16 кб. На Паскале МТ+ (это для КР580) или Си (BDS, Aztec) ~20 кб.
Re: Текстовой редактор под CP/M-80 SED.COM
https://github.com/SmallRoomLabs/sed80Error404 wrote:"Sed - отличный редактор.
Screen EDitor for Z80 CP/M
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.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
- barsik
- Doomed
- Posts: 585
- Joined: 19 Feb 2017 10:46
- Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Кто-нибудь может странслировать версию этого SED для РК86 и Специалиста (в версии для CP/M с низким BDOS и VT52 и для машины "без-DOS"). У меня никогда не получалось странслировать что-то взятое с github. Потому не люблю github и давно уже даже перестал ходить туда по ссылкам. Исходники надо выкладывать так, как это делаю я, чтобы был BAT-файл, запуская который, через секунду получаешь исходник (т.е все потребные для трансляции инструментальные средства должны входить в архив).askfind wrote:https://github.com/SmallRoomLabs/sed80
Слово SED являющееся акронимом от Screen Editor (в противовес командным редакторам, используемым на заре цивилизации) использовалось много раз разными людьми и для разных платформ. Также, как и название SCREEN для таких же редакторов. Я например 5 лет пользовался редактором SCREEN (о нём есть статья в ж.МПСС) на ДВК и после 3 года на Специалисте и ещё пару лет на ОРИОНЕ. И сам написал на ассемблере редактор SCREEN (5 кб) для РК86. Но это всё абсолютно разные редакторы написанные разными людьми и не имеющие ничего общего.
PS. Считается, что (в соответствии с устоявшимся ударением в слове) правильно писать тЕкстовый редактор, не текстовОй. Или как я пишу по-болгарски - "тЕкстов редактор", т.к так и читать и произносить приятнее.
Re:
Рабочая станцияUbuntu Linux:barsik wrote:У меня никогда не получалось странслировать что-то взятое с github. Потому не люблю github и давно уже даже перестал ходить туда по ссылкам. Исходники надо выкладывать так, как это делаю я, чтобы был BAT-файл, запуская который, через секунду получаешь исходник (т.е все потребные для трансляции инструментальные средства должны входить в архив).
Code: Select all
$ 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 340 times
- sed80_make.zip
- (27.23 KiB) Downloaded 340 times
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
- barsik
- Doomed
- Posts: 585
- Joined: 19 Feb 2017 10:46
- Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Это редкий случай, когда в архив, пусть и не 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 (в спойлере текст про него).
Насторожило, что нет даже минимального руководства по пользованию редактором (обычно так бывает, когда продукт сырой) и сразу возникли сомнения, что это оригинальный исторический материал из 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 (в спойлере текст про него).
Last edited by barsik on 21 Jul 2020 07:25, edited 3 times in total.
Re:
У меня вообще возникли сомнения о том, что для CP/M была реализация SED.COM от Digital Research, Inc.barsik wrote:Это редкий случай, когда в архив, пусть и не COM-, а хотя бы HEX-файл, - уже приложен и транслировать никому неизвестным инструментарием не потребовалось.
Насторожило, что нет даже минимального руководства по пользованию редактором (обычно так бывает, когда продукт сырой) и сразу возникли сомнения, что это оригинальный исторический материал из 80-тых годов.
Исторически:
"Потоковый редактор" и однозадачная CP/M.Sed Текстовый редактор
Википедия
Потоковый текстовый редактор, применяющий различные предопределённые текстовые преобразования к последовательному потоку текстовых данных. Первоначально был написан как UNIX-утилита Ли Макмэхоном из Bell Labs в 1973-74 годах
Развей сомнения...
RetroProjects CP/M - https://freesoft.dev/program/55438422
https://github.com/MiguelVis/te
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 348 times
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
- barsik
- Doomed
- Posts: 585
- Joined: 19 Feb 2017 10:46
- Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Что-то про SED в книге про Unix от Кернигана попадалось. SED для других DOS это просто популярное название, использованное разными людьми (даже не знающими о Unix) множество раз, а SED из Unix может даже и не экранный, а просто один из мелких инструментов, которых там много. Вообще-то консольные ввод и вывод в CP/M можно считать потоками, там даже примитивное переназначение для устройств ввода/вывода есть. Правда в Unix есть ещё поток для вывода ошибок. Открытый CP/M-файл тоже можно рассматривать как отдельный поток, лишь средствами CP/M переназначение его на STD вход не предусмотрен.askfind wrote:"Потоковый редактор" и однозадачная CP/M. Развей сомнения...
Я ещё попробую запустить этот редактор в паре фирменных антикварных эмуляторов CP/M на PC, где поддержан терминал VT100, надо убедиться, что рабочее, - нет смысла разбираться в чужом, что не является законченным и отлаженым до конца полноценным исходником.
Есть странслированная версия этого свежего эмулятора Z80-CP/M из 2016 года?
Re:
SED в UNIX - это скорее построчный редактор, его целесообразно использовать в сценариях и в конвейерах. На интерактивное взаимодействие с пользователем он не рассчитан. Кстати, о Sedtrisе знаете?barsik wrote:SED из Unix может даже и не экранный, а просто один из мелких инструментов, которых там много.
Re:
терпимо там дизассемблируется, просто я в свое время поленился этим заняться. Мне всего надо то - в обработке CR-LF скорректировать анализ CR при чтении файла и исключить CR при записи файла.barsik wrote:Дизассемблировать форт программу обычным дизассемблером бессмысленно, разобраться в логике будет сложнее, чем с нуля написать свой аналогичный редактор даже на ассемблере.
Ну то есть в среду уже можно ждать? Пускай будет хоть на Паскале, буфер то виртуализированный.barsik wrote: Написать аналог этого типового редактора на ассемблере отнимает менее месяца даже у программиста низкой квалификации. А на Турбо-Паскале пишется за 3 дня. Добавление в простой текстов редактор свопинга не сложно и доступно любому программисту. Объём кода занимаемый процедурами свопинга не превышает 0.75 кб. Размер такого редактора написанного на ассемблере для Z80 будет ~6.5 кб. Если на Турбо-Паскале, то (по моим представлениям) где-то 16 кб. На Паскале МТ+ (это для КР580) или Си (BDS, Aztec) ~20 кб.
Last edited by Error404 on 24 Jul 2020 16:22, edited 1 time in total.
Всем добра!