откуда растут уши у советских бейсиков

Советские программируемые калькуляторы, микрокомпьютеры и большие ЭВМ, не попавшие в другие разделы

Moderator: Shaos

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

Post by Lavr »

MC68k wrote:
эмулятор
я в сортах говна не очень разбираюсь.
А я один сорт... хм... вот по случаю нашел... :wink:

Image
http://fms.komkon.org/fMSX/

Сорт, правда, небесплатный... :-? Но поищу ещё freeware...


PS. Нашел ещё много сортов, в том числе и с функциями транспорта из звука...
Так что жду .ROM


PPS. Ну... "железные" эксперименты готов поддержать на вполне "говенном" уровне... :wink:
Поставил себе вот эту "говень"... работает...

Image

жду-с ВАСИК-КОМПИЛЛЕР.DUMP - из файла звука - вполне пойдёт...
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

MC68k wrote:
А вот ты не мог бы компильнуть на нём что-то простое и желательно системно-независимое,
и выложить бинарник здесь?
Очень хочется реверс попробовать...
жду-с ВАСИК-КОМПИЛЛЕР.DUMP - из файла звука - вполне пойдёт...
аппетит приходит во время еды, ага :) карт я дампить не буду.
Ну - спасибо на том, что есть...
Без дампа компиллера эта затея, правда, несколько бессмысленна... :(

Code: Select all

call b
- это как раз вызов компиллера?


Ну если я нигде не ошибся, шоркая фотку Файнридером, всё как-то так:

Code: Select all

Offset  0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

0000   ED 73 75 F8 21 3A C0 22  C8 F6 CD F6 70 FB 21 7E
0010   C0 22 D0 F7 22 D2 F7 3E  05 32 D4 F7 00 00 00 C3
0020   3B C0 00 00 00 00 00 00  00 00 00 00 00 00 00 00
0030   00 00 00 00 00 00 00 00  00 00 00 21 39 C0 E5 21
0040   00 00 22 39 C0 21 09 00  E5 21 01 00 E5 21 51 C0
0050   E5 21 25 C0 E5 21 00 00  E5 21 09 00 E5 2A 39 C0
0060   E5 CD 9F 70 C5 2A 39 C0  C1 7D 02 03 7C 02 CD 5A   
0070   70 C3 50 40 C9 FF FF FF  FF FF FF FF FF FF FF FF   
0080   00  
Вот только где у меня был декомпиллер для Z80... не помню...
Шоркну навскидку декомпиллером для i8080 сначала...
И будем посмотреть... .
iLavr
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

Lavr wrote:

Code: Select all

call b
- это как раз вызов компиллера?
да
Ну если я нигде не ошибся, шоркая фотку Файнридером, всё как-то так:

Code: Select all

Offset  0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

0000   ED 73 75 F8 21 3A C0 22  C8 F6 CD F6 70 FB 21 7E
0010   C0 22 D0 F7 22 D2 F7 3E  05 32 D4 F7 00 00 00 C3
0020   3B C0 00 00 00 00 00 00  00 00 00 00 00 00 00 00
0030   00 00 00 00 00 00 00 00  00 00 00 21 39 C0 E5 21
0040   00 00 22 39 C0 21 09 00  E5 21 01 00 E5 21 51 C0
0050   E5 21 25 C0 E5 21 00 00  E5 21 09 00 E5 2A 39 C0
0060   E5 CD 9F 70 C5 2A 39 C0  C1 7D 02 03 7C 02 CD 5A   
0070   70 C3 50 40 C9 FF FF FF  FF FF FF FF FF FF FF FF   
0080   00  
даже невооруженным глазом видно, где массив сидит и где все это безобразие завершается
Вот только где у меня был декомпиллер для Z80... не помню...
Шоркну навскидку декомпиллером для i8080 сначала...
И будем посмотреть... .
не взлетит
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Попробовал вот этот freeware Zilog Z80 Processor Code Disassembler...

Инструкция, характерная для Z80, - всего одна, поэтому декомпильнул в мнемониках i8080
и одну инструкцию исправил...

Исходник:

Code: Select all

10 DIM A(10) 
20 FOR I=0 TO 9 
30 A(I)=I 
40 NEXT 
50 END
С учетом, что Object C000-C075, компилируется в код:

Code: Select all

C000 LD  (0F875H),SP; db  ed7375f8
C004 LXI  H,C03A
C007 SHLD F6C8
C00A CALL 70F6
C00D EI
C00E LXI  H,C07E
C011 SHLD F7D0
C014 SHLD F7D2
C017 MVI  A,05H
C019 STA  F7D4
C01C NOP
C01D NOP
C01E NOP
C01F JMP  C03B

C022 NOP
C023 NOP
C024 NOP
C025 NOP
C026 NOP
C027 NOP
C028 NOP
C029 NOP
C02A NOP
C02B NOP
C02C NOP
C02D NOP
C02E NOP
C02F NOP
C030 NOP
C031 NOP
C032 NOP
C033 NOP
C034 NOP
C035 NOP
C036 NOP
C037 NOP
C038 NOP
C039 NOP
C03A NOP

C03B LXI  H,C039
C03E PUSH H
C03F LXI  H,0000
C042 SHLD C039
C045 LXI  H,0009
C048 PUSH H
C049 LXI  H,0001
C04C PUSH H
C04D LXI  H,C051
C050 PUSH H
C051 LXI  H,C025
C054 PUSH H
C055 LXI  H,0000
C058 PUSH H
C059 LXI  H,0009
C05C PUSH H
C05D LHLD C039
C060 PUSH H
C061 CALL 709F
C064 PUSH B
C065 LHLD C039
C068 POP  B
C069 MOV  A,L
C06A STAX B
C06B INX  B
C06C MOV  A,H
C06D STAX B
C06E CALL 705A
C071 JMP  4050

C074 RET

C075 RST  7
C076 RST  7
C077 RST  7
C078 RST  7
C079 RST  7
C07A RST  7
C07B RST  7
C07C RST  7
C07D RST  7
C07E RST  7
C07F RST  7
Что делают внешние вызовы - неясно... Какая-то логика видна, но видимо подумать надо...


PS. 2_MC68k: а что так сложно "выплюнуть" картридж с компиллером в звуковой файл?
Я посмотрел, все так делают... и утилиты для таких фокусов есть...
iLavr
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

если я правильно понимаю устройство MSX, внешние вызовы не имеют никакого отношения к компилятору.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

MC68k wrote:если я правильно понимаю устройство MSX, внешние вызовы не имеют никакого отношения к компилятору.
Сам-то понял, что сказал, или на солнце перегрелся?

Почитай книжечку "Программирование на языке ассемблера Z80 для MSX-2" и не позорься...

Прихвати для комплекта:"Архитектура MSX-2"
iLavr
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

Lavr wrote:
MC68k wrote:если я правильно понимаю устройство MSX, внешние вызовы не имеют никакого отношения к компилятору.
Сам-то понял, что сказал, или на солнце перегрелся?

Почитай книжечку "Программирование на языке ассемблера Z80 для MSX-2" и не позорься...

Прихвати для комплекта:"Архитектура MSX-2"
и тут Остапа понесло... обиделся, что я компилятор не стал дампить? это бывает.

зачем мне усеченный перевод, когда у меня есть оригинал для MSX? и давай не будем приплетать сюда MSX-2, которой в 1985 году еще не было.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

MC68k wrote:если я правильно понимаю устройство MSX, внешние вызовы не имеют никакого отношения к компилятору.
MC68k wrote:зачем мне усеченный перевод, когда у меня есть оригинал для MSX? и давай не будем приплетать сюда MSX-2, которой в 1985 году еще не было.
Ну загляни хотя бы в оригинал - архитектура там описана и что делают системные вызовы поясняется...

Не позорься ещё раз "Киса"... :lol:
iLavr
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

заглянул и не раз. хоть бы сравнил, как выглядит приглашение бейсика и компилятора. эмуляторы до добра не доводят. кто у нас тут по ямахам спец?
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Да причем тут эта муть?
В примерах программирования на асм однозначно видно: загружают значения
в системные ячейки и вызывают системную функцию.
Что мы и наблюдаем в коде.

Теперь читаем что ты тут изрёк:
MC68k wrote:если я правильно понимаю устройство MSX, внешние вызовы не имеют никакого отношения к компилятору.
Я компилятора ни в каком виде не видел и понятия не имею, что в нём.

Декомпилированая же программа, на мой взгляд, к системе обращается.
Почему я и говорю, выражовывайся точнее, а то складывается мнение
о перегреве в жару... :wink:
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Lavr wrote:Ну - спасибо на том, что есть...
Без дампа компиллера эта затея, правда, несколько бессмысленна... :(
Да это я писАл... что - спасибо назад забрать? :lol:
И это - я
Lavr wrote:Что делают внешние вызовы - неясно... Какая-то логика видна, но видимо подумать надо...
А это ты писАл:
MC68k wrote:если я правильно понимаю устройство MSX, внешние вызовы не имеют никакого отношения к компилятору.
Что собственно и привело меня к мысли, что у тебя в жаркую погоду головёнка перегрелась...
Да-да... как на твоей картинке:
Image
Приложи к ней лёд - он ядрёный, он проймёт... :D

Потому что без дампа компиллера действительно не имеет никакого смысла разбирать
далее что он компилирует...

До тебя это дошло, наконец, фэйспалм слоупок?



PS. И это я тоже знаю, ничем не удивил:
MC68k wrote:аппетит приходит во время еды, ага карт я дампить не буду.
Если бы я тебя вот тут прилюдно не подначил на слабО, от тебя бы и Хардыч
фиг чего дождался...
:lol:
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

MC68k wrote:уймись уже, светила науки, компилятор делает stand-alone код.
Где же он тут stand-alone, слоупок? :o

Code: Select all

C000 LD  (0F875H),SP; db  ed7375f8
C004 LXI  H,C03A
C007 SHLD F6C8
C00A CALL 70F6
C00D EI
C00E LXI  H,C07E
C011 SHLD F7D0
C014 SHLD F7D2
C017 MVI  A,05H
C019 STA  F7D4
C01C NOP
C01D NOP
C01E NOP
C01F JMP  C03B

C022 NOP
C023 NOP
C024 NOP
C025 NOP
C026 NOP
C027 NOP
C028 NOP
C029 NOP
C02A NOP
C02B NOP
C02C NOP
C02D NOP
C02E NOP
C02F NOP
C030 NOP
C031 NOP
C032 NOP
C033 NOP
C034 NOP
C035 NOP
C036 NOP
C037 NOP
C038 NOP
C039 NOP
C03A NOP

C03B LXI  H,C039
C03E PUSH H
C03F LXI  H,0000
C042 SHLD C039
C045 LXI  H,0009
C048 PUSH H
C049 LXI  H,0001
C04C PUSH H
C04D LXI  H,C051
C050 PUSH H
C051 LXI  H,C025
C054 PUSH H
C055 LXI  H,0000
C058 PUSH H
C059 LXI  H,0009
C05C PUSH H
C05D LHLD C039
C060 PUSH H
C061 CALL 709F
C064 PUSH B
C065 LHLD C039
C068 POP  B
C069 MOV  A,L
C06A STAX B
C06B INX  B
C06C MOV  A,H
C06D STAX B
C06E CALL 705A
C071 JMP  4050

C074 RET
stand-alone код не лазиет черте-знает куда...

Code: Select all

C00A CALL 70F6
...
C06E CALL 705A
C071 JMP  4050
MC68k wrote:так и скажи "очень хочу нахаляву дамп компилятора, а он, гад, не дает".
Ей-богу рассмешил!!! Не... ты себя правильно определил, самокритично... :D
MC68k wrote:dunno, what did you smoked, but i wanna try it
Да я давно заметил, ты как накуришься, то материшься то ахинею несёшь...
Заверни "нахалявный дамп компилятора" в газетку и дьорни, иф ю соу wanna try it...
Оно тебя и попустит, глядишь
:lol:
iLavr
User avatar
Shaos
Admin
Posts: 24086
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

щас отрежу нафиг ваше господа петросянство и в мусорку...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Lavr wrote:stand-alone код не лазиет черте-знает куда...
Для мелких машин код, юзающий сервис BIOS, можно назвать стэндалон, т.к. не требует интерпретатора.
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

HardWareMan wrote:
Lavr wrote:stand-alone код не лазиет черте-знает куда...
Для мелких машин код, юзающий сервис BIOS, можно назвать стэндалон, т.к. не требует интерпретатора.
вот и я о том же - в тех адресах BIOS и MSX Basic, который в масочном ПЗУ сидит. А ПЗУ в большинстве моделей намертво впаяно на плате. MSX примечательна открытым, хорошо описанным стандартом(усеченные переводы не считаются), адреса системных процедур BIOS, MSX-DOS и MSX Basic известны и постоянны, так что компилятор тут совсем нипричем.