www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/08/12/06:30:54

From: no AT email DOT ads (Christopher Giese)
Newsgroups: comp.os.msdos.djgpp,gnu.gcc.help
Subject: DJGPP -> coff-go32 -> .COM file
Date: Wed, 12 Aug 1998 02:42:31 GMT
Organization: Cheeseland Clench
Lines: 40
Message-ID: <35d10075.6016014@news.axisnet.net>
NNTP-Posting-Host: cnn.axisnet.net
Cache-Post-Path: cnn.axisnet.net!unknown AT 207 DOT 112 DOT 220 DOT 24
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

I have been trying to write my own OS using DJGPP and NASM. I've
had good luck assembling the startup code to "aout" format and using
the following linker script to build a .COM file:

----------- BEGIN LINKER SCRIPT ---------------
/* Adapted from /djgpp/lib/djgpp.djl */
OUTPUT_FORMAT("binary")			/* "binary" for .COM file */
ENTRY(_start)
SECTIONS
{   .text 0x100 + SIZEOF_HEADERS : /* 0x100 for .COM file */
    {	*(.text)
	etext = .; _etext = .; }
    .data . :
    {	*(.data)
	edata = .; _edata = .; }
    .bss SIZEOF(.data) + ADDR(.data) :
    {	*(.bss)
	*(COMMON)
	end = .; _end = .; }}
----------- END LINKER SCRIPT ---------------

To help with debugging, I would like to link the kernel as
"coff-go32", use 'nm' to dump all the symbols, _then_ convert it to a
.COM file. I changed OUTPUT_FORMAT in the linker script to "coff-go32"
and tried:
  ld --noinhibit-exec -o krnl.cof -Tlink.scr $(OBJECTS)
  nm --line-numbers krnl.cof | sort >krnl.lst
  objcopy --input-format coff-go32 --output-format binary krnl.cof
	krnl.com
but all the data references have the wrong addresses.

Help!

(The code I've got so far can be found at
http://www.netwurx.net/~geezer/os)

-- 
geezer@     | Sales rushes in where
netwurx.net | Engineering fears to tread.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019