Using the Quelo 68000 CrossAssembler

I originally had very little documentation for the MSDOS Quelo crossassembler I downloaded (from, as far as I know, bode.ee.ualberta.ca). Since then, a copy of the User Manual for Version 4.3 (I think) has become available.

When it comes to the assembler syntax, the Motorola assembler manual that Paul RSM put up is useful. Quelo has a much better macro parser -- if you can figure out how to use it because to date I have not found any documentation for it.

My notes

Quelo 68000/68010 Assembler Package

Release 5.0 - 03/20/85

Ready to run on MS/DOS and PC/DOS

Disk 1 of 2

Program	Version
------- -------
A68K    D5.0P
LTXDUMP D1.0D
M68K    D2.0C
QLIB    D1.0P
QLINK   D2.0L
QSYM    D2.0D

Disk 2 of 2

Program	Version
------- -------
A80	D1.0F
IMAGE	D2.0D
SPLIT	D3.0C

Your assembly code lives in one or more files with .m68 extension. This can include macros.

The first step is to process those macros.

Macro processing

c:\>m68k.exe file

Process the macros in FILE.M68, producing FILE.A68

Assembly

c:\>a68k.exe file

Assemble FILE.A68, producing FILE.PRN and FILE.LTX.
FILE.PRN is the readable version.

Linking

You need a link specification file, describing how your
image will be formed from the assembled sub-files.

Example link specification file MAINFILE.LNK:

  LINK FILE1
  LINK FILE2
  LINK FILE3
  ...
  ORG ADDR1
  SECTION N1, N2, N3 ...
  ORG ADDR2
  SECTION N4, N5 ...
  ORG ADDR3
  SECTION N6 ...
  END

c:\>qlink mainfile

Qlink will link FILE1.LTX, FILE2.LTX, etc. The
sections are defined in the assembler code, so
each file can have a section that goes into RAM
and a section that goes into ROM.

Qlink creates MAINFILE.HEX and MAINFILE.LST

  MAINFILE.HEX is the S-record file.

Making ROM images

IMAGE takes the .HEX S-record file and creates a
      binary image .IMG

SPLIT takes the .HEX S-record and splits it, producing
      two INTEL HEX files, .EVN and .ODD.

Now for an example. Our source in this case is TUTORNEW, a version of the MEX68KECB TUTOR monitor, including a one-line assembler / disassembler, as modified for the Alberta ECB -- or so the comp.sys.m68k FAQ tells me.

Source files are:

ARAM.M68 B.M68 BF.M68 BM.M68 BR.M68 BS.M68 BT.M68 CODE68K.M68 COMMANDS.M68 DCODE68K.M68 DC.M68 DFDI.M68 DUMP.M68 E.M68 GETA.M68 H.M68 HE.M68 HEX2DEC.M68 LOAD.M68 MDDI.M68 MMDI.M68 MS.M68 MTSETUP.M68 OF.M68 PF.M68 RAMTEST.M68 TM.M68 TRAP14.M68 VECTMSG.M68 W.M68 X.M68 Y.M68 YROM.M68

The executables don't handle wildcards, so the easy way is to build a batch file. DIR/ON/B *.M68 > FILE is a good start.

M68K ARAM.M68
M68K B.M68
M68K BF.M68
M68K BM.M68
M68K BR.M68
M68K BS.M68
M68K BT.M68
M68K CODE68K.M68
M68K COMMANDS.M68
M68K DC.M68
M68K DCODE68K.M68
M68K DFDI.M68
M68K DUMP.M68
M68K E.M68
M68K GETA.M68
M68K H.M68
M68K HE.M68
M68K HEX2DEC.M68
M68K LOAD.M68
M68K MDDI.M68
M68K MMDI.M68
M68K MS.M68
M68K MTSETUP.M68
M68K OF.M68
M68K PF.M68
M68K RAMTEST.M68
M68K TM.M68
M68K TRAP14.M68
M68K VECTMSG.M68
M68K W.M68
M68K X.M68
M68K Y.M68
M68K YROM.M68

This creates a .A68 and a .ERR for each input file.

A68K ARAM.A68
A68K B.A68
A68K BF.A68
A68K BM.A68
A68K BR.A68
A68K BS.A68
A68K BT.A68
A68K CODE68K.A68
A68K COMMANDS.A68
A68K DC.A68
A68K DCODE68K.A68
A68K DFDI.A68
A68K DUMP.A68
A68K E.A68
A68K GETA.A68
A68K H.A68
A68K HE.A68
A68K HEX2DEC.A68
A68K LOAD.A68
A68K MDDI.A68
A68K MMDI.A68
A68K MS.A68
A68K MTSETUP.A68
A68K OF.A68
A68K PF.A68
A68K RAMTEST.A68
A68K A68K
A68K TM.A68
A68K TRAP14.A68
A68K VECTMSG.A68
A68K W.A68
A68K X.A68
A68K Y.A68
A68K YROM.A68

This creates *.LTX and *.PRN for each file.

And then all that is required is

QLINK TUTOR
(The TUTORNEW.ZIP file contains the link specification file TUTOR.LNK which tells Quelo what and how to link)

This gives a .HEX file which matches the .HEX file in TUTORNEW.ZIP, except for the S0 record at the start.

S0 from ZIP file: S0 0E 0000 433A5455544F522E484558 C3 "C:TUTOR.HEX"
S0 that I made: S0 0E 0000 4D3A5455544F522E484558 B9 "D:TUTOR.HEX" (Don't ask me, I was actually working on a memstick called M:)

Anyway, the code matches, so I'm calling it a success.

[Image] Hit Count
hits since 2004-02-09.

Back to Wouter's 68000 Page (This page last modified 2014-02-28)