home *** CD-ROM | disk | FTP | other *** search
/ ftp.update.uu.se / ftp.update.uu.se.2014.03.zip / ftp.update.uu.se / pub / rainbow / msdos / decus / RB140 / grlibfor.arj / FGLIB.ASM < prev    next >
Assembly Source File  |  1988-12-11  |  18KB  |  1,012 lines

  1. PAGE ,132
  2. TITLE FGLIB.ASM
  3. ;*************************************************************
  4. ;       Microsoft fortran interface 
  5. into GRLIB               *
  6. ;      (Computer Innovations C Graphics library)             *
  7. ;
  8. *************************************************************
  9. ;
  10. ; This is really a interface between the LARGE Fortran and 
  11.  
  12. ; small C model.
  13. ;
  14. ; Fortran Parameters are passed by far refere
  15. nce, left to right
  16. ;
  17. ; C parameters are passed right to left; arra
  18. ys & strings by
  19. ; near reference, integers & chars by value.
  20. ;
  21.  
  22. include asmc.h
  23.  
  24.     SEGEND    CODE
  25.     SEGDEF    DATA
  26.     EXTRN     f_
  27. col_:BYTE,     f_style_:BYTE,   f_type_:BYTE
  28.     EXTRN     l_col_:BYTE,     l
  29. _type_:BYTE,    l_wid_:BYTE
  30.     EXTRN     m_col_:BYTE,     m_sca_:BYTE,     m_
  31. type_:BYTE
  32.     EXTRN     t_col_:BYTE,     t_dir_:BYTE,     t_font_:BYTE
  33.     
  34. EXTRN     t_sca_:BYTE,     ws_number_:BYTE, ws_wmo_:BYTE
  35.  
  36.     public    F
  37. _WORK_BUF_
  38.  
  39. ARRAY    DW        ?
  40. ARRAY4    DW        ?
  41. BLUE    DW        ?
  42. CEN
  43. TRX    DW        ?
  44. CENTRY    DW        ?
  45. CHAR    DW        ?
  46. COUNT    DW        ?
  47. ENDDEG
  48.     DW        ?
  49. GREEN    DW        ?
  50. INDEX    DW        ?
  51. RADIUS    DW        ?
  52. RED    DW        
  53. ?
  54. STARTD    DW        ?
  55. X    DW        ?
  56. XEND    DW        ?
  57. XSTART    DW        ?
  58. Y    
  59. DW        ?
  60. YEND    DW        ?
  61. YSTART    DW        ?
  62. ZERO    DW        0
  63.  
  64. F_WORK_B
  65. UF_ LABEL BYTE                ;external name
  66. STRING        LABEL BYTE                ;ASCIZ loca
  67. l copy 
  68. WORK    DW        2048 DUP(?)            ;for circles etc
  69.  
  70.     SEGEND    
  71. DATA
  72.  
  73.     SEGDEF    CODE
  74.     Extrn     a_wmode_:NEAR, arc_:NEAR, bar_:
  75. NEAR, circle_:NEAR
  76.     Extrn     color_:NEAR, ltext_:NEAR, g_off_:NEAR, g
  77. _on_:NEAR
  78.     Extrn     openws_:NEAR, point_:NEAR, polyfill_:NEAR 
  79.     E
  80. xtrn     polyline_:NEAR, polymark_:NEAR, rectangle_:NEAR
  81.     Extrn     rq_l
  82. ocator_:NEAR, segment_:NEAR, gtext_:NEAR
  83.  
  84.     PUBLIC    GRARC,  GRBAR
  85. ,  GRCIRC, GRCLOS, GRCOLR, GRFCOL
  86.     PUBLIC    GRFSTY, GRFTYP, GRGON,  
  87. GRGOFF, GRGTXT, GRHSCR
  88.     PUBLIC    GRLCOL, GRLTYP, GRLWID, GRMCOL, GRM
  89. SCA, GRMTYP
  90.     PUBLIC    GROPEN, GRPFIL, GRPLIN, GRPMAR, GRPOIN, GRRECT
  91.  
  92.     PUBLIC    GRRQLO, GRSEGM, GRTCOL, GRTDIR, GRTEXT, GRTFON
  93.     PUBLI
  94. C    GRTSCA, GRVSCR, GRWMOD
  95.  
  96.  
  97. ;make a local ASCIZ copy of string
  98.  
  99. ;ES:SI must point to source
  100. ;CX must contain count
  101. movc    PROC      
  102. NEAR
  103.     PUSH      DS
  104.     PUSH      ES
  105.     POP       DS            ;DS=ES
  106.     POP       ES
  107.             ;ES=DS
  108.     LEA       DI, STRING
  109.     REP MOVSB
  110.     MOV       AL,0            ;add
  111.  ASCIZ terminator
  112.     STOSB
  113.     PUSH      DS
  114.     PUSH      ES
  115.     POP       DS
  116.             ;DS=ES
  117.     POP       ES            ;ES=DS
  118.     RET
  119. movc    ENDP
  120.  
  121. ;***********************************
  122.  
  123. ;*   SUBROUTINE GROPEN()
  124. ;***********************************
  125.  
  126. GROPEN    PROC      FAR
  127.     PUSH      B
  128. P
  129.     MOV       BP,SP
  130.     LES       BX,[BP].06H
  131.     MOV       AX,ES:[BX]
  132.     PUS
  133. H      AX
  134.     PUSH      DS            ;call with ES set to DS
  135.     POP       ES
  136.     CALL
  137.       openws_        ;open workstation
  138.     ADD       SP,2            ;C convention remove 
  139. params from stack
  140.     MOV       SP,BP
  141.     POP       BP
  142.     RET
  143. GROPEN    END
  144. P
  145.  
  146. ;***********************************
  147. ;*   SUBROUTINE GRGON()
  148. ;***********************************
  149.  
  150. GRGON    PROC      FA
  151. R
  152.     PUSH      BP
  153.     MOV       BP,SP
  154.     PUSH      DS            ;call with ES set to
  155.  DS
  156.     POP       ES
  157.     CALL      g_on_            ;turn Graphics ON
  158.     MOV       SP,B
  159. P
  160.     POP       BP
  161.     RET
  162. GRGON    ENDP
  163.  
  164.  
  165. ;***********************************
  166. ;*   SUBROUTI
  167. NE GRCIRC()
  168. ;***********************************
  169.  
  170. GRCIRC    PROC      FAR
  171.     PUSH      BP
  172.     MOV       
  173. BP,SP
  174.     LES       BX,[BP].0EH        ;p1
  175.     MOV       AX,ES:[BX]
  176.     MOV       CEN
  177. TRX,AX
  178.     LES       BX,[BP].0AH        ;p2
  179.     MOV       AX,ES:[BX]
  180.     MOV       CE
  181. NTRY,AX
  182.     LES       BX,[BP].06H        ;p3
  183.     MOV       AX,ES:[BX]
  184.     MOV       R
  185. ADIUS,AX
  186.  
  187.     MOV       AX,RADIUS
  188.     PUSH      AX
  189.     MOV       AX,CENTRY
  190.  
  191.     PUSH      AX
  192.     MOV       AX,CENTRX
  193.     PUSH      AX
  194.     PUSH      DS            ;call 
  195. with ES set to DS
  196.     POP       ES
  197.     CALL      circle_
  198.     ADD       SP,6            ;
  199. C convention remove params from stack
  200.     MOV       SP,BP
  201.     POP       BP
  202.  
  203.     RET
  204. GRCIRC    ENDP
  205.  
  206. ;***********************************
  207. ;*   SUBROUTINE GRARC()
  208. ;***********************************
  209.  
  210.  
  211. GRARC    PROC      FAR
  212.     PUSH      BP
  213.     MOV       BP,SP
  214.     LES       BX,[BP]
  215. .16H
  216.     MOV       AX,ES:[BX]
  217.     MOV       CENTRX,AX
  218.     LES       BX,[BP].12H
  219.  
  220.     MOV       AX,ES:[BX]
  221.     MOV       CENTRY,AX
  222.     LES       BX,[BP].0EH
  223.     MO
  224. V       AX,ES:[BX]
  225.     MOV       RADIUS,AX
  226.     LES       BX,[BP].0AH
  227.     MOV       AX
  228. ,ES:[BX]
  229.     MOV       STARTD,AX
  230.     LES       BX,[BP].06H
  231.     MOV       AX,ES:[B
  232. X]
  233.     MOV       ENDDEG,AX
  234.     MOV       AX,ENDDEG
  235.     PUSH      AX
  236.     MOV       A
  237. X,STARTD
  238.     PUSH      AX
  239.     MOV       AX,RADIUS
  240.     PUSH      AX
  241.     MOV       A
  242. X,CENTRY
  243.     PUSH      AX
  244.     MOV       AX,CENTRX
  245.     PUSH      AX
  246.     PUSH      
  247. DS            ;call with ES set to DS
  248.     POP       ES
  249.     CALL      arc_
  250.     ADD       
  251. SP,10            ;C convention remove params from stack
  252.     MOV       SP,BP
  253.     PO
  254. P       BP
  255.     RET
  256. GRARC    ENDP
  257.  
  258. ;***********************************
  259. ;*   SUBROUTINE GRSEGM()
  260.  
  261. ;***********************************
  262.  
  263. GRSEGM    PROC      FAR
  264.     PUSH      BP
  265.     MOV       BP,SP
  266.     LE
  267. S       BX,[BP].16H
  268.     MOV       AX,ES:[BX]
  269.     MOV       CENTRX,AX
  270.     LES       BX
  271. ,[BP].12H
  272.     MOV       AX,ES:[BX]
  273.     MOV       CENTRY,AX
  274.     LES       BX,[BP].
  275. 0EH
  276.     MOV       AX,ES:[BX]
  277.     MOV       RADIUS,AX
  278.     LES       BX,[BP].0AH
  279.  
  280.     MOV       AX,ES:[BX]
  281.     MOV       STARTD,AX
  282.     LES       BX,[BP].06H
  283.     MOV       
  284. AX,ES:[BX]
  285.     MOV       ENDDEG,AX
  286.     MOV       AX,ENDDEG
  287.     PUSH      AX
  288.     
  289. MOV       AX,STARTD
  290.     PUSH      AX
  291.     MOV       AX,RADIUS
  292.     PUSH      AX
  293.     
  294. MOV       AX,CENTRY
  295.     PUSH      AX
  296.     MOV       AX,CENTRX
  297.     PUSH      AX
  298.     
  299. PUSH      DS            ;call with ES set to DS
  300.     POP       ES
  301.     CALL      segment_
  302.  
  303.     ADD       SP,10            ;C convention remove params from stack
  304.     MOV       SP,
  305. BP
  306.     POP       BP
  307.     RET
  308. GRSEGM    ENDP
  309.  
  310. ;***********************************
  311. ;*   SUBROUTINE
  312.  GRCOLR()
  313. ;***********************************
  314.  
  315. GRCOLR    PROC      FAR
  316.     PUSH      BP
  317.     MOV       BP
  318. ,SP
  319.     LES       BX,[BP].12H
  320.     MOV       AX,ES:[BX]
  321.     MOV       INDEX,AX
  322.  
  323.     LES       BX,[BP].0EH
  324.     MOV       AX,ES:[BX]
  325.     MOV       RED,AX
  326.     LES       B
  327. X,[BP].0AH
  328.     MOV       AX,ES:[BX]
  329.     MOV       GREEN,AX
  330.     LES       BX,[BP].
  331. 06H
  332.     MOV       AX,ES:[BX]
  333.     MOV       BLUE,AX
  334.     MOV       AX,BLUE
  335.     PUS
  336. H      AX
  337.     MOV       AX,GREEN
  338.     PUSH      AX
  339.     MOV       AX,RED
  340.     PUSH      
  341. AX
  342.     MOV       AX,INDEX
  343.     PUSH      AX
  344.     PUSH      DS            ;call with ES se
  345. t to DS
  346.     POP       ES
  347.     CALL      color_
  348.     ADD       SP,8            ;C conventio
  349. n remove params from stack
  350.     MOV       SP,BP
  351.     POP       BP
  352.     RET
  353. GR
  354. COLR    ENDP
  355.  
  356. ;***********************************
  357. ;*   SUBROUTINE GRBAR()
  358. ;***********************************
  359.  
  360. GRBAR    
  361. PROC      FAR
  362.     PUSH      BP
  363.     MOV       BP,SP
  364.     LES       BX,[BP].06H
  365.     P
  366. USH      BX
  367.     PUSH      DS            ;call with ES set to DS
  368.     POP       ES
  369.     CA
  370. LL      bar_
  371.     ADD       SP,2            ;C convention remove params from stack
  372.     
  373. MOV       SP,BP
  374.     POP       BP
  375.     RET
  376. GRBAR    ENDP
  377.  
  378. ;***********************************
  379. ;*   SU
  380. BROUTINE GRPLIN()
  381. ;***********************************
  382.  
  383. GRPLIN    PROC      FAR
  384.     PUSH      BP
  385.     
  386. MOV       BP,SP
  387.     LES       BX,[BP].0AH
  388.     MOV       AX,ES:[BX]
  389.     MOV       COUN
  390. T,AX
  391.     LES       BX,[BP].06H
  392.     MOV       ARRAY,BX
  393.     MOV       AX,ARRAY
  394.     
  395. PUSH      AX
  396.     MOV       AX,COUNT
  397.     PUSH      AX
  398.     PUSH      DS            ;call wit
  399. h ES set to DS
  400.     POP       ES
  401.     CALL      polyline_
  402.     ADD       SP,4            ;C
  403.  convention remove params from stack
  404.     MOV       SP,BP
  405.     POP       BP
  406.     
  407. RET
  408. GRPLIN    ENDP
  409.  
  410. ;***********************************
  411. ;*   SUBROUTINE GRPMAR()
  412. ;***********************************
  413.  
  414.  
  415. GRPMAR    PROC      FAR
  416.     PUSH      BP
  417.     MOV       BP,SP
  418.     LES       BX,[BP].
  419. 0AH
  420.     MOV       AX,ES:[BX]
  421.     MOV       COUNT,AX
  422.     LES       BX,[BP].06H
  423.  
  424.     MOV       ARRAY,BX
  425.     MOV       AX,ARRAY
  426.     PUSH      AX
  427.     MOV       AX,COUNT
  428.  
  429.     PUSH      AX
  430.     PUSH      DS            ;call with ES set to DS
  431.     POP       ES
  432.  
  433.     CALL      polymark_
  434.     ADD       SP,4            ;C convention remove params from s
  435. tack
  436.     MOV       SP,BP
  437.     POP       BP
  438.     RET
  439. GRPMAR    ENDP
  440.  
  441. ;***********************************
  442.  
  443. ;*   SUBROUTINE GRPFIL()
  444. ;***********************************
  445.  
  446. GRPFIL    PROC      FAR
  447.     PUSH
  448.       BP
  449.     MOV       BP,SP
  450.     LES       BX,[BP].0AH
  451.     MOV       AX,ES:[BX]
  452.     
  453. MOV       COUNT,AX
  454.     LES       BX,[BP].06H
  455.     MOV       ARRAY,BX
  456.     MOV       AX,
  457. ARRAY
  458.     PUSH      AX
  459.     MOV       AX,COUNT
  460.     PUSH      AX
  461.     PUSH      DS            
  462. ;call with ES set to DS
  463.     POP       ES
  464.     CALL      polyfill_
  465.     ADD       S
  466. P,4            ;C convention remove params from stack
  467.     MOV       SP,BP
  468.     POP       
  469. BP
  470.     RET
  471. GRPFIL    ENDP
  472.  
  473. ;***********************************
  474. ;*   SUBROUTINE GRGTXT()
  475. ;
  476. ***********************************
  477.  
  478. GRGTXT    PROC      FAR
  479.     PUSH      BP
  480.     MOV       BP,SP
  481.     LES       
  482. BX,[BP].12H
  483.     MOV       AX,ES:[BX]
  484.     MOV       X,AX
  485.     LES       BX,[BP].0EH
  486.  
  487.     MOV       AX,ES:[BX]
  488.     MOV       Y,AX
  489.  
  490.     LES       SI,[BP].0AH        ;ch
  491. aracter string addr
  492.     LES       BX,[BP].06H        ;count
  493.     MOV       CX,ES:[B
  494. X]
  495.     CALL      movc
  496.  
  497.     LEA       AX, STRING
  498.     PUSH      AX
  499.     MOV       
  500. AX,Y
  501.     PUSH      AX
  502.     MOV       AX,X
  503.     PUSH      AX
  504.     PUSH      DS            ;ca
  505. ll with ES set to DS
  506.     POP       ES
  507.     CALL      gtext_
  508.     ADD       SP,6            
  509. ;C convention remove params from stack
  510.     MOV       SP,BP
  511.     POP       BP
  512.  
  513.     RET
  514. GRGTXT    ENDP
  515.  
  516. ;***********************************
  517. ;*   SUBROUTINE GRTEXT()
  518. ;***********************************
  519.  
  520.  
  521. GRTEXT    PROC      FAR
  522.     PUSH      BP
  523.     MOV       BP,SP
  524.     LES       BX,[BP
  525. ].12H
  526.     MOV       AX,ES:[BX]
  527.     MOV       X,AX
  528.     LES       BX,[BP].0EH
  529.     
  530. MOV       AX,ES:[BX]
  531.     MOV       Y,AX
  532.     LES       SI,[BP].0AH
  533.     LES       BX,[B
  534. P].06H
  535.     MOV       CX,ES:[BX]
  536.     CALL      movc
  537.     LEA       AX, STRING
  538.     
  539. PUSH      AX
  540.     MOV       AX,Y
  541.     PUSH      AX
  542.     MOV       AX,X
  543.     PUSH      AX
  544.  
  545.     PUSH      DS            ;call with ES set to DS
  546.     POP       ES
  547.     CALL      ltext
  548. _
  549.     ADD       SP,6            ;C convention remove params from stack
  550.     MOV       S
  551. P,BP
  552.     POP       BP
  553.     RET
  554. GRTEXT    ENDP
  555.  
  556. ;***********************************
  557. ;*   SUBROUTI
  558. NE GRRQLO()
  559. ;***********************************
  560.  
  561. GRRQLO    PROC      FAR
  562.     PUSH      BP
  563.     MOV       
  564. BP,SP
  565.     LES       BX,[BP].16H
  566.     MOV       AX,ES:[BX]
  567.     MOV       XSTART,AX
  568.  
  569.     LES       BX,[BP].12H
  570.     MOV       AX,ES:[BX]
  571.     MOV       YSTART,AX
  572.     LE
  573. S       BX,[BP].0EH
  574.     MOV       AX,ES:[BX]
  575.     MOV       CHAR,AX
  576.     LES       BX,[
  577. BP].0AH
  578.     MOV       AX,ES:[BX]
  579.     MOV       XEND,AX
  580.     LES       BX,[BP].06H
  581.  
  582.     MOV       AX,ES:[BX]
  583.     MOV       YEND,AX
  584.     MOV       AX,YEND
  585.     PUSH      A
  586. X
  587.     MOV       AX,XEND
  588.     PUSH      AX
  589.     MOV       AX,CHAR
  590.     PUSH      AX
  591.  
  592.     MOV       AX,YSTART
  593.     PUSH      AX
  594.     MOV       AX,XSTART
  595.     PUSH      AX
  596.  
  597.     MOV       AX,ZERO
  598.     PUSH      AX
  599.     PUSH      DS            ;call with ES set to DS
  600.  
  601.     POP       ES
  602.     CALL      rq_locator_
  603.     ADD       SP,12            ;C convention
  604.  remove params from stack
  605.     LES       BX,[BP].0EH
  606.     MOV       AX,CHAR
  607.     
  608. MOV       ES:[BX],AL
  609.     LES       BX,[BP].0AH
  610.     MOV       AX,XEND
  611.     MOV       ES
  612. :[BX],AX
  613.     LES       BX,[BP].06H
  614.     MOV       AX,YEND
  615.     MOV       ES:[BX],AX
  616.  
  617.     MOV       SP,BP
  618.     POP       BP
  619.     RET
  620. GRRQLO    ENDP
  621.  
  622. ;***********************************
  623.  
  624. ;*   SUBROUTINE GRVSCR()
  625. ;***********************************
  626.  
  627. GRVSCR    PROC      FAR
  628. ;    PUSH      
  629. BP
  630. ;    MOV       BP,SP
  631. ;    MOV       SP,BP
  632. ;    POP       BP
  633.     RET
  634. GRVSCR
  635.     ENDP
  636.  
  637. ;***********************************
  638. ;*   SUBROUTINE GRHSCR()
  639. ;***********************************
  640.  
  641. GRHSCR    PR
  642. OC      FAR
  643. ;    PUSH      BP
  644. ;    MOV       BP,SP
  645. ;    MOV       SP,BP
  646. ;    POP       
  647. BP
  648.     RET
  649. GRHSCR    ENDP
  650.  
  651. ;***********************************
  652. ;*   SUBROUTINE GRPOIN()
  653. ;
  654. ***********************************
  655.  
  656. GRPOIN    PROC      FAR
  657.     PUSH      BP
  658.     MOV       BP,SP
  659.     LES       
  660. BX,[BP].0AH
  661.     MOV       AX,ES:[BX]
  662.     MOV       X,AX
  663.     LES       BX,[BP].06H
  664.  
  665.     MOV       AX,ES:[BX]
  666.     MOV       Y,AX
  667.     MOV       AX,Y
  668.     PUSH      AX
  669.  
  670.     MOV       AX,X
  671.     PUSH      AX
  672.     PUSH      DS            ;call with ES set to DS
  673.  
  674.     POP       ES
  675.     CALL      point_
  676.     ADD       SP,4            ;C convention remove pa
  677. rams from stack
  678.     MOV       SP,BP
  679.     POP       BP
  680.     RET
  681. GRPOIN    ENDP
  682.  
  683.  
  684. ;***********************************
  685. ;*   SUBROUTINE GRRECT()
  686. ;***********************************
  687.  
  688. GRRECT    PROC      FAR
  689.  
  690.     PUSH      BP
  691.     MOV       BP,SP
  692.     LES       AX,[BP].06H
  693.     MOV       ARRAY
  694. 4,AX
  695.     MOV       AX,ARRAY4
  696.     PUSH      AX
  697.     PUSH      DS            ;call with ES
  698.  set to DS
  699.     POP       ES
  700.     CALL      rectangle_
  701.     ADD       SP,2            ;C co
  702. nvention remove params from stack
  703.     MOV       SP,BP
  704.     POP       BP
  705.     RE
  706. T
  707. GRRECT    ENDP
  708.  
  709. ;***********************************
  710. ;*   SUBROUTINE GRTSCA()
  711. ;***********************************
  712.  
  713.  
  714. GRTSCA    PROC      FAR
  715.     PUSH      BP
  716.     MOV       BP,SP
  717.     LES       BX,[BP].06
  718. H
  719.     MOV       AX,ES:[BX]
  720.     MOV       BYTE PTR t_sca_,AL
  721.     MOV       SP,BP
  722.  
  723.     POP       BP
  724.     RET
  725. GRTSCA    ENDP
  726.  
  727. ;***********************************
  728. ;*   SUBROUTINE GRC
  729. LOS()
  730. ;***********************************
  731.  
  732. GRCLOS    PROC      FAR
  733.     PUSH      BP
  734.     MOV       BP,SP
  735.  
  736.     MOV       BYTE PTR ws_number_,0
  737.     PUSH      DS            ;call with ES set to D
  738. S
  739.     POP       ES
  740.     CALL      g_off_
  741.     MOV       SP,BP
  742.     POP       BP
  743.     R
  744. ET
  745. GRCLOS    ENDP
  746.  
  747. ;***********************************
  748. ;*   SUBROUTINE GRGOFF()
  749. ;***********************************
  750.  
  751.  
  752. GRGOFF    PROC      FAR
  753.     PUSH      BP
  754.     MOV       BP,SP
  755.     PUSH      DS            ;
  756. call with ES set to DS
  757.     POP       ES
  758.     CALL      g_off_
  759.     MOV       SP,BP
  760.  
  761.     POP       BP
  762.     RET
  763. GRGOFF    ENDP
  764.  
  765. ;***********************************
  766. ;*   SUBROUTINE G
  767. RTDIR()
  768. ;***********************************
  769.  
  770. GRTDIR    PROC      FAR
  771.     PUSH      BP
  772.     MOV       BP,S
  773. P
  774.     LES       BX,[BP].06H
  775.     MOV       AX,ES:[BX]
  776.     MOV       BYTE PTR t_dir
  777. _,AL
  778.     MOV       SP,BP
  779.     POP       BP
  780.     RET
  781. GRTDIR    ENDP
  782.  
  783. ;***********************************
  784.  
  785. ;*   SUBROUTINE GRFCOL()
  786. ;***********************************
  787.  
  788. GRFCOL    PROC      FAR
  789.     PUSH
  790.       BP
  791.     MOV       BP,SP
  792.     LES       BX,[BP].06H
  793.     MOV       AX,ES:[BX]
  794.     
  795. MOV       BYTE PTR f_col_,AL
  796.     MOV       SP,BP
  797.     POP       BP
  798.     RET
  799. GRFC
  800. OL    ENDP
  801.  
  802. ;***********************************
  803. ;*   SUBROUTINE GRFSTY()
  804. ;***********************************
  805.  
  806. GRFSTY    
  807. PROC      FAR
  808.     PUSH      BP
  809.     MOV       BP,SP
  810.     LES       BX,[BP].06H
  811.     M
  812. OV       AX,ES:[BX]
  813.     MOV       BYTE PTR f_style_,AL
  814.     MOV       SP,BP
  815.     PO
  816. P       BP
  817.     RET
  818. GRFSTY    ENDP
  819.  
  820. ;***********************************
  821. ;*   SUBROUTINE GRFTYP()
  822.  
  823. ;***********************************
  824.  
  825. GRFTYP    PROC      FAR
  826.     PUSH      BP
  827.     MOV       BP,SP
  828.     LE
  829. S       BX,[BP].06H
  830.     MOV       AX,ES:[BX]
  831.     MOV       BYTE PTR f_type_,AL
  832.  
  833.     MOV       SP,BP
  834.     POP       BP
  835.     RET
  836. GRFTYP    ENDP
  837.  
  838. ;***********************************
  839. ;*   
  840. SUBROUTINE GRLCOL()
  841. ;***********************************
  842.  
  843. GRLCOL    PROC      FAR
  844.     PUSH      BP
  845.  
  846.     MOV       BP,SP
  847.     LES       BX,[BP].06H
  848.     MOV       AX,ES:[BX]
  849.     MOV       BY
  850. TE PTR l_col_,AL
  851.     MOV       SP,BP
  852.     POP       BP
  853.     RET
  854. GRLCOL    ENDP
  855.  
  856.  
  857. ;***********************************
  858. ;*   SUBROUTINE GRLTYP()
  859. ;***********************************
  860.  
  861. GRLTYP    PROC      F
  862. AR
  863.     PUSH      BP
  864.     MOV       BP,SP
  865.     LES       BX,[BP].06H
  866.     MOV       AX,
  867. ES:[BX]
  868.     MOV       BYTE PTR l_type_,AL
  869.     MOV       SP,BP
  870.     POP       BP
  871.  
  872.     RET
  873. GRLTYP    ENDP
  874.  
  875. ;***********************************
  876. ;*   SUBROUTINE GRLWID()
  877. ;***********************************
  878.  
  879.  
  880. GRLWID    PROC      FAR
  881.     PUSH      BP
  882.     MOV       BP,SP
  883.     LES       BX,[BP
  884. ].06H
  885.     MOV       AX,ES:[BX]
  886.     MOV       BYTE PTR l_wid_,AL
  887.     MOV       SP,
  888. BP
  889.     POP       BP
  890.     RET
  891. GRLWID    ENDP
  892.  
  893. ;***********************************
  894. ;*   SUBROUTINE
  895.  GRMCOL()
  896. ;***********************************
  897.  
  898. GRMCOL    PROC      FAR
  899.     PUSH      BP
  900.     MOV       BP
  901. ,SP
  902.     LES       BX,[BP].06H
  903.     MOV       AX,ES:[BX]
  904.     MOV       BYTE PTR m_c
  905. ol_,AL
  906.     MOV       SP,BP
  907.     POP       BP
  908.     RET
  909. GRMCOL    ENDP
  910.  
  911. ;***********************************
  912.  
  913. ;*   SUBROUTINE GRMSCA()
  914. ;***********************************
  915.  
  916. GRMSCA    PROC      FAR
  917.     PUSH
  918.       BP
  919.     MOV       BP,SP
  920.     LES       BX,[BP].06H
  921.     MOV       AX,ES:[BX]
  922.     
  923. MOV       BYTE PTR m_sca_,AL
  924.     MOV       SP,BP
  925.     POP       BP
  926.     RET
  927. GRMS
  928. CA    ENDP
  929.  
  930. ;***********************************
  931. ;*   SUBROUTINE GRMTYP()
  932. ;***********************************
  933.  
  934. GRMTYP    
  935. PROC      FAR
  936.     PUSH      BP
  937.     MOV       BP,SP
  938.     LES       BX,[BP].06H
  939.     M
  940. OV       AX,ES:[BX]
  941.     MOV       BYTE PTR m_type_,AL
  942.     MOV       SP,BP
  943.     POP
  944.        BP
  945.     RET
  946. GRMTYP    ENDP
  947.  
  948. ;***********************************
  949. ;*   SUBROUTINE GRWMOD()
  950.  
  951. ;***********************************
  952.  
  953. GRWMOD    PROC      FAR
  954.     PUSH      BP
  955.     MOV       BP,SP
  956.     LE
  957. S       BX,[BP].06H
  958.     MOV       AX,ES:[BX]
  959.     MOV       BYTE PTR ws_wmo_,AL
  960.  
  961.     PUSH      DS            ;call with ES set to DS
  962.     POP       ES
  963.     CALL      a_wmode
  964. _
  965.     MOV       SP,BP
  966.     POP       BP
  967.     RET
  968. GRWMOD    ENDP
  969.  
  970. ;***********************************
  971.  
  972. ;*   SUBROUTINE GRTCOL()
  973. ;***********************************
  974.  
  975. GRTCOL    PROC      FAR
  976.     PUSH      B
  977. P
  978.     MOV       BP,SP
  979.     LES       BX,[BP].06H
  980.     MOV       AX,ES:[BX]
  981.     MOV
  982.        BYTE PTR t_col_,AL
  983.     MOV       SP,BP
  984.     POP       BP
  985.     RET
  986. GRTCOL    
  987. ENDP
  988.  
  989. ;***********************************
  990. ;*   SUBROUTINE GRTFON()
  991. ;***********************************
  992.  
  993. GRTFON    PROC
  994.       FAR
  995.     PUSH      BP
  996.     MOV       BP,SP
  997.     LES       BX,[BP].06H
  998.     MOV       
  999. AX,ES:[BX]
  1000.     MOV       BYTE PTR t_font_,AL
  1001.     MOV       SP,BP
  1002.     POP       BP
  1003.  
  1004.     RET
  1005. GRTFON    ENDP
  1006.  
  1007.  
  1008. include epilogue.h
  1009.     END
  1010. 
  1011. 
  1012.