Вы можете смеяться, но некоторые из них не плохо поднялись и выросли во вполне состоятельных и уважаемых людей. Я даже знаю одного такого местного депутата. ;)
Купил, но не написал ни одной программы на нем, так как программирования по 8 часов в день на работе хватало с лихвой. А собирался стать миллионером с помощью него. Не вышло)
Но были и такие, кто смог стать миллионером. Только не на написании программи, а на барыжничестве оными. ;) Правда лафа продлилась не долго.
Помню, возле каждого магазина радиотоваров обитала группа товарищей с дипломатами набитыми кассетам и дискетами различного ПО, от Радио-86РК до IBM PC.
Мне как-то приходилось разбираться с V.90 и V.92, эти протоколы обмена не между двумя модемами, а между модемом абонента и специальным оборудованием включенным в цифровую телефонную сеть по ISDN PRI (E1). То есть провайдерская сторона уже полностью цифровая. Наверное многие помнят характерный звук "бом-бом" в конце хендшейка при связи на V.92, но кто знает что это такое ? ;-)
В статье одна сплошная вода и ода "Модулю". Где технические подробности NM6408 ? Где описание архитектуры и примеры кода ? Чтобы понять что NM6408 это круто, его надо пощупать. А так как пощупать собственными руками достаточно сложно, то хотелось бы прочитать как это делают другие.
Каждый год оооочень хочется отказаться от одежды, потому что это всегда огромный риск затягивания производства
Футболка от Хабра - это знак признания! Моя позапрошлогодняя уже поизносилась изрядно, но было клёво надевать её на мероприятия - соврешенно незнакомые люди подходили знакомиться, затевалась беседа и т.д. Это очень круто!
PS: Меняю накопленные баллы на новую хабра-футболку. :)
Кстати, не было попыток программировать на нём на ассемблере
Я очень хотел добраться до машины, но в то время никакой информации не было на сей счёт. Сейчас в сети уже всё есть, но девайса нет (у него потекли батарейки и испортили плату). Как уже позже выяснилось, там внутри микросхема Н1806ВМ2 которая представляла собой КМОП вариант К1801ВМ2. Считай - конкурент БК. :) Любили в СССР систему команд PDP-11.
Действительно "SALLY 6502C" и "MOS 6502C" это разные микросхемы, хотя я всегда считал из взаимозаменяемыми.
Также пишут что в Apple II ставили MOS 6502, в то время как MOS 6502C это "углубленная и расширенная" версия 6502, в том числе с повышенной производительностью. Вобщем, хрен его знает.
То, что вы описываете, в контексте Apple II - это как пользоваться часами, которые часто перескакивают на полчаса вперёд, и не заметить этого. Весь Apple II целиком синхронизирован потоком инструкций 6502.
Эта фича с параллельной загрузкой инструкций не изменяет время исполнения кода динамически - одна и та же последовательность инструкций всегда даст одно и то же время исполнения. Поэтому достаточно один раз подогнать тайминги в критических участках и всё. Не вижу причин по которым у Вас все должно рассыпаться. :)
SALLY это брендированный для Atari вариант MOS 6502C. Отличие 6502С от 6502 только в том, что в нём добавили ногу HALT для остановки процессора со стороны периферии (ANTIC как раз дергает эту ногу).
что процессор Atari использовал конвейеризацию команд. Но не 6502.
Это фича самого 6502, а не SALLY - что есть только маркировка на корпусе.
Apple II с процессором 6502 построен по другим архитектурным принципам, чем Atari, и там всё обрушилось бы при малейшей асинхронности работы процессора. Там банально биты на диске кодируются продолжительностью машинных команд, не говоря о звуках и прочем.
С чего бы ? Фиксированная (не изменяемая) последовательность инструкций всегда исполняется за одинаковое время. Вы не путайте с out-of-order на современных процессорах, где время исполнения предсказать невозможно. :)
Остановить видеоконтроллер нельзя, так как именно видеоконтроллер обновляет динамическую память. Точнее, если остановить видеоконтроллер, то просто пропадёт содержимое памяти.
Можно. Да, содержимое памяти пропадает, но далеко не сразу, у Вас есть целых 4 мс. Этой фичей пользуются.
Последовательность инструкций, например, TAY TAX занимает 4 такта, то есть 4 микросекунды, что очень легко проверить
Проверить это очень даже не легко! Для этого требуется голая ЭВМ со статической памятью, осциллограф, программатор и куча свободного времени.
Но! Лет 15 назад я гонял на своём Atari 130XE различные тесты и эксперименты (были планы сделать игру). Я экспериментировал с GTIA и ANTIC, с его блокировкой, захватом луча, с недокументированными инструкциями и прочими "демомейкерскими" фишками. В том числе я гонял тесты производительности на длинных циклах из регистровых команд с блокированным ANTIC. На 1.7МГц он выдавал мне более 1000 тыс оп/сек. К сожаланию, видео для Вас я тогда не записал. ;)
А люди, которых вы цитируете, не понимают, о чём пишут.
Очень может быть, но создатели эмуляторов почему-то напрягались и принялись реализовывать всю эту кухню. ;)
Описание работы 6502 по тактам можно прочесть, например, в издававшейся на русском языке книге У. Морера "Язык ассемблера для персонального компьютера Эпл".
Вы уверены в том, что автор этого труда должен был знать о таких подробностях ? Про недокументированные инструкции 6502 он тоже описал в этой книге ?
Описание системы команд 6502 с разбивкой по тактам можно прочесть в руководстве от производителя, PDF есть в свободном доступе. Но там Вы не найдете ни слово про внутренее устройство процессора.
Многие детали работы 6502 начали вскрываться только в 2000-е годы когда народ научился декапить микросхемы и разбирать их потранзисторно. Почитайте Кена Ширриффа, помоему я почерпнул это у него.
Да уж, обмен софтом в то время был целым ритуальным действом! У нас в клубе были такие личности которые программированием мало интересовались, зато постоянно тоскали откуда-то новый софт - знакомства, связи... Сейчас наверное уважаемые люди. ;-)
На Apple II две последовательные инструкции могут исполнятся сколько угодно долго, но только не 4 такта, так как обновление экрана и необходимость обновления динамической памяти постоянно тормозят процессор. :-)
Но если абстрагироваться от конкретной машины (или на некоторое время остановить видеоконтроллер на вашем Apple II), то MOS 6502 работал следующим образом: если в последний такт исполнения инструкции не требовалось обращаться к памяти, то он начинал операцию fetch для следующей инструкции вместе с исполнением текущей. Таким образом экономился один так. Иными словами две последовательные 2-х тактовые инструкции (например: TXY и TAX) выполнялись за 3 такта, а не за 4. С этим столкнулись создатели различных эмуляторов 15-20 лет назад когда потребовалось реализовать точную потактовую эмуляцию. Оказалось что это нифига не просто. :)
Я не могу найти для Вас хорошую статью с описанием внутренностей MOS 6502 из-за того что поисковики совсем слились и подсовывают мне ответ невросетей вместо ссылки на статьи. Но вот пара цитат со старых форумов:
The original MOS Technology 6502 microprocessor had limited pipelining, where the fetch of the next opcode could overlap with the final part of the previous instruction, but it was not fully pipelined like more advanced CPUs. This design allowed for some efficiency in instruction processing without the complexities of a complete execution pipeline. https://6502.org/forum/viewtopic.php?t=4923
The internal logic runs at the same speed as the external clock rate. It featured a simple two-stage pipeline; on each cycle, the processor fetches one byte from memory and processes another. https://en.wikipedia.org/wiki/MOS_Technology_6502
Each cpu cycle is broken down into two phases: an operation then a memory access, in that order. If the opcode does not have to access memory on its last cycle, it will pre-fetch the next opcode. This makes some instructions appear to be one cycle shorter than they really are. https://forums.nesdev.org/viewtopic.php?t=6307
У MOS 6502 были зачатки конвейерной обработки: по переднему фронту такта инструкция считывалась из памяти (fetch) во внутренний регистр, по спаду - исполнялась (execute). Таким образом в процессоре на исполнении одновременно находились две инструкции. Если потоком идут двухтактовые инструкции, то они будут загружаться каждый такт, что теоритически могло выдвать IPC = 2. Этот факт упоминает в Википедии, но без разьяснений. Помоему хорощее описание MOS 6502 было в блоге у Кена Шерриффа. Я бы дал ссылку, но к сожалению, Гуглом пользоваться стало соврешенно не возможно, как и найти информацию в сети. :(
Вы можете смеяться, но некоторые из них не плохо поднялись и выросли во вполне состоятельных и уважаемых людей. Я даже знаю одного такого местного депутата. ;)
Но были и такие, кто смог стать миллионером. Только не на написании программи, а на барыжничестве оными. ;) Правда лафа продлилась не долго.
Помню, возле каждого магазина радиотоваров обитала группа товарищей с дипломатами набитыми кассетам и дискетами различного ПО, от Радио-86РК до IBM PC.
Хорошая статья, хотя и поверхностная.
Мне как-то приходилось разбираться с V.90 и V.92, эти протоколы обмена не между двумя модемами, а между модемом абонента и специальным оборудованием включенным в цифровую телефонную сеть по ISDN PRI (E1). То есть провайдерская сторона уже полностью цифровая. Наверное многие помнят характерный звук "бом-бом" в конце хендшейка при связи на V.92, но кто знает что это такое ? ;-)
Ура, хабра-футболка прибыла!
Я на фоне приза
Это ямбический телеграфный ключ, тут целы два пэддла комбинируя состояния которых можно добиться очень бытрой передачи символов. ;)
Это просто замечательно. Только таких вот за затравочных статей на Хабре полно, а продолжения не следует. Ждем-с. ;)
В статье одна сплошная вода и ода "Модулю". Где технические подробности NM6408 ? Где описание архитектуры и примеры кода ? Чтобы понять что NM6408 это круто, его надо пощупать. А так как пощупать собственными руками достаточно сложно, то хотелось бы прочитать как это делают другие.
О как ? Спасибо!
Футболка от Хабра - это знак признания! Моя позапрошлогодняя уже поизносилась изрядно, но было клёво надевать её на мероприятия - соврешенно незнакомые люди подходили знакомиться, затевалась беседа и т.д. Это очень круто!
PS: Меняю накопленные баллы на новую хабра-футболку. :)
Поздравляю! Футболка зачётная, хочу такую же. :)
Мне тоже приехал приз за статью: 3D принтер Creality K2 + CMS, книга Харрисов, и измерительный прибор. Чуть позже постараюсь написать хороший обзор.
В моей рубрике спонсором выступала компания YADRO, за что им огромное спасибо!
PS: Хабровчане, пишите статьи! Хорошие, технические, без LLM. И воздастся вам по заслугам! :)
"дай, дай, за-ку-рить".
Я очень хотел добраться до машины, но в то время никакой информации не было на сей счёт. Сейчас в сети уже всё есть, но девайса нет (у него потекли батарейки и испортили плату). Как уже позже выяснилось, там внутри микросхема Н1806ВМ2 которая представляла собой КМОП вариант К1801ВМ2. Считай - конкурент БК. :) Любили в СССР систему команд PDP-11.
Действительно "SALLY 6502C" и "MOS 6502C" это разные микросхемы, хотя я всегда считал из взаимозаменяемыми.
Также пишут что в Apple II ставили MOS 6502, в то время как MOS 6502C это "углубленная и расширенная" версия 6502, в том числе с повышенной производительностью. Вобщем, хрен его знает.
Эта фича с параллельной загрузкой инструкций не изменяет время исполнения кода динамически - одна и та же последовательность инструкций всегда даст одно и то же время исполнения. Поэтому достаточно один раз подогнать тайминги в критических участках и всё. Не вижу причин по которым у Вас все должно рассыпаться. :)
SALLY это брендированный для Atari вариант MOS 6502C. Отличие 6502С от 6502 только в том, что в нём добавили ногу HALT для остановки процессора со стороны периферии (ANTIC как раз дергает эту ногу).
Это фича самого 6502, а не SALLY - что есть только маркировка на корпусе.
С чего бы ? Фиксированная (не изменяемая) последовательность инструкций всегда исполняется за одинаковое время. Вы не путайте с out-of-order на современных процессорах, где время исполнения предсказать невозможно. :)
Можно. Да, содержимое памяти пропадает, но далеко не сразу, у Вас есть целых 4 мс. Этой фичей пользуются.
Проверить это очень даже не легко! Для этого требуется голая ЭВМ со статической памятью, осциллограф, программатор и куча свободного времени.
Но! Лет 15 назад я гонял на своём Atari 130XE различные тесты и эксперименты (были планы сделать игру). Я экспериментировал с GTIA и ANTIC, с его блокировкой, захватом луча, с недокументированными инструкциями и прочими "демомейкерскими" фишками. В том числе я гонял тесты производительности на длинных циклах из регистровых команд с блокированным ANTIC. На 1.7МГц он выдавал мне более 1000 тыс оп/сек. К сожаланию, видео для Вас я тогда не записал. ;)
Очень может быть, но создатели эмуляторов почему-то напрягались и принялись реализовывать всю эту кухню. ;)
Вы уверены в том, что автор этого труда должен был знать о таких подробностях ? Про недокументированные инструкции 6502 он тоже описал в этой книге ?
Описание системы команд 6502 с разбивкой по тактам можно прочесть в руководстве от производителя, PDF есть в свободном доступе. Но там Вы не найдете ни слово про внутренее устройство процессора.
Многие детали работы 6502 начали вскрываться только в 2000-е годы когда народ научился декапить микросхемы и разбирать их потранзисторно. Почитайте Кена Ширриффа, помоему я почерпнул это у него.
Мне бабушка на ДР в 7-м классе подарила МК-85 с настощим Бейсиком! Я его сносил до дыр, ВУЗ с ним закончил.
Да уж, обмен софтом в то время был целым ритуальным действом! У нас в клубе были такие личности которые программированием мало интересовались, зато постоянно тоскали откуда-то новый софт - знакомства, связи... Сейчас наверное уважаемые люди. ;-)
Тут у меня опечатка: IPC = 1 конечно же.
На Apple II две последовательные инструкции могут исполнятся сколько угодно долго, но только не 4 такта, так как обновление экрана и необходимость обновления динамической памяти постоянно тормозят процессор. :-)
Но если абстрагироваться от конкретной машины (или на некоторое время остановить видеоконтроллер на вашем Apple II), то MOS 6502 работал следующим образом: если в последний такт исполнения инструкции не требовалось обращаться к памяти, то он начинал операцию fetch для следующей инструкции вместе с исполнением текущей. Таким образом экономился один так. Иными словами две последовательные 2-х тактовые инструкции (например: TXY и TAX) выполнялись за 3 такта, а не за 4. С этим столкнулись создатели различных эмуляторов 15-20 лет назад когда потребовалось реализовать точную потактовую эмуляцию. Оказалось что это нифига не просто. :)
Я не могу найти для Вас хорошую статью с описанием внутренностей MOS 6502 из-за того что поисковики совсем слились и подсовывают мне ответ невросетей вместо ссылки на статьи. Но вот пара цитат со старых форумов:
У MOS 6502 были зачатки конвейерной обработки: по переднему фронту такта инструкция считывалась из памяти (fetch) во внутренний регистр, по спаду - исполнялась (execute). Таким образом в процессоре на исполнении одновременно находились две инструкции. Если потоком идут двухтактовые инструкции, то они будут загружаться каждый такт, что теоритически могло выдвать IPC = 2. Этот факт упоминает в Википедии, но без разьяснений. Помоему хорощее описание MOS 6502 было в блоге у Кена Шерриффа. Я бы дал ссылку, но к сожалению, Гуглом пользоваться стало соврешенно не возможно, как и найти информацию в сети. :(