fhofr by b-state
; fhofr - 106b\128b trash-intro for cc2oi5 by wbc \\ b-state 2q.o8.7df
; yeah, compofiller - wait for more c00ler intros on function'15! ;)
; greets to everyone
slow equ 0 ; change for 1 for slower version
; (if former flies out on your machine)
; i.e on my p200mmx fast version works on 70fps
; and slow is really sloooooooooooooweeeeeeeeeeeeeerrrrr... %)
format binary
org 100h
start:
cld
mov bh, 0A0h
mov es, bx
mov bh, 80h
mov ds, bx ;buffer1
if slow = 0
mov bh, 70h
mov fs, bx ;buffer2
end if
mov al, 13h
int 10h
mov dx, 3C8h
xor ax, ax
out dx, al
inc dl
mov cx, 256
xor bx, bx
@palloop:
mov al, bl
shr al, 2
out dx, al
out dx, al
out dx, al
inc bl
loop @palloop
;assume BX = 0, CX = 0 (coincidence? i don't think so ;)
xor ax, ax
@clrloop:
mov byte [ds:bx], al
if slow
mov byte [es:bx], al
else
mov byte [fs:bx], al
end if
inc bx
loop @clrloop
xor bp, bp
mainloop:
mov dl, 0DAh
retr2:
in al, dx
and al, 8
jnz retr2
retr1:
in al, dx
and al, 8
jz retr1
if slow = 0
xor di, di
mov cx, 16000
@fliploop:
mov eax, dword [fs:di]
stosd
loop @fliploop
end if
mov ax, bp
mov di, 32160
mov byte [ds:di], al
mov di, 320
mov cx, 64000 - 320*2
@pixloop:
mov al, [ds:di]
xor al, [ds:di-320]
xor al, [ds:di+320]
xor al, [ds:di-1]
xor al, [ds:di+1]
if slow
stosb
else
mov [fs:di], al
inc di
end if
loop @pixloop
if slow
push es
else
push fs
end if
push ds
if slow
pop es
else
pop fs
end if
pop ds
inc bp
mov ah, 1
int 16h
jz mainloop
ret
; phew ;)
[ back to the prod ]
