#! /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