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

1992/1108/pc/l.s (diff list | history)

1992/1107/sys/src/9/pc/l.s:635,6411992/1108/sys/src/9/pc/l.s:635,643 (short | long | prev | next)
Add l1update. Rename cswizzle.
rsc Fri Mar 4 12:44:25 2005
1991/0806    
	RET 
1992/1107    
 
/* 
 *  copy bytes to screen memory for ldepth 0 screen 
1992/1108    
 *  copy bitmap changes to screen memory for ldepth 0 screen 
 *  reverse the bits since the screen is big-endian 
 *  and the bitmaps are little. 
1992/1107    
 */ 
TEXT	l0update(SB),$0 
	XORL	AX,AX 
1992/1107/sys/src/9/pc/l.s:644,6501992/1108/sys/src/9/pc/l.s:646,687
1992/1107    
	MOVL	to+4(FP),DX 
l00: 
	MOVB	-1(BX)(CX*1),AL 
	MOVB	cswizzle(SB)(AX*1),AL 
1992/1108    
	MOVB	bitrevtab(SB)(AX*1),AL 
1992/1107    
	MOVB	AL,-1(DX)(CX*1) 
	LOOP	l00 
1992/1108    
	RET 
 
#define SRX	0x3C4		/* index to sequence registers */ 
#define	SR	0x3C5		/* sequence registers */ 
#define Smmask	0x02		/*  map mask */ 
 
/* 
 *  same as l0update but for ldepth 1 (2 bit plane) screens 
 */ 
TEXT	l1update(SB),$0 
	MOVL	from+0(FP),SI 
	MOVL	to+4(FP),DI 
	MOVL	len+8(FP),CX 
l10: 
	XORL	DX,DX 
	MOVB	-2(SI)(CX*2),DL		/* high order nibbles */ 
	MOVW	l1revsep(SB)(DX*2),BX 
	SHLW	$4,BX 
	MOVB	-1(SI)(CX*2),DL		/* low order nibbles */ 
	ORW	l1revsep(SB)(DX*2),BX 
	MOVB	$(Smmask),AL		/* write hi order bits to bit planes 0 & 2 */ 
	MOVW	$(SRX),DX 
	OUTB 
	MOVB	$0xA,AL 
	MOVW	$(SR),DX 
	OUTB 
	MOVB	BH,-1(DI)(CX*1) 
	MOVB	$(Smmask),AL		/* write lo order bits to bit planes 1 & 3 */ 
	MOVW	$(SRX),DX 
	OUTB 
	MOVB	$0x5,AL 
	MOVW	$(SR),DX 
	OUTB 
	MOVB	BL,-1(DI)(CX*1) 
	LOOP	l10 
1992/1107    
	RET 


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