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.51
edited by Max
on 2025/02/25 15:22
Change comment: (Autosaved)

Summary

Details

Page properties
Content
... ... @@ -780,29 +780,29 @@
780 780  Command code 032, this command sends the contents of the timestamp buffer to the bus
781 781  
782 782  {{code language="assembler"}}
783 -; работа с часами
784 -; trap 60 - чтение данных часов из TCP/IP стека
785 -; R3 - адрес буфера куда надо считать
786 -; результат в R3 адрес, если успешно. R3=0 если ошибка
783 +; working with clock
784 +; trap 60 - reading clock data from TCP/IP stack
785 +; R3 - buffer address where to read
786 +; result in R3 address if successful. R3=0 if error
787 787  GetDateFromLAN: push R0
788 788   push R1
789 789   push R2
790 - call AZreset; сбросим
790 + call AZreset; reset
791 791   tst R1
792 792   bne G60ERR
793 793   MOV #AZ$CSR,R1
794 794   mov #42,(R1)
795 -G60: TSTB (R1); проверяем результат выполнения
796 - BPL G60; ждем
795 +G60: TSTB (R1); check execution result
796 + BPL G60; wait
797 797   mov #32,(R1)
798 -1$: TSTB (R1); проверяем результат выполнения
798 +1$: TSTB (R1); check execution result
799 799   BPL 1$; ждем
800 - TST (R1)+; инкрементируем
801 - mov R3,R0; запомним R3 - адрес
802 - mov #10.,R2; читаем 10 слов
803 -2$: mov (R1),(R3)+; читаем блок слов в память
800 + TST (R1)+; increment
801 + mov R3,R0; remember R3 address
802 + mov #10.,R2; read 10 words
803 +2$: mov (R1),(R3)+; read block of words into memory
804 804   sob R2,2$
805 - mov R0,R3; успешно, вернем адрес в R3
805 + mov R0,R3; successful, return address to R3
806 806   br 0END$
807 807  G60ERR: CLR R3
808 808  0END$: pop R2
... ... @@ -811,11 +811,11 @@
811 811   return
812 812  {{/code}}
813 813  
814 -Стоит проверить корректность полученного времени:
814 +It is worth checking the correctness of the received time:
815 815  
816 816  {{code language="assembler"}}
817 -; trap 63 - проверка корректности времени
818 -; R3 - адрес буфера, результат в R3, если адрес буфера то OK, =0 ошибка
817 +; trap 63 - check time correctness
818 +; R3 - buffer address, result in R3, if buffer address then OK, =0 error
819 819  CheckDateTime: Cmp 6(r3),#2021.
820 820   Blos 1err
821 821   Cmp 6(r3),#2100.
... ... @@ -825,94 +825,94 @@
825 825   return
826 826  {{/code}}
827 827  
828 -== **033:  Запись времени-даты в буфер SimpleIN** ==
828 +== 033: Write time-date to SimpleIN buffer ==
829 829  
830 -Код команды 033, данная команда  принимает с шины данные в буфер SimpleIN
830 +Command code 033, this command receives data from the bus into the SimpleIN buffer
831 831  
832 -Работа данной команды аналогична работе команд [[023>>doc:||anchor="H023:41F44043843D44F44244C44144843843D44B43243144344443544043443043D43D44B43543443B44F43F43E44143B43543444344E44943543943743043F438441438432431443444435440"]] и [[016>>doc:||anchor="H016:A041F44043843D44F44244C43143B43E43A43443043D43D44B445432431443444435440"]].
832 +The operation of this command is similar to the operation of commands 023 and 016.
833 833  
834 -== **034:  Установка RTC на основании данных из буфера** ==
834 +== 034: Set RTC based on buffer data ==
835 835  
836 -Код команды 034, данная команда  устанавливает RTC на основании данных в буфере SimpleIN
836 +Command code 034, this command sets the RTC based on the data in the SimpleIN buffer
837 837  
838 -Данная команда выполняется быстро, но для исключения проблем цикл ожидания выполнения рекомендуется.
838 +This command executes quickly, but to avoid problems, a wait loop is recommended.
839 839  
840 -== **035:  Стимуляция запроса времени с NTP сервера, установка на основании ответа** ==
840 +== 035: Stimulate time request from NTP server, set based on response ==
841 841  
842 -Код команды 035, данная команда отправляет запрос на NTP cервер (установленный в AZ.INI файле или полученный от DHCP) и устанавливает часы в стеке TCP/IP.
842 +Command code 035, this command sends a request to the NTP server (set in the AZ.INI file or received from DHCP) and sets the clock in the TCP/IP stack.
843 843  
844 -Пример программы: отсылка запроса на установку времени с NTP сервера
844 +Example program: sending a request to set the time from an NTP server
845 845  
846 846  {{code language="assembler"}}
847 -; trap 62 - отсылка запроса на установку времени с NTP сервера
847 +; trap 62 - sending a request to set the time from the NTP server
848 848  GetDateNTPtoNET:push R1
849 - call AZreset; сбросим
849 + call AZreset; reset
850 850   tst R1
851 851   bne 0ERR$
852 852   MOV #AZ$CSR,R1
853 853   mov #35,(R1)
854 -0$: TSTB (R1); проверяем результат выполнения
855 - BPL 0$; ждем
854 +0$: TSTB (R1); check the result of execution
855 + BPL 0$; wait
856 856  0ERR$: pop R1
857 857   return
858 858  {{/code}}
859 859  
860 -Выполнение команды занимает 1-2 секунды в среднем. Данная команда требует работы стека TCP/IP, соответственно нужны циклы ожидания при включенном стеке.
860 +The command execution takes 1-2 seconds on average. This command requires the TCP/IP stack to work, so waiting cycles are needed when the stack is enabled.
861 861  
862 -Пример цикла опроса с целью получить время с сети
862 +An example of a polling cycle to get time from the network
863 863  
864 864  {{code language="assembler"}}
865 -; дата-время
865 +; date-time
866 866   mov #S_DateTime_0,R3; "Lan Date:"
867 867   trap 10
868 - mov #20,R4; количество циклов ожидания
869 -$datry: trap 62; отослали запрос к NTP серверу
870 - mov #110,@#AZ$CSR; включим сеть
871 - trap 47; ожидание
872 - trap 47; ожидание
868 + mov #20,R4; number of wait cycles
869 +$datry: trap 62; sent a request to the NTP server
870 + mov #110,@#AZ$CSR; enable the network
871 + trap 47; waiting
872 + trap 47; waiting
873 873   mov #ADRTMPSTR,R3
874 - trap 60; считали в буфер дату-время
875 - trap 63; проверили дату-время
874 + trap 60; read the date-time into the buffer
875 + trap 63; checked the date-time
876 876   tst R3
877 877   bne $ok
878 878  $sob: sob R4,$datry
879 - mov #S_DateTime_2,R3; печать ошибки
879 + mov #S_DateTime_2,R3; print error
880 880   trap 7
881 881   br $go
882 882  
883 883  $ok: mov #ADRTMPSTR,R3
884 - trap 24; печать даты
885 - trap 25; времени
886 -$go: mov #110,@#AZ$CSR; включим сеть
884 + trap 24; print date
885 + trap 25; time
886 +$go: mov #110,@#AZ$CSR; let's turn on the network
887 887  {{/code}}
888 888  
889 -Тут мы явно отсылаем запрос к NTP серверу, затем включаем работу сети и ждем результата, периодически опрашивая и проверяя корректность результата.
889 +Here we explicitly send a request to the NTP server, then turn on the network and wait for the result, periodically polling and checking the correctness of the result.
890 890  
891 -== **036:  Установка RTC на основании часов TCP/IP стека** ==
891 +== 036: Setting RTC based on TCP/IP stack clock ==
892 892  
893 -Код команды 036,  данная команда устанавливает RTC на основании часов в TCP/IP стека. Предварительно надо установить часы в TCP/IP - команда 036.
893 +Command code 036, this command sets the RTC based on the clock in the TCP/IP stack. You must first set the clock in TCP/IP - command 036.
894 894  
895 -Пример программы:
895 +Example program:
896 896  
897 897  {{code language="assembler"}}
898 -; trap 64 - установка времени RTC на основании времени стека
899 -; R1 - результат R1=0 - OK
900 -SetDateNETtoRTC:call AZreset; сбросим
898 +; trap 64 - set RTC time based on stack time
899 +; R1 - result R1=0 - OK
900 +SetDateNETtoRTC:call AZreset; reset
901 901   tst R1
902 902   bne 0ERR$
903 903   MOV #AZ$CSR,R1
904 904   mov #36,(R1)
905 -0$: TSTB (R1); проверяем результат выполнения
906 - BPL 0$; ждем
905 +0$: TSTB (R1); check execution result
906 + BPL 0$; wait
907 907   clr R1
908 908  0ERR$: return
909 909  {{/code}}
910 910  
911 -== **042:  Получить время из часов TCP/IP стека в буфер timestamp** ==
911 +== 042: Get time from TCP/IP stack clock into timestamp buffer ==
912 912  
913 -Код команды 042,   данная команда использует часы TCP/IP стека как источник заполнения буфера timestamp.
913 +Command code 042, this command uses the TCP/IP stack clock as a source for filling the timestamp buffer.
914 914  
915 -Пример программы:
915 +Example program:
916 916  
917 917  {{code language="assembler"}}
918 918  ; работа с часами