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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

26.1
date     88.09.28.12.16.41;  author bayes;  state Exp;
branches ;
next     25.1;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.1
date     86.06.30.12.53.51;  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
@
$if mc68881$

procedure fpmovem (* FWD ->( writetomem : boolean; report : boolean ) *);
    const
	badops = 101;
	opsok = 100;

    type
	masktyp = record
		    case integer of
			0 : ( num : shortint );

			1 : ( ary : packed array[ -8..7 ] of boolean )
		  end;
    var
	dr : ( tomem, frommem );
	mask : masktyp;
	temp : masktyp;
	i : shortint;

    procedure fpformmask;
      var
	holdregno : shortint;
	i, j : shortint;

    begin       (* fpformmask *)
      mask.ary[ checkregno ] := true;
      while ( (line[ curcol ] = '/') or (line[ curcol ] = '-') ) do
	begin
	  if line[ curcol ] = '-' then
	    begin
	      holdregno := checkregno;
	      curcol := curcol + 1;
	      if not checkregs then
		begin
		  if report then
		    error( errfpregexp );
		  escape( badops );
		end;
	      if (checkregmode <> fpreg) or (checkregno <
			 holdregno) then
		begin
		  if report then
		    error( errbadsyntax );
		  escape( badops );
		end;
	      j := checkregno;
	      for i := holdregno to j do
		begin
		  checkregno := i;
		  mask.ary[ checkregno ] := true;
		end;
	      if not (line[ curcol ] in [ '/', ' ', ',' ] ) then
		begin
		  if report then
		    error( errbadsyntax );
		  escape( badops );
		end;
	    end
	  else          (* line[curcol] = '/' *)
	    begin
	      curcol := curcol + 1;
	      if not checkregs then
		begin
		  if report then
		    error( errbadsyntax );
		  escape( badops );
		end;
	      if checkregmode <> fpreg then
		begin
		  if report then
		    error( errbadsyntax );
		  escape( badops );
		end;
	      mask.ary[ checkregno ] := true;
	    end;
	end;    (* while *)
    end;        (* fpformmask *)


begin   (* fpmovem *)
TRY
  mask.num := 0;
  if writetomem then
    begin
      if (operand1.mode <> 8) or ( (checkregmode <> fpreg)
			or (checkregno <> operand1.reg) ) then
	begin
	  error( errfpinternalerr );
	  escape( badops );
	end;
      dr := tomem;
      fpformmask;
      if line[ curcol ] <> ',' then
	begin
	  if report then
	    error( errcommaexp );
	  escape( badops );
	end;
      curcol := curcol + 1;
      parseoperand( operand2 );
      if operand2.mode = 4 then
	begin
	  for i := 0 to 7 do temp.ary[ 7 - i ] := mask.ary[ i ];
	  mask := temp;
	end
      else
	if not (controlmode( operand2 ) and alterable( operand2 ) ) then
	  begin
	    if report then
	      error( errbadmode );
	    escape( badops );
	  end;
    end
  else  (* not writetomem *)
    begin
      dr := frommem;
      if (operand2.mode <> 8) or ( (checkregmode <> fpreg)
			or (checkregno <> operand2.reg) ) then
	begin
	  error( errfpinternalerr );
	  escape( badops );
	end;
      fpformmask;
    end;
  if line[ curcol ] <> ' ' then
    if report then
      error( erreolexp );
  escape( opsok );
RECOVER
 begin
  if dr = tomem then
    begin
      operand1.mode := 7;
      operand1.reg := 4;
      operand1.size := 0;
      operand1.value.offset.longint := 0;
      operand1.value.offset.byte4 := mask.num;
    end
  else
    begin
      operand2.mode := 7;
      operand2.reg := 4;
      operand2.size := 0;
      operand2.value.offset.longint := 0;
      operand2.value.offset.byte4 := mask.num;
    end;
  if escapecode = badops then
    begin
      if dr = tomem then
	operand1.value.offset.byte4 := 1
      else
	operand2.value.offset.byte4 := 1;
    end
  else
    if escapecode <> opsok then
      escape( escapecode );
 end;

end;   (* fpmovem *)



function setfpsysflag(* FWD ->( opd : operand; report : boolean;
				var flag : fpsysflagtyp ) : boolean *);
var oldflag : fpsysflagtyp;
begin
  oldflag := flag;
  if opd.mode <> 9 then
    begin
      if report then
	error( errfpsysregneeded );
      setfpsysflag := false;
    end
  else
   begin
    if opd.reg = 0 then
      if not odd(flag div 4) then flag := flag + 4 else       (* CONTROL *)
    else
      if opd.reg = 1 then
	if not odd(flag div 2) then flag := flag + 2 else     (* STATUS *)
      else
	if opd.reg = 2 then
	  if not odd(flag div 1) then flag := flag + 1 else   (* IADDR *)
	else
	  error( errfpinternalerr );
    {
    if oldflag = flag then
      if report then
	error( errfpregexp );
    WHY IS THIS HERE ? {*}
    setfpsysflag := true;
   end;
end;    (* setfpsysflag *)

$end$

@


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


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@a0 198

$if mc68881$

procedure fpmovem (* FWD ->( writetomem : boolean; report : boolean ) *);
    const
	badops = 101;
	opsok = 100;

    type
	masktyp = record
		    case integer of
			0 : ( num : shortint );

			1 : ( ary : packed array[ -8..7 ] of boolean )
		  end;
    var
	dr : ( tomem, frommem );
	mask : masktyp;
	temp : masktyp;
	i : shortint;

    procedure fpformmask;
      var
	holdregno : shortint;
	i, j : shortint;

    begin       (* fpformmask *)
      mask.ary[ checkregno ] := true;
      while ( (line[ curcol ] = '/') or (line[ curcol ] = '-') ) do
	begin
	  if line[ curcol ] = '-' then
	    begin
	      holdregno := checkregno;
	      curcol := curcol + 1;
	      if not checkregs then
		begin
		  if report then
		    error( errfpregexp );
		  escape( badops );
		end;
	      if (checkregmode <> fpreg) or (checkregno <
			 holdregno) then
		begin
		  if report then
		    error( errbadsyntax );
		  escape( badops );
		end;
	      j := checkregno;
	      for i := holdregno to j do
		begin
		  checkregno := i;
		  mask.ary[ checkregno ] := true;
		end;
	      if not (line[ curcol ] in [ '/', ' ', ',' ] ) then
		begin
		  if report then
		    error( errbadsyntax );
		  escape( badops );
		end;
	    end
	  else          (* line[curcol] = '/' *)
	    begin
	      curcol := curcol + 1;
	      if not checkregs then
		begin
		  if report then
		    error( errbadsyntax );
		  escape( badops );
		end;
	      if checkregmode <> fpreg then
		begin
		  if report then
		    error( errbadsyntax );
		  escape( badops );
		end;
	      mask.ary[ checkregno ] := true;
	    end;
	end;    (* while *)
    end;        (* fpformmask *)


begin   (* fpmovem *)
TRY
  mask.num := 0;
  if writetomem then
    begin
      if (operand1.mode <> 8) or ( (checkregmode <> fpreg)
			or (checkregno <> operand1.reg) ) then
	begin
	  error( errfpinternalerr );
	  escape( badops );
	end;
      dr := tomem;
      fpformmask;
      if line[ curcol ] <> ',' then
	begin
	  if report then
	    error( errcommaexp );
	  escape( badops );
	end;
      curcol := curcol + 1;
      parseoperand( operand2 );
      if operand2.mode = 4 then
	begin
	  for i := 0 to 7 do temp.ary[ 7 - i ] := mask.ary[ i ];
	  mask := temp;
	end
      else
	if not (controlmode( operand2 ) and alterable( operand2 ) ) then
	  begin
	    if report then
	      error( errbadmode );
	    escape( badops );
	  end;
    end
  else  (* not writetomem *)
    begin
      dr := frommem;
      if (operand2.mode <> 8) or ( (checkregmode <> fpreg)
			or (checkregno <> operand2.reg) ) then
	begin
	  error( errfpinternalerr );
	  escape( badops );
	end;
      fpformmask;
    end;
  if line[ curcol ] <> ' ' then
    if report then
      error( erreolexp );
  escape( opsok );
RECOVER
 begin
  if dr = tomem then
    begin
      operand1.mode := 7;
      operand1.reg := 4;
      operand1.size := 0;
      operand1.value.offset.longint := 0;
      operand1.value.offset.byte4 := mask.num;
    end
  else
    begin
      operand2.mode := 7;
      operand2.reg := 4;
      operand2.size := 0;
      operand2.value.offset.longint := 0;
      operand2.value.offset.byte4 := mask.num;
    end;
  if escapecode = badops then
    begin
      if dr = tomem then
	operand1.value.offset.byte4 := 1
      else
	operand2.value.offset.byte4 := 1;
    end
  else
    if escapecode <> opsok then
      escape( escapecode );
 end;

end;   (* fpmovem *)



function setfpsysflag(* FWD ->( opd : operand; report : boolean;
				var flag : fpsysflagtyp ) : boolean *);
var oldflag : fpsysflagtyp;
begin
  oldflag := flag;
  if opd.mode <> 9 then
    begin
      if report then
	error( errfpsysregneeded );
      setfpsysflag := false;
    end
  else
   begin
    if opd.reg = 0 then
      if not odd(flag div 4) then flag := flag + 4 else       (* CONTROL *)
    else
      if opd.reg = 1 then
	if not odd(flag div 2) then flag := flag + 2 else     (* STATUS *)
      else
	if opd.reg = 2 then
	  if not odd(flag div 1) then flag := flag + 1 else   (* IADDR *)
	else
	  error( errfpinternalerr );
    {
    if oldflag = flag then
      if report then
	error( errfpregexp );
    WHY IS THIS HERE ? {*}
    setfpsysflag := true;
   end;
end;    (* setfpsysflag *)

$end$

@


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.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
@@
