Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср дек 07, 2022 21:03

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Об Irbis Forth - 64 bit Форт для Windows замолвите слово
СообщениеДобавлено: Сб апр 30, 2022 00:22 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7654
Благодарил (а): 23 раз.
Поблагодарили: 143 раз.
Victor__v писал(а):
Можете привести пример кода, где это встречается?

Это "тернарный условный оператор" в Си. Просто к месту пришлось в конкретной мелкой программке, так что и добавилось.

Victor__v писал(а):
Согласно документации у вас есть обёртки для виндяшного фасткалла под 5 и 6 операндов. Можете рассказать почему сделано именно так, а не, допустим, общий шаблон, когда параметров больше 4?

А какой общий шаблон поддерживает free Pascal? Я просто не видел именно общего шаблона в терминах языка, без ручной правки кода (которая дает риск попасть под внимание антивирусов). Есть переменные типа procedure и function, вторая как раз подходит для GetProcAddress, но у нее должен быть статически определенный формат вызова. Если будут идеи, могу добавить.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Об Irbis Forth - 64 bit Форт для Windows замолвите слово
СообщениеДобавлено: Чт май 12, 2022 09:43 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 1858
Благодарил (а): 6 раз.
Поблагодарили: 70 раз.
А, есть ли какая то дорожная карта по проекту Irbis Форта?

P.S. т.е. насколько, к примеру, эта среда может превратиться в продвинутую и "Форт" IDE?
расширяемую Форт плагинами, к примеру для добавления сравнения файлов как в WinMerge программе.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Об Irbis Forth - 64 bit Форт для Windows замолвите слово
СообщениеДобавлено: Чт май 12, 2022 12:43 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7654
Благодарил (а): 23 раз.
Поблагодарили: 143 раз.
Точно нужно:
- кросс-компиляция (редактор, UART, файлы, графики)
- 3D-графика и color map для визуализации расчетов
- просто графики (статистика, ЦОС)
Под эти задачи Irbis дополняется словами в первую очередь. Прочие виджеты, таймер, midi - это уже в рамках общего развития инструмента. Тем не менее, добавить часто используемые компоненты общего назначения несложно.

Сейчас уже можно делать довольно много. WinMerge - ну в принципе да, не уверен насчет раскраски фрагментов текста в SynEdit.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Об Irbis Forth - 64 bit Форт для Windows замолвите слово
СообщениеДобавлено: Чт май 26, 2022 11:02 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 401
Откуда: Москва
Благодарил (а): 52 раз.
Поблагодарили: 18 раз.
Немного портированной под Irbis 3D-бродилки вам в ленту:
Код:
0 image.show

: rshift dup begin while 1 - swap 2 / swap dup repeat drop ;
: putpixel 0 image.pixel ;

: coz abs 2 * 64 - abs 2 * 64 - ;

256 constant WIDTH
192 constant HEIGHT
5 constant BITS
1 BITS lshift constant STEP
STEP 1 - constant MASK
0 constant HORZ_WALL
1 constant VERT_WALL

create Map
0x00000 , 0xFFFFE , 0xAAAAA , 0xFFFFE , 0xFC9FE , 0xFDDFE , 0xFF7FE ,
0xFDDFE , 0xFC9FE , 0xFFFFE , 0xAAAAA , 0xFFFFE , 0x00000 ,

variable Swing
variable LocX
variable LocY
variable Angle

create CosTable 256 cells allot

: init
   1 Angle !
   41 LocX !
   41 LocY !
   147 Swing !
   256 dup begin while 1 - dup coz over cells CosTable + ! dup repeat drop
;

: cos Angle @             cells CosTable + @ ;
: sin Angle @ 16 - 63 and cells CosTable + @ ;

variable dist
variable color
variable x

variable h
variable j1
variable j2

: span
   color ! dist ! x !
   HEIGHT dist @ STEP WIDTH * HEIGHT / > if STEP WIDTH * HEIGHT / * dist @ / then h !
   HEIGHT h @ - 1 rshift j1 !
   j1 @ h @ + j2 !
   HEIGHT dup begin while 1 -
      x @ over
      dup j2 @ > if 0xFFFFFF else dup j1 @ < if 0 else color @ then then
      putpixel
   dup repeat drop
;

variable i0
variable j0
variable u0
variable v0
variable vx
variable vy
variable da
variable db
variable a
variable b
variable u variable v variable u1 variable v1
variable a1 variable b1
variable d variable dx variable dy
variable i variable j
variable di variable dj
variable wall

variable y

: scan
   v @ u @ < if
      dy @ STEP + dy !
      u @ v @ - u !
      v1 @ v !
      j @ dj @ + j !
      HORZ_WALL
   else
      dx @ STEP + dx !
      v @ u @ - v !
      u1 @ u !
      i @ di @ + i !
      VERT_WALL
   then
   wall !
;

: calc
   1 a @ 0 < if negate u0 @ a @ negate else STEP u0 @ - a @ then a1 ! u ! di !
   1 b @ 0 < if negate v0 @ b @ negate else STEP v0 @ - b @ then b1 ! v ! dj !
   u @ dup STEP - dx ! b1 @ dup BITS lshift u1 ! * u !
   v @ dup STEP - dy ! a1 @ dup BITS lshift v1 ! * v !
   i0 @ i !
   j0 @ j !

   1 begin while
      scan
   Map i @ cells + @ 1 j @ lshift and repeat

   wall @ if a1 dx else b1 dy then @ 18 lshift swap @ / d !

   dup d @ i @ j @ + 3 and if 0x7F7F7F else 0x3F3F3F then span

   a @ da @ + a !
   b @ db @ - b !
;

: scene
   0 image.hide

   LocX @ dup BITS rshift i0 ! MASK and u0 !
   LocY @ dup BITS rshift j0 ! MASK and v0 !
   cos 10 lshift vx !
   sin 10 lshift vy !
   vy @ 7 rshift Swing @ * WIDTH / da !
   vx @ 7 rshift Swing @ * WIDTH / db !
   vx @ Swing @ vy @ 8 rshift * - a !
   vy @ Swing @ vx @ 8 rshift * + b !

   WIDTH dup begin while 1 -
      calc
   dup repeat drop

   0 image.show
   10 10 WIDTH HEIGHT 0 image.rect
;

: turn mouse.x 4 / 63 and Angle ! ;
use turn to mouse.move

variable forward

: start 1 forward ! ;
use start to mouse.left.down

: stop 0 forward ! ;
use stop to mouse.left.up

: run
   forward @ if
      LocX @ cos 4 rshift + dup x ! BITS rshift i !
      LocY @ sin 4 rshift + dup y ! BITS rshift j !
      Map i @ cells + @ 1 j @ lshift and if x @ LocX ! y @ LocY ! then
   then
;

: render run run run scene ;

init
40 timer.interval
use render to timer


Кстати, по поводу арифметического сдвига. Для отрицательных чисел можно что-то вроде:
Код:
a >>> b  =  (a >> b) | (-1 << (63-b));
ну или
Код:
: rshifta
   over 63 rshift if
      swap over rshift swap 63 swap - -1 swap lshift or
   else
      rshift
   then
;
, если на форте, но на паскале быстрее должно получиться.

Ирбисовые ветки форума (кроме этой) всё так же скрыты от залогиненных пользователей...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Об Irbis Forth - 64 bit Форт для Windows замолвите слово
СообщениеДобавлено: Чт май 26, 2022 13:27 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1214
Благодарил (а): 3 раз.
Поблагодарили: 16 раз.
Цитата:
Ирбисовые ветки форума (кроме этой) всё так же скрыты от залогиненных пользователей...

Власти скрывают)

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Об Irbis Forth - 64 bit Форт для Windows замолвите слово
СообщениеДобавлено: Чт май 26, 2022 17:35 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7654
Благодарил (а): 23 раз.
Поблагодарили: 143 раз.
А сейчас работает?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Об Irbis Forth - 64 bit Форт для Windows замолвите слово
СообщениеДобавлено: Чт май 26, 2022 18:33 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 401
Откуда: Москва
Благодарил (а): 52 раз.
Поблагодарили: 18 раз.
Нет. Похоже, что целиком нечитаема вся ветка Форт Системы (Forth Systems) => Irbis Forth - 64 bit Форт для Windows (viewforum.php?f=59)

При этом на главной странице видно, что в этой ветке есть новые сообщения (красная иконка слева от названия форума), но при нажатии на "Irbis Forth - 64 bit Форт для Windows" появляется зловещее "У вас нет доступа на чтение тем в этом форуме."


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Об Irbis Forth - 64 bit Форт для Windows замолвите слово
СообщениеДобавлено: Чт май 26, 2022 19:02 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7654
Благодарил (а): 23 раз.
Поблагодарили: 143 раз.
Даже не знаю. Сейчас еще раз зашел и все обновил.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB