User Tag List

Страница 71 из 157 ПерваяПервая ... 676869707172737475 ... ПоследняяПоследняя
Показано с 701 по 710 из 1564

Тема: Программирование на УКНЦ как?

  1. #701

    Регистрация
    22.11.2009
    Адрес
    Москва
    Сообщений
    1,699
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    195
    Поблагодарили
    127 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А надо бы проверить, какой там make

  2. #702

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Неужели nmake настолько криво совместим?

  3. #703

    Регистрация
    22.11.2009
    Адрес
    Москва
    Сообщений
    1,699
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    195
    Поблагодарили
    127 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    С небольшой правкой (stricmp -> strcasecmp) собирается и не под visual studio :-)

  4. #704

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    374
    Поблагодарили
    311 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Почитал эту тему, столько всего полезного
    шпоргалки\вопросы\ответы
    а самое главное программы и исправления
    (патчи). Поднимаю тему ! ) Очень информативная
    и интересная! )
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  5. #705

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    столько всего полезного
    До кучи - может кому пригодится. Пример как делать поиск файлов в каталоге диска, используя только те средтва которые уже есть в системе. Используются функции IGTDIR и IGTENTиз системной библиотеки. Их описание можно найти на bitsavers или у меня в документации по системной библиотеке RT-11. Никаких наворотов-красивостей - только пример, рабочий

    Код:
    	MOV     #ARGS1,R5
            CALL    IGTDIR
            TST     R0
            BNE     20$
    Вызов функции IGTDIR из системмной библиотеки. Аналогичен форановскму IERR = IGTDIR(64,AREA,0,SEG,,DBLK,FILSPC). Если IERR (R0) не равен нулю - была ошибка.
    Код:
    10$:    MOV     #ARGS2,R5
            CALL    IGTENT
            TST     R0
            BLT     30$
    Аналогично фортрановскому IERR = IGTENT(AREA,ENTRY,,BLOCK). Если результат меньше 0, больше искать нечего. В противном случае в 7-словыный массив ENTRY получаем запись каталога о файле в стандартном RT-11 формате.
    Код:
            MOV     #ENTRY+2,R0
            MOV     #FMTARG,R1
            CLR     (R1)+
            MOV     (R0)+,(R1)+
            MOV     (R0)+,(R1)+
            MOV     (R0)+,(R1)+
            CLR     (R1)+
            MOV     (R0)+,(R1)+
            MOV     #BUFF,R0
            MOV     #FORMAT,R1
            MOV     #FMTARG,R2
            CALL    $EDMSG
            CLRB    @R0
            .PRINT  #BUFF
            BR      10$
    Копируем данные в блок аргументов $EDMSG, печатаем, идем дальше...
    Код:
    20$:    .PRINT  #ERROR
    30$:    CLR     R0
            .EXIT
    Обработка ошибок, выход.
    Код:
    ARGS1:  .WORD   7,SIZE,AREA,CHAN,SEG,-1,DBLK,FILSPC
    SIZE:   .WORD   64.
    AREA:   .BLKW   64.
    CHAN:   .WORD   0
    SEG:    .BLKW   512.
    DBLK:   .RAD50  /SY          /
    
    ARGS2:  .WORD   5,AREA,ENTRY,-1,BLOCK
    ENTRY:  .BLKW   7
    BLOCK:  .BLKW
    
    FMTARG: .BLKW   6
    FORMAT: .ASCIZ  /%11<%X%11>%M./
    
    ERROR:  .ASCIZ  /IGTDIR FAILED/
    
    FILSPC: .ASCIZ  /.TXT,%%.SYS,UCL.*/
    
    BUFF:   .BLKB   40.
    
            .END    START
    Собственно все. FILSPC содержит список файлов которые нужно искать, со всякими *, % (ну и как обычно, опущенное поле считается за *), не более 8 спецификаций через запятую. Другие подробности в RT-11 System Subroutine Library Manual. Программа для простоты использует RSXLIB, описание его здесь.
    Код:
    .RU GTDIR
    DD.SYS     5.
    DU.SYS     11.
    EQ.SYS     10.
    LD.SYS     11.
    LP.SYS     2.
    LS.SYS     5.
    MU.SYS     14.
    NL.SYS     2.
    SD.SYS     24.
    SL.SYS     17.
    SP.SYS     7.
    VM.SYS     3.
    XL.SYS     4.
    UCL.SAV    16.
    UCL.DAT    9.
    CUSTOM.TXT 14.
    V5NOTE.TXT 36.
    
    .
    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

  6. #706

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Маленькие хитрости для драйверов.

    Решил рассмотреть некоторые моменты для ясности. В качестве первого примера - разборки с командами SET которые прерывают обработку команды (например выполняют .CHAIN или .EXIT). На форуме уже есть несколько таких драйверов.

    К примеру, драйвер поддерживает несколько команд SET (скажем [NO]OPT и VALUE) которые просто меняют какие-либо параметры драйвера и ON которая завершается по .EXIT (например для запуска системных команд). В этом случае, понятно, что команда вроде "SET XX ON,OPT" не дойдет до конца и звершится на разборе ON. Чтобы не вводить в заблуждение пользователя, будет полезно если драйвер предупредит об этом...
    Код:
    	.DRSET	ON,1,O.ON
    
    ;+
    ;ЗДЕСЬ R5 УКАЗЫВАЕТ НА СИМВОЛ КОМАНДНОЙ СТРОКИ, СЛЕДУЮЩИЙ ЗА ТЕКУЩЕЙ ОПЦИЕЙ.
    ;НАПРИМЕР ЕСЛИ ДЛЯ "SET XX ON,OPT" R5 УКАЗЫВАЕТ НА СИМВОЛ ",".
    ;СТРОКА ЗАПИСАНА В ОБРАТНОМ ПОРЯДКЕ.
    ;+
    O.ON:	TSTB	-(R5)			;ПРОВЕРЯЕМ СЛЕДУЮЩИЙ СИМВОЛ
    	BEQ	O.EXEC			;НУЛЕВОЙ БАЙТ - КОНЕЦ СТРОКИ
    	JSR	R0,10$			;ПЕЧАТАЕМ СООБЩЕНИЕ
    
    	.ASCII	/?XX-W-ON must be last option in set command/<15><12>
    	.ASCIZ	/?XX-W-Options ignored - /
    	.EVEN
    
    ;+
    ;В СТЕКЕ ЛЕЖИТ СОХРАНЕННОЕ СОДЕРЖИМОЕ R0. ДЛЯ ПРИЛИЧИЯ ЕГО МОЖНО
    ;ДОСТАТЬ, НО МОЖНО И ЗАБИТЬ - ВЕДЬ МЫ БУДЕМ ДЕЛАТЬ .EXIT
    ;
    ;ВО ВРЕМЯ ВЫПОЛНЕНИЯ КОМАНЛЫ SET В ПАМЯТЬ СЧИТЫВАЮТСЯ ДВА ПЕРВЫХ
    ;БЛОКА ДРАЙВЕРА. ПРИ УСПЕШНОМ ЗАВЕРШЕНИИ, МОНИТОР ЗАПИСЫВАЕТ ЭТИ ДВА
    ;БЛОКА ОБРАТНО В ФАЙЛ ДРАЙВЕРА. В НАШЕМ СЛУЧАЕ МЫ ЗАВЕРШАЕМ ОБРАБОТКУ
    ;МАКРОВЫЗОВОМ .EXIT, СООТВЕТСТВЕННО ДРАЙВЕР НЕ БУДЕТ ЗАПИСАН ОБРАТНО
    ;НА ДИСК И НИКТО НАМ НЕ МЕШАЕТ ИСПОЛЬЗОВАТЬ ОБЛАСТЬ ВТОРОГО БЛОКА
    ;В КАЧЕСТВЕ БУФЕРА.
    ;-
    10$:	.ADDR	#1000,R1		;ПОЛУЧАЕМ АДРЕС БУФЕРА
    	MOV	R1,R3			;СОХРАНЯЕМ ЕГО - ПРИГОДИТСЯ
    20$:	MOVB	(R0)+,(R1)+		;КОПИРУЕМ СООБЩЕНИЕ
    	BNE	20$			;
    	DEC	R1			;УБИРАЕМ НУЛЕВОЙ БАЙТ
    30$:	MOVB	-(R5),(R1)+		;КОПИРУЕМ ОСТАТОК КОМАНДЫ SET
    	BNE	30$			;
    	.PRINT	R3			;ПЕЧАТАЕМ СООБЩЕНИЕ
    
    O.EXEC:					;ДЕЛАЕМ ЧТО НУЖНО
    	.EXIT				;ВЫХОД
    Данный пример при выполнении команды SET XX ON,NOOPT,VALUE=1 будет выводить предупреждение
    Код:
    ?XX-W-ON must be last option in set command
    ?XX-I-Options ignored - NOOPT,VALUE=1


    ---------- Post added at 22:05 ---------- Previous post was at 20:42 ----------

    При написании драйвера следует помнить, что типы процессоров не ограничиваются одними ВМ1 и ВМ2. Особенно это актуально для ДВК.

    Данный драйвер перехватывает прерывание 10, отлавливает команды с кодом 77 и печатает хашик.

    Код:
            .DRDEF  XX,333,0,0,0,0
            .DRPTR  FETCH=*NO*,LOAD=XXLOA,UNLOAD=XXUNL
    
            .DRBEG  XX
    XXINT:: MOV     @SP,-(SP)		;ПОЛУЧАЕМ ПРЕДПОЛОЖИТЕЛЬНЫЙ АДРЕС
            SUB     #2,@SP			;КОМАНДЫ
            CMP     #77,@(SP)+		;ЕСЛИ КОД КОМАНДЫ НЕ 77
            BNE     10$			;ОТДАЕМ ПРЕРЫВАНИЕ
            TSTB    @#177564		;ПЕЧАТАЕМ СИМВОЛ #
            BPL     .-4			;
            MOVB    #'#,@#177566		;
    10$:    SEC				;ВОССТАНАВЛИВАЕМ БИТ C
            JMP     @(PC)+			;ОТДАЕМ В СИСТЕМУ
    XXISR:: .BLKW
    
            .DREND  XX
    
            .PSECT  SETOVR
    XXLOA:: MOV     @R5,R5			;ПОЛУЧАЕМ АДРЕС XXLQE
            MOV     @#10,XXISR-XXLQE(R5)	;СОХРАНЯЕМ СИСТЕМНЫЙ ОБРАБОТЧИК
            ADD     #XXINT-XXLQE,R5		;УСТАНАВЛИВАЕМ НАШ
            MOV     R5,@#10			;
            RETURN				;ВОЗВРАТ
    
    XXUNL:: MOV     @R5,R5			;ПОЛУЧАЕМ АДРЕС XXLQE
            MOV     XXISR-XXLQE(R5),@#10	;ВОССТАНАВЛИВАЕМ ОБРАБОТЧИК
            RETURN				;ВОЗВРАТ
    
            .END
    Здесь сразу три ошибки. Для XM/ZM мониторов драйвер получит неизвестно что вместо кода команды для виртуальной программы (бит 10 в JSW установлен) или для программы, запущенной через VBGEXE. Код должен быть поправлен:
    Код:
    XXINT:: MOV     @SP,-(SP)
            SUB     #2,@SP
    .IF     EQ      MMG$T
            CMP     #77,@(SP)+
    .IFF
            MFPI    @(SP)+
            CMP     #77,(SP)+
    .ENDC
    Вторая ошибка - тупое восстановление вектора при выгрузке драйвера. Если после нашего драйвера кто-то еще перехватил вектр 10, выгрузка может дать непредсказуемый эффект. Поэтому стоит проверить сначала можно ли делать выгрузку:
    Код:
    XXUNL:: CLR     R0			;ПРИ ОШИБКЕ В R0 МОЖНО
    					;ПОМЕСТИТЬ АДРЕС СООБЩЕНИЯ
    					;0-НЕТ СПЕЦИАЛЬНОГО СООБЩЕНИЯ
            MOV     @R5,R5			;ПОЛУЧАЕМ АДРЕС XXLQE
            MOV     R5,R4			;ПОЛУЧАЕМ АДРЕС XXINT
            ADD     #XXINT-XXLQE,R4		;
            CMP     R4,@#10			;ПРОВЕРЯЕМ ISR
            BNE     10$			;
            MOV     XXISR-XXLQE(R5),@#10	;ВОССТАНАВЛИВАЕМ
            TST     (PC)+			;КУ
    10$:    SEC				;КЮ
            RETURN				;
    Третья ошибка относится к маловероятному (но вполне возможному) случаю когда между сохранением старого значения вектора и установкой нового кто-то успеет перехватить вектор. В FB/XM/ZM мониторах сиуация вполне возможная. Так что такие вещи стоит выполнять на приоритете 7 процессора.

    ---------- Post added at 22:15 ---------- Previous post was at 22:05 ----------

    Еще пара слов про XB/XM/ZB/ZM мониторы (а заодно и про TSX). В случае с драйвером, мы заранее знаем будет он работать в системе с MMU или без. Соответственно многое можно упростить. Например наличие MMU автоматически означает наличие EIS (можно не писать универсальные заменители MUL/DIV/SOB итд). Также наличие MMU гарантирует наличие PSW по адресу 1(77)77776. Команд же MFPS/MTPS вполне может не быть (11/34, Электроника 100/25)...

    ---------- Post added at 22:43 ---------- Previous post was at 22:15 ----------

    Пара слов про драйверы, перехватывающие вектора 4 или 10. Если в момент входа в прерывание значение INTLVL >=0 в RMON, нет смысла что-то делать дальше - при отдаче такого прерывания в систему последовал бы ?MON-F-System halt (однако если драйвер используется чтобы сэмулировать команды процессора которые использует другой драйвер из под .DRAST...). Можно воспользоваться недокументированной фичей для такого случая (на примере прошлого драйвера):
    Код:
    ...
    XXINT:: TST     @(PC)+
    INTLVL: .BLKW
            BPL     10$
    ...
    XXLOA:: MOV     @R5,R5			;ПОЛУЧАЕМ АДРЕС XXLQE
            MOV     $INPTR-XXLQE(R5),R0	;ПОЛУЧАЕМ АДРЕС $INTEN
            CMP     (R0)+,(R0)+		;ПОЛУЧАЕМ АДРЕС INTLVL
            MOV     R0,INTLVL-XXLQE(R5)	;СОХРАНЯЕМ В ДРАЙВЕРЕ
    ...
    Примечание: в RT-11SJ без поддержки таймера нет INTLVL.
    Последний раз редактировалось form; 23.07.2014 в 10:49.
    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

  7. #706
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #707

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пара слов о поддержке расширенных номеров устройств в RT-11 V5.5 и новее - вытаскивать эту инфу из документации непросто, а посему напишу здесь как все делается.
    Код:
    ...
    ;+
    ;В ЭТОМ ПРИМЕРЕ ЕСЛИ В .CND ФАЙЛЕ ПРОПИСАНА ПОДДЕРЖКА РАСШИРЕННЫХ
    ;НОМЕРОВ УСТРОЙСТВ (0-77), МЫ ВКЛЮЧАЕМ ТАКУЮ ПОДДЕРЖКУ ДЛЯ ДРАЙВЕРА.
    ;ТАКАЯ ЗАВИСИМОСТЬ НЕ ЯВЛЯЕТСЯ ОБЯЗАТЕЛЬНОЙ - ДРАЙВЕР БЕЗ ПОДДЕРЖКИ
    ;РАСШИРЕННЫХ НОМЕРОВ МОЖЕТ РАБТАТЬ В СИСТЕМЕ С ПОДДЕРЖКОЙ И НАОБОРОТ.
    ;-
    .IIF	NDF	UNI$64	UNI$64=0
    
    ;+
    ;ДЛЯ ПОДДЕРЖКИ РАСШИРЕННЫХ НОМЕРОВ УСТРОЙСТВ, В ДРАЙВЕРЕ ДОЛЖНО БЫТЬ
    ;ОПРЕДЕЛЕНО XX$N64=1 (ГДЕ XX - ИМЯ ДРАЙВЕРА).
    ;-
    .IF	NE	UNI$64
    XX$N64	=	1			;ЕСТЬ ПОДДЕРЖКА
    .IFF
    XX$N64	=	0			;НЕТ ПОДДЕРЖКИ
    .ENDC
    ...
    .IF     NE      XX$N64
    ;+
    ;В .DRDEF ДОЛЖНО БЫТЬ УКАЗАНО UNIT64=YES ДЛЯ ПОДДЕРЖКИ РАСШИРЕННЫХ
    ;НОМЕРОВ УСТРОЙСТВ. ПО УМОЛЧАНИЮ ОДНОБУКВЕННОЕ ИМЯ УСТРОЙСТВА СОВПАДАЕТ
    ;С ПЕРВОЙ БУКВОЙ ИМЕНИ. ЕСЛИ ТРЕБУЕТСЯ ДРУГАЯ БУКВА, НУЖНО
    ;ОПРЕДЕЛИТЬ XX$PN2=^RY (ГДЕ Y - НУЖНАЯ БУКВА).
    ;-
    	.DRDEF	XX,367,FILST$!VARSZ$!SPFUN$,0,0,0,UNIT64=YES
    	.DRPTR	FETCH=XXLOA,LOAD=XXLOA,RELEASE=XXUNL,UNLOAD=XXUNL
    .IFF
    	.DRDEF	XX,367,FILST$!VARSZ$!SPFUN$,0,0,0
    .ENDC
    ...
    	MOVB	Q$UNIT(R4),R1		;ПОЛУЧАЕМ НОМЕР УСТРОЙСТВА
    	BIC	#^C7,R1			;УБИРАЕМ ЛИШНИЕ БИТЫ
    .IF	NE	XX$N64
    ;+
    ;ДОПОЛНИТЕЛЬНЫЕ БИТЫ РАСШИРЕННОГО НОМЕРА УСТРОЙСТВ БЕРУТСЯ ИЗ
    ;Q.FUNC ЭЛЕМЕНА ОЧЕРЕДИ И ОПРЕДЕЛЯЮТСЯ ТАК:
    ;	БИТ:	876543210
    ;		TNNNFFFFF
    ;
    ;ЕСЛИ T=0, ЭТО READ, WRITE ИЛИ ФУНКЦИИ РАБОТЫ С ФАЙЛАМИ ДЛЯ SPECL$ УСТРОЙСТВ.
    ;В ЭТОМ СЛУЧАЕ NNN - СТАРШИЕ БИТЫ НОМЕРА УСТРОЙСТВА, FFFF - ФУНКЦИЯ (000-017)
    ;
    ;ЕСЛИ T=1, ЭТО SPFUN, В ЭТОМ СЛУЧАЕ NNN - НУЖНО ИНВЕРТИРОВАТЬ,
    ;FFFF - ФУНКЦИЯ (360-377)
    ;-
    	MOVB	Q$FUNC(R4),R2		;ПОЛУЧАЕМ СТАРШИЕ БИТЫ
    	BPL	10$			;PL - OK
    	COM	R2			;ИНВЕРТИРУЕМ ДЛЯ SPFUN
    10$:	BIC	#^C160,R2		;УБИРАЕМ ЛИШНЕЕ
    	ASR	R2			;ДОБАВЛЯЕМ
    	BIS	R2,R1			;
    .ENDC
    ...
    ;+
    ;ДЛЯ МОНИТОРА С ПОДДЕРЖКОЙ РАСШИРЕННЫХ УСТРОЙСТВ И ПРИВЯЗКИ
    ;УСТРОЙСТВА ТРЕБУЕТСЯ ЗАПОЛНИТЬ/ОЧИСТИТЬ НЕКОТОРЫЕ ТАБЛИЦЫ.
    ;-
    .IF     NE      XX$N64
    	.PSECT	SETOVR
    $SYPTR	=	54			;УКАЗАТЕЛЬ НА RMON
    $PNPTR	=	404			;АДРЕС ТАБЛИЦЫ $PNAME
    
    $CNFG3	=	466			;ТРЕТЬЕ СЛОВО КОНФИГУРАЦИИ СИСТЕМЫ
    CF3.OW	=	2000			;В СИСТЕМЕ ЕСТЬ ТАБЛИЦА $OWNER
    CF3.64	=	400			;СИСТЕМА ПОДДЕРЖИВАЕТ РАСШИРЕННЫЕ
    					;НОМЕРА УСТРОЙСТВ
    
    ;+
    ;НА ВХОДЕ В ПОДПРОГРАММЫ ЗАГРУЗКИ/ВЫГРУЗКИ
    ;R2 = КОЛИЧЕСТВО СЛОТОВ ДЛЯ УСТРОЙСТВ (*2)
    ;R5 = УКАЗАТЕЛЬ НА $ENTRY ДРАЙВЕРА
    ;-
    XXLOA::	CALL	FIXOWN
    	BEQ	10$
    	ADD	#XX$X64-XXLQE,@R1
    10$:	RETURN
    
    XXUNL:	CALL	FIXOWN
    	BEQ	10$
    	CLR	@R1
    10$:	RETURN
    
    ;+
    ;НА ВХОДЕ
    ;R2 = КОЛИЧЕСТВО СЛОТОВ ДЛЯ УСТРОЙСТВ (*2)
    ;R5 = УКАЗАТЕЛЬ НА $ENTRY ДРАЙВЕРА
    ;
    ;НА ВЫХОДЕ
    ;Z=1 - НИЧЕГО НЕ ТРЕБУЕТСЯ ДЕЛАТЬ
    ;-
    FIXOWN: MOV	@#$SYPTR,R1		;ПОЛУЧАЕМ АДРЕС RMON
    	BIT	#CF3.64,$CNFG3(R1)	;ЕСТЬ ПОДДЕРЖКА РАСШИРЕННЫХ НОМЕРОВ?
    	BEQ	10$			;НЕТ
    	BIT	#CF3.OW,$CNFG3(R1)	;ЕСТЬ ТАБЛИЦА $OWNER
    	BEQ	10$			;НЕТ
    	MOV	R2,R3
    	ASL	R3
    	ASL	R3
    	ADD	R2,R3
    	MOV	$PNPTR(R1),-(SP)
    	ADD	R1,@SP
    	ADD	R2,@SP
    	MOV	R5,R1
    	SUB	(SP)+,R1
    	ADD	R5,R1
    	SUB	R3,R1
    	CMP	-(R1),-(R1)
    	MOV	@R5,-(R1)
    10$:	RETURN
    .ENDC
    Последний раз редактировалось form; 08.07.2014 в 22:14.
    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

  9. #708

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    374
    Поблагодарили
    311 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    form, а какие есть варианты запуска COM файла из приложения?
    через .CHAIN я понимаю - ничего не получится, надо наверное CSI команду
    формировать-передавать в MON ? (возможно уже обсуждали, но я что то не нашёл, нашлась только шпора Patrona по обработке приложением входящего CSI в теме pascal/macro-11). Простой пример такой надобности -
    к примеру в рамках сборника игр для эмулятора перед стартом игры - поднастроить УК-НЦ палитру или загрузить шрифт, а затем уже стартануть игру. В общем когда нужно цепочку команд выполнить, и есть ли шанс в процессе (наверное опять таки нету) избежать возможности прервать исполнение COM файла пользователем?
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  10. #709

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    form, а какие есть варианты запуска COM файла из приложения?
    Запускается командой .EXIT в особом режиме. Пример есть в описании макробиблиотеки.
    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

  11. #710

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Еще пара слов про драйверы... Фича: в инсталяционной процедуре допускается обращение к несуществующей памяти/несуществующему регистру, при этом бит C взводится в случае ошибки. Соответственно можно использовать TST для проверки наличия регистра.
    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

Страница 71 из 157 ПерваяПервая ... 676869707172737475 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)

Похожие темы

  1. Программирование на Эмуляторе. Возможно ли это?
    от Toxic в разделе Программирование
    Ответов: 10
    Последнее: 20.01.2008, 19:20
  2. Программирование Altera и JTAG
    от Mikka_A в разделе Несортированное железо
    Ответов: 7
    Последнее: 18.01.2008, 09:07
  3. Программирование и софтмейк на NES
    от Splinter в разделе Nintendo
    Ответов: 7
    Последнее: 30.06.2006, 04:31

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •