nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 15:36



Reply to topic  [ 20 posts ]  Go to page Previous  1, 2
Soft для 1801ВМХ 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
А вот эта ссылочка из топика, пожалуй, поинтереснее будет (забрал)! :o
http://zx-pk.ru/threads/21599-krossassembler-i-obolochka-(prislannye-materialy-dlya-arkhiva).html

Image

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

Файлы архива:
ASM.COM - ассемблер.
ASM.TXT - его описание.
ASM_BK.TXT - описание ASM11 для БК с командами и синтаксисом.
ASM_BKcut.TXT - команды и синтаксис отдельно.
PDP11.TXT - до кучи.

Жаль исходника нет... хочется в эти ассемблеры кое-что дописать... 8)

_________________
iLavr


03 Feb 2018 02:31
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
И рядом в разделе «Кросс средства» обнаружился консольный дизассемблер DASM.
Attachment:
bkdasm007b.png
bkdasm007b.png [ 15.96 KiB | Viewed 5717 times ]

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

Предусмотрено два режима программы. Это непосредственно дизассемблер или
перевод файла в листинг в виде блока слов (.WORD 1567,3265,.... и т.д.)

Сделано: DELTA Group. Город Павловский Посад. 2014 год.

_________________
iLavr


03 Feb 2018 02:48
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
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:

Далее оказалось, что и это еще не всё, еще какой-то "манипулятор" приделан.
Я выполнил часть кода этого манипулятора вручную - он жульничал со стеком
и патчил точку входа в код - после чего выяснилось, что:
Quote:
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 с ним справился:
Quote:
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 в оригинале, то вот он:
Attachment:
ASMDC.zip [13.86 KiB]
Downloaded 397 times

Как ZIP нули-то хорошо плющит! С 144956 до 14195 Байт! :lol:

Ну и если кому интересно, что же делал XOR v 0.03b by ICO 20-feb-1995 95 - то вот что:
 Код дешифратора XOR v 0.03b
Code:
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

_________________
iLavr


17 Feb 2018 05:13
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Коллеги! А никто, случаем, не знаком с Александром Осиповым - автором этого компилятора -
по каким-либо другим ресурсам или соц-сетям?

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

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

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

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

Было бы неплохо спросить исходники на С++ у Александра Осипова - немного
осовременить его ассемблер и узнать бы, что делают его неизвестные фичи...


P.S. Я тут ещё погуглил... и сложилось у меня мнение, что искомый Александр Осипов - это вот он:
https://voguegroup.ru/data/id-112572030

_________________
iLavr


30 Jan 2020 06:40
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Вот здесь скачал я довольно неплохой консольный кросс-ассемблер 1801BMxx под Windows:

BKTurbo8.rar

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

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


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

P.P.S. Кстати, в архиве автора имеются исходники Ассемблера БК Турбо 8:
Attachment:
BKTurbo8_src.zip [106.46 KiB]
Downloaded 173 times

_________________
iLavr


30 Oct 2021 19:40
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 20 posts ]  Go to page Previous  1, 2

Who is online

Users browsing this forum: No registered users and 6 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.