Last modified by Max on 2025/03/02 15:18

From version 2.47
edited by Max
on 2025/02/25 15:12
Change comment: (Autosaved)
To version 2.44
edited by Max
on 2025/02/25 15:02
Change comment: (Autosaved)

Summary

Details

Page properties
Content
... ... @@ -657,18 +657,18 @@
657 657  Example program
658 658  
659 659  {{code language="assembler"}}
660 -AZ$CSR = 177220; Command and Status Register (CSR)
661 -AZ$DR = 177222; Data Register (DR)
660 +AZ$CSR = 177220; регистр команд и состояния (CSR)
661 +AZ$DR = 177222; регистр данных (DR)
662 662  
663 663  
664 -; trap 50 - reset AZ
664 +; trap 50 - cброс AZ
665 665  ; результат в R1 =0 ok
666 666  AZreset: MOV #AZ$CSR,R1
667 -1$: CLR (R1); Send the "Reset" command
668 - TSTB (R1); Check the controller readiness
669 - BPL 1$; If not ready, reset again
670 -; once and check again
671 - TST (R1); Check for an error,
667 +1$: CLR (R1); Пошлем команду "Сброс"
668 + TSTB (R1); Проверим готовность контроллера
669 + BPL 1$; Если не готов, сбрасываем еще
670 + ; раз и проверяем снова
671 + TST (R1); Проверим на ошибку,
672 672   BMI 0ERR$
673 673   CLR R1
674 674   return
... ... @@ -676,27 +676,27 @@
676 676   COM R1
677 677   return
678 678  
679 -; trap 55 - write non-volatile memory from the buffer at address ADREEPROMMEM в блок 1 EEPROM
679 +; trap 55 - запись энергонезависимой памяти из буфера с адреса ADREEPROMMEM в блок 1 EEPROM
680 680  WriteEEPROM: push R1
681 681   push R2
682 682   push R3
683 - call AZreset; reset
683 + call AZreset; сбросим
684 684   tst R1
685 685   bne 0ERR$
686 686  
687 687   MOV #AZ$CSR,R1
688 - mov #23,(R1);command that we will write data to the buffer
689 -0$: TSTB (R1); check the result of executio
690 - BPL 0$; wait
691 - TST (R1)+; increment
688 + mov #23,(R1); командуем что будем писать данные в буфер
689 +0$: TSTB (R1); проверяем результат выполнения
690 + BPL 0$; ждем
691 + TST (R1)+; инкрементируем
692 692   mov #ADREEPROMMEM+2,R3
693 - mov #255.,R2; write 255. words; skip the first word - the result of reading
694 -1$: mov (R3)+,(R1); send to the controller
693 + mov #255.,R2; пишем 255. слов; первое слово пропускаем - результат чтения
694 +1$: mov (R3)+,(R1); отдаем в контроллер
695 695   sob R2,1$
696 - tst -(R1); decrement
697 - mov #24,(R1); write from the buffer to block 1 of non-volatile memory
698 -2$: TSTB (R1); check the result of execution
699 - BPL 2$; we are waiting
696 + tst -(R1); декрементируем
697 + mov #24,(R1); записать из буфера в блок 1 энергонезависимой памяти
698 +2$: TSTB (R1); проверяем результат выполнения
699 + BPL 2$; ждем
700 700   br 0END$
701 701  0ERR$: CLR R3
702 702  0END$: pop R3
... ... @@ -705,21 +705,23 @@
705 705   return
706 706  {{/code}}
707 707  
708 -**Please note** that when recording, the buffer immediately comes with the data, i.e. there is no first word with the statu
708 +**Обращаю внимание**, при записи, буфер идет сразу с данными, те нет первого слова со статусом.
709 709  
710 710  
711 711  
712 -= Block of commands for working with RTC and NTP =
712 += Блок команд для работы с RTC и NTP =
713 713  
714 -The AZ® controller has 2 sources of date-time, the first is the RTC built into the STM32, the second is the clock in the TCP/IP stack. The RTC clock works autonomously with a 2032 battery installed. The clock in the TCP/IP stack is set based on data from the NTP server.
714 +В контроллере AZ®  есть 2 источника получения даты-времени, первый это RTC встроенный в STM32, второй это часы в стеке TCP/IP.  Часы RTC работают автономно при наличии установленной батарейки 2032. Часы в стеке TCP/IP устанавливаются на основании данных с NTP-сервера.
715 715  
716 716  
717 -== Buffer format timestamp (readable) ==
717 +== Формат буфера timestamp (доступен по чтению) ==
718 718  
719 -The controller API immediately prepares time in several formats, so that it can be conveniently used on the PDP-11 side
719 +API контроллера сразу готовит время в нескольких форматах, дабы его было удобно применить на стороне PDP-11
720 720  
721 721  {{info}}
722 -datetime buffer format octal offset - those words datetime buffer format
722 +формат буфера даты-времени
723 +offset в восьмеричной системе - те слова
724 +формат буфера даты-времени
723 723  \\[0]=rtc_rt11date();
724 724  [2]=rt11 time 50Hz big word;
725 725  [4]=rt11 time 50Hz little word;
... ... @@ -737,47 +737,47 @@
737 737  {{/info}}
738 738  
739 739  
740 -== SimpleIN buffer format (when writing) ==
742 +== Формат буфера SimpleIN (при записи) ==
741 741  
742 -the format is simplified as much as possible, for work with PDP-11
744 +формат максимально упрощен, для работы со стороны PDP-11
743 743  
744 744  {{info}}
745 -offset in octal - those words
747 +offset в восьмеричной системе - те слова
746 746  
747 -[0]=year, the lower two digits are 22 and not 2022(!)
748 -[2]=month; month
749 -[4]=day; day
750 -[6]=wday; day of the week =0 not set, 1 - Monday 2 - Tuesday etc.
751 -[10]=hour; hour
752 -[12]=min; minute
753 -[14]=sec; second
749 +[0]=year       год, младшие две цифры - те 22 а не 2022(!)
750 +[2]=month;     месяц
751 +[4]=day;       день
752 +[6]=wday;      день недели =0 не установлен, 1- понедельник 2 - вторник итд
753 +[10]=hour;     час
754 +[12]=min;      минута
755 +[14]=sec;      секунда
754 754  {{/info}}
755 755  
756 756  
757 -== 031: Get time from RTC to timestamp buffer ==
759 +== **031:  Получить время из RTC в буфер timestamp** ==
758 758  
759 -Command code 031, this command uses RTC clock as a source of filling the timestamp buffer
761 +Код команды 031, данная команда использует RTC часы как источник заполнения буфера timestamp
760 760  
761 -Example program:
763 +Пример программы:
762 762  
763 763  {{code language="assembler"}}
764 -; trap 61 - reading clock data from autonomous RTC clock
765 -; R3 - buffer address where to read
766 -; result in R3 address if successful. R3=0 if error
766 +; trap 61 - чтение данных часов из автономных часов RTC
767 +; R3 - адрес буфера куда надо считать
768 +; результат в R3 адрес, если успешно. R3=0 если ошибка
767 767  GetDateFromRTC: push R0
768 768   push R1
769 769   push R2
770 - call AZreset; reset
772 + call AZreset; сбросим
771 771   tst R1
772 772   bne G60ERR
773 773   MOV #AZ$CSR,R1
774 774   mov #31,(R1)
775 - br G60; let's go there because further code is the same
777 + br G60; идем туда тк дальше код одинаковый
776 776  {{/code}}
777 777  
778 -== 032: Get time from timestamp buffer ==
780 +== **032:  Получить время из буфера timestamp** ==
779 779  
780 -Command code 032, this command sends the contents of the timestamp buffer to the bus
782 +Код команды 032, данная команда отдает на шину содержимое буфера timestamp
781 781  
782 782  {{code language="assembler"}}
783 783  ; работа с часами