Search
Write a publication
Pull to refresh
42
0.1

Pascal, Assembler (в основном). Схемотехника.

Send message

Не думаю что вообще стоит так часто выпускать релизы, особенно, если они не несут критических исправлений.

Это уже больше похоже что на пользователях тестирование производят.

я не умею писать плохой код, потому что я не умею писать код вовсе? )))

Исследования ещё прошлого века показали, что подобные исследования, в большинстве случаев, просто "придуманы" и практически не являются реальными.

В Готику не играл, но Морровинд хорошо заполнен, даже на краях карты можно немало всего встретить.Ну а живой мир встретится везде, где бы ты ни был.

Зельда, к сожаленью, после ТЕС3, вызывает уныние.
В начале это было интересно и завлекательно, но потом мир оказался пуст (тут уже писали, что можно часами бегать по миру и ни кого не встретить) и с ним мало можно взаимодействовать.
Для многих, кто не играл в подобные игры - это может быть много взаимодействия, но попробуйте другие игры, более старые, и вы поймёте как вы ошибались.

Да, и вот вам пример как "просто" делается процессор.

facepalm

всё это студенты проходят в ВУЗе и в последствии это вопросов не вызывает.

это пишет мне человек, который принимает мои работы у своих студентов (образно выражаясь), или ты в самом деле решил, что все студенты делают всё сами? )))

почему?

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

Выполнение инструкций - это только часть процессора. Другая, не менее важная часть - это именно взаимодействие с внешними/внутренними устройствами. При несогласованной передаче данных, устройство может не работать.

я смотрю с позиции преподавателя, который научил массу ДЕТЕЙ программированию.

С этого надо было начинать.

И парсер бинарного потока, коим и является эмулятор 6502 - это просто один огромный switch/case (или большой набор if/else).

В момент прерывания весь ваш парсер "ломается" и ему приходится выполнять дополнительные действия для перестройки программы на другой процесс. Это сохранение состояние процессора на момент прерывания и восстановление данных после прерывания.

Заметьте, прерывания - это не инструкции! Но по приходу прерывания, так же выполняются инструкции.

Обработка приходящих сигналов и отправка сигналов по необходимости. Приходящие сигналы обрабатываются самим процессором выставляя согласно пришедших сигналов определённые данные, обычно в самом процессоре (обычно это определённые флаги).

Теперь про свитч или условия.

Так лучше не делать! Это можно делать в процессорах, в которых малое количество инструкций, но когда инструкций в процессоре очень много, свитч (или условия) только ухудшит читаемость кода.

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

Нет. Я указываю, что на изучение информации, на реализацию полученной информации, на тестирование кода и его дальнейшую правку уходит время.

В данной дискуссии вы тратите и моё и своё время. Вместо того чтоб заниматься дальнейшей реализацией кода, обдумыванием её реализации или изучения материала, я трачу время на дискуссию. В которой ни вы не переубедите меня, потому что вы не понимаете о чём я пишу. Ни я не переубежу вас, потому что вы решили что новичок уже всё знает и умеет. И забыли как вы проходили этот путь, решив в конечном итоге, что он простой.

И заметьте, я не говорил что он трудный! Я сказал сразу, что он труден для тех, кто ступает на него. И трудозатратный по времени.

Другой человек вполне может с этими проблемами не столкнуться вовсе.

Да, с трудностями можно не столкнуться.

Первый вариант я уже писал, это просто взять готовый эмулятор и повторить то, что в нём сделано.
Второй вариант - ни чего не делать.

При варианте когда делаешь с нуля и сам - с трудностями всегда столкнёшься.

Перефразируя ваши откровения - только когда человек что-то изучит ему станет легче работать в этой области.

Как практик, могу сказать по другому. Только когда что-то сделает и "из под его руки" выйдет конечный результат, который он получил сам, то только тогда ему будет легче работать в этой области.

Потому что этого результата он добился сам! И, если в этом ему помогло образование и информация которую он изучил, то это только плюс этому человеку. Он применил свои теоретические знания для реализации конечного продукта.

Не поймите меня неправильно, но я больше практик. Но с теорией стараюсь дружить, потому что в теории много информации, но в теории нет информации о практике. И когда человек начинает практиковаться, он не знает как применить полученную теорию к данной практике.

И сейчас, извиняюсь, я общаюсь с теоретиком, а не с практиком!

Реализуйте эмулятор, который вы хотели реализовать, и посмотрите правы вы были или нет.

вы в ВУЗе обучались?

обучался. Но я бросил учёбу.

Просто ваши откровения тянут на открытия которые делают школьники в 7-8 классе.

Это базовые знания, которыми вы не пользуетесь. А я продолжаю ими пользоваться. База - она всегда останется базой!

Вы несомненно можете кинуть страйк на меня в ТП Хабра

бегу и падаю, поднимаюсь и снова бегу...

мне больше заняться нечем? )))

это моё оценочное суждение

я так же могу ошибаться в вас! Мы друг друга практически не знаем. И вполне возможно просто недопоняли друг друга.

и это логично, так как это эмуляция конечного оборудования.

отвечу только на это. Потому что явное непонимание происходящего.

Я произвёл эмуляцию самого процессора, а не конечного оборудования! И, этот процессор должен точно выполнять инструкции заданное время. Потому что помимо этого, он производит ожидание в определённых ситуациях, так как производится передача данных.

В других процессорах этого может не быть, но могут быть другие проблемы.

Вы смотрите со своей точки зрения, а не с точки большинства. Большинству именно сложно будет реализовать даже процессор. Банально из-за непонимания происходящего.

И время останется всегда важным фактором в любой ситуации. Именно время надо потратить на изучение, реализацию, тестирование. На изучение больше всего. И! При изучении информации будет очень много подводных камней, которые не расписаны, расписаны, но не известно где, расписаны, но не правильно и прочее.

Только после хотя бы первой самостоятельной реализации процессора, человеку становится проще реализовывать другие процессоры. И вот тогда сложность падает очень сильно. Человек понимает что делает, знает что искать, знает многие подводные камни.

факт того что в какой-то умной книжке регистры описаны как часть памяти абсолютно ничем нам не поможет в написании эмулятора. вот вообще никак.

ну вот я применил эту информацию в своём эмуляторе и добавил промежуточные регистры для того чтоб было легче вычислять конечные значения. Я знал эту информацию и применил на своё усмотрение.

есть такая штука у людей, называется "фигуральное выражение"

Извиняюсь, не обратил внимания на кавычки!

Объясню по п.1 - почему же это не сложно?

Хорошо, я поясню почему это сложно, особенно новичку и особенно с нуля. Если человек не писал эмулятор, то всё кажется достаточно простым, но когда начинаешь писать эмулятор, то первая сложность - это время. Тратится очень много времени как на изучение информации, так и на её реализации в коде. Вторая сложность - это отладка кода инструкций. На это тоже уходит время и даже при небольшом количестве инструкций, спокойно можно поймать неправильное выполнение определённой инструкции. А чужие тесты мы не всегда можем применить, для проверки работоспособности. Третья сложность - это время выполнения инструкций (и не только). Мы должны учитывать время, на которое ушло выполнение инструкции, для того чтоб процессор правильно работал. При неправильном вычислении времени, инструкция может выполнится в другом временно интервале.

По сути можно расписывать ещё много всего. Допустим на Nes я не мог использовать тесты когда сделал процессор и не мог узнать правильно ли я сделал его, ведь PPU ещё не был готов. А все тесты выводят информацию на PPU. Возможность отладки было только запуская ещё один эмулятор и отслеживая параллельно их действия. Это не сложно, но времени теряется очень много.

А время - это как раз и есть основная сложность. ))) Особенно новичку, особенно с нуля.

Это вы прочитаете в спецификации в ЦПУ, к "памяти" и "регистрам" это не относится.

это как раз и есть внутренние теневые регистры. Читаем здесь и здесь.

как пишется "за 20 минут" эмулятор

только сбор информации занимает намного больше времени, чем двадцать минут, а само видео почти 40 минут, при том что многие участки ускорены и предоставлены пользователю в конечном варианте.

Поэтому в контексте эмулятора разговор о регистрах как о ячейках памяти вообще не имеет смысла.

С одной стороны да, не имеет смысла. С другой стороны такие вещи лучше знать. Оно не критично, но когда знаешь схемотехнику и программирование, проще понимать что и как надо сделать. Допустим когда регистров много, их можно реализовать как блок памяти и обращаться напрямую к каждой ячейке. Так же надо знать, что в процессоре кроме основных регистров есть внутренние для передачи данных и для ускорения работы с данными и вычислениями.

Нюансов много, я и писал в статье, что просто невозможно всю информацию затронуть. Если расписать как сделать простейший эмулятор, то можно книжку маленькую сделать, страниц на 200 и наверняка что-нибудь упустишь. )))

Регистр - это ячейка памяти для временного хранения информации и работы с ней (статью по сути надо дополнять подобными ссылками, где ты был когда я писал статью?).

Да, это не такая память как мы привыкли её видеть, но всё же память и это надо понимать. )))

А по эмуляции, даже процессоры из 80-х не так просто эмулировать, даже приставку Nes. Кто возьмётся сразу за неё, не имея опыта, вероятнее всего и забросит. Вот и написал статью, чтоб либо удержать человека на его пути, либо показать что это не его путь.

простой пример. Я собираю проект под Android. Я настроил уже всё для сборки проекта, остаётся только указать ресурсы загружаемые, если они меняются/добавляются.
Для сборки под Android у меня готов Makefile который выполнит полную сборку проекта под все архитектуры, которые мне нужны.

Абсолютно то же самое происходит и для сборки проектов под необходимые платформы на Linux. Один раз прописываем всё необходимое для сборки, дальше сборка идёт по умолчанию.

И не важно уже становится, меняется код или нет.

А вот настраивать кросс-сборку это в Linux дело техники. Где уже точно так же уже всё подготовлено для установки, где чуть ли не новичка тыкают в библиотеки, которые нужно установить.

Потому и получается, что сборка проектов дешевле. Даже настройка зачастую дешевле.

А настройка окружения - дороже. Потому что выбирать приходится самому (или можно забить и использовать то, что предоставляют).

разработка то как раз дешевле. Дороже выбор.
потому те кто давно сидит на Linux поняли одну важную вещь (для себя), не важно какой дистрибутив, важно как ты его настроишь под себя.

точнее люди на заводах не сами работали? Заводы в стране появились, потому что их из-за рубежа привезли? Люди сами появились из-за рубежа, потому что на месте страны была пустая территория ни кем не заселённая. Потому что люди не знали как выжить в этих землях и всё надо было вести из-за рубежа.

Вы когда что-то пишите, почитайте сами себя. Как большая страна могла не делать большую часть сама? Особенно когда со всех сторон "нацелены копья" в её сторону.

А ещё, хорошо бы взять пример с западом в последние 30-40 лет. Развитие. Неужели вы думаете что за это время был прогресс и запад сделал что-то новое? VR - думаете недавно появился, в СССР уже было стереокино. Но "бум" почему-то прокатился через несколько десятков лет. Многие технологии позаимствованы именно из СССР, по причине, что в СССР они были доступны и свободны. И их с каждым годом было всё больше и больше. Я думаю в западных странах лежат коллекции журналов, где люди выкладывали свои идеи и эти идеи сейчас "воплощают в жизнь", точнее зарабатывают на них, выдавая как за что-то новое.

ну, если с таким подходом подходить, то ни одна страна в мире ни чего своего не создала, потому что они это "подсмотрели" в другой стране.

я вот только глянул краем глаза и сразу вижу что вы перевираете

ГАЗ

31 мая 1929 года ВСНХ СССР и американская фирма Ford Motor Company заключили соглашение о технической помощи по организации и налаживанию массового производства легковых и грузовых автомобилей.

Научитесь уже полную информацию предоставлять, а не огрызки её.

Учитывая что позже, США ни как не влияла на данное производство.

1
23 ...

Information

Rating
101-st
Location
Россия
Registered
Activity

Specialization

Game Developer, Application Developer
Middle
Pascal
Lazarus
Assembler
Android development
Linux
MAC
QEMU
Game Development
Circuitry
Electronics Development