home *** CD-ROM | disk | FTP | other *** search
/ HOT Scene Stuff / hotscenestuffzyklop1996.iso / demos / sunknown / asmdune.asm < prev    next >
Assembly Source File  |  1994-04-07  |  2KB  |  144 lines

  1. ; ASMDUNE.ASM
  2.  
  3. ; Thomas H.
  4.  
  5. AC_INDEX        = 03c0h
  6. MISC_OUTPUT     = 03c2h
  7. SC_INDEX        = 03c4h
  8. GC_INDEX    = 03ceh
  9. CRTC_INDEX      = 03d4h
  10. INPUT_STATUS_0  = 03dah
  11. MAP_MASK    = 02h
  12. READ_MAP        = 04h
  13. BIT_MASK    = 08h
  14.  
  15. public _makeplasma, _drawrelieff, _dune_map, _dune_buffer, _dune_light
  16. public _dunepl1, _dunepl2, _dunepl3, _duneplus
  17.  
  18.  
  19. .model large
  20.  
  21. .code
  22.  
  23. EVEN
  24.  
  25. _dune_map dd ?
  26. _dune_light dd ?
  27. _dune_buffer dd ?
  28. _dunepl1 dw ?
  29. _dunepl2 dw ?
  30. _dunepl3 dw ?
  31. _duneplus dw ?
  32.  
  33. count    db ?
  34.  
  35. EVEN
  36.  
  37. .386
  38.  
  39. ; ***** MAKEPLASMA *****
  40.  
  41. _makeplasma proc far
  42.  
  43.     pusha
  44.     push ds
  45.  
  46.     lds si, _dune_map
  47.     mov ax,ds
  48.     add ax,64*32
  49.     mov ds,ax
  50.     les di,_dune_buffer
  51.  
  52.     mov si,_dunepl1
  53.     mov bx,_dunepl2
  54.     sub bx,si
  55.     mov bp,_dunepl3
  56.     sub bp,si
  57.  
  58.     mov ch,202
  59. l1:    mov cl,2*81
  60. l2:    lodsw
  61.     mov dx,[si+bx]
  62.     cmp al,dl
  63.     ja alok1
  64.     mov al,dl
  65. alok1:
  66.     cmp ah,dh
  67.     ja ahok1
  68.     mov ah,dh
  69. ahok1:
  70.     mov dx,ds:[si+bp]
  71.     cmp al,dl
  72.     ja alok2
  73.     mov al,dl
  74. alok2:
  75.     cmp ah,dh
  76.     ja ahok2
  77.     mov ah,dh
  78. ahok2:
  79.     stosw
  80.     dec cl
  81.     jnz l2
  82.     mov dx,ds
  83.     add dx,512/16
  84.     mov ds,dx
  85.     sub si,324
  86.  
  87.     dec ch
  88.     jnz l1
  89.  
  90.     pop ds
  91.     popa
  92.     retf
  93.  
  94. _makeplasma endp
  95.  
  96. ; ***** DRAWRELIEFF *****
  97.  
  98. _drawrelieff proc far
  99.  
  100.     pusha
  101.     push ds
  102.  
  103.     lds si,_dune_buffer
  104.     lfs di,_dune_light
  105.  
  106.     mov ax,0a000h
  107.     mov es,ax
  108.     xor di,di
  109.     mov dx,2
  110.     mov count,200
  111.     mov bp,2
  112. lo1:
  113.     mov cl,160
  114.     mov dx,[si]
  115.     add si,2
  116. lo2:
  117.     mov ax,[si]
  118.     mov bx,dx
  119.     mov dx,ax
  120.     mov ch,bh
  121.     mov bh,al
  122.     mov al,fs:[bx]
  123.     mov bl,ch
  124.     mov bh,ah
  125.     mov ah,fs:[bx]
  126.     add ax,_duneplus
  127.     mov es:[di],ax
  128.  
  129.     add si,2
  130.     add di,2
  131.     dec cl
  132.     jnz lo2
  133.     add si,2
  134.     dec count
  135.     jnz lo1
  136.  
  137.     pop ds
  138.     popa
  139.     retf
  140.  
  141. _drawrelieff endp
  142.  
  143. end
  144.