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.
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.
c:\>m68k.exe file Process the macros in FILE.M68, producing FILE.A68
c:\>a68k.exe file Assemble FILE.A68, producing FILE.PRN and FILE.LTX. FILE.PRN is the readable version.
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.
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.
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.
||Back to Wouter's 68000 Page||(This page last modified 2014-02-28)|