Войти
ФлеймФорумЖелезо

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

Страницы: 135 36 37 3845 Следующая »
#525
(Правка: 10:33) 10:06, 2 фев. 2019

Кстати, насчёт гейминга...  советский ответ NES  был таким, - http://www.emuverse.ru/wiki/ТИА-МЦ-1  , тоже на i8080 (не как NES, а как многие другие советские ПК), но только в компоновке аркадного игрового автомата. В формфакторе консоли оно наверное космических денег стоило бы и размером с чемодан.


#526
10:27, 2 фев. 2019

0iStalker
физика в совковом бильярде просто зашкаливает)

#527
10:30, 2 фев. 2019

=A=L=X=
> того что можно было и как выдавить из спикера компьютеров IBM-PC:
Драйвер на РС спикер под винду был раньше, любой звук ШИМом выводился, можно было даже мр3 слушать)

#528
(Правка: 10:36) 10:35, 2 фев. 2019

Tonal
> Драйвер на РС спикер под винду был раньше,

Винду?
Винда появилась только через 20 лет от обозначаемых событий. О каком "раньше" идёт речь?

P.S.

Если сместить ударение со слова "раньше" на "вообще", то тода да, соглашусь.

#529
17:44, 2 фев. 2019

Каково это — создавать игру для Game Boy в 2017 году (Перевод)
Один и тот же  процессор (видоизменённый Z80 или 8080) у GameBoy  и в GameBoy Color (4, 8Мгц) а также как сопроцессор для GameBoy Advance.

P.S. Пишем эмулятор Gameboy

#530
4:54, 3 фев. 2019

KPG
> Один и тот же процессор (видоизменённый Z80 или 8080)

Я его подробно рассматривал тут: https://gamedev.ru/flame/forum/?id=226622&page=21#m302
Забавный зверь.

...это сочетание процессоров Zilog Z80 и Intel 8080...

(из статьи) - только это НЕ сочетание.
По сути это Z80 из которого выкинули большую часть Z80, так же многое из наследия 8080 и еще и модифицировали некоторое поведение как из 8080 так и из Z80 + добавили некоторые новые совершенно функции.
Мутант крайней прикольности.

#531
8:07, 3 фев. 2019

Просто повторю еще раз, ибо, имхо, незаслуженно оно попало на предыдущую страницу:


#532
(Правка: 15:30) 15:22, 11 фев. 2019

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

ZX Spectrum


PC

#533
(Правка: 17:42) 17:39, 13 фев. 2019

Наткнулся тут на упоминание компьютера BBC Micro 1981 года выпуска и удивила одна его мощная черта.
Первые версии его были реализованы на MOS 6502 работавшем на 2 МГц. ОЗУ от 16 до 32 Кб (версии A и B соответственно). ПЗУ - 32 Кб, причём они лежали в верхней части адресного пространства и нижние 16 Кб из них могли быть перемаплены, например, на картриджи расширения, которые можно было вставлять.
И вот верхние 16 Кб ПЗУ содержали ОС "Acorn MOS", где было много полезных базовых функций, а встроенные 16 Кб нижнего ПЗУ содержали по привычной для того времени схеме интерпретатор BASIC - собственно "BBC Micro Basic".
И вот он был весьма забавным зверем для своего времени и платформы.
Большинство других популярных 8-биток либо имели один из многочисленных, но очень похожих вариантов Microsoft Basic (как, например, Apple II или Commodore 64), либо что-то кастомное, но в сильной степени заимствующее основные черты Microsoft Basic (как в ZX Spectrum).
Это были всё классические бейсики 1.x, как я еще их называю "неструктурированные бейсики".
Программирование на них во многом напоминало программирование на ассемблере процессоров как раз типа MOS 6502.

По сравнению с современностью ярко выраженные черты такого программирования это:
а) отсутствие локальных переменных
б) подпрограммы можно вызывать оператором GOSUB и можно из них возвращаться оператором RETURN, но нет (а), поэтому параметры передаются в глобальных переменных и ими же возвращаются (кроме того, в отличие от ассемблера, они даже не поименованы, а просто указывается номер строки программы куда происходит переход)
в) из инструкций передачи управления только IF/THEN (чаще всего без ELSE), FOR/NEXT и GOTO. Важно заметить, что многострочность поддерживалась только в FOR. Оператор IF же обрывался на конце строки, поэтому чтобы не плодить сверхдлинную лапшу из операторов в одной строке разделенных двоеточием GOTO множились без конца.
г) определение функций оператором DEF FN по сути было только способом сокращать использование часто используемых формул в выражениях, ибо могли задавать только одно выражение с параметрами и опять таки в одну строку, без операторов.

Все эти особенности очень сильно подрывали удобство программирования и поэтому Бейсик в BBC Micro был поистине передовым для своего времени и платформы.

Во первых - он поддерживал создание полноценных процедур с параметрами оператором DEF PROC. Причём у процедур были и имена (всегда должны начинаться на 'PROC') и параметры и они могли быть многострочными (завершались оператором ENDPROC). То же самое касалось и функций определяемых привычными DEF FN.
Однако с этим была связана одна забавная особенность, видимо экономия на спичках - если однострочные процедуры или функции можно было размещать в любом месте программы, то многострочные страдали немного от одного упрощения - встретив DEF PROC в начале или середине программы интерпретатор бейсика автоматически отбрасывал только эту самую строку с DEF FN и ни разу не пытался пропускать следующие строки до встречи ENDPROC - то есть просто начинал выполнять следующие строки многострочных процедур или функций как основную программу. Это скорее всего означало сбой. Поэтому многострочные процедуры следовало всегда размещать в последних строках программы. В процедурах можно было даже делать локальные переменные оператором LOCAL! При этом для совместимости с MS-like диалектами поддерживались конечно и GOSUB со всей их неприглядностью.

Во вторых - он поддерживал самый настоящий встроенный ассемблер! Это уже почти за гранью, но написав символ [ интерпретатор переходил в режим компиляции ассемблера 6502 (что заканчивалось при встрече символа ] ) и начинал компилить код, который потом можно было вызывать или функцией совместимой с USR или оператором CALL.
Забавно то куда происходила компиляция и как происходила интеграция с таким асмокодом.
Во первых - помимо произвольного количества вещественных или строковых переменных бейсик BBC Micro содержал жёстко прошитые целочисленные переменные с однобуквенными именами от A% до Z% (знак % в конце как раз означал целочисленность). Во первых - они были заметно быстрее по сравнению с вещественными переменными без префиксов. Лежали по фиксированным адресам и даже не стирались при запуске программы начисто оператором RUN. Во вторых - часть из них в некоторых ситуациях начинала играть особую роль.
Так при встрече [ из переменной P% брался адрес в который сейчас надо компилить последующий асмокод (аналог инструкции ORG в асмах вообще).
Кроме того при вызове асмокода через CALL в 8-битные регистры A, X и Y процессора MOS 6502 записывались нижние байты из переменных A%, X% и Y%.
Забавно как именно выбирался адрес для P% куда компилить код.
У оператора аллокации массивов DIM A(size) была особая форма - DIM A size (без круглых скобок).
Она приводила к тому, что в свободной памяти резервировалось size байт, а в переменную A записывался адрес начала этого куска байт. То есть самый настоящий malloc!
Нужно было еще вычислять минимально необходимый размер этой области для куска асмокода, увы вручную, но сама аллокация и запись нужного значения в P% перед асмокодом было уже вещью тривиальной.
Хотя можно было и просто писать по фиксированному адресу, ограничив область бейсика, как это тоже было принято в тех компьютерах.

В общем, довольно забавные и весьма себе расширенные возможности для 8-битного васика.

#534
9:37, 14 фев. 2019

Из обсуждения текста выше в мессенджере:

> А select case появился в qbasic, и это было охрененно )
> Ёпт, как мы с этим жили?
> Процедуры без параметров: мля!!!
> Ткнуть бы в это современных мажоров, которые жалуются что в 5-й джаве хреново писать, потому что лямбд нет

#535
(Правка: 10:28) 10:27, 14 фев. 2019

=A=L=X=
> Крутой обзор и практика (!) того что можно было и как выдавить из спикера
> компьютеров IBM-PC

Меня в свое время поразила эта игра:

+ Показать

Может чисто технологически это проще чем у чувака, т.е. трекерный звук против видимо оцифрованной готовой записи, но результат - несравненный. Когда я первый раз услышал настоящий голос из PC спикера, моя челюсть пробила пол.

ЗЫ: А, про нее уже у Сталкера в видосе есть, не заметил..

#536
11:20, 14 фев. 2019

jaguard
> Когда я первый раз услышал настоящий голос из PC спикера, моя челюсть пробила пол.

Я слышал однобитовые самплы и на спектруме и на денди, поэтому на PC уже было как данность.
Очень важна еще инерция спикера или колонки - за счёт неё однобитовый звук можно сильно обогащать, чем там пользуются тоже.

#537
21:42, 26 фев. 2019

#538
(Правка: 22:28) 20:51, 2 мар. 2019

В очередной раз копал инфу по чиптюнам, нарыл вот это. Оказывается клоностроение спектрумов, с расширениями, это не только в странах (бывшего)СССР практиковалось http://speccy.info/Sam_Coupé;  тут звуковой чип изначально 6 канальный и стерео.

А вот тут можно скачать эмуляторы/послушать - https://velesoft.speccy.cz/saa1099-cz.htm https://zxart.ee/eng/music/top-100/sam-coupe/

зы.
А вот формат  файлов-модулей чёт нигде нагуглить не могу, печалька. Проигрывается ZXTunes'ом, который доступен в исходниках, правда на С++, не на Си

ззы.
Вот ещё руководство по программированию для этого "Семёна Купэ"  http://www.podboy.demon.co.uk/coupe/pdfs/coupe.pdf

зззы.
А самое забавное, что на отечественный клон ATM-Turbo2+, походу, портировали софт  именно с этого "Семёна",  ибо наличие там и там вот этой игры, с упоминанием EGA графики, намекает - https://www.worldofsam.org/products/prince-persia

#539
(Правка: 15:04) 14:00, 3 мар. 2019
+ Фото Ностальгия

P.S.: Некоторыe машины у отца на работе совсем недавно разобрали… :-(
Страницы: 135 36 37 3845 Следующая »
ФлеймФорумЖелезо