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

From version 2.49
edited by Max
on 2025/02/25 15:17
Change comment: (Autosaved)
To version 2.62
edited by Max
on 2025/02/25 16:17
Change comment: (Autosaved)

Summary

Details

Page properties
Content
... ... @@ -862,82 +862,82 @@
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 -; работа с часами
919 -; trap 60 - чтение данных часов из TCP/IP стека
920 -; R3 - адрес буфера куда надо считать
921 -; результат в R3 адрес, если успешно. R3=0 если ошибка
918 +; working with clock
919 +; trap 60 - reading clock data from TCP/IP stack
920 +; R3 - buffer address where to read
921 +; result in R3 address if successful. R3=0 if error
922 922  GetDateFromLAN: push R0
923 923   push R1
924 924   push R2
925 - call AZreset; сбросим
925 + call AZreset; reset
926 926   tst R1
927 927   bne G60ERR
928 928   MOV #AZ$CSR,R1
929 929   mov #42,(R1)
930 -G60: TSTB (R1); проверяем результат выполнения
931 - BPL G60; ждем
930 +G60: TSTB (R1); check execution result
931 + BPL G60; wait
932 932   mov #32,(R1)
933 -1$: TSTB (R1); проверяем результат выполнения
934 - BPL 1$; ждем
935 - TST (R1)+; инкрементируем
936 - mov R3,R0; запомним R3 - адрес
933 +1$: TSTB (R1); check execution result
934 + BPL 1$; wait
935 + TST (R1)+; increment
936 + mov R3,R0; remember R3 address
937 937   mov #10.,R2; читаем 10 слов
938 -2$: mov (R1),(R3)+; читаем блок слов в память
938 +2$: mov (R1),(R3)+; read block of words into memory
939 939   sob R2,2$
940 - mov R0,R3; успешно, вернем адрес в R3
940 + mov R0,R3; successful, return address to R3
941 941   br 0END$
942 942  G60ERR: CLR R3
943 943  0END$: pop R2
... ... @@ -946,52 +946,50 @@
946 946   return
947 947  {{/code}}
948 948  
949 -все команды устанавливают бит готовности по завершению.
949 +All commands set the ready bit upon completion.
950 950  
951 951  
952 -= **Команды специфические для [[AZБК®>>doc:Контроллеры AZБК® для компьютеров БК-0010 БК-0010\.01 БК-0011М.WebHome]]** =
952 += **[[AZБК®>>doc:Контроллеры AZБК® для компьютеров БК-0010 БК-0010\.01 БК-0011М.WebHome]] **specific commands =
953 953  
954 -Данные команды предназначены для работы контроллера AZБК®, разработанного для серии компьютеров БК - БК-0010/БК-0010.01/БК-0011М.
954 +These commands are intended for operation of the AZБК® controller, developed for the BK series of computers - BK-0010/BK-0010.01/BK-0011M.
955 955  
956 -Другие контроллеры AZ® игнорируют эти команды
956 +Other AZ® controllers ignore these commands.
957 957  
958 -== **037: перезапуск контроллера [[AZБК®>>doc:Контроллеры AZБК® для компьютеров БК-0010 БК-0010\.01 БК-0011М.WebHome]] и всей БК** ==
958 +== 037: Restart of the** [[AZБК®>>doc:Контроллеры AZБК® для компьютеров БК-0010 БК-0010\.01 БК-0011М.WebHome]] **controller and the entire computer ==
959 959  
960 -Код команды 037,  данная команда осуществляет перезапуск микроконтроллера AZ®, что вызывает и перезапуск самой БК-0010/БК-0010.01/БК-0011М
960 +Command code 037, this command restarts the AZ® microcontroller, which also causes a restart of the BK-0010/BK-0010.01/BK-0011M itself
961 961  
962 -Пример программы
962 +Example program
963 963  
964 964  {{code language="assembler"}}
965 -AZ$CSR = 177220; регистр команд и состояния (CSR)
966 -AZ$DR = 177222; регистр данных (DR)
965 +AZ$CSR = 177220; command and status register (CSR)
966 +AZ$DR = 177222; data register (DR)
967 967  
968 968  
969 -; trap 57 - перезапуск БК полный
970 -AZcouldReboot: call AZreset; сбросим AZ дабы он был готов принимать команды
969 +; trap 57 - full restart
970 +AZcouldReboot: call AZreset; reset AZ so it is ready to receive
971 971   mov #037,@#AZ$CSR
972 972   return
973 973  {{/code}}
974 974  
975 -== **044: Cохранение скриншота в файл** ==
975 +== 044: Saving a screenshot to a file ==
976 976  
977 -Код команды 044,  данная команда предназначена для снятия образа памяти указанного размера (или определенного автоматически на основании сохраненных параметров)
978 -технически команда может служить как средство отладки ибо способная снимать образ памяти
979 -общее ограничение на снятие образа памяти - 2МБ на один образ
980 -\\в качестве параметров используется служебная страница памяти 76(8)
977 +Command code 044, this command is designed to take a memory image of the specified size (or determined automatically based on saved parameters) technically, the command can serve as a debugging tool because it is capable of taking a memory image the general limitation on taking a memory image is 2MB per image
978 +\\service memory page 76(8) is used as parameters
981 981  
982 -Структура заполнения информации о скриншоте
980 +Structure of filling information about a screenshot
983 983  
984 984  {{code language="c"}}
985 -// структура хидера скриншота
983 +// screenshot header structure
986 986  typedef __packed struct screen_header
987 987  {
988 - unsigned short int tag; // должен быть равен 0240
986 + unsigned short int tag; // must be equal to 0240
989 989  
990 - unsigned int begin_adress; // начальный адрес в словах - прямая задача в физических адресах
991 - unsigned int length; // длина в словах - прямая задача в физических адресах
988 + unsigned int begin_adress; // start address in words - forward task in physical addresses
989 + unsigned int length; // length in words - forward task in physical addresses
992 992  
993 - unsigned short int begin_page; // начальная страница - номер - прямая задача в номерах страниц
994 - unsigned short int len_pages; // количество страниц - прямая задача в номерах страниц
991 + unsigned short int begin_page; // start page - number - forward task in page numbers
992 + unsigned short int len_pages; // number of pages - forward task in page numbers
995 995  
996 996   unsigned short int R177300; //
997 997   unsigned short int R177302; //
... ... @@ -1009,29 +1009,29 @@
1009 1009   unsigned short int R177332; //
1010 1010   unsigned short int R177334; //
1011 1011   unsigned short int R177336; //
1012 - unsigned short int R177340; // - Регистр управления активацией окно - маски окон
1013 - unsigned short int R177342; // - Регистр управления r/o на окно
1014 - unsigned short int R177344; // - Регистр управления shadow окон - маски окон
1015 - unsigned short int R177346; // - Регистр управления маппером
1016 - unsigned short int R177350; // - регистр копия по записи 177130 в режиме записи управления памятью в SMK
1017 - unsigned short int R177352; // - регистр копия по записи 177716 в режиме записи управления памятью в БК11М
1010 + unsigned short int R177340; // - Window activation control register - window masks
1011 + unsigned short int R177342; // - Control register r/o per window
1012 + unsigned short int R177344; // - Shadow window control register - window masks
1013 + unsigned short int R177346; // - Mapper control register
1014 + unsigned short int R177350; // - copy by record register 177130 in memory management write mode in SMK
1015 + unsigned short int R177352; // - copy by record register 177716 in memory management write mode in BK11M
1018 1018  
1019 - unsigned short int R177230; // - регистр управления
1020 - unsigned short int R177232; // - регистр номера страницы начала отображения - верхняя страница (слой 0)
1021 - unsigned short int R177240; // - регистр номера страницы начала отображения - средняя страница (слой 1)
1022 - unsigned short int R177242; // - регистр номера страницы начала отображения - нижняя страница (слой 2)
1023 - unsigned short int R177244; // - регистр вертикального скролинга слой 2
1024 - unsigned short int R177246; // - регистр вертикального скролинга слой 1
1025 - unsigned short int R177250; // - регистр вертикального скролинга слой 0
1026 - unsigned short int R177252; // - регистр гозизонтального скролинга слой 0
1027 - unsigned short int R177254; // - регистр гозизонтального скролинга слой 1
1028 - unsigned short int R177256; // - регистр гозизонтального скролинга слой 2
1017 + unsigned short int R177230; // - control register
1018 + unsigned short int R177232; // - display start page number register - upper page (layer 0)
1019 + unsigned short int R177240; // - display start page number register - upper page (layer 1)
1020 + unsigned short int R177242; // - display start page number register - upper page (layer 2)
1021 + unsigned short int R177244; // - vertical scroll register layer 2
1022 + unsigned short int R177246; // - vertical scroll register layer 1
1023 + unsigned short int R177250; // - vertical scroll register layer 0
1024 + unsigned short int R177252; // - horizontal scroll register layer 0
1025 + unsigned short int R177254; // - horizontal scroll register layer 1
1026 + unsigned short int R177256; // - horizontal scroll register layer 2
1029 1029  
1030 1030   unsigned short int paldata[338]; //
1031 1031  } screen_header_t;
1032 1032  {{/code}}
1033 1033  
1034 -Пример кода для заполнения страницы памяти
1032 +Example code for filling a memory page
1035 1035  
1036 1036  {{code language="assembler"}}
1037 1037  ;--------------------------------------------------