Вопрос по коду из гайда и комментарию к нему:
Код:
ld hl,15616 ; ROM font.
ld de,60000 ; address of our font.
ld bc,768 ; 96 chars * 8 rows to alter.
font1 ld a,(hl) ; get bitmap.
rlca ; rotate it left.
or (hl) ; combine 2 images.
ld (de),a ; write to new font.
inc hl ; next byte of old.
inc de ; next byte of new.
dec bc ; decrement counter.
ld a,b ; high byte.
or c ; combine with low byte.
jr nz,font1 ; repeat until bc=zero.
ld hl,60000-256 ; font minus 32*8.
ld (23606),hl ; point to new font.
ret
Сам я не понял для чего конкретно нужен этот код (подозреваю, что-то связано с переносом при декременте). Перевел пока вот так:
Код:
ld hl,15616 ; загружаем адрес ROM-шрифта.
ld de,60000 ; адрес нашего нового шрифта.
ld bc,768 ; 96 символов * 8 строк для изменения.
font1 ld a,(hl) ; получаем изображение символа.
rlca ; сдвиг влево.
or (hl) ; совмещаем два изображения.
ld (de),a ; записываем в новый шрифт.
inc hl ; следующий байт старого шрифта.
inc de ; следующий байт нового шрифта.
dec bc ; уменьшаем счетчик.
ld a,b ; старшую часть байта.
or c ; объединяем с младшей.
jr nz,font1 ; повторяем пока bc не будет=0.
ld hl,60000-256 ; адрес шрифта минус 32*8.
ld (23606),hl ; указываем на новый шрифт.
ret
Поясните и поправьте, если надо, пожалуйста.