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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.1
date     86.06.30.17.32.02;  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
@					       (*

 (c) Copyright Hewlett-Packard Company, 1984.
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                         *)

(* REMOTE CONSOLE MODIFICATION - 26/JAN/1984 *)

$modcal$
$heap_dispose off$
$iocheck off$
$range off$ $ovflcheck off$
$debug off$
$STACKCHECK OFF$
$SEARCH 'FINDC','BLIBS:IO.'$

program rckeysinit;

module rckeys;
import sysglobals, asm, misc, sysdevs, iodeclarations, general_0, FINDC;
export
  procedure rcinitkeys;

implement

  VAR  eol_lying_around : PACKED ARRAY[type_isc] OF BOOLEAN;
       myisc            : shortint;

       newdrivers       : drv_table_type;


{ note that you should not use the 'console'
  select code for anything else }


PROCEDURE new_reset( mytemp : ANYPTR );
BEGIN
  { do nothing so that the configuration stays the same }
END;


PROCEDURE myinit;

{This procedure was modified to do DC1/DC3 handshaking. 9/21/83}

VAR status_reg:                  {variant record to change upper two bits only}
	record case integer of
	  0:      (whole:
		     packed record
			     byte: 0..255;             {gets inital status}
			    end);
	  1:      (part:
		      packed record
			     upper_two_bits: 0..3;       {gets new bits}
			     end);
	end;

BEGIN    {myinit}
  IF isc_table[myisc].card_id = hp98628_async
    THEN BEGIN
	iocontrol(myisc,28,0);                         { no EOL characters }
	iocontrol(myisc,22,3);                         { DC1/DC3 hndshk-host }
    END;
  IF isc_table[myisc].card_id = hp98626
    THEN BEGIN
	status_reg.whole.byte := iostatus(myisc,4);    {read status reg 4}
	status_reg.part.upper_two_bits := 1;           {change upper two bits}
	iocontrol(myisc,4,status_reg.whole.byte);      {use DC1/DC3 hndshk}
    END;
  iocontrol(myisc,12,1);                               { connect the card }
  newdrivers := isc_table[myisc].io_drv_ptr^;          { copy 628 card dvrs }
  newdrivers.iod_init := new_reset;                    { put in new reset   }
  isc_table[myisc].io_drv_ptr := ADDR( newdrivers );   { install drivers    }
END;    {myinit}


FUNCTION inchar : CHAR;
VAR     x       : CHAR;
BEGIN
  IF eol_lying_around[myisc]
    THEN BEGIN
      inchar := eol;
      eol_lying_around[myisc] := FALSE;
    END
    ELSE BEGIN
      WITH isc_table[myisc] DO
      CALL ( io_drv_ptr^.iod_rdb ,
	     io_tmp_ptr ,
	     x );
      inchar:=x;
    END;
END;    {inchar}

FUNCTION kbdbusy : BOOLEAN;
VAR     x       : INTEGER;
BEGIN
  IF isc_table[myisc].card_id = hp98628_async
    THEN BEGIN
      { check inbound queue for data }
      x:=iostatus(myisc,5);
      IF (x=1) OR (x=3) OR eol_lying_around[myisc]  THEN kbdbusy:=FALSE
						    ELSE kbdbusy:=TRUE;
    END;
  IF isc_table[myisc].card_id = hp98626
    THEN BEGIN
      x:=iostatus(myisc,10);
      { check character buffer for data }
      IF ((x MOD 2)=0) OR eol_lying_around[myisc]    THEN kbdbusy:=FALSE
						     ELSE kbdbusy:=TRUE;
    END;
END;    {kbdbusy}

procedure rckbdio(fp: fibp; request: amrequesttype; anyvar buffer: window;
						   length, position: integer);
var   interruptlevel: integer;
      ch1,ch2:char; kbl: shortint;
      commandinprogress: char;
      buf: charptr;
      extra: shortint;                                        { scs 25-jan-83 }
begin
  myisc := unitable^[fp^.funit].sc;
  IF (myisc>=0) AND (myisc<=7) THEN
  BEGIN
    { 0 is default and 1..7 are not allowed }
    myisc := console_isc;
  END
  ELSE
  BEGIN
    { -isc and isc>7 allows a CTABLE entry
       to override all of this garbage }
    IF myisc < 0  THEN myisc := -myisc;
    IF myisc > 31 THEN myisc := myisc MOD 32;
  END;
  ioresult := ORD(inoerror);
  buf := ADDR(buffer);
  CASE request OF

    flush:       BEGIN
		   myinit;
		 END;

    unitstatus:  BEGIN
		   fp^.fbusy := kbdbusy  ;
		 END;

    clearunit:   BEGIN
		   myinit;
		 END;

    readtoeol,
    readbytes,
    startread:   BEGIN
		   IF request = readtoeol
		     THEN BEGIN
		       { the buffer is a string - so set it to empty }
		       buf := ADDR(buf^, 1);
		       buffer[0] := chr(0);
		     END;
		   while length>0 DO BEGIN
		     buf^ := inchar;
		     IF buf^ = chr(etx)
		       THEN length := 0
		       ELSE length := length-1;
		     IF (buf^=eol) and (request=readtoeol)
		       THEN BEGIN
			 eol_lying_around[myisc] := TRUE;
			 length := 0
		       END
		       ELSE BEGIN
			 fp^.feoln := false;
			 buf := ADDR(buf^, 1);
			 IF request = readtoeol
			   THEN buffer[0] := CHR(ORD(buffer[0])+1);
		       END;
		   END; { of WHILE DO }
		   IF request = startread THEN CALL(fp^.feot, fp);
		 END;

    OTHERWISE    BEGIN
		   ioresult := ORD(ibadrequest);
		 END;

  END; { of CASE }

end; {rckbdio}

procedure rcinitkeys;
var kbddata   : byte;
    localisc  : INTEGER;
begin
  FOR localisc := 0 TO 31 DO eol_lying_around[localisc] := FALSE;
  kbdiohook:=rckbdio;
  kbdtype:=specialkbd1;
end;

end; {module rckeys}

import rckeys, loader, findc;

begin
  if not internal_console then
  begin
    rcinitkeys;
    markuser;
  end;
end.


@


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


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@a0 222
					       (*

 (c) Copyright Hewlett-Packard Company, 1984.
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                         *)

(* REMOTE CONSOLE MODIFICATION - 26/JAN/1984 *)

$modcal$
$heap_dispose off$
$iocheck off$
$range off$ $ovflcheck off$
$debug off$
$STACKCHECK OFF$
$SEARCH 'FINDC','BLIBS:IO.'$

program rckeysinit;

module rckeys;
import sysglobals, asm, misc, sysdevs, iodeclarations, general_0, FINDC;
export
  procedure rcinitkeys;

implement

  VAR  eol_lying_around : PACKED ARRAY[type_isc] OF BOOLEAN;
       myisc            : shortint;

       newdrivers       : drv_table_type;


{ note that you should not use the 'console'
  select code for anything else }


PROCEDURE new_reset( mytemp : ANYPTR );
BEGIN
  { do nothing so that the configuration stays the same }
END;


PROCEDURE myinit;

{This procedure was modified to do DC1/DC3 handshaking. 9/21/83}

VAR status_reg:                  {variant record to change upper two bits only}
	record case integer of
	  0:      (whole:
		     packed record
			     byte: 0..255;             {gets inital status}
			    end);
	  1:      (part:
		      packed record
			     upper_two_bits: 0..3;       {gets new bits}
			     end);
	end;

BEGIN    {myinit}
  IF isc_table[myisc].card_id = hp98628_async
    THEN BEGIN
	iocontrol(myisc,28,0);                         { no EOL characters }
	iocontrol(myisc,22,3);                         { DC1/DC3 hndshk-host }
    END;
  IF isc_table[myisc].card_id = hp98626
    THEN BEGIN
	status_reg.whole.byte := iostatus(myisc,4);    {read status reg 4}
	status_reg.part.upper_two_bits := 1;           {change upper two bits}
	iocontrol(myisc,4,status_reg.whole.byte);      {use DC1/DC3 hndshk}
    END;
  iocontrol(myisc,12,1);                               { connect the card }
  newdrivers := isc_table[myisc].io_drv_ptr^;          { copy 628 card dvrs }
  newdrivers.iod_init := new_reset;                    { put in new reset   }
  isc_table[myisc].io_drv_ptr := ADDR( newdrivers );   { install drivers    }
END;    {myinit}


FUNCTION inchar : CHAR;
VAR     x       : CHAR;
BEGIN
  IF eol_lying_around[myisc]
    THEN BEGIN
      inchar := eol;
      eol_lying_around[myisc] := FALSE;
    END
    ELSE BEGIN
      WITH isc_table[myisc] DO
      CALL ( io_drv_ptr^.iod_rdb ,
	     io_tmp_ptr ,
	     x );
      inchar:=x;
    END;
END;    {inchar}

FUNCTION kbdbusy : BOOLEAN;
VAR     x       : INTEGER;
BEGIN
  IF isc_table[myisc].card_id = hp98628_async
    THEN BEGIN
      { check inbound queue for data }
      x:=iostatus(myisc,5);
      IF (x=1) OR (x=3) OR eol_lying_around[myisc]  THEN kbdbusy:=FALSE
						    ELSE kbdbusy:=TRUE;
    END;
  IF isc_table[myisc].card_id = hp98626
    THEN BEGIN
      x:=iostatus(myisc,10);
      { check character buffer for data }
      IF ((x MOD 2)=0) OR eol_lying_around[myisc]    THEN kbdbusy:=FALSE
						     ELSE kbdbusy:=TRUE;
    END;
END;    {kbdbusy}

procedure rckbdio(fp: fibp; request: amrequesttype; anyvar buffer: window;
						   length, position: integer);
var   interruptlevel: integer;
      ch1,ch2:char; kbl: shortint;
      commandinprogress: char;
      buf: charptr;
      extra: shortint;                                        { scs 25-jan-83 }
begin
  myisc := unitable^[fp^.funit].sc;
  IF (myisc>=0) AND (myisc<=7) THEN
  BEGIN
    { 0 is default and 1..7 are not allowed }
    myisc := console_isc;
  END
  ELSE
  BEGIN
    { -isc and isc>7 allows a CTABLE entry
       to override all of this garbage }
    IF myisc < 0  THEN myisc := -myisc;
    IF myisc > 31 THEN myisc := myisc MOD 32;
  END;
  ioresult := ORD(inoerror);
  buf := ADDR(buffer);
  CASE request OF

    flush:       BEGIN
		   myinit;
		 END;

    unitstatus:  BEGIN
		   fp^.fbusy := kbdbusy  ;
		 END;

    clearunit:   BEGIN
		   myinit;
		 END;

    readtoeol,
    readbytes,
    startread:   BEGIN
		   IF request = readtoeol
		     THEN BEGIN
		       { the buffer is a string - so set it to empty }
		       buf := ADDR(buf^, 1);
		       buffer[0] := chr(0);
		     END;
		   while length>0 DO BEGIN
		     buf^ := inchar;
		     IF buf^ = chr(etx)
		       THEN length := 0
		       ELSE length := length-1;
		     IF (buf^=eol) and (request=readtoeol)
		       THEN BEGIN
			 eol_lying_around[myisc] := TRUE;
			 length := 0
		       END
		       ELSE BEGIN
			 fp^.feoln := false;
			 buf := ADDR(buf^, 1);
			 IF request = readtoeol
			   THEN buffer[0] := CHR(ORD(buffer[0])+1);
		       END;
		   END; { of WHILE DO }
		   IF request = startread THEN CALL(fp^.feot, fp);
		 END;

    OTHERWISE    BEGIN
		   ioresult := ORD(ibadrequest);
		 END;

  END; { of CASE }

end; {rckbdio}

procedure rcinitkeys;
var kbddata   : byte;
    localisc  : INTEGER;
begin
  FOR localisc := 0 TO 31 DO eol_lying_around[localisc] := FALSE;
  kbdiohook:=rckbdio;
  kbdtype:=specialkbd1;
end;

end; {module rckeys}

import rckeys, loader, findc;

begin
  if not internal_console then
  begin
    rcinitkeys;
    markuser;
  end;
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
@Auto bump revision for PAWS 3.2h
@
text
@@


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


1.1
log
@Initial revision
@
text
@@
