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


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

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

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

55.1
date     91.08.25.10.18.58;  author jwh;  state Exp;
branches ;
next     54.3;

54.3
date     91.08.21.12.36.21;  author jwh;  state Exp;
branches ;
next     54.2;

54.2
date     91.08.21.09.47.51;  author jwh;  state Exp;
branches ;
next     54.1;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.1
date     86.06.30.14.28.58;  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
@	def     fs_freadstrint
	refa    sysglobals

ioresult        equ sysglobals-22
ibadformat      equ 14          improper syntax for an integer

error           equ D0          ioresult
remainder       equ D1          characters left in string
index           equ D2          subscript into string
char            equ D3          character in question
int             equ D4          integer being built
sign            equ D5          minus flag
oldindex        equ D6          original value of index
temp            equ D7

return          equ A0          subroutine return address
I               equ A1          address of integer to be returned
aindex          equ A2          address of index into string
string          equ A3          address of source string

fs_freadstrint  equ *
	movea.l (sp)+,return
	movea.l (sp)+,I
	movea.l (sp)+,aindex
	movea.l (sp)+,string

	moveq   #0,char                 sign extend digits
	moveq   #0,remainder
	move.b  (string),remainder      get current length of string
	move.l  (aindex),index          get subscript into it
	move.l  index,oldindex          save in case of error
	ble.s   L0                      error if < 1
	adda    index,string            advance to first interesting character
	sub.l   index,remainder         how many characters have we left?
	bge.s   L1
L0      moveq   #ibadformat,error       index is past end of string!
	bra.s   endit

L2      addq    #1,index                bump user index
	subq    #1,remainder            any more characters?
	blt.s   L0
L1      move.b  (string)+,char
	cmp.b   #' ',char               skip spaces
	beq.s   L2

	st      error                   assume error until see digit
	moveq   #0,int                  initialize value

	cmp.b   #'-',char               is it a minus?
	seq     sign
	beq.s   L3
	cmp.b   #'+',char               is it a plus?
	bne.s   L4

L3      addq    #1,index                bump user index
	subq    #1,remainder            any more characters?
	blt.s   L5
	move.b  (string)+,char
L4      sub.b   #'0',char               is it a digit
	blt.s   L5
	cmp.b   #9,char
	bgt.s   L5
	sf      error                   no error, at least one digit

	add.l   int,int                 multiply integer by 10
	bvs.s   L0
	move.l  int,temp
	asl.l   #2,int
	bvs.s   L0
	add.l   temp,int
	bvs.s   L0

	sub.l   char,int                add value of digit
	bvc.s   L3                      go back for more
	bra.s   L0

L5      tst.b   error                   were there any digits?
	bne.s   L0
	tst.b   sign                    was it positive
	bne.s   L8
	neg.l   int                     make it positive
	bvs.s   L0
L8      moveq   #0,error                all done, no errors


endit   move.l  error,ioresult(a5)
	beq.s   ok
	move.l  oldindex,index
	moveq   #0,int
ok      move.l  index,(aindex)
	move.l  int,(I)
	jmp     (return)

	nosyms
	end

@


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


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@a0 96
	def     fs_freadstrint
	refa    sysglobals

ioresult        equ sysglobals-22
ibadformat      equ 14          improper syntax for an integer

error           equ D0          ioresult
remainder       equ D1          characters left in string
index           equ D2          subscript into string
char            equ D3          character in question
int             equ D4          integer being built
sign            equ D5          minus flag
oldindex        equ D6          original value of index
temp            equ D7

return          equ A0          subroutine return address
I               equ A1          address of integer to be returned
aindex          equ A2          address of index into string
string          equ A3          address of source string

fs_freadstrint  equ *
	movea.l (sp)+,return
	movea.l (sp)+,I
	movea.l (sp)+,aindex
	movea.l (sp)+,string

	moveq   #0,char                 sign extend digits
	moveq   #0,remainder
	move.b  (string),remainder      get current length of string
	move.l  (aindex),index          get subscript into it
	move.l  index,oldindex          save in case of error
	ble.s   L0                      error if < 1
	adda    index,string            advance to first interesting character
	sub.l   index,remainder         how many characters have we left?
	bge.s   L1
L0      moveq   #ibadformat,error       index is past end of string!
	bra.s   endit

L2      addq    #1,index                bump user index
	subq    #1,remainder            any more characters?
	blt.s   L0
L1      move.b  (string)+,char
	cmp.b   #' ',char               skip spaces
	beq.s   L2

	st      error                   assume error until see digit
	moveq   #0,int                  initialize value

	cmp.b   #'-',char               is it a minus?
	seq     sign
	beq.s   L3
	cmp.b   #'+',char               is it a plus?
	bne.s   L4

L3      addq    #1,index                bump user index
	subq    #1,remainder            any more characters?
	blt.s   L5
	move.b  (string)+,char
L4      sub.b   #'0',char               is it a digit
	blt.s   L5
	cmp.b   #9,char
	bgt.s   L5
	sf      error                   no error, at least one digit

	add.l   int,int                 multiply integer by 10
	bvs.s   L0
	move.l  int,temp
	asl.l   #2,int
	bvs.s   L0
	add.l   temp,int
	bvs.s   L0

	sub.l   char,int                add value of digit
	bvc.s   L3                      go back for more
	bra.s   L0

L5      tst.b   error                   were there any digits?
	bne.s   L0
	tst.b   sign                    was it positive
	bne.s   L8
	neg.l   int                     make it positive
	bvs.s   L0
L8      moveq   #0,error                all done, no errors


endit   move.l  error,ioresult(a5)
	beq.s   ok
	move.l  oldindex,index
	moveq   #0,int
ok      move.l  index,(aindex)
	move.l  int,(I)
	jmp     (return)

	nosyms
	end

@


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


54.3
log
@
pws2rcs automatic delta on Wed Aug 21 12:27:56 MDT 1991
@
text
@@


54.2
log
@
pws2rcs automatic delta on Wed Aug 21 09:35:48 MDT 1991
@
text
@d1 96
@


54.1
log
@Automatic bump of revision number for PWS version 3.24
@
text
@a0 96
	def     fs_freadstrint
	refa    sysglobals

ioresult        equ sysglobals-22
ibadformat      equ 14          improper syntax for an integer

error           equ D0          ioresult
remainder       equ D1          characters left in string
index           equ D2          subscript into string
char            equ D3          character in question
int             equ D4          integer being built
sign            equ D5          minus flag
oldindex        equ D6          original value of index
temp            equ D7

return          equ A0          subroutine return address
I               equ A1          address of integer to be returned
aindex          equ A2          address of index into string
string          equ A3          address of source string

fs_freadstrint  equ *
	movea.l (sp)+,return
	movea.l (sp)+,I
	movea.l (sp)+,aindex
	movea.l (sp)+,string

	moveq   #0,char                 sign extend digits
	moveq   #0,remainder
	move.b  (string),remainder      get current length of string
	move.l  (aindex),index          get subscript into it
	move.l  index,oldindex          save in case of error
	ble.s   L0                      error if < 1
	adda    index,string            advance to first interesting character
	sub.l   index,remainder         how many characters have we left?
	bge.s   L1
L0      moveq   #ibadformat,error       index is past end of string!
	bra.s   endit

L2      addq    #1,index                bump user index
	subq    #1,remainder            any more characters?
	blt.s   L0
L1      move.b  (string)+,char
	cmp.b   #' ',char               skip spaces
	beq.s   L2

	st      error                   assume error until see digit
	moveq   #0,int                  initialize value

	cmp.b   #'-',char               is it a minus?
	seq     sign
	beq.s   L3
	cmp.b   #'+',char               is it a plus?
	bne.s   L4

L3      addq    #1,index                bump user index
	subq    #1,remainder            any more characters?
	blt.s   L5
	move.b  (string)+,char
L4      sub.b   #'0',char               is it a digit
	blt.s   L5
	cmp.b   #9,char
	bgt.s   L5
	sf      error                   no error, at least one digit

	add.l   int,int                 multiply integer by 10
	bvs.s   L0
	move.l  int,temp
	asl.l   #2,int
	bvs.s   L0
	add.l   temp,int
	bvs.s   L0

	sub.l   char,int                add value of digit
	bvc.s   L3                      go back for more
	bra.s   L0

L5      tst.b   error                   were there any digits?
	bne.s   L0
	tst.b   sign                    was it positive
	bne.s   L8
	neg.l   int                     make it positive
	bvs.s   L0
L8      moveq   #0,error                all done, no errors


endit   move.l  error,ioresult(a5)
	beq.s   ok
	move.l  oldindex,index
	moveq   #0,int
ok      move.l  index,(aindex)
	move.l  int,(I)
	jmp     (return)

	nosyms
	end

@


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