Просмотр полной версии : Трамплин
Собственно вот: http://www.zxpress.ru/article.php?id=1046
Где бы увидеть это чудо?
Jimmy Falcon
10.12.2014, 04:24
Я когда начинал писать на АСМе для PC, действительно самым сложным было понять принцип сегментации. Но достаточно один раз понять как правильно установить значения регистров сегментов и как работает смещение чтобы начать без проблем кодить под PC. Там ничего нет сложного, совершенно. Когда я написал свою первую программу, ещё даже не было инета. Просто книжка у меня была.
На самом деле с сегментацей можно и не заморачиваться. Давно придуманы всякие "protected mode". Я, помню, немного кодил под DOS32 (http://www.digitalmars.com/ctg/dos32.html). Поддержка 32-битных регистров имеется, удобно.
Так всё-таки есть этот "Трамплин" вживую?
Вроде инфорком заявки на него принимал.
---------- Post added at 17:26 ---------- Previous post was at 17:25 ----------
У меня была мысля написать макросы для PC-асма чтоб команды были спековые.
Ну по типу вместо MOV - LD и т.д.
Но так руки не дошли (пока)
На скоко я понимаю это идея Веремеенко. Мда был талантливый человек, еще тот "кулибин". Он же перед этим использовал пакет DEVPAC на спекки для написания кода под NES, для чего и соорудил пачку макросов под 6502. А этот трамплин как я понимаю это шото из разряда "адаптировать атомобиль для управления велосипедистом" :). Сама по себе затея из нереальных, потому и результат думаю печальный. Тут либо пиши проги под ZX и пускай в эмуле спектрума, либо пиши на чем-то таком чему легко научиться и забудь про спекки, а иначе свой код на DOS не запустить по-моему. Предложеная им полумера не вариант как по мне а так тупиковая ветка эволюции, химеро-гибридная технология неспособная к выживанию.
Oleg N. Cher
12.12.2014, 02:18
Ладно, соврал вам. Нашёл у себя Трамплин. Был в папочке со старыми наработками времён COLOSS'а. Destr'у спасибо, простимулировал меня в ней порыться. :)
Alex Rider
12.12.2014, 04:10
Нашёл у себя Трамплин.
А путями добычи его для истории поделишься?
Oleg N. Cher
12.12.2014, 04:48
Запамятовал. Но скорее всего в инете нарыл, больше было неоткуда.
Написать демку, где сверху крутится слово "Basic", а внизу бегущей строкой "Rulez!". Вот и совместил демо и ЯВУ. :)
А вообще, если представление иметь о Z80, то можно на том-же PC Pascale писать программы так, чтобы потом их легко переделать на Z80 ассемблер. Побольше байтов и двубайтовых слов, поменьше умножений и чисел с плавающей точкой. Без синусов и косинусов и так далее. Вот вам и совмещение демо с ЯВУ, и то что хотел автор топика.
А вообще, если представление иметь о Z80, то можно на том-же PC Pascale писать программы так, чтобы потом их легко переделать на Z80 ассемблер. Побольше байтов и двубайтовых слов, поменьше умножений и чисел с плавающей точкой. Без синусов и косинусов и так далее. Вот вам и совмещение демо с ЯВУ, и то что хотел автор топика.
Не совсем, но близко.
Хорошо что "Трамплин" этот нашёлся, оч помогает.
А пока он искался - я тут кой-какие исследования проводил.
Пришёл к интересным выводам:
У всяких там intel`ов есть совместимость вниз.
У z80 есть частичная совместимость с 8080 (86?)
Короче родня.
И это я сейчас пытаюсь использовать.
Ничто не ново под луной, примерно так-же действует и "Трамплин", только там zx кодера "тянут" на i86, а мне надо (в данном, конкретном случае) накалякать прогу, чтоб работала на i86, и когда всё вылижу - просто и спокойно перенести её на спек. (не впрямую конечно).
В общем сподвиги есть, по вехам думаю отписыватся в этой теме, есть мнение что кому-то ещё пригодится.
P.S. Модераторы: Плиз, можно как-нибудь подчистить тему от флуда?
Или (если самим некогда) выдать мне права чисто на эту ветку чтоб всякий оффтоп удалять?
Планирую серьёзно занятся этими вещами (взаимоассимиляцией платформ) и не хотелось чтоб было 100500 страниц всякой левоты. (ну мало-ли зайдёт потенциальный единомышленник - ведь замучается читать всякие перепирания междуусобные!)
Andrew771
12.12.2014, 17:16
Так ведь можно конвертировать ДОС-овские игры на Спек. Тупо команда-в-команду перевести. А потом только переписать вывод на экран. И вуаля! :)
Так ведь можно конвертировать ДОС-овские игры на Спек. Тупо команда-в-команду перевести. А потом только переписать вывод на экран. И вуаля!
В общем-то да.
Но только самые примитивные (чтоб набора регистров и памяти хватило)
Ну и чтоб экран тоже убогонький был.
Т.е. самые первые гамы (которые и на РК-86 можно перевести, да в текстовый режим графики)
Мне цель чуть иная - накалякать такой примитив (для пц) чтоб без проблем перекинуть (с заменой соотв. процедур) на спек.
Конечно это для спека будет оч.круто (тяжко) но думаю вытянет.
Ну а если нет - ну значит эксперимент не удался.
Andrew771
12.12.2014, 17:47
Ты как АлонКодер - пошарит, найдет или выпросит сырки и вывалит "релиз"..
дизассемблировать с PC, потом конвертнуть Трамплином, потом вручную переписать вывод на экран, потом компилить на Спек :)
дизассемблировать с PC, потом конвертнуть Трамплином, потом вручную переписать вывод на экран, потом компилить на Спек
Ты видно не так понял?
Трамплин не конвертит.
Трамплин позволяет писать синтаксисом Z80 на Pc
Т.е. то что заработает на письке (писаное на трамплине) - с большой вероятностью заработает на спеке (с нужными правками процедур, конечно)
А наоборот он не умеет
Ты видно не так понял?
Трамплин не конвертит.
Трамплин позволяет писать синтаксисом Z80 на Pc
Т.е. то что заработает на письке (писаное на трамплине) - с большой вероятностью заработает на спеке (с нужными правками процедур, конечно)
А наоборот он не умееттак на кой тебе оно? пиши сразу на спеке....
так на кой тебе оно? пиши сразу на спеке....
Уже объяснял (в нескольких ветках порой) что НЕ МОГУ НАЙТИ АДЕКВАТНУЮ МАТЕМАТИКУ.
Т.е. гарантированый mul, imul, div, idiv
Всё что предлагают - заточено под конкретные (и мне либо не понятные, либо не устраивающие) задачи.
Решил пойти с другого конца - имея аппаратную мат.поддержку накалякать простенький двиг.
Если выйдет - то перенос на спек (ну и точное эмулирование умножаек-делилок)
Я ведь в конце-концов не Алонкодер, я простой деревенский неотёсок.
Так что потихоньку-полегоньку.
Пробуя и спотыкаясь...
Самообучаюсь в общем и ищу подходы...
Да, я понимаю что изобретаю в общем-то велосипед, но что делать если все методические пособия и самоучители изложены совсем непонятным (для меня) языком?
Вот и начинаем-с с нуля всю эволюцию...
В общем цель такая: сложная прога -> обкатка её на pc-asm -> перенос на спек 1 в 1 (по результату работы)
Зачем такие сложности?
Просто бери какой-нибудь borland turbo pascal 5 или c++ 3.0 тот что был под DOS-16bit, ну или тот что под windows - 16bit, напиши процедуру которая спектрумовский экран (массив 6912-byte) показывает на экране ПЕЦЕ (под DOS-ом или под Win16 соответственно) ну и вызывай эту процедуру в конце "главного цикла игры". Потом пиши себе на C или Pascal-е прогу которая рисует в этот виртуальный спекки экран. Таким же образом приделать виртуальную клавиатуру и джойстик если надо.
Другой вариант это: создать интерфейс к экрану, клавиатуре, джойстику (это пачка процедур варианты реализации которых существуют и под ZX и под ПЕЦЕ, которые будут отвечать за конкретные операции с экраном, клавиатурой, джойстиком и т.д.) и писать прогу которая работает только с этим интерфейсом.
Просто бери какой-нибудь borland turbo pascal 5 или c++ 3.0 тот что был под DOS-16bit, ну или тот что под windows - 16bit, напиши процедуру которая спектрумовский экран (массив 6912-byte) показывает на экране ПЕЦЕ (под DOS-ом или под Win16 соответственно) ну и вызывай эту процедуру в конце "главного цикла игры". Потом пиши себе на C или Pascal-е прогу которая рисует в этот виртуальный спекки экран. Таким же образом приделать виртуальную клавиатуру и джойстик если надо.
Другой вариант это: создать интерфейс к экрану, клавиатуре, джойстику (это пачка процедур варианты реализации которых существуют и под ZX и под ПЕЦЕ, которые будут отвечать за конкретные операции с экраном, клавиатурой, джойстиком и т.д.) и писать прогу которая работает только с этим интерфейсом.
Спасибо, но поздняк (всё уже сделано на трамплине)
...А pc-asm мне нужен с одной целью - написать на нём то что мне нужно, а потом перенести это на спек...
Ну, земеля, ты молодец, интересной штукой увлекся. На самом деле, такое "извращение" дает один универсальный текст сразу для двух машин. Ну и голова начинает работать в расширенном диапазоне. В 99м у меня была мысль подобие Трамплина сделать, чтобы проги Speccy Basic в QBasic переводить. Дальше пробного образца не пошло, посчитал, что проще поднапрячся и "QB" освоить вместе с ПЦ-асмом. Потом дурканутая идея конвертировать QB-тексты в паскалевые (в итоге мало-мальски освоил Паскаль:)
... На самом деле, такое "извращение" дает один универсальный текст сразу для двух машин. ...
Это токо для COM-file-ов может быть правда. Потому что спекки и ПЦ разные совсем по обьему памяти и по схеме управления памятью. Так что если создать исходник скажем под DOS16 (EXE с многими сегментами кода и данных) то запихать его на спекки если и можно будет то только РУКАМИ, кропотливо перелопачивая (т.е. никакого автоматизма переноса тут достичь будет нельзя).
Но идея полезная тем что ПРОЩЕ моделировать будущую спековскую прогу позабыв на время об памяти и скорости.
Oleg N. Cher
16.12.2014, 01:55
На самом деле, такое "извращение" дает один универсальный текст сразу для двух машин. Ну и голова начинает работать в расширенном диапазоне.Жаль только, что всего для двух. И видок у алгоритмов будет - через месяц без поллитры самому не разобраться. Низкоуровневое варение в общем подмножестве кодов процессоров, которые ныне считаются устаревшими. Таргетов всего два, притом никому не нужных, кроме десятка энтузиастов. Эмулятор, чтобы это посмотреть. Результаты, с которыми потом ничего нельзя вразумительного сделать на других архитектурах. Игру, написанную таким способом, можно уже сейчас списывать.
Эх, помню как мы с AlCo переписывались, и он резко осудил мои попытки "скрестить ZX и ПЦ". А ведь прав. В итоге это желание трансформировалось в хотение вообще скрестить всё со всем. Ну и иметь наглядный вид алгоритмов, удобный для дальнейшей модификации.
Низкоуровневый кодинг гораздо интереснее настольных головоломок. Закодировав сложную вещь, чувствуешь себя на высоте. Это развлечение может увлечь на много лет. Но при более зрелом размышлении приходит поиск более универсальных путей. Например, я начинал порт Дурака на Дельфи, Java и Си. Потом, когда увлёкся Обероном и понял подходы, сложившиеся в этой парадигме, понял также, что несколько языков мне не понадобится, хватит и одного, компактного и универсального, ведь маленький язык проще транслировать в другие языки побольше, притом автоматически, не ручками. И тогда разработка упирается в библиотеки и интерфейсы, а вот эти вопросы уже поинтереснее попыток утиснуть свои идеи в коды устаревших процессоров.
Поскольку переписка с AlCo (времён COLOSS'а) не личного характера, уверен, он не будет возражать если я её опубликую. Тем более, она подходит к обсуждаемой теме. Тогда я думал примерно в том же стиле, что Vovoi.
Переписка с AlCo на тему "Каким должен быть язык программирования для Спека".
Shadow Maker
17.12.2014, 13:36
По просьбе топикстартера тему открыл. Пишем только про Трамплин, на около-темы - в соседнюю тему про скрещивания.
В общем дела на данный момент такие:
Трамплин в общем-то работает.
Из себя он представляет просто набор макросов и головной блок (main.asm).
Этому main.asm нужна программа пользователя (её имя должно быть w.asm - это можно исправить по желанию)
Ещё в пакете древняя как шина спектрума оболочка.
На то время она была стандартна (для языков программирования), это было очень круто, но сейчас способна вызвать только жалость и отвращение.
Вся беда компилится обычным тасмом и линкуется банальнейшим тлинком.
Я потратил пару дней на то чтоб разобратся что там (в майне.асм этом) и как дальше жить.
Для себя сделал удобный редактор (на базе alkepad, ну чтоб сразу написал прогу, ф5 нажал и всё запустилось)
Если надо - могу поделится, но чтоб юзать его нужно будет каждому под свою тачку чуток подстроить (пути подкорректить)
Сделал так-же файл хелпа (во вложении), но он хоть и представляет из себя контент авторской статьи, но всё-таки не полный.
Дело в том что в трамлине на данный момент чуток поболее функций-команд, но описания на них нет.
Если что - займусь, но в общем-то можно и так разобратся.
В общем пишите братцы, надо-ли кому это дело?
Хочет ли кто начать кодить под письку?
Подскажу, научу, поделюсь.
Сам правда далеко не дока, но что знаю - конечно тихарить не буду.
Давайте учится вместе, щас уже нету никакого инфоркома чтоб за нами штанишки подтягивать, всё сами :)
Повторюсь (с пояснениями): Трамплин это не эмуляция спека! Это просто набор макросов с помощью которых zx-кодер может в общем-то без запар начать осваивать pc-кодинг.
Для облегчения сделано так, что можно использовать привычные спек-мнемоники (автор правда считает что лучше сразу писать под pc-стандарт, но вот беда: на пц нет стандата! каждый компилятор (masm, tasm, fasm) считает только свой синтаксис правильным, а остальное тупо выплёвывает с укоризненым Error!
Так что трамплин в этом плане хорошо помогает.
---------- Post added at 10:43 ---------- Previous post was at 10:19 ----------
Вообще, чтоб работать с "Трамплином" нехило-бы уметь какой-нибудь ассемблер.
Ну тоесть low-lewel программить.
Тот-же спек-асм подойдёт (он достаточно примитивен что не вызвать инфаркт сразу, и достаточно продвинут чтоб плюясь не выбросить стремительно).
В общем-то 16-ти битные приложения можно писать и просто так (ну в блокноте текст, потом его тамсу, потом линковщику. или сразу ml.exe - только синтаксис подправить)
Ну а чтоб не парится - можно трамплином.
Цимес в том чтоб не заморачиватся с разделами, сегментами и прочей хренью - ведь никто не собирается разрабатывать ОС или там Half-Life 3 или что-нибудь столь-же гигантское?
Это можно бы в принципе, вот только мне страшно представить сколько лет уйдёт у одного человека для претворения в жизнь таких гигантских замашек.
Ну а для мелочёвки (ну сопоставимой с zx-играми) возможностей трамплина как раз хватит.
В добрый путь, други! :)
Shadow Maker
18.12.2014, 10:53
Ну вот покажешь сначала чего сам смог добиться - оценим. А так пока смысла я лично для себя не вижу. Если под спек - сразу под него и писать, если под ПЦ - аналогично.
Ну вот покажешь сначала чего сам смог добиться - оценим. А так пока смысла я лично для себя не вижу. Если под спек - сразу под него и писать, если под ПЦ - аналогично.
Шад, браза!
Я ведь тебя ни к чему не агитирую!
От тебя как от крутотени - только модераторство пожалуйста проследи.
Огради от троллей да и спасибо.
А мы, лопухи-начинающие просто тут мыслями поделимся.
Если хочешь поглядеть - то вот пожалуйста, во вложении файл.
(компилить сорц не получится без библиотек, сорри. но если что - они есть во олеговском вложении, т.е. в теме присутствуют. почисть тему если можно, ещё раз прошу)
И кстати!
Любые процедуры в легко пишутся самому
(ну вот как я печать точки запихал, да линии.
и таблички заюзал:)
на эту мысль олегнчер натолкнул когда показал мне свой головоломный код, ну я дурак известный, сделал всё несколько проще, куда мне там до тру-программеров, да простит меня славамеднолапый)
---------- Post added at 12:40 ---------- Previous post was at 11:31 ----------
Про вложения - вижу кто-то глядел.
Просьба - расскажите как работает?
(может я чего упустил?
клавиши курсора должны рулить)
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot