home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 13 / 13.iso / s / s001 / 1.ddi / TS / ASM / PROUT.ASM < prev    next >
Encoding:
Assembly Source File  |  1987-08-09  |  1.3 KB  |  66 lines

  1. ;                *****************
  2. ;                *   PROUT.asm    *
  3. ;               **************               **************
  4. ;               * Copyright TimeSlice, Inc. 1985, 86, 87. *
  5. ;               *******************************************
  6. ;
  7. ;
  8. include    ts.inc
  9. ;
  10. start_data
  11. end_data
  12. ;
  13. start_code
  14. ;
  15. ;***
  16. ;* PROUT( X , Y , V , STRING )
  17. ;* Display 'string' on monochrome screen at position x, y.
  18. ;* Fully reentrant.
  19. ;***
  20. ;
  21. start_struct
  22. ifdef MICROSOFT
  23. mbr prtsi    d_int    ?
  24. mbr prtdi    d_int    ?
  25. endif
  26. mbr prtbp    d_int    ?
  27. mbr prtret    d_ret    ?
  28. mbr prtx    d_int    ?
  29. mbr prty    d_int    ?
  30. mbr prtv    d_int    ?
  31. mbr prtstr    d_ptr    ?
  32. ;
  33. routine prout
  34.     push    bp
  35.     push_sdi
  36.     mov    bp,sp
  37.     push    ds
  38.     push    es        ;es <-- video segment
  39.     pushf            ;save flags (especially direction flag)
  40.     cld            ;make sure to read and display l->r
  41.     mov    ax,_vidseg
  42.     mov    es,ax
  43.     ldint    ax,[bp].prty    ;row number
  44.     mov    bx,50h        ;times 80 character/row
  45.     mul    bx
  46.     add    ax,[bp].prtx    ;add column number
  47.     shl    ax,1        ;multiply by 2 for video bytes
  48.     mov    di,ax        ;di <-- offset of screen position
  49.     ldptr    ds,si,[bp].prtstr,d    ;si <-- offset of string position
  50.     ldint    bx,[bp].prtv    ;video attribute
  51.     mov    ah,bl
  52. prout0:    lodsb            ;al <- one character
  53.     cmp    al,0        ;finnished ?
  54.     je    prout1
  55.     stosw            ;put ax to screen
  56.     jmp    prout0
  57. prout1:    popf            ;restore flags, es & bp
  58.     pop    es
  59.     pop    ds
  60.     pop_sdi
  61.     pop    bp
  62. return    prout
  63. ;
  64. end_code
  65.  
  66.