[1.4.6] RedPower 2 [Prerelease 6]
#1242
Написал 15.12.2012 - 19:41
Прикрепленные файлы
#1244
Написал 15.12.2012 - 21:28
Поторопился ты, надо было сначала получше проверить. Еще надо сделать ввод 32-разрядных чисел, но это как-нибудь потом.
И еще: в слове 2@ строка !word - без предыдущего кода не имеет смысла. Надо писать как-то так: !word <адрес предыдущего слова>
#1245
Написал 15.12.2012 - 21:43
Бывает.Поторопился ты...
А S>D не достаточно?Еще надо сделать ввод 32-разрядных чисел, но это как-нибудь потом.
Поправлю.И еще: в слове 2@ строка !word - без предыдущего кода не имеет смысла. Надо писать как-то так: !word <адрес предыдущего слова>
По поводу других реализаций:
Мне дали UITOA (на всякий):
: UITOA ( n --> str )SCRATCH 14 +0 OVER C!BEGIN 1- SWAP 0 RADIX @ UM/MOD -ROT 30 + DUP 39 > IF 7 + THEN OVER C! OVER 0=UNTILNIP;
У тех, кто пишет понятно, есть читатели; у тех, кто пишет туманно, есть комментаторы.
--Альберт Камю
#1246
Написал 15.12.2012 - 22:29
: DUITOA0 84 !RADIX @ DUM/MODROT 48 + 83 C!83 85 !BEGIN 2DUP 0 0 D= INVERTWHILE 85 C@ 1- 85 C! RADIX @ DUM/MOD ROT 48 + 85 C@ C!REPEAT2DROP85 C@;В DUITOA я делю исходное число на RADIX, записываю остаток в качестве 1-ого разряда, потом делю частное, записываю остаток в качестве 2-ого разряда и т.д. 85-ый байт хранит адрес по которому записывается текущий разряд. UITOA похоже работает аналогично, но что там делается в стеке я не могу сходу понять. Да, еще это будет работать только в десятеричной системе, забыл таблицу кодировок посмотреть.
#1247
Написал 15.12.2012 - 22:42
DECIMAL: DUITOA ( n --> str )0 99 !99 100 !BEGIN 1 100 -! ( d ) RADIX @ DUM/MOD ( n d ) ROT 48 + ( d n ) DUP 57 > IF 7 + THEN 100 @ C! ( d ) 2DUP 0 0 D=UNTIL2DROP100 @;
У тех, кто пишет понятно, есть читатели; у тех, кто пишет туманно, есть комментаторы.
--Альберт Камю
#1248
Написал 16.12.2012 - 10:08
DECIMAL\ n1L n1H -- addr: DUITOA0 100 !100-ROTBEGIN ROT 1- -ROT RADIX @ DUM/MOD 2SWAP 48 + DUP 57 > IF 7 + THEN OVER C! -ROT 2DUP 0 0 D=UNTIL2DROP;Получилось короче твоего варианта на 16 байт.
Еще вместо 0 0 можно писать 0 DUP, будет короче на 2 байта, но код будет менее понятным.
#1249
Написал 16.12.2012 - 13:28
Зовите меня Женуарий, Евгенио, Женевьев или просто Женя.
Пора завязывать со срачем!!!
#1250
Написал 16.12.2012 - 14:00
Можно вообще нули заменить на FALSE =)Еще вместо 0 0 можно писать 0 DUP, будет короче на 2 байта, но код будет менее понятным.
У тех, кто пишет понятно, есть читатели; у тех, кто пишет туманно, есть комментаторы.
--Альберт Камю
#1251
Написал 16.12.2012 - 14:41
#1252
Написал 16.12.2012 - 14:55
HEX: WAITBEGIN 5 TICKS 8000 IOX@ ANDUNTIL ;DECIMALЕсли дверь может открываться от одного сигнала, то буть проще и переходи на аналог =) В смысле используй State Cell.
У тех, кто пишет понятно, есть читатели; у тех, кто пишет туманно, есть комментаторы.
--Альберт Камю
#1253
Написал 16.12.2012 - 21:35
#1254
Написал 16.12.2012 - 21:48
Да. Мне просто проще работать с битами через HEX (угадай почему)а если не переводить в hex, то прописывать нужно было значение не 8000 а 32768?
Также как ты следил за его включением, только ставишь отрицание. Т.е:возник вопрос - как отследить ИСЧЕЗНОВЕНИЕ сигнала с черного провода?
: WAITOFFBEGIN 5 TICKS 32768 IOX@ AND 0=UNTIL ;
У тех, кто пишет понятно, есть читатели; у тех, кто пишет туманно, есть комментаторы.
--Альберт Камю
#1255
Написал 17.12.2012 - 16:41
Зовите меня Женуарий, Евгенио, Женевьев или просто Женя.
Пора завязывать со срачем!!!
#1256
Написал 18.12.2012 - 01:47
#1257
Написал 18.12.2012 - 05:32
#1258
Написал 18.12.2012 - 10:01
#1259
Написал 18.12.2012 - 10:07
Хз, но она его ОЧЕНЬ давно забросила судя по всему.P.S. Что за мод - Minia?
Не зная ни сна, ни отдыха, при лунном и солнечном свете мы делаем деньги из воздуха, что бы снова пустить их на ветер
Сражение, это странный опыт. Мы планируем действия за счет интеллекта, сражаемся за счет инстинктов, и только потом понимаем, что выжили лишь благодаря случаю.(с)Из письма Фиска Блэка своей сестре Люси.
Этот новый светлый скин... Мои бедные, бедные глаза...
#1260
Написал 18.12.2012 - 10:17
Количество пользователей, читающих эту тему: 3
0 пользователей, 3 гостей, 0 анонимных