Вход

Просмотр полной версии : Yet Another Z80 Emulator + Borland Turbo Modula 2



Oleg N. Cher
22.02.2017, 02:17
Всем привет! Пришла такая новость (http://freepages.modula2.org/index.html):


02/20/2017
A final release with the version number 2.40.3 of YAZE-AG (http://www.mathematik.uni-ulm.de/users/ag/yaze-ag/) - Yet Another Z80 Emulator by Andreas Gerlich (which contains the CP/M Turbo Modula-2 compiler written by Peter Sollich and Martin Odersky) is available since january. The documentation of Turbo Modula-2 is available (.pdf) (http://oldcomputers.dyndns.org/public/pub/manuals/turbomodula2_bw.pdf). An amazing compiler with interesting extensions.

Попробовал запустить, интересная штука!

http://i.piccy_.info/i9/2cbde042f5a4b72f64dd40809f420271/1487718483/130301/1081357/Yaze.png

Есть желающие попробовать собрать Hello World для Спека на ТурбоМодуле-2 ? Интересно, насколько там сильна заточка под CP/M, нельзя ли отучить? (сам ещё не пробовал)

В идеале хотелось бы Модулу-2 для запуска под эмулем CP/M. С библиотеками для ZX.

Вот тут ещё какие-то версии Модулы-2 для Z80 (CP/M):

http://www.retroarchive.org/cpm/lang/lang.htm
(там же есть Algol-M и даже компилятор Ada, но наверное CP/M-щики в теме).

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

Вот ещё любопытно:

Modula and CP/M today

Modula and its successors are still of some interest. There is a modula2.org Web site (http://www.modula2.org) with some resources, but not directly for CP/M or 8-bit processors. There is also a Modula-2 Web ring, with 17 sites as of 2008 (http://www.modulaware.com/m2wr/). A number of relevant Web sites refer to retroarchive.org to download FTL (or Turbo) Modula 2 (http://www.retroarchive.org/cpm/lang/lang.htm).

Gaby's "unofficial CP/M Web site" has a Modula-2 Implementation from Hochstrasser Computing AG for CP/M systems using a Z80 processor (http://www.cpm.z80.de/develop.htm). It was apparently freely offered by Peter Hochstrasser in 2002 after the company was liquidated in 1997, and initially made available on Hal Bower's Web site (http://mysite.verizon.net/hal.bower/#languages), and later on other CP/M archive sites. This compiler produces native Z80 code, not M-code; the compiler source is apprently not included but library source is. Peter Hochstrasser is (or was) working at the ETH Zurich, the "origin" organization for Modula.

Shiny
22.02.2017, 06:58
Не понравился мне Yaze, я другой использовал.

Vadim
22.02.2017, 08:45
Есть желающие попробовать собрать Hello World для Спека на ТурбоМодуле-2 ? Интересно, насколько там сильна заточка под CP/M, нельзя ли отучить? (сам ещё не пробовал)
Зачем какой-то там новый эмулятор выискивать? Есть около пяти штук, где Турбо модула 2 точно заработает. На эмуляторе профи она работает тоже. Что за вопрос про заточку под ЦПМ? Вопрос глупый. Все высокоуровневые языки программирования под ЦПМ на выходе имеют код программы под ЦПМ, в формате COM. Весь вывод на консоль идёт через вызов функций БДОС.

Shiny
22.02.2017, 09:04
Что за вопрос про заточку под ЦПМ? Вопрос глупый.
руководство (https://maben.homeip.net/static/S100/software/borland/turbo%20modula/Borland%20Turbo%20Modula%202.pdf) говорит примерно то же.


Зачем какой-то там новый эмулятор выискивать? Есть около пяти штук, где Турбо модула 2 точно заработает
Часть эмуляторов реализована так, что работа осуществляется с образами дисков. у Yaze можно смонтировать папку как диск.

Oleg N. Cher
22.02.2017, 14:57
Что за вопрос про заточку под ЦПМ? Вопрос глупый.Вопрос можно понять глупо, а можно умно. Я нисколько не сомневаюсь, что языки под ЦПМ дают выход для ЦПМ. Но я предполагаю, что есть возможность слинковать бинарь под произвольный адрес, а библиотеки переписать. Там некоторые языки дают на выходе объектник формата .rel, что, кстати, не исключает совместимости с SDCC (тоже .rel).

Вопрос был к практикам. Возможно, у кого-то есть подобный опыт.

Error404
22.02.2017, 15:13
у SDCC свой уникальный rel (кто бы сомневался - у изобретателей велосипедов то) , не совместимый с микрософтовским rel наиболее широко используемым компиляторами СРМ для перемещаемого кода. В свое время это стало одним из множества разочарований от SDCC

Oleg N. Cher
02.03.2017, 20:47
Предполагаю, что микрософтовский .rel заточен только для процессоров i8080/Z80 и для других не годится. SDCC же более похож на GCC. Свой .rel - плата за бОльшую универсальность, в данном случае - мультитаргет. Я помню время, когда в SDCC был другой объектный формат (расширение было то ли .obj, то ли просто .o), кажется, в версии 2. Надо думать, команда SDCC не имеет цели поддерживать протопиетарные форматы в пользу открытых.

Alcoholics Anonymous
03.03.2017, 21:44
у SDCC свой уникальный rel (кто бы сомневался - у изобретателей велосипедов то) , не совместимый с микрософтовским rel наиболее широко используемым компиляторами СРМ для перемещаемого кода. В свое время это стало одним из множества разочарований от SDCC

Это не имеет смысла, чтобы принять формат, который накладывает ограничения на какие функции линкер может иметь. Вот почему он не используется ничем, кроме CPM эры монтажников и компиляторов.


It doesn't make sense to adopt a format that places limitations on what features the linker can have. That's why it's not used by anything except CPM era assemblers and compilers.



Я помню время, когда в SDCC был другой объектный формат (расширение было то ли .obj, то ли просто .o), кажется, в версии 2. Надо думать, команда SDCC не имеет цели поддерживать протопиетарные форматы в пользу открытых.

SDCC не писал свои собственные ассемблеры / линкеры - они приняли ASXXX написал Алан Болдуин (http://shop-pdp.kent.edu/ashtml/asxget.htm). Версия ASXXX монтажников, которые использует SDCC позади текущей версии, что Алан написал. Основной причиной для SDCC выбирают ASXXX что ASXXX семейство монтажников, что цели разных процессорах приносит общий набор функций и синтаксиса по всем целям центрального процессора. Эти монтажники все разделяют подобный формат библиотеки с тем же именем, .rel за тысячу показов, но это не то же самое. Некоторые из целей SDCC используют ассемблер вне семьи ASXXX. Я думаю, что цели ПОС и DS используют различные монтажники и различные форматы библиотеки.

Если CPM .rel важно, оно не должно быть слишком трудно, чтобы написать инструмент, который преобразует CPM .rel формат библиотеки формата другого ассемблера. Это было частично сделано в Z88DK много лет назад (~ 10 лет сейчас! Время летит) (rel2z80.c (https://github.com/z88dk/z88dk/tree/master/support/rel)), но я не думаю, что это будет работать больше без изменений, так как библиотека формата Z88DK / Z80ASM имеет с тех пор изменилось. В то время это было использовано для скомпилированной программы MS BASIC в КФМ, двигаться, что Z88DK и связи для ряда других целей Z80. Пример, используемый скомпилирован программу MS BASIC и запустил его на спектре гх.


SDCC did not write its own assemblers / linkers - they adopted ASXXX written by Alan Baldwin (http://shop-pdp.kent.edu/ashtml/asxget.htm). The version of the ASXXX assemblers that SDCC uses is behind the current release that Alan has written. A primary reason for SDCC choosing ASXXX is that ASXXX is a family of assemblers that targets many different cpus which brings a common feature set and syntax across all cpu targets. These assemblers all share a similar library format with the same name as CPM's .rel but it is not the same thing. Some of SDCC's targets use an assembler outside the ASXXX family. I think the PIC and DS targets use different assemblers and different library formats.

If CPM .rel is important, it shouldn't be too hard to write a tool that converts CPM .rel format to another assembler's library format. This was partially done in Z88DK many years ago (~10 years now! Time flies) (rel2z80.c (https://github.com/z88dk/z88dk/tree/master/support/rel)) but I don't think this would work anymore without modification because Z88DK/Z80ASM's library format has since changed. At the time this was used to compiled an MS BASIC program in CPM, move that to Z88DK and link for several other Z80 targets. The example used compiled an MS BASIC program and ran it on the zx spectrum.

Vadim
04.03.2017, 10:35
Но я предполагаю, что есть возможность слинковать бинарь под произвольный адрес, а библиотеки переписать. Там некоторые языки дают на выходе объектник формата .rel, что, кстати, не исключает совместимости с SDCC (тоже .rel).
Да, если делать в REL то возможно, но с библиотеками будет туго. + файловые операции. Насчёт REL добавлю, что не везде и не во всяком случае на выходе будет то, что надо (имею ввиду перемещаемость). В случае с м80, к примеру, для того, что бы потом получить SPR файл (а это как раз то, что вам нужно), нужно ставить опцию CSEG (это варианты размещения кода, для получения COM файла ставится ASEG, но в любом случае м80 после компиляции выдает REL).

Oleg N. Cher
05.03.2017, 01:39
В рассылке ETH начали активное обсуждение Модулы-2 для Z80:

Пробуем достать исходники Modula-2 System for Z80 CP/M (https://zx.oberon2.ru/forum/viewtopic.php?f=119&t=311)

Vadim
05.03.2017, 06:46
Это было бы здорово!