#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  klib386.x.crc klib386.x.cdif
# Wrapped by evans@ditsyda on Mon Jul  2 22:36:27 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'klib386.x.crc' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'klib386.x.crc'\"
else
echo shar: Extracting \"'klib386.x.crc'\" \(47 characters\)
sed "s/^X//" >'klib386.x.crc' <<'END_OF_FILE'
X54263  20437 klib386.x
X43247  19739 klib386.x~
END_OF_FILE
if test 47 -ne `wc -c <'klib386.x.crc'`; then
    echo shar: \"'klib386.x.crc'\" unpacked with wrong size!
fi
# end of 'klib386.x.crc'
fi
if test -f 'klib386.x.cdif' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'klib386.x.cdif'\"
else
echo shar: Extracting \"'klib386.x.cdif'\" \(3717 characters\)
sed "s/^X//" >'klib386.x.cdif' <<'END_OF_FILE'
X*** dist/klib386.x	Thu Apr 26 20:23:07 1990
X--- klib386.x	Mon Jul  2 22:23:53 1990
X***************
X*** 44,55 ****
X  /* Paging constants. */
X! #define CR0_PG		0x80000000
X! #define LOG2_MEM_UNIT	10
X! #define LOG2_PAGE_SIZE	12
X! #define MEM_UNIT	1024
X! #define NR_PAGE_DIRS	1
X! #define NR_PAGE_TABLES	4
X! #define PAGE_DATA_SIZE	4
X! #define PAGE_SIZE	0x1000
X! #define PAGE_DIR_SIZE	0x1000
X! #define PAGE_TABLE_SIZE	0x1000
X  
X--- 44,57 ----
X  /* Paging constants. */
X! #define CR0_PG			0x80000000
X! #define EXTENDED_MEM_BASE	0x100000
X! #define LOG2_MEM_UNIT		10
X! #define LOG2_PAGE_DATA_SIZE	2
X! #define LOG2_PAGE_SIZE		12
X! #define MEM_UNIT		1024
X! #define NR_PAGE_DIRS		1
X! #define NR_PAGE_TABLES		4
X! #define PAGE_DATA_SIZE		4
X! #define PAGE_SIZE		0x1000
X! #define PAGE_DIR_SIZE		0x1000
X! #define PAGE_TABLE_SIZE		0x1000
X  
X***************
X*** 328,330 ****
X  	mov	cr3,edi			| use for page directory base
X! 	
X  	push	es
X--- 328,330 ----
X  	mov	cr3,edi			| use for page directory base
X! 
X  	push	es
X***************
X*** 332,334 ****
X  	mov	es,ax
X! 	
X  	mov	eax,_low_memsize
X--- 332,334 ----
X  	mov	es,ax
X! 
X  	mov	eax,_low_memsize
X***************
X*** 335,337 ****
X  	mov	ecx,edi
X! 	shr	ecx,#LOG2_MEM_UNIT	| assume MEM_UNIT <= PAGE_SIZE
X  	mov	_low_memsize,ecx	| now it ends at the page directory
X--- 335,340 ----
X  	mov	ecx,edi
X! #if MEM_UNIT > PAGE_SIZE
X! #error /* several calculations depend on MEM_UNIT <= PAGE_SIZE */
X! #endif
X! 	shr	ecx,#LOG2_MEM_UNIT
X  	mov	_low_memsize,ecx	| now it ends at the page directory
X***************
X*** 342,345 ****
X  	shl	eax,#LOG2_PAGE_SIZE-LOG2_MEM_UNIT
X! 	add	_ext_memsize,eax
X! 	
X  	lea	eax,PAGE_DIR_SIZE+0x07(edi)	| 0x07 is some access bits
X--- 345,353 ----
X  	shl	eax,#LOG2_PAGE_SIZE-LOG2_MEM_UNIT
X! 	mov	ecx,_ext_memsize
X! 	and	ecx,#!(PAGE_SIZE/MEM_UNIT-1)	| round down so top of extended
X! 					| memory is at a page boundary
X! 	push	ecx
X! 	add	ecx,eax
X! 	mov	_ext_memsize,ecx
X! 
X  	lea	eax,PAGE_DIR_SIZE+0x07(edi)	| 0x07 is some access bits
X***************
X*** 350,352 ****
X  	loop	init_page_dir
X! 	
X  	sub	eax,eax
X--- 358,360 ----
X  	loop	init_page_dir
X! 
X  	sub	eax,eax
X***************
X*** 355,357 ****
X  	stosd
X! 	
X  	mov	eax,#0x07
X--- 363,365 ----
X  	stosd
X! 
X  	mov	eax,#0x07
X***************
X*** 365,369 ****
X  	or	eax,#0x07
X! 	add	edi,#-NR_PAGE_TABLES*PAGE_TABLE_SIZE+0x200000/PAGE_SIZE*PAGE_DATA_SIZE
X! 					| 2M is end of extended mem
X  	pop	ecx			| number of pages stolen from low mem
X  init_stolen_page_table:
X--- 373,386 ----
X  	or	eax,#0x07
X! 	add	edi,#-NR_PAGE_TABLES*PAGE_TABLE_SIZE+EXTENDED_MEM_BASE/PAGE_SIZE*PAGE_DATA_SIZE
X! 					| page table for beginning of ext mem
X! 	pop	ecx			| size of extended memory
X! #if LOG2_MEM_UNIT-LOG2_PAGE_SIZE+LOG2_PAGE_DATA_SIZE > 0
X! 	shl	ecx,#LOG2_MEM_UNIT-LOG2_PAGE_SIZE+LOG2_PAGE_DATA_SIZE
X! #endif
X! #if LOG2_MEM_UNIT-LOG2_PAGE_SIZE+LOG2_PAGE_DATA_SIZE < 0
X! 	shr	ecx,#LOG2_PAGE_SIZE-LOG2_PAGE_DATA_SIZE-LOG2_MEM_UNIT
X! #endif
X! 	add	edi,ecx			| page table for orig end of ext mem
X  	pop	ecx			| number of pages stolen from low mem
X+ 	jcxz	over_init_stolen_page_table
X  init_stolen_page_table:
X***************
X*** 372,374 ****
X  	loop	init_stolen_page_table
X! 	
X  #if UNPORTABLE_PAGING
X--- 389,392 ----
X  	loop	init_stolen_page_table
X! over_init_stolen_page_table:
X! 
X  #if UNPORTABLE_PAGING
X***************
X*** 382,384 ****
X  	add	_ext_memsize,#0x60000/MEM_UNIT
X! 	
X  	mov	eax,#0xB0007		| Hercules memory at 0xB0000
X--- 400,402 ----
X  	add	_ext_memsize,#0x60000/MEM_UNIT
X! 
X  	mov	eax,#0xB0007		| Hercules memory at 0xB0000
X***************
X*** 390,392 ****
X  	add	_ext_memsize,#0x8000/MEM_UNIT
X! 	
X  #endif /* UNPORTABLE_PAGING */
X--- 408,410 ----
X  	add	_ext_memsize,#0x8000/MEM_UNIT
X! 
X  #endif /* UNPORTABLE_PAGING */
END_OF_FILE
if test 3717 -ne `wc -c <'klib386.x.cdif'`; then
    echo shar: \"'klib386.x.cdif'\" unpacked with wrong size!
fi
# end of 'klib386.x.cdif'
fi
echo shar: End of shell archive.
exit 0