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

From version 2.66
edited by Max
on 2025/02/25 16:32
Change comment: (Autosaved)
To version 2.76
edited by Max
on 2025/02/25 17:17
Change comment: (Autosaved)

Summary

Details

Page properties
Content
... ... @@ -1034,15 +1034,14 @@
1034 1034  {{code language="assembler"}}
1035 1035  ;--------------------------------------------------
1036 1036  ; 76th page map - we prepare data for the screenshot command there
1037 -SCR_PAGE = 130000 ; we temporarily attach the 76th page to the 77th - that is, into the 130000 window
1038 -SCR_TAG = SCR_PAGE+0 ; here is the input - 240 - 1 word
1039 -SCR_ADDR_CONF = SCR_TAG+2 ; here is the command with addresses - address+length 24 bits - 4 words
1040 -SCR_PAGE_CONF = SCR_ADDR_CONF+8. ; here is the command with pages - the starting page and the number of pages - 2 words
1037 +SCR_PAGE = 130000 ; we temporarily attach the 76th page to the 77th - that is, into the 130000 window
1038 +SCR_TAG = SCR_PAGE+0 ; here is the input - 240 - 1 word
1039 +SCR_ADDR_CONF = SCR_TAG+2 ; here is the command with addresses - address+length 24 bits - 4 words
1040 +SCR_PAGE_CONF = SCR_ADDR_CONF+8. ; here is the command with pages - the starting page and the number of pages - 2 words
1041 1041  SCR_MEM_CONF = SCR_PAGE_CONF+4. ; here is the memory configuration from the registers - 22 words
1042 1042  SCR_VGA_CONF = SCR_MEM_CONF+44. ; here video controller configuration - 10 words
1043 -SCR_PAL = SCR_VGA_CONF+20. ; here 338. values ??(words) of palette 338 words
1043 +SCR_PAL = SCR_VGA_CONF+20. ; here 338. values (words) of palette 338 words
1044 1044  ;--------------------------------------------------
1045 -
1046 1046  ; trap 41 - preparation of default information for screenshot functionality
1047 1047  PrepSRC: jsr R5, PUSHA ; batch saving of registers
1048 1048   mov @#177326,-(SP) ; save page 130k which was before the call
... ... @@ -1138,106 +1138,105 @@
1138 1138  Example program
1139 1139  
1140 1140  {{code language="assembler"}}
1141 -; обновим информацию в хидере скриншота
1140 +; update the information in the screenshot header
1142 1142  ;--------------------------------------------------
1143 -; карта 76й страницы - туда мы готовим данные для команды скринщотов
1144 - SPAGE = 170000 ; 76ую страницу цепляем на место 77й временно - те в окно 130000
1145 - STAG = SPAGE+0 ; тут вход - 240 - 1 слово
1146 - SADDRC = STAG+2 ; сюда команду с адресами - адрес+длина 24 бита - 4 слова
1147 - SPAGEC = SADDRC+8. ; сюда команду со страницами - начальная страница и количество страниц - 2 слова
1148 - SMEMC = SPAGEC+4. ; cюда конфигурацию памяти из регистров - 22 слова
1149 - SVGAC = SMEMC+44. ; сюда конфигурацию видеоконтроллера - 10 cлов
1150 - SPAL = SVGAC+20. ; сюда 338. значений(слов) палитры 338 слов
1142 +; 76th page map - we prepare data for the screenshot command there
1143 +SCR_PAGE = 130000 ; we temporarily attach the 76th page to the 77th - that is, into the 130000 window
1144 +SCR_TAG = SCR_PAGE+0 ; here is the input - 240 - 1 word
1145 +SCR_ADDR_CONF = SCR_TAG+2 ; here is the command with addresses - address+length 24 bits - 4 words
1146 +SCR_PAGE_CONF = SCR_ADDR_CONF+8. ; here is the command with pages - the starting page and the number of pages - 2 words
1147 +SCR_MEM_CONF = SCR_PAGE_CONF+4. ; here is the memory configuration from the registers - 22 words
1148 +SCR_VGA_CONF = SCR_MEM_CONF+44. ; here video controller configuration - 10 words
1149 +SCR_PAL = SCR_VGA_CONF+20. ; here 338. values (words) of palette 338 words
1151 1151  ;--------------------------------------------------
1151 + mov @#177326,R5 ; save page 130k which was before the call
1152 + mov #76,@#177336 ; hook the 76th page into the window
1152 1152  
1153 - mov @#177326,R5 ; сохраним страницу 130k которая была до вызова
1154 - mov #76,@#177336 ; цепляем 76ую страницу в окно
1155 -
1156 - ;конфигурация видеоконтроллера
1154 + ;video controller configuration
1157 1157   ; 177230-177256
1158 1158   mov #SVGAC,R4
1159 1159  
1160 - mov @#177230,(R4)+;177230 - регистр управления
1161 - mov @#177232,(R4)+;177232 - регистр - верхняя страница (слой 0)
1162 - mov @#177240,(R4)+;177240 - регистр - средняя страница (слой 1)
1163 - mov @#177242,(R4)+;177242 - регистр - нижняя страница (слой 2)
1164 - mov @#177244,(R4)+;177244 - регистр вертикального скролинга слой 2
1165 - mov @#177246,(R4)+;177246 - регистр вертикального скролинга слой 1
1166 - mov @#177250,(R4)+;177250 - регистр вертикального скролинга слой 0
1167 - mov @#177252,(R4)+;177252 - регистр гозизонтального скролинга слой 0
1168 - mov @#177254,(R4)+;177254 - регистр гозизонтального скролинга слой 1
1169 - mov @#177256,(R4)+;177256 - регистр гозизонтального скролинга слой 2
1158 + mov @#177230,(R4)+;177230 - control register
1159 + mov @#177232,(R4)+;177232 - register - top page (layer 0)
1160 + mov @#177240,(R4)+;177240 - register - top page (layer 1)
1161 + mov @#177242,(R4)+;177242 - register - top page (layer 2)
1162 + mov @#177244,(R4)+;177244 - vertical scroll register layer 2
1163 + mov @#177246,(R4)+;177246 - vertical scroll register layer 1
1164 + mov @#177250,(R4)+;177250 - vertical scroll register layer 0
1165 + mov @#177252,(R4)+;177252 - horizontal scroll register layer 0
1166 + mov @#177254,(R4)+;177254 - horizontal scroll register layer 1
1167 + mov @#177256,(R4)+;177256 - horizontal scroll register layer 2
1170 1170  
1171 - mov R5,@#177336; вернем страницу с которой был вызов
1169 + mov R5,@#177336; return the page from which the call was made
1172 1172  
1173 1173  
1174 1174   ;-------------------------
1175 - MOV #AZ$CSR,R3 ; Готовим CSR контроллера
1176 - MOV #AZ$DR,R4 ; Готовим DR контроллера
1177 -20$: CLR (R3) ; Сбросим контроллер
1173 + MOV #AZ$CSR,R3 ; Preparing controller CSR
1174 + MOV #AZ$DR,R4 ; Preparing controller DR
1175 +20$: CLR (R3) ; Reset the controller
1178 1178   TSTB (R3)
1179 1179   BPL 20$
1180 1180  
1181 - ; очистим блок памяти для имени - дабы система сделала дефолтное имя файла
1182 - mov #23,(R3) ; командуем что будем писать данные в буфер
1183 -128$: TSTB (R3) ; проверяем результат выполнения
1184 - BPL 128$ ; ждем
1179 + ; clear the memory block for the name - so that the system makes a default file name
1180 + mov #23,(R3) ; command that we will write data to the buffer
1181 +128$: TSTB (R3) ; check the result of execution
1182 + BPL 128$ ; wait
1185 1185   clr R1
1186 1186  
1187 1187   mov #256.,R2 ;
1188 -129$: mov R1,(R4) ; отдаем в контроллер
1186 +129$: mov R1,(R4) ; give to the controller
1189 1189   sob R2,129$
1190 1190  
1191 1191  
1192 - MOV #044,(R3) ; команда скриншот
1190 + MOV #044,(R3) ; screenshot command
1193 1193  22$: TSTB (R3) ;
1194 1194   BPL 22$ ;
1195 1195  
1196 - ; получим имя скриншота
1197 - mov #22,(R3) ; отдать на шину считанный блок памяти из буфера
1198 -121$: tstb (R3) ; проверяем результат выполнения
1199 - bpl 121$ ; ждем
1194 + ; get the screenshot name
1195 + mov #22,(R3) ; give the read memory block from the buffer to the bus
1196 +121$: tstb (R3) ; check the result of execution
1197 + bpl 121$ ; wait
1200 1200  
1201 1201   mov #BUF,R1
1202 - mov #256.,R2 ; читаем 256. слов; первое слово - результат чтения
1203 -122$: mov (R4),(R1)+ ; читаем блок слов в память
1200 + mov #256.,R2 ; read 256. words; the first word is the result of reading
1201 +122$: mov (R4),(R1)+ ; read a block of words into memory
1204 1204   sob R2,122$
1205 1205  
1206 1206   .PRINT #RESOK
1207 1207   .Print #BUF
1208 1208  
1209 - mov #110,@#AZ$CSR; включаем сеть по-умолчанию сеть должна быть постоянно включена
1207 + mov #110,@#AZ$CSR; enable the network by default, the network should be constantly enabled
1210 1210   .Exit
1211 1211  {{/code}}
1212 1212  
1213 -Для распаковки скриншота можно использовать вот эту утилиту
1211 +To unpack a screenshot, you can use this utility - [[https:~~/~~/master.pdp-11.ru/screen_unpack/>>https://master.pdp-11.ru/screen_unpack/]]
1214 1214  
1215 1215  
1216 1216  
1217 -= **Команды для работы со стеком TCP/IP** =
1215 += Commands for working with the TCP/IP stack =
1218 1218  
1219 -следующие команды работают с буфером информации TCP/IP cтека.
1217 +The following commands operate on the TCP/IP stack information buffer.
1220 1220  
1221 -== **040: Получить ip адрес и прочие настройки стека TCP/IP в буфер** ==
1219 +== 040: Get IP address and other TCP/IP stack settings to buffer ==
1222 1222  
1223 -Код команды 040,  данная команда заполняет буфер информацией с TCP/IP cтека текущей (фактической) информацией.
1221 +Command code 040, this command fills the buffer with information from the TCP/IP stack with current (actual) information.
1224 1224  
1225 -== **041: Чтение буфера ip адреса** ==
1223 +== 041: Reading ip address buffer ==
1226 1226  
1227 -Код команды 041,  данная команда передает буфер на шину
1225 +Command code 041, this command transfers the buffer to the bus
1228 1228  
1229 -эта пара команд позволяет получить текущую информацию со стека
1227 +This pair of commands allows you to get current information from the stack
1230 1230  
1231 -* IP адрес
1232 -* MASK маску
1233 -* GW гейтвей
1234 -* NTP адрес NTP-сервера
1235 -* DNS1 адрес основного DNS
1236 -* DNS2 адрес резервного DNS
1229 +* IP address
1230 +* MASK mask
1231 +* GW gateway
1232 +* NTP address of the NTP server
1233 +* DNS1 primary DNS address
1234 +* DNS2 backup DNS address
1237 1237  
1238 -соответственно это 12 слов
1236 +accordingly it is 12 words
1239 1239  
1240 -Пример программы:
1238 +Example program:
1241 1241  
1242 1242  {{code language="assembler"}}
1243 1243  ; trap 52 - чтение блока IP адресов в блок памяти IPADDDBLOCK (8. ячеек)
... ... @@ -1270,13 +1270,13 @@
1270 1270  Пример данных
1271 1271  
1272 1272  {{info}}
1273 -Примеры данных - возвращаемые слова в восьмеричном формате
1274 -124300 116400 - IP адрес 192.168.0.157
1275 -177777 000377 - MASK маску 255.255.255.0
1276 -124300 000400 - GW гейтвей 192.168.0.1
1277 -124300 000400 - NTP адрес NTP-сервера 192.168.0.1
1278 -124300 050000 - DNS1 адрес основного DNS 192.168.0.90
1279 -124300 055000 - DNS2 адрес резервного DNS 192.168.0.80
1271 +Data examples - words returned in octal format
1272 +124300 116400 - IP address 192.168.0.157
1273 +177777 000377 - MASK mask 255.255.255.0
1274 +124300 000400 - GW gateway 192.168.0.1
1275 +124300 000400 - NTP address of NTP server 192.168.0.1
1276 +124300 050000 - DNS1 address of primary DNS 192.168.0.90
1277 +124300 055000 - DNS2 address of backup DNS 192.168.0.80
1280 1280  {{/info}}
1281 1281  
1282 1282  == **043: чтение MAC-адреса в ip буфер** ==