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

From version 2.73
edited by Max
on 2025/02/25 17:07
Change comment: (Autosaved)
To version 2.65
edited by Max
on 2025/02/25 16:31
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1034,14 +1034,15 @@
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 +
1045 1045  ; trap 41 - preparation of default information for screenshot functionality
1046 1046  PrepSRC: jsr R5, PUSHA ; batch saving of registers
1047 1047   mov @#177326,-(SP) ; save page 130k which was before the call
... ... @@ -1137,78 +1137,79 @@
1137 1137  Example program
1138 1138  
1139 1139  {{code language="assembler"}}
1140 -; update the information in the screenshot header
1141 +; обновим информацию в хидере скриншота
1141 1141  ;--------------------------------------------------
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
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 слов
1150 1150  ;--------------------------------------------------
1151 - mov @#177326,R5 ; save page 130k which was before the call
1152 - mov #76,@#177336 ; hook the 76th page into the window
1153 1153  
1154 - ;video controller configuration
1153 + mov @#177326,R5 ; сохраним страницу 130k которая была до вызова
1154 + mov #76,@#177336 ; цепляем 76ую страницу в окно
1155 +
1156 + ;конфигурация видеоконтроллера
1155 1155   ; 177230-177256
1156 1156   mov #SVGAC,R4
1157 1157  
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
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
1168 1168  
1169 - mov R5,@#177336; return the page from which the call was made
1171 + mov R5,@#177336; вернем страницу с которой был вызов
1170 1170  
1171 1171  
1172 1172   ;-------------------------
1173 - MOV #AZ$CSR,R3 ; Preparing controller CSR
1174 - MOV #AZ$DR,R4 ; Preparing controller DR
1175 -20$: CLR (R3) ; Reset the controller
1175 + MOV #AZ$CSR,R3 ; Готовим CSR контроллера
1176 + MOV #AZ$DR,R4 ; Готовим DR контроллера
1177 +20$: CLR (R3) ; Сбросим контроллер
1176 1176   TSTB (R3)
1177 1177   BPL 20$
1178 1178  
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
1181 + ; очистим блок памяти для имени - дабы система сделала дефолтное имя файла
1182 + mov #23,(R3) ; командуем что будем писать данные в буфер
1183 +128$: TSTB (R3) ; проверяем результат выполнения
1184 + BPL 128$ ; ждем
1183 1183   clr R1
1184 1184  
1185 1185   mov #256.,R2 ;
1186 -129$: mov R1,(R4) ; give to the controller
1188 +129$: mov R1,(R4) ; отдаем в контроллер
1187 1187   sob R2,129$
1188 1188  
1189 1189  
1190 - MOV #044,(R3) ; screenshot command
1192 + MOV #044,(R3) ; команда скриншот
1191 1191  22$: TSTB (R3) ;
1192 1192   BPL 22$ ;
1193 1193  
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
1196 + ; получим имя скриншота
1197 + mov #22,(R3) ; отдать на шину считанный блок памяти из буфера
1198 +121$: tstb (R3) ; проверяем результат выполнения
1199 + bpl 121$ ; ждем
1198 1198  
1199 1199   mov #BUF,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
1202 + mov #256.,R2 ; читаем 256. слов; первое слово - результат чтения
1203 +122$: mov (R4),(R1)+ ; читаем блок слов в память
1202 1202   sob R2,122$
1203 1203  
1204 1204   .PRINT #RESOK
1205 1205   .Print #BUF
1206 1206  
1207 - mov #110,@#AZ$CSR; enable the network by default, the network should be constantly enabled
1209 + mov #110,@#AZ$CSR; включаем сеть по-умолчанию сеть должна быть постоянно включена
1208 1208   .Exit
1209 1209  {{/code}}
1210 1210  
1211 -To unpack a screenshot, you can use this utility -
1213 +Для распаковки скриншота можно использовать вот эту утилиту
1212 1212  
1213 1213  
1214 1214