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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Irbis Forth
СообщениеДобавлено: Чт май 26, 2022 22:15 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7649
Благодарил (а): 23 раз.
Поблагодарили: 143 раз.
Irbis - 64-разрядный Форт для Windows.


Вложения:
Irbis_brief.png
Irbis_brief.png [ 584.75 Кб | Просмотров: 2839 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Пт май 27, 2022 02:24 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7649
Благодарил (а): 23 раз.
Поблагодарили: 143 раз.
В таком виде эта тема просто видна. С предыдущим вариантом было что-то не то с настройками форума.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Пт май 27, 2022 09:46 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1214
Благодарил (а): 3 раз.
Поблагодарили: 16 раз.
Ура, работает-с)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Пт май 27, 2022 12:34 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 394
Откуда: Москва
Благодарил (а): 51 раз.
Поблагодарили: 18 раз.
2 2 + .


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Пт май 27, 2022 18:23 
Не в сети

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 405
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 48 раз.
Поблагодарили: 3 раз.
Victor__v писал(а):
Ура, работает-с)
Неа.

_________________
Сотник. SotnikSTO@mail.ru


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Пт май 27, 2022 18:24 
Не в сети

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 405
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 48 раз.
Поблагодарили: 3 раз.
Total Vacuum писал(а):
2 2 + .
> А сколько надо?

_________________
Сотник. SotnikSTO@mail.ru


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Чт июн 16, 2022 11:17 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 394
Откуда: Москва
Благодарил (а): 51 раз.
Поблагодарили: 18 раз.
Кстати, подумалось, сейчас Irbis (само приложение) 64-битное, поэтому работает только в 64-битных осях. А ведь можно сделать 32-битное приложение, которое при этом будет работать с 64-битными данными, тогда его можно будет хоть на winxp запускать...

Кстати, как в Паскале объявляются длинные целые (long в си/dd в asm) и очень длинные целые (long long/dq)? :) Уже совсем Паскаль из головы выветрился... :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Чт июн 16, 2022 23:44 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7649
Благодарил (а): 23 раз.
Поблагодарили: 143 раз.
Total Vacuum писал(а):
Кстати, подумалось, сейчас Irbis (само приложение) 64-битное, поэтому работает только в 64-битных осях. А ведь можно сделать 32-битное приложение, которое при этом будет работать с 64-битными данными, тогда его можно будет хоть на winxp запускать...


Если посмотреть, большинство машин сейчас с 64-битной Windows, и WinXP уже практически ушла. Получить доступ к более свежим возможностям видится приятнее по сравнению с расширением на слишком большой спектр платформ. Это все-таки "просто Форт для Windows".

Total Vacuum писал(а):
Кстати, как в Паскале объявляются длинные целые (long в си/dd в asm) и очень длинные целые (long long/dq)? Уже совсем Паскаль из головы выветрился...

type CELL = int64;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Ср окт 19, 2022 10:58 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 394
Откуда: Москва
Благодарил (а): 51 раз.
Поблагодарили: 18 раз.
Бродилка под Irbis :)
Изображение
ссылка на изображение
Код:
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
176 constant HEIGHT
5 constant BITS
1 BITS lshift constant STEP
STEP 1 - constant MASK

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 y


variable h
variable j1
variable j2

: span
   color ! dist ! x !
   HEIGHT dist @ STEP WIDTH * HEIGHT / > if STEP WIDTH * HEIGHT / * dist @ / then h !
   HEIGHT h @ - 2 / 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 i  variable j
variable di variable dj
variable wall

: scan
   v @ u @ < dup if
      y @ STEP + y !
      u @ v @ - u !
      v1 @ v !
      j @ dj @ + j !
   else
      x @ STEP + x !
      v @ u @ - v !
      u1 @ u !
      i @ di @ + i !
   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 - x ! b1 @ dup BITS lshift u1 ! * u !
   v @ dup STEP - y ! a1 @ dup BITS lshift v1 ! * v !
   i0 @ i !
   j0 @ j !

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

   dup
   wall @ if b1 y else a1 x then @ 18 lshift swap @ /
   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 @ 128 / Swing @ * WIDTH / da !
   vx @ 128 / Swing @ * WIDTH / db !
   vx @ Swing @ vy @ 256 / * - a !
   vy @ Swing @ vx @ 256 / * + 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 16 / + dup x ! BITS rshift i !
      LocY @ sin 16 / + 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

или тут: http://totalvacuum.ru/IRBIS/wolf3d.f

Надо бы оптимизировать, да и под OpenGL переписать, но всё руки не доходят... :)



За это сообщение автора Total Vacuum поблагодарил: Hishnik
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Ср окт 19, 2022 13:43 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7649
Благодарил (а): 23 раз.
Поблагодарили: 143 раз.
Ух, работает :) Если увеличить размеры, начинает существенно подтормаживать. Все-таки нужен OpenGL. Однако в качестве демонстрации выглядит эффектно. Можно доделывать Ирбиса по результатам тестирования.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Ср окт 19, 2022 15:00 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 394
Откуда: Москва
Благодарил (а): 51 раз.
Поблагодарили: 18 раз.
:) Переделал : rshift 0 do 2 / loop ; и разбил цикл в span на 3 отдельных для пола, стен и потолка, также задействовав штатный do-loop. По ощущениям, чуточку быстрее стало. Не знаю внутренней кухни, могу лишь предполагать, что встроенный цикл do-loop работает быстрее, чем его аналог, реализованный через begin-while-repeat
http://totalvacuum.ru/IRBIS/wolf3x.f


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Ср окт 19, 2022 19:41 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7649
Благодарил (а): 23 раз.
Поблагодарили: 143 раз.
rshift и lshift есть встроенные. Так и работают: d, bits -- d<<bits


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Вт окт 25, 2022 01:03 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 394
Откуда: Москва
Благодарил (а): 51 раз.
Поблагодарили: 18 раз.
:) Точно, туплю, встроенный rshift прекрасно работает. Убрал rshift и немного упростил http://totalvacuum.ru/IRBIS/wolf3z.f


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Ср ноя 02, 2022 01:43 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 394
Откуда: Москва
Благодарил (а): 51 раз.
Поблагодарили: 18 раз.
А нет ли какого-нибудь простенького примера для Irbis+OpenGL? :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Ср ноя 02, 2022 03:28 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7649
Благодарил (а): 23 раз.
Поблагодарили: 143 раз.
Total Vacuum писал(а):
А нет ли какого-нибудь простенького примера для Irbis+OpenGL?

Совсем простенький есть. Сейчас он как раз дописывается на предмет "чего там еще не хватает для практики".


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

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


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

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


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

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