зачем так мучатсо?
и мучать других
эти цифры не читаемые (кроме 6144)
пишЫ покомпутерному же :)
ld hl,$D800+$1800+96+64
и сразу выражением а не магическим числом
будет висеть незаметная очепятка
и ты хрен найдешь почему все не работает
ну и щас на вид сумма и выражение в коментах не совпадают...
в придачу на таком например прекрасно видно
$4000
$4100
$4200
что инкрементитсо только H
и этим можно и нужно пользоватсо
а на последовательности
16384
16640
16896
ничего не видно...
ну или
FFFF 65535
FEFE 65278
FDFD 65021
FCFC 64764
этож реально удобней :v2_dizzy_vodka:
шестнадцатеричные цифры не просто так изобретены
- - - Добавлено - - -
щас глянем
- - - Добавлено - - -
с ходу у тебя страшная ошибка
ld a,(_CLRCOL) читается 320 раз
что 2240 тактов
а можно было положить
ld a,(_CLRCOL)
ld e,a
а потом
ld (hl),e
сейчас твой вариант 16655 тактов
первое что приходит в голову заюзать ldir
это уже 6744 тактаКод:LD HL,63648; 55296+6144+96+64 начало атрибутной области виртуалки
LD BC,320-1
ld de,63648+1
ld a,(_CLRCOL)
ld (hl),a
ldir ;6744
второе что приходит заюзать ldi
опять же предположим что у тебя есть процедура ldi_32
если вставить ее вместо call
то зачищать будет еще быстрее (за 5295 тактов)
это 5565 тактаКод:ld hl,63648
ld de,63648+1
ld bc,320+$A00
ld a,(_CLRCOL)
ld (hl),a
loop
; ldir
call ldi_32
djnz loop ;5565
jp $
ldi_32 dup 32
ldi
edup
ret
АХТУНХ ЭТА ПРОЦЕДУРА ЗАТИРАЕТ НА 1 БАЙТ БОЛЬШЕ ЧЕМ НУЖНО !!!!!
тк может затерать только кратное 32-м + 1 количество
если это критично и нужно затереть ровно 320
то сделай на 1 цикл меньше
а остальные 31 байта затри обычным ldir-ом
ну и для сравнения
если включить режим гулять так гулять
1791 тактКод:ld sp,63648+320
ld a,(_CLRCOL)
ld h,a
ld l,a
dup 320/2
push hl
edup
- - - Добавлено - - -
ну и вариант по проще
на 3695 тактовКод:
ld hl,63648
ld b,320/32
ld a,(_CLRCOL)
loop2
dup 31
ld (hl),a
inc l
edup
ld (hl),a
inc hl
djnz loop2 ;3695
что примечательно
его можно уменьшить по объему в 2...3 раза
а подобная скорость должна будет оставаться
вот смотри
уменьшает в 2 раза
в итоге 3845 такта против 3695 того что при 32 dup-ахКод:ld hl,63648
ld b,320/16
ld a,(_CLRCOL)
loop3
dup 15
ld (hl),a
inc l
edup
ld (hl),a
inc hl
djnz loop3 ;3845
[свернуть]

