home *** CD-ROM | disk | FTP | other *** search
/ The Equalizer BBS / equalizer-bbs-collection_2004.zip / equalizer-bbs-collection / DEMOSCENE-STUFF / WM-H_SRC.ZIP / WEEN.ASM < prev   
Assembly Source File  |  1994-11-27  |  9KB  |  281 lines

  1. ;;; ACiDween Loader by Wonder Monkey  [ACiD]        
  2. ;;;
  3. ;;; originally released in the nov 94 acid pack. This source
  4. ;;; released in the dec 94 pack. I compiled using Tasm v3.1 and Tlink v3.0
  5. ;;; i dunno what will happen with diff compilers.
  6. ;;; 
  7. ;;; NOTE: i got a warning message with the make.bat that i am including.
  8. ;;; I don't remember if i had that in the original release. i am not sure if
  9. ;;; it is causing any problems, and i wish it wasn't there, but i lost the 
  10. ;;; original make.bat when my HD farted. Oh well, it don't make a shit.
  11. ;;;        
  12. ;;; Comments and Criticism should be directed to wmonkey@ucsd.edu        
  13. ;;;        
  14. ;;; Call my BBS! frappé (619) 535-1929
  15. ;;; Heavy on the source code, demos, and shit like that.
  16. ;;; no ratios, no warez, no lamers, no nup.
  17.         
  18.         
  19.         
  20.         DOSSEG
  21.         .MODEL large
  22.         .STACK 40h
  23. extrn   _hscplayer :FAR        
  24.         
  25.         .DATA  ;holdsdata
  26.  
  27. ;;sine data. don't ask
  28.  
  29. sines db 1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,0,1,1,0,1,1,1,1,1,1,1,1,2,1,1,2,1,2,1,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,2,2,1,2,1,2,1,1,2,1,1,1,1
  30. sineslen equ 100
  31. include pump2.inc ;;COOL picture by Cat of ACiD!
  32. ;include pal.inc ;;pallette is in pump2.inc
  33. include credz.inc ;;credz
  34.  
  35.  
  36. ;;;ATTENTION PEOPLE! IF I SEE ONE DICKWEED CHANGE THE TEXT OF THE SCROLLER
  37. ;;;BELOW AND THEN RELEASE THIS LOADER FOR HIS PIECE OF SHIT LITTLE GROUP
  38. ;;;I WILL BE VERY PISSED. AND I WILL NEVER, EVER RELEASE SOURCE CODE AGAIN.
  39.  
  40. ;;;THIS SOURCE CODE RELEASED FOR LEARNING PURPOSES ONLY. DON'T BE A LAMER!
  41.  
  42. scrollstop equ (60*8)*12 ;;funky yes. but fuck you.
  43. scrolltext db "               ACiD presents ACiDween!   Fizuck!  This ween "
  44. db            "we are sending greetz to all the other groups out there. Gre"
  45. db            "eetz go to da phat doggs at iCE, RELiC, UNiON, Surprise! Pro"
  46. db            "ductions, Future Crew, and all of dem nutty euro coders. Oh "
  47. db            "and all the cool guys in VLA....           This ween we are "
  48. db            "using M-80's to chase kids off the porch!   Personal greetz "
  49. db            "from me, Wonder Monkey, go out to GWoP, Mr.Fab, Sushi X, Kas" 
  50. db            "ka F. Kaska, Twink, P-Chan, Lord Jazz, Rad Man, Somms, the g"
  51. db            "reat new artist  -Cat- , who drew this pumpkin for me, and a"
  52. db            "ll the little fuckers that have asked me for loaders recentl"
  53. db            "y. Ah.   Hrm, this music is definately confused.   Shat.    "
  54. db            "---COOL---  ::::hmmmmmmm. K-RaD.   lets loop this mofo..:..:"
  55. scrollofs dw 0
  56.  
  57. scroll db 200 dup (0)
  58.  
  59.         .CODE
  60.         .386
  61.  
  62.  
  63.         
  64.  
  65. include ray09.dat    ;;dats the music
  66.  
  67. ;=============MAIN!============
  68.  
  69. START:
  70.         mov     ax,@data        
  71.         mov     ds,ax
  72.         mov     ax,0A000h       ;video area baybe
  73.         mov     es,ax           
  74.                                 
  75.         mov     ax,13h
  76.         int     10h             ;set videomode 13h
  77.        
  78.         lea     si,pal   ;put first spank into si
  79.         mov     cx,palnum    ;want to get all the colors!        
  80. setcolor:        
  81.         mov     dx,03c8h        ;set up index
  82.         lodsb                   ;load color #
  83.         out     dx,al           ;put #of byte to modufy (al) into port (at dx)
  84.         inc     dx
  85.         lodsb                   ;load red
  86.         out     dx,al           ;put red
  87.         lodsb                   ;load green
  88.         out     dx,al           ;put green
  89.         lodsb                   ;load blue
  90.         out     dx,al           ;put blue
  91.         loop    setcolor        ;do for all colors...
  92.         
  93.         mov     cx,200          ;clear the other 200 to black
  94. setcolorx:        
  95.         mov     dx,03c8h        ;set up index
  96.         mov     al,cl
  97.         add     al,55
  98.         out     dx,al           ;put #of byte to modufy (al) into port (at dx)
  99.         inc     dx
  100.         xor     al,al
  101.         out     dx,al           ;put red
  102.         out     dx,al           ;put green
  103.         out     dx,al           ;put blue
  104.         loop    setcolorx        ;do for all colors...
  105.  
  106.  
  107. ;----HSC stuff        
  108.         push    es
  109.         push    cs
  110.         pop     es
  111.         xor     ah,ah
  112.         xor     bx,bx
  113.         lea     si,ds:music
  114.         call    _hscplayer
  115.         pop     es
  116.         
  117.  
  118. ;█████████▌Wave▐█████████
  119.         xor     bx,bx
  120.         xor     ah,ah
  121.         mov     di,320-64+32
  122.         mov     dh,0
  123. @@do_all_lines:        
  124.         lea     si,sines        
  125.         add     si,bx
  126.         mov     al,ds:[si]
  127.         add     di,ax
  128.         mov     dl,0            ;y num
  129. @@do_one_line:        
  130.         mov     cx,4            ;x num
  131.         mov     al,dh
  132.         shr     al,3            ;divide by 8
  133.         shl     al,3            ;mult by 8
  134.         add     al,dl           ;
  135.         add     al,55
  136.         rep     stosb
  137.         inc     dl
  138.         cmp     dl,8
  139.         jnz     @@do_one_line
  140.         inc     bl
  141.         cmp     bl,sineslen
  142.         jnz     @@its_really_kosher
  143.         xor     bl,bl
  144. @@its_really_kosher:
  145.         inc     dh
  146.         add     di,320-33
  147.         cmp     dh,200
  148.         jnz     @@do_all_lines
  149.  
  150.  
  151.  
  152.         mov     cx,pumpy
  153.         mov     di,0
  154.         lea     si,pump
  155.  
  156.         mov     dx,pumpx           ;make copy of BX in dx.
  157. @@1:
  158.         mov     bx,dx   
  159. @@2:        
  160.         movsb
  161.         dec     bx              ;decrement x counter
  162.         jnz     @@2             ;have we done a whole row?
  163.         add     di,320          ;ya..so we'd better 
  164.         sub     di,dx           ;   ...get to the start of the next
  165.         loop    @@1             ;loop. (y val in CX.. works out ok)
  166.  
  167.  
  168.  
  169. main:
  170.         
  171. ;;;VERT RETRACE■■■■■■
  172.         mov     cx,3
  173. @@SLOWITDOWN:
  174.  
  175.         mov     dx,3dah         ;Vertical Retrace ;
  176. @@retrx1:                        ;                 ;
  177.         in      al,dx           ;                 ;
  178.         test    al,08h          ;                 ;
  179.         jz      @@retrx1         ;                 ;
  180. @@retrx2:                        ;                 ;
  181.         in      al,dx           ;                 ;
  182.         test    al,08h          ;                 ;
  183.         jnz     @@retrx2         ; end of VR       ;
  184.  
  185.         loop    @@SLOWITDOWN
  186.         lea     si,scroll 
  187.         
  188.         mov     cl,55          ;want to get all the colors!        
  189. xsetcolorx:        
  190.         mov     dx,03c8h        ;set up index
  191.         mov     al,cl
  192.         out     dx,al           ;put #of byte to modufy (al) into port (at dx)
  193.         inc     dx
  194.         lodsb
  195.         out     dx,al           ;put red
  196.         shl     al,1
  197.         out     dx,al           ;put green
  198.         xor     al,al
  199.       
  200.         out     dx,al           ;put blue
  201.         inc     cl
  202.         cmp     cl,255
  203.         jnz     xsetcolorx
  204.  
  205.  
  206.  
  207. ;█████████▌Scroll▐█████████
  208.         push    es              ;save copy
  209.         push    ds
  210.         push    ds
  211.         pop     es
  212.         lea     si,scroll
  213.         lea     di,scroll
  214.         add     si,8
  215.         mov     cx,(200-8)
  216.         rep     movsb
  217.         
  218.         mov     ax,0f000h
  219.         mov     es,ax
  220.         lea     si,scrolltext
  221.         mov     ax,[scrollofs]
  222.         mov     bl,al
  223.         shr     ax,3
  224.         and     bl,7
  225.         add     si,ax
  226.         lodsb                   ;load current character we are working on!
  227.         xor     ah,ah
  228.         shl     ax,3            ;mult char by 8
  229.         xor     bh,bh
  230.         add     ax,bx           ;add offset of line
  231.         add     ax,0fa6eh
  232.         mov     di,ax
  233.         mov     dl,es:[di]      ;dl now contains encoded line we want!
  234.  
  235.         pop     es              ;back to data area
  236.         lea     di,scroll
  237.         add     di,192
  238.         mov     cx,8
  239.         shl     bl,2            ;mult by 4
  240. @@roopde:        
  241.         xor     al,al
  242.         rol     dl,1
  243.         jnc     @@spok          ;jump if not carry
  244.         mov     al,63
  245.         sub     al,bl
  246. @@spok:        
  247.         stosb        
  248.         loop    @@roopde
  249.  
  250.         pop     es              ;restore old es
  251.         inc     [scrollofs]
  252.         cmp     [scrollofs],scrollstop
  253.         jb      @@itsok
  254.         mov     [scrollofs],0
  255. @@itsok:
  256.  
  257.         mov     ah,11h
  258.         int     16h             ;has a key been pressed??
  259.         jz      main            ;nope, LOOP!
  260.  
  261.         mov     ah,10h          ;call function 10h ..
  262.         int     16h             ;clear key outta there
  263.         mov     ah,2
  264.         call    _hscplayer      ;stop da music.
  265.  
  266.         mov     ax,00003h
  267.         int     10h             ;set videomode=text!
  268.         
  269.         mov     dx,offset credz        
  270.         mov     ah,9
  271.         int     21h             ;print creds..
  272.  
  273.         mov     ax,4c00h        ;Pass control to dos
  274.         int     21h             ;do it!
  275.  
  276. END START
  277.  
  278.  
  279.  
  280.  
  281.