вот неугомонный:)
Вид для печати
вот неугомонный:)
Предлагаю г-ну Колотову использовать это в грядущих демах :) Или 4k :)
што, опять атрибутами?оО
Другая задачка: рисуем букву атрибутами (8х8 знакомест) :)
Никаких PUSH POP !!! :)
Вариант 2 (изменяемый цвет фона):Код:; ATTR symbol print by Dr.Bars (29 bytes)
; HL = ATTR_ADR (#5800)
; A = Letter_code
; E = Color_code (#57)
ATTR_SYM:
EXX
ADD A,A
LD L,A
LD H,#0F
ADD HL,HL
ADD HL,HL
LD B,#08
L2 LD A,(HL)
EXX
LD BC,#0818
L1 RLA
LD D,A
SBC A,A
AND E
LD (HL),A
LD A,D
INC L
DJNZ L1
ADD HL,BC
EXX
INC L
DJNZ L2
RET
Юзается push/pop :(
Код:PRINT:
LD HL,#5800
LD A,#7F
LD D,#57-#07
LD E,#07
; ATTR symbol print by Dr.Bars (30 bytes)
; HL = ATTR_ADR (#5800)
; A = Letter_code
; D = Color_code - Background_code
; E = Background_code
ATTR_SYM:
ADD A,A
EXX
LD L,A
LD H,#0F
ADD HL,HL
ADD HL,HL
LD B,#08
L2 LD A,(HL)
EXX
LD BC,#0818
L1 RLA
PUSH AF
SBC A,A
AND D
ADD A,E
LD (HL),A
POP AF
INC L
DJNZ L1
ADD HL,BC
EXX
INC L
DJNZ L2
RET
---------- Post added at 00:25 ---------- Previous post was at 00:16 ----------
P.S моя процедурка вывода спрайта никому не интересна?
Она ведь чуть медленее табличного варианта по скорости.
В голове прокрутил - да.
Испробовать пока-что не с руки.
Да и ревюшники хоть и пыжились (мол мы тут все тру), но бывало что и ушами хлопали всякий бред печатая без проверки.
А уж что рассылали (причём за деньги) - про то вообще отдельная песня.
Сколько жалоб в прессе на их "дистрибутивы".
Хотя конечно понять можно: тогда это дело только зарождалось, конечно в те времена только методом проб и ошибок...
Ещё в дополнение рисования буквы атрибутами на весь экран, мой пример:
Он не самый короткий, но показывает насколько ассебмлер многогранен :)
Код:; fullscreen (32x24) letter print by Dr.Bars
; A = symbol code - 1
ADD A,A
SBC HL,HL
ADD HL,SP
LD SP,#5B00
EXX
LD L,A
LD H,#0F
ADD HL,HL
ADD HL,HL
EX DE,HL
LD C,#08
L2 DEC DE
LD A,(DE)
LD B,#18
L1 RRCA
SBC HL,HL
PUSH HL
PUSH HL
DJNZ L1
DEC C
JR NZ,L2
EXX
LD SP,HL
RET
А если хранить текст не кодами символов, а уже адресами литер - то можно и ещё сэкономить.
"Но, господа, это уже не физика!" (Это цитата. В данном случае она означает что экономия байтов уже начинает перетекать в абстрактную задачу. Хотя в частных случаях возможно это и пригодится.)