To count one's Z80.LIB files...



Z80LIB.TXT
----------

"To count one's Z-80.LIB files (before they are assembled)"
by Emmanuel ROCHE

Ok. So, it was expected that, tonight, I would finally be able
to answer the interesting question of Yong Lak: "Is it possible
to emulate M80's PHASE and DEPHASE pseudo-ops under RMAC?"

Unfortunately, I had a problem with the computer that I use to
write my messages to the comp.os.cpm Newsgroup (using WordStar 4
or VDE for TXT files), so I gave it to a computer shop. One week
later, I got it as planned... except that the hard disk (the
most important piece of the computer) was no longer working as
expected! So, tonight, I spent a good deal of time debugging the
hardware, a thing that I rarely do, prefering to give my
computers to a friend of mine, who is the most experienced
electronician that I know.

Unfortunately, this time, I had not enough time (he lives 500
kilometers away), so I was obliged to do it myself. After
erasing the Windows and MS-DOS directories, installing DR-DOS
7.03, and playing with FDISK and VDISK, I finally have a
computer... but is it working? (It would be a pity to lose all
my files...)

Let us review the problem. Among other things, Yong Lak
published his boot code. So, I retyped it.

It was containing 2 MACLIB pseudo-ops (some other assemblers use
INCLUDE). One was involving Z80.LIB, the well-known library of
macros from Digital Research enabling MAC and RMAC to generate
Z-80 code like LDIR (MAC and RMAC are both 8080 assemblers, as
is M80). The second was named JR180: obviously some macros
dealing with the Z80S180, since the code was containing names
such as CBAR, BBR, and CBR. (Not much comments, yong!)

So, I said: "Easy, find a copy of Z80.LIB, then assemble with
dummy CBAR, BBR, and CBR values, then write the message. What
could be simpler?"

So, to check if my computer was running correctly, I typed:
"find z80.lib" at the system's prompt. (I must explain that I
don't use the standard MS-DOS FIND (searching for strings in
files) but a FINDFILE program because (according to the system)
there are 18,000 files in 900 directories. The computer shop
owner told me that I was his record holder: normally, he deals
with companies which only have one accounting program under
Windows. He had never seen before an individual with so many
programming languages and documents in his computer. And
everything in characters, not huge giant, inefficient PDF
files...

One of those directory happens to be the DRIPAK file that is
available on the Internet. FIND also found 2 other copies, one
in the BIOS of CP/M Plus for the North Star Horizon of Howard
Harte, the other in the directory of UNLOAD Version 2.0.

C:\DRIPAK\MAC\Z80.LIB 9856 bytes
C:\DRIPAK\MAC-RMAC\Z80.LIB 6016 bytes
C:\DRIPAK\RMAC\Z80.LIB 6016 bytes
C:\DRIPAK\CPM_2-2\SYSTEM\Z80.LIB 9984 bytes
C:\DRIPAK\CPM_3-0\SOURCES\Z80.LIB 5904 bytes
C:\DRIPAK\MPM_2\DRI\Z80.LIB 6016 bytes

C:\NSTAR\BIOS3\Z80.LIB 5904 bytes
C:\TEMP\UNLOAD\Z80.LIB 9856 bytes

So, big problem: I was expecting to find one Z80.LIB file, and I
discover, at first sight, at least 4 versions of it!

From smallest to biggest:
5904 bytes (2 copies)
6016 bytes (3 copies)
9856 bytes (2 copies)
9984 bytes (1 copy)

So, I copied copies of them (FIRST.LIB, SECOND.LIB, etc), then
compared them with my COMPARE program (what would I be able to
do, without it?). It turns out that:

1) The difference between the 5904-bytes and 6016-bytes files is
that the 5904-bytes file ends with 00H bytes filling the "slack
bytes" (at the end of a file, after the CP/M "end-of-file"
character), while the 6016-bytes file ends with a string of 1A
bytes, filling the next record. (Those smaller files have the
comments, at the beginning of the files, removed, obviously to
speed assembly. 00H files were probably generated by a non-CP/M
editor, while 1AH files were, obviously, generated by a CP/M
editor.)

2) The difference between the 9856-bytes and 9984-bytes files is
that the 9984-bytes file contains a handful of control
characters that are not present in the 9856-bytes file. (VDE
displays control characters on screen, so it was very easy to
find them and erase them. Recommended if you are still using
MS-DOS. In addition, VDE used to run under CP/M -- where I
discovered it.)


Conclusion
----------

If you are using Z80.LIB to generate Z-80 opcodes using Digital
Research's MAC and RMAC, be sure to use the 9856-bytes long file
(found in the DRIPAK, in the MAC directory -- probably a copy of
the work disk of Gary Kildall).

(Control characters can produce very hard to find subtle errors
in macro-assemblers. Me, twenty years ago, I spent several hours
before discovering that, after typing an "ENDM", I had typed a
"space", before pressing the "RETURN" key... Of course, this
space was not appearing when I was displaying the source code
with ED, or printing the file on my daisy-wheel printer! I was
obliged to dump the file -- fortunately, I had managed to find
where in the listing things were going wild -- before
understanding the source of the bug. So, beware of spaces after
"ENDM" pseudo-ops!)

Time to go to bed. Maybe this week-end?...

Yours Sincerely,
"French Luser"


EOF
.



Relevant Pages

  • Re: [C] Working with disk files. *long post warning*
    ... This makes your fgets call independent of your MAX #define. ... When I first ran the program, it correctly displayed the account ... characters from your string inputs. ... I suppose I was expecting either /every/ field to be ...
    (alt.comp.lang.learn.c-cpp)
  • Re: Review - Torchwood: Children of Earth Day One
    ... didn't they have an episode called Day One already? ... > Times, I was expecting a rather soapy, slow start, with some sneering ... They were the on decent characters and Tosh and Owen were not, so should have been killed off. ... > one webpage on Torchwood prompts her to send them info the Home Office ...
    (rec.arts.drwho)
  • Re: Review - Torchwood: Fragments
    ... lot of what we're shown of the characters doesn't fit well with what ... going into any sci-fi show expecting something genuinely surprising or ... change than most series of this sort would experiment with. ...
    (rec.arts.drwho)
  • EDUCATION OF CHARLIE BANKS (no spoilers)
    ... THE EDUCATION OF CHARLIE BANKS. ... I kept expecting its interesting ... characters and smart dialogue to suddenly plunge headlong into a gooey ...
    (rec.arts.movies.current-films)

Loading