plan 9 kernel history: overview | file list | diff list

1991/0801/pc/vga.c (diff list | history)

1991/0731/sys/src/9/pc/vga.c:167,1921991/0801/sys/src/9/pc/vga.c:167,191 (short | long | prev | next)
1991/0730    
	srout(Smmask, 0x0f);	/* enable all 4 color planes for writing */ 
1991/0724    
 
1991/0727    
	/* 
1991/0801    
	 *  swizzle the font longs. 
	 *  we do it here since the font is initialized with big endian longs. 
	 */ 
	defont = &defont0; 
	l = defont->bits->base; 
	for(i = defont->bits->width*Dy(defont->bits->r); i > 0; i--, l++) 
		*l = (*l<<24) | ((*l>>8)&0x0000ff00) | ((*l<<8)&0x00ff0000) | (*l>>24); 
 
	/* 
1991/0727    
	 *  zero out display 
	 */ 
1991/0730    
	defont = &defont0;	/* save space; let bitblt do the conversion work */ 
	gbitblt(&gscreen, Pt(0, 0), &gscreen, gscreen.r, 0); /**/ 
1991/0801    
	gbitblt(&gscreen, Pt(0, 0), &gscreen, gscreen.r, flipD[0]); 
1991/0730    
 
	/* 
	 *  stick print at the top 
1991/0801    
	 *  start printing at the top of screen 
1991/0730    
	 */ 
	out.pos.x = MINX; 
	out.pos.y = 0; 
	out.bwid = defont0.info[' '].width; 
                 
	/* 
	 *  swizzle the damn font longs. 
	 *  we do it here since the font is in a machine independent (i.e. 
	 *  made for the 68020) format. 
	 */ 
	l = defont->bits->base; 
	for(i = defont->bits->width*Dy(defont->bits->r); i > 0; i--, l++) 
		*l = (*l<<24) | ((*l>>8)&0x0000ff00) | ((*l<<8)&0x00ff0000) | (*l>>24); 
1991/0723    
} 
1991/0727    
 
1991/0730    
void 
1991/0731/sys/src/9/pc/vga.c:201,2071991/0801/sys/src/9/pc/vga.c:200,206
1991/0730    
		if(out.pos.y > gscreen.r.max.y-defont0.height) 
			out.pos.y = gscreen.r.min.y; 
		gbitblt(&gscreen, Pt(0, out.pos.y), &gscreen, 
		    Rect(0, out.pos.y, gscreen.r.max.x, out.pos.y+2*defont0.height), 0); 
1991/0801    
		    Rect(0, out.pos.y, gscreen.r.max.x, out.pos.y+2*defont0.height), flipD[0]); 
1991/0730    
	}else if(c == '\t'){ 
		out.pos.x += (8-((out.pos.x-MINX)/out.bwid&7))*out.bwid; 
		if(out.pos.x >= gscreen.r.max.x) 
1991/0731/sys/src/9/pc/vga.c:217,2231991/0801/sys/src/9/pc/vga.c:216,222
1991/0730    
			screenputc('\n'); 
		buf[0] = c&0x7F; 
		buf[1] = 0; 
		out.pos = gstring(&gscreen, out.pos, defont, buf, S); 
1991/0801    
		out.pos = gstring(&gscreen, out.pos, defont, buf, flipD[S]); 
1991/0730    
	} 
} 
 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)