home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / p / pchdemo.zip / SOURCEFA.ZIP / 320X240.ASM < prev    next >
Assembly Source File  |  1992-10-28  |  2KB  |  105 lines

  1. code    segment public
  2.  
  3. assume  cs:code,ds:code,es:code,ss:stack
  4.  
  5. extrn    digit:near,convert:near
  6.  
  7.     push    cs
  8.     pop    ds
  9.     push    cs
  10.     pop    es
  11.  
  12.         mov     ax,10f0h
  13.     mov    bl,2eh
  14.     int    10h            ; Grafik einschalten (VGA 640 x 480)
  15. s1:
  16.     mov    dx,3cdh
  17.     mov    al,0
  18.     out    dx,al
  19.     push    es
  20.     mov    ax,es
  21.     add    ax,1000h
  22.     mov    es,ax
  23.     mov    al,15            ; mittlere Kontrastwert
  24.     mov    bl,32            ; ab dem 32.Pixel von links
  25.     mov    bh,24            ; ab der 44.Zeile von oben
  26.     mov    cx,320            ; 320 Pixel digitalisieren
  27.     mov    dx,240            ; 240 Zeilen digitalisieren
  28.     mov    di,0            ; Offsetadresse des Buffers
  29.     call    digit            ; und Digitalisieren
  30.     pop    es
  31.  
  32.         push    ds
  33.     mov    bx,0            ; Offsetadresse der VGA
  34.         mov     ax,ds
  35.     add    ax,1000h
  36.     mov    ds,ax            ; Segmentadresse des Buffers
  37.     mov    cx,240            ; 200 Zeilen
  38. s2:
  39.     push    cx
  40.     mov    si,0            ; Offsetadresse des Buffers
  41.     mov    di,offset cs:buffer    ; Offsetadresse des Zwischenspeichers
  42.     mov    cx,320            ; 320 Pixel konvertieren
  43.     call    convert
  44.     push    es
  45.     push    ds
  46.     push    cs
  47.     pop    ds
  48.     les    di,vstart        ; Adresse der VGA
  49.     add    di,bx
  50.     mov    si,offset buffer    ; Offsetadresse des Zwischenspeichers
  51.     mov    cx,20            ; 320 Pixel
  52. s3:
  53.     push    cx
  54.     mov    cx,16
  55.     rep    movsw
  56.     cmp    di,0
  57.     jnz    s4
  58.         call    inc3cd
  59. s4:
  60.     pop    cx
  61.     loop    s3
  62.         add     di,640
  63.     jnc    s5
  64.     call    inc3cd
  65. s5:
  66.     pop    ds
  67.     pop    es
  68.     mov    ax,ds
  69.     add    ax,20
  70.     mov    ds,ax            ; Segmentadresse um 40 erhöhen
  71.     add    bx,1280         ; 320 Pixel überspringen
  72.     pop    cx
  73.     loop    s2
  74.     pop    ds
  75.  
  76.     mov    ah,1
  77.     int    16h
  78.     jz    s1            ; Wenn keine Taste gedrückt
  79.     mov    ah,0
  80.     int    16h
  81.  
  82.     mov    ax,3
  83.     int    10h            ; Auf Textmodus schalten
  84.  
  85.     mov    ah,4ch
  86.     int    21h            ; Programm beenden
  87. inc3cd:
  88.     mov    dx,3cdh
  89.     in    al,dx
  90.     add    al,00010001b
  91.     out    dx,al
  92.     ret
  93.  
  94. tab1    db    768 dup (?)
  95. vstart    dd    0a0000000h
  96. buffer    dw    768 dup (?)
  97.  
  98. code    ends
  99. stack    segment para stack
  100.     dw    256 dup (?)
  101. stack    ends
  102.  
  103. end
  104.  
  105.