home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v2.zip / DDKX86 / DBCSDD / SRC_DBCS / VDHV / COMMNPVB.ASM < prev    next >
Assembly Source File  |  1995-04-14  |  26KB  |  497 lines

  1. ;*DDK*************************************************************************/
  2. ;
  3. ; COPYRIGHT (C) Microsoft Corporation, 1989
  4. ; COPYRIGHT    Copyright (C) 1995 IBM Corporation
  5. ;
  6. ;    The following IBM OS/2 WARP source code is provided to you solely for
  7. ;    the purpose of assisting you in your development of OS/2 WARP device
  8. ;    drivers. You may use this code in accordance with the IBM License
  9. ;    Agreement provided in the IBM Device Driver Source Kit for OS/2. This
  10. ;    Copyright statement may not be removed.;
  11. ;*****************************************************************************/
  12.         PAGE    60,132
  13.         TITLE   COMMNPVB.ASM -- PVB Write Routines for COMMON Format
  14.  
  15. ;/*****************************************************************************
  16. ;*
  17. ;* SOURCE FILE NAME = COMMNPVB.ASM
  18. ;*
  19. ;* DESCRIPTIVE NAME = Regen Buffer Update Routine
  20. ;*
  21. ;*
  22. ;* VERSION      V2.0
  23. ;*
  24. ;* DATE
  25. ;*
  26. ;* DESCRIPTION
  27. ;*
  28. ;* FUNCTIONS    WriteCellStrE, WriteCharStrE, WriteCharStrAttrE,
  29. ;*              WriteNCharE, WriteNAttrE, WriteNCellE
  30. ;*
  31. ;* NOTES        NONE
  32. ;*
  33. ;* STRUCTURES   NONE
  34. ;*
  35. ;* EXTERNAL REFERENCES  NONE
  36. ;*
  37. ;* EXTERNAL REFERENCES  LocateBuffAddr  (in XGAREAD.ASM)
  38. ;*
  39. ;*              NONE
  40. ;*
  41. ;* CHANGE ACTIVIY =
  42. ;*   DATE      FLAG       APAR    CHANGE DESCRIPTION
  43. ;*   --------  ---------- -----   --------------------------------------
  44. ;*   mm/dd/yy  @Vr.mpppxx xxxxx   xxxxxxx
  45. ;*             J-KK0821           KKJ, Re-adjust the end offset value.
  46. ;*   09/13/89  j-ys913                     fix for P0014 sct$12cc. (The 2nd attribute of cell with
  47. ;*                                     which the scrolled area is filled was ignored.)
  48. ;*   09/25/89  J-KK0925           KKJ, ROM Font -> RAM Font
  49. ;*   09/27/89  J-KK0927           KKJ, PTR0012, Scroll Cell was wrong.
  50. ;*   10/17/89  J-KK1017           KKJ, Add Set_StartEndRow for Xvio Redraw.
  51. ;*   10/19/89  J-KK1019           KKJ, Re-adjust the end offset value for Redraw at WrtNAttr
  52. ;*             j-ys1020,1023           for MS-Xvio support.
  53. ;*   10/31/89  J-KK1031           KKJ, Delete FONTCALL.
  54. ;*   11/15/89  j-ys1115                MS-XVIO,     in WrtNattr (P0149 SCT$12CC) fix.
  55. ;*   11/16/89  j-ys1116                MS-XVIO, Avoid Trap-D in the edge.
  56. ;*   08/09/91  J-TS080991              VIO write over XVIO PS destroy screen. PTR JS01621
  57. ;*             J-TS100391         TSO, Fix Buf - JS01739
  58. ;*             J-TS011492         TSO, Fix     - JS02411
  59. ;****************************************************************************/
  60.  
  61.         .286c                           ; 286 protect mode instructions
  62.  
  63.         .xlist
  64.         INCLUDE struc.inc               ; Structure macro
  65.         INCLUDE vdhequ.inc              ; Buffer update equates
  66.         INCLUDE vdhstruc.inc            ; Buffer update data structures
  67.         include vdh.inc                 ; Definitions
  68.         include vgaemu.inc              ; VGA text emulation video buffer
  69.         .list
  70.  
  71. _DATA   SEGMENT WORD PUBLIC 'DATA'
  72. ;************************************************************************
  73. ;*  Global data                                                         *
  74. ;************************************************************************
  75.         extrn   VideoBuffSel : word
  76.  
  77. _DATA   ENDS
  78.  
  79. INSTSEG SEGMENT PARA PUBLIC 'DATA'
  80. ;************************************************************************
  81. ;*  Per process instance data                                           *
  82. ;************************************************************************
  83. INSTSEG ENDS
  84.  
  85.         EXTRN   Set_StartEndRow:NEAR    ; StartRow and EnsRow          J-KK1017
  86.  
  87.         extrn   SetupAPAWrite : far     ; setup APA write mode
  88.         extrn   ShowCursor    : near    ; show cursor
  89.         extrn   HideCursor    : near    ; hide cursor
  90.         extrn   ShadowToAPA   : near    ; Update APA based on shadow buf
  91.         extrn   FillWithSBCS  : near    ; fill shadow & APA with SBCS char
  92.  
  93. R2CSEG  SEGMENT WORD    PUBLIC 'CODE'
  94.         ASSUME  CS:R2CSEG,DS:NOTHING,ES:NOTHING
  95.  
  96. ;********************** START OF SPECIFICATIONS *************************
  97. ;*                                                                      *
  98. ;* SUBROUTINE NAME:     UpdateRegenC                                    *
  99. ;*                                                                      *
  100. ;* DESCRIPTIVE NAME:    Call a Update Regen (PVB) routine               *
  101. ;*                      For COMMON DBCS mode.                           *
  102. ;*                                                                      *
  103. ;* INPUT:                                                               *
  104. ;* SS:BP  --->  Stack frame                     (see VDHSTRUC.INC)      *
  105. ;* ES:DI  --->  LVB Address                     (see XGAWRITE.ASM)      *
  106. ;*                                                                      *
  107. ;* INTERNAL REFERENCES: UpdateRegenOneLineC                             *
  108. ;*                                                                      *
  109. ;* EXTERNAL REFERENCES: ShowCursor, HideCursor, SetupAPAWrite,          *
  110. ;*                      Set_StartEndRow                                 *
  111. ;*                                                                      *
  112. ;********************** END OF SPECIFICATIONS ***************************
  113. UpdateRegenC    proc near
  114.         public  UpdateRegenC
  115.  
  116.         .if     <[bp].PVB_Sel ne 0> and ; PVB Update ?
  117.         .if     <[bp].Sub_length gt 0>  ; one or more character update?
  118.  
  119.             call    HideCursor          ; hide cursor
  120.  
  121.             call    SetupAPAWrite       ; setup APA write mode
  122.             mov     [bp].APAPrevColor, -1   ; reset preset color
  123.  
  124.             mov     ds, [bp].LVB_Sel    ; setup LVB/Shadow PVB pointer
  125.             mov     si, [bp].Sub_offset ; ds:si = LVB top
  126.             mov     ax, _DATA           ; es:di = Shadow PVB top
  127.             mov     es, ax              ; 
  128.             mov     es, es:VideoBuffSel ; 
  129.             mov     di, [bp].PVBOff     ; PVB buffer is 2 bytes/cell
  130.             shl     di, 1               ; Shadow buffer is 4 bytes/cell
  131.  
  132.             mov     dx, [bp].Sub_length ; setup total cell count
  133.  
  134.             .if     <dx g [bp].FirstRow> ; Update region is included in a line?
  135.                 mov     cx, [bp].FirstRow ; No, set first row length
  136.             .else
  137.                 mov     cx, dx          ; Yes, set total length
  138.             .endif
  139.  
  140. UpdateRegenLoopC:
  141.                 push    cx                  ; save current line counter
  142.                 push    dx                  ; & total counter
  143.  
  144.                 call    UpdateRegenOneLineC ; call one line update function
  145.  
  146.                 pop     dx                  ; restore current line counter
  147.                 pop     cx                  ; & total counter
  148.  
  149.                 sub     dx, cx          ; dec total length
  150.                 jz      UpdateRegenLoopExitC    ; end ? then exit the loop
  151.  
  152.                 .if     <dx gt [bp].RowLength>  ; set next line length
  153.                     mov     cx, [bp].RowLength  ; full line
  154.                 .else
  155.                     mov     cx, dx              ; last line
  156.                 .endif
  157.                 add     di, [BP].PVBSkip        ; skip PVB pointer to next line
  158.                 add     di, [BP].PVBSkip        ; 2 times PVBSkip is 2 byte/cell
  159.                 jmp     UpdateRegenLoopC        ; goto next line
  160.  
  161. UpdateRegenLoopExitC:
  162.             mov     al, 2               ; 4 bytes Cell
  163. ;J-TS080991 shr     di, 1               ; adjust ptr
  164.             call    Set_StartEndRow     ; 
  165.  
  166.             call    ShowCursor          ; show cursor
  167.  
  168.         .endif
  169.         ret
  170. UpdateRegenC endp
  171.  
  172. ;********************** START OF SPECIFICATIONS *************************
  173. ;*                                                                      *
  174. ;* SUBROUTINE NAME:     UpdateRegenOneLineC                             *
  175. ;*                                                                      *
  176. ;* DESCRIPTIVE NAME:    Update shadow buffer & call APA update routine  *
  177. ;*                      For COMMON DBCS mode.                           *
  178. ;*                                                                      *
  179. ;* INPUT:                                                               *
  180. ;* CX           Cell Count                                              *
  181. ;* DS:SI  --->  LVB Address                                             *
  182. ;* ES:DI  --->  Shadow Buffer Address                                   *
  183. ;*                                                                      *
  184. ;* INTERNAL REFERENCES: CommonToAtlas3                                  *
  185. ;*                                                                      *
  186. ;* EXTERNAL REFERENCES: ShadowToAPA                                     *
  187. ;*                                                                      *
  188. ;********************** END OF SPECIFICATIONS ***************************
  189. UpdateRegenOneLineC proc    near
  190.         public  UpdateRegenOneLineC
  191.  
  192.         mov     [bp].APA_from, di       ; save shadow top pointer & char cnt
  193.         mov     [bp].APA_cnt, cx        ; for latter use (update APA image)
  194.  
  195.         .if     <di ge 4> and           ; First character check
  196.         mov     bl, es:shadow[di+3]     ; Target header is DBCS 2nd ?
  197.         and     bl, dbcsA1+dbcsA2       ; 
  198.         .if     <bl eq dbcsA1+dbcsA2>   ; Overwrite DBCS 1st
  199.             mov     byte ptr es:shadow[di-4], 20h                   ; set space
  200.             mov     byte ptr es:shadow[di-1], EXTRA_ATTRHigh+CHANGE_BITHigh ; reset flag
  201.             sub     [bp].APA_from, 4    ; adjust APA update area
  202.             inc     [bp].APA_cnt
  203.         .endif                          ; 
  204.  
  205.         mov     bl, [si+3]              ; Source header is DBCS 2nd ?
  206.         and     bl, dbcsA1+dbcsA2       ; 
  207.         .if     <bl eq dbcsA1+dbcsA2>   ; 
  208.             mov     al, 20h             ; Yes, then write SBCS space
  209.             mov     dl, [si+2]          ; 
  210.             mov     dh, EXTRA_ATTRHigh  ; 
  211.         .else
  212.             mov     al, [si]            ; No, get character code from LVB
  213.             mov     dx, [si+2]          ; 
  214.         .endif
  215.         mov     ah, [si+1]              ; Get attribute
  216.  
  217. OneLineLoopC:
  218.  
  219.         .if     <cx eq 1>               ; Last character check
  220.  
  221.             .if     <di lt [bp].Sub_PVBend> and ; 
  222.             mov     bl, es:shadow[di+3] ; Target tail is DBCS 1st ?
  223.             and     bl, dbcsA1+dbcsA2   ; 
  224.             .if     <bl eq dbcsA1>      ; Overwrite DBCS 2nd
  225.                 mov     byte ptr es:shadow[di+4], 20h           ; set space
  226.                 mov     byte ptr es:shadow[di+7], EXTRA_ATTRHigh+CHANGE_BITHigh ; reset flag
  227.                 inc     [bp].APA_cnt    ; adjust APA update area
  228.             .endif                      ; 
  229.  
  230.             mov     bl, [si+3]          ; Source tail is DBCS 1st ?
  231.             and     bl, dbcsA1+dbcsA2   ; 
  232.             .if     <bl eq dbcsA1>      ; 
  233.                 mov     al, 20h         ; Yes, then write SBCS space
  234.                 mov     dh, EXTRA_ATTRHigh
  235.             .endif
  236.  
  237.         .endif
  238.  
  239.         call    CommonToAtlas3          ; convert attribute
  240.  
  241.         .if     <ax ne <word ptr es:shadow[di  ]>> or ; displayed char
  242.         .if     <dx ne <word ptr es:shadow[di+2]>>    ; is changed ?
  243.             or      dx, CHANGE_BIT                    ; set change flag
  244.             mov     word ptr es:shadow[di], ax        ; Copy char/attr0
  245.             mov     word ptr es:shadow[di+2], dx      ; Store Extra Attr1/2
  246.         .endif
  247.  
  248.         add     si, 4                       ; set pointer to next source
  249.         add     di, 4                       ; set pointer to next target
  250.  
  251.         dec     cx                          ; check loop end
  252.         jz      OneLineLoopExitC
  253.  
  254.         mov     ax, [si]                    ; get next char/attr0
  255.         mov     dx, [si+2]                  ; get next attr1/attr2
  256.         jmp     OneLineLoopC
  257.  
  258. OneLineLoopExitC:
  259.         push    si                  ; save source & target pointer
  260.         push    di
  261.         push    ds
  262.         push    es
  263.  
  264.         call    ShadowToAPA         ; Update APA based on shadow buf
  265.  
  266.         pop     es                  ; restore source & target pointer
  267.         pop     ds
  268.         pop     di
  269.         pop     si
  270.  
  271.         ret
  272.  
  273. UpdateRegenOneLineC endp
  274.  
  275. ;********************** START OF SPECIFICATIONS *************************
  276. ;*                                                                      *
  277. ;* SUBROUTINE NAME:     CommontoAtlas3                                  *
  278. ;*                                                                      *
  279. ;* DESCRIPTIVE NAME:    Convert Common attribute to Atlas attribute     *
  280. ;*                                                                      *
  281. ;* INPUT:                                                               *
  282. ;* AX     = char/attr0  of common format                                *
  283. ;* DX     = attr1/attr2 of common format                                *
  284. ;*                                                                      *
  285. ;* OUTPUT:                                                              *
  286. ;* AX     = char/attr0  of atlas3 format                                *
  287. ;* DX     = attr1/attr2 of atlas3 format                                *
  288. ;*                                                                      *
  289. ;* INTERNAL REFERENCES: None                                            *
  290. ;*                                                                      *
  291. ;* EXTERNAL REFERENCES: None                                            *
  292. ;*                                                                      *
  293. ;********************** END OF SPECIFICATIONS ***************************
  294. CommonToAtlas3  proc    near
  295.         public  CommonToAtlas3
  296.         push    bx                              ; save work register
  297.  
  298.         xor     bl, bl                          ; init work register
  299.  
  300.         .if     <bit dl and REVERSE_BIT>        ; check reverse bit
  301.             ror     ah, 4
  302.         .endif
  303.         .if     <bit dl and UNDERLINE_BIT>      ; check underline bit
  304.             or  bl, A_UNDERLINE_BIT
  305.         .endif
  306.         .if     <bit dl and VERT_BIT>           ; check vertical grid bit
  307.             or  bl, A_VERT_BIT
  308.         .endif
  309.         .if     <bit dl and HORZ_BIT>           ; check horizontal grid bit
  310.             or  bl, A_HORZ_BIT
  311.         .endif
  312.  
  313.         mov     dl, bl                          ; store converted attribute
  314.  
  315.         .if     <bit dh and dbcsA1>             ; DBCS ?
  316.             and     dh, dbcsA1+dbcsA2
  317.             or      dx, EXTRA_ATTR
  318.         .elseif <bit dh and 02h>                ; extention SBCS ?
  319.             mov     dh, TypeF
  320.         .else                                   ; base SBCS
  321.             mov     dh, TypeE
  322.         .endif
  323.  
  324.         pop     bx                              ; restore work register
  325.         ret
  326. CommonToAtlas3  endp
  327.  
  328. ;********************** START OF SPECIFICATIONS *************************
  329. ;*                                                                      *
  330. ;* SUBROUTINE NAME:     UpdateAttrC                                     *
  331. ;*                                                                      *
  332. ;* DESCRIPTIVE NAME:    Call a Update Regen (PVB) routine for Attribute *
  333. ;*                                                                      *
  334. ;* INPUT:                                                               *
  335. ;* SS:BP  --->  Stack frame                     (see VDHSTRUC.INC)      *
  336. ;* ES:DI  --->  LVB Address                     (see XGAWRITE.ASM)      *
  337. ;*                                                                      *
  338. ;* INTERNAL REFERENCES: UpdateRegenC                                    *
  339. ;*                                                                      *
  340. ;* EXTERNAL REFERENCES: None                                            *
  341. ;*                                                                      *
  342. ;********************** END OF SPECIFICATIONS ***************************
  343. UpdateAttrC proc near
  344.         public  UpdateAttrC
  345.  
  346.         call    UpdateRegenC
  347.  
  348.         ret
  349. UpdateAttrC endp
  350.  
  351. ;********************** START OF SPECIFICATIONS *************************
  352. ;*                                                                      *
  353. ;* SUBROUTINE NAME:     COMMON_CFillR                                   *
  354. ;*                                                                      *
  355. ;* DESCRIPTIVE NAME:    Update PVB for Filling Cell at Scrolling        *
  356. ;*                      This is called per line.                        *
  357. ;* INPUT:                                                               *
  358. ;* SS:BP  --->  Stack frame                     (see VDHSTRUC.INC)      *
  359. ;* ES:DI  --->  PVB Address                                             *
  360. ;* CX     --->  Length Bytes                                            *
  361. ;* Flag   --->  CLD or STD                                              *
  362. ;*                                                                      *
  363. ;* INTERNAL REFERENCES: CommonToAtlas                                   *
  364. ;*                                                                      *
  365. ;* EXTERNAL REFERENCES: FillWithSBCS                                    *
  366. ;*                                                                      *
  367. ;*                                                                      *
  368. ;********************** END OF SPECIFICATIONS ***************************
  369. COMMON_CFillR proc
  370.         public  COMMON_CFillR
  371.  
  372.         ; get PVB format cell to fill in ax:char/attr0 & dx:attr1/attr2
  373.  
  374.         mov     ax, [bp].FillCellLow
  375.         mov     dx, [bp].FillCellHigh
  376.         and     dx, not (dbcsA2H+dbcsA1H)   ; clear DBCS bit
  377.         call    CommonToAtlas3              ; convert attribute
  378.  
  379.         call    FillWithSBCS                ; call update routine
  380.  
  381.         ret
  382.  
  383. COMMON_CFillR endp
  384.  
  385. ;********************** START OF SPECIFICATIONS *************************
  386. ;*                                                                      *
  387. ;* SUBROUTINE NAME:     UpdateCARegenC                                  *
  388. ;*                                                                      *
  389. ;* DESCRIPTIVE NAME:    Call a Update Regen (PVB) routine for CA        *
  390. ;*                                                                      *
  391. ;* INPUT:                                                               *
  392. ;* SS:BP  --->  Stack frame                     (see VDHSTRUC.INC)      *
  393. ;* ES:DI  --->  LVB Address                     (see XGAWRITE.ASM)      *
  394. ;*                                                                      *
  395. ;* INTERNAL REFERENCES: UpadateRegenC                                   *
  396. ;*                                                                      *
  397. ;* EXTERNAL REFERENCES: None                                            *
  398. ;*                                                                      *
  399. ;********************** END OF SPECIFICATIONS ***************************
  400. UpdateCARegenC proc near
  401.         public  UpdateCARegenC
  402.         call    UpdateRegenC
  403.         ret
  404. UpdateCARegenC endp
  405.  
  406. ;********************** START OF SPECIFICATIONS *************************
  407. ;*                                                                      *
  408. ;* SUBROUTINE NAME:     UpdateCAAttrC                                   *
  409. ;*                                                                      *
  410. ;* DESCRIPTIVE NAME:    Call a Update Regen (PVB) routine for Attribute *
  411. ;*                         for CA                                       *
  412. ;* INPUT:                                                               *
  413. ;* SS:BP  --->  Stack frame                     (see VDHSTRUC.INC)      *
  414. ;* ES:DI  --->  LVB Address                     (see XGAWRITE.ASM)      *
  415. ;*                                                                      *
  416. ;* INTERNAL REFERENCES: UpdateRegenC                                    *
  417. ;*                                                                      *
  418. ;* EXTERNAL REFERENCES: None                                            *
  419. ;*                                                                      *
  420. ;********************** END OF SPECIFICATIONS ***************************
  421. UpdateCAAttrc proc near
  422.         public  UpdateCAAttrc
  423.         call    UpdateRegenC
  424.         ret
  425. UpdateCAAttrc endp
  426.  
  427. COMMON_LVBrecttoPVB proc                ;j-ys1026
  428. public      COMMON_LVBrecttoPVB         ;j-ys1026
  429.                                                                         ;J-TS100391
  430.         call    HideCursor                  ; hide cursor               ;J-TS100391
  431.                                                                         ;J-TS100391
  432.         call    SetupAPAWrite               ; setup APA write mode      ;J-TS100391
  433.         mov     [bp].APAPrevColor, -1       ; reset preset color        ;J-TS100391
  434.                                                                         ;J-TS100391
  435.         mov     ds, [bp].LVB_SEL            ; setup selectors           ;J-TS100391
  436.         mov     ax, _DATA                                               ;J-TS100391
  437.         mov     es, ax                                                  ;J-TS100391
  438.         mov     es, es:VideoBuffSel
  439.                                                                         ;J-TS100391
  440.         mov     si,[bp].LVBFillOff          ; setup ofsets              ;J-TS100391
  441.         mov     di,[bp].PVBFillOff                                      ;J-TS100391
  442.                                                                         ;J-TS100391
  443.         mov     dx,[bp].RowsToFill          ; set row loop counter      ;J-TS100391
  444.                                                                         ;J-TS100391
  445. COMMNLPLoop:                                                            ;J-TS100391
  446.         mov     cx,[bp].LVBFillCount        ; set column counter        ;J-TS100391
  447.         shr     cx, 2                                                   ;J-TS100391
  448.                                                                         ;J-TS100391
  449.         mov     bx, [bp].LVBFillCount                                   ;J-TS100391
  450.         add     bx, si                                                  ;J-TS100391
  451.         .if     <bx b [bp].Sub_Buffsize> and ; last char is DBCS 1st ?  ;J-TS100391
  452. ;J-TS011492        mov     al, byte ptr ds:[bx+3]                                  ;J-TS100391
  453.         mov     al, byte ptr ds:[bx+3-4]                                ;J-TS011492
  454.         and     al, dbcsA1+dbcsA2                                       ;J-TS100391
  455.         .if     <al e dbcsA1>                                           ;J-TS100391
  456.             inc     cx                      ; include DBCS 2nd          ;J-TS100391
  457.             or      [bp].Sub_Option, f_end_adjust ; set adjust flag     ;J-TS100391
  458.         .endif                                                          ;J-TS100391
  459.                                                                         ;J-TS100391
  460.         .if     <si ge 4> and               ; first char is DBCS 2nd ?  ;J-TS100391
  461.         mov     al, byte ptr ds:[si+3]                                  ;J-TS100391
  462.         and     al, dbcsA1+dbcsA2                                       ;J-TS100391
  463.         .if     <al e dbcsA1+dbcsA2>                                    ;J-TS100391
  464.             sub     si, 4                   ; include DBCS 1st          ;J-TS100391
  465.             sub     di, 4                                               ;J-TS100391
  466.             inc     cx                                                  ;J-TS100391
  467.         .endif                                                          ;J-TS100391
  468.                                                                         ;J-TS100391
  469.         push    dx                                                      ;J-TS100391
  470.         call    UpdateRegenOneLineC         ; update one line           ;J-TS100391
  471.         pop     dx                                                      ;J-TS100391
  472.                                                                         ;J-TS100391
  473.         add     si, [bp].LVBFillSkip        ; skip to next line         ;J-TS100391
  474.         add     di, [bp].PVBFillSkip                                    ;J-TS100391
  475.                                                                         ;J-TS100391
  476.         .if     <bit [bp].Sub_Option and f_end_adjust>                  ;J-TS100391
  477.             sub     si, 4                   ; adjust ptrs               ;J-TS100391
  478.             sub     di, 4                   ;                           ;J-TS100391
  479.             and     [bp].Sub_Option, not f_end_adjust ; clear adjust flag   ;J-TS100391
  480.         .endif                                                          ;J-TS100391
  481.                                                                         ;J-TS100391
  482.         dec     dx                                                      ;J-TS100391
  483.         jnz     COMMNLPLoop                                             ;J-TS100391
  484.                                                                         ;J-TS100391
  485.         call    ShowCursor                  ; show cursor               ;J-TS100391
  486.                                                                         ;J-TS100391
  487.             ret                         ;j-ys1026
  488. COMMON_LVBrecttoPVB endp                ;j-ys1026
  489.  
  490. COMMON_CArecttoPVB proc                 ;j-ys111
  491. public      COMMON_CArecttoPVB          ;j-ys111
  492.             ret                         ;j-ys111
  493. COMMON_CArecttoPVB endp                 ;j-ys111
  494.  
  495. R2CSEG  ENDS
  496.         END
  497.