From 177c6817e534bffd70bfe61a82036feb8c3ce1d6 Mon Sep 17 00:00:00 2001 From: Andrew Date: Mon, 19 May 2025 14:32:32 +0100 Subject: [PATCH] programs: Fix post-SVN tidying MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix include paths after moving files up a level, from old SVN trunk subdirs. e.g. `include '../../macros.incтАЩ`. - Add SPDX placeholder. - Translated a few RU comments to en_US. - Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden. --- programs/other/calc/calc.asm | 9 +- programs/other/period/period.asm | 4126 ++++++++++++++-------------- programs/other/rtfread/rtfread.asm | 69 +- 3 files changed, 2107 insertions(+), 2097 deletions(-) diff --git a/programs/other/calc/calc.asm b/programs/other/calc/calc.asm index 6e167db34..59ae8a6fb 100644 --- a/programs/other/calc/calc.asm +++ b/programs/other/calc/calc.asm @@ -1,3 +1,6 @@ +; SPDX-License-Identifier: NOASSERTION +; + ;; Calculator for MenuetOS (c) Ville Turjanmaa ;; ;; Compile with FASM @@ -31,9 +34,9 @@ use32 dd E_END ; esp dd 0x0,0x0 ; I_Param , I_Icon -include '../../../macros.inc' -include '../../../gui_patterns.inc' -include '../../../KOSfuncs.inc' +include '../../macros.inc' +include '../../gui_patterns.inc' +include '../../KOSfuncs.inc' hotkeys_count equ 26 asci: db 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 43, 61, 13, 45, 42, 47, 44, 46, 27, 182, \ diff --git a/programs/other/period/period.asm b/programs/other/period/period.asm index 3db36a5e0..65cb031ea 100644 --- a/programs/other/period/period.asm +++ b/programs/other/period/period.asm @@ -1,2061 +1,2065 @@ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Periodic Table for KolibriOS -;; -;; Периодическая система химических элементов -;; Дмитрия Ивановича Менделеева -;; Авторы: -;; navanax [violetlab+rambler.ru] -;; Johnny_B [john+kolibrios.org] -;; -;; макрос для создания массива указателей на ASCIIZ-строки - -include '..\..\..\macros.inc' -macro strtbl name,[string] -{ - common - label name dword - forward - local lbl - dd lbl - forward - lbl db string,0 -} - -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 - -;ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ И КОНСТАНТЫ -re_ID dd 0x00000001 ;для хранения номера текущего выводимого элемента - -START: - - mov eax,48 - mov ebx,3 - mov ecx,sc - mov edx,sizeof.system_colors - mcall - -red: - call draw_window - -still: ;основной цикл программы - push 10 ;ожидание события - pop eax - mcall - - dec eax - je red - dec eax - jne button - -key: - mov al,2 - mcall - jmp still - -button: - mov al,17 ;получаем ID нажатой кнопки - mcall - shr eax,8 ; eax=24-битный ButtonID - - 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 -;; - call draw_text -;; - 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 - mov edx,[sc.work] - or edx,0x34000000 ;style - mov edi,caption - mcall - -text_in_window: - mov eax,4 ;вывод текста - mov ecx,0x80000000 ;asciiz, ЦВЕТ !!! - - mov ebx,40*65536+200 ;лантаноиды - mov edx,Lantanoid_text - mcall - - add ebx,20 ;актиноиды - mov edx,Actinoid_text - mcall - - mov ebx,150*65536+255 - mov edx,number - mcall - - add ebx,15 - mov edx,name - mcall - - add ebx,15 - mov edx,eng_name - mcall - - add ebx,15 - mov edx,Atomic_massa - mcall - - add ebx,15 - mov edx,density - mcall - - add ebx,15 - mov edx,Step_okisl - mcall - - add ebx,15 - mov edx,Electrootr - mcall - - add ebx,15 - mov edx,T_pl - mcall - - add ebx,15 - mov edx,T_kip - mcall - - add ebx,15 - mov edx,Raspr - mcall - - add ebx,15 - mov edx,Otkrytie - 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 - - @@: - 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 - - 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 - - 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 - - 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 - - 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 - - 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,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_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 - -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 - - 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 - - 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 - - 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_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,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_loop: - add ebx,26*65536 - add edx,3 - mcall - - dec edi - jns text_row8_loop - - 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 - - dec edi - jns text_row9_loop - -;; - короче выносим в отдельную процедуру - call draw_text -;; - - finish: - mov eax,12 ;end drawing - mov ebx,2 - mcall -ret - -draw_text: - - ; 1 вывод порядкового номера [optmzd-mem] - ; 2 вывод русского названия [optmzd-mem] - ; 3 вывод английского названия [optmzd-spd] - ; 4 вывод атомной массы [optmzd-spd] - ; 5 вывод плотность [optmzd-mem] - ; 6 вывод степень окисления [optmzd-mem] - ; 7 вывод электроотрицательности [optmzd-spd] - ; 8 вывод температура плавления [optmzd-mem] - ; 9 вывод температура кипения [optmzd-mem] - ;10 вывод распределение в земной коре [optmzd-mem] - ;11 вывод имён первооткрывателей [optmzd-mem] - -;; - закраска, что-бы не было наложения при прорисовке текста - 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 - -;ВНИМАНИЕ! ЗДЕСЬ ЗАДАЁТСЯ ЦВЕТ ВСЕГО ОСТАЛЬНОГО ТЕКСТА! [сделано для сокращения кода на 20 байт :)))] - mov ecx,[sc.work_text] ; ЦВЕТ - or ecx,0x80000000 ; asciiz - mov eax,4 ; эта функция вызывается 10 раз! так что запишем 1 раз - - ; 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 - - ; 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 - - ; 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 - - 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 - - ;10 вывод РАСПРЕДЕЛЕНИЕ В ЗЕМНОЙ КОРЕ [optmzd-mem] - mov edi,Rasprostr - 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 -ret - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; ;; -;; ОБЛАСТЬ ДАННЫХ ;; -;; ;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;---- begin ---- Данные для ГЛАВНОГО окна -------------------------- -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 -Period_text: - db ' I',0 - db ' II',0 - db 'III',0 - db ' IV',0 - db ' V',0 - db ' VI',0 - db 'VII',0 -Lantanoid_text db 'Лантаноиды',0 -Actinoid_text db ' Актиноиды',0 -;---- end ------ Данные для ГЛАВНОГО окна -------------------------- - - -;********************************************* -; БАЗА ДАННЫХ ПО ХИМИЧЕСКИМ ЭЛЕМЕНТАМ -;********************************************* -;определимся, что кол-во элементов = 116. Ни больше, ни меньше! -;Каждый массив должен содержать 116 элементов, -;чтобы не было выхода за его пределы - -;Английское название -Elements: ;116 элементов -db 'Hydrogen ' ; 1 -db 'Helium ' -db 'Lithium ' -db 'Beryllium ' -db 'Boron ' -db 'Carbon ' -db 'Nitrogen ' -db 'Oxygen ' -db 'Fluorine ' -db 'Neon ' -db 'Sodium ' -db 'Magnesium ' -db 'Aluminum ' -db 'Silicon ' -db 'Phosphorus ' -db 'Sulfur ' -db 'Chlorine ' -db 'Argon ' -db 'Potassium ' -db 'Calcium ' ;20 -db 'Scandium ' -db 'Titanium ' -db 'Vandium ' -db 'Chromium ' -db 'Manganese ' -db 'Iron ' -db 'Cobalt ' -db 'Nickel ' -db 'Copper ' -db 'Zinc ' ;30 -db 'Gallium ' -db 'Germanium ' -db 'Arsenic ' -db 'Selenium ' -db 'Bromine ' -db 'Krypton ' -db 'Rubidium ' -db 'Strontium ' -db 'Yttrium ' -db 'Zirconium ' -db 'Niobium ' -db 'Molybdenum ' -db 'Technetium ' -db 'Ruthenium ' -db 'Rhodium ' -db 'Palladium ' -db 'Silver ' -db 'Cadmium ' -db 'Indium ' -db 'Tin ' ;50 -db 'Antimony ' -db 'Tellurium ' -db 'Iodine ' -db 'Xenon ' -db 'Cesium ' -db 'Barium ' -db 'Lanthanum ' -db 'Cerium ' -db 'Praseodymium' -db 'Neodymium ' -db 'Promethium ' -db 'Samarium ' -db 'Europium ' -db 'Gadolinium ' -db 'Terbium ' -db 'Dysprosium ' -db 'Homium ' -db 'Erbium ' -db 'Thulium ' -db 'Ytterbium ' ;70 -db 'Lutetium ' -db 'Hafnium ' -db 'Tantalum ' -db 'Tungsten ' -db 'Rhenium ' -db 'Osmium ' -db 'Iridum ' -db 'Platinum ' -db 'Gold ' -db 'Mercury ' ;80 -db 'Thallium ' -db 'Lead ' -db 'Bismuth ' -db 'Polonium ' -db 'Astatine ' -db 'Radon ' -db 'Francium ' -db 'Radium ' -db 'Actinum ' -db 'Thorium ' ;90 -db 'Protactinium' -db 'Uranium ' -db 'Neptunium ' -db 'Plutonium ' -db 'Americium ' -db 'Curium ' -db 'Berkelium ' -db 'Californium ' -db 'Einsteinium ' -db 'Fermium ' ;100 -db 'Mendelevium ' -db 'Nobelium ' -db 'Lawrencium ' -db 'Reserfordium' -db 'Dubnium ' -db 'Siborgovium ' -db 'Boronium ' -db 'Hassium ' -db 'Meithnerium ' -db 'Darmstadtium' ;110 -db 'Roentgenium ' -db 'Copernicium ' -db 'Nihonium ' -db 'Flerovium ' -db 'Moscovium ' -db 'Livermorium ' ;116 -db 'Tennessine ' -db 'Oganesson ' - - -;--------------------------------- - -Symbols: ;116 элементов -db 'H ' -db 'He ' -db 'Li ' -db 'Be ' -db 'B ' -db 'C ' -db 'N ' -db 'O ' -db 'F ' -db 'Ne ' -db 'Na ' -db 'Mg ' -db 'Al ' -db 'Si ' -db 'P ' -db 'S ' -db 'Cl ' -db 'Ar ' -db 'K ' -db 'Ca ' -db 'Sc ' -db 'Ti ' -db 'V ' -db 'Cr ' -db 'Mn ' -db 'Fe ' -db 'Co ' -db 'Ni ' -db 'Cu ' -db 'Zn ' -db 'Ga ' -db 'Ge ' -db 'As ' -db 'Se ' -db 'Br ' -db 'Kr ' -db 'Rb ' -db 'Sr ' -db 'Y ' -db 'Zr ' -db 'Nb ' -db 'Mo ' -db 'Tc ' -db 'Ru ' -db 'Rh ' -db 'Pd ' -db 'Ag ' -db 'Cd ' -db 'In ' -db 'Sn ' -db 'Sb ' -db 'Te ' -db 'I ' -db 'Xe ' -db 'Cs ' -db 'Ba ' -db 'La ' -db 'Hf ' -db 'Ta ' -db 'W ' -db 'Re ' -db 'Os ' -db 'Ir ' -db 'Pt ' -db 'Au ' -db 'Hg ' -db 'Tl ' -db 'Pb ' -db 'Bi ' -db 'Po ' -db 'At ' -db 'Rn ' -db 'Fr ' -db 'Ra ' -db 'Ac ' -db 'Rf ' -db 'Db ' -db 'Sg ' -db 'Bh ' -db 'Hs ' -db 'Mt ' -db 'Ds ' -db 'Rg ' -db 'Cn ' -db 'Nh ' -db 'Fi ' -db 'Mc ' -db 'Lv ' -; -db 'Ts ' -db 'Og ' -; -db 'Ce ' -db 'Pr ' -db 'Nd ' -db 'Pm ' -db 'Sm ' -db 'Eu ' -db 'Gd ' -db 'Tb ' -db 'Dy ' -db 'Ho ' -db 'Er ' -db 'Tm ' -db 'Yb ' -db 'Lu ' -db 'Th ' -db 'Pa ' -db 'U ' -db 'Np ' -db 'Pu ' -db 'Am ' -db 'Cm ' -db 'Bk ' -db 'Cf ' -db 'Es ' -db 'Fm ' -db 'Md ' -db 'No ' -db 'Lr ' - -;АТОМНАЯ МАССА -MassNo: ;116 элементов -db '1.00794' ; 1 -db '4.0026 ' -db '6.941 ' -db '9.01218' -db '10.811 ' -db '12.0107' -db '14.0067' -db '15.9994' -db '18.9984' -db '20.179 ' ; 10 -db '22.9898' -db '24.305 ' -db '26.9815' -db '28.0855' -db '30.9738' -db '32.066 ' -db '35.453 ' -db '39.948 ' -db '39.0983' -db '40.078 ' ; 20 -db '44.9559' -db '47.88 ' -db '50.9415' -db '51.996 ' -db '54.938 ' -db '55.847 ' -db '58.9332' -db '58.6934' -db '63.546 ' -db '65.39 ' ; 30 -db '69.723 ' -db '72.61 ' -db '74.922 ' -db '78.96 ' -db '79.904 ' -db '83.80 ' -db '85.47 ' -db '87.62 ' -db '88.906 ' -db '91.224 ' ; 40 -db '92.906 ' -db '95.94 ' -db '(98) ' -db '101.07 ' -db '102.905' -db '106.42 ' -db '107.868' -db '112.41 ' -db '114.82 ' -db '118.71 ' ; 50 -db '121.75 ' -db '127.60 ' -db '126.90 ' -db '131.29 ' -db '132.90 ' -db '137.33 ' -db '138.91 ' -db '140.12 ' -db '140.91 ' -db '144.24 ' ; 60 -db '(147) ' -db '150.36 ' -db '151.96 ' -db '157.25 ' -db '158.92 ' -db '162.50 ' -db '164.93 ' -db '167.26 ' -db '168.93 ' -db '173.04 ' ; 70 -db '174.97 ' -db '178.49 ' -db '180.95 ' -db '183.85 ' -db '186.21 ' -db '190.2 ' -db '192.22 ' -db '195.08 ' -db '196.97 ' -db '200.59 ' ; 80 -db '204.38 ' -db '207.19 ' -db '208.98 ' -db '(209) ' -db '(210) ' -db '(222) ' -db '(223) ' -db '(226) ' -db '(227) ' -db '232.04 ' ; 90 -db '(231) ' -db '238.029' -db '(237) ' -db '(244) ' -db '(243) ' -db '(247) ' -db '(247) ' -db '(251) ' -db '(254) ' -db '(257) ' ; 100 -db '(258) ' -db '(259) ' -db '(262) ' ;103 -db '(261) ' -db '(262) ' -db '(266) ' -db '(264) ' -db '(269) ' -db '(268) ' -db '(271) ' ; 110 -db '(272) ' -db '(285) ' -db '(284) ' -db '(289) ' -db '(288) ' -db '(292) ' ;116 -; -db '294,210' -db '294,214' - - -;----------------------- - -;ЭЛЕКТРООТРИЦАТЕЛЬНОСТЬ -Electr: ; 116 элементов -db '2,1 ' ; 1 -db '5,5 ' -db '0,97' -db '1,47' -db '2,01' -db '2,50' -db '3,07' -db '3,50' -db '4,10' -db '4,84' ; 10 -db '0,93' -db '1,23' -db '1,47' -db '2,25' -db '2,32' -db '2,60' -db '2,83' -db '3,20' -db '0,91' -db '1,04' ; 20 -db '1,20' -db '1,32' -db '1,45' -db '1,56' -db '1,60' -db '1,64' -db '1,70' -db '1,75' -db '1,75' -db '1,66' ; 30 -db '1,82' -db '2,02' -db '2,11' -db '2,48' -db '2,74' -db '2,94' -db '0,89' -db '0,99' -db '1,11' -db '1,22' ;40 -db '1,6 ' -db '2,16' -db '1,9 ' -db '2.2 ' -db '2.28' -db '2,2 ' -db '1,93' -db '1,69' -db '1,78' -db '1,96' -db '2,05' -db '2,1 ' -db '2,66' -db '??? ' -db '0,79' -db '0,89' -db '1,1 ' -db '1,12' -db '1,13' -db '1,14' ;60 -db '1,13' -db '1,17' -db '1,2 ' -db '1,2 ' -db '1,2 ' -db '1,22' -db '1,23' -db '1,24' -db '1,25' -db '1,1 ' ; 70 -db '1,27' -db '1,3 ' -db '1,5 ' -db '1,36' -db '1,46' -db '1,52' -db '1,55' -db '1,44' -db '1,42' -db '1,42' ; 80 -db '1,42' -db '1,55' -db '1,67' -db '1,76' -db '1,90' -db '2,06' -db '0,86' -db '0,97' -db '1,00' -db '1,11' ;90 -db '1,14' -db '1,22' -db '1,22' -db '1,2 ' -db '1,1 ' -db '1,2 ' -db '1,1 ' -db '1,2 ' -db '??? ' -db '??? ' ; 100 -db '1,2 ' -db '??? ' -db '??? ' -db '??? ' -db '??? ' -db '??? ' -db '??? ' -db '??? ' -db '??? ' -db '??? ' ; 110 -db '??? ' -db '??? ' -db '??? ' -db '??? ' -db '??? ' -db '??? ' ; 116 -db '??? ' -dd '??? ' - - -;----------------------- - -;ТЕМПЕРАТУРА ПЛАВЛЕНИЯ 116 элементов -strtbl T_plavl, \ -"- 259,19", \ -"- 271,15", \ -"180,5", \ -"1287", \ -"2075", \ -"4000(графит)", \ -"-210,0", \ -"-218,7", \ -"-219,699", \ -"-248,6", \ -"97,83", \ -"648", \ -"660,37", \ -"1415", \ -"44,14(белый) 593(красный)", \ -"119,3", \ -"-101,03", \ -"-189,34", \ -"63,51", \ -"842", \ ;20 -"1541", \ -"1658", \ -"1920", \ -"1890", \ -"1245", \ -"1539", \ -"1494", \ -"1455", \ -"1084,5", \ -"419,5", \ -"29,78", \ -"937", \ -"817 (под давлением)", \ -"217", \ -"-7,25", \ -"-157,37", \ -"39,3", \ -"768", \ -"1528", \ -"1855", \ ;40 -"2470", \ -"2620", \ -"2250", \ -"2607", \ -"1963", \ -"1554", \ -"961,93", \ -"321,108", \ -"156,634", \ -"231,9681", \ -"630,74", \ -"449,8", \ -"113,5", \ -"-111,85", \ -"28,7", \ -"727", \ -"920", \ -"804", \ -"931", \ -"1024", \ ;60 -"1170", \ -"1072", \ -"826", \ -"1312", \ -"1356", \ -"1409", \ -"1470", \ -"1522", \ -"1545", \ -"824", \ -"1663", \ -"2230", \ -"3270", \ -"3660", \ -"3190", \ -"3027", \ -"2443", \ -"1772", \ -"1064,43", \ -"-38,862", \ ;80 -"303,6", \ -"327,502", \ -"271,44", \ -"254", \ -"575", \ -"-71,0", \ -"21", \ -"969", \ -"1050", \ -"1750", \ -"1580", \ -"1134", \ -"637", \ -"640", \ -"1292", \ -"1345", \ -"1050", \ -"900", \ -"860", \ -"???", \ ;100 -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ ;110 -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ ; 116 -"???", \ -"???" - - -;----------------------- - -;ТЕМПЕРАТУРА КИПЕНИЯ 116 элементов -strtbl T_kipen, \ -"- 252,87", \ -"- 268,935", \ -"1336,6", \ -"2471", \ -"3700", \ -"4200(графит)", \ -"-195,802", \ -"-182,962", \ -"-188,2", \ -"-246,048", \ -"886", \ -"1095", \ -"2500", \ -"3250", \ -"287,3 - белый ", \ -"444,674", \ -"-34,1", \ -"-185,86", \ -"760", \ -"1495", \ ;20 -"2850", \ -"3260", \ -"3450", \ -"2680", \ -"2080", \ -"3200", \ -"2960", \ -"2900", \ -"2540", \ -"906,2", \ -"2403", \ -"2850", \ -"-", \ -"685,3", \ -"59,82", \ -"153,35", \ -"696", \ -"1390", \ -"3320", \ -"4340", \ ;40 -"4927", \ -"4630", \ -"4630", \ -"4900", \ -"3700", \ -"2940", \ -"2170", \ -"766,5", \ -"2024", \ -"2620", \ -"1634", \ -"990", \ -"184,35", \ -"-108,12", \ -"667,6", \ -"1860", \ -"3450", \ -"3450", \ -"3510", \ -"3080", \ ;60 -"3000", \ -"1800", \ -"1440", \ -"3272", \ -"3073", \ -"2587", \ -"2707", \ -"2857", \ -"1947", \ -"1211", \ -"3412", \ -"4620", \ -"5425", \ -"6000", \ -"5900", \ -"5000", \ -"4380", \ -"3800", \ -"2947", \ -"356,66", \ ;80 -"1457", \ -"1745", \ -"1564", \ -"962", \ -"309", \ -"-61,9", \ -"669", \ -"1536", \ -"3300", \ -"4200", \ -"4500", \ -"4200", \ -"4100", \ -"3350", \ -"2880", \ -"3200", \ -"2630", \ -"1227", \ -"???", \ -"???", \ ;100 -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ ; 110 -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ -"???", \ ; 116 -"345 - 230", \ -"80 (+-30)" - - -;Русское название ; 116 элементов -strtbl Rus_nazv, \ -"Водород", \ ;1 -"Гелий", \ -"Литий", \ -"Бериллий", \ -"Бор", \ -"Углерод", \ -"Азот", \ -"Кислород", \ -"Фтор", \ -"Неон", \ ;10 -"Натрий", \ -"Магний", \ -"Алюминий", \ -"Кремний", \ -"Фосфор", \ -"Сера", \ -"Хлор", \ -"Аргон", \ -"Калий", \ -"Кальций", \ -"Скандий", \ -"Титан", \ -"Ванадий", \ -"Хром", \ -"Марганец", \ -"Железо", \ -"Кобальт", \ -"Никель", \ -"Медь", \ -"Цинк", \ ;30 -"Галлий", \ -"Германий", \ -"Мышьяк", \ -"Селен", \ -"Бром", \ -"Криптон", \ -"Рубидий", \ -"Стронций", \ -"Иттрий", \ -"Цирконий", \ -"Ниобий", \ -"Молибден", \ -"Технеций", \ -"Рутений", \ -"Родий", \ -"Палладий", \ -"Серебро", \ -"Кадмий", \ -"Индий", \ -"Олово", \ ;50 -"Сурьма", \ -"Теллур", \ -"Йод", \ -"Ксенон", \ -"Цезий", \ -"Барий", \ -"Лантан", \ -"Церий", \ -"Празеодим", \ -"Неодим", \ -"Прометий", \ -"Самарий", \ -"Европий", \ -"Гадолиний", \ -"Тербий", \ -"Диспрозий", \ -"Гольмий", \ -"Эрбий", \ -"Тулий", \ -"Иттербий", \ ;70 -"Лютеций", \ -"Гафний", \ -"Тантал", \ -"Вольфрам", \ -"Рений", \ -"Осмий", \ -"Иридий", \ -"Платина", \ -"Золото", \ -"Ртуть", \ -"Таллий", \ -"Свинец", \ -"Висмут", \ -"Полоний", \ -"Астат", \ -"Радон", \ -"Франций", \ -"Радий", \ -"Актиний", \ -"Торий",\ -"Протактиний",\ -"Уран",\ -"Нептуний", \ ;90 -"Плутоний", \ -"Америций", \ -"Кюрий", \ -"Берклий", \ -"Калифорний", \ -"Эйнштейний", \ -"Фермий", \ -"Менделевий", \ -"Нобелий", \ -"Лоуренсий", \ -"Резерфордий", \ -"Дубний", \ -"Сиборговий", \ -"Борий", \ -"Гассий", \ -"Мейтнерий", \ -"Дармштадтий", \ ;110 -"Рентгений", \ -"Коперниций", \ -"Нихоний", \ -"Флеровий", \ -"Московий", \ -"Ливерморий", \ ;116 -"Теннессин", \ -"Оганесон" - - -;Первооткрыватели ; 116 элементов -strtbl First_Explore, \ -"Г.Кавендиш, 1766", \ -"Ж.Жансен, Дж.Н.Локьер, 1868", \ -"А.Арфедсон, 1817", \ -"Л.Воклен, 1798", \ -"Л.Ж.Гей-Люссак 1808", \ -"известен до н.э.", \ -"Д.Резерфорд, 1772", \ -"К.В.Шееле, 1772", \ -"А.Муассан, 1886", \ -"У.Рамзай,М.Траверс 1898", \ -"Г.Дэви, 1807",\ -"Г.Дэви, 1808",\ -"Х.К.Эрстед, 1825",\ -"Ж.Л.Гей-Люссак, Л.Ж.Тенар, 1811",\ -"Х.Брандт, 1669",\ -"известна до н.э.",\ -"К.В.Шееле, 1774",\ -"У.Рамзай, Дж.Рэлей, 1894",\ -"Г.Дэви, 1807",\ -"Г.Дэви, 1808",\ -"Л.Ф.Нильсон, 1879",\ -"У.Грегор, 1790 ",\ -"Г.Роско, 1869",\ -"Л.Н.Воклен, 1797",\ -"Ю.Ган, 1774",\ -"известно до н.э.",\ -"Ю.Брандт, 1735",\ -"А.Кронштедт, 1751",\ -"известна до н.э.",\ -"известен со средн. веков",\ -"П.Э.Лекок де Буабодран, 1875",\ -"К.А.Винклер, 1886",\ -"известен со средн. веков",\ -"Й.Берцелиус, Й.Ган, 1817",\ -"Ж.Балар, 1826",\ -"У.Рамзай, М.Траверс, 1898",\ -"Р.Бунзен, Г.Кирхгоф, 1861",\ -"А.Крофорд, 1808",\ -"Ю.Гадолин, 1794",\ -"М.Клапрот, 1789",\ -"Ч.Хатчет, 1801",\ -"К.В.Шееле, 1778",\ -"Э.Сегре, К.Перье, 1937",\ -"К.К.Клаус, 1844",\ -"У.Волластон, 1804",\ -"У.Волластон, 1803",\ -"известно до н.э.",\ -"Ф.Штромейер, 1817",\ -"Р.Рейх, И.Рихтер, 1863",\ -"известно до н.э.",\ -"известна до н.э.",\ -"Ф.Мюллер, 1782",\ -"Б.Куртуа, 1811",\ -"У.Рамзай, М.Траверс, 1898",\ -"Р.Бунзен, Г.Кирхгоф, 1860",\ -"Г.Дэви, 1774",\ -"К.Мосандер, 1839",\ -"К.Мосандер, 1839",\ -"К.Ауэр фон Вельсбах, 1885",\ -"К.Ауэр фон Вельсбах, 1842",\ -"Л.Гленденин, Ч.Кориэлл и др., 1942",\ -"П.Э.Лекок де Буабодран, 1879",\ -"Э.Демарсе, 1901",\ -"Ж.Мариньяк, 1880",\ -"К.Мосандер, 1843",\ -"П.Э.Лекок де Буабодран, 1886",\ -"П.Клеве, 1879",\ -"К.Мосандер, 1843",\ -"П.Клеве, 1879",\ -"Ж.Мариньяк, 1878",\ -"Ж.Урбэн, Ч.Джеймс, 1907",\ -"Д.Костер и др., 1922",\ -"А.Г.Экеберг, 1802",\ -"К.В.Шееле, 1781",\ -"И. и В.Ноддак, О.Берг, 1925",\ -"С.Теннант, 1804",\ -"С.Теннант, 1804",\ -"изв. с древности",\ -"известно до н.э.",\ -"известна до н.э.",\ -"У.Крукс, 1861",\ -"известен до н.э.",\ -"И.Потт, 1739",\ -"М. и П.Кюри, 1898",\ -"Д.Корсон др., 1940",\ -"Э.Дорн, 1940",\ -"М.Перей, 1939",\ -"М. и П.Кюри, Ж.Бемюн, 1898",\ -"А.Дебьерн, 1899",\ -"Й.Берцелиус, 1828",\ -"О.Ган, Л.Мейтнер, Ф.Содди, 1918",\ -"М.Клапрот, 1789",\ -"Э.М.Макмиллан, Ф.Х.Эйблсон, 1940",\ -"Г.Сиборг и др., 1940",\ -"Г.Сиборг и др., 1944",\ -"Г.Сиборг и др., 1944",\ -"Г.Сиборг и др., 1949",\ -"Г.Сиборг и др., 1950",\ -"А.Гиорсо, С.Томпсон, 1952",\ -"А.Гиорсо, С.Томпсон, 1952",\ -"А.Гиорсо и др., 1955",\ -"Учёные СССР, 1966",\ -"А.Гиорсо и др., 1961",\ -"Г.Н.Флеров и др., 1964",\ -"Г.Н.Флеров и др., 1967",\ -"Г.Н.Флеров и др., 1974",\ -"P.Armbruster, G.Munzenber, 1981",\ -"P.Armbruster, G.Munzenber, 1984",\ -"P.Armbruster, G.Munzenber, 1982",\ -"S.Hofmann, V. Ninov, 1994",\ -"S.Hofmann, V. Ninov, 1994",\ -"S.Hofmann, V. Ninov, 1996",\ -"не открыт",\ -"Учёные России, 1998",\ -"не открыт",\ -"Ю.Ц.Оганессян, В.К.Утенков, 2000", \ -"ОИЯИ в г.Дубна", \ -"ОИЯИ и Ливерморская лаборатория" - - -; Плотность 116 элементов -strtbl Plotnost, \ -"-", \ ; 1 -"-", \ -"535", \ -"1848", \ -"2460", \ -"2267", \ -"-", \ -"-", \ -"-", \ -"0,90035 г/л", \ -"968", \ ; 10 -"1738", \ -"2700", \ -"2330", \ -"1823", \ -"1960", \ -"-", \ -"1,7837 г/л", \ -"856", \ -"1550", \ -"2985", \ ; 20 -"4507", \ -"6110", \ -"7140", \ -"7470", \ -"7874", \ -"8900", \ -"8908", \ -"8920", \ -"7140", \ -"5904", \ ; 30 -"5323", \ -"5727", \ -"4819", \ -"-", \ -"3,745 г/л", \ -"1532", \ -"2630", \ -"4472", \ -"6511", \ -"8570", \ ; 40 -"10280", \ -"11500", \ -"12370", \ -"12450", \ -"12023", \ -"10490", \ -"8650", \ -"7310", \ -"7310", \ -"6697", \ ; 50 -"6240", \ -"4940", \ -"5,851 г/л", \ -"1879", \ -"3510", \ -"6146", \ -"6689", \ -"6640", \ -"6800", \ -"7264", \ ; 60 -"7353", \ -"5244", \ -"7901", \ -"8219", \ -"8551", \ -"8795", \ -"9066", \ -"9321", \ -"6570", \ -"9841", \ ; 70 -"13310", \ -"16650", \ -"19250", \ -"21020", \ -"22610", \ -"22650", \ -"21090", \ -"19300", \ -"-", \ -"11850", \ ; 80 -"11340", \ -"9780", \ -"9196", \ -"-", \ -"9,73 г/л", \ -"2400", \ -"5000", \ -"10070", \ -"11724", \ -"15370", \ ; 90 -"19050", \ -"20450", \ -"19816", \ -"-", \ -"13510", \ -"14780", \ -"15100", \ -"-", \ -"-", \ -"-", \ ; 100 -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ ; 110 -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ ; 116 -"-", \ -"4,9 - 5,1 " - - -;РАСПРОСТРАНЕНИЕ В ЗЕМНОЙ КОРЕ 116 элементов -strtbl Rasprostr, \ -"0,14 %", \ ; 1 -"менее 0,0015 %", \ -"0,0030 %", \ -"0,0006 %", \ -"0,005 %", \ -"0,032 %", \ -"0,0046 %", \ -"46,60 %", \ -"0,070 %", \ -"0,00007 г/т", \ ; 10 -"2,83 %", \ -"2,09 %", \ -"8,13 %", \ -"27,72 %", \ -"0,118 %", \ -"0,052 %", \ -"0,020 %", \ -"0,000004 %", \ -"2,59 %", \ -"3,63 %", \ ; 20 -"0,001 %", \ -"0,57 %", \ -"0,0110 %", \ -"0,0200 %", \ -"0,100 %", \ -"5,00 %", \ -"0,0023 %", \ -"0,0080 %", \ -"0,0045 %", \ -"0,0065 %", \ ; 30 -"0,0015 %", \ -"0,00015 %", \ -"0,00017 %", \ -"0,000014 %", \ -"0,00016 %", \ -"0,000114 % (в атмосфере)", \ -"0,0120 %", \ -"???", \ -"0,0040 %", \ -"0,0160 %", \ ; 40 -"0,0024 %", \ -"0,0003 %", \ -"-", \ -"0,0000005 %", \ -"0.0000001 %", \ -"0,000001 %", \ -"0,000007 %", \ -"0,0000135 %", \ -"0,00001 %", \ -"0,008 %", \ -"0,00005 %", \ ; 50 -"0,000001 %", \ -"0,00004 %", \ -"0,000039 % (в атмосфере)", \ -"0,00037 %", \ -"0,040 %", \ -"0,0029 %", \ -"0,007 %", \ -"0,0007 %", \ -"0,0025 %", \ -"-", \ ; 60 -"0,0007 %", \ -"0,00013 %", \ -"0,00054 %", \ -"0,00043 %", \ -"0,0005 %", \ -"0,00013 %", \ -"0,00033 %", \ -"0,000027 %", \ -"0,000033 %", \ -"0,00008 %", \ ; 70 -"0,0003 - 0,0004 %", \ -"0,00025 %", \ -"0,0001 %", \ -"0,00000007 %", \ -"0,000005 %", \ -"0,0000001 %", \ -"0,0000005 %", \ -"0,00000043 %", \ -"0,000007 %", \ -"0,0003 %", \ ; 80 -"0,0015 %", \ -"0,00002 %", \ -"0,00000000000002 %", \ -"17 мг в слое коры 1,6 км", \ -"-", \ -"-", \ -"0,0000000001 %", \ -"0,0000000006 %", \ -"0,0008 %", \ -"-", \ ; 90 -"0,0003 %", \ -"-", \ -"-", \ -"0,0003 %", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ ; 100 -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ ; 110 -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ ; 116 -"-", \ -"-" - - -; степень окисления 116 элементов -strtbl Step_ok, \ -"+1 -1", \ ; 1 -"-", \ -"+1", \ -"+2 (+1)", \ -"+3 (+2)", \ -"+4 -4", \ -"от +5 до -3 ", \ -"+4 -4", \ -"-1", \ -"-", \ ; 10 -"+1", \ -"+2 (+1)", \ -"+3 (+1 +2)", \ -"+1 +2 +3 +4", \ -"-3 +3 +5", \ -"-2 +4 +6", \ -"-1 +1 +3 +5 +7", \ -"-", \ -"+1", \ -"+2 (+1)", \ ; 20 -"+3 (+1 +2)", \ -"+4 +2 +3", \ -"от +2 до +5", \ -"+2 +3 +6 (+4 +5 +1)", \ -"от +2 до +7", \ -"+2 +3 (+1 +2 +4 +6 +8)", \ -"+2 +3 (+1 +4 +5)", \ -"+2 (+1 +3 +4)", \ -"+1 +2 (+3 +4)", \ -"+2", \ ; 30 -"+1 +3", \ -"+4 +3 +2 +1", \ -"+5 +3 -3", \ -"+6 +4 -2 (+2)", \ -"-1 +1 +3 +5 +7", \ -"+2", \ -"+1", \ -"+2 (+1)", \ -"+3", \ -"+4 (+1 +2 +3)", \ ; 40 -"+5 (+1 +2 +3 +4)", \ -"от +2 до +6", \ -"от -1 до +7", \ -"+3 +4 +6 +8", \ -"+1 +2 +3 +4 +5 +6", \ -"+1 +2 +3 +4 (+5 +6)", \ -"+1 +2 +3", \ -"+2 (+1)", \ -"+3 (+1)", \ -"+2 +4", \ ; 50 -"+3 +5 (-3)", \ -"-2 +6 +4 (+2)", \ -"-1 +1 +3 +5 +7", \ -"+2 +4 +6 +8", \ -"+1", \ -"+2 (+1)", \ -"+3", \ -"+3 (+4)", \ -"+4 +3 (+2)", \ -"+4 +3 (+2)", \ ; 60 -"+3", \ -"+2 +3 (+2)", \ -"+3 +2", \ -"+3 (+2 +1)", \ -"+1 +3 +4", \ -"+3 (+2 +4)", \ -"+3 (+2)", \ -"+3 (+1)", \ -"+3 +2 (+4)", \ -"+2 +3", \ ; 70 -"+3", \ -"+4 (+3 +2)", \ -"+5 (+2 +3 +4)", \ -"от +2 до +6", \ -"от +7 до -1", \ -"+4 +6 +8 +1 +3 +5", \ -"+4 +3 +1 +2 +6", \ -"+4 +3 +2 (+5 +6)", \ -"+1 +3 (+5)", \ -"+2 +1", \ ; 80 -"+1 +3", \ -"+1 +4 +2", \ -"+3 +5 -3 (+1 +2)", \ -"+6 +4 +2 -2", \ -"-1 +1 +5 (+7)", \ -"+2 +4 +6", \ -"+1", \ -"+2", \ -"+3", \ -"+4 (+2 +3)", \ ; 90 -"+4 +5 (+3)", \ -"от +2 до +6", \ -"+3 +4 +5 (+6 +7)", \ -"от +3 до +7", \ -"от +2 до +7", \ -"+3 (+4 +6)", \ -"+3 (+4)", \ -"+2 +3 (+4)", \ -"+2 +3", \ -"+2 +3", \ ; 100 -"+1 +2 +3", \ -"+2 +3", \ -"+3", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ ; 110 -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ -"-", \ ; 116 -"-", \ -"-1, 0, +1, +2, +4, +6" -I_END: -sc system_colors \ No newline at end of file +; SPDX-License-Identifier: NOASSERTION +; + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Periodic Table of Chemical Elements for KolibriOS +;; Dmitry Ivanovich Mendeleyev +;; Authors: +;; navanax [violetlab+rambler.ru] +;; Johnny_B [john+kolibrios.org] + + +;; macro for creating an array of pointers to ASCIIZ strings + +include '..\..macros.inc' +macro strtbl name,[string] +{ + common + label name dword + forward + local lbl + dd lbl + forward + lbl db string,0 +} + +use32 + + org 0x0 + db 'MENUET01' ; standard 8-byte header for MeOS executables + dd 0x01 ; header version + dd START ; pointer to the start of the executable code + dd I_END ; image size + dd I_END+0x1000 ; required memory for the application + dd I_END+0x1000 ; pointer to the start of the stack + dd 0x0 , 0x0 ; I_Param , I_Icon + + +;GLOBAL VARIABLES AND CONSTANTS +re_ID dd 0x00000001 ;to store the number of the currently displayed element + + +START: + + mov eax,48 + mov ebx,3 + mov ecx,sc + mov edx,sizeof.system_colors + mcall + +red: + call draw_window + +still: ;main program loop + push 10 ;waiting for event + pop eax + mcall + + dec eax + je red + dec eax + jne button + +key: + mov al,2 + mcall + jmp still + +button: + mov al,17 ;get ID of the pressed button + mcall + shr eax,8 ; eax=24-bit ButtonID + + cmp eax,1 ; whether they are pressed "close" [x] + jne noclose + or eax,-1 + mcall + +noclose: + cmp eax,200 + jne no_H + mov eax,1 +no_H: + mov [re_ID],eax +;; + call draw_text +;; + 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 + mov edx,[sc.work] + or edx,0x34000000 ;style + mov edi,caption + mcall + +text_in_window: + mov eax,4 ;text output + mov ecx,0x80000000 ; asciz, color !!! + + mov ebx,40*65536+200 ;lanthanide + mov edx,Lantanoid_text + mcall + + add ebx,20 ;actinide + mov edx,Actinoid_text + mcall + + mov ebx,150*65536+255 + mov edx,number + mcall + + add ebx,15 + mov edx,name + mcall + + add ebx,15 + mov edx,eng_name + mcall + + add ebx,15 + mov edx,Atomic_massa + mcall + + add ebx,15 + mov edx,density + mcall + + add ebx,15 + mov edx,Step_okisl + mcall + + add ebx,15 + mov edx,Electrootr + mcall + + add ebx,15 + mov edx,T_pl + mcall + + add ebx,15 + mov edx,T_kip + mcall + + add ebx,15 + mov edx,Raspr + mcall + + add ebx,15 + mov edx,Otkrytie + mcall + + ; The conclusion of the numbers + 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 + + @@: + add ebx,20 + add edx,4 ;since the string = 4 bytes (with zero) + mcall + ret + +Table: ;Drawing a table in the form of buttons + 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,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 + + 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 + + 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 + + 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 + + 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_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 + +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 + + 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 + + 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 + + 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_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,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_loop: + add ebx,26*65536 + add edx,3 + mcall + + dec edi + jns text_row8_loop + + 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 + + dec edi + jns text_row9_loop + +;; - In short, we put it in a separate procedure + call draw_text +;; + + finish: + mov eax,12 ;end drawing + mov ebx,2 + mcall +ret + +draw_text: + ; 1 output serial number [optmzd-mem] + ; 2 output Russian name [optmzd-mem] + ; 3 output English name [optmzd-spd] + ; 4 output atomic mass [optmzd-spd] + ; 5 output density [optmzd-mem] + ; 6 output oxidation state [optmzd-mem] + ; 7 output electronegativity [optmzd-spd] + ; 8 output melting point [optmzd-mem] + ; 9 output boiling point [optmzd-mem] + ;10 output distribution in the Earth's crust [optmzd-mem] + ;11 output names of discoverers [optmzd-mem] + + +;; - coloring, so that there is no overlap when drawing text + mov eax,13 + mov ebx,320*65536+210 + mov ecx,255*65536+(15*11) + mov edx,[sc.work] + mcall +;; + + + push edi ;To optimize EBX changes + + ; 1 output serial number [optmzd-mem] + mov ebx,0x30000 ;Display 3 digits + mov ecx,[re_ID] + mov edx,320*65536+255 + xor esi,esi + mov eax,47 + mcall + +;ATTENTION! HERE IS THE COLOR OF ALL THE REST OF THE TEXT! [done to reduce the code by 20 bytes :)] + mov ecx,[sc.work_text] ; Color + or ecx,0x80000000 ; asciiz + mov eax,4 ; this function is called 10 times! so we will write 1 time + + ; 2 output Russian name [optmzd-mem] + mov edi,Rus_nazv ;pointer to the beginning of an array of signs ;) + mov ebx,320*65536+255 ;Coordinates are introduced here, then there will be only Add EBX, 15 + call out_asciiz_item + + xor ecx,ecx ;color + ; 3 output English name [optmzd-spd] + mov edx,Elements + mov edi,[re_ID] + dec edi + mov esi,12 ; The length of the line + imul edi,esi ; we consider the pointer to the desired line + add edx,edi + add ebx,15 ; We increase the text of the text by 15 pixels + mcall + + ; 4 output atomic mass [optmzd-spd] + mov edx,MassNo + mov edi,[re_ID] + dec edi + mov esi,7 ; The length of the line + imul edi,esi ; we consider the pointer to the desired line + add edx,edi + add ebx,15 + mcall + + mov ecx,0x80000000 ; asciz, color !!! + ; 5 output density [optmzd-mem] + mov edi,Plotnost + call out_asciiz_item + + ; 6 output oxidation state [optmzd-mem] + mov edi,Step_ok + call out_asciiz_item + + xor ecx,ecx ;color + ; 7 output electronegativity [optmzd-spd] + mov edx,Electr + mov edi,[re_ID] + dec edi + mov esi,4 ;Line length + shl edi,2 + add edx,edi + add ebx,15 + mcall + + mov ecx,0x80000000 ;asciz, color !!! + ; 8 output melting point [optmzd-mem] + mov edi,T_plavl + call out_asciiz_item + + ; 9 output boiling point [optmzd-mem] + mov edi,T_kipen + call out_asciiz_item + + ;10 output distribution in the Earth's crust [optmzd-mem] + mov edi,Rasprostr + call out_asciiz_item + + ;11 output names of discoverers [optmzd-mem] + mov edi,First_Explore + call out_asciiz_item + + pop edi ; He was preserved at the beginning :) + ret + +; the function performs a set of actions to display information +out_asciiz_item: + mov edx,[re_ID] + dec edx + shl edx,2 ;multiply by 4 (pointer size) + mov edx,[edx+edi] ;pointer to a string in edx + add ebx,15 + mcall +ret + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; Data area ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;---- begin ---- Данные для ГЛАВНОГО окна -------------------------- +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 +Period_text: + db ' I',0 + db ' II',0 + db 'III',0 + db ' IV',0 + db ' V',0 + db ' VI',0 + db 'VII',0 +Lantanoid_text db 'Лантаноиды',0 +Actinoid_text db ' Актиноиды',0 +;---- end ------ Данные для ГЛАВНОГО окна -------------------------- + + +;********************************************* +; БАЗА ДАННЫХ ПО ХИМИЧЕСКИМ ЭЛЕМЕНТАМ +;********************************************* +;определимся, что кол-во элементов = 116. Ни больше, ни меньше! +;Каждый массив должен содержать 116 элементов, +;чтобы не было выхода за его пределы + +;Английское название +Elements: ;116 элементов +db 'Hydrogen ' ; 1 +db 'Helium ' +db 'Lithium ' +db 'Beryllium ' +db 'Boron ' +db 'Carbon ' +db 'Nitrogen ' +db 'Oxygen ' +db 'Fluorine ' +db 'Neon ' +db 'Sodium ' +db 'Magnesium ' +db 'Aluminum ' +db 'Silicon ' +db 'Phosphorus ' +db 'Sulfur ' +db 'Chlorine ' +db 'Argon ' +db 'Potassium ' +db 'Calcium ' ;20 +db 'Scandium ' +db 'Titanium ' +db 'Vandium ' +db 'Chromium ' +db 'Manganese ' +db 'Iron ' +db 'Cobalt ' +db 'Nickel ' +db 'Copper ' +db 'Zinc ' ;30 +db 'Gallium ' +db 'Germanium ' +db 'Arsenic ' +db 'Selenium ' +db 'Bromine ' +db 'Krypton ' +db 'Rubidium ' +db 'Strontium ' +db 'Yttrium ' +db 'Zirconium ' +db 'Niobium ' +db 'Molybdenum ' +db 'Technetium ' +db 'Ruthenium ' +db 'Rhodium ' +db 'Palladium ' +db 'Silver ' +db 'Cadmium ' +db 'Indium ' +db 'Tin ' ;50 +db 'Antimony ' +db 'Tellurium ' +db 'Iodine ' +db 'Xenon ' +db 'Cesium ' +db 'Barium ' +db 'Lanthanum ' +db 'Cerium ' +db 'Praseodymium' +db 'Neodymium ' +db 'Promethium ' +db 'Samarium ' +db 'Europium ' +db 'Gadolinium ' +db 'Terbium ' +db 'Dysprosium ' +db 'Homium ' +db 'Erbium ' +db 'Thulium ' +db 'Ytterbium ' ;70 +db 'Lutetium ' +db 'Hafnium ' +db 'Tantalum ' +db 'Tungsten ' +db 'Rhenium ' +db 'Osmium ' +db 'Iridum ' +db 'Platinum ' +db 'Gold ' +db 'Mercury ' ;80 +db 'Thallium ' +db 'Lead ' +db 'Bismuth ' +db 'Polonium ' +db 'Astatine ' +db 'Radon ' +db 'Francium ' +db 'Radium ' +db 'Actinum ' +db 'Thorium ' ;90 +db 'Protactinium' +db 'Uranium ' +db 'Neptunium ' +db 'Plutonium ' +db 'Americium ' +db 'Curium ' +db 'Berkelium ' +db 'Californium ' +db 'Einsteinium ' +db 'Fermium ' ;100 +db 'Mendelevium ' +db 'Nobelium ' +db 'Lawrencium ' +db 'Reserfordium' +db 'Dubnium ' +db 'Siborgovium ' +db 'Boronium ' +db 'Hassium ' +db 'Meithnerium ' +db 'Darmstadtium' ;110 +db 'Roentgenium ' +db 'Copernicium ' +db 'Nihonium ' +db 'Flerovium ' +db 'Moscovium ' +db 'Livermorium ' ;116 +db 'Tennessine ' +db 'Oganesson ' + + +;--------------------------------- + +Symbols: ;116 элементов +db 'H ' +db 'He ' +db 'Li ' +db 'Be ' +db 'B ' +db 'C ' +db 'N ' +db 'O ' +db 'F ' +db 'Ne ' +db 'Na ' +db 'Mg ' +db 'Al ' +db 'Si ' +db 'P ' +db 'S ' +db 'Cl ' +db 'Ar ' +db 'K ' +db 'Ca ' +db 'Sc ' +db 'Ti ' +db 'V ' +db 'Cr ' +db 'Mn ' +db 'Fe ' +db 'Co ' +db 'Ni ' +db 'Cu ' +db 'Zn ' +db 'Ga ' +db 'Ge ' +db 'As ' +db 'Se ' +db 'Br ' +db 'Kr ' +db 'Rb ' +db 'Sr ' +db 'Y ' +db 'Zr ' +db 'Nb ' +db 'Mo ' +db 'Tc ' +db 'Ru ' +db 'Rh ' +db 'Pd ' +db 'Ag ' +db 'Cd ' +db 'In ' +db 'Sn ' +db 'Sb ' +db 'Te ' +db 'I ' +db 'Xe ' +db 'Cs ' +db 'Ba ' +db 'La ' +db 'Hf ' +db 'Ta ' +db 'W ' +db 'Re ' +db 'Os ' +db 'Ir ' +db 'Pt ' +db 'Au ' +db 'Hg ' +db 'Tl ' +db 'Pb ' +db 'Bi ' +db 'Po ' +db 'At ' +db 'Rn ' +db 'Fr ' +db 'Ra ' +db 'Ac ' +db 'Rf ' +db 'Db ' +db 'Sg ' +db 'Bh ' +db 'Hs ' +db 'Mt ' +db 'Ds ' +db 'Rg ' +db 'Cn ' +db 'Nh ' +db 'Fi ' +db 'Mc ' +db 'Lv ' +; +db 'Ts ' +db 'Og ' +; +db 'Ce ' +db 'Pr ' +db 'Nd ' +db 'Pm ' +db 'Sm ' +db 'Eu ' +db 'Gd ' +db 'Tb ' +db 'Dy ' +db 'Ho ' +db 'Er ' +db 'Tm ' +db 'Yb ' +db 'Lu ' +db 'Th ' +db 'Pa ' +db 'U ' +db 'Np ' +db 'Pu ' +db 'Am ' +db 'Cm ' +db 'Bk ' +db 'Cf ' +db 'Es ' +db 'Fm ' +db 'Md ' +db 'No ' +db 'Lr ' + +;АТОМНАЯ МАССА +MassNo: ;116 элементов +db '1.00794' ; 1 +db '4.0026 ' +db '6.941 ' +db '9.01218' +db '10.811 ' +db '12.0107' +db '14.0067' +db '15.9994' +db '18.9984' +db '20.179 ' ; 10 +db '22.9898' +db '24.305 ' +db '26.9815' +db '28.0855' +db '30.9738' +db '32.066 ' +db '35.453 ' +db '39.948 ' +db '39.0983' +db '40.078 ' ; 20 +db '44.9559' +db '47.88 ' +db '50.9415' +db '51.996 ' +db '54.938 ' +db '55.847 ' +db '58.9332' +db '58.6934' +db '63.546 ' +db '65.39 ' ; 30 +db '69.723 ' +db '72.61 ' +db '74.922 ' +db '78.96 ' +db '79.904 ' +db '83.80 ' +db '85.47 ' +db '87.62 ' +db '88.906 ' +db '91.224 ' ; 40 +db '92.906 ' +db '95.94 ' +db '(98) ' +db '101.07 ' +db '102.905' +db '106.42 ' +db '107.868' +db '112.41 ' +db '114.82 ' +db '118.71 ' ; 50 +db '121.75 ' +db '127.60 ' +db '126.90 ' +db '131.29 ' +db '132.90 ' +db '137.33 ' +db '138.91 ' +db '140.12 ' +db '140.91 ' +db '144.24 ' ; 60 +db '(147) ' +db '150.36 ' +db '151.96 ' +db '157.25 ' +db '158.92 ' +db '162.50 ' +db '164.93 ' +db '167.26 ' +db '168.93 ' +db '173.04 ' ; 70 +db '174.97 ' +db '178.49 ' +db '180.95 ' +db '183.85 ' +db '186.21 ' +db '190.2 ' +db '192.22 ' +db '195.08 ' +db '196.97 ' +db '200.59 ' ; 80 +db '204.38 ' +db '207.19 ' +db '208.98 ' +db '(209) ' +db '(210) ' +db '(222) ' +db '(223) ' +db '(226) ' +db '(227) ' +db '232.04 ' ; 90 +db '(231) ' +db '238.029' +db '(237) ' +db '(244) ' +db '(243) ' +db '(247) ' +db '(247) ' +db '(251) ' +db '(254) ' +db '(257) ' ; 100 +db '(258) ' +db '(259) ' +db '(262) ' ;103 +db '(261) ' +db '(262) ' +db '(266) ' +db '(264) ' +db '(269) ' +db '(268) ' +db '(271) ' ; 110 +db '(272) ' +db '(285) ' +db '(284) ' +db '(289) ' +db '(288) ' +db '(292) ' ;116 +; +db '294,210' +db '294,214' + + +;----------------------- + +;ЭЛЕКТРООТРИЦАТЕЛЬНОСТЬ +Electr: ; 116 элементов +db '2,1 ' ; 1 +db '5,5 ' +db '0,97' +db '1,47' +db '2,01' +db '2,50' +db '3,07' +db '3,50' +db '4,10' +db '4,84' ; 10 +db '0,93' +db '1,23' +db '1,47' +db '2,25' +db '2,32' +db '2,60' +db '2,83' +db '3,20' +db '0,91' +db '1,04' ; 20 +db '1,20' +db '1,32' +db '1,45' +db '1,56' +db '1,60' +db '1,64' +db '1,70' +db '1,75' +db '1,75' +db '1,66' ; 30 +db '1,82' +db '2,02' +db '2,11' +db '2,48' +db '2,74' +db '2,94' +db '0,89' +db '0,99' +db '1,11' +db '1,22' ;40 +db '1,6 ' +db '2,16' +db '1,9 ' +db '2.2 ' +db '2.28' +db '2,2 ' +db '1,93' +db '1,69' +db '1,78' +db '1,96' +db '2,05' +db '2,1 ' +db '2,66' +db '??? ' +db '0,79' +db '0,89' +db '1,1 ' +db '1,12' +db '1,13' +db '1,14' ;60 +db '1,13' +db '1,17' +db '1,2 ' +db '1,2 ' +db '1,2 ' +db '1,22' +db '1,23' +db '1,24' +db '1,25' +db '1,1 ' ; 70 +db '1,27' +db '1,3 ' +db '1,5 ' +db '1,36' +db '1,46' +db '1,52' +db '1,55' +db '1,44' +db '1,42' +db '1,42' ; 80 +db '1,42' +db '1,55' +db '1,67' +db '1,76' +db '1,90' +db '2,06' +db '0,86' +db '0,97' +db '1,00' +db '1,11' ;90 +db '1,14' +db '1,22' +db '1,22' +db '1,2 ' +db '1,1 ' +db '1,2 ' +db '1,1 ' +db '1,2 ' +db '??? ' +db '??? ' ; 100 +db '1,2 ' +db '??? ' +db '??? ' +db '??? ' +db '??? ' +db '??? ' +db '??? ' +db '??? ' +db '??? ' +db '??? ' ; 110 +db '??? ' +db '??? ' +db '??? ' +db '??? ' +db '??? ' +db '??? ' ; 116 +db '??? ' +dd '??? ' + + +;----------------------- + +;ТЕМПЕРАТУРА ПЛАВЛЕНИЯ 116 элементов +strtbl T_plavl, \ +"- 259,19", \ +"- 271,15", \ +"180,5", \ +"1287", \ +"2075", \ +"4000(графит)", \ +"-210,0", \ +"-218,7", \ +"-219,699", \ +"-248,6", \ +"97,83", \ +"648", \ +"660,37", \ +"1415", \ +"44,14(белый) 593(красный)", \ +"119,3", \ +"-101,03", \ +"-189,34", \ +"63,51", \ +"842", \ ;20 +"1541", \ +"1658", \ +"1920", \ +"1890", \ +"1245", \ +"1539", \ +"1494", \ +"1455", \ +"1084,5", \ +"419,5", \ +"29,78", \ +"937", \ +"817 (под давлением)", \ +"217", \ +"-7,25", \ +"-157,37", \ +"39,3", \ +"768", \ +"1528", \ +"1855", \ ;40 +"2470", \ +"2620", \ +"2250", \ +"2607", \ +"1963", \ +"1554", \ +"961,93", \ +"321,108", \ +"156,634", \ +"231,9681", \ +"630,74", \ +"449,8", \ +"113,5", \ +"-111,85", \ +"28,7", \ +"727", \ +"920", \ +"804", \ +"931", \ +"1024", \ ;60 +"1170", \ +"1072", \ +"826", \ +"1312", \ +"1356", \ +"1409", \ +"1470", \ +"1522", \ +"1545", \ +"824", \ +"1663", \ +"2230", \ +"3270", \ +"3660", \ +"3190", \ +"3027", \ +"2443", \ +"1772", \ +"1064,43", \ +"-38,862", \ ;80 +"303,6", \ +"327,502", \ +"271,44", \ +"254", \ +"575", \ +"-71,0", \ +"21", \ +"969", \ +"1050", \ +"1750", \ +"1580", \ +"1134", \ +"637", \ +"640", \ +"1292", \ +"1345", \ +"1050", \ +"900", \ +"860", \ +"???", \ ;100 +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ ;110 +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ ; 116 +"???", \ +"???" + + +;----------------------- + +;ТЕМПЕРАТУРА КИПЕНИЯ 116 элементов +strtbl T_kipen, \ +"- 252,87", \ +"- 268,935", \ +"1336,6", \ +"2471", \ +"3700", \ +"4200(графит)", \ +"-195,802", \ +"-182,962", \ +"-188,2", \ +"-246,048", \ +"886", \ +"1095", \ +"2500", \ +"3250", \ +"287,3 - белый ", \ +"444,674", \ +"-34,1", \ +"-185,86", \ +"760", \ +"1495", \ ;20 +"2850", \ +"3260", \ +"3450", \ +"2680", \ +"2080", \ +"3200", \ +"2960", \ +"2900", \ +"2540", \ +"906,2", \ +"2403", \ +"2850", \ +"-", \ +"685,3", \ +"59,82", \ +"153,35", \ +"696", \ +"1390", \ +"3320", \ +"4340", \ ;40 +"4927", \ +"4630", \ +"4630", \ +"4900", \ +"3700", \ +"2940", \ +"2170", \ +"766,5", \ +"2024", \ +"2620", \ +"1634", \ +"990", \ +"184,35", \ +"-108,12", \ +"667,6", \ +"1860", \ +"3450", \ +"3450", \ +"3510", \ +"3080", \ ;60 +"3000", \ +"1800", \ +"1440", \ +"3272", \ +"3073", \ +"2587", \ +"2707", \ +"2857", \ +"1947", \ +"1211", \ +"3412", \ +"4620", \ +"5425", \ +"6000", \ +"5900", \ +"5000", \ +"4380", \ +"3800", \ +"2947", \ +"356,66", \ ;80 +"1457", \ +"1745", \ +"1564", \ +"962", \ +"309", \ +"-61,9", \ +"669", \ +"1536", \ +"3300", \ +"4200", \ +"4500", \ +"4200", \ +"4100", \ +"3350", \ +"2880", \ +"3200", \ +"2630", \ +"1227", \ +"???", \ +"???", \ ;100 +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ ; 110 +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ +"???", \ ; 116 +"345 - 230", \ +"80 (+-30)" + + +;Русское название ; 116 элементов +strtbl Rus_nazv, \ +"Водород", \ ;1 +"Гелий", \ +"Литий", \ +"Бериллий", \ +"Бор", \ +"Углерод", \ +"Азот", \ +"Кислород", \ +"Фтор", \ +"Неон", \ ;10 +"Натрий", \ +"Магний", \ +"Алюминий", \ +"Кремний", \ +"Фосфор", \ +"Сера", \ +"Хлор", \ +"Аргон", \ +"Калий", \ +"Кальций", \ +"Скандий", \ +"Титан", \ +"Ванадий", \ +"Хром", \ +"Марганец", \ +"Железо", \ +"Кобальт", \ +"Никель", \ +"Медь", \ +"Цинк", \ ;30 +"Галлий", \ +"Германий", \ +"Мышьяк", \ +"Селен", \ +"Бром", \ +"Криптон", \ +"Рубидий", \ +"Стронций", \ +"Иттрий", \ +"Цирконий", \ +"Ниобий", \ +"Молибден", \ +"Технеций", \ +"Рутений", \ +"Родий", \ +"Палладий", \ +"Серебро", \ +"Кадмий", \ +"Индий", \ +"Олово", \ ;50 +"Сурьма", \ +"Теллур", \ +"Йод", \ +"Ксенон", \ +"Цезий", \ +"Барий", \ +"Лантан", \ +"Церий", \ +"Празеодим", \ +"Неодим", \ +"Прометий", \ +"Самарий", \ +"Европий", \ +"Гадолиний", \ +"Тербий", \ +"Диспрозий", \ +"Гольмий", \ +"Эрбий", \ +"Тулий", \ +"Иттербий", \ ;70 +"Лютеций", \ +"Гафний", \ +"Тантал", \ +"Вольфрам", \ +"Рений", \ +"Осмий", \ +"Иридий", \ +"Платина", \ +"Золото", \ +"Ртуть", \ +"Таллий", \ +"Свинец", \ +"Висмут", \ +"Полоний", \ +"Астат", \ +"Радон", \ +"Франций", \ +"Радий", \ +"Актиний", \ +"Торий",\ +"Протактиний",\ +"Уран",\ +"Нептуний", \ ;90 +"Плутоний", \ +"Америций", \ +"Кюрий", \ +"Берклий", \ +"Калифорний", \ +"Эйнштейний", \ +"Фермий", \ +"Менделевий", \ +"Нобелий", \ +"Лоуренсий", \ +"Резерфордий", \ +"Дубний", \ +"Сиборговий", \ +"Борий", \ +"Гассий", \ +"Мейтнерий", \ +"Дармштадтий", \ ;110 +"Рентгений", \ +"Коперниций", \ +"Нихоний", \ +"Флеровий", \ +"Московий", \ +"Ливерморий", \ ;116 +"Теннессин", \ +"Оганесон" + + +;Первооткрыватели ; 116 элементов +strtbl First_Explore, \ +"Г.Кавендиш, 1766", \ +"Ж.Жансен, Дж.Н.Локьер, 1868", \ +"А.Арфедсон, 1817", \ +"Л.Воклен, 1798", \ +"Л.Ж.Гей-Люссак 1808", \ +"известен до н.э.", \ +"Д.Резерфорд, 1772", \ +"К.В.Шееле, 1772", \ +"А.Муассан, 1886", \ +"У.Рамзай,М.Траверс 1898", \ +"Г.Дэви, 1807",\ +"Г.Дэви, 1808",\ +"Х.К.Эрстед, 1825",\ +"Ж.Л.Гей-Люссак, Л.Ж.Тенар, 1811",\ +"Х.Брандт, 1669",\ +"известна до н.э.",\ +"К.В.Шееле, 1774",\ +"У.Рамзай, Дж.Рэлей, 1894",\ +"Г.Дэви, 1807",\ +"Г.Дэви, 1808",\ +"Л.Ф.Нильсон, 1879",\ +"У.Грегор, 1790 ",\ +"Г.Роско, 1869",\ +"Л.Н.Воклен, 1797",\ +"Ю.Ган, 1774",\ +"известно до н.э.",\ +"Ю.Брандт, 1735",\ +"А.Кронштедт, 1751",\ +"известна до н.э.",\ +"известен со средн. веков",\ +"П.Э.Лекок де Буабодран, 1875",\ +"К.А.Винклер, 1886",\ +"известен со средн. веков",\ +"Й.Берцелиус, Й.Ган, 1817",\ +"Ж.Балар, 1826",\ +"У.Рамзай, М.Траверс, 1898",\ +"Р.Бунзен, Г.Кирхгоф, 1861",\ +"А.Крофорд, 1808",\ +"Ю.Гадолин, 1794",\ +"М.Клапрот, 1789",\ +"Ч.Хатчет, 1801",\ +"К.В.Шееле, 1778",\ +"Э.Сегре, К.Перье, 1937",\ +"К.К.Клаус, 1844",\ +"У.Волластон, 1804",\ +"У.Волластон, 1803",\ +"известно до н.э.",\ +"Ф.Штромейер, 1817",\ +"Р.Рейх, И.Рихтер, 1863",\ +"известно до н.э.",\ +"известна до н.э.",\ +"Ф.Мюллер, 1782",\ +"Б.Куртуа, 1811",\ +"У.Рамзай, М.Траверс, 1898",\ +"Р.Бунзен, Г.Кирхгоф, 1860",\ +"Г.Дэви, 1774",\ +"К.Мосандер, 1839",\ +"К.Мосандер, 1839",\ +"К.Ауэр фон Вельсбах, 1885",\ +"К.Ауэр фон Вельсбах, 1842",\ +"Л.Гленденин, Ч.Кориэлл и др., 1942",\ +"П.Э.Лекок де Буабодран, 1879",\ +"Э.Демарсе, 1901",\ +"Ж.Мариньяк, 1880",\ +"К.Мосандер, 1843",\ +"П.Э.Лекок де Буабодран, 1886",\ +"П.Клеве, 1879",\ +"К.Мосандер, 1843",\ +"П.Клеве, 1879",\ +"Ж.Мариньяк, 1878",\ +"Ж.Урбэн, Ч.Джеймс, 1907",\ +"Д.Костер и др., 1922",\ +"А.Г.Экеберг, 1802",\ +"К.В.Шееле, 1781",\ +"И. и В.Ноддак, О.Берг, 1925",\ +"С.Теннант, 1804",\ +"С.Теннант, 1804",\ +"изв. с древности",\ +"известно до н.э.",\ +"известна до н.э.",\ +"У.Крукс, 1861",\ +"известен до н.э.",\ +"И.Потт, 1739",\ +"М. и П.Кюри, 1898",\ +"Д.Корсон др., 1940",\ +"Э.Дорн, 1940",\ +"М.Перей, 1939",\ +"М. и П.Кюри, Ж.Бемюн, 1898",\ +"А.Дебьерн, 1899",\ +"Й.Берцелиус, 1828",\ +"О.Ган, Л.Мейтнер, Ф.Содди, 1918",\ +"М.Клапрот, 1789",\ +"Э.М.Макмиллан, Ф.Х.Эйблсон, 1940",\ +"Г.Сиборг и др., 1940",\ +"Г.Сиборг и др., 1944",\ +"Г.Сиборг и др., 1944",\ +"Г.Сиборг и др., 1949",\ +"Г.Сиборг и др., 1950",\ +"А.Гиорсо, С.Томпсон, 1952",\ +"А.Гиорсо, С.Томпсон, 1952",\ +"А.Гиорсо и др., 1955",\ +"Учёные СССР, 1966",\ +"А.Гиорсо и др., 1961",\ +"Г.Н.Флеров и др., 1964",\ +"Г.Н.Флеров и др., 1967",\ +"Г.Н.Флеров и др., 1974",\ +"P.Armbruster, G.Munzenber, 1981",\ +"P.Armbruster, G.Munzenber, 1984",\ +"P.Armbruster, G.Munzenber, 1982",\ +"S.Hofmann, V. Ninov, 1994",\ +"S.Hofmann, V. Ninov, 1994",\ +"S.Hofmann, V. Ninov, 1996",\ +"не открыт",\ +"Учёные России, 1998",\ +"не открыт",\ +"Ю.Ц.Оганессян, В.К.Утенков, 2000", \ +"ОИЯИ в г.Дубна", \ +"ОИЯИ и Ливерморская лаборатория" + + +; Плотность 116 элементов +strtbl Plotnost, \ +"-", \ ; 1 +"-", \ +"535", \ +"1848", \ +"2460", \ +"2267", \ +"-", \ +"-", \ +"-", \ +"0,90035 г/л", \ +"968", \ ; 10 +"1738", \ +"2700", \ +"2330", \ +"1823", \ +"1960", \ +"-", \ +"1,7837 г/л", \ +"856", \ +"1550", \ +"2985", \ ; 20 +"4507", \ +"6110", \ +"7140", \ +"7470", \ +"7874", \ +"8900", \ +"8908", \ +"8920", \ +"7140", \ +"5904", \ ; 30 +"5323", \ +"5727", \ +"4819", \ +"-", \ +"3,745 г/л", \ +"1532", \ +"2630", \ +"4472", \ +"6511", \ +"8570", \ ; 40 +"10280", \ +"11500", \ +"12370", \ +"12450", \ +"12023", \ +"10490", \ +"8650", \ +"7310", \ +"7310", \ +"6697", \ ; 50 +"6240", \ +"4940", \ +"5,851 г/л", \ +"1879", \ +"3510", \ +"6146", \ +"6689", \ +"6640", \ +"6800", \ +"7264", \ ; 60 +"7353", \ +"5244", \ +"7901", \ +"8219", \ +"8551", \ +"8795", \ +"9066", \ +"9321", \ +"6570", \ +"9841", \ ; 70 +"13310", \ +"16650", \ +"19250", \ +"21020", \ +"22610", \ +"22650", \ +"21090", \ +"19300", \ +"-", \ +"11850", \ ; 80 +"11340", \ +"9780", \ +"9196", \ +"-", \ +"9,73 г/л", \ +"2400", \ +"5000", \ +"10070", \ +"11724", \ +"15370", \ ; 90 +"19050", \ +"20450", \ +"19816", \ +"-", \ +"13510", \ +"14780", \ +"15100", \ +"-", \ +"-", \ +"-", \ ; 100 +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ ; 110 +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ ; 116 +"-", \ +"4,9 - 5,1 " + + +;РАСПРОСТРАНЕНИЕ В ЗЕМНОЙ КОРЕ 116 элементов +strtbl Rasprostr, \ +"0,14 %", \ ; 1 +"менее 0,0015 %", \ +"0,0030 %", \ +"0,0006 %", \ +"0,005 %", \ +"0,032 %", \ +"0,0046 %", \ +"46,60 %", \ +"0,070 %", \ +"0,00007 г/т", \ ; 10 +"2,83 %", \ +"2,09 %", \ +"8,13 %", \ +"27,72 %", \ +"0,118 %", \ +"0,052 %", \ +"0,020 %", \ +"0,000004 %", \ +"2,59 %", \ +"3,63 %", \ ; 20 +"0,001 %", \ +"0,57 %", \ +"0,0110 %", \ +"0,0200 %", \ +"0,100 %", \ +"5,00 %", \ +"0,0023 %", \ +"0,0080 %", \ +"0,0045 %", \ +"0,0065 %", \ ; 30 +"0,0015 %", \ +"0,00015 %", \ +"0,00017 %", \ +"0,000014 %", \ +"0,00016 %", \ +"0,000114 % (в атмосфере)", \ +"0,0120 %", \ +"???", \ +"0,0040 %", \ +"0,0160 %", \ ; 40 +"0,0024 %", \ +"0,0003 %", \ +"-", \ +"0,0000005 %", \ +"0.0000001 %", \ +"0,000001 %", \ +"0,000007 %", \ +"0,0000135 %", \ +"0,00001 %", \ +"0,008 %", \ +"0,00005 %", \ ; 50 +"0,000001 %", \ +"0,00004 %", \ +"0,000039 % (в атмосфере)", \ +"0,00037 %", \ +"0,040 %", \ +"0,0029 %", \ +"0,007 %", \ +"0,0007 %", \ +"0,0025 %", \ +"-", \ ; 60 +"0,0007 %", \ +"0,00013 %", \ +"0,00054 %", \ +"0,00043 %", \ +"0,0005 %", \ +"0,00013 %", \ +"0,00033 %", \ +"0,000027 %", \ +"0,000033 %", \ +"0,00008 %", \ ; 70 +"0,0003 - 0,0004 %", \ +"0,00025 %", \ +"0,0001 %", \ +"0,00000007 %", \ +"0,000005 %", \ +"0,0000001 %", \ +"0,0000005 %", \ +"0,00000043 %", \ +"0,000007 %", \ +"0,0003 %", \ ; 80 +"0,0015 %", \ +"0,00002 %", \ +"0,00000000000002 %", \ +"17 мг в слое коры 1,6 км", \ +"-", \ +"-", \ +"0,0000000001 %", \ +"0,0000000006 %", \ +"0,0008 %", \ +"-", \ ; 90 +"0,0003 %", \ +"-", \ +"-", \ +"0,0003 %", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ ; 100 +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ ; 110 +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ ; 116 +"-", \ +"-" + + +; степень окисления 116 элементов +strtbl Step_ok, \ +"+1 -1", \ ; 1 +"-", \ +"+1", \ +"+2 (+1)", \ +"+3 (+2)", \ +"+4 -4", \ +"от +5 до -3 ", \ +"+4 -4", \ +"-1", \ +"-", \ ; 10 +"+1", \ +"+2 (+1)", \ +"+3 (+1 +2)", \ +"+1 +2 +3 +4", \ +"-3 +3 +5", \ +"-2 +4 +6", \ +"-1 +1 +3 +5 +7", \ +"-", \ +"+1", \ +"+2 (+1)", \ ; 20 +"+3 (+1 +2)", \ +"+4 +2 +3", \ +"от +2 до +5", \ +"+2 +3 +6 (+4 +5 +1)", \ +"от +2 до +7", \ +"+2 +3 (+1 +2 +4 +6 +8)", \ +"+2 +3 (+1 +4 +5)", \ +"+2 (+1 +3 +4)", \ +"+1 +2 (+3 +4)", \ +"+2", \ ; 30 +"+1 +3", \ +"+4 +3 +2 +1", \ +"+5 +3 -3", \ +"+6 +4 -2 (+2)", \ +"-1 +1 +3 +5 +7", \ +"+2", \ +"+1", \ +"+2 (+1)", \ +"+3", \ +"+4 (+1 +2 +3)", \ ; 40 +"+5 (+1 +2 +3 +4)", \ +"от +2 до +6", \ +"от -1 до +7", \ +"+3 +4 +6 +8", \ +"+1 +2 +3 +4 +5 +6", \ +"+1 +2 +3 +4 (+5 +6)", \ +"+1 +2 +3", \ +"+2 (+1)", \ +"+3 (+1)", \ +"+2 +4", \ ; 50 +"+3 +5 (-3)", \ +"-2 +6 +4 (+2)", \ +"-1 +1 +3 +5 +7", \ +"+2 +4 +6 +8", \ +"+1", \ +"+2 (+1)", \ +"+3", \ +"+3 (+4)", \ +"+4 +3 (+2)", \ +"+4 +3 (+2)", \ ; 60 +"+3", \ +"+2 +3 (+2)", \ +"+3 +2", \ +"+3 (+2 +1)", \ +"+1 +3 +4", \ +"+3 (+2 +4)", \ +"+3 (+2)", \ +"+3 (+1)", \ +"+3 +2 (+4)", \ +"+2 +3", \ ; 70 +"+3", \ +"+4 (+3 +2)", \ +"+5 (+2 +3 +4)", \ +"от +2 до +6", \ +"от +7 до -1", \ +"+4 +6 +8 +1 +3 +5", \ +"+4 +3 +1 +2 +6", \ +"+4 +3 +2 (+5 +6)", \ +"+1 +3 (+5)", \ +"+2 +1", \ ; 80 +"+1 +3", \ +"+1 +4 +2", \ +"+3 +5 -3 (+1 +2)", \ +"+6 +4 +2 -2", \ +"-1 +1 +5 (+7)", \ +"+2 +4 +6", \ +"+1", \ +"+2", \ +"+3", \ +"+4 (+2 +3)", \ ; 90 +"+4 +5 (+3)", \ +"от +2 до +6", \ +"+3 +4 +5 (+6 +7)", \ +"от +3 до +7", \ +"от +2 до +7", \ +"+3 (+4 +6)", \ +"+3 (+4)", \ +"+2 +3 (+4)", \ +"+2 +3", \ +"+2 +3", \ ; 100 +"+1 +2 +3", \ +"+2 +3", \ +"+3", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ ; 110 +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ +"-", \ ; 116 +"-", \ +"-1, 0, +1, +2, +4, +6" +I_END: +sc system_colors diff --git a/programs/other/rtfread/rtfread.asm b/programs/other/rtfread/rtfread.asm index b13bc0bb5..35e9d00d4 100644 --- a/programs/other/rtfread/rtfread.asm +++ b/programs/other/rtfread/rtfread.asm @@ -1,3 +1,6 @@ +; SPDX-License-Identifier: NOASSERTION +; + ; RTF READER FOR KOLIBRI >= 0.7.7.0 ; Written in pure assembler by Ivushkin Andrey aka Willow ; Menu_bar and scroll_bar from box_lib provided by dunkaist @@ -57,15 +60,15 @@ AR_OFFSET equ 10 dd fname_buf ; адрес буфера для параметров dd cur_dir_path ; путь к программе -include '../../../config.inc' ;for nightbuild -include '../../../macros.inc' ; макросы облегчают жизнь ассемблерщиков! -include '../../../develop/libraries/box_lib/trunk/box_lib.mac' -include '../../../KOSfuncs.inc' -include '../../../load_lib.mac' +include '../../config.inc' ;for nightbuild +include '../../macros.inc' ; Macros facilitate the life of assemblers! +include '../../develop/libraries/box_lib/trunk/box_lib.mac' +include '../../KOSfuncs.inc' +include '../../load_lib.mac' @use_library -; include '../../../debug.inc' +; include '../../debug.inc' TOP=TOP+4 include 'bgifont.inc' @@ -242,10 +245,10 @@ key: ; .home: cmp ah,180 ; Home je top_red - + cmp dword[is_scroll_bar_needed], 0 je still - + mov ebx,dword[prcinfo+46] sub ebx,TOP+15 cmp ah,183 ;PgDn @@ -254,7 +257,7 @@ key: ; cmp dword[is_scroll_bar_needed], 0 je still - + mov eax, [scroll_bar_data_vertical.position] add eax, AR_OFFSET*7 mov ebx, [scroll_bar_data_vertical.max_area] @@ -273,7 +276,7 @@ key: ; cmp dword[is_scroll_bar_needed], 0 je still - + mov eax, [scroll_bar_data_vertical.position] add eax, AR_OFFSET mov ebx, [scroll_bar_data_vertical.max_area] @@ -299,7 +302,7 @@ key: ; cmp dword[is_scroll_bar_needed], 0 je still - + cmp dword[scroll_bar_data_vertical.position], AR_OFFSET*7 sub dword[scroll_bar_data_vertical.position], AR_OFFSET*7 jg @f @@ -314,7 +317,7 @@ key: ; cmp dword[is_scroll_bar_needed], 0 je still - + cmp dword[scroll_bar_data_vertical.position], AR_OFFSET sub dword[scroll_bar_data_vertical.position], AR_OFFSET jg @f @@ -337,7 +340,7 @@ key: ; cmp dword[is_scroll_bar_needed], 0 je still - + mov eax, [scroll_bar_data_vertical.max_area] sub eax, [scroll_bar_data_vertical.cur_area] mov dword[scroll_bar_data_vertical.position], eax @@ -350,7 +353,7 @@ key: ; ;--------------------------------------------------------------------- ;OpenDialog_start: ; copy_path open_dialog_name,path,library_path,0 - + push dword OpenDialog_data call [OpenDialog_Start] @@ -366,14 +369,14 @@ key: ; cmp ah, 1 ; если нажата кнопка с номером 1, je .exit jmp still - + .exit: mcall -1 ; иначе конец программы - + ;--------------------------------------------------------------------- ;--- MOUSE EVENT PROCESSING ---------------------------------------- -;--------------------------------------------------------------------- +;--------------------------------------------------------------------- mouse: mcall 37,7 test eax, eax @@ -454,9 +457,9 @@ mouse: push dword scroll_bar_data_vertical call [scrollbar_ver_mouse] - + call Set_position - + mov eax,scroll_bar_data_vertical.redraw xor ebx,ebx cmp [eax],ebx @@ -482,7 +485,7 @@ draw_window: @@: mov edx, -1 mov esi, -1 - + mov eax, [procinfo2.box.width] cmp eax, [window_width] je @f @@ -526,11 +529,11 @@ draw_window: sub ebx, SCROLL_WIDTH_SIZE dec ebx @@: - + mov ecx, 19*65536-23 add ecx, [procinfo2.box.height] sub ecx, [skin_height] - + mov eax, 13 mov edx, 0xf0f0f0 int 0x40 @@ -544,13 +547,13 @@ draw_window: ; draw for Vertical ScrollBar push dword scroll_bar_data_vertical call [scrollbar_ver_draw] -; reset all_redraw flag +; reset all_redraw flag xor eax,eax mov [scroll_bar_data_vertical.all_redraw],eax @@: ;--------------------------------------------- ;po-moumu eto govno mamonta - + ;mcall 47,0x30000,isymImplemented,<114,8>, 0x10DDEEFF ;add edx,36 shl 16 ;mcall ,,isymMax @@ -585,18 +588,18 @@ draw_window: ;--------------------------------------------- ; draw for Menu 1 push dword menu_data_1 - call [menu_bar_draw] + call [menu_bar_draw] ; draw for Menu 2 push dword menu_data_2 - call [menu_bar_draw] + call [menu_bar_draw] ; draw for Menu 3 push dword menu_data_3 - call [menu_bar_draw] + call [menu_bar_draw] ;--------------------------------------------- sub dword[prcinfo+42],2*LMARGIN+SCROLL_WIDTH_SIZE sub dword[prcinfo+46],CHARH+25 - + if GUTTER eq 1 mov ebx,LMARGIN shl 16+20 mov ecx,20 @@ -676,7 +679,7 @@ call Set_position ; draw for Vertical ScrollBar push dword scroll_bar_data_vertical call [scrollbar_ver_draw] -; reset all_redraw flag +; reset all_redraw flag xor eax,eax mov [scroll_bar_data_vertical.all_redraw],eax @@: @@ -712,10 +715,10 @@ Set_position: mov ebx, [scroll_bar_data_vertical.max_area] sub ebx, [scroll_bar_data_vertical.cur_area] div ebx - + mov dword[top], TOP sub dword[top], eax - + .quit: ret ;--------------------------------------------------------------------- @@ -728,7 +731,7 @@ Set_scroll_position: mov eax, dword[procinfo2+0x42] sub eax, 17 mov word[scroll_bar_data_vertical.size_y], ax - + ret ;--------------------------------------------------------------------- @@ -1049,7 +1052,7 @@ litt_end: help_file: file 'reader.rtf' help_end: - + I_END0: fname_buf: rb 1024+16