logo
ZX-Review-1992-01-12

Скроллинг экрана.

Когда Вы пытаетесь напечатать что либо за последней возможной позицией печати, то вместо результата получаете сообщение "scroll?" в нижней части экрана и компьютер ждет от Вас нажатие клавиши. Если это клавиша "N" или "BREAK", печать на экране прекращается с сообщением об остановке, в противном случае печать продолжается. Экран вроде бы заполнен, но печать возможна, происходит скроллинг вверх. Этот скроллинг происходит автоматически и длится до тех пор, пока вся информация, присутствовавшая на экране, когда выходило сообщение "scroll?", не скроется из виду за верхней кромкой экрана.

Такой вид скроллинга называется автоматическим и он существует на "Спектруме" как в БЕЙСИКе, так и в машинном коде.

Но возможен также и "ручной" скроллинг. Вызов процедуры CL_SC_ALL (0DFEH = 3582) "прокрутит" весь экран, но при этом возникнут несколько неожиданные эффекты:

во первых, позиция печати не изменится и останется там же, где была. С этим Вам придется разбираться вручную.

во вторых, если первая строка нижней части экрана (системного окна) не пуста или имеет цвет, отличный от цвета основного экрана, то результат может быть не совсем тем, какой Вы ожидаете.

Другой способ исполнения "ручного" скроллинга еще интереснее. Он базируется на использовании процедуры CL_SCROLL (0E00H 3584). С ее помощью можно "прокручивать" только часть экрана. Предварительно в регистр B надо занести количество строк, подлежащих скроллингу (обратите внимание на то, что изменено будет на одну строку