Супер!
Только не обязательно фуллскрин.
Я не совсем так предполагал. Просто думал, что будет банальная закраска без скроллов из центра. Но и такой вариант смотрится неплохо, вроде бы.
Вид для печати
Быстро пробежавшись поиском по форуму и заодно решив вспомнить программирование, изваял такой этюд. (Если не подходит по теме, перенесите.)
Интерпретатор языка Brainfuck на Бейсике.
Скрытый текст
10 DIM p$(1,255)
15 DIM c(255)
20 LET p$(1)="++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.e"
30 LET j=1: LET i=1
40 IF p$(1,i)=">" THEN LET j=j+1
50 IF p$(1,i)="<" THEN LET j=j-1
60 IF p$(1,i)="+" THEN LET c(j)=c(j)+1
70 IF p$(1,i)="-" THEN LET c(j)=c(j)-1
80 IF p$(1,i)="." THEN PRINT CHR$ c(j);
90 IF p$(1,i)="," THEN INPUT x$: LET c(j)= CODE x$
100 IF p$(1,i)<>"[" THEN GO TO 110
101 IF c(j)=0 THEN IF p$(1,i)<>"]" THEN LET i=i+1: GO TO 101
102 IF p$(1,i)="]" THEN LET i=i+1: GO TO 200
110 IF p$(1,i)<>"]" THEN GO TO 200
111 IF c(j)<>0 THEN IF p$(1,i)<>"[" THEN LET i=i-1: GO TO 111
200 IF p$(1,i)<>"e" THEN LET i=i+1: GO TO 40
[свернуть]
Можно в полной мере насладиться отсутствием проверок входящих данных, границ диапазонов, громоздкостью конструкций и прочими прелестями *****кода начинающего программиста.
Из-за отсутствия наличия поддержки вложенных циклов работают только простейшие программы.
Кроме изначальной Hello World! еще работает преобразование строчных букв в верхний регистр
",----------[----------------------.,----------]".(В конце поставить букву e как окончание кода).
Про LDIR
Имеем такой код:
в HL - Начало буфера с от такой картинкой,Код:;-----------------------------------
push hl
ld de,16384
ld bc,6144
ldir
pop hl
;-----------------------------------
https://s.micp.ru/O3Sg3.jpg
и МЫ ее с максимально возможной скоростью (?) переносим в экран.
Я правильно понимаю, что во фрейм не уложиЦЦа ну никак??
в аттаЧе сам тест, начатЬ заново - кнопка <5>, кнопки 1-4 жать не надо :)
И да ,сам то вопрос - это максимум, что можно на стандартном Спектруме?
ну так этот тест как раз "по-другомуу", для DMA.
https://www.youtube.com/watch?v=dfvYvuKklkY
на 10 сек включаю DMA, скорость заметно вырастает, красная полоска на бордюре - как раз процент "утилизации".
Забавная штука.
ps - эм. а малой кровью нельзя ли сделать, чтобы правая часть не портилась?))
Для теста - то - " и таааааак сойдееет..." (с), но как то неаккуратненько, доктор (с)
upd: а, нее, все, третья реинкарнация мне уже нравиЦЦа.
Заменил видео.
Синий бордюр - обычный режим, Красный бордюр - с включенным ДМА
Upd2: Ыыыыыыыыыыы..
ZEsarUX_win-8.2 ( и ранее) - оказуеЦЦа поддерживает DMA!
Кнопки 1 и 4 - работают более правильно, хоть и не идеально, а 2 и 3 - чет тормозят.
Но это уже Аве Цезаря надо спрашивать.
Так что можете заценить работу ДМА в эмуле.
И да, в Следующем есть то жи ДМА, но то жи свой собственный, "непохожий на других" :)
I did answer to your private message here, but now I did notice the zx-pk.ru site writes something about your inbox being full, so I'm not sure if the answer was delivered, let me know... (I hope it was, because I don't have copy of it, and it was quite long answer ... :D ).
Systems using original Zilog DMA chip (or similar interface, like zxnDMA) are a bit more difficult to set up than `ldir`, especially the first-time init, but they can be configured to do 2+2 T-state transfers, so 4T per byte beats easily even ZX pop+push trick for memory transfer (or unrolled `ldi` block) for any transfer longer than 20-30 bytes. (and once you know the state of DMA chip, you can shorten the init sequence a lot, for second+ transfer)
(too lazy to provide example, but my DMA tests for Zilog DMA and zxnDMA are public: https://github.com/MrKWatkins/ZXSpectrumNextTests
(look for Tests/Misc/ for two Zilog DMA tests, and Tests/Base/DMA/ for zxnDMA (ZX Next) test).
Спасибо, твои рассказы про различные DMA (железные - Z8410, Z84C10, и не очень - zxnDMA) - мне очень понравились. Для общего развития . У меня же еще одна реинкарнацийя, отличная от всех вышепоименованных :-)
Off
Соль в том, что к той реинкарнации, с которой имейю дело я - совершенно нет никакой документации. Ноль, нет , даже так - 0/0.[свернуть]Off
:v2_dizzy_botan:
За три года автор так и не удосужился хоть что-то описать, есть две с половиной программы, хорошо что в исходниках :) Так же написанные три года назад. Все. Любитесь как хотите. Желающих похоже не нашлось. на тот же Следующий вон тоже пара-тройка программ есть, но там видимо хоть ман-ы есть.
Вобщем у меня как всегда, что бы не делал - получается фигня на бордюре :))
https://s.micp.ru/Pkdv2.jpg
С бордюром при ДМА все гораздо веселее. Напоминаю, в стандартном Спеки условная минимальнайя "точка" 12 тактов, или 24 pix, в лучшем случае, как делаю я, или 16 тактов (32 pix), как делал Великий VNN.
Тут интереснее, вывод в порт ровно 4 такта, итого 8 pix, что в 3 раза интереснее. Результат - выше.
Это в режиме zx48, в режиме Пятногона потом поэксперементирую :)
Файл не прилагаю, ибо в том эмуле от Тцезаря если mem=>mem хоть как то работает, то mem=> I/O не работает почти никак, отлаживать невозможно подделки).
https://www.youtube.com/watch?v=Ga8jhR1siZc&feature=youtu.be
[свернуть]
А я всё сижу в печали, так как обделён программиздскими навыками.
Всё думу думаю, как бы совокупить компрессор и плавные переходы (скролл из-за краёв экрана).
Конечно можно забить на всё, сделать банальное слайдшоу, как это было в Myst. Но это некрасивое уродство. Спек должен превосходить Макинтоша/ДОСа.