Opening CP/M files (.asm/.bas)

From: Sipke de Wal <>
Date: Thu Apr 27 11:24:45 2000

It's been awhile since I did some real CP/M hacking so my memory of that era
may not be flawless...................

----- Original Message -----
From: Ernest <>
To: <>
Sent: Thursday, April 27, 2000 4:42 PM
Subject: RE: Opening CP/M files (.asm/.bas)

> It sounds like I'm probably using the wrong BASIC, from the suggestions that
> I've received. Thanks, by the way. So my next question would be, is there a
> way to find out which version of BASIC I should be using by looking at the
> program in a text editor, or something like that? I think that some of these
> programs may tell me in the introduction lines but I know that at least some
> of them don't.

Could you send me the BASIC program offline so I can take a look at it ?
There have been so many basic versions on the CP/M platform besides
MBASIC like CBASIC, SBASIC etc..... I would hope that it is in ASCII-format

> Also, what would be the reason that someone would distribute their programs
> in .ASM form, instead of in .COM form? Is this so that other people can edit
> or change them before they use them?

CP/M systems were not very compatible among themselves and some programs
had to be changed a bit before they would function on the target system. This is
especially true if the program needed to access I/O-devices. If you got the
ASM "source code" you could essentially make any alterations you needed for
your system. Sometimes these options would be given in the comments along with
the sourcecode. ASM.COM and the LOAD.COM program were part of
the CP/M packet so assembling the sourcecode was not considered a problem
in those days. A lot of people did assembly language.

The only problem was that ASM.COM would use 8080 assembly language
and ZASM of M80 would use Z80 assembly language. A lot of later CP/M
systems had a Z80 instead of an 8080/8085 chip and although the 8080 is
downward compatible on the objectcode level (the true machine instructions
level) The Z80 assembly language is VERY different from 8080 Assembly
language. So if you have ASM files you still have to determine what kind
of an assembler you would need to "compile"your code. A filename
extension like .ASM would hint in the direction of the standard 8080
assembler. I.E: in register load operations you would see the "MOV" opcode
instead of the Z80 "LD" command.

> These disks were produced by an old CP/M user group, and they are labeled by
> disk number (5a, 5b, 28a, 28b for example,) and they are a confusing mess.
> Some of the programs have files scattered between numerous disks, mixed in
> with bits and pieces of other programs. Sheesh. It's going to take some
> time to sort this headache out. I must be out of my mind.

There are quite a few decent CP/M emulators for the PC. like MYZ80 and
others. If you could transfer your disks to a PC then you could start
to reorganize and test those programs on your PC with the added benefit of
a large HD with directories to sort things out. You won't see these directories
when in CP/M emulation mode but you can always go back to DOS or
WINDOZ and reorganise the stuff. An added benefit would be the fact
that you would also have a backup of those disks.

This is also practical with regard to the availability of nice ASCII-editor
on the MS-DOS platform.

I don't know from the top of my head where to get these emulators but
it should not be difficult to find them. Also look for a "22dsk144" utility that
read (and maybe write) various CP/M floppies (provided you'll hook up an 1.2 MB
or 360KB 5.25" Floppydrive to your PC)

Sipke de Wal
Received on Thu Apr 27 2000 - 11:24:45 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:32:42 BST