В общем дело такое. Не до жиру - быть бы живым. Решил сделать по минимуму. Без всяких читов. Намедни как раз Слайдер дал мне процедуру пропуска секторов, чтобы можно было выбрать, какую часть грузить.
Структура планируется простейшая: блок с картинками и 3 блока кодов (1,2 и демо), ну и загрузчик на бейсике, который запускает кодовые процедуры, опрашивает клавиатуру и, в зависимости от INKEY$, покесами меняет количество загружаемых секторов (в процедуру загрузки), и в процедуру пропуска секторов подставляет нужное количество секторов.
Начал я тестить. Блок картинок грузится, все работает. Сразу за ним блок 1 части, тоже грузится. Попробовал процедуру пропуска секторов - 2 часть тоже грузится. Я воодушевился и стал делать финальный бейсик - загрузчик. В итоге только первую часть запустить можно))) Хотя до этого пробовал сырой вариант, там и вторая запускалась, глянул тот сырой вариант, там вторая грузится, а уже демо - нифига.
Короче сделать монолоадер который грузит 1-2 блока - получается. Больше - хрен. Ради любопытства пробовал делать пропуск секторов с помощью изменения POKE значений 23796/797, дык при попытке загрузки начинаются сплошные ошибки Disk error Return Abort Ignore - от этого я вообще офигел
Куплю корпус и материнку от Spectrum +2/+3
А ТС не хочет сделать все на асме, не используя бейсик? Или желание сделать релиз любым способом сильнее желания познать всю силу асма?
Когда на твой вопрос отвечает философ, перестаешь понимать вопрос
да.
И всё ведь почти работает. В аттаче пример, который должен был работать, но в итоге работает еще хуже какой-то промежуточной версии, запускает только 1-ую часть. (С адреса 23872 - лоадер длинной 18 байт. С адреса 23890 - "пропускальщик секторов" длинной 21 байт. Со clear игрался как угодно, куда и как я её только не вставлял, дело не в clear.)
Куплю корпус и материнку от Spectrum +2/+3
вместо 0 используй логическую конструкцию NOT PI.
картинки сжимай пакерами предназначенными для них
(они частенько оптимальней hrust`a)
и у тебя ошибка в пропускальщике
Последний раз редактировалось goodboy; 02.01.2015 в 21:20.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
По моему дело не в том, что бейсик длинный, а в чем-то другом. А что касаемо длины, то никакие not pi и никакие bin не сравнятся с обычной переменной. Например border n. А потом в командной строке let n=0. not pi нервно курит в сторонке. А когда речь заходит о пятизначных числах, то выигрыш еще более очевиден. val "" курит. Правда clear и run обнуляет всё это дело, это надо учитывать. Но я пробовал и так и сяк, куда только не ставил clear, значит дело не в ней.
А какая ошибка в пропускальщике? Слайдер мне дал такой код пропускальщика:
эту процедуру я и использовал. Только в конце у меня не ret, а jp 23872. Ну чтобы когда пропускальщик отработал, запускался лоадер и грузил то что надо. По умолчанию у меня пропускальщик пропускает 104 сектора, это значение меняется poke, если надо грузить не вторую часть, а демо. И у меня сначала вроде даже работало, т.е. пропускальщик действительно пропускает 104 сектора. Но когда надо пропустить 202 сектора, то нихрена уже не работает. А более поздняя моя сборка даже 104 не хочет пропускать.ld b,кол-во секторов
call процедура
процедура:
ld de,(23796)
m1 inc e
ld a,e
cp 16
jr c,m2
inc d
ld e,0
m2 djnz m1
ld (23796),de
ret
Сам же лоадер, который сидит в 23872 такой:
DI
LD BC,#3505
LD DE,(23796)
LD HL,32768
CALL 15635
EI
JP 32768
Куплю корпус и материнку от Spectrum +2/+3
Наворотил ты делов. Почему 104 и 202?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)