<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Tue, 10 May 1988 10:46:56 PDT
From   : mwilson (Marc Wilson)
Subject: How to do it

     Sorry it took me so long to get back to you with this, but I've been so 
busy lately, I just haven't had time to cook up a good example.

     I usually don't use M80/L80.  If I *do* use M80, then I use one of the 
public domain linkers, like PDLN, or ProLink.  My preferred linker is DRI's 
LINK, but I use SLR Systems SLRNK when I want speed.  All of them are in the 
ASM: directory.

     Ok, what we need here is a good example.  Take a look at the file below.  
As you can see, the only thing in it is a CSEG.  Note the *absence* of any ORG 
statement.

-----

C0:SCRATCH>lt test.z80


^S pause, ^C abort, ^X next file, ^Z no paging, space next line, others page
TEST.Z80

; Program:      TEST.Z80
; Author:       Marc Wilson
; Version:      1.0
; Date:         10 May 1988

; This is a test to cause M80/L80 to generate a .HEX file with an origin
; other than 100h

        cseg

start:  ld      c,9
        ld      de,msg
        jp      5

msg:    db      'This is a test.$'

        end

-----
Ok, we've got a test file.  Let's assemble it...

My copy of M80 has been patched to return flags for warnings ant fatal errors
in the Z-System registers.  It is otherwise *identical* to M80 v3.44.
-----

C0:SCRATCH>asm:m80 =test.z80/z

M80 v3.44 for LB/Z80 Z-System

No Fatal error(s)

-----
Well, it assembled with no errors, let's try linking it.
-----

C0:SCRATCH>asm:l80 /p:1000,test,test/n/x/e


Link-80  3.44  09-Dec-81  Copyright (c) 1981 Microsoft

Data    1000    1018    <   24>

38940 Bytes Free
[0000   1018       16]

-----
Hmmm... it looks like L80 has indeed created a zero-filled .HEX file. 
However, 
if you look again, you can see that the data area goes from 1000 to 1018.  
Since I didn't specify a separate address for the data segment, the code 
segment is there.

Let's look at the .HEX file.
-----

C0:SCRATCH>lt test.hex


^S pause, ^C abort, ^X next file, ^Z no paging, space next line, others page
TEST.HEX

:181000000E09110810C3050054686973206973206120746573742E2489
:00000001FF

-----
Uh oh, awful short.  No zero-fill records here.
-----

C0:SCRATCH>mload test

MLOAD ver. 2.5   Copyright (C) 1983, 1984, 1985, 1987
by NightOwl Software, Inc.
Loaded 24 bytes (0018H) to file C0:TEST.COM
Start address: 1000H  Ending address: 1017H  Bias: 0000H
Saved image size: 128 bytes (0080H, - 1 records)

++ Warning: program origin NOT at 100H ++

-----
Well, what do you know?  MLOAD says that the start address is 1000h, and the 
ending address is 1017H.  Definately no zero-fill here.

As another check, let's look at the .COM file generated by MLOAD.  Note
that we 
*cannot* run this file, as MLOAD warned us its ORiGin wasn't at 100h, but at 
1000h.
-----

C0:SCRATCH>ddt test.com

DDT VERS 2.2
NEXT  PC
0180 0100
-l100

  0100  MVI  C,09
  0102  LXI  D,1008
  0105  JMP  0005
[ ... ]
-d108

0108 54 68 69 73 20 69 73 20 This is 
0110 61 20 74 65 73 74 2E 24 00 00 00 00 00 00 00 00 a test.$........
[ ... ]
-g0

-----
Look at the address field of the LXI D instruction.  It's 1008h.  This
indicates that this file does indeed have an origin above 100h.
-----

     Well, I'd say that that fits your requirements.

     On another related subject, why are you using a .HEX file at all?  That 
requires much tedious calculation of offsets, etc.  Why not just assemble to a 
binary file and install?  Much simpler, and faster.

     If I can help with anything else, please don't hesitate to ask.

                                                 -- Marc Wilson
                                                 -- mwilson@crash.CTS.COM


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Marc Wilson
     ARPA: ...!crash!mwilson@nosc.mil
           ...!crash!pnet01!pro-sol!mwilson@nosc.mil
     UUCP: [ cbosgd | hp-sdd!hplabs | sdcsvax | nosc ]!crash!mwilson
     INET: mwilson@crash.CTS.COM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

--------End Forwarded Message--------


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Marc Wilson
     ARPA: ...!crash!mwilson@nosc.mil
           ...!crash!pnet01!pro-sol!mwilson@nosc.mil
     UUCP: [ cbosgd | hp-sdd!hplabs | sdcsvax | nosc ]!crash!mwilson
     INET: mwilson@crash.CTS.COM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


End of INFO-CPM Digest
******************************
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>