- Вопросы по таймеру БК
- [+] Старые сообщения (7)
-
? litwr2@ - 09.11.2014 11:17
>Ну так и пусть будет 0, для красоты.
Почему бы нет? Или вы намекаете на какие-то скрытые проблемы?
>Там и приоритет, и флаги NZVC.
Очень заинтригован. Понятно, что там флаги PTNZVC - это известная мне информация, но получается, что приоритет - это один бит Р. Совсем непонятно значение 340, оно устанавливает Р, а также биты 5 и 6 - и это совсем непонятно - нигде про эти биты ничего не нашёл - помогите, пожалуйста. Чем 200 хуже?
>В вашем конкретном случае в таймере задаётся делитель на 16
He, y меня не так - 128/4000000 = 32 мкс
>все уже привыкли
ВСЕ и ВСЁ - слова-противоречия - об этом хорошо у Стругацких в Повести о дружбе и недружбе. :-)
> [ММ] из-за этого ( что не 50 гц ) и не хотят современные телеки работать
Получается, что таймер - растровый?! Значит возможно синхронизировать растр и программу. Но тут важно знать точные тайминги инструкций. Насколько знаю, полной информации об этом до сих нет. :-(
-
? gid - 09.11.2014 12:18
1. Нету никаких проблем. Чисто перфекционизма ради.
2. Под приоритет зарезервировано три бита: 7й, 6й и 5й. Они доступны по чтению-записи. Но по каким-то причинам на ВМ1 реально работает только один бит - 7й, поэтому можно говорить, что приоритет либо есть, либо нет. Остальные биты (6й и 5й) на ВМ1 ни на что не влияют, но на ВМ2 и ВМ3, на которых обычно раньше и писали проги для ВМ1 с приоритетами всё нормально, там 8 уровней приоритета, вот оно оттуда и пошло.
¤
[He, y меня не так - 128/4000000 = 32 мкс]
Точно. Я опять фигню написал. Я пока не гляну в код эмуляции того, чего нужно, обычно всё путаю. А смотреть часто бывает лень.
Ну значит для 4Мгц будет 32мкс, а для другой частоты будет по другому.
¤
[Значит возможно синхронизировать растр и программу.]
Возможно - самарские демки тому подтверждение.
¤
[Но тут важно знать точные тайминги инструкций.]
Самарцы делали это методом перебора заданного количества инструкций с заданными типами адресаций, чтобы подогнать получаемые задержки под синхронизацию растром.
-
? anonymous - 09.11.2014 12:44
У ВМ2 биты 5 и 6 в PSW также фиктивные. Нормально все три бита работают у ВМ3.
Еще осмелюсь напомнить, что стараниями господина Vslav обнаружена возможность подачи произвольной частоты на внутренний таймер, не привязанной к частоте процессора.
-
? TheGWBV@ - 09.11.2014 14:42
litwr2, вот текст моей программы PALTST13, с параметрами таймингов для эмулятора БК...
¤
;PALTST13 - Демонстрация всех 16 палитр ТВ-контроллера БК0011М
; внутри одного ТВ-кадра, используя таймеры CPU и 48.50Гц
; (C) 2013, TheGWBV
; КСИ == кадровый синхро-импульс
;
.LA 1000 ; Адрес загрузки и начального запуска
;
;------------------------ БЛОК КОНСТАНТ
SSTART = 40000 ; Адрес начала экранного ОЗУ
SCRLEN = 20000 ; Длина экранного ОЗУ в словах
SCRLNB = 40000 ; Длина экранного ОЗУ в байтах
SCREND = 100000 ; Адрес конца экранного ОЗУ+1
;
;------ ПОДГОТОВКА ЭКРАНА И "ТАЙМЕРА" 48.50Гц
START: MOV #1330,@#177664 ; Выровняли РУЛОН экрана
MOV @#100,VTIME0+2 ; Сохранили вектор прерывания
MOV @#102,VTPSW0+2 ; Сохранили слово состояния CPU
MOV #TIME1,@#100 ; Куда идем на 1-ом КСИ
CLR R5 ;
MOV #177662,R4 ; Установили 0-вую ПАЛИТРУ и
MOV R5,(R4) ; Включили ТАЙМЕР 48.50Гц
WAIT ; Ждем 1-ый КСИ
WAIT ; Ждем 2-ой КСИ
MOV #100,R3
2: MOV #SHIFT0,R1 ; НАЧАЛО ПОТОКА в R1
CALL SSOPUT ; ОТОБРАЗИТЬ ПОТОК начиная с (R0)
SOB R3,2 ; #100 раз (по горизонтали)
ADD #300,R0
MOV #100,R3
3: MOV #SHIFT0,R1
CALL SSOPUT
SOB R3,3 ; Еще 64. раза
MOV #20,R2
ADD #710,R0
8: CALL GBLINE
ADD #320,R0
CALL GBLINE
ADD #320,R0
CALL GBLINE
ADD #520,R0
SOB R2,8
;------ ПЕРЕКЛЮЧЕНИЕ ПАЛИТР 17 раз КАЖДЫЕ 14-ть ТВ СТРОК
MOV #177706,R5
MOV #177777,(R5)+ ; Подготовка ТАЙМЕРА ПРОЦ-А
MOV #TIME0,@#100 ; Подготовка ТАЙМЕРА 48.50Гц
CLR R3
MOV #177662,R4
MOV R3,(R4) ; ЗАПУСК ТАЙМЕРА 48.50Гц
WAIT ; по КСИ перезапускаем ТАЙМЕР ПРОЦ-А
9: WAIT
10: CMP (R5),R0
BHI 10
12: MOV R3,(R4)
ADD #400,R3
BIC #170377,R3
SUB #34,R0 ; ЧИСЛО ТИКОВ ТАЙМЕРА ДО СМЕНЫ ПАЛИТРЫ
SOB R2,10
CLR R3
MOV R3,(R4) ; ПЕРЕКЛЮЧИТЬ на 0-ую ПАЛИТРУ
BR 9
HALT
;
;------ ВЫВОД ЗЕЛЕНЫХ И СИНИХ ПОЛОСОК
GBLINE: MOV #14,R3
4: MOV #GREEN0,R1
CALL SSOPUT
SUB #277,R0
SOB R3,4
MOV #14,R3
5: MOV #GREEN0,R1
CALL SSOPUT
SUB #277,R0
SOB R3,5
MOV #14,R3
6: MOV #BLUE0,R1
CALL SSOPUT
SUB #277,R0
SOB R3,6
MOV #14,R3
7: MOV #BLUE0,R1
CALL SSOPUT
SUB #277,R0
SOB R3,7
RET
TIME0: ; РЕСТАРТ ВНУТРЕННЕГО ТАЙМЕРА ПРОЦЕССОРА по КСИ
MOV #21,R2 ; КОЛИЧЕСТВО ПЕРЕКЛЮЧЕНИЙ ПАЛИТР
MOV #177712,R0 ; СДВИГ 1-го ПЕРЕКЛЮЧЕНИЯ от КСИ
MOV #22,@#177712 ; ЗАПУСК ТАЙМЕРА ПРОЦЕССОРА НА СЧЕТ
RTI
;------ ЗАЛИВКА ЭКРАНА ЧАСТЯМИ, ПО ТАЙМЕРУ 48.50Гц
TIME2: MOV #TIME3,@#100 ; Куда пойдем на 3-ем КСИ
MOV #177777,R1
1: MOV R1,-(R0)
SOB R3,1
RTI
;------ КОНЕЦ ЗАЛИВКИ ЭКРАНА
TIME3: MOV #177777,R1 ; #146314,R1
MOV #TIME4,@#100 ; Куда пойдем на 4-ом КСИ
RTI
TIME4: MOV #177777,R1 ; #31463,R1
MOV #TIME5,@#100
RTI
TIME5: MOV #177777,R1
MOV #TIME6,@#100
RTI
TIME6: MOV #177777,R1
MOV #TIME7,@#100
RTI
;--------------------------------
TIME1: MOV #TIME2,@#100 ; Куда пойдем на 2-ом КСИ
MOV #SCRLEN,R3 ; Кол-во СЛОВ для вывода в R3
MOV #SCREND,R0 ;
RTI ;
;--------------------------------
TIME7: MOV #40000,R5 ; ЗАПРЕТ ПРЕРЫВАНИЙ
MOV #177662,R4 ; от ТАЙМЕРА 48.50Гц
MOV R5,(R4) ; УСТАНОВКА 0-ой ПАЛИТРЫ
MOV #177777,R1 ; Снова заливать КРАСНЫМ цветом
MOV R3,VRAMR3
VTIME0: MOV #TIME7,@#100 ; Модифицирующийся код
VTPSW0: MOV #340,@#102 ; восстановления векторов
RTI ; прерывания ТАЙМЕРА 48.50Гц
VRAMR3: HALT ; Осталось вывести СЛОВ напоследок
COPYR0: HALT
COPYR1: HALT
COPYR2: HALT
COPYR3: HALT
COPYR4: HALT
COPYR5: HALT
COPYR6: HALT
;------ БИБЛИОТЕКА SPRITE STREAM OBJECTS *.SSO ------
SSOPUT: TSTB (R1)+
BEQ SSOEND ; Если ТРИАДА началась 0-ем НЕТ ПОТОКА
BLO SSOW ; Если меньше 0 => ПОТОК СЛОВ, НЕ БАЙТ
SSOB: ; ОБРАБОТКА ПОТОКА БАЙТ
BICB (R1)+,(R0) ; НАНЕСЛИ МАСКУ НА "ФОН"
BISB (R1)+,(R0) ; ВЫВЕЛИ ПИКСЕЛИ "ПО МАСКЕ"
MOVB (R1)+,R4 ; Очередной "SHIFT" в R4
BIC #177400,R4 ; Обнулить СТАРШИЙ БАЙТ R4
TSTB R4
BEQ SSOEND
MOV #200,R5
CMP R4,R5 ; R4-R5
BLE SSOB1 ; Если R4 МЕНЬШЕ ИЛИ РАВЕН #200
ADD R5,R0
SUB R4,R0
BR SSOB
SSOB1: ADD R4,R0
BR SSOB
SSOW: ; ОБРАБОТКА ПОТОКА СЛОВ
SSOEND: RET
¤
; СТРУКТУРА ПОТОКА БАЙТов
SHIFT0: .BYTE 1 ; 1 = БАЙТовый ПОТОК БЕЗ СМЕЩЕНИЯ по X
MASK00: .BYTE 17 ; ....
BPIC00: .BYTE 12 ; .G.G....
SHIFT1: .BYTE 100 ; Y=Y+1 Вывести РОВНО НА ТВ СТРОКУ НИЖЕ
MASK01: .BYTE 17 ; ....
BPIC01: .BYTE 12 ; .G.G....
SHIFT2: .BYTE 100 ;
.BYTE 360 ; ....
.BYTE 120 ; ....B.B.
SHIFT3: .BYTE 100 ;
.BYTE 360 ; ....
.BYTE 120 ; ....B.B.
SHIFT4: .BYTE 300 ; Смещаем КУРСОР НА ОДНУ ТВ СТРОКУ ВЫШЕ
; 200<SHIFT<301 => R0=R0+200-300
; Y=Y-1, X=X+100+(200)-300=X+0
.BYTE 0 ; НИЧЕГО НЕ ВЫВОДИМ, R0=R0+200-300
.BYTE 0 ; МАСКУ НА "ФОН" НЕ НАКЛАДЫВАЕМ
SHIFT5: .BYTE 377 ; Y=Y-2, X=X+100+(300)-377=X+1
.BYTE 0 ; SHIFT>300 => R0=R0+200-377
.BYTE 0
SHIFT7: .BYTE 0 ; 0 в ПОЛЕ типа ШИФТ = КОНЕЦ ПОТОКА
.EVEN ; Выравнивание по словам после ТРИАД
GREEN0: .ASCII <1><377><12>
.ASCII <100><377><12>
.ASCII <100><377><240>
.ASCIZ <100><377><240>
.EVEN
BLUE0: .ASCII <1><377><5>
.ASCII <100><377><5>
.ASCII <100><377><120>
.ASCIZ <100><377><120>
.EVEN
GREEN1: .ASCII <1><377><12>
.ASCII <100><377><240>
.ASCII <100><377><12>
.ASCIZ <100><377><240>
BLUE1: .ASCII <1><377><5><100><377><120>
.ASCIZ <100><377><5><100><377><120>
.END
-
? TheGWBV@ - 09.11.2014 15:19
meagol, товарищ litwr2 также спрашивал "возможно синхронизировать растр и программу"?
...в PALTST13 есть и замеры времени по таймеру ЦПУ и синхронизация выполнения программы пр растровому прерыванию.
Бабушка друга успешно писала ПО для СОЮЗ-АПОЛЛОНА...
-
? Voland@ - 09.11.2014 15:39
TheGWBV, добавил Ваши исходники сюда http://forum.pk-fpga.ru/viewtopic.php?f=23&t=5418
, если Вы не против конечно.
-
? gid - 09.11.2014 18:07
Не хотелось писать, но. У меня всё больше и больше закрадывается подозрение, что Smeagol и Шурик отсюдова http://bk0010.org/forum/?id=18942 - одно и то же лицо.
-
? litwr2@ - 09.11.2014 19:45
>Зацените здесь книги,там все про инструкции
Про настройку джойстиков и гампады для правшей? Их 20 лет никто не продаёт - пространство-время искривлeно - делают настроенные джойстики только для левшей. :-( http://www.youtube.com/watch?v=tRlX-BPUR7c
¤
>вот текст моей программы PALTST13, с параметрами таймингов для эмулятора БК...
Вот это да!!! Очень, очень благодарен! Сам что-то такое по совпадению написал в примерно в тоже время, но для коммодора: растр формируемый процессором (БКашки и спектрумы-амстрады на такое не способны - тормозят). :-) Теперь нужно найти время и попытаться с вашим супер-кодом разобраться. Однако, вы неправы, что сделали вариант для эмулятора. Лучше бы сообщили автору эмулятора про проблемы. Кстати, на fpga у вас не bin-файл, а чистый код. Проверил с с эмуляторaми на яве и Брухиса: ява примерно также как и gid, а второй палитры менять не умеет. :-( Сколько супер-демо-программ можно ещё написать...
Теперь бы ещё кто тайминги выложил.
¤
>Бабушка друга успешно писала ПО для СОЮЗ-АПОЛЛОНА...
А кто у нас друг? Или он не из нашей бк-компании? И какая БК стояла на Аполлоне? :-)
¤
> меня всё больше и больше закрадывается подозрение
Какая разница?! Любой форум - место знакомств: если кого тянет, значит пахнет соответственно. ;-)
-
? TheGWBV@ - 10.11.2014 01:35
Smeagol[Может вы для меня в ручную сделаете программу замера синхроимпульсов для моего джойстика, не Бкашного,он от другой системы. :)]
Во-первых, не совсем понятно, что значит "в ручную" )) Обычно для дела я использую мозг :)
Во-вторых, не ясно от какой другой он системы, но понятно, что он ваш :)
Надеюсь, что он (джойстик) не от системы управления вооружением летательного аппарата )))
-
? TheGWBV@ - 10.11.2014 10:30
Voland, я и сама планировала это сделать :) Спасибо, что опередили -- со временем на хобби у меня напряженка :(
-
? litwr2@ - 10.11.2014 18:55
> PALTST13
Не могу удержаться, чтобы не выразить восхищение кодом ещё раз. А у Voland'a всё же форум какой-то не такой. Неужели по такой супер-программке никто комментариев не написал? Явно там Бегемот какой-то портит. :-) Ваши коды и личность показались мне созвучными с песней http://www.youtube.com/watch?v=AenPw0AvpK8 :-)
Надеюсь, что от TheGWBV будут ещё компьютерные шедевры и покруче... Хотелось бы дождаться... Каждое мгновенье одинаково ценно и неповторимо, а хобби - не хобби, не важно.
-
? TheGWBW@ - 10.11.2014 22:15
Песенка понравилась :)
По БКашке есть пара-тройка идей. Например, из самых невероятных -- аппаратный акселератор обработки ряда EMT-запросов БОС БК11...
-
? litwr2@ - 11.11.2014 20:00
>аппаратный акселератор обработки ряда EMT-запросов БОС БК11.
Hичего не понял. Как это возможно? Хорошо бы хотя бы просто иметь популярное изложение возможностей этой БОС. А так на 11М приходится через АНДОС использовать функции 10-и.
-
? foot - 11.11.2014 23:22
>>? litwr2 @ - 11 ноября 20:00
Хорошо бы хотя бы просто иметь популярное изложение возможностей этой БОС. >>
В базовой документации всё разжёвано. Лень поискать/читать ?
>>А так на 11М приходится через АНДОС использовать функции 10-и.>>
Это удел всех самоделкиных.
>>Hичего не понял. Как это возможно? >>
Про перехват ЕМТ никогда не слышал?
-
? Ал-р - 11.11.2014 23:48
Програмный перехват ничего не ускоряет, в сообщении (TheGWBW @ - 10 ноября 22:15) написано про "аппаратный акселератор обработки ряда EMT"
-
? Аноним - 11.11.2014 23:58
В БК вставят контроллер ПДП и сопроцессор(ы) для параллельной обработки EMT-запросов?
-
? TheGWBW@ - 12.11.2014 02:17
Было бы не плохо заменить ВП1-037 на FPGA-аналог с расширенными функциями вроде контроллера ПДП, ускорителя 2D-графики... К сожалению, знаниями по верилогу пока не владею...
-
? ганс - 12.11.2014 20:52
>Было бы не плохо заменить ВП1-037 на FPGA-аналог
Другая компьютерная девушка время не теряла и сделала - http://www.youtube.com/watch?v=_kDhpFaf4EY
Но мало таких. Мне кажется ваша демка как пропуск в первую десятку - в мужском спорте на порядок нагрузки повыше пока.
-
? foot - 12.11.2014 22:51
>>? Ал-р - 11 ноября 23:48
Програмный перехват ничего не ускоряет, в сообщении (TheGWBW @ - 10 ноября 22:15) написано про "аппаратный акселератор обработки ряда EMT">>
На сарае тоже написано ...
ЕМТ - программное прерывание.
-
? foot - 12.11.2014 22:52
>>? ганс - 12 ноября 20:52
Другая компьютерная девушка время не теряла ...>>>
Каждый сходит с ума по-своему. Баян...
http://www.youtube.com/watch?v=-JjBeF7zbtw
-
? litwr2@ - 13.11.2014 17:48
>Каждый сходит с ума по-своему. Баян...
Это не девушка. :-) Но баян интересный, а комп совсем загадочный. И как его назвать? Гитара+БК получится китарпа или клатара...
- << Форум