head     56.3;
access   paws bayes jws quist brad dew jwh;
symbols  ;
locks    ; strict;
comment  @# @;


56.3
date     93.01.27.13.27.09;  author jwh;  state Exp;
branches ;
next     56.2;

56.2
date     93.01.27.12.05.25;  author jwh;  state Exp;
branches ;
next     56.1;

56.1
date     91.11.05.09.47.53;  author jwh;  state Exp;
branches ;
next     55.1;

55.1
date     91.08.25.10.24.29;  author jwh;  state Exp;
branches ;
next     54.1;

54.1
date     91.03.18.15.27.50;  author jwh;  state Exp;
branches ;
next     53.1;

53.1
date     91.03.11.19.28.35;  author jwh;  state Exp;
branches ;
next     52.1;

52.1
date     91.02.19.09.12.33;  author jwh;  state Exp;
branches ;
next     51.1;

51.1
date     91.01.30.16.12.20;  author jwh;  state Exp;
branches ;
next     50.1;

50.1
date     90.10.29.16.26.58;  author jwh;  state Exp;
branches ;
next     49.1;

49.1
date     90.08.14.14.11.13;  author jwh;  state Exp;
branches ;
next     48.1;

48.1
date     90.07.26.11.17.26;  author jwh;  state Exp;
branches ;
next     47.1;

47.1
date     90.05.14.11.00.33;  author dew;  state Exp;
branches ;
next     46.1;

46.1
date     90.05.07.08.47.41;  author jwh;  state Exp;
branches ;
next     45.1;

45.1
date     90.04.19.15.55.37;  author jwh;  state Exp;
branches ;
next     44.1;

44.1
date     90.04.01.22.12.38;  author jwh;  state Exp;
branches ;
next     43.1;

43.1
date     90.03.20.14.04.37;  author jwh;  state Exp;
branches ;
next     42.1;

42.1
date     90.01.23.17.49.29;  author jwh;  state Exp;
branches ;
next     41.1;

41.1
date     89.12.22.11.31.23;  author jwh;  state Exp;
branches ;
next     40.1;

40.1
date     89.09.29.11.53.14;  author jwh;  state Exp;
branches ;
next     39.1;

39.1
date     89.09.26.16.37.28;  author dew;  state Exp;
branches ;
next     38.1;

38.1
date     89.08.29.11.29.32;  author jwh;  state Exp;
branches ;
next     37.1;

37.1
date     89.05.12.11.42.04;  author dew;  state Exp;
branches ;
next     36.1;

36.1
date     89.02.06.10.20.21;  author dew;  state Exp;
branches ;
next     35.1;

35.1
date     89.02.02.13.35.27;  author dew;  state Exp;
branches ;
next     34.1;

34.1
date     89.01.23.16.10.37;  author jwh;  state Exp;
branches ;
next     33.1;

33.1
date     89.01.16.11.42.22;  author dew;  state Exp;
branches ;
next     32.1;

32.1
date     89.01.10.11.51.09;  author bayes;  state Exp;
branches ;
next     31.1;

31.1
date     88.12.14.18.12.17;  author bayes;  state Exp;
branches ;
next     30.1;

30.1
date     88.12.09.13.49.08;  author dew;  state Exp;
branches ;
next     29.1;

29.1
date     88.10.31.15.34.09;  author bayes;  state Exp;
branches ;
next     28.1;

28.1
date     88.10.06.11.00.44;  author dew;  state Exp;
branches ;
next     27.1;

27.1
date     88.09.29.11.37.36;  author bayes;  state Exp;
branches ;
next     26.1;

26.1
date     88.09.28.13.16.26;  author bayes;  state Exp;
branches ;
next     25.2;

25.2
date     88.03.30.09.02.27;  author bayes;  state Exp;
branches ;
next     25.1;

25.1
date     88.03.02.09.32.52;  author bayes;  state Exp;
branches ;
next     24.1;

24.1
date     87.08.31.09.54.04;  author jws;  state Exp;
branches ;
next     23.1;

23.1
date     87.08.26.10.32.54;  author bayes;  state Exp;
branches ;
next     22.1;

22.1
date     87.08.17.11.18.18;  author bayes;  state Exp;
branches ;
next     21.1;

21.1
date     87.08.12.14.00.49;  author bayes;  state Exp;
branches ;
next     20.1;

20.1
date     87.07.30.11.13.46;  author bayes;  state Exp;
branches ;
next     19.1;

19.1
date     87.06.01.08.28.47;  author jws;  state Exp;
branches ;
next     18.1;

18.1
date     87.05.20.15.29.06;  author bayes;  state Exp;
branches ;
next     17.1;

17.1
date     87.04.30.10.39.39;  author jws;  state Exp;
branches ;
next     16.1;

16.1
date     87.04.26.15.51.24;  author jws;  state Exp;
branches ;
next     15.1;

15.1
date     87.04.13.09.27.17;  author jws;  state Exp;
branches ;
next     14.1;

14.1
date     87.04.01.15.33.11;  author jws;  state Exp;
branches ;
next     13.1;

13.1
date     87.02.28.18.36.22;  author jws;  state Exp;
branches ;
next     12.1;

12.1
date     87.02.02.13.27.22;  author jws;  state Exp;
branches ;
next     11.1;

11.1
date     87.01.19.09.53.59;  author jws;  state Exp;
branches ;
next     10.1;

10.1
date     86.12.24.11.02.58;  author jws;  state Exp;
branches ;
next     9.1;

9.1
date     86.12.12.14.45.22;  author bayes;  state Exp;
branches ;
next     8.1;

8.1
date     86.11.27.12.01.10;  author jws;  state Exp;
branches ;
next     7.1;

7.1
date     86.11.20.13.52.04;  author hal;  state Exp;
branches ;
next     6.1;

6.1
date     86.11.04.18.03.26;  author paws;  state Exp;
branches ;
next     5.1;

5.1
date     86.10.28.16.52.30;  author hal;  state Exp;
branches ;
next     4.1;

4.1
date     86.09.30.19.51.35;  author hal;  state Exp;
branches ;
next     3.1;

3.1
date     86.09.01.12.01.39;  author hal;  state Exp;
branches ;
next     2.1;

2.1
date     86.07.30.14.49.07;  author hal;  state Exp;
branches ;
next     1.1;

1.1
date     86.06.30.15.25.06;  author danm;  state tmp;
branches ;
next     ;


desc
@Base file for PWS 3.2 release.

@


56.3
log
@
pws2rcs automatic delta on Wed Jan 27 13:14:25 MST 1993
@
text
@*
*  Graphics Low End
*
*  Module    = Software text
*  Programer = BJS
*  Date      = 9-30-82
*
*  Purpose : To provide software text generation routines.
*
*  Rev history
*
*    Created    - 9-30-82
*    Modified   - 6-27-83  BJS  Added export text for soft_text routine
*
*
*     (c) Copyright Hewlett-Packard Company, 1985.
*     All rights are reserved.  Copying or other
*     reproduction of this program except for archival
*     purposes is prohibited without the prior
*     written consent of Hewlett-Packard Company.
*
*
*                RESTRICTED RIGHTS LEGEND
*
*     Use, duplication, or disclosure by the Government
*     is subject to restrictions as set forth in
*     paragraph (b) (3) (B) of the Rights in Technical
*     Data and Computer Software clause in
*     DAR 7-104.9(a).
*
*     HEWLETT-PACKARD COMPANY
*     Fort Collins, Colorado
*
*
      mname GLE_ASTEXT

	src module GLE_ASTEXT;
	src import GLE_TYPES;
	src export
	src procedure gle_soft_text ( gcb : graphics_control_block_ptr );
	src end;

	nosyms
*
*  Export text is defined by STEXT Pascal module
*
*
*  Define entry points
*
      rorg 0
      def GLE_ASTEXT_GLE_SOFT_TEXT
      def GLE_ASTEXT_GLE_ASTEXT
*
*    Set up globals
*
GCB equ a0

     INCLUDE ASM_TYPES

cosx_tab equ 0
cosy_tab equ 16
sinx_tab equ 48
siny_tab equ 64
*
*****************************************************************************
*
GLE_ASTEXT_GLE_SOFT_TEXT equ *

      trap #1            stack overflow ck
      dc.w 0
*
* Check calc_text_xform to see if the transformation needs
* to be re-calcultated.
*
      movea.l  8(a6),gcb                       {A0}
      tst.w    calc_text_xform(gcb)
      beq      xform_ok

      move.l   gcb,-(sp)                       {pass gcb}
s0    movea.l  calc_soft_text_xform(gcb),a0    { no static links }
      jsr      (a0)

xform_ok equ *
*
* Get GCB pointer
* Move string address to local address reg
* Move cnt to local address reg
* Get addr of stroke table in local address reg
*
      movea.l  8(a6),gcb                  {A0}
      movea.l  info_ptr1(gcb),a1          {string ptr}
      move.l   info1(gcb),d0              {string count}
*
*
*     save a copy of starting cp in temp (this is used for CR point)
*
      move.l   current_pos_x(gcb),d1
      move.l   current_pos_y(gcb),d7
      move.l   d1,soft_text_temp1(gcb)
      move.l   d7,soft_text_temp2(gcb)
      movea.l  #0,a4
*
NEXT_CHAR equ *
bad_char equ *                {bad characters are ignored}
*
* Top of loop
* Check character count; Quit if 0
*
      sub.w    #1,d0          {=0?}
      blt      DONE
*
* Get current character from string
*
      moveq    #0,d1          {clear high byte}
      move.b   (a1)+,d1       {d1 <- char}
      adda.l   #1,a4
*
* Calc which font tables to use
*
      movea.l  soft_font_ptr(gcb),A2    {Pointer to stroke tables}
      movea.l  a2,a3          {copy stroke table pointer}

      sub.w    #32,d1         {all char < 32 are control}
      blt      control

      cmp.w    #95,d1         {ck for char > 127}
      bgt      plot_hi

      cmp.w    #60,d1         {ck for sqr root (special kata)
      bne      plot_std

      tst.w    kata(gcb)      {ck katakana flag}
      beq.s    plot_std
      moveq    #63,d1         {use kata char #63 for sqr root}
      bra      plot_kata

plot_hi equ *
      tst.w    kata(gcb)      {ck katakana flag}
      beq.s    plot_rom
      sub.w    #129,d1        {legal kata from 161 to 223}
      blt      bad_char
      cmp.w    #62,d1
      bgt      bad_char

plot_kata equ *
*
      adda.l   $14(a2),a3     {A3 points to top of KATA Pointer table}
      adda.l   $10(a2),a2     {A2 points to top of KATA stroke table}
      bra      plot_common

plot_rom  equ *
      sub.w    #136,d1        {legal roman are 168 to 222}
      blt      bad_char
      cmp.w    #54,d1
      bgt      bad_char

*
      adda.l   $C(a2),a3      {A3 points to top of KATA Pointer table}
      adda.l   $8(a2),a2      {A2 points to top of KATA stroke table}
      bra      plot_common

plot_std  equ *               {STD is first entry in stroke table}
*
      adda.l   4(a2),a3       {A3 points to top of Pointer table}
      adda.l   (a2),a2        {A2 points to top of stroke table}
*
*******************************************************************************
*
plot_common equ *
*
* Calc number of vectors in character by indexing into pointer sub-table
*
      add.w    d1,d1          {calc 16 bit offset with character}
      move.w   2(a3,d1),d5    {get index of first vector of next char}
      move.w   0(a3,d1),d6    {get index of first vector of this char}
      sub.w    d6,d5          {d5 is the number of vectors in char}
*
* Calc indexs to vector locations in stroke table
*
      sub.w    #1,d6          {pointer are base 1, we need base 0}
      adda.w   d6,a2          {form ptr to first vector}
*
*     move current position into local regs
*
      move.l current_pos_x(gcb),d1  {X}
      move.l current_pos_y(gcb),d7  {Y}
*
VECTOR_LOOP equ *
*
* Top of vector loop
*
      move.b   (a2)+,d4       { get packed vector information }

      move.b   d4,d2          { unpack x information }
      lsr.w    #4,d2
      and.w    #$0007,d2
      add.w    d2,d2          { form word index into cos table }

      move.b   d4,d3          { unpack y information }
      and.w    #$000f,d3
      add.w    d3,d3          { form word index into cos table }

      movea.l  gcb,a3
      adda.l   #cosx_table,a3
      move.w   cosx_tab(a3,d2.w),d6
      add.w    siny_tab(a3,d3.w),d6  { d6 is new X }
      ext.l    d6

      move.w   cosy_tab(a3,d3.w),d3
      add.w    sinx_tab(a3,d2.w),d3  { d3 is new Y }
      ext.l    d3

      add.l    d1,d6          {translate by CP}
      bvs      range_error
      add.l    d7,d3
      bvs      range_error

      movem.l  d0/d1/d5/d7/a0-a2/a4,-(sp) {save local state}

      move.l   gcb,-(sp)      {pass gcb}

      move.l   d6,end_x(gcb)  {pass parms to vector generator}
      move.l   d3,end_y(gcb)

      btst     #7,d4          {ck control for move or draw}
      beq.s    needmove

      movea.l  draw(gcb),a0   { no static links }
      jsr      (a0)
      bra  next_vector

NEEDMOVE equ *

      movea.l  move(gcb),a0   { no static links }
      jsr      (a0)

NEXT_VECTOR equ *
      movem.l  (sp)+,d0/d1/d5/d7/a0-a2/a4 {restore local state}

TEST_VECTOR equ *
*
* Check for no vectors left
*
      dbra      d5,VECTOR_LOOP
*
* Update CP
*
update_cp equ *
      clr.l     d2
      move      a4,d2
      move.l    text_space_x(gcb),d1
      movea.w   d1,a3
      cmpa.l    d1,a3
      bne       range_error
      move.l    text_space_y(gcb),d7
      movea.w   d7,a3
      cmpa.l    d7,a3
      bne       range_error
      muls      d2,d1
      muls      d2,d7
      asr.l     #3,d1
      asr.l     #3,d7
      add.l     soft_text_temp1(gcb),d1
      bvs       range_error
      add.l     soft_text_temp2(gcb),d7
      bvs       range_error

UPDATE equ *

      move.l    d1,current_pos_x(gcb)
      move.l    d7,current_pos_y(gcb)
      bra       NEXT_CHAR
*
control  equ *

      add.w     #32,d1        {restore character value}
      cmp.w     #13,d1        { CR ? }
      beq.s     C_return

      cmp.w     #10,d1        { LF ? }
      beq.s     L_feed

      cmp.w     #8,d1         { BS ? }
      bne       bad_char

B_space equ *

      suba.l    #2,a4
      bra.s     update_cp

C_return equ *

      movea.l   #0,a4
      move.l    current_pos_x(gcb),d1
      move.l    current_pos_y(gcb),d7
      move.l    soft_text_temp1(gcb),d1    { restore cp to begining }
      move.l    soft_text_temp2(gcb),d7
      bra       UPDATE                { Update the CP and process next char }

L_feed equ *

*
* Update local cp (d1,d7)
* Update starting cp (temp1, temp2)
*
      suba.l     #1,a4
      move.l    current_pos_x(gcb),d1
      move.l    current_pos_y(gcb),d7

      move.l    text_line_x(gcb),d2
      move.l    text_line_y(gcb),d3

      asr.l     #3,d2
      asr.l     #3,d3

      add.l     d2,d1                 { inc local cp }
      bvs       range_error
      add.l     d3,d7
      bvs       range_error

      add.l     d2,soft_text_temp1(gcb)
      bvs       range_error
      add.l     d3,soft_text_temp2(gcb)
      bvs       range_error

      bra       UPDATE                { Update the CP and process next char }

DONE equ *
      unlk      a6
      move.l    (sp)+,(sp)
      rts

range_error ori #2,ccr               force overflow and let system process
	    trapv
      bra.s done

GLE_ASTEXT_GLE_ASTEXT rts


@


56.2
log
@
pws2rcs automatic delta on Wed Jan 27 11:57:27 MST 1993
@
text
@d1 339
@


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@a0 339
*
*  Graphics Low End
*
*  Module    = Software text
*  Programer = BJS
*  Date      = 9-30-82
*
*  Purpose : To provide software text generation routines.
*
*  Rev history
*
*    Created    - 9-30-82
*    Modified   - 6-27-83  BJS  Added export text for soft_text routine
*
*
*     (c) Copyright Hewlett-Packard Company, 1985.
*     All rights are reserved.  Copying or other
*     reproduction of this program except for archival
*     purposes is prohibited without the prior
*     written consent of Hewlett-Packard Company.
*
*
*                RESTRICTED RIGHTS LEGEND
*
*     Use, duplication, or disclosure by the Government
*     is subject to restrictions as set forth in
*     paragraph (b) (3) (B) of the Rights in Technical
*     Data and Computer Software clause in
*     DAR 7-104.9(a).
*
*     HEWLETT-PACKARD COMPANY
*     Fort Collins, Colorado
*
*
      mname GLE_ASTEXT

	src module GLE_ASTEXT;
	src import GLE_TYPES;
	src export
	src procedure gle_soft_text ( gcb : graphics_control_block_ptr );
	src end;

	nosyms
*
*  Export text is defined by STEXT Pascal module
*
*
*  Define entry points
*
      rorg 0
      def GLE_ASTEXT_GLE_SOFT_TEXT
      def GLE_ASTEXT_GLE_ASTEXT
*
*    Set up globals
*
GCB equ a0

     INCLUDE ASM_TYPES

cosx_tab equ 0
cosy_tab equ 16
sinx_tab equ 48
siny_tab equ 64
*
*****************************************************************************
*
GLE_ASTEXT_GLE_SOFT_TEXT equ *

      trap #1            stack overflow ck
      dc.w 0
*
* Check calc_text_xform to see if the transformation needs
* to be re-calcultated.
*
      movea.l  8(a6),gcb                       {A0}
      tst.w    calc_text_xform(gcb)
      beq      xform_ok

      move.l   gcb,-(sp)                       {pass gcb}
s0    movea.l  calc_soft_text_xform(gcb),a0    { no static links }
      jsr      (a0)

xform_ok equ *
*
* Get GCB pointer
* Move string address to local address reg
* Move cnt to local address reg
* Get addr of stroke table in local address reg
*
      movea.l  8(a6),gcb                  {A0}
      movea.l  info_ptr1(gcb),a1          {string ptr}
      move.l   info1(gcb),d0              {string count}
*
*
*     save a copy of starting cp in temp (this is used for CR point)
*
      move.l   current_pos_x(gcb),d1
      move.l   current_pos_y(gcb),d7
      move.l   d1,soft_text_temp1(gcb)
      move.l   d7,soft_text_temp2(gcb)
      movea.l  #0,a4
*
NEXT_CHAR equ *
bad_char equ *                {bad characters are ignored}
*
* Top of loop
* Check character count; Quit if 0
*
      sub.w    #1,d0          {=0?}
      blt      DONE
*
* Get current character from string
*
      moveq    #0,d1          {clear high byte}
      move.b   (a1)+,d1       {d1 <- char}
      adda.l   #1,a4
*
* Calc which font tables to use
*
      movea.l  soft_font_ptr(gcb),A2    {Pointer to stroke tables}
      movea.l  a2,a3          {copy stroke table pointer}

      sub.w    #32,d1         {all char < 32 are control}
      blt      control

      cmp.w    #95,d1         {ck for char > 127}
      bgt      plot_hi

      cmp.w    #60,d1         {ck for sqr root (special kata)
      bne      plot_std

      tst.w    kata(gcb)      {ck katakana flag}
      beq.s    plot_std
      moveq    #63,d1         {use kata char #63 for sqr root}
      bra      plot_kata

plot_hi equ *
      tst.w    kata(gcb)      {ck katakana flag}
      beq.s    plot_rom
      sub.w    #129,d1        {legal kata from 161 to 223}
      blt      bad_char
      cmp.w    #62,d1
      bgt      bad_char

plot_kata equ *
*
      adda.l   $14(a2),a3     {A3 points to top of KATA Pointer table}
      adda.l   $10(a2),a2     {A2 points to top of KATA stroke table}
      bra      plot_common

plot_rom  equ *
      sub.w    #136,d1        {legal roman are 168 to 222}
      blt      bad_char
      cmp.w    #54,d1
      bgt      bad_char

*
      adda.l   $C(a2),a3      {A3 points to top of KATA Pointer table}
      adda.l   $8(a2),a2      {A2 points to top of KATA stroke table}
      bra      plot_common

plot_std  equ *               {STD is first entry in stroke table}
*
      adda.l   4(a2),a3       {A3 points to top of Pointer table}
      adda.l   (a2),a2        {A2 points to top of stroke table}
*
*******************************************************************************
*
plot_common equ *
*
* Calc number of vectors in character by indexing into pointer sub-table
*
      add.w    d1,d1          {calc 16 bit offset with character}
      move.w   2(a3,d1),d5    {get index of first vector of next char}
      move.w   0(a3,d1),d6    {get index of first vector of this char}
      sub.w    d6,d5          {d5 is the number of vectors in char}
*
* Calc indexs to vector locations in stroke table
*
      sub.w    #1,d6          {pointer are base 1, we need base 0}
      adda.w   d6,a2          {form ptr to first vector}
*
*     move current position into local regs
*
      move.l current_pos_x(gcb),d1  {X}
      move.l current_pos_y(gcb),d7  {Y}
*
VECTOR_LOOP equ *
*
* Top of vector loop
*
      move.b   (a2)+,d4       { get packed vector information }

      move.b   d4,d2          { unpack x information }
      lsr.w    #4,d2
      and.w    #$0007,d2
      add.w    d2,d2          { form word index into cos table }

      move.b   d4,d3          { unpack y information }
      and.w    #$000f,d3
      add.w    d3,d3          { form word index into cos table }

      movea.l  gcb,a3
      adda.l   #cosx_table,a3
      move.w   cosx_tab(a3,d2.w),d6
      add.w    siny_tab(a3,d3.w),d6  { d6 is new X }
      ext.l    d6

      move.w   cosy_tab(a3,d3.w),d3
      add.w    sinx_tab(a3,d2.w),d3  { d3 is new Y }
      ext.l    d3

      add.l    d1,d6          {translate by CP}
      bvs      range_error
      add.l    d7,d3
      bvs      range_error

      movem.l  d0/d1/d5/d7/a0-a2/a4,-(sp) {save local state}

      move.l   gcb,-(sp)      {pass gcb}

      move.l   d6,end_x(gcb)  {pass parms to vector generator}
      move.l   d3,end_y(gcb)

      btst     #7,d4          {ck control for move or draw}
      beq.s    needmove

      movea.l  draw(gcb),a0   { no static links }
      jsr      (a0)
      bra  next_vector

NEEDMOVE equ *

      movea.l  move(gcb),a0   { no static links }
      jsr      (a0)

NEXT_VECTOR equ *
      movem.l  (sp)+,d0/d1/d5/d7/a0-a2/a4 {restore local state}

TEST_VECTOR equ *
*
* Check for no vectors left
*
      dbra      d5,VECTOR_LOOP
*
* Update CP
*
update_cp equ *
      clr.l     d2
      move      a4,d2
      move.l    text_space_x(gcb),d1
      movea.w   d1,a3
      cmpa.l    d1,a3
      bne       range_error
      move.l    text_space_y(gcb),d7
      movea.w   d7,a3
      cmpa.l    d7,a3
      bne       range_error
      muls      d2,d1
      muls      d2,d7
      asr.l     #3,d1
      asr.l     #3,d7
      add.l     soft_text_temp1(gcb),d1
      bvs       range_error
      add.l     soft_text_temp2(gcb),d7
      bvs       range_error

UPDATE equ *

      move.l    d1,current_pos_x(gcb)
      move.l    d7,current_pos_y(gcb)
      bra       NEXT_CHAR
*
control  equ *

      add.w     #32,d1        {restore character value}
      cmp.w     #13,d1        { CR ? }
      beq.s     C_return

      cmp.w     #10,d1        { LF ? }
      beq.s     L_feed

      cmp.w     #8,d1         { BS ? }
      bne       bad_char

B_space equ *

      suba.l    #2,a4
      bra.s     update_cp

C_return equ *

      movea.l   #0,a4
      move.l    current_pos_x(gcb),d1
      move.l    current_pos_y(gcb),d7
      move.l    soft_text_temp1(gcb),d1    { restore cp to begining }
      move.l    soft_text_temp2(gcb),d7
      bra       UPDATE                { Update the CP and process next char }

L_feed equ *

*
* Update local cp (d1,d7)
* Update starting cp (temp1, temp2)
*
      suba.l     #1,a4
      move.l    current_pos_x(gcb),d1
      move.l    current_pos_y(gcb),d7

      move.l    text_line_x(gcb),d2
      move.l    text_line_y(gcb),d3

      asr.l     #3,d2
      asr.l     #3,d3

      add.l     d2,d1                 { inc local cp }
      bvs       range_error
      add.l     d3,d7
      bvs       range_error

      add.l     d2,soft_text_temp1(gcb)
      bvs       range_error
      add.l     d3,soft_text_temp2(gcb)
      bvs       range_error

      bra       UPDATE                { Update the CP and process next char }

DONE equ *
      unlk      a6
      move.l    (sp)+,(sp)
      rts

range_error ori #2,ccr               force overflow and let system process
	    trapv
      bra.s done

GLE_ASTEXT_GLE_ASTEXT rts


@


55.1
log
@Automatic bump of revision number for PWS version 3.25A
@
text
@@


54.1
log
@Automatic bump of revision number for PWS version 3.24
@
text
@@


53.1
log
@Automatic bump of revision number for PWS version 3.24B
@
text
@@


52.1
log
@Automatic bump of revision number for PWS version 3.24A
@
text
@@


51.1
log
@Automatic bump of revision number for PWS version 3.24d
@
text
@@


50.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@@


49.1
log
@Automatic bump of revision number for PWS version 3.24b
@
text
@@


48.1
log
@Automatic bump of revision number for PWS version 3.24a
@
text
@@


47.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@@


46.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@@


45.1
log
@Automatic bump of revision number for PWS version 3.23C
@
text
@@


44.1
log
@Automatic bump of revision number for PWS version 3.23B
@
text
@@


43.1
log
@Automatic bump of revision number for PWS version 3.23aA
@
text
@@


42.1
log
@Automatic bump of revision number for PWS version 3.23e
@
text
@@


41.1
log
@Automatic bump of revision number for PWS version 3.23d
@
text
@@


40.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@@


39.1
log
@Automatic bump of revision number for PWS version 3.23b
@
text
@@


38.1
log
@Automatic bump of revision number for PWS version 3.23a
@
text
@@


37.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@@


36.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


35.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


34.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


33.1
log
@Automatic bump of revision number for PWS version 3.22D
@
text
@@


32.1
log
@Automatic bump of revision number for PWS version 3.22C
@
text
@@


31.1
log
@Automatic bump of revision number for PWS version 3.22B
@
text
@@


30.1
log
@Automatic bump of revision number for PWS version 3.22A
@
text
@@


29.1
log
@Automatic bump of revision number for PWS version 3.22b
@
text
@@


28.1
log
@Automatic bump of revision number for PWS version 3.3b
@
text
@@


27.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@@


26.1
log
@Automatic bump of revision number for PWS version 3.3 Synch
@
text
@@


25.2
log
@For CATSEYE support
@
text
@@


25.1
log
@Automatic bump of revision number for PWS version 3.2Y
@
text
@@


24.1
log
@Automatic bump of revision number for PWS version 3.2
@
text
@@


23.1
log
@Automatic bump of revision number for PWS version 3.2P
@
text
@@


22.1
log
@Automatic bump of revision number for PWS version 3.2N
@
text
@@


21.1
log
@Automatic bump of revision number for PWS version 3.2M
@
text
@@


20.1
log
@Automatic bump of revision number for PWS version 3.2L
@
text
@@


19.1
log
@Automatic bump of revision number for PWS version 3.2K
@
text
@@


18.1
log
@Automatic bump of revision number for PWS version 3.2J
@
text
@@


17.1
log
@Automatic bump of revision number for PWS version 3.2I+
@
text
@@


16.1
log
@Automatic bump of revision number for PWS version 3.2I
@
text
@@


15.1
log
@Automatic bump of revision number for PWS version 3.2H
@
text
@@


14.1
log
@Automatic bump of revision number for PWS version 3.2G
@
text
@@


13.1
log
@Automatic bump of revision number for PWS version 3.2F
@
text
@@


12.1
log
@Automatic bump of revision number for PWS version 3.2E
@
text
@@


11.1
log
@Automatic bump of revision number for PWS version 3.2D
@
text
@@


10.1
log
@Automatic bump of revision number for PWS version 3.2C
@
text
@@


9.1
log
@Automatic bump of revision number for PWS version 3.2B
@
text
@@


8.1
log
@Automatic bump of revision number for PWS version 3.2A
@
text
@@


7.1
log
@Automatic bump of revision number for PWS version 3.2l
@
text
@@


6.1
log
@Automatic bump of revision number for PWS version 3.2k
@
text
@@


5.1
log
@Automatic bump of revision number for PWS version 3.2j
@
text
@@


4.1
log
@Automatic bump of revision number for PWS version 3.2i
@
text
@@


3.1
log
@Automatic bump of revision number for PWS version 3.2h
@
text
@@


2.1
log
@Auto bump rev number to 2.1 for sys 3.2e.
@
text
@@


1.1
log
@Initial revision
@
text
@@
