Описание ЗДЕСЬ.
Описание ЗДЕСЬ.
С DL(V)11 за последнее время наигрались. Пора заняться DZ(Q,V)11
Поразбирался как оно работает немного. Один контроллер занимает 4 слова на IOPAGE в которых размещаются 6 регистров устройства:
- Регистр состояния и управления (CSR), +0, RW
- Буфер приемника (RBUF), +2, RO
- Регистр параметров линии (LPR), +2, WO
- Регистр управления передатчиком (TCR), +4 RW
- Регистр состояния модема (MSR), +6 RO
- Регистр данных передатчика (TDR), +6 WO
Биты CSR
- <02:00> не используются
- <03> MAINT, замыкание выходов на входы
- <04> CLR, сброс устройства (бит сбрасывается по окончании сброса)
- <05> MSE, разрешение сканирования линий
- <06> RIE, разрешение прерываний от приемника
- <07> RDONE, принят символ
- <10:08> TLINE, номер линии передатчика треюующей обслуживания
- <11> не используется
- <12> SAE, разрешения прерываний по SA и запрет по RDONE
- <13> SA, SILO заполнен (16 или более символов)
- <14> TIE, разрешение перываний передатчика
- <15> TRDY, передатчик линии TLINE готов к приему
В отличие от DL, здесь прерывания передатчика запрещать не нужно вообще. Когда прерывания от передатчика не нужны, просто очищается соответствующий бит в TCR.
Сканирование линий идит сверху вниз. Как только найдена линия, готовая к передаче, сканирование останавливается, номер линии заносится в биты TLINE CSR и выставляется сигнал TRDY. Если при этом выставлен бит TIE, происходит прерывание. Пока линия не будет обслужена (передан символ или снят бит данной линии в TCR), сканирование не возобновится. После обслуживания, сканирование продолжится с того места где остановилось и потом начнется сначала.
При приеме символа, выставляется бит RDONE, если установлен бит RIE, происходит прерывание (если установлен бит SAE, то прерывание происходит только когда заполнится SILO и установится бит SA - в этот момент устройство приняло не менее 16 символов).
Устройства бывают с поддержкой 4 и 8 линий. В оригинале на QBUS поддерживаются только 4 линии, однако попалось описание не-DECовского DZV11 с 8 линиями. В случае 4 линий, старший бит не используется и при записи его должен быть нулем.
Биты RBUF
- <07:00> принятый символ
- <10:08> номер линии с которой символ принят
- <11> не используется
- <12> ошибка четности
- <13> frame error
- <14> overrun
- <15> считаные данные актуальны
Здесь вобщем-то все понятно. Бит 15 показывает, что все прочитанное из регистра актуально (считан символ и состояние). Полезно при включенном SAE для вычитывание всех символов которые устройство приняло.
Биты LPR (только запись)
- <02:00> - номер линии для которой выставляются параметры
- <04:03> длина символа
- 00 - 5 бит
- 01 - 6 бит
- 10 - 7 бит
- 11 - 8 бит
- <05> стоп биты
- 0 - 1 стоп бит
- 1 - 2 (1.5) стоп бита
- <06> parity enable
- <07> odd parity
- <11:08> скорость
- 0000 - 50
- 0001 - 75
- 0010 - 110
- 0011 - 134.5
- 0100 - 150
- 0101 - 300
- 0110 - 600
- 0111 - 1200
- 1000 - 1800
- 1001 - 2000
- 1010 - 2400
- 1011 - 3600
- 1100 - 4800
- 1101 - 7200
- 1110 - 9600
- 1111 - 19800 (скорость не поддерживается DECовским софтом, для DECовского DZQ11 написано что может быть и не 19800 в зависимости от перемычек; для не-DECовского DZV11 написано просто 19200)
- <12> разрешение приемника
- <15:13> не используется
Биты TCR
- <07:00> разрешения передатчика линий 0-7
- <15:08> DTR для линий 0-7
Биты MSR
- <07:00> RI линий 0-7
- <15:08> DCD линий 0-7
Биты TDR
- <07:00> - символ для передачи в линию заданную битами <10:07> CSR
- <15:08> - посылка BREAK в линии 0-7
Все регистры кроме RBUF и MSR допускают байтовое обращение к младшему и старшему байту.
---------- Post added at 20:15 ---------- Previous post was at 20:13 ----------
Первая прога как обычно - offline терминальчик по опросу. Только в отличие от DL, здесь сразу охватываются все линии мультиплексораКод:.TITLE DZT .IDENT /V01.00/ DZ$CSR = 160100 ;АДРЕС CSR DZ.CSR = 0 ;CSR DZ.BUF = 2 ;БУФЕР ПРИЕМНИКА DZ.LPR = 2 ;РЕГИСТР ПАРАМЕТРОВ ЛИНИИ DZ.TCR = 4 ;РЕГИСТР УПРАВЛЕНИЯ ПЕРЕДАЧЕЙ DZ.TDR = 6 ;РЕГИСТР ДАННЫХ ПЕРЕДАЧИ TRDY = 100000 ;ГОТОВНОСТЬ ПЕРЕДАТЧИКА RDONE = 200 ;СИМВОЛ ПРИНЯТ MSE = 40 ;РАЗРЕШЕНИЯ СКАНИРОВАНИЯ MCLR = 20 ;СБРОС УСТРОЙСТВА S9600 = 7000 ;СКОРОСТЬ 9600 CL8 = 30 ;ДЛИНА СИМВОЛА 8 БИТ ST1 = 0 ;1 СТОП БИТ RXEN = 10000 ;РАЗРЕШЕНИЕ ПРИЕМНИКА .MCALL .DEVICE START: .DEVICE #AREA,#LIST ;СБРОС УСТРОЙСТВА ПО ВЫХОДУ MOV #DZ$CSR,R5 ;УСТАНАВЛИВАЕМ CSR BIS #MCLR,@R5 ;СБРОС УСТРОЙСТВА BIT #MCLR,@R5 ;ЗАВЕРШЕН? BNE .-4 ;НЕТ ЕЩЕ MOV #8.,R0 ;ИНИЦИАЛИЗИРУЕМ ЛИНИИ MOV #S9600!CL8!ST1!RXEN,R1 ; 10$: MOV R1,DZ.LPR(R5) ; INC R1 ; SOB R0,10$ ; MOV #MSE,@R5 ;РАЗРЕШАЕМ СКАНИРОВАНИЕ 20$: TSTB @R5 ;ЖДЕМ НАЖАТИЯ КЛАВИШИ BPL .-2 ; MOV DZ.BUF(R5),R0 ;ПОЛУЧАЕМ ДАННЫЕ MOV R0,R1 ;ПОЛУЧАЕМ НОМЕР ЛИНИИ SWAB R1 ; BIC #^C7,R1 ; MOVB LINE(R1),DZ.TCR(R5) ;РАЗРЕШАЕМ ПЕРЕДАТЧИК ДЛЯ ЛИНИИ TST @R5 ;ЖДЕМ ГОТОВНОСТИ ПЕРЕДАТЧИКА BPL .-2 ; MOVB R0,DZ.TDR(R5) ;ПЕРЕДАЕМ СИМВОЛ CLR DZ.TCR(R5) ;ЗАПРЕЩАЕМ ПЕРЕДАТЧИК BR 20$ ;КУ AREA: .BLKW 2 LIST: .WORD DZ$CSR,MCLR .WORD 0 LINE: .BYTE 1,2,4,10,20,40,100,200 .END START
---------- Post added at 20:19 ---------- Previous post was at 20:16 ----------
Про вектора ничего не сказал... Но тут вобщем-то все также: XX0 - прерывание приемника, XX4 - прерывание передатчика.
Последний раз редактировалось form; 07.03.2013 в 17:35.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Замерил количество NOPов между прерываниями на DZQ11. Исходное состояние - выполнен master clear, дождались завершения, тест. Первый тест - просто разрешили прерывания от передатчика линии 0 и пошли нопы, остальные 23 теста - вывод символа и нопы. С разными скоростями. 19800 условно - сколько реально оно дает - фиг знает. На скоростях ниже 600 доходит до HALT в конце буфера.
Код:600 1200 2000 2400 3600 4800 7200 9600 19800 ----- ----- ----- ----- ----- ----- ----- ----- ----- 440 440 440 440 440 440 440 440 440 705 550 505 515 489 469 459 457 447 16306 8355 5169 4394 3069 2404 1743 1414 901 16205 8404 6410 5823 4023 3120 2218 1768 1072 16205 8389 5953 5391 4375 3385 2395 1899 1135 16207 8395 6122 5553 4502 3482 2460 1949 1158 16206 8394 6060 5493 4540 3519 2484 1966 1167 16206 8392 6084 5514 4550 3531 2492 1973 1170 16207 8397 6076 5509 4547 3536 2497 1977 1173 16208 8395 6079 5511 4549 3539 2499 1977 1172 16208 8396 6080 5512 4550 3541 2497 1980 1175 16209 8397 6079 5511 4550 3539 2500 1978 1173 16210 8396 6080 5512 4551 3543 2501 1980 1175 16209 8397 6080 5512 4550 3542 2500 1979 1176 16211 8396 6081 5513 4552 3544 2502 1981 1176 16210 8400 6081 5513 4552 3544 2502 1982 1177 16213 8397 6083 5514 4553 3544 2504 1982 1177 16211 8400 6082 5515 4553 3545 2502 1982 1178 16213 8400 6084 5515 4554 3544 2504 1984 1178 16212 8400 6083 5515 4554 3546 2504 1981 1179 16215 8402 6084 5516 4554 3546 2505 1985 1179 16213 8401 6084 5516 4555 3545 2503 1984 1180 16215 8402 6086 5517 4555 3548 2507 1985 1180 16213 8400 6082 5514 4553 3545 2503 1983 1178
Последний раз редактировалось form; 08.03.2013 в 19:00.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Прога.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
И для интереса разрешил все линии сразу. Тест на скорости 9600, остальные лень делать. Да вобщем-то и так примерно понятно
Код:449 450 451 451 452 452 453 453 1321 463 514 455 1646 465 515 458 1767 467 518 459 1813 469 519 461
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Отключил пока петли с DZQ11, подключил VT220.
Тест показал, что условные 19800 соответствуют нормальным 19200.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Как-то выкладывал здесь недоразобранную программу автоконфигурации.
Вот более старый вариант (из RSX-11M-PLUS V3.0) в исходниках. Думаю кое-что полезного из них можно почерпнуть...
ZIPовал в VMSе, возможно при распаковке надо делать "unzip -a", но может и не надо.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
открыл в winrar-е, там инфо показывает базовую ось vax/vmsприкольно
![]()
С уважением, Александр.
Scorpion ZS-256 Turbo+ GMX-2048
SID-Blaster/ZX
Музей ретрокомпьютеров в Минске!
Здесь ничего нет => http://byteman.by
И здесь тоже --->>> http://bytespace.by
На скорую руку посмотрел модуль ACFROT.MAC в архиве - в нём среди прочего определяется тип процессора и набор дополнительных (к базовому набору) инструкций процессора.
Не помню точно, но кажется, что при генерации ОС РВ ACF.TSK не запускался. Или нужно было бы подправить значение "TICKS: .WORD 60." на 50 с точкой - на наши 50 Гц.)))
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)