Флейм
GameDev.ru / Флейм / Форум / Блеск и нищета 8/16-битных консолей и ПК (16 стр)

Блеск и нищета 8/16-битных консолей и ПК (16 стр)

Страницы: 115 16 17 1831 Следующая »
=A=L=X=Постоялецwww21 мар. 20189:42#225
monobogdan
> Значит есть и отдельная область для фонов?

nametable это и есть содержимое фона. а какие картинки закреплены за тайлами - да, в отдельной области находится конечно.
Тут получается, что у аркадного автомата Pacman карта тайлов мало того что нелинейна, еще и меняет порядок вертикального или горизонтального расположения в памяти.

Правка: 21 мар. 2018 9:42

monobogdanПостоялецwww21 мар. 20189:44#226
=A=L=X=
А что если я захочу сделать 3 слоя одновременно? Хаки типа чередования кадров, в одном кадре один спрайт выше, в другом ниже?

Правка: 21 мар. 2018 9:44

=A=L=X=Постоялецwww21 мар. 20189:47#227
monobogdan
> А что если я захочу сделать 3 слоя одновременно?

Ну так то я это тут писал здесь: https://gamedev.ru/flame/forum/?id=226622&page=6#m81
Но в немного более опрятном виде я еще это выложил вот тут:
https://retrocoder.d3.ru/vblank-i-hblank-na-primere-famicom-nes-dendi-1541309/
https://retrocoder.d3.ru/imitatsiia-dvukh-zadnikh-fonov-v-famicom… endi-1546035/
(читать по порядку)

0iStalkerМодераторwww26 мар. 201823:27#228
Кто там хотел в игры с CGA графонием в composite mode поиграть?  Вот тут чуваки забацали  полусофтовый эмулятор IBM PC  на китайском ESP8266 с видеовыводом  https://www.open-electronics.org/esp8266-pc-xt-emulator-with-cga-video-output/
=A=L=X=Постоялецwww2 апр. 201811:48#229
Натыкаюсь иногда на забавные взаимоотношения с дисковыми накопителями у 8-битных ПК.

Так, например, получивший популярность в РФ ZX Spectrum с самых первых моделей имел в ПЗУ с бейсиком (в ПК той эпохи бейсик зачастую исполнял роль ОС) такие команды работы с дисководом как CAT, FORMAT, ERASE, MOVE - но так как никаких дисководов на момент выхода у спектрума еще не было, то попытка использовать эти команды могла только вывести ошибку "Invalid Stream".
Чтобы ввести их в строй потребовался трюк. Некоторое время спустя Sinclair выпускает модуль расширения - ZX Interface 1, к которому мог подключаться внешний накопитель ZX Microdrive (не диск, но более быстрый, чем кассета). Чтобы посмотреть каталог содержимого первого Microdrive можно было ввести команду CAT 1. При этом код в ПЗУ бейсика, вшитого в спектрум, прыгал на адрес инициации ошибки, ZX Interface 1 это событие перехватывал и подменял нужные 8 Кб ПЗУ бейсика на своё "теневое", где команда вызвавшая "ошибку" уже анализировалась на предмет работы с микродрайвом и если это действительно было так - выполнялась команда микродрайва и ошибка отвергалась. Так как ошибку вызывали только вышеперечисленные команды, то чтобы загружать или сохранять данные на микродрайв стандартными командами SAVE и LOAD использовался синтаксис LOAD *"m";1;"имя_программы" - где уже начиная со звёздочки всё написанное было одной сплошной ошибкой для встроенного бейсика.

Однако сегодня с утра удивил незнакомый мне в живую Commodore 64. Дело в том, что в нём в аналогичном ПЗУ бейсика вообще не было команд работающих с дисками или чем-то подобным, поэтому вопрос встал еще более остро.
При этом, в архитектуру порта ввода-вывода (куда потом подключался дисковод) была зашита следующая логика: можно было открыть на нём поток общения с устройством с неким номером по некоему каналу (оба номера - числа от 1 до 15) и послать или прочитать байты. Стандартное ПЗУ бейсика усвоило эту концепцию в качестве "каналов ввода-вывода" - эта концепция знакома и бейсику ZX Spectrum, видимо распространённая была идея. Например канал #1 был канал сохранения/загрузки данных с магнитофона. Каналы же 8-15 отводились как раз под дисководы.
Так вот - чтобы посмотреть содержимое первого дисковода за неимением команды CAT как спектруме, предлагалось сделать следующее:
1. Загрузить программу BASIC командой LOAD "$", 8 - то есть из канала 8 (соответствует первому дисководу) загрузить файл с именем $ как программу бейсика.
2. Вывести программу бейсика на экран типовой командой LIST
То есть когда дисковод видел, что из него пытаются загрузить файл с именем & он подсовывал вместо этого файла такие данные, которые для ПК выглядели как листинг невалидной программы на бейсике в котором номера строк (в бейсиках того поколения строки кода обязательно были пронумерованы) соответствовали размеру файлов в секторах, а сами строки содержали имена файлов и служебную информацию!
Таким образом, чтобы посмотреть штатным способом файлы на диске приходилось уничтожать текущую программу в памяти бейсика! :)
Дальше - больше, так как и иных каких то команд в бейсике (а больше ничего у пользователя и не было при включении компьютера) по работе с дисководом не было, то все команды DOS передавались в него командами бейсика следующего вида:

OPEN 1,8,15,"R:old=new" : CLOSE 1
Это называлось "дать команду DOS" - то есть мы открывали в бейсике канал ввода-вывода номер 1 к устройству номер 8 (первый дисковод) к его каналу 15 (канал для команд DOS). В качестве имени файла, который бы мы хотели якобы считать в канал 15 даётся просто команда DOS - R от Rename, то есть переименование файла с именем old в файл с именем new. А так как канал открыли - его тут же надо было закрыть командой CLOSE.
На деле еще можно было открыть канал ввода-вывода надолго и скормить ему несколько разных команд DOS через оператор PRINT#, но это в сущности то же самое. Даже вводя прямую команду в immediate-строку ввода интерпретатора надо было набирать весь этот ужас.
Таким образом DOS в Commodore 64 был софтом хранимым в дисководе, а вовсе не в самом компьютере - и общение с ним происходило крайне "специфичным" для пользователя способом, в силу не очень продуманной изначально архитектуры.

Правка: 2 апр. 2018 18:44

innuendoПостоялецwww2 апр. 201813:11#230
=A=L=X=
> Так, например, получивший популярность в РФ ZX Spectrum с самых первых моделей
> имел в ПЗУ с бейсиком (в ПК той эпохи бейсик зачастую исполнял роль ОС) такие
> команды работы с дисководом как CAT, FORMAT, ERASE, MOVE - но так как никаких
> дисководов на момент выхода у спектрума еще не было, то попытка использовать
> эти команды могла только вывести ошибку "Invalid Stream".
> Чтобы ввести их в строй потребовался трюк. Некоторое время спустя Sinclair
> выпускает модуль расширения - ZX Interface 1, к которому мог подключаться
> внешний накопитель ZX Microdrive (не диск, но более быстрый, чем кассета).
> Чтобы посмотреть каталог содержимого первого Microdrive можно было ввести
> команду CAT 1. При этом код в ПЗУ бейсика, вшитого в спектрум, прыгал на адрес
> инициации ошибки, ZX

настальжи :)

ZeebaEataПостоялецwww2 апр. 201816:49#231
=A=L=X=, большое спасибо за как всегда интересный экскурс в интересные особенности железа! Добавлю, что с флоппи-дисководами у Commodore вообще вышло много конфузов, в частности, супердорогой дисковод 1541 (размером и ценой больше самогО компьютера и имеющий на борту процессор 6502) из-за хардварной ошибки в одном из регистров, обслуживающих интерфейс с компьютером, работал в 5 раз медленнее, чем было предусмотрено его схемой - в последний момент перед началом производства глючную железку "зашунтировали" софтварной эмуляцией. В результате 1541 победил сразу в четырех номинациях - на размер, стоимость, сложность и медлительность.

Правка: 2 апр. 2018 16:51

=A=L=X=Постоялецwww2 апр. 201818:12#232
innuendo
> настальжи :)

Это да. А я ведь помню как тыкался еще методом проб и ошибок в эти CAT/FORMAT пока еще с документацией был полный напряг, и понять не мог долго - да чего им надо то, что ни введи - всё одна и та же ошибка. :)

ZeebaEata

Спасибо за поддержку.
Да, про то, что дисковод получился медленно-дорогой на вики целый раздел написан в статье о нём.

innuendoПостоялецwww2 апр. 201818:29#233
=A=L=X=
> Это да
эх, молодость,  где мои 13 лет :)
innuendoПостоялецwww2 апр. 201819:17#234
=A=L=X=
> Так, например, получивший популярность в РФ ZX Spectrum с самых первых моделей
> имел в ПЗУ с бейсиком (в ПК той эпохи бейсик зачастую исполнял роль ОС) такие
> команды работы с дисководом как

ты как бы не прав, это были потоки, а как мапились к железке это дело десятое ... TR-DOS помню вообще через хак была


сделай мне приятное, расскажи про magic button!!!!!

Правка: 2 апр. 2018 19:17

=A=L=X=Постоялецwww2 апр. 201819:23#235
innuendo
> ты как бы не прав, это были потоки, а как мапились к железке это дело десятое

Всмысле? Команды CAT/MOVE/FORMAT/ERASE просто не работали в ванильном спектруме, а потоки же уже были, хотя довольно куцые, подлинная мощь у потоков появлялась как раз с микродрайвом.
P.S.
Кстати с час назад еще чуток почитал по истории микродрайва - забавно, но на момент выхода спектрума то что потом стало микродрайвом по факту было анонсировано именно как диск. Концепция потом уже сменилась на кольцо ленты.

innuendoПостоялецwww2 апр. 201819:37#236
=A=L=X=
> Кстати с час назад еще чуток почитал по истории микродрайва - забавно, но на
> момент выхода спектрума то что потом стало микродрайвом по факту было
> анонсировано именно как диск. Концепция потом уже сменилась на кольцо ленты.

вот и я про что

давай, жги про magic button

innuendoПостоялецwww3 апр. 20180:35#237
http://speccy.info/Magic_(%D0%BA%D0%BD%D0%BE%D0%BF%D0%BA%D0%B0)
0iStalkerМодераторwww3 апр. 20187:41#238
innuendo
Если, перед тем, как нажать CTRL+C в адресной строке браузера - ввести туда пробел первым символом, то скопипастится ссылка здорового человека, а не ссылка курильщика, как у тебя
DexusУчастникwww3 апр. 20188:50#239
0iStalker
А я в тэг URL такую порнуху заворачиваю. Форум не умеет отлавливать такие ссылки:(
Страницы: 115 16 17 1831 Следующая »

/ Форум / Флейм / Железо

2001—2018 © GameDev.ru — Разработка игр