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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

42.1
date     90.01.23.17.59.53;  author jwh;  state Exp;
branches ;
next     41.2;

41.2
date     90.01.18.23.02.14;  author dew;  state Exp;
branches ;
next     41.1;

41.1
date     89.12.22.11.41.37;  author jwh;  state Exp;
branches ;
next     40.2;

40.2
date     89.10.30.16.49.56;  author dew;  state Exp;
branches ;
next     40.1;

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

39.1
date     89.09.26.16.47.36;  author dew;  state Exp;
branches ;
next     1.1;

1.1
date     89.09.14.10.23.12;  author dew;  state Exp;
branches ;
next     ;


desc
@OSD_HL is the PWS Operating System Dependent, High Level module
that ties the SCSI Generic Driver into PWS.
@


56.3
log
@
pws2rcs automatic delta on Wed Jan 27 13:14:25 MST 1993
@
text
@module OSD_HL;

export
	Procedure osdhStartUp;

implement

import sysglobals, GENERAL_0, SCSI_DEFS,OSD_LL,HWI_UTILS,COMMANDS,SCSI_ISR,
       LOADER, IODECLARATIONS, ASM;


Procedure ScsiIOD_TFR(temp, v:ANYPTR);
var
	i:integer;
begin
	i := ord(temp);
	if i = 0 then
		DoSession(v)
	else if i = 1 then
		DoAbort(v)
	else if i = 2 then
	begin
		i := ord(v);
		DoReset(i);
	end;
end;


Procedure ScsiIOD_INIT(temp:ANYPTR);
begin
	{
	   temp is an pio_tmp_ptr.
	}
	cmdScCleanUp(pio_tmp_ptr(temp)^.my_isc);
end;

Procedure osdhStartUp;
type
	PtrScsiDvrType=^drv_table_type;
var
	card_found:boolean;
	sc:TYPE_ISC;
	pScsiDvrTable:PtrScsiDvrType;
begin
	card_found:= false;
	for sc := minrealisc to maxrealisc do
	with isc_table[sc] do
	begin
		if (card_ptr <> nil) and
		   (card_type = scsi_card) then
		begin
			card_found := true;

			{
			  Initialize this card's select code block and link
			  the scsi ISR routine into this select code.
			}
			osdInitScBlock(sc);
			osdLinkIsrRoutine(isrScsiIsr, sc);

			{
			  Initialize the hardware
			}
			hwiSCInitHW(sc);

			{
			  get space for the SCSI driver table.
			  Initialize it to the contents of the system driver table.
			  update the pointer in the isc_table to the SCSI driver table.
			}
			newbytes(pScsiDvrTable, sizeof(drv_table_type));
			pScsiDvrTable^ := PtrScsiDvrType(io_drv_ptr)^;
			PtrScsiDvrType(io_drv_ptr) := pScsiDvrTable;

			{
			  initialize the SCSI driver table to our procedures.
			}
			io_drv_ptr^.iod_tfr := ScsiIOD_TFR;
			io_drv_ptr^.iod_init := ScsiIOD_INIT;
		end;
	end;
	if card_found then markuser;
end;

end;
@


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


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@a0 85
module OSD_HL;

export
	Procedure osdhStartUp;

implement

import sysglobals, GENERAL_0, SCSI_DEFS,OSD_LL,HWI_UTILS,COMMANDS,SCSI_ISR,
       LOADER, IODECLARATIONS, ASM;


Procedure ScsiIOD_TFR(temp, v:ANYPTR);
var
	i:integer;
begin
	i := ord(temp);
	if i = 0 then
		DoSession(v)
	else if i = 1 then
		DoAbort(v)
	else if i = 2 then
	begin
		i := ord(v);
		DoReset(i);
	end;
end;


Procedure ScsiIOD_INIT(temp:ANYPTR);
begin
	{
	   temp is an pio_tmp_ptr.
	}
	cmdScCleanUp(pio_tmp_ptr(temp)^.my_isc);
end;

Procedure osdhStartUp;
type
	PtrScsiDvrType=^drv_table_type;
var
	card_found:boolean;
	sc:TYPE_ISC;
	pScsiDvrTable:PtrScsiDvrType;
begin
	card_found:= false;
	for sc := minrealisc to maxrealisc do
	with isc_table[sc] do
	begin
		if (card_ptr <> nil) and
		   (card_type = scsi_card) then
		begin
			card_found := true;

			{
			  Initialize this card's select code block and link
			  the scsi ISR routine into this select code.
			}
			osdInitScBlock(sc);
			osdLinkIsrRoutine(isrScsiIsr, sc);

			{
			  Initialize the hardware
			}
			hwiSCInitHW(sc);

			{
			  get space for the SCSI driver table.
			  Initialize it to the contents of the system driver table.
			  update the pointer in the isc_table to the SCSI driver table.
			}
			newbytes(pScsiDvrTable, sizeof(drv_table_type));
			pScsiDvrTable^ := PtrScsiDvrType(io_drv_ptr)^;
			PtrScsiDvrType(io_drv_ptr) := pScsiDvrTable;

			{
			  initialize the SCSI driver table to our procedures.
			}
			io_drv_ptr^.iod_tfr := ScsiIOD_TFR;
			io_drv_ptr^.iod_init := ScsiIOD_INIT;
		end;
	end;
	if card_found then 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.2
log
@Expanded to handle calls to DoAbort and DoReset
@
text
@@


41.1
log
@Automatic bump of revision number for PWS version 3.23d
@
text
@d13 2
d16 10
a25 1
	DoSession(v);
@


40.2
log
@Have determined that initializing the H/W is, in fact, a desireable thing
to do.  The system loader will ask the boot rom to re-initialize after
initlib has been loaded, thus the rom will treat the h/w as if for the
first time, and the SCSI driver hasn't hurt anything.  Furthermore, if
SCSIDVR is executed by itself, then it should load and initialize properly.
@
text
@@


40.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@d51 1
a51 5
			  DO NOT initialize the SCSI hardware here!!!!.
			  This will kill the boot rom if booting off of a SCSI device.
			  The table program always calls the cleariohook which will
			  initialize the SCSI hardware, and at this time, the driver will
			  take over all SCSI communications.
d53 1
a53 1
			{hwiSCInitHW(sc);}
@


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


1.1
log
@Initial revision
@
text
@@
