Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - X512

Страницы: [1]
1
Общий раздел / BlackBox без MDI
« : Март 31, 2014, 06:00:56 pm »
Уже более полтора года назад сделал версию BlackBox без MDI, т.к. оно мешает при одновременной работе с другими программами и занимает лишнее время на экране. Правда тогда я не решился выложить ту версию ввиду разных глюков, вызванными экспериментами с Framework'ом. Сегодня ещё раз реализовал тот же функционал поверх BlackBox 1.6 final (http://archive.oberoncore.org/blackbox16.7z).

В данной версии нет окна, в котором находятся все документы, окна BlackBox можно без проблем совмещать с окнами других программ. Меню по-прежнему общее. Теперь оно работает аналогично MacOS. Оно разположено в отдельном окне вверу экрана на всю ширину. Меню автоматически скрывается, если фокус переходит к другой программе, чтобы не мешать работе с другими программами. Также по-прежнему можно запускать несколько экзэмпляров BlackBox, правда их тогда будет трудно различить (для различия можно например первый пункт меню назвать по разному). Alt комбинации работают корректно.

Для установки декодировать файл во вложении на BlackBox 1.6 final. Возможно на других версиях тоже будет работать, но результат не гарантирован.

2
Изучая исходники BlackBox для Linux, также обнаружил ряд интересных модулей, не опубликованных в обычной версии BlackBox. В частности был найден дизассемблер для форматов Portable Executable (DevDecExe) и Oberon Code File(DevDecoder) и архитектур 86k, i486, ARM, PPC и SH3 (не знаю что это такое). ELF не поддерживается. Для Oberon Code File также выводятся дескрипторы типов и т.п. Также имеется компилятор для 68k.

Список модулей
DevDecBase
DevDecSH3
DevDecPPC
DevDecoder
DevDecExe
DevDecARM
DevDec68k
DevDec486


Также выкладываю исходники Blackbox для Linux, уже не помню откуда их взял.
http://rghost.ru/51613795
Сюда выложить не получилось, хотя в лимит вроде укладывается...

Может кому поможет при написании компиляторов.

3
Общий раздел / Машинный код x86
« : Январь 14, 2013, 04:38:00 am »
У меня давно уже есть идея написать компилятор обероноподобного языка. Как писать лексер и парсер в принципе понятно, но где брать информацию о машинном коде x86 не совсем. Где можно найти информацию о генерации кода для x86? Документации Intel - слишком сложно, я на ассемблере почти не писал. Пока у меня есть своя стековая виртуальная машина и ассемблер для неё; программы выглядят как-то так
PROCEDURE^ Sort (8)

PROCEDURE Main
VAR a, len, i (* все переменные только INTEGER *)
CODE
STK a ->
5345235 -436  235 235 4 -53254 235 23 34 -325 342 523 35523 (* массив для сортировки *)
STK a& - 4 DIV len ->
a& PRINT len& PRINT -10000 PRINT
a& len& Sort!
0 i ->
:l i& len& < e?
a& i& 4 * + ^ PRINT
i& 1 + i ->
l@
:e
END Main

(*
Спецификация ассемблерного кода ниже
PROCEDURE Sort(VAR a: ARRAY OF INTEGER);
VAR i, j: INTEGER; x, t: INTEGER;
BEGIN
i := 0; j := LEN(a)-1;
x := a[(LEN(a)-1) DIV 2];
REPEAT
WHILE a[i] < x DO INC(i) END;
WHILE x < a[j] DO DEC(j) END;
IF i <= j THEN
t := a[i]; a[i] := a[j]; a[j] := t;
INC(i); DEC(j)
END
UNTIL i > j;
IF 0 < j THEN Sort(SPLIT(a, 0, j+1)) END;
IF i < LEN(a)-1 THEN Sort(SPLIT(a, i, LEN(a))) END
END Sort.
*)

PROCEDURE Sort(len, a)
VAR i, j, x, t
CODE
0 i -> len& 1 - j ->
len& 1 - 2 DIV 4 * a& + ^ x ->
:l1 a& i& 4 * + ^ x& < l2?
i& 1 + i ->
l1@
:l2 x& a& j& 4 * + ^ < l3?
j& 1 - j ->
l2@
:l3 i& j& <= l4?
a& i& 4 * + ^ t ->
a& j& 4 * + ^ a& i& 4 * + =>
t& a& j& 4 * + =>
i& 1 + i ->
j& 1 - j ->
:l4 i& j& > l1?
0 j& < l5?
a& j& 1 + Sort!
:l5 i& len& 1 - < l6?
i& 4 * a& + len& i& - Sort!
:l6
END Sort
SPLIT(array: ANYARR; beg, end: INTEGER): ANYARR - это встроенная функция моего языка для выделения подмассива.

4
Общий раздел / Component Pascal vs Oberon-07
« : Январь 14, 2013, 12:25:13 am »

Страницы: [1]