Amorph 256b, TIC-80. Простое интро, которое подзависло в очереди, видимо в последний момент добавили работу в список. Часть кода - нереализованная хотелка пользователей выдуманной приставки. По идее, код можно сократить и улучшить интро, добавив звук. Но по некоторой причине я отказался от затеи.
Eightro 8b, ZX. Очередная реализация простого кода inc hl
ld a,h
xor l
or c
ld h,a
inc (hl)
jr start
ld a,h
xor l
or c
ld h,a
inc (hl)
jr start
Нет, не простой код, в этот раз адрес HL привязан к диапазону адресов.
CharXor 32b, ZX. Самая сложная работа, которая каким-то образом была сокращена от 40б до 32б, на оптимизацию ушло три дня.Особенно интересной частью вышло: rlc a
rlc a
rlc a
на
add a,a
adc a,a
adc a,a
adc a,a
вместо 6 байт получается 4б.
Demoscener DNA decode 16b, ZX. Мне не хотелось ограничить код маленькой интро к попукиванию бипером/мерцанию рамкой, поэтому эксперимент с кодом вывел на этот эффект, который напоминает столбики ДНК из лаборатории(видел в зомбоящике). Отсюда и название.prbyte 7b, Apple II. Последняя работа, которая была написана вечерком на эмуляторе. Идеей было использование процедуры печати, сначала я отказался от печати символа CHOUT и попробовал вариант PRBYTE
*=$6000
!to "pr#0x6000.bin", plain ; set output file and format
!cpu 6502 ; set processor type
mm sbc $24
jsr $FDDA
bne mm
FDDA и есть адрес PRBYTE. Ячейка $24 хранит значения горизонтальных координат - найдено при чтении дизассемблера ROM.
Переход BNE, который даст 2 байта против JMP (3 байта) окажется непонятным. Я посмотрел в отладчике значения регистров A и Y. При вызове PRBYTE сохраняется регистр Y и при завершении печати восстанавливается. Отсюда Y<>0 при вызове кода и процедуры даст условный переход.
ZagZag 256b, ZX. Идея написать маленькую игру пришла в голову не сразу. Когда я просматривал все выпуски журнала Fred, то увидел простую игрушку и на следующий день написал код, обвесив всяким примочками: бипер, печать жизней.Просто, как ситцевые трусы.
Все работы на сайте, как обычно.
Комментарии
Отправить комментарий