Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Эмуляторы отечественных компьютеров (http://zx-pk.ru/forumdisplay.php?f=61)
-   -   Эмулятор УКНЦ - EmuStudio (http://zx-pk.ru/showthread.php?t=18027)

form 16th February 2012 14:19

Quote:

Originally Posted by Patron (Post 467800)
Ничего (если буфер вывода пуст). Об том и речь - не пишет. До получения второго прерывания подряд. После первого (если буфер вывода пуст) - очищает разрешение прерываний. После второго - проверяет буфер вывода на наличие байтов и если таковые есть - выводит (иначе - опять очищает разрешение прерываний).

Фраза была построена так просто что получалось когда буфер пуст - что-то пишется :)

А что прерываний на 1 больше получается чем выводимых символов - подтверждаю.

---------- Post added at 16:19 ---------- Previous post was at 16:15 ----------

Кстати вопрос - если говоришь на УКНЦ запрет-разрешение не работает - как на нем раюотают обычные непатченные системы?

Patron 16th February 2012 14:27

Quote:

Originally Posted by form (Post 467801)
что прерываний на 1 больше получается чем выводимых символов - подтверждаю.

Здесь вся хитрость в том, что при добавлении новых символов в пустой буфер вывода - подпрограмма обработки EMT может уведомить подпрограмму обработки TTPINT о необходимости продолжить выводить символы только одним способом - возбудив "фальшивое" прерывание.

Для этого подпрограмма обработки EMT делает BIS #100,@#TTPS. При этом даже не надо проверять предыдущее состояние буфера вывода. Если буфер вывода содержал символы ( а значит - прерывания были разрешены ) - ничего не изменится, а если буфер вывода был пуст (а значит - прерывания были запрещены) - произойдёт новое прерывание и вывод на экран продолжится.

---------- Post added at 12:27 ---------- Previous post was at 12:26 ----------

Quote:

Originally Posted by form (Post 467801)
Кстати вопрос - если говоришь на УКНЦ запрет-разрешение не работает - как на нем раюотают обычные непатченные системы?

Канал 0 со стороны ЦП работает "по-ДВКашному", каналы 1 и 2 с обеих сторон - "по-УКНЦшному".

form 16th February 2012 14:31

Quote:

Originally Posted by Patron (Post 467805)
подпрограмму обработки TTPINT

Только она как-то по другому называется вроде.

---------- Post added at 16:29 ---------- Previous post was at 16:27 ----------

Quote:

Originally Posted by Patron (Post 467805)
Канал 0 со стороны ЦП работает "по-ДВКашному", каналы 1 и 2 с обеих сторон - "по-УКНЦшному".

понял.
главное, что на этих 1 и 2 работает правило - записал в буфер, разрешил прерывания, поехал дальше, прерывание возникло :)

---------- Post added at 16:31 ---------- Previous post was at 16:29 ----------

Собственно наверное специально так сделано из-за специфики использования каналов этих.

Patron 16th February 2012 14:45

Quote:

Originally Posted by form (Post 467807)
Только она как-то по другому называется вроде.

Code:

.SBTTL        TERMINAL OUTPUT INTERRUPT SERVICE
.ENABL        LSB
.IF EQ        TIME$R
TTOINT::MOV        R5,-(SP)
        MOV        (PC)+,R5
PTOBF4:: .WORD        TTOBUF+4
        JSR        R4,TTO2
.ENDC
TABCNT:        .WORD        0
FILLC:        .WORD        0
CHCNT:        .WORD        10
.IF NE        TIME$R
TTOINT::JSR        R5,$INTEN
        .WORD        ^C<PR4>&PR7
        MOV        (PC)+,R5
PTOBF4:: .WORD        TTOBUF+4
        MOV        (PC)+,R4
PTBCNT:: .WORD        TABCNT
.ENDC
TTO2:        TST        (PC)+
SYNC:        .WORD        0
        BNE        12$
        DEC        (R4)+
        BGT        6$
        MOV        R4,-(SP)
        CLR        -(R4)
        MOV        $ENTRY+TT.NUM,R4
        BEQ        1$
        JSR        R4,TT$$$2(R4)
        .WORD        TTILCT-.
1$:        MOV        (SP)+,R4
        CMP        @R5,2(R5)
        BNE        2$
        SUB        #TTYOUT,@R5
2$:        DEC        -(R5)
        CMP        (R5)+,#-1
        BEQ        11$
        MOVB        @(R5)+,@R4
3$:        BIC        #^C<177>,@R4
        CMP        (R4)+,#RUBOUT
        BEQ        4$
        CMP        -2(R4),#40
        BLT        7$
        DEC        @R4
        BNE        4$
        MOV        #10,@R4
4$:        TST        -(R4)
5$:        INC        -(R5)
6$:        MOV        @R4,@TTPB
        BR        12$
7$:        CMP        -2(R4),#BS
        BNE        14$
        INC        @R4
        BR        10$
14$:        CMP        -(R4),#TAB
        BNE        8$
        MOV        #40,(R4)+
        MOV        @R4,-4(R4)
        BR        9$
8$:        CMP        (R4)+,#CR
        BNE        10$
        CLR        -4(R4)
9$:        MOV        #10,@R4
10$:        DEC        R4
        CMPB        -(R4),@#TTFILL
        BNE        5$
        MOV        @R4,@TTPB
        CLR        @R4
        CLR        -(R4)
        MOVB        @#TTNFIL,@R4
        INC        -(R5)
        BR        12$
11$:
.IF EQ PDT$OP
        BIC        #TPS$MK,@TTPS
.IFF
        CLR        @TTPS
.ENDC
        CLR        -(R5)
12$:
.IF EQ        TIME$R
        BR        RTICMN
.IFF
        RTS        PC
.ENDC
.DSABL        LSB


form 16th February 2012 14:47

Quote:

Originally Posted by Patron (Post 467819)
TTOINT

а не TTPINT :)

Titus 17th February 2012 04:07

Что за такой регистр 177074 на магистрали ПП?
По адресу похож на рудимент несуществующего источника канала-2.

form 17th February 2012 07:39

Quote:

Originally Posted by Titus (Post 468158)
Что за такой регистр 177074 на магистрали ПП?
По адресу похож на рудимент несуществующего источника канала-2.

Code:

177074        Резерв        Формируется сигнал "СИП"

Titus 17th February 2012 14:26

Quote:

Originally Posted by form (Post 468167)
Code:

177074        Резерв        Формируется сигнал "СИП"

Спасибо, документацию я тоже читал)
Про 177704 тоже самое написано, а оказалось, что этот регистр много чего делает. Поэтому и возник подобный вопрос.

Alex_K 17th February 2012 14:41

Quote:

Originally Posted by Titus (Post 468231)
Спасибо, документацию я тоже читал)
Про 177704 тоже самое написано, а оказалось, что этот регистр много чего делает. Поэтому и возник подобный вопрос.

Канал 2 однонаправленный, поэтому второе несуществующее направление висит пустышкой, т.е. при чтении читается ноль, а запись уходит в никуда. Вроде так, но надо глянуть на реальной машине. В UKNCBTL во всяком случае так и реализовано, а так как смотрелось на реальной машине, значит так и есть.

Вот меня интересует, неужто в 1801ВП1-120 не хватило места для второго направления для канала 2, да и реализация запроса на прерывания (кроме канала 0 со стороны ЦП) аппаратно легче, чем классическая для ДВК.

Titus 17th February 2012 15:09

Quote:

Originally Posted by Alex_K (Post 468235)
Вот меня интересует, неужто в 1801ВП1-120 не хватило места для второго направления для канала 2, да и реализация запроса на прерывания (кроме канала 0 со стороны ЦП) аппаратно легче, чем классическая для ДВК.

Думаю, что вопрос не в том, что не хватило место, а в том, что он при проектировании не планировался.

Кстати, не смотря на обилие высказываний в этой теме о различии каналов 0 (стиль ДВК), и всех остальных, я так внятно и не понял этого различия. Хотя и внимательно вчитывался) Возможно, потому что все говорят вразнобой.


All times are GMT +4. The time now is 02:44.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.