Soft для 1801ВМХ

Digital Equipment Corporation PDP-8 & PDP-11 (а также совместимые с последним советские ЭВМ на 1801ВМ1/2/3)

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Soft для 1801ВМХ

Post by Lavr »

Lavr wrote:А вот эта ссылочка из топика, пожалуй, поинтереснее будет (забрал)! :o
http://zx-pk.ru/threads/21599-krossasse ... hiva).html

Image
Нашел я оригинал этого кросс-ассмблера: Кросс-ассемблер для БК-0010/11М v1.00
Есть описание команд и синтаксиса:
Автор: Александр Осипов 1997год.

Файлы архива:
ASM.COM - ассемблер.
ASM.TXT - его описание.
ASM_BK.TXT - описание ASM11 для БК с командами и синтаксисом.
ASM_BKcut.TXT - команды и синтаксис отдельно.
PDP11.TXT - до кучи.
Жаль исходника нет... хочется в эти ассемблеры кое-что дописать... 8)
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Soft для 1801ВМХ

Post by Lavr »

И рядом в разделе «Кросс средства» обнаружился консольный дизассемблер DASM.
bkdasm007b.png
Консольная программа для дизассемблирования файлов БК.

Code: Select all

Файлы пакета:
bkdasm.exe - Дизассемблер
bkdasm.txt   - Описание
cmd.exe      - Виндовая консоль до кучи
test.bin       - БИН файл БК из эмулятора А.Савельева
test.label.txt - Пользовательский файл меток к test.bin для примера
test.dasm.txt  - Полученный файл программы для примера.
Предусмотрено два режима программы. Это непосредственно дизассемблер или
перевод файла в листинг в виде блока слов (.WORD 1567,3265,.... и т.д.)

Сделано: DELTA Group. Город Павловский Посад. 2014 год.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Soft для 1801ВМХ

Post by Lavr »

Lavr wrote:Нашел я оригинал этого кросс-ассмблера: Кросс-ассемблер для БК-0010/11М v1.00
Автор: Александр Осипов 1997год.
...
Жаль исходника нет... хочется в эти ассемблеры кое-что дописать... 8)
В общем, подумал я, что 15.317 байт этого ASM.COM можно прочитать в IDA, -
собственно, не так уж и много...
Но сразу насторожило, что в коде не видно ассемблерных мнемоник WINHex-ом.

При запуске через отладчик выяснилось, что ASM.COM шифрован через XOR некоей
неизвестной ни мне, ни File Analyzerу утилитой "XOR v 0.03b by ICO 20-feb-1995 95".
Причем зашифрован он оказался дважды - во второй раз после XOR сигнатуру
"XOR v 0.03b by ICO 20-feb-1995 95" отрезали вручную. :lol:

Далее оказалось, что и это еще не всё, еще какой-то "манипулятор" приделан.
Я выполнил часть кода этого манипулятора вручную - он жульничал со стеком
и патчил точку входа в код - после чего выяснилось, что:
File Name: ASM.COM
File Date: 16 Feb 2018
File Size: 16352
File type: MZ-EXE. Old-style DOS executable file
Processed: Packed by PKLITE v.1.00 or v.1.03 (type 1) (for .EXE files)
Extension: DOS executable file
Но ни UNP.EXE, ни PKUNLITE.EXE не смогли его распаковать... :-?
Пришлось через UNP.EXE превратить ASM.COM в ASM.EXE.
И только после этого PKUNLITE.EXE с ним справился:
File Name: ASM.EXE
File Date: 16 Feb 2018
File Size: 144956 :o
File type: MZ-EXE. Old-style DOS executable file
Processed: Compiled by Turbo C 1988, 1990 or Borland C++ 1991 (type 2) (for .EXE files)
Extension: DOS executable file
Я, конечно, подставил IDA прокрутить эти 144956 Байт, поскольку внутри обнаружилось порядка
115000 нулевых байт, но результат меня не обнадёжил... :wink:

Если кому интересен развернутый ASM.COM в виде ASM.EXE в оригинале, то вот он:
ASMDC.zip
Как ZIP нули-то хорошо плющит! С 144956 до 14195 Байт! :lol:

Ну и если кому интересно, что же делал XOR v 0.03b by ICO 20-feb-1995 95 - то вот что:

 Код дешифратора XOR v 0.03b

Code: Select all

29AF:401D 54            PUSH    SP
29AF:401E 50            PUSH    AX
29AF:401F 53            PUSH    BX
29AF:4020 51            PUSH    CX
29AF:4021 52            PUSH    DX
29AF:4022 1E            PUSH    DS
29AF:4023 06            PUSH    ES
29AF:4024 B91A3F        MOV     CX,3F1A
29AF:4027 0E            PUSH    CS
29AF:4028 07            POP     ES
29AF:4029 BF0301        MOV     DI,0103
29AF:402C BD5562        MOV     BP,6255
29AF:402F BE1936        MOV     SI,3619
29AF:4032 BB0100        MOV     BX,0001
29AF:4035 8BC3          MOV     AX,BX
29AF:4037 F7E5          MUL     BP
29AF:4039 03C1          ADD     AX,CX
29AF:403B 8BD8          MOV     BX,AX
29AF:403D 26            ES:
29AF:403E 3005          XOR     [DI],AL
29AF:4040 47            INC     DI
29AF:4041 E2F2          LOOP    4035
29AF:4043 BE0301        MOV     SI,0103
29AF:4046 BF0001        MOV     DI,0100
29AF:4049 8BEF          MOV     BP,DI
29AF:404B B91A3F        MOV     CX,3F1A
29AF:404E FC            CLD
29AF:404F AC            LODSB
29AF:4050 AA            STOSB
29AF:4051 E2FC          LOOP    404F
29AF:4053 07            POP     ES
29AF:4054 1F            POP     DS
29AF:4055 5A            POP     DX
29AF:4056 59            POP     CX
29AF:4057 5B            POP     BX
29AF:4058 58            POP     AX
29AF:4059 5C            POP     SP
29AF:405A FFE5          JMP     BP

29AF:405C                 DB        ' XOR v 0.03b by ICO 20-feb-1995 95'

29AF:407E 54            PUSH    SP
29AF:407F 50            PUSH    AX
29AF:4080 53            PUSH    BX
29AF:4081 51            PUSH    CX
29AF:4082 52            PUSH    DX
29AF:4083 1E            PUSH    DS
29AF:4084 06            PUSH    ES
29AF:4085 B97B3F        MOV     CX,3F7B
29AF:4088 0E            PUSH    CS
29AF:4089 07            POP     ES
29AF:408A BF0301        MOV     DI,0103; начало
29AF:408D BD5562        MOV     BP,6255
-
29AF:4090 BE1936        MOV     SI,3619
29AF:4093 BB0100        MOV     BX,0001

29AF:4096 8BC3          MOV     AX,BX
29AF:4098 F7E5          MUL     BP
29AF:409A 03C1          ADD     AX,CX
29AF:409C 8BD8          MOV     BX,AX
29AF:409E 26            ES:
29AF:409F 3005          XOR     [DI],AL
29AF:40A1 47            INC     DI
29AF:40A2 E2F2          LOOP    4096

29AF:40A4 BE0301        MOV     SI,0103
29AF:40A7 BF0001        MOV     DI,0100
29AF:40AA 8BEF          MOV     BP,DI
29AF:40AC B97B3F        MOV     CX,3F7;
29AF:40AF FC            CLD

29AF:40B0 AC            LODSB
29AF:40B1 AA            STOSB
29AF:40B2 E2FC          LOOP    40B0

29AF:40B4 07            POP     ES
29AF:40B5 1F            POP     DS
29AF:40B6 5A            POP     DX
29AF:40B7 59            POP     CX
29AF:40B8 5B            POP     BX
29AF:40B9 58            POP     AX
29AF:40BA 5C            POP     SP
29AF:40BB FFE5          JMP     BP; 100

You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Soft для 1801ВМХ

Post by Lavr »

Коллеги! А никто, случаем, не знаком с Александром Осиповым - автором этого компилятора -
по каким-либо другим ресурсам или соц-сетям?

Дополнительная информация: он также автор AODOS и был хорошо знаком с Алексеем Савельевым
(который, к сожалению, умер).

Я написал письмо коллеге CD-Inc: http://www.bk001x.ru/forum/40-396-1,
но выяснил лишь, что с Александром Осиповым он не знаком.

А ассемблер за авторством Александра Осипова, тем не менее, имеется на разных ресурсах в сети:
https://r-games.net/32356-crossasmpdp-11.html
CrossAsmPDP-11
Разработчик: Осипов Александр
Платформа: Windows

Кросс-ассемблер БК-0010/11М v1.00 Написан в кодах IBM PC Данная программа предназначена для компилирования исходных текстов в формате TURBO, ASM11 для БК-0010/11М. На выходе получается .BIN - файл откомпилированной для БК программы.
Было бы неплохо спросить исходники на С++ у Александра Осипова - немного
осовременить его ассемблер и узнать бы, что делают его неизвестные фичи...


P.S. Я тут ещё погуглил... и сложилось у меня мнение, что искомый Александр Осипов - это вот он:
https://voguegroup.ru/data/id-112572030
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Soft для 1801ВМХ

Post by Lavr »

Вот здесь скачал я довольно неплохой консольный кросс-ассемблер 1801BMxx под Windows:

BKTurbo8.rar

Здесь - его онлайн HELP: Кросс Ассемблер БК Турбо 8, документация

На серьёзных файлах пока не проверял, по мелочи - компилирует вроде как правильно...


P.S. Проверил компиляцию файла Монитора - идентично собран... :kruto:

P.P.S. Кстати, в архиве автора имеются исходники Ассемблера БК Турбо 8:
BKTurbo8_src.zip
You do not have the required permissions to view the files attached to this post.
iLavr