Files ker2005/bin/autoexec.bat and ker2006/bin/autoexec.bat are identical
Binary files ker2005/bin/boot.bin and ker2006/bin/boot.bin differ
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/bin/config.sys ker2006/bin/config.sys
--- ker2005/bin/config.sys	Sun Mar 28 14:15:26 1999
+++ ker2006/bin/config.sys	Thu Apr  1 01:22:58 1999
@@ -1,2 +1,3 @@
 files=20
 buffers=20
+screen=0x12
Files ker2005/bin/copying and ker2006/bin/copying are identical
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/bin/install.bat ker2006/bin/install.bat
--- ker2005/bin/install.bat	Sun Mar 28 14:37:56 1999
+++ ker2006/bin/install.bat	Thu Apr  1 01:22:58 1999
@@ -1,11 +1,17 @@
 @echo off
 rem
 rem Create a distribution floppy
 rem
-rem $Header$
-rem $Log$
+rem $Header: /home/cvsroot/fdkernel/BIN/INSTALL.BAT,v 1.2 1999/04/01 07:22:58 jprice Exp $
+rem $Log: INSTALL.BAT,v $
+rem Revision 1.2  1999/04/01 07:22:58  jprice
+rem no message
+rem
+rem Revision 1.1.1.1  1999/03/29 15:40:21  jprice
+rem New version without IPL.SYS
+rem
 rem
 echo This utility will create a distribution floppy on the disk in drive A:
 pause
 
 rem try to transfer system files -- abort ifit cannot.
@@ -14,11 +20,10 @@
 
 rem copy remaining files
 echo System transferred -- copying remaining files
 copy autoexec.bat a:
 copy config.sys a:
-copy boot.bin a:
 copy sys.com a:
 label a: freedos
 
 rem exit methods
 goto done
Binary files ker2005/bin/kernel.sys and ker2006/bin/kernel.sys differ
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/boot/boot.asm ker2006/boot/boot.asm
--- ker2005/boot/boot.asm	Sun Mar 28 10:37:44 1999
+++ ker2006/boot/boot.asm	Thu Apr  1 01:23:20 1999
@@ -25,11 +25,17 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 
 
-; $Log: boot.asm,v $
+; $Log: BOOT.ASM,v $
+; Revision 1.2  1999/04/01 07:23:20  jprice
+; New boot loader
+;
+; Revision 1.1.1.1  1999/03/29 15:39:39  jprice
+; New version without IPL.SYS
+;
 ; Revision 1.3  1999/03/02 06:57:14  jprice
 ; Added entry address for more recent versions of TLINK
 ;
 ; Revision 1.2  1999/01/21 05:03:58  jprice
 ; Formating.
@@ -58,10 +64,14 @@
 ;
 
                 page    60,132
                 title   DOS-C boot
 
+;ISFAT12         EQU     1
+;ISFAT16         EQU     1
+;CALCPARAMS      EQU     1
+
 
 IFDEF DEBUG
 TEXT SEGMENT WORD PUBLIC 'TEXT'
 TEXT ENDS
 
@@ -94,47 +104,47 @@
                 org     BASE
 Entry:          jmp     short real_start
 		nop
 
 ;       bp is initialized to 7c00h
-oem             equ     [bp+3]
-bytesPerSector  equ     [bp+0bh]
-sectPerCluster  equ     [bp+0dh]
-resSectors      equ     [bp+0eh]
-nFats           equ     [bp+10h]
-nRootDir        equ     [bp+11h]
-nSectors        equ     [bp+13h]
-MID             equ     [bp+15h]
-sectPerFat      equ     [bp+16h]
-sectPerTrack    equ     [bp+18h]
-nHeads          equ     [bp+1ah]
-nHidden         equ     [bp+1ch]
-nSectorHuge     equ     [bp+20h]
-drive           equ     [bp+24h]
-extBoot         equ     [bp+26h]
+bsOemName       equ     [bp+3]      ; OEM label
+bsBytesPerSec   equ     [bp+0bh]    ; bytes/sector
+bsSecPerClust   equ     [bp+0dh]    ; sectors/allocation unit
+bsResSectors    equ     [bp+0eh]    ; # reserved sectors
+bsFATs          equ     [bp+10h]    ; # of fats
+bsRootDirEnts   equ     [bp+11h]    ; # of root dir entries
+bsSectors       equ     [bp+13h]    ; # sectors total in image
+bsMedia         equ     [bp+15h]    ; media descrip: fd=2side9sec, etc...
+sectPerFat      equ     [bp+16h]    ; # sectors in a fat
+sectPerTrack    equ     [bp+18h]    ; # sectors/track
+nHeads          equ     [bp+1ah]    ; # heads
+nHidden         equ     [bp+1ch]    ; # hidden sectors
+nSectorHuge     equ     [bp+20h]    ; # sectors if > 65536
+drive           equ     [bp+24h]    ; drive number
+extBoot         equ     [bp+26h]    ; extended boot signature
 volid           equ     [bp+27h]
 vollabel        equ     [bp+2bh]
 filesys         equ     [bp+36h]
 
 IFDEF           DEBUG
-                db      'FreeDOS '
+                db      'FreeDOS '              ; OEM label
                 dw      512                     ; bytes/sector
-                db      2                       ; sectors/allocation unit
+                db      1                       ; sectors/allocation unit
                 dw      1                       ; # reserved sectors
                 db      2                       ; # of fats
-                dw      112                     ; # of root directories
-                dw      720                     ; # sectors total in image
-                db      0fdh                    ; media descrip: fd=2side9sec, etc...
-                dw      2                       ; # sectors in a fat
-                dw      9                       ; # sectors/track
+                dw      224                     ; # of root directories
+                dw      2880                    ; # sectors total in image
+                db      0f0h                    ; media descrip: fd=2side9sec, etc...
+                dw      9                       ; # sectors in a fat
+                dw      18                      ; # sectors/track
                 dw      2                       ; # heads
                 dd      0                       ; # hidden sectors
                 dd      0                       ; # sectors if > 65536
                 db      00h                     ; drive number
-                db      00h
+                db      00h                     ; (reserved)
                 db      29h                     ; extended boot signature
-                dd      0
+                dd      12345678h               ; serial number
                 db      'DOS-C BOOT '
                 db      'FAT12   '
 
 
 LOADSEG         equ     seg LOAD
@@ -142,103 +152,165 @@
 LOADSEG         equ     0060h
 ENDIF
 
 FATBUF          equ     4000h           ; offset of temporary buffer for FAT
                                         ; chain
-RETRYCOUNT      equ     5               ; number of retries on disk errors
-
-;       Some extra variables that are created on the stack frame
 
-fat_start       equ     [bp-4]          ; first FAT sector
-root_dir_start  equ     [bp-8]          ; first root directory sector
-data_start      equ     [bp-12]         ; first data sector
+;       Some extra variables
 
+StoreSI         equ     [bp+3h]        ;temp store
 
 ;       To save space, functions that are just called once are
 ;       implemented as macros instead. Four bytes are saved by
 ;       avoiding the call / ret instructions.
 
 
-;       FINDFILE: Searches for the file in the root directory.
-;
-;       Returns:
-;
-;       If file not found:      CF set
-;
-;       If file found:          CF clear
-;                               AX = first cluster of file
-
-
-FINDFILE        MACRO
-                ; First, read the whole root directory
-                ; into the temporary buffer.
-
-                mov     ax, word ptr root_dir_start
-                mov     dx, word ptr root_dir_start+2
-                mov     di, nRootDir
-                xor     bx, bx
-                mov     es, tempbuf
-                call    readDisk
-                jc      ffDone
-
-                xor     di, di
-
-next_entry:     mov     cx, 11
-                mov     si, offset filename+7c00h
-                push    di
-                repe    cmpsb
-                pop     di
-                mov     ax, es:[di][1ah]    ; get cluster number from directory entry
-                clc
-                je      ffDone
-
-                add     di, 20h             ; go to next directory entry
-                cmp     byte ptr es:[di], 0     ; if the first byte of the name is 0,
-                jnz     next_entry              ; there is no more files in the directory
-
-                stc
-ffDone:
-                ENDM
-
 ;       GETDRIVEPARMS:  Calculate start of some disk areas.
+;
 
 GETDRIVEPARMS   MACRO
                 mov     si, word ptr nHidden
                 mov     di, word ptr nHidden+2
-                add     si, word ptr resSectors
+                add     si, word ptr bsResSectors
                 adc     di, 0                   ; DI:SI = first FAT sector
 
                 mov     word ptr fat_start, si
                 mov     word ptr fat_start+2, di
 
-                mov     al, nFats
+                mov     al, bsFATs
                 xor     ah, ah
                 mul     word ptr sectPerFat     ; DX:AX = total number of FAT sectors
 
                 add     si, ax
                 adc     di, dx                  ; DI:SI = first root directory sector
                 mov     word ptr root_dir_start, si
                 mov     word ptr root_dir_start+2, di
 
                 ; Calculate how many sectors the root directory occupies.
-                mov     bx, bytesPerSector
+                mov     bx, bsBytesPerSec
                 mov     cl, 5                   ; divide BX by 32
                 shr     bx, cl                  ; BX = directory entries per sector
 
-                mov     ax, nRootDir
+                mov     ax, bsRootDirEnts
                 xor     dx, dx
                 div     bx
 
-                mov     nRootDir, ax            ; AX = sectors per root directory
+                mov     word ptr RootDirSecs, ax         ; AX = sectors per root directory
 
                 add     si, ax
                 adc     di, 0                   ; DI:SI = first data sector
 
                 mov     data_start, si
                 mov     data_start+2, di
                 ENDM
 
+;-----------------------------------------------------------------------
+
+                org     BASE+3Eh
+
+tempbuf         equ     [bp+3Eh]
+                dw      LOADSEG
+
+IFDEF CALCPARAMS
+RootDirSecs     equ     [bp+27h]        ; # of sectors root dir uses
+
+fat_start       equ     [bp+29h]        ; first FAT sector
+
+root_dir_start  equ     [bp+2Dh]        ; first root directory sector
+
+data_start      equ     [bp+31h]        ; first data sector
+
+ELSE
+RootDirSecs     equ     [bp+40h]        ; # of sectors root dir uses
+                dw      ?
+
+fat_start       equ     [bp+42h]        ; first FAT sector
+                dd      ?
+
+root_dir_start  equ     [bp+46h]        ; first root directory sector
+                dd      ?
+
+data_start      equ     [bp+4Ah]        ; first data sector
+                dd      ?
+ENDIF
+
+;-----------------------------------------------------------------------
+;   ENTRY
+;-----------------------------------------------------------------------
+
+real_start:     cli
+                cld
+                mov     ax, cs
+                mov     ss, ax          ; initialize stack
+		mov	ds, ax
+                mov     bp, 7c00h
+                lea     sp, [bp-20h]
+                sti
+		int	13h		; reset drive
+		int	12h
+		dec	ah		; move boot sector to higher memory
+		mov	cx, 0106h
+		shl	ax, cl
+		mov	es, ax
+		mov	si, bp
+		mov	di, bp
+		rep	movsw
+		push	es
+		mov	bx, offset cont+7c00h
+		push	bx
+		retf
+
+cont:           mov     ds, ax
+		mov	ss, ax
+                mov     drive, dl       ; BIOS passes drive number in DL
+
+                call    print
+                db      "Loading FreeDOS...",13,10,"[root]",0
+
+IFDEF CALCPARAMS
+                GETDRIVEPARMS
+ENDIF
+
+
+;       FINDFILE: Searches for the file in the root directory.
+;
+;       Returns:
+;                               AX = first cluster of file
+
+                ; First, read the whole root directory
+                ; into the temporary buffer.
+
+                mov     ax, word ptr root_dir_start
+                mov     dx, word ptr root_dir_start+2
+                mov     di, word ptr RootDirSecs
+                xor     bx, bx
+                mov     es, tempbuf
+                call    readDisk
+                jc      jmp_boot_error
+
+                xor     di, di
+
+next_entry:     mov     cx, 11
+                mov     si, offset filename+7c00h
+                push    di
+                repe    cmpsb
+                pop     di
+                mov     ax, es:[di][1ah]    ; get cluster number from directory entry
+                je      ffDone
+
+                add     di, 20h             ; go to next directory entry
+                cmp     byte ptr es:[di], 0     ; if the first byte of the name is 0,
+                jnz     next_entry              ; there is no more files in the directory
+
+                jc      boot_error      ; fail if not found
+ffDone:
+
+                call    print
+                db      " [fat]",0
+
+
+
 ;       GETFATCHAIN:
 ;
 ;       Reads the FAT chain and stores it in a temporary buffer in the first
 ;       64 kb.  The FAT chain is stored an array of 16-bit cluster numbers,
 ;       ending with 0.
@@ -246,14 +318,11 @@
 ;       The file must fit in conventional memory, so it can't be larger than
 ;       640 kb. The sector size must be at least 512 bytes, so the FAT chain
 ;       can't be larger than around 3 kb.
 ;
 ;       Call with:      AX = first cluster in chain
-;
-;       Returns:        CF clear on success, set on error
 
-GETFATCHAIN     MACRO
                 push    ax                      ; store first cluster number
 
                 ; Load the complete FAT into memory. The FAT can't be larger
                 ; than 128 kb, so it should fit in the temporary buffer.
 
@@ -262,26 +331,27 @@
                 mov     di, sectPerFat
                 mov     ax, word ptr fat_start
                 mov     dx, word ptr fat_start+2
                 call    readDisk
                 pop     ax                      ; restore first cluster number
-                jc      boot_error
+jmp_boot_error: jc      boot_error
 
                 ; Set ES:DI to the temporary storage for the FAT chain.
                 push    ds
                 push    es
                 pop     ds
                 pop     es
                 mov     di, FATBUF
 
 next_clust:     stosw                           ; store cluster number
                 mov     si, ax                  ; SI = cluster number
-                cmp     byte ptr extBoot, 29h
-                jne     fat_12
-                cmp     byte ptr filesys[4], '6'  ; check for FAT-16 system
-                je      fat_16
+;                cmp     byte ptr extBoot, 29h
+;                jne     fat_12
+;                cmp     byte ptr filesys[4], '6'  ; check for FAT-16 system
+;                je      fat_16
 
+IFDEF ISFAT12
                 ; This is a FAT-12 disk.
 
 fat_12:         add     si, si          ; multiply cluster number by 3...
                 add     si, ax
                 shr     si, 1           ; ...and divide by 2
@@ -296,12 +366,14 @@
                 mov     cl, 4
                 shr     ax, cl          ; shift the cluster number
 
 fat_even:       and     ah, 0fh         ; mask off the highest 4 bits
                 cmp     ax, 0fffh       ; check for EOF
-                jmp     short next_test
+                jb      next_clust      ; continue if not EOF
 
+ENDIF
+IFDEF ISFAT16
                 ; This is a FAT-16 disk. The maximal size of a 16-bit FAT
                 ; is 128 kb, so it may not fit within a single 64 kb segment.
 
 fat_16:         mov     dx, tempbuf
                 add     si, si          ; multiply cluster number by two
@@ -310,116 +382,100 @@
 
 first_half:     mov     ds, dx          ; DS:SI = pointer to next cluster
                 lodsw                   ; AX = next cluster
 
                 cmp     ax, 0fff8h      ; >= FFF8 = 16-bit EOF
-next_test:      jb      next_clust      ; continue if not EOF
+                jb      next_clust      ; continue if not EOF
+ENDIF
 
 finished:       ; Mark end of FAT chain with 0, so we have a single
                 ; EOF marker for both FAT-12 and FAT-16 systems.
 
                 xor     ax, ax
                 stosw
-fatError:
-                ENDM
+
+                push    cs
+                pop     ds
+
+                call    print
+                db      " [kernel]",0
 
 ;       loadFile: Loads the file into memory, one cluster at a time.
 
-loadFile        MACRO
                 mov     es, tempbuf     ; set ES:BX to load address
                 xor     bx, bx
 
                 mov     si, FATBUF      ; set DS:SI to the FAT chain
-                push    cs
-                pop     ds
+;                push    cs
+;                pop     ds
 
-next_cluster:   lodsw                           ; AX = next cluster to read
+cluster_next:   lodsw                           ; AX = next cluster to read
                 or      ax, ax                  ; if EOF...
                 je      boot_success            ; ...boot was successful
 
                 dec     ax                      ; cluster numbers start with 2
                 dec     ax
 
-                mov     di, word ptr sectPerCluster
+                mov     di, word ptr bsSecPerClust
                 and     di, 0ffh                ; DI = sectors per cluster
                 mul     di
                 add     ax, data_start
                 adc     dx, data_start+2        ; DX:AX = first sector to read
                 call    readDisk
-                jnc     next_cluster
-
-                ENDM
-
-                org     BASE+3eh
-
-tempbuf         equ     [bp+3eh]
-
-load_seg	dw	LOADSEG
-
-real_start:     cli
-                cld
-                mov     ax, cs
-                mov     ss, ax          ; initialize stack
-		mov	ds, ax
-                mov     bp, 7c00h
-                lea     sp, [bp-20h]
-                sti
-		int	13h		; reset drive
-		int	12h
-		dec	ah		; move boot sector to higher memory
-		mov	cx, 0106h
-		shl	ax, cl
-		mov	es, ax
-		mov	si, bp
-		mov	di, bp
-		rep	movsw
-		push	es
-		mov	bx, offset cont+7c00h
-		push	bx
-		retf
-
-cont:           mov     ds, ax
-		mov	ss, ax
-                mov     drive, dl       ; BIOS passes drive number in DL
-
-                GETDRIVEPARMS
-
-                FINDFILE                ; locate file in root directory
-                jc      boot_error      ; fail if not found
-
-                GETFATCHAIN             ; read FAT chain
-                LOADFILE                ; load file (jumps to boot_sucess if successful)
+                jnc     cluster_next
 
-boot_error:     mov     cx, ERRMSGLEN
-                mov     si, offset errmsg+7c00h
 
-next_char:      lodsb                   ; print error message
-                mov     ah, 0eh
-                xor     bh, bh
-                int     10h
-                loop    next_char
+boot_error:     call    print
+                db      13,10,"BOOT error. Please REBOOT!",0
 
 		jmp	$		; sleep
 
-boot_success:   mov     bl, drive
+boot_success:   call    print
+                db      " GO!",13,10,0
+                mov     bl, drive
 
                 db      0eah            ; far jump to LOADSEG:0000
                 dw      0
                 dw      LOADSEG
 
 
+; prints text after call to this function.
+
+print           proc  near
+                mov   StoreSI, si
+                pop   si                       ; this is the first character
+                push  ax
+                push  bx
+                push  di
+                xor   bx, bx                   ; video page 0
+                mov   ah, 0Eh                  ; else print it
+print1:         lodsb                          ; get token
+                cmp   al, 0                    ; end of string?
+                je    print2                   ; if so, exit
+                int   10h                      ; via TTY mode
+                jmp   print1                   ; until done
+
+print2:         pop   di
+                pop   bx
+                pop   ax
+                push  si                       ; stack up return address
+                mov   si, StoreSI
+                ret                            ; and jump to it
+print           endp
+
+
 ;       readDisk:       Reads a number of sectors into memory.
 ;
 ;       Call with:      DX:AX = 32-bit DOS sector number
 ;                       DI = number of sectors to read
 ;                       ES:BX = destination buffer
 ;                       ES must be 64k aligned (1000h, 2000h etc).
 ;
 ;       Returns:        CF set on error
 ;                       ES:BX points one byte after the last byte read.
 
-readDisk        proc
+readDisk        proc    near
                 push    si
 read_next:      push    dx
                 push    ax
 
                 ;
@@ -459,76 +515,82 @@
                 sub     dl, cl
                 inc     cl                      ; sector offset from 1
                 or      cx, ax                  ; merge cylinder into sector
                 mov     al, dl                  ; al has # of sectors left
 
-                ; Calculate how many sectors can be transfered in this read
-                ; due to dma boundary conditions.
-                push    dx
-
-                mov     si, di                  ; temp register save
-                ; this computes remaining bytes because of modulo 65536
-                ; nature of dma boundary condition
-                mov     ax, bx                  ; get offset pointer
-                neg     ax                      ; and convert to bytes
-                jz      ax_min_1                ; started at seg:0, skip ahead
-
-                xor     dx, dx                  ; convert to sectors
-                div     word ptr bytesPerSector
-
-                cmp     ax, di                  ; check remainder vs. asked
-                jb      ax_min_1                ; less, skip ahead
-                mov     si, ax                  ; transfer only what we can
-
-ax_min_1:       pop     dx
+;                ; Calculate how many sectors can be transfered in this read
+;                ; due to dma boundary conditions.
+;                push    dx
+;
+;                mov     si, di                  ; temp register save
+;                ; this computes remaining bytes because of modulo 65536
+;                ; nature of dma boundary condition
+;                mov     ax, bx                  ; get offset pointer
+;                neg     ax                      ; and convert to bytes
+;                jz      ax_min_1                ; started at seg:0, skip ahead
+;
+;                xor     dx, dx                  ; convert to sectors
+;                div     word ptr bsBytesPerSec
+;
+;                cmp     ax, di                  ; check remainder vs. asked
+;                jb      ax_min_1                ; less, skip ahead
+;                mov     si, ax                  ; transfer only what we can
+;
+;ax_min_1:       pop     dx
 
-                ; Check that request sectors do not exceed track boundary
-                mov     si, sectPerTrack
-                inc     si
-                mov     ax, cx                  ; get the sector/cyl byte
-                and     ax, 03fh                ; and mask out sector
-                sub     si, ax                  ; si has how many we can read
-                mov     ax, di
-                cmp     si, di                  ; see if asked <= available
-                jge     ax_min_2
-                mov     ax, si                  ; get what can be xfered
+;                ; Check that request sectors do not exceed track boundary
+;                mov     si, sectPerTrack
+;                inc     si
+;                mov     ax, cx                  ; get the sector/cyl byte
+;                and     ax, 03fh                ; and mask out sector
+;                sub     si, ax                  ; si has how many we can read
+;                mov     ax, di
+;                cmp     si, di                  ; see if asked <= available
+;                jge     ax_min_2
+;                mov     ax, si                  ; get what can be xfered
 
-ax_min_2:       mov     ah, 2
+;ax_min_2:       mov     ah, 2
+                mov     ax, 0201h
                 mov     dl, drive
                 int     13h
-		jnc	read_ok
+                jnc     read_ok                 ; jump if no error
                 pop     ax
-                pop     dx
-                pop     si
-                ret
+                pop     dx                      ; else...
+                jmp     read_next               ; read the same sector again
 
-;read_next_jmp: jmp     short read_next
-read_ok:        cbw
-                mov     si, ax                  ; AX = SI = number of sectors read
-                mul     word ptr bytesPerSector ; AX = number of bytes read
-                add     bx, ax                  ; add number of bytes read to BX
+read_ok:
+;                call    print
+;                db      ".",0
+
+;                push    bx
+;                xor     bh, bh
+;                mov     ax, 0E2Eh               ; show progress (print a dot)
+;                int     10h
+;                pop     bx
+
+                add     bx, word ptr bsBytesPerSec  ; add number of bytes read to BX
                 jnc     no_incr_es              ; if overflow...
 
                 mov     ax, es
                 add     ah, 10h                 ; ...add 1000h to ES
                 mov     es, ax
 
 no_incr_es:     pop     ax
                 pop     dx                      ; DX:AX = last sector number
 
-                add     ax, si
+                add     ax, 1
                 adc     dx, 0                   ; DX:AX = next sector to read
-                sub     di, si                  ; if there is anything left to read,
-                jg      read_next              ; continue
+                dec     di                      ; if there is anything left to read,
+                jnz     read_next               ; continue
 
                 clc
                 pop     si
                 ret
 readDisk        endp
 
-errmsg          db      "Boot error"
-ERRMSGLEN       equ     $ - errmsg
+
+
 
 
 filename        db      "KERNEL  SYS"
 
                 org     BASE+01feh
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/boot/boot.mak ker2006/boot/boot.mak
--- ker2005/boot/boot.mak	Sun Mar 28 14:23:08 1999
+++ ker2006/boot/boot.mak	Thu Apr  1 01:23:20 1999
@@ -1,10 +1,16 @@
 #
 # makefile for DOS-C boot
 #
 
-# $Log: boot.mak,v $
+# $Log: BOOT.MAK,v $
+# Revision 1.2  1999/04/01 07:23:20  jprice
+# New boot loader
+#
+# Revision 1.1.1.1  1999/03/29 15:39:39  jprice
+# New version without IPL.SYS
+#
 # Revision 1.3  1999/02/09 04:49:17  jprice
 # Make makefile use common config.mak file
 #
 # Revision 1.2  1999/01/21 05:03:58  jprice
 # Formating.
@@ -33,18 +39,21 @@
 # Uncomment the following for a debug version
 #
 #AFLAGS  =      /zi /DDEBUG
 #LFLAGS  =      /v
 
-production:     ..\bin\boot.bin
+production:     b_fat12.bin b_fat16.bin
 
-..\bin\boot.bin: boot.bin
-                copy boot.bin ..\bin
+b_fat12.bin:    boot.asm
+                $(ASM) $(AFLAGS) -DISFAT12=1 boot,,
+                $(LINK) $(LFLAGS) boot
+                ..\utils\exe2bin boot b_fat12.bin
+                ..\utils\rm boot.obj boot.exe
 
-boot.bin:	boot.asm
-                $(ASM) $(AFLAGS) boot,,
+b_fat16.bin:    boot.asm
+                $(ASM) $(AFLAGS) -DISFAT16=1 boot,,
                 $(LINK) $(LFLAGS) boot
-                ..\utils\exe2bin boot boot.bin
+                ..\utils\exe2bin boot b_fat16.bin
                 ..\utils\rm boot.obj boot.exe
 
 clean:
         ..\utils\rm -f *.lst *.map *.bin *.bak *.las *.obj *.exe status.me
Files ker2005/bugs.txt and ker2006/bugs.txt are identical
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/build.bat ker2006/build.bat
--- ker2005/build.bat	Sun Mar 28 14:13:08 1999
+++ ker2006/build.bat	Mon Mar 29 09:39:14 1999
@@ -1,7 +1,10 @@
 @echo off
-rem $Log: build.bat,v $
+rem $Log: BUILD.BAT,v $
+rem Revision 1.1.1.1  1999/03/29 15:39:13  jprice
+rem New version without IPL.SYS
+rem
 rem Revision 1.5  1999/02/09 04:47:54  jprice
 rem Make makefile use common config.mak file
 rem
 rem Revision 1.4  1999/01/30 08:29:10  jprice
 rem Clean up
Files ker2005/build.txt and ker2006/build.txt are identical
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/clean.bat ker2006/clean.bat
--- ker2005/clean.bat	Sun Mar 28 14:13:56 1999
+++ ker2006/clean.bat	Mon Mar 29 09:39:16 1999
@@ -1,6 +1,9 @@
-rem $Log: clean.bat,v $
+rem $Log: CLEAN.BAT,v $
+rem Revision 1.1.1.1  1999/03/29 15:39:15  jprice
+rem New version without IPL.SYS
+rem
 rem Revision 1.4  1999/02/09 04:47:54  jprice
 rem Make makefile use common config.mak file
 rem
 rem Revision 1.3  1999/01/30 08:29:10  jprice
 rem Clean up
Files ker2005/config.mak and ker2006/config.mak are identical
Files ker2005/copying and ker2006/copying are identical
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/console.asm ker2006/drivers/console.asm
--- ker2005/drivers/console.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/console.asm	Mon Mar 29 11:08:30 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/console.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/console.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/CONSOLE.ASM,v 1.2 1999/03/29 17:08:30 jprice Exp $
+;
+; $Log: CONSOLE.ASM,v $
+; Revision 1.2  1999/03/29 17:08:30  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:22  jprice
+; New version without IPL.SYS
 ;
-; $Log: console.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,38 +66,41 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 ; $Logfile:   C:/dos-c/src/drivers/console.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/console.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/CONSOLE.ASM,v 1.2 1999/03/29 17:08:30 jprice Exp $
+;
+; $Log: CONSOLE.ASM,v $
+; Revision 1.2  1999/03/29 17:08:30  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:22  jprice
+; New version without IPL.SYS
 ;
-; $Log: console.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/devend.asm ker2006/drivers/devend.asm
--- ker2005/drivers/devend.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/devend.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/devend.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/devend.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/DEVEND.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: DEVEND.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:22  jprice
+; New version without IPL.SYS
 ;
-; $Log: devend.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 _DATA   segment  word public 'DATA'
                 extrn   last:word
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/device.mak ker2006/drivers/device.mak
--- ker2005/drivers/device.mak	Sun Mar 28 13:24:08 1999
+++ ker2006/drivers/device.mak	Mon Mar 29 11:08:32 1999
@@ -1,11 +1,17 @@
 #
 # makefile for device.lib
 #
-# $Header: /home/cvsroot/kernel/kernel/src/drivers/device.mak,v 1.3 1999/02/09 04:49:25 jprice Exp $
+# $Header: /home/cvsroot/fdkernel/DRIVERS/DEVICE.MAK,v 1.2 1999/03/29 17:08:31 jprice Exp $
+#
+# $Log: DEVICE.MAK,v $
+# Revision 1.2  1999/03/29 17:08:31  jprice
+# ror4 changes
+#
+# Revision 1.1.1.1  1999/03/29 15:40:23  jprice
+# New version without IPL.SYS
 #
-# $Log: device.mak,v $
 # Revision 1.3  1999/02/09 04:49:25  jprice
 # Make makefile use common config.mak file
 #
 # Revision 1.2  1999/01/22 04:16:39  jprice
 # Formating
@@ -42,22 +48,22 @@
 LIBFLAGS = /c
 TERM   =
 
 OBJS   = console.obj devend.obj eoi.obj floppy.obj fmemcmp.obj fmemcpy.obj \
 fmemset.obj inb.obj int86.obj intr.obj inw.obj keyboard.obj outb.obj \
-outw.obj setvec.obj getvec.obj spl.obj timer.obj rdpcclk.obj rdatclk.obj \
+outw.obj getvec.obj spl.obj timer.obj rdpcclk.obj rdatclk.obj \
 wrpcclk.obj wratclk.obj
 
 #LIBOBJS1= +console +devend +eoi +floppy +fmemcmp +fmemcpy
 #LIBOBJS2= +fmemset +inb +int86 +intr +inw +keyboard +outb
 #LIBOBJS3= +outw +setvec +getvec +spl +timer +rdpcclk +rdatclk
 #LIBOBJS4= +wrpcclk +wratclk
 
 
 LIBOBJS1= +console +devend +eoi +floppy +fmemcmp +fmemcpy
 LIBOBJS2= +fmemset +inb +int86 +inw +keyboard +outb
-LIBOBJS3= +outw +setvec +getvec +spl +timer +rdpcclk +rdatclk
+LIBOBJS3= +outw +getvec +spl +timer +rdpcclk +rdatclk
 LIBOBJS4= +wrpcclk +wratclk
 
 
 
 # Build the LIBRARY
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/eoi.asm ker2006/drivers/eoi.asm
--- ker2005/drivers/eoi.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/eoi.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/eoi.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/eoi.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/EOI.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: EOI.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:23  jprice
+; New version without IPL.SYS
 ;
-; $Log: eoi.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 _TEXT      segment
         assume  CS: _TEXT
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/floppy.asm ker2006/drivers/floppy.asm
--- ker2005/drivers/floppy.asm	Sat Feb 13 22:25:16 1999
+++ ker2006/drivers/floppy.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/usr/patv/dos-c/src/drivers/floppy.asv  $
 ;
-; $Id: floppy.asm,v 1.4 1999/02/14 04:25:16 jprice Exp $
+; $Id: FLOPPY.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: FLOPPY.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:24  jprice
+; New version without IPL.SYS
 ;
-; $Log: floppy.asm,v $
 ; Revision 1.4  1999/02/14 04:25:16  jprice
 ; Added functions to check if a floppy disk has been changed.
 ;
 ; Revision 1.3  1999/02/08 05:49:47  jprice
 ; Added Pat's 1937 kernel patches
@@ -68,30 +74,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 _TEXT      segment
         assume  CS: _TEXT
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/fmemcmp.asm ker2006/drivers/fmemcmp.asm
--- ker2005/drivers/fmemcmp.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/fmemcmp.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/fmemcmp.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/fmemcmp.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/FMEMCMP.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: FMEMCMP.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:25  jprice
+; New version without IPL.SYS
 ;
-; $Log: fmemcmp.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 
 _TEXT      segment
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/fmemcpy.asm ker2006/drivers/fmemcpy.asm
--- ker2005/drivers/fmemcpy.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/fmemcpy.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/fmemcpy.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/fmemcpy.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/FMEMCPY.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: FMEMCPY.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:26  jprice
+; New version without IPL.SYS
 ;
-; $Log: fmemcpy.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 
 _TEXT           segment
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/fmemset.asm ker2006/drivers/fmemset.asm
--- ker2005/drivers/fmemset.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/fmemset.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/fmemset.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/fmemset.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/FMEMSET.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: FMEMSET.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:27  jprice
+; New version without IPL.SYS
 ;
-; $Log: fmemset.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 
 _TEXT           segment
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/getvec.asm ker2006/drivers/getvec.asm
--- ker2005/drivers/getvec.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/getvec.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/getvec.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/getvec.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/GETVEC.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: GETVEC.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:27  jprice
+; New version without IPL.SYS
 ;
-; $Log: getvec.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 
 _TEXT           segment
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/inb.asm ker2006/drivers/inb.asm
--- ker2005/drivers/inb.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/inb.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/inb.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/inb.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/INB.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: INB.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:27  jprice
+; New version without IPL.SYS
 ;
-; $Log: inb.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 
 _TEXT            segment
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/int86.asm ker2006/drivers/int86.asm
--- ker2005/drivers/int86.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/int86.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/int86.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/int86.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/INT86.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: INT86.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:28  jprice
+; New version without IPL.SYS
 ;
-; $Log: int86.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 
 _TEXT           segment
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/intr.asm ker2006/drivers/intr.asm
--- ker2005/drivers/intr.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/intr.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/intr.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/intr.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/INTR.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: INTR.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:29  jprice
+; New version without IPL.SYS
 ;
-; $Log: intr.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 ;
 ; i_save stack frame
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/inw.asm ker2006/drivers/inw.asm
--- ker2005/drivers/inw.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/inw.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/inw.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/inw.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/INW.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: INW.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:29  jprice
+; New version without IPL.SYS
 ;
-; $Log: inw.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 
 _TEXT           segment
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/keyboard.asm ker2006/drivers/keyboard.asm
--- ker2005/drivers/keyboard.asm	Sun Mar 28 10:37:44 1999
+++ ker2006/drivers/keyboard.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/keyboard.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/keyboard.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/KEYBOARD.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: KEYBOARD.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:30  jprice
+; New version without IPL.SYS
 ;
-; $Log: keyboard.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 _BSS    segment  word public 'BSS'
 special db      ?
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/outb.asm ker2006/drivers/outb.asm
--- ker2005/drivers/outb.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/outb.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/outb.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/outb.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/OUTB.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: OUTB.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:30  jprice
+; New version without IPL.SYS
 ;
-; $Log: outb.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 
 _TEXT           segment
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/outw.asm ker2006/drivers/outw.asm
--- ker2005/drivers/outw.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/outw.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/outw.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/outw.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/OUTW.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: OUTW.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:31  jprice
+; New version without IPL.SYS
 ;
-; $Log: outw.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 
 _TEXT           segment
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/rdatclk.asm ker2006/drivers/rdatclk.asm
--- ker2005/drivers/rdatclk.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/rdatclk.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/rdatclk.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/rdatclk.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/RDATCLK.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: RDATCLK.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:31  jprice
+; New version without IPL.SYS
 ;
-; $Log: rdatclk.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 ;
 ;
@@ -100,30 +103,29 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
+;_BSSEND         segment byte public 'STACK'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
+;_BSSEND         segment byte public 'STACK'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 _TEXT           segment byte public 'CODE'
                 assume  cs:_TEXT
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/rdpcclk.asm ker2006/drivers/rdpcclk.asm
--- ker2005/drivers/rdpcclk.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/rdpcclk.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/rdpcclk.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/rdpcclk.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/RDPCCLK.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: RDPCCLK.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:32  jprice
+; New version without IPL.SYS
 ;
-; $Log: rdpcclk.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 _TEXT           segment byte public 'CODE'
                 assume  cs:_TEXT
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/setvec.asm ker2006/drivers/setvec.asm
--- ker2005/drivers/setvec.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/setvec.asm	Wed Dec 31 18:00:00 1969
@@ -1,128 +0,0 @@
-;
-; File:
-;                          setvec.asm
-; Description:
-;               set an interrupt vector - simple version
-;
-;                       Copyright (c) 1995
-;                       Pasquale J. Villani
-;                       All Rights Reserved
-;
-; This file is part of DOS-C.
-;
-; DOS-C is free software; you can redistribute it and/or
-; modify it under the terms of the GNU General Public License
-; as published by the Free Software Foundation; either version
-; 2, or (at your option) any later version.
-;
-; DOS-C is distributed in the hope that it will be useful, but
-; WITHOUT ANY WARRANTY; without even the implied warranty of
-; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
-; the GNU General Public License for more details.
-;
-; You should have received a copy of the GNU General Public
-; License along with DOS-C; see the file COPYING.  If not,
-; write to the Free Software Foundation, 675 Mass Ave,
-; Cambridge, MA 02139, USA.
-;
-; $Logfile:   C:/dos-c/src/drivers/setvec.asv  $
-;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/setvec.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
-;
-; $Log: setvec.asm,v $
-; Revision 1.2  1999/01/22 04:16:39  jprice
-; Formating
-;
-; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
-; Imported sources
-;
-;
-;   Rev 1.2   29 Aug 1996 13:07:12   patv
-;Bug fixes for v0.91b
-;
-;   Rev 1.1   01 Sep 1995 18:50:36   patv
-;Initial GPL release.
-;
-;   Rev 1.0   02 Jul 1995  7:57:44   patv
-;Initial revision.
-;
-
-                page    60,132
-                title   set an interrupt vector - simple version
-
-IFDEF ??version
-_TEXT           segment byte public 'CODE'
-DGROUP          group   _DATA,_BSS,_BSSEND              ; small model
-                assume  cs:_TEXT,ds:DGROUP,ss:DGROUP
-_TEXT           ends
-
-_DATA           segment word public 'DATA'
-_DATA           ends
-
-_BSS            segment word public 'BSS'
-_BSS            ends
-
-_BSSEND         segment byte public 'STACK'
-_BSSEND         ends
-
-ELSE
-_TEXT           segment byte public 'CODE'
-_TEXT           ends
-
-_DATA           segment word public 'DATA'
-_DATA           ends
-
-CONST           segment word public 'CONST'
-CONST           ends
-
-_BSS            segment word public 'BSS'
-_BSS            ends
-
-_BSSEND         segment byte public 'STACK'
-_BSSEND         ends
-
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
-                assume  ds:DGROUP, ss:DGROUP
-ENDIF
-
-
-_TEXT           segment
-                assume  CS: _TEXT
-_setvec         proc    near
-                public  _setvec
-
-                push    bp
-                mov     bp,sp
-                mov     bx,[bp+4]
-                mov     ax,[bp+6]
-                mov     dx,[bp+8]
-                call    setvec
-                pop     bp
-                ret
-  
-_setvec         endp
-  
-;
-; assembler version - bx = int #, dx:ax = vector
-;               returns old vector in dx:ax
-;
-  
-setvec          proc    near
-                public  setvec
-
-                shl     bx,1                    ; Multiply by 4
-                shl     bx,1
-                xor     cx,cx                   ; set segment to 0
-                mov     es,cx
-                pushf                           ; Push flags
-                cli                             ; Disable interrupts
-                xchg    ax,es:[bx]
-                xchg    dx,es:[bx+2]
-                popf                            ; Pop flags
-                ret
-setvec          endp
-
-_TEXT           ends
-
-                end
-
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/spl.asm ker2006/drivers/spl.asm
--- ker2005/drivers/spl.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/spl.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/spl.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/spl.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/SPL.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: SPL.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:33  jprice
+; New version without IPL.SYS
 ;
-; $Log: spl.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 
 _TEXT           segment
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/timer.asm ker2006/drivers/timer.asm
--- ker2005/drivers/timer.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/timer.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/timer.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/timer.asm,v 1.2 1999/01/22 04:16:39 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/TIMER.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: TIMER.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:34  jprice
+; New version without IPL.SYS
 ;
-; $Log: timer.asm,v $
 ; Revision 1.2  1999/01/22 04:16:39  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 _TEXT   segment byte public 'CODE'
 ;
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/wratclk.asm ker2006/drivers/wratclk.asm
--- ker2005/drivers/wratclk.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/wratclk.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/wratclk.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/wratclk.asm,v 1.2 1999/01/22 04:16:40 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/WRATCLK.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: WRATCLK.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:34  jprice
+; New version without IPL.SYS
 ;
-; $Log: wratclk.asm,v $
 ; Revision 1.2  1999/01/22 04:16:40  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -60,30 +66,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 _TEXT           segment byte public 'CODE'
                 assume  cs:_TEXT
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/drivers/wrpcclk.asm ker2006/drivers/wrpcclk.asm
--- ker2005/drivers/wrpcclk.asm	Thu Jan 21 22:16:40 1999
+++ ker2006/drivers/wrpcclk.asm	Mon Mar 29 11:08:32 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/drivers/wrpcclk.asv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/drivers/wrpcclk.asm,v 1.2 1999/01/22 04:16:40 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/DRIVERS/WRPCCLK.ASM,v 1.2 1999/03/29 17:08:31 jprice Exp $
+;
+; $Log: WRPCCLK.ASM,v $
+; Revision 1.2  1999/03/29 17:08:31  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:40:35  jprice
+; New version without IPL.SYS
 ;
-; $Log: wrpcclk.asm,v $
 ; Revision 1.2  1999/01/22 04:16:40  jprice
 ; Formating
 ;
 ; Revision 1.1.1.1  1999/01/20 05:51:00  jprice
 ; Imported sources
@@ -59,30 +65,27 @@
 _DATA           ends
 
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
 ELSE
 _TEXT           segment byte public 'CODE'
 _TEXT           ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
-_BSSEND         segment byte public 'STACK'
+_BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND        ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
 _TEXT           segment byte public 'CODE'
                 assume  cs:_TEXT
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/cds.h ker2006/hdr/cds.h
--- ker2005/hdr/cds.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/cds.h	Mon Mar 29 09:39:22 1999
@@ -26,16 +26,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *Cds_hRcsId = "$Id: cds.h,v 1.4 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *Cds_hRcsId = "$Id: CDS.H,v 1.1.1.1 1999/03/29 15:39:22 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: cds.h,v $
+ * $Log: CDS.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:22  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.4  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.3  1999/01/30 08:21:43  jprice
  * Clean up
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/clock.h ker2006/hdr/clock.h
--- ker2005/hdr/clock.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/clock.h	Mon Mar 29 09:39:22 1999
@@ -30,16 +30,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *clock_hRcsId = "$Id: clock.h,v 1.4 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *clock_hRcsId = "$Id: CLOCK.H,v 1.1.1.1 1999/03/29 15:39:22 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: clock.h,v $
+ * $Log: CLOCK.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:22  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.4  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.3  1999/01/30 08:21:43  jprice
  * Clean up
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/date.h ker2006/hdr/date.h
--- ker2005/hdr/date.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/date.h	Mon Mar 29 09:39:24 1999
@@ -26,16 +26,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *date_hRcsId = "$Id: date.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *date_hRcsId = "$Id: DATE.H,v 1.1.1.1 1999/03/29 15:39:23 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: date.h,v $
+ * $Log: DATE.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:23  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/dcb.h ker2006/hdr/dcb.h
--- ker2005/hdr/dcb.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/dcb.h	Mon Mar 29 09:39:24 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *clock_hRcsId = "$Id: dcb.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *clock_hRcsId = "$Id: DCB.H,v 1.1.1.1 1999/03/29 15:39:23 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: dcb.h,v $
+ * $Log: DCB.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:23  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/device.h ker2006/hdr/device.h
--- ker2005/hdr/device.h	Sun Feb  7 23:58:24 1999
+++ ker2006/hdr/device.h	Sun Apr  4 13:50:14 1999
@@ -27,16 +27,22 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *device_hRcsId = "$Id: device.h,v 1.5 1999/02/08 05:58:24 jprice Exp $";
+static BYTE *device_hRcsId = "$Id: DEVICE.H,v 1.2 1999/04/04 18:50:14 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: device.h,v $
+ * $Log: DEVICE.H,v $
+ * Revision 1.2  1999/04/04 18:50:14  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:39:26  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.5  1999/02/08 05:58:24  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.4  1999/02/04 03:08:47  jprice
  * no message
@@ -184,12 +190,12 @@
 #define ATTR_GENIOCTL   0x0040
 #define ATTR_RAW        0x0400
 #define ATTR_FASTCON    0x0010
 #define ATTR_CLOCK      0x0008
 #define ATTR_NULL       0x0004
-#define ATTR_STDOUT     0x0002
-#define ATTR_STDIN      0x0001
+#define ATTR_CONOUT     0x0002
+#define ATTR_CONIN      0x0001
 
 /*                                                                      */
 /* Bios Parameter Block structure                                       */
 /*                                                                      */
 /* The following offsets are computed as byte offsets and are based on  */
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/dhdr.h ker2006/hdr/dhdr.h
--- ker2005/hdr/dhdr.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/dhdr.h	Mon Mar 29 09:39:26 1999
@@ -26,16 +26,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *Globals_hRcsId = "$Id: dhdr.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *Globals_hRcsId = "$Id: DHDR.H,v 1.1.1.1 1999/03/29 15:39:26 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: dhdr.h,v $
+ * $Log: DHDR.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:26  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/dirmatch.h ker2006/hdr/dirmatch.h
--- ker2005/hdr/dirmatch.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/dirmatch.h	Mon Mar 29 09:39:22 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *dirmatch_hRcsId = "$Id: dirmatch.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *dirmatch_hRcsId = "$Id: DIRMATCH.H,v 1.1.1.1 1999/03/29 15:39:21 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: dirmatch.h,v $
+ * $Log: DIRMATCH.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:21  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/dosnames.h ker2006/hdr/dosnames.h
--- ker2005/hdr/dosnames.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/dosnames.h	Mon Mar 29 09:39:28 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *dosnames_hRcsId = "$Id: dosnames.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *dosnames_hRcsId = "$Id: DOSNAMES.H,v 1.1.1.1 1999/03/29 15:39:27 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: dosnames.h,v $
+ * $Log: DOSNAMES.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:27  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/error.h ker2006/hdr/error.h
--- ker2005/hdr/error.h	Sun Feb  7 23:58:24 1999
+++ ker2006/hdr/error.h	Mon Mar 29 09:39:28 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *error_hRcsId = "$Id: error.h,v 1.5 1999/02/08 05:58:24 jprice Exp $";
+static BYTE *error_hRcsId = "$Id: ERROR.H,v 1.1.1.1 1999/03/29 15:39:27 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: error.h,v $
+ * $Log: ERROR.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:27  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.5  1999/02/08 05:58:24  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.4  1999/02/01 01:40:06  jprice
  * Clean up
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/exe.h ker2006/hdr/exe.h
--- ker2005/hdr/exe.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/exe.h	Mon Mar 29 09:39:28 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *exe_hRcsId = "$Id: exe.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *exe_hRcsId = "$Id: EXE.H,v 1.1.1.1 1999/03/29 15:39:28 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: exe.h,v $
+ * $Log: EXE.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:28  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/fat.h ker2006/hdr/fat.h
--- ker2005/hdr/fat.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/fat.h	Mon Mar 29 09:39:28 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *fat_hRcsId = "$Id: fat.h,v 1.4 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *fat_hRcsId = "$Id: FAT.H,v 1.1.1.1 1999/03/29 15:39:28 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: fat.h,v $
+ * $Log: FAT.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:28  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.4  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.3  1999/01/30 08:21:43  jprice
  * Clean up
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/fcb.h ker2006/hdr/fcb.h
--- ker2005/hdr/fcb.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/fcb.h	Mon Mar 29 09:39:30 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *fcb_hRcsId = "$Id: fcb.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *fcb_hRcsId = "$Id: FCB.H,v 1.1.1.1 1999/03/29 15:39:29 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: fcb.h,v $
+ * $Log: FCB.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:29  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/file.h ker2006/hdr/file.h
--- ker2005/hdr/file.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/file.h	Mon Mar 29 09:39:30 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *file_hRcsId = "$Id: file.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *file_hRcsId = "$Id: FILE.H,v 1.1.1.1 1999/03/29 15:39:30 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: file.h,v $
+ * $Log: FILE.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:30  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/fnode.h ker2006/hdr/fnode.h
--- ker2005/hdr/fnode.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/fnode.h	Mon Mar 29 09:39:30 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *fnode_hRcsId = "$Id: fnode.h,v 1.4 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *fnode_hRcsId = "$Id: FNODE.H,v 1.1.1.1 1999/03/29 15:39:30 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: fnode.h,v $
+ * $Log: FNODE.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:30  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.4  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.3  1999/01/30 08:21:43  jprice
  * Clean up
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/kbd.h ker2006/hdr/kbd.h
--- ker2005/hdr/kbd.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/kbd.h	Mon Mar 29 09:39:32 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *kbd_hRcsId = "$Id: kbd.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *kbd_hRcsId = "$Id: KBD.H,v 1.1.1.1 1999/03/29 15:39:31 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: kbd.h,v $
+ * $Log: KBD.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:31  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/mcb.h ker2006/hdr/mcb.h
--- ker2005/hdr/mcb.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/mcb.h	Mon Mar 29 09:39:32 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *mcb_hRcsId = "$Id: mcb.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *mcb_hRcsId = "$Id: MCB.H,v 1.1.1.1 1999/03/29 15:39:31 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: mcb.h,v $
+ * $Log: MCB.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:31  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/pcb.h ker2006/hdr/pcb.h
--- ker2005/hdr/pcb.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/pcb.h	Mon Mar 29 09:39:32 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *pcb_hRcsId = "$Id: pcb.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *pcb_hRcsId = "$Id: PCB.H,v 1.1.1.1 1999/03/29 15:39:32 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: pcb.h,v $
+ * $Log: PCB.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:32  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/portab.h ker2006/hdr/portab.h
--- ker2005/hdr/portab.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/portab.h	Mon Mar 29 09:39:34 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static char *portab_hRcsId = "$Id: portab.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static char *portab_hRcsId = "$Id: PORTAB.H,v 1.1.1.1 1999/03/29 15:39:33 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: portab.h,v $
+ * $Log: PORTAB.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:33  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/process.h ker2006/hdr/process.h
--- ker2005/hdr/process.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/process.h	Mon Mar 29 09:39:34 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *process_hRcsId = "$Id: process.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *process_hRcsId = "$Id: PROCESS.H,v 1.1.1.1 1999/03/29 15:39:34 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: process.h,v $
+ * $Log: PROCESS.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:34  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/sft.h ker2006/hdr/sft.h
--- ker2005/hdr/sft.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/sft.h	Sun Apr  4 13:50:26 1999
@@ -27,16 +27,22 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *sft_hRcsId = "$Id: sft.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *sft_hRcsId = "$Id: SFT.H,v 1.2 1999/04/04 18:50:25 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: sft.h,v $
+ * $Log: SFT.H,v $
+ * Revision 1.2  1999/04/04 18:50:25  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:39:35  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
@@ -73,10 +79,17 @@
 typedef struct
 {
   WORD sft_count;               /* reference count                      */
   WORD sft_mode;                /* open mode - see below                */
   BYTE sft_attrib;              /* file attribute - dir style           */
+  union {
+    WORD _sft_flags;		/* flags - see below			*/
+    struct {
+      BYTE _sft_flags_lo;
+      BYTE _sft_flags_hi;
+    } _split_sft_flags;
+  } sft_flags_union;
   WORD sft_flags;               /* flags - see below                    */
   union
   {
     struct dpb FAR *
       _sft_dcb;                 /* The device control block     */
@@ -159,11 +172,14 @@
 #define SFT_FEOF        0x0040  /* device eof                   */
 #define SFT_FBINARY     0x0020  /* device binary mode           */
 #define SFT_FSPECIAL    0x0010  /* int 29 support               */
 #define SFT_FCLOCK      0x0008  /* device is clock              */
 #define SFT_FNUL        0x0004  /* device is nul                */
-#define SFT_FSTDOUT     0x0002  /* device is stdout             */
-#define SFT_FSTDIN      0x0001  /* device is stdin              */
+#define SFT_FCONOUT     0x0002  /* device is console output     */
+#define SFT_FCONIN      0x0001  /* device is console input      */
 
 /* Covienence defines                                                   */
 #define sft_dcb         sft_dcb_or_dev._sft_dcb
 #define sft_dev         sft_dcb_or_dev._sft_dev
+#define sft_flags	sft_flags_union._sft_flags
+#define sft_flags_hi	sft_flags_union._split_sft_flags._sft_flags_hi
+#define sft_flags_lo	sft_flags_union._split_sft_flags._sft_flags_lo
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/stacks.inc ker2006/hdr/stacks.inc
--- ker2005/hdr/stacks.inc	Sun Mar 28 10:37:44 1999
+++ ker2006/hdr/stacks.inc	Mon Mar 29 09:39:36 1999
@@ -25,13 +25,16 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/hdr/stacks.inv  $
 ;
-; $Id: stacks.inc,v 1.3 1999/02/01 01:40:06 jprice Exp $
+; $Id: STACKS.INC,v 1.1.1.1 1999/03/29 15:39:35 jprice Exp $
+;
+; $Log: STACKS.INC,v $
+; Revision 1.1.1.1  1999/03/29 15:39:35  jprice
+; New version without IPL.SYS
 ;
-; $Log: stacks.inc,v $
 ; Revision 1.3  1999/02/01 01:40:06  jprice
 ; Clean up
 ;
 ; Revision 1.2  1999/01/22 04:17:40  jprice
 ; Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/tail.h ker2006/hdr/tail.h
--- ker2005/hdr/tail.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/tail.h	Mon Mar 29 09:39:36 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *tail_hRcsId = "$Id: tail.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *tail_hRcsId = "$Id: TAIL.H,v 1.1.1.1 1999/03/29 15:39:36 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: tail.h,v $
+ * $Log: TAIL.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:36  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/time.h ker2006/hdr/time.h
--- ker2005/hdr/time.h	Sun Jan 31 19:40:06 1999
+++ ker2006/hdr/time.h	Mon Mar 29 09:39:36 1999
@@ -28,16 +28,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *time_hRcsId = "$Id: time.h,v 1.3 1999/02/01 01:40:06 jprice Exp $";
+static BYTE *time_hRcsId = "$Id: TIME.H,v 1.1.1.1 1999/03/29 15:39:36 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: time.h,v $
+ * $Log: TIME.H,v $
+ * Revision 1.1.1.1  1999/03/29 15:39:36  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:40:06  jprice
  * Clean up
  *
  * Revision 1.2  1999/01/22 04:17:40  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/hdr/version.h ker2006/hdr/version.h
--- ker2005/hdr/version.h	Tue Mar 23 17:36:48 1999
+++ ker2006/hdr/version.h	Sun Apr  4 17:57:02 1999
@@ -26,18 +26,19 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *date_hRcsId = "$Id: version.h,v 1.8 1999/03/23 23:36:47 jprice Exp $";
+static BYTE *date_hRcsId = "$Id: VERSION.H,v 1.3 1999/04/04 22:57:01 jprice Exp $";
 #endif
 #endif
 
 #define MAJOR_RELEASE   3
 #define MINOR_RELEASE   31
+
 #define REV_NUMBER      0
 #define OEM_ID          0xfd    /* FreeDos version                      */
 
 #define REVISION_MAJOR  1
 #define REVISION_MINOR  1
-#define REVISION_SEQ    3
-#define BUILD           2005
+#define REVISION_SEQ    4
+#define BUILD           2006
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/history.txt ker2006/history.txt
--- ker2005/history.txt	Sun Mar 28 15:25:26 1999
+++ ker2006/history.txt	Sun Apr  4 18:00:28 1999
@@ -1,5 +1,76 @@
+1999 Apr 4 - Build 2006
+-------- John Price (linux-guru@gcfl.net)
+* added "version=" directive so that you can change the version that
+  the kernel reports.  Usage: version=<major>.<minor> (i.e.
+  version=6.22)
+
+1999 Apr 4 - Build 2006
+-------- ror4 (ror4@usa.net)
+* Fixed the file name parsing function (`ParseDosNames') so that it
+  handles single-character path names correctly.
+* Also modified the functions which call `ParseDosNames' to check its
+  return value instead of assuming that it is always successful.
+  (This is not currentl useful, but it will be when error checking is
+  introduced into `ParseDosNames'. In other words, there'll be more
+  changes to `ParseDosNames' in the near future...)
+
+* After wondering for a long time why the kernel text segment was
+  always getting corrupted when I ran DJGPP `bash' 1.14.7, I finally
+  decided to examine the code occurring before the handler for int
+  0x21, ah = 0x60, and I found out why... :)
+* Fixed the problem of int 0x21, ax = 0x5d06 causing memory
+  corruption.
+* Corrected the types of `internal_data', `swap_always' and
+  `swap_indos' in `kernel/globals.h'.
+
+* Improved checking for invalid file names in `ParseDosName'
+  (although I'm still not sure whether the check is water-tight or
+  not).
+* Changed the default path setting from `PATH=' to `PATH=.'.
+
+* Output from character I/O functions now goes to standard output as
+  it should, instead of the console. Also, there's now a clear
+  distinction between console input/output and standard input/output.
+* Tabs are now expanded during writes to the console device.
+* Removed a hard-wired limit on the number of entries in a JFT.
+  (Although I'm not sure whether this is really correct...)
+* Many other changes to the file descriptor handling code.
+
+1999 Mar 29 - Build 2006
+-------- John Price (linux-guru@gcfl.net)
+* Changed boot loader so it prints some feedback info while booting.
+  Removed code to handle FAT12 and FAT16, and code to calculate the
+  start of the fat, rootdir, and data.  Moved these functions into
+  the sys command.  Now there are two versions of the boot loader
+  created, one to handle FAT16, and one for FAT12.  These are
+  hard-coded into the sys command, so the need for the boot.bin file
+  is obsolete.
+* created a new program (bin2c) to convert the boot loader binary
+  file into a header file that can be included in the sys program as
+  an array of bytes.
+
+1999 Mar 29 - Build 2006
+-------- ror4 (ror4@usa.net)
+* Changed the class of `_BSSEND' from "STACK" to "BSS" in the
+  `drivers/' branch (which I forgot about in my last patch).
+* Removed all traces of the `CONST' segment, since it was causing
+  `IGROUP' to be assimilated into `DGROUP', which shouldn't happen.
+* Added a `(void)' cast to the `setvec' macro in `kernel/globals.h'
+  (`setvec' no longer returns the original ISR vector).
+* Changed an incorrect error message in `sys/sys.c'.
+* Removed `drivers/setvec.asm', since it's no longer needed.
+* Also removed `kernel/krnstart'.
+* The name field in a process's MCB is now filled in the same manner
+  as in MSDOS -- instead of being padded to the right with spaces, it
+  is now terminated with '\0'. Also, if the original file name
+  doesn't have an extension, the code will stop copying the file name
+  at '\0' instead of continuing to look for a '.'.
+* Fixed the problem of the `switchar' syscall (int 0x21, ax = 0x3700) not
+  returning the correct value.
+
+
 1999 Mar 28 - Build 2005
 -------- ror4 (ror4@usa.net)
 * Removed the need for `ipl.sys'. (!) The kernel makefile now
   statically relocates `kernel.exe' to 0x60:0 and outputs the
   resulting binary to `kernel.sys', and the boot sector has also been
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/intfns.txt ker2006/intfns.txt
--- ker2005/intfns.txt	Tue Mar  2 00:55:52 1999
+++ ker2006/intfns.txt	Mon Mar 29 09:39:16 1999
@@ -190,11 +190,14 @@
 See COPYING in DOS-C root directory for license.
 
 
 ------------------------------------------------------------------------------
 
-$Id: intfns.txt,v 1.2 1999/03/02 06:55:51 jprice Exp $
+$Id: INTFNS.TXT,v 1.1.1.1 1999/03/29 15:39:16 jprice Exp $
+
+$Log: INTFNS.TXT,v $
+Revision 1.1.1.1  1999/03/29 15:39:16  jprice
+New version without IPL.SYS
 
-$Log: intfns.txt,v $
 Revision 1.2  1999/03/02 06:55:51  jprice
 Updated interrupt list
 
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/001-437.nls ker2006/kernel/001-437.nls
--- ker2005/kernel/001-437.nls	Thu Jan 21 22:13:26 1999
+++ ker2006/kernel/001-437.nls	Sun Apr  4 14:25:22 1999
@@ -32,15 +32,18 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 /* $Logfile:   D:/dos-c/src/kernel/001-437.nlv  $ */
 #ifdef VERSION_STRINGS
-static BYTE *RcsId = "$Header: /home/cvsroot/kernel/kernel/src/kernel/001-437.nls,v 1.2 1999/01/22 04:13:25 jprice Exp $";
+static BYTE *RcsId = "$Header: /home/cvsroot/fdkernel/KERNEL/001-437.NLS,v 1.1.1.1 1999/03/29 15:40:36 jprice Exp $";
 #endif
 
 /*
- * $Log: 001-437.nls,v $
+ * $Log: 001-437.NLS,v $
+ * Revision 1.1.1.1  1999/03/29 15:40:36  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.2  1999/01/22 04:13:25  jprice
  * Formating
  *
  * Revision 1.1.1.1  1999/01/20 05:51:01  jprice
  * Imported sources
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/apisupt.asm ker2006/kernel/apisupt.asm
--- ker2005/kernel/apisupt.asm	Sun Mar 28 12:01:16 1999
+++ ker2006/kernel/apisupt.asm	Sun Apr  4 14:25:24 1999
@@ -22,13 +22,16 @@
 ; You should have received a copy of the GNU General Public
 ; License along with DOS-C; see the file COPYING.  If not,
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
-; $Id: apisupt.asm,v 1.4 1999/02/08 05:55:57 jprice Exp $
+; $Id: APISUPT.ASM,v 1.1.1.1 1999/03/29 15:40:38 jprice Exp $
+;
+; $Log: APISUPT.ASM,v $
+; Revision 1.1.1.1  1999/03/29 15:40:38  jprice
+; New version without IPL.SYS
 ;
-; $Log: apisupt.asm,v $
 ; Revision 1.4  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ; Revision 1.3  1999/02/01 01:48:41  jprice
 ; Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/asmsupt.asm ker2006/kernel/asmsupt.asm
--- ker2005/kernel/asmsupt.asm	Sun Mar 28 12:01:16 1999
+++ ker2006/kernel/asmsupt.asm	Sun Apr  4 14:25:24 1999
@@ -22,13 +22,16 @@
 ; You should have received a copy of the GNU General Public
 ; License along with DOS-C; see the file COPYING.  If not,
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
-; $Id: asmsupt.asm,v 1.4 1999/02/08 05:55:57 jprice Exp $
+; $Id: ASMSUPT.ASM,v 1.1.1.1 1999/03/29 15:40:41 jprice Exp $
+;
+; $Log: ASMSUPT.ASM,v $
+; Revision 1.1.1.1  1999/03/29 15:40:41  jprice
+; New version without IPL.SYS
 ;
-; $Log: asmsupt.asm,v $
 ; Revision 1.4  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ; Revision 1.3  1999/02/01 01:48:41  jprice
 ; Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/blockio.c ker2006/kernel/blockio.c
--- ker2005/kernel/blockio.c	Sun Mar 28 13:33:58 1999
+++ ker2006/kernel/blockio.c	Sun Apr  4 14:25:24 1999
@@ -30,15 +30,18 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *blockioRcsId = "$Id: blockio.c,v 1.5 1999/02/09 02:54:23 jprice Exp $";
+static BYTE *blockioRcsId = "$Id: BLOCKIO.C,v 1.1.1.1 1999/03/29 15:41:43 jprice Exp $";
 #endif
 
 /*
- * $Log: blockio.c,v $
+ * $Log: BLOCKIO.C,v $
+ * Revision 1.1.1.1  1999/03/29 15:41:43  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.5  1999/02/09 02:54:23  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.4  1999/02/01 01:43:27  jprice
  * Fixed findfirst function to find volume label with Windows long filenames
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/chario.c ker2006/kernel/chario.c
--- ker2005/kernel/chario.c	Sun Mar 28 13:33:58 1999
+++ ker2006/kernel/chario.c	Sun Apr  4 14:25:26 1999
@@ -29,15 +29,21 @@
 /****************************************************************/
 
 #include "portab.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *charioRcsId = "$Id: chario.c,v 1.5 1999/02/09 02:54:23 jprice Exp $";
+static BYTE *charioRcsId = "$Id: CHARIO.C,v 1.2 1999/04/04 18:51:42 jprice Exp $";
 #endif
 
 /*
- * $Log: chario.c,v $
+ * $Log: CHARIO.C,v $
+ * Revision 1.2  1999/04/04 18:51:42  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:41:45  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.5  1999/02/09 02:54:23  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.4  1999/02/04 03:18:37  jprice
  * Formating.  Added comments.
@@ -93,16 +99,14 @@
 {
 }
 #endif
 
 #ifdef PROTO
-BOOL _sto(COUNT);
-VOID kbfill(keyboard FAR *, UCOUNT, BOOL);
+VOID kbfill(keyboard FAR *, UCOUNT, BOOL, UWORD *);
 struct dhdr FAR *finddev(UWORD attr_mask);
 
 #else
-BOOL _sto();
 VOID kbfill();
 struct dhdr FAR *finddev();
 #endif
 
 /*      Return a pointer to the first driver in the chain that
@@ -121,79 +125,31 @@
 
   /* return dev/null if no matching driver found */
   return &nul_dev;
 }
 
-BYTE *CharName(struct dhdr far * lpDhdr)
-{
-  struct dhdr far *dh;
-  static BYTE szName[9];
-  COUNT nIdx;
-
-  /* Scan through the device list */
-  for (dh = nul_dev.dh_next; FP_OFF(dh) != 0xFFFF; dh = dh->dh_next)
-  {
-    if (dh == lpDhdr)
-      break;
-  }
-
-  /* return name of /dev/null if no matching driver found */
-  if (FP_OFF(dh) == 0xFFFF)
-    dh = (struct dhdr far *)&nul_dev;
-
-  /* Now convert it to a C string */
-  for (nIdx = 0; nIdx < 8 && dh->dh_name[nIdx] != ' '; nIdx++)
-    szName[nIdx] = dh->dh_name[nIdx];
-  szName[nIdx] = '\0';
-  return szName;
-}
-
-static BOOL _sto(COUNT c)
+VOID cso(COUNT c)
 {
   BYTE buf = c;
   struct dhdr FAR *lpDevice;
 
-  if (con_break())
-  {
-    handle_break();
-    return FALSE;
-  }
   CharReqHdr.r_length = sizeof(request);
   CharReqHdr.r_command = C_OUTPUT;
   CharReqHdr.r_count = 1;
   CharReqHdr.r_trans = (BYTE FAR *) (&buf);
   CharReqHdr.r_status = 0;
   execrh((request FAR *) & CharReqHdr,
-         lpDevice = (struct dhdr FAR *)finddev(ATTR_STDOUT));
+         lpDevice = (struct dhdr FAR *)finddev(ATTR_CONOUT));
   if (CharReqHdr.r_status & S_ERROR)
-    return char_error(&CharReqHdr, lpDevice);
-  return TRUE;
+    char_error(&CharReqHdr, lpDevice);
 }
 
 VOID sto(COUNT c)
 {
-  /* Test for hold char                                   */
-  con_hold();
+  static COUNT scratch; /* make this static to save stack space */
 
-  /* Display a printable character                        */
-  if (c != HT)
-    _sto(c);
-  if (c == CR)
-    scr_pos = 0;
-  else if (c == BS)
-  {
-    if (scr_pos > 0)
-      --scr_pos;
-  }
-  else if (c == HT)
-  {
-    do
-      _sto(' ');
-    while (++scr_pos & 7);
-  }
-  else if (c != LF && c != BS)
-    ++scr_pos;
+  DosWrite(STDOUT, 1, (BYTE FAR *)&c, (COUNT FAR *)scratch);
 }
 
 VOID mod_sto(REG UCOUNT c)
 {
   if (c < ' ' && c != HT)
@@ -212,55 +168,47 @@
   sto(BS);
 }
 
 UCOUNT _sti(void)
 {
-  UBYTE cb;
-  struct dhdr FAR *lpDevice;
+  static COUNT scratch;
+  UBYTE c;
 
-  CharReqHdr.r_length = sizeof(request);
-  CharReqHdr.r_command = C_INPUT;
-  CharReqHdr.r_count = 1;
-  CharReqHdr.r_trans = (BYTE FAR *) & cb;
-  CharReqHdr.r_status = 0;
-  execrh((request FAR *) & CharReqHdr,
-         lpDevice = (struct dhdr FAR *)finddev(ATTR_STDIN));
-  if (CharReqHdr.r_status & S_ERROR)
-    return char_error(&CharReqHdr, lpDevice);
-  if (cb == CTL_C)
-  {
-    handle_break();
-    return CTL_C;
-  }
-  else
-    return cb;
+  /*
+   * XXX: If there's a read error, this will just keep retrying the read until
+   * the error disappears. Maybe it should do something else instead. -- ror4
+   */
+  while (GenericRead(STDIN, 1, (BYTE FAR *)&c, (COUNT FAR *)&scratch, TRUE)
+    != 1);
+  return c;
 }
 
-VOID con_hold(void)
-{
-  CharReqHdr.r_unit = 0;
-  CharReqHdr.r_status = 0;
-  CharReqHdr.r_command = C_NDREAD;
-  CharReqHdr.r_length = sizeof(request);
-  execrh((request FAR *) & CharReqHdr, (struct dhdr FAR *)finddev(ATTR_STDIN));
-  if (CharReqHdr.r_status & S_BUSY)
-    return;
-  if (CharReqHdr.r_ndbyte == CTL_S)
-  {
-    _sti();
-    while (_sti() != CTL_Q)
-      /* just wait */ ;
-  }
-}
+/* XXX: I'm not sure where this function should come in... -- ror4 */
+//VOID con_hold(void)
+//{
+//  CharReqHdr.r_unit = 0;
+//  CharReqHdr.r_status = 0;
+//  CharReqHdr.r_command = C_NDREAD;
+//  CharReqHdr.r_length = sizeof(request);
+//  execrh((request FAR *) & CharReqHdr, (struct dhdr FAR *)finddev(ATTR_CONIN));
+//  if (CharReqHdr.r_status & S_BUSY)
+//    return;
+//  if (CharReqHdr.r_ndbyte == CTL_S)
+//  {
+//    _sti();
+//    while (_sti() != CTL_Q)
+//      /* just wait */ ;
+//  }
+//}
 
 BOOL con_break(void)
 {
   CharReqHdr.r_unit = 0;
   CharReqHdr.r_status = 0;
   CharReqHdr.r_command = C_NDREAD;
   CharReqHdr.r_length = sizeof(request);
-  execrh((request FAR *) & CharReqHdr, (struct dhdr FAR *)finddev(ATTR_STDIN));
+  execrh((request FAR *) & CharReqHdr, (struct dhdr FAR *)finddev(ATTR_CONIN));
   if (CharReqHdr.r_status & S_BUSY)
     return FALSE;
   if (CharReqHdr.r_ndbyte == CTL_C)
   {
     _sti();
@@ -268,50 +216,72 @@
   }
   else
     return FALSE;
 }
 
-BOOL KbdBusy(void)
+BOOL StdinBusy(void)
 {
+  sft FAR *s;
+
+  if ((s = get_sft(STDIN)) == (sft FAR *)-1)
+    return FALSE; /* XXX */
+  if (s->sft_count == 0 || (s->sft_mode & SFT_MWRITE))
+    return FALSE; /* XXX */
+  if (s->sft_flags & SFT_FDEVICE)
+  {
   CharReqHdr.r_unit = 0;
   CharReqHdr.r_status = 0;
   CharReqHdr.r_command = C_ISTAT;
   CharReqHdr.r_length = sizeof(request);
-  execrh((request FAR *) & CharReqHdr, (struct dhdr FAR *)finddev(ATTR_STDIN));
+    execrh((request FAR *) & CharReqHdr, s->sft_dev);
   if (CharReqHdr.r_status & S_BUSY)
     return TRUE;
   else
     return FALSE;
+  }
+  else
+    return FALSE; /* XXX */
 }
 
 VOID KbdFlush(void)
 {
   CharReqHdr.r_unit = 0;
   CharReqHdr.r_status = 0;
   CharReqHdr.r_command = C_IFLUSH;
   CharReqHdr.r_length = sizeof(request);
-  execrh((request FAR *) & CharReqHdr, (struct dhdr FAR *)finddev(ATTR_STDIN));
+  execrh((request FAR *) & CharReqHdr, (struct dhdr FAR *)finddev(ATTR_CONIN));
 }
 
-static VOID kbfill(keyboard FAR * kp, UCOUNT c, BOOL ctlf)
+static VOID kbfill(keyboard FAR * kp, UCOUNT c, BOOL ctlf, UWORD *vp)
 {
   if (kp->kb_count > kp->kb_size)
   {
     sto(BELL);
     return;
   }
   kp->kb_buf[kp->kb_count++] = c;
   if (!ctlf)
+  {
     mod_sto(c);
+    *vp += 2;
+  }
   else
+  {
     sto(c);
+    if (c != HT)
+      ++*vp;
+    else
+      *vp = (*vp + 8) & -8;
+  }
 }
 
 VOID sti(keyboard FAR * kp)
 {
   REG UWORD c,
     cu_pos = scr_pos;
+  UWORD
+    virt_pos = scr_pos;
   WORD init_count = kp->kb_count;
 #ifndef NOSPCL
   static BYTE local_buffer[LINESIZE];
 #endif
 
@@ -340,20 +310,20 @@
               for (i = kp->kb_count; local_buffer[i] != '\0'; i++)
               {
                 c = local_buffer[kp->kb_count];
                 if (c == '\r' || c == '\n')
                   break;
-                kbfill(kp, c, FALSE);
+                kbfill(kp, c, FALSE, &virt_pos);
               }
               break;
             }
 
           case RIGHT:
             c = local_buffer[kp->kb_count];
             if (c == '\r' || c == '\n')
               break;
-            kbfill(kp, c, FALSE);
+            kbfill(kp, c, FALSE, &virt_pos);
             break;
         }
         break;
 #endif
 
@@ -363,32 +333,35 @@
         if (kp->kb_count > 0)
         {
           if (kp->kb_buf[kp->kb_count - 1] >= ' ')
           {
             destr_bs();
+	    --virt_pos;
           }
           else if ((kp->kb_buf[kp->kb_count - 1] < ' ')
                    && (kp->kb_buf[kp->kb_count - 1] != HT))
           {
             destr_bs();
             destr_bs();
+	    virt_pos -= 2;
           }
           else if (kp->kb_buf[kp->kb_count - 1] == HT)
           {
             do
             {
               destr_bs();
+	      --virt_pos;
             }
-            while ((scr_pos > cu_pos) && (scr_pos & 7));
+            while ((virt_pos > cu_pos) && (virt_pos & 7));
           }
           --kp->kb_count;
         }
         break;
 
       case CR:
-        kbfill(kp, CR, TRUE);
-        kbfill(kp, LF, TRUE);
+        kbfill(kp, CR, TRUE, &virt_pos);
+        kbfill(kp, LF, TRUE, &virt_pos);
 #ifndef NOSPCL
         fbcopy((BYTE FAR *) kp->kb_buf,
                (BYTE FAR *) local_buffer, (COUNT) kp->kb_count);
         local_buffer[kp->kb_count] = '\0';
 #endif
@@ -407,11 +380,11 @@
           sto(' ');
         kp->kb_count = init_count;
         break;
 
       default:
-        kbfill(kp, c, FALSE);
+        kbfill(kp, c, FALSE, &virt_pos);
         break;
     }
   }
 }
 
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/config.c ker2006/kernel/config.c
--- ker2005/kernel/config.c	Sun Mar 28 13:34:04 1999
+++ ker2006/kernel/config.c	Sun Apr  4 17:57:48 1999
@@ -31,15 +31,21 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *RcsId = "$Id: config.c,v 1.6 1999/03/23 23:38:15 jprice Exp $";
+static BYTE *RcsId = "$Id: CONFIG.C,v 1.2 1999/04/04 22:57:47 jprice Exp $";
 #endif
 
 /*
- * $Log: config.c,v $
+ * $Log: CONFIG.C,v $
+ * Revision 1.2  1999/04/04 22:57:47  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:40:46  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.6  1999/03/23 23:38:15  jprice
  * Now checks for a reads fdconfig.sys file, if exists
  *
  * Revision 1.5  1999/02/08 05:55:57  jprice
  * Added Pat's 1937 kernel patches
@@ -97,10 +103,11 @@
 
 int singleStep = 0;
 
 INIT VOID Buffers(BYTE * pLine);
 INIT VOID sysScreenMode(BYTE * pLine);
+INIT VOID sysVersion(BYTE * pLine);
 INIT VOID Break(BYTE * pLine);
 INIT VOID Device(BYTE * pLine);
 INIT VOID Files(BYTE * pLine);
 INIT VOID Fcbs(BYTE * pLine);
 INIT VOID Lastdrive(BYTE * pLine);
@@ -118,10 +125,11 @@
 INIT static VOID FAR *AlignParagraph(VOID FAR * lpPtr);
 #ifndef I86
 #define AlignParagraph(x) (x)
 #endif
 
+
 #define EOF 0x1a
 
 INIT struct table *LookUp(struct table *p, BYTE * token);
 
 struct table
@@ -145,10 +153,11 @@
   {"rem", 0, CfgFailure},
   {"shell", 1, InitPgm},
   {"stacks", 1, Stacks},
   {"switchar", 1, Switchar},
   {"screen", 1, sysScreenMode}, /* JPP */
+  {"version", 1, sysVersion}, /* JPP */
         /* default action                                               */
   {"", -1, CfgFailure}
 };
 
 #ifndef KDB
@@ -479,10 +488,35 @@
   _AX = (0x11 << 8) + nMode;
   asm {
     xor bl, bl
     int 0x10
   }
+}
+
+INIT static VOID sysVersion(BYTE * pLine)
+{
+  COUNT major,minor;
+  char *p;
+
+  p = pLine;
+  while(*p && *p != '.') p++;
+
+  if (!*p) return;
+  *p++;
+
+  /* Get major number */
+  if (GetNumArg(pLine, &major) == (BYTE *) 0)
+    return;
+
+  /* Get minor number */
+  if (GetNumArg(p, &minor) == (BYTE *) 0)
+    return;
+
+  printf("Changing reported version to %d.%d\n",major,minor);
+
+  os_major = major;
+  os_minor = minor;
 }
 
 INIT static VOID Files(BYTE * pLine)
 {
   COUNT nFiles;
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/console.asm ker2006/kernel/console.asm
--- ker2005/kernel/console.asm	Sun Mar 28 12:01:16 1999
+++ ker2006/kernel/console.asm	Sun Apr  4 14:25:28 1999
@@ -23,13 +23,16 @@
 ; You should have received a copy of the GNU General public
 ; License along with DOS-C; see the file COPYING.  If not,
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/kernel/console.asm,v 1.1 1999/02/08 05:55:57 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/KERNEL/CONSOLE.ASM,v 1.1.1.1 1999/03/29 15:40:47 jprice Exp $
+;
+; $Log: CONSOLE.ASM,v $
+; Revision 1.1.1.1  1999/03/29 15:40:47  jprice
+; New version without IPL.SYS
 ;
-; $Log: console.asm,v $
 ; Revision 1.1  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ; $EndLog$
 ;
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/dosfns.c ker2006/kernel/dosfns.c
--- ker2005/kernel/dosfns.c	Sun Mar 28 13:34:04 1999
+++ ker2006/kernel/dosfns.c	Sun Apr  4 14:25:28 1999
@@ -27,15 +27,21 @@
 /****************************************************************/
 
 #include "portab.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *dosfnsRcsId = "$Id: dosfns.c,v 1.4 1999/02/09 02:54:23 jprice Exp $";
+static BYTE *dosfnsRcsId = "$Id: DOSFNS.C,v 1.2 1999/04/04 18:51:43 jprice Exp $";
 #endif
 
 /*
- * $Log: dosfns.c,v $
+ * $Log: DOSFNS.C,v $
+ * Revision 1.2  1999/04/04 18:51:43  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:41:52  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.4  1999/02/09 02:54:23  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.3  1999/02/01 01:43:28  jprice
  * Fixed findfirst function to find volume label with Windows long filenames
@@ -77,11 +83,10 @@
  * Initial revision.
  */
 
 #include "globals.h"
 
-BOOL check_break(VOID);
 sft FAR *get_sft(COUNT);
 WORD get_free_hndl(VOID);
 sft FAR *get_free_sft(WORD FAR *);
 BYTE FAR *get_root(BYTE FAR *);
 BOOL cmatch(COUNT, COUNT, COUNT);
@@ -91,29 +96,17 @@
 {
   BYTE szLclName[FNAME_SIZE + 1];
   BYTE szLclExt[FEXT_SIZE + 1];
 
   ParseDosName(lpszPath, (COUNT *) 0, (BYTE *) 0,
-               szLclName, szLclExt);
+               szLclName, szLclExt, FALSE);
   SpacePad(szLclName, FNAME_SIZE);
   SpacePad(szLclExt, FEXT_SIZE);
   fbcopy((BYTE FAR *) szLclName, lpszDosFileName, FNAME_SIZE);
   fbcopy((BYTE FAR *) szLclExt, &lpszDosFileName[FNAME_SIZE], FEXT_SIZE);
 }
 
-BOOL check_break(void)
-{
-  if (break_ena && con_break())
-  {
-    handle_break();
-    /* shouldn't return, but in case...     */
-    return TRUE;
-  }
-  else
-    return FALSE;
-}
-
 sft FAR *get_sft(COUNT hndl)
 {
   psp FAR *p = MK_FP(cu_psp, 0);
   WORD sys_idx;
   sfttbl FAR *sp;
@@ -140,11 +133,19 @@
 
   /* finally, point to the right entry            */
   return (sft FAR *) & (sp->sftt_table[sys_idx]);
 }
 
-UCOUNT DosRead(COUNT hndl, UCOUNT n, BYTE FAR * bp, COUNT FAR * err)
+/*
+ * The `force_binary' parameter is a hack to allow functions 0x01, 0x06, 0x07,
+ * and function 0x40 to use the same code for performing reads, even though the
+ * two classes of functions behave quite differently: 0x01 etc. always do
+ * binary reads, while for 0x40 the type of read (binary/text) depends on what
+ * the SFT says. -- ror4
+ */
+UCOUNT GenericRead(COUNT hndl, UCOUNT n, BYTE FAR * bp, COUNT FAR * err,
+BOOL force_binary)
 {
   sft FAR *s;
   WORD sys_idx;
   sfttbl FAR *sp;
   UCOUNT ReadCount;
@@ -183,11 +184,11 @@
       *err = SUCCESS;
       return 0;
     }
 
     /* Now handle raw and cooked modes      */
-    if (s->sft_flags & SFT_FBINARY)
+    if (force_binary || (s->sft_flags & SFT_FBINARY))
     {
       rq.r_length = sizeof(request);
       rq.r_command = C_INPUT;
       rq.r_count = n;
       rq.r_trans = (BYTE FAR *) bp;
@@ -201,47 +202,29 @@
       {
         *err = SUCCESS;
         return rq.r_count;
       }
     }
-    else if (s->sft_flags & SFT_FSTDIN)
-    {
-      if (!check_break())
+    else if (s->sft_flags & SFT_FCONIN)
       {
         kb_buf.kb_size = LINESIZE - 1;
         kb_buf.kb_count = 0;
         sti((keyboard FAR *) & kb_buf);
         fbcopy((BYTE FAR *) kb_buf.kb_buf, bp, kb_buf.kb_count);
         *err = SUCCESS;
         return kb_buf.kb_count;
       }
       else
       {
-        *err = SUCCESS;
-        return 0;
-      }
-    }
-    else
-    {
-      if (!check_break())
-      {
         *bp = _sti();
         *err = SUCCESS;
         return 1;
       }
-      else
-      {
-        *err = SUCCESS;
-        return 0;
-      }
-    }
   }
   else
     /* a block read                            */
   {
-    if (!check_break())
-    {
       COUNT rc;
 
       ReadCount = rdwrblock(s->sft_status, bp, n, XFR_READ, &rc);
       if (rc != SUCCESS)
       {
@@ -252,20 +235,19 @@
       {
         *err = SUCCESS;
         return ReadCount;
       }
     }
-    else
-    {
-      *err = SUCCESS;
-      return 0;
-    }
-  }
   *err = SUCCESS;
   return 0;
 }
 
+UCOUNT DosRead(COUNT hndl, UCOUNT n, BYTE FAR * bp, COUNT FAR * err)
+{
+  return GenericRead(hndl, n, bp, err, FALSE);
+}
+
 UCOUNT DosWrite(COUNT hndl, UCOUNT n, BYTE FAR * bp, COUNT FAR * err)
 {
   sft FAR *s;
   WORD sys_idx;
   sfttbl FAR *sp;
@@ -322,43 +304,108 @@
       {
         char_error(&rq, s->sft_dev);
       }
       else
       {
+	if (s->sft_flags & SFT_FCONOUT)
+	{
+	  WORD cnt = rq.r_count;
+	  while (cnt--)
+	  {
+	    switch (*bp++)
+	    {
+	      case CR:
+		scr_pos = 0;
+		break;
+	      case LF:
+	      case BELL:
+		break;
+	      case BS:
+		--scr_pos;
+		break;
+	      default:
+		++scr_pos;
+	    }
+	  }
+	}
         *err = SUCCESS;
         return rq.r_count;
       }
     }
     else
     {
-      REG c,
+      REG WORD c,
         cnt = n,
+	spaces_left = 0,
+	next_pos,
         xfer = 0;
+      static BYTE space = ' ';
 
-      while (cnt-- && (*bp != CTL_Z) && !check_break())
+    start:
+      if (cnt-- == 0) goto end;
+      if (*bp == CTL_Z) goto end;
+      if (s->sft_flags & SFT_FCONOUT)
+      {
+	switch (*bp)
       {
+	  case CR:
+	    next_pos = 0;
+	    break;
+	  case LF:
+	  case BELL:
+	    next_pos = scr_pos;
+	    break;
+	  case BS:
+	    next_pos = scr_pos ? scr_pos - 1 : 0;
+	    break;
+	  case HT:
+	    spaces_left = 8 - (scr_pos & 7);
+	    next_pos = scr_pos + spaces_left;
+	    goto output_space;
+	  default:
+	    next_pos = scr_pos + 1;
+	}
+      }
         rq.r_length = sizeof(request);
         rq.r_command = C_OUTPUT;
         rq.r_count = 1;
-        rq.r_trans = (BYTE FAR *) bp++;
+      rq.r_trans = bp;
         rq.r_status = 0;
         execrh((request FAR *) & rq, s->sft_dev);
         if (rq.r_status & S_ERROR)
-        {
           char_error(&rq, s->sft_dev);
-        }
+      goto post;
+    output_space:
+      rq.r_length = sizeof(request);
+      rq.r_command = C_OUTPUT;
+      rq.r_count = 1;
+      rq.r_trans = &space;
+      rq.r_status = 0;
+      execrh((request FAR *) & rq, s->sft_dev);
+      if (rq.r_status & S_ERROR)
+	char_error(&rq, s->sft_dev);
+      --spaces_left;
+    post:
+      if (spaces_left) goto output_space;
+      ++bp;
         ++xfer;
+      if (s->sft_flags & SFT_FCONOUT)
+	scr_pos = next_pos;
+      if (break_ena && con_break())
+      {
+	handle_break();
+	goto end;
       }
+      goto start;
+    end:
       *err = SUCCESS;
       return xfer;
     }
   }
   else
     /* a block write                           */
   {
-    if (!check_break())
-    {
       COUNT rc;
 
       ReadCount = rdwrblock(s->sft_status, bp, n, XFR_WRITE, &rc);
       if (rc < SUCCESS)
       {
@@ -367,16 +414,10 @@
       }
       else
       {
         *err = SUCCESS;
         return ReadCount;
-      }
-    }
-    else
-    {
-      *err = SUCCESS;
-      return 0;
     }
   }
   *err = SUCCESS;
   return 0;
 }
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/dosnames.c ker2006/kernel/dosnames.c
--- ker2005/kernel/dosnames.c	Sun Mar 28 13:34:00 1999
+++ ker2006/kernel/dosnames.c	Sun Apr  4 14:25:30 1999
@@ -29,15 +29,21 @@
 /****************************************************************/
 
 #include "portab.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *dosnamesRcsId = "$Id: dosnames.c,v 1.4 1999/02/02 04:40:49 jprice Exp $";
+static BYTE *dosnamesRcsId = "$Id: DOSNAMES.C,v 1.2 1999/04/04 18:51:43 jprice Exp $";
 #endif
 
 /*
- * $Log: dosnames.c,v $
+ * $Log: DOSNAMES.C,v $
+ * Revision 1.2  1999/04/04 18:51:43  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:41:54  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.4  1999/02/02 04:40:49  jprice
  * Steve Miller fixed a bug with doing "cd ." would lock the machine.
  *
  * Revision 1.3  1999/02/01 01:43:28  jprice
  * Fixed findfirst function to find volume label with Windows long filenames
@@ -80,33 +86,17 @@
 
 #include "globals.h"
 
 #define PathSep(c) ((c)=='/'||(c)=='\\')
 #define DriveChar(c) (((c)>='A'&&(c)<='Z')||((c)>='a'&&(c)<='z'))
+#define DirChar(c) (!strchr("\"[]:|<>+=;,", (c)))
+#define NameChar(c) (!strchr(".\"/\\[]:|<>+=;,*?", (c)))
+#define WildChar(c) (!strchr(".\"/\\[]:|<>+=;,", (c)))
 
-static BOOL bFileChar(UCOUNT uChar);
 VOID XlateLcase(BYTE * szFname, COUNT nChars);
 VOID DosTrimPath(BYTE FAR * lpszPathNamep);
 
-static BOOL bFileChar(UCOUNT uChar)
-{
-  BYTE *pszValChar = ".\"/\\[]:|<>+=;,",
-   *pszPtr;
-
-  /* Null is not a valid character                                */
-  if (NULL == uChar)
-    return FALSE;
-
-  /* Loop through invalid character set                           */
-  for (pszPtr = pszValChar; *pszPtr != NULL; pszPtr++)
-    if (uChar == *pszPtr)
-      return FALSE;
-
-  /* Not in excluded set, it's ok.                                */
-  return TRUE;
-}
-
 /* Should be converted to a portable version after v1.0 is released.    */
 VOID XlateLcase(BYTE * szFname, COUNT nChars)
 {
   while (nChars--)
   {
@@ -126,11 +116,12 @@
 
 COUNT ParseDosName(BYTE FAR * lpszFileName,
                    COUNT * pnDrive,
                    BYTE * pszDir,
                    BYTE * pszFile,
-                   BYTE * pszExt)
+                   BYTE * pszExt,
+		   BOOL bAllowWildcards)
 {
   COUNT nDirCnt,
     nFileCnt,
     nExtCnt;
   BYTE FAR *lpszLclDir,
@@ -168,63 +159,48 @@
     }
   }
   if (!pszDir && !pszFile && !pszExt)
     return SUCCESS;
 
-  /* Now see how long a directory component we have.  We've       */
-  /* initialized the count before and moved the passed in pointer */
-  /* past the optional drive component.  Now, we initialize the   */
-  /* directory count variable to a one if and only if we see a    */
-  /* leading root drive specifier because we can't be certain     */
-  /* that what follows is a directory until we see at least a     */
-  /* single path seperator.  So we count to the end and work      */
-  /* backwards to the last seperator subtracting one for each     */
-  /* character until we see one (seperator).                      */
-  lpszLclDir = lpszFileName;
-  while (bFileChar(*lpszFileName)
-         || PathSep(*lpszFileName)
-         || '.' == *lpszFileName)
-  {
-    ++nDirCnt;
-    ++lpszFileName;
-  }
-  if (nDirCnt > 1)
-  {
-    while (lpszFileName > lpszLclDir)
-    {
-      BYTE cChar = *--lpszFileName;
-
-      if (PathSep(cChar))
-        break;
-      --nDirCnt;
-    }
-    /* Once we've moved the pointer back, we want to bump   */
-    /* it past the seperator.                               */
+  /* Now see how long a directory component we have.              */
+  lpszLclDir = lpszLclFile = lpszFileName;
+  while (DirChar(*lpszFileName)) {
     if (PathSep(*lpszFileName))
+      lpszLclFile = lpszFileName + 1;
       ++lpszFileName;
   }
+  nDirCnt = lpszLclFile - lpszLclDir;
 
   /* Parse out the file name portion.                             */
-  lpszLclFile = lpszFileName;
-  while (bFileChar(*lpszFileName) && '.' != *lpszFileName)
+  lpszFileName = lpszLclFile;
+  while (bAllowWildcards ? WildChar(*lpszFileName) : NameChar(*lpszFileName))
   {
     ++nFileCnt;
     ++lpszFileName;
   }
+  if (nFileCnt == 0)
+    return DE_FILENOTFND;
 
   /* Now we have pointers set to the directory portion and the    */
   /* file portion.  Now determine the existance of an extension.  */
   lpszLclExt = lpszFileName;
   if ('.' == *lpszFileName)
   {
     lpszLclExt = ++lpszFileName;
-    while (bFileChar(*lpszFileName))
+    while (*lpszFileName)
+    {
+      if (bAllowWildcards ? WildChar(*lpszFileName) : NameChar(*lpszFileName))
     {
       ++nExtCnt;
       ++lpszFileName;
     }
+      else
+	return DE_FILENOTFND;
   }
+  }
+  else if (*lpszFileName)
+    return DE_FILENOTFND;
 
   /* Fix lengths to maximums allowed by MS-DOS.                   */
   if (nDirCnt > PARSE_MAX)
     nDirCnt = PARSE_MAX;
   if (nFileCnt > FNAME_SIZE)
@@ -304,11 +280,11 @@
       nPathCnt = PARSE_MAX;
     pszDir += nPathCnt;
   }
 
   /* Now see how long a directory component we have.              */
-  while (bFileChar(*lpszFileName)
+  while (NameChar(*lpszFileName)
          || PathSep(*lpszFileName)
          || '.' == *lpszFileName)
   {
     ++nDirCnt;
     ++lpszFileName;
@@ -350,12 +326,14 @@
 {
   REG struct dhdr FAR *dhp = (struct dhdr FAR *)&nul_dev;
   BYTE szName[FNAME_SIZE];
 
   /* break up the name first                              */
-  ParseDosName((BYTE FAR *) pszFileName,
-               (COUNT *) 0, TempBuffer, szName, (BYTE *) 0);
+  if (ParseDosName((BYTE FAR *) pszFileName,
+                   (COUNT *) 0, TempBuffer, szName, (BYTE *) 0, FALSE)
+      != SUCCESS)
+    return FALSE;
   SpacePad(szName, FNAME_SIZE);
 
   /* Test 1 - does it start with a \dev or /dev           */
   if ((strcmp(szName, "/dev") == 0)
       || (strcmp(szName, "\\dev") == 0))
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/dsk.c ker2006/kernel/dsk.c
--- ker2005/kernel/dsk.c	Sun Mar 28 13:33:52 1999
+++ ker2006/kernel/dsk.c	Sun Apr  4 14:25:32 1999
@@ -26,15 +26,18 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *dskRcsId = "$Id: dsk.c,v 1.5 1999/02/14 04:26:46 jprice Exp $";
+static BYTE *dskRcsId = "$Id: DSK.C,v 1.1.1.1 1999/03/29 15:40:51 jprice Exp $";
 #endif
 
 /*
- * $Log: dsk.c,v $
+ * $Log: DSK.C,v $
+ * Revision 1.1.1.1  1999/03/29 15:40:51  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.5  1999/02/14 04:26:46  jprice
  * Changed check media so that it checks if a floppy disk has been changed.
  *
  * Revision 1.4  1999/02/08 05:55:57  jprice
  * Added Pat's 1937 kernel patches
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/entry.asm ker2006/kernel/entry.asm
--- ker2005/kernel/entry.asm	Sun Mar 28 12:01:16 1999
+++ ker2006/kernel/entry.asm	Sun Apr  4 14:25:34 1999
@@ -23,13 +23,16 @@
 ; You should have received a copy of the GNU General public
 ; License along with DOS-C; see the file COPYING.  If not,
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
-; $Id: entry.asm,v 1.4 1999/02/08 05:55:57 jprice Exp $
+; $Id: ENTRY.ASM,v 1.1.1.1 1999/03/29 15:40:53 jprice Exp $
+;
+; $Log: ENTRY.ASM,v $
+; Revision 1.1.1.1  1999/03/29 15:40:53  jprice
+; New version without IPL.SYS
 ;
-; $Log: entry.asm,v $
 ; Revision 1.4  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ; Revision 1.3  1999/02/01 01:48:41  jprice
 ; Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/error.c ker2006/kernel/error.c
--- ker2005/kernel/error.c	Sun Mar 28 13:34:00 1999
+++ ker2006/kernel/error.c	Sun Apr  4 14:25:36 1999
@@ -27,15 +27,18 @@
 /****************************************************************/
 
 #include "portab.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *errorRcsId = "$Id: error.c,v 1.4 1999/02/09 02:54:23 jprice Exp $";
+static BYTE *errorRcsId = "$Id: ERROR.C,v 1.1.1.1 1999/03/29 15:41:55 jprice Exp $";
 #endif
 
 /*
- * $Log: error.c,v $
+ * $Log: ERROR.C,v $
+ * Revision 1.1.1.1  1999/03/29 15:41:55  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.4  1999/02/09 02:54:23  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.3  1999/02/01 01:43:28  jprice
  * Fixed findfirst function to find volume label with Windows long filenames
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/execrh.asm ker2006/kernel/execrh.asm
--- ker2005/kernel/execrh.asm	Sun Mar 28 12:05:00 1999
+++ ker2006/kernel/execrh.asm	Sun Apr  4 14:25:36 1999
@@ -25,13 +25,16 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/usr/patv/dos-c/src/kernel/execrh.asv  $
 ;
-; $Id: execrh.asm,v 1.4 1999/02/08 05:55:57 jprice Exp $
+; $Id: EXECRH.ASM,v 1.1.1.1 1999/03/29 15:40:54 jprice Exp $
+;
+; $Log: EXECRH.ASM,v $
+; Revision 1.1.1.1  1999/03/29 15:40:54  jprice
+; New version without IPL.SYS
 ;
-; $Log: execrh.asm,v $
 ; Revision 1.4  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ; Revision 1.3  1999/02/01 01:48:41  jprice
 ; Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/fatdir.c ker2006/kernel/fatdir.c
--- ker2005/kernel/fatdir.c	Sun Mar 28 13:34:00 1999
+++ ker2006/kernel/fatdir.c	Sun Apr  4 14:25:36 1999
@@ -29,15 +29,21 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *fatdirRcsId = "$Id: fatdir.c,v 1.7 1999/03/25 05:06:57 jprice Exp $";
+static BYTE *fatdirRcsId = "$Id: FATDIR.C,v 1.2 1999/04/04 18:51:43 jprice Exp $";
 #endif
 
 /*
- * $Log: fatdir.c,v $
+ * $Log: FATDIR.C,v $
+ * Revision 1.2  1999/04/04 18:51:43  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:41:58  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.7  1999/03/25 05:06:57  jprice
  * Fixed findfirst & findnext functions to treat the attributes like MSDOS does.
  *
  * Revision 1.6  1999/02/14 04:27:09  jprice
  * Changed check media so that it checks if a floppy disk has been changed.
@@ -113,11 +119,16 @@
   /* and initialize temporary CDS                                 */
   TempCDS.cdsFlags = 0;
 
   /* determine what drive we are using...                         */
   dirname = adjust_far(dirname);
-  ParseDosName(dirname, &drive, (BYTE *) 0, (BYTE *) 0, (BYTE *) 0);
+  if (ParseDosName(dirname, &drive, (BYTE *) 0, (BYTE *) 0, (BYTE *) 0, FALSE)
+      != SUCCESS)
+  {
+    release_f_node(fnp);
+    return NULL;
+  }
 
   /* If the drive was specified, drive is non-negative and        */
   /* corresponds to the one passed in, i.e., 0 = A, 1 = B, etc.   */
   /* We use that and skip the "D:" part of the string.            */
   /* Otherwise, just use the default drive                        */
@@ -498,12 +509,14 @@
     dmp->dm_attr_srch = attr;
   else
     dmp->dm_attr_srch = attr | D_RDONLY | D_ARCHIVE;
 
   /* Parse out the drive, file name and file extension.           */
-  ParseDosName(name, &nDrive, &LocalPath[2],
-               SearchDir.dir_name, SearchDir.dir_ext);
+  i = ParseDosName(name, &nDrive, &LocalPath[2],
+                   SearchDir.dir_name, SearchDir.dir_ext, TRUE);
+  if (i != SUCCESS)
+    return i;
 
   if (nDrive >= 0)
   {
     dmp->dm_drive = nDrive;
   }
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/fatfs.c ker2006/kernel/fatfs.c
--- ker2005/kernel/fatfs.c	Sun Mar 28 13:34:00 1999
+++ ker2006/kernel/fatfs.c	Sun Apr  4 14:25:42 1999
@@ -29,15 +29,21 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-BYTE *RcsId = "$Id: fatfs.c,v 1.8 1999/03/23 23:37:39 jprice Exp $";
+BYTE *RcsId = "$Id: FATFS.C,v 1.2 1999/04/04 18:51:43 jprice Exp $";
 #endif
 
 /*
- * $Log: fatfs.c,v $
+ * $Log: FATFS.C,v $
+ * Revision 1.2  1999/04/04 18:51:43  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:42:07  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.8  1999/03/23 23:37:39  jprice
  * Fixed mkdir DOS function so it will create a directory with same name as the volument label
  *
  * Revision 1.7  1999/03/02 07:00:51  jprice
  * Fixed bugs with dos set attribute function.  Now returns correct
@@ -251,11 +257,13 @@
   REG struct f_node FAR *fnp;
   COUNT nDrive;
   struct dpb *dpbp;
 
   /* Start off by parsing out the components.                     */
-  ParseDosName(adjust_far(path), &nDrive, &dname[2], fname, fext);
+  if (ParseDosName(adjust_far(path), &nDrive, &dname[2], fname, fext, FALSE)
+      != SUCCESS)
+    return (struct f_node FAR *)0;
   if (nDrive < 0)
     nDrive = default_drive;
 
   dname[0] = 'A' + nDrive;
   dname[1] = ':';
@@ -1890,11 +1898,11 @@
 }
 
 /* translate the fd into an f_node pointer */
 struct f_node FAR *xlt_fd(COUNT fd)
 {
-  return fd > NFILES ? (struct f_node FAR *)0 : &f_nodes[fd];
+  return fd >= NFILES ? (struct f_node FAR *)0 : &f_nodes[fd];
 }
 
 COUNT xlt_fnp(struct f_node FAR * fnp)
 {
   return fnp - f_nodes;
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/fattab.c ker2006/kernel/fattab.c
--- ker2005/kernel/fattab.c	Sun Mar 28 13:34:00 1999
+++ ker2006/kernel/fattab.c	Sun Apr  4 14:25:44 1999
@@ -28,15 +28,18 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *RcsId = "$Id: fattab.c,v 1.4 1999/02/09 02:54:23 jprice Exp $";
+static BYTE *RcsId = "$Id: FATTAB.C,v 1.1.1.1 1999/03/29 15:42:09 jprice Exp $";
 #endif
 
 /*
- * $Log: fattab.c,v $
+ * $Log: FATTAB.C,v $
+ * Revision 1.1.1.1  1999/03/29 15:42:09  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.4  1999/02/09 02:54:23  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.3  1999/02/01 01:43:28  jprice
  * Fixed findfirst function to find volume label with Windows long filenames
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/fcbfns.c ker2006/kernel/fcbfns.c
--- ker2005/kernel/fcbfns.c	Sun Mar 28 13:34:02 1999
+++ ker2006/kernel/fcbfns.c	Sun Apr  4 14:25:46 1999
@@ -28,15 +28,21 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *RcsId = "$Id: fcbfns.c,v 1.5 1999/02/09 02:54:23 jprice Exp $";
+static BYTE *RcsId = "$Id: FCBFNS.C,v 1.2 1999/04/04 18:51:43 jprice Exp $";
 #endif
 
 /*
- * $Log: fcbfns.c,v $
+ * $Log: FCBFNS.C,v $
+ * Revision 1.2  1999/04/04 18:51:43  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:42:15  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.5  1999/02/09 02:54:23  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.4  1999/02/04 03:18:37  jprice
  * Formating.  Added comments.
@@ -105,155 +111,10 @@
 BOOL FcbCalcRec();
 VOID MoveDirInfo();
 #endif
 
 static dmatch Dmatch;
-
-VOID DosOutputString(BYTE FAR * s)
-{
-  while (*s != '$')
-    DosCharOutput(*s++);
-}
-
-int DosCharInputEcho(VOID)
-{
-  BYTE cb;
-
-  CharReqHdr.r_length = sizeof(request);
-  CharReqHdr.r_command = C_INPUT;
-  CharReqHdr.r_count = 1;
-  CharReqHdr.r_trans = (VOID FAR *) & cb;
-  CharReqHdr.r_status = 0;
-  execrh((request FAR *) & CharReqHdr, syscon);
-  if (CharReqHdr.r_status & S_ERROR)
-    return char_error(&CharReqHdr, syscon);
-  DosCharOutput(cb);
-  return cb;
-}
-
-int DosCharInput(VOID)
-{
-  BYTE cb;
-
-  CharReqHdr.r_length = sizeof(request);
-  CharReqHdr.r_command = C_INPUT;
-  CharReqHdr.r_count = 1;
-  CharReqHdr.r_trans = (VOID FAR *) & cb;
-  CharReqHdr.r_status = 0;
-  execrh((request FAR *) & CharReqHdr, syscon);
-  if (CharReqHdr.r_status & S_ERROR)
-    return char_error(&CharReqHdr, syscon);
-  return cb;
-}
-
-VOID DosDirectConsoleIO(iregs FAR * r)
-{
-  BYTE buf;
-
-  if (r->DL == 0xff)
-  {
-    r->FLAGS |= FLG_ZERO;
-
-    CharReqHdr.r_length = sizeof(request);
-    CharReqHdr.r_command = C_ISTAT;
-    CharReqHdr.r_status = 0;
-    execrh((request FAR *) & CharReqHdr, syscon);
-    if (CharReqHdr.r_status & S_ERROR)
-    {
-      char_error(&CharReqHdr, syscon);
-      return;
-    }
-
-    if (!(CharReqHdr.r_status & S_BUSY))
-    {
-      CharReqHdr.r_length = sizeof(request);
-      CharReqHdr.r_command = C_INPUT;
-      CharReqHdr.r_count = 1;
-      CharReqHdr.r_trans = (VOID FAR *) & buf;
-      CharReqHdr.r_status = 0;
-      execrh((request FAR *) & CharReqHdr, syscon);
-      if (CharReqHdr.r_status & S_ERROR)
-      {
-        char_error(&CharReqHdr, syscon);
-        return;
-      }
-
-      r->AL = buf;
-      r->FLAGS &= ~FLG_ZERO;
-    }
-
-  }
-  else
-  {
-    CharReqHdr.r_length = sizeof(request);
-    CharReqHdr.r_command = C_OUTPUT;
-    CharReqHdr.r_count = 1;
-    CharReqHdr.r_trans = (VOID FAR *) (&buf);
-    CharReqHdr.r_status = 0;
-    execrh((request FAR *) & CharReqHdr, syscon);
-    if (CharReqHdr.r_status & S_ERROR)
-      char_error(&CharReqHdr, syscon);
-  }
-}
-
-/* Console output with printer echo                                     */
-VOID DosCharOutput(COUNT c)
-{
-  BYTE buf = c;
-
-  /* Test for break first                                         */
-  if (con_break())
-    return;
-
-  /* Now do an output directly to the console                     */
-  CharReqHdr.r_length = sizeof(request);
-  CharReqHdr.r_command = C_OUTPUT;
-  CharReqHdr.r_count = 1;
-  CharReqHdr.r_trans = (VOID FAR *) (&buf);
-  CharReqHdr.r_status = 0;
-  execrh((request FAR *) & CharReqHdr, syscon);
-  if (CharReqHdr.r_status & S_ERROR)
-    char_error(&CharReqHdr, syscon);
-  ++scr_pos;
-
-  /* printer echo stuff                                   */
-}
-
-VOID DosDisplayOutput(COUNT c)
-{
-  /* Non-portable construct                                       */
-  if (c < ' ' || c == 0x7f)
-  {
-    switch (c)
-    {
-      case '\r':
-        scr_pos = -1;           /* Will become 0 when char is output */
-        break;
-
-      case '\b':
-        if (scr_pos > 0)
-          scr_pos -= 2;         /* Will be -=1 after    */
-        /* char is output       */
-        break;
-
-      case '\t':
-        do
-          DosCharOutput(' ');
-        while (scr_pos & 7);
-        return;
-
-      default:
-        --scr_pos;
-        break;
-    }
-    DosCharOutput(c);
-  }
-  else
-  {
-    DosCharOutput(c);
-  }
-}
 
 VOID FatGetDrvData(COUNT drive, COUNT FAR * spc, COUNT FAR * bps,
                    COUNT FAR * nc, BYTE FAR ** mdp)
 {
   struct dpb *dpbp;
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/globals.h ker2006/kernel/globals.h
--- ker2005/kernel/globals.h	Sun Mar 28 13:32:22 1999
+++ ker2006/kernel/globals.h	Sun Apr  4 17:57:48 1999
@@ -28,16 +28,28 @@
 /****************************************************************/
 
 /* $Logfile:   C:/usr/patv/dos-c/src/kernel/globals.h_v  $ */
 #ifdef VERSION_STRINGS
 #ifdef MAIN
-static BYTE *Globals_hRcsId = "$Id: globals.h,v 1.5 1999/02/08 05:55:57 jprice Exp $";
+static BYTE *Globals_hRcsId = "$Id: GLOBALS.H,v 1.4 1999/04/04 22:57:47 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: globals.h,v $
+ * $Log: GLOBALS.H,v $
+ * Revision 1.4  1999/04/04 22:57:47  jprice
+ * no message
+ *
+ * Revision 1.3  1999/04/04 18:51:43  jprice
+ * no message
+ *
+ * Revision 1.2  1999/03/29 17:05:09  jprice
+ * ror4 changes
+ *
+ * Revision 1.1.1.1  1999/03/29 15:40:58  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.5  1999/02/08 05:55:57  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.4  1999/02/01 01:48:41  jprice
  * Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
@@ -282,23 +294,12 @@
 /*                                                                      */
 GLOBAL
 seg master_env;                 /* Master environment segment           */
 
 GLOBAL BYTE
-  os_major                      /* major version number                 */
-#ifdef MAIN
-= MAJOR_RELEASE,
-#else
- ,
-#endif
-
-  os_minor                      /* minor version number                 */
-#ifdef MAIN
-= MINOR_RELEASE,
-#else
- ,
-#endif
+  os_major,                     /* major version number                 */
+  os_minor,                     /* minor version number                 */
 
   rev_number                    /* minor version number                 */
 #ifdef MAIN
 = REV_NUMBER,
 #else
@@ -339,11 +340,11 @@
 //For technical information and description of the DOS-C operating system\n\
 //consult \"FreeDOS Kernel\" by Pat Villani, published by Miller\n\
 //Freeman Publishing, Lawrence KS, USA (ISBN 0-87930-436-7).\n\
 //\n";
 //# else
-= "DOS-C version %d.%d.%d (Build %d)\n\n";
+= "FreeDOS kernel version %d.%d.%d (Build %d)\n\n";
 //# endif
 #else
  ;
 #endif
 
@@ -436,13 +437,13 @@
 extern BYTE
   default_drive;                /* default drive for dos                */
 
 extern BYTE
   TempBuffer[],                 /* Temporary general purpose buffer     */
-  FAR * internal_data,          /* sda areas                            */
-  FAR * swap_always,            /*  "    "                              */
-  FAR * swap_indos,             /*  "    "                              */
+  FAR internal_data[],          /* sda areas                            */
+  FAR swap_always[],            /*  "    "                              */
+  FAR swap_indos[],             /*  "    "                              */
   tsr,                          /* true if program is TSR               */
   break_flg,                    /* true if break was detected           */
   break_ena,                    /* break enabled flag                   */
   FAR * dta;                    /* Disk transfer area (kludge)          */
 extern seg
@@ -468,12 +469,13 @@
   verify_ena,                   /* verify enabled flag                  */
   switchar,                     /* switch char                          */
   return_mode,                  /* Process termination rets             */
   return_code;                  /*     "        "       "               */
 
+extern BYTE
+  scr_pos;                      /* screen position for bs, ht, etc      */
 extern WORD
-  scr_pos,                      /* screen position for bs, ht, etc      */
   BootDrive,                    /* Drive we came up from                */
   NumFloppies;                  /* How many floppies we have            */
 
 extern keyboard
   kb_buf;
@@ -632,7 +634,7 @@
 VOID fputbyte();
 #endif
 #endif
 
 #ifdef I86
-#define setvec(n, isr)	(*(VOID (INRPT FAR * FAR *)())(4 * (n)) = (isr))
+#define setvec(n, isr)	(void)(*(VOID (INRPT FAR * FAR *)())(4 * (n)) = (isr))
 #endif
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/init-mod.h ker2006/kernel/init-mod.h
--- ker2005/kernel/init-mod.h	Sun Mar 28 12:20:18 1999
+++ ker2006/kernel/init-mod.h	Sun Apr  4 17:58:04 1999
@@ -29,5 +29,6 @@
 #define printf		init_call_printf
 #define scopy		init_call_scopy
 #define sti		init_call_sti
 #define strcmp		init_call_strcmp
 #define strlen		init_call_strlen
+
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/initoem.c ker2006/kernel/initoem.c
--- ker2005/kernel/initoem.c	Sun Mar 28 13:33:52 1999
+++ ker2006/kernel/initoem.c	Sun Apr  4 14:25:50 1999
@@ -31,15 +31,18 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *RcsId = "$Id: initoem.c,v 1.5 1999/02/08 05:55:57 jprice Exp $";
+static BYTE *RcsId = "$Id: INITOEM.C,v 1.1.1.1 1999/03/29 15:40:58 jprice Exp $";
 #endif
 
 /*
- * $Log: initoem.c,v $
+ * $Log: INITOEM.C,v $
+ * Revision 1.1.1.1  1999/03/29 15:40:58  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.5  1999/02/08 05:55:57  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.4  1999/02/01 01:48:41  jprice
  * Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/int2f.asm ker2006/kernel/int2f.asm
--- ker2005/kernel/int2f.asm	Sun Mar 28 12:01:18 1999
+++ ker2006/kernel/int2f.asm	Sun Apr  4 14:25:50 1999
@@ -25,13 +25,16 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   D:/dos-c/src/kernel/int2f.asv  $
 ;
-; $Id: int2f.asm,v 1.4 1999/02/08 05:55:57 jprice Exp $
+; $Id: INT2F.ASM,v 1.1.1.1 1999/03/29 15:40:59 jprice Exp $
+;
+; $Log: INT2F.ASM,v $
+; Revision 1.1.1.1  1999/03/29 15:40:59  jprice
+; New version without IPL.SYS
 ;
-; $Log: int2f.asm,v $
 ; Revision 1.4  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ; Revision 1.3  1999/02/01 01:48:41  jprice
 ; Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/inthndlr.c ker2006/kernel/inthndlr.c
--- ker2005/kernel/inthndlr.c	Sun Mar 28 13:33:52 1999
+++ ker2006/kernel/inthndlr.c	Sun Apr  4 17:57:48 1999
@@ -29,15 +29,24 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-BYTE *RcsId = "$Id: inthndlr.c,v 1.9 1999/03/23 23:38:49 jprice Exp $";
+BYTE *RcsId = "$Id: INTHNDLR.C,v 1.3 1999/04/04 22:57:47 jprice Exp $";
 #endif
 
 /*
- * $Log: inthndlr.c,v $
+ * $Log: INTHNDLR.C,v $
+ * Revision 1.3  1999/04/04 22:57:47  jprice
+ * no message
+ *
+ * Revision 1.2  1999/04/04 18:51:43  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:41:04  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.9  1999/03/23 23:38:49  jprice
  * Now sets carry when we don't support a function
  *
  * Revision 1.8  1999/03/02 07:02:55  jprice
  * Added some comments.  Fixed some minor bugs.
@@ -232,10 +241,30 @@
     dump_regs = TRUE;
     dump();
   }
 #endif
 
+dispatch:
+
+  /* Check for Ctrl-Break */
+  switch (r->AH)
+  {
+    default:
+      if (!break_ena) break;
+    case 0x01:
+    case 0x02:
+    case 0x03:
+    case 0x04:
+    case 0x05:
+    case 0x08:
+    case 0x09:
+    case 0x0a:
+    case 0x0b:
+      if (con_break())
+        handle_break();
+  }
+
   /* The dispatch handler                                         */
   switch (r->AH)
   {
       /* int 21h common error handler                                 */
     case 0x64:
@@ -266,16 +295,17 @@
       return_user();
       break;
 
       /* Read Keyboard with Echo                      */
     case 0x01:
-      r->AL = DosCharInputEcho();
+      r->AL = _sti();
+      sto(r->AL);
       break;
 
       /* Display Character                                            */
     case 0x02:
-      DosDisplayOutput(r->DL);
+      sto(r->DL);
       break;
 
       /* Auxiliary Input                                                      */
     case 0x03:
       r->AL = _sti();
@@ -291,73 +321,70 @@
       sto(r->DL);
       break;
 
       /* Direct Cosole I/O                                            */
     case 0x06:
-      DosDirectConsoleIO(r);
+      if (r->DL != 0xff)
+        sto(r->DL);
+      else if (StdinBusy())
+      {
+        r->AL = 0x00;
+        r->FLAGS |= FLG_ZERO;
+      }
+      else {
+        r->FLAGS &= ~FLG_ZERO;
+        r->AL = _sti();
+      }
       break;
 
       /* Direct Console Input                                         */
     case 0x07:
-      r->AL = DosCharInput();
-      break;
-
       /* Read Keyboard Without Echo                                   */
     case 0x08:
       r->AL = _sti();
       break;
 
       /* Display String                                               */
     case 0x09:
-      DosOutputString(MK_FP(r->DS, r->DX));
+      {
+        static COUNT scratch;
+        BYTE FAR *p = MK_FP(r->DS, r->DX), FAR *q;
+        q = p;
+        while (*q != '$')
+          ++q;
+        DosWrite(STDOUT, q - p, p, (COUNT FAR *)scratch);
+      }
       r->AL = '$';
       break;
 
       /* Buffered Keyboard Input                                      */
     case 0x0a:
       ((keyboard FAR *) MK_FP(r->DS, r->DX))->kb_count = 0;
       sti((keyboard FAR *) MK_FP(r->DS, r->DX));
       ((keyboard FAR *) MK_FP(r->DS, r->DX))->kb_count -= 2;
       break;
 
-      /* Check Keyboard Status                                        */
+      /* Check Stdin Status                                           */
     case 0x0b:
-      if (KbdBusy())
+      if (StdinBusy())
         r->AL = 0x00;
       else
         r->AL = 0xff;
       break;
 
       /* Flush Buffer, Read Keayboard                                 */
     case 0x0c:
       KbdFlush();
       switch (r->AL)
       {
-          /* Read Keyboard with Echo                      */
         case 0x01:
-          r->AL = DosCharInputEcho();
-          break;
-
-          /* Direct Cosole I/O                            */
         case 0x06:
-          DosDirectConsoleIO(r);
-          break;
-
-          /* Direct Console Input                         */
         case 0x07:
-          r->AL = DosCharInput();
-          break;
-
-          /* Read Keyboard Without Echo                   */
         case 0x08:
-          r->AL = _sti();
-          break;
-
-          /* Buffered Keyboard Input                      */
         case 0x0a:
-          sti((keyboard FAR *) MK_FP(r->DS, r->DX));
-          break;
+          r->AH = r->AL;
+          goto dispatch;
 
         default:
           r->AL = 0x00;
           break;
       }
@@ -665,25 +692,11 @@
 
       /* Get DOS Version                                              */
     case 0x30:
       r->AL = os_major;
       r->AH = os_minor;
-
-//      switch(r -> AL)
-      //      {
-      //        default:
-      //        case 0:
       r->BH = OEM_ID;
-//          break;
-
-//        case 1:
-      //          r -> BH = 0;    /* RAM only for now             */
-      //          break;
-      //      }
-      //      r -> BL = 0xff;         /* for now                      */
-      //      r -> CX = 0xffff;
-
       r->CH = REVISION_MAJOR;   /* JPP */
       r->CL = REVISION_MINOR;
       r->BL = REVISION_SEQ;
       break;
 
@@ -1284,10 +1297,11 @@
           break;
 
         default:
           goto error_invalid;
       }
+      break;
 
     case 0x60:                 /* TRUENAME */
       if ((rc = truename(MK_FP(r->DS, r->SI),
                          adjust_far(MK_FP(r->ES, r->DI)))) != SUCCESS)
         goto error_exit;
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/io.asm ker2006/kernel/io.asm
--- ker2005/kernel/io.asm	Sun Mar 28 10:37:44 1999
+++ ker2006/kernel/io.asm	Sun Apr  4 14:25:54 1999
@@ -23,13 +23,16 @@
 ; You should have received a copy of the GNU General public
 ; License along with DOS-C; see the file COPYING.  If not,
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/kernel/io.asm,v 1.1 1999/02/08 05:55:57 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/KERNEL/IO.ASM,v 1.1.1.1 1999/03/29 15:41:07 jprice Exp $
+;
+; $Log: IO.ASM,v $
+; Revision 1.1.1.1  1999/03/29 15:41:07  jprice
+; New version without IPL.SYS
 ;
-; $Log: io.asm,v $
 ; Revision 1.1  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ; $EndLog$
 ;
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/io.inc ker2006/kernel/io.inc
--- ker2005/kernel/io.inc	Sun Mar 28 12:01:18 1999
+++ ker2006/kernel/io.inc	Sun Apr  4 14:25:56 1999
@@ -25,13 +25,19 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/usr/patv/dos-c/src/kernel/io.inv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/kernel/io.inc,v 1.1 1999/02/08 05:55:57 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/KERNEL/IO.INC,v 1.2 1999/03/29 17:05:09 jprice Exp $
+;
+; $Log: IO.INC,v $
+; Revision 1.2  1999/03/29 17:05:09  jprice
+; ror4 changes
+;
+; Revision 1.1.1.1  1999/03/29 15:41:08  jprice
+; New version without IPL.SYS
 ;
-; $Log: io.inc,v $
 ; Revision 1.1  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ; 
 ;    Rev 1.0   06 Dec 1998  8:13:02   patv
@@ -78,22 +84,19 @@
 _FIXED_DATA     ends
 
 _DATA           segment word public 'DATA'
 _DATA           ends
 
-CONST           segment word public 'CONST'
-CONST           ends
-
 _BSS            segment word public 'BSS'
 _BSS            ends
 
 _BSSEND         segment byte public 'BSS'
 _BSSEND         ends
 TGROUP          group   _TEXT,_IO_TEXT,_IO_FIXED_DATA
                 assume  cs:TGROUP
 
-DGROUP          group   CONST,_DATA,_BSS,_BSSEND        ; small/tiny model
+DGROUP          group   _DATA,_BSS,_BSSEND              ; small/tiny model
                 assume  ds:DGROUP, ss:DGROUP
 ENDIF
 
                 extrn   _IOExit:near
                 extrn   _IOSuccess:near
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/ioctl.c ker2006/kernel/ioctl.c
--- ker2005/kernel/ioctl.c	Sun Mar 28 13:33:52 1999
+++ ker2006/kernel/ioctl.c	Sun Apr  4 14:25:56 1999
@@ -28,15 +28,21 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *RcsId = "$Id: ioctl.c,v 1.4 1999/02/08 05:55:57 jprice Exp $";
+static BYTE *RcsId = "$Id: IOCTL.C,v 1.2 1999/04/04 18:51:43 jprice Exp $";
 #endif
 
 /*
- * $Log: ioctl.c,v $
+ * $Log: IOCTL.C,v $
+ * Revision 1.2  1999/04/04 18:51:43  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:41:09  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.4  1999/02/08 05:55:57  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.3  1999/02/01 01:48:41  jprice
  * Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
@@ -174,11 +180,11 @@
         return 0;
       }
 
       /* Set it to what we got in the DL register from the    */
       /* user.                                                */
-      r->AX = (s->sft_flags |= (SFT_FDEVICE | r->DL));
+      r->AL = s->sft_flags_lo = SFT_FDEVICE | r->DL;
       break;
 
     case 0x0c:
       nMode = C_GENIOCTL;
       goto IoCharCommon;
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/irqstack.asm ker2006/kernel/irqstack.asm
--- ker2005/kernel/irqstack.asm	Sun Mar 28 12:25:12 1999
+++ ker2006/kernel/irqstack.asm	Sun Apr  4 14:25:58 1999
@@ -24,13 +24,16 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/kernel/irqstack.asv  $
 ;
-; $Id: irqstack.asm,v 1.4 1999/02/08 05:55:57 jprice Exp $
+; $Id: IRQSTACK.ASM,v 1.1.1.1 1999/03/29 15:41:10 jprice Exp $
+;
+; $Log: IRQSTACK.ASM,v $
+; Revision 1.1.1.1  1999/03/29 15:41:10  jprice
+; New version without IPL.SYS
 ;
-; $Log: irqstack.asm,v $
 ; Revision 1.4  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ; Revision 1.3  1999/02/01 01:48:41  jprice
 ; Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/kernel.asm ker2006/kernel/kernel.asm
--- ker2005/kernel/kernel.asm	Sun Mar 28 12:18:24 1999
+++ ker2006/kernel/kernel.asm	Sun Apr  4 14:25:58 1999
@@ -23,13 +23,16 @@
 ; You should have received a copy of the GNU General public
 ; License along with DOS-C; see the file COPYING.  If not,
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
-; $Id: kernel.asm,v 1.4 1999/02/08 05:55:57 jprice Exp $
+; $Id: KERNEL.ASM,v 1.1.1.1 1999/03/29 15:41:14 jprice Exp $
+;
+; $Log: KERNEL.ASM,v $
+; Revision 1.1.1.1  1999/03/29 15:41:14  jprice
+; New version without IPL.SYS
 ;
-; $Log: kernel.asm,v $
 ; Revision 1.4  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ; Revision 1.3  1999/02/01 01:48:41  jprice
 ; Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
Files ker2005/kernel/kernel.cfg and ker2006/kernel/kernel.cfg are identical
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/kernel.mak ker2006/kernel/kernel.mak
--- ker2005/kernel/kernel.mak	Sun Mar 28 14:23:56 1999
+++ ker2006/kernel/kernel.mak	Sun Apr  4 14:26:00 1999
@@ -1,11 +1,14 @@
 #
 # Makefile for Borland C++ 3.1 for kernel.exe
 #
-# $Id: kernel.mak,v 1.7 1999/03/01 06:04:37 jprice Exp $
+# $Id: KERNEL.MAK,v 1.1.1.1 1999/03/29 15:41:15 jprice Exp $
+#
+# $Log: KERNEL.MAK,v $
+# Revision 1.1.1.1  1999/03/29 15:41:15  jprice
+# New version without IPL.SYS
 #
-# $Log: kernel.mak,v $
 # Revision 1.7  1999/03/01 06:04:37  jprice
 # Fixed so it'll work with config.mak
 #
 # Revision 1.6  1999/03/01 05:46:43  jprice
 # Turned off DEBUG define.
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/krnstart ker2006/kernel/krnstart
--- ker2005/kernel/krnstart	Sun Mar 28 11:23:16 1999
+++ ker2006/kernel/krnstart	Wed Dec 31 18:00:00 1969
@@ -1 +0,0 @@
-60 
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/main.c ker2006/kernel/main.c
--- ker2005/kernel/main.c	Sun Mar 28 13:33:54 1999
+++ ker2006/kernel/main.c	Sun Apr  4 17:57:48 1999
@@ -32,15 +32,24 @@
 #define MAIN
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *mainRcsId = "$Id: main.c,v 1.5 1999/02/08 05:55:57 jprice Exp $";
+static BYTE *mainRcsId = "$Id: MAIN.C,v 1.3 1999/04/04 22:57:47 jprice Exp $";
 #endif
 
 /*
- * $Log: main.c,v $
+ * $Log: MAIN.C,v $
+ * Revision 1.3  1999/04/04 22:57:47  jprice
+ * no message
+ *
+ * Revision 1.2  1999/04/04 18:51:43  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:41:18  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.5  1999/02/08 05:55:57  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.4  1999/02/01 01:48:41  jprice
  * Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
@@ -91,11 +100,11 @@
  *
  *    Rev 1.0   02 Jul 1995  8:33:18   patv
  * Initial revision.
  */
 
-static COUNT BlockIndex = 0;
+//JP: static COUNT BlockIndex = 0;
 
 INIT VOID configDone(VOID);
 INIT static void InitIO(void);
 
 INIT static VOID init_kernel(VOID);
@@ -131,10 +140,13 @@
 
 INIT static VOID init_kernel(void)
 {
   COUNT i;
 
+  os_major = MAJOR_RELEASE;
+  os_minor = MINOR_RELEASE;
+
   cu_psp = DOS_PSP;
   nblkdev = 0;
   maxbksize = 0x200;
   switchar = '/';
 
@@ -230,11 +242,11 @@
   /* 0 is /dev/con (stdin) */
   sfthead->sftt_table[0].sft_count = 1;
   sfthead->sftt_table[0].sft_mode = SFT_MREAD;
   sfthead->sftt_table[0].sft_attrib = 0;
   sfthead->sftt_table[0].sft_flags =
-      (con_dev.dh_attr & ~SFT_MASK) | SFT_FDEVICE | SFT_FEOF | SFT_FSTDIN | SFT_FSTDOUT;
+      (con_dev.dh_attr & ~SFT_MASK) | SFT_FDEVICE | SFT_FEOF | SFT_FCONIN | SFT_FCONOUT;
   sfthead->sftt_table[0].sft_psp = DOS_PSP;
   sfthead->sftt_table[0].sft_date = Date;
   sfthead->sftt_table[0].sft_time = Time;
   fbcopy(
           (VOID FAR *) "CON        ",
@@ -244,11 +256,11 @@
   /* 1 is /dev/con (stdout)     */
   sfthead->sftt_table[1].sft_count = 1;
   sfthead->sftt_table[1].sft_mode = SFT_MWRITE;
   sfthead->sftt_table[1].sft_attrib = 0;
   sfthead->sftt_table[1].sft_flags =
-      (con_dev.dh_attr & ~SFT_MASK) | SFT_FDEVICE | SFT_FEOF | SFT_FSTDIN | SFT_FSTDOUT;
+      (con_dev.dh_attr & ~SFT_MASK) | SFT_FDEVICE | SFT_FEOF | SFT_FCONIN | SFT_FCONOUT;
   sfthead->sftt_table[1].sft_psp = DOS_PSP;
   sfthead->sftt_table[1].sft_date = Date;
   sfthead->sftt_table[1].sft_time = Time;
   fbcopy(
           (VOID FAR *) "CON        ",
@@ -258,11 +270,11 @@
   /* 2 is /dev/con (stderr)     */
   sfthead->sftt_table[2].sft_count = 1;
   sfthead->sftt_table[2].sft_mode = SFT_MWRITE;
   sfthead->sftt_table[2].sft_attrib = 0;
   sfthead->sftt_table[2].sft_flags =
-      (con_dev.dh_attr & ~SFT_MASK) | SFT_FDEVICE | SFT_FEOF | SFT_FSTDIN | SFT_FSTDOUT;
+      (con_dev.dh_attr & ~SFT_MASK) | SFT_FDEVICE | SFT_FEOF | SFT_FCONIN | SFT_FCONOUT;
   sfthead->sftt_table[2].sft_psp = DOS_PSP;
   sfthead->sftt_table[2].sft_date = Date;
   sfthead->sftt_table[2].sft_time = Time;
   fbcopy(
           (VOID FAR *) "CON        ",
@@ -323,11 +335,11 @@
   seg asize;
   BYTE FAR *ep,
    *sp;
   COUNT ret_code;
 #ifndef KDB
-  static BYTE *path = "PATH=";
+  static BYTE *path = "PATH=.";
 #endif
 
 #ifdef KDB
   kdb();
 #else
@@ -380,11 +392,12 @@
   /* check for a block device and update  device control block    */
   if (!(dhp->dh_attr & ATTR_CHAR) && (rq.r_nunits != 0))
   {
     REG COUNT Index;
 
-    for (Index = 0; Index < rq.r_nunits; Index++, BlockIndex++)
+//JP:    for (Index = 0; Index < rq.r_nunits; Index++, BlockIndex++)
+    for (Index = 0; Index < rq.r_nunits; Index++)
     {
       if (nblkdev)
         blk_devices[nblkdev - 1].dpb_next = &blk_devices[nblkdev];
 
       blk_devices[nblkdev].dpb_unit = nblkdev;
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/memmgr.c ker2006/kernel/memmgr.c
--- ker2005/kernel/memmgr.c	Sun Mar 28 13:33:54 1999
+++ ker2006/kernel/memmgr.c	Sun Apr  4 14:26:02 1999
@@ -29,15 +29,18 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRING
-static BYTE *memmgrRcsId = "$Id: memmgr.c,v 1.4 1999/02/08 05:55:57 jprice Exp $";
+static BYTE *memmgrRcsId = "$Id: MEMMGR.C,v 1.1.1.1 1999/03/29 15:41:20 jprice Exp $";
 #endif
 
 /*
- * $Log: memmgr.c,v $
+ * $Log: MEMMGR.C,v $
+ * Revision 1.1.1.1  1999/03/29 15:41:20  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.4  1999/02/08 05:55:57  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.3  1999/02/01 01:48:41  jprice
  * Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/misc.c ker2006/kernel/misc.c
--- ker2005/kernel/misc.c	Sun Mar 28 13:34:02 1999
+++ ker2006/kernel/misc.c	Sun Apr  4 14:26:04 1999
@@ -27,15 +27,18 @@
 /****************************************************************/
 
 #include "portab.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *miscRcsId = "$Id: misc.c,v 1.3 1999/02/01 01:43:28 jprice Exp $";
+static BYTE *miscRcsId = "$Id: MISC.C,v 1.1.1.1 1999/03/29 15:42:19 jprice Exp $";
 #endif
 
 /*
- * $Log: misc.c,v $
+ * $Log: MISC.C,v $
+ * Revision 1.1.1.1  1999/03/29 15:42:19  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:43:28  jprice
  * Fixed findfirst function to find volume label with Windows long filenames
  *
  * Revision 1.2  1999/01/22 04:15:28  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/newstuff.c ker2006/kernel/newstuff.c
--- ker2005/kernel/newstuff.c	Sun Mar 28 13:33:54 1999
+++ ker2006/kernel/newstuff.c	Sun Apr  4 14:26:04 1999
@@ -24,15 +24,21 @@
 /* write to the Free Software Foundation, 675 Mass Ave,         */
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef VERSION_STRINGS
-static BYTE *mainRcsId = "$Id: newstuff.c,v 1.4 1999/02/08 05:55:57 jprice Exp $";
+static BYTE *mainRcsId = "$Id: NEWSTUFF.C,v 1.2 1999/04/04 18:51:43 jprice Exp $";
 #endif
 
 /*
- * $Log: newstuff.c,v $
+ * $Log: NEWSTUFF.C,v $
+ * Revision 1.2  1999/04/04 18:51:43  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:41:22  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.4  1999/02/08 05:55:57  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.3  1999/02/01 01:48:41  jprice
  * Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
@@ -73,12 +79,13 @@
   {
     ppsp->ps_maxfiles = nHandles;
     return SUCCESS;
   }
 
-  if (nHandles > SFTMAX)
-    return DE_TOOMANY;
+  /* Multiple JFT entries may point to the same SFT entry. -- ror4 */
+  //if (nHandles > SFTMAX)
+  //  return DE_TOOMANY;
 
   if ((DosMemAlloc((nHandles + 0xf) >> 4, mem_access_mode, &block, &maxBlock)) < 0)
     return DE_NOMEM;
 
   ++block;
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/nls.c ker2006/kernel/nls.c
--- ker2005/kernel/nls.c	Sun Mar 28 13:33:56 1999
+++ ker2006/kernel/nls.c	Sun Apr  4 14:26:04 1999
@@ -33,15 +33,18 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *RcsId = "$Id: nls.c,v 1.6 1999/02/08 05:55:57 jprice Exp $";
+static BYTE *RcsId = "$Id: NLS.C,v 1.1.1.1 1999/03/29 15:41:24 jprice Exp $";
 #endif
 
 /*
- * $Log: nls.c,v $
+ * $Log: NLS.C,v $
+ * Revision 1.1.1.1  1999/03/29 15:41:24  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.6  1999/02/08 05:55:57  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.5  1999/02/04 03:12:08  jprice
  * Removed extra text.  Made .exe smaller.
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/nlssupt.asm ker2006/kernel/nlssupt.asm
--- ker2005/kernel/nlssupt.asm	Sun Mar 28 12:01:18 1999
+++ ker2006/kernel/nlssupt.asm	Sun Apr  4 14:26:06 1999
@@ -24,13 +24,16 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/dos-c/src/kernel/nlssupt.asv  $
 ;
-; $Id: nlssupt.asm,v 1.4 1999/02/08 05:55:57 jprice Exp $
+; $Id: NLSSUPT.ASM,v 1.1.1.1 1999/03/29 15:41:25 jprice Exp $
+;
+; $Log: NLSSUPT.ASM,v $
+; Revision 1.1.1.1  1999/03/29 15:41:25  jprice
+; New version without IPL.SYS
 ;
-; $Log: nlssupt.asm,v $
 ; Revision 1.4  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ; Revision 1.3  1999/02/01 01:48:41  jprice
 ; Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/prf.c ker2006/kernel/prf.c
--- ker2005/kernel/prf.c	Sun Mar 28 13:34:02 1999
+++ ker2006/kernel/prf.c	Sun Apr  4 14:26:06 1999
@@ -27,15 +27,21 @@
 /****************************************************************/
 
 #include "portab.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *prfRcsId = "$Id: prf.c,v 1.3 1999/02/01 01:43:28 jprice Exp $";
+static BYTE *prfRcsId = "$Id: PRF.C,v 1.2 1999/04/04 18:51:43 jprice Exp $";
 #endif
 
 /*
- * $Log: prf.c,v $
+ * $Log: PRF.C,v $
+ * Revision 1.2  1999/04/04 18:51:43  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:42:20  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:43:28  jprice
  * Fixed findfirst function to find volume label with Windows long filenames
  *
  * Revision 1.2  1999/01/22 04:15:28  jprice
  * Formating
@@ -76,22 +82,22 @@
 COUNT do_printf();
 #endif
 
 /* The following is user supplied and must match the following prototype */
 #ifdef PROTO
-VOID sto(COUNT);
+VOID cso(COUNT);
 #else
-VOID sto();
+VOID cso();
 #endif
 
 /* special console output routine */
 VOID
 put_console(COUNT c)
 {
   if (c == '\n')
-    sto('\r');
-  sto(c);
+    cso('\r');
+  cso(c);
 }
 
 /* special handler to switch between sprintf and printf */
 static VOID
   handle_char(COUNT c)
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/printer.asm ker2006/kernel/printer.asm
--- ker2005/kernel/printer.asm	Sun Mar 28 10:37:44 1999
+++ ker2006/kernel/printer.asm	Sun Apr  4 14:26:06 1999
@@ -23,13 +23,16 @@
 ; You should have received a copy of the GNU General public
 ; License along with DOS-C; see the file COPYING.  If not,
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/kernel/printer.asm,v 1.1 1999/02/08 05:55:57 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/KERNEL/PRINTER.ASM,v 1.1.1.1 1999/03/29 15:41:26 jprice Exp $
+;
+; $Log: PRINTER.ASM,v $
+; Revision 1.1.1.1  1999/03/29 15:41:26  jprice
+; New version without IPL.SYS
 ;
-; $Log: printer.asm,v $
 ; Revision 1.1  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ; $EndLog$
 ;
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/procsupt.asm ker2006/kernel/procsupt.asm
--- ker2005/kernel/procsupt.asm	Sun Mar 28 12:01:18 1999
+++ ker2006/kernel/procsupt.asm	Sun Apr  4 14:26:08 1999
@@ -25,13 +25,16 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/usr/patv/dos-c/src/kernel/procsupt.asv  $
 ;
-; $Id: procsupt.asm,v 1.4 1999/02/08 05:55:57 jprice Exp $
+; $Id: PROCSUPT.ASM,v 1.1.1.1 1999/03/29 15:41:27 jprice Exp $
+;
+; $Log: PROCSUPT.ASM,v $
+; Revision 1.1.1.1  1999/03/29 15:41:27  jprice
+; New version without IPL.SYS
 ;
-; $Log: procsupt.asm,v $
 ; Revision 1.4  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ; Revision 1.3  1999/02/01 01:48:41  jprice
 ; Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/proto.h ker2006/kernel/proto.h
--- ker2005/kernel/proto.h	Sun Mar 28 12:01:18 1999
+++ ker2006/kernel/proto.h	Sun Apr  4 17:58:04 1999
@@ -26,16 +26,22 @@
 /* Cambridge, MA 02139, USA.                                    */
 /****************************************************************/
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *Proto_hRcsId = "$Id: proto.h,v 1.4 1999/02/08 05:55:57 jprice Exp $";
+static BYTE *Proto_hRcsId = "$Id: PROTO.H,v 1.2 1999/04/04 18:51:43 jprice Exp $";
 #endif
 #endif
 
 /*
- * $Log: proto.h,v $
+ * $Log: PROTO.H,v $
+ * Revision 1.2  1999/04/04 18:51:43  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:41:30  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.4  1999/02/08 05:55:57  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.3  1999/02/01 01:48:41  jprice
  * Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
@@ -105,19 +111,19 @@
 BOOL flush(void);
 BOOL fill(REG struct buffer FAR * bp, LONG blkno, COUNT dsk);
 BOOL dskxfer(COUNT dsk, LONG blkno, VOID FAR * buf, COUNT mode);
 
 /* chario.c */
-BYTE *CharName(struct dhdr far * lpDhdr);
 VOID INRPT FAR handle_break(void);
+VOID cso(COUNT c);
 VOID sto(COUNT c);
 VOID mod_sto(REG UCOUNT c);
 VOID destr_bs(void);
 UCOUNT _sti(void);
 VOID con_hold(void);
 BOOL con_break(void);
-BOOL KbdBusy(void);
+BOOL StdinBusy(void);
 VOID KbdFlush(void);
 __FAR_WRAPPER(VOID, sti, (keyboard FAR * kp))
 
 sft FAR *get_sft(COUNT);
 
@@ -134,10 +140,12 @@
 INIT VOID mcb_init(mcb FAR * mcbp, UWORD size);
 INIT VOID strcat(REG BYTE * d, REG BYTE * s);
 
 /* dosfns.c */
 BOOL check_break(void);
+UCOUNT GenericRead(COUNT hndl, UCOUNT n, BYTE FAR * bp, COUNT FAR * err,
+  BOOL force_binary);
 UCOUNT DosRead(COUNT hndl, UCOUNT n, BYTE FAR * bp, COUNT FAR * err);
 UCOUNT DosWrite(COUNT hndl, UCOUNT n, BYTE FAR * bp, COUNT FAR * err);
 COUNT DosSeek(COUNT hndl, LONG new_pos, COUNT mode, ULONG * set_pos);
 COUNT DosCreat(BYTE FAR * fname, COUNT attrib);
 COUNT CloneHandle(COUNT hndl);
@@ -155,11 +163,11 @@
 COUNT DosGetFattr(BYTE FAR * name, UWORD FAR * attrp);
 COUNT DosSetFattr(BYTE FAR * name, UWORD FAR * attrp);
 
 /* dosnames.c */
 VOID SpacePad(BYTE *, COUNT);
-COUNT ParseDosName(BYTE FAR *, COUNT *, BYTE *, BYTE *, BYTE *);
+COUNT ParseDosName(BYTE FAR *, COUNT *, BYTE *, BYTE *, BYTE *, BOOL);
 COUNT ParseDosPath(BYTE FAR *, COUNT *, BYTE *, BYTE *);
 BOOL IsDevice(BYTE * FileName);
 
 /* dsk.c */
 COUNT blk_driver(rqptr rp);
@@ -341,10 +349,11 @@
 __FAR_WRAPPER(COUNT, strcmp, (REG BYTE * d, REG BYTE * s))
 COUNT fstrcmp(REG BYTE FAR * d, REG BYTE FAR * s);
 COUNT fstrncmp(REG BYTE FAR * d, REG BYTE FAR * s, COUNT l);
 COUNT strncmp(REG BYTE * d, REG BYTE * s, COUNT l);
 VOID fstrncpy(REG BYTE FAR * d, REG BYTE FAR * s, COUNT l);
+BYTE * strchr(BYTE * s, BYTE c);
 
 /* sysclk.c */
 WORD clk_driver(rqptr rp);
 COUNT BcdToByte(COUNT x);
 COUNT BcdToWord(BYTE * x, UWORD * mon, UWORD * day, UWORD * yr);
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/segs.inc ker2006/kernel/segs.inc
--- ker2005/kernel/segs.inc	Sun Mar 28 12:25:50 1999
+++ ker2006/kernel/segs.inc	Sun Apr  4 14:26:10 1999
@@ -24,13 +24,16 @@
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
 ; $Logfile:   C:/usr/patv/dos-c/src/kernel/segs.inv  $
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/kernel/segs.inc,v 1.1 1999/02/08 05:55:57 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/KERNEL/SEGS.INC,v 1.1.1.1 1999/03/29 15:41:30 jprice Exp $
+;
+; $Log: SEGS.INC,v $
+; Revision 1.1.1.1  1999/03/29 15:41:30  jprice
+; New version without IPL.SYS
 ;
-; $Log: segs.inc,v $
 ; Revision 1.1  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ;
 ;    Rev 1.0   06 Dec 1998  8:12:36   patv
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/serial.asm ker2006/kernel/serial.asm
--- ker2005/kernel/serial.asm	Sun Mar 28 10:37:44 1999
+++ ker2006/kernel/serial.asm	Sun Apr  4 14:26:10 1999
@@ -23,13 +23,16 @@
 ; You should have received a copy of the GNU General public
 ; License along with DOS-C; see the file COPYING.  If not,
 ; write to the Free Software Foundation, 675 Mass Ave,
 ; Cambridge, MA 02139, USA.
 ;
-; $Header: /home/cvsroot/kernel/kernel/src/kernel/serial.asm,v 1.1 1999/02/08 05:55:57 jprice Exp $
+; $Header: /home/cvsroot/fdkernel/KERNEL/SERIAL.ASM,v 1.1.1.1 1999/03/29 15:41:31 jprice Exp $
+;
+; $Log: SERIAL.ASM,v $
+; Revision 1.1.1.1  1999/03/29 15:41:31  jprice
+; New version without IPL.SYS
 ;
-; $Log: serial.asm,v $
 ; Revision 1.1  1999/02/08 05:55:57  jprice
 ; Added Pat's 1937 kernel patches
 ;
 ; $EndLog$
 ;
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/strings.c ker2006/kernel/strings.c
--- ker2005/kernel/strings.c	Sun Mar 28 13:33:56 1999
+++ ker2006/kernel/strings.c	Sun Apr  4 17:58:04 1999
@@ -27,15 +27,21 @@
 /****************************************************************/
 
 #include "portab.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *stringsRcsId = "$Id: strings.c,v 1.4 1999/02/04 03:14:07 jprice Exp $";
+static BYTE *stringsRcsId = "$Id: STRINGS.C,v 1.2 1999/04/04 18:51:43 jprice Exp $";
 #endif
 
 /*
- * $Log: strings.c,v $
+ * $Log: STRINGS.C,v $
+ * Revision 1.2  1999/04/04 18:51:43  jprice
+ * no message
+ *
+ * Revision 1.1.1.1  1999/03/29 15:41:32  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.4  1999/02/04 03:14:07  jprice
  * Formating.  Added comments.
  *
  * Revision 1.3  1999/02/01 01:48:41  jprice
  * Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines)
@@ -177,6 +183,17 @@
 {
   COUNT idx = 1;
   while (*s != 0 && idx++ <= l)
     *d++ = *s++;
   *d = 0;
+}
+
+BYTE *strchr(BYTE * s, BYTE c)
+{
+  REG BYTE *p;
+  p = s - 1;
+  do {
+    if (*++p == c)
+      return p;
+  } while (*p);
+  return 0;
 }
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/sysclk.c ker2006/kernel/sysclk.c
--- ker2005/kernel/sysclk.c	Sun Mar 28 13:33:56 1999
+++ ker2006/kernel/sysclk.c	Sun Apr  4 14:26:10 1999
@@ -28,15 +28,18 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *RcsId = "$Id: sysclk.c,v 1.5 1999/02/08 05:55:58 jprice Exp $";
+static BYTE *RcsId = "$Id: SYSCLK.C,v 1.1.1.1 1999/03/29 15:41:33 jprice Exp $";
 #endif
 
 /*
- * $Log: sysclk.c,v $
+ * $Log: SYSCLK.C,v $
+ * Revision 1.1.1.1  1999/03/29 15:41:33  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.5  1999/02/08 05:55:58  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.4  1999/02/04 03:14:07  jprice
  * Formating.  Added comments.
Files ker2005/kernel/syscon.c and ker2006/kernel/syscon.c are identical
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/syspack.c ker2006/kernel/syspack.c
--- ker2005/kernel/syspack.c	Sun Mar 28 13:34:02 1999
+++ ker2006/kernel/syspack.c	Sun Apr  4 14:26:12 1999
@@ -29,15 +29,18 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *syspackRcsId = "$Id: syspack.c,v 1.3 1999/02/01 01:43:28 jprice Exp $";
+static BYTE *syspackRcsId = "$Id: SYSPACK.C,v 1.1.1.1 1999/03/29 15:42:21 jprice Exp $";
 #endif
 
 /*
- * $Log: syspack.c,v $
+ * $Log: SYSPACK.C,v $
+ * Revision 1.1.1.1  1999/03/29 15:42:21  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.3  1999/02/01 01:43:28  jprice
  * Fixed findfirst function to find volume label with Windows long filenames
  *
  * Revision 1.2  1999/01/22 04:15:28  jprice
  * Formating
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/systime.c ker2006/kernel/systime.c
--- ker2005/kernel/systime.c	Sun Mar 28 13:33:58 1999
+++ ker2006/kernel/systime.c	Sun Apr  4 14:26:12 1999
@@ -30,15 +30,18 @@
 #include "time.h"
 #include "date.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *RcsId = "$Id: systime.c,v 1.5 1999/02/08 05:55:58 jprice Exp $";
+static BYTE *RcsId = "$Id: SYSTIME.C,v 1.1.1.1 1999/03/29 15:41:34 jprice Exp $";
 #endif
 
 /*
- * $Log: systime.c,v $
+ * $Log: SYSTIME.C,v $
+ * Revision 1.1.1.1  1999/03/29 15:41:34  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.5  1999/02/08 05:55:58  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.4  1999/02/04 03:14:07  jprice
  * Formating.  Added comments.
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/kernel/task.c ker2006/kernel/task.c
--- ker2005/kernel/task.c	Sun Mar 28 13:33:58 1999
+++ ker2006/kernel/task.c	Sun Apr  4 14:26:12 1999
@@ -28,15 +28,21 @@
 
 #include "portab.h"
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *RcsId = "$Id: task.c,v 1.5 1999/02/08 05:55:58 jprice Exp $";
+static BYTE *RcsId = "$Id: TASK.C,v 1.2 1999/03/29 17:05:09 jprice Exp $";
 #endif
 
 /*
- * $Log: task.c,v $
+ * $Log: TASK.C,v $
+ * Revision 1.2  1999/03/29 17:05:09  jprice
+ * ror4 changes
+ *
+ * Revision 1.1.1.1  1999/03/29 15:41:41  jprice
+ * New version without IPL.SYS
+ *
  * Revision 1.5  1999/02/08 05:55:58  jprice
  * Added Pat's 1937 kernel patches
  *
  * Revision 1.4  1999/02/04 03:14:07  jprice
  * Formating.  Added comments.
@@ -393,17 +399,17 @@
     ++np1;
   }
 set_name:
   for (asize = 0; asize < 8; asize++)
   {
-    if (np[asize] != '.')
+    if (np[asize] != '.' && np[asize] != '\0')
       mp->m_name[asize] = toupper(np[asize]);
     else
       break;
   }
-  for (; asize < 8; asize++)
-    mp->m_name[asize] = ' ';
+  if (asize < 8)
+    mp->m_name[asize] = '\0';
 
   /* build the user area on the stack                     */
   *((UWORD FAR *) MK_FP(mem, 0xfffe)) = (UWORD) 0;
   irp = MK_FP(mem, (0xfffe - sizeof(iregs)));
 
@@ -768,17 +774,17 @@
     ++np1;
   }
 set_name:
   for (i = 0; i < 8; i++)
   {
-    if (np[i] != '.')
+    if (np[i] != '.' && np[i] != '\0')
       mp->m_name[i] = toupper(np[i]);
     else
       break;
   }
-  for (; i < 8; i++)
-    mp->m_name[i] = ' ';
+  if (i < 8)
+    mp->m_name[i] = '\0';
 
   /* build the user area on the stack                     */
   irp = MK_FP(header.exInitSS + start_seg,
               ((header.exInitSP - sizeof(iregs)) & 0xffff));
 
Files ker2005/lib/libm.mak and ker2006/lib/libm.mak are identical
Files ker2005/makedist.bat and ker2006/makedist.bat are identical
Files ker2005/mkboot.txt and ker2006/mkboot.txt are identical
Files ker2005/readme.txt and ker2006/readme.txt are identical
Files ker2005/relnotes.txt and ker2006/relnotes.txt are identical
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/sys/bin2c.c ker2006/sys/bin2c.c
--- ker2005/sys/bin2c.c	Wed Dec 31 18:00:00 1969
+++ ker2006/sys/bin2c.c	Thu Apr  1 01:25:00 1999
@@ -0,0 +1,51 @@
+#include <stdio.h>
+
+int main(int argc, char **argv)
+{
+	FILE *in, *out;
+	int col;
+	int c;
+
+	if (argc < 4)
+	{
+		fprintf(stderr,"Usage: bin2c <output bin file> <output h file> <array name>\n");
+		return 1;
+	}
+
+	if ((in = fopen(argv[1], "rb")) == NULL)
+	{
+		fprintf(stderr, "Cannot open input file (%s).\n",argv[1]);
+		return 1;
+	}
+
+	if ((out = fopen(argv[2], "wt")) == NULL)
+	{
+		fprintf(stderr, "Cannot open output file (%s).\n",argv[2]);
+		return 1;
+	}
+
+	col = 0;
+
+  fprintf(out,"unsigned char %s[] = {\n  ",argv[3]);
+
+	while ((c = fgetc(in)) != EOF)
+	{
+		if (col)
+		{
+			fprintf(out,", ");
+    }
+		if (col >= 8)
+		{
+			fprintf(out,"\n  ");
+			col=0;
+		}
+		fprintf(out,"0x%02X",c);
+		col++;
+	}
+
+	fprintf(out,"\n};\n");
+	fclose(in);
+	fclose(out);
+
+	return 0;
+}
Binary files ker2005/sys/bin2c.exe and ker2006/sys/bin2c.exe differ
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/sys/bin2c.mak ker2006/sys/bin2c.mak
--- ker2005/sys/bin2c.mak	Wed Dec 31 18:00:00 1969
+++ ker2006/sys/bin2c.mak	Thu Apr  1 01:25:00 1999
@@ -0,0 +1,48 @@
+!include "..\config.mak"
+
+.AUTODEPEND
+
+#               *Implicit Rules*
+.c.obj:
+  $(CC) +BIN2C.CFG -c {$< }
+
+.cpp.obj:
+  $(CC) +BIN2C.CFG -c {$< }
+
+#		*List Macros*
+
+EXE_dependencies =  \
+ bin2c.obj
+
+#		*Explicit Rules*
+production:     bin2c.exe
+
+bin2c.exe:      bin2c.cfg $(EXE_dependencies)
+                $(LINK) /k/x/c/L$(LIBPATH) @&&|
+c0t.obj+
+bin2c.obj
+bin2c
+		# no map file
+$(LIBS)+
+cs.lib
+|
+
+
+clobber:	clean
+                ..\utils\rm -f bin2c.com bin2c.exe bin2c.cfg
+
+clean:
+        ..\utils\rm -f *.obj *.bak *.crf *.xrf *.map *.lst *.las status.me
+
+#		*Individual File Dependencies*
+bin2c.obj: bin2c.cfg bin2c.c
+
+#		*Compiler Configuration File*
+bin2c.cfg: bin2c.mak
+  copy &&|
+-v
+-vi-
+-k-
+-I$(INCLUDEPATH)
+-L$(LIBPATH)
+| bin2c.cfg
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/sys/sys.c ker2006/sys/sys.c
--- ker2005/sys/sys.c	Sun Mar 28 13:54:56 1999
+++ ker2006/sys/sys.c	Thu Apr  1 01:24:06 1999
@@ -24,11 +24,20 @@
  DOS-C; see the file COPYING.  If not, write to the Free Software Foundation,
  675 Mass Ave, Cambridge, MA 02139, USA.
 
 ***************************************************************/
 
-/* $Log: sys.c,v $ Revision 1.3  1999/01/21 04:35:21  jprice Fixed comments.
+/* $Log: SYS.C,v $
+/* Revision 1.3  1999/04/01 07:24:05  jprice
+/* SYS modified for new boot loader
+/*
+/* Revision 1.2  1999/03/29 16:24:48  jprice
+/* Fixed error message
+/*
+/* Revision 1.1.1.1  1999/03/29 15:43:15  jprice
+/* New version without IPL.SYS
+/* Revision 1.3  1999/01/21 04:35:21  jprice Fixed comments.
    Added indent program
 
 Revision 1.2  1999/01/21 04:13:52  jprice Added messages to sys.  Also made
    it create a .COM file.
 
@@ -43,10 +52,13 @@
 #include <ctype.h>
 #include <mem.h>
 #include "portab.h"
 #include "device.h"
 
+#include "b_fat12.h"
+#include "b_fat16.h"
+
 BYTE *pgm = "sys";
 
 BOOL fl_reset(VOID);
 COUNT fl_rd_status(WORD);
 COUNT fl_read(WORD, WORD, WORD, WORD, WORD, BYTE FAR *);
@@ -102,12 +114,11 @@
 union
 {
   BYTE bytes[2 * SEC_SIZE];
   boot boot_sector;
 }
-
-  buffer;
+buffer;
 
 static struct media_info miarray[NDEV] =
 {
   {720l, 2, 40, 9, 0l},
   {720l, 2, 40, 9, 0l},
@@ -129,11 +140,10 @@
   BYTE peEndSector;
   UWORD peEndCylinder;
   LONG peStartSector;
   LONG peSectors;
 }
-
   partition[N_PART];
 
 static int DrvMap[4] =
 {0, 1, 0x80, 0x81};
 
@@ -150,12 +160,11 @@
 #define EXTENDED        0x05
 #define FAT16LARGE      0x06
 
 #define N_RETRY         5
 
-COUNT
-get_part(COUNT drive, COUNT idx)
+COUNT get_part(COUNT drive, COUNT idx)
 {
   REG retry = N_RETRY;
   REG BYTE *p = (BYTE *) & buffer.bytes[PARTOFF + (idx * SIZEOF_PARTENT)];
   REG ret;
   BYTE packed_byte, pb1;
@@ -191,16 +200,15 @@
   p += sizeof(LONG);
   getlong((VOID *) p, &partition[idx].peSectors);
   return TRUE;
 }
 
-VOID
-main(COUNT argc, char **argv)
+VOID main(COUNT argc, char **argv)
 {
   if (argc != 2)
   {
-    fprintf(stderr, "Useage: %s drive\n drive = A,B,etc.\n", pgm);
+    fprintf(stderr, "Usage: %s drive\n drive = A,B,etc.\n", pgm);
     exit(1);
   }
 
   drive = *argv[1] - (islower(*argv[1]) ? 'a' : 'A');
   if (drive < 0 || drive >= NDEV)
@@ -222,42 +230,36 @@
   {
     fprintf(stderr, "%s: Not enough space to transfer system files\n", pgm);
     exit(1);
   }
 
-  printf("Copying boot.bin to boot sector...");
+	printf("Writing boot sector...");
   put_boot(drive);
 
   printf("\nCopying KERNEL.SYS...");
   if (!copy(drive, "kernel.sys"))
   {
-    fprintf(stderr, "\n%s: cannot copy \"KERNEL.EXE\"\n", pgm);
-    exit(1);
-  }
-  printf("\nCopying BOOT.BIN...");
-  if (!copy(drive, "boot.bin"))
-  {
-    fprintf(stderr, "\n%s: cannot copy \"BOOT.BIN\"\n", pgm);
+    fprintf(stderr, "\n%s: cannot copy \"KERNEL.SYS\"\n", pgm);
     exit(1);
   }
+
   printf("\nCopying COMMAND.COM...");
   if (!copy(drive, "command.com"))
   {
     fprintf(stderr, "\n%s: cannot copy \"COMMAND.COM\"\n", pgm);
     exit(1);
   }
   printf("\nSystem transfered.\n");
   exit(0);
 }
 
-VOID
-put_boot(COUNT drive)
+VOID put_boot(COUNT drive)
 {
   COUNT i;
-  COUNT ifd;
   WORD head, track, sector, ret;
   WORD count;
+	ULONG temp;
 
   if (drive >= 2)
   {
     head = partition[active].peBeginHead;
     sector = partition[active].peBeginSector;
@@ -268,41 +270,61 @@
     head = 0;
     sector = 1;
     track = 0;
   }
 
-  if ((ifd = open("boot.bin", O_RDONLY | O_BINARY)) < 0)
+	/* Read current boot sector */
+	if ((i = DiskRead(DrvMap[drive], head, track, sector, 1, (BYTE far *) oldboot)) != 0)
   {
-    fprintf(stderr, "%s: can't open\"boot.bin\"\n", pgm);
+		fprintf(stderr, "%s: disk read error (code = 0x%02x)\n", pgm, i & 0xff);
     exit(1);
   }
 
-  if (read(ifd, newboot, SEC_SIZE) < SEC_SIZE)
+	if ((oldboot[0x3A] == '6') && (oldboot[0x26] == 0x29))
   {
-    fprintf(stderr, "%s: error read \"boot.bin\"", pgm);
-    exit(1);
+		memcpy(newboot,b_fat16,SEC_SIZE);
+		printf(" [FAT16]");
   }
-
-  close(ifd);
-
-  if ((i = DiskRead(DrvMap[drive], head, track, sector, 1, (BYTE far *) oldboot)) != 0)
+	else
   {
-    fprintf(stderr, "%s: disk read error (code = 0x%02x)\n", pgm, i & 0xff);
-    exit(1);
+		memcpy(newboot,b_fat12,SEC_SIZE);
+		printf(" [FAT12]");
   }
 
+	// root directory sectors
+  *(UCOUNT *) &newboot[0x40] = *(UCOUNT *) &oldboot[0x11] / 16;
+  printf("\nroot dir entries = %u\n",*(UCOUNT *) &oldboot[0x11]);
+  printf("root dir sectors = %u\n",*(UCOUNT *) &newboot[0x40]);
+
+	// sector FAT starts on
+  temp = *(UCOUNT *) &oldboot[0x1C] + *(UCOUNT *) &oldboot[0x0E];
+	*(ULONG *) &newboot[0x42] = temp;
+  printf("FAT starts at sector %lu = (%u + %u)\n",temp,
+        *(UCOUNT *) &oldboot[0x1C],*(UCOUNT *) &oldboot[0x0E]);
+
+	// sector root directory starts on
+  temp = temp + *(UCOUNT *) &oldboot[0x16] * oldboot[0x10];
+	*(ULONG *) &newboot[0x46] = temp;
+  printf("Root directory starts at sector %lu = (PREVIOUS + %u * %u)\n",temp,
+      *(UCOUNT *) &oldboot[0x16],oldboot[0x10]);
+
+	// sector data starts on
+  temp = temp + *(UCOUNT *) &newboot[0x40];
+	*(ULONG *) &newboot[0x4A] = temp;
+  printf("DATA starts at sector %lu = (PREVIOUS + %u)\n",temp,
+     *(UCOUNT *) &newboot[0x40]);
+
   memcpy(&newboot[SBOFFSET], &oldboot[SBOFFSET], SBSIZE);
 
   if ((i = DiskWrite(DrvMap[drive], head, track, sector, 1, (BYTE far *) newboot)) != 0)
   {
     fprintf(stderr, "%s: disk write error (code = 0x%02x)\n", pgm, i & 0xff);
     exit(1);
   }
 }
 
-VOID
-get_boot(COUNT drive)
+VOID get_boot(COUNT drive)
 {
   COUNT i;
   COUNT ifd;
   WORD head, track, sector, ret;
   WORD count;
@@ -325,12 +347,11 @@
     fprintf(stderr, "%s: disk read error (code = 0x%02x)\n", pgm, i & 0xff);
     exit(1);
   }
 }
 
-BOOL
-check_space(COUNT drive, BYTE * BlkBuffer)
+BOOL check_space(COUNT drive, BYTE * BlkBuffer)
 {
   BYTE *bpbp;
   BYTE nfat;
   UWORD nfsect;
   ULONG hidden;
@@ -373,12 +394,11 @@
 }
 
 /* */
 /* Do logical block number to physical head/track/sector mapping        */
 /* */
-static COUNT
-  ltop(trackp, sectorp, headp, unit, count, strt_sect, strt_addr)
+static COUNT ltop(trackp, sectorp, headp, unit, count, strt_sect, strt_addr)
 WORD *trackp, *sectorp, *headp;
 REG COUNT unit;
 LONG strt_sect;
 COUNT count;
 byteptr strt_addr;
@@ -406,14 +426,11 @@
       (ps = miarray[unit].mi_heads * miarray[unit].mi_sectors))
     count = ps - ls;
   return count;
 }
 
-BOOL
-copy(drive, file)
-COUNT drive;
-BYTE *file;
+BOOL copy(COUNT drive, BYTE *file)
 {
   BYTE dest[64];
   COUNT ifd, ofd, ret;
   BYTE buffer[COPY_SIZE];
   struct ftime ftime;
@@ -439,12 +456,11 @@
   close(ifd);
   close(ofd);
   return TRUE;
 }
 
-BOOL
-DiskReset(COUNT Drive)
+BOOL DiskReset(COUNT Drive)
 {
   REG COUNT idx;
 
   /* Reset the drives                                             */
   fl_reset();
@@ -476,12 +492,11 @@
   }
 
   return TRUE;
 }
 
-COUNT
-DiskRead(WORD drive, WORD head, WORD track, WORD sector, WORD count, BYTE FAR * buffer)
+COUNT DiskRead(WORD drive, WORD head, WORD track, WORD sector, WORD count, BYTE FAR * buffer)
 {
   int nRetriesLeft;
 
   for (nRetriesLeft = NRETRY; nRetriesLeft > 0; --nRetriesLeft)
   {
@@ -489,12 +504,11 @@
       return count;
   }
   return 0;
 }
 
-COUNT
-DiskWrite(WORD drive, WORD head, WORD track, WORD sector, WORD count, BYTE FAR * buffer)
+COUNT DiskWrite(WORD drive, WORD head, WORD track, WORD sector, WORD count, BYTE FAR * buffer)
 {
   int nRetriesLeft;
 
   for (nRetriesLeft = NRETRY; nRetriesLeft > 0; --nRetriesLeft)
   {
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/sys/sys.cfg ker2006/sys/sys.cfg
--- ker2005/sys/sys.cfg	Sun Mar 28 13:22:30 1999
+++ ker2006/sys/sys.cfg	Wed Dec 31 18:00:00 1969
@@ -1,6 +0,0 @@
--v
--vi-
--k-
--Ic:\tc\include;..\hdr
--Lc:\tc\lib
--DI86=1;PROTO=1
diff -N -x *.dat -x *.com --recursive --ignore-space-change -U5 --report-identical-files --minimal ker2005/sys/sys.mak ker2006/sys/sys.mak
--- ker2005/sys/sys.mak	Sun Mar 28 14:24:06 1999
+++ ker2006/sys/sys.mak	Thu Apr  1 01:24:06 1999
@@ -24,12 +24,18 @@
                 copy sys.com ..\bin
 
 sys.com:	sys.exe
                 ..\utils\exe2bin sys.exe sys.com
 
+b_fat12.h:      ..\boot\b_fat12.bin bin2c.exe
+                bin2c ..\boot\b_fat12.bin b_fat12.h b_fat12
+
+b_fat16.h:      ..\boot\b_fat16.bin bin2c.exe
+                bin2c ..\boot\b_fat16.bin b_fat16.h b_fat16
+
 sys.exe:        sys.cfg $(EXE_dependencies)
-                $(LINK) /x/c/L$(LIBPATH) @&&|
+                $(LINK) /k/x/c/L$(LIBPATH) @&&|
 c0t.obj+
 sys.obj
 sys
 		# no map file
 $(LIBS)+
@@ -38,18 +44,17 @@
 cs.lib
 |
 
 
 clobber:	clean
-                del sys.com
-                del sys.exe
+                ..\utils\rm -f sys.com sys.exe b_fat12.h b_fat16.h sys.cfg
 
 clean:
         ..\utils\rm -f *.obj *.bak *.crf *.xrf *.map *.lst *.las status.me
 
 #		*Individual File Dependencies*
-sys.obj: sys.cfg sys.c
+sys.obj: sys.cfg sys.c b_fat12.h b_fat16.h
 
 #		*Compiler Configuration File*
 sys.cfg: sys.mak
   copy &&|
 -v
Files ker2005/utils/exe2bin.exe and ker2006/utils/exe2bin.exe are identical
Files ker2005/utils/indent.exe and ker2006/utils/indent.exe are identical
Files ker2005/utils/indent.ini and ker2006/utils/indent.ini are identical
Files ker2005/utils/proto.bat and ker2006/utils/proto.bat are identical
Files ker2005/utils/rm.exe and ker2006/utils/rm.exe are identical
