|index|blooddrag|

ГОРЯЩАЯ ПЕНТАГРАММА - 121 БАЙТ КОДА

.286
pent         segment
assume  cs:pent, ds:pent
org     100h
start:
   ; Переход в графический режим
        mov     al,13h
        int     10h      

; ES = DS = A000 (видеопамять VGA)
        push    0A000h
        pop     es
        push    es
        pop     ds

        lodsb                ; обнуление AL
        mov     dx,3C8h      ; 3C8/3C9 - палитра VGA
        out     dx,al        ; Цвет N0 = ...
        inc     dx
        mov     cl,40h

SetPalette:
        out     dx, al       ; компонента RED
        inc     ax 
                             ; градиент от черного к красному
        outsb                ; в порт 3C9 помещается ноль
        outsb                ;(компоненты GREEN и BLUE)
        loop    SetPalette

DrawStar:
        mov     ax,3F3Fh     ; Первоначальный цвет (красный!)
        mov     bx, 140h
        mov     di, 540h
        push    di           ; push адрес угла (примочки для сокращения размера)
        mov     cl,78h
Line1:                      ; Рисование первой линии звезды
        stosw               ; поместим ax в es:[di]
        add     di,bx
        loop    Line1       ; Рисуем...
        pop     di          ; pop адрес угла
        mov     cl, 60h
Line2:                        ; 2-я линия
        mov     [bx+di],al
        stosb
        add     di,bx
        add     di,bx
        loop    Line2

        mov     cl,61h   
Line3:                        ; 3-я линия
        mov     [bx+di],al
        stosb                           
        sub     di,bx
        sub     di,bx
        loop    Line3

        mov     di, 99D1h
        push    di
        mov     cl,78h                  
Line4:                        ; 4-я линия
        stosw  
        sub     di,bx
        loop    Line4

        pop     di
        mov     cl,8Fh
Line5:   
        rep  stosw            ; Последняя линия (горизонтальная)

Burn:                         ; Рисование "огонька" на основе        
                              ; центрального пиксела
                              ; SI = адрес точки
        cmp     si, 0FA00h    ; Если не конец видеопамяти
        jae     short Done
        lodsb
        or      al,al         ; и байт ds:[si] не равен 0
        jz      short Done    ; то....
        dec     ax
        mov     [si-2],al 
                              ; Цвет окружающих пикселов
        mov     [si],al       ; вычисляются из цвета
        mov     [bx+si-1],al  ; центрального минус 
                              ; один.
        mov     ds:0FEBFh[si],al
Done:
        add     si,dx         ; dx = какой-то хуйне, это типа
        inc     dx            ; подобие RANDOM
        jnz     Burn  
                        ; Переход к следующему огоньку
                        ;(если не дошли до конца)
        in      al,60h       ; Сканирование нажатой клавиши
        cmp     al,1         ; код равен единице?
        jne     DrawStar
                        ; Нет? Jump в начало.                
        mov     ax,3
        int     10h  
                        ; Возврат в текстовый режим
        retn                ; Выход
pent    ends
end     start

; Dizassembling, comments, 
; compilation by Jarod

; Author unknowed

|index|up|

ЗАМЕДЛЕННЫЙ ВЫВОД ТЕКСТА НА ЭКРАН

seg_a segment byte public
assume	cs:seg_a, ds:seg_a
org	100h
bloodrag	proc	far
start:	call	sub_1
                int 20h
bloodrag	endp
int 20h
sub_1	proc	near
;begin demo
;	push	cs
;	pop	ds
	mov	ax,3
	int	10h	; 

	mov	ah,2
	mov	dh,0Ah
	mov	dl,0Ah
	xor	bx,bx
	int	10h	; 
loc_4:	mov	ah,2Ch
	int	21h	
	;ices  ah=function 2Ch
;  get time, cx=hrs/min, dx=sec
	cmp	dl,0Ah
                jb	loc_4	

	mov	ch,dl
	xor	cl,cl	
locloop_5:
	call	sub_2
	loop	locloop_5	
	mov	ah,0Eh
               mov al,byte ptr data_5[bx]
; ('THE WORLD WiLL NEVER FOR')
	cmp	al,0
	je	loc_7	
	push	bx
	mov	bx,0
               int           10h	
 ;  write char al, teletype mode
	pop	bx
	inc	bx
	jmp	short loc_4

;Яternal Entry into Subroutine Яsub_2:
	push	cx
	mov	cx,1Fh
locloop_6:
	loop	locloop_6	
	pop	cx
	retn
loc_7:
	ret
;hlt		; Halt processor
sub_1		endp
data_5		db	'THE 
WORLD WiLL NEVER FORGETT US!'

db	' -BetaBoys-', 0
int 20h
seg_a		ends
	end	start

|index|up|