diff --git a/constants/SP2000.inc b/constants/SP2000.inc index 238d447..5a9d6b4 100644 --- a/constants/SP2000.inc +++ b/constants/SP2000.inc @@ -1395,32 +1395,6 @@ SLOT3 EQU #F0 ; RAM page for 128/256 kb ( ENDMODULE ; - - ;=======================================================================; - ; ПРО КВАДРАТЫ ИНТА ; - ;=======================================================================; -;BORD = DFF( (MODE0[7..4] == 15), LWR_COL,,); -;INTTX = DFF( (BORD & MODE03 & MODE02 & MODE00), LWR_COL,,); -; -;INTT = DFF( !(INTTX & (CTV[2..0] == 7) ), CT5,,); -;CTV - счётчик строк, CT - счётчик пикселей, CTH - счётчик знакомест -;получается диапазон в 4 квадрата (4Х8=32) через каждые 4 квадарат в котором может активироваться инт -;От того в каком квадрате диапазона стоит квадрат инта зависит его максимальная длительность, -; -;Разрешение экрана 56 квадратов по горизонтали и 39(40) по вертикали (скорп или пень) -; -; - На какую ногу триггера сигнал идет? -; - на клок, по фронту на выход копируется значение с даты -; - А когда это фронт возникает? -; - по инту от видео/клавы -; -;Все же просто. На квадратиках с интом INTT = 0, на остальных INTT = 1 -;получается, что фронт возникает при переходе с квадратика с интом на квадратик без инта -;От количества квадратов длина инта не зависит - ;=======================================================================; - ; ПРО КВАДРАТЫ ИНТА ; - ;=======================================================================; - ; /* внутренние порты Z84C15: @@ -1743,7 +1717,59 @@ REG: ; RES 6,C ; JP HD_CMD ;#3FF0 ROM. DI -;_______________________________________________________________________________________________# + + ;=======================================================================; + ; ПРО КВАДРАТЫ ИНТА ; + ;=======================================================================; +;INT_X = !DFF(GND,(SVIDEO.INTT & KEYS.int),,((/IO or /M1) & DFF(DFF(!INT_X,CTH2,,),CTH2,,))) or !CBL_INT; +;BORD = DFF( (MODE0[7..4] == 15), LWR_COL,,); +;INTTX = DFF( (BORD & MODE03 & MODE02 & MODE00), LWR_COL,,); +; +;INTT = DFF( !(INTTX & (CTV[2..0] == 7)), CT5,,); +;CTV - счётчик строк, CT - счётчик пикселей в квадратике (0-7), CTH - счётчик знакомест +; +; | --- | --- | ---- | --- | --- | ---- | +; | S | R | C | D | Q+1 | !Q+1 | +; | --- | --- | ---- | --- | --- | ---- | +; | 1 | 0 | - | - | 1 | 0 | +; | 0 | 1 | - | - | 0 | 1 | +; | 1 | 1 | - | - | 1* | 1* | +; | 0 | 0 | 0->1 | 1 | 1 | 0 | +; | 0 | 0 | 0->1 | 0 | 0 | 1 | +; | 0 | 0 | 0 | - | Q | !Q | +; | --- | --- | ---- | --- | --- | ---- | +; +;Разрешение экрана 56 квадратов по горизонтали и 39(40) по вертикали (скорп или пень) +; +; - На какую ногу триггера сигнал идет? +; - на клок, по фронту на выход копируется значение с даты +; - А когда это фронт возникает? +; - по инту от видео/клавы +; +;Все же просто. На квадратиках с интом INTT = 0, на остальных INTT = 1 +;получается, что фронт возникает при переходе с квадратика с интом на квадратик без инта +;От количества квадратов длина инта не зависит + +; Короче, погнали от M1 и IO. Они вместе в нуле когда прерывание подтвердилось. +; Ноль на их OR будет только при подтверждении прерывания. Ноль уходит дальше +; на AND и оттуда на S, после чего на !Q у нас тоже ноль - инт снялся. Если инт +; снялся и равен 0, то 1 идёт на самый левый триггер в D, но переходит на +; средний триггер только по CTH2 - счётчик длины инта который тикает независимо +; от того, есть он или нет. Когда тикнет, единица переходит дальше на D и ждет +; опять тика, после чего попадает на AND, а там на втором выводе тоже 1, потому +; что сигналы M1 и IO инверсные и через OR, а вместе в нуле они только при +; подтверждении инта. Единица оттуда втыкается в S, что даёт возможность передать +; кусок !земли с D на !Q при переходе клока с 0 в 1. А такой переход будет только +; в последнем пикселе последней строки кваратика с интом. А следующий квадратик +; не сможет повлиять потому что инт либо будет всё ещё висеть и это будет замена +; 1 на 1))) либо инт снимется через IO и M1 установив S в положение +; ?похер на D и C?, которое сменится только после того как протикают левые счётчики + + ;=======================================================================; + ; ПРО КВАДРАТЫ ИНТА ; + ;=======================================================================; + +;__________________________________________________________________________________________________________# ; ; DW #FEFF ; Sprinter-2000 ;