DataMuseum.dk

Presents historical artifacts from the history of:

Commodore CBM-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Commodore CBM-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦5dfa89f14⟧ TextFile

    Length: 1415 (0x587)
    Types: TextFile
    Notes: UNIX file
    Names: »jl18.c«

Derivation

└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
    └─⟦2d53db1df⟧ UNIX V7 Filesystem
        └─ ⟦this⟧ »hr/src/jlib/jl18.c« 

TextFile

#include	<jlib.h>

extern	int	myfd;
extern	struct	jqueue	sendq,
			runq,
			s_replyq;

static	struct	jqueue	wingrq;
static	int	l_wingrq;

int	G_SetGraph(wid, g, gflags)
int	wid;
GRAPH	*g;
unsigned gflags;
{
	static	GRAPH	graph;

	S_wingrq();
	graph = *g;
	MsgReceiver = SMGR;
	MsgCmd   = SM_SETGRAPH;
	MsgWid   = wid;
	MsgBytL0 = gflags;
	MsgPtr   = (char *)&graph;
	sendmess( );
	jdoze(&s_replyq);
	Msg = runq.jq_head->j_m;
	S_fwingrq();
	if ( MsgWid != wid )
		warn("Bad wid from SM_SetGraph %d, %d\n", MsgWid, wid);
	if ( MsgPtr !=  (char *) &graph )
		warn("Bad ptr from SM_SetGraph\n");
	return(0);
}
 
int	G_GetGraph(wid, g)
int	wid;
GRAPH	*g;
{
	struct xfer	xfer;

	S_wingrq();
	MsgReceiver = SMGR;
	MsgCmd = SM_GETGRAPH;
	MsgWid = wid;
	sendmess( );
	jdoze(&s_replyq);
	Msg = runq.jq_head->j_m;
	if ( MsgCmd != WM_REPLY )
		warn("Bad reply from SM_GetGraph\n");
	if ( MsgWid != wid )
		warn("Bad wid from SM_GetGraph\n");
	if ( MsgBytL0 != sizeof(GRAPH)  )
		warn("Bad count from SM_GetGraph\n");

	xfer.x_count = sizeof(GRAPH);
	xfer.x_src = SMGR;
	xfer.x_dstp = (char *) g;
	xfer.x_srcp = (char *) MsgPtr;
	ioctl(myfd, CIOGETD, &xfer);
	return(0);
}
 
int	G_RstGraph(wid)
int	wid;
{
	MsgReceiver = SMGR;
	MsgCmd = SM_RSTGRAPH;
	MsgWid = wid;
	sendmess( );
	return(0);
}


static
S_wingrq()
{
	if ( l_wingrq )
		jdoze( &wingrq );
	l_wingrq = 1;
}

static
S_fwingrq()
{
	l_wingrq = 0;
	jalert( &wingrq );
}