Маленькие хитрости-2 - Как перекинуть целый экран в один INT.

Echo #03
┌════════════════════════════════════════┐
│░░░░░░░░░ Маленькие хитрости-2 ░░░░░░░░░│
└════════════════════════════════════════┘

   VfNG/NEW

   Сейчас  я поведаю вам способ, как пере-
кинуть целый экран в 1 INT. Надо оговорит-
ся:  во-первых,  этот фокус пройдет только
на  машинах с нераздельными полями памяти,
а  во-вторых,  речь  пойдет не о перекидке
абсолютно  произвольного  участка памяти в
любой  момент времени, а о перекидке пред-
варительно   раскрученного  фиксированного
участка размером в 6144 байт.

   Итак,  существует  только  один способ,
позволяющий  сотворить такое чудо. 6144/2*
(LD HL,N: PUSH HL)  занимает 3072*(10+11)=
64512  тактов,  т.е. позволяет уложиться и
еще немного времени остается.

   У  кого  что-то в чайнике есть, тот уже
должен  уловить идею. Теперь приведу 'рас-
кручиватель'.

   PROC-где формировать процедуру
   SCREEN-адрес картинки в памяти

        LD      HL,PROC
        LD      DE,SCREEN+6142
        LD      BC,6144
L1      LD      (HL),#21        ;LD HL,
        INC     HL
        EX      DE,HL
        LDI
        LDI
        EX      DE,HL
        LD      (HL),#E5        ;PUSH HL
        INC     HL
        DEC     DE
        DEC     DE
        DEC     DE
        DEC     DE
        JP      PE,L1

   Ну,  и естественно, перед входом в PROC
стоит дать LD SP,#5800 или куда там...