home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / BLACDEMO.ZIP / bdemo.asm next >
Assembly Source File  |  1995-05-30  |  3KB  |  173 lines

  1. .model large
  2. .stack 200h
  3. .386
  4.  
  5. JUMPS
  6.  
  7. EXTRN  stmik_asm:far
  8. include stand2.inc
  9. include    modex2.inc
  10. include sound.inc
  11. include    fdemo.inc
  12. include scrdemo3.inc
  13. include    scale3.inc
  14. include dist4.inc
  15.  
  16. .data
  17. PicName        db    "mxblack2.dat", 0
  18. PalName        db    "mxblack2.pal", 0
  19. WordSeg         dw     ?
  20. PicSeg        dw    0
  21. BPalette    db    768 dup (?)
  22. AlphaName    db    "leeslet2.dat", 0
  23. AlphaSeg    dw    ?
  24. MaskName    db    "leeslet2.mas", 0
  25.  
  26. BitMask        db    5120 dup (?)
  27.  
  28. OutMemMsg    db    13, 10,"Sorry, you need more memory free to run this!", 13, 10
  29.         db    "If you're really struggling for memory, try running the demo without music,"
  30.         db    13, 10, "but you only need about 500k free!$"
  31.  
  32. FinalText       db    13, 10, "         -== The Black Ice Demo - An Envy Technologies Release ==-    "  
  33.         db    13, 10
  34.         db      13, 10, "                Code      :  Sinbad        (aka Steve Streeting)"
  35.         db    13, 10, "                Music     :  Sinbad"
  36.         db    13, 10, "                Graphics  :  Wishbone      (aka Lee Harris) "
  37.         db    13, 10, "                Raytracing:  Sinbad"
  38.         db    13, 10                             
  39.         db    13, 10, "Software used to create this demo:"
  40.         db    13, 10, "Borland Turbo Assembler 4.0"
  41.         db    13, 10, "Microsoft Quick C 2.5"
  42.         db    13, 10, "ScreamTracker 3.21"
  43.         db    13, 10, "PC Paintbrush"
  44.         db    13, 10, "Piclab 1.91"
  45.         db    13, 10, "Image Alchemy 1.5"
  46.         db    13, 10, "Persistence of Vision (POV) 2.0"
  47.         db    13, 10, "Moray 1.5"
  48.         db    13, 10, "Adobe Photoshop 3.0"
  49.         db    13, 10
  50.         db    13, 10, "Copyright Envy Technologies 1995$"
  51. .code
  52.  
  53. STXName        db      "melting2.stx", 0
  54.  
  55.  
  56. ; ********************* PROCEDURES ***********************************
  57.         
  58. InitStuff    PROC NEAR
  59.     
  60.  
  61.     mov     bx, (32000 / 16)
  62.     call    GetMem
  63.     jc    MemErr
  64.     mov     [WordSeg], ax            ;save allocated segment
  65.     call    LoadPic
  66.  
  67.     mov    bx, (76800/16)        ;allocate a buffer for the pic      
  68.     call    GetMem
  69.     jc    MemErr
  70.     mov    [PicSeg], ax
  71.  
  72.     mov    bx, (40960 / 16)    ;allocate for letters
  73.     call    GetMem
  74.     jc    MemErr
  75.     mov    [AlphaSeg], ax
  76.     
  77.     mov    dx, offset PicName
  78.     mov    ax, [PicSeg]
  79.     xor    di, di
  80.     call    LoadData
  81.  
  82.     mov    dx, offset AlphaName
  83.     mov    ax, [AlphaSeg]
  84.     xor    di, di
  85.     call    LoadData
  86.  
  87.     mov    dx, offset PalName
  88.     mov    cx, offset BPalette
  89.     call    LoadPal
  90.  
  91.     mov    dx, offset MaskName
  92.     mov    di, offset BitMask
  93.     mov    cx, 5120
  94.     call    LoadMask    
  95.  
  96.     call    SoundSetup
  97.     cmp    [OutMemFlag], 1
  98.     je    MemErr
  99.     
  100.     cmp    [SBInstalled], 1
  101.     jne    NoSB1
  102.     mov    bx, [ModSeg]
  103.     StartSTX
  104.   NoSB1:
  105.     ret
  106.   MemErr:
  107.       call    CleanUp1
  108.       mov    dx, offset OutMemMsg
  109.       mov    ah, 9
  110.       int    21h
  111.       Finish
  112. InitStuff    ENDP
  113.  
  114. CleanUp2    PROC NEAR
  115.     cmp     [SBInstalled], 1
  116.     jne     skipSBstop
  117.     StopSTX
  118. skipSBstop:
  119.     
  120.     
  121.  
  122.     mov    ax, [ModSeg]
  123.     mov    es, ax
  124.     call    FreeMem
  125.  
  126.     ret
  127. CleanUp2        ENDP
  128.  
  129.  
  130. CleanUp1    PROC NEAR
  131.     mov     ax, [WordSeg]
  132.     mov     es, ax
  133.     call    FreeMem
  134.         
  135.     mov    ax, [PicSeg]
  136.     mov    es, ax
  137.     call    FreeMem
  138.  
  139.     mov    ax, [AlphaSeg]
  140.     mov    es, ax
  141.     call    FreeMem
  142.     ret
  143. CleanUp1    ENDP
  144.  
  145. ; ********************** CODE SEG DATA *********************************
  146.  
  147. tabpos          dw      0                       ;Random number table position
  148.  
  149.  
  150. ; ********************* MAIN CODE ***************************************
  151. .startup
  152.     MemInit
  153.     
  154.  
  155.     call    InitStuff
  156.     call    FireDemo
  157.     call    ScrollDemo    
  158.     call    CleanUp1
  159.     call    ScaleDemo
  160.     call    DistDemo
  161.     call    CleanUp2
  162.  
  163.  
  164. TheEnd:
  165.     call    SetText
  166.     mov     dx, offset FinalText
  167.     mov     ah, 9
  168.     int     21h
  169.     Finish
  170. END
  171.  
  172.  
  173.