home *** CD-ROM | disk | FTP | other *** search
/ Groovy Bytes: Behind the Moon / groovybytes.iso / GROOVY / DEMOS / MISC_DEM / SUNKNOWN.ZIP / ASMORPH.ASM < prev    next >
Encoding:
Assembly Source File  |  1994-04-07  |  1.1 KB  |  107 lines

  1. ; ASMORPH.ASM
  2.  
  3. ; Thomas H.
  4.  
  5. .model large
  6.  
  7. public _mobuffer, _mo192, _drawmorph, _gomorph, _pixies
  8.  
  9. BIGPIX    = 0
  10.  
  11. .code
  12.  
  13. _mobuffer dd ?
  14. _mo192    dd ?
  15. _pixies    dw ?
  16. .386
  17.  
  18. ; ***** TEGNMORPH *****
  19.  
  20. _drawmorph proc far
  21.  
  22.     pusha
  23.     push ds
  24.  
  25.     mov ax,0a000h
  26.     mov es,ax
  27.     mov di,32
  28.  
  29.     lds si,_mobuffer
  30.     mov dl,200
  31.     mov ax,64
  32. next_copy:
  33.     mov cx,ax
  34.     rep movsd
  35.     add di,ax
  36.     dec dl
  37.     jnz next_copy
  38.  
  39.     pop ds
  40.     popa
  41.  
  42.     retf
  43. _drawmorph endp
  44.  
  45. ; ***** GOMORPH *****
  46.  
  47. _gomorph proc far
  48.  
  49.     pusha
  50.     push ds
  51.  
  52.     les di,_mobuffer
  53.     xor eax,eax
  54.     mov cx,200*64
  55.     rep stosd
  56.  
  57.     lds si,_mo192
  58.     mov ax,ds
  59.     add ax,4096
  60.     mov fs,ax
  61.     add ax,4096
  62.     mov gs,ax
  63.  
  64.     xor si,si
  65.     mov cx,_pixies
  66. next_pixie:
  67.     mov eax,[si]
  68.     mov dx,ax
  69.     shr eax,16
  70.     add dx,ax
  71.     mov [si],dx
  72.     mov bl,dh
  73.  
  74.     mov eax,fs:[si]
  75.     mov dx,ax
  76.     shr eax,16
  77.     add dx,ax
  78.     mov fs:[si],dx
  79.     mov bh,dh
  80.  
  81.     mov eax,gs:[si]
  82.     mov dx,ax
  83.     shr eax,16
  84.     add dx,ax
  85.     mov gs:[si],dx
  86.  
  87. if BIGPIX
  88.     mov dl,dh
  89.     mov [es:bx],dx
  90.     inc bh
  91.     mov [es:bx],dx
  92.     dec bh
  93. else
  94.     mov [es:bx],dh
  95. endif
  96.     add si,4
  97.  
  98.     dec cx
  99.     jnz next_pixie
  100.  
  101.     pop ds
  102.     popa
  103.  
  104.     retf
  105. _gomorph endp
  106.  
  107. end