Так и есть, сработало. То есть - я нигде и не утверждал что всю это регистровую
математику понимаю, если речь идёт об адресе нужно ставить "косвенно".
Вот я читал мат. часть честно, но на слове вектор всегда засыпаю )))
Косвенно-непосредственно наше всё !!! )))
Ну да я пробел нажал? Он самый удобный )Код:16 .TTYIN 17 2$: MOVB R0, @KEYCODE(SP) 18 */ 19 1 2 1 END; 20 21 BEGIN 22 1 1 1 WRITELN(CHR(14),'navmite l`bu` klawi{u',CHR(15)); 23 2 1 1 KEYPRESS(RP); 24 3 1 1 WRITELN('uh ty!!!'); 25 4 1 1 KEYPRESS(RP); 26 5 1 1 WRITELN('BYE',RP); 27 6 1 1 END. ERRORS DETECTED: 0 FREE MEMORY: 9615 WORDS ERRORS DETECTED: 0 FREE MEMORY: 9615 WORDS НАЖМИТЕ ЛЮБУЮ КЛАВИШУ uh ty!!! BYE 32 .
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
Получается как-то вот так:
@ - не понадобился, но в ассемблерном листингеКод:.@MTFQ TFQQQ1 OMSI PASCAL-1 RT11 V1.1G 19- -82 Page 1 Univ. Tasmania, Info. Sciences, Physics Bldg, Hobart 7001, site #72-12 LINE STMT LEVEL NEST SOURCE STATEMENT 1 PROGRAM TFQQQ1; 2 /*$C .MCALL .TTYIN 3 */ 4 VAR 5 RP: INTEGER; 6 7 FUNCTION KEYPRESS: INTEGER; 8 VAR KEYCODE: INTEGER; 9 BEGIN 10 /*$C BIS #^O10000,@#^O44 11 .TTYIN 12 CMPB R0,#27. 13 BNE 1$ 14 .TTYIN 15 1$: CMPB R0,#13. 16 BNE 2$ 17 .TTYIN 18 2$: MOVB R0, KEYCODE(SP) 19 */ 20 1 2 1 KEYPRESS:=KEYCODE; 21 2 2 1 END; 22 23 BEGIN 24 1 1 1 WRITELN(CHR(14),'navmite l`bu` klawi{u',CHR(15)); 25 2 1 1 RP:=KEYPRESS; 26 3 1 1 WRITELN('uh ty!!!'); 27 4 1 1 RP:=KEYPRESS; 28 5 1 1 WRITELN('BYE',RP); 29 6 1 1 END. ERRORS DETECTED: 0 FREE MEMORY: 9625 WORDS ERRORS DETECTED: 0 FREE MEMORY: 9625 WORDS НАЖМИТЕ ЛЮБУЮ КЛАВИШУ uh ty!!! BYE 32 .
"проблемная" команда выглядит так
??? - вопрос не программиста (озвучивать не надо я думаю)Код:.PASDWK TFQQQ1=TFQQQ1 ERRORS DETECTED: 0 FREE MEMORY: 10111 WORDS .TY TFQQQ1.MAC .MCALL .TTYIN .GLOBL $RESR6,$RESR5,$KORE,$SAV10,$VER .GLOBL $BEGIN,FILE,$TTY,$END .RADIX 10 L0: CLR -(6) JSR %0,$B74 .GLOBL $B74 BIS #^O10000,@#^O44 .TTYIN CMPB R0,#27. BNE 1$ .TTYIN 1$: CMPB R0,#13. BNE 2$ .TTYIN 2$: MOVB R0, 10(SP) MOV 10(6),14(6) JSR %0,$B76 .GLOBL $B76 ADD #2,%6 RTS %7 $VER=59. $BEGIN: ADD #2,$KORE JSR %7,$B127 .GLOBL $B127 MOV #14,-(6) CLR -(6) JSR %7,$B20 .GLOBL $B20 MOV #L1,-(6) MOV #21,-(6) CLR -(6) JSR %7,$B32 .GLOBL $B32 MOV #15,-(6) CLR -(6) JSR %7,$B20 JSR %7,$B36 .GLOBL $B36 CLR -(6) JSR %7,L0 MOV (6)+,%0 MOV %0,@%5 MOV #L2,-(6) MOV #8,-(6) CLR -(6) JSR %7,$B32 JSR %7,$B36 CLR -(6) JSR %7,L0 MOV (6)+,%0 MOV %0,@%5 MOV #L3,-(6) MOV #3,-(6) CLR -(6) JSR %7,$B32 MOV @%5,-(6) CLR -(6) JSR %7,$B24 .GLOBL $B24 JSR %7,$B36 JMP $END L1: .WORD 24942 .WORD 28022 .WORD 29801 .WORD 8293 .WORD 24684 .WORD 30050 .WORD 8288 .WORD 27755 .WORD 30561 .WORD 31593 .WORD 117 L2: .WORD 26741 .WORD 29728 .WORD 8569 .WORD 8481 .WORD 0 L3: .WORD 22850 .WORD 69 .END .
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
А как же без MOV - откуда функция вдруг сама себе содержимое регистра присвоит?
---------- Post added at 17:17 ---------- Previous post was at 17:13 ----------
Нет содержимое R0 надо присваивать ручками )))
http://zx-pk.ru/showpost.php?p=763195&postcount=144
Иначе опять нули нули нули )))
---------- Post added at 17:19 ---------- Previous post was at 17:17 ----------
Вот почему там без @ сработало??? (в случае функции)
Ведь это математика - тут четкий закон работать должен, разве нет?
http://zx-pk.ru/showpost.php?p=763195&postcount=144
тут присваиваем ручками там есть и ассемблерный листинг
без MOV? тупо без MOV? я попробую конечно ))) Как то так?
Код:PROGRAM TFQQQ1; /*$C .MCALL .TTYIN */ VAR RP: INTEGER; FUNCTION KEYPRESS: INTEGER; BEGIN /*$C BIS #^O10000,@#^O44 .TTYIN CMPB R0,#27. BNE 1$ .TTYIN 1$: CMPB R0,#13. BNE 2$ .TTYIN 2$: */ END; BEGIN WRITELN(CHR(14),'navmite l`bu` klawi{u',CHR(15)); RP:=KEYPRESS; Exit? Y .PASDWK TFQQQ1=TFQQQ1 ERRORS DETECTED: 0 FREE MEMORY: 10111 WORDS .MAC TFQQQ1 .LIN TFQQQ1,PASDWK .TFQQQ1 НАЖМИТЕ ЛЮБУЮ КЛАВИШУ uh ty!!! BYE 0 .TY TFQQQ1.MAC .MCALL .TTYIN .GLOBL $RESR6,$RESR5,$KORE,$SAV10,$VER .GLOBL $BEGIN,FILE,$TTY,$END .RADIX 10 L0: JSR %0,$B74 .GLOBL $B74 BIS #^O10000,@#^O44 .TTYIN CMPB R0,#27. BNE 1$ .TTYIN 1$: CMPB R0,#13. BNE 2$ .TTYIN 2$: JSR %0,$B76 .GLOBL $B76 RTS %7 $VER=59. $BEGIN: ADD #2,$KORE JSR %7,$B127 .GLOBL $B127 MOV #14,-(6) CLR -(6) JSR %7,$B20 .GLOBL $B20 MOV #L1,-(6) MOV #21,-(6) CLR -(6) JSR %7,$B32 .GLOBL $B32 MOV #15,-(6) CLR -(6) JSR %7,$B20 JSR %7,$B36 .GLOBL $B36 CLR -(6) JSR %7,L0 MOV (6)+,%0 MOV %0,@%5 MOV #L2,-(6) MOV #8,-(6) CLR -(6) JSR %7,$B32 JSR %7,$B36 CLR -(6) JSR %7,L0 MOV (6)+,%0 MOV %0,@%5 MOV #L3,-(6) MOV #3,-(6) CLR -(6) JSR %7,$B32 MOV @%5,-(6) CLR -(6) JSR %7,$B24 .GLOBL $B24 JSR %7,$B36 JMP $END L1: .WORD 24942 .WORD 28022 .WORD 29801 .WORD 8293 .WORD 24684 .WORD 30050 .WORD 8288 .WORD 27755 .WORD 30561 .WORD 31593 .WORD 117 L2: .WORD 26741 .WORD 29728 .WORD 8569 .WORD 8481 .WORD 0 L3: .WORD 22850 .WORD 69 .END .
---------- Post added at 18:01 ---------- Previous post was at 17:38 ----------
В любом случае имеем практически идеальную процедуру=функцию для опроса клавиатуры на паскале с ожиданием нажатия клавиши!!! Ура! (оба листинга смотрите выше!). И это только один из вариантов, который в теории должен работать под RT-11 везде(!), ещё вариант Patrona с третьей переменной и использование библиотеки фортрана никто не отменял )))
На глазок подогнал секунду = 30000 прогонам цикла i:=i-1;
Значение подобрано из исходников игры SUPRIS, под скорость эмуляции
ВМ2 в UKNCBTL. В новом эмуляторе ДВК задержку надо незначительно увеличивать.
Код:PROGRAM HWCODE; VAR IT: INTEGER; PROCEDURE AT(CURX,CURY:INTEGER); BEGIN WRITE(CHR(27),'Y',CHR(32+CURY),CHR(32+CURX)); END; PROCEDURE SECUNDER(IT:INTEGER); VAR KW:INTEGER; BEGIN IF IT>0 THEN BEGIN FOR KW:=0 TO 30000 DO; IT:=IT-1; END; END; PROCEDURE CLS; BEGIN WRITE(CHR(27),'H',CHR(27),'J'); END; BEGIN IT:=10; CLS; REPEAT AT(15,10);WRITE('Время до выхода в ОС: ',IT:2,' SEC.'); SECUNDER(1); IT:=IT-1; UNTIL IT=0; END.UKNCBTL
[свернуть]
Эмулятор ДВК.
[свернуть]
Система GRAY с графическими процедурами для линий\окруж. и шрифтов
(строго для УК-НЦ), которую я тут вкратце описывал http://zx-pk.ru/showpost.php?p=721122&postcount=135 доступна на дискетах Сергея Фоменко и является его авторской разработкой (там и описание авторское есть к ней)
http://archive.pdp-11.org.ru/ukdwk_a...Pcorp_Fomenko/
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)