в общем, намек дан, если горит сокращать, то думай. для 128 наверняка значение не 0 в ячейке. по идее можно как-то выкрутиться.
в самой игре тоже есть чего сократить.
там после старта создаётся пара таблиц, проверяется наличие кемпстон джойстика,
а потом чистится буфер (в котором что-то есть),
вот это что-то можно смело занулить
Это слишком сложно ) Смысл сокращать имеет тогда, когда ты понимаешь чего и почему ты сокращаешь.
- - - Добавлено - - -
А есть какая-нибудь пусть и не оптимальная, но зато наглядная и простая для понимания процедура зануления произвольной области памяти?
Куплю корпус и материнку от Spectrum +2/+3
ld hl,xxxx
ld de,xxxx+1
ld bc,yyyy-1
ld (hl),0
ldir
........................
ld hl,xxxx
ld bc,yyyy
l ld (hl),0
inc hl
dec bc
ld a,b
or c
jr nz,l
;8 bytes
ld h,$80 ; l не важно
xor a
zm:
ld (hl),a
inc hl
cp h
jr nz,zm
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Если всё сводится к экономии места на диске (в секторах), то есть несколько способов добавочной экономии:
1) данные (например лоадер или его часть можно хранить в неиспользeемой области. Поясню. К примеру, длина кодового блока 30000 байтов, в секторах это займёт 118 секторов, по факту в последнем секторе не будут использоваться (118*256)-30000=208 байт.
2) лоадер ((или его часть) можно хранить в неиспользуемой области экранной заставки, спрятав под атрибутами - но это не всегда возможно.
это всё имеет смысл, если басик файл с кодом в REM строке занимает более 1 сектора (>256 байтов).
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)