(no subject)

Apr 10, 2007 11:51


[org  100h]
[segment  .text]
SCREEN      equ                  160
PIXBUF      equ                  204h
                  mov                  al,13h
                  int                  10h
                  push                word  0A000h
                  pop                  es
                  mov                  ax,cs
                  add                  ah,10h
                  mov                  fs,ax
                  xor                  cx,cx
PAL1          mov                  dx,3C8h
                  mov                  ax,cx
                  out                  dx,al
                  inc                  dx
                  sar                  al,1
                  js                    PAL2
                  out                  dx,al
                  mul                  al
                  shr                  ax,6
                  out                  dx,al
PAL2          mov                  al,0
                  out                  dx,al
                  jns                  PAL3
                  sub                  al,cl
                  shr                  al,1
                  out                  dx,al
                  shr                  al,1
                  out                  dx,al
PAL3          mov                  bx,cx
                  mov                  [fs:bx],bl
                  loop                PAL1
TEX            mov                  bx,cx
                  add                  ax,cx
                  rol                  ax,cl
                  mov                  dh,al
                  sar                  dh,5
                  adc                  dl,dh
                  adc                  dl,[fs:bx+255]
                  shr                  dl,1
                  mov                  [fs:bx],dl
                  not                  bh
                  mov                  [fs:bx],dl
                  loop                  TEX
                  fninit
                  fldz
MAIN          add                  bh,8
                  mov                  di,PIXBUF
                  fadd                dword  [byte  di-PIXBUF+TEXUV-4]
                  push                di
                  mov                  dx,-80
TUBEY        mov                  bp,-160
TUBEX        mov                  si,TEXUV
                  fild                word  [byte  si-TEXUV+EYE]
                  mov                  [si],bp
                  fild                word  [si]
                  mov                  [si],dx
                  fild                word  [si]
                  mov                  cl,2
ROTATE      fld                  st3
                  fsincos
                  fld                  st2
                  fmul                st0,st1
                  fld                  st4
                  fmul                st0,st3
                  fsubp              st1,st0
                  fxch                st0,st3
                  fmulp              st2,st0
                  fmulp              st3,st0
                  faddp              st2,st0
                  fxch                st0,st2
                  loop                ROTATE
                  fld                  st1
                  fmul                st0,st0
                  fld                  st1
                  fmul                st0,st0
                  faddp              st1,st0
                  fsqrt
                  fdivp              st3,st0
                  fpatan
                  fimul              word  [si-4]
                  fistp              word  [si]
                  fimul              word  [si-4]
                  fistp              word  [si+1]
                  mov                  si,[si]
                  lea                  ax,[bx+si]
                  add                  al,ah
                  and                  al,64
                  mov                  al,-5
                  jz                    STORE
                  shl                  si,2
                  lea                  ax,[bx+si]
                  sub                  al,ah
                  mov                  al,-16
                  jns                  STORE
                  shl                  si,1
                  mov                  al,-48
STORE        add                  al,[fs:bx+si]
                  add                  [di],al
                  inc                  di
                  inc                  bp
                  cmp                  bp,160
EYE            equ                  $-2
                  jnz                  TUBEX
                  inc                  dx
                  cmp                  dx,byte  80
                  jnz                  TUBEY
                  pop                  si
                  mov                  di,(100-SCREEN/2)*320
                  mov                  ch,(SCREEN/2)*320/256
                  rep                  movsw
                  mov                  ch,SCREEN*320/256
BLUR          dec                  si
                  sar                  byte  [si],2
                  loop                BLUR
                  in                    al,60h
                  cbw
                  dec                  ax
                  jnz                  near  MAIN
                  mov                  al,03h
                  int                  10h
                  db                    41,0,0C3h,3Ch
TEXUV        db                    "baze"
Previous post
Up