▄▄                   ▄
▀▀▀ STEALTH GROUP WW █ Mail:   BOX 15, 125080 MOSCOW   ████████ █████████ █▀▀█
▀██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ █ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀▀▀▀▐▀▀▀   ┌─┐┬ ┬┌─┤┬ ┬ ╥ ┬┐┌ █▄▄█
 ▐█ █▀▄ █▀▀ ▄▀▀ ▄▀▀ ▄█▄ ▄▀▀ █▀█   ▌ █ ▄▀█ █ ▄▀▀ █▄▄    ├┬┘│ │└─┐├─┤   │└┤ ▄  █
  █ █ █ █▀  █▀  █    █  █▀  █ █   █ █ █ █ █ █   █      ┴└─└─┘└─┘┴ ┴   ┴ ┴ ▀▀▀▀
  █ ▐ ▐ ▐   ▐▄▄ ▐▄▄  ▐  ▐▄▄ ▐▄▀    ▀█ ▀▄█ ▐ ▐▄▄ ▐▄▄▄   ████  WINTER ' 96  ████
  ▐ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄   ███████████████████████

; Вариация на тему 25-го кадра.
; Всем уже давно надоела тема про 25-й кадр, который невидим глазу, но
; запечатлевается в подсознании. Wadimka попробовал реализовать нечто подобное 
; на компьютере, где вместо 25-го кадра (какая разница - главное, чтобы картин-
; ка выводилась с определенной частотой и была не видна глазу. 
; Что из этого получилось, вы узнаете, откомпилировав и запустив эту программу.
; Скажем, результат малоутешительный. Но исследования можно продолжать - 
; проблема в том, что картинка все-таки видна глазу, а это совсем не то.
; Программа выводит текст прямо в видеобуфер, но, увы, требуемой скорости не
; достигается.
; Ждите дальнейших исследований.


TEXT segment word public 'CODE'
assume cs:TEXT,ds:TEXT,es:TEXT,SS:TEXT
org 100h
BEGIN:
 JMP SHORT INSTALL
LINES:
 PUSH AX
 DEC CS:PER
 MOV AX,CS:PER
 CMP AX,0000H
 JE POKAZ
VOZ:
 POP AX
 IRET
POKAZ:
 MOV AX,25
 MOV CS:PER,AX
POKAZ2:
 PUSH DX
 PUSH BX
 PUSH CX
 MOV CX,2
MET:
 MOV DX,3DAH
 IN AL,DX
 TEST AL,00001000B
 JZ MET
 MOV DX,3D4H
 MOV AL,0CH
 OUT DX,AL
 MOV BX,OFFSET PER2
 XOR BYTE PTR CS:[BX],8H
 MOV AL,CS:[BX]
 INC DX
 OUT DX,AL
; DEC DX
; MOV AL,0DH
; OUT DX,AL
; INC DX
; MOV AL,0
; OUT DX,AL

 MOV DX,3DAH
MET2:
 IN AL,DX
 TEST AL,00001000B
 JNZ MET2
 LOOP MET
 POP CX
 POP BX
 POP DX
 JMP VOZ
PEREZ:
 DB 0EAH
 DW 0FFF0H
 DW 0F000H
PER DW 25
PER2 DB 0H
MEM DD 0B8001000H
DB 0
LEN EQU $-BEGIN

INSTALL:
 LES DI,MEM
 MOV CX,1600
 MOV AL,'*'
 MOV AH,12H
 REP STOSW
 MOV CX,19
 PUSH CX
 MOV BX,0
 MOV DI,1050H
 MOV AL,'W'
 MOV AH,40H
 MOV SI,DI
CICLE:
 MOV ES:[DI+BX],AX
 SUB SI,BX
 MOV ES:[SI],AX
 ADD DI,160
 INC BX
 INC BX
 MOV SI,DI
 LOOP CICLE
 POP CX
 INC CX
CICLE2:
 MOV ES:[DI+BX],AX
 SUB SI,BX
 MOV ES:[SI],AX
 SUB DI,160
 INC BX
 INC BX
 MOV SI,DI
 LOOP CICLE2
 PUSH CS
 POP  ES
 MOV AX,351CH
 INT 21H
 MOV SI,OFFSET PEREZ
 MOV [SI+3],ES
 MOV [SI+1],BX
 MOV AX,251CH
 MOV DX,OFFSET LINES
 INT 21H
 MOV DX,WORD PTR LEN
 ADD DX,100H
 INT 27H
TEXT ENDS
END BEGIN