diff --git a/BSD/bin/fasm b/BSD/bin/fasm deleted file mode 100644 index e5c9b29d..00000000 Binary files a/BSD/bin/fasm and /dev/null differ diff --git a/BSD/bin/listing b/BSD/bin/listing deleted file mode 100644 index cbc0911c..00000000 Binary files a/BSD/bin/listing and /dev/null differ diff --git a/BSD/share/applications/sasm.desktop b/BSD/share/applications/sasm.desktop deleted file mode 100644 index 379c3f21..00000000 --- a/BSD/share/applications/sasm.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=SASM -GenericName=SASM -Comment=Simple crossplatform IDE for NASM, MASM, GAS and FASM assembly languages. -Icon=/usr/local/share/sasm/sasm.png -Exec=sasm -Terminal=false -Type=Application -Categories=Qt;Development;IDE; diff --git a/BSD/share/doc/sasm/changelog.gz b/BSD/share/doc/sasm/changelog.gz deleted file mode 100644 index cec4e816..00000000 Binary files a/BSD/share/doc/sasm/changelog.gz and /dev/null differ diff --git a/Linux/bin/fasm b/Linux/bin/fasm deleted file mode 100755 index e5c9b29d..00000000 Binary files a/Linux/bin/fasm and /dev/null differ diff --git a/Linux/bin/listing b/Linux/bin/listing deleted file mode 100755 index cbc0911c..00000000 Binary files a/Linux/bin/listing and /dev/null differ diff --git a/Linux/share/doc/sasm/copyright b/Linux/share/doc/sasm/copyright deleted file mode 100644 index 845600bc..00000000 --- a/Linux/share/doc/sasm/copyright +++ /dev/null @@ -1,29 +0,0 @@ -This work was made by: - - Dmitriy Manushin on Wed, 4 Sep 2013 01:04:42 +0400 - -Upstream Author(s): - - Dmitriy Manushin - -Copyright: - - Copyright (C) 2013 Dmitriy Manushin - -License: - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -On Debian systems, the complete text of the GNU General -Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". diff --git a/Linux/share/sasm/NASM/macro.c b/Linux/share/sasm/NASM/macro.c deleted file mode 100644 index d73ccf78..00000000 --- a/Linux/share/sasm/NASM/macro.c +++ /dev/null @@ -1,5 +0,0 @@ -#include -#include -FILE *get_stdin(void) { return stdin; } -FILE *get_stdout(void) { return stdout; } -void sasm_replace_stdin(void) {dup2(open("input.txt",0),0);} diff --git a/Linux/share/sasm/Projects/FASMHello.asm b/Linux/share/sasm/Projects/FASMHello.asm deleted file mode 100644 index f3404558..00000000 --- a/Linux/share/sasm/Projects/FASMHello.asm +++ /dev/null @@ -1,18 +0,0 @@ -format ELF - -section '.data' writeable - msg db 'Hello, world!', 0 - formatStr db "%s", 0 - -section '.text' executable -public main -extrn printf -main: - mov ebp, esp; for correct debugging - push msg - push formatStr - call printf - add esp, 8 - xor eax, eax - ret - \ No newline at end of file diff --git a/Linux/share/sasm/Projects/FASMHellox64.asm b/Linux/share/sasm/Projects/FASMHellox64.asm deleted file mode 100644 index b57bd6c9..00000000 --- a/Linux/share/sasm/Projects/FASMHellox64.asm +++ /dev/null @@ -1,19 +0,0 @@ -format ELF64 - -section '.data' writeable - msg db 'Hello, world!', 0 - formatStr db "%s", 0 - -section '.text' executable -public main -extrn printf -main: - mov rbp, rsp; for correct debugging - and rsp, -16 - mov rdi, formatStr - mov rsi, msg - call printf - mov rsp, rbp - xor rax, rax - ret - \ No newline at end of file diff --git a/Linux/share/sasm/Projects/GASHello.asm b/Linux/share/sasm/Projects/GASHello.asm deleted file mode 100644 index 98e7d909..00000000 --- a/Linux/share/sasm/Projects/GASHello.asm +++ /dev/null @@ -1,15 +0,0 @@ -.data -msg: - .asciz "Hello, world!\n" - -.extern printf -.text - .global main # entry point -main: - movl %esp, %ebp # for correct debugging - pushl $msg - call printf - addl $4, %esp - xorl %eax, %eax - ret - \ No newline at end of file diff --git a/Linux/share/sasm/Projects/GASHellox64.asm b/Linux/share/sasm/Projects/GASHellox64.asm deleted file mode 100644 index 2209f895..00000000 --- a/Linux/share/sasm/Projects/GASHellox64.asm +++ /dev/null @@ -1,17 +0,0 @@ -.data -msg: - .asciz "Hello, world!\n" - -.extern printf -.extern flush -.text - .global main # entry point -main: - movq %rsp, %rbp #for correct debugging - andq $-16, %rsp - movq $msg, %rdi - call printf - movq %rbp, %rsp - xorq %rax, %rax - ret - \ No newline at end of file diff --git a/Linux/share/sasm/Projects/NASMHello.asm b/Linux/share/sasm/Projects/NASMHello.asm deleted file mode 100644 index 370ad00e..00000000 --- a/Linux/share/sasm/Projects/NASMHello.asm +++ /dev/null @@ -1,13 +0,0 @@ -%include "io.inc" - -section .data - msg db 'Hello, world!', 0 - -section .text - global CMAIN -CMAIN: - mov ebp, esp - PRINT_STRING msg - NEWLINE - xor eax, eax - ret \ No newline at end of file diff --git a/Linux/share/sasm/Projects/NASMHellox64.asm b/Linux/share/sasm/Projects/NASMHellox64.asm deleted file mode 100644 index 4aafacad..00000000 --- a/Linux/share/sasm/Projects/NASMHellox64.asm +++ /dev/null @@ -1,13 +0,0 @@ -%include "io64.inc" - -section .data - msg db 'Hello, world!', 0 - -section .text - global CMAIN -CMAIN: - mov rbp, rsp - PRINT_STRING msg - NEWLINE - xor rax, rax - ret \ No newline at end of file diff --git a/Linux/share/sasm/include/io.inc b/Linux/share/sasm/include/io.inc deleted file mode 100644 index 1d18e5b7..00000000 --- a/Linux/share/sasm/include/io.inc +++ /dev/null @@ -1,768 +0,0 @@ -%ifndef IO_SYS -%define IO_SYS - -%macro sasmMacroFunc 0.nolist ;func for debug - %push sasmMacroFunc - call %$sasmMacro - jmp %$sasmMacroE - %$sasmMacro: - jmp %%after_data -section .data - %$sasmRetAddr dd 0 -section .text - %%after_data: - push ebx - mov ebx, dword[esp + 4] - mov dword[%$sasmRetAddr], ebx - mov ebx, dword[esp] - mov dword[esp + 4], ebx - pop ebx - pop ebx -%endmacro - -%macro sasmMacroFuncE 0.nolist ;exit - push dword[%$sasmRetAddr] - ret - %$sasmMacroE: - %pop -%endmacro - -%macro CEXTERN 1.nolist - extern %1 -%endmacro -%define CMAIN main - -CEXTERN printf -CEXTERN scanf -CEXTERN putchar -CEXTERN fgets -CEXTERN puts -CEXTERN fputs -CEXTERN fflush - -CEXTERN get_stdin -CEXTERN get_stdout - -; Make stack be 16 bytes aligned after pushing %1 bytes -%macro ALIGN_STACK 1.nolist - enter 0, 0 - sub esp, %1 - and esp, 0xfffffff0 - add esp, %1 -%endmacro - -%macro UNALIGN_STACK 0.nolist - leave -%endmacro - -%macro FFLUSH_STDOUT 0.nolist - ALIGN_STACK 4 - call get_stdout - push eax - call fflush - UNALIGN_STACK -%endmacro - -%macro IS_GPR 1.nolist - %push IS_GPR - %assign %$is_reg 0 - %assign %$reg_size 1 - %ifidni %1, ah - %assign %$is_reg 1 - %elifidni %1, al - %assign %$is_reg 1 - %elifidni %1, bl - %assign %$is_reg 1 - %elifidni %1, bh - %assign %$is_reg 1 - %elifidni %1, cl - %assign %$is_reg 1 - %elifidni %1, ch - %assign %$is_reg 1 - %elifidni %1, dl - %assign %$is_reg 1 - %elifidni %1, dh - %assign %$is_reg 1 - %elifidni %1, ax - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, bx - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, cx - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, dx - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, sp - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, bp - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, si - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, di - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, eax - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, ebx - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, ecx - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, edx - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, esp - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, ebp - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, esi - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, edi - %assign %$is_reg 1 - %assign %$reg_size 4 - %endif -%endmacro - - -%macro PRINT_STRING 1.nolist - sasmMacroFunc - IS_GPR %1 - %if %$is_reg = 1 - %error "Register as parameter is not supported" - %endif - %pop - -%ifid %1 -; variable - pushf - push edx - push ecx - push eax - - ALIGN_STACK 0 - call get_stdout - UNALIGN_STACK - ALIGN_STACK 8 - push eax - push %1 - -%elifstr %1 -; string literal - pushf - push edx - push ecx - push eax - - jmp %%after_str - %%str db %1, 0 -%%after_str: - ALIGN_STACK 0 - call get_stdout - UNALIGN_STACK - ALIGN_STACK 8 - push eax - push %%str - -%else -; address expression - jmp %%after_data -section .data - %%tmp dd 0 -section .text -%%after_data: - mov dword [%%tmp], edi - lea edi, %1 - - pushf - push edx - push ecx - push eax - - ALIGN_STACK 0 - call get_stdout - UNALIGN_STACK - ALIGN_STACK 8 - push eax - push edi - - mov edi, dword [%%tmp] - -%endif - - call fputs - UNALIGN_STACK - FFLUSH_STDOUT - pop eax - pop ecx - pop edx - popf - sasmMacroFuncE -%endmacro - -%macro NEWLINE 0.nolist - PRINT_STRING `\n` -%endmacro - -; size baseformatletter ("d", "u", "x") varname (%%fmt) -%macro ___MAKE_FORMAT_STR 3.nolist - jmp %%after_fmt - %if %1 = 1 - %strcat fmts "%hh" %2 - - %elif %1 = 2 - %strcat fmts "%h" %2 - %elif %1 = 4 - %strcat fmts "%" %2 - %else - %error "Expected numeric constant 1, 2 or 4 as 1st argument" - %endif - %3 db fmts, 0 - %%after_fmt: -%endmacro - -; size data baseformatletter ("d", "u", "x") signextendinst (movzx, movsx) -%macro ___PRINT_NUM_COMMON 4.nolist - ___MAKE_FORMAT_STR %1, %3, %%fmt - - jmp %%after_data -section .data - %%tmp dd 0 - -section .text -%%after_data: - - IS_GPR %2 - -%if %$is_reg = 1 -; register - - mov dword [%%tmp], eax ; may be register is esp, need to take care - - %if %$reg_size = 1 - %4 eax, %2 - %elif %$reg_size = 2 - %4 eax, %2 - %else ; %$reg_size = 4 - mov eax, %2 - %endif - - pushf - push dword [%%tmp] ; eax - push ecx - push edx - - ALIGN_STACK 8 - push eax - -%elifid %2 -; variable (hope so) - pushf - push eax - push ecx - push edx - -%if %1 = 1 - %4 eax, byte [%2] -%elif %1 = 2 - %4 eax, word [%2] -%else ; %1 = 4 - mov eax, dword [%2] -%endif - - ALIGN_STACK 8 - push eax - -%elifnum %2 - pushf - push eax - push ecx - push edx - - ALIGN_STACK 8 - push %2 -%elifstr %2 - pushf - push eax - push ecx - push edx - - ALIGN_STACK 8 - push %2 - -%else -; may be, address expression? - - mov dword [%%tmp], eax ; may use register esp, need to take care - - %if %1 = 1 - %4 eax, byte %2 - %elif %1 = 2 - %4 eax, word %2 - %else ; %1 = 4 - mov eax, dword %2 - %endif - - pushf - push dword [%%tmp] ; eax - push ecx - push edx - - ALIGN_STACK 8 - push eax - -%endif - - push %%fmt - call printf - UNALIGN_STACK - FFLUSH_STDOUT - - pop edx - pop ecx - pop eax - popf - - %pop ; IS_REG - -%endmacro - -%macro PRINT_DEC 2.nolist - sasmMacroFunc - ___PRINT_NUM_COMMON %1, %2, "d", movsx - sasmMacroFuncE -%endmacro - -%macro PRINT_UDEC 2.nolist - sasmMacroFunc - ___PRINT_NUM_COMMON %1, %2, "u", movzx - sasmMacroFuncE -%endmacro - -%macro PRINT_HEX 2.nolist - sasmMacroFunc - ___PRINT_NUM_COMMON %1, %2, "x", movzx - sasmMacroFuncE -%endmacro - -%macro PRINT_CHAR 1.nolist - sasmMacroFunc - - jmp %%after_data -section .data - %%tmp dd 0 - -section .text -%%after_data: - - IS_GPR %1 - -%if %$is_reg = 1 -; register - - mov dword [%%tmp], eax ; may be register is esp, need to take care - - %if %$reg_size = 1 - movzx eax, %1 - %elif %$reg_size = 2 - movzx eax, %1 - %else ; %$reg_size = 4 - mov eax, %1 - %endif - - pushf - push dword [%%tmp] ; eax - push ecx - push edx - - and eax, 0xff - ALIGN_STACK 4 - push eax - -%elifid %1 -; variable (hope so) - pushf - push eax - push ecx - push edx - - movzx eax, byte [%1] - ALIGN_STACK 4 - push eax - -%elifnum %1 - pushf - push eax - push ecx - push edx - - ALIGN_STACK 4 - push (%1 & 0xff) -%elifstr %1 - pushf - push eax - push ecx - push edx - -; string; select only 1st byte -%substr tstr %1 1 - ALIGN_STACK 4 - push tstr - -%else -; may be, address expression? - - mov dword [%%tmp], eax ; may use register esp, need to take care - - movzx eax, byte %1 - - pushf - push dword [%%tmp] ; eax - push ecx - push edx - - ALIGN_STACK 4 - push eax - -%endif - - call putchar - UNALIGN_STACK - FFLUSH_STDOUT - - pop edx - pop ecx - pop eax - popf - - %pop ; IS_REG - sasmMacroFuncE -%endmacro - - -; size data baseformatletter ("d", "u", "x") signextendinst (movzx, movsx) -%macro ___GET_NUM_COMMON 4.nolist - - ___MAKE_FORMAT_STR %1, %3, %%fmt - - jmp %%after_data -section .data - %%tmp dd 0 - %%read_tmp dd 0 - -section .text -%%after_data: - - IS_GPR %2 - -%if %$is_reg = 1 -; register - - %ifidni %2, esp - %error "Won't read to esp!" - %elifidni %2, sp - %error "Won't read to sp!" - %endif - - %if %$reg_size < %1 - %error "Too small register for requested data" - %endif - - pushf - push eax - push ecx - push edx - -; we will have to do postprocessing after scanf - ALIGN_STACK 8 - push %%read_tmp - -%elifid %2 -; variable (hope so) - pushf - push eax - push ecx - push edx - - ALIGN_STACK 8 - push %2 -%elifnum %2 - %error "Incorrect parameter (number)" -%elifstr %2 - %error "Incorrect parameter (string)" -%else -; may be, address expression? - - mov dword [%%tmp], eax ; may use register esp, need to take care - - lea eax, %2 - - pushf - push dword [%%tmp] ; eax - push ecx - push edx - - ALIGN_STACK 8 - push eax -%endif - - push %%fmt - call scanf - UNALIGN_STACK - - pop edx - pop ecx - pop eax - popf - -%if %$is_reg = 1 -; register postprocessing - -%if %$reg_size = %1 - mov %2, [%%read_tmp] -%else ; extend bytes 1 -> 2, 1 -> 4, 2 -> 4 - %if %1 = 1 - %4 %2, byte [%%read_tmp] - %else ; 2 -> 4 - %4 %2, word [%%read_tmp] - %endif -%endif - -%endif - - %pop ; IS_REG -%endmacro - -%macro GET_HEX 2.nolist - sasmMacroFunc - ___GET_NUM_COMMON %1, %2, "x", movzx - sasmMacroFuncE -%endmacro - -%macro GET_DEC 2.nolist - sasmMacroFunc - ___GET_NUM_COMMON %1, %2, "d", movsx - sasmMacroFuncE -%endmacro - -%macro GET_UDEC 2.nolist - sasmMacroFunc - ___GET_NUM_COMMON %1, %2, "u", movzx - sasmMacroFuncE -%endmacro - - -%macro GET_CHAR 1.nolist - sasmMacroFunc - - jmp %%after_data -section .data - %%fmt db "%c", 0 - %%tmp dd 0 - %%read_tmp db 0 - -section .text -%%after_data: - - IS_GPR %1 - -%if %$is_reg = 1 -; register - - %ifidni %1, esp - %error "Won't read to esp!" - %elifidni %1, sp - %error "Won't read to sp!" - %elifidni %1, spl - %error "Won't read to spl!" - %endif - - pushf - push eax - push ecx - push edx - - ALIGN_STACK 8 -; we will have to do postprocessing after scanf - push %%read_tmp - -%elifid %1 -; variable (hope so) - pushf - push eax - push ecx - push edx - - ALIGN_STACK 8 - push %1 - -%elifnum %1 - %error "Incorrect parameter (number)" -%elifstr %1 - %error "Incorrect parameter (string)" -%else -; may be, address expression? - - mov dword [%%tmp], eax ; may use register esp, need to take care - - lea eax, %1 - - pushf - push dword [%%tmp] ; eax - push ecx - push edx - - ALIGN_STACK 8 - push eax -%endif - - push %%fmt - call scanf - UNALIGN_STACK - - pop edx - pop ecx - pop eax - popf - -%if %$is_reg = 1 -; register postprocessing - -%if %$reg_size = 1 - mov %1, byte [%%read_tmp] -%else ; zero extend bytes 1 -> 2, 1 -> 4 - movzx %1, byte [%%read_tmp] -%endif - -%endif - - %pop ; IS_REG - sasmMacroFuncE -%endmacro - - -%macro GET_STRING 2.nolist - sasmMacroFunc - - IS_GPR %1 - -%if %$is_reg = 1 - %error "Incorrect 1st parameter (register)" -%endif - - - %pop - - IS_GPR %2 - -%if %$is_reg = 1 - ; -%elifnum %2 - %if %2 <= 0 - %error "Second parameter must be positive" - %endif -%else - %error "Second parameter must be numeric constant or register" -%endif - - %pop - -%ifid %1 -; variable (hope so) - push esi - ;count - IS_GPR %2 - %if %$is_reg = 1 - %if %$reg_size = 1 - movzx esi, %2 - %elif %$reg_size = 2 - movzx esi, %2 - %else ; %$reg_size = 4 - mov esi, %2 - %endif - %else - mov esi, %2 - %endif - %pop - - pushf - push eax - push ecx - push edx - ALIGN_STACK 0 - call get_stdin - UNALIGN_STACK - ALIGN_STACK 12 - push eax - push esi ; count - push %1 -%elifnum %1 - %error "Incorrect 1st parameter (number)" -%elifstr %1 - %error "Incorrect 1st parameter (string)" -%else -; may be, address expression? - - jmp %%after_data -section .data - %%tmp dd 0 -section .text -%%after_data: - - ; may use register esp, need to take care - mov dword [%%tmp], edi - lea edi, %1 - - push esi - ;count - IS_GPR %2 - %if %$is_reg = 1 - %if %$reg_size = 1 - movzx esi, %2 - %elif %$reg_size = 2 - movzx esi, %2 - %else ; %$reg_size = 4 - mov esi, %2 - %endif - %else - mov esi, %2 - %endif - %pop - - pushf - push eax - push ecx - push edx - ALIGN_STACK 0 - call get_stdin - UNALIGN_STACK - ALIGN_STACK 12 - push eax - push esi ; count - push edi - - mov edi, dword [%%tmp] -%endif - - call fgets - UNALIGN_STACK - - pop edx - pop ecx - pop eax - popf - pop esi - sasmMacroFuncE -%endmacro -%endif - diff --git a/Linux/share/sasm/include/io64.inc b/Linux/share/sasm/include/io64.inc deleted file mode 100644 index a65814a8..00000000 --- a/Linux/share/sasm/include/io64.inc +++ /dev/null @@ -1,994 +0,0 @@ -%ifndef IO_SYS -%define IO_SYS -%assign sasmMacroCount 0 - -%macro sasmMacroFunc 0.nolist ;func for debug - %push sasmMacroFunc - call %$sasmMacro - jmp %$sasmMacroE - %$sasmMacro: - jmp %%after_data -section .data - %$sasmRetAddr dq 0 -section .text - %%after_data: - push rbx - mov rbx, qword[rsp + 8] - mov qword[%$sasmRetAddr], rbx - mov rbx, qword[rsp] - mov qword[rsp + 8], rbx - pop rbx - pop rbx -%endmacro - -%macro sasmMacroFuncE 0.nolist ;exit - push qword[%$sasmRetAddr] - ret - %$sasmMacroE: - %pop -%endmacro - -%macro CEXTERN 1.nolist - extern %1 -%endmacro -%define CMAIN main - -CEXTERN printf -CEXTERN scanf -CEXTERN putchar -CEXTERN fgets -CEXTERN puts -CEXTERN fputs -CEXTERN fflush - -CEXTERN get_stdin -CEXTERN get_stdout - -; Make stack be 16 bytes aligned -%macro ALIGN_STACK 0.nolist - enter 0, 0 - and rsp, 0xfffffffffffffff0 -%endmacro - -%macro UNALIGN_STACK 0.nolist - leave -%endmacro - -%macro FFLUSH_STDOUT 0.nolist - ALIGN_STACK - call get_stdout - mov rdi, rax - call fflush - UNALIGN_STACK -%endmacro - -%macro IS_GPR 1.nolist - %push IS_GPR - %assign %$is_reg 0 - %assign %$reg_size 1 - %ifidni %1, ah - %assign %$is_reg 1 - %elifidni %1, al - %assign %$is_reg 1 - %elifidni %1, bl - %assign %$is_reg 1 - %elifidni %1, bh - %assign %$is_reg 1 - %elifidni %1, cl - %assign %$is_reg 1 - %elifidni %1, ch - %assign %$is_reg 1 - %elifidni %1, dl - %assign %$is_reg 1 - %elifidni %1, dh - %assign %$is_reg 1 - %elifidni %1, spl - %assign %$is_reg 1 - %elifidni %1, bpl - %assign %$is_reg 1 - %elifidni %1, dil - %assign %$is_reg 1 - %elifidni %1, sil - %assign %$is_reg 1 - %elifidni %1, ax - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, bx - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, cx - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, dx - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, sp - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, bp - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, si - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, di - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, eax - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, ebx - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, ecx - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, edx - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, esp - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, ebp - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, esi - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, edi - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, rax - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, rbx - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, rcx - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, rdx - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, rsp - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, rbp - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, rsi - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, rdi - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, r8 - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, r9 - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, r10 - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, r11 - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, r12 - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, r13 - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, r14 - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, r15 - %assign %$is_reg 1 - %assign %$reg_size 8 - %elifidni %1, r8d - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, r9d - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, r10d - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, r11d - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, r12d - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, r13d - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, r14d - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, r15d - %assign %$is_reg 1 - %assign %$reg_size 4 - %elifidni %1, r8w - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, r9w - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, r10w - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, r11w - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, r12w - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, r13w - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, r14w - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, r15w - %assign %$is_reg 1 - %assign %$reg_size 2 - %elifidni %1, r8b - %assign %$is_reg 1 - %assign %$reg_size 1 - %elifidni %1, r9b - %assign %$is_reg 1 - %assign %$reg_size 1 - %elifidni %1, r10b - %assign %$is_reg 1 - %assign %$reg_size 1 - %elifidni %1, r11b - %assign %$is_reg 1 - %assign %$reg_size 1 - %elifidni %1, r12b - %assign %$is_reg 1 - %assign %$reg_size 1 - %elifidni %1, r13b - %assign %$is_reg 1 - %assign %$reg_size 1 - %elifidni %1, r14b - %assign %$is_reg 1 - %assign %$reg_size 1 - %elifidni %1, r15b - %assign %$is_reg 1 - %assign %$reg_size 1 - %endif -%endmacro - -%macro PRINT_STRING 1.nolist - sasmMacroFunc - IS_GPR %1 - %if %$is_reg = 1 - %error "Register as parameter is not supported" - %endif - %pop -%ifid %1 -; variable - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - ALIGN_STACK - call get_stdout - mov rdi, %1 - mov rsi, rax -%elifstr %1 -; string literal - jmp %%after_str -section .data - %%str db %1, 0 -section .text - %%after_str: - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - ALIGN_STACK - call get_stdout - mov rdi, %%str - mov rsi, rax -%else -; address expression - jmp %%after_data -section .data - %%tmp dq 0 -section .text - %%after_data: - mov qword[%%tmp], rbx - lea rbx, %1 - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - ALIGN_STACK - call get_stdout - mov rdi, rbx - mov rsi, rax - mov rbx, qword[%%tmp] -%endif - call fputs - UNALIGN_STACK - FFLUSH_STDOUT - pop rdi - pop rsi - pop r11 - pop r10 - pop r9 - pop r8 - pop rdx - pop rcx - pop rax - popfq - sasmMacroFuncE -%endmacro - -%macro NEWLINE 0.nolist - PRINT_STRING `\n` -%endmacro - -; size baseformatletter ("d", "u", "x") varname (%%fmt) -%macro ___MAKE_FORMAT_STR 3.nolist - jmp %%after_fmt - %if %1 = 1 - %strcat fmts "%hh" %2 - %elif %1 = 2 - %strcat fmts "%h" %2 - %elif %1 = 4 - %strcat fmts "%" %2 - %elif %1 = 8 - %strcat fmts "%ll" %2 - %else - %error "Expected numeric constant 1, 2, 4 or 8 as 1st argument" - %endif - %3 db fmts, 0 - %%after_fmt: -%endmacro - -; size data baseformatletter ("d", "u", "x") signextendinst (movzx, movsx) -%macro ___PRINT_NUM_COMMON 4.nolist - ___MAKE_FORMAT_STR %1, %3, %%fmt - IS_GPR %2 -%if %$is_reg = 1 -; register - jmp %%after_data -section .data - %%tmp dq 0 -section .text - %%after_data: - mov qword[%%tmp], rax - %if %$reg_size = 1 - %4 rax, %2 - %elif %$reg_size = 2 - %4 rax, %2 - %elif %$reg_size = 4 - movsx rax, %2 - %ifidni %4, movzx - pushfq - shl rax, 32 - shr rax, 32 - popfq - %endif - %else ; %$reg_size = 8 - mov rax, %2 - %endif - pushfq - push qword[%%tmp] ;rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - ALIGN_STACK - mov rsi, rax -%elifid %2 -; variable (hope so) - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - %if %1 = 1 - %4 rax, byte [%2] - %elif %1 = 2 - %4 rax, word [%2] - %elif %1 = 4 - movsx rax, dword [%2] - %ifidni %4, movzx - pushfq - shl rax, 32 - shr rax, 32 - popfq - %endif - %else ; %1 = 8 - mov rax, qword [%2] - %endif - mov rsi, rax - ALIGN_STACK -%elifnum %2 - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - mov rsi, %2 - ALIGN_STACK -%elifstr %2 - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - mov rsi, %2 - ALIGN_STACK -%else -; may be, address expression? -jmp %%after_data -section .data - %%tmp dq 0 -section .text - %%after_data: - mov qword[%%tmp], rax - %if %1 = 1 - %4 rax, byte %2 - %elif %1 = 2 - %4 rax, word %2 - %elif %1 = 4 - movsx rax, dword %2 - %ifidni %4, movzx - pushfq - shl rax, 32 - shr rax, 32 - popfq - %endif - %else ; %1 = 8 - mov rax, qword %2 - %endif - pushfq - push qword[%%tmp] ;rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - ALIGN_STACK - mov rsi, rax -%endif - mov rdi, %%fmt - call printf - UNALIGN_STACK - FFLUSH_STDOUT - pop rdi - pop rsi - pop r11 - pop r10 - pop r9 - pop r8 - pop rdx - pop rcx - pop rax - popfq - %pop ; IS_REG -%endmacro - -%macro PRINT_DEC 2.nolist - sasmMacroFunc - ___PRINT_NUM_COMMON %1, %2, "d", movsx - sasmMacroFuncE -%endmacro - -%macro PRINT_UDEC 2.nolist - sasmMacroFunc - ___PRINT_NUM_COMMON %1, %2, "u", movzx - sasmMacroFuncE -%endmacro - -%macro PRINT_HEX 2.nolist - sasmMacroFunc - ___PRINT_NUM_COMMON %1, %2, "x", movzx - sasmMacroFuncE -%endmacro - -%macro PRINT_CHAR 1.nolist - sasmMacroFunc - IS_GPR %1 -%if %$is_reg = 1 -; register - jmp %%after_data -section .data - %%tmp dq 0 -section .text - %%after_data: - mov qword[%%tmp], rax - %if %$reg_size = 1 - movzx rax, %1 - %elif %$reg_size = 2 - movzx rax, %1 - %elif %$reg_size = 4 - movsx rax, %1 - pushfq - shl rax, 32 - shr rax, 32 - popfq - %else ; %$reg_size = 8 - mov rax, %1 - %endif - pushfq - push qword[%%tmp] ;rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - and rax, 0xff - mov rdi, rax - ALIGN_STACK -%elifid %1 -; variable (hope so) - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - movzx rax, byte [%1] - mov rdi, rax - ALIGN_STACK -%elifnum %1 - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - mov rdi, %1 - and rdi, 0xff - ALIGN_STACK -%elifstr %1 -; string select only 1st byte -%substr tstr %1 1 - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - mov rdi, tstr - ALIGN_STACK -%else -; may be, address expression? - jmp %%after_data -section .data - %%tmp dq 0 -section .text - %%after_data: - mov qword[%%tmp], rax - movzx rax, byte %1 - pushfq - push qword[%%tmp] ;rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - mov rdi, rax - ALIGN_STACK -%endif - call putchar - UNALIGN_STACK - FFLUSH_STDOUT - pop rdi - pop rsi - pop r11 - pop r10 - pop r9 - pop r8 - pop rdx - pop rcx - pop rax - popfq - %pop ; IS_REG - sasmMacroFuncE -%endmacro - -; size data baseformatletter ("d", "u", "x") signextendinst (movzx, movsx) -%macro ___GET_NUM_COMMON 4.nolist - ___MAKE_FORMAT_STR %1, %3, %%fmt - jmp %%after_data -section .data - %%read_tmp dq 0 - %%tmp dq 0 -section .text - %%after_data: - IS_GPR %2 -%if %$is_reg = 1 -; register - %ifidni %2, rsp - %error "Won't read to rsp!" - %elifidni %2, esp - %error "Won't read to esp!" - %elifidni %2, sp - %error "Won't read to sp!" - %elifidni %2, spl - %error "Won't read to sp!" - %endif - %if %$reg_size < %1 - %error "Too small register for requested data" - %endif -; we will have to do postprocessing after scanf - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - mov rsi, %%read_tmp - ALIGN_STACK -%elifid %2 -; variable (hope so) - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - mov rsi, %2 - ALIGN_STACK -%elifnum %2 - %error "Incorrect parameter (number)" -%elifstr %2 - %error "Incorrect parameter (string)" -%else -; may be, address expression? - mov qword[%%tmp], rax - lea rax, %2 - pushfq - push qword[%%tmp] ;rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - ALIGN_STACK - mov rsi, rax -%endif - mov rdi, %%fmt - call scanf - UNALIGN_STACK - pop rdi - pop rsi - pop r11 - pop r10 - pop r9 - pop r8 - pop rdx - pop rcx - pop rax - popfq -%if %$is_reg = 1 - ; register postprocessing - %if %$reg_size = %1 - mov %2, [%%read_tmp] - %else ; extend bytes 1 -> 2, 1 -> 4, 1 -> 8, 2 -> 4, 2 -> 8, 4 -> 8 - %if %1 = 1 - %4 %2, byte [%%read_tmp] - %elif %1 = 2 - %4 %2, word [%%read_tmp] - %else ; 4 - movsx %2, dword [%%read_tmp] - %ifidni %4, movzx - pushfq - shl %2, 32 - shr %2, 32 - popfq - %endif - %endif - %endif -%endif - %pop ; IS_REG -%endmacro - -%macro GET_HEX 2.nolist - sasmMacroFunc - ___GET_NUM_COMMON %1, %2, "x", movzx - sasmMacroFuncE -%endmacro - -%macro GET_DEC 2.nolist - sasmMacroFunc - ___GET_NUM_COMMON %1, %2, "d", movsx - sasmMacroFuncE -%endmacro - -%macro GET_UDEC 2.nolist - sasmMacroFunc - ___GET_NUM_COMMON %1, %2, "u", movzx - sasmMacroFuncE -%endmacro - - -%macro GET_CHAR 1.nolist - sasmMacroFunc - jmp %%after_data -section .data - %%fmt db "%c", 0 - %%read_tmp db 0 - %%tmp dq 0 -section .text -%%after_data: - IS_GPR %1 -%if %$is_reg = 1 -; register - %ifidni %1, rsp - %error "Won't read to rsp!" - %elifidni %1, esp - %error "Won't read to esp!" - %elifidni %1, sp - %error "Won't read to sp!" - %elifidni %1, spl - %error "Won't read to spl!" - %endif -; we will have to do postprocessing after scanf - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - mov rsi, %%read_tmp - ALIGN_STACK -%elifid %1 -; variable (hope so) - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - mov rsi, %1 - ALIGN_STACK -%elifnum %1 - %error "Incorrect parameter (number)" -%elifstr %1 - %error "Incorrect parameter (string)" -%else -; may be, address expression? - mov qword[%%tmp], rax - lea rax, %1 - pushfq - push qword[%%tmp] ;rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - ALIGN_STACK - mov rsi, rax -%endif - mov rdi, %%fmt - call scanf - UNALIGN_STACK - pop rdi - pop rsi - pop r11 - pop r10 - pop r9 - pop r8 - pop rdx - pop rcx - pop rax - popfq -%if %$is_reg = 1 - ; register postprocessing - %if %$reg_size = 1 - mov %1, byte [%%read_tmp] - %else ; zero extend bytes 1 -> 2, 1 -> 4, 1 -> 8 - movzx %1, byte [%%read_tmp] - %endif -%endif - %pop ; IS_REG - sasmMacroFuncE -%endmacro - -%macro GET_STRING 2.nolist - sasmMacroFunc - IS_GPR %1 - %if %$is_reg = 1 - %error "Incorrect 1st parameter (register)" - %endif - %pop ;IS_GPR - IS_GPR %2 - %if %$is_reg = 1 - ; - %elifnum %2 - %if %2 <= 0 - %error "Second parameter must be positive" - %endif - %else - %error "Second parameter must be numeric constant or register" - %endif - %pop ;IS_GPR -%ifid %1 -; variable (hope so) - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - ;count - IS_GPR %2 - %if %$is_reg = 1 - %if %$reg_size = 1 - movzx rsi, %2 - %elif %$reg_size = 2 - movzx rsi, %2 - %elif %$reg_size = 4 - movsx rsi, %2 - pushfq - shl rsi, 32 - shr rsi, 32 - popfq - %else ; %$reg_size = 8 - mov rsi, %2 - %endif - %else - mov rsi, %2 - %endif - %pop - mov rdi, %1 - ALIGN_STACK - call get_stdin - mov rdx, rax -%elifnum %1 - %error "Incorrect 1st parameter (number)" -%elifstr %1 - %error "Incorrect 1st parameter (string)" -%else -; may be, address expression? - jmp %%after_data -section .data - %%tmp dq 0 -section .text -%%after_data: - mov qword[%%tmp], rbx - lea rbx, %1 - pushfq - push rax - push rcx - push rdx - push r8 - push r9 - push r10 - push r11 - push rsi - push rdi - ;count - IS_GPR %2 - %if %$is_reg = 1 - %if %$reg_size = 1 - movzx rsi, %2 - %elif %$reg_size = 2 - movzx rsi, %2 - %elif %$reg_size = 4 - movsx rsi, %2 - pushfq - shl rsi, 32 - shr rsi, 32 - popfq - %else ; %$reg_size = 8 - mov rsi, %2 - %endif - %else - mov rsi, %2 - %endif - %pop - mov rdi, rbx - ALIGN_STACK - call get_stdin - mov rdx, rax - mov rbx, qword[%%tmp] -%endif - call fgets - UNALIGN_STACK - pop rdi - pop rsi - pop r11 - pop r10 - pop r9 - pop r8 - pop rdx - pop rcx - pop rax - popfq - sasmMacroFuncE -%endmacro -%endif diff --git a/Linux/share/sasm/keys.ini b/Linux/share/sasm/keys.ini deleted file mode 100644 index 25a365c1..00000000 --- a/Linux/share/sasm/keys.ini +++ /dev/null @@ -1,28 +0,0 @@ -[General] -new=default -open=default -close=default -save=default -saveAs=default -exit=Ctrl+Q -find=default -undo=default -redo=default -cut=default -copy=default -paste=default -delete=default -selectAll=default -comment=Shift+Ctrl+A -uncomment=Shift+Ctrl+Q -deleteTab=Shift+Tab -build=Ctrl+F9 -run=F9 -debug=F5 -continue=F5 -stepOver=F10 -stepInto=F11 -breakpoint=F8 -showRegisters=Ctrl+R -showMemory=Ctrl+M -help=default diff --git a/Linux/share/sasm/sasm.png b/Linux/share/sasm/sasm.png deleted file mode 100644 index a8fdd6a2..00000000 Binary files a/Linux/share/sasm/sasm.png and /dev/null differ diff --git a/README.txt b/README.txt index d9981480..6e28f2c9 100644 --- a/README.txt +++ b/README.txt @@ -1,7 +1,7 @@ SASM (SimpleASM) - простая кроссплатформенная среда разработки для языков ассемблера NASM, MASM, GAS, FASM с подсветкой синтаксиса и отладчиком. В SASM Вы можете легко разрабатывать и выполнять программы, написанные на языках ассемблера NASM, MASM, GAS, FASM. Вводите код в форму и запускайте приложение. Программа работает "из коробки" и хорошо подойдет для начинающих изучать язык ассемблера. Основана на Qt. Распространяется по свободной лицензии GNU GPL v3.0. -SASM (SimpleASM) - simple Open Source crossplatform IDE for NASM, MASM, GAS, FASM assembly languages. +SASM (SimpleASM) - simple Open Source cross-platform IDE for NASM, MASM, GAS, FASM assembly languages. SASM has syntax highlighting and debugger. The program works out of the box and is great for beginners to learn assembly language. SASM is translated into Russian, English, Turkish (thanks Ali Goren), Chinese (thanks Ahmed Zetao Yang), German (thanks Sebastian Fischer), Italian (thanks Carlo Dapor), Polish (thanks Krzysztof Rossa), Hebrew (thanks Elian Kamal), Spanish (thanks Mariano Cordoba). Licensed under the GNU GPL v3.0. Based on the Qt. @@ -30,7 +30,7 @@ For running: Download sources and unpack their. Go to directory with their: "cd " Further print commands: -1) "qmake" (For installing in specific directory on Linux - print: "qmake PREFIX=". By default SASM installs in "/usr/bin" and "usr/share") +1) "qmake" (For installing in specific directory on Linux - print: "qmake PREFIX=". By default SASM installs in "/usr/bin" and "/usr/share") 2) "make" for Linux and "mingw32-make" for Windows. 3) For Linux: "make install" (command "sasm" will open SASM) or run "sasm" from folder right away or put "sasm" executable file to folder "Linux" (from this folder you can run the program). For Windows: Put "sasm.exe" executable file to folder "Windows". From this folder you can run the program. Also you can run program right away from compilation folder. diff --git a/SASM.pro b/SASM.pro index 7aa7e044..2eea4e3b 100644 --- a/SASM.pro +++ b/SASM.pro @@ -12,39 +12,37 @@ TARGET = sasm TEMPLATE = app isEmpty(PREFIX) { - PREFIX = /usr + bsd { + PREFIX = /usr/local + } else { + PREFIX = /usr + } } BINDIR = $$PREFIX/bin DATADIR = $$PREFIX/share -bsd { - binfile.files += sasm - binfile.files += BSD/bin/* - binfile.path = $$BINDIR - data.files += BSD/share/sasm/* - data.path = $$DATADIR/sasm/ - shortcutfiles.files += BSD/share/applications/sasm.desktop - shortcutfiles.path = $$DATADIR/applications/ - docfiles.files += BSD/share/doc/sasm/changelog.gz - docfiles.files += BSD/share/doc/sasm/copyright - docfiles.path = $$DATADIR/doc/sasm/ -} else { +unix { + appdata.files = res/io.github.dman95.SASM.metainfo.xml + appdata.path = $$DATADIR/metainfo + desktop.files = res/io.github.dman95.SASM.desktop + desktop.path = $$DATADIR/applications + icons.files = res/app/icons/hicolor + icons.path = $$DATADIR/icons + binfile.files += sasm - binfile.files += Linux/bin/* binfile.path = $$BINDIR - data.files += Linux/share/sasm/* - data.path = $$DATADIR/sasm/ - shortcutfiles.files += Linux/share/applications/sasm.desktop - shortcutfiles.path = $$DATADIR/applications/ - docfiles.files += Linux/share/doc/sasm/changelog.gz - docfiles.files += Linux/share/doc/sasm/copyright - docfiles.path = $$DATADIR/doc/sasm/ + data.files += Unix/share/sasm + data.path = $$DATADIR + docfiles.files += Unix/share/doc + docfiles.path = $$DATADIR } +INSTALLS += appdata +INSTALLS += desktop +INSTALLS += icons INSTALLS += binfile INSTALLS += data -INSTALLS += shortcutfiles INSTALLS += docfiles include(singleapplication/qtsingleapplication.pri) diff --git a/Linux/share/doc/sasm/changelog.gz b/Unix/share/doc/sasm/changelog.gz similarity index 100% rename from Linux/share/doc/sasm/changelog.gz rename to Unix/share/doc/sasm/changelog.gz diff --git a/BSD/share/doc/sasm/copyright b/Unix/share/doc/sasm/copyright similarity index 100% rename from BSD/share/doc/sasm/copyright rename to Unix/share/doc/sasm/copyright diff --git a/BSD/share/sasm/NASM/macro.c b/Unix/share/sasm/NASM/macro.c similarity index 100% rename from BSD/share/sasm/NASM/macro.c rename to Unix/share/sasm/NASM/macro.c diff --git a/BSD/share/sasm/Projects/FASMHello.asm b/Unix/share/sasm/Projects/FASMHello.asm similarity index 100% rename from BSD/share/sasm/Projects/FASMHello.asm rename to Unix/share/sasm/Projects/FASMHello.asm diff --git a/BSD/share/sasm/Projects/FASMHellox64.asm b/Unix/share/sasm/Projects/FASMHellox64.asm similarity index 100% rename from BSD/share/sasm/Projects/FASMHellox64.asm rename to Unix/share/sasm/Projects/FASMHellox64.asm diff --git a/BSD/share/sasm/Projects/GASHello.asm b/Unix/share/sasm/Projects/GASHello.asm similarity index 100% rename from BSD/share/sasm/Projects/GASHello.asm rename to Unix/share/sasm/Projects/GASHello.asm diff --git a/BSD/share/sasm/Projects/GASHellox64.asm b/Unix/share/sasm/Projects/GASHellox64.asm similarity index 100% rename from BSD/share/sasm/Projects/GASHellox64.asm rename to Unix/share/sasm/Projects/GASHellox64.asm diff --git a/BSD/share/sasm/Projects/NASMHello.asm b/Unix/share/sasm/Projects/NASMHello.asm similarity index 100% rename from BSD/share/sasm/Projects/NASMHello.asm rename to Unix/share/sasm/Projects/NASMHello.asm diff --git a/BSD/share/sasm/Projects/NASMHellox64.asm b/Unix/share/sasm/Projects/NASMHellox64.asm similarity index 100% rename from BSD/share/sasm/Projects/NASMHellox64.asm rename to Unix/share/sasm/Projects/NASMHellox64.asm diff --git a/BSD/share/sasm/include/io.inc b/Unix/share/sasm/include/io.inc similarity index 100% rename from BSD/share/sasm/include/io.inc rename to Unix/share/sasm/include/io.inc diff --git a/BSD/share/sasm/include/io64.inc b/Unix/share/sasm/include/io64.inc similarity index 100% rename from BSD/share/sasm/include/io64.inc rename to Unix/share/sasm/include/io64.inc diff --git a/BSD/share/sasm/keys.ini b/Unix/share/sasm/keys.ini similarity index 100% rename from BSD/share/sasm/keys.ini rename to Unix/share/sasm/keys.ini diff --git a/common.cpp b/common.cpp index 8e4f6485..e45c4d01 100644 --- a/common.cpp +++ b/common.cpp @@ -56,16 +56,6 @@ QString Common::applicationDataPath() appDir = QCoreApplication::applicationDirPath(); } return appDir; - #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined( __NetBSD__) || defined(__DragonFly__) - QString path = QCoreApplication::applicationDirPath(); - QString appDir = path.left(path.length() - 4) + QString("/share/sasm"); //replace /bin with /share/sasm - if (! QFile::exists(appDir)) { - appDir = QCoreApplication::applicationDirPath() + "/share/sasm"; - } - if (! QFile::exists(appDir)) { - appDir = QCoreApplication::applicationDirPath() + "/BSD/share/sasm"; - } - return appDir; #else QString path = QCoreApplication::applicationDirPath(); QString appDir = path.left(path.length() - 4) + QString("/share/sasm"); //replace /bin with /share/sasm @@ -73,7 +63,7 @@ QString Common::applicationDataPath() appDir = QCoreApplication::applicationDirPath() + "/share/sasm"; } if (! QFile::exists(appDir)) { - appDir = QCoreApplication::applicationDirPath() + "/Linux/share/sasm"; + appDir = QCoreApplication::applicationDirPath() + "/Unix/share/sasm"; } return appDir; #endif diff --git a/helpENG.html b/helpENG.html index 9c9673f9..73620364 100644 --- a/helpENG.html +++ b/helpENG.html @@ -7,7 +7,7 @@

Brief help.

-SASM (SimpleASM) - simple Open Source crossplatform IDE for NASM, MASM, GAS, FASM assembly languages. +SASM (SimpleASM) - simple Open Source cross-platform IDE for NASM, MASM, GAS, FASM assembly languages.

In SASM you can easily develop and execute programs, written in NASM assembly language. Enter code in form and simply run your program. Enter your input data in "Input" docking field. In "Output" field you can see the result of the execution of the program. Wherein all messages and compilation errors will be shown in the form on the bottom. You can save source or already compiled (exe) code of your program to file and load your programs from file. diff --git a/BSD/share/sasm/sasm.png b/res/app/icons/hicolor/128x128/apps/io.github.dman95.SASM.png similarity index 100% rename from BSD/share/sasm/sasm.png rename to res/app/icons/hicolor/128x128/apps/io.github.dman95.SASM.png diff --git a/Linux/share/applications/sasm.desktop b/res/io.github.dman95.SASM.desktop similarity index 50% rename from Linux/share/applications/sasm.desktop rename to res/io.github.dman95.SASM.desktop index 9743f36a..4f6f8594 100644 --- a/Linux/share/applications/sasm.desktop +++ b/res/io.github.dman95.SASM.desktop @@ -1,8 +1,8 @@ [Desktop Entry] Name=SASM GenericName=SASM -Comment=Simple crossplatform IDE for NASM, MASM, GAS and FASM assembly languages. -Icon=/usr/share/sasm/sasm.png +Comment=Simple cross-platform IDE for NASM, MASM, GAS and FASM assembly languages. +Icon=io.github.dman95.SASM Exec=sasm Terminal=false Type=Application diff --git a/res/io.github.dman95.SASM.metainfo.xml b/res/io.github.dman95.SASM.metainfo.xml new file mode 100644 index 00000000..4a0bcd70 --- /dev/null +++ b/res/io.github.dman95.SASM.metainfo.xml @@ -0,0 +1,41 @@ + + + io.github.dman95.SASM + + SASM +

Simple cross-platform IDE for NASM, MASM, GAS and FASM assembly languages + SASM (SimpleASM) - простая кроссплатформенная среда разработки для языков ассемблера NASM, MASM, GAS, FASM с подсветкой синтаксиса и отладчиком + CC0-1.0 + GPL-3.0-or-later + + +

+ SASM (SimpleASM) - simple Open Source cross-platform IDE for NASM, MASM, GAS, FASM assembly languages. SASM has syntax highlighting and debugger. The program works out of the box and is great for beginners to learn assembly language. SASM is translated into Russian, English, Turkish (thanks Ali Goren), Chinese (thanks Ahmed Zetao Yang), German (thanks Sebastian Fischer), Italian (thanks Carlo Dapor), Polish (thanks Krzysztof Rossa), Hebrew (thanks Elian Kamal), Spanish (thanks Mariano Cordoba). Licensed under the GNU GPL v3.0. Based on the Qt. +

+
+ + +

+ SASM (SimpleASM) - простая кроссплатформенная среда разработки для языков ассемблера NASM, MASM, GAS, FASM с подсветкой синтаксиса и отладчиком. В SASM Вы можете легко разрабатывать и выполнять программы, написанные на языке ассемблера. Вводите код в форму и запускайте приложение. Программа работает "из коробки" и хорошо подойдет для начинающих изучать язык ассемблера. Основана на Qt. Распространяется по свободной лицензии GNU GPL v3.0. +

+
+ + https://dman95.github.io + https://github.com/Dman95/SASM/issues + io.github.dman95.SASM.desktop + + + https://dman95.github.io/SASM/images/Screenshot3.png + + + https://dman95.github.io/SASM/images/Screenshot4.png + + + https://dman95.github.io/SASM/images/Screenshot1.png + + + https://dman95.github.io/SASM/images/Screenshot2.png + + + +