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

  1. ; ASMIFS.ASM
  2.  
  3. ; Thomas H.
  4.  
  5. .model large
  6.  
  7. public _ifsx ,_ifsy,_ifsdx,_ifsdy,_ifslen,_ifslev,_asmifs
  8. public _drawpage32, _movebak32, _skheight, _writepage32, _blanker
  9. public _onestrip
  10.  
  11. .code
  12.  
  13. EVEN
  14.  
  15. _ifsx    dw ?
  16. _ifsy    dw ?
  17. _ifsdx    dw ?
  18. _ifsdy    dw ?
  19. _ifslen    dw ?
  20. _skheight dw 7*257
  21. _writepage32 dd ?
  22. calls    dw offset line1,offset line1, offset line1, offset line1
  23.     dw offset line1,offset line1, offset line1, offset line0
  24. _ifslev    db ?
  25.  
  26. .386
  27.  
  28. ; ***** MOVEBAK32 *****
  29.  
  30. _movebak32 proc far
  31.  
  32.     mov dl,200
  33. ned32:    mov cx,64
  34.     rep movsd
  35.     add si,64
  36.     dec dl
  37.     jnz ned32
  38.     retf
  39.  
  40. _movebak32 endp
  41.  
  42. ; ***** TEGNSKJERM32 *****
  43.  
  44. _drawpage32 proc far
  45.  
  46.     mov dl,200
  47. ned322:    mov cx,64
  48.     rep movsd
  49.     add di,64
  50.     dec dl
  51.     jnz ned322
  52.     retf
  53.  
  54. _drawpage32 endp
  55.  
  56. ; ***** ASMIFS *****
  57.  
  58. _asmifs    proc far
  59.     mov ax,_ifslen
  60.     or ah,ah
  61.     jz glemdet
  62.     mov cx,_ifsx
  63.     mov dx,_ifsy
  64.     mov bl,_ifslev
  65.     mov al,bl
  66.     add al,128
  67.     xor bh,bh
  68.     add bx,bx
  69.     add bx,offset calls
  70.     jmp [cs:bx]
  71. glemdet:
  72.     retf
  73. _asmifs    endp
  74.  
  75. ; ***** LINE0 *****
  76.  
  77. line0    proc near
  78. nextline0:
  79.     mov bl,ch
  80.     mov bh,dh
  81.     mov byte ptr[bx],al
  82.     add bx,[cs:_skheight]
  83.     or byte ptr[bx],64
  84.     add cx,_ifsdx
  85.     add dx,_ifsdy
  86.     dec ah
  87.     jne nextline0
  88.     mov _ifsx,cx
  89.     mov _ifsy,dx
  90.     retf
  91. line0    endp
  92.  
  93. ; ***** LINE1 *****
  94.  
  95. line1    proc near
  96.     mov bl,ah
  97.     mov ah,al
  98.     mov bp,ax
  99.     mov ah,bl
  100. nextline1:
  101.     mov bl,ch
  102.     mov bh,dh
  103.     mov [bx],bp
  104.     mov [bx+256],bp
  105.     add bx,[cs:_skheight]
  106.     or word ptr[bx],64+256*64
  107.     or word ptr[bx+256],64+256*64
  108.     add cx,_ifsdx
  109.     add dx,_ifsdy
  110.     dec ah
  111.     jne nextline1
  112.     mov _ifsx,cx
  113.     mov _ifsy,dx
  114.     retf
  115. line1    endp
  116.  
  117. ; ***** BLANKER *****
  118.  
  119. _blanker proc far
  120.     les di,_writepage32
  121.     xor eax,eax
  122.     mov cx,dx
  123.     shl cx,6
  124.     rep stosd
  125.     retf
  126.  
  127. _blanker endp
  128.  
  129. ; ***** ONESTRIP *****
  130.  
  131. _onestrip proc far
  132.  
  133.     mov cx,64
  134.     rep movsd
  135.     retf
  136. _onestrip endp
  137.  
  138. end
  139.