home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / t / tbwindow.zip / QATTR.ASM next >
Assembly Source File  |  1987-06-12  |  3KB  |  76 lines

  1.               title          QATTRS
  2.               page           60,132
  3.  
  4. attr          equ            [bp + 06h]
  5. cols          equ            [bp + 0Ah]
  6. rows          equ            [bp + 0Eh]
  7. col           equ            [bp + 12h]
  8. row           equ            [bp + 16h]
  9.  
  10. program       segment
  11.               assume         cs:program
  12.               push           bp
  13.               mov            bp,sp
  14.               push           ds
  15.               push           es
  16.               mov            ah,15
  17.               int            10h
  18.               cmp            al,7
  19.               jnz            color
  20.               mov            bx,0B000h
  21.               mov            dx,03BAh
  22.               jmp            short ok
  23. color:        mov            bx,0B800h
  24.               mov            dx,03DAh
  25. ok:           push           bx
  26.               pop            es
  27.               lds            si,rows
  28.               mov            cx,ds:[si]
  29.               push           cx
  30.               push           dx
  31.               xor            bx,bx
  32.               mov            bl,ah
  33.               lds            si,row
  34.               mov            ax,ds:[si]
  35.               dec            ax
  36.               mul            bx
  37.               shl            ax,1
  38.               lds            si,col
  39.               mov            bx,ds:[si]
  40.               dec            bx
  41.               shl            bx,1
  42.               add            bx,ax
  43.               mov            di,bx
  44.               lds            si,attr
  45.               mov            bx,ds:[si]
  46.               cld
  47.               lds            si,cols
  48.               mov            si,ds:[si]
  49.               pop            dx
  50. nxtrow1:      push           di
  51.               cli
  52.               mov            cx,si
  53. doagain1:     inc            di
  54. waitlo1:      in             al,dx
  55.               test           al,01
  56.               jnz            waitlo1
  57. waithi1:      in             al,dx
  58.               test           al,01
  59.               jz             waithi1
  60.               mov            al,bl
  61.               stosb
  62.               loop           doagain1
  63.               sti
  64.               pop            di
  65.               pop            cx
  66.               dec            cx
  67.               jcxz           endit
  68.               push           cx
  69.               add            di,160
  70.               jmp            short nxtrow1
  71. endit:        pop            es
  72.               pop            ds
  73.               pop            bp
  74. program       ends
  75.               end
  76.