diff --git a/programs/other/period/trunk/period.asm b/programs/other/period/trunk/period.asm index 1e3af190e9..3db36a5e00 100644 --- a/programs/other/period/trunk/period.asm +++ b/programs/other/period/trunk/period.asm @@ -23,17 +23,17 @@ macro strtbl name,[string] use32 - org 0x0 - db 'MENUET01' ; стандартный 8-байтовый заголовок для исполняемых файлов MeOS - dd 0x01 ; версия заголовка - dd START ; указатель на начало исполняемого кода - dd I_END ; размер образа - dd I_END+0x1000 ; требуемая память для приложения - dd I_END+0x1000 ; указатель на начала стека - dd 0x0 , 0x0 ; I_Param , I_Icon + org 0x0 + db 'MENUET01' ; стандартный 8-байтовый заголовок для исполняемых файлов MeOS + dd 0x01 ; версия заголовка + dd START ; указатель на начало исполняемого кода + dd I_END ; размер образа + dd I_END+0x1000 ; требуемая память для приложения + dd I_END+0x1000 ; указатель на начала стека + dd 0x0 , 0x0 ; I_Param , I_Icon ;ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ И КОНСТАНТЫ -re_ID dd 0x00000001 ;для хранения номера текущего выводимого элемента +re_ID dd 0x00000001 ;для хранения номера текущего выводимого элемента START: @@ -46,7 +46,7 @@ START: red: call draw_window -still: ;основной цикл программы +still: ;основной цикл программы push 10 ;ожидание события pop eax mcall @@ -57,502 +57,502 @@ still: ; jne button key: - mov al,2 - mcall - jmp still + mov al,2 + mcall + jmp still button: - mov al,17 ;получаем ID нажатой кнопки - mcall - shr eax,8 ; eax=24-битный ButtonID + mov al,17 ;получаем ID нажатой кнопки + mcall + shr eax,8 ; eax=24-битный ButtonID - cmp eax,1 ;нажата ли "Закрыть" [x] - jne noclose - or eax,-1 - mcall + cmp eax,1 ;нажата ли "Закрыть" [x] + jne noclose + or eax,-1 + mcall noclose: cmp eax,200 jne no_H mov eax,1 no_H: - mov [re_ID],eax + mov [re_ID],eax ;; - call draw_text + call draw_text ;; - jmp still + jmp still draw_window: - + mov eax,12 ;begin drawing - xor ebx,ebx - inc ebx - mcall - ; DRAW WINDOW - xor eax,eax - mov ebx,50*65536+555 ;x - mov ecx,30*65536+455 ;y + xor ebx,ebx + inc ebx + mcall + ; DRAW WINDOW + xor eax,eax + mov ebx,50*65536+555 ;x + mov ecx,30*65536+455 ;y mov edx,[sc.work] - or edx,0x34000000 ;style - mov edi,caption - mcall + or edx,0x34000000 ;style + mov edi,caption + mcall text_in_window: - mov eax,4 ;вывод текста - mov ecx,0x80000000 ;asciiz, ЦВЕТ !!! + mov eax,4 ;вывод текста + mov ecx,0x80000000 ;asciiz, ЦВЕТ !!! - mov ebx,40*65536+200 ;лантаноиды - mov edx,Lantanoid_text - mcall + mov ebx,40*65536+200 ;лантаноиды + mov edx,Lantanoid_text + mcall - add ebx,20 ;актиноиды - mov edx,Actinoid_text - mcall + add ebx,20 ;актиноиды + mov edx,Actinoid_text + mcall - mov ebx,150*65536+255 - mov edx,number - mcall + mov ebx,150*65536+255 + mov edx,number + mcall - add ebx,15 - mov edx,name - mcall + add ebx,15 + mov edx,name + mcall - add ebx,15 - mov edx,eng_name - mcall + add ebx,15 + mov edx,eng_name + mcall - add ebx,15 - mov edx,Atomic_massa - mcall + add ebx,15 + mov edx,Atomic_massa + mcall - add ebx,15 - mov edx,density - mcall + add ebx,15 + mov edx,density + mcall - add ebx,15 - mov edx,Step_okisl - mcall + add ebx,15 + mov edx,Step_okisl + mcall - add ebx,15 - mov edx,Electrootr - mcall + add ebx,15 + mov edx,Electrootr + mcall - add ebx,15 - mov edx,T_pl - mcall + add ebx,15 + mov edx,T_pl + mcall - add ebx,15 - mov edx,T_kip - mcall + add ebx,15 + mov edx,T_kip + mcall - add ebx,15 - mov edx,Raspr - mcall + add ebx,15 + mov edx,Raspr + mcall - add ebx,15 - mov edx,Otkrytie - mcall + add ebx,15 + mov edx,Otkrytie + mcall - ; ВЫВОД НОМЕРОВ ПЕРИОДОВ - mov ebx,30*65536+43 - mov edx,Period_text ;1 - mcall + ; ВЫВОД НОМЕРОВ ПЕРИОДОВ + mov ebx,30*65536+43 + mov edx,Period_text ;1 + mcall - call @f ;2 - call @f ;3 - call @f ;4 - call @f ;5 - call @f ;6 - call @f ;7 - jmp Table + call @f ;2 + call @f ;3 + call @f ;4 + call @f ;5 + call @f ;6 + call @f ;7 + jmp Table @@: - add ebx,20 - add edx,4 ;т.к. строка = 4 байтам(с нулём) - mcall + add ebx,20 + add edx,4 ;т.к. строка = 4 байтам(с нулём) + mcall ret -Table: ;Отрисовка таблицы в виде конопочек - table_row_1: - shl eax,1 - mov ebx,50*65536+25 - mov ecx,35*65536+20 - mov edx,200 - mov esi,0xE19123 - mcall - He_: - mov ebx,491*65536+25 - mov esi,0x0f0c314 - mov edx,2 - mcall - table_row_2: - Li: - mov ebx,50*65536+25 - mov ecx,56*65536+20 - mov esi,0xE19123 - inc edx - mcall - Be: - mov ebx,76*65536+25 - inc edx - mcall - B_: - mov ebx,361*65536+25 - inc edx - mov esi,0x0f0c314 - mcall - mov edi,4 - table_row_2_loop: - add ebx,26*65536 - inc edx - mcall - dec edi - jns table_row_2_loop - table_row_3: - Na: - mov ebx,50*65536+25 - mov ecx,77*65536+20 - mov esi,0xE19123 - inc edx - mcall +Table: ;Отрисовка таблицы в виде конопочек + table_row_1: + shl eax,1 + mov ebx,50*65536+25 + mov ecx,35*65536+20 + mov edx,200 + mov esi,0xE19123 + mcall + He_: + mov ebx,491*65536+25 + mov esi,0x0f0c314 + mov edx,2 + mcall + table_row_2: + Li: + mov ebx,50*65536+25 + mov ecx,56*65536+20 + mov esi,0xE19123 + inc edx + mcall + Be: + mov ebx,76*65536+25 + inc edx + mcall + B_: + mov ebx,361*65536+25 + inc edx + mov esi,0x0f0c314 + mcall + mov edi,4 + table_row_2_loop: + add ebx,26*65536 + inc edx + mcall + dec edi + jns table_row_2_loop + table_row_3: + Na: + mov ebx,50*65536+25 + mov ecx,77*65536+20 + mov esi,0xE19123 + inc edx + mcall - mov ebx,76*65536+25 - inc edx - mcall + mov ebx,76*65536+25 + inc edx + mcall - mov ebx,361*65536+25 - inc edx - mov esi,0x0f0c314 - mcall - mov edi,4 - table_row_3_loop: - add ebx,26*65536 - inc edx - mcall - dec edi - jns table_row_3_loop + mov ebx,361*65536+25 + inc edx + mov esi,0x0f0c314 + mcall + mov edi,4 + table_row_3_loop: + add ebx,26*65536 + inc edx + mcall + dec edi + jns table_row_3_loop - Table_row_4: - K_: - mov ebx,50*65536+25 - mov ecx,98*65536+20 - mov esi,0xE19123 - inc edx - mcall - Ca: - mov ebx,76*65536+25 - inc edx - mcall - Sc: - mov ebx,102*65536+25 - inc edx - mov esi,0x559beb - mcall - mov edi,8 - Table_row_4_loop1: - add ebx,26*65536 - inc edx - mcall - dec edi - jns Table_row_4_loop1 + Table_row_4: + K_: + mov ebx,50*65536+25 + mov ecx,98*65536+20 + mov esi,0xE19123 + inc edx + mcall + Ca: + mov ebx,76*65536+25 + inc edx + mcall + Sc: + mov ebx,102*65536+25 + inc edx + mov esi,0x559beb + mcall + mov edi,8 + Table_row_4_loop1: + add ebx,26*65536 + inc edx + mcall + dec edi + jns Table_row_4_loop1 - mov ebx,361*65536+25 - inc edx - mov esi,0x0f0c314 - mcall - mov edi,4 - table_row_4_loop2: - add ebx,26*65536 - inc edx - mcall - dec edi - jns table_row_4_loop2 + mov ebx,361*65536+25 + inc edx + mov esi,0x0f0c314 + mcall + mov edi,4 + table_row_4_loop2: + add ebx,26*65536 + inc edx + mcall + dec edi + jns table_row_4_loop2 - Table_row_5: - Rb_: - mov ebx,50*65536+25 - mov ecx,119*65536+20 - mov esi,0xE19123 - inc edx - mcall - Sr_: - mov ebx,76*65536+25 - inc edx - mcall - Y_: - mov ebx,102*65536+25 - inc edx - mov esi,0x559beb - mcall - mov edi,8 - Table_row_5_loop1: - add ebx,26*65536 - inc edx - mcall - dec edi - jns Table_row_5_loop1 + Table_row_5: + Rb_: + mov ebx,50*65536+25 + mov ecx,119*65536+20 + mov esi,0xE19123 + inc edx + mcall + Sr_: + mov ebx,76*65536+25 + inc edx + mcall + Y_: + mov ebx,102*65536+25 + inc edx + mov esi,0x559beb + mcall + mov edi,8 + Table_row_5_loop1: + add ebx,26*65536 + inc edx + mcall + dec edi + jns Table_row_5_loop1 - mov ebx,361*65536+25 - inc edx - mov esi,0x0f0c314 - mcall - mov edi,4 - table_row_5_loop2: - add ebx,26*65536 - inc edx - mcall - dec edi - jns table_row_5_loop2 + mov ebx,361*65536+25 + inc edx + mov esi,0x0f0c314 + mcall + mov edi,4 + table_row_5_loop2: + add ebx,26*65536 + inc edx + mcall + dec edi + jns table_row_5_loop2 - Table_row_6: - Cs_: - mov ebx,50*65536+25 - mov ecx,140*65536+20 - mov esi,0xE19123 - inc edx - mcall - Ba_: - mov ebx,76*65536+25 - inc edx - mcall - La_: - mov ebx,102*65536+25 - inc edx - mov esi,0x559beb - mcall - mov edx,71 - mov edi,8 - Table_row_6_loop1: - add ebx,26*65536 - inc edx - mcall - dec edi - jns Table_row_6_loop1 + Table_row_6: + Cs_: + mov ebx,50*65536+25 + mov ecx,140*65536+20 + mov esi,0xE19123 + inc edx + mcall + Ba_: + mov ebx,76*65536+25 + inc edx + mcall + La_: + mov ebx,102*65536+25 + inc edx + mov esi,0x559beb + mcall + mov edx,71 + mov edi,8 + Table_row_6_loop1: + add ebx,26*65536 + inc edx + mcall + dec edi + jns Table_row_6_loop1 - mov ebx,361*65536+25 - inc edx - mov esi,0x0f0c314 - mcall - mov edi,4 - table_row_6_loop2: - add ebx,26*65536 - inc edx - mcall - dec edi - jns table_row_6_loop2 + mov ebx,361*65536+25 + inc edx + mov esi,0x0f0c314 + mcall + mov edi,4 + table_row_6_loop2: + add ebx,26*65536 + inc edx + mcall + dec edi + jns table_row_6_loop2 - Table_row_7: - Fr_: - mov ebx,50*65536+25 - mov ecx,161*65536+20 - mov esi,0xE19123 - inc edx - mcall - Ra_: - mov ebx,76*65536+25 - inc edx - mcall - Ac_: - mov ebx,102*65536+25 - inc edx - mov esi,0x559beb - mcall - mov edx,103 - mov edi,8 - Table_row_7_loop1: - add ebx,26*65536 - inc edx - mcall - dec edi - jns Table_row_7_loop1 + Table_row_7: + Fr_: + mov ebx,50*65536+25 + mov ecx,161*65536+20 + mov esi,0xE19123 + inc edx + mcall + Ra_: + mov ebx,76*65536+25 + inc edx + mcall + Ac_: + mov ebx,102*65536+25 + inc edx + mov esi,0x559beb + mcall + mov edx,103 + mov edi,8 + Table_row_7_loop1: + add ebx,26*65536 + inc edx + mcall + dec edi + jns Table_row_7_loop1 - mov ebx,361*65536+25 - inc edx - mov esi,0x0f0c314 - mcall - mov edi,2 - table_row_7_loop2: - add ebx,26*65536 - inc edx - mcall - dec edi - jns table_row_7_loop2 + mov ebx,361*65536+25 + inc edx + mov esi,0x0f0c314 + mcall + mov edi,4 + table_row_7_loop2: + add ebx,26*65536 + inc edx + mcall + dec edi + jns table_row_7_loop2 - row_1: - Cerium_: - mov ebx,102*65536+25 - mov ecx,190*65536+20 - mov edx,58 - mov esi,0x73beeb - mcall - mov edi,12 + row_1: + Cerium_: + mov ebx,102*65536+25 + mov ecx,190*65536+20 + mov edx,58 + mov esi,0x73beeb + mcall + mov edi,12 - row_1_loop: - add ebx,26*65536 - inc edx - mcall - dec edi - jns row_1_loop - row_2: - dgfsfHe_: - mov ebx,102*65536+25 - mov ecx,211*65536+20 - mov edx,90 - mcall - mov edi,12 - row_2_loop: + row_1_loop: + add ebx,26*65536 + inc edx + mcall + dec edi + jns row_1_loop + row_2: + dgfsfHe_: + mov ebx,102*65536+25 + mov ecx,211*65536+20 + mov edx,90 + mcall + mov edi,12 + row_2_loop: - add ebx,26*65536 - inc edx - mcall - dec edi - jns row_2_loop + add ebx,26*65536 + inc edx + mcall + dec edi + jns row_2_loop text_on_buttons: - text_row1: - ;H - shr eax,1 - mov ebx,62*65536+43 - mov ecx,0x00000000 - mov edx,Symbols - mov esi,3 - mcall - ;Ne - mov ebx,500*65536+43 - add edx,3 - mcall - text_row2_1: - mov ebx,60*65536+63 - add edx,3 - mcall + text_row1: + ;H + shr eax,1 + mov ebx,62*65536+43 + mov ecx,0x00000000 + mov edx,Symbols + mov esi,3 + mcall + ;Ne + mov ebx,500*65536+43 + add edx,3 + mcall + text_row2_1: + mov ebx,60*65536+63 + add edx,3 + mcall - mov ebx,85*65536+63 - add edx,3 - mcall - text_row2_2: - mov ebx,374*65536+63 - add edx,3 - mcall - mov edi,4 + mov ebx,85*65536+63 + add edx,3 + mcall + text_row2_2: + mov ebx,374*65536+63 + add edx,3 + mcall + mov edi,4 - text_row2_2_loop: - add ebx,25*65536 - add edx,3 - mcall + text_row2_2_loop: + add ebx,25*65536 + add edx,3 + mcall - dec edi - jns text_row2_2_loop - text_row3_1: - mov ebx,60*65536+83 - add edx,3 - mcall + dec edi + jns text_row2_2_loop + text_row3_1: + mov ebx,60*65536+83 + add edx,3 + mcall - mov ebx,85*65536+83 - add edx,3 - mcall - text_row3_2: - mov ebx,374*65536+83 - add edx,3 - mcall - mov edi,4 - text_row3_2_loop: - add ebx,25*65536 - add edx,3 - mcall + mov ebx,85*65536+83 + add edx,3 + mcall + text_row3_2: + mov ebx,374*65536+83 + add edx,3 + mcall + mov edi,4 + text_row3_2_loop: + add ebx,25*65536 + add edx,3 + mcall - dec edi - jns text_row3_2_loop - text_row4: - mov ebx,60*65536+104 - add edx,3 - mcall - mov edi,16 - text_row4_loop: - add ebx,26*65536 - add edx,3 - mcall + dec edi + jns text_row3_2_loop + text_row4: + mov ebx,60*65536+104 + add edx,3 + mcall + mov edi,16 + text_row4_loop: + add ebx,26*65536 + add edx,3 + mcall - dec edi - jns text_row4_loop - text_row5: - mov ebx,60*65536+125 - add edx,3 - mcall - mov edi,16 - text_row5_loop: - add ebx,26*65536 - add edx,3 - mcall + dec edi + jns text_row4_loop + text_row5: + mov ebx,60*65536+125 + add edx,3 + mcall + mov edi,16 + text_row5_loop: + add ebx,26*65536 + add edx,3 + mcall - dec edi - jns text_row5_loop - text_row6: - mov ebx,60*65536+146 - add edx,3 - mcall - mov edi,16 - text_row6_loop: - add ebx,26*65536 - add edx,3 - mcall - dec edi - jns text_row6_loop - text_row7: - mov ebx,60*65536+167 - add edx,3 - mcall - mov edi,9 - text_row7_loop: - add ebx,26*65536 - add edx,3 - mcall + dec edi + jns text_row5_loop + text_row6: + mov ebx,60*65536+146 + add edx,3 + mcall + mov edi,16 + text_row6_loop: + add ebx,26*65536 + add edx,3 + mcall + dec edi + jns text_row6_loop + text_row7: + mov ebx,60*65536+167 + add edx,3 + mcall + mov edi,11 ;9 + text_row7_loop: + add ebx,26*65536 + add edx,3 + mcall - dec edi - jns text_row7_loop - mov edi,4 - text_row7_loop2: - add ebx,24*65536 - add edx,3 - mcall - dec edi - jns text_row7_loop2 + dec edi + jns text_row7_loop + mov edi,4 + text_row7_loop2: + add ebx,26*65536 + add edx,3 + mcall + dec edi + jns text_row7_loop2 - text_row8: - mov ebx,111*65536+197 - add edx,3 - mcall - mov edi,12 + text_row8: + mov ebx,111*65536+197 + add edx,3 + mcall + mov edi,12 - text_row8_loop: - add ebx,26*65536 - add edx,3 - mcall + text_row8_loop: + add ebx,26*65536 + add edx,3 + mcall - dec edi - jns text_row8_loop + dec edi + jns text_row8_loop - text_row9: - mov ebx,111*65536+217 - add edx,3 - mcall - mov edi,12 + text_row9: + mov ebx,111*65536+217 + add edx,3 + mcall + mov edi,12 - text_row9_loop: - add ebx,26*65536 - add edx,3 - mcall + text_row9_loop: + add ebx,26*65536 + add edx,3 + mcall - dec edi - jns text_row9_loop + dec edi + jns text_row9_loop ;; - короче выносим в отдельную процедуру - call draw_text + call draw_text ;; finish: - mov eax,12 ;end drawing - mov ebx,2 - mcall + mov eax,12 ;end drawing + mov ebx,2 + mcall ret draw_text: @@ -570,103 +570,103 @@ draw_text: ;11 вывод имён первооткрывателей [optmzd-mem] ;; - закраска, что-бы не было наложения при прорисовке текста - mov eax,13 - mov ebx,320*65536+210 - mov ecx,255*65536+(15*11) - mov edx,[sc.work] - mcall + mov eax,13 + mov ebx,320*65536+210 + mov ecx,255*65536+(15*11) + mov edx,[sc.work] + mcall ;; push edi ; чтобы оптимизировать изменения ebx - ; 1 вывод порядкового номера [optmzd-mem] - mov ebx,0x30000 ;выводить 3 цифры - mov ecx,[re_ID] - mov edx,320*65536+255 - xor esi,esi - mov eax,47 - mcall + ; 1 вывод порядкового номера [optmzd-mem] + mov ebx,0x30000 ;выводить 3 цифры + mov ecx,[re_ID] + mov edx,320*65536+255 + xor esi,esi + mov eax,47 + mcall ;ВНИМАНИЕ! ЗДЕСЬ ЗАДАЁТСЯ ЦВЕТ ВСЕГО ОСТАЛЬНОГО ТЕКСТА! [сделано для сокращения кода на 20 байт :)))] - mov ecx,[sc.work_text] ; ЦВЕТ + mov ecx,[sc.work_text] ; ЦВЕТ or ecx,0x80000000 ; asciiz - mov eax,4 ; эта функция вызывается 10 раз! так что запишем 1 раз + mov eax,4 ; эта функция вызывается 10 раз! так что запишем 1 раз - ; 2 вывод РУССКОЕ НАЗВАНИЕ [optmzd-mem] - mov edi,Rus_nazv ;указатель на начало массива указателей ;) - mov ebx,320*65536+255 ;здесь вносятся координаты, дальше будет лишь add ebx,15 - call out_asciiz_item + ; 2 вывод РУССКОЕ НАЗВАНИЕ [optmzd-mem] + mov edi,Rus_nazv ;указатель на начало массива указателей ;) + mov ebx,320*65536+255 ;здесь вносятся координаты, дальше будет лишь add ebx,15 + call out_asciiz_item - xor ecx,ecx ;color - ; 3 вывод английского названия [optmzd-spd] - mov edx,Elements - mov edi,[re_ID] - dec edi - mov esi,12 ;длина строки - imul edi,esi ;считаем указатель на нужную строку - add edx,edi - add ebx,15 ; увеличиваем y-координату текста на 15 пикселей - mcall + xor ecx,ecx ;color + ; 3 вывод английского названия [optmzd-spd] + mov edx,Elements + mov edi,[re_ID] + dec edi + mov esi,12 ;длина строки + imul edi,esi ;считаем указатель на нужную строку + add edx,edi + add ebx,15 ; увеличиваем y-координату текста на 15 пикселей + mcall - ; 4 вывод атомной массы [optmzd-spd] - mov edx,MassNo - mov edi,[re_ID] - dec edi - mov esi,7 ;длина строки - imul edi,esi ;считаем указатель на нужную строку - add edx,edi - add ebx,15 - mcall + ; 4 вывод атомной массы [optmzd-spd] + mov edx,MassNo + mov edi,[re_ID] + dec edi + mov esi,7 ;длина строки + imul edi,esi ;считаем указатель на нужную строку + add edx,edi + add ebx,15 + mcall - mov ecx,0x80000000 ;asciiz, ЦВЕТ !!! - ; 5 вывод ПЛОТНОСТЬ [optmzd-mem] - mov edi,Plotnost - call out_asciiz_item + mov ecx,0x80000000 ;asciiz, ЦВЕТ !!! + ; 5 вывод ПЛОТНОСТЬ [optmzd-mem] + mov edi,Plotnost + call out_asciiz_item - ; 6 вывод СТЕПЕНЬ ОКИСЛЕНИЯ [optmzd-mem] - mov edi,Step_ok - call out_asciiz_item + ; 6 вывод СТЕПЕНЬ ОКИСЛЕНИЯ [optmzd-mem] + mov edi,Step_ok + call out_asciiz_item - xor ecx,ecx ;color - ; 7 вывод ЭЛЕКТРООТРИЦАТЕЛЬНОСТЬ [optmzd-spd] - mov edx,Electr - mov edi,[re_ID] - dec edi - mov esi,4 ;длина строки - shl edi,2 - add edx,edi - add ebx,15 - mcall + xor ecx,ecx ;color + ; 7 вывод ЭЛЕКТРООТРИЦАТЕЛЬНОСТЬ [optmzd-spd] + mov edx,Electr + mov edi,[re_ID] + dec edi + mov esi,4 ;длина строки + shl edi,2 + add edx,edi + add ebx,15 + mcall - mov ecx,0x80000000 ;asciiz, ЦВЕТ !!! - ; 8 вывод ТЕМПЕРАТУРА ПЛАВЛЕНИЯ [optmzd-mem] - mov edi,T_plavl - call out_asciiz_item + mov ecx,0x80000000 ;asciiz, ЦВЕТ !!! + ; 8 вывод ТЕМПЕРАТУРА ПЛАВЛЕНИЯ [optmzd-mem] + mov edi,T_plavl + call out_asciiz_item - ; 9 вывод ТЕМПЕРАТУРА КИПЕНИЯ [optmzd-mem] - mov edi,T_kipen - call out_asciiz_item + ; 9 вывод ТЕМПЕРАТУРА КИПЕНИЯ [optmzd-mem] + mov edi,T_kipen + call out_asciiz_item - ;10 вывод РАСПРЕДЕЛЕНИЕ В ЗЕМНОЙ КОРЕ [optmzd-mem] - mov edi,Rasprostr - call out_asciiz_item + ;10 вывод РАСПРЕДЕЛЕНИЕ В ЗЕМНОЙ КОРЕ [optmzd-mem] + mov edi,Rasprostr + call out_asciiz_item - ;11 вывод имён первооткрывателей [optmzd-mem] - mov edi,First_Explore - call out_asciiz_item + ;11 вывод имён первооткрывателей [optmzd-mem] + mov edi,First_Explore + call out_asciiz_item pop edi ; он был сохранён в начале :) ret ;функция выполняет набор действий для вывода информации out_asciiz_item: - mov edx,[re_ID] - dec edx - shl edx,2 ;умножить на 4 (размер указателя) - mov edx,[edx+edi] ;указатель на строку в edx - add ebx,15 - mcall + mov edx,[re_ID] + dec edx + shl edx,2 ;умножить на 4 (размер указателя) + mov edx,[edx+edi] ;указатель на строку в edx + add ebx,15 + mcall ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -675,18 +675,18 @@ ret ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;---- begin ---- Данные для ГЛАВНОГО окна -------------------------- -caption db 'Периодическая система Д.И.Менделеева by navanax & Johnny_B',0 +caption db 'Периодическая система Д.И.Менделеева by navanax & Johnny_B',0 density db 'Плотность',0 -Atomic_massa db 'Атомная масса',0 -name db 'Название',0 -eng_name db 'Англ. название',0 -T_pl db 'Температура пл.',0 -T_kip db 'Температура кип.',0 -Electrootr db 'Электроотрицательность',0 -Raspr db 'Распределение в земн. коре',0 -Step_okisl db 'Степень окисления',0 -Otkrytie db 'Открытие',0 -number db 'Порядковый номер',0 +Atomic_massa db 'Атомная масса',0 +name db 'Название',0 +eng_name db 'Англ. название',0 +T_pl db 'Температура пл.',0 +T_kip db 'Температура кип.',0 +Electrootr db 'Электроотрицательность',0 +Raspr db 'Распределение в земн. коре',0 +Step_okisl db 'Степень окисления',0 +Otkrytie db 'Открытие',0 +number db 'Порядковый номер',0 Period_text: db ' I',0 db ' II',0 @@ -708,7 +708,7 @@ Actinoid_text db ' ;чтобы не было выхода за его пределы ;Английское название -Elements: ;116 элементов +Elements: ;116 элементов db 'Hydrogen ' ; 1 db 'Helium ' db 'Lithium ' @@ -825,6 +825,8 @@ db 'Nihonium ' db 'Flerovium ' db 'Moscovium ' db 'Livermorium ' ;116 +db 'Tennessine ' +db 'Oganesson ' ;--------------------------------- @@ -918,6 +920,10 @@ db 'Nh ' db 'Fi ' db 'Mc ' db 'Lv ' +; +db 'Ts ' +db 'Og ' +; db 'Ce ' db 'Pr ' db 'Nd ' @@ -948,8 +954,8 @@ db 'No ' db 'Lr ' ;АТОМНАЯ МАССА -MassNo: ;116 элементов -db '1.00794' ; 1 +MassNo: ;116 элементов +db '1.00794' ; 1 db '4.0026 ' db '6.941 ' db '9.01218' @@ -958,7 +964,7 @@ db '12.0107' db '14.0067' db '15.9994' db '18.9984' -db '20.179 ' ; 10 +db '20.179 ' ; 10 db '22.9898' db '24.305 ' db '26.9815' @@ -968,7 +974,7 @@ db '32.066 ' db '35.453 ' db '39.948 ' db '39.0983' -db '40.078 ' ; 20 +db '40.078 ' ; 20 db '44.9559' db '47.88 ' db '50.9415' @@ -978,7 +984,7 @@ db '55.847 ' db '58.9332' db '58.6934' db '63.546 ' -db '65.39 ' ; 30 +db '65.39 ' ; 30 db '69.723 ' db '72.61 ' db '74.922 ' @@ -988,7 +994,7 @@ db '83.80 ' db '85.47 ' db '87.62 ' db '88.906 ' -db '91.224 ' ; 40 +db '91.224 ' ; 40 db '92.906 ' db '95.94 ' db '(98) ' @@ -998,7 +1004,7 @@ db '106.42 ' db '107.868' db '112.41 ' db '114.82 ' -db '118.71 ' ; 50 +db '118.71 ' ; 50 db '121.75 ' db '127.60 ' db '126.90 ' @@ -1008,7 +1014,7 @@ db '137.33 ' db '138.91 ' db '140.12 ' db '140.91 ' -db '144.24 ' ; 60 +db '144.24 ' ; 60 db '(147) ' db '150.36 ' db '151.96 ' @@ -1018,7 +1024,7 @@ db '162.50 ' db '164.93 ' db '167.26 ' db '168.93 ' -db '173.04 ' ; 70 +db '173.04 ' ; 70 db '174.97 ' db '178.49 ' db '180.95 ' @@ -1028,7 +1034,7 @@ db '190.2 ' db '192.22 ' db '195.08 ' db '196.97 ' -db '200.59 ' ; 80 +db '200.59 ' ; 80 db '204.38 ' db '207.19 ' db '208.98 ' @@ -1038,7 +1044,7 @@ db '(222) ' db '(223) ' db '(226) ' db '(227) ' -db '232.04 ' ; 90 +db '232.04 ' ; 90 db '(231) ' db '238.029' db '(237) ' @@ -1048,7 +1054,7 @@ db '(247) ' db '(247) ' db '(251) ' db '(254) ' -db '(257) ' ; 100 +db '(257) ' ; 100 db '(258) ' db '(259) ' db '(262) ' ;103 @@ -1058,13 +1064,16 @@ db '(266) ' db '(264) ' db '(269) ' db '(268) ' -db '(271) ' ; 110 +db '(271) ' ; 110 db '(272) ' db '(285) ' db '(284) ' db '(289) ' db '(288) ' -db '(292) ' ;116 +db '(292) ' ;116 +; +db '294,210' +db '294,214' ;----------------------- @@ -1090,7 +1099,7 @@ db '2,60' db '2,83' db '3,20' db '0,91' -db '1,04' ; 20 +db '1,04' ; 20 db '1,20' db '1,32' db '1,45' @@ -1110,7 +1119,7 @@ db '2,94' db '0,89' db '0,99' db '1,11' -db '1,22' ;40 +db '1,22' ;40 db '1,6 ' db '2,16' db '1,9 ' @@ -1187,6 +1196,9 @@ db '??? ' db '??? ' db '??? ' db '??? ' ; 116 +db '??? ' +dd '??? ' + ;----------------------- @@ -1211,7 +1223,7 @@ strtbl T_plavl, \ "-101,03", \ "-189,34", \ "63,51", \ -"842", \ ;20 +"842", \ ;20 "1541", \ "1658", \ "1920", \ @@ -1231,7 +1243,7 @@ strtbl T_plavl, \ "39,3", \ "768", \ "1528", \ -"1855", \ ;40 +"1855", \ ;40 "2470", \ "2620", \ "2250", \ @@ -1271,7 +1283,7 @@ strtbl T_plavl, \ "2443", \ "1772", \ "1064,43", \ -"-38,862", \ ;80 +"-38,862", \ ;80 "303,6", \ "327,502", \ "271,44", \ @@ -1307,8 +1319,9 @@ strtbl T_plavl, \ "???", \ "???", \ "???", \ -"???" ; 116 - +"???", \ ; 116 +"???", \ +"???" ;----------------------- @@ -1334,7 +1347,7 @@ strtbl T_kipen, \ "-34,1", \ "-185,86", \ "760", \ -"1495", \ ;20 +"1495", \ ;20 "2850", \ "3260", \ "3450", \ @@ -1354,7 +1367,7 @@ strtbl T_kipen, \ "696", \ "1390", \ "3320", \ -"4340", \ ;40 +"4340", \ ;40 "4927", \ "4630", \ "4630", \ @@ -1424,18 +1437,20 @@ strtbl T_kipen, \ "???", \ "???", \ "???", \ -"???", \ ; 110 +"???", \ ; 110 "???", \ "???", \ "???", \ "???", \ "???", \ -"???" ; 116 +"???", \ ; 116 +"345 - 230", \ +"80 (+-30)" ;Русское название ; 116 элементов strtbl Rus_nazv, \ -"Водород", \ ;1 +"Водород", \ ;1 "Гелий", \ "Литий", \ "Бериллий", \ @@ -1444,7 +1459,7 @@ strtbl Rus_nazv, \ "Азот", \ "Кислород", \ "Фтор", \ -"Неон", \ ;10 +"Неон", \ ;10 "Натрий", \ "Магний", \ "Алюминий", \ @@ -1464,7 +1479,7 @@ strtbl Rus_nazv, \ "Кобальт", \ "Никель", \ "Медь", \ -"Цинк", \ ;30 +"Цинк", \ ;30 "Галлий", \ "Германий", \ "Мышьяк", \ @@ -1484,7 +1499,7 @@ strtbl Rus_nazv, \ "Серебро", \ "Кадмий", \ "Индий", \ -"Олово", \ ;50 +"Олово", \ ;50 "Сурьма", \ "Теллур", \ "Йод", \ @@ -1504,7 +1519,7 @@ strtbl Rus_nazv, \ "Гольмий", \ "Эрбий", \ "Тулий", \ -"Иттербий", \ ;70 +"Иттербий", \ ;70 "Лютеций", \ "Гафний", \ "Тантал", \ @@ -1527,7 +1542,7 @@ strtbl Rus_nazv, \ "Торий",\ "Протактиний",\ "Уран",\ -"Нептуний", \ ;90 +"Нептуний", \ ;90 "Плутоний", \ "Америций", \ "Кюрий", \ @@ -1547,10 +1562,12 @@ strtbl Rus_nazv, \ "Дармштадтий", \ ;110 "Рентгений", \ "Коперниций", \ -"Нихоний", \ +"Нихоний", \ "Флеровий", \ "Московий", \ -"Ливерморий" ;116 +"Ливерморий", \ ;116 +"Теннессин", \ +"Оганесон" ;Первооткрыватели ; 116 элементов @@ -1670,12 +1687,14 @@ strtbl First_Explore, \ "не открыт",\ "Учёные России, 1998",\ "не открыт",\ -"Ю.Ц.Оганессян, В.К.Утенков, 2000" +"Ю.Ц.Оганессян, В.К.Утенков, 2000", \ +"ОИЯИ в г.Дубна", \ +"ОИЯИ и Ливерморская лаборатория" ; Плотность 116 элементов strtbl Plotnost, \ -"-", \ ; 1 +"-", \ ; 1 "-", \ "535", \ "1848", \ @@ -1685,7 +1704,7 @@ strtbl Plotnost, \ "-", \ "-", \ "0,90035 г/л", \ -"968", \ ; 10 +"968", \ ; 10 "1738", \ "2700", \ "2330", \ @@ -1695,7 +1714,7 @@ strtbl Plotnost, \ "1,7837 г/л", \ "856", \ "1550", \ -"2985", \ ; 20 +"2985", \ ; 20 "4507", \ "6110", \ "7140", \ @@ -1705,7 +1724,7 @@ strtbl Plotnost, \ "8908", \ "8920", \ "7140", \ -"5904", \ ; 30 +"5904", \ ; 30 "5323", \ "5727", \ "4819", \ @@ -1715,7 +1734,7 @@ strtbl Plotnost, \ "2630", \ "4472", \ "6511", \ -"8570", \ ; 40 +"8570", \ ; 40 "10280", \ "11500", \ "12370", \ @@ -1725,7 +1744,7 @@ strtbl Plotnost, \ "8650", \ "7310", \ "7310", \ -"6697", \ ; 50 +"6697", \ ; 50 "6240", \ "4940", \ "5,851 г/л", \ @@ -1735,7 +1754,7 @@ strtbl Plotnost, \ "6689", \ "6640", \ "6800", \ -"7264", \ ; 60 +"7264", \ ; 60 "7353", \ "5244", \ "7901", \ @@ -1745,7 +1764,7 @@ strtbl Plotnost, \ "9066", \ "9321", \ "6570", \ -"9841", \ ; 70 +"9841", \ ; 70 "13310", \ "16650", \ "19250", \ @@ -1755,7 +1774,7 @@ strtbl Plotnost, \ "21090", \ "19300", \ "-", \ -"11850", \ ; 80 +"11850", \ ; 80 "11340", \ "9780", \ "9196", \ @@ -1765,7 +1784,7 @@ strtbl Plotnost, \ "5000", \ "10070", \ "11724", \ -"15370", \ ; 90 +"15370", \ ; 90 "19050", \ "20450", \ "19816", \ @@ -1775,7 +1794,7 @@ strtbl Plotnost, \ "15100", \ "-", \ "-", \ -"-", \ ; 100 +"-", \ ; 100 "-", \ "-", \ "-", \ @@ -1785,18 +1804,20 @@ strtbl Plotnost, \ "-", \ "-", \ "-", \ -"-", \ ; 110 +"-", \ ; 110 "-", \ "-", \ "-", \ "-", \ "-", \ -"-" ; 116 +"-", \ ; 116 +"-", \ +"4,9 - 5,1 " ;РАСПРОСТРАНЕНИЕ В ЗЕМНОЙ КОРЕ 116 элементов strtbl Rasprostr, \ -"0,14 %", \ ; 1 +"0,14 %", \ ; 1 "менее 0,0015 %", \ "0,0030 %", \ "0,0006 %", \ @@ -1805,7 +1826,7 @@ strtbl Rasprostr, \ "0,0046 %", \ "46,60 %", \ "0,070 %", \ -"0,00007 г/т", \ ; 10 +"0,00007 г/т", \ ; 10 "2,83 %", \ "2,09 %", \ "8,13 %", \ @@ -1815,7 +1836,7 @@ strtbl Rasprostr, \ "0,020 %", \ "0,000004 %", \ "2,59 %", \ -"3,63 %", \ ; 20 +"3,63 %", \ ; 20 "0,001 %", \ "0,57 %", \ "0,0110 %", \ @@ -1825,7 +1846,7 @@ strtbl Rasprostr, \ "0,0023 %", \ "0,0080 %", \ "0,0045 %", \ -"0,0065 %", \ ; 30 +"0,0065 %", \ ; 30 "0,0015 %", \ "0,00015 %", \ "0,00017 %", \ @@ -1835,7 +1856,7 @@ strtbl Rasprostr, \ "0,0120 %", \ "???", \ "0,0040 %", \ -"0,0160 %", \ ; 40 +"0,0160 %", \ ; 40 "0,0024 %", \ "0,0003 %", \ "-", \ @@ -1846,7 +1867,7 @@ strtbl Rasprostr, \ "0,0000135 %", \ "0,00001 %", \ "0,008 %", \ -"0,00005 %", \ ; 50 +"0,00005 %", \ ; 50 "0,000001 %", \ "0,00004 %", \ "0,000039 % (в атмосфере)", \ @@ -1856,7 +1877,7 @@ strtbl Rasprostr, \ "0,007 %", \ "0,0007 %", \ "0,0025 %", \ -"-", \ ; 60 +"-", \ ; 60 "0,0007 %", \ "0,00013 %", \ "0,00054 %", \ @@ -1866,7 +1887,7 @@ strtbl Rasprostr, \ "0,00033 %", \ "0,000027 %", \ "0,000033 %", \ -"0,00008 %", \ ; 70 +"0,00008 %", \ ; 70 "0,0003 - 0,0004 %", \ "0,00025 %", \ "0,0001 %", \ @@ -1876,7 +1897,7 @@ strtbl Rasprostr, \ "0,0000005 %", \ "0,00000043 %", \ "0,000007 %", \ -"0,0003 %", \ ; 80 +"0,0003 %", \ ; 80 "0,0015 %", \ "0,00002 %", \ "0,00000000000002 %", \ @@ -1886,7 +1907,7 @@ strtbl Rasprostr, \ "0,0000000001 %", \ "0,0000000006 %", \ "0,0008 %", \ -"-", \ ; 90 +"-", \ ; 90 "0,0003 %", \ "-", \ "-", \ @@ -1896,7 +1917,7 @@ strtbl Rasprostr, \ "-", \ "-", \ "-", \ -"-", \ ; 100 +"-", \ ; 100 "-", \ "-", \ "-", \ @@ -1906,17 +1927,19 @@ strtbl Rasprostr, \ "-", \ "-", \ "-", \ -"-", \ ; 110 +"-", \ ; 110 "-", \ "-", \ "-", \ "-", \ -"-" ; 116 +"-", \ ; 116 +"-", \ +"-" ; степень окисления 116 элементов strtbl Step_ok, \ -"+1 -1", \ ; 1 +"+1 -1", \ ; 1 "-", \ "+1", \ "+2 (+1)", \ @@ -1925,7 +1948,7 @@ strtbl Step_ok, \ "от +5 до -3 ", \ "+4 -4", \ "-1", \ -"-", \ ; 10 +"-", \ ; 10 "+1", \ "+2 (+1)", \ "+3 (+1 +2)", \ @@ -1935,7 +1958,7 @@ strtbl Step_ok, \ "-1 +1 +3 +5 +7", \ "-", \ "+1", \ -"+2 (+1)", \ ; 20 +"+2 (+1)", \ ; 20 "+3 (+1 +2)", \ "+4 +2 +3", \ "от +2 до +5", \ @@ -1945,7 +1968,7 @@ strtbl Step_ok, \ "+2 +3 (+1 +4 +5)", \ "+2 (+1 +3 +4)", \ "+1 +2 (+3 +4)", \ -"+2", \ ; 30 +"+2", \ ; 30 "+1 +3", \ "+4 +3 +2 +1", \ "+5 +3 -3", \ @@ -1955,7 +1978,7 @@ strtbl Step_ok, \ "+1", \ "+2 (+1)", \ "+3", \ -"+4 (+1 +2 +3)", \ ; 40 +"+4 (+1 +2 +3)", \ ; 40 "+5 (+1 +2 +3 +4)", \ "от +2 до +6", \ "от -1 до +7", \ @@ -1965,7 +1988,7 @@ strtbl Step_ok, \ "+1 +2 +3", \ "+2 (+1)", \ "+3 (+1)", \ -"+2 +4", \ ; 50 +"+2 +4", \ ; 50 "+3 +5 (-3)", \ "-2 +6 +4 (+2)", \ "-1 +1 +3 +5 +7", \ @@ -1975,7 +1998,7 @@ strtbl Step_ok, \ "+3", \ "+3 (+4)", \ "+4 +3 (+2)", \ -"+4 +3 (+2)", \ ; 60 +"+4 +3 (+2)", \ ; 60 "+3", \ "+2 +3 (+2)", \ "+3 +2", \ @@ -1985,7 +2008,7 @@ strtbl Step_ok, \ "+3 (+2)", \ "+3 (+1)", \ "+3 +2 (+4)", \ -"+2 +3", \ ; 70 +"+2 +3", \ ; 70 "+3", \ "+4 (+3 +2)", \ "+5 (+2 +3 +4)", \ @@ -1995,7 +2018,7 @@ strtbl Step_ok, \ "+4 +3 +1 +2 +6", \ "+4 +3 +2 (+5 +6)", \ "+1 +3 (+5)", \ -"+2 +1", \ ; 80 +"+2 +1", \ ; 80 "+1 +3", \ "+1 +4 +2", \ "+3 +5 -3 (+1 +2)", \ @@ -2005,7 +2028,7 @@ strtbl Step_ok, \ "+1", \ "+2", \ "+3", \ -"+4 (+2 +3)", \ ; 90 +"+4 (+2 +3)", \ ; 90 "+4 +5 (+3)", \ "от +2 до +6", \ "+3 +4 +5 (+6 +7)", \ @@ -2015,7 +2038,7 @@ strtbl Step_ok, \ "+3 (+4)", \ "+2 +3 (+4)", \ "+2 +3", \ -"+2 +3", \ ; 100 +"+2 +3", \ ; 100 "+1 +2 +3", \ "+2 +3", \ "+3", \ @@ -2025,12 +2048,14 @@ strtbl Step_ok, \ "-", \ "-", \ "-", \ -"-", \ ; 110 +"-", \ ; 110 "-", \ "-", \ "-", \ "-", \ "-", \ -"-" ; 116 +"-", \ ; 116 +"-", \ +"-1, 0, +1, +2, +4, +6" I_END: sc system_colors \ No newline at end of file