home *** CD-ROM | disk | FTP | other *** search
/ The Party 1994: Try This At Home / disk_image.bin / source / cbrosrc / scrolly.asm < prev   
Assembly Source File  |  1995-03-13  |  4KB  |  174 lines

  1.         ideal
  2.  
  3.         model tiny
  4.         codeseg
  5.         p386
  6.  
  7. scrolliptr      dw 0
  8. yrow            dw 0
  9.  
  10. proc    scrolli far
  11. public  scrolli
  12.         mov     dx, 3dah
  13.         in      al, dx
  14.         test    al, 8
  15.         jnz     $-3
  16.         in      al, dx
  17.         test    al, 8
  18.         jz      $-3
  19.  
  20.         cld
  21.         mov     ax, 0a000h
  22.         mov     es, ax
  23.         xor     di, di
  24.         mov     cx, 64000/4
  25.         xor     eax, eax
  26.         rep     stosd
  27.  
  28.         mov     dx, 3dah
  29.         in      al, dx
  30.         test    al, 8
  31.         jnz     $-3
  32.         in      al, dx
  33.         test    al, 8
  34.         jz      $-3
  35.         mov     ax, 3
  36.         int     10h
  37.  
  38.         mov     dx, 3dah
  39.         in      al, dx
  40.         mov     dx, 3c0h
  41.         mov     al, 10h
  42.         out     dx, al
  43.         inc     dx
  44.         in      al, dx
  45.         dec     dx
  46.         and     al, not 8
  47. ;        mov     al, 00000110b
  48.         out     dx, al
  49.  
  50.         mov     dx, 3c0h
  51.         mov     al, 20h
  52.         out     dx, al
  53.  
  54.         mov     dx, 3d4h
  55.         mov     ax, 0ff0eh
  56.         out     dx, ax
  57.  
  58. ;        mov     dx, 3d4h
  59. ;        mov     ax, 00309h
  60. ;        out     dx, ax
  61.  
  62.         cld
  63.         mov     ax, 0b800h
  64.         mov     ds, ax
  65.         mov     es, ax
  66.  
  67.         xor     di, di
  68.         mov     cx, 8000h/4
  69.         xor     eax, eax
  70.         rep     stosd
  71.  
  72. @@kelaa:
  73.         mov     di, 160*25
  74.         mov     ax, [cs:yrow]
  75.         imul    ax, 160
  76.         add     di, ax
  77.  
  78. ;
  79. ;        mov     dx, 3dah
  80. ;        in      al, dx
  81. ;        test    al, 8
  82. ;        jz      $-3
  83. ;        in      al, dx
  84. ;        test    al, 8
  85. ;        jnz     $-3
  86. ;
  87.         mov     bx, [cs:yrow]
  88.         add     bx, 25+1
  89.         imul    bx, 80
  90.         mov     dx, 3d4h
  91.         mov     al, 0ch
  92.         mov     ah, bh
  93.         out     dx, ax
  94.         inc     al
  95.         mov     ah, bl
  96.         out     dx, ax
  97.         mov     dx, 3d4h
  98.         mov     ax, 0f08h
  99.         out     dx, ax
  100.  
  101.         mov     cx, 16
  102. @@doing:
  103.         mov     dx, 3dah
  104.         in      al, dx
  105.         test    al, 8
  106.         jnz     $-3
  107.         in      al, dx
  108.         test    al, 8
  109.         jz      $-3
  110.         in      al, 60h
  111.         and     al, 7fh
  112.         cmp     al, 1
  113.         jz      loppu
  114.         mov     dx, 3d4h
  115.         mov     al, 8
  116.         mov     ah, 16
  117.         sub     ah, cl
  118.         out     dx, ax
  119.         mov     dx, 3dah
  120.         in      al, dx
  121.         test    al, 8
  122.         jnz     $-3
  123.         in      al, dx
  124.         test    al, 8
  125.         jz      $-3
  126.         loop    @@doing
  127.  
  128. ;        mov     si, 160
  129. ;        mov     di, 0
  130. ;        mov     cx, 40*25
  131. ;        rep     movsd
  132.  
  133.  
  134.         mov     si, [cs:scrolliptr]
  135.         add     si, offset texti
  136.         mov     ah, [cs:si]
  137.         inc     si
  138.         or      ah, ah
  139.         jz      loppu
  140.         mov     cx, 80
  141. @@rivi:
  142.         mov     al, [cs:si]
  143.         inc     si
  144.         mov     [es:di+160*27], ax
  145.         stosw
  146.         loop    @@rivi
  147.         add     [cs:scrolliptr], 81
  148.         inc     [cs:yrow]
  149.         cmp     [cs:yrow], 27
  150.         jb      @@bonk
  151.         sub     [cs:yrow], 27
  152. @@bonk:
  153.         in      al, 60h
  154.         cmp     al, 1
  155.         jz      loppu
  156.         jmp     @@kelaa
  157.  
  158. loppu:
  159. ;        mov     ax, 3
  160. ;        int     10h
  161. ;        mov     ah, 4ch
  162. ;        int     21h
  163.         retf
  164. endp
  165.  
  166. texti:
  167. include "scroller.txt"
  168. rept 25
  169. db 7,"                                                                                "
  170. endm
  171. db 00h
  172.  
  173. end     scrolli
  174.