/*************************************************************************** * NAME: VOCSET.C ** COPYRIGHT: ** "Copyright (c) 1992, by FORTE ** ** "This software is furnished under a license and may be used, ** copied, or disclosed only in accordance with the terms of such ** license and with the inclusion of the above copyright notice. ** This software or any other copies thereof may not be provided or ** otherwise made available to any other person. No title to and ** ownership of the software is hereby transfered." **************************************************************************** * CREATION DATE: 11/18/92 *--------------------------------------------------------------------------* * VERSION DATE NAME DESCRIPTION *> 1.0 11/18/92 Original ***************************************************************************/ #include #include #include "forte.h" #include "gf1proto.h" #include "osproto.h" #include "gf1hware.h" #include "gf1os.h" extern ULTRA_DATA _gf1_data; void UltraSetVoice(int voice,unsigned long location) // int voice; /* voice to start */ // unsigned long location; /* start location in ultra DRAM */ { unsigned long phys_loc; unsigned char data; ENTER_CRITICAL; /* Make sure was are talking to proper voice */ outp(_gf1_data.voice_select,voice); outp(_gf1_data.reg_select,GET_CONTROL); data = inp(_gf1_data.data_hi); if (data & VC_DATA_TYPE) { phys_loc = convert_to_16bit(location); } else { phys_loc = location; } /* First set accumulator to beginning of data */ outp(_gf1_data.reg_select,SET_ACC_HIGH); outpw(_gf1_data.data_low,ADDR_HIGH(phys_loc)); outp(_gf1_data.reg_select,SET_ACC_LOW); outpw(_gf1_data.data_low,ADDR_LOW(phys_loc)); LEAVE_CRITICAL; }