home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / XBD2_SRC.ZIP / XBD2_SRC / GRAPH.ASM < prev    next >
Assembly Source File  |  1991-02-08  |  2KB  |  159 lines

  1.     TITLE    SOUND.ASM
  2.  
  3.  
  4.     PAGE   ,132
  5.  
  6.  
  7.  
  8.  
  9. ;-----    Appel d'une fonction DOS.
  10. ;
  11. WRITE_BM    MACRO    
  12.  
  13.     movsw                ; 16 words to write for
  14.     add    di, cx            ; drawing the bitmap in 
  15.     movsw                ; the active plan
  16.     add    di, cx
  17.     movsw
  18.     add    di, cx
  19.     movsw
  20.     add    di, cx
  21.     movsw
  22.     add    di, cx
  23.     movsw
  24.     add    di, cx
  25.     movsw
  26.     add    di, cx
  27.     movsw
  28.     add    di, cx
  29.     movsw
  30.     add    di, cx
  31.     movsw
  32.     add    di, cx
  33.     movsw
  34.     add    di, cx
  35.     movsw
  36.     add    di, cx
  37.     movsw
  38.     add    di, cx
  39.     movsw
  40.     add    di, cx
  41.     movsw
  42.     add    di, cx
  43.     movsw
  44.     add    di, cx
  45.  
  46.  
  47.         ENDM
  48.  
  49.  
  50.  
  51.     .MODEL    SMALL
  52.  
  53.  
  54.     .CODE
  55.  
  56.  
  57. ;
  58. ;    void drawPgm(int x, int y, char *pgm, char mode)
  59. ;
  60.  
  61.     PUBLIC    _drawPgm
  62.  
  63. _drawPgm    PROC
  64.  
  65.     push    bp
  66.     mov    bp, sp
  67.  
  68.     push    si
  69.     push    di
  70.     push    es
  71.  
  72.  
  73.     mov    ax, 0A000h
  74.     mov    es, ax
  75.  
  76.     mov    ax, word ptr [BP+06h]    ; y
  77.     mov    bx, ax
  78.     mov    cl, 10
  79.     shl    bx, cl            ; y * 64 * 16
  80.     mov    cl, 8
  81.     shl    ax, cl            ; y * 16 * 16
  82.  
  83.     add    bx, ax            ; y * 80 = (y * 64) + (y * 16) 
  84.  
  85.     mov    ax, word ptr [BP+04h]    ; x
  86.     shl    ax, 1
  87.     add    bx, ax
  88.  
  89.     mov    si, word ptr [BP+08h]    ; pgm
  90.     add    si, 4
  91.  
  92.  
  93.     cld
  94.  
  95.     mov    dx, 03CEh
  96.  
  97.     mov    ax, 0FF08h        ; All bits are writen
  98.     out    dx, ax
  99.  
  100.  
  101.     mov    ax, 0005h        ; Write Mode 0
  102.     out    dx, ax
  103.  
  104.     mov    ax, 0003h        ; Mode Register SETed
  105.     out    dx, ax
  106.  
  107.  
  108.     mov    dx, 03C4h
  109.     mov    cx, 78
  110.  
  111.  
  112.     mov    di, bx
  113.     mov    ax, 0102h        ; Enable PLAN 0
  114.     out    dx, ax
  115.     WRITE_BM
  116.  
  117.     mov    di, bx
  118.     shl    ah, 1            ; Enable PLAN 1
  119.     out    dx, ax
  120.     WRITE_BM
  121.  
  122.     mov    di, bx
  123.     shl    ah, 1            ; Enable PLAN 2
  124.     out    dx, ax
  125.     WRITE_BM
  126.  
  127.     mov    di, bx
  128.     shl    ah, 1            ; Enable PLAN 3
  129.     out    dx, ax
  130.     WRITE_BM
  131.     
  132.     mov    ax, 0F02h
  133.     out    dx, ax
  134.  
  135.     mov    dx, 03CEh
  136.  
  137.     xor    ax, ax            ; ax = 0000h
  138.     out    dx, ax
  139.     inc    ax            ; ax = 0001h
  140.     out    dx, ax
  141.     mov    ax, 0FF08h
  142.     out    dx, ax
  143.  
  144.  
  145.     pop    es
  146.     pop    di
  147.     pop    si
  148.  
  149.     mov    sp, bp
  150.     pop    bp
  151.  
  152.     ret
  153.  
  154.  
  155. _drawPgm    ENDP
  156.  
  157.  
  158.     END
  159.