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

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

Summary

Details

Page properties
Content
... ... @@ -1033,31 +1033,30 @@
1033 1033  
1034 1034  {{code language="assembler"}}
1035 1035  ;--------------------------------------------------
1036 -; карта 76й страницы - туда мы готовим данные для команды скринщотов
1037 - SCR_PAGE = 130000 ; 76ую страницу цепляем на место 77й временно - те в окно 130000
1038 - SCR_TAG = SCR_PAGE+0 ; тут вход - 240 - 1 слово
1039 - SCR_ADDR_CONF = SCR_TAG+2 ; сюда команду с адресами - адрес+длина 24 бита - 4 слова
1040 - SCR_PAGE_CONF = SCR_ADDR_CONF+8. ; сюда команду со страницами - начальная страница и количество страниц - 2 слова
1041 - SCR_MEM_CONF = SCR_PAGE_CONF+4. ; cюда конфигурацию памяти из регистров - 22 слова
1042 - SCR_VGA_CONF = SCR_MEM_CONF+44. ; сюда конфигурацию видеоконтроллера - 10 cлов
1043 - SCR_PAL = SCR_VGA_CONF+20. ; сюда 338. значений(слов) палитры 338 слов
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
1041 +SCR_MEM_CONF = SCR_PAGE_CONF+4. ; here is the memory configuration from the registers - 22 words
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
1044 1044  ;--------------------------------------------------
1045 1045  
1046 +; trap 41 - preparation of default information for screenshot functionality
1047 +PrepSRC: jsr R5, PUSHA ; batch saving of registers
1048 + mov @#177326,-(SP) ; save page 130k which was before the call
1049 + mov #76,@#177326 ; hook 76th page into window
1046 1046  
1047 -; trap 41 - подготовка дефолтной информации для работы функционала скриншотов
1048 -PrepSRC: jsr R5, PUSHA ; пакетное сохранение регистров
1049 - mov @#177326,-(SP) ; сохраним страницу 130k которая была до вызова
1050 - mov #76,@#177326 ; цепляем 76ую страницу в окно
1051 -
1052 - mov #100377,R3 ; константа-заполнитель
1051 + mov #100377,R3 ; constant-filler
1053 1053   mov #SCR_PAGE,R4
1054 1054   mov #2047.,R2
1055 1055  4$: mov R3,(R4)+
1056 1056   sob R2,4$
1057 1057  
1058 - mov #240,@#SCR_TAG ; проставляем тег
1057 + mov #240,@#SCR_TAG ; put the tag
1059 1059  
1060 - ; чистим участок адресов - дефолтно автоматическое определение адресов
1059 + ; clean the address section - default is automatic address detection
1061 1061   clr R3
1062 1062   mov #SCR_ADDR_CONF,R4
1063 1063   mov #10,R2
... ... @@ -1064,7 +1064,7 @@
1064 1064  2$: mov R3,(R4)+
1065 1065   sob R2,2$
1066 1066  
1067 - ;конфигурация памяти - дефолтная
1066 + ; memory configuration - default
1068 1068   mov #SCR_MEM_CONF,R4
1069 1069   mov #30,(R4)+ ;177300
1070 1070   mov #31,(R4)+ ;177302
... ... @@ -1083,29 +1083,29 @@
1083 1083   mov #110,(R4)+ ;177334
1084 1084   mov #100,(R4)+ ;177336
1085 1085  
1086 - mov #170000,(R4)+ ;177340 - Регистр управления активацией окно - маски окон
1087 - mov R3,(R4)+ ;177342 - Регистр управления r/o на окно
1088 - mov #7777,(R4)+ ;177344 - Регистр управления shadow окон - маски окон
1089 - mov #40404,(R4)+ ;177346 - Регистр управления маппером
1090 - mov R3,(R4)+ ;177350 - регистр копия по записи 177130 в режиме записи управления памятью в SMK
1091 - mov #16000,(R4)+ ;177352 - регистр копия по записи 177716 в режиме записи управления памятью в БК11М
1085 + mov #170000,(R4)+ ;177340
1086 + mov R3,(R4)+ ;177342
1087 + mov #7777,(R4)+ ;177344
1088 + mov #40404,(R4)+ ;177346
1089 + mov R3,(R4)+ ;177350
1090 + mov #16000,(R4)+ ;177352
1092 1092  
1093 - ;конфигурация видеоконтроллера - дефолтная
1092 + ;Video controller configuration - default
1094 1094   ; 177230-177256
1095 1095   mov #SCR_VGA_CONF,R4
1096 1096  
1097 - mov #12201,(R4)+ ;177230 - регистр управления
1098 - mov #4,(R4)+ ;177232 - регистр номера страницы начала отображения - верхняя страница (слой 0)
1099 - mov R3,(R4)+ ;177240 - регистр номера страницы начала отображения - средняя страница (слой 1) "под спрайты"
1100 - mov R3,(R4)+ ;177242 - регистр номера страницы начала отображения - нижняя страница (слой 2) "под фон"
1101 - mov R3,(R4)+ ;177244 - регистр вертикального скролинга слой 2
1102 - mov R3,(R4)+ ;177246 - регистр вертикального скролинга слой 1
1103 - mov R3,(R4)+ ;177250 - регистр вертикального скролинга слой 0
1104 - mov R3,(R4)+ ;177252 - регистр гозизонтального скролинга слой 0
1105 - mov R3,(R4)+ ;177254 - регистр гозизонтального скролинга слой 1
1106 - mov R3,(R4)+ ;177256 - регистр гозизонтального скролинга слой 2
1096 + mov #12201,(R4)+ ;177230
1097 + mov #4,(R4)+ ;177232
1098 + mov R3,(R4)+ ;177240
1099 + mov R3,(R4)+ ;177242
1100 + mov R3,(R4)+ ;177244
1101 + mov R3,(R4)+ ;177246
1102 + mov R3,(R4)+ ;177250
1103 + mov R3,(R4)+ ;177252
1104 + mov R3,(R4)+ ;177254
1105 + mov R3,(R4)+ ;177256
1107 1107  
1108 - ; закачиваем палитру - берем дефолтную из этой ПЗУшки
1107 + ; download the palette - take the default one from this ROM
1109 1109   mov #SCR_PAL,R4
1110 1110   mov #PalData,R2
1111 1111   mov #338.,R3
... ... @@ -1112,32 +1112,31 @@
1112 1112  1$: mov (R2)+,(R4)+
1113 1113   sob R3,1$
1114 1114  
1115 - mov (SP)+,@#177326; вернем страницу с которой был вызов
1114 + mov (SP)+,@#177326; return the page from which the call was made
1116 1116   return
1117 1117  {{/code}}
1118 1118  
1119 -Вариантов указания участков памяти три
1118 +There are three options for specifying memory areas.
1120 1120  
1121 -1. указать адрес и длину 24х битные - формат, если их нет - система смотрит дальше
1122 -1. указать номер страницы и количество страницы, если их нет
1123 -1. система смотрит дальше - те делает скриншот на основании данных о регистрах 177230 и т.д..
1120 +1. specify the address and length 24-bit - see format, if they are not there - the system looks further
1121 +1. specify the page number and page quantity, if they are not there
1122 +1. the system looks further - that is, it makes a screenshot based on the data about registers 177230, etc.
1124 1124  
1125 -Cкриншот сохраняется в формате
1126 -- страница 76 - ее первый килобайт
1127 -- сам образ памяти (если режим слоеный - то все три слоя)
1124 +The screenshot is saved in the format
1125 +- page 76 - its first kilobyte
1126 +- the memory image itself (if the mode is layered - then all three layers)
1128 1128  
1129 1129  
1130 -Перед вызовом команды можно загрузить имя файла для сохранения скриншота [в cmosmem буфер], однако при его отсутствии (в буфере не будет имени - строки заканчивающейся 0) система сформирует свое имя, на основании следующего правила:
1131 -дефолтный путь для сохранения скриншотов
1129 +Before calling the command, you can load the file name for saving the screenshot [in the cmosmem buffer], but if it is missing (there will be no name in the buffer - a line ending with 0), the system will generate its own name based on the following rule: default path for saving screenshots
1132 1132  0:/SCREENS/
1133 -формат имени - DDHHMISS.SCR
1134 -где DD - две цифры дня месяца, HH - час, MI - минута, SS-секунда
1135 -\\Если в процессе выполнения команды возникнет ошибка - вместо имени будет "ERROR *"
1136 -к примеру
1131 +name format - DDHHMISS.SCR
1132 +where DD is two digits of the day of the month, HH is the hour, MI is the minute, SS is the second
1133 +\\If an error occurs during the command execution, the name will be "ERROR *"
1134 +for example
1137 1137  "ERROR f_open 6"
1138 1138  
1139 1139  
1140 -Пример программы
1138 +Example program
1141 1141  
1142 1142  {{code language="assembler"}}
1143 1143  ; обновим информацию в хидере скриншота