Вот вопрос:
10 FLASH 1:PAPER 3:1NK 7:BRIGHT 0
20 PRINT AT 10,12;" "
30 PRINT ATTR (10,12)
ответ:159
подскажите а как наоборот,у меня есть цифра 159,как узнать что
FLASH= 1:PAPER =3:1NK =7
Вот вопрос:
10 FLASH 1:PAPER 3:1NK 7:BRIGHT 0
20 PRINT AT 10,12;" "
30 PRINT ATTR (10,12)
ответ:159
подскажите а как наоборот,у меня есть цифра 159,как узнать что
FLASH= 1:PAPER =3:1NK =7
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
разделить число на 8 - остаток = INK, еще на 8 - остаток = Paper, остальное если не 0, то либо Flash=1, либо Bright=1, по обстоятельствам
На бейсике это очень очень медленно наверно будет.
Скажите ведь эта 159 где то хранится,т.е. и если я в эту ячейку занесу другую цифру (другой цвет)
5 poke YYYY,159
10 print at 11,12;"X"
то должно напечатать "Х" определённого цвета (ink paper).
и мне не надо будет указывать ink и paper в бейсике.
Можно так ?
poke 23693, n
А можно и по-другому!
Заранее заготовить четыре таблички по 256 байт.
В первой -- какой Ink будет с этим Attr, во второй -- Paper, третьей -- Bright, четвертой -- Flash.
Взять четыре переменные, обозвать их ink, paper, flash и bright.
Сделать LET ink=<адрес первой таблички> и т. д.
И теперь PEEK (ink+A) как раз будет цветом чернил!
Сферический ламер в вакууме
Это будет повеселей моих табличек.
---------- Post added at 19:15 ---------- Previous post was at 19:14 ----------
Но стоп! Разве в Zx Basic-е по-нормальному выполняются логические команды?
Сферический ламер в вакууме
Если нет, то типа такого.
let p=аттрибут
let ink=p - (128*(p>128))
let ink=ink - (64*(ink>64))
let ink=ink - (32*(ink>32))
let ink=ink - (16*(ink>16))
let ink=ink - (8*(ink>8))
let paper=INT(p/8)
let paper=paper - (128*(paper>128))
let paper=paper - (64*(paper>64))
let bright=INT(p/64)
letbright=bright - (128*(bright>128))
let flash=INT(p/128)
Но конечно это медленный способ, массив быстрей будет, а самое быстрое - таблички.
Можно и асм-подпрограммку замутить подключив её к DEF FN.
Вот как тут описано: http://zxpress.ru/book_articles.php?id=1539
Последний раз редактировалось Destr; 23.09.2011 в 21:15.
Но тогда уж и PEEK вместо ATTR
Сферический ламер в вакууме
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)