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 Precedence: bulk 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.