Ну варианты навскидку:
1. Постоянно юзать LIST 10 + ENTER
2. Расположить маш.код не после REM, а где-нибудь в другом месте (скорректировав стек и т.п.)
3. Подправить код - чернеет всё после кода #16 (#5D7B) (упр.код AT и дальше комп понимает что идут коррдинаты, а они обе #29, вот и перемещается позиция печати за экран и выдаётся код ошибки), т.е. можно скорректировать прогу так, чтоб этой цифры не было.
Там (#5D7A) команду LD H,#16 - заменить на:
LD H,#17
DEC H
Ну или вроде того...
Может быть шустрее было-бы сделать по другому.
1. Требуемый параметр всегда задаём в одной и той-же переменной (ну к примеру attr) и там указываем что нужно. 0=инк, 1=папер, 2=бордер, 3=брайт, 4= флэш (хотя нафик он нужен по сути-то, но...)
2. Бэйсик-прога при запуске выясняет значения PROG и адрес переменных attr,x,y и подставляет в соответсвующее место кода.
3. После этого всего (назовём это инициализацией) можно делать так:
LET attr=0:LET x=10:LET y=20 (хотим узнать инк по коорд 10,20)
LET attr=USR адрес кода (в котором уже есть адреса всех нужных переменных (они появились там после инициализации) и который тупо берет эти значения и выяснив что нужно от него в данный момент, возвращает значение атрибута в регистровой паре BC, которую интерпритатор бэйсика уже сам запихает в attr).
Сдаётся мне что это будет быстрей, но могу ошибатся, надо проверять, сравнивать с предыдущими вариантами. Бог в помощь!
P.S. А вообще пора уже писать компилируемый вариант бейсика ("сам-знаеш-кто" не надо кричать "Я ведь тебе говорил!". Помню. Может быть и займусь.)
P.S.S AndTorp (или женя999, кому там надо) зачем это выяснение атрибутов вообще нужно?
Опиши для чего тебе эти числа, может быть как-то проще можно решить?





Ответить с цитированием