PDA

Просмотр полной версии : Радиолюбительский компьютер "LEVEL"



Страницы : 1 2 [3]

Xrust
30.04.2020, 08:11
В ПЗУ минимальная программа LOADER. Остальное грузится с ROM диска или с магнитофона.
Лет 30 назад я бы сказал, что именно для радиолюбительского компьютера необходимо прошитое в ПЗУ ПО типа Спектрумовского бейсика. Но сейчас актуальнее было бы иметь продвинутую среду разработки для PC.

zx-kit
30.04.2020, 09:46
Нужен выбор. Неотключаемое ПЗУ с любой программой занимает адресное пространство. Все можно грузить с ROM- диска, выбрав в меню соответствующий пункт.

- - - Добавлено - - -

Для большей скорости загрузки можно использовать тумблер ROM-DISK / магнитофон. Тогда загрузка будет автоматическая после сброса.

- - - Добавлено - - -

Ещё лучше 4 тумблера. Тогда в двоичном коде можно настроить номер программы для загрузки.

zx-kit
01.05.2020, 07:33
Надо разработать домашний радиолюбительский компьютер уровня Радио-86РК, Специалист, Орион, Ленинград, ЮТ-88, БК, ПК8002 Эльф, Atari, Commodore 64 и т.п.

Нужно простое подключение к монитору. Я выбрал для радиолюбительского компьютера "R-STAR" развертку VGA 640*480@60Hz.

Сначала разработаем символьный режим. Символы будем загружать в память символов в формате 16*16 точек по 4 бита на точку. При выводе на монитор предусмотрим обрезку ширины и высоты символов до нужных значений:
640/16 = 40, 640/10 = 64, 640/8 = 80 символов в строке.

Экранная область будет размером 256*256 символов. На каждый символ по 16 бит. 8 бит = номер символа, 2 бита = номер банка, 6 бит = номер палитры. Номер символа в экранную область будем записывать из микропроцессора, а номер банка и палитры из соответствующих регистров.

С помощью палитры 4->15 бит будем выбирать цвет символа, фона, делать утолщение, тень, обводку, подчеркивание, инверсию символов.

Так как вся экранная область не влезет на экран монитора, надо будет указать номер строки и столбца левого верхнего символа, а также номер строки и столбца в точках этого символа.

To be continued...

Радио-86РК
01.05.2020, 12:47
Идеальный домашний радиолюбительский компьютер должен быть на Z80 без БИС типа ВВ55 с линейным экраном.Раньшe я думал иначе, но теперь - согласен: Всякие ВВ55 - на платах расширения.
По сравнию с советскими компьютерами у Спектрума был INT, BEEPER. Можно добавить русских кнопок. Для ускорения графики желательно два экрана по одному адресу.И сделать экран не по фиксированному адресу. Пусть тот же экран ZX проецируется с любого адреса. Цена вопроса - один регистр.
А геометрию экрана пусть определяет три двухпозиционные JP-перемычки, переставляя биты адреса: Для радиолюбителя нужен линейный экран.

Загрузка должна быть автоматическая после сброса. На каких ОС, мониторов , бейсиков, LOAD"NAME". Включил компьютер и он без вопросов и нажатия кнопок должен загрузить первую программу с магнитофона.Загрузчик - в теневом ПЗУ, активируемом отдельной, аварийной кнопкой Сброса.

ROM-DISK с часто используемыми программами.

У портов полная дешифрация младшего адреса. Никаких двухбайтовых адресов, упрощенной дешифрации или размещения портов в адресном пространстве.

В ПЗУ минимальная программа LOADER. Остальное грузится с ROM диска или с магнитофона.

ПЗУ отключаемое программно.Те же РУ5 - 64 Кб: Ничего не мешает загрузчиком писать в адреса 0000…3FFF любые данные, а потом защитить их от перезаписи.
Причём, тем же регистром ИР1 хранить режим защиты от записи:
???1 - регион 0000…0FFF (защита по A11)
??11 - регион 0000…1FFF (защита по A12)
?111 - регион 0000…3FFF (защита по A13)
1111 - регион 0000…7FFF (защита по A14)
Тем самым, маской «1011» можно защитить области «0000…0FFF», «1000…1FFF», «4000…4FFF», «5000…5FFF».

Адреса всех портов однобайтовые.Вопрос спорный…
Но можно на младший байт адреса повесить нормальный дешифратор, а старший байт использовать опционально.

Должен быть встроенный порт джойстика - курсор и 4 кнопки. Одной мало.Давно пора!
Делал уже джойстик от Денди к Спектруму, где через диоды «Start» нажимал одновременно «влево+вправо», а «Select» - «вверх+вниз». И отдельно два провода к клавише «Пробел».

Логика: «Pause» и «Select» используются довольно редко в геймплее. Инженеры NES допустили ошибку, выделив им отдельные биты. Можно было уже в первых приставках сделать кнопки «A», «B», «C» и «D», а «Select» и «Start» диодами повесить на крестовину, так как эти кнопки нажимаются, когда крестовина уже отпущена, а на крестовине зажать одновременно «вверх+вниз» или «влево+вправо» механически сложнее.
Скажу больше: На джойстике с рукояткой отклонить ручку в два взаимно исключающие направления - нереально. Вот там диодами можно добавить ещё две кнопки опций (смена оружия / пауза). Можно и три добавить, если «пауза» - это «вверх+вниз+влево+вправо».
Естественно, программа должна знать эти комбинации.

zx-kit
01.05.2020, 19:46
Если сделать символьный экран, то можно запустить монитор Радио-86РК или того компьютера, с которого его адаптировали.

Вспоминаю, что для вывода на экран надо было подготовить последовательность байтов типа 1B, 59, номер строки, номер позиции...

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

zx-kit
02.05.2020, 14:48
Для печати на символьном экране нужны следующие порты:

номер строки символов
номер колонки символов
номер банка символа
номер палитры символа
номер символа

Для упрощения печати строк при записи в порт номера символа автоматически записываются в память экрана текущие номер банка и номер палитры, а затем увеличивается номер колонки.

Настройки символьного экрана:

высота символа
ширина символа
начальная строка символов
начальная строка в символе
начальная колонка символов
начальная колонка в символе
младший байт цвета фона
старший байт цвета фона

zx-kit
04.05.2020, 05:09
Я решил увеличить максимальное количество возможных символов и цветов. В памяти символов будет по три байта на символ:

1 байт - номер палитры
1 байт - номер банка
1 байт - номер символа

zx-kit
07.05.2020, 23:41
Поздравляю всех с Днём Радио!

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

На первом курсе, пока были общеобразовательные предметы, я сам стал изучать цифровые микросхемы по журналу "Радио" в библиотеке техникума. Потом сам выписывал этот журнал. Интересного для меня там было несколько листов из всего журнала, но спасибо, что было.

Там прочитал цикл статей про радиолюбительский компьютер "Радио-86РК". Он, по сравнению с ZX Spectrum, конечно, имел скромные возможности, но это был первый компьютер, который я собрал.

В нем было много недостатков, связанных с устаревшим микропроцессором, решением сделать вывод на телевизор с помощью ПДП на труднодоставаемых в некоторых городах БИС ВГ75, экономия на дешифраторах, внесение портов в адресное пространство, экономия на портах для вывода звука, использование для подключения клавиатуры ИК55, сложный блок питания на три напряжения, низкая частота процессора и т.д.

Короче говоря, хорошего в схеме было мало, но оно было. Все равно, большое спасибо за компьютер "Радио-86РК" авторам и журналу "Радио". Конечно, в те времена лучше сделать было трудно.

Это был уже второй их компьютер в журнале "Радио". Было описание работы микропроцессора и всего компьютера. Потом были дампы системных программ, ROM-диск, цикл статей о модульном программировании на ассемблере. Все это помогло освоить микропроцессорную технику мне и многим радиолюбителям. Я до сих пор храню тот журнал со схемой. Также у меня осталась коричневая книжка по компьютеру, которую потом написали авторы.

Больше всего мне в "Радио-86РК" нравилось символьный экран на 64 символа в строке, клавиатура с русскими буквами и курсором, ПЗУ Монитор с стандартными точками входа, возможность загружать программы с ROM-диска.

Оказалось, что Монитор авторы не сами придумали, а взяли из иностранного журнала. А я то думал... Жалко, что развеялась ещё одна легенда. Зато универсальный Монитор позволял адаптировать готовые программы с других компьютеров. Это ускорило появление Бейсика, ассемблера и других программ для "Радио-86РК".

Это также позволило потом сделать другие компьютеры на основе этого Монитора с сохранением совместимости части программ. Точки входа можно было оставить стандартными, а сами подпрограммы в Мониторе можно было адаптировать под другое железо.

У меня появилась идея сделать к концу 2020 года свой радиолюбительский компьютер, аналогичный, а может быть и лучший, без старых недостатков. Хочу оставить символьный экран, подключить PS/2 клавиатуру с русскими буквами и доработать Монитор под новое железо. Тогда часть программ будет работать как на "Радио-86РК".

Знакогенератор сделать цветной загружаемый по 4 бита на точку и с палитрой на весь символ. Вывод сразу на монитор VGA. Потом посмотрим, что добавить ещё.

zx-kit
10.05.2020, 14:31
Если бы я тогда знал то, что знаю сейчас, я бы так спроектировал компьютер с графикой.

Два блока РУ5 по 8 штук или 4х4.
64К - основное ОЗУ.
64К - графическое ОЗУ.
Возможность отключения ПЗУ и экранов из адресного пространства.
Два переключаемых экрана с адреса 0 - теневой и отображаемый.
Разрешение статического экрана 256 * 256 точек.
Разрешение экрана с аппаратным скроллингом 240 * 240 точек.
Линейная адресация байтов.
По 4 бита на точку с независимой записью точек.
В теневой экран только запись по восемь точек текущим цветом с учётом прозрачного.
Палитра 4->15 бит на статике.

bigral
10.05.2020, 22:23
Если бы я тогда знал то, что знаю сейчас, я бы так спроектировал компьютер с графикой.

Два блока РУ5 по 8 штук или 4х4.
64К - основное ОЗУ.
64К - графическое ОЗУ.
Возможность отключения ПЗУ и экранов из адресного пространства.
Два переключаемых экрана с адреса 0 - теневой и отображаемый.
Разрешение статического экрана 256 * 256 точек.
Разрешение экрана с аппаратным скроллингом 240 * 240 точек.
Линейная адресация байтов.
По 4 бита на точку с независимой записью точек.
В теневой экран только запись по восемь точек текущим цветом с учётом прозрачного.
Палитра 4->15 бит на статике.

это и без тебя было сделанно - ibm pc xt 4.77mhz + egа, редкая тормозяка
для того чтоб такое работало нужно 16bit (68020 / i286) и 16mhz процессор

zx-kit
11.05.2020, 02:26
Давай разберём ещё раз способы ускорения:

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

Аппаратный скроллинг экономит время при движении фона в ходилках и леталках типа "River Raid" и "R-Type".

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

Линейная адресация байтов в экране и начало с адреса 0000 упрощает и ускоряет расчет адреса байта.

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

zx-kit
11.05.2020, 05:32
У нас символьный экран с высоким разрешением 640*480 и графический экран низкого разрешения 240*240 точек. Нельзя ли их выводить одновременно?

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

Xrust
11.05.2020, 10:28
Я бы предложил сделать ПДП с возможностью копирования блоков из основного ОЗУ в теневое или видео. Так можно освободить процессор от разных рутинных операций.

Радио-86РК
11.05.2020, 12:12
Можнo ли просто восемь пикселей окрашивать в любой цвет средствами аппаратной поддержки?
Так, в регистр заносится код цвета, а в виртуальный слой памяти пишется байт-маска пикселей, который нужно окрасить в этот цвет.
То есть, аппаратно памяти под маску нет, но при записи в неё аппаратно прокрашиваются до восьми пикселей…

zx-kit
11.05.2020, 13:36
Можнo ли просто восемь пикселей окрашивать в любой цвет средствами аппаратной поддержки?
Так, в регистр заносится код цвета, а в виртуальный слой памяти пишется байт-маска пикселей, который нужно окрасить в этот цвет.
То есть, аппаратно памяти под маску нет, но при записи в неё аппаратно прокрашиваются до восьми пикселей…

Так и задумано. В регистре COLOR1 текущий цвет. Записываемый байт показывает, какие точки нужно перекрасить в этот цвет. Сигнал записи подаётся на те микросхемы памяти, в каких битах единица.

Xrust
11.05.2020, 15:33
Так и задумано
Примерно так в Корвете реализовано.

LeoN65816
12.05.2020, 11:51
Так и задумано.Примерно так в Корвете реализовано.
Именно так. Это очень удобно для рисования точки, линии и закраски. Однако, для игровой графики и спрайтов это очень неудобно и медленно!

bigral
12.05.2020, 16:39
вот взял dosbox настроил в нем скорость при которой нормально работает digger, вышло 377 dosbox-тактов, потом написал прогу такую:


#include <stdio.h>

#define MAX_INDX 32767

char screen[MAX_INDX];

unsigned char read_scancode() {
unsigned char res;
_asm {
in al, 60h
mov res, al
in al, 61h
or al, 128
out 61h, al
xor al, 128
out 61h, al
}
return res;
}

int main(int argc, char** argv) {
int iter=1;
unsigned int pointer;
char keyPressed;
while (1) {
iter++;
pointer=0;
do {
screen[pointer]=0xff;
pointer++;
} while (pointer<(unsigned int)MAX_INDX);
printf("iteration:%d \r\n",iter);
keyPressed=read_scancode();
if (keyPressed==57) {
return 0;
}
}
}


так вот при этой скорости эта прога 155 раз в минуту успевает перерисовать буфер размером в 32768 байт, т.е. менее 3 раз в секунду, а надо раз в 10 больше (по минимуму), потому я и сказал что 4.77mhz для такого экрана это просто смех, нужна скорость 47mhz

в atari st был подобный экран, он на 68000 процессоре с 7mhz обеспечивал игры на скорости чуть быстрее синклера (ну ясно что доступ был там 16bit а не 8bit, и код был не borland c++ а писанный на асме)

как по мне так это тупиковая ветка развития, кому такое нравиться давно пишет игры и демы под i286+ega (vga)

zx-kit
13.05.2020, 00:19
Именно так. Это очень удобно для рисования точки, линии и закраски. Однако, для игровой графики и спрайтов это очень неудобно и медленно!

Почему?

Xrust
15.05.2020, 17:30
Почему?

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

bigral
15.05.2020, 18:33
Потому, что спрайты обычно разноцветные. Придется в несколько приемов рисовать.

никаких экстра приемов не потребуется, битпланы это не проблема а преимущество, в chunk режиме когда каждая точка кодируется несколькими битами внутри одного байта довольно тяжело сбросить у всех пикселей скажем второй бит, кроме того байт 8 бит и потому chunk режим может быть или 1 точка на байт или 2 или 4 или 8, если же режим 5 бит на точку или 3 то сделать его в chunk режиме невозможно, скорость работы с отдельными битпланами можно сделать такой же быстрой как и в chunk режиме если применить спец регистр который автоматом будет писаться в параллельные битпланы (еще и маску сразу накладывать если надо)

все это не новое, у ega и у amiga были битпланы а у cga и atari st были chunk-и, все давно проверенно

но проблема не в организации памяти экрана, а в скорости процессора, процессор не может загрузить пропускную способность 565ру5, потому что ему надо читать коды команд и выполнять их, и в результирующей проге каждая команда занимает много тактов... в результате большую часть времени видеопамять не загруженна и обновление экрана в 7..10 более медленное чем пропускная способность 565ру5

можно применить процессор 1818вм01... он типо биполярный и типа risc работает в разы быстрее чем z80, НО ВСЕРАВНО против тайлово спрайтового автомата такого как в ПК8002 это все полная лажа, так как спрайты ненужно стирать, ненужно тратить время проца на всякие маски и битовые операции, вообще огромное количество кода писать ненадо это приводит к экономии памяти

если же речь идет об цветности в 8, 16, 24bit на точку, то действует некое облегчение в том плане что исчезает по сути понятие "знакоместо" (всякие сдвиговые операции более ненужны), но и скорости надо болше, по сути vga режим 320x240x8 требует процессора 33mhz и круче, короче это не про самодельный retro компьютер никак

Lethargeek
15.05.2020, 19:34
все это не новое, у ega и у amiga были битпланы а у cga и atari st были chunk-и, все давно проверенно
в st тоже были битпланы, ключевая разница - способ доступа (ega/st - процессор, amiga - проц и блиттер) и ширина шд (ega - 32, st/amiga - 16)


но и скорости надо болше, по сути vga режим 320x240x8 требует процессора 33mhz и круче,
в x-режимах необязательно

zx-kit
16.05.2020, 22:51
Символы будут. А это уже тайловый фон.

- - - Добавлено - - -

640*480 будет не полный экран. Надо проектировать комп сразу под экран 960*540 (1920*1080 с удвоением точек).

Нужен аппаратный курсор в виде стрелки.

zx-kit
17.05.2020, 09:39
Слой спрайтов, возможность быстро его стирать и быстро рисовать спрайты дадут больше возможностей, чем ограниченное количество мерцающих спрайтов, как в MSX2 и его клоне ПК8002.

zx-kit
02.04.2022, 17:53
Символьный режим не особо нужен.
320*240 16 бит сделать проще, чем устранить клешинг в Спектруме.
Если сделать аппаратное копирование спрайтов, то можно экраны убрать из адресного пространства Z80.
Координату (0,0) лучше разместить в левом нижнем углу и рисовать спрайты снизу вверх.

zx-kit
03.04.2022, 07:57
НА МОЙ ВЗГЛЯД САМОДЕЛЬНЫЙ КОМПЬЮТЕР ДЛЯ ИГР ДОЛЖЕН БЫТЬ ТАКОЙ:

1. Подключение к монитору VGA 640*480 60 Гц.
2. Два переключаемых экрана 320 * 240 * 16 бит вне адресного пространства.
3. Координаты (0,0) по выбору в левом-верхнем или левом-нижнем углу.
4. Рисование спрайтов аппаратное по координатам с точностью до точки.
5. Аппаратный скроллинг экрана.
6. Процессор Z80 на частоте 6.25 МГц.
7. Память 1 Мбайт с менеджером WIN4 по 16 Кбайт в окне.
8. Программное отключение ПЗУ.


Конструкция компьютера должна быть модульная. Кросс-плата на 10 модулей.
Размер модуля 99.06*99.06 мм (кратно сетке 2.54 мм).

Модуль с портами клавиатуры, геймпада (курсор и 4 кнопки) и мышки.

Адреса портов должны быть восьмибитные с полной дешифрацией.

В ПЗУ минимальная программа LOADER. Никаких LOAD "" ENTER - нажал кнопку RESET - и компьютер должен загрузить программу с Ардуино.

Denn
03.04.2022, 10:44
1. Подключение к монитору VGA 640*480 60 Гц.


Такие устройства отображения не производятся уже очень давно, ныне существующие в около-нежизнеспособном состоянии.
Кмк, сегодня надо под HDMI проектировать..




7. Память 1 Мбайт с менеджером WIN4 по 16 Кбайт в окне.


Это всё замечательно. Самый главный вопрос: кто будет писать ПО, особенно с поддержкой диспетчеров памяти?
Кмк, на сегодня таких людей нет, причём даже теоретически((

zx-kit
03.04.2022, 11:05
К HDMI можно через адаптер подключать. А если написать драйвера экрана для ISDOS, CPM, MONITOR?
ПО. Тут замкнутый круг. Когда хочешь упростить себе написание ПО, то старое ПО уже не идет. А кто для тебя будет писать новое ПО?
Кто-то должен? Нельзя для себя новое ПО писать? Или собраться группой энтузиастов в будущем?

Denn
03.04.2022, 13:55
ПО. Тут замкнутый круг. Когда хочешь упростить себе написание ПО, то старое ПО уже не идет. А кто для тебя будет писать новое ПО?
Кто-то должен? Нельзя для себя новое ПО писать? Или собраться группой энтузиастов в будущем?

Тут дело даже не в умеет/хочет. Сегодня жизнь так устроена, что каждую секунду жизни нужно зарабатывать на выживание. Ни у кого из взрослых нет "лишних" 5..8 часов в день на кодинг "for fun".
Для написания чего-то более-менее серьёзного нужно "глубокое погружение", и далеко не единоразово. Без т.н. "монетизации" сегодня это просто нереально.
А платить за это никто не будет. Поэтому только мечтать. Ну или All by myself, как говорится.

ivagor
04.04.2022, 21:17
Такие устройства отображения не производятся уже очень давно, ныне существующие в около-нежизнеспособном состоянии
Посмотрел мониторы в одной из крупных сетей магазинов. Смотрел только в наличии в Уфе - 82 позиции со входом VGA (D-Sub). В московском магазине намного больше. Все они могут отобразить стандартный режим 640x480. Сегодня можно купить новый монитор с поддержкой режима VGA 640x480, не говоря уже об огромном количестве мониторов и телевизоров с vga на руках (и состояние далеко не около-нежизнеспособное, у меня в пределах досягаемости вполне рабочие 4 ТВ и 2 монитора с vga).

zx-kit
07.04.2022, 05:21
Новый компьютер надо проектировать на микросхемах логики K555. Чем выше разрешение режима графики и развертки монитора, тем выше частота сигналов. Поэтому 320*240 и 640*480.

andrews
07.04.2022, 08:51
Тут дело даже не в умеет/хочет. Сегодня жизнь так устроена, что каждую секунду жизни нужно зарабатывать на выживание
ну это кто на сделке или у военных/космических заказчиков работает, тогда действительно каждую минуту рабочую контролируют. В других случаях все определяют "курильщики", если таковые имеются среди ведущих разработчиков(специалисто� �). У нас в "Рина Ростра" и позже в "Мультикоме СПб" курили каждый час по 10 минут и за 9 часовой рабочий день набегало до 90 минут перекуров. За неделю 450 минут. Даже если 1/4 из этого времени отвести своим увлечениям, а остальное попить чаю и отвлечься от кодинга, то в месяц это 100 минут, а за 11 месяцев 1100 минут или 18 часов времени. Другое дело, что в одиночку это вряд ли даст ощутимый результат.

HardWareMan
07.04.2022, 11:15
...курили каждый час по 10 минут...
Раньше по КЗОТ были нормированы перерывы при работе за ЭВМ. При 8-часовой рабочей смене суммарное время перерывов составляет от 50 до 90 минут. 12-часовой рабочий день вынуждает установить перерывы суммарной продолжительностью от 80 до 140 минут. К примеру, если человек в течение 8-часового рабочего дня работает за компьютером 50% рабочего времени (то есть до 4 часов), то суммарные перерывы для отдыха от ПЭВМ должны составлять 70 минут. Т.е. курили у вас строго по СанПиНу. Другое дело вот что я нагуглил (https://glavkniga.ru/situations/s501685):
Перерывы при работе за компьютером
Предусматривает ли законодательство перерывы при работе за компьютером? И если да, то какова их периодичность и продолжительность? Поищем ответы на эти вопросы.

Трудовой кодекс: перерывы в течение рабочего дня

Трудовой кодекс говорит о следующих перерывах в работе в течение рабочего дня:

перерыв для отдыха и питания (так называемый обеденный перерыв) (ст. 108 ТК РФ). О нем мы рассказали отдельно;
специальные перерывы для обогревания и отдыха (ст. 109 ТК РФ);
специальные перерывы, обусловленные технологией и организацией производства и труда (ст. 109 ТК РФ). Виды этих работ и порядок предоставления перерывов устанавливаются правилами внутреннего трудового распорядка.

То есть ТК отдельно не регулирует вопрос специализированных перерывов в работе при выполнении своих обязанностей с использованием компьютера.

Регламентированные перерывы по СанПиН

В Законе «О санитарно-эпидемиологическом благополучии населения» прописано, что критерии безопасности или безвредности условий работ с источниками физических факторов воздействия на человека, в том числе предельно допустимые уровни воздействия, устанавливаются санитарными правилами (п. 2 ст. 27 Закона от 30.03.99 № 52-ФЗ). И действительно, до 01.01.2021 г. действовал СанПиН 2.2.2/2.4.1340-03, введенный Постановлением Главного государственного санитарного врача от 03.06.2003 № 118. Он предусматривал требования к организации работы за персональными электронно-вычислительными машинами. Посмотрим, какие это были требования.

Продолжительность перерывов при работе за компьютером

Так, СанПиН вводит понятие суммарного времени регламентированных перерывов, которое зависит от категории трудовой деятельности и уровня нагрузки за рабочую смену при работе с компьютером (п. 1.2 Приложения № 7 к СанПиН 2.2.2/2.4.1340-03). При 8-часовой рабочей смене суммарное время перерывов составляет от 50 до 90 минут. 12-часовой рабочий день вынуждает установить перерывы суммарной продолжительностью от 80 до 140 минут. К примеру, если человек в течение 8-часового рабочего дня работает за компьютером 50% рабочего времени (то есть до 4 часов), то суммарные перерывы для отдыха от ПЭВМ должны составлять 70 минут.

То есть необходимо чередовать работу с использованием компьютера и без него, делая небольшие перерывы для отдыха. Непосредственно время начала и продолжительность каждого перерыва для различных категорий работников прописывает сам работодатель с правилах внутреннего трудового распорядка. Находиться на рабочем месте во время таких перерывов необязательно (ст. 106, 107 ТК РФ).

При работе за компьютером ночью (с 22 до 6 часов) продолжительность регламентированных перерывов следует увеличить на 30% (п. 1.6 Приложения № 7 к СанПиН 2.2.2/2.4.1340-03).

Однако, как мы уже сказали выше, СанПиН утратил силу с 1 января 2021 г.

Инструкция по охране труда при работе за компьютером

Также время работы за компьютером регулировал такой документ, как Типовая инструкция по охране труда при работе на персональном компьютере (ТОИ Р-45-084-01, утв. Приказом Минсвязи РФ от 02.07.2001 N 162). В ней сказано, что время непрерывной работы за компьютером без регламентированного перерыва не может превышать 2 часов (п. 3.2 ТОИ Р-45-084-01). Однако и эта инструкция с 1 января 2021 г. утратила силу.

То есть с 2021 г. вопрос установления перерывов во время работы за компьютеров нормативно не урегулирован. Работодатель может самостоятельно установить порядок предоставления перерывов в работе за компьютером для отдыха в правилах внутреннего трудового распорядка. Важно помнить, что указанные перерывы включаются в рабочее время. То есть они не продлевают продолжительность рабочего дня сотрудника. Во время этих перерывов работник не должен выполнять другую работу. Перерыв предоставляется ему для отдыха (Письмо Минтруда от 14.06.2017 № 14-2/ООГ-4765).

Кроме того, важно помнить, что перерывы в работе для отдыха от компьютера нужно предоставлять отдельно от перерыва на обед (ст. 108, 109 ТК РФ).
Так что халявный отдых во имя здоровья отменён, работайте рабы, солнце ещё высоко!

andrews
07.04.2022, 11:47
Раньше по КЗОТ были нормированы перерывы при работе за ЭВМ
Я видел своими глазами как люди работали перед запуском их железяки на спутнике в Actel.ru. Там круглосуточно "чаи гоняли" посменно по 4 часа каждая смена люди с большими звездами на погонах, а в соседней комнате 3 программера пашут беспрерывно по 3 часа, затем перерыв 1 час, а в это время за занавеской на раскладушке один дрыхнет 6 часов. Затем его будят, а один из 3 чья очередь идет спать. И так по их словам продолжалось 2 недели! Оплата правда была тоже космической в районе $500 за сутки. По $7000 за эти две недели каждый заработали, а потом пару месяцев в отпуске были. Мне было тогда 42 года и я сказал себе "а ну его нафиг!" А в "Мультикоме СПб" платили в 2002 от $600 до $2000 в месяц программерам.

HardWareMan
07.04.2022, 18:21
Я видел своими глазами как люди работали перед запуском их железяки на спутнике в Actel.ru. Там круглосуточно "чаи гоняли" посменно по 4 часа каждая смена люди с большими звездами на погонах, а в соседней комнате 3 программера пашут беспрерывно по 3 часа, затем перерыв 1 час, а в это время за занавеской на раскладушке один дрыхнет 6 часов. Затем его будят, а один из 3 чья очередь идет спать. И так по их словам продолжалось 2 недели! Оплата правда была тоже космической в районе $500 за сутки. По $7000 за эти две недели каждый заработали, а потом пару месяцев в отпуске были. Мне было тогда 42 года и я сказал себе "а ну его нафиг!" А в "Мультикоме СПб" платили в 2002 от $600 до $2000 в месяц программерам.
Ну и причём тут это? Авралы и сверхурочные так же оговорены в КЗОТе, но нюансы всё же на совести работодателя.

Xrust
07.04.2022, 20:23
Как издевательски звучит слово "работодатель". Для тех, кто понимает.

Denn
07.04.2022, 20:43
Даже если 1/4 из этого времени отвести своим увлечениям, а остальное попить чаю и отвлечься от кодинга, то в месяц это 100 минут, а за 11 месяцев 1100 минут или 18 часов времени. Другое дело, что в одиночку это вряд ли даст ощутимый результат.

Я не умею как виндовс, мне нужно непрерывно 5..8 часов времени, без возможности, что меня отвлекут. Кодинг - это когда в "ОЗУ головного мозга" нужно держать оч много информации.

reddie
07.04.2022, 22:56
Кодинг - это когда в "ОЗУ головного мозга" нужно держать оч много информации.
Применительно к, скажем, Спектруму, кодинг - занятие довольно скучное и однообразное, если мы про ассемблер.
Куда продуктивней записывать идеи и все такое подобное по мере их рождения в какой-нибудь блокнотик или файлик.
А потом без лишнего напряга воплощать задуманное в коде, не мучаясь от недостатка креатива.

HardWareMan
08.04.2022, 07:25
Куда продуктивней записывать идеи и все такое подобное по мере их рождения в какой-нибудь блокнотик или файлик.
А потом без лишнего напряга воплощать задуманное в коде, не мучаясь от недостатка креатива.
А всё почему? А потому что нынешних погромистов не учат алгоритмам и тем более - составлению блок-схем. А это очень важный творческий момент, который позволяет потом очень эффективно по времени переложить созданный алгоритм на любой машинный язык.

andrews
08.04.2022, 10:24
А у меня никогда не получалось весь проект сразу думать. Предпочитаю мелкие куски сразу отлаживать ( пригодятся /не пригодятся не важно), а потом какую-то часть из них в дело пускать.

В моем литературном творчестве вещи крупнее новелл на полстраницы от этого писались которые месяцы, а некоторые и годы.

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

reddie
08.04.2022, 10:33
нынешних погромистов не учат алгоритмам и тем более - составлению блок-схем. А это очень важный творческий момент
Тоже верно, но если брать шире - кодер лишь пишет код, он не обязан думать о дизайне, играбельности, удобстве для пользователя и тому подобное.
Все идеи, как правило генерируют совсем другие люди, и потом ставят соответствующие задачи кодеру. Его дело - эффективная реализация задуманного.
Условно говоря, плотник не обязан уметь красить заборы, а повар - ремонтировать свою электроплиту. Времени уйдет масса, а толк сомнительный.
Да, встречаются уникумы, делающие все сами, но их немного. И в таком случае обычно что-нибудь да приносится в ущерб остальному.
Примеров среди нашей спектрумовской братии достаточно: в 90-х вышло море демок с высоким уровнем кода, но качественных игр - единицы.

andrews
08.04.2022, 13:03
При ограниченности бюджета мастеровой (или как бы сейчас сказали креативный )человек в России с древнейших времен становился "человеком-оркестром" и "сам себе на все руки мастером". Мой покойный дядька плотник с тремя классами образования лично выстроил три дома и массу подсобных построек. А еще он мог распиливать любые доски, готовить для обшивки домов "вагонку" и обшивать ею в "елочку". Сам делал оконные рамы, двери, лестницы, времянки, заливал фундаменты, выполнял кровельные работы, мог строить лодки и клал из кирпича печи, которые действительно неплохо топились и не дымили. Конечно не все эти работы он делал на отлично, но на "хорошо" точно.
Пытался он рассуждать и о медицине, и космосе. В годы ВОВ пешком протопал от Сталинграда до Бухареста, переправляясь и через большие реки и сотни речек поменьше. Ходил врукопашную с саперной лопаткой. Ориентировался без компаса в любом незнакомом лесу.

А что касается нашей братии - меньше надо было пить и тусоваться. Больше бы было тогда и прока!
В игре, и любой другой программе, имея исходники и инструментарий можно поменять в любой момент отдельные компоненты. Если бы вот только не пресловутое "авторское право". Сделать проект можно с никакой графикой и никаким саундтреком, а уж потом и то, и другое улучшить.

- - - Добавлено - - -


плотник не обязан уметь красить заборы
красить заборы могут даже Маша и медвежонок-панда :) Другое дело, что современные краски есть не вонючие и не ядовитые, а в СССР таких красок не было. То есть от тех красок болела голова и тошнило.

zx-kit
08.04.2022, 18:22
Для формирования развертки VGA для экрана 320*240 точек используем частоту 12 МГц. В строке будет 400 тактов. В кадре будет 525 строк. Потребуется 3 счетчика К555ИЕ10/18 (4 бита) по-горизонтали и 3 по-вертикали. Эти счетчики нужны для формирования строчных и гасящих импульсов VGA, а также импульсов загрузки смещения в счетчики скроллинга.

Для скроллинга экрана 320*240 нужно 3 счетчика по-горизонтали и 2 по-вертикали. Полный экран занимает область размером 512*256 точек, но видно только окно 320*240, положение которого задано в регистрах начала окна. Экран закольцован по-горизонтали и вертикали. После последней точки отображается нулевая.

zx-kit
10.04.2022, 09:12
Генератор тактовой на ЛН1 и кварце 12 МГц. Процессор на 6 МГц. Два экрана сделать на двух блоках статики с раздельными шинами адреса, данных и управления.

zx-kit
12.07.2022, 05:52
Когда-то давно я переделал игру ZOO от Специалиста на Радио-86РК. Графика заменялась на переключаемый шрифт с тайлами.
Сейчас можно сделать тайловый/символьный режим с регулируемой шириной тайлов до 16 точек.

Хочу сделать символьный режим 80/64/40 символов в строке с загружаемым знакогенератором по 4 бита на точку и разрешением VGA 640*480.
Для 80 символов в строке ширина 8 точек, для 64 символов в строке ширина 10 точек, для 40 символов в строке ширина 16 точек.

На точку 4 бита. На каждый тайл дополнительно байт с номером палитры. Заполнять автоматически значением из регистра текущей палитры. И добавить скроллинг с шагом 2 точки. Получится режим, с помощью которого можно рисовать фон или буквы текста. Всего 256 символов. Для реализации тайлового режима планируется использовать три микросхемы SRAM по 32 килобайта + две микросхемы на палитру.

Планируется для возможности запуска мониторов Радио-86РК, Орион-128, Специалист, IS-DOS, CPM на процессоре Z80.
Нужно выбрать кодировку шрифта, найти готовые свободные шрифты, выбрать кодировку PS2 клавиатуры для ввода в компьютер.
У кого какие соображения на этот счет - как сделать правильно и удобно?

zx-kit
12.07.2022, 19:03
Отображение символа через запись в порты: номер строки, номер столбца, номер палитры, номер символа.
Начало отображаемого окна через запись в порты: начальная строка, начальный столбец, начальная строка в символе, начальный столбец в символе.
Размер символа через запись в порты: первая отображаемая строка символа (0-12), первый отображаемый столбец символа (0-12).
Всего 128 строк и 256 столбцов символов. Размеры символов: 4, 6, 8, 10, 12, 14, 16 точек. В байте шрифта 2 точки по 4 бита. Палитра 8 бит.

zx-kit
14.07.2022, 08:35
Можно добавить FLASH 128 Кбайт для шрифтов. Возможно получится подключить модуль и к другим компьютерам для быстрого вывода текста на VGA монитор. Влезет четыре прошитых шрифта.

Желательно иметь возможность выделять слова жирным шрифтом. Для этого на экране надо отображать более 256 символов. Это можно сделать, если палитру символа уменьшить с 8 до 5 битов. 3 бита - номер шрифта, 5 битов - номер палитры. Если для загружаемых шрифтов поставить SRAM 128 Кбайт вместо 32, то загружаемых тоже можно сделать 4 шрифта.

zx-kit
07.08.2022, 07:58
Буфер символов размером 256 строк по 256 столбцов. Для ходилок-леталок дополнительные пропорции 512*128 и 128*512 символов. На мониторе отображать выбранное окно из буфера символов размером 640*480 точек. Это позволяет сделать скроллинг окна с шагом 2 точки.

Четыре шрифта прошить во FLASH 128 K для возможности вывода текста сразу после включения компьютера. Восемь загружаемых шрифтов для игр можно записать в SRAM 2*128 K. Это позволит использовать набор из 2048 тайлов.

На каждый символ дополнительно есть байт атрибута. В атрибуте 4 бита D3-D0 - номер шрифта, 4 бита D7-D4 - номер палитры.

zx-kit
08.08.2022, 06:05
Какое соотношение сторон буфера символов больше подходит для ходилок-леталок?
512*128 или 1024*64 при размере экрана 40*30 ? Достаточно по-горизонтали 12 экранов или лучше 25?

Или хватит только 256*256? Что упростит схему.

reddie
08.08.2022, 08:30
Какое соотношение сторон буфера символов больше подходит для ходилок-леталок?
512*128 или 1024*64 при размере экрана 40*30 ? Достаточно по-горизонтали 12 экранов или лучше 25?

В идеале - переключаемое, если позволит схемотехника.

zx-kit
08.08.2022, 08:35
Проще схема для 256*256. Но для скроллинга длинного уровня игры можно добавить еще две пропорции, добавив 7 микросхем. Например 1024*128 и 128*1024. Больше вариантов -сложнее схема. Надо выбирать.

Для длинного уровня номера строк или столбцов уже двухбайтовые будут...

zx-kit
29.08.2022, 18:50
Двухуровневые тайлы.
На точку 4 бита: 3 бита - номер цвета и 1 бит - уровень. В одном тайле можно разместить точки фона, например, стены, и объекта на переднем плане - ящика, столба, камня. Между двумя уровнями тайлов разместить два уровня графики. Также по одному уровню графики до и после уровней тайлов.

LEVELS:

0 - небо, горы
1 - стены, лес
2 - движущиеся объекты
4 - выстрелы
5 - ящики, столбы, камни
6 - индикаторы здоровья, энергии

1, 5 - точки символьного режима
0, 2, 4, 6 - точки графического режима

zx-kit
31.08.2022, 02:46
В основной памяти спрайт хранится по 2 точки в байте:
3 бита - номер цвета
1 бит - признак прозрачности
Для спрайтов нулевого уровня цвет 000 - прозрачный

При рисовании спрайта в графическом режиме выбрать нужный уровень и палитру.

Каждая точка в графическом режиме в видеокарте представляется одним байтом:
2 бита - номер уровня
3 бита - номер палитры
3 бита - номер цвета

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

У уровней 0 и 1 точка может быть одного из семи цветов плюс прозрачный. У высших уровней по восемь.

zx-kit
04.09.2022, 19:47
Уточнение расположения уровней.
LEVELS:

000 - небо, горы
001 - стены, лес
010 - движущиеся объекты, выстрелы
011 - ящики, столбы, камни
100, 110 - индикаторы здоровья, энергии

1, 3 - точки символьного режима
0, 2, 4, 6 - точки графического режима

У уровня 1 точка может быть одного из семи цветов плюс прозрачный. У остальных уровней по восемь цветов. У каждого уровня своя палитра на 8 цветов.

zx-kit
09.09.2022, 17:10
ЖИВЫЕ ТАЙЛЫ:

В играх нужно изображать огонь, воду, вращающиеся монетки и другие живые тайлы. Поэтому половину тайлов из 4К использовать под них. Каждый тайл состоит из 16 обычных тайлов, которые будут меняться автоматически через каждые 133 мс (8 кадров 60 Гц). Цикл движения будет около двух секунд. Всего живых тайлов будет 2K/16=128.

zx-kit
10.09.2022, 18:09
Продолжение проектирования - оптимизация количества уровней и цветов:

00 Тайлы 8 цветов
01 Графика 15 цветов + прозрачный
10 Тайлы 8 цветов
11 Графика 15 цветов + прозрачный

У каждого уровня свои 8 палитр.

У тайлов 2 точки в байте: 3 бита - номер цвета и 1 бит - уровень.
Атрибут тайла: 3 бита - палитра, 1 бит - тип шрифта, 4 бита - номер шрифта (1xxx - живые тайлы).

В основной памяти спрайт хранится по 2 точки в байте:
4 бита - номер цвета, 1111 - прозрачный

При рисовании спрайта в графическом режиме выбрать нужный уровень и палитру.

Каждая точка в графическом режиме в видеокарте представляется одним байтом:
1 бит - номер уровня
3 бита - номер палитры
4 бита - номер цвета

zx-kit
11.09.2022, 09:23
По видеокарте найдены оптимальные по возможностям, сложности и скорости режимы. Решено сделать символьный и графический режимы с разрешением 640*480 точек. В каждом режиме по 2 уровня. В каждом из четырех уровней по 8 независимых палитр.

Графический режим без скроллинга. Два переключаемых экрана. Рисовать спрайты с шагом 2 точки с помощью блиттера. Для указания координат спрайта добавить старший байт для x. Если рисовать спрайты в пределах 512 точек, а справа расположить рамку шириной 640-512=128 точек, то достаточно будет в старший байт записать 0 и использовать однобайтовые координаты. Для рамки записать в старший байт 1.

Для упрощения символьный режим имеет размер буфера 256 строк по 256 символов. Символы отображаются автоматически из буфера символов. Скроллинг с шагом 2 точки. Для скроллинга указать начало окна - номер первой строки и столбца в буфере, первой строки и столбца в символе. При скроллинге по-горизонтали с шагом 2 точки 640 точек будут сдвинуты за 5.33 секунд.

Для больших пространств из символов по мере движения добавлять в буфер новые символы.

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

zx-kit
19.09.2022, 10:39
Для дальнего фона все-таки лучше сделать два слоя для упрощения изображения параллакса. Полоски параллакса сразу на двух слоях. Верхний край ближе и перекрывает нижний край дальней полоски. Для смещения использовать память. Во время строчного гасящего импульса считывать смещение данной строки.

zx-kit
19.09.2022, 17:33
Полосы параллакса можно представить как прозрачные ленты с рисунками, которые уложены внахлест и могут независимо двигаться по-горизонтали.

Чтобы при скроллинге не записывать смещение для каждой строки используем старший бит начального столбца в символе как переключатель записи. Если он нулевой - загрузить новое значение в счетчики из памяти. Если 1 - загрузить в счетчики значение из регистров как у предыдущей строки.

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

Строк VGA 480. Упростим запись смещения. Будет одно смещение у двух строк. Всего 240 пар. Хватит одного байта для адресации памяти.

Слои дальнего фона с параллаксом сделать простыми. Всего по 256 символов в каждом слое. Всего по одной палитре на слой. На точку 15 цветов плюс прозрачный. Смещение по-вертикали общее на оба слоя. Размер буферов символов по 256 столбцов символов и 128 строк.

LED
04.02.2024, 19:52
Судя по описанию преимущество этой штуки только в перестраивоемости под другие схемы.
То есть тупо плата с процом и минимальной обвязкой, а её у 8080 дофига, плата с памятью, и плата которая их соединяет в какойто комп.
Так тут кроме розетки и изобретать нечего.
Но судя по запросам, в итоге получается аркадный автомат с единой размашистой платой.

Смотрю долгострой года 2 как завис. Так чем дело кончилось, на какой странице протопип искать ?
Интересно есть ли какойто стандарт сигналов этих разъёмов или до него тоже дело не дошло ?

А то как раз наткнулся на PC/104 который не так то просто оказалось найти на этом форму, и оно больше нигде почемуто не упоминается.