Важная информация

User Tag List

Страница 50 из 157 ПерваяПервая ... 464748495051525354 ... ПоследняяПоследняя
Показано с 491 по 500 из 1564

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

  1. #491

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

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    А в программе выше недоделка - в 510 должна записываться длина команды.
    Можно подробней?
    Вариант Patrona справно выдаёт каталог диска )))
    Если например команду пользователь будет вбивать, там длину легко поймать, только
    вот как её в ассемблере класть-слать в 510, а самое главное в каком месте - тут я уже увы (((
    Архив программ для УК-НЦ, ДВК и БК.

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

  2. #492

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

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    Можно подробней?
    The .EXIT request enables a user program to pass command lines to KMON in the chain information area (locations 500-777) for execution after the job exits. This is performed under the following conditions:

    • The word (not byte) location 510 must contain the total number of bytes of command lines to be passed to KMON.
    • The command lines are stored, beginning at location 512. The lines must be .ASCIZ strings with no embedded carriage return or line feed. For example:

    Код:
    	.TITLE	EEXIT1.MAC
    XIT.NU	=:	510		;(.XITDF) char count
    XIT.AS	=:	512		;(.XITDF) .Asciz command(s)
    
    	.=XIT.NU
    	.WORD B-A
    
    	.=XIT.AS
    A:	.ASCIZ /COPY A.MAC B.MAC/
    	.ASCIZ /DELETE A.MAC/
    B:
    The user program must set SPXIT$ or CHNIF$ in the Job Status Word before
    doing an .EXIT, which must be issued with R0 = 0.
    Последний раз редактировалось form; 30.12.2012 в 16:34.
    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

  3. #493

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

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    which must be issued with R0 = 0.
    Действительно, пишут, что ТАК НАДО! )))

    первоисточник (откуда у меня эта шпора и кто её писал история умалчивает)
    Код:
    командная строка из программы: !!!
    
    	.RADIX	8
    	MOV	#ENDC-STARTC, R1 - вот та самая попытка положить длину???
    	MOV	#STARTC, R1 - а вот эта строка тогда зачем ???
    	MOV	#ENDC-STARTC, R2
    	MOV	#512, R3 - остальное это надо уже систему знать 
    PUK:	MOVB	(R1)+, (R3)+
    	SOB	R2, PUK
    	BIS	#4000, @#44
    	CLR	R0
    	EMT	350
    STARTC:	.ASCIZ	"DIR/FU/VOL/BL DK:"
    ENDC:	.EVEN
    вариант патрона - рабочий (!)

    Код:
    Рабочий вариант выглядит так:
    Код:
    
    ;
    	.MCall	.Exit
    
    START:
    	Mov	#CMD, R3
    	Mov	#512, R1
    1$:
    	MovB	(R3)+,(R1)+
    	BNE	1$
    
    	Sub	#512, R1
    	Mov	R1, @#510
    
    	BiS	#4000, @#44
    	Clr	R0
    	.Exit
    
    CMD:	.ASCIZ	\$Dir/Fu/Bl/Vol\
    
    .End	START
    Архив программ для УК-НЦ, ДВК и БК.

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

  4. #494

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Легко заметить, что в рабочем варианте в ячейку 510 заносится длина строки.

  5. #495

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Легко заметить, что в рабочем варианте в ячейку 510 заносится длина строки.
    Именно.
    Хотя если команда фиксированная, проще занести все это изначально в образ программы без всяких команд для этого
    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. #496

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В нерабочем варианте нужно строку
    Код:
    	MOV	#ENDC-STARTC, R1
    заменить на
    Код:
    	MOV	#ENDC-STARTC, @#510


    ---------- Post added at 16:00 ---------- Previous post was at 15:33 ----------

    Продвинутый вариант - выполняет введённую с клавиатуры команду и снова запускает сам себя ( файл CMD2.MAC ):
    Код:
    ;
    	.MCall	.Exit, .TTYIN, .Print
    
    START:
    	.Print	#Prompt
    	Mov	#512, R1
    1$:
    	.TTYIN
    	CmpB	R0, #15
    	BEq	2$
    	CmpB	R0, #40
    	BLt	1$
    	CmpB	R0, #177
    	BEq	1$
    	MovB	R0, (R1)+
    	Br	1$
    2$:
    	Cmp	R1, #512
    	BNE	3$
    	.Print	#Help
    	Br	START
    3$:
    	ClrB	(R1)+
    
    	Mov	#CMD, R3
    	MovB	(R3)+,(R1)+
    	BNE	.-2.
    
    	Sub	#512, R1
    	Mov	R1, @#510
    
    	.Print	#CrLf
    
    	BiS	#4000, @#44
    	Clr	R0
    	.Exit
    
    ;===========================================================
    
    Prompt:	.ASCII	<015><012><016>\Введите команду >\<017><200>
    Help:	.ASCII	<015><012><016>\Исполнитель команд \<017>\v1.0\
    CrLf:	.Byte	0
    CMD:	.ASCIZ	\$RU CMD2\
    
    .End	START
    ;
    Последний раз редактировалось Patron; 30.12.2012 в 17:29.

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

  8. #497

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Продвинутый вариант
    А зачем ввод команды так сложно делается?
    Причем реально .TTYIN не будет отдавать символов пока не будет нажат <CR> в данном примере
    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. #498

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    А зачем ввод команды так сложно делается?
    А как ввести строку из нескольких слов, чтобы она скопировалась в буфер без перестановки слов ?

  10. #499

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    А как ввести строку из нескольких слов, чтобы она скопировалась в буфер без перестановки слов ?
    .GTLIN ничего не переставляет.
    Переставляет CCL если ты ввод пишешь прямо в командной строке "progname arg1 arg2" - в этом случае он пытается странслировать в CSI формат.
    Последний раз редактировалось form; 30.12.2012 в 17:17.
    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. #500

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вариант с .GTLIN ( файл CMD3.MAC )
    Код:
    ;
    	.MCall	.Exit, .GtLin, .Print
    
    START:
    	.Print	#CrLf
    
    	Mov	#512, R1
    	Mov	#CmdBuf, R3
    
    	.GtLin	R3, #Prompt
    
    	TstB	(R3)
    	BNE	1$
    
    	.Print	#Help
    	Br	START
    1$:
    	MovB	(R3)+,(R1)+
    	BNE	.-2.
    
    	Mov	#CMD, R3
    
    	MovB	(R3)+,(R1)+
    	BNE	.-2.
    
    	Sub	#512, R1
    	Mov	R1, @#510
    
    	.Print	#CrLf
    
    	BiS	#4000, @#44
    	Clr	R0
    	.Exit
    
    ;===========================================================
    
    Prompt:	.ASCII	<015><016>\Введите команду >\<017><200>
    Help:	.ASCII	<015><012><016>\Исполнитель команд \<017>\v2.0\
    CrLf:	.Byte	0
    CMD:	.ASCIZ	\$RU CMD3\
    
    CmdBuf:
    
    .End	START
    ;

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

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

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

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

Похожие темы

  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

Ваши права

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