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

  1.                 title   QPRINTCS
  2.                 page    60,132
  3.  
  4. Attr            equ     [bp + 06h]      ; ATTR%
  5. StrDat          equ     [bp + 0Ah]      ;
  6. ColR            equ     [bp + 0Eh]      ;
  7. ColL            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.               les            di,StrDat
  17.               mov            cx,es:[di]
  18.               and            cx,7FFFh
  19.               jcxz           endit
  20.               push           cx
  21.               mov            dx,ds:[0]
  22.               push           dx
  23.               mov            ah,15
  24.               int            10h
  25.               cmp            al,7
  26.               jnz            color
  27.               mov            bx,0B000h
  28.               mov            dx,03BAh
  29.               jmp            short ok
  30. color:        mov            bx,0B800h
  31.               mov            dx,03DAh
  32. ok:           push           bx
  33.               pop            es
  34.               push           dx
  35.               xor            bx,bx
  36.               mov            bl,ah
  37.               lds            si,row
  38.               mov            ax,ds:[si]
  39.               dec            ax
  40.               mul            bx
  41.               shl            ax,1
  42.               lds            si,colL
  43.               mov            bl,ds:[si]
  44.               lds            si,colR
  45.               mov            bh,ds:[si]
  46.               add            bl,bh
  47.               xor            bh,bh
  48.               shr            bx,1
  49.               shr            cx,1
  50.               sub            bx,cx
  51.               dec            bx
  52.               shl            bx,1
  53.               add            bx,ax
  54.               mov            di,bx
  55.               lds            si,attr
  56.               mov            bx,ds:[si]
  57.               lds            si,StrDat
  58.               mov            si,ds:[si+2]
  59.               pop            dx
  60.               pop            ds
  61.               pop            cx
  62.               cld
  63.               cli
  64. waitlo1:      in             al,dx
  65.               test           al,01
  66.               jnz            waitlo1
  67. waithi1:      in             al,dx
  68.               test           al,01
  69.               jz             waithi1
  70.               movsb
  71.               mov            es:[di],bl
  72.               inc            di
  73.               loop           waitlo1
  74.               sti
  75. endit:        pop            es
  76.               pop            ds
  77.               pop            bp
  78. program       ends
  79.               end
  80.