Path: utzoo!attcan!uunet!mcvax!hp4nl!botter!star.cs.vu.nl!ast From: ast@cs.vu.nl (Andy Tanenbaum) Newsgroups: comp.os.minix Subject: Re: klib88.s strangenesses Message-ID: <1638@ast.cs.vu.nl> Date: 9 Nov 88 14:55:36 GMT References: Reply-To: ast@cs.vu.nl (Andy Tanenbaum) Organization: VU Informatica, Amsterdam Lines: 27 In article broman@nosc.mil writes: >While converting the v1.3 klib88.s into a Turbo-C klib88.c, I came upon some >mysteries that someone may be able to explain. > >1. em_xfer() does a PUSHF and an INT 0x15 around line 696, although >the procedure comments explain why the INT is impossible and must >be simulated with a long jump. Perhaps we do not have the code >really used to compile the AT configuration? I didn't write this code, but it definitely is the real code. >2. The rebooting code tests (ps == -1) when ps is either uninitialized >or set equal to 1 in kernel/main.c . Can this be right? See above. >3. Does anyone know why the table used by em_xfer() sits in >the text segment? See #2. >4. Why was build_sig() written in assembler instead of C? Historical reasons. In an earlier life assembler was needed. >5. Was it just an oversight that segment:offset pairs are always >passed as arguments in the order (segment, offset). In essence, yes. Probably should be fixed, except that it had better be fixed everywhere of bad things happen. Andy Tanenbaum (ast@cs.vu.nl)