Страница 1 из 1

Програмирование на БК

Добавлено: 15 май 2009, 22:45
denison
Знатоки Языков программирования на БК, милости просим.

Re: Програмирование на БК

Добавлено: 18 сен 2009, 02:45
ZonoID
Знаю ассемблер, бейсик, фокал.

Что будем обсуждать?

Re: Програмирование на БК

Добавлено: 10 июл 2010, 03:55
Leonid
Знаю ассемблер, бейсик, фокал.

Что будем обсуждать?
я ТУТ ПЫТАЮСЬ СДЕЛАТЬ СКРОЛЛИНГ вниз ОПРЕДЕЛЁННОЙ ЧАСТИ ЭКРАНА БК ЧЕРЕЗ PEEK(&177664) И POKE(&177664,X) ЭКРАН СДВИГАЕТСЯ И ЗДВИГАЕТ НАЧАЛО КООРДИНАТ ВСЕХ ТОЧЕК.А КАК ЗДЕЛАТЬ ЧТОБЫ СДВИНУТЬ ИЗОБРАЖЕНИЕ НА 2 ТОЧКИ А ЗАТЕМ СВЕРХУ ПРИРИСОВАТЬ ЕЩЁ?(ВЕДЬ КООРДИНАТЫ СМЕСТИЛИСЬ ВМЕСТЕ С ИЗОБРАЖЕНИЕМ КАК БЫТЬ ТУТ), ПОТОМ СНИЗУ ВЕДЬ ЕЩЁ СТЕРЕТЬ ЛИШНЕЕ СДВИНУТОЕ НУЖНО?Подскажите как сделать скроллинг определённой части экрана только. Заранее Благодарю.Леонид

Re: Програмирование на БК

Добавлено: 17 сен 2010, 21:57
FCAL
я ТУТ ПЫТАЮСЬ СДЕЛАТЬ СКРОЛЛИНГ вниз ОПРЕДЕЛЁННОЙ ЧАСТИ ЭКРАНА БК ЧЕРЕЗ PEEK(&177664) И POKE(&177664,X) ЭКРАН СДВИГАЕТСЯ И ЗДВИГАЕТ НАЧАЛО КООРДИНАТ ВСЕХ ТОЧЕК.А КАК ЗДЕЛАТЬ ЧТОБЫ СДВИНУТЬ ИЗОБРАЖЕНИЕ НА 2 ТОЧКИ А ЗАТЕМ СВЕРХУ ПРИРИСОВАТЬ ЕЩЁ?(ВЕДЬ КООРДИНАТЫ СМЕСТИЛИСЬ ВМЕСТЕ С ИЗОБРАЖЕНИЕМ КАК БЫТЬ ТУТ), ПОТОМ СНИЗУ ВЕДЬ ЕЩЁ СТЕРЕТЬ ЛИШНЕЕ СДВИНУТОЕ НУЖНО?Подскажите как сделать скроллинг определённой части экрана только. Заранее Благодарю.Леонид
На бейсике так (компилятора нет, пишу как помню)
FOR Y=1 TO 0 STEP-1
FOR X=1 TO 4
A%=PEEK(&O40000 + PX+X + (PY+Y)*64)
POKE(&O40000 + PX+X + (PY+y)*64 +64? A%)
NEXT X
NEXT Y
PX, PY - координаты точки
&O40000 - начальный адрес экранной области

Цикл читает байт из экранной памяти и пишет его на строку ниже. Будет перенесено 2 строки по 4 байта.
Вычислени PX + PY*64 переводит координаты точки в адрес этой точки. В одном байте отображается 8 точек для режима 512 и 4 точки для режима 256.
Писать это надо на ассемблере, оформлять через DEF USR= и далее вызывать как функцию, передавая в нее адрес начала смещения - и все будет ОК.