home *** CD-ROM | disk | FTP | other *** search
/ The Equalizer BBS / equalizer-bbs-collection_2004.zip / equalizer-bbs-collection / DEMOSCENE-STUFF / BKISSSRC.ZIP / TITLE.ASM < prev    next >
Assembly Source File  |  1994-02-13  |  4KB  |  122 lines

  1. ideal
  2. locals
  3. jumps
  4. model huge
  5. stack 100h
  6. p386
  7.  
  8. TextMode = 0
  9. CupidWidth = 144
  10. CupidHeight = 79
  11. PanScrollRate = 1
  12.  
  13. segment     MyData
  14. PanPosition dw 0
  15. extrn       MyPalette:byte          ;this should be a 256 RGB triplet palette
  16. extrn       MyImage:byte            ;this should be a 320x200x256 image
  17. ends        MyData
  18.  
  19. segment     MyCode
  20.             assume cs:MyCode, ds:MyData
  21. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  22. extrn       MyCupid:byte            ;an image with the above dimensions
  23. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  24. include     "modex.inc"
  25. include     "bitmap.inc"
  26. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  27. proc        Start
  28.             ;set up all of the segments
  29.             cld
  30.             mov ax,MyData
  31.             mov ds,ax
  32.  
  33.             ;switch over to graphics mode
  34.             @SetModeX M320x200x256,320*4
  35.             ScreenWidth = 320
  36.             ScreenHeight = 200
  37.  
  38.             ;load in the palette
  39.             mov si,offset MyPalette
  40.             mov ax,0
  41.             mov cx,256
  42.             @WritePalette
  43.  
  44.             ;set the starting scroll location
  45.             mov bx,[PanPosition]
  46.             @Set_Start_Offset
  47.  
  48.             ;paste on the left cupid
  49.             push (seg MyCupid) (offset MyCupid)
  50.             push CupidHeight CupidWidth
  51.             push 0
  52.             push ((ScreenHeight-CupidHeight)/2) (ScreenWidth+(ScreenWidth-CupidWidth))
  53.             call put_masked_bitmap
  54.             add sp,14
  55.  
  56.             ;paste on the main image
  57.             push (seg MyImage) (offset MyImage)
  58.             push 200 320
  59.             push 0
  60.             push 0 (ScreenWidth+ScreenWidth)
  61.             call put_masked_bitmap
  62.             add sp,14
  63.  
  64.             ;paste on the right cupid
  65.             push (seg MyCupid) (offset MyCupid)
  66.             push CupidHeight CupidWidth
  67.             push 0
  68.             push ((ScreenHeight-CupidHeight)/2) (ScreenWidth+ScreenWidth+ScreenWidth)
  69.             call put_masked_bitmap
  70.             add sp,14
  71.  
  72. @@ScrollTo: ;wait for the vertical retrace to pass
  73.             @WaitVertEnd
  74.  
  75.             ;update the screen's position
  76.             mov bx,[PanPosition]
  77.             @Set_Start_Offset
  78.  
  79.             ;wait for the vertical retrace to start
  80.             @WaitVert
  81.  
  82.             ;scroll over
  83.             add [PanPosition],PanScrollRate
  84.             cmp [PanPosition],(ScreenWidth+ScreenWidth)/4
  85.             jb @@ScrollTo
  86.  
  87.             ;make sure it's where it's supposed to be
  88.             mov bx,(ScreenWidth+ScreenWidth)/4
  89.             @Set_Start_Offset
  90.             
  91.             ;pause
  92.             mov cx,60
  93. @@Delay:    @FullVertWait
  94.             loop @@Delay
  95.  
  96. @@ScrollFrom:;wait for the vertical retrace to pass
  97.             @WaitVertEnd
  98.  
  99.             ;update the screen's position
  100.             mov bx,[PanPosition]
  101.             @Set_Start_Offset
  102.  
  103.             ;wait for the vertical retrace to start
  104.             @WaitVert
  105.  
  106.             ;scroll over
  107.             add [PanPosition],PanScrollRate
  108.             cmp [PanPosition],(ScreenWidth+ScreenWidth+ScreenWidth+ScreenWidth)/4
  109.             jb @@ScrollFrom
  110.  
  111.             ;change back to text mode and quit
  112.             if TextMode ne 0
  113.                 mov ax,0003h
  114.                 int 10h
  115.             endif
  116.             mov ax,4C00h
  117.             int 21h
  118. endp        Start
  119. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  120. ends        MyCode
  121.             end     Start
  122.